| 1 |
- import{_ as ee,k as le,o as s,c as y,a as r,d as a,w as t,i as u,t as z,f as b,r as i,g,h as ae,e as O,F as E,p as x,E as P,x as w,q as te}from"./index-CGc3QkPL.js";import{orgApi as f,kpiApi as oe}from"./index-BoTt95-1.js";const ne={class:"page"},de={class:"page-hero"},ue={class:"hero-actions"},se={class:"two-col"},re={class:"col dept-col"},ie={class:"tree-node"},pe={class:"tree-name"},me={class:"tree-actions"},ve={class:"col user-col"},fe={class:"col-head"},_e={class:"count"},ce={__name:"OrgView",setup(be){const S=b([]),V=b([]),B=b([]),k=b(!1),I=b(!1),D=b(null),p=b(null),c=b({name:"",parentId:null,leaderId:null}),d=b({username:"",password:"",realName:"",position:"",departmentId:null,superiorId:null,role:"EMPLOYEE"}),T=te(()=>{const o=[];function e(m,M=""){var $;for(const v of m)o.push({id:v.id,name:M+v.name}),($=v.children)!=null&&$.length&&e(v.children,M+"├ ")}return e(S.value),o});le(()=>U());async function U(){S.value=await f.getTree(),V.value=await f.getUsers(),V.value.forEach(o=>{o._deptId=o.departmentId});try{B.value=await oe.getTemplateNames()}catch{B.value=[]}}function L(o){D.value=o,c.value={name:o.name,parentId:o.parentId,leaderId:o.leaderId},k.value=!0}async function R(){D.value?await f.updateDept(D.value.id,c.value):await f.createDept(c.value),w.success("保存成功"),k.value=!1,U()}async function Y(o){await P.confirm("确定删除该部门吗?","提示",{type:"warning"}),await f.deleteDept(o),w.success("已删除"),U()}function K(o){p.value=o,d.value={username:o.username,password:"",realName:o.realName,position:o.position||"",departmentId:o.departmentId,superiorId:o.superiorId,role:o.role},I.value=!0}async function j(){if(!d.value.username||!d.value.realName){w.warning("用户名和姓名必填");return}if(!p.value&&!d.value.password){w.warning("请设置密码");return}try{p.value?await f.updateUser(p.value.id,d.value):await f.createUser(d.value),w.success(p.value?"已保存":"已创建"),I.value=!1,p.value=null,d.value={username:"",password:"",realName:"",position:"",departmentId:null,superiorId:null,role:"EMPLOYEE"},U()}catch{}}async function G(o){await P.confirm("确定删除该用户吗?此操作不可恢复。","删除用户",{type:"error",confirmButtonText:"确认删除"}),await f.deleteUser(o),w.success("已删除"),U()}async function H(o,e){await f.updateSuperior(o,e),w.success("已更新")}async function J(o,e){await f.updateDepartment(o,e),w.success("已更新")}async function Q(){await P.confirm("将初始化企业组织数据:深圳总部(含4个中心)+甘肃运营中心,以及韩拓等7名员工。确定继续?","初始化企业数据",{type:"info",confirmButtonText:"确定初始化"}),await f.initSeed(),w.success("企业数据已初始化"),U()}return(o,e)=>{const m=i("el-button"),M=i("el-tag"),$=i("el-tree"),v=i("el-table-column"),C=i("el-option"),N=i("el-select"),W=i("el-table"),h=i("el-input"),_=i("el-form-item"),X=i("el-tree-select"),q=i("el-form"),A=i("el-dialog"),F=i("el-radio"),Z=i("el-radio-group");return s(),y("div",ne,[r("div",de,[e[19]||(e[19]=r("div",{class:"hero-info"},[r("h2",null,"组织架构"),r("p",null,"部门树 + 人员管理")],-1)),r("div",ue,[a(m,{onClick:e[0]||(e[0]=l=>{k.value=!0,D.value=null}),round:""},{default:t(()=>[...e[16]||(e[16]=[u("添加部门",-1)])]),_:1}),a(m,{type:"primary",onClick:e[1]||(e[1]=l=>I.value=!0),round:""},{default:t(()=>[...e[17]||(e[17]=[u("添加成员",-1)])]),_:1}),a(m,{type:"warning",onClick:Q,round:"",disabled:V.value.length>1},{default:t(()=>[...e[18]||(e[18]=[u(" 初始化企业数据 ",-1)])]),_:1},8,["disabled"])])]),r("div",se,[r("div",re,[e[22]||(e[22]=r("div",{class:"col-head"},"部门结构",-1)),a($,{data:S.value,"node-key":"id","default-expand-all":"",props:{label:"name",children:"children"}},{default:t(({data:l})=>[r("span",ie,[r("span",pe,z(l.name),1),l.leaderName?(s(),g(M,{key:0,size:"small",effect:"plain",type:"info",round:""},{default:t(()=>[u("负责人 "+z(l.leaderName),1)]),_:2},1024)):ae("",!0),r("span",me,[a(m,{link:"",size:"small",onClick:O(n=>L(l),["stop"])},{default:t(()=>[...e[20]||(e[20]=[u("编辑",-1)])]),_:1},8,["onClick"]),a(m,{link:"",size:"small",type:"danger",onClick:O(n=>Y(l.id),["stop"])},{default:t(()=>[...e[21]||(e[21]=[u("删除",-1)])]),_:1},8,["onClick"])])])]),_:1},8,["data"])]),r("div",ve,[r("div",fe,[e[23]||(e[23]=u("人员列表 ",-1)),r("span",_e,z(V.value.length)+" 人",1)]),a(W,{data:V.value,stripe:"",style:{width:"100%"},size:"small"},{default:t(()=>[a(v,{prop:"username",label:"用户名","min-width":"100","show-overflow-tooltip":""}),a(v,{prop:"realName",label:"姓名","min-width":"90","show-overflow-tooltip":""}),a(v,{prop:"position",label:"职位","min-width":"110","show-overflow-tooltip":""}),a(v,{label:"部门","min-width":"130"},{default:t(({row:l})=>[a(N,{modelValue:l._deptId,"onUpdate:modelValue":n=>l._deptId=n,size:"small",onChange:n=>J(l.id,n),placeholder:"选择",clearable:""},{default:t(()=>[(s(!0),y(E,null,x(T.value,n=>(s(),g(C,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),a(v,{label:"直属上级","min-width":"130"},{default:t(({row:l})=>[a(N,{modelValue:l.superiorId,"onUpdate:modelValue":n=>l.superiorId=n,size:"small",onChange:n=>H(l.id,n),placeholder:"选择",clearable:""},{default:t(()=>[(s(!0),y(E,null,x(V.value.filter(n=>n.id!==l.id),n=>(s(),g(C,{key:n.id,label:n.realName,value:n.id},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),a(v,{prop:"role",label:"角色",width:"100"},{default:t(({row:l})=>[a(M,{type:l.role==="SUPER_ADMIN"?"danger":"",size:"small",effect:"dark",round:""},{default:t(()=>[u(z(l.role==="SUPER_ADMIN"?"管理员":"员工"),1)]),_:2},1032,["type"])]),_:1}),a(v,{label:"操作",width:"120",fixed:"right"},{default:t(({row:l})=>[a(m,{link:"",size:"small",type:"primary",onClick:n=>K(l)},{default:t(()=>[...e[24]||(e[24]=[u("编辑",-1)])]),_:1},8,["onClick"]),a(m,{link:"",size:"small",type:"danger",onClick:n=>G(l.id),disabled:l.id===1},{default:t(()=>[...e[25]||(e[25]=[u("删除",-1)])]),_:1},8,["onClick","disabled"])]),_:1})]),_:1},8,["data"])])]),a(A,{modelValue:k.value,"onUpdate:modelValue":e[6]||(e[6]=l=>k.value=l),title:D.value?"编辑部门":"添加部门",width:"420px"},{footer:t(()=>[a(m,{onClick:e[5]||(e[5]=l=>k.value=!1)},{default:t(()=>[...e[26]||(e[26]=[u("取消",-1)])]),_:1}),a(m,{type:"primary",onClick:R},{default:t(()=>[...e[27]||(e[27]=[u("保存",-1)])]),_:1})]),default:t(()=>[a(q,{"label-width":"80px"},{default:t(()=>[a(_,{label:"名称"},{default:t(()=>[a(h,{modelValue:c.value.name,"onUpdate:modelValue":e[2]||(e[2]=l=>c.value.name=l)},null,8,["modelValue"])]),_:1}),a(_,{label:"上级部门"},{default:t(()=>[a(X,{modelValue:c.value.parentId,"onUpdate:modelValue":e[3]||(e[3]=l=>c.value.parentId=l),data:S.value,props:{label:"name",value:"id"},"check-strictly":"",clearable:"",placeholder:"无(顶级)",style:{width:"100%"}},null,8,["modelValue","data"])]),_:1}),a(_,{label:"负责人"},{default:t(()=>[a(N,{modelValue:c.value.leaderId,"onUpdate:modelValue":e[4]||(e[4]=l=>c.value.leaderId=l),clearable:"",placeholder:"选择负责人",style:{width:"100%"}},{default:t(()=>[(s(!0),y(E,null,x(V.value,l=>(s(),g(C,{key:l.id,label:l.realName,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"]),a(A,{modelValue:I.value,"onUpdate:modelValue":e[15]||(e[15]=l=>I.value=l),title:p.value?"编辑成员":"添加成员",width:"460px"},{footer:t(()=>[a(m,{onClick:e[14]||(e[14]=l=>{I.value=!1,p.value=null})},{default:t(()=>[...e[30]||(e[30]=[u("取消",-1)])]),_:1}),a(m,{type:"primary",onClick:j},{default:t(()=>[u(z(p.value?"保存":"创建"),1)]),_:1})]),default:t(()=>[a(q,{"label-width":"80px"},{default:t(()=>[a(_,{label:"用户名",required:""},{default:t(()=>[a(h,{modelValue:d.value.username,"onUpdate:modelValue":e[7]||(e[7]=l=>d.value.username=l),disabled:!!p.value},null,8,["modelValue","disabled"])]),_:1}),a(_,{label:"密码",required:!p.value},{default:t(()=>[a(h,{modelValue:d.value.password,"onUpdate:modelValue":e[8]||(e[8]=l=>d.value.password=l),placeholder:p.value?"留空不修改":"设置密码","show-password":""},null,8,["modelValue","placeholder"])]),_:1},8,["required"]),a(_,{label:"姓名",required:""},{default:t(()=>[a(h,{modelValue:d.value.realName,"onUpdate:modelValue":e[9]||(e[9]=l=>d.value.realName=l)},null,8,["modelValue"])]),_:1}),a(_,{label:"岗位"},{default:t(()=>[a(N,{modelValue:d.value.position,"onUpdate:modelValue":e[10]||(e[10]=l=>d.value.position=l),filterable:"",placeholder:"选择岗位(对应KPI模板)",style:{width:"100%"}},{default:t(()=>[(s(!0),y(E,null,x(B.value,l=>(s(),g(C,{key:l,label:l,value:l},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(_,{label:"部门"},{default:t(()=>[a(N,{modelValue:d.value.departmentId,"onUpdate:modelValue":e[11]||(e[11]=l=>d.value.departmentId=l),clearable:"",style:{width:"100%"}},{default:t(()=>[(s(!0),y(E,null,x(T.value,l=>(s(),g(C,{key:l.id,label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(_,{label:"直属上级"},{default:t(()=>[a(N,{modelValue:d.value.superiorId,"onUpdate:modelValue":e[12]||(e[12]=l=>d.value.superiorId=l),clearable:"",style:{width:"100%"}},{default:t(()=>[(s(!0),y(E,null,x(V.value.filter(l=>{var n;return l.id!==((n=p.value)==null?void 0:n.id)}),l=>(s(),g(C,{key:l.id,label:l.realName,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(_,{label:"角色"},{default:t(()=>[a(Z,{modelValue:d.value.role,"onUpdate:modelValue":e[13]||(e[13]=l=>d.value.role=l)},{default:t(()=>[a(F,{value:"EMPLOYEE"},{default:t(()=>[...e[28]||(e[28]=[u("普通员工",-1)])]),_:1}),a(F,{value:"SUPER_ADMIN"},{default:t(()=>[...e[29]||(e[29]=[u("超级管理员",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"])])}}},ye=ee(ce,[["__scopeId","data-v-f6f30c78"]]);export{ye as default};
|