import{g as W,j as X,c as i,a as t,k as a,p as U,F as Q,r as N,v as T,t as l,l as Z,D as tt,m as b,q as et,s as d,x as E,o as u}from"./CfpW9SkI.js";import{u as st}from"./DSu8q42f.js";import{u as ot}from"./CMwGY1Mu.js";import"./DL330dAC.js";const nt={class:"space-y-6"},lt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-4"},at={class:"flex items-end gap-3 flex-wrap"},rt={class:"form-control"},it=["value"],dt={class:"form-control"},ut=["disabled"],ct={class:"bg-white rounded-xl shadow-sm border border-slate-100"},mt={class:"overflow-x-auto"},bt={class:"table table-zebra"},pt={key:0},vt={key:1},ft={colspan:"9",class:"text-center text-slate-400 py-8"},xt={class:"font-mono text-base font-bold text-indigo-700"},gt={class:"text-sm"},wt={class:"text-sm"},yt={class:"text-sm text-slate-500"},ht={class:"text-sm"},kt={class:"text-sm"},_t={class:"text-sm"},Ct={key:0,class:"badge badge-success badge-sm text-white"},Vt={key:1,class:"badge badge-ghost badge-sm"},Mt={class:"flex gap-1"},Dt=["onClick"],Ft=["onClick"],Ut=["onClick"],Qt=["onClick"],Nt={class:"flex items-center gap-3 mb-5"},Tt={class:"text-lg font-semibold text-slate-800"},qt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},Lt={class:"form-control mb-4"},St=["value"],Et={class:"form-control mb-4"},$t={class:"grid grid-cols-3 gap-3 mb-4"},jt={class:"form-control"},Rt={class:"form-control"},It={class:"form-control"},Bt={class:"grid grid-cols-2 gap-3 mb-4"},Pt={class:"form-control"},zt={class:"form-control"},At={class:"form-control mb-6"},Ht={class:"label cursor-pointer justify-start gap-3"},Yt={class:"modal-box max-w-md"},Gt={class:"flex flex-col items-center gap-4"},Jt={class:"text-center"},Kt={class:"font-mono text-2xl font-bold text-indigo-700 tracking-widest"},Ot="https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs/qrcode.min.js",se=W({__name:"code",setup(Wt){const{webApi:c}=st(),{success:g,error:p,warn:w}=ot(),y=d("list"),C=d(!1),v=d(!1),m=d(0),V=d(-1),h=d([]),M=d([]),k=d([]),D=E({}),n=E({code:"",productid:0,remark:"",bindrewardvpitime:0,bindrewardtranslate:0,bindrewardmeeting:0,maxuses:0,expire:"",disabled:!1});function $(o){return o?new Date(o*1e3).toLocaleString():"永久"}function j(o){if(!o)return"";const e=new Date(o*1e3),s=r=>r<10?"0"+r:""+r;return e.getFullYear()+"-"+s(e.getMonth()+1)+"-"+s(e.getDate())+"T"+s(e.getHours())+":"+s(e.getMinutes())}function R(o){return o?Math.floor(new Date(o).getTime()/1e3):0}function I(o){return D[o.factoryid]||(o.factoryid?"厂家#"+o.factoryid:"-")}function B(o){const e=k.value.find(s=>s.id===o.productid);return e?e.devicename||"#"+o.productid:o.productid?"#"+o.productid:"-"}function _(){y.value="list",f()}function P(){_()}async function f(){C.value=!0;try{const o=await c("getfactorypubliccodes",{factoryid:m.value,status:V.value});h.value=o?.codes??[]}catch(o){p(o?.message??"获取公码列表失败"),h.value=[]}finally{C.value=!1}}function q(o){if(!m.value){w("请先选择厂家");return}o?(v.value=!0,n.code=o.code,n.productid=o.productid||0,n.remark=o.remark||"",n.bindrewardvpitime=o.bindrewardvpitime||0,n.bindrewardtranslate=o.bindrewardtranslate||0,n.bindrewardmeeting=o.bindrewardmeeting||0,n.maxuses=o.maxuses||0,n.expire=j(o.expiretime),n.disabled=o.status===1):(v.value=!1,n.code="",n.productid=0,n.remark="",n.bindrewardvpitime=0,n.bindrewardtranslate=0,n.bindrewardmeeting=0,n.maxuses=0,n.expire="",n.disabled=!1),y.value="form"}async function z(){const o={productid:Number(n.productid)||0,remark:n.remark,maxuses:Number(n.maxuses)||0,expiretime:R(n.expire),bindrewardvpitime:Number(n.bindrewardvpitime)||0,bindrewardtranslate:Number(n.bindrewardtranslate)||0,bindrewardmeeting:Number(n.bindrewardmeeting)||0};try{if(v.value)o.code=n.code,o.status=n.disabled?1:0,await c("updatefactorypubliccode",o),g("保存成功");else{o.factoryid=m.value;const e=await c("createfactorypubliccode",o);g("新公码已生成:"+(e?.code?.code||""))}_()}catch(e){p(e?.message??"保存失败")}}async function A(o){const e=o.status===0?1:0;try{await c("updatefactorypubliccode",{code:o.code,productid:o.productid||0,remark:o.remark||"",status:e,maxuses:o.maxuses||0,expiretime:o.expiretime||0,bindrewardvpitime:o.bindrewardvpitime||0,bindrewardtranslate:o.bindrewardtranslate||0,bindrewardmeeting:o.bindrewardmeeting||0}),g(e===1?"已停用":"已启用"),f()}catch(s){p(s?.message??"操作失败")}}function H(o){window.confirm(`确定删除公码 "${o}" 吗?删除后该码无法再被领取(已领取记录保留)`)&&c("delfactorypubliccode",{code:o}).then(()=>{g("删除成功"),f()}).catch(e=>p(e?.message??"删除失败"))}const L=d(null),F=d(null),x=d("");function Y(){return new Promise((o,e)=>{const s=window;if(s.QRCode){o(s.QRCode);return}const r=document.createElement("script");r.src=Ot,r.onload=()=>o(s.QRCode),r.onerror=()=>e(new Error("二维码库加载失败")),document.head.appendChild(r)})}async function G(o){x.value=o,L.value?.showModal();let e;try{e=await Y()}catch{p("二维码库加载失败");return}const s=F.value;!s||!e||(s.innerHTML="",new e(s,{text:o,width:240,height:240,colorDark:"#1E293B",colorLight:"#FFFFFF",correctLevel:e.CorrectLevel.H}))}function S(){const o=F.value;if(!o)return"";const e=o.querySelector("canvas");if(e)return e.toDataURL("image/png");const s=o.querySelector("img");return s?s.src:""}function J(){const o=S();if(!o){w("二维码尚未生成");return}const e=document.createElement("a");e.href=o,e.download="publiccode_"+x.value+".png",document.body.appendChild(e),e.click(),document.body.removeChild(e)}function K(){const o=S();if(!o){w("二维码尚未生成");return}const e=window.open("","_blank");if(!e){w("浏览器拦截了打印窗口");return}e.document.write("
新用户扫码领取奖励