PermissionAccount-DztO2k1v.js 14 KB

1
  1. import he from"./ContentContainer-DKHPSogk.js";import{_ as ge,B as we}from"./Modal-CGqJmUM8.js";import{ab as Y,c as f,o as _,g as b,w as s,f as t,j as v,h as se,e as Q,i as N,t as $,d as q,F as j,q as Z,Z as oe,r as h,$ as ae,Q as ke,A as F,u as ye,b as be,m as $e,ac as Ie,a1 as Ne,s as H,B as K,ad as Ce,M as xe}from"./index-Depr168F.js";import{A as Ve,D as Ue}from"./Action-owxDRu5l.js";import{_ as G}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as De}from"./login-DhbCKSfw.js";import{Q as Se,a as Ae}from"./common-D343zzik.js";const Pe={__name:"AccountForm",props:{edit_form:Object,is_edit_mode:Boolean,role_list:Array},setup(p){const E=p,x={userName:[{required:!0,message:"用户名必填"}],email:[{required:!0,message:"邮箱必填"}],pwd:[{required:!0,message:"密码必填"},{validator:(w,n)=>{const g=/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;w.length<8||!g.test(w)?n("密码至少8位,且包含字母和数字"):n()}}]},{edit_form:r,is_edit_mode:O,role_list:L}=Y(E),V=w=>{r.role=w};return(w,n)=>{const g=f("a-input"),i=f("a-form-item"),l=f("a-col"),z=f("a-row"),S=f("a-select"),A=f("a-form");return _(),b(A,{ref:"accountFormRef",rules:x,model:v(r),"auto-label-width":""},{default:s(()=>[t(z,{gutter:24,class:"flex-row"},{default:s(()=>[v(O)?se("",!0):(_(),b(l,{key:0,span:12,class:"flex-col"},{default:s(()=>[t(i,{field:"userName",label:w.$t("permission.account.username")},{default:s(()=>[t(g,{modelValue:v(r).userName,"onUpdate:modelValue":n[0]||(n[0]=o=>v(r).userName=o)},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})),t(l,{span:12,class:"flex-col"},{default:s(()=>[t(i,{field:"loginName",label:w.$t("permission.account.name")},{default:s(()=>[t(g,{modelValue:v(r).loginName,"onUpdate:modelValue":n[1]||(n[1]=o=>v(r).loginName=o)},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})]),_:1}),t(z,{gutter:24,class:"flex-row"},{default:s(()=>[t(l,{span:12,class:"flex-col"},{default:s(()=>[t(i,{field:"phone",label:w.$t("permission.account.phone")},{default:s(()=>[t(g,{modelValue:v(r).phone,"onUpdate:modelValue":n[2]||(n[2]=o=>v(r).phone=o)},null,8,["modelValue"])]),_:1},8,["label"])]),_:1}),t(l,{span:12,class:"flex-col"},{default:s(()=>[t(i,{required:"",field:"email",label:w.$t("permission.account.email")},{default:s(()=>[t(g,{modelValue:v(r).email,"onUpdate:modelValue":n[3]||(n[3]=o=>v(r).email=o)},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})]),_:1}),t(z,{gutter:24,class:"flex-row"},{default:s(()=>[v(O)?se("",!0):(_(),b(l,{key:0,span:12,class:"flex-col"},{default:s(()=>[t(i,{field:"pwd",label:w.$t("permission.account.password")},{default:s(()=>[t(g,{modelValue:v(r).pwd,"onUpdate:modelValue":n[4]||(n[4]=o=>v(r).pwd=o),type:"password"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})),t(l,{span:12,class:"flex-col"},{default:s(()=>[t(i,{field:"roles",label:w.$t("permission.account.roles")},{default:s(()=>[t(S,{multiple:"",modelValue:v(r).roles,"onUpdate:modelValue":n[5]||(n[5]=o=>v(r).roles=o),options:v(L),"field-names":{value:"roleId",label:"roleName"},onChange:V},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1})]),_:1})]),_:1},8,["model"])}}},ze=G(Pe,[["__scopeId","data-v-0b8ecffd"]]),Re={style:{display:"flex","flex-direction":"column"}},Oe={class:"title-box"},Be={class:"title-box"},Fe={class:"title-box"},Te={__name:"ViewPermission",props:{visible:Boolean,menu_permissions_list:{type:Array},knowledge_permissions_list:{type:Array},dialog_permissions_list:{type:Array},agent_permissions_list:{type:Array}},emits:["close"],setup(p,{emit:E}){const x=p,{visible:r,menu_permissions_list:O,knowledge_permissions_list:L,dialog_permissions_list:V,agent_permissions_list:w}=Y(x),n=E,g=()=>{n("close")};return(i,l)=>{const z=f("icon-menu"),S=f("a-tag"),A=f("a-space"),o=f("a-divider"),d=f("icon-bookmark"),I=f("icon-relation"),k=f("a-card"),U=f("a-modal");return _(),b(U,{width:"50%",visible:v(r),"onUpdate:visible":l[0]||(l[0]=m=>oe(r)?r.value=m:null),title:i.$t("permission.account.user_permission"),okText:"关闭","hide-cancel":"true",onOk:g},{default:s(()=>[Q("div",Re,[t(k,{class:"card-body",hoverable:""},{default:s(()=>[Q("div",Oe,[t(z,{size:"18"}),N($(i.$t("permission.account.menu_function"))+":",1)]),t(A,{wrap:""},{default:s(()=>[(_(!0),q(j,null,Z(v(O),m=>(_(),b(S,{key:m.id},{default:s(()=>[N($(m.name),1)]),_:2},1024))),128))]),_:1}),t(o),Q("div",Be,[t(d,{size:"18"}),N($(i.$t("permission.account.knowledge_base"))+":",1)]),t(A,{wrap:""},{default:s(()=>[(_(!0),q(j,null,Z(v(L),m=>(_(),b(S,{color:"arcoblue",key:m.id},{default:s(()=>[N($(m.name),1)]),_:2},1024))),128))]),_:1}),t(o),Q("div",Fe,[t(I,{size:"18"}),N(" "+$(i.$t("permission.account.agent"))+":",1)]),t(A,{wrap:""},{default:s(()=>[(_(!0),q(j,null,Z(v(V),m=>(_(),b(S,{color:"green",key:m.id},{default:s(()=>[N($(m.name),1)]),_:2},1024))),128)),(_(!0),q(j,null,Z(v(w),m=>(_(),b(S,{color:"green",key:m.id},{default:s(()=>[N($(m.name),1)]),_:2},1024))),128))]),_:1})]),_:1})])]),_:1},8,["visible","title"])}}},Ee=G(Te,[["__scopeId","data-v-133cc4c7"]]),Me={style:{display:"flex"}},Qe={style:{"margin-bottom":"8px"}},qe={__name:"DeptConfigModal",props:{visible:Boolean,dept_list:{type:Array,default:()=>[]},dept_detail:{type:Object,default:()=>[]}},emits:["close","ok"],setup(p,{emit:E}){const x=p,{visible:r,dept_list:O,dept_detail:L}=Y(x),V=E,w=h(null),n=h([]),g=h([]),i=h([]),l=(o,d)=>{o.children&&o.children.length>0&&o.children.forEach(I=>{const k=d.findIndex(U=>U.deptId===I.deptId);k!==-1&&(d.splice(k,1),l(I,d))})},z=(o,d)=>{const I={deptId:d.node.deptId,deptName:d.node.deptName};if(d.checked)d.node.roles.forEach(k=>{i.value.some(m=>m.roleId===k.roleId)||i.value.push(k)}),g.value.push(I);else{const k=g.value.findIndex(m=>m.deptId===d.node.deptId);g.value.splice(k,1);const U=i.value.findIndex(m=>m.deptId===d.node.deptId);i.value.splice(U,1),l(d.node,g.value)}},S=()=>{r.value=!1,V("close")},A=()=>{V("ok",n.value)};return ae(()=>x.dept_detail,o=>{o.length>0?o.forEach(d=>{n.value.includes(d.deptId)||(g.value.push({deptId:d.deptId,deptName:d.deptName}),n.value.push(d.deptId)),d.roles.forEach(I=>{i.value.some(k=>k.roleId===I.roleId)||i.value.push({roleId:I.roleId,roleName:I.roleName,deptId:d.deptId})})}):(n.value=[],g.value=[],i.value=[])}),ae(()=>x.dept_list,o=>{o.length>0&&ke(()=>{w.value.expandAll()})}),(o,d)=>{const I=f("a-tree"),k=f("a-card"),U=f("a-tag"),m=f("a-space"),R=f("a-divider"),J=f("a-modal");return _(),b(J,{width:"50%",visible:v(r),"onUpdate:visible":d[1]||(d[1]=P=>oe(r)?r.value=P:null),title:o.$t("permission.account.dept_config"),onCancel:S,onOk:A},{default:s(()=>[Q("div",Me,[t(k,{class:"card-body",title:o.$t("permission.account.organization"),hoverable:""},{default:s(()=>[t(I,{data:v(O),ref_key:"treeRef",ref:w,"checked-keys":n.value,"onUpdate:checkedKeys":d[0]||(d[0]=P=>n.value=P),checkable:!0,"check-strictly":!0,"show-line":!0,onCheck:z,fieldNames:{key:"deptId",title:"deptName",children:"children"}},null,8,["data","checked-keys"])]),_:1},8,["title"]),t(k,{class:"card-body",title:o.$t("permission.account.user_department")},{default:s(()=>[t(m,{wrap:""},{default:s(()=>[(_(!0),q(j,null,Z(g.value,P=>(_(),b(U,{key:P.deptId},{default:s(()=>[N($(P.deptName),1)]),_:2},1024))),128))]),_:1}),t(R),Q("div",Qe,$(o.$t("permission.account.department_roles"))+":",1),t(m,{wrap:""},{default:s(()=>[(_(!0),q(j,null,Z(i.value,P=>(_(),b(U,{key:P.roleId,color:"arcoblue"},{default:s(()=>[N($(P.roleName),1)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"])])]),_:1},8,["visible","title"])}}},je=G(qe,[["__scopeId","data-v-98b1213a"]]),T="/api/user";function Le(p){return F({url:`${T}/list`,method:"get",params:p})}function Ze(p){return F({url:`${T}/dept`,method:"get",params:{userId:p}})}function He(p){return F({url:`${T}/dept`,method:"put",data:p})}function Ke(p){return F({url:`${T}/add_user`,method:"post",data:p})}function Ge(p){return F({url:`${T}/edit_user`,method:"put",data:p})}function Je(p){return F({url:`${T}/change_status`,method:"put",data:p})}function We(p){return F({url:`${T}/reset_pwd`,method:"put",data:{userId:p}})}function Xe(p){return F({url:`${T}/permission`,method:"get",params:{userId:p}})}function Ye(p){return F({url:`${T}/delete_user/${p}`,method:"delete"})}const et={class:"operation-btn-container"},tt={__name:"index",setup(p){const E=ye(),x=h(""),r=h(null),O=h([]),L=h([{title:"序号",width:80,fixed:"left",slotName:"index"},{title:"用户名",dataIndex:"userName",fixed:"left",width:150,titleSlotName:"userName"},{title:"姓名",dataIndex:"loginName",width:100,titleSlotName:"loginName"},{title:"角色",dataIndex:"roleName",width:300,ellipsis:!0,tooltip:{position:"top"},titleSlotName:"roleName"},{title:"所属部门",dataIndex:"deptName",width:400,ellipsis:!0,tooltip:{position:"top"},titleSlotName:"deptName"},{title:"手机号",dataIndex:"phone",width:150,titleSlotName:"phone"},{title:"邮箱",dataIndex:"email",width:250,titleSlotName:"email"},{title:"状态",dataIndex:"status",width:100,slotName:"status"},{title:"操作",dataIndex:"operation",width:350,fixed:"right",slotName:"operationSlot"}]),V=h({total:10,current:1,pageSize:12}),w=h("medium"),n=h(!1),g=h(!1),i=h(!1),l=be({userName:"",userName:"",phone:"",email:"",pwd:"",roles:[]}),z=h([]),S=h(!1),A=h([]),o=h([]),d=h([]),I=h([]),k=h(!1),U=h([]),m=h([]),R=async()=>{const e={keyword:x.value,current:V.value.current,pageSize:V.value.pageSize};n.value=!0;const{code:a,data:u}=await Le(e);if(a===200){for(const c of u.rows){if(c.deptName="",c.roleName="",c.depts)for(let y=0;y<c.depts.length;y++){const D=c.depts[y];c.deptName+=D.deptName+(y<c.depts.length-1?", ":"")}if(c.roles)for(let y=0;y<c.roles.length;y++){const D=c.roles[y];c.roleName+=D.roleName+(y<c.roles.length-1?", ":"")}}V.value.total=u.total,O.value=u.rows,n.value=!1}else n.value=!1},J=e=>{x.value=e,R()},P=()=>{x.value="",R()},le=()=>{l.userId=0,l.userName="",l.loginName="",l.phone="",l.email="",l.pwd="",l.roles=[],i.value=!1,W(null,!0)},ne=()=>{R()},ie=e=>{V.value.current=e,R()},de=async e=>{const a={userId:e.userId,status:e.status},{code:u}=await Je(a);u===200&&K.success({title:"成功",content:"状态切换成功"})},re=async e=>{const{code:a}=await We(e.userId);a===200&&K.success({title:"重置密码",content:"该用户密码重置为000000"})},W=async(e,a)=>{if(a){const{code:u,data:c}=await Se();u===200&&(z.value=c.rows)}e&&(l.userId=e.userId,l.userName=e.userName,l.loginName=e.loginName,l.phone=e.phone,l.email=e.email,l.pwd=e.pwd,l.roles=e.roles.map(u=>u.roleId),i.value=!0),g.value=a},X=async(e,a)=>{if(e){d.value=[],o.value=[],A.value=[];const{code:u,data:c}=await Xe(e.userId);if(u===200){const{knowledge:y,menus:D,dialog:B}=c;B&&B.length>0&&(d.value=B),y&&y.length>0&&(o.value=y),D&&D.length>0&&(A.value=te(D))}}S.value=a},ee=async(e,a)=>{if(e){l.userId=e.userId;const{code:u,data:{rows:c}}=await Ze(e.userId);u===200&&(U.value=c)}k.value=a},ue=async e=>{k.value=!1;const a={userId:l.userId,depts:e},{code:u}=await He(a);u===200&&(K.success({title:"部门配置",content:"部门配置成功"}),R())},ce=async e=>{const{code:a}=await Ye(e);a===200&&(K.success({title:"删除用户",content:"删除成功"}),R())},pe=async()=>{r.value.$refs.accountFormRef.validate&&r.value.$refs.accountFormRef.validate(async e=>{if(!e){g.value=!1;const a={userId:i.value?l.userId:0,...l},u=i.value?Ge:Ke,{code:c,data:{userFlag:y}}=await u(a);if(c===200){const D=i.value?"编辑":"新增";K.success({title:`${D}用户`,content:`${D}成功`}),!i.value&&y&&me(y),R()}}})},me=async e=>{await De(e)},_e=e=>{w.value=e},te=(e,a=[])=>(e.forEach(u=>{u.id&&u.meta.title&&a.push({id:u.id,name:u.meta.title}),u.children&&u.children.length>0&&te(u.children,a)}),a),fe=async()=>{const{code:e,data:{rows:a}}=await Ae();e==200&&(m.value=Ce(a))},ve=(e,a)=>{xe.warning({title:a,okText:"确定",cancelText:"取消",hideCancel:!1,onOk(){ce(e)}})};return $e(()=>{Ie("system:user:list")?(R(),fe()):E.push("/noPer")}),(e,a)=>{const u=f("a-switch"),c=f("a-button"),y=f("a-popconfirm"),D=f("a-card"),B=Ne("hasPermi");return _(),q(j,null,[t(D,{class:"account-page-card"},{default:s(()=>[t(Ve,{btn_text:e.$t("permission.account.new_user"),btn_permission:"system:user:add",onSearchClick:J,onResetClick:P,onCreateClick:le,onSizeChange:_e,onRefreshClick:ne},null,8,["btn_text"]),t(Ue,{data:O.value,columns:L.value,"row-key":"userId",scroll:{x:2e3},size:w.value,loading:n.value,pagination:V.value,onPageChange:ie},{status:s(({record:C})=>[t(u,{modelValue:C.status,"onUpdate:modelValue":M=>C.status=M,onChange:M=>de(C),"checked-value":"1","unchecked-value":"0"},null,8,["modelValue","onUpdate:modelValue","onChange"])]),operationSlot:s(({record:C})=>[Q("div",et,[t(y,{content:e.$t("permission.account.reset_password"),onOk:M=>re(C)},{default:s(()=>[H((_(),b(c,{type:"text"},{default:s(()=>[N($(e.$t("permission.account.reset_password")),1)]),_:1})),[[B,"system:role:resetPassword"]])]),_:2},1032,["content","onOk"]),H((_(),b(c,{type:"text",onClick:M=>W(C,!0)},{default:s(()=>[N($(e.$t("permission.account.edit")),1)]),_:2},1032,["onClick"])),[[B,"system:user:edit"]]),H((_(),b(c,{type:"text",onClick:M=>X(C,!0)},{default:s(()=>[N($(e.$t("permission.account.view_permission")),1)]),_:2},1032,["onClick"])),[[B,"system:user:viewPermission"]]),H((_(),b(c,{type:"text",onClick:M=>ee(C,!0)},{default:s(()=>[N($(e.$t("permission.account.dept_config")),1)]),_:2},1032,["onClick"])),[[B,"system:user:deptEdit"]]),H((_(),b(c,{onClick:M=>ve(C.userId,e.$t("permission.delete_confirm")),type:"text",status:"warning"},{default:s(()=>[N($(e.$t("permission.account.delete")),1)]),_:2},1032,["onClick"])),[[B,"system:user:delete"]])])]),_:1},8,["data","columns","size","loading","pagination"])]),_:1}),t(ge,{visible:g.value,onOk:pe,onCancel:a[0]||(a[0]=C=>W(null,!1)),title:i.value?e.$t("permission.account.edit"):e.$t("permission.account.new_user")},{default:s(()=>[t(ze,{ref_key:"accountForm",ref:r,edit_form:l,is_edit_mode:i.value,role_list:z.value},null,8,["edit_form","is_edit_mode","role_list"])]),_:1},8,["visible","title"]),t(Ee,{visible:S.value,onCancel:a[1]||(a[1]=C=>X(null,!1)),onClose:a[2]||(a[2]=C=>X(null,!1)),menu_permissions_list:A.value,knowledge_permissions_list:o.value,dialog_permissions_list:d.value,agent_permissions_list:I.value},null,8,["visible","menu_permissions_list","knowledge_permissions_list","dialog_permissions_list","agent_permissions_list"]),t(je,{visible:k.value,dept_list:m.value,dept_detail:U.value,onOk:ue,onCancel:a[3]||(a[3]=C=>ee(null,!1))},null,8,["visible","dept_list","dept_detail"])],64)}}},st=G(tt,[["__scopeId","data-v-c72f662b"]]),ut={__name:"PermissionAccount",setup(p){return(E,x)=>(_(),b(he,null,{default:s(()=>[t(we,{current_label:"用户"}),t(st)]),_:1}))}};export{ut as default};