InstitutionForm.BOza6DHW.js 17 KB

12345
  1. import{z as e,a1 as t,a2 as a,A as l,t as i,F as d,ah as o,aA as s,a3 as p,as as n,I as r,a as _,az as m,G as u}from"./element-plus.ea_38_Np.js";import{M as c,aS as f,aD as y,bE as v,aL as g,u as b,I as h,bJ as V,F as w,aX as j,s as k,bk as x,v as U,H as E,bb as I,bL as Y,t as H,bB as q,aU as D,q as M}from"./@vue.DbmRtknU.js";import{af as L,a as O,I as F,p as S,_ as J}from"./index.Dwded2Oo.js";import{E as N}from"./ScopeDialog.Dn-85PPI.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 z={class:"institution-form"},A={class:"date-picker-wrapper"},C={class:"workday-config"},G={class:"workday-config__item"},P={class:"workday-config__item"},R={key:0,class:"selected-employees"},B={key:1,class:"selected-employees warning"},K=J(c({__name:"InstitutionForm",props:{type:{},institutionId:{},enterpriseId:{}},emits:["success"],setup(c,{expose:J,emit:K}){const T=c,X=K,Z=D(),Q={enterprise_id:void 0,name:void 0,expense_type:"GENERAL",effective:"1",institution_desc:void 0,effective_start_date:void 0,effective_end_date:void 0,consult_mode:"0",grant_mode:"period",applicable_scope:"none",is_long_term:!1,period_type:"monthly",amount:void 0,effective_time_type:"unlimited",single_limit:void 0,workday_start_time:void 0,workday_end_type:"same_day",workday_end_time:void 0,holiday_start_time:void 0,holiday_end_type:"same_day",holiday_end_time:void 0,department_id:void 0,employee_ids:[],tag_ids:[]},W=f(JSON.parse(JSON.stringify(Q))),$=D(!1);function ee(){$.value=!$.value}const te=D([]);async function ae(){var e,t;const a=function(){var e;if(W.enterprise_id)return W.enterprise_id;const t=S(),a=t.getCurrentEnterprise;if(null==a?void 0:a.enterprise_id)return a.enterprise_id;if((null==(e=t.enterpriseList)?void 0:e.length)>0)return t.enterpriseList[0].enterprise_id;try{const e=sessionStorage.getItem("currentEnterprise");if(e){const t=JSON.parse(e);if(null==t?void 0:t.enterprise_id)return t.enterprise_id}}catch(l){}}();if(a)try{const l=await O.listDepartment({enterprise_id:a,page_no:1,page_size:200}),i=(null==(t=null==(e=null==l?void 0:l.data)?void 0:e.data)?void 0:t.items)||[];te.value=i.map(e=>({value:e.department_id,label:e.department_name}))}catch(l){}}y(async()=>{await ae(),0===te.value.length&&setTimeout(()=>{ae()},500)});const le=D([{value:"tag1",label:"管理层"},{value:"tag2",label:"技术骨干"},{value:"tag3",label:"新员工"}]),ie=D(!1),de=M(()=>W.employee_ids);function oe(e){W.employee_ids=e}v(()=>T.institutionId,async e=>{if(e&&"update"===T.type){const t=(await F.detailInstitution(e,T.enterpriseId)).data.data;t&&(W.enterprise_id=t.enterprise_id,W.name=t.name||t.institution_name,W.expense_type=t.expense_type||"GENERAL",W.effective=t.effective||"1",W.institution_desc=t.institution_desc,W.effective_start_date=t.effective_start_date,W.effective_end_date=t.effective_end_date,W.consult_mode=t.consult_mode||"0",W.grant_mode=t.grant_mode||"period",W.applicable_scope=t.applicable_scope||"none",W.period_type=t.period_type||"monthly",W.amount=t.amount,W.single_limit=t.single_limit,W.effective_time_type=t.effective_time_type||"unlimited",W.employee_ids=t.employee_ids||[],W.department_id=t.department_id)}},{immediate:!0}),v(()=>T.enterpriseId,e=>{e&&"create"===T.type&&(W.enterprise_id=e,ae())},{immediate:!0}),v(()=>W.enterprise_id,e=>{e&&ae()}),v(()=>W.applicable_scope,e=>{"employee"!==e&&(W.employee_ids=[]),"department"!==e&&(W.department_id=void 0)});const se=f({enterprise_id:[{required:!0,message:"请输入企业ID",trigger:"blur"}],name:[{required:!0,message:"请输入制度名称",trigger:"blur"}],expense_type:[{required:!0,message:"请选择费用类型",trigger:"change"}],effective_start_date:[{required:!0,message:"请选择制度生效时间",trigger:"change"}],effective_end_date:[{required:!0,message:"请选择制度失效时间",trigger:"change",validator:(e,t,a)=>{W.is_long_term||t?a():a(new Error("请选择制度失效时间"))}}],grant_mode:[{required:!0,message:"请选择额度发放方式",trigger:"change"}],period_type:[{required:!0,message:"请选择周期类型",trigger:"change",validator:(e,t,a)=>{"period"!==W.grant_mode||t?a():a(new Error("请选择周期类型"))}}],amount:[{required:!0,message:"请输入额度金额",trigger:"blur",validator:(e,t,a)=>{"period"!==W.grant_mode?a():!t||t<=0?a(new Error("请输入有效的额度金额")):a()}}],applicable_scope:[{required:!0,message:"请选择适用员工范围",trigger:"change"}]});return J({submitForm:async function(){var e;if(await(null==(e=Z.value)?void 0:e.validate().catch(()=>!1)))try{const e={enterprise_id:W.enterprise_id,name:W.name,expense_type:W.expense_type,effective:W.effective,institution_desc:W.institution_desc||void 0,effective_start_date:W.effective_start_date||void 0,effective_end_date:W.is_long_term?"2099-12-31":W.effective_end_date||void 0,consult_mode:W.consult_mode||void 0,grant_mode:W.grant_mode,applicable_scope:W.applicable_scope};if("department"===W.applicable_scope?(e.scope_owner_type="EMPLOYEE",e.scope_owner_id_list=W.department_id?[W.department_id]:void 0):"employee"===W.applicable_scope&&(e.scope_owner_type="EMPLOYEE",e.scope_owner_id_list=W.employee_ids),"period"===W.grant_mode&&(e.period_type=W.period_type,e.amount=W.amount,e.effective_time_type=W.effective_time_type,e.single_limit=W.single_limit||void 0,"workday"===W.effective_time_type&&(e.workday_start_time=W.workday_start_time,e.workday_end_type=W.workday_end_type,e.workday_end_time=W.workday_end_time,e.holiday_start_time=W.holiday_start_time,e.holiday_end_type=W.holiday_end_type,e.holiday_end_time=W.holiday_end_time)),"create"===T.type)await F.createInstitution(e);else if("update"===T.type&&T.institutionId){const e={institution_id:T.institutionId,enterprise_id:W.enterprise_id,institution_name:W.name,institution_desc:W.institution_desc||void 0,effective:W.effective,effective_start_date:W.effective_start_date||void 0,effective_end_date:W.is_long_term?"2099-12-31":W.effective_end_date||void 0,consult_mode:W.consult_mode||void 0,
  2. // 适用员工范围
  3. applicable_scope:W.applicable_scope,scope_owner_type:"EMPLOYEE",scope_owner_id_list:"employee"===W.applicable_scope?W.employee_ids||[]:"department"===W.applicable_scope&&W.department_id?[W.department_id]:void 0,
  4. // 额度发放与周期参数
  5. grant_mode:W.grant_mode,period_type:W.period_type||"monthly",amount:W.amount,single_limit:W.single_limit,effective_time_type:W.effective_time_type||"unlimited",expense_type:W.expense_type};await F.updateInstitution(T.institutionId,e)}X("success")}catch(t){}},resetForm:function(){var e;Object.assign(W,JSON.parse(JSON.stringify(Q))),null==(e=Z.value)||e.resetFields()}}),(c,f)=>{const y=i,v=l,D=a,M=u,O=d,F=t,S=o,J=s,K=n,T=p,X=r,Q=_,ae=m,pe=e;return g(),b("div",z,[h(pe,{ref_key:"dataFormRef",ref:Z,model:W,rules:se,"label-suffix":":","label-width":"160px","label-position":"right"},{default:V(()=>[h(F,{gutter:20},{default:V(()=>[h(D,{span:12},{default:V(()=>[h(v,{label:"制度名称",prop:"name"},{default:V(()=>[h(y,{modelValue:W.name,"onUpdate:modelValue":f[0]||(f[0]=e=>W.name=e),placeholder:"最多50字",maxlength:50},null,8,["modelValue"])]),_:1})]),_:1}),h(D,{span:12},{default:V(()=>[h(v,{label:"费用类型",prop:"expense_type"},{default:V(()=>[h(O,{modelValue:W.expense_type,"onUpdate:modelValue":f[1]||(f[1]=e=>W.expense_type=e),placeholder:"请选择费用类型",style:{width:"100%"}},{default:V(()=>[(g(!0),b(w,null,j(x(L),e=>(g(),k(M,{key:e.value,label:e.label,value:e.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(F,{gutter:20},{default:V(()=>[h(D,{span:24},{default:V(()=>[h(v,{label:"制度生效时间",prop:"effective_start_date"},{default:V(()=>[h(S,{modelValue:W.effective_start_date,"onUpdate:modelValue":f[2]||(f[2]=e=>W.effective_start_date=e),type:"date",placeholder:"开始时间",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD"},null,8,["modelValue"])]),_:1})]),_:1}),h(D,{span:24},{default:V(()=>[h(v,{label:"制度失效时间",prop:"effective_end_date"},{default:V(()=>[U("div",A,[h(S,{modelValue:W.effective_end_date,"onUpdate:modelValue":f[3]||(f[3]=e=>W.effective_end_date=e),type:"date",placeholder:W.is_long_term?"长期有效":"请选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",disabled:W.is_long_term},null,8,["modelValue","placeholder","disabled"]),h(J,{modelValue:W.is_long_term,"onUpdate:modelValue":f[4]||(f[4]=e=>W.is_long_term=e),label:"长期有效",class:"long-term-checkbox"},null,8,["modelValue"])])]),_:1})]),_:1})]),_:1}),h(F,{gutter:20},{default:V(()=>[h(D,{span:24},{default:V(()=>[h(v,{label:"额度发放",prop:"grant_mode"},{default:V(()=>[h(T,{modelValue:W.grant_mode,"onUpdate:modelValue":f[5]||(f[5]=e=>W.grant_mode=e)},{default:V(()=>[h(K,{value:"period"},{default:V(()=>[...f[23]||(f[23]=[E("按固定周期发放",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),"period"===W.grant_mode?(g(),k(F,{key:0,gutter:20,class:"period-config"},{default:V(()=>[h(D,{span:24},{default:V(()=>[h(v,{label:"",prop:"period_type"},{default:V(()=>[h(T,{modelValue:W.period_type,"onUpdate:modelValue":f[6]||(f[6]=e=>W.period_type=e)},{default:V(()=>[h(K,{value:"daily"},{default:V(()=>[...f[24]||(f[24]=[E("每日额度",-1)])]),_:1}),h(K,{value:"monthly"},{default:V(()=>[...f[25]||(f[25]=[E("每月额度",-1)])]),_:1}),h(K,{value:"weekly"},{default:V(()=>[...f[26]||(f[26]=[E("每周额度",-1)])]),_:1}),h(K,{value:"quarterly"},{default:V(()=>[...f[27]||(f[27]=[E("每季额度",-1)])]),_:1}),h(K,{value:"yearly"},{default:V(()=>[...f[28]||(f[28]=[E("每年额度",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),h(D,{span:12},{default:V(()=>[h(v,{label:"",prop:"amount"},{default:V(()=>[h(X,{modelValue:W.amount,"onUpdate:modelValue":f[7]||(f[7]=e=>W.amount=e),"controls-position":"right",placeholder:"输入金额",min:0,precision:2},{suffix:V(()=>[...f[29]||(f[29]=[U("span",null,"元",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1}),h(D,{span:24,class:"period-config__collapse"},{default:V(()=>[h(Q,{type:"text",onClick:ee},{default:V(()=>[E(I($.value?"更多设置":"收起"),1)]),_:1})]),_:1}),Y(U("div",null,[h(D,{span:24},{default:V(()=>[h(v,{label:"有效时间",prop:"effective_time_type"},{default:V(()=>[h(T,{modelValue:W.effective_time_type,"onUpdate:modelValue":f[8]||(f[8]=e=>W.effective_time_type=e)},{default:V(()=>[h(K,{value:"unlimited"},{default:V(()=>[...f[30]||(f[30]=[E("不限制",-1)])]),_:1}),h(K,{value:"workday"},{default:V(()=>[...f[31]||(f[31]=[E("工作日/节假日",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),"workday"===W.effective_time_type?(g(),k(D,{key:0,span:24},{default:V(()=>[h(v,null,{default:V(()=>[U("div",C,[U("div",G,[f[32]||(f[32]=U("span",{class:"workday-config__label"},"工作日",-1)),h(ae,{modelValue:W.workday_start_time,"onUpdate:modelValue":f[9]||(f[9]=e=>W.workday_start_time=e),type:"time",placeholder:"请选择时间",format:"HH:mm","value-format":"HH:mm"},null,8,["modelValue"]),f[33]||(f[33]=U("span",{class:"workday-config__separator"},"-",-1)),h(O,{modelValue:W.workday_end_type,"onUpdate:modelValue":f[10]||(f[10]=e=>W.workday_end_type=e),placeholder:"选择",style:{width:"80px"}},{default:V(()=>[h(M,{label:"当日",value:"same_day"}),h(M,{label:"次日",value:"next_day"})]),_:1},8,["modelValue"]),h(ae,{modelValue:W.workday_end_time,"onUpdate:modelValue":f[11]||(f[11]=e=>W.workday_end_time=e),type:"time",placeholder:"请选择时间",format:"HH:mm","value-format":"HH:mm"},null,8,["modelValue"])]),U("div",P,[f[34]||(f[34]=U("span",{class:"workday-config__label"},"节假日",-1)),h(ae,{modelValue:W.holiday_start_time,"onUpdate:modelValue":f[12]||(f[12]=e=>W.holiday_start_time=e),type:"time",placeholder:"请选择时间",format:"HH:mm","value-format":"HH:mm"},null,8,["modelValue"]),f[35]||(f[35]=U("span",{class:"workday-config__separator"},"-",-1)),h(O,{modelValue:W.holiday_end_type,"onUpdate:modelValue":f[13]||(f[13]=e=>W.holiday_end_type=e),placeholder:"选择",style:{width:"80px"}},{default:V(()=>[h(M,{label:"当日",value:"same_day"}),h(M,{label:"次日",value:"next_day"})]),_:1},8,["modelValue"]),h(ae,{modelValue:W.holiday_end_time,"onUpdate:modelValue":f[14]||(f[14]=e=>W.holiday_end_time=e),type:"time",placeholder:"请选择时间",format:"HH:mm","value-format":"HH:mm"},null,8,["modelValue"])])])]),_:1})]),_:1})):H("",!0),h(D,{span:24},{default:V(()=>[h(v,{label:"单次限额",prop:"single_limit"},{default:V(()=>[h(X,{modelValue:W.single_limit,"onUpdate:modelValue":f[15]||(f[15]=e=>W.single_limit=e),"controls-position":"right",placeholder:"输入金额",min:0,precision:2},{suffix:V(()=>[...f[36]||(f[36]=[U("span",null,"元",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1})],512),[[q,!$.value]])]),_:1})):H("",!0),h(F,{gutter:20},{default:V(()=>[h(D,{span:24},{default:V(()=>[h(F,{gutter:20},{default:V(()=>[h(D,{span:24},{default:V(()=>[h(v,{label:"适用员工",prop:"applicable_scope"},{default:V(()=>[h(T,{modelValue:W.applicable_scope,"onUpdate:modelValue":f[16]||(f[16]=e=>W.applicable_scope=e)},{default:V(()=>[h(K,{value:"department"},{default:V(()=>[...f[37]||(f[37]=[E("按部门",-1)])]),_:1}),h(K,{value:"employee"},{default:V(()=>[...f[38]||(f[38]=[E("按员工",-1)])]),_:1}),h(K,{value:"all"},{default:V(()=>[...f[39]||(f[39]=[E("全体员工",-1)])]),_:1}),h(K,{value:"none"},{default:V(()=>[...f[40]||(f[40]=[E("暂不设置",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),"department"===W.applicable_scope?(g(),k(D,{key:0,span:12},{default:V(()=>[h(v,{label:"选择部门",prop:"department_id"},{default:V(()=>[h(O,{modelValue:W.department_id,"onUpdate:modelValue":f[17]||(f[17]=e=>W.department_id=e),placeholder:"选择部门",style:{width:"100%"}},{default:V(()=>[(g(!0),b(w,null,j(te.value,e=>(g(),k(M,{key:e.value,label:e.label,value:e.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),f[41]||(f[41]=U("div",{class:"department-tip"}," 按部门选择后,制度将在所选部门内所有员工生效,若部门中变更员工,将直接适用这条制度,需谨慎选择 ",-1))]),_:1})]),_:1})):H("",!0),"employee"===W.applicable_scope?(g(),k(D,{key:1,span:12},{default:V(()=>["employee"===W.applicable_scope?(g(),k(v,{key:0,label:"选择员工",prop:"employee_ids"},{default:V(()=>[U("div",null,[h(Q,{type:"primary",plain:"",onClick:f[18]||(f[18]=e=>ie.value=!0)},{default:V(()=>[...f[42]||(f[42]=[E(" 选择员工 ",-1)])]),_:1}),de.value.length>0?(g(),b("div",R," 已选: "+I(de.value.join(", ")),1)):(g(),b("div",B," 请完成适用员工选择 "))])]),_:1})):H("",!0)]),_:1})):H("",!0),"tag"===W.applicable_scope?(g(),k(D,{key:2,span:12},{default:V(()=>[h(v,{label:"选择标签",prop:"tag_ids"},{default:V(()=>[h(O,{modelValue:W.tag_ids,"onUpdate:modelValue":f[19]||(f[19]=e=>W.tag_ids=e),placeholder:"选择员工标签",multiple:"",style:{width:"100%"}},{default:V(()=>[(g(!0),b(w,null,j(le.value,e=>(g(),k(M,{key:e.value,label:e.label,value:e.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})):H("",!0)]),_:1}),h(F,{gutter:20},{default:V(()=>[h(D,{span:24},{default:V(()=>[h(v,{label:"是否启用",prop:"effective"},{default:V(()=>[h(T,{modelValue:W.effective,"onUpdate:modelValue":f[20]||(f[20]=e=>W.effective=e)},{default:V(()=>[h(K,{value:"1"},{default:V(()=>[...f[43]||(f[43]=[E("启用",-1)])]),_:1}),h(K,{value:"0"},{default:V(()=>[...f[44]||(f[44]=[E("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(F,{gutter:20},{default:V(()=>[h(D,{span:24},{default:V(()=>[h(v,{label:"费控咨询模式",prop:"consult_mode"},{default:V(()=>[h(T,{modelValue:W.consult_mode,"onUpdate:modelValue":f[21]||(f[21]=e=>W.consult_mode=e)},{default:V(()=>[h(K,{value:"0"},{default:V(()=>[...f[45]||(f[45]=[E("支付宝内部计算",-1)])]),_:1}),h(K,{value:"1"},{default:V(()=>[...f[46]||(f[46]=[E("咨询外部服务商",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["model","rules"]),h(N,{visible:ie.value,"onUpdate:visible":f[22]||(f[22]=e=>ie.value=e),"selected-ids":W.employee_ids,"enterprise-id":W.enterprise_id,onConfirm:oe},null,8,["visible","selected-ids","enterprise-id"])])}}}),[["__scopeId","data-v-d5ee4658"]]);export{K as default};