1 |
- import{k as K,p as Q,q as x,t as U,w as W,x as X,y as Y,z as Z,S as B,E as w}from"./index.-GVFoSJY.js";import{a as D,aB as tt,r as g,_ as et,f as st,q as at,aj as h,J as ot,o as d,K as r,b as s,S as o,c as p,M as y,u as c,G as f,R as nt,a9 as it,Q as _,H as lt,P as rt}from"./vue.D1BjjNmv.js";import{createCrudOptions as ct}from"./crud.CsA_GfWl.js";import{g as ut,G as dt}from"./api.C9OTHbIg.js";import{h as pt}from"./columnPermission.Dlfst-om.js";import ft from"./index.DGCIHhXS.js";import{_ as mt}from"./BatchStatusDialog.vue_vue_type_script_setup_true_lang.BoM4Usd2.js";import vt from"./smSnotification.CHbG2OK7.js";import{_ as _t}from"./_plugin-vue_export-helper.DlAUqK2U.js";import"./authFunction.CFfkxgA-.js";import"./qcLogo.ClkaWBBV.js";const gt={class:"job-application-container"},yt={class:"sidebar"},kt={class:"tree-container"},ht={key:0,class:"position-list"},St=["onClick"],bt={class:"item-content"},Ct={key:0,class:"item-count"},xt={class:"item-content"},wt={class:"item-count"},Rt={class:"item-content"},Et={key:0,class:"item-count"},$t={class:"item-content"},qt={key:0,class:"item-count"},Bt={class:"item-content"},Dt={key:0,class:"item-count"},Nt={class:"item-content"},Ot={key:0,class:"item-count"},Pt={class:"item-content"},jt={key:0,class:"item-count"},Mt={class:"content"},Tt={class:"action-button-wrapper"},Vt=D({name:"areas"}),zt=D({...Vt,setup(At){const N=tt(),O="https://backend.qicai321.com/api/job/application/import",{crudBinding:P,crudRef:j,crudExpose:u,crudOptions:M,resetCrudOptions:T}=K({createCrudOptions:ct,context:{openBatchTagsDialog:e=>{R.value.open(e)},openBatchStatusDialog:e=>{E.value.open(e)},openSmsNotification:e=>{$.value.open(e)},selectedRows:[]}}),R=g(),E=g(),$=g(),q=g(0),n=et({1:0,2:0,3:0,4:0,5:0}),b=g(!0);st(()=>e=>({marginLeft:e.name==="已通过"||e.name==="已淘汰"?"32px":"0"}));const S=g([]),V=async()=>{try{const t=await(await fetch(`https://backend.qicai321.com/api/system/job/list?page=1&limit=100&tenant_id=${B.get("tenant_id")}`)).json();t.code===2e3&&t.data?S.value=t.data.map(a=>({id:a.id,title:a.title||a.name||a.job_name,count:0})):console.error("获取职位列表失败:",t.msg||"未知错误")}catch(e){console.error("获取职位列表异常:",e),S.value=[{id:1,title:"流水线操作工",count:0}]}},C=async()=>{try{const t=await ut();console.log(t),t.code===2e3&&t.data?(q.value=t.data.total||0,t.data.status_data&&Array.isArray(t.data.status_data)?t.data.status_data.forEach(a=>{const v={0:1,2:2,3:3,4:4,5:5}[a.status];v&&v in n&&(n[v]=a.count)}):(n[1]=t.data.pending||0,n[2]=t.data.interviewed||0,n[3]=t.data.hired||0,n[4]=t.data.rejected||0,n[5]=t.data.notified||0)):console.error("获取申请状态统计失败:",t.message||"未知错误")}catch(e){console.error("获取申请状态统计异常:",e)}},z=()=>{b.value=!b.value},i=g("all"),m=e=>{if(i.value=e.id||"all",e.type==="all"){try{const t=u.getSearchRef();t&&typeof t.resetFields=="function"&&t.resetFields()}catch(t){console.warn("重置表单失败:",t)}u.doSearch({form:{}})}else e.type==="status"?u.doSearch({form:{status:e.value}}):e.type==="position"&&u.doSearch({form:{position_title:e.value}})},A=e=>{!e||!e.records||(S.value.forEach(t=>{t.count=0}),e.records.forEach(t=>{if(t.position_title){const a=S.value.find(k=>k.title===t.position_title);a&&(a.count=(a.count||0)+1)}}))},L=()=>{u.doRefresh(),C()},F=e=>{e.code===2e3?(w.success("导入成功"),u.doRefresh(),C()):w.error(e.message||"导入失败")},G=e=>{console.error("导入失败:",e),w.error("导入失败,请检查文件格式或网络连接")};return at(async()=>{await V(),await C();const e=await pt(dt,M);if(e&&e.crudOptions&&e.crudOptions.request){const a=e.crudOptions.request.pageRequest;e.crudOptions.request.pageRequest=async k=>{const v=await a(k);return A(v.data),v}}T(e);const t=N.query.status;if(console.log(t),t){const a=Number(t);switch(a){case 0:i.value="status-0";break;case 1:i.value="status-1";break;case 2:i.value="status-2";break;case 3:i.value="status-3";break;case 4:i.value="status-4";break;default:i.value="all"}u.doSearch({form:{status:a}})}else u.doRefresh()}),(e,t)=>{const a=h("el-icon"),k=h("Download"),v=h("el-button"),I=h("el-upload"),H=h("fs-crud"),J=h("fs-page");return d(),ot(J,null,{default:r(()=>[s("div",gt,[s("div",yt,[s("div",kt,[s("div",{class:"category-title",onClick:z},[o(a,null,{default:r(()=>[o(c(Q))]),_:1}),t[7]||(t[7]=s("span",null,"职位",-1)),o(a,{class:f(["expand-icon",{"is-expanded":b.value}])},{default:r(()=>[o(c(x))]),_:1},8,["class"])]),b.value?(d(),p("div",ht,[s("div",{class:f(["tree-item",{active:i.value==="position-all"}]),onClick:t[0]||(t[0]=l=>m({type:"all",id:"position-all"}))},t[8]||(t[8]=[s("div",{class:"item-content"},[s("span",null,"全部")],-1)]),2),(d(!0),p(nt,null,it(S.value,l=>(d(),p("div",{key:"position-"+l.id,class:f(["tree-item",{active:i.value==="position-"+l.id}]),onClick:Lt=>m({type:"position",value:l.title,id:"position-"+l.id})},[s("div",bt,[o(a,null,{default:r(()=>[o(c(x))]),_:1}),s("span",null,_(l.title),1)]),l.count?(d(),p("div",Ct,_(l.count),1)):y("",!0)],10,St))),128))])):y("",!0),s("div",{class:f(["tree-item",{active:i.value==="all"}]),onClick:t[1]||(t[1]=l=>m({type:"all"}))},[s("div",xt,[o(a,null,{default:r(()=>[o(c(U))]),_:1}),t[9]||(t[9]=s("span",null,"全部",-1))]),s("div",wt,_(q.value)+"人",1)],2),s("div",{class:f(["tree-item",{active:i.value==="status-0"}]),onClick:t[2]||(t[2]=l=>m({type:"status",value:0,id:"status-0"}))},[s("div",Rt,[o(a,null,{default:r(()=>[o(c(W))]),_:1}),t[10]||(t[10]=s("span",null,"待通知",-1))]),n[1]?(d(),p("div",Et,_(n[1]),1)):y("",!0)],2),s("div",{class:f(["tree-item",{active:i.value==="status-1"}]),onClick:t[3]||(t[3]=l=>m({type:"status",value:1,id:"status-1"}))},[s("div",$t,[o(a,null,{default:r(()=>[o(c(X))]),_:1}),t[11]||(t[11]=s("span",null,"已通知待面试",-1))]),n[1]?(d(),p("div",qt,_(n[5]),1)):y("",!0)],2),s("div",{class:f(["tree-item",{active:i.value==="status-2"}]),onClick:t[4]||(t[4]=l=>m({type:"status",value:2,id:"status-2"}))},[s("div",Bt,[o(a,null,{default:r(()=>[o(c(x))]),_:1}),t[12]||(t[12]=s("span",null,"已面试待处理",-1))]),n[2]?(d(),p("div",Dt,_(n[2]),1)):y("",!0)],2),s("div",{class:f(["tree-item",{active:i.value==="status-3"}]),onClick:t[5]||(t[5]=l=>m({type:"status",value:3,id:"status-3"}))},[s("div",Nt,[o(a,null,{default:r(()=>[o(c(Y))]),_:1}),t[13]||(t[13]=s("span",null,"已录用",-1))]),n[3]?(d(),p("div",Ot,_(n[3]),1)):y("",!0)],2),s("div",{class:f(["tree-item",{active:i.value==="status-4"}]),onClick:t[6]||(t[6]=l=>m({type:"status",value:4,id:"status-4"}))},[s("div",Pt,[o(a,null,{default:r(()=>[o(c(Z))]),_:1}),t[14]||(t[14]=s("span",null,"拒不录用",-1))]),n[4]?(d(),p("div",jt,_(n[4]),1)):y("",!0)],2)])]),s("div",Mt,[o(H,lt({ref_key:"crudRef",ref:j},c(P)),{"actionbar-right":r(()=>[s("div",Tt,[o(I,{class:"upload-demo",action:O,headers:{Authorization:`Bearer ${c(B).get("token")}`},"on-success":F,"on-error":G,D:"",accept:".xlsx,.xls"},{default:r(()=>[o(v,{type:"primary",size:"small"},{default:r(()=>[o(a,null,{default:r(()=>[o(k)]),_:1}),t[15]||(t[15]=rt(" 导入 "))]),_:1})]),_:1},8,["headers"])])]),_:1},16)])]),o(ft,{ref_key:"batchTagsDialogRef",ref:R,crudExpose:c(u)},null,8,["crudExpose"]),o(mt,{ref_key:"batchStatusDialogRef",ref:E,crudExpose:c(u),onSuccess:L},null,8,["crudExpose"]),o(vt,{ref_key:"smSnotificationRef",ref:$,crudExpose:c(u)},null,8,["crudExpose"])]),_:1})}}}),Zt=_t(zt,[["__scopeId","data-v-c4ddc4a4"]]);export{Zt as default};
|