Files
zyt/server/public/admin/assets/mubiao-C513RzTv.js
T
2026-04-30 09:27:42 +08:00

2 lines
5.8 KiB
JavaScript

import{d as A,a2 as I,i as $,L as R}from"./element-plus-CGvZDWx9.js";import{$ as G,K as w,f as J,a0 as K}from"./@element-plus/icons-vue-CGmK0q4e.js";import O from"./mubiao-dept-node-BpB5U4d2.js";import{h as Q,i as U}from"./finance-sAC2G0TW.js";import{i as M,_ as W}from"./index-CruYaYFe.js";import{f as B,b as j,as as q,ak as d,I as c,J as a,a as i,aN as r,O as k,aP as S,G as x,F as D,N as H,ap as X,A as C}from"./@vue/runtime-core-tF_2qJHK.js";import{n as f,y as u}from"./@vue/reactivity-BmZ-20sQ.js";import{Q as V}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-CEiKlVMn.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-BjeWxBI0.js";import"./pinia-CTWOnonq.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-Da2f2eD_.js";import"./@vueuse/shared-Bl-RnC0s.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-Rf8enzZx.js";import"./tslib-BDyQ-Jie.js";import"./zrender-C0YiHEZX.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-Bm7NQW9r.js";const Z={class:"mubiao-page"},tt={class:"header"},et={class:"header__left"},at={class:"header__icon"},ot={class:"header__right"},lt={class:"kpi-capsule"},it={class:"kpi-cell"},st={class:"kpi-cell"},nt={class:"kpi-cell__val"},rt={class:"kpi-cell kpi-cell--primary"},dt={class:"kpi-cell__val"},pt={class:"panel","element-loading-text":"数据加载中…"},mt={key:0,class:"empty-state"},ct={class:"empty-state__icon"},ut={class:"data-scroll"},_t=B({name:"financeMubiao"}),ft=B({..._t,setup(vt){function v(e){const t={dept_id:Number(e.dept_id??0),dept_name:String(e.dept_name??""),dept_path:String(e.dept_path??""),target_id:Number(e.target_id??0),target_amount:Number(e.target_amount??0),remark:String(e.remark??"")},o=e.children;return Array.isArray(o)&&o.length>0&&(t.children=o.map(v)),t}function y(e){var o;let t=0;for(const l of e)t+=Number(l.target_amount??0),(o=l.children)!=null&&o.length&&(t+=y(l.children));return Math.round(t*100)/100}function b(e){var o;let t=0;for(const l of e)t+=1,(o=l.children)!=null&&o.length&&(t+=b(l.children));return t}function N(e){var o;const t=[];for(const l of e)t.push({dept_id:l.dept_id,target_amount:Number(l.target_amount??0),remark:l.remark||""}),(o=l.children)!=null&&o.length&&t.push(...N(l.children));return t}function F(){const e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}`}const s=f(F()),p=f(!1),g=f(!1),n=f([]),T=C(()=>y(n.value)),Y=C(()=>b(n.value));function z(e){return Number(e||0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}async function m(){if(s.value){p.value=!0;try{const e=await Q({year_month:s.value});n.value=((e==null?void 0:e.rows)||[]).map(v)}catch{n.value=[]}finally{p.value=!1}}}async function E(){if(!s.value){M.msgWarning("请选择月份");return}await M.confirm("确认保存「"+s.value+"」各部门业绩目标?"),g.value=!0;try{const e=await U({year_month:s.value,items:N(n.value)});e!=null&&e.rows?n.value=e.rows.map(v):await m()}finally{g.value=!1}}return j(m),(e,t)=>{const o=A,l=I,h=$,L=q("perms"),P=R;return d(),c("div",Z,[a("div",tt,[a("div",et,[a("div",at,[i(o,null,{default:r(()=>[i(u(G))]),_:1})]),t[1]||(t[1]=a("div",{class:"header__text"},[a("span",{class:"header__title"},"制定业绩目标"),a("span",{class:"header__desc"},"按部门层级设置每月销售目标,填 0 并保存将删除该记录")],-1))]),a("div",ot,[a("div",lt,[a("div",it,[t[2]||(t[2]=a("span",{class:"kpi-cell__label"},"目标月份",-1)),i(l,{modelValue:s.value,"onUpdate:modelValue":t[0]||(t[0]=_=>s.value=_),type:"month","value-format":"YYYY-MM",placeholder:"选择月份",clearable:!1,size:"small",class:"kpi-cell__picker",onChange:m},null,8,["modelValue"])]),t[5]||(t[5]=a("div",{class:"kpi-sep"},null,-1)),a("div",st,[t[3]||(t[3]=a("span",{class:"kpi-cell__label"},"部门数量",-1)),a("span",nt,V(Y.value),1)]),t[6]||(t[6]=a("div",{class:"kpi-sep"},null,-1)),a("div",rt,[t[4]||(t[4]=a("span",{class:"kpi-cell__label"},"目标合计",-1)),a("span",dt,"¥ "+V(z(T.value)),1)])]),i(h,{loading:p.value,onClick:m},{default:r(()=>[i(o,null,{default:r(()=>[i(u(w))]),_:1}),t[7]||(t[7]=k("刷新 ",-1))]),_:1},8,["loading"]),S((d(),x(h,{type:"primary",loading:g.value,disabled:p.value||!s.value,onClick:E},{default:r(()=>[i(o,null,{default:r(()=>[i(u(J))]),_:1}),t[8]||(t[8]=k("保存目标 ",-1))]),_:1},8,["loading","disabled"])),[[L,["finance.dept_performance_target/batchSave"]]])])]),S((d(),c("div",pt,[!p.value&&n.value.length===0?(d(),c("div",mt,[a("div",ct,[i(o,null,{default:r(()=>[i(u(K))]),_:1})]),t[10]||(t[10]=a("p",{class:"empty-state__title"},"暂无部门数据",-1)),t[11]||(t[11]=a("p",{class:"empty-state__desc"},"请检查部门配置后重试",-1)),i(h,{size:"small",onClick:m},{default:r(()=>[i(o,null,{default:r(()=>[i(u(w))]),_:1}),t[9]||(t[9]=k("重新加载",-1))]),_:1})])):(d(),c(D,{key:1},[t[12]||(t[12]=H('<div class="col-head" data-v-38163011><div class="col-head__dept" data-v-38163011>部门</div><div class="col-head__amount" data-v-38163011>目标金额(元)</div><div class="col-head__remark" data-v-38163011>备注</div><div class="col-head__badge" data-v-38163011></div></div>',1)),a("div",ut,[(d(!0),c(D,null,X(n.value,_=>(d(),x(O,{key:_.dept_id,node:_,depth:0},null,8,["node"]))),128))])],64))])),[[P,p.value]])])}}}),ae=W(ft,[["__scopeId","data-v-38163011"]]);export{ae as default};