2 lines
9.6 KiB
JavaScript
2 lines
9.6 KiB
JavaScript
var I=Object.defineProperty,U=Object.defineProperties;var P=Object.getOwnPropertyDescriptors;var S=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable;var M=(a,e,t)=>e in a?I(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,y=(a,e)=>{for(var t in e||(e={}))A.call(e,t)&&M(a,t,e[t]);if(S)for(var t of S(e))F.call(e,t)&&M(a,t,e[t]);return a},x=(a,e)=>U(a,P(e));var b=(a,e,t)=>new Promise((n,s)=>{var d=l=>{try{r(t.next(l))}catch(c){s(c)}},m=l=>{try{r(t.throw(l))}catch(c){s(c)}},r=l=>l.done?n(l.value):Promise.resolve(l.value).then(d,m);r((t=t.apply(a,e)).next())});import{aq as g,aB as f,bF as N,ar as V,$ as q,av as E,am as B}from"./bootstrap-DsjPfOC_.js";import"./vxe-table-C9eY8pUC.js";import{D as o}from"./dict-enum-DRf9W45H.js";import{g as z}from"./index-DC7CUIeC.js";import{g as G}from"./index-0DmMEJMD.js";import{g as $}from"./rangePickerProps-CXRhwW6k.js";import{cS as W,di as Y,dj as j,d8 as H,m as J,b9 as w,v as K,ab as D,b2 as R,bJ as _,j as p,u as i,ae as Q,bL as X,ad as Z,I as ee,bb as te}from"../jse/index-index-CO0ZsLf2.js";import{_ as ae}from"./content-wrap.vue_vue_type_script_setup_true_lang-BpjRsiVS.js";import{u as L,_ as O}from"./use-echarts-DBBPKzKQ.js";import{_ as re}from"./page.vue_vue_type_script_setup_true_lang-BL-xU9lB.js";import{u as le}from"./use-vxe-grid-z_YbcgDZ.js";import"./dict-tag.vue_vue_type_script_setup_true_lang-BZwqGgTH.js";function ie(a,e){switch(a){case"area":return ue(e);case"industry":return oe(e);case"level":return se(e);case"source":return ne(e);default:return[]}}function oe(a){return g.get("/crm/statistics-portrait/get-customer-industry-summary",{params:a})}function ne(a){return g.get("/crm/statistics-portrait/get-customer-source-summary",{params:a})}function se(a){return g.get("/crm/statistics-portrait/get-customer-level-summary",{params:a})}function ue(a){return g.get("/crm/statistics-portrait/get-customer-area-summary",{params:a})}function de(a){return a&&a.replace("维吾尔自治区","").replace("壮族自治区","").replace("回族自治区","").replace("自治区","").replace("省","")}function T(a,e){switch(a){case"area":{const t=e.map(r=>x(y({},r),{areaName:de(r.areaName)}));let n=0,s=0,d=0,m=0;return t.forEach(r=>{n=Math.min(n,r.customerCount||0),s=Math.max(s,r.customerCount||0),d=Math.min(d,r.dealCount||0),m=Math.max(m,r.dealCount||0)}),{left:{title:{text:"全部客户",left:"center"},tooltip:{trigger:"item",showDelay:0,transitionDuration:.2},visualMap:{text:["高","低"],realtime:!1,calculable:!0,top:"middle",inRange:{color:["yellow","lightskyblue","orangered"]},min:n,max:s},series:[{name:"客户地域分布",type:"map",map:"china",roam:!1,selectedMode:!1,data:t.map(r=>({name:r.areaName,value:r.customerCount||0}))}]},right:{title:{text:"成交客户",left:"center"},tooltip:{trigger:"item",showDelay:0,transitionDuration:.2},visualMap:{text:["高","低"],realtime:!1,calculable:!0,top:"middle",inRange:{color:["yellow","lightskyblue","orangered"]},min:d,max:m},series:[{name:"客户地域分布",type:"map",map:"china",roam:!1,selectedMode:!1,data:t.map(r=>({name:r.areaName,value:r.dealCount||0}))}]}}}case"industry":return{left:{title:{text:"全部客户",left:"center"},tooltip:{trigger:"item"},legend:{orient:"vertical",left:"left"},toolbox:{feature:{saveAsImage:{show:!0,name:"全部客户"}}},series:[{name:"全部客户",type:"pie",radius:["40%","70%"],avoidLabelOverlap:!1,itemStyle:{borderRadius:10,borderColor:"#fff",borderWidth:2},label:{show:!1,position:"center"},emphasis:{label:{show:!0,fontSize:40,fontWeight:"bold"}},labelLine:{show:!1},data:e.map(t=>({name:f(o.CRM_CUSTOMER_INDUSTRY,t.industryId),value:t.customerCount}))}]},right:{title:{text:"成交客户",left:"center"},tooltip:{trigger:"item"},legend:{orient:"vertical",left:"left"},toolbox:{feature:{saveAsImage:{show:!0,name:"成交客户"}}},series:[{name:"成交客户",type:"pie",radius:["40%","70%"],avoidLabelOverlap:!1,itemStyle:{borderRadius:10,borderColor:"#fff",borderWidth:2},label:{show:!1,position:"center"},emphasis:{label:{show:!0,fontSize:40,fontWeight:"bold"}},labelLine:{show:!1},data:e.map(t=>({name:f(o.CRM_CUSTOMER_INDUSTRY,t.industryId),value:t.dealCount}))}]}};case"level":return{left:{title:{text:"全部客户",left:"center"},tooltip:{trigger:"item"},legend:{orient:"vertical",left:"left"},toolbox:{feature:{saveAsImage:{show:!0,name:"全部客户"}}},series:[{name:"全部客户",type:"pie",radius:["40%","70%"],avoidLabelOverlap:!1,itemStyle:{borderRadius:10,borderColor:"#fff",borderWidth:2},label:{show:!1,position:"center"},emphasis:{label:{show:!0,fontSize:40,fontWeight:"bold"}},labelLine:{show:!1},data:e.map(t=>({name:f(o.CRM_CUSTOMER_LEVEL,t.level),value:t.customerCount}))}]},right:{title:{text:"成交客户",left:"center"},tooltip:{trigger:"item"},legend:{orient:"vertical",left:"left"},toolbox:{feature:{saveAsImage:{show:!0,name:"成交客户"}}},series:[{name:"成交客户",type:"pie",radius:["40%","70%"],avoidLabelOverlap:!1,itemStyle:{borderRadius:10,borderColor:"#fff",borderWidth:2},label:{show:!1,position:"center"},emphasis:{label:{show:!0,fontSize:40,fontWeight:"bold"}},labelLine:{show:!1},data:e.map(t=>({name:f(o.CRM_CUSTOMER_LEVEL,t.level),value:t.dealCount}))}]}};case"source":return{left:{title:{text:"全部客户",left:"center"},tooltip:{trigger:"item"},legend:{orient:"vertical",left:"left"},toolbox:{feature:{saveAsImage:{show:!0,name:"全部客户"}}},series:[{name:"全部客户",type:"pie",radius:["40%","70%"],avoidLabelOverlap:!1,itemStyle:{borderRadius:10,borderColor:"#fff",borderWidth:2},label:{show:!1,position:"center"},emphasis:{label:{show:!0,fontSize:40,fontWeight:"bold"}},labelLine:{show:!1},data:e.map(t=>({name:f(o.CRM_CUSTOMER_SOURCE,t.source),value:t.customerCount}))}]},right:{title:{text:"成交客户",left:"center"},tooltip:{trigger:"item"},legend:{orient:"vertical",left:"left"},toolbox:{feature:{saveAsImage:{show:!0,name:"成交客户"}}},series:[{name:"成交客户",type:"pie",radius:["40%","70%"],avoidLabelOverlap:!1,itemStyle:{borderRadius:10,borderColor:"#fff",borderWidth:2},label:{show:!1,position:"center"},emphasis:{label:{show:!0,fontSize:40,fontWeight:"bold"}},labelLine:{show:!1},data:e.map(t=>({name:f(o.CRM_CUSTOMER_SOURCE,t.source),value:t.dealCount}))}]}};default:return{}}}const me=N(),ce=[{tab:"城市分布分析",key:"area"},{tab:"客户级别分析",key:"level"},{tab:"客户来源分析",key:"source"},{tab:"客户行业分析",key:"industry"}];function fe(){var a;return[{fieldName:"times",label:"时间范围",component:"RangePicker",componentProps:y({},$()),defaultValue:[W(Y(new Date(Date.now()-3600*1e3*24*7))),W(j(new Date(Date.now()-3600*1e3*24)))]},{fieldName:"deptId",label:"归属部门",component:"ApiTreeSelect",componentProps:{api:()=>b(null,null,function*(){const e=yield z();return H(e)}),labelField:"name",valueField:"id",childrenField:"children",treeDefaultExpandAll:!0,placeholder:"请选择归属部门"},defaultValue:(a=me.userInfo)==null?void 0:a.deptId},{fieldName:"userId",label:"员工",component:"ApiSelect",componentProps:{api:G,labelField:"nickname",valueField:"id",placeholder:"请选择员工",allowClear:!0}}]}function k(a){switch(a){case"industry":return[{type:"seq",title:"序号"},{field:"industryId",title:"客户行业",minWidth:100,cellRender:{name:"CellDict",props:{type:o.CRM_CUSTOMER_INDUSTRY}}},{field:"customerCount",title:"客户个数",minWidth:200},{field:"dealCount",title:"成交个数",minWidth:200},{field:"industryPortion",title:"行业占比(%)",minWidth:200},{field:"dealPortion",title:"成交占比(%)",minWidth:200}];case"level":return[{type:"seq",title:"序号"},{field:"level",title:"客户级别",minWidth:100,cellRender:{name:"CellDict",props:{type:o.CRM_CUSTOMER_LEVEL}}},{field:"customerCount",title:"客户个数",minWidth:200},{field:"dealCount",title:"成交个数",minWidth:200},{field:"industryPortion",title:"行业占比(%)",minWidth:200},{field:"dealPortion",title:"成交占比(%)",minWidth:200}];case"source":return[{type:"seq",title:"序号"},{field:"source",title:"客户来源",minWidth:100,cellRender:{name:"CellDict",props:{type:o.CRM_CUSTOMER_SOURCE}}},{field:"customerCount",title:"客户个数",minWidth:200},{field:"dealCount",title:"成交个数",minWidth:200},{field:"industryPortion",title:"行业占比(%)",minWidth:200},{field:"dealPortion",title:"成交占比(%)",minWidth:200}];default:return[]}}const pe={class:"mt-5 flex"},We=J({__name:"index",setup(a){const e=w("area"),t=w(),n=w(),{renderEcharts:s}=L(t),{renderEcharts:d}=L(n),[m,r]=V({commonConfig:{componentProps:{class:"w-full"}},schema:fe(),showCollapseButton:!0,submitButtonOptions:{content:q("common.query")},wrapperClass:"grid-cols-1 md:grid-cols-2",handleSubmit:()=>b(null,null,function*(){yield C(e.value)})}),[l,c]=le({gridOptions:{columns:k(e.value),height:"auto",keepSource:!0,pagerConfig:{enabled:!1},rowConfig:{keyField:"id",isHover:!0},toolbarConfig:{enabled:!1}}});function C(v){return b(this,null,function*(){e.value=v,c.setGridOptions({columns:k(v)});const h=yield r.getValues(),u=yield ie(e.value,h);yield s(T(e.value,u).left),yield d(T(e.value,u).right),yield c.grid.reloadData(u)})}return K(()=>{C(e.value)}),(v,h)=>(R(),D(i(re),{"auto-content-height":""},{default:_(()=>[p(i(ae),null,{default:_(()=>[p(i(m)),p(i(E),{"active-key":e.value,"onUpdate:activeKey":h[0]||(h[0]=u=>e.value=u),class:"w-full",onChange:C},{default:_(()=>[(R(!0),Z(ee,null,te(i(ce),u=>(R(),D(i(E).TabPane,{key:u.key,tab:u.tab,"force-render":!0},null,8,["tab"]))),128))]),_:1},8,["active-key"]),Q("div",pe,[p(i(O),{class:"m-4 w-1/2",ref_key:"leftChartRef",ref:t},null,512),p(i(O),{class:"m-4 w-1/2",ref_key:"rightChartRef",ref:n},null,512)]),X(p(i(l),null,null,512),[[B,e.value!=="area"]])]),_:1})]),_:1}))}});export{We as default};
|