1 |
- import M from"./mCard.0bce9c93.js";import{X as x}from"./index.ddc75869.js";import{b as C,i as y}from"./enum.aabc75ad.js";import{f as V,p as B,r as v,e as D,v as E,w as m,h as f,i as p,F as j,$ as w,E as U}from"./vue.9083513e.js";import{_ as z}from"./_plugin-vue_export-helper.c27b6911.js";import"./index.1699d3f0.js";import"./elementPlus.5243d764.js";import"./echarts.594b4072.js";const F={class:"metrics-cards"},O=V({__name:"index",props:{modelValue:{},metricItems:{}},emits:["change","update:modelValue"],setup(_,{emit:h}){const n=B("statDim"),c={},s=_,r=h,o=v(s.modelValue),i=v([]),u=D(()=>{const e={};for(const l of s.metricItems)e[l.value]=l.label;return e}),d=()=>{o.value=[],i.value=[],Object.keys(c).forEach(e=>delete c[e]),n.value==="day"||n.value==="month"?o.value=[{metric:"sales",color:"#0085ff",label:"销售额"},{metric:"sales_last_year",color:"#ff9500",label:"上年销售额"},{metric:"sales_last_month",color:"#3fd4cf",label:"上月销售额"}]:n.value==="week"&&(o.value=C.value),console.log("initData.value",y),console.log("111",o.value);for(const e of o.value)i.value.push({metric:e.metric,color:e.color}),e.color&&(c[e.color]=!0);console.log("initializeMetrics",o.value),r("update:modelValue",o.value)};E(d),m(n,d);const g=()=>{for(const[e,l]of Object.entries(c))if(!l)return c[e]=!0,e;return""},b=e=>{x.has(c,e)&&(c[e]=!1)},k=(e,l)=>{for(const a of s.metricItems)a.value===e?a.disabled=!0:a.value===l&&(a.disabled=!1);const t=o.value.findIndex(a=>a.metric===l);t>-1&&(o.value[t].metric=e,o.value[t].label=u.value[e],r("update:modelValue",o.value),r("change",o.value))},I=e=>{const l=o.value.findIndex(t=>t.metric===e);if(l>-1){if(o.value.length<=1)return;const t=o.value[l];o.value.splice(l,1),b(t.color),r("update:modelValue",o.value),r("change",o.value)}else if(o.value.length===3)o.value[2].metric=e,o.value[2].label=u.value[e];else{const t=g();o.value.push({metric:e,color:t,label:u.value[e]})}r("update:modelValue",o.value),r("change",o.value)};return m(o,()=>{const e={};for(const l of o.value)e[l.metric]=l.color;for(const l of i.value){const t=e[l.metric];t?l.color=t:l.color=void 0}console.log("watch",o.value)},{deep:!0}),m(s.metricItems,()=>{const e={};for(const t of i.value)e[t.metric]=!0;let l=6-i.value.length;if(l>0){for(const t of s.metricItems)if(!e[t.value]&&(i.value.push({metric:t.value}),e[t.value]=!0,l--,l===0))break}for(const t of s.metricItems)e[t.value]?t.disabled=!0:t.disabled=!1}),(e,l)=>(f(),p("div",F,[(f(!0),p(j,null,w(i.value,t=>(f(),U(M,{key:t.metric,modelValue:t.metric,"onUpdate:modelValue":a=>t.metric=a,color:t.color,"metric-items":s.metricItems,onClick:a=>I(t.metric),onChangeMetric:k},null,8,["modelValue","onUpdate:modelValue","color","metric-items","onClick"]))),128))]))}});const H=z(O,[["__scopeId","data-v-d7e8faaa"]]);export{H as default};
|