crud.DO9iPW8g.js 6.4 KB

1
  1. import{x as n,f as O,W as i,r as V,n as M,ap as U,t as x,aq as _,a1 as j,ar as R,as as q}from"./index.BCN4iGDw.js";import{d as h}from"./dictionary.82N3NS9h.js";import{a as m}from"./authFunction.Bg8a_SnT.js";import{r as p,aC as B,f as C,ai as a}from"./vue.D1BjjNmv.js";import{M as G}from"./md5.DLPczxzP.js";import{c as I}from"./commonCrud.Be--caFk.js";const u="/api/system/user/";function te(r){return n({url:"/api/system/dept/all_dept/",method:"get",params:r})}function z(r){return n({url:u,method:"get",params:r})}function A(r){return n({url:u,method:"post",data:r})}function D(r){return n({url:u+r.id+"/",method:"put",data:r})}function k(r){return n({url:u+r+"/",method:"delete",data:{id:r}})}function H(r,w){return n({url:u+r+"/reset_to_default_password/",method:"put",data:w})}const L=function({crudExpose:r}){const w=async e=>(e.user_type="0",await z(e)),E=async({form:e,row:t})=>(e.id=t.id,await D(e)),W=async({row:e})=>await k(e.id),T=async({form:e})=>await A(e),d=p(!1),s=p({newPassword:"",confirmPassword:""}),l=p(),f=p(null),g={newPassword:[{required:!0,validator:(e,t,o)=>{const F=new RegExp("(?=.*[0-9])(?=.*[a-zA-Z]).{8,30}");t?F.test(t)?o():o(new Error("密码复杂度太低(密码中必须包含字母、数字,长度8-30位)")):o(new Error("请输入新密码"))},trigger:"blur"}],confirmPassword:[{required:!0,validator:(e,t,o)=>{t?t!==s.value.newPassword?o(new Error("两次输入密码不一致")):o():o(new Error("请再次输入密码"))},trigger:"blur"}]},v=e=>{f.value=e.id,s.value={newPassword:"",confirmPassword:""},d.value=!0},c=()=>{d.value=!1,f.value=null,s.value={newPassword:"",confirmPassword:""},l.value&&l.value.resetFields()},y=async()=>{l.value&&await l.value.validate(async e=>{if(e)try{await H(f.value,{new_password:s.value.newPassword}),x("重置密码成功"),c()}catch(t){console.error("重置密码失败:",t)}})},P=async e=>{v(e)},S=O(),{systemConfig:b}=B(S);return C(()=>b.value),{resetPasswordDialogVisible:d,resetPasswordForm:s,resetPasswordFormRef:l,resetPasswordRules:g,openResetPasswordDialog:v,closeResetPasswordDialog:c,submitResetPassword:y,resetPasswordDialog:()=>a(U,{modelValue:d.value,title:"修改密码",width:"400px","onUpdate:modelValue":e=>{e||c()},draggable:!0},{default:()=>[a(j,{ref:e=>{e&&(l.value=e)},model:s.value,rules:g,labelWidth:"100px",labelPosition:"left"},{default:()=>[a(R,{label:"新密码",prop:"newPassword",required:!0},{default:()=>a(q,{modelValue:s.value.newPassword,"onUpdate:modelValue":e=>{s.value.newPassword=e},type:"password",placeholder:"请输入新密码",showPassword:!0,clearable:!0})}),a(R,{label:"确认密码",prop:"confirmPassword",required:!0},{default:()=>a(q,{modelValue:s.value.confirmPassword,"onUpdate:modelValue":e=>{s.value.confirmPassword=e},type:"password",placeholder:"请再次输入密码",showPassword:!0,clearable:!0})})]})],footer:()=>[a(_,{onClick:()=>c()},{default:()=>"取消"}),a(_,{type:"primary",onClick:()=>y()},{default:()=>"确定"})]}),crudOptions:{toolbar:{buttons:{search:{show:!1},refresh:{show:!1},compact:{show:!1},export:{show:!1},columns:{show:!1}}},table:{remove:{confirmMessage:"是否删除该用户?"}},request:{pageRequest:w,addRequest:T,editRequest:E,delRequest:W},form:{initialForm:{password:C(()=>b.value["base.default_password"])}},actionbar:{buttons:{add:{show:m("user:Create")},export:{text:"导出",title:"导出",show:!1,click:e=>M.confirm("确定重设密码吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>P(e.row))}}},rowHandle:{fixed:"right",width:300,buttons:{view:{show:!1},edit:{iconRight:"Edit",show:m("user:Update")},remove:{iconRight:"Delete",show:m("user:Delete")},custom:{text:"修改密码",show:m("user:ResetPassword"),tooltip:{placement:"top",content:"重设密码"},click:e=>{const{row:t}=e;P(t)}}}},columns:{_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},username:{title:"账号",search:{show:!0},type:"input",column:{minWidth:100},form:{rules:[{required:!0,message:"账号必填项"}],component:{placeholder:"请输入账号"}}},password:{title:"密码",type:"password",column:{show:!1},editForm:{show:!0},form:{rules:[{required:!0,message:"密码必填项"}],component:{span:12,showPassword:!0,placeholder:"请输入密码"}},valueResolve({form:e}){e.password&&(e.password=G.hashStr(e.password))}},name:{title:"姓名",search:{show:!0},type:"input",column:{minWidth:100},form:{rules:[{required:!0,message:"姓名必填项"}],component:{span:12,placeholder:"请输入姓名"}}},dept:{title:"部门",search:{disabled:!0},type:"dict-tree",dict:i({isTree:!0,url:"/api/system/dept/all_dept/",value:"id",label:"name"}),column:{show:!1,minWidth:200,formatter({value:e,row:t,index:o}){return t.dept_name_all}},form:{value:1,show:!1,component:{filterable:!0,placeholder:"请选择",props:{checkStrictly:!0,props:{value:"id",label:"name"}}}}},role:{title:"角色",search:{disabled:!0},type:"dict-select",dict:i({url:"/api/system/role/",value:"id",label:"name"}),column:{minWidth:200},form:{rules:[{required:!0,message:"必填项"}],component:{multiple:!0,filterable:!0,placeholder:"请选择角色"}}},mobile:{title:"手机号码",search:{show:!1},type:"input",column:{minWidth:120},form:{rules:[{max:20,message:"请输入正确的手机号码",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"请输入正确的手机号码"}],component:{placeholder:"请输入手机号码"}}},email:{title:"邮箱",column:{width:260},form:{rules:[{type:"email",message:"请输入正确的邮箱地址",trigger:["blur","change"]}],component:{placeholder:"请输入邮箱"}}},gender:{title:"性别",type:"dict-select",dict:i({data:h("gender")}),form:{value:1,component:{span:12}},component:{props:{color:"auto"}}},user_type:{title:"用户类型",search:{show:!1},type:"dict-select",dict:i({data:h("user_type")}),column:{minWidth:100},form:{show:!1,value:0,component:{span:12}}},is_active:{title:"状态",search:{show:!0},type:"dict-radio",form:{value:!0},column:{component:{name:"fs-dict-switch",activeText:"",inactiveText:"",style:"--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6",onChange:V(e=>()=>{D(e.row).then(t=>{x(t.msg)})})}},dict:i({data:h("button_status_bool")})},avatar:{title:"头像",type:"avatar-uploader",align:"center",form:{show:!1},column:{show:!1,minWidth:100}},...I({dept_belong_id:{form:!0,table:!0,search:!1}})}}}},re=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:L},Symbol.toStringTag,{value:"Module"}));export{te as G,re as a,L as c};