18 lines
15 KiB
JavaScript
18 lines
15 KiB
JavaScript
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};
|