index.c298fa03.js 2.2 KB

1
  1. import x from"./mCard.4d591a6b.js";import{X as I}from"./index.9ac6c923.js";import{f as C,r as m,e as M,v as k,w as f,h as u,i as d,F as V,$ as B,E as y}from"./vue.fb807239.js";import{_ as E}from"./_plugin-vue_export-helper.c27b6911.js";import"./index.c691347b.js";import"./elementPlus.fdc894a5.js";import"./echarts.594b4072.js";const U={class:"metrics-cards"},F=C({__name:"index",props:{modelValue:{},metricItems:{}},emits:["change","update:modelValue"],setup(v,{emit:p}){const n={},c=v,r=p,l=m(c.modelValue),s=m([]),i=M(()=>{const e={};for(const t of c.metricItems)e[t.value]=t.label;return e});k(()=>{const e={};for(const t of l.value)s.value.push({metric:t.metric,color:t.color}),e[t.metric]=!0,t.color&&(n[t.color]=!0)});const _=()=>{for(const[e,t]of Object.entries(n))if(!t)return n[e]=!0,e;return""},h=e=>{I.has(n,e)&&(n[e]=!1)},g=(e,t)=>{for(const a of c.metricItems)a.value===e?a.disabled=!0:a.value===t&&(a.disabled=!1);const o=l.value.findIndex(a=>a.metric===t);o>-1&&(l.value[o].metric=e,l.value[o].label=i.value[e],r("update:modelValue",l.value),r("change",l.value))},b=e=>{const t=l.value.findIndex(o=>o.metric===e);if(t>-1){if(l.value.length<=1)return;const o=l.value[t];l.value.splice(t,1),h(o.color),r("update:modelValue",l.value),r("change",l.value)}else{if(l.value.length===3)l.value[2].metric=e,l.value[2].label=i.value[e];else{const o=_();l.value.push({metric:e,color:o,label:i.value[e]})}r("update:modelValue",l.value),r("change",l.value)}};return f(l.value,()=>{const e={};for(const t of l.value)e[t.metric]=t.color;for(const t of s.value){const o=e[t.metric];o?t.color=o:t.color=void 0}}),f(c.metricItems,()=>{const e={};for(const o of s.value)e[o.metric]=!0;let t=6-s.value.length;if(t>0){for(const o of c.metricItems)if(!e[o.value]&&(s.value.push({metric:o.value}),e[o.value]=!0,t--,t===0))break}for(const o of c.metricItems)e[o.value]?o.disabled=!0:o.disabled=!1}),(e,t)=>(u(),d("div",U,[(u(!0),d(V,null,B(s.value,o=>(u(),y(x,{modelValue:o.metric,"onUpdate:modelValue":a=>o.metric=a,"metric-items":c.metricItems,color:o.color,onChangeMetric:g,onClick:a=>b(o.metric)},null,8,["modelValue","onUpdate:modelValue","metric-items","color","onClick"]))),256))]))}});const w=E(F,[["__scopeId","data-v-f14f8593"]]);export{w as default};