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