smSnotification.BowC0h95.js 9.3 KB

1
  1. import{_ as se}from"./qcLogo.ClkaWBBV.js";import{y as re,z as de,A as x,S,E as _}from"./index.DJRppC5x.js";import{a as ue,r as m,_ as L,q as me,f as A,aj as d,c as g,o as v,S as o,K as n,b as i,u as E,M as y,Q as H,P as b,J as Y,R as pe}from"./vue.D1BjjNmv.js";import{_ as ce}from"./_plugin-vue_export-helper.DlAUqK2U.js";const ve={class:"notification"},fe={class:"notification-container"},_e={class:"message-header"},we={class:"contact-info"},ge={class:"contact-actions"},he={class:"message-content"},Ve=["innerHTML"],ye={key:1,class:"no-template"},be={class:"notification-right-footer-action"},ke={class:"notification-right"},Me={class:"notification-right-header"},Te={key:0,class:"template-info"},De={class:"notification-right-content"},Ce=["innerHTML"],Ne={class:"dialog-footer"},$e=ue({__name:"smSnotification",props:{crudExpose:{type:Object,required:!0}},emits:["success"],setup(R,{expose:F,emit:I}){const w=m(!1),h=m(!1),k=m(!1),N=m(),M=m(),f=m(0),T=m([]),p=m(null),D=L({new_status:void 0,note:"",application_ids:[]}),t=L({phone:"",candidateName:"",companyName:"",position:"",interviewDate:"",interviewTime:"",interviewCode:"",interviewMethod:"online",interviewLink:"",interviewAddress:""}),z={phone:[{required:!0,message:"请输入手机号",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"请输入正确的手机号格式",trigger:"blur"}],candidateName:[{required:!0,message:"请输入候选人姓名",trigger:"blur"}],companyName:[{required:!0,message:"请输入公司名称",trigger:"blur"}],position:[{required:!0,message:"请输入职位名称",trigger:"blur"}],interviewDate:[{required:!0,message:"请选择面试日期",trigger:"change"}],interviewTime:[{required:!0,message:"请选择面试时间",trigger:"change"}],interviewCode:[{required:!0,message:"请输入面试码",trigger:"blur"}],interviewMethod:[{required:!0,message:"请选择面试方式",trigger:"change"}]},B=I,j=R,$=async()=>{try{const a=await x.get("https://backend.qicai321.com/api/system/sms/templates/",{headers:{Authorization:`JWT ${S.get("token")}`}});a.data.code===2e3?(console.log(a.data),T.value=a.data.data.templates,J()):_.error("获取短信模板失败")}catch(a){console.error("获取短信模板失败:",a),_.error("获取短信模板失败")}},J=()=>{if(!T.value.length)return;let a;switch(f.value){case 0:a=1;break;case 3:a=2;break;case 4:a=3;break;default:a=0}p.value=T.value[a]};me(()=>{$()});const P=async a=>{var s;w.value=!0,D.application_ids=a.map(r=>r.id),f.value=((s=a[0])==null?void 0:s.status)||0,await $();const e=a[0];e&&(t.phone=e.applicant_phone||"",t.candidateName=e.applicant_name||"",t.companyName="上海敏龙智创科技发展有限公司",t.position=e.position_title||"",t.interviewDate="",t.interviewTime="",t.interviewCode=W(),t.interviewMethod="online",t.interviewLink="",t.interviewAddress="")},W=()=>{const a="ML",e=Math.floor(Math.random()*999).toString().padStart(3,"0");return`${a}${e}`},K=async()=>{M.value&&await M.value.validate(a=>{a&&(_.success("编辑保存成功"),h.value=!1)})},O=a=>{if(!a)return"";const e=new Date(a);return`${e.getFullYear()}年${e.getMonth()+1}月${e.getDate()}日`},Q=a=>{if(!a)return"";const[e,s]=a.split(":"),r=parseInt(e),V=r>=12?"下午":"上午",C=r>12?r-12:r;return`${V}${C}:${s}`},G=a=>{const e="https://backend.qicai321.com";switch(a){case 0:return`${e}/api/system/sms/interview-notification/`;case 3:return`${e}/api/system/sms/interview-passed/`;case 4:return`${e}/api/system/sms/interview-failed/`;default:throw new Error("不支持的状态类型")}},X=a=>{const e={application_ids:D.application_ids,tenant_id:"1",phone:t.phone,name:t.candidateName,company:t.companyName,job:t.position,date:O(t.interviewDate)||"2025年7月30日",time:Q(t.interviewTime)||"10:00",code:t.interviewCode};switch(a){case 0:return{...e,interview_method:t.interviewMethod,interview_link:t.interviewLink,interview_address:t.interviewAddress};case 3:return{...e,onboard_time:t.interviewTime,position:t.position};case 4:return{...e,reason:D.note};default:return e}},Z=async()=>{k.value=!0;try{const a=G(f.value),e=X(f.value),s=await x.post(a,e,{headers:{Authorization:`JWT ${S.get("token")}`}});s.data.code===2e3?(_.success("通知发送成功"),w.value=!1,B("success"),j.crudExpose.doRefresh()):_.error(s.data.msg||"发送失败")}catch(a){console.error("发送通知失败:",a),_.error(a.message||"发送失败,请重试")}finally{k.value=!1}},ee=()=>{N.value&&N.value.resetFields()};F({open:P});const te=A(()=>{switch(f.value){case 0:return"面试邀请通知";case 2:return"面试通过通知";case 4:return"面试未通过通知";default:return"短信通知"}}),oe=A(()=>{switch(f.value){case 0:return"面试邀请模板";case 2:return"录用通知模板";case 4:return"婉拒通知模板";default:return"通用模板"}});return(a,e)=>{const s=d("el-icon"),r=d("el-button"),V=d("Plus"),C=d("Upload"),U=d("el-dialog"),c=d("el-input"),u=d("el-form-item"),ae=d("el-date-picker"),ne=d("el-time-picker"),q=d("el-option"),le=d("el-select"),ie=d("el-form");return v(),g(pe,null,[o(U,{modelValue:w.value,"onUpdate:modelValue":e[1]||(e[1]=l=>w.value=l),title:te.value,width:"60%","close-on-click-modal":!1,onClosed:ee,"custom-class":"interview-notification-dialog"},{footer:n(()=>[i("div",Ne,[o(r,{onClick:e[0]||(e[0]=l=>w.value=!1)},{default:n(()=>e[18]||(e[18]=[b("关闭")])),_:1}),o(r,{type:"primary",onClick:Z,loading:k.value},{default:n(()=>e[19]||(e[19]=[b("发送通知")])),_:1},8,["loading"])])]),default:n(()=>[i("div",ve,[i("div",fe,[i("div",_e,[e[15]||(e[15]=i("div",{class:"avatar"},[i("img",{src:se,alt:"公司头像"})],-1)),i("div",we,[e[14]||(e[14]=i("span",{class:"phone"},"+10688028...",-1)),i("div",ge,[o(r,{link:"",type:"primary",size:"small"},{default:n(()=>[o(s,null,{default:n(()=>[o(E(re))]),_:1})]),_:1}),o(r,{link:"",type:"primary",size:"small"},{default:n(()=>[o(s,null,{default:n(()=>[o(E(de))]),_:1})]),_:1})])])]),i("div",he,[p.value?(v(),g("div",{key:0,innerHTML:p.value.template},null,8,Ve)):(v(),g("div",ye," 暂无可用的短信模板 "))]),i("div",be,[o(s,null,{default:n(()=>[o(V)]),_:1}),e[16]||(e[16]=i("div",{class:"input"},null,-1)),o(s,null,{default:n(()=>[o(V)]),_:1}),o(s,null,{default:n(()=>[o(C)]),_:1})])]),i("div",ke,[i("div",Me,[p.value?(v(),g("div",Te,[e[17]||(e[17]=i("h3",null,"模板信息",-1)),i("p",null,"模板ID: "+H(p.value.id),1),i("p",null,"模板类型: "+H(oe.value),1)])):y("",!0)]),i("div",De,[p.value?(v(),g("div",{key:0,innerHTML:p.value.template},null,8,Ce)):y("",!0)])])])]),_:1},8,["modelValue","title"]),o(U,{modelValue:h.value,"onUpdate:modelValue":e[13]||(e[13]=l=>h.value=l),title:"编辑面试邀请",width:"600px","close-on-click-modal":!1},{footer:n(()=>[o(r,{onClick:e[12]||(e[12]=l=>h.value=!1)},{default:n(()=>e[20]||(e[20]=[b("取消")])),_:1}),o(r,{type:"primary",onClick:K},{default:n(()=>e[21]||(e[21]=[b("保存")])),_:1})]),default:n(()=>[o(ie,{model:t,ref_key:"editFormRef",ref:M,rules:z,"label-width":"100px"},{default:n(()=>[o(u,{label:"手机号",prop:"phone"},{default:n(()=>[o(c,{modelValue:t.phone,"onUpdate:modelValue":e[2]||(e[2]=l=>t.phone=l),placeholder:"请输入手机号"},null,8,["modelValue"])]),_:1}),o(u,{label:"候选人姓名",prop:"candidateName"},{default:n(()=>[o(c,{modelValue:t.candidateName,"onUpdate:modelValue":e[3]||(e[3]=l=>t.candidateName=l),placeholder:"请输入候选人姓名"},null,8,["modelValue"])]),_:1}),o(u,{label:"公司名称",prop:"companyName"},{default:n(()=>[o(c,{modelValue:t.companyName,"onUpdate:modelValue":e[4]||(e[4]=l=>t.companyName=l),placeholder:"请输入公司名称"},null,8,["modelValue"])]),_:1}),o(u,{label:"面试职位",prop:"position"},{default:n(()=>[o(c,{modelValue:t.position,"onUpdate:modelValue":e[5]||(e[5]=l=>t.position=l),placeholder:"请输入面试职位"},null,8,["modelValue"])]),_:1}),o(u,{label:"面试日期",prop:"interviewDate"},{default:n(()=>[o(ae,{modelValue:t.interviewDate,"onUpdate:modelValue":e[6]||(e[6]=l=>t.interviewDate=l),type:"date",placeholder:"选择面试日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD"},null,8,["modelValue"])]),_:1}),o(u,{label:"面试时间",prop:"interviewTime"},{default:n(()=>[o(ne,{modelValue:t.interviewTime,"onUpdate:modelValue":e[7]||(e[7]=l=>t.interviewTime=l),format:"HH:mm","value-format":"HH:mm",placeholder:"选择面试时间"},null,8,["modelValue"])]),_:1}),o(u,{label:"面试码",prop:"interviewCode"},{default:n(()=>[o(c,{modelValue:t.interviewCode,"onUpdate:modelValue":e[8]||(e[8]=l=>t.interviewCode=l),placeholder:"请输入面试码"},null,8,["modelValue"])]),_:1}),o(u,{label:"面试方式",prop:"interviewMethod"},{default:n(()=>[o(le,{modelValue:t.interviewMethod,"onUpdate:modelValue":e[9]||(e[9]=l=>t.interviewMethod=l),placeholder:"请选择面试方式"},{default:n(()=>[o(q,{label:"线上面试",value:"online"}),o(q,{label:"线下面试",value:"offline"})]),_:1},8,["modelValue"])]),_:1}),t.interviewMethod==="online"?(v(),Y(u,{key:0,label:"面试链接",prop:"interviewLink"},{default:n(()=>[o(c,{modelValue:t.interviewLink,"onUpdate:modelValue":e[10]||(e[10]=l=>t.interviewLink=l),placeholder:"请输入面试链接"},null,8,["modelValue"])]),_:1})):y("",!0),t.interviewMethod==="offline"?(v(),Y(u,{key:1,label:"面试地址",prop:"interviewAddress"},{default:n(()=>[o(c,{modelValue:t.interviewAddress,"onUpdate:modelValue":e[11]||(e[11]=l=>t.interviewAddress=l),type:"textarea",placeholder:"请输入面试地址"},null,8,["modelValue"])]),_:1})):y("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue"])],64)}}}),Le=ce($e,[["__scopeId","data-v-011211bc"]]);export{Le as default};