assets/admin/build was gitignored, so servers deployed by git pull kept running a stale admin bundle — the icon picker integration in the tabbar and floating-button settings pages never reached them. Track the build directory (rebuild with: cd assets/admin && npm run build) and commit the current bundle containing the universal icon picker.
2 lines
5.8 KiB
JavaScript
2 lines
5.8 KiB
JavaScript
import{X as u,a4 as w,Y as s,L as n,Z as o,j as _,ag as y,f as g,ah as f,F as b,R as x,o as T,c as S,r as p,e as D,a1 as V,W as k}from"./vendor-vue.BxZIRU0_.js";import{P as I}from"./PageHeader.CtT29f8Y.js";import{a as h}from"./shared-api.DnsQ5cxS.js";import{_ as U}from"./index.js";import"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const A={name:"UsersWechatTemplate",components:{PageHeader:I},setup(){const r=p({enabled:!1,configured:!1,has_token:!1,has_template:!1,bound_users:0}),t=D({enabled:!1,app_id:"",app_secret:"",template_id:""}),d=p(!1),a=[{key:"comment_reply",desc:"评论回复通知"},{key:"system_notice",desc:"系统公告通知"},{key:"order_paid",desc:"订单支付通知"},{key:"credits_change",desc:"积分变动通知"}],i=p([]),m=S(()=>a.map(e=>({...e,ready:i.value.length===0||i.value.includes(e.key)})));async function c(){try{const e=await h.request("/wechat/status");e.success&&(r.value=e.data,t.enabled=e.data.enabled||!1,t.app_id=e.data.appid||"",t.app_secret=(e.data.app_secret==="***",""),t.template_id=e.data.template_id||"",i.value=e.data.allowed_types||[])}catch(e){console.error("Load WeChat status failed:",e)}}async function l(){d.value=!0;try{const e={...t};!e.app_secret&&r.value.configured&&(e.app_secret="***");const v=await h.request("/wechat/settings",{method:"POST",data:e});v.success?(alert("设置已保存"),c()):alert(v.message||"保存失败")}catch(e){console.error("Save failed:",e),alert("保存失败: "+(e.message||"未知错误"))}finally{d.value=!1}}return T(()=>c()),{status:r,form:t,saving:d,eventTypes:m,saveSettings:l}}},C={class:"aksrt-page-container"},P={class:"aksrt-wechat__status"},W={class:"aksrt-wechat__status-card"},j={class:"aksrt-wechat__status-info"},B={class:"aksrt-wechat__status-value"},H={class:"aksrt-wechat__status-card"},L={class:"aksrt-wechat__status-info"},M={class:"aksrt-wechat__status-value"},N={class:"aksrt-wechat__status-card"},q={class:"aksrt-wechat__status-info"},F={class:"aksrt-wechat__status-value"},z={class:"aksrt-wechat__status-card"},E={class:"aksrt-wechat__status-info"},O={class:"aksrt-wechat__status-value"},R={class:"aksrt-wechat__form-card"},X={class:"aksrt-form-group"},Y={class:"aksrt-form-group"},Z={class:"aksrt-form-group"},G={class:"aksrt-form-group"},J={class:"aksrt-form-actions"},K=["disabled"],Q={class:"aksrt-wechat__form-card"},$={class:"aksrt-table aksrt-table--sm"};function ss(r,t,d,a,i,m){const c=V("PageHeader");return k(),u("div",C,[w(c,{title:"微信模板消息",desc:"配置微信公众号模板消息推送。"}),s("div",P,[s("div",W,[s("div",{class:n(["aksrt-wechat__status-icon",a.status.configured?"aksrt-wechat__status-icon--ok":"aksrt-wechat__status-icon--warn"])},[s("i",{class:n(a.status.configured?"fa fas fa-check":"fa fas fa-exclamation")},null,2)],2),s("div",j,[t[5]||(t[5]=s("div",{class:"aksrt-wechat__status-label"},"配置状态",-1)),s("div",B,o(a.status.configured?"已配置":"未配置"),1)])]),s("div",H,[s("div",{class:n(["aksrt-wechat__status-icon",a.status.has_token?"aksrt-wechat__status-icon--ok":"aksrt-wechat__status-icon--warn"])},[s("i",{class:n((a.status.has_token,"fa fas fa-key"))},null,2)],2),s("div",L,[t[6]||(t[6]=s("div",{class:"aksrt-wechat__status-label"},"Access Token",-1)),s("div",M,o(a.status.has_token?"已获取":"未获取"),1)])]),s("div",N,[s("div",{class:n(["aksrt-wechat__status-icon",a.status.has_template?"aksrt-wechat__status-icon--ok":"aksrt-wechat__status-icon--warn"])},[s("i",{class:n((a.status.has_template,"fa fas fa-file-alt"))},null,2)],2),s("div",q,[t[7]||(t[7]=s("div",{class:"aksrt-wechat__status-label"},"模板 ID",-1)),s("div",F,o(a.status.has_template?"已配置":"未配置"),1)])]),s("div",z,[t[9]||(t[9]=s("div",{class:"aksrt-wechat__status-icon aksrt-wechat__status-icon--info"},[s("i",{class:"fa fas fa-users"})],-1)),s("div",E,[t[8]||(t[8]=s("div",{class:"aksrt-wechat__status-label"},"绑定用户",-1)),s("div",O,o(a.status.bound_users||0)+" 人",1)])])]),s("div",R,[t[15]||(t[15]=s("h3",null,"基本配置",-1)),s("div",X,[s("label",null,[_(s("input",{type:"checkbox","onUpdate:modelValue":t[0]||(t[0]=l=>a.form.enabled=l)},null,512),[[y,a.form.enabled]]),t[10]||(t[10]=g(" 启用微信模板消息 ",-1))])]),s("div",Y,[t[11]||(t[11]=s("label",null,"AppID",-1)),_(s("input",{"onUpdate:modelValue":t[1]||(t[1]=l=>a.form.app_id=l),type:"text",class:"aksrt-input",placeholder:"微信公众号 AppID"},null,512),[[f,a.form.app_id]])]),s("div",Z,[t[12]||(t[12]=s("label",null,"AppSecret",-1)),_(s("input",{"onUpdate:modelValue":t[2]||(t[2]=l=>a.form.app_secret=l),type:"password",class:"aksrt-input",placeholder:"微信公众号 AppSecret"},null,512),[[f,a.form.app_secret]]),t[13]||(t[13]=s("p",{class:"aksrt-form-hint"},"保存后不会回显完整密钥",-1))]),s("div",G,[t[14]||(t[14]=s("label",null,"模板 ID",-1)),_(s("input",{"onUpdate:modelValue":t[3]||(t[3]=l=>a.form.template_id=l),type:"text",class:"aksrt-input",placeholder:"微信模板消息模板 ID"},null,512),[[f,a.form.template_id]])]),s("div",J,[s("button",{class:"aksrt-button aksrt-button--primary",disabled:a.saving,onClick:t[4]||(t[4]=(...l)=>a.saveSettings&&a.saveSettings(...l))},o(a.saving?"保存中...":"保存设置"),9,K)])]),s("div",Q,[t[17]||(t[17]=s("h3",null,"支持的通知类型",-1)),t[18]||(t[18]=s("p",{class:"aksrt-form-hint"},"以下事件类型可触发微信模板消息推送(需用户绑定微信且开启对应订阅):",-1)),s("table",$,[t[16]||(t[16]=s("thead",null,[s("tr",null,[s("th",null,"事件类型"),s("th",null,"说明"),s("th",null,"状态")])],-1)),s("tbody",null,[(k(!0),u(b,null,x(a.eventTypes,l=>(k(),u("tr",{key:l.key},[s("td",null,[s("code",null,o(l.key),1)]),s("td",null,o(l.desc),1),s("td",null,[s("span",{class:n(["aksrt-badge",l.ready?"aksrt-badge--success":"aksrt-badge--warning"])},o(l.ready?"可用":"待接入"),3)])]))),128))])])])])}const rs=U(A,[["render",ss],["__scopeId","data-v-5a53c055"]]);export{rs as default};
|