PermissionAccount-6pZxrYyE.js 14 KB

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