mi-assessment/server/MiAssessment/src/MiAssessment.Admin/wwwroot/assets/index-Dohy6c1V.js
2026-02-20 21:46:53 +08:00

2 lines
6.3 KiB
JavaScript

import{d as ne,r as s,v as S,a as oe,o as de,g as d,B as A,c as se,k as m,e as t,w as l,C as v,z as _,t as r,x as re,b as F,l as ue,D as ie,E as V,W as pe,an as me,_ as ce}from"./index-BsIaGxbR.js";import{g as fe,u as ve,c as _e,d as ye,a as ge,b as be}from"./department-BA59MD1G.js";const ke={class:"page-container"},Ve={class:"card-header"},Ce=ne({__name:"index",setup(xe){const C=s(!1),k=s([]),p=s(!1),c=s(!1),N=S(()=>c.value?"编辑部门":"新增部门"),x=s(),D=s(!1),a=oe({id:0,parentId:0,name:"",code:"",sortOrder:0,status:1}),q={name:[{required:!0,message:"请输入部门名称",trigger:"blur"}],code:[{required:!0,message:"请输入部门编码",trigger:"blur"},{pattern:/^[a-z0-9_]+$/,message:"只能包含小写字母、数字和下划线",trigger:"blur"}]},z=S(()=>{if(!c.value)return[{id:0,name:"顶级部门",children:k.value}];const n=e=>e.filter(i=>i.id!==a.id).map(i=>({...i,children:n(i.children||[])}));return[{id:0,name:"顶级部门",children:n(k.value)}]}),y=s(!1),O=s(),w=s([]),$=s([]),U=s(0),I=s(!1),T=async()=>{C.value=!0;try{const n=await fe();k.value=n.data}finally{C.value=!1}},M=()=>{var n;a.id=0,a.parentId=0,a.name="",a.code="",a.sortOrder=0,a.status=1,(n=x.value)==null||n.resetFields()},L=()=>{c.value=!1,M(),p.value=!0},K=n=>{c.value=!1,M(),a.parentId=n.id,p.value=!0},W=n=>{c.value=!0,a.id=n.id,a.parentId=n.parentId,a.name=n.name,a.code=n.code,a.sortOrder=n.sortOrder,a.status=n.status,p.value=!0},j=async()=>{var e;if(await((e=x.value)==null?void 0:e.validate())){D.value=!0;try{c.value?(await ve(a.id,a),V.success("更新成功")):(await _e(a),V.success("创建成功")),p.value=!1,T()}finally{D.value=!1}}},G=async n=>{try{await pe.confirm(`确定要删除部门 "${n.name}" 吗?删除后其子部门也会被删除。`,"提示",{type:"warning"}),await ye(n.id),V.success("删除成功"),T()}catch{}},H=async n=>{if(U.value=n.id,w.value.length===0){const i=await me();w.value=i.data}const e=await ge(n.id);$.value=e.data,y.value=!0},J=async()=>{var n;I.value=!0;try{const e=(n=O.value)==null?void 0:n.getCheckedKeys(!1);await be({departmentId:U.value,menuIds:e}),V.success("分配成功"),y.value=!1}finally{I.value=!1}};return de(()=>{T()}),(n,e)=>{const i=d("el-icon"),u=d("el-button"),f=d("el-table-column"),P=d("el-tag"),Q=d("el-table"),X=d("el-card"),Y=d("el-tree-select"),g=d("el-form-item"),B=d("el-input"),Z=d("el-input-number"),E=d("el-radio"),ee=d("el-radio-group"),te=d("el-form"),R=d("el-dialog"),le=d("el-tree"),b=A("permission"),ae=A("loading");return m(),se("div",ke,[t(X,null,{header:l(()=>[F("div",Ve,[e[10]||(e[10]=F("span",null,"部门管理",-1)),v((m(),_(u,{type:"primary",onClick:L},{default:l(()=>[t(i,null,{default:l(()=>[t(ue(ie))]),_:1}),e[9]||(e[9]=r("新增部门 ",-1))]),_:1})),[[b,"system:dept:add"]])])]),default:l(()=>[v((m(),_(Q,{data:k.value,"row-key":"id","tree-props":{children:"children"}},{default:l(()=>[t(f,{prop:"name",label:"部门名称","min-width":"200"}),t(f,{prop:"code",label:"部门编码","min-width":"120"}),t(f,{prop:"sortOrder",label:"排序",width:"80"}),t(f,{prop:"status",label:"状态",width:"80"},{default:l(({row:o})=>[t(P,{type:o.status===1?"success":"danger"},{default:l(()=>[r(re(o.status===1?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),t(f,{prop:"createdAt",label:"创建时间",width:"170"}),t(f,{label:"操作",width:"250",fixed:"right"},{default:l(({row:o})=>[v((m(),_(u,{link:"",type:"primary",onClick:h=>W(o)},{default:l(()=>[...e[11]||(e[11]=[r("编辑",-1)])]),_:1},8,["onClick"])),[[b,"system:dept:edit"]]),v((m(),_(u,{link:"",type:"primary",onClick:h=>K(o)},{default:l(()=>[...e[12]||(e[12]=[r("添加子部门",-1)])]),_:1},8,["onClick"])),[[b,"system:dept:add"]]),v((m(),_(u,{link:"",type:"primary",onClick:h=>H(o)},{default:l(()=>[...e[13]||(e[13]=[r("分配菜单",-1)])]),_:1},8,["onClick"])),[[b,"system:dept:edit"]]),v((m(),_(u,{link:"",type:"danger",onClick:h=>G(o)},{default:l(()=>[...e[14]||(e[14]=[r("删除",-1)])]),_:1},8,["onClick"])),[[b,"system:dept:delete"]])]),_:1})]),_:1},8,["data"])),[[ae,C.value]])]),_:1}),t(R,{modelValue:p.value,"onUpdate:modelValue":e[6]||(e[6]=o=>p.value=o),title:N.value,width:"500px",onClose:M,"destroy-on-close":!0},{footer:l(()=>[t(u,{onClick:e[5]||(e[5]=o=>p.value=!1)},{default:l(()=>[...e[17]||(e[17]=[r("取消",-1)])]),_:1}),t(u,{type:"primary",onClick:j,loading:D.value},{default:l(()=>[...e[18]||(e[18]=[r("确定",-1)])]),_:1},8,["loading"])]),default:l(()=>[t(te,{ref_key:"formRef",ref:x,model:a,rules:q,"label-width":"80px"},{default:l(()=>[t(g,{label:"上级部门",prop:"parentId"},{default:l(()=>[t(Y,{modelValue:a.parentId,"onUpdate:modelValue":e[0]||(e[0]=o=>a.parentId=o),data:z.value,props:{label:"name",value:"id",children:"children"},"check-strictly":"","render-after-expand":!1,placeholder:"请选择上级部门",clearable:"",style:{width:"100%"}},null,8,["modelValue","data"])]),_:1}),t(g,{label:"部门名称",prop:"name"},{default:l(()=>[t(B,{modelValue:a.name,"onUpdate:modelValue":e[1]||(e[1]=o=>a.name=o),placeholder:"请输入部门名称"},null,8,["modelValue"])]),_:1}),t(g,{label:"部门编码",prop:"code"},{default:l(()=>[t(B,{modelValue:a.code,"onUpdate:modelValue":e[2]||(e[2]=o=>a.code=o),placeholder:"请输入部门编码"},null,8,["modelValue"])]),_:1}),t(g,{label:"排序",prop:"sortOrder"},{default:l(()=>[t(Z,{modelValue:a.sortOrder,"onUpdate:modelValue":e[3]||(e[3]=o=>a.sortOrder=o),min:0,max:9999},null,8,["modelValue"])]),_:1}),t(g,{label:"状态",prop:"status"},{default:l(()=>[t(ee,{modelValue:a.status,"onUpdate:modelValue":e[4]||(e[4]=o=>a.status=o)},{default:l(()=>[t(E,{value:1},{default:l(()=>[...e[15]||(e[15]=[r("启用",-1)])]),_:1}),t(E,{value:0},{default:l(()=>[...e[16]||(e[16]=[r("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),t(R,{modelValue:y.value,"onUpdate:modelValue":e[8]||(e[8]=o=>y.value=o),title:"分配部门菜单",width:"500px"},{footer:l(()=>[t(u,{onClick:e[7]||(e[7]=o=>y.value=!1)},{default:l(()=>[...e[19]||(e[19]=[r("取消",-1)])]),_:1}),t(u,{type:"primary",onClick:J,loading:I.value},{default:l(()=>[...e[20]||(e[20]=[r("确定",-1)])]),_:1},8,["loading"])]),default:l(()=>[t(le,{ref_key:"menuTreeRef",ref:O,data:w.value,props:{label:"name",children:"children"},"show-checkbox":"","node-key":"id","default-checked-keys":$.value,"check-strictly":!0},null,8,["data","default-checked-keys"])]),_:1},8,["modelValue"])])}}}),Ie=ce(Ce,[["__scopeId","data-v-19a5d1c0"]]);export{Ie as default};