Files
yuezi-saas/frontend/dist/assets/dictionaries-CV3_WCLC.js
T

1 line
12 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{$ as e,H as t,L as n,P as ee,V as r,Vt as i,Wt as a,_ as o,d as s,et as c,f as l,i as te,lt as u,p as d,st as f,u as p,v as m,z as ne}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{l as re,o as h,s as g,t as _,u as ie}from"./index-3YculFMX.js";import"./request-DD5g7hLU.js";import{dictApi as v}from"./system-DEm1DLCy.js";var ae={class:`p-6 space-y-4`},oe={class:`flex gap-4`,style:{"min-height":`0`}},se={class:`bg-white rounded-2xl border border-gray-100 shadow-sm flex flex-col gap-3 p-4`,style:{width:`280px`,"flex-shrink":`0`,height:`fit-content`,"max-height":`calc(100vh - 140px)`,overflow:`hidden`}},ce={class:`flex items-center justify-between`},le={class:`flex-1 overflow-y-auto`,style:{"min-height":`100px`}},ue=[`onClick`],de={class:`flex-1 min-w-0`},fe={class:`text-[11px] text-gray-400 mt-0.5`},pe={class:`bg-white rounded-2xl border border-gray-100 shadow-sm flex-1 min-w-0`},me={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},he={class:`text-[15px] font-semibold text-gray-800`},ge={class:`px-2`},_e={key:1},ve={key:1,class:`px-5 py-3 border-t border-gray-50`},ye={style:{display:`flex`,"align-items":`center`,gap:`10px`}},y=_({__name:`index`,setup(_){let y=u([]),b=u(0),x=u(!1),S=u(null),C=f({keyword:``}),w=f({page:1,page_size:20}),T=u(!1),E=u(`新增字典类型`),D=u(!1),O=u(!1),k=u(null),A=f({id:null,name:``,code:``,description:``,status:1}),be={name:[{required:!0,message:`请输入类型名称`,trigger:`blur`}],code:[{required:!0,message:`请输入类型编码`,trigger:`blur`},{pattern:/^[a-zA-Z][a-zA-Z0-9_]*$/,message:`编码以字母开头,只允许字母、数字、下划线`,trigger:`blur`}]},j=u([]),M=u(0),N=u(!1),P=f({page:1,page_size:20}),F=u(!1),I=u(`新增字典项`),L=u(!1),R=u(!1),z=u(null),B=f({id:null,label:``,value:``,sort:0,color:``,description:``,status:1}),xe={label:[{required:!0,message:`请输入字典标签`,trigger:`blur`}],value:[{required:!0,message:`请输入字典值`,trigger:`blur`}]};async function V(){x.value=!0;try{let e=await v.getTypeList({keyword:C.keyword,...w});y.value=e.data?.list||[],b.value=e.data?.total||0,!S.value&&y.value.length>0&&H(y.value[0])}catch{}finally{x.value=!1}}function H(e){S.value=e,P.page=1,W()}function U(){w.page=1,V()}function Se(){O.value=!1,E.value=`新增字典类型`,Object.assign(A,{id:null,name:``,code:``,description:``,status:1}),T.value=!0}async function Ce(e){O.value=!0,E.value=`编辑字典类型 - ${e.name}`,Object.assign(A,{id:e.id,name:e.name,code:e.code,description:e.description||``,status:e.status}),T.value=!0}async function we(){k.value&&await k.value.validate(async e=>{if(e){D.value=!0;try{O.value?(await v.deleteType(A.id),await v.createType({name:A.name,code:A.code,description:A.description,status:A.status}),g.success(`字典类型更新成功`),S.value?.id===A.id&&(S.value.name=A.name)):(await v.createType(A),g.success(`字典类型创建成功`)),T.value=!1,V()}catch{}finally{D.value=!1}}})}async function Te(e){await h.confirm(`确定删除字典类型「${e.name}」吗?该类型下的所有字典项将一并删除。`,`删除确认`,{confirmButtonText:`确定删除`,cancelButtonText:`取消`,type:`warning`,confirmButtonClass:`el-button--danger`}),await v.deleteType(e.id),g.success(`删除成功`),S.value?.id===e.id&&(S.value=null,j.value=[]),V()}async function W(){if(S.value){N.value=!0;try{let e=await v.getItemList(S.value.id,P);j.value=e.data?.list||[],M.value=e.data?.total||0}catch{}finally{N.value=!1}}}function Ee(){if(!S.value){g.warning(`请先选择左侧字典类型`);return}R.value=!1,I.value=`在「${S.value.name}」下新增字典项`,Object.assign(B,{id:null,label:``,value:``,sort:0,color:``,description:``,status:1}),F.value=!0}async function De(e){R.value=!0,I.value=`编辑字典项 - ${e.label}`,Object.assign(B,{id:e.id,label:e.label,value:e.value,sort:e.sort||0,color:e.color||``,description:e.description||``,status:e.status}),F.value=!0}async function Oe(){z.value&&await z.value.validate(async e=>{if(e){L.value=!0;try{R.value?(await v.updateItem(B.id,B),g.success(`字典项更新成功`)):(await v.createItem(S.value.id,B),g.success(`字典项创建成功`)),F.value=!1,W()}catch{}finally{L.value=!1}}})}async function ke(e){await h.confirm(`确定删除字典项「${e.label}」吗?`,`删除确认`,{confirmButtonText:`确定删除`,cancelButtonText:`取消`,type:`warning`,confirmButtonClass:`el-button--danger`}),await v.deleteItem(e.id),g.success(`删除成功`),W()}function Ae(e){P.page=e,W()}return ee(V),(ee,u)=>{let f=r(`el-button`),h=r(`Search`),g=r(`el-icon`),_=r(`el-input`),v=r(`Edit`),W=r(`Delete`),G=r(`el-empty`),K=r(`el-pagination`),q=r(`el-tag`),J=r(`el-table-column`),je=r(`el-table`),Y=r(`el-form-item`),X=r(`el-radio`),Z=r(`el-radio-group`),Q=r(`el-form`),Me=r(`el-dialog`),Ne=r(`el-color-picker`),Pe=r(`el-input-number`),$=t(`loading`);return n(),d(`div`,ae,[p(`div`,oe,[p(`div`,se,[p(`div`,ce,[u[18]||=p(`span`,{class:`text-[15px] font-semibold text-gray-800`},`字典类型`,-1),m(f,{size:`small`,type:`primary`,icon:`Plus`,onClick:Se})]),p(`div`,null,[m(_,{modelValue:C.keyword,"onUpdate:modelValue":u[0]||=e=>C.keyword=e,placeholder:`搜索类型`,size:`small`,clearable:``,onKeydown:re(U,[`enter`]),onClear:U},{prefix:e(()=>[m(g,null,{default:e(()=>[m(h)]),_:1})]),_:1},8,[`modelValue`])]),c((n(),d(`div`,le,[(n(!0),d(te,null,ne(y.value,t=>(n(),d(`div`,{key:t.id,class:i([`flex items-center justify-between px-3 py-2.5 rounded-md cursor-pointer transition-colors duration-150 hover:bg-blue-50 group`,{"bg-blue-50":S.value?.id===t.id}]),onClick:e=>H(t)},[p(`div`,de,[p(`div`,{class:i([`text-sm truncate`,S.value?.id===t.id?`text-blue-700 font-semibold`:`text-gray-800`])},a(t.name),3),p(`div`,fe,a(t.code),1)]),p(`div`,{class:`flex gap-1.5 opacity-0 group-hover:opacity-100 transition-opacity duration-150`,onClick:u[1]||=ie(()=>{},[`stop`])},[m(g,{class:`cursor-pointer text-gray-400 hover:text-blue-500 text-[14px]`,onClick:e=>Ce(t)},{default:e(()=>[m(v)]),_:1},8,[`onClick`]),m(g,{class:`cursor-pointer text-gray-400 hover:text-red-500 text-[14px]`,onClick:e=>Te(t)},{default:e(()=>[m(W)]),_:1},8,[`onClick`])])],10,ue))),128)),!x.value&&y.value.length===0?(n(),s(G,{key:0,description:`暂无字典类型`,"image-size":60})):l(``,!0)])),[[$,x.value]]),b.value>w.page_size?(n(),s(K,{key:0,"current-page":w.page,"onUpdate:currentPage":u[2]||=e=>w.page=e,"page-size":w.page_size,total:b.value,layout:`prev, pager, next`,small:``,onCurrentChange:V},null,8,[`current-page`,`page-size`,`total`])):l(``,!0)]),p(`div`,pe,[p(`div`,me,[p(`span`,he,a(S.value?`字典项 — ${S.value.name}${S.value.code}`:`字典项`),1),m(f,{size:`small`,type:`primary`,icon:`Plus`,disabled:!S.value,onClick:Ee},{default:e(()=>[...u[19]||=[o(` 新增字典项 `,-1)]]),_:1},8,[`disabled`])]),p(`div`,ge,[c((n(),s(je,{data:j.value,style:{width:`100%`}},{default:e(()=>[m(J,{prop:`label`,label:`字典标签`,"min-width":`140`},{default:e(({row:t})=>[t.color?(n(),s(q,{key:0,color:t.color,style:{color:`#fff`,"border-color":`transparent`},size:`small`},{default:e(()=>[o(a(t.label),1)]),_:2},1032,[`color`])):(n(),d(`span`,_e,a(t.label),1))]),_:1}),m(J,{prop:`value`,label:`字典值`,"min-width":`120`}),m(J,{prop:`sort`,label:`排序`,width:`70`,align:`center`}),m(J,{label:`状态`,width:`80`,align:`center`},{default:e(({row:t})=>[m(q,{type:t.status===1?`success`:`danger`,size:`small`},{default:e(()=>[o(a(t.status===1?`启用`:`禁用`),1)]),_:2},1032,[`type`])]),_:1}),m(J,{prop:`description`,label:`备注`,"min-width":`160`,"show-overflow-tooltip":``}),m(J,{label:`操作`,width:`120`,fixed:`right`,align:`center`},{default:e(({row:t})=>[m(f,{size:`small`,type:`primary`,text:``,onClick:e=>De(t)},{default:e(()=>[...u[20]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),m(f,{size:`small`,type:`danger`,text:``,onClick:e=>ke(t)},{default:e(()=>[...u[21]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[$,N.value]])]),!N.value&&!S.value?(n(),s(G,{key:0,description:`请在左侧选择字典类型`,style:{"margin-top":`40px`}})):l(``,!0),M.value>0?(n(),d(`div`,ve,[m(K,{"current-page":P.page,"onUpdate:currentPage":u[3]||=e=>P.page=e,"page-size":P.page_size,total:M.value,layout:`total, prev, pager, next`,background:``,onCurrentChange:Ae},null,8,[`current-page`,`page-size`,`total`])])):l(``,!0)])]),m(Me,{modelValue:T.value,"onUpdate:modelValue":u[9]||=e=>T.value=e,title:E.value,width:`460px`,"destroy-on-close":``},{footer:e(()=>[m(f,{onClick:u[8]||=e=>T.value=!1},{default:e(()=>[...u[25]||=[o(`取消`,-1)]]),_:1}),m(f,{type:`primary`,loading:D.value,onClick:we},{default:e(()=>[o(a(O.value?`保存修改`:`确认创建`),1)]),_:1},8,[`loading`])]),default:e(()=>[m(Q,{ref_key:`typeFormRef`,ref:k,model:A,rules:be,"label-width":`90px`},{default:e(()=>[m(Y,{label:`类型名称`,prop:`name`},{default:e(()=>[m(_,{modelValue:A.name,"onUpdate:modelValue":u[4]||=e=>A.name=e,placeholder:`如: 性别、状态`},null,8,[`modelValue`])]),_:1}),m(Y,{label:`类型编码`,prop:`code`},{default:e(()=>[m(_,{modelValue:A.code,"onUpdate:modelValue":u[5]||=e=>A.code=e,placeholder:`如: gender、order_status`,disabled:O.value},null,8,[`modelValue`,`disabled`]),u[22]||=p(`div`,{class:`form-tip`},`编码唯一,用于程序中取值,创建后不可修改`,-1)]),_:1}),m(Y,{label:`描述`,prop:`description`},{default:e(()=>[m(_,{modelValue:A.description,"onUpdate:modelValue":u[6]||=e=>A.description=e,type:`textarea`,rows:2,placeholder:`选填`},null,8,[`modelValue`])]),_:1}),m(Y,{label:`状态`,prop:`status`},{default:e(()=>[m(Z,{modelValue:A.status,"onUpdate:modelValue":u[7]||=e=>A.status=e},{default:e(()=>[m(X,{value:1},{default:e(()=>[...u[23]||=[o(`启用`,-1)]]),_:1}),m(X,{value:0},{default:e(()=>[...u[24]||=[o(`禁用`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`]),m(Me,{modelValue:F.value,"onUpdate:modelValue":u[17]||=e=>F.value=e,title:I.value,width:`460px`,"destroy-on-close":``},{footer:e(()=>[m(f,{onClick:u[16]||=e=>F.value=!1},{default:e(()=>[...u[29]||=[o(`取消`,-1)]]),_:1}),m(f,{type:`primary`,loading:L.value,onClick:Oe},{default:e(()=>[o(a(R.value?`保存修改`:`确认创建`),1)]),_:1},8,[`loading`])]),default:e(()=>[m(Q,{ref_key:`itemFormRef`,ref:z,model:B,rules:xe,"label-width":`90px`},{default:e(()=>[m(Y,{label:`字典标签`,prop:`label`},{default:e(()=>[m(_,{modelValue:B.label,"onUpdate:modelValue":u[10]||=e=>B.label=e,placeholder:`显示文本,如: 男、启用`},null,8,[`modelValue`])]),_:1}),m(Y,{label:`字典值`,prop:`value`},{default:e(()=>[m(_,{modelValue:B.value,"onUpdate:modelValue":u[11]||=e=>B.value=e,placeholder:`存储值,如: male、1`},null,8,[`modelValue`])]),_:1}),m(Y,{label:`标签颜色`,prop:`color`},{default:e(()=>[p(`div`,ye,[m(Ne,{modelValue:B.color,"onUpdate:modelValue":u[12]||=e=>B.color=e},null,8,[`modelValue`]),u[26]||=p(`span`,{class:`form-tip`},`可选,设置后标签将显示对应颜色`,-1)])]),_:1}),m(Y,{label:`排序`,prop:`sort`},{default:e(()=>[m(Pe,{modelValue:B.sort,"onUpdate:modelValue":u[13]||=e=>B.sort=e,min:0,max:9999,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),m(Y,{label:`状态`,prop:`status`},{default:e(()=>[m(Z,{modelValue:B.status,"onUpdate:modelValue":u[14]||=e=>B.status=e},{default:e(()=>[m(X,{value:1},{default:e(()=>[...u[27]||=[o(`启用`,-1)]]),_:1}),m(X,{value:0},{default:e(()=>[...u[28]||=[o(`禁用`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),m(Y,{label:`备注`,prop:`description`},{default:e(()=>[m(_,{modelValue:B.description,"onUpdate:modelValue":u[15]||=e=>B.description=e,type:`textarea`,rows:2,placeholder:`选填`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}},[[`__scopeId`,`data-v-aa3d11a2`]]);export{y as default};