Files
zsglpt/static/admin/assets/SystemPage-CMSxrPFY.js
2026-01-07 17:03:03 +08:00

18 lines
16 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{f as De,u as ae,e as Ke}from"./system-BDTy0cf_.js";import{a as A,_ as Ee,r as n,c as ve,U as $e,T as Le,o as He,f as v,I as qe,J as Qe,h as f,g,j as s,m as l,w as o,q as c,B as te,n as w,F as Fe,v as Me,p as oe,K as ne,L as r}from"./index-BDEpmftQ.js";async function de(p={}){const{data:_}=await A.get("/kdocs/status",{params:p});return _}async function je(p={}){const _={force:!0,...p},{data:U}=await A.post("/kdocs/qr",_);return U}async function ze(){const{data:p}=await A.post("/kdocs/clear-login",{});return p}async function Oe(){const{data:p}=await A.get("/proxy/config");return p}async function Re(p){const{data:_}=await A.post("/proxy/config",p);return _}async function We(p){const{data:_}=await A.post("/proxy/test",p);return _}const Ge={class:"page-stack"},Je={class:"app-page-title"},Xe={class:"row-actions"},Ye={class:"row-actions"},Ze={class:"row-actions"},el={class:"help"},ll={key:0},al={key:1},tl={key:2},ol={key:3},nl={key:0,class:"help"},ul={class:"kdocs-qr"},sl=["src"],dl={__name:"SystemPage",setup(p){const _=n(!1),U=n(2),$=n(1),L=n(3),y=n(!1),H=n("02:00"),B=n("应读"),k=n(["1","2","3","4","5","6","7"]),T=n(!0),D=n(!1),x=n(""),q=n(3),Q=n(!1),F=n(10),M=n(7),j=n(!1),z=n(""),O=n(""),R=n(""),W=n(0),G=n("A"),J=n("D"),X=n(!1),Y=n(""),b=n({}),C=n(!1),h=n(""),re=n(!1),P=n(!1),S=n(!1),I=n(!1),Z=n("");let ee=null;const pe=[{label:"周一",value:"1"},{label:"周二",value:"2"},{label:"周三",value:"3"},{label:"周四",value:"4"},{label:"周五",value:"5"},{label:"周六",value:"6"},{label:"周日",value:"7"}],fe={1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六",7:"周日"},_e=ve(()=>(k.value||[]).map(a=>fe[Number(a)]||a).join("、")),ue=ve(()=>P.value||S.value||I.value);function ye(a){return String(a)==="注册前未读"?"注册前未读":"应读"}function m(a){if(!a){Z.value="";return}const e=new Date().toLocaleTimeString("zh-CN",{hour12:!1});Z.value=`${a} (${e})`}async function ie(){_.value=!0;try{const[a,e,d]=await Promise.all([De(),Oe(),de().catch(()=>({}))]);U.value=a.max_concurrent_global??2,$.value=a.max_concurrent_per_account??1,L.value=a.max_screenshot_concurrent??3,y.value=(a.schedule_enabled??0)===1,H.value=a.schedule_time||"02:00",B.value=ye(a.schedule_browse_type);const i=String(a.schedule_weekdays||"1,2,3,4,5,6,7").split(",").map(u=>u.trim()).filter(Boolean);k.value=i.length?i:["1","2","3","4","5","6","7"],T.value=(a.enable_screenshot??1)===1,Q.value=(a.auto_approve_enabled??0)===1,F.value=a.auto_approve_hourly_limit??10,M.value=a.auto_approve_vip_days??7,D.value=(e.proxy_enabled??0)===1,x.value=e.proxy_api_url||"",q.value=e.proxy_expire_minutes??3,j.value=(a.kdocs_enabled??0)===1,z.value=a.kdocs_doc_url||"",O.value=a.kdocs_default_unit||"",R.value=a.kdocs_sheet_name||"",W.value=a.kdocs_sheet_index??0,G.value=(a.kdocs_unit_column||"A").toUpperCase(),J.value=(a.kdocs_image_column||"D").toUpperCase(),X.value=(a.kdocs_admin_notify_enabled??0)===1,Y.value=a.kdocs_admin_notify_email||"",b.value=d||{}}catch{}finally{_.value=!1}}async function be(){const a={max_concurrent_global:Number(U.value),max_concurrent_per_account:Number($.value),max_screenshot_concurrent:Number(L.value)};try{await ne.confirm(`确定更新并发配置吗?
全局并发数: ${a.max_concurrent_global}
单账号并发数: ${a.max_concurrent_per_account}
截图并发数: ${a.max_screenshot_concurrent}`,"保存并发配置",{confirmButtonText:"保存",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await ae(a);r.success(e?.message||"并发配置已更新")}catch{}}async function ge(){if(y.value&&(!k.value||k.value.length===0)){r.error("请至少选择一个执行日期");return}const a={schedule_enabled:y.value?1:0,schedule_time:H.value,schedule_browse_type:B.value,schedule_weekdays:(k.value||[]).join(","),enable_screenshot:T.value?1:0},e=T.value?"截图":"不截图",d=y.value?`确定启用定时任务吗?
执行时间: 每天 ${a.schedule_time}
执行日期: ${_e.value}
浏览类型: ${a.schedule_browse_type}
截图: ${e}
系统将自动执行所有账号的浏览任务`:"确定关闭定时任务吗?";try{await ne.confirm(d,"保存定时任务",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"})}catch{return}try{const i=await ae(a);r.success(i?.message||(y.value?"定时任务已启用":"定时任务已关闭"))}catch{}}async function ke(){const a=`确定要立即执行定时任务吗?
这将执行所有账号的浏览任务
浏览类型: ${B.value}
注意:无视定时时间和执行日期配置,立即开始执行!`;try{await ne.confirm(a,"立即执行",{confirmButtonText:"立即执行",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await Ke();r.success(e?.message||"定时任务已开始执行")}catch{}}async function xe(){if(D.value&&!x.value.trim()){r.error("启用代理时API地址不能为空");return}const a={proxy_enabled:D.value?1:0,proxy_api_url:x.value.trim(),proxy_expire_minutes:Number(q.value)||3};try{const e=await Re(a);r.success(e?.message||"代理配置已更新")}catch{}}async function Ve(){const a={kdocs_enabled:j.value?1:0,kdocs_doc_url:z.value.trim(),kdocs_default_unit:O.value.trim(),kdocs_sheet_name:R.value.trim(),kdocs_sheet_index:Number(W.value)||0,kdocs_unit_column:G.value.trim().toUpperCase(),kdocs_image_column:J.value.trim().toUpperCase(),kdocs_admin_notify_enabled:X.value?1:0,kdocs_admin_notify_email:Y.value.trim()};try{const e=await ae(a);r.success(e?.message||"表格配置已更新")}catch{}}async function se(){if(!P.value){P.value=!0,m("正在刷新状态");try{b.value=await de({live:1}),m("状态已刷新")}catch{m("刷新失败,请稍后重试")}finally{P.value=!1}}}async function ce(){try{const a=await de({live:1});b.value=a,(a?.logged_in===!0||a?.last_login_ok===!0)&&(r.success("扫码成功,已登录"),m("扫码成功,已登录"),C.value=!1,le())}catch{}}function we(){le(),re.value=!0,m("扫码检测中"),ce(),ee=setInterval(ce,2e3)}function le(){ee&&(clearInterval(ee),ee=null),re.value=!1}async function Ue(){if(!S.value){S.value=!0,m("正在获取二维码");try{h.value="";const a=await je();if(h.value=a?.qr_image||"",!h.value){if(a?.logged_in){r.success("当前已登录,无需扫码"),m("当前已登录,无需扫码"),await se();return}r.warning("未获取到二维码"),m("未获取到二维码");return}m("二维码已获取"),C.value=!0}catch{m("获取二维码失败")}finally{S.value=!1}}}async function Ce(){if(!I.value){I.value=!0,m("正在清除登录态");try{await ze(),C.value=!1,h.value="",r.success("登录态已清除"),m("登录态已清除"),await se()}catch{m("清除登录态失败")}finally{I.value=!1}}}$e(C,a=>{a?we():le()}),Le(()=>{le()});async function he(){if(!x.value.trim()){r.error("请先输入代理API地址");return}try{const a=await We({api_url:x.value.trim()});await ne.alert(a?.message||"测试完成","代理测试",{confirmButtonText:"知道了"})}catch{}}async function Pe(){const a=Number(F.value),e=Number(M.value);if(!Number.isFinite(a)||a<1){r.error("每小时注册限制必须大于0");return}if(!Number.isFinite(e)||e<0){r.error("VIP天数不能为负数");return}const d={auto_approve_enabled:Q.value?1:0,auto_approve_hourly_limit:a,auto_approve_vip_days:e};try{const i=await ae(d);r.success(i?.message||"注册设置已保存")}catch{}}return He(ie),(a,e)=>{const d=v("el-button"),i=v("el-input-number"),u=v("el-form-item"),K=v("el-form"),E=v("el-card"),N=v("el-switch"),Se=v("el-time-picker"),me=v("el-option"),Ie=v("el-select"),Ne=v("el-checkbox"),Ae=v("el-checkbox-group"),V=v("el-input"),Be=v("el-dialog"),Te=qe("loading");return Qe((f(),g("div",Ge,[s("div",Je,[e[25]||(e[25]=s("h2",null,"系统配置",-1)),s("div",null,[l(d,{onClick:ie},{default:o(()=>[...e[24]||(e[24]=[c("刷新",-1)])]),_:1})])]),l(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[e[30]||(e[30]=s("h3",{class:"section-title"},"系统并发配置",-1)),l(K,{"label-width":"130px"},{default:o(()=>[l(u,{label:"全局最大并发数"},{default:o(()=>[l(i,{modelValue:U.value,"onUpdate:modelValue":e[0]||(e[0]=t=>U.value=t),min:1,max:200},null,8,["modelValue"]),e[26]||(e[26]=s("div",{class:"help"},"同时最多运行的账号数量(浏览任务使用 API 方式,资源占用较低)。",-1))]),_:1}),l(u,{label:"单账号最大并发数"},{default:o(()=>[l(i,{modelValue:$.value,"onUpdate:modelValue":e[1]||(e[1]=t=>$.value=t),min:1,max:50},null,8,["modelValue"]),e[27]||(e[27]=s("div",{class:"help"},"单个账号同时最多运行的任务数量(建议设为 1。",-1))]),_:1}),l(u,{label:"截图最大并发数"},{default:o(()=>[l(i,{modelValue:L.value,"onUpdate:modelValue":e[2]||(e[2]=t=>L.value=t),min:1,max:50},null,8,["modelValue"]),e[28]||(e[28]=s("div",{class:"help"},"同时进行截图的最大数量wkhtmltoimage 资源占用较低,可按需提高)。",-1))]),_:1})]),_:1}),l(d,{type:"primary",onClick:be},{default:o(()=>[...e[29]||(e[29]=[c("保存并发配置",-1)])]),_:1})]),_:1}),l(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[e[35]||(e[35]=s("h3",{class:"section-title"},"定时任务配置",-1)),l(K,{"label-width":"130px"},{default:o(()=>[l(u,{label:"启用定时任务"},{default:o(()=>[l(N,{modelValue:y.value,"onUpdate:modelValue":e[3]||(e[3]=t=>y.value=t)},null,8,["modelValue"]),e[31]||(e[31]=s("div",{class:"help"},"开启后,系统会按计划自动执行浏览任务。",-1))]),_:1}),y.value?(f(),te(u,{key:0,label:"执行时间"},{default:o(()=>[l(Se,{modelValue:H.value,"onUpdate:modelValue":e[4]||(e[4]=t=>H.value=t),"value-format":"HH:mm",format:"HH:mm"},null,8,["modelValue"])]),_:1})):w("",!0),y.value?(f(),te(u,{key:1,label:"浏览类型"},{default:o(()=>[l(Ie,{modelValue:B.value,"onUpdate:modelValue":e[5]||(e[5]=t=>B.value=t),style:{width:"220px"}},{default:o(()=>[l(me,{label:"注册前未读",value:"注册前未读"}),l(me,{label:"应读",value:"应读"})]),_:1},8,["modelValue"])]),_:1})):w("",!0),y.value?(f(),te(u,{key:2,label:"执行日期"},{default:o(()=>[l(Ae,{modelValue:k.value,"onUpdate:modelValue":e[6]||(e[6]=t=>k.value=t)},{default:o(()=>[(f(),g(Fe,null,Me(pe,t=>l(Ne,{key:t.value,label:t.value},{default:o(()=>[c(oe(t.label),1)]),_:2},1032,["label"])),64))]),_:1},8,["modelValue"])]),_:1})):w("",!0),y.value?(f(),te(u,{key:3,label:"定时任务截图"},{default:o(()=>[l(N,{modelValue:T.value,"onUpdate:modelValue":e[7]||(e[7]=t=>T.value=t)},null,8,["modelValue"]),e[32]||(e[32]=s("div",{class:"help"},"开启后,定时任务执行时会生成截图。",-1))]),_:1})):w("",!0)]),_:1}),s("div",Xe,[l(d,{type:"primary",onClick:ge},{default:o(()=>[...e[33]||(e[33]=[c("保存定时任务配置",-1)])]),_:1}),l(d,{type:"success",plain:"",onClick:ke},{default:o(()=>[...e[34]||(e[34]=[c("立即执行",-1)])]),_:1})])]),_:1}),l(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[e[40]||(e[40]=s("h3",{class:"section-title"},"代理设置",-1)),l(K,{"label-width":"130px"},{default:o(()=>[l(u,{label:"启用IP代理"},{default:o(()=>[l(N,{modelValue:D.value,"onUpdate:modelValue":e[8]||(e[8]=t=>D.value=t)},null,8,["modelValue"]),e[36]||(e[36]=s("div",{class:"help"},"开启后所有浏览任务将通过代理IP访问失败自动重试3次。",-1))]),_:1}),l(u,{label:"代理API地址"},{default:o(()=>[l(V,{modelValue:x.value,"onUpdate:modelValue":e[9]||(e[9]=t=>x.value=t),placeholder:"http://api.xxx/Tools/IP.ashx?..."},null,8,["modelValue"]),e[37]||(e[37]=s("div",{class:"help"},"API 应返回IP:PORT例如 123.45.67.89:8888。",-1))]),_:1}),l(u,{label:"代理有效期(分钟)"},{default:o(()=>[l(i,{modelValue:q.value,"onUpdate:modelValue":e[10]||(e[10]=t=>q.value=t),min:1,max:60},null,8,["modelValue"])]),_:1})]),_:1}),s("div",Ye,[l(d,{type:"primary",onClick:xe},{default:o(()=>[...e[38]||(e[38]=[c("保存代理配置",-1)])]),_:1}),l(d,{onClick:he},{default:o(()=>[...e[39]||(e[39]=[c("测试代理",-1)])]),_:1})])]),_:1}),l(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[e[43]||(e[43]=s("h3",{class:"section-title"},"注册设置",-1)),l(K,{"label-width":"130px"},{default:o(()=>[l(u,{label:"注册赠送VIP"},{default:o(()=>[l(N,{modelValue:Q.value,"onUpdate:modelValue":e[11]||(e[11]=t=>Q.value=t)},null,8,["modelValue"]),e[41]||(e[41]=s("div",{class:"help"},"开启后新用户注册成功后将赠送下方设置的VIP天数注册已默认无需审核。",-1))]),_:1}),l(u,{label:"每小时注册限制"},{default:o(()=>[l(i,{modelValue:F.value,"onUpdate:modelValue":e[12]||(e[12]=t=>F.value=t),min:1,max:1e4},null,8,["modelValue"])]),_:1}),l(u,{label:"注册赠送VIP天数"},{default:o(()=>[l(i,{modelValue:M.value,"onUpdate:modelValue":e[13]||(e[13]=t=>M.value=t),min:0,max:999999},null,8,["modelValue"])]),_:1})]),_:1}),l(d,{type:"primary",onClick:Pe},{default:o(()=>[...e[42]||(e[42]=[c("保存注册设置",-1)])]),_:1})]),_:1}),l(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[e[51]||(e[51]=s("h3",{class:"section-title"},"金山文档上传",-1)),l(K,{"label-width":"130px"},{default:o(()=>[l(u,{label:"启用上传"},{default:o(()=>[l(N,{modelValue:j.value,"onUpdate:modelValue":e[14]||(e[14]=t=>j.value=t)},null,8,["modelValue"]),e[44]||(e[44]=s("div",{class:"help"},"表格结构变化时可先关闭,避免错误上传。",-1))]),_:1}),l(u,{label:"文档链接"},{default:o(()=>[l(V,{modelValue:z.value,"onUpdate:modelValue":e[15]||(e[15]=t=>z.value=t),placeholder:"https://kdocs.cn/..."},null,8,["modelValue"])]),_:1}),l(u,{label:"默认县区"},{default:o(()=>[l(V,{modelValue:O.value,"onUpdate:modelValue":e[16]||(e[16]=t=>O.value=t),placeholder:"如:道县(用户可覆盖)"},null,8,["modelValue"])]),_:1}),l(u,{label:"Sheet名称"},{default:o(()=>[l(V,{modelValue:R.value,"onUpdate:modelValue":e[17]||(e[17]=t=>R.value=t),placeholder:"留空使用第一个Sheet"},null,8,["modelValue"])]),_:1}),l(u,{label:"Sheet序号"},{default:o(()=>[l(i,{modelValue:W.value,"onUpdate:modelValue":e[18]||(e[18]=t=>W.value=t),min:0,max:50},null,8,["modelValue"]),e[45]||(e[45]=s("div",{class:"help"},"0 表示第一个Sheet。",-1))]),_:1}),l(u,{label:"县区列"},{default:o(()=>[l(V,{modelValue:G.value,"onUpdate:modelValue":e[19]||(e[19]=t=>G.value=t),placeholder:"A",style:{"max-width":"120px"}},null,8,["modelValue"])]),_:1}),l(u,{label:"图片列"},{default:o(()=>[l(V,{modelValue:J.value,"onUpdate:modelValue":e[20]||(e[20]=t=>J.value=t),placeholder:"D",style:{"max-width":"120px"}},null,8,["modelValue"])]),_:1}),l(u,{label:"管理员通知"},{default:o(()=>[l(N,{modelValue:X.value,"onUpdate:modelValue":e[21]||(e[21]=t=>X.value=t)},null,8,["modelValue"])]),_:1}),l(u,{label:"通知邮箱"},{default:o(()=>[l(V,{modelValue:Y.value,"onUpdate:modelValue":e[22]||(e[22]=t=>Y.value=t),placeholder:"admin@example.com"},null,8,["modelValue"])]),_:1})]),_:1}),s("div",Ze,[l(d,{type:"primary",onClick:Ve},{default:o(()=>[...e[46]||(e[46]=[c("保存表格配置",-1)])]),_:1}),l(d,{loading:P.value,disabled:ue.value&&!P.value,onClick:se},{default:o(()=>[...e[47]||(e[47]=[c(" 刷新状态 ",-1)])]),_:1},8,["loading","disabled"]),l(d,{type:"success",plain:"",loading:S.value,disabled:ue.value&&!S.value,onClick:Ue},{default:o(()=>[...e[48]||(e[48]=[c(" 获取二维码 ",-1)])]),_:1},8,["loading","disabled"]),l(d,{type:"danger",plain:"",loading:I.value,disabled:ue.value&&!I.value,onClick:Ce},{default:o(()=>[...e[49]||(e[49]=[c(" 清除登录 ",-1)])]),_:1},8,["loading","disabled"])]),s("div",el,[e[50]||(e[50]=c(" 登录状态: ",-1)),b.value.last_login_ok===!0?(f(),g("span",ll,"已登录")):b.value.login_required?(f(),g("span",al,"需要扫码")):(f(),g("span",tl,"未知")),c(" · 待上传 "+oe(b.value.queue_size||0)+" ",1),b.value.last_error?(f(),g("span",ol,"· 最近错误:"+oe(b.value.last_error),1)):w("",!0)]),Z.value?(f(),g("div",nl,"操作提示:"+oe(Z.value),1)):w("",!0)]),_:1}),l(Be,{modelValue:C.value,"onUpdate:modelValue":e[23]||(e[23]=t=>C.value=t),title:"扫码登录",width:"min(420px, 92vw)"},{default:o(()=>[s("div",ul,[h.value?(f(),g("img",{key:0,src:`data:image/png;base64,${h.value}`,alt:"KDocs QR"},null,8,sl)):w("",!0),e[52]||(e[52]=s("div",{class:"help"},"请使用管理员微信扫码登录。",-1))])]),_:1},8,["modelValue"])])),[[Te,_.value]])}}},cl=Ee(dl,[["__scopeId","data-v-682b6c42"]]);export{cl as default};