|
|
|
|
|
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,V as r,Y as i,_ as a,d as o,i as s,it as c,kt as l,nt as u,p as d,u as f,v as p,y as m,z as h}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as g}from"./http-LCi9aT1G.js";var _={style:{display:`flex`,"justify-content":`flex-end`}},v=1060,y=m({__name:`Dictionaries`,setup(m){let y=c([]),b=c([]),x=c([]),S=c(!1),C=c(!1),w=c(!1),T=c(!0),E=c([]),D=u({dict_type:``}),O=u({dict_type:``,dict_name:``,remark:``,dict_sort:0}),k={maxHeight:`70vh`,overflow:`auto`},A=c([]);function j(e){let t=new Map;for(let n of e){t.has(n.dict_type)||t.set(n.dict_type,{dict_type:n.dict_type,dict_name:n.dict_name||``,remark:n.remark||``,dict_sort:n.dict_sort??0,item_count:0});let e=t.get(n.dict_type);e.item_count+=1,!e.dict_name&&n.dict_name&&(e.dict_name=n.dict_name),!e.remark&&n.remark&&(e.remark=n.remark),(n.dict_sort??0)<e.dict_sort&&(e.dict_sort=n.dict_sort??0)}b.value=Array.from(t.values()).sort((e,t)=>e.dict_sort-t.dict_sort||e.dict_type.localeCompare(t.dict_type)),x.value=b.value.map(e=>({value:e.dict_type,label:e.dict_name?`${e.dict_name}(${e.dict_type})`:e.dict_type}))}async function M(){S.value=!0;try{let{data:e}=await g.get(`/dict-items`);y.value=e,j(D.dict_type?y.value.filter(e=>e.dict_type===D.dict_type):y.value)}catch(t){e.error(t?.response?.data?.message??`加载数据字典失败`)}finally{S.value=!1}}function N(){T.value=!0,E.value=[],O.dict_type=``,O.dict_name=``,O.remark=``,O.dict_sort=0,A.value=[{item_label:``,item_value:``,item_remark:``,sort:0,is_active:!0}],w.value=!0}async function P(e){T.value=!1,O.dict_type=e.dict_type,O.dict_name=e.dict_name,O.remark=e.remark,O.dict_sort=e.dict_sort,S.value=!0;try{A.value=y.value.filter(t=>t.dict_type===e.dict_type).sort((e,t)=>(e.sort??0)-(t.sort??0)||e.id-t.id).map(e=>({id:e.id,item_label:e.item_label,item_value:e.item_value,item_remark:e.item_remark||``,sort:e.sort??0,is_active:e.is_active})),E.value=A.value.map(e=>e.id).filter(Boolean)}finally{S.value=!1}w.value=!0}async function F(){C.value=!0;try{let t=O.dict_type.trim(),n=O.dict_name.trim(),r=O.remark.trim();if(!t)return e.warning(`请先填写字典编码`),!1;if(!n)return e.warning(`请先填写字典名称`),!1;let i=A.value.map(e=>({...e,item_label:e.item_label.trim(),item_value:e.item_value.trim(),item_remark:e.item_remark.trim()})).filter(e=>e.item_label&&e.item_value);if(!i.length)return e.warning(`请至少保留一条完整的字典值(显示名+值)`),!1;if(T.value){for(let e of i)await g.post(`/dict-items`,{dict_type:t,dict_name:n,remark:r,dict_sort:O.dict_sort??0,item_label:e.item_label,item_value:e.item_value,item_remark:e.item_remark,sort:e.sort??0,is_active:e.is_active});e.success(`新增字典成功,共保存 ${i.length} 条字典值`)}else{let a=new Set;for(let e of i){let i={dict_type:t,dict_name:n,remark:r,dict_sort:O.dict_sort??0,item_label:e.item_label,item_value:e.item_value,item_remark:e.item_remark,sort:e.sort??0,is_active:e.is_active};e.id?(a.add(e.id),await g.put(`/dict-items/${e.id}`,i)):await g.post(`/dict-items`,i)}let o=E.value.filter(e=>!a.has(e));for(let e of o)await g.delete(`/dict-items/${e}`);e.success(`更新字典成功`)}return w.value=!1,await M(),!0}catch(t){return e.error(t?.response?.data?.message??`保存失败`),!1}finally{C.value=!1}}function I(){A.value.push({item_label:``,item_value:``,item_remark:``,sort:A.value.length,is_active:!0})}function L(t){if(A.value.length<=1){e.warning(`至少保留一条字典值`);return}A.value.splice(t,1)}async function R(t){try{let n=y.value.filter(e=>e.dict_type===t.dict_type);for(let e of n)await g.delete(`/dict-items/${e.id}`);e.success(`删除字典成功`),await M()}catch(t){e.error(t?.response?.data?.message??`删除失败`)}}return n(M),(e,n)=>{let c=r(`a-option`),u=r(`a-select`),m=r(`a-button`),g=r(`a-space`),y=r(`a-table-column`),E=r(`a-popconfirm`),j=r(`a-table`),z=r(`a-card`),B=r(`a-input`),V=r(`a-form-item`),H=r(`a-textarea`),U=r(`a-input-number`),W=r(`a-switch`),G=r(`a-form`),K=r(`a-modal`);return t(),d(s,null,[p(z,{title:`系统设置 / 数据字典`},{extra:i(()=>
|