import{g as K,j as T,c as a,k as c,v as M,a as t,l as N,F as C,r as V,t as r,A as U,m as v,E as z,s as d,x as I,o as n,d as q}from"./96IDI_OR.js";import{u as H}from"./Do83zqYq.js";import{u as G}from"./CVUxyiJx.js";const J={class:"flex items-center justify-between mb-5"},O={class:"bg-white rounded-xl shadow-sm border border-slate-100"},P={class:"overflow-x-auto"},Q={class:"table table-zebra"},R={key:0},W={key:1},X={class:"font-mono text-sm"},Y={class:"font-medium"},Z={class:"badge badge-ghost badge-sm"},tt={class:"text-sm"},et={key:1,class:"text-slate-300"},st={class:"text-sm text-slate-500"},lt={class:"flex gap-1"},ot=["onClick"],at=["onClick"],nt={class:"flex items-center gap-3 mb-5"},it={class:"text-lg font-semibold text-slate-800"},rt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},dt={class:"form-control mb-4"},ut={class:"form-control mb-4"},ct={class:"form-control mb-4"},mt={class:"form-control mb-6"},bt={class:"space-y-2"},pt={key:0,class:"text-xs text-slate-400"},ft={class:"badge badge-lg gap-1 bg-slate-100 border-slate-200"},vt=["onClick"],yt={class:"flex gap-2 mt-2"},gt=["onKeydown"],xt={class:"flex gap-3"},ht=["disabled"],Vt=K({__name:"factory",setup(_t){const{webApi:y}=H(),{success:F,error:g,warn:j}=G(),p=d("list"),f=d([]),x=d(!1),h=d(!1),m=d(!1),i=d([]),b=d(""),o=I({id:0,factory:"",factoryflag:"",description:""});function D(s){return s?Number(s).toString(16).toUpperCase():""}function _(s){return(s||"").split(",").map(e=>e.trim()).filter(Boolean)}async function w(){x.value=!0;try{const s=await y("getfactorys",{});f.value=s?.factorys??[]}catch(s){g(s?.message??"获取厂家列表失败"),f.value=[]}finally{x.value=!1}}function k(){p.value="list",w()}function $(s){s?(m.value=!0,o.id=s.id,o.factory=s.factory||"",o.factoryflag=s.factoryflag||"",o.description=s.description||"",i.value=_(s.contactmails)):(m.value=!1,o.id=0,o.factory="",o.factoryflag="",o.description="",i.value=[]),b.value="",p.value="form"}function E(){const s=b.value.trim();if(s){if(i.value.includes(s)){j("邮箱已存在");return}i.value.push(s),b.value=""}}function L(s){i.value.splice(s,1)}async function S(){h.value=!0;try{const s={Factory:{factory:o.factory,factoryflag:o.factoryflag,description:o.description,contactmails:i.value.join(",")}};m.value&&(s.Factory.id=Number(o.id)),await y(m.value?"updatefactory":"addfactory",s),F("保存成功"),k()}catch(s){g(s?.message??"保存失败")}finally{h.value=!1}}function A(s){window.confirm(`确定删除工厂 "${s.factory}" 吗?`)&&y("delfactory",{id:s.id}).then(()=>{F("删除成功"),w()}).catch(e=>g(e?.message??"删除失败"))}return T(w),(s,e)=>(n(),a("div",null,[c(t("div",null,[t("div",J,[e[7]||(e[7]=t("h2",{class:"text-lg font-semibold text-slate-800"},"厂家列表",-1)),t("button",{class:"btn btn-primary btn-sm text-white",onClick:e[0]||(e[0]=l=>$())},"+ 新增工厂")]),t("div",O,[t("div",P,[t("table",Q,[e[10]||(e[10]=t("thead",null,[t("tr",null,[t("th",null,"ID"),t("th",null,"工厂名称"),t("th",null,"标识"),t("th",null,"联系邮箱"),t("th",null,"批次"),t("th",null,"产品"),t("th",null,"操作")])],-1)),t("tbody",null,[x.value?(n(),a("tr",R,[...e[8]||(e[8]=[t("td",{colspan:"7",class:"text-center py-8"},[t("span",{class:"loading loading-spinner loading-sm"})],-1)])])):f.value.length?N("",!0):(n(),a("tr",W,[...e[9]||(e[9]=[t("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"暂无数据",-1)])])),(n(!0),a(C,null,V(f.value,l=>(n(),a("tr",{key:l.id},[t("td",X,r(D(l.id)),1),t("td",Y,r(l.factory),1),t("td",null,[t("span",Z,r(l.factoryflag),1)]),t("td",tt,[_(l.contactmails).length?(n(!0),a(C,{key:0},V(_(l.contactmails),(u,B)=>(n(),a("span",{key:B,class:"badge badge-ghost badge-sm mr-1"},r(u),1))),128)):(n(),a("span",et,"-"))]),t("td",null,r(l.probatch||0),1),t("td",st,r(l.productlists||""),1),t("td",null,[t("div",lt,[t("button",{class:"btn btn-ghost btn-xs",onClick:u=>$(l)},"编辑",8,ot),t("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:u=>A(l)},"删除",8,at)])])]))),128))])])])])],512),[[M,p.value==="list"]]),c(t("div",null,[t("div",nt,[t("button",{class:"btn btn-ghost btn-sm",onClick:e[1]||(e[1]=l=>k())},"← 返回列表"),t("h2",it,r(m.value?"编辑工厂":"新增工厂"),1)]),t("div",rt,[t("form",{onSubmit:U(S,["prevent"])},[t("div",dt,[e[11]||(e[11]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"工厂名称 *")],-1)),c(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>o.factory=l),type:"text",class:"input input-bordered w-full",required:""},null,512),[[v,o.factory]])]),t("div",ut,[e[12]||(e[12]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"工厂标识")],-1)),c(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>o.factoryflag=l),type:"text",class:"input input-bordered w-full"},null,512),[[v,o.factoryflag]])]),t("div",ct,[e[13]||(e[13]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"描述")],-1)),c(t("textarea",{"onUpdate:modelValue":e[4]||(e[4]=l=>o.description=l),class:"textarea textarea-bordered w-full",rows:"3"},null,512),[[v,o.description]])]),t("div",mt,[e[15]||(e[15]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"联系邮箱")],-1)),t("div",bt,[i.value.length?N("",!0):(n(),a("p",pt,"暂无邮箱")),(n(!0),a(C,null,V(i.value,(l,u)=>(n(),a("div",{key:u,class:"flex items-center gap-2"},[t("span",ft,[e[14]||(e[14]=t("svg",{class:"h-3 w-3 text-slate-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})],-1)),q(" "+r(l),1)]),t("button",{type:"button",class:"btn btn-ghost btn-xs text-red-400 hover:text-red-600",onClick:B=>L(u)},"×",8,vt)]))),128))]),t("div",yt,[c(t("input",{"onUpdate:modelValue":e[5]||(e[5]=l=>b.value=l),type:"email",class:"input input-bordered input-sm flex-1",placeholder:"输入邮箱地址",onKeydown:z(U(E,["prevent"]),["enter"])},null,40,gt),[[v,b.value]]),t("button",{type:"button",class:"btn btn-outline btn-sm btn-primary",onClick:E},"添加")])]),t("div",xt,[t("button",{type:"button",class:"btn btn-ghost",onClick:e[6]||(e[6]=l=>k())},"取消"),t("button",{type:"submit",class:"btn btn-primary text-white",disabled:h.value},"保存",8,ht)])],32)])],512),[[M,p.value==="form"]])]))}});export{Vt as default};