DimensionConfigView-BgSEfqQW.js 4.4 KB

1
  1. import{dimensionApi as m}from"./index-fQv2WpIJ.js";import{_ as j,k as q,o as y,c as V,a as f,d as l,w as t,i,s as G,t as H,g as J,f as k,r,y as O,z as _,E as K}from"./index-BNtoQzpv.js";const L={class:"page"},Q={class:"page-header"},R={class:"hint-bar"},W={class:"sort-ctrl"},X={key:1,class:"empty"},Y={__name:"DimensionConfigView",setup(Z){const n=k([]),p=k(!1),b=k(null),s=k({name:"",maxScore:10}),w=O(()=>n.value.reduce((a,e)=>a+(e.maxScore||0),0)),z=O(()=>w.value===40?"sum-ok":"sum-bad");q(()=>v());async function v(){n.value=await m.list()}function D(){b.value=null,s.value={name:"",maxScore:10},p.value=!0}function U(a){b.value=a,s.value={name:a.name,maxScore:a.maxScore},p.value=!0}async function B(){if(!s.value.name.trim()){_.warning("请填写维度名称");return}try{b.value?await m.update(b.value.id,{name:s.value.name,maxScore:s.value.maxScore}):await m.create({name:s.value.name,maxScore:s.value.maxScore,sortOrder:n.value.length+1}),_.success("保存成功"),p.value=!1,await v()}catch(a){_.error(a.message||"保存失败,请检查分值总和是否为40")}}async function E(a,e){try{await m.update(a.id,{name:a.name,maxScore:e,sortOrder:a.sortOrder})}catch{_.error("分值总和必须为40"),a.maxScore=a._oldScore||10}}async function M(a){await K.confirm("确定删除该维度?如果删除后分值总数不为40将无法保存。","提示",{type:"warning"});try{await m.delete(a),await v(),_.success("已删除")}catch(e){_.error(e.message||"无法删除,分值总和必须保持40"),await v()}}async function N(a){if(a===0)return;const e=n.value[a],u=n.value[a-1];await m.update(e.id,{...e,sortOrder:u.sortOrder}),await m.update(u.id,{...u,sortOrder:e.sortOrder}),v()}async function $(a){if(a===n.value.length-1)return;const e=n.value[a],u=n.value[a+1];await m.update(e.id,{...e,sortOrder:u.sortOrder}),await m.update(u.id,{...u,sortOrder:e.sortOrder}),v()}return(a,e)=>{const u=r("Plus"),P=r("el-icon"),c=r("el-button"),g=r("el-table-column"),C=r("el-input-number"),A=r("el-table"),F=r("el-input"),S=r("el-form-item"),I=r("el-form"),T=r("el-dialog");return y(),V("div",L,[f("div",Q,[e[5]||(e[5]=f("h3",null,"考核维度配置",-1)),l(c,{type:"primary",onClick:D},{default:t(()=>[l(P,null,{default:t(()=>[l(u)]),_:1}),e[4]||(e[4]=i(" 添加维度",-1))]),_:1})]),f("div",R,[e[6]||(e[6]=i(" 所有维度满分之和必须为 ",-1)),e[7]||(e[7]=f("strong",null,"40",-1)),e[8]||(e[8]=i(",当前合计:",-1)),f("span",{class:G(z.value)},H(w.value),3),e[9]||(e[9]=i(" / 40 ",-1))]),n.value.length?(y(),J(A,{key:0,data:n.value,style:{width:"100%","max-width":"700px"}},{default:t(()=>[l(g,{label:"排序",width:"80"},{default:t(({row:o,$index:d})=>[f("div",W,[l(c,{link:"",size:"small",disabled:d===0,onClick:x=>N(d)},{default:t(()=>[...e[10]||(e[10]=[i("↑",-1)])]),_:1},8,["disabled","onClick"]),l(c,{link:"",size:"small",disabled:d===n.value.length-1,onClick:x=>$(d)},{default:t(()=>[...e[11]||(e[11]=[i("↓",-1)])]),_:1},8,["disabled","onClick"])])]),_:1}),l(g,{prop:"name",label:"维度名称"}),l(g,{label:"满分分值",width:"120"},{default:t(({row:o})=>[l(C,{modelValue:o.maxScore,"onUpdate:modelValue":d=>o.maxScore=d,min:1,max:40,step:1,size:"small",onChange:d=>E(o,d)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),l(g,{label:"操作",width:"100"},{default:t(({row:o,$index:d})=>[l(c,{link:"",size:"small",onClick:x=>U(o)},{default:t(()=>[...e[12]||(e[12]=[i("改名",-1)])]),_:1},8,["onClick"]),l(c,{link:"",size:"small",type:"danger",onClick:x=>M(o.id)},{default:t(()=>[...e[13]||(e[13]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])):(y(),V("div",X,"暂无维度,请添加")),l(T,{modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=o=>p.value=o),title:b.value?"编辑维度":"添加维度",width:"400px"},{footer:t(()=>[l(c,{onClick:e[2]||(e[2]=o=>p.value=!1)},{default:t(()=>[...e[14]||(e[14]=[i("取消",-1)])]),_:1}),l(c,{type:"primary",onClick:B},{default:t(()=>[...e[15]||(e[15]=[i("保存",-1)])]),_:1})]),default:t(()=>[l(I,{"label-width":"80px"},{default:t(()=>[l(S,{label:"名称"},{default:t(()=>[l(F,{modelValue:s.value.name,"onUpdate:modelValue":e[0]||(e[0]=o=>s.value.name=o),placeholder:"如:交付质量"},null,8,["modelValue"])]),_:1}),l(S,{label:"满分分值"},{default:t(()=>[l(C,{modelValue:s.value.maxScore,"onUpdate:modelValue":e[1]||(e[1]=o=>s.value.maxScore=o),min:1,max:40,step:1},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"])])}}},ae=j(Y,[["__scopeId","data-v-e9ce4c27"]]);export{ae as default};