import{z as e,A as t,t as a,B as r,q as s,C as o}from"./element-plus.ea_38_Np.js";import{M as p,aD as i,aL as d,u as n,I as m,bM as l,bJ as c,aU as u,aS as j}from"./@vue.DbmRtknU.js";import{a as _,_ as y}from"./index.Dwded2Oo.js";import"./lodash-es.DaM9m3L-.js";import"./async-validator.j0i5Y79Y.js";import"./@popperjs.DxtSUbXb.js";import"./@ctrl.BEgk5vdO.js";import"./dayjs.DCWbrgJ0.js";import"./memoize-one.BAtLgO95.js";import"./normalize-wheel-es.TzhA1irr.js";import"./@floating-ui.8vigAAFV.js";import"./pinia.BlfmsheH.js";import"./@vueuse.Dnsd2JKX.js";import"./vue-i18n.DXLOBfKS.js";import"./@intlify.DPMNdUn_.js";import"./nprogress.BTjJXJ-u.js";import"./codemirror.CYSLATvI.js";import"./diff-match-patch.DkK4wJpa.js";import"./vue-web-terminal.D-rog7dz.js";import"./vue.MGxsMDTR.js";/* empty css */import"./vue-router.yxIMtaxH.js";import"./axios.Da-QW0H8.js";import"./qs.BQjOrGHM.js";import"./side-channel.4q28KFJj.js";import"./es-errors.DTEWvbA_.js";import"./object-inspect.DvQZIv3_.js";import"./side-channel-list.Do0-XmF5.js";import"./side-channel-map.DNHQ53lO.js";import"./get-intrinsic.Bbe5x-9b.js";import"./es-object-atoms.CyiuHMUS.js";import"./math-intrinsics.pM-JTNwN.js";import"./gopd.BudZp56J.js";import"./es-define-property.F0aoeP8o.js";import"./has-symbols.BcO-SUVM.js";import"./get-proto.Cb_fpw-j.js";import"./dunder-proto.WEH3rgQR.js";import"./call-bind-apply-helpers.DJjIjCF_.js";import"./function-bind.DrnB-baK.js";import"./hasown.BXcyoiLU.js";import"./call-bound.22gFUC2Q.js";import"./side-channel-weakmap.DpSeWE6i.js";import"./pinia-plugin-persistedstate.COWkwNh5.js";const f={class:"department-form"},h=y(p({__name:"DepartmentForm",props:{type:{},departmentId:{},enterpriseId:{}},emits:["success"],setup(p,{expose:y,emit:h}){const b=p,v=h,g=u(),w=j({name:"",code:"",parent_id:""}),I=j({name:[{required:!0,message:"请输入部门名称",trigger:"blur"}],code:[{required:!0,message:"请输入部门编码",trigger:"blur"}]}),D=u([]),V=async()=>{try{const e=await _.getDepartmentOptions({enterprise_id:b.enterpriseId});0===e.data.code&&(D.value=e.data.data||[])}catch(e){}},x=async()=>{try{const e=`D${Math.floor(9e5*Math.random())+1e5}`;w.code=e}catch(e){}},q=async(e=!1)=>{g.value&&await g.value.validate(async t=>{if(t){const t=o.service({text:"处理中..."});try{let t;t="create"===b.type?await _.createDepartment({enterprise_id:b.enterpriseId,department_name:w.name,department_code:w.code,parent_department_id:w.parent_id||void 0}):await _.updateDepartment(b.departmentId,b.enterpriseId,{department_name:w.name,department_code:w.code,parent_department_id:w.parent_id||void 0}),0===t.data.code?(s.success("create"===b.type?"创建部门成功":"更新部门成功"),e&&"create"===b.type?(Object.assign(w,{name:"",code:"",parent_id:""}),await x()):v("success")):s.error(t.data.message||"操作失败")}catch(a){s.error("操作失败")}finally{t.close()}}})},F=()=>{var e;null==(e=g.value)||e.resetFields(),"create"===b.type&&x()};return y({submitForm:q,resetForm:F}),i(async()=>{await Promise.all([V()]),"create"===b.type?F():await(async()=>{if("update"===b.type&&b.departmentId&&b.enterpriseId)try{const e=await _.getDepartmentDetail(b.departmentId,b.enterpriseId);if(200===e.data.code){const t=e.data.data;w.name=t.department.department_name,w.code=t.department.department_code,w.parent_id=t.department.parent_department_id||""}}catch(e){s.error("加载部门详情失败")}})()}),(s,o)=>{const p=a,i=t,u=r,j=e;return d(),n("div",f,[m(j,{ref_key:"formRef",ref:g,model:w,rules:I,"label-width":"120px",onKeyup:l(q,["enter"])},{default:c(()=>[m(i,{label:"部门名称",prop:"name"},{default:c(()=>[m(p,{modelValue:w.name,"onUpdate:modelValue":o[0]||(o[0]=e=>w.name=e),placeholder:"请输入部门名称",clearable:""},null,8,["modelValue"])]),_:1}),m(i,{label:"部门编码",prop:"code"},{default:c(()=>[m(p,{modelValue:w.code,"onUpdate:modelValue":o[1]||(o[1]=e=>w.code=e),placeholder:"请输入部门编码",clearable:""},null,8,["modelValue"])]),_:1}),m(i,{label:"上级部门",prop:"parent_id"},{default:c(()=>[m(u,{modelValue:w.parent_id,"onUpdate:modelValue":o[2]||(o[2]=e=>w.parent_id=e),data:D.value,"check-strictly":"","render-after-expand":!1,placeholder:"请选择上级部门",clearable:"",style:{width:"100%"}},null,8,["modelValue","data"])]),_:1})]),_:1},8,["model","rules"])])}}}),[["__scopeId","data-v-0762871b"]]);export{h as default};