2 lines
9.8 KiB
JavaScript
2 lines
9.8 KiB
JavaScript
import{d as ne,r as m,a as N,o as ie,g as n,B as pe,c as me,k as V,e as l,w as a,C as A,z as w,t as r,x as C,ap as G,b as x,l as H,D as W,G as X,aq as fe,X as J,ar as ye,E as y,as as ve,at as ce,au as be,av as ge,aw as _e,ax as ke,_ as Ve}from"./index-Cz1Ax9N2.js";const we={class:"dict-container"},Te={class:"card-header"},Ce={class:"card-header"},xe=ne({__name:"index",setup(qe){const q=m(!1),L=m([]),d=m(null);async function D(){q.value=!0;try{const u=await fe();L.value=u.data||[]}catch(u){console.error("加载字典类型失败",u)}finally{q.value=!1}}function K(u){d.value=u,u?U(u.code):T.value=[]}const b=m(!1),I=m(!1),S=m(),o=N({id:0,code:"",name:"",sourceType:1,sqlQuery:"",status:1,remark:""}),P={code:[{required:!0,message:"请输入编码",trigger:"blur"},{pattern:/^[a-z_]+$/,message:"编码只能包含小写字母和下划线",trigger:"blur"}],name:[{required:!0,message:"请输入名称",trigger:"blur"}],sourceType:[{required:!0,message:"请选择数据源",trigger:"change"}],sqlQuery:[{required:!0,message:"请输入SQL语句",trigger:"blur"}]};function Y(){Object.assign(o,{id:0,code:"",name:"",sourceType:1,sqlQuery:"",status:1,remark:""}),b.value=!0}function Z(u){Object.assign(o,u),b.value=!0}async function h(u){var e;try{await J.confirm(`确定删除字典类型「${u.name}」吗?删除后关联的数据项也会被删除。`,"提示",{type:"warning"}),await ye(u.id),y.success("删除成功"),((e=d.value)==null?void 0:e.id)===u.id&&(d.value=null,T.value=[]),D()}catch(_){_!=="cancel"&&y.error("删除失败")}}async function ee(){var e;if(await((e=S.value)==null?void 0:e.validate())){I.value=!0;try{o.id?(await ve(o.id,{name:o.name,sourceType:o.sourceType,sqlQuery:o.sqlQuery,status:o.status,remark:o.remark}),y.success("更新成功")):(await ce({code:o.code,name:o.name,sourceType:o.sourceType,sqlQuery:o.sqlQuery,status:o.status,remark:o.remark}),y.success("创建成功")),b.value=!1,D()}catch{y.error(o.id?"更新失败":"创建失败")}finally{I.value=!1}}}const Q=m(!1),T=m([]);async function U(u){Q.value=!0;try{const e=await be(u);T.value=e.data||[]}catch(e){console.error("加载字典数据失败",e)}finally{Q.value=!1}}const g=m(!1),E=m(!1),z=m(),s=N({id:0,typeId:0,label:"",value:"",sort:0,status:1,remark:""}),le={label:[{required:!0,message:"请输入标签",trigger:"blur"}],value:[{required:!0,message:"请输入值",trigger:"blur"}]};function ae(){d.value&&(Object.assign(s,{id:0,typeId:d.value.id,label:"",value:"",sort:0,status:1,remark:""}),g.value=!0)}function te(u){Object.assign(s,u),g.value=!0}async function oe(u){try{await J.confirm(`确定删除字典数据「${u.label}」吗?`,"提示",{type:"warning"}),await ge(u.id),y.success("删除成功"),d.value&&U(d.value.code)}catch(e){e!=="cancel"&&y.error("删除失败")}}async function se(){var e;if(await((e=z.value)==null?void 0:e.validate())){E.value=!0;try{s.id?(await _e(s.id,{label:s.label,value:s.value,sort:s.sort,status:s.status,remark:s.remark}),y.success("更新成功")):(await ke({typeId:s.typeId,label:s.label,value:s.value,sort:s.sort,status:s.status,remark:s.remark}),y.success("创建成功")),g.value=!1,d.value&&U(d.value.code)}catch{y.error(s.id?"更新失败":"创建失败")}finally{E.value=!1}}}return ie(()=>{D()}),(u,e)=>{const _=n("el-icon"),f=n("el-button"),i=n("el-table-column"),$=n("el-tag"),R=n("el-table"),B=n("el-card"),ue=n("el-empty"),v=n("el-input"),p=n("el-form-item"),k=n("el-radio"),F=n("el-radio-group"),M=n("el-form"),O=n("el-dialog"),re=n("el-input-number"),j=pe("loading");return V(),me("div",we,[l(B,{class:"dict-type-card"},{header:a(()=>[x("div",Te,[e[16]||(e[16]=x("span",null,"字典类型",-1)),l(f,{type:"primary",size:"small",onClick:Y},{default:a(()=>[l(_,null,{default:a(()=>[l(H(W))]),_:1}),e[15]||(e[15]=r("新增类型 ",-1))]),_:1})])]),default:a(()=>[A((V(),w(R,{data:L.value,"highlight-current-row":"",onCurrentChange:K,style:{width:"100%"}},{default:a(()=>[l(i,{prop:"code",label:"编码",width:"150"}),l(i,{prop:"name",label:"名称",width:"150"}),l(i,{prop:"sourceType",label:"数据源",width:"100"},{default:a(({row:t})=>[l($,{type:t.sourceType===1?"success":"warning"},{default:a(()=>[r(C(t.sourceType===1?"静态数据":"SQL查询"),1)]),_:2},1032,["type"])]),_:1}),l(i,{prop:"status",label:"状态",width:"80"},{default:a(({row:t})=>[l($,{type:t.status===1?"success":"danger"},{default:a(()=>[r(C(t.status===1?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),l(i,{prop:"remark",label:"备注","show-overflow-tooltip":""}),l(i,{label:"操作",width:"150",fixed:"right"},{default:a(({row:t})=>[l(f,{type:"primary",link:"",size:"small",onClick:G(c=>Z(t),["stop"])},{default:a(()=>[...e[17]||(e[17]=[r("编辑",-1)])]),_:1},8,["onClick"]),l(f,{type:"danger",link:"",size:"small",onClick:G(c=>h(t),["stop"])},{default:a(()=>[...e[18]||(e[18]=[r("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[j,q.value]])]),_:1}),l(B,{class:"dict-item-card"},{header:a(()=>[x("div",Ce,[x("span",null,"字典数据 "+C(d.value?`- ${d.value.name}`:""),1),l(f,{type:"primary",size:"small",disabled:!d.value||d.value.sourceType!==1,onClick:ae},{default:a(()=>[l(_,null,{default:a(()=>[l(H(W))]),_:1}),e[19]||(e[19]=r("新增数据 ",-1))]),_:1},8,["disabled"])])]),default:a(()=>[d.value?A((V(),w(R,{key:1,data:T.value,style:{width:"100%"}},{default:a(()=>{var t;return[l(i,{prop:"label",label:"标签"}),l(i,{prop:"value",label:"值"}),l(i,{prop:"sort",label:"排序",width:"80"}),l(i,{prop:"status",label:"状态",width:"80"},{default:a(({row:c})=>[l($,{type:c.status===1?"success":"danger"},{default:a(()=>[r(C(c.status===1?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),l(i,{prop:"remark",label:"备注","show-overflow-tooltip":""}),((t=d.value)==null?void 0:t.sourceType)===1?(V(),w(i,{key:0,label:"操作",width:"150",fixed:"right"},{default:a(({row:c})=>[l(f,{type:"primary",link:"",size:"small",onClick:de=>te(c)},{default:a(()=>[...e[20]||(e[20]=[r("编辑",-1)])]),_:1},8,["onClick"]),l(f,{type:"danger",link:"",size:"small",onClick:de=>oe(c)},{default:a(()=>[...e[21]||(e[21]=[r("删除",-1)])]),_:1},8,["onClick"])]),_:1})):X("",!0)]}),_:1},8,["data"])),[[j,Q.value]]):(V(),w(ue,{key:0,description:"请选择左侧字典类型"}))]),_:1}),l(O,{modelValue:b.value,"onUpdate:modelValue":e[7]||(e[7]=t=>b.value=t),title:o.id?"编辑字典类型":"新增字典类型",width:"500px"},{footer:a(()=>[l(f,{onClick:e[6]||(e[6]=t=>b.value=!1)},{default:a(()=>[...e[26]||(e[26]=[r("取消",-1)])]),_:1}),l(f,{type:"primary",loading:I.value,onClick:ee},{default:a(()=>[...e[27]||(e[27]=[r("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(M,{ref_key:"typeFormRef",ref:S,model:o,rules:P,"label-width":"100px"},{default:a(()=>[l(p,{label:"编码",prop:"code"},{default:a(()=>[l(v,{modelValue:o.code,"onUpdate:modelValue":e[0]||(e[0]=t=>o.code=t),disabled:!!o.id,placeholder:"请输入编码"},null,8,["modelValue","disabled"])]),_:1}),l(p,{label:"名称",prop:"name"},{default:a(()=>[l(v,{modelValue:o.name,"onUpdate:modelValue":e[1]||(e[1]=t=>o.name=t),placeholder:"请输入名称"},null,8,["modelValue"])]),_:1}),l(p,{label:"数据源",prop:"sourceType"},{default:a(()=>[l(F,{modelValue:o.sourceType,"onUpdate:modelValue":e[2]||(e[2]=t=>o.sourceType=t),disabled:!!o.id},{default:a(()=>[l(k,{value:1},{default:a(()=>[...e[22]||(e[22]=[r("静态数据",-1)])]),_:1}),l(k,{value:2},{default:a(()=>[...e[23]||(e[23]=[r("SQL查询",-1)])]),_:1})]),_:1},8,["modelValue","disabled"])]),_:1}),o.sourceType===2?(V(),w(p,{key:0,label:"SQL语句",prop:"sqlQuery"},{default:a(()=>[l(v,{modelValue:o.sqlQuery,"onUpdate:modelValue":e[3]||(e[3]=t=>o.sqlQuery=t),type:"textarea",rows:4,placeholder:"SELECT value, label FROM table WHERE status = 1"},null,8,["modelValue"])]),_:1})):X("",!0),l(p,{label:"状态",prop:"status"},{default:a(()=>[l(F,{modelValue:o.status,"onUpdate:modelValue":e[4]||(e[4]=t=>o.status=t)},{default:a(()=>[l(k,{value:1},{default:a(()=>[...e[24]||(e[24]=[r("启用",-1)])]),_:1}),l(k,{value:0},{default:a(()=>[...e[25]||(e[25]=[r("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(p,{label:"备注",prop:"remark"},{default:a(()=>[l(v,{modelValue:o.remark,"onUpdate:modelValue":e[5]||(e[5]=t=>o.remark=t),type:"textarea",rows:2,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(O,{modelValue:g.value,"onUpdate:modelValue":e[14]||(e[14]=t=>g.value=t),title:s.id?"编辑字典数据":"新增字典数据",width:"500px"},{footer:a(()=>[l(f,{onClick:e[13]||(e[13]=t=>g.value=!1)},{default:a(()=>[...e[30]||(e[30]=[r("取消",-1)])]),_:1}),l(f,{type:"primary",loading:E.value,onClick:se},{default:a(()=>[...e[31]||(e[31]=[r("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(M,{ref_key:"itemFormRef",ref:z,model:s,rules:le,"label-width":"80px"},{default:a(()=>[l(p,{label:"标签",prop:"label"},{default:a(()=>[l(v,{modelValue:s.label,"onUpdate:modelValue":e[8]||(e[8]=t=>s.label=t),placeholder:"请输入标签"},null,8,["modelValue"])]),_:1}),l(p,{label:"值",prop:"value"},{default:a(()=>[l(v,{modelValue:s.value,"onUpdate:modelValue":e[9]||(e[9]=t=>s.value=t),placeholder:"请输入值"},null,8,["modelValue"])]),_:1}),l(p,{label:"排序",prop:"sort"},{default:a(()=>[l(re,{modelValue:s.sort,"onUpdate:modelValue":e[10]||(e[10]=t=>s.sort=t),min:0,max:9999},null,8,["modelValue"])]),_:1}),l(p,{label:"状态",prop:"status"},{default:a(()=>[l(F,{modelValue:s.status,"onUpdate:modelValue":e[11]||(e[11]=t=>s.status=t)},{default:a(()=>[l(k,{value:1},{default:a(()=>[...e[28]||(e[28]=[r("启用",-1)])]),_:1}),l(k,{value:0},{default:a(()=>[...e[29]||(e[29]=[r("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(p,{label:"备注",prop:"remark"},{default:a(()=>[l(v,{modelValue:s.remark,"onUpdate:modelValue":e[12]||(e[12]=t=>s.remark=t),type:"textarea",rows:2,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Ie=Ve(xe,[["__scopeId","data-v-124ceeb6"]]);export{Ie as default};
|