PermissionAccount-eUJ2j4qD.js 15 KB

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