HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/js/index67.js
import{lj as Kt,J as me,R as pe,h1 as kt,m as ae,c as Fe,cZ as De,dq as Ze,lk as ea,c7 as Ct,jH as ta,k as H,ll as aa,cP as Tt,lm as Ye,ln as na,e as X,lo as Ke,lp as et,hj as mt,M as ye,lq as la,w as ee,lr as oa,ls as sa,_ as Ue,da as xe,lt as ra,o as ia,lu as ua,lv as ca,lw as da,lx as pa,X as ma,ly as $t,lz as fa,lA as St,lB as _a,lC as va,lD as ga,cU as qe,lE as Je,lF as ft,lG as ya,Q as ba,lH as _t,lI as ha,lJ as vt,lK as xa,lL as wa,lM as ka,lN as Ca,lO as gt,cR as Ta}from"./utils-lib.js?v=1777008528";import{r as C,ca as $a,c as A,X as ie,Y as G,j as $,C as z,v as g,x as R,s as P,k as E,B as le,p as i,F as J,am as ue,an as ce,e as r,q as y,al as tt,aj as Pe,bw as Et,aI as at,Q as oe,H as Z,a7 as Vt,bc as nt,o as Ne,b4 as Dt,bC as Mt,w as we,g as Me,n as Re,L as Rt,N as At,z as te,T as ke,ad as fe,ab as _e,av as ze,_ as de,a8 as lt,J as ot,K as st,M as Sa,d as Bt,ap as Ea,ak as Va,S as Da,aJ as Ma,y as rt,m as Ra,aC as jt,a9 as Xe}from"./base-lib.js?v=1777008528";import{u as ve,o as Lt,g as Aa}from"./useMethod10.js?v=1777008528";import{_ as Ce}from"./header-nav-tools.vue_vue_type_script_setup_true_lang.js?v=1777008528";import{a as Ge,s as $e,e as Se,b as Ba,t as Ie,c as Y,d as ge,f as ja,m as Oe}from"./useMethod9.js?v=1777008528";import{g as Te,e as We,v as it,b as ut}from"./index3.js?v=1777008528";import{_ as Ae}from"./index118.js?v=1777008528";import{_ as La}from"./index119.js?v=1777008528";import{F as Oa}from"./form-item.js?v=1777008528";class Ee{constructor(){}static getInstance(){return Ee.instance||(Ee.instance=$a()),Ee.instance}}const yt=C(!1),Ve=C("value"),re=C({type:"today",data:Ia()});function Ua(e){const t=new Date(e);t.setHours(0,0,0,0);const a=new Date(e);return a.setHours(23,59,59,999),{start:t,end:a}}function Ia(){const{start:e,end:t}=Ua(new Date);return[e.getTime(),t.getTime()]}function Be(){const e=Ee.getInstance();function t(){return{...Ve.value!=="value"?{domain:Ve.value}:{},start_time:Math.floor(re.value.data[0]/1e3),end_time:Math.floor(re.value.data[1]/1e3)}}async function a(){try{yt.value=!0;const{data:o}=await Kt(t());me(o)&&e.trigger(o)}finally{yt.value=!1}}return{getRate:o=>o>=0?"".concat(o,"%"):"--",getChartTime:(o,d)=>{let s=new Date;return o==="hourly"?(s.setMinutes(0),s.setSeconds(0),s.setHours(d)):o==="daily"&&(s=new Date(d*1e3)),pe(s)},getOverview:a,onResult:e.on}}const Ha=A({__name:"domain-select",props:ie({all:{type:Boolean,default:!0},showTag:{type:Boolean,default:!0}},{value:{},valueModifiers:{}}),emits:["update:value"],setup(e){const t=e,a=G(e,"value"),n=C([]),l=c=>t.showTag?"域名:".concat(c):c,o=()=>{n.value.unshift({label:"全部",value:"value"})},{loading:d,setLoading:s}=ve();return(async()=>{try{s(!0);const{data:{data:c}}=await kt();ae(c)&&(n.value=c.map(f=>({label:f,value:f})),t.all?o():a.value=c[0]||"")}finally{s(!1)}})(),(c,f)=>{const v=ue,h=ce;return $(),z(h,{modelValue:a.value,"onUpdate:modelValue":f[0]||(f[0]=p=>a.value=p),loading:i(d),filterable:!0},{label:g(({label:p,value:_})=>[R(P(l(p)),1)]),default:g(()=>[($(!0),E(J,null,le(i(n),p=>($(),z(v,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])}}}),Fa={class:"ml-8px"},qa=A({__name:"date",props:{type:{},typeModifiers:{},value:{default:()=>[]},valueModifiers:{}},emits:["update:type","update:value"],setup(e){const t=G(e,"type"),a=G(e,"value");function n(u=new Date){const c=$e(u),f=Se(u);return[c.getTime(),f.getTime()]}const l=()=>{const u=new Date,c=Se(u);return[$e(Ge(u,-6)).getTime(),c.getTime()]},o=u=>{switch(u){case"today":a.value=n();break;case"yesterday":a.value=n(Ge(new Date,-1));break;case"7day":a.value=l();break}},d=u=>{const c=new Date,f=Ge(c,-30);return $e(f).getTime()>u||Se(c).getTime()<u},s=u=>{t.value="custom",a.value=[$e(u[0]).getTime(),Se(u[1]).getTime()]};return(u,c)=>{const f=tt,v=Pe,h=Et;return $(),E(J,null,[r(v,{modelValue:t.value,"onUpdate:modelValue":c[0]||(c[0]=p=>t.value=p),onChange:o},{default:g(()=>[r(f,{label:"今日",value:"today"}),r(f,{label:"昨日",value:"yesterday"}),r(f,{label:"最近7天",value:"7day"})]),_:1},8,["modelValue"]),y("div",Fa,[r(h,{modelValue:a.value,"onUpdate:modelValue":c[1]||(c[1]=p=>a.value=p),type:"daterange","disabled-date":d,onChange:s},null,8,["modelValue"])])],64)}}}),Pa={class:"flex items-center justify-between"},Na={class:"flex items-center gap-16px"},za={class:"w-240px"},Wa={class:"flex items-center"},Ja=A({__name:"index",setup(e){const t=Fe(),{getOverview:a}=Be();at(t);const n=()=>{a()},l=()=>{a()};return(o,d)=>($(),E("div",Pa,[y("div",Na,[y("div",za,[r(Ha,{value:i(Ve),"onUpdate:value":[d[0]||(d[0]=s=>oe(Ve)?Ve.value=s:null),n]},null,8,["value"])]),r(Ce)]),y("div",Wa,[r(qa,{type:i(re).type,"onUpdate:type":d[1]||(d[1]=s=>i(re).type=s),value:i(re).data,"onUpdate:value":[d[2]||(d[2]=s=>i(re).data=s),l]},null,8,["type","value"])])]))}}),Ga={class:"rate-box"},Qa={class:"rate-list"},Xa={class:"rate-text"},Za={class:"rate-list"},Ya={class:"rate-text"},Ka=A({__name:"index",setup(e){const{onResult:t,getRate:a}=Be(),n=Z({delivery:0,open:0,click:0,bounce:0});return t(l=>{n.delivery=l.dashboard.delivery_rate,n.open=l.dashboard.open_rate,n.click=l.dashboard.click_rate,n.bounce=l.dashboard.bounce_rate}),(l,o)=>($(),E("div",Ga,[y("div",Qa,[o[0]||(o[0]=y("div",{class:"rate-title"},"送达率",-1)),y("div",Xa,P("".concat(i(n).delivery,"%")),1)]),y("div",Za,[o[1]||(o[1]=y("div",{class:"rate-title"},"退信率",-1)),y("div",Ya,P(i(a)(i(n).bounce)),1)])]))}}),en=De(Ka,[["__scopeId","data-v-1528d793"]]),tn={class:"total-list"},an={class:"total-item"},nn={class:"total-value text-primary text-subtitleLarge"},ln={class:"total-item"},on={class:"total-value text-medium"},sn={class:"total-item"},rn={class:"total-value text-medium"},un={class:"w-100% h-300px"},cn=A({__name:"index",setup(e){const t=Vt(),{onResult:a,getChartTime:n,getOverview:l}=Be(),o=C(null),d=C({delivered:0,delivery_rate:0,failed:0,failure_rate:0,sends:0}),{BtECharts:s,getEChart:u,setOption:c,setQuickOption:f}=Ze({options:{}}),v=nt({tooltip:{trigger:"axis",order:"seriesDesc",axisPointer:{type:"shadow"}},legend:{top:0,itemGap:16,icon:"circle",itemWidth:10,itemHeight:10,data:["发件成功","发件失败"],textStyle:{lineHeight:12,padding:[0,0,-2,0],rich:{a:{verticalAlign:"middle"}}}},grid:{top:"16%",left:"2%",right:"2%",bottom:"4%",containLabel:!0},yAxis:{type:"value",boundaryGap:[0,"6%"],splitLine:{show:!0,lineStyle:{type:"dashed",width:1,color:t.value?"#999":"#ebeef5"}}},xAxis:h(),series:[{type:"bar",name:"发件成功",data:[]},{type:"bar",name:"发件失败",data:[]}],events:{click:_=>{if(_.componentSubType==="bar"&&ae(_.value)&&_.value[2]==="daily"){const b=new Date(_.value[0]);re.value.type="custom",re.value.data=[$e(b).getTime(),Se(b).getTime()],l()}}}});function h(_="HH:mm"){return{type:"category",axisLabel:{formatter:b=>_==="HH:mm"?b.match(/\d{2}:\d{2}/)[0]:b.split(" ")[0]}}}const p=_=>{const b=[],k=[];_.data.forEach(m=>{b.push([n(_.column_type,m.x),m.failed,_.column_type]),k.push([n(_.column_type,m.x),m.delivered,_.column_type])}),v.series=[{type:"bar",name:"发件失败",data:b,stack:"total",itemStyle:{color:"#1A519B"}},{type:"bar",name:"发件成功",data:k,stack:"total",itemStyle:{color:"#91CC75"}}],v.xAxis=h(_.column_type==="hourly"?"HH:mm":"yyyy-MM-dd")};return Ne(()=>{a(_=>{_.send_mail_chart&&(d.value=_.send_mail_chart.dashboard,p(_.send_mail_chart),o.value=u(),c(v))})}),(_,b)=>($(),E(J,null,[b[3]||(b[3]=y("div",{class:"mb-16px font-bold text-medium text-default"},"今日发送",-1)),y("div",tn,[y("div",an,[b[0]||(b[0]=y("div",{class:"total-label"},"发件成功率",-1)),y("div",nn,P(i(d).delivery_rate)+"%",1)]),y("div",ln,[b[1]||(b[1]=y("div",{class:"total-label"},"发件成功",-1)),y("div",on,P(i(d).delivered),1)]),y("div",sn,[b[2]||(b[2]=y("div",{class:"total-label"},"发件失败",-1)),y("div",rn,P(i(d).failed),1)])]),y("div",un,[r(i(s),{style:{height:"300px"}})])],64))}}),dn=De(cn,[["__scopeId","data-v-09ca2791"]]),pn={class:"flex-center !h-370px"},mn=A({__name:"bounce",setup(e){const{onResult:t,getChartTime:a}=Be(),n=Vt(),l=nt({tooltip:{trigger:"axis",order:"seriesDesc",axisPointer:{type:"shadow"}},grid:{top:"16%",left:"2%",right:"2%",bottom:"2%",containLabel:!0},yAxis:{name:"%",type:"value",splitLine:{show:!0,lineStyle:{type:"dashed",width:1,color:n.value?"#999":"#ebeef5"}},max:({max:v})=>v>100?100:v},xAxis:o(),series:d()});function o(v="HH:mm"){return{type:"category",axisLabel:{formatter:h=>v==="HH:mm"?h.match(/\d{2}:\d{2}/)[0]:h.split(" ")[0]}}}function d(v=[]){return[{name:"退信率",type:"line",data:v,itemStyle:{color:"var(--el-color-primary)"},smooth:!1,showSymbol:!1,sampling:"average"}]}const{BtECharts:s,getEChart:u,setOption:c,setQuickOption:f}=Ze({options:{}});return t(v=>{const{bounce_rate_chart:h}=v;if(h){const p=h.data.map(_=>[a(h.column_type,_.x),_.bounce_rate]);l.series=d(p),l.xAxis=o(h.column_type==="hourly"?"HH:mm":"yyyy-MM-dd"),c(l)}}),(v,h)=>($(),E(J,null,[h[0]||(h[0]=y("div",{class:"mb-16px font-bold text-medium text-default"},"退信率%",-1)),y("div",pn,[r(i(s),{style:{height:"370px"}})])],64))}}),fn={class:"overview-card"},_n={class:"overview-card"},vn=A({__name:"index",setup(e){const{getOverview:t}=Be();return t(),(a,n)=>{const l=Dt,o=Mt;return $(),E("div",null,[r(Ja),r(en),r(o,{gutter:16},{default:g(()=>[r(l,{span:12},{default:g(()=>[y("div",fn,[r(dn)])]),_:1}),r(l,{span:12},{default:g(()=>[y("div",_n,[r(mn)])]),_:1})]),_:1})])}}}),gn=De(vn,[["__scopeId","data-v-c63fc35f"]]);function yn(e){const t=C(0),{mainHeight:a}=at(Fe());return we(()=>a.value,l=>{Re(()=>{if(!e.value)return;const{top:o}=e.value.getBoundingClientRect();t.value=l-o-16-16-52})},{immediate:!0}),{height:Me(()=>t.value===0?"auto":t.value+"px")}}const bn={class:"flex items-center"},hn={class:"w-260px"},xn={class:"ml-10px"},wn=A({__name:"template",props:{value:{},valueModifiers:{}},emits:["update:value"],setup(e,{expose:t}){const a=G(e,"value"),n=C([]),{loading:l,setLoading:o}=ve(),d=()=>{Ba("template")},s=async()=>{try{o(!0);const{data:u}=await ea();ae(u)&&u.length>0&&(n.value=u.map(c=>({label:c.name,value:c.id})),a.value||(a.value=u[0].id))}finally{o(!1)}};return s(),t({getList:s}),(u,c)=>{const f=ue,v=ce,h=Ct;return $(),E("div",bn,[y("div",hn,[r(v,{modelValue:a.value,"onUpdate:modelValue":c[0]||(c[0]=p=>a.value=p),loading:i(l),filterable:!0},{default:g(()=>[($(!0),E(J,null,le(i(n),p=>($(),z(f,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),y("div",xn,[r(h,{onClick:d},{default:g(()=>[...c[1]||(c[1]=[R("创建",-1)])]),_:1})])])}}}),kn={class:"w-170px mr-10px"},Cn={class:"w-180px"},Tn=A({__name:"sender",props:{value:{},valueModifiers:{}},emits:ie(["change"],["update:value"]),setup(e,{emit:t}){const a=t,n=C(null),l=G(e,"value"),o=C([]),d=C([]),s=C([]),u=m=>{const x=s.value.find(T=>T.username===m);x&&a("change",x.full_name)},c=C(!1),f=C(!1),v=async()=>{try{c.value=!0;const{data:{data:m}}=await kt();ae(m)&&(o.value=m.map(x=>({label:x,value:x})),n.value=m[0]||null)}finally{c.value=!1}},h=async()=>{try{f.value=!0;const{data:{data:m}}=await ta();ae(m)&&m.length>0&&(s.value=m)}finally{f.value=!1}},p=()=>{d.value=s.value.filter(m=>m.domain===n.value).map(m=>({data:m,label:m.username,value:m.username}))},_=()=>{if(d.value[0]){const{data:m}=d.value[0];l.value="".concat(d.value[0].value),me(m)&&a("change",m.full_name)}else l.value=null,a("change","")},b=()=>{p(),_()};return(async()=>{if(await Promise.all([v(),h()]),p(),l.value){for(const m of s.value)if(m.username===l.value){n.value=m.domain;break}}else _()})(),(m,x)=>{const T=ue,L=ce;return $(),E(J,null,[y("div",kn,[r(L,{modelValue:i(n),"onUpdate:modelValue":x[0]||(x[0]=D=>oe(n)?n.value=D:null),loading:i(c),onChange:b},{default:g(()=>[($(!0),E(J,null,le(i(o),D=>($(),z(T,{key:D.value,label:D.label,value:D.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),y("div",Cn,[r(L,{modelValue:l.value,"onUpdate:modelValue":x[1]||(x[1]=D=>l.value=D),loading:i(f),onChange:u},{default:g(()=>[($(!0),E(J,null,le(i(d),D=>($(),z(T,{key:D.value,label:D.label,value:D.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])])],64)}}}),$n={class:"flex"},Sn={class:"ml-40px"},En=A({__name:"import",props:ie({path:{default:""},accept:{default:()=>[]}},{value:{},valueModifiers:{}}),emits:ie(["change"],["update:value"]),setup(e,{emit:t}){const a=e,{path:n,accept:l}=a,o=G(e,"value");we(o,u=>{d("change",u)});const d=t,s=()=>{Lt({path:n,size:5,uploadData:{accept:l.map(u=>".".concat(u)).join(","),multiple:!1,limit:1},refreshEvent:(u,c)=>{o.value=u[0].name,c()}})};return(u,c)=>{const f=te;return $(),E("div",null,[y("div",$n,[r(f,{type:"primary",onClick:s},{default:g(()=>[...c[0]||(c[0]=[R("导入",-1)])]),_:1}),y("div",Sn,[c[1]||(c[1]=R(" 文件名: ",-1)),y("span",{class:Rt(o.value?"text-primary":"text-dangerDark")},P(o.value||"未选择任何文件"),3)])]),At(u.$slots,"default")])}}}),Vn={class:"p-20px"},Dn={class:"w-250px"},Mn=A({__name:"type-create",props:{compData:{}},setup(e,{expose:t}){const a=e,{compData:n}=a,l=C(null),o=Z({mail_type:"",file:""}),d={mail_type:{required:!0,message:"请输入分组名称",trigger:["blur","input"]},file:{required:!0,message:"请上传文件",trigger:["blur","change"]}};return t({onConfirm:async u=>{var c;await((c=l.value)==null?void 0:c.validate()),H({loading:"正在导入...",message:!0,request:aa({...o}),success:f=>{var v;f.status&&((v=n.refresh)==null||v.call(n),u())}})}}),(u,c)=>{const f=ke,v=fe,h=_e,p=Tt;return $(),E("div",Vn,[r(h,{ref_key:"formRef",ref:l,model:i(o),rules:d},{default:g(()=>[r(v,{label:"分组名称",prop:"mail_type"},{default:g(()=>[y("div",Dn,[r(f,{modelValue:i(o).mail_type,"onUpdate:modelValue":c[0]||(c[0]=_=>i(o).mail_type=_),placeholder:"请输入分组名称"},null,8,["modelValue"])])]),_:1}),r(v,{label:"邮箱",prop:"file"},{default:g(()=>[r(En,{value:i(o).file,"onUpdate:value":c[1]||(c[1]=_=>i(o).file=_),path:"/www/server/panel/data/mail/in_bulk/recipient",accept:["txt","json"]},null,8,["value"])]),_:1})]),_:1},8,["model"]),r(p,{class:"mt-4px"},{default:g(()=>[...c[2]||(c[2]=[y("li",null," 文件类型: txt/json 每行一个邮箱 不超过5 MB ",-1)])]),_:1})])}}}),Rn={class:"flex-1"},An={class:"flex items-center"},Bn={class:"w-260px"},jn={class:"ml-10px"},Ln={class:"mt-8px"},On=A({__name:"type",props:{value:{},valueModifiers:{},name:{},nameModifiers:{}},emits:["update:value","update:name"],setup(e,{expose:t}){const a=G(e,"value"),n=G(e,"name"),l=C([]),o=C([]),d=C(0),{loading:s,setLoading:u}=ve(),c=async()=>{try{u(!0);const{data:h}=await Ye({});ae(h)&&(o.value=h,l.value=h.map(p=>({label:p.mail_type,value:p.id})),a.value&&a.value.length>0&&f(a.value))}finally{u(!1)}},f=async h=>{n.value=o.value.filter(_=>h.includes(_.id)).map(_=>_.mail_type);const{data:p}=await na({etypes:h.join(",")});me(p)&&(d.value=p.data)},v=()=>{X({title:"创建新的分组",area:48,showFooter:!0,compData:{refresh:c},component:Mn})};return c(),t({getType:c}),(h,p)=>{const _=ue,b=ce,k=Ct;return $(),E("div",Rn,[y("div",An,[y("div",Bn,[r(b,{class:"bt-multiple-select",modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=m=>a.value=m),loading:i(s),multiple:"",filterable:"",placeholder:"请选择分组",onChange:f},{default:g(()=>[($(!0),E(J,null,le(i(l),m=>($(),z(_,{key:m.value,label:m.label,value:m.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),y("div",jn,[r(k,{onClick:v},{default:g(()=>[...p[1]||(p[1]=[R("创建",-1)])]),_:1})])]),y("div",Ln,[p[2]||(p[2]=R("发送邮件 (",-1)),y("b",null,P(i(d)),1),p[3]||(p[3]=R(" 个收件人)",-1))])])}}});var Ot=(e=>(e.Columns="columns",e.Button="button",e.Divider="divider",e.Header="header",e.Text="text",e.Image="image",e.Menu="menu",e.Html="html",e.commonComp="commonComp",e))(Ot||{});const Fo=["button","divider","header","text","image","menu","html","commonComp"];function Un(e){return e=="border"||e=="padding"||e=="borderRadius"}function Ut(e,...t){if(e==null||typeof e!="object")return e;for(const a of t)if(a!=null)for(const n in a){const l=e[n],o=a[n];if(l===void 0){e[n]=K(o);continue}l!==null&&o!==null&&typeof l=="object"&&typeof o=="object"&&!Array.isArray(l)&&!Array.isArray(o)&&!(l instanceof Date)&&!(l instanceof RegExp)&&!(l instanceof Map)&&!(l instanceof Set)&&Ut(l,o)}return e}const It=1.5,bt={comp_type:{button:()=>Ft}};function Ht(){const e=Object.keys(bt.comp_type);Object.entries(ne.value).forEach(([,t])=>{e.includes(t.type)&&Object.entries(U.value).forEach(([a,n])=>{if(a===t.key){const l=bt.comp_type[t.type]();n.style=Ut(n.style,l)}})})}const qo=C(!1),In=C(""),Hn=C(""),Po=C("");C("bottom");const No=C(""),N=C([]),W=C({}),j=C({}),ne=C({}),je=C({}),Le=C({}),U=C({}),ct=C({}),He=C({backgroundColor:"#ffffff",maxWidth:"500px"}),Fn=C(),qn=Me(()=>({version:It,columns_source:N.value,column_map:W.value,cell_map:j.value,cell_style_map:je.value,column_row_style_map:Le.value,comp_style_map:U.value,compOptions:ct.value,comp_map:ne.value,page_style:He.value})),Qe=C(!0),Pn=C(async()=>!1),zo=C([{type:"columns",name:"行",icon:"el-semi-select",key:"0",children:[]},{type:"button",icon:"el-empty",name:"按钮",key:"0"},{type:"divider",name:"分割线",icon:"icon-drag",key:"0"},{type:"header",name:"标题",icon:"el-info-filled",key:"0"},{type:"text",name:"文本",icon:"file-text",key:"0"},{type:"image",name:"图片",icon:"el-folder-opened",key:"0"},{type:"menu",name:"菜单",icon:"menu-setting",key:"0"}]),Nn={style:{backgroundColor:"transparent",padding:{more:!1,all:"0px",top:"",right:"",bottom:"",left:""},border:{more:!1,all:"0px",top:"",right:"",bottom:"",left:""}}},zn={style:{backgroundColor:"transparent",padding:{more:!1,all:"0px",top:"",right:"",bottom:"",left:""}}},Ft={border:{more:!1,all:"",top:"",right:"",bottom:"",left:""},padding:{more:!0,all:"",top:"10px",left:"20px",right:"20px",bottom:"10px"},borderRadius:{more:!1,all:"4px",top:"",left:"",right:"",bottom:""},width:"auto",lineHeight:"120%",color:"#ffffff",display:"inline-block",backgroundColor:"#3AAEE0",FontWeight:"normal",fontSize:"14px",textAlign:"center",LetterSpacing:"0px"},Wn={borderTop:"1px solid #bbbbbb",width:"100%",display:"inline-block",lineHeight:"1px",height:"0px",verticalAlign:"middle"},Jn={position:"relative",display:"block",lineHeight:"140%",fontWeight:"normal",fontSize:"22px",letterSpacing:"0px",color:"#333333"},Gn={fontSize:"14px",fontWeight:"normal",color:"#333",textAlign:"left",lineHeight:"140%",letterSpacing:"0px"},Qn={display:"inline-block",width:"100%"},Xn={fontWeight:"normal",fontSize:"14px",letterSpacing:"0px",color:"#444444",linkColor:"#0068A5",padding:{more:!0,all:"",top:"5px",left:"15px",right:"15px",bottom:"5px"}},Zn={button:{style:Ft,general:{textAlign:"center",padding:{more:!1,all:"10px",top:"",left:"",right:"",bottom:""}},info:{href:"",target:"_blank"},content:"按钮"},divider:{style:Wn,general:{textAlign:"center",padding:{more:!1,all:"10px",top:"",left:"",right:"",bottom:""}},info:{}},header:{style:Jn,general:{textAlign:"left",padding:{more:!1,all:"10px",top:"",left:"",right:"",bottom:""}},info:{},content:"标题"},text:{style:Gn,general:{padding:{more:!1,all:"10px",top:"",left:"",right:"",bottom:""}},info:{},content:"文本"},image:{style:Qn,general:{textAlign:"center",padding:{more:!1,all:"10px",top:"",left:"",right:"",bottom:""}},info:{href:"",target:"_blank",src:"",alt:""}},menu:{style:Xn,general:{textAlign:"center",padding:{more:!1,all:"10px",top:"",left:"",right:"",bottom:""}},info:{layout:"horizontal"},links:[{id:be(6),label:"菜单 1",href:""},{id:be(6),label:"菜单 2",href:""}]}},I={events:{makeDom:[Yn()]},$emit(e,t){this.events[e]&&this.events[e].forEach(a=>a(t))}};function Yn(){let e=null;return()=>{clearTimeout(e),e=setTimeout(()=>{Fn.value=qt().outerHTML,el()},300)}}function Kn(){let e=null;return()=>{Qe.value&&(Qe.value=!1,clearTimeout(e),e=setTimeout(async()=>{await Pn.value(),Qe.value=!0},1e3))}}const el=Kn();function tl(){var t,a,n,l,o,d,s;const e={};for(const u in ne.value){const c=document.createElement("div");ll(c,U.value[u]);let f=null;switch(ne.value[u].type){case"button":f=document.createElement("a"),ol(f,U.value[u]);break;case"divider":f=document.createElement("div"),sl(f,U.value[u]);break;case"header":f=document.createElement("div"),rl(f,U.value[u]);break;case"text":f=document.createElement("div"),il(f,U.value[u]);break;case"image":if((t=U.value[u].info)!=null&&t.href){f=document.createElement("a"),f.href=(a=U.value[u].info)==null?void 0:a.href,f.target=(n=U.value[u].info)==null?void 0:n.target;const v=document.createElement("img");v.src=((l=U.value[u].info)==null?void 0:l.src)||"",v.alt=((o=U.value[u].info)==null?void 0:o.alt)||"",v.style.display="block",v.style.width="100%",f.appendChild(v)}else f=document.createElement("img"),f.src=((d=U.value[u].info)==null?void 0:d.src)||"",f.alt=((s=U.value[u].info)==null?void 0:s.alt)||"";ul(f,U.value[u]);break;case"menu":f=document.createElement("div"),cl(f,U.value[u]);break}f&&c.appendChild(f),e[u]={dom:c,general:{},info:U.value[u].info}}return e}function al(){const e=tl(),t={};for(const a in j.value){const n=document.createElement("td");n.style.width=j.value[a].width,ml(n,je.value[a]),j.value[a].children.forEach(l=>{if(e[l]){n.appendChild(e[l].dom);for(const o in e[l].general)n.style[o]=e[l].general[o]}}),t[a]={dom:n}}return t}function nl(){const e=al(),t={};for(const a in W.value){const n=document.createElement("tr"),l=document.createElement("td"),o=document.createElement("div");pl(o,Le.value[a]);const d=document.createElement("table");d.style.width="100%";const s=document.createElement("tr");W.value[a].children.forEach(u=>{s.appendChild(e[u].dom)}),d.appendChild(s),o.appendChild(d),l.appendChild(o),n.appendChild(l),t[a]={dom:n}}return t}function qt(){const e=nl(),t=document.createElement("table");t.setAttribute("width",He.value.maxWidth),t.style.margin="0 auto",t.style.backgroundColor=He.value.backgroundColor;for(const a of N.value)t.appendChild(e[a].dom);return t}function ll(e,t){const a=Q(t,"general");a&&Object.entries(a).forEach(([n,l])=>{e.style[n]=l})}function ol(e,t){const a=Q(t),n=Q(t,"general");for(const o in a)e.style[o]=a[o];e.innerText=t.content;const{info:l}=t;return l&&(e.href=l.href,e.target=l.target),{generalStyle:n}}function sl(e,t){const a=Q(t),n=Q(t,"general");for(const l in a)e.style[l]=a[l];return{generalStyle:n}}function rl(e,t){const a=Q(t),n=Q(t,"general");for(const l in a)e.style[l]=a[l];return e.innerText=t.content,{generalStyle:n}}function il(e,t){const a=Q(t),n=Q(t,"general");for(const l in a)e.style[l]=a[l];return e.innerText=t.content,{generalStyle:n}}function ul(e,t){const a=Q(t);for(const n in a)e.style[n]=a[n]}function cl(e,t){const{links:a,info:n}=t;a.forEach(l=>{const o=document.createElement("a");dl(o,t),o.style.display=(n==null?void 0:n.layout)==="vertical"?"block":"inline-block",o.href=l.href,o.target="_blank",o.innerText=l.label,e.appendChild(o)})}function dl(e,t){const a=Q(t);for(const n in a)e.style[n]=a[n]}function pl(e,t){const a=Q(t);for(const n in a)e.style[n]=a[n]}function ml(e,t){const a=Q(t);for(const n in a)e.style[n]=a[n]}function K(e){if(e==null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(e instanceof Map){const n=new Map;return e.forEach((l,o)=>{n.set(K(o),K(l))}),n}if(e instanceof Set){const n=new Set;return e.forEach(l=>{n.add(K(l))}),n}if(Array.isArray(e))return e.map(n=>K(n));const t=Object.create(Object.getPrototypeOf(e));return[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)].forEach(n=>{const l=Object.getOwnPropertyDescriptor(e,n);if(l){const o={...l};l.value!==void 0&&(o.value=K(l.value)),Object.defineProperty(t,n,o)}}),t}function Wo(e,t){if(e.key=="0"){const a=be();fl(a,t),_l(a),zt(a,"columns")}I.$emit("makeDom")}function fl(e,t){N.value.splice(t,0,e),I.$emit("makeDom")}function _l(e){const t=be();W.value[e]={type:Ot.Columns,name:"列",key:e,children:[t]},Pt(t),hl(e),I.$emit("makeDom")}function vl(e,t){W.value[e].children.push(t),Pt(t),I.$emit("makeDom")}function Pt(e){j.value[e]={width:"100%",key:e,children:[]},bl(e),I.$emit("makeDom")}function Jo(e,t,a){j.value[e].children.push(t),Nt(t,a),I.$emit("makeDom")}function Go(e,t,a,n){j.value[e].children.splice(n,0,t),Nt(t,a),I.$emit("makeDom")}function Nt(e,t){ne.value[e]={key:e,type:t},zt(e,t),I.$emit("makeDom")}function zt(e,t){U.value[e]=K(Zn[t]),I.$emit("makeDom")}function gl(e){delete U.value[e],I.$emit("makeDom")}function yl(e,t){gl(e),delete ne.value[e],j.value[t].children=j.value[t].children.filter(a=>a!==e),I.$emit("makeDom")}function dt(e,t){j.value[e].children.forEach(a=>{yl(a,e)}),delete j.value[e],W.value[t].children=W.value[t].children.filter(a=>a!==e),I.$emit("makeDom")}function Qo(e){In.value="",Hn.value="",W.value[e].children.forEach(t=>{dt(t,e)}),delete W.value[e],N.value=N.value.filter(t=>t!==e),I.$emit("makeDom")}function bl(e){je.value[e]=K(Nn)}function hl(e){Le.value[e]=K(zn)}function Xo(e,t,a){const n=j.value[e].children.findIndex(o=>o==t),l=j.value[e].children.findIndex(o=>o==a);n!==-1&&l!==-1&&n>l&&(j.value[e].children.splice(n,1),j.value[e].children.splice(l,0,t)),I.$emit("makeDom")}function Zo(e,t,a){const n=j.value[e].children.findIndex(o=>o==t),l=j.value[e].children.findIndex(o=>o==a);n!==-1&&l!==-1&&n<l&&(j.value[e].children.splice(l,1),j.value[e].children.splice(n,0,a)),I.$emit("makeDom")}function Yo(e,t){const a=N.value.findIndex(l=>l==e),n=N.value.findIndex(l=>l==t);a!==-1&&n!==-1&&a<n&&(N.value[a]=t,N.value[n]=e),I.$emit("makeDom")}function Ko(e,t){const a=N.value.findIndex(l=>l==e),n=N.value.findIndex(l=>l==t);a!==-1&&n!==-1&&a>n&&(N.value[a]=t,N.value[n]=e),I.$emit("makeDom")}function Wt(e,t){const a=W.value[t].children;if(a.length<e.length){const n=e.length-a.length;for(let l=0;l<n;l++){const o=be();vl(t,o)}}else a.splice(e.length).forEach(l=>{dt(l,t)});a.forEach((n,l)=>{j.value[n].width=e[l]+"%"}),I.$emit("makeDom")}function es(e){const t=[];W.value[e].children.forEach(u=>{t.push(Number(j.value[u].width.split("%")[0]))});const a=100,n=a/(t.length+1),l=t.reduce((u,c)=>u+c,0),o=l+n,s=(a-o)/l;t.push(n);for(let u=0;u<t.length-1;u++)t[u]+=t[u]*s;Wt(t,e),I.$emit("makeDom")}function ts(e,t){const a=W.value[t].children.reduce((f,v)=>{const h=Number(j.value[e].width.split("%")[0]);return{...f,[v]:h}},{});delete a[e];let n=Object.values(a);const l=100,o=n.reduce((f,v)=>f+v,0),s=(l-o)/o;n=n.map(f=>parseFloat((f*(1+s)).toFixed(2)));const u=n.reduce((f,v)=>f+v,0),c=l-u;c!==0&&(n[n.length-1]+=c),dt(e,t),Wt(n,t),I.$emit("makeDom")}function as(e,t){const a=j.value[t],n=ne.value[e],l=U.value[e];if(a&&n&&l){const o=K(l),d=K(n),s=be(),u=a.children.findIndex(c=>c===e);u!==-1&&a.children.splice(u+1,0,s),d.key=s,ne.value[s]=d,U.value[s]=o}}function Jt(e){const t=JSON.parse(e);ct.value=t.compOptions,je.value=t.cell_style_map,Le.value=t.column_row_style_map,W.value=t.column_map,ne.value=t.comp_map,j.value=t.cell_map,U.value=t.comp_style_map,N.value=t.columns_source,t.page_style&&(He.value=t.page_style)}function ns(e){e&&(Jt(e),Ht(),I.$emit("makeDom"))}function ls(){N.value=[],W.value={},j.value={},ne.value={},je.value={},Le.value={},U.value={},ct.value={}}function Gt(e){return e?JSON.parse(e).version!==It?(Jt(e),Ht(),{content:qt().outerHTML,render:qn.value}):null:void 0}function be(e=10){return Math.random().toString(16).slice(2,2+e)}function xl(e,t){let a="",n="",l="",o="",d="";return t=="border"&&(a="border",n="borderTop",l="borderRight",o="borderBottom",d="borderLeft"),t=="padding"&&(a="padding",n="paddingTop",l="paddingRight",o="paddingBottom",d="paddingLeft"),t=="borderRadius"&&(a="borderRadius",n="borderTopLeftRadius",l="borderTopRightRadius",o="borderBottomRightRadius",d="borderBottomLeftRadius"),e.more?{[n]:e.top,[l]:e.right,[o]:e.bottom,[d]:e.left}:{[a]:e.all}}function Q(e,t="style"){if(!e)return;const a={};for(const n in e[t])Un(n)?Object.assign(a,xl(e[t][n],n)):a[n]=e[t][n];return a}function os(e,t=0,a={}){let n,l,o,d,s,u,c=0,f=!1,v=!1,h=!0;t=Number(t)||0,a&&(f=!!a.leading,v="maxWait"in a,o=v?Math.max(Number(a.maxWait)||0,t):void 0,h="trailing"in a?!!a.trailing:h);function p(M){const O=n,F=l;return n=l=void 0,c=M,d=e.apply(F,O),d}function _(M,O){return setTimeout(M,O)}function b(M){clearTimeout(M)}function k(M){return c=M,s=_(T,t),f?p(M):d}function m(M){const O=M-(u||0),F=M-c,q=t-O;return v?Math.min(q,(o||0)-F):q}function x(M){const O=M-(u||0),F=M-c;return u===void 0||O>=t||O<0||v&&F>=(o||0)}function T(){const M=Date.now();if(x(M))return L(M);s=_(T,m(M))}function L(M){return s=void 0,h&&n?p(M):(n=l=void 0,d)}function D(){s!==void 0&&b(s),c=0,n=u=l=s=void 0}function S(){return s===void 0?d:L(Date.now())}function w(){return s!==void 0}function V(...M){const O=Date.now(),F=x(O);if(n=M,l=this,u=O,F){if(s===void 0)return k(u);if(v)return s=_(T,t),p(u)}return s===void 0&&(s=_(T,t)),d}return V.cancel=D,V.flush=S,V.pending=w,V}const wl=["innerHTML"],kl=A({__name:"preview",props:{id:{}},setup(e){const a=ze(e,"id"),n=C(""),l=async()=>{if(!a.value)return;const{data:o}=await Ke({id:a.value});if(me(o)){const d=Gt(o.render);d&&o.type===1?(n.value=d.content,await et({id:a.value,type:o.type,temp_name:o.name,render:JSON.stringify(d.render),content:d.content},!1)):n.value=o.content}};return we(()=>a.value,()=>{l()}),l(),(o,d)=>($(),E("div",{class:"flex-1 min-w-[520px] overflow-auto border-lighter border-1 border-solid rounded-base p-[12px]",innerHTML:i(n)},null,8,wl))}}),Cl={class:"mb-12px font-bold text-medium text-default leading-28px"},Tl={class:"flex flex-col w-550px"},$l={class:"form-card mb-16px pt-20px"},Sl={class:"w-360px"},El={class:"w-360px"},Vl={class:"w-[60px] ml-[24px]"},Dl={class:"form-card flex-1 py-[10px]"},Ml={class:"w-360px"},Rl={class:"flex w-360px"},Al={class:"flex-1 mr-10px"},Bl={class:"form-card flex flex-col items-center w-640px ml-16px pt-12px p-16px overflow-hidden"},jl={class:"mb-12px"},Ll={class:"min-w-260px text-small"},Ol={class:"min-w-260px text-small"},Ul={class:"min-w-260px text-small"},Il={class:"mt-[16px]"},Hl=A({__name:"index",props:ie({row:{},isEdit:{type:Boolean,default:!1},refresh:{type:Function,default:()=>{}}},{show:{type:Boolean},showModifiers:{}}),emits:["update:show"],setup(e){const t=e,{refresh:a}=t,n=G(e,"show");Fe();const l=de("formRef"),o=de("containerRef"),{height:d}=yn(o),s=Z({task_name:mt(12),addresser:null,full_name:"",subject:"",temp_id:Ie.value,is_record:0,etypes:[],unsubscribe:1,threadsType:0,threads:1,start_time:null,pause:0,remark:"",mail_to:""}),u=C([]),c={full_name:{trigger:["blur","input"],validator:()=>s.full_name===""?new Error("请输入显示名称"):!0},subject:{trigger:["blur","input"],validator:()=>s.subject===""?new Error("请输入邮件主题"):!0},etypes:{trigger:"change",validator:()=>s.etypes.length===0?new Error("请选择联系人"):!0},temp_id:{trigger:"change",validator:()=>s.temp_id===null?new Error("请选择邮件模板"):!0},start_time:{validator:()=>s.pause===1&&s.start_time===null?new Error("请选择发送时间"):!0}},f=S=>{s.full_name=S||""},v=de("startTimeRef"),h=()=>{Re(()=>{var S;(S=v.value)==null||S.restoreValidation()})},p=()=>{var S;(S=v.value)==null||S.validate()},_=()=>{X({title:"退订设置",area:45,component:Bt(()=>Ue(()=>import("./unsubscribe.js?v=1777008528"),__vite__mapDeps([]),import.meta.url))})},b=de("subjectRef"),k=de("mailToRef"),m=async()=>{var S,w;if(s.subject===""){(S=b.value)==null||S.focus(),ye.error("请输入邮件主题");return}if(s.mail_to===""){(w=k.value)==null||w.focus(),ye.error("请输入测试邮箱");return}if(s.temp_id===null){ye.error("请选择邮件模板");return}H({loading:"正在发送...",request:la({mail_from:s.addresser||"",subject:s.subject,mail_to:s.mail_to,temp_id:s.temp_id||0}),message:!0})},x=()=>({task_name:s.task_name,addresser:s.addresser||"",full_name:s.full_name,subject:s.subject,temp_id:s.temp_id||0,is_record:s.is_record,unsubscribe:s.unsubscribe,threads:s.threadsType===0?0:s.threads,etypes:s.etypes.join(","),start_time:s.pause===0?Math.floor(new Date().getTime()/1e3):Math.floor((s.start_time||0)/1e3),remark:s.remark}),T=()=>{s.subject||s.etypes.length>0?ee({title:"提示",content:"确定放弃当前编辑吗?",onConfirm:()=>{n.value=!1}}):n.value=!1},L=async()=>{var M;await((M=l.value)==null?void 0:M.validate());const S=x(),{isEdit:w,row:V}=t;H({loading:"正在保存...",request:w&&V?oa({...S,id:V.id}):sa(S),message:!0,success:O=>{O.status&&(n.value=!1,a==null||a())}})},D=()=>{const{row:S,isEdit:w}=t;S&&(w?s.task_name=S.task_name:s.task_name="".concat(S.task_name,"_").concat(mt(4)),s.addresser=S.addresser,s.full_name=S.full_name,s.subject=S.subject,s.is_record=S.is_record,s.unsubscribe=S.unsubscribe,s.threadsType=S.threads===0?0:1,s.threads=S.threads,s.etypes=S.etypes.split(",").map(V=>Aa(V)),S.start_time*1e3>new Date().getTime()&&(s.pause=1,s.start_time=S.start_time*1e3),s.temp_id=S.temp_id,s.remark=S.remark)};return lt(()=>{Ie.value=null,Y.value=!1}),D(),(S,w)=>{const V=fe,M=ke,O=Ea,F=te,q=Va,se=Pe,Xt=Da,Zt=Et,Yt=_e;return $(),z(Yt,{ref_key:"formRef",ref:l,model:i(s),rules:c,"label-width":"150px"},{default:g(()=>[y("div",Cl,P(e.isEdit?"编辑发送任务":"添加发送任务"),1),y("div",{ref_key:"containerRef",ref:o,class:"flex min-h-654px",style:Sa({height:i(d)})},[y("div",Tl,[y("div",$l,[r(V,{label:"发件人",prop:"addresser"},{default:g(()=>[r(Tn,{value:i(s).addresser,"onUpdate:value":w[0]||(w[0]=B=>i(s).addresser=B),onChange:f},null,8,["value"])]),_:1}),r(V,{label:"显示名称",prop:"full_name"},{default:g(()=>[y("div",Sl,[r(M,{modelValue:i(s).full_name,"onUpdate:modelValue":w[1]||(w[1]=B=>i(s).full_name=B),placeholder:"请输入显示名称"},null,8,["modelValue"])])]),_:1}),r(V,{label:"邮件主题",prop:"subject"},{default:g(()=>[y("div",El,[r(M,{ref_key:"subjectRef",ref:b,modelValue:i(s).subject,"onUpdate:modelValue":w[2]||(w[2]=B=>i(s).subject=B),placeholder:"请输入邮件主题"},null,8,["modelValue"])])]),_:1}),r(V,{label:"收件人",prop:"etypes"},{default:g(()=>[r(On,{value:i(s).etypes,"onUpdate:value":w[3]||(w[3]=B=>i(s).etypes=B),name:i(u),"onUpdate:name":w[4]||(w[4]=B=>oe(u)?u.value=B:null)},null,8,["value","name"])]),_:1}),r(V,{label:"邮件模板",prop:"temp_id"},{default:g(()=>[r(wn,{value:i(s).temp_id,"onUpdate:value":w[5]||(w[5]=B=>i(s).temp_id=B)},null,8,["value"])]),_:1}),r(V,{label:"保存到发件箱"},{default:g(()=>[r(O,{modelValue:i(s).is_record,"onUpdate:modelValue":w[6]||(w[6]=B=>i(s).is_record=B),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1}),r(V,{label:"退订链接"},{default:g(()=>[r(O,{modelValue:i(s).unsubscribe,"onUpdate:modelValue":w[7]||(w[7]=B=>i(s).unsubscribe=B),"active-value":1,"inactive-value":0},null,8,["modelValue"]),r(F,{class:"ml-16px",size:"small",onClick:_},{default:g(()=>[...w[14]||(w[14]=[R("设置",-1)])]),_:1})]),_:1}),r(V,{label:"线程数",prop:"threads"},{default:g(()=>[r(se,{modelValue:i(s).threadsType,"onUpdate:modelValue":w[8]||(w[8]=B=>i(s).threadsType=B)},{default:g(()=>[r(q,{label:0},{default:g(()=>[...w[15]||(w[15]=[R("自动",-1)])]),_:1}),r(q,{label:1},{default:g(()=>[...w[16]||(w[16]=[R("自定义",-1)])]),_:1})]),_:1},8,["modelValue"]),ot(y("div",Vl,[r(Xt,{class:"!w-[60px]",modelValue:i(s).threads,"onUpdate:modelValue":w[9]||(w[9]=B=>i(s).threads=B),min:1,max:5,controls:!1,placeholder:"输入线程数"},null,8,["modelValue"])],512),[[st,i(s).threadsType===1]])]),_:1})]),y("div",Dl,[r(V,{ref_key:"startTimeRef",ref:v,label:"发送时间",prop:"start_time"},{default:g(()=>[r(se,{modelValue:i(s).pause,"onUpdate:modelValue":w[11]||(w[11]=B=>i(s).pause=B),class:"flex items-center",onChange:h},{default:g(()=>[r(q,{label:0},{default:g(()=>[...w[17]||(w[17]=[R("立即发送",-1)])]),_:1}),r(q,{label:1},{default:g(()=>[r(Zt,{modelValue:i(s).start_time,"onUpdate:modelValue":w[10]||(w[10]=B=>i(s).start_time=B),type:"datetime",disabled:i(s).pause===0,clearable:"",onChange:p},null,8,["modelValue","disabled"])]),_:1})]),_:1},8,["modelValue"])]),_:1},512),r(V,{label:"备注"},{default:g(()=>[y("div",Ml,[r(M,{modelValue:i(s).remark,"onUpdate:modelValue":w[12]||(w[12]=B=>i(s).remark=B),placeholder:"请输入备注"},null,8,["modelValue"])])]),_:1}),r(V,{label:"发送测试邮件"},{default:g(()=>[y("div",Rl,[y("div",Al,[r(M,{ref_key:"mailToRef",ref:k,modelValue:i(s).mail_to,"onUpdate:modelValue":w[13]||(w[13]=B=>i(s).mail_to=B),placeholder:"请输入邮箱"},null,8,["modelValue"])]),r(F,{onClick:m},{default:g(()=>[...w[18]||(w[18]=[R("发送测试邮件",-1)])]),_:1})])]),_:1})])]),y("div",Bl,[y("div",jl,[r(V,{label:"From: ","show-feedback":!1,class:"!mb-[0]","label-style":{fontWeight:"bold"}},{default:g(()=>[y("div",Ll,P(i(s).addresser),1)]),_:1}),r(V,{label:"To: ","show-feedback":!1,class:"!mb-[0]","label-style":{fontWeight:"bold"}},{default:g(()=>[y("div",Ol,P(i(u).length>0?i(u).join(", "):"--"),1)]),_:1}),r(V,{label:"Subject: ","show-feedback":!1,class:"!mb-[0]","label-style":{fontWeight:"bold"}},{default:g(()=>[y("div",Ul,P(i(s).subject||"--"),1)]),_:1})]),r(kl,{id:i(s).temp_id},null,8,["id"])])],4),y("div",Il,[r(F,{onClick:T},{default:g(()=>[...w[19]||(w[19]=[R("取消",-1)])]),_:1}),r(F,{type:"primary",onClick:L},{default:g(()=>[...w[20]||(w[20]=[R("确定",-1)])]),_:1})])]),_:1},8,["model"])}}}),Fl=De(Hl,[["__scopeId","data-v-8b711757"]]),ql=Ma("MAIL_MARKET_TASK",()=>({formModal:Z({row:null,isEdit:!1,title:""})})),{formModal:ht}=at(ql()),xt=e=>{ht.value.row=e,ht.value.isEdit=!1,Y.value=!0},Pl=A({__name:"index",setup(e){const{mainHeight:t}=Fe(),a=C({isEdit:!1,title:"",row:void 0}),{BtTable:n,BtPage:l,BtRefresh:o,BtTableCategory:d,BtRecommendSearch:s,BtColumn:u,BtBatch:c,BtErrorMask:f,refresh:v}=xe({request:async m=>{let x={p:m.p,size:m.limit};const{data:T}=await ra(x);return{data:T.data||[],total:ia(T.page)||0}},columns:[{prop:"created",label:"时间",width:180,render:m=>pe(m.created)},{prop:"subject",label:"邮件主题",showOverflowTooltip:!0},{prop:"addresser",label:"发件人",width:160,showOverflowTooltip:!0},{prop:"recipient_count",label:"收件人",width:160},{prop:"success_count",label:"成功",width:90,render:m=>m.task_process===2?m.recipient_count-m.count.error_count:"--"},{prop:"error_count",label:"失败",width:90,render:m=>m.task_process===2?r("a",{class:"bt-link !text-danger",href:"javascript:;",onClick:()=>{p(m)}},[m.count.error_count]):"--"},{prop:"task_process",label:"状态",width:90,render:m=>m.task_process===0?r("span",{class:"text-warning"},[R(" 待处理 ")]):m.task_process===1?r("span",{class:"text-warning"},[R(" 执行中 ")]):"完成"},{prop:"remark",label:"备注",showOverflowTooltip:!0},Te(m=>[{title:"编辑",onClick:()=>{_(m)}},{title:"查看",onClick:()=>{h(m)}},{title:m.task_process?"暂停":"发送",isHide:x=>x.task_process===2,onClick:()=>{k(m)}},{title:"删除",onClick:()=>{b(m)}}])]}),h=m=>{X({title:"查看【".concat(m.subject||"","】"),area:64,compData:{row:m,onAdd:xt},component:()=>Ue(()=>import("./index209.js?v=1777008528").then(x=>x.i),__vite__mapDeps([]),import.meta.url)})},p=m=>{X({title:"错误日志【".concat(m.subject,"】"),area:70,compData:{row:m},component:()=>Ue(()=>import("./index531.js?v=1777008528"),__vite__mapDeps([]),import.meta.url)})},_=m=>{a.value.row=m,a.value.isEdit=!0,Y.value=!0},b=async m=>{ee({title:"删除任务",content:"是否删除【".concat(m.subject,"】任务?"),onConfirm:async()=>{H({loading:"正在删除任务,请稍候...",message:!0,request:ua({task_id:m.id}),success:()=>{v()}})}})},k=m=>{ee({title:"更改任务状态【".concat(m.subject,"】"),content:m.task_process?"暂停任务后,可以继续发送任务!":"立即开始发送任务吗?",onConfirm:async()=>{H({loading:"正在处理,请稍候...",message:!0,request:ca({task_id:m.id,pause:m.task_process?1:0}),success:()=>{v()}})}})};return we(Y,m=>{m||(a.value.row=void 0,a.value.isEdit=!1,a.value.title="")}),(m,x)=>{const T=te,L=Ae;return $(),E("div",null,[ot(r(L,null,{"header-left":g(()=>[r(T,{type:"primary",onClick:x[0]||(x[0]=D=>i(xt)())},{default:g(()=>[...x[2]||(x[2]=[R(" 添加发送任务 ",-1)])]),_:1}),r(Ce,{class:"ml-16px"})]),content:g(()=>[r(i(n),{"min-height":i(t)},null,8,["min-height"])]),"footer-right":g(()=>[r(i(l))]),_:1},512),[[st,!i(Y)]]),i(Y)?($(),z(Fl,{key:0,show:i(Y),"onUpdate:show":x[1]||(x[1]=D=>oe(Y)?Y.value=D:null),"is-edit":i(a).isEdit,title:i(a).title,row:i(a).row,refresh:i(v)},null,8,["show","is-edit","title","row","refresh"])):rt("",!0)])}}}),Qt=A({__name:"type-select",props:{value:{default:()=>[]},valueModifiers:{}},emits:["update:value"],setup(e,{expose:t}){const a=G(e,"value"),n=C([]),{loading:l,setLoading:o}=ve(),d=async()=>{try{o(!0);const{data:s}=await Ye({});ae(s)&&(n.value=s.map(u=>({label:u.mail_type,value:u.id})))}finally{o(!1)}};return d(),Ne(()=>{}),t({getType:d}),(s,u)=>{const c=ue,f=ce;return $(),z(f,Ra(s.$attrs,{modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=v=>a.value=v),loading:i(l)}),{default:g(()=>[($(!0),E(J,null,le(i(n),v=>($(),z(c,{key:v.value,label:v.label,value:v.value},null,8,["label","value"]))),128))]),_:1},16,["modelValue","loading"])}}}),Nl={class:"px-[20px] pt-[24px] pb-[8px]"},zl={class:"w-300px"},Wl={class:"w-300px"},Jl=A({__name:"index",props:{compData:{}},setup(e,{expose:t}){const a=e,{compData:n}=a,l=C(null),o=Z({etypes:[]}),d={etypes:{trigger:"change",validator:()=>o.etypes.length?!0:new Error("请选择邮件类型")}},s=()=>({etypes:o.etypes.join(","),recipients:n.row.recipient,active:n.row.active}),u=async c=>{H({request:da(s()),loading:"更改中...",message:!0,success:()=>{n.onRefresh(),c()}})};return Ne(()=>{Re(()=>{o.etypes=n.row.mail_type.map(c=>Number(Object.keys(c)[0])).filter(c=>!Number.isNaN(c))})}),t({onConfirm:u}),(c,f)=>{const v=ke,h=fe,p=_e;return $(),E("div",Nl,[r(p,{ref_key:"formRef",ref:l,model:i(o),rules:d},{default:g(()=>[r(h,{label:"邮箱"},{default:g(()=>[y("div",zl,[r(v,{value:i(n).row.recipient,"onUpdate:value":f[0]||(f[0]=_=>i(n).row.recipient=_),disabled:!0},null,8,["value"])])]),_:1}),r(h,{label:"分组",prop:"etypes"},{default:g(()=>[y("div",Wl,[r(Qt,{ref:"typeSelect",modelValue:i(o).etypes,"onUpdate:modelValue":f[1]||(f[1]=_=>i(o).etypes=_),multiple:"",filterable:""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model"])])}}}),Gl={class:"flex items-center"},Ql={class:"ml-40px"},Xl=A({__name:"import",props:ie({path:{default:""},accept:{default:()=>[]}},{value:{},valueModifiers:{}}),emits:ie(["change"],["update:value"]),setup(e,{emit:t}){const a=e,{path:n,accept:l}=a,o=G(e,"value");we(o,u=>{d("change",u)});const d=t,s=()=>{Lt({path:n,size:5,uploadData:{accept:l.map(u=>".".concat(u)).join(","),multiple:!1,limit:1},refreshEvent:(u,c)=>{o.value=u[0].name,c()}})};return(u,c)=>{const f=te;return $(),E("div",null,[y("div",Gl,[r(f,{type:"primary",onClick:s},{default:g(()=>[...c[0]||(c[0]=[R("导入",-1)])]),_:1}),y("div",Ql,[c[1]||(c[1]=R(" 文件名: ",-1)),y("span",{class:Rt(o.value?"text-primary":"text-dangerDark")},P(o.value||"未选择任何文件"),3)])]),At(u.$slots,"default")])}}}),Zl={class:"p-20px"},Yl={class:"w-260px"},Kl=A({__name:"index",props:{compData:{}},setup(e,{expose:t}){const a=jt("popupClose"),n=e,{compData:l}=n,o=C(null),d=Z({etypes:l.group!==-1&&l.group!==void 0?[l.group]:[],file:""}),s={etypes:{trigger:"change",validator:()=>d.etypes.length?!0:new Error("请选择邮件类型")},file:{required:!0,message:"请上传文件",trigger:["blur","change"]}},u=()=>({etypes:d.etypes.join(","),file:d.file,active:l.active});return t({onConfirm:async()=>{var f;await((f=o.value)==null?void 0:f.validate()),H({request:pa(u()),loading:"导入中...",message:!0,success:()=>{l.refresh(),a==null||a()}})}}),(f,v)=>{const h=fe,p=_e,_=Tt;return $(),E("div",Zl,[r(p,{ref_key:"formRef",ref:o,model:i(d),rules:s},{default:g(()=>[r(h,{label:"分组",prop:"etypes"},{default:g(()=>[y("div",Yl,[r(Qt,{ref:"typeSelect",class:"bt-multiple-select",value:i(d).etypes,"onUpdate:value":v[0]||(v[0]=b=>i(d).etypes=b),multiple:"",filterable:""},null,8,["value"])])]),_:1}),r(h,{label:"文件",prop:"file"},{default:g(()=>[r(Xl,{value:i(d).file,"onUpdate:value":v[1]||(v[1]=b=>i(d).file=b),path:"/www/server/panel/data/mail/in_bulk/recipient",accept:["txt","json"]},null,8,["value"])]),_:1})]),_:1},8,["model"]),r(_,{class:"mt-4px"},{default:g(()=>[...v[2]||(v[2]=[y("li",null," 文件类型: txt/json 每行一个邮箱 不超过5 MB ",-1)])]),_:1})])}}}),he=C([]),pt=async()=>{const{data:e}=await Ye({});he.value=ae(e)?e:[]},eo=()=>{he.value=[]},to={class:"p-20px"},ao={class:"mt-12px"},no=A({__name:"set",setup(e){const t=C(""),{BtTable:a,refresh:n}=xe({request:async u=>(await pt(),{data:he.value||[],total:he.value.length||0}),columns:[{prop:"mail_type",label:"分组名称"},Te(u=>[{render:c=>r("span",{class:""},[r("span",{class:"bt-link ".concat(c.id===0?"!cursor-not-allowed !opacity-50":""),onClick:()=>{c.id!==0&&o(c)}},[R("编辑")]),r(La,null,null)])},{render:c=>r("span",{class:"bt-link ".concat(c.id===0?"!cursor-not-allowed !opacity-50":""),onClick:()=>{c.id!==0&&d(c)}},[R("删除")])}])]}),l=async()=>{const u=t.value.trim();if(u===""){ye.error("请输入分组名称");return}await St({mail_type:u}),n(),t.value=""},o=u=>{s.id=u.id,s.mail_type=u.mail_type;const{BtForm:c,submit:f}=ma({data:()=>s,options:v=>Me(()=>[Oa("分组名称","mail_type",{attrs:{placeholder:"请输入分组名称"},rules:[{required:!0,message:"请输入分组名称",trigger:"blur"}]})]),submit:async(v,h)=>(await h(),H({request:$t(Xe(s)),loading:"编辑中...",message:!0,success:()=>{n()}}))});X({title:"编辑分组",component:()=>r(c,{class:"pt-[14px]"},null),area:35,showFooter:!0,onConfirm:f})},d=u=>{ee({title:"删除分组【".concat(u.mail_type,"】"),content:"确定要删除该分组吗?",onConfirm:async()=>{H({request:fa({ids:"".concat(u.id)}),loading:"删除中...",message:!0,success:()=>{n()}})}})};C(null);const s=Z({id:-1,mail_type:""});return(u,c)=>{const f=ke,v=Dt,h=te,p=Mt;return $(),E("div",to,[r(p,{gutter:10},{default:g(()=>[r(v,{span:20},{default:g(()=>[r(f,{modelValue:i(t),"onUpdate:modelValue":c[0]||(c[0]=_=>oe(t)?t.value=_:null),placeholder:"请输入分组名称"},null,8,["modelValue"])]),_:1}),r(v,{span:4},{default:g(()=>[r(h,{type:"primary",onClick:l},{default:g(()=>[...c[1]||(c[1]=[R("添加",-1)])]),_:1})]),_:1})]),_:1}),y("div",ao,[r(i(a),{"max-height":300})])])}}}),lo={class:"w-200px"},oo={class:"px-[12px] py-[8px]"},so=A({__name:"index",props:{value:{default:()=>-1},valueModifiers:{}},emits:["update:value"],setup(e){const t=G(e,"value"),a=Me(()=>{const u=he.value.map(c=>({label:c.mail_type,value:c.id}));return u.unshift({label:"全部",value:-1}),u}),n=u=>"分组: ".concat(u),l=()=>{X({title:"分组管理",area:36,component:no})},{loading:o,setLoading:d}=ve();return(async()=>{try{d(!0),await pt()}finally{d(!1)}})(),lt(()=>{eo()}),(u,c)=>{const f=te,v=ue,h=ce;return $(),E("div",lo,[r(h,{modelValue:t.value,"onUpdate:modelValue":c[0]||(c[0]=p=>t.value=p),loading:i(o)},{label:g(({label:p,value:_})=>[R(P(n(p)),1)]),footer:g(()=>[y("div",oo,[r(f,{class:"!w-full",onClick:l},{default:g(()=>[...c[1]||(c[1]=[R("分组管理",-1)])]),_:1})])]),default:g(()=>[($(!0),E(J,null,le(i(a),p=>($(),z(v,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])])}}}),ro={class:"px-20px pt-24px pb-8px"},io={class:"w-240px"},uo=A({__name:"batch",props:{compData:{}},setup(e,{expose:t}){const a=e,{compData:n}=a,l=de("formRef"),o=Z({type:null}),d={type:{trigger:"change",validator:()=>o.type===null?new Error("请选择邮件类型"):!0}},s=Me(()=>he.value.map(p=>({label:p.mail_type,value:p.id}))),{loading:u,setLoading:c}=ve();(async()=>{try{c(!0),await pt()}finally{c(!1)}})();const v=()=>({etypes:"".concat(o.type||0),recipients:n.rows.map(p=>p.recipient).join(","),active:n.rows[0].active});return t({onConfirm:async p=>{var _;await((_=l.value)==null?void 0:_.validate()),H({loading:"修改中...",message:!0,request:_a(v()),success:()=>{n==null||n.onRefresh(),p()}})}}),(p,_)=>{const b=ue,k=ce,m=fe,x=_e;return $(),E("div",ro,[r(x,{ref_key:"formRef",ref:l,model:i(o),rules:d},{default:g(()=>[r(m,{label:"分组",prop:"type"},{default:g(()=>[y("div",io,[r(k,{modelValue:i(o).type,"onUpdate:modelValue":_[0]||(_[0]=T=>i(o).type=T),loading:i(u),multiple:"",filterable:""},{default:g(()=>[($(!0),E(J,null,le(i(s),T=>($(),z(b,{key:T.value,label:T.label,value:T.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])])]),_:1})]),_:1},8,["model"])])}}}),co=["show"],po={class:"text-center fw-bold text-large text-darkSecondary"},mo={class:"w-96% mx-auto"},fo=A({__name:"index",props:{active:{default:0}},setup(e){const a=ze(e,"active"),n=(p=["1月","2月","3月","4月","5月","6月"])=>[{data:p}],l=(p=[0,0,0,0,0,0])=>[{name:"Count",type:"line",data:p,itemStyle:{color:"var(--el-color-primary)"},smooth:!0,showSymbol:!1,sampling:"average",areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,global:!1,colorStops:[{offset:0,color:"rgba(var(--el-color-primar-rgb), 0.4)"},{offset:.7,color:"rgba(32, 164, 58, 0)"}]}}}],o=nt({tooltip:{trigger:"axis",order:"seriesDesc",axisPointer:{type:"shadow"}},grid:{top:"16%",left:"2%",right:"2%",bottom:"4%",containLabel:!0},xAxis:n(),yAxis:{type:"value"},series:l()}),{loading:d,setLoading:s}=ve(),{BtECharts:u,getEChart:c,setOption:f,setQuickOption:v}=Ze({options:{}}),h=async()=>{try{s(!0);const{data:{data:p}}=await va({active:a.value});if(ae(p)){const _=p.map(k=>k.month),b=p.map(k=>k.count);o.xAxis=n(_),o.series=l(b)}f(o)}finally{s(!1)}};return h(),we(()=>a.value,()=>{h()}),(p,_)=>($(),E("div",{class:"mb-16px",show:i(d)},[y("div",po,P(i(a)?"订阅":"取消订阅")+" 趋势 ",1),y("div",mo,[r(i(u),{class:"h-[20rem]"})])],8,co))}}),_o=A({__name:"index",setup(e){const t=Z({p:1,size:10,active:1,keyword:""}),a=async(x,T,L,D)=>{const{label:S,value:w}=D,V={del:"删除",subscribe:"订阅",unsubscribe:"取消订阅"},M=async O=>{const q=new Map([["subscribe",Je],["unsubscribe",Je],["del",ft]]).get(w);switch(w){case"subscribe":case"unsubscribe":const se=w==="subscribe"?1:0;if(q)return await q({recipient:O.recipient,active:se});break;case"del":if(q)return await q({ids:O.id,active:O.active});break}};ee({title:"批量".concat(V[w]),content:"确定".concat(V[w],"选定项吗?"),onConfirm:async()=>{let O=[],F=ye.load("批量".concat(V[w],"中..."));await T(async q=>{const se=await M(q);O.push({name:q.recipient,status:se.status,message:se.msg,msg:se.msg}),F.close()}),it(O,{title:"".concat(V[w])}),_()}})},n=qe([{label:"删除",value:"del",event:a},{label:"订阅",value:"subscribe",event:a},{label:"取消订阅",value:"unsubscribe",event:a},{label:"设置分组",value:"category",event:(x,T,L,D)=>{X({title:"设置分组",area:45,showFooter:!0,compData:{rows:L.value,onRefresh:_},component:uo})}}]),{BtTable:l,BtPage:o,BtSearch:d,BtRefresh:s,BtColumn:u,BtBatch:c,BtTableCategory:f,BtErrorMask:v,tableRef:h,classList:p,refresh:_}=xe({request:async x=>{let T={etype:ge.value,search:x.search,p:x.p,size:x.limit,active:t.active};T.etype===-1&&delete T.etype;const{data:{data:L,total:D}}=await ga(T);return{data:L,total:D}},columns:[We(),{prop:"recipient",label:"邮箱",showOverflowTooltip:!0},{prop:"mail_type",label:"分组",render:x=>x.mail_type.map(T=>Object.values(T)[0]).join(", ")},{prop:"created",label:"添加时间",width:140,render:x=>pe(x.created)},Te(x=>[{title:"更改列表",onClick:async()=>{X({title:"更改列表",area:50,showFooter:!0,compData:{row:x,onRefresh:()=>{_()}},component:Jl})}},{title:x.active?"取消订阅":"订阅",onClick:async()=>{ee({title:"".concat(x.active?"取消订阅":"订阅"," [").concat(x.recipient,"]"),content:"您确定要从此邮箱".concat(x.active?"取消订阅":"订阅","吗?"),onConfirm:async()=>{H({request:Je({recipient:x.recipient,active:x.active===0?1:0}),loading:"更改中...",message:!0,success:()=>{_()}})}})}},{title:"删除",onClick:async()=>{ee({title:"删除 [".concat(x.recipient,"]"),content:"您确定要删除此".concat(x.active?"订阅":"取消订阅","邮件吗?"),onConfirm:async()=>{H({request:ft({ids:x.id,active:x.active}),loading:"删除中...",message:!0,success:()=>{_()}})}})}}])],extension:[n]}),b=()=>{X({title:"导入联系人",area:45,showFooter:!0,compData:{active:t.active,group:ge.value,refresh:()=>{_()}},component:Kl})},k=x=>{t.active=x,t.p=1,_()},m=()=>{t.p=1,_()};return lt(()=>{ge.value=-1}),(x,T)=>{const L=te,D=tt,S=Pe,w=Ae;return $(),E("div",null,[r(fo,{active:i(t).active},null,8,["active"]),r(w,null,{"header-left":g(()=>[r(L,{type:"primary",onClick:b},{default:g(()=>[...T[3]||(T[3]=[R("导入",-1)])]),_:1}),r(Ce,{class:"ml-16px"})]),"header-right":g(()=>[r(S,{modelValue:i(t).active,"onUpdate:modelValue":T[0]||(T[0]=V=>i(t).active=V),onChange:k,class:"w-[120px] mr-[12px]"},{default:g(()=>[r(D,{label:"订阅",value:1}),r(D,{label:"取消订阅",value:0})]),_:1},8,["modelValue"]),r(so,{value:i(ge),"onUpdate:value":[T[1]||(T[1]=V=>oe(ge)?ge.value=V:null),i(_)],class:"mr-[12px]"},null,8,["value","onUpdate:value"]),r(i(d),{modelValue:i(t).keyword,"onUpdate:modelValue":T[2]||(T[2]=V=>i(t).keyword=V),class:"!w-[240px]",placeholder:"请输入邮箱",onSearch:m},null,8,["modelValue"])]),content:g(()=>[r(i(l),{ref_key:"tableRef",ref:h},null,512)]),"footer-left":g(()=>[r(i(c),{ref:"batchRef"},null,512)]),"footer-right":g(()=>[r(i(o),{ref:"pageRef"},null,512)]),_:1})])}}}),vo={class:"p-[20px] pt-[24px] pb-[8px]"},go={class:"w-[200px]"},wt=A({__name:"form",props:{compData:{}},setup(e,{expose:t}){const a=jt("popupClose"),n=e,{row:l,isEdit:o,refresh:d}=n.compData,s=C(null),u=Z({mail_type:""}),c={mail_type:{required:!0,trigger:"blur",message:"请输入分组名"}};return t({onConfirm:async()=>{var v;await((v=s.value)==null?void 0:v.validate()),H({loading:"正在".concat(o?"编辑":"添加","分组"),message:!0,request:o&&l?$t({...Xe(u),id:l.id}):St(Xe(u)),success:h=>{h.status&&(a==null||a(),d==null||d())}})}}),(v,h)=>{const p=ke,_=fe,b=_e;return $(),E("div",vo,[r(b,{ref_key:"formRef",ref:s,model:i(u),rules:c},{default:g(()=>[r(_,{label:"分组名",prop:"mail_type"},{default:g(()=>[y("div",go,[r(p,{modelValue:i(u).mail_type,"onUpdate:modelValue":h[0]||(h[0]=k=>i(u).mail_type=k),placeholder:"请输入组名"},null,8,["modelValue"])])]),_:1})]),_:1},8,["model"])])}}}),yo=A({__name:"index",setup(e,{expose:t}){const a=Z({show:!1,title:"",data:{isEdit:!1,row:null,refresh:()=>{v()}}}),n=()=>{a.data.row=null,a.data.isEdit=!1,a.title="添加分组",X({title:"添加分组",component:wt,compData:a.data,area:40,showFooter:!0})},l=p=>{a.data.row=p,a.data.isEdit=!0,a.title="编辑分组",X({title:"编辑分组",component:wt,compData:a.data,area:40,showFooter:!0})},o=qe([{label:"删除",value:"delete",event:async(p,_,b,k)=>{await p({title:"批量删除",content:"确定删除选定项吗?",column:[{label:"群组名称",prop:"mail_type"},ut()],onConfirm:async()=>{let m=[];await _(async x=>{const T=await _t({ids:x.id});m.push({name:x.mail_type,status:T.status,message:T.msg,msg:T.msg})}),it(m,{title:"删除"}),v()}})}}]),{BtTable:d,BtPage:s,BtRefresh:u,BtColumn:c,BtBatch:f,refresh:v,BtSearch:h}=xe({request:async p=>{const{data:_}=await ya(p);return{data:_.data||[],total:_.total||0}},columns:[We(),{prop:"mail_type",label:"群组名称",render:p=>r("a",{class:"bt-link",href:"javascript:;",onClick:()=>{ja(p.id)}},[p.mail_type])},{prop:"subscribers",label:"订阅",align:"center"},{prop:"unsubscribers",label:"取消订阅",align:"center"},{prop:"created",label:"添加时间",render:p=>pe(p.created)},Te(p=>[{title:"复制链接",isHide:_=>!0,onClick:()=>{ba(p.subscribe_url)}},{title:"重命名",onClick:()=>{l(p)}},{title:"删除",onClick:()=>{if(p.subscribers||p.unsubscribers){ye.error("请先修改或删除此类型下的取消订阅或订阅者,才能继续删除	");return}ee({title:"删除",content:"确定删除【".concat(p.mail_type,"】分组吗?"),onConfirm:async()=>{H({loading:"正在删除",message:!0,request:_t({ids:p.id}),success:()=>{v()}})}})}}])],extension:[o]});return t({init:v}),(p,_)=>{const b=te,k=Ae;return $(),E("div",null,[r(k,null,{"header-left":g(()=>[r(b,{type:"primary",onClick:n},{default:g(()=>[..._[0]||(_[0]=[R("添加",-1)])]),_:1}),r(Ce,{class:"ml-16px"})]),"header-right":g(()=>[r(i(h),{class:"!w-[240px]",placeholder:"请输入名称",onSearch:i(v)},null,8,["onSearch"])]),content:g(()=>[r(i(d))]),"footer-left":g(()=>[r(i(f))]),"footer-right":g(()=>[r(i(s))]),_:1})])}}}),bo=A({__name:"index",setup(e,{expose:t}){const a=Z({p:1,size:10,status:"bounced",search:""}),n=qe([{label:"删除",value:"del",event:async(k,m,x,T)=>{await k({title:"批量删除",content:"您确定要删除选定项吗?",column:[{label:"邮箱",prop:"recipient"},ut()],onConfirm:async()=>{let L=[];await m(async D=>{const S=await vt({ids:D.id});L.push({name:D.recipient,status:S.status,msg:S.msg})}),it(L,{title:"批量删除"}),c()}})}}]),{BtTable:l,BtPage:o,BtRefresh:d,BtColumn:s,BtBatch:u,refresh:c,BtSearch:f}=xe({request:async k=>{const{data:m}=await ha(k);return{data:m.data||[],total:m.total||0}},columns:[We(),{prop:"recipient",label:"邮箱"},{prop:"task_name",label:"邮件主题"},{prop:"status",label:"类型"},{prop:"state",label:"状态",render:k=>k.state||k.count>=3?"无效":"观察"},{prop:"created",label:"添加时间",render:k=>pe(k.created)},Te(k=>[{title:"删除",onClick:async()=>{ee({title:"删除",content:"您确定要删除".concat(k.recipient,"吗?"),onConfirm:async()=>{H({loading:"正在删除,请稍候...",message:!0,request:vt({ids:k.id}),success:()=>{c()}})}})}}])],extension:[n]}),v=C([]),h=()=>{a.p=1,c()},p=()=>{ee({title:"清空无效列表",content:"这将清除该类型下的所有数据,您确定要继续吗?",onConfirm:async()=>{await xa({status:a.status}),c()}})},_=async()=>{try{const{data:{data:k}}=await wa();ae(k)&&(v.value=k.map(m=>({label:m.status,value:m.status})),v.value.length&&(a.status=v.value[0].value))}catch(k){}},b=async()=>{await _(),c()};return b(),t({init:b}),(k,m)=>{const x=te,T=ue,L=ce,D=Ae;return $(),E("div",null,[r(D,null,{"header-left":g(()=>[r(x,{type:"primary",onClick:i(c)},{default:g(()=>[...m[1]||(m[1]=[R("刷新",-1)])]),_:1},8,["onClick"]),r(x,{onClick:p},{default:g(()=>[...m[2]||(m[2]=[R("清空",-1)])]),_:1}),r(Ce,{class:"ml-16px"})]),"header-right":g(()=>[r(L,{class:"!w-[200px] mr-[10px]",modelValue:i(a).status,"onUpdate:modelValue":m[0]||(m[0]=S=>i(a).status=S),onUpdate:h},{default:g(()=>[($(!0),E(J,null,le(i(v),S=>($(),z(T,{key:S.value,label:S.label,value:S.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),r(i(f),{class:"!w-[240px]",placeholder:"请输入名称",onSearch:i(c)},null,8,["onSearch"])]),content:g(()=>[r(i(l))]),"footer-left":g(()=>[r(i(u))]),"footer-right":g(()=>[r(i(o))]),_:1})])}}}),ho=e=>{Oe.value=e},xo=e=>{ho("task"),Ie.value=e,Re(()=>{Y.value=!0})},wo={class:"mb-20px"},ko={class:"w-320px"},Co={class:"flex items-center"},To=A({__name:"form",props:ie({data:{default:null},refresh:{}},{show:{type:Boolean,default:!1},showModifiers:{}}),emits:["update:show"],setup(e){const t=e,a=Bt(()=>Ue(()=>import("./index547.js?v=1777008528"),__vite__mapDeps([]),import.meta.url)),n=ze(t,"data"),l=G(e,"show"),o=de("editorRef"),d=C(1),s=C(""),u=()=>{l.value=!1},c=C(!1),f=async(p=!1)=>{var _,b;if(n.value)try{p||(c.value=!0),await et({id:n.value.id,type:d.value,temp_name:s.value,render:JSON.stringify((_=o.value)==null?void 0:_.getEmailData()),content:((b=o.value)==null?void 0:b.getEmailHTML())||""},p)}finally{p||(c.value=!1)}},v=async()=>{await f(!0),u(),t.refresh()},h=async()=>{c.value=!0,await Re(),setTimeout(async()=>{var p;if(n.value)try{s.value=n.value.name;const{data:_}=await Ke({id:n.value.id});me(_)&&((p=o.value)==null||p.setEmailData(_.render))}finally{setTimeout(()=>{c.value=!1},500)}},500)};return Ne(()=>{h()}),(p,_)=>{const b=tt,k=Pe,m=fe,x=ke,T=_e,L=te;return $(),E("div",null,[_[6]||(_[6]=y("div",{class:"mb-14px font-bold text-large text-default leading-28px"},"邮件模板编辑",-1)),r(T,{"label-position":"left"},{default:g(()=>[rt("",!0),y("div",wo,[r(i(a),{ref_key:"editorRef",ref:o,save:f},null,512)]),r(m,{label:"模板名称","label-width":"50px"},{default:g(()=>[y("div",ko,[r(x,{modelValue:i(s),"onUpdate:modelValue":_[1]||(_[1]=D=>oe(s)?s.value=D:null)},null,8,["modelValue"])])]),_:1})]),_:1}),y("div",Co,[r(L,{onClick:u},{default:g(()=>[..._[4]||(_[4]=[R("返回",-1)])]),_:1}),r(L,{type:"primary",loading:i(c),disabled:i(c),class:"ml-12px",onClick:v},{default:g(()=>[..._[5]||(_[5]=[R(" 保存 ",-1)])]),_:1},8,["loading","disabled"])])])}}}),$o=De(To,[["__scopeId","data-v-a8721274"]]),So=["innerHTML"],Eo=A({__name:"preview",props:{compData:{}},setup(e){const a=ze(e.compData,"row"),n=C("");return(async()=>{const{data:o}=await Ke({id:a.value.id});if(me(o)){const d=Gt(o.render);d&&o.type===1?(n.value=d.content,await et({id:a.value.id,type:o.type,temp_name:o.name,render:JSON.stringify(d.render),content:d.content},!1)):n.value=o.content}})(),(o,d)=>($(),E("div",{class:"min-h-600px overflow-auto",innerHTML:i(n)},null,8,So))}}),Vo={class:"relative"},Do=A({__name:"index",setup(e){const t=C(!1),a=C(null),n=async()=>{const b="template_".concat(pe(new Date,"yyyyMMddHHmmss")),{data:{data:k}}=await Ca({temp_name:b,type:1});f(),me(k)&&(a.value=k,t.value=!0)},l=qe([{label:"删除",value:"delete",event:async(b,k,m,x)=>{await b({title:"批量删除",content:"确定删除选定项吗?",column:[{label:"模板名称",prop:"name"},ut()],onConfirm:async()=>{H({loading:"删除中...",message:!0,request:gt({id:m.value.map(T=>T.id)}),success:()=>{f()}})}})}}]),{BtTable:o,BtPage:d,BtRefresh:s,BtColumn:u,BtBatch:c,refresh:f,BtSearch:v}=xe({request:async b=>{const{data:k}=await ka({p:b.p,size:b.limit});return{data:k.data||[],total:k.total||0}},columns:[We(),{prop:"name",label:"名称"},{prop:"created",label:"创建时间",render:b=>pe(b.created)},Te(b=>[{title:"创建任务",onClick:()=>{xo(b.id)}},{title:"查看",onClick:()=>{h(b)}},{title:"编辑",onClick:()=>{p(b)}},{title:"删除",onClick:()=>{_(b)}}])],extension:[l]}),h=b=>{X({title:"查看【".concat(b.name,"】"),area:80,compData:{row:b},component:Eo})},p=b=>{a.value=b,t.value=!0},_=b=>{ee({title:"删除【".concat(b.name,"】"),content:"确定删除该模板吗?",onConfirm:async()=>{H({loading:"删除中...",message:!0,request:gt({id:b.id}),success:()=>{f()}})}})};return(b,k)=>{const m=te,x=Ae;return $(),E("div",Vo,[ot(r(x,null,{"header-left":g(()=>[r(m,{type:"primary",onClick:n},{default:g(()=>[...k[1]||(k[1]=[R("添加模板",-1)])]),_:1}),r(Ce,{class:"ml-16px"})]),content:g(()=>[r(i(o))]),"footer-left":g(()=>[r(i(c))]),"footer-right":g(()=>[r(i(d))]),_:1},512),[[st,!i(t)]]),i(t)?($(),z($o,{key:0,show:i(t),"onUpdate:show":k[0]||(k[0]=T=>oe(t)?t.value=T:null),data:i(a),refresh:i(f)},null,8,["show","data","refresh"])):rt("",!0)])}}}),Mo=A({__name:"index",setup(e){const t=C([{label:"概览",name:"overview",lazy:!0,render:()=>r(gn,null,null)},{label:"发送任务",name:"task",lazy:!0,render:()=>r(Pl,null,null)},{label:"模板",name:"template",lazy:!0,render:()=>r(Do,null,null)},{label:"订阅者",name:"contact",lazy:!0,render:()=>r(_o,null,null)},{label:"群组",name:"mail",lazy:!0,render:()=>r(yo,null,null)},{label:"无效列表",name:"invalid",lazy:!0,render:()=>r(bo,null,null)}]),a=n=>{Y.value=!1,Ie.value=null};return(n,l)=>{const o=Ta;return $(),E("div",null,[r(o,{type:"card",options:i(t),modelValue:i(Oe),"onUpdate:modelValue":l[0]||(l[0]=d=>oe(Oe)?Oe.value=d:null),onChange:a},null,8,["options","modelValue"])])}}}),ss=Object.freeze(Object.defineProperty({__proto__:null,default:Mo},Symbol.toStringTag,{value:"Module"}));export{Yo as A,Ko as B,os as C,Ot as D,N as E,Wt as F,es as G,ts as H,Pn as I,ls as J,ns as K,qn as L,Wo as M,ss as N,U as a,K as b,Q as c,j as d,zo as e,Fn as f,be as g,Fo as h,Jo as i,Xo as j,Zo as k,ne as l,as as m,Hn as n,qo as o,In as p,W as q,Po as r,yl as s,je as t,I as u,No as v,Go as w,Le as x,He as y,Qo as z};
function __vite__mapDeps(indexes) {
  if (!__vite__mapDeps.viteFileDeps) {
    __vite__mapDeps.viteFileDeps = []
  }
  return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}