crud.C49sceZR.js 6.0 KB

1
  1. import{x as a,r as p,W as h}from"./index.BCN4iGDw.js";const l="/api/system/app_user/";async function w(r){const s=a({url:l+"?user_type=1",method:"get",params:r});return console.log("ressssss",s),s}function y(r){return a({url:l+r+"/",method:"get"})}function _(r){return a({url:l,method:"post",data:r})}function q(r){return a({url:l+r.id+"/",method:"put",data:r})}function z(r){return a({url:l+r+"/",method:"delete",data:{id:r}})}function x(){return a({url:l,method:"get"})}function b(){return a({url:"/api/system/organization/tree/",method:"get"})}let u=[];const f=async()=>{try{const r=await b();if(r&&(r.code===200||r.code===2e3||!r.code)){const s=r.data||r.results||r;Array.isArray(s)&&(u=s)}}catch(r){console.error("获取组织架构数据失败:",r),u=[]}};function N(r,s){if(!(!r||!s)){for(const d of s)if(Array.isArray(d.children)){for(const c of d.children)if(c.name===r)return c}}}const W=function({crudExpose:r}){return f(),{crudOptions:{request:{pageRequest:async e=>await w(e),editRequest:async({form:e,row:t})=>(e.id=t.id,await q(e)),delRequest:async({row:e})=>await z(e.id),addRequest:async({form:e})=>await _(e),getDetail:async({row:e})=>await y(e.id)},toolbar:{show:!1},form:{wrapper:{buttons:{ok:{text:"提交",show:p(e=>e.mode!=="view")}}}},actionbar:{buttons:{add:{show:!1}}},pagination:{show:!0},columns:{_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},search:{title:"关键字搜索",search:{show:!0,type:"input"},type:"input",form:{component:{placeholder:"请输入"},show:!1},column:{show:!1}},user_code:{title:"工号",type:"input",column:{minWidth:120},form:{component:{placeholder:"请填写工号"},rules:[{required:!0,message:"请填写工号"}]}},username:{title:"用户名",type:"input",column:{show:!1,minWidth:120},form:{component:{placeholder:"请填写用户名"},rules:[{required:!0,message:"请填写用户名"}]},viewForm:{component:{placeholder:""}}},name:{title:"姓名",search:{show:!0},treeNode:!0,type:"input",column:{minWidth:120},form:{rules:[{required:!0,message:"姓名必填项"}],component:{placeholder:"请输入姓名"}}},password:{title:"密码",type:"password",column:{minWidth:120,show:!1},form:{component:{placeholder:"请填写密码"}},addForm:{component:{placeholder:"请填写密码"},rules:[{required:!0,message:"请填写密码"},{validator:(e,t,n)=>{if(!t){n();return}if(t.length<8){n(new Error("密码长度不能少于8位"));return}const o=/[a-zA-Z]/.test(t),i=/[0-9]/.test(t),m=/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?`~]/.test(t);if(!o||!i||!m){n(new Error("密码必须包含字母、数字和特殊符号"));return}n()},trigger:"blur"}]},editForm:{show:!0,component:{placeholder:"留空则不修改密码",type:"password",showPassword:!0},rules:[{validator:(e,t,n)=>{if(!t||t.trim()===""){n();return}const o=8,i=/[a-zA-Z]/.test(t),m=/\d/.test(t),g=/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(t);if(t.length<o){n(new Error("密码长度不能少于8位"));return}if(!i){n(new Error("密码必须包含字母"));return}if(!m){n(new Error("密码必须包含数字"));return}if(!g){n(new Error("密码必须包含特殊符号"));return}n()},trigger:"blur"}]},viewForm:{show:!1}},email:{title:"邮箱",type:"input",column:{show:!1,minWidth:120},form:{component:{placeholder:"请填写邮箱"},rules:[{required:!1,message:"请填写邮箱"}]},viewForm:{component:{placeholder:""}},valueBuilder({form:e,value:t}){const n=o=>o!=null&&o!==""&&o!=="nan"&&!Number.isNaN(o);e.email=n(t)?t:""},valueResolve({form:e,value:t}){e.email=t===""?null:t}},mobile:{title:"手机号",type:"input",column:{show:!1,minWidth:120},form:{component:{placeholder:"请填写手机号"},rules:[{required:!0,message:"请填写手机号"}]},viewForm:{component:{placeholder:""}},valueBuilder({form:e,value:t}){const n=o=>o!=null&&o!==""&&o!=="nan"&&!Number.isNaN(o);e.mobile=n(t)?t:""},valueResolve({form:e,value:t}){e.mobile=t===""?null:t}},gender:{title:"性别",type:"dict-select",column:{show:!0,minWidth:120},dict:h({data:[{label:"男",value:1},{label:"女",value:2}]}),form:{component:{placeholder:"请选择性别"},rules:[{required:!0,message:"请选择性别"}]},viewForm:{component:{placeholder:""}}},user_type:{title:"用户类型",type:"dict-select",search:{show:!0},column:{minWidth:120},dict:h({data:[{label:"教师",value:1},{label:"学院领导",value:3}]}),form:{value:1,component:{placeholder:"请选择用户类型"},rules:[{required:!1,message:"请选择用户类型"}]}},organization_ref:{title:"学院",type:"dict-cascader",column:{show:!1},valueBuilder({form:e,value:t}){e.organization_ref=t;const n=e.organization_detail;if(n&&n.id)e.organization_ref=n.id;else if(!n&&u.length>0){const o=e.organization;if(o){const i=N(o,u);i&&i.id&&(e.organization_ref=i.id)}}u.length===0&&f()},valueResolve({form:e,value:t}){e.organization_ref=t??e.organization_ref}},organization:{title:"学院",type:"input",search:{show:!1},column:{show:!0,minWidth:200,formatter:({row:e,value:t})=>{const n=o=>o!=null&&o!==""&&o!=="nan"&&!Number.isNaN(o);return e.organization_detail&&e.organization_detail.name?e.organization_detail.name:n(t)?t:""}},form:{show:p(e=>e.user_type===1||e.user_type===3),component:{placeholder:"请选择学院"},rules:[{required:!1,message:"请选择学院"}]},viewForm:{component:{placeholder:""}}},sub_organization:{title:"专业",type:"input",column:{show:!1,minWidth:120},form:{show:!1,component:{placeholder:"请填写专业"},rules:[{required:!1,message:"请填写专业"}]},viewForm:{component:{placeholder:""}}},grade_or_level:{title:"年级",type:"input",column:{show:!1,minWidth:120},form:{show:!1,component:{placeholder:"请填写年级"},rules:[{required:!1,message:"请填写年级"}]},viewForm:{component:{placeholder:""}}},class_or_group:{title:"班级",type:"input",column:{show:!1,minWidth:120},form:{show:!1,component:{placeholder:"请填写班级"},rules:[{required:!1,message:"请填写班级"}]},viewForm:{component:{placeholder:""}}}}}}},A=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:W},Symbol.toStringTag,{value:"Module"}));export{x as G,A as a,W as c};