# Conflicts: # server/public/admin/assets/.pnpm-Cy9nIqIg.js # server/public/admin/assets/403-DZv43rg8.js # server/public/admin/assets/404-BdEnY8Op.js # server/public/admin/assets/@tencentcloud/call-engine-js-DC0nMlpX.js # server/public/admin/assets/@tencentcloud/chat-BgZr4keH.js # server/public/admin/assets/@tencentcloud/chat-uikit-engine-D2vNRuTA.js # server/public/admin/assets/AppointmentRecordPanel-BLiYiAbY.js # server/public/admin/assets/AssignLogPanel-B37Pa478.js # server/public/admin/assets/AssistantWatchCallDialog-CwSHnJSG.js # server/public/admin/assets/BloodRecordList-Drn0jNIG.js # server/public/admin/assets/CaseRecordList-DOWsaiL5.js # server/public/admin/assets/ConsultationTranscriptPanel-fqClePUL.js # server/public/admin/assets/DailyMatrix-B_BuE6Wk.js # server/public/admin/assets/DiagnosisTodoList-BvKuWevJ.js # server/public/admin/assets/DietRecordList-CNcxCdHz.js # server/public/admin/assets/ExerciseRecordList-DcrDxj4-.js # server/public/admin/assets/FollowupAudioField-DwFRovp6.js # server/public/admin/assets/FollowupAudioPanel-161TbfEd.js # server/public/admin/assets/FollowupAudioReview-DUx7pf7f.js # server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-8OIk4lHB.js # server/public/admin/assets/ImChatRecordPanel-DHff4nFV.js # server/public/admin/assets/MediaSourceSelect-DAiidBXd.js # server/public/admin/assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-BnUzDRdh.js # server/public/admin/assets/MessageBubble-bYTr-oyb.js # server/public/admin/assets/NoteTimeline-jPsAfPnk.js # server/public/admin/assets/OrderActionHost-CM9FpHNh.js # server/public/admin/assets/OrderPanel-Co_XYZDR.js # server/public/admin/assets/PatientCaseCard-CDC9oDgL.js # server/public/admin/assets/PatientInfoCard-wIayMpdX.js # server/public/admin/assets/PatientOrderList-C0nBgRYQ.js # server/public/admin/assets/PrescriptionAiBatchGenerateDialog--28G2reg.js # server/public/admin/assets/PrescriptionAiReportDialog-BElqcJhz.js # server/public/admin/assets/PrescriptionOrderDetailDrawer-C1YLaoua.js # server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-zSycYEpH.js # server/public/admin/assets/ProgressPanel-DuOaWdPj.js # server/public/admin/assets/PromotionAutomationForm-CEi-wURu.js # server/public/admin/assets/RecordingPlaybackBlock-B1YEgQib.js # server/public/admin/assets/RecordingVideoPlayer-CzGfJLYq.js # server/public/admin/assets/SendPanel-C81B60j9.js # server/public/admin/assets/TrackingMatrix-Dvlry4c2.js # server/public/admin/assets/TrackingNoteTimeline-CcOnnAQR.js # server/public/admin/assets/WecomFloatingWidgetBuilder-BZ1rtSPX.js # server/public/admin/assets/WelcomeMessageEditor-FXBSgF_s.js # server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-BDg3Vt-5.js # server/public/admin/assets/account_cost-1Kig3__5.js # server/public/admin/assets/add-CnMHBvcC.js # server/public/admin/assets/admin-mWKPRS5Z.js # server/public/admin/assets/ai_mcp-BdB18eax.js # server/public/admin/assets/appointment-BABD2Tar.js # server/public/admin/assets/article-B2IS97ge.js # server/public/admin/assets/asset-fny0UJmY.js # server/public/admin/assets/attr-BO203wr6.js # server/public/admin/assets/attr-CYxX_t_S.js # server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-BK3AJqkU.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-C1vfB9ju.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CA3Eqz_I.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CISdFe5h.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CfyBAgmS.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-LP4IWWFR.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-R-6FX7Mu.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-bgUhDqjK.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-hGjVuUay.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-hudO2m34.js # server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-i4BbFcAt.js # server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-BoZeVoZP.js # server/public/admin/assets/balance_details-DOLi1Dm0.js # server/public/admin/assets/bind-work-wechat-DFHKss6n.js # server/public/admin/assets/cache-nfUb4Iya.js # server/public/admin/assets/change-password-CeOlId8o.js # server/public/admin/assets/code-B18aVPXd.js # server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-DGCCjmlM.js # server/public/admin/assets/commission-settlement-CdEu_C9J.js # server/public/admin/assets/commission-settlement-CdlIY0iL.css # server/public/admin/assets/config-J5lzqSHX.js # server/public/admin/assets/consumer-BpKM0EGl.js # server/public/admin/assets/content-69Fk_4pj.js # server/public/admin/assets/content-BKD0OzuH.js # server/public/admin/assets/content-CBy84fnS.js # server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-AQZfsEkF.js # server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-BlBOVIVr.js # server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-ByXjA9a8.js # server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DBQ1TxzP.js # server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DSdHmkxS.js # server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-CFW87alA.js # server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-DLwRo6Tk.js # server/public/admin/assets/dayjs-LzqDqVlD.js # server/public/admin/assets/decoration-DiTN-PkH.js # server/public/admin/assets/decoration-img-BHQwkVvP.js # server/public/admin/assets/default_reply-D8zCYW7U.js # server/public/admin/assets/department-DWsa1OjT.js # server/public/admin/assets/dept-tongji-eyhTfbdn.js # server/public/admin/assets/desktop_workstation-DjyYOet-.js # server/public/admin/assets/detail-BZAR9ddi.js # server/public/admin/assets/detail-CFyC8ImZ.js # server/public/admin/assets/dict-K5jXOVeu.js # server/public/admin/assets/doctor-67HUqvH6.js # server/public/admin/assets/edit-BVGUIRWC.js # server/public/admin/assets/edit-BYRC6YDz.css # server/public/admin/assets/edit-CiIgrwSx.js # server/public/admin/assets/edit-CtQmrXFk.js # server/public/admin/assets/edit-DFAdp19K.js # server/public/admin/assets/edit-DNccqn8z.js # server/public/admin/assets/edit-DjWNlPnW.js # server/public/admin/assets/edit-Qrv_aqRa.js # server/public/admin/assets/edit-vVRINxRB.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-B_oC0AEU.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-C7-_pAL8.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CTFgk6QV.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CX_KUDU8.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DyP0DJmF.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DyqPlqpu.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-KBdoyuFG.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-NbrHRZf2.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-z-MjcUR0.js # server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-DKmZkTfn.js # server/public/admin/assets/environment-CypnLxrG.js # server/public/admin/assets/error-qleaM0eA.js # server/public/admin/assets/fans-BEy6y9dV.js # server/public/admin/assets/file-BbPuzGA_.js # server/public/admin/assets/file-CYwMKS77.js # server/public/admin/assets/filing-CD0AWXGl.js # server/public/admin/assets/finance-D_CR5ikx.js # server/public/admin/assets/first_visit-D4R0U3AW.js # server/public/admin/assets/follow_reply-c3sC_GVa.js # server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-g2gc-rGu.js # server/public/admin/assets/guahao-Dx7MIOXD.js # server/public/admin/assets/h5-DEYp6ziA.js # server/public/admin/assets/icon-CXrybs-g.js # server/public/admin/assets/im-business-message-parse-D_ibrMLq.js # server/public/admin/assets/index-01yWb2WC.js # server/public/admin/assets/index-6D3QYnU-.js # server/public/admin/assets/index-B1iWGyoA.js # server/public/admin/assets/index-B4AHD13Q.js # server/public/admin/assets/index-BBfgtFWE.js # server/public/admin/assets/index-BBw5kvK3.js # server/public/admin/assets/index-BDAWyLAZ.js # server/public/admin/assets/index-BJGIfP1w.js # server/public/admin/assets/index-BQUdwcn-.js # server/public/admin/assets/index-BSMBP3_x.js # server/public/admin/assets/index-BdkP3TxP.js # server/public/admin/assets/index-BgMeTKOG.js # server/public/admin/assets/index-Bmrtumah.js # server/public/admin/assets/index-Brsj06xV.js # server/public/admin/assets/index-Burmlw_C.js # server/public/admin/assets/index-C06c4h92.js # server/public/admin/assets/index-C1h5WVyC.js # server/public/admin/assets/index-C2Gny0kk.js # server/public/admin/assets/index-C5O-FG0j.js # server/public/admin/assets/index-C8BoF1ue.js # server/public/admin/assets/index-CJuWPVul.js # server/public/admin/assets/index-CV08lFR0.js # server/public/admin/assets/index-C_WKJDWz.js # server/public/admin/assets/index-Cew5Amf6.js # server/public/admin/assets/index-CkXW7n_b.js # server/public/admin/assets/index-CprgR4Ho.js # server/public/admin/assets/index-Csf0cSVI.js # server/public/admin/assets/index-Cux23s8_.js # server/public/admin/assets/index-D0fXvBxu.js # server/public/admin/assets/index-D8yz_vWn.js # server/public/admin/assets/index-DBKQxzkM.js # server/public/admin/assets/index-DIjSXq4q.js # server/public/admin/assets/index-DIqVZCk0.js # server/public/admin/assets/index-DNsVxejj.js # server/public/admin/assets/index-DPWF9bqo.js # server/public/admin/assets/index-DQ51fSAo.js # server/public/admin/assets/index-DQ9Uu3LT.js # server/public/admin/assets/index-DWRHbuqT.js # server/public/admin/assets/index-Db2Y9m7h.js # server/public/admin/assets/index-DcHdMI2B.js # server/public/admin/assets/index-DgPgE-Vl.js # server/public/admin/assets/index-Dr8oROcK.js # server/public/admin/assets/index-Ds_Mrym4.js # server/public/admin/assets/index-DtSyPsbW.js # server/public/admin/assets/index-GT7BM7PS.js # server/public/admin/assets/index-JZkFc8I0.js # server/public/admin/assets/index-hNEe3rMW.js # server/public/admin/assets/index-kMiV0948.js # server/public/admin/assets/index-qwjw9zcC.js # server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-BClfSqof.js # server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-BtlhchBa.js # server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-C6aeOkz-.js # server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-Cxgoepog.js # server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-Dx6SeCGU.js # server/public/admin/assets/index.vue_vue_type_style_index_0_lang-DFOUY-wL.js # server/public/admin/assets/information-D4VXaoVX.js # server/public/admin/assets/keyword_reply-CtUT2T_C.js # server/public/admin/assets/link-DAAa4-8h.js # server/public/admin/assets/list-B31OC0dY.js # server/public/admin/assets/login-D-CTVkUr.js # server/public/admin/assets/login_register-BiM6Wf25.js # server/public/admin/assets/medicine-BGJ8mZD8.js # server/public/admin/assets/medicine-CNGccw4f.js # server/public/admin/assets/menu-BhV_PotF.js # server/public/admin/assets/menu-CixPRDpt.js # server/public/admin/assets/menu-set.vue_vue_type_script_setup_true_lang-B0ghs-Pc.js # server/public/admin/assets/message-DWVo1Jk8.js # server/public/admin/assets/mobile-style.vue_vue_type_script_setup_true_lang-B9BK24HQ.js # server/public/admin/assets/mubiao-A1xD0JzP.js # server/public/admin/assets/mubiao-dept-card-DDiegAnr.js # server/public/admin/assets/mubiao-dept-node-Cmw8YiIy.js # server/public/admin/assets/oa-attr-DZLm3ufW.js # server/public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-CXz4UbLJ.js # server/public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang-BPJDNffP.js # server/public/admin/assets/open_setting-YVf3y2zz.js # server/public/admin/assets/order-Bc7o9SOH.js # server/public/admin/assets/overflow-DhSFQzu9.js # server/public/admin/assets/paiban-BY9Nnrmr.js # server/public/admin/assets/patient-DxJlPLVv.js # server/public/admin/assets/patient-call-q2qMhhFV.js # server/public/admin/assets/pay-DWoC89w_.js # server/public/admin/assets/pc-CDHcPjgN.js # server/public/admin/assets/perm-DaS8_T_U.js # server/public/admin/assets/picker-ruBeJVAv.js # server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-DsjIkNAZ.js # server/public/admin/assets/popover_input-CrckcagQ.js # server/public/admin/assets/post-DGDTwH-Z.js # server/public/admin/assets/prescription-drawer-DN1NpnaF.js # server/public/admin/assets/preview-BbXyDhjZ.js # server/public/admin/assets/preview-pc-DIFp8DvX.js # server/public/admin/assets/progress-BUj9Y2lB.js # server/public/admin/assets/protocol-Clsp_lEu.js # server/public/admin/assets/qywx-CxG05a7f.js # server/public/admin/assets/recharge_record-CymZKQ4E.js # server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-Choelpx6.js # server/public/admin/assets/refund_record-BLbeOAEj.js # server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-BRi9G5mf.js # server/public/admin/assets/role-Czcmecam.js # server/public/admin/assets/roster-Bh9PjuXi.js # server/public/admin/assets/rtc-detect-BFElJVVn.js # server/public/admin/assets/self_input_stats-P0WLo9tC.js # server/public/admin/assets/setting-CCd8WCbC.js # server/public/admin/assets/setup-HuwOPKIm.js # server/public/admin/assets/statistics-Cj3WlBni.js # server/public/admin/assets/stats-E_9WKdl6.js # server/public/admin/assets/style-DoPXLvzO.js # server/public/admin/assets/tabbar-DD2RRhme.js # server/public/admin/assets/tcm-E9u-W8Oy.js # server/public/admin/assets/theme-picker-NdSgC88S.js # server/public/admin/assets/tim-profanity-filter-plugin-BvbMOVpi.js # server/public/admin/assets/tim-upload-plugin-D7nWSdhF.js # server/public/admin/assets/tongji-yCfKN-LL.js # server/public/admin/assets/upload-CjtahvI1.js # server/public/admin/assets/useDictOptions-LZFsDBEH.js # server/public/admin/assets/useListTimeFilter-CUZgt-II.js # server/public/admin/assets/useLockFn-C2guENRT.js # server/public/admin/assets/useMediaSourceOptions-wCazM6uJ.js # server/public/admin/assets/useMenuOa-92GS9rAv.js # server/public/admin/assets/usePaging-DzgVFG9b.js # server/public/admin/assets/user-DHg9QKqg.js # server/public/admin/assets/weapp-C5C4Oypv.js # server/public/admin/assets/weapp-CgFixEn4.js # server/public/admin/assets/website-Dk_rtWyw.js # server/public/admin/assets/wx_oa-BR5bK2fX.js # server/public/admin/assets/yeji-BlMBwtyi.js # server/public/admin/assets/yeji-edit.vue_vue_type_script_setup_true_lang-AeltfJWh.js # server/public/admin/index.html
2 lines
18 KiB
JavaScript
2 lines
18 KiB
JavaScript
import{o as Ue,R as ve,bw as Ee,q as s,r as i,v as o,be as Ce,s as d,bb as xe,D as u,bh as Ie,bq as Te,L as r,F as y,G as V,T as _,K as He,cB as Me,u as H,O as h,bi as Se,c9 as Be,P as c,bj as $e,bk as Ne,cx as ee,ae as le,I as De,cD as Ae,bY as ze,aA as Pe,bc as Re,aw as Fe,p as b,M as w,n as Ge}from"./.pnpm-Cy9nIqIg.js";import{y as Ke,z as Le}from"./first_visit-DCAge5VK.js";import{w as pe,t as Oe,W as ce,p as Ye,v as je}from"./WelcomeMessageEditor-S9ZwUBjU.js";import{_ as qe}from"./index-BGCyUBQ6.js";const We={class:"automation-form"},Je={key:0,class:"reception-schedules"},Qe={class:"schedule-heading"},Xe={class:"time-row"},Ze={key:0},el={key:0,class:"inline-error"},ll={key:0,class:"legacy-tags-warning full-width",role:"alert"},al={key:1,class:"full-width tags-content"},tl={class:"tag-select-row"},sl={key:0,role:"alert",class:"inline-error"},ol={key:1,class:"field-help"},dl={key:2,class:"custom-tag-editor"},ul={class:"custom-tag-row"},nl={key:0,role:"alert",class:"inline-error"},il={key:3,role:"status",class:"tag-success"},rl={key:0,class:"full-width remark-content"},ml={class:"token-buttons"},vl={class:"remark-preview"},pl={class:"field-help"},cl={key:0,class:"field-help"},bl={key:1,class:"field-help warning-help"},fl={key:2,class:"field-help warning-help"},_l={class:"welcome-block"},gl={key:0},kl={class:"schedule-heading"},yl={class:"time-row"},wl={key:0},Vl=Ue({__name:"PromotionAutomationForm",props:{modelValue:{},mainMemberIds:{},members:{},disabled:{type:Boolean},disabledSections:{},backupExcludedMemberIds:{}},emits:["update:modelValue","busy"],setup(j,{emit:be}){const C=j,q=be,t=b({get:()=>C.modelValue,set:a=>q("update:modelValue",a)}),W=a=>{var e;return!!(C.disabled||(e=C.disabledSections)!=null&&e.includes(a))},x=b(()=>W("reception")),m=b(()=>W("customer")),U=b(()=>W("welcome")),fe=b(()=>C.backupExcludedMemberIds||C.mainMemberIds),ae=b(()=>C.members.filter(a=>C.mainMemberIds.includes(Number(a.id)))),_e=b(()=>t.value.backup_member_admin_ids.filter(a=>!C.members.some(e=>Number(e.id)===a))),P=b(()=>{var a;return((a=ae.value[0])==null?void 0:a.name)||"小陈"}),te=b(()=>Ye(t.value.remark_template,P.value,20)),R=w(),J=w({start:0,end:0}),M=w([]),T=w(!1),B=w(""),se=w(!1),g=w(!1),F=w(!1),$=w(""),S=w(""),N=w(""),ge=b(()=>t.value.tag_ids.length>1),G=b({get:()=>t.value.tag_ids.length===1?t.value.tag_ids[0]:"",set:a=>{t.value.tag_ids=a?[a]:[],N.value=""}}),ke=b(()=>{const a=M.value.flatMap(e=>e.tag);return t.value.tag_ids.map(e=>{var v;return((v=a.find(p=>p.id===e))==null?void 0:v.name)||e}).join("、")}),K=w(new Set),D=b(()=>K.value.size>0);ve([g,D],([a,e])=>q("busy",a||e),{flush:"sync"});const oe=b(()=>{const a=new Set(M.value.flatMap(e=>e.tag.map(v=>v.id)));return t.value.tag_ids.filter(e=>!a.has(e))});ve([()=>t.value.tags_enabled,m],([a,e])=>{a&&!e&&!se.value&&!T.value&&ne()},{immediate:!0});function de(a){var e;return`${a.name} · ${((e=a.dept_names)==null?void 0:e.join(" / "))||a.userid||"未分部门"}`}function ye(){t.value.reception_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",member_admin_ids:[...C.mainMemberIds]})}function we(){t.value.welcome_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",text:"",attachments:[]})}function Ve(a){t.value.welcome_schedule.splice(a,1),K.value.clear()}function ue(a,e){e?K.value.add(a):K.value.delete(a)}async function ne(){if(!(g.value||T.value)){T.value=!0,B.value="";try{const a=await Ke();if(!Array.isArray(a==null?void 0:a.tag_groups))throw new Error("标签接口未返回有效的标签列表。");M.value=a.tag_groups.map(e=>({...e,tag:Array.isArray(e.tag)?e.tag:[]})),se.value=!0}catch(a){B.value=a instanceof Error?a.message:typeof a=="string"?a:"企业微信标签加载失败。"}finally{T.value=!1}}}async function ie(){var a;if(!(m.value||g.value||T.value)&&(S.value=je($.value),N.value="",!S.value)){g.value=!0;try{const e=await Le({name:$.value.trim()});if(!((a=e==null?void 0:e.tag)!=null&&a.id)||!e.tag.name||!e.group_id)throw new Error("企业微信未返回有效的标签 ID,请刷新标签后确认。");let v=M.value.find(I=>I.group_id===e.group_id);v||(v={group_id:e.group_id,group_name:e.group_name,tag:[]},M.value.push(v));const p=v.tag.findIndex(I=>I.id===e.tag.id);p>=0?v.tag[p]=e.tag:v.tag.push(e.tag),G.value=e.tag.id,N.value=`${e.reused?"已选用已有":"已创建并选用"}标签“${e.tag.name}”,保存方案后生效。`,$.value="",F.value=!1}catch(e){S.value=e instanceof Error?e.message:typeof e=="string"?e:"自定义标签创建失败,请刷新确认或重试。"}finally{g.value=!1}}}function L(){var e;const a=(e=R.value)==null?void 0:e.input;a&&(J.value={start:a.selectionStart||0,end:a.selectionEnd||0})}async function he(a){var I,E,k,A;const{start:e,end:v}=J.value;t.value.remark_template=t.value.remark_template.slice(0,e)+a+t.value.remark_template.slice(v),await Ge();const p=e+a.length;(E=(I=R.value)==null?void 0:I.input)==null||E.focus(),(A=(k=R.value)==null?void 0:k.input)==null||A.setSelectionRange(p,p),J.value={start:p,end:p}}return Ee(()=>q("busy",!1)),(a,e)=>{const v=Ce,p=Te,I=Ie,E=xe,k=He,A=Se,re=Me,O=Be,z=Ne,Q=$e,Y=De,me=Ae,X=Pe;return s(),i("div",We,[o(v,{class:"automation-note",type:"info","show-icon":"",closable:!1,title:"自动化设置只作用于之后新添加的客户,不会写入企微获客链接详情中的“欢迎语/客户标签”配置。",description:"系统会在客户添加回调中立即发送渠道欢迎语并添加标签,后台任务负责失败重试及其他补偿。测试时请使用系统复制的、带渠道参数的链接。"}),d("section",{class:le(["automation-section",{"is-disabled":x.value}])},[e[24]||(e[24]=d("h3",{class:"form-section-title"},"接待设置",-1)),o(E,{label:"接待模式"},{default:u(()=>[o(I,{modelValue:t.value.reception_mode,"onUpdate:modelValue":e[0]||(e[0]=l=>t.value.reception_mode=l),disabled:x.value},{default:u(()=>[o(p,{value:"always"},{default:u(()=>[...e[16]||(e[16]=[r("全天接待",-1)])]),_:1}),o(p,{value:"scheduled"},{default:u(()=>[...e[17]||(e[17]=[r("按星期时段自动上下线",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),e[18]||(e[18]=d("p",{class:"field-help"},"成员仍受每日上限、有效期及启用状态限制;时间统一使用北京时间。",-1))]),_:1}),t.value.reception_mode==="scheduled"?(s(),i("div",Je,[(s(!0),i(y,null,V(t.value.reception_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card"},[d("div",Qe,[d("strong",null,"接待时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:x.value,onClick:n=>t.value.reception_schedule.splice(f,1)},{default:u(()=>[...e[19]||(e[19]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:x.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(A,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",Xe,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[20]||(e[20]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.end<l.start?(s(),i("small",Ze,"次日结束")):c("",!0)]),o(Q,{modelValue:l.member_admin_ids,"onUpdate:modelValue":n=>l.member_admin_ids=n,disabled:x.value,multiple:"",filterable:"",clearable:"",placeholder:"从上方主接待成员中选择",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(ae.value,n=>(s(),h(z,{key:n.id,value:Number(n.id),label:de(n)},null,8,["value","label"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),l.member_admin_ids.some(n=>!j.mainMemberIds.includes(n))?(s(),i("p",el,"该时段含已从主接待移除的成员,请重新选择。")):c("",!0)]))),128)),o(k,{icon:H(ee),disabled:x.value||t.value.reception_schedule.length>=30,onClick:ye},{default:u(()=>[...e[21]||(e[21]=[r("添加接待时段",-1)])]),_:1},8,["icon","disabled"]),e[22]||(e[22]=d("p",{class:"field-help"},"最多 30 个时段。跨午夜时段归属开始日,例如星期一 22:00 至 02:00 包含星期二凌晨;接待时段重叠时取成员并集。",-1))])):c("",!0),o(E,{label:"备用成员",required:t.value.reception_mode==="scheduled"},{default:u(()=>[o(Q,{modelValue:t.value.backup_member_admin_ids,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.backup_member_admin_ids=l),disabled:x.value,multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":3,"multiple-limit":500,placeholder:"主接待成员均不可用时由备用成员接待",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(j.members,l=>(s(),h(z,{key:l.id,value:Number(l.id),label:de(l),disabled:fe.value.includes(Number(l.id))},null,8,["value","label","disabled"]))),128)),(s(!0),i(y,null,V(_e.value,l=>(s(),h(z,{key:`missing-${l}`,value:l,label:`成员 ${l}(当前不可选,请移除后重新选择)`,disabled:""},null,8,["value","label"]))),128))]),_:1},8,["modelValue","disabled"]),e[23]||(e[23]=d("p",{class:"field-help"},"备用成员不能与主接待重复。按时段模式至少配置一名备用成员;仅当无可用主接待时进入官方成员范围。",-1))]),_:1},8,["required"])],2),d("section",{class:le(["automation-section",{"is-disabled":m.value}])},[e[31]||(e[31]=d("h3",{class:"form-section-title"},"客户设置",-1)),o(E,{label:"自动添加客户标签"},{default:u(()=>[o(Y,{modelValue:t.value.tags_enabled,"onUpdate:modelValue":e[2]||(e[2]=l=>t.value.tags_enabled=l),disabled:m.value||g.value},null,8,["modelValue","disabled"]),ge.value?(s(),i("div",ll,[d("p",null,"原方案设置了多个标签:"+_(ke.value)+"。现在仅支持单选,请重新选择一个标签,或清空原标签。",1),o(k,{size:"small",disabled:m.value||g.value,onClick:e[3]||(e[3]=l=>G.value="")},{default:u(()=>[...e[25]||(e[25]=[r("清空原标签",-1)])]),_:1},8,["disabled"])])):c("",!0),t.value.tags_enabled?(s(),i("div",al,[d("div",tl,[o(Q,{modelValue:G.value,"onUpdate:modelValue":e[4]||(e[4]=l=>G.value=l),disabled:m.value||g.value,loading:T.value,filterable:"",clearable:"",placeholder:"选择一个企业微信客户标签","aria-label":"企业微信客户标签",class:"tag-select"},{default:u(()=>[(s(!0),i(y,null,V(M.value,l=>(s(),h(me,{key:l.group_id,label:l.group_name},{default:u(()=>[(s(!0),i(y,null,V(l.tag,f=>(s(),h(z,{key:f.id,value:f.id,label:f.name},null,8,["value","label"]))),128))]),_:2},1032,["label"]))),128)),oe.value.length?(s(),h(me,{key:0,label:"已选标签(名称暂不可用)"},{default:u(()=>[(s(!0),i(y,null,V(oe.value,l=>(s(),h(z,{key:l,value:l,label:`已选标签 · ${l}`},null,8,["value","label"]))),128))]),_:1})):c("",!0)]),_:1},8,["modelValue","disabled","loading"]),o(k,{icon:H(ee),disabled:m.value||g.value,onClick:e[5]||(e[5]=l=>F.value=!F.value)},{default:u(()=>[...e[26]||(e[26]=[r("自定义标签",-1)])]),_:1},8,["icon","disabled"]),o(k,{icon:H(ze),disabled:m.value||g.value,loading:T.value,onClick:ne},{default:u(()=>[r(_(B.value?"重试":"刷新标签"),1)]),_:1},8,["icon","disabled","loading"])]),B.value?(s(),i("p",sl,_(B.value)+" 已保留原有标签,点击“重试”重新加载。",1)):(s(),i("p",ol,"每个方案只选一个标签,可选择已有企业微信标签,也可自定义创建。客户添加成功后由系统调用企微接口打标,不会显示在企微获客链接详情的“客户标签”配置中。")),F.value?(s(),i("div",dl,[e[28]||(e[28]=d("label",{for:"promotion-custom-tag-name"},"自定义标签名称",-1)),d("div",ul,[o(X,{id:"promotion-custom-tag-name",modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=l=>$.value=l),disabled:m.value||g.value,maxlength:"30","show-word-limit":"",placeholder:"例如:官网咨询",onInput:e[7]||(e[7]=l=>S.value=""),onKeydown:Re(Fe(ie,["prevent"]),["enter"])},null,8,["modelValue","disabled","onKeydown"]),o(k,{type:"primary",disabled:m.value||T.value,loading:g.value,onClick:ie},{default:u(()=>[...e[27]||(e[27]=[r("创建并选用",-1)])]),_:1},8,["disabled","loading"])]),e[29]||(e[29]=d("p",{class:"field-help"},"创建到企业微信“推广渠道”分组,同组同名标签会复用。创建后即保存到企微标签库,取消方案编辑不会删除标签。",-1)),S.value?(s(),i("p",nl,_(S.value)+" 原有选择未改变。",1)):c("",!0)])):c("",!0),N.value?(s(),i("p",il,_(N.value),1)):c("",!0)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户备注"},{default:u(()=>[o(Y,{modelValue:t.value.remark_enabled,"onUpdate:modelValue":e[8]||(e[8]=l=>t.value.remark_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.remark_enabled?(s(),i("div",rl,[d("div",ml,[(s(!0),i(y,null,V(H(Oe),l=>(s(),h(k,{key:l.value,size:"small",disabled:m.value,onClick:f=>he(l.value)},{default:u(()=>[r("插入"+_(l.label),1)]),_:2},1032,["disabled","onClick"]))),128))]),o(X,{ref_key:"remarkInput",ref:R,modelValue:t.value.remark_template,"onUpdate:modelValue":e[9]||(e[9]=l=>t.value.remark_template=l),disabled:m.value,maxlength:"200","show-word-limit":"",placeholder:"例如:官网-{customer_name}",onSelect:L,onKeyup:L,onClick:L,onBlur:L},null,8,["modelValue","disabled"]),d("div",vl,[e[30]||(e[30]=d("span",null,"备注预览",-1)),d("strong",null,_(te.value||"—"),1),d("small",null,_(Array.from(te.value).length)+"/20 字",1)]),d("p",pl,"示例客户:张女士;员工:"+_(P.value)+"。添加时间格式为 YYYY-MM-DD,生成后的备注最多保留前 20 字。",1)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户描述"},{default:u(()=>[o(Y,{modelValue:t.value.description_enabled,"onUpdate:modelValue":e[10]||(e[10]=l=>t.value.description_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.description_enabled?(s(),h(X,{key:0,modelValue:t.value.description,"onUpdate:modelValue":e[11]||(e[11]=l=>t.value.description=l),class:"description-input",disabled:m.value,type:"textarea",rows:3,maxlength:"150","show-word-limit":"",placeholder:"请输入客户描述,最多 150 字"},null,8,["modelValue","disabled"])):c("",!0)]),_:1})],2),d("section",{class:le(["automation-section",{"is-disabled":U.value}])},[e[42]||(e[42]=d("h3",{class:"form-section-title"},"欢迎语设置",-1)),o(E,{label:"欢迎语模式"},{default:u(()=>[o(I,{modelValue:t.value.welcome_mode,"onUpdate:modelValue":e[12]||(e[12]=l=>t.value.welcome_mode=l),disabled:U.value||D.value},{default:u(()=>[o(p,{value:"channel"},{default:u(()=>[...e[32]||(e[32]=[r("渠道欢迎语",-1)])]),_:1}),o(p,{value:"default"},{default:u(()=>[...e[33]||(e[33]=[r("默认欢迎语",-1)])]),_:1}),o(p,{value:"none"},{default:u(()=>[...e[34]||(e[34]=[r("不发送欢迎语",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),t.value.welcome_mode==="default"?(s(),i("p",cl,"沿用企业微信后台配置,本系统不发送欢迎语。")):t.value.welcome_mode==="none"?(s(),i("p",bl,"仅关闭本系统欢迎语,无法覆盖或关闭企业微信后台已配置的欢迎语。")):(s(),i("p",fl,"渠道欢迎语由客户添加回调即时发送,不会显示在企微获客链接详情中。同一接待成员若已配置企微原生欢迎语,企微可能不再下发欢迎码,请先关闭冲突配置。"))]),_:1}),t.value.welcome_mode==="channel"?(s(),i(y,{key:0},[d("div",_l,[e[35]||(e[35]=d("h4",null,"基础渠道欢迎语",-1)),e[36]||(e[36]=d("p",{class:"field-help"},"未开启分时欢迎语,或新客户添加时间未匹配任何时段时,使用以下内容。",-1)),o(ce,{modelValue:t.value.welcome,"onUpdate:modelValue":e[13]||(e[13]=l=>t.value.welcome=l),disabled:U.value,"employee-name":P.value,onBusy:e[14]||(e[14]=l=>ue("basic",l))},null,8,["modelValue","disabled","employee-name"])]),o(E,{class:"schedule-switch",label:"分时欢迎语"},{default:u(()=>[o(Y,{modelValue:t.value.welcome_schedule_enabled,"onUpdate:modelValue":e[15]||(e[15]=l=>t.value.welcome_schedule_enabled=l),disabled:U.value||D.value},null,8,["modelValue","disabled"]),e[37]||(e[37]=d("span",{class:"switch-help"},"按客户添加时的北京时间匹配,时段不能重叠",-1))]),_:1}),t.value.welcome_schedule_enabled?(s(),i("div",gl,[(s(!0),i(y,null,V(t.value.welcome_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card welcome-schedule"},[d("div",kl,[d("strong",null,"欢迎语时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:U.value||D.value,onClick:n=>Ve(f)},{default:u(()=>[...e[38]||(e[38]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:U.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(A,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",yl,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[39]||(e[39]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.end<l.start?(s(),i("small",wl,"次日结束")):c("",!0)]),o(ce,{"model-value":l,disabled:U.value,"employee-name":P.value,"onUpdate:modelValue":n=>Object.assign(l,n),onBusy:n=>ue(`slot-${f}`,n)},null,8,["model-value","disabled","employee-name","onUpdate:modelValue","onBusy"])]))),128)),o(k,{icon:H(ee),disabled:U.value||D.value||t.value.welcome_schedule.length>=30,onClick:we},{default:u(()=>[...e[40]||(e[40]=[r("添加欢迎语时段",-1)])]),_:1},8,["icon","disabled"]),e[41]||(e[41]=d("p",{class:"field-help"},"最多 30 个时段,支持跨午夜。时段外自动使用基础渠道欢迎语,不会随机选择内容。",-1))])):c("",!0)],64)):c("",!0)],2)])}}}),xl=qe(Vl,[["__scopeId","data-v-a7e42c87"]]);export{xl as default};
|