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