1 |
- import{k as xt,j as G,S as B,E as w,p as zt,q as L,t as $t,w as W,x as Nt,y as Bt,z as Et,A as Vt,B as qt,C as Tt}from"./index.C0qoezmQ.js";import{a as H,aB as jt,r as f,_ as O,f as Pt,q as Dt,aj as p,J as Lt,o as _,K as n,b as s,S as a,c as g,M as R,u as r,G as h,R as Ot,a9 as At,Q as C,H as Ut,P as y}from"./vue.D1BjjNmv.js";import{createCrudOptions as It}from"./crud.CdbZjUcM.js";import{g as Mt,G as Ft}from"./api.DkZFFMX-.js";import{h as Jt}from"./columnPermission.CgzbYufm.js";import Gt from"./index.DgpE2dUa.js";import{_ as Wt}from"./BatchStatusDialog.vue_vue_type_script_setup_true_lang.CbqAONSa.js";import Ht from"./smSnotification.8_H6gM8U.js";import{_ as Kt}from"./_plugin-vue_export-helper.DlAUqK2U.js";import"./authFunction.BGwYLasc.js";import"./qcLogo.ClkaWBBV.js";const Qt={class:"job-application-container"},Xt={class:"tabs-container"},Yt={class:"tab-content"},Zt={class:"sidebar"},te={class:"tree-container"},ee={key:0,class:"position-list"},ae=["onClick"],oe={class:"item-content"},se={key:0,class:"item-count"},ne={class:"item-content"},le={class:"item-count"},ie={class:"item-content"},re={key:0,class:"item-count"},ce={class:"item-content"},de={key:0,class:"item-count"},ue={class:"item-content"},pe={key:0,class:"item-count"},me={class:"item-content"},fe={key:0,class:"item-count"},_e={class:"item-content"},ve={key:0,class:"item-count"},ge={class:"content"},he={class:"tab-content"},ye={class:"notification-container"},be={class:"search-form"},ke={class:"action-bar"},we={class:"left-actions"},Ce={class:"action-button-wrapper"},Se={class:"table-container"},Re={class:"pagination-container"},xe=H({name:"areas"}),ze=H({...xe,setup($e){const K=jt(),A=f("application"),E=f([]),$=f(!1),V=f([]),i=O({name:"",phone:"",position:"",dateRange:[]}),d=O({current:1,size:20,total:0}),Q="https://backend.qicai321.com/api/system/sms_notifications/import_data/",{crudBinding:X,crudRef:Y,crudExpose:m,crudOptions:Z,resetCrudOptions:tt}=xt({createCrudOptions:It,context:{openBatchTagsDialog:e=>{U.value.open(e)},openBatchStatusDialog:e=>{j.value.open(e)},openSmsNotification:e=>{q.value.open(e)},selectedRows:[]}}),U=f(),j=f(),q=f(),I=f(0),c=O({1:0,2:0,3:0,4:0,5:0}),T=f(!0);Pt(()=>e=>({marginLeft:e.name==="已通过"||e.name==="已淘汰"?"32px":"0"}));const N=f([]),et=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?N.value=t.data.map(o=>({id:o.id,title:o.title||o.name||o.job_name,count:0})):console.error("获取职位列表失败:",t.msg||"未知错误")}catch(e){console.error("获取职位列表异常:",e),N.value=[{id:1,title:"流水线操作工",count:0}]}},M=async()=>{try{const t=await Mt();console.log(t),t.code===2e3&&t.data?(I.value=t.data.total||0,t.data.status_data&&Array.isArray(t.data.status_data)?t.data.status_data.forEach(o=>{const v={0:1,2:2,3:3,4:4,5:5}[o.status];v&&v in c&&(c[v]=o.count)}):(c[1]=t.data.pending||0,c[2]=t.data.interviewed||0,c[3]=t.data.hired||0,c[4]=t.data.rejected||0,c[5]=t.data.notified||0)):console.error("获取申请状态统计失败:",t.message||"未知错误")}catch(e){console.error("获取申请状态统计异常:",e)}},at=()=>{T.value=!T.value},u=f("all"),b=e=>{if(u.value=e.id||"all",e.type==="all"){try{const t=m.getSearchRef();t&&typeof t.resetFields=="function"&&t.resetFields()}catch(t){console.warn("重置表单失败:",t)}m.doSearch({form:{}})}else e.type==="status"?m.doSearch({form:{status:e.value}}):e.type==="position"&&m.doSearch({form:{position_title:e.value}})},ot=e=>{!e||!e.records||(N.value.forEach(t=>{t.count=0}),e.records.forEach(t=>{if(t.position_title){const o=N.value.find(z=>z.title===t.position_title);o&&(o.count=(o.count||0)+1)}}))},st=()=>{m.doRefresh(),M()},nt=e=>{console.log(e),e.message==="导入完成"?(w.success("导入成功"),m.doRefresh(),x()):w.error(e.message||"导入失败")},lt=e=>{console.error("导入失败:",e),w.error("导入失败,请检查文件格式或网络连接")},it=e=>{console.log("切换到标签页:",e.name),e.name==="application"?console.log("显示职位申请功能"):e.name==="resume"&&(console.log("显示待通知列表功能"),rt())},rt=async()=>{$.value=!0;try{const e={page:d.current,limit:d.size,status:0};i.name&&(e.name=i.name),i.phone&&(e.phone=i.phone),i.position&&(e.position=i.position),i.dateRange&&i.dateRange.length===2&&(e.start_date=i.dateRange[0],e.end_date=i.dateRange[1]);const o=await(await fetch(`https://backend.qicai321.com/api/job/application/list?${new URLSearchParams(e)}`,{headers:{Authorization:`Bearer ${B.get("token")}`,"Content-Type":"application/json"}})).json();o.code===2e3&&o.data?(E.value=o.data.records||[],d.total=o.data.total||0):(w.error(o.message||"获取待通知列表失败"),F())}catch(e){console.error("获取待通知列表失败:",e),w.error("获取待通知列表失败"),F()}finally{$.value=!1}},F=()=>{E.value=[],d.total=3},ct=()=>{d.current=1,x()},dt=()=>{Object.assign(i,{name:"",phone:"",position:"",dateRange:[]}),d.current=1,x()},ut=e=>{V.value=e},pt=e=>{d.size=e,d.current=1,x()},mt=e=>{d.current=e,x()},ft=e=>{q.value.open([e])},_t=e=>{j.value.open([e])},vt=e=>{console.log("查看详情:",e),w.info("查看详情功能开发中...")},gt=()=>{if(V.value.length===0){w.warning("请选择要通知的申请");return}q.value.open(V.value)},ht=async()=>{try{const e=await G.get("https://backend.qicai321.com/api/system/sms_notifications/download_template/",{headers:{Authorization:`JWT ${B.get("token")}`},responseType:"blob"}),t=window.URL.createObjectURL(new Blob([e.data])),o=document.createElement("a");o.href=t,o.setAttribute("download","template.xlsx"),document.body.appendChild(o),o.click(),o.remove()}catch(e){console.error("下载模板失败:",e)}};Dt(async()=>{await et(),await M();const e=await Jt(Ft,Z);if(e&&e.crudOptions&&e.crudOptions.request){const o=e.crudOptions.request.pageRequest;e.crudOptions.request.pageRequest=async z=>{const v=await o(z);return ot(v.data),v}}tt(e);const t=K.query.status;if(console.log(t),t){const o=Number(t);switch(o){case 0:u.value="status-0";break;case 1:u.value="status-1";break;case 2:u.value="status-2";break;case 3:u.value="status-3";break;case 4:u.value="status-4";break;default:u.value="all"}m.doSearch({form:{status:o}})}else m.doRefresh();x()});const x=async()=>{$.value=!0;try{const e=await G.get("https://backend.qicai321.com/api/system/sms_notifications/",{params:{page:d.current,limit:d.size,name:i.name,phone:i.phone},headers:{Authorization:`JWT ${B.get("token")}`}});console.log(e.data),e.data.code===2e3?E.value=e.data.data:w.error(e.data.message||"获取通知列表失败")}catch(e){console.error("获取通知列表失败:",e)}finally{$.value=!1}};return(e,t)=>{const o=p("el-icon"),z=p("fs-crud"),v=p("el-tab-pane"),J=p("el-input"),P=p("el-form-item"),k=p("el-button"),yt=p("el-form"),bt=p("el-upload"),S=p("el-table-column"),kt=p("el-tag"),wt=p("el-table"),Ct=p("el-pagination"),St=p("el-tabs"),Rt=p("fs-page");return _(),Lt(Rt,null,{default:n(()=>[s("div",Qt,[s("div",Xt,[a(St,{modelValue:A.value,"onUpdate:modelValue":t[11]||(t[11]=l=>A.value=l),type:"card",onTabClick:it},{default:n(()=>[a(v,{label:"职位申请",name:"application"},{default:n(()=>[s("div",Yt,[s("div",Zt,[s("div",te,[s("div",{class:"category-title",onClick:at},[a(o,null,{default:n(()=>[a(r(zt))]),_:1}),t[12]||(t[12]=s("span",null,"职位",-1)),a(o,{class:h(["expand-icon",{"is-expanded":T.value}])},{default:n(()=>[a(r(L))]),_:1},8,["class"])]),T.value?(_(),g("div",ee,[s("div",{class:h(["tree-item",{active:u.value==="position-all"}]),onClick:t[0]||(t[0]=l=>b({type:"all",id:"position-all"}))},t[13]||(t[13]=[s("div",{class:"item-content"},[s("span",null,"全部")],-1)]),2),(_(!0),g(Ot,null,At(N.value,l=>(_(),g("div",{key:"position-"+l.id,class:h(["tree-item",{active:u.value==="position-"+l.id}]),onClick:D=>b({type:"position",value:l.title,id:"position-"+l.id})},[s("div",oe,[a(o,null,{default:n(()=>[a(r(L))]),_:1}),s("span",null,C(l.title),1)]),l.count?(_(),g("div",se,C(l.count),1)):R("",!0)],10,ae))),128))])):R("",!0),s("div",{class:h(["tree-item",{active:u.value==="all"}]),onClick:t[1]||(t[1]=l=>b({type:"all"}))},[s("div",ne,[a(o,null,{default:n(()=>[a(r($t))]),_:1}),t[14]||(t[14]=s("span",null,"全部",-1))]),s("div",le,C(I.value)+"人",1)],2),s("div",{class:h(["tree-item",{active:u.value==="status-0"}]),onClick:t[2]||(t[2]=l=>b({type:"status",value:0,id:"status-0"}))},[s("div",ie,[a(o,null,{default:n(()=>[a(r(W))]),_:1}),t[15]||(t[15]=s("span",null,"待通知",-1))]),c[1]?(_(),g("div",re,C(c[1]),1)):R("",!0)],2),s("div",{class:h(["tree-item",{active:u.value==="status-1"}]),onClick:t[3]||(t[3]=l=>b({type:"status",value:1,id:"status-1"}))},[s("div",ce,[a(o,null,{default:n(()=>[a(r(Nt))]),_:1}),t[16]||(t[16]=s("span",null,"已通知待面试",-1))]),c[1]?(_(),g("div",de,C(c[5]),1)):R("",!0)],2),s("div",{class:h(["tree-item",{active:u.value==="status-2"}]),onClick:t[4]||(t[4]=l=>b({type:"status",value:2,id:"status-2"}))},[s("div",ue,[a(o,null,{default:n(()=>[a(r(L))]),_:1}),t[17]||(t[17]=s("span",null,"已面试待处理",-1))]),c[2]?(_(),g("div",pe,C(c[2]),1)):R("",!0)],2),s("div",{class:h(["tree-item",{active:u.value==="status-3"}]),onClick:t[5]||(t[5]=l=>b({type:"status",value:3,id:"status-3"}))},[s("div",me,[a(o,null,{default:n(()=>[a(r(Bt))]),_:1}),t[18]||(t[18]=s("span",null,"已录用",-1))]),c[3]?(_(),g("div",fe,C(c[3]),1)):R("",!0)],2),s("div",{class:h(["tree-item",{active:u.value==="status-4"}]),onClick:t[6]||(t[6]=l=>b({type:"status",value:4,id:"status-4"}))},[s("div",_e,[a(o,null,{default:n(()=>[a(r(Et))]),_:1}),t[19]||(t[19]=s("span",null,"拒不录用",-1))]),c[4]?(_(),g("div",ve,C(c[4]),1)):R("",!0)],2)])]),s("div",ge,[a(z,Ut({ref_key:"crudRef",ref:Y},r(X)),null,16)])])]),_:1}),a(v,{label:"待通知列表",name:"resume"},{default:n(()=>[s("div",he,[s("div",ye,[s("div",be,[a(yt,{model:i,inline:!0,size:"default"},{default:n(()=>[a(P,{label:"姓名"},{default:n(()=>[a(J,{modelValue:i.name,"onUpdate:modelValue":t[7]||(t[7]=l=>i.name=l),placeholder:"请输入姓名",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),a(P,{label:"手机号"},{default:n(()=>[a(J,{modelValue:i.phone,"onUpdate:modelValue":t[8]||(t[8]=l=>i.phone=l),placeholder:"请输入手机号",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),a(P,null,{default:n(()=>[a(k,{type:"primary",onClick:ct},{default:n(()=>[a(o,null,{default:n(()=>[a(r(Vt))]),_:1}),t[20]||(t[20]=y(" 搜索 "))]),_:1}),a(k,{onClick:dt},{default:n(()=>[a(o,null,{default:n(()=>[a(r(qt))]),_:1}),t[21]||(t[21]=y(" 重置 "))]),_:1})]),_:1})]),_:1},8,["model"])]),s("div",ke,[s("div",we,[a(k,{type:"primary",onClick:gt,size:"small",disabled:!V.value.length},{default:n(()=>[a(o,null,{default:n(()=>[a(r(W))]),_:1}),t[22]||(t[22]=y(" 批量通知 "))]),_:1},8,["disabled"]),s("div",Ce,[a(bt,{class:"upload-demo",action:Q,headers:{Authorization:`JWT ${r(B).get("token")}`},"on-success":nt,"on-error":lt,accept:".xlsx,.xls"},{default:n(()=>[a(k,{type:"primary",size:"small"},{default:n(()=>[a(o,null,{default:n(()=>[a(r(Tt))]),_:1}),t[23]||(t[23]=y(" 导入 "))]),_:1})]),_:1},8,["headers"])]),a(k,{type:"primary",onClick:ht,size:"small"},{default:n(()=>t[24]||(t[24]=[y(" 下载导入模板 ")])),_:1})])]),s("div",Se,[a(wt,{data:E.value,onSelectionChange:ut,loading:$.value,style:{width:"100%"},height:"calc(100vh - 400px)"},{default:n(()=>[a(S,{type:"selection",width:"55"}),a(S,{prop:"name",label:"姓名",width:"120"}),a(S,{prop:"phone",label:"手机号",width:"130"}),a(S,{prop:"status",label:"状态",width:"100"},{default:n(l=>[a(kt,{type:"warning"},{default:n(()=>t[25]||(t[25]=[y("待通知")])),_:1})]),_:1}),a(S,{prop:"source",label:"来源",width:"100"}),a(S,{prop:"remark",label:"备注","min-width":"150","show-overflow-tooltip":""}),a(S,{label:"操作",width:"200",fixed:"right"},{default:n(l=>[a(k,{type:"primary",size:"small",onClick:D=>ft(l.row)},{default:n(()=>t[26]||(t[26]=[y(" 通知 ")])),_:2},1032,["onClick"]),a(k,{type:"success",size:"small",onClick:D=>_t(l.row)},{default:n(()=>t[27]||(t[27]=[y(" 安排面试 ")])),_:2},1032,["onClick"]),a(k,{type:"info",size:"small",onClick:D=>vt(l.row)},{default:n(()=>t[28]||(t[28]=[y(" 查看详情 ")])),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data","loading"])]),s("div",Re,[a(Ct,{"current-page":d.current,"onUpdate:currentPage":t[9]||(t[9]=l=>d.current=l),"page-size":d.size,"onUpdate:pageSize":t[10]||(t[10]=l=>d.size=l),"page-sizes":[10,20,50,100],total:d.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:pt,onCurrentChange:mt},null,8,["current-page","page-size","total"])])])])]),_:1})]),_:1},8,["modelValue"])])]),a(Gt,{ref_key:"batchTagsDialogRef",ref:U,crudExpose:r(m)},null,8,["crudExpose"]),a(Wt,{ref_key:"batchStatusDialogRef",ref:j,crudExpose:r(m),onSuccess:st},null,8,["crudExpose"]),a(Ht,{ref_key:"smSnotificationRef",ref:q,crudExpose:r(m)},null,8,["crudExpose"])]),_:1})}}}),Ae=Kt(ze,[["__scopeId","data-v-9af3517b"]]);export{Ae as default};
|