PermissionAccount-DxOYtTW7.js 15 KB

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