Files
zsglpt/static/admin/assets/SystemPage-B5EipiDb.js

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