You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
7.4 KiB

import{g as H,B as I,c as o,p as u,H as E,a as t,l as S,F as h,r as g,t as i,m as D,v as y,q as P,O,x as d,y as G,o as a,d as J}from"./AL6uUoB7.js";import{u as Q}from"./BgfmgSoF.js";import{u as R}from"./D_urMdl7.js";import"./mydnAiU4.js";const W={class:"flex items-center justify-between mb-5"},X={class:"bg-white rounded-xl shadow-sm border border-slate-100"},Y={class:"overflow-x-auto"},Z={class:"table table-zebra"},tt={key:0},et={key:1},st={class:"font-mono text-sm"},nt={class:"font-medium"},lt={class:"badge badge-ghost badge-sm"},ot={class:"text-sm"},at={class:"text-sm"},it={key:1,class:"text-slate-300"},rt={class:"text-sm text-slate-500"},dt={class:"flex gap-1"},ut=["onClick"],ct=["onClick"],mt={class:"flex items-center gap-3 mb-5"},pt={class:"text-lg font-semibold text-slate-800"},bt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},vt={class:"form-control mb-4"},ft={class:"form-control mb-4"},xt=["value"],ht={class:"form-control mb-4"},gt={class:"form-control mb-4"},yt={class:"form-control mb-6"},wt={class:"space-y-2"},_t={key:0,class:"text-xs text-slate-400"},kt={class:"badge badge-lg gap-1 bg-slate-100 border-slate-200"},Ct=["onClick"],Nt={class:"flex gap-2 mt-2"},Vt=["onKeydown"],Bt={class:"flex gap-3"},Mt=["disabled"],Ft=H({__name:"factory",setup($t){const{webApi:b}=Q(),{success:B,error:w,warn:F}=R(),v=d("list"),f=d([]),x=d([]),_=d(!1),k=d(!1),m=d(!1),r=d([]),p=d(""),l=G({id:0,brand:"",providerid:0,description:"",sharepct:0});function L(s){return((Number(s)||0)/100).toFixed(2)+"%"}function j(s){return s?Number(s).toString(16).toUpperCase():""}function C(s){return(s||"").split(",").map(e=>e.trim()).filter(Boolean)}function K(s){if(!s)return"-";const e=x.value.find(n=>n.id===s);return e?e.name:"方案商#"+s}async function T(){try{const s=await b("getsolutionproviders",{});x.value=s?.providers??[]}catch{x.value=[]}}async function N(){_.value=!0;try{await T();const s=await b("getbrands",{});f.value=s?.brands??[]}catch(s){w(s?.message??"获取品牌商列表失败"),f.value=[]}finally{_.value=!1}}function V(){v.value="list",N()}function M(s){s?(m.value=!0,l.id=s.id,l.brand=s.brand||"",l.providerid=s.providerid||0,l.description=s.description||"",l.sharepct=(Number(s.sharerate)||0)/100,r.value=C(s.contactmails)):(m.value=!1,l.id=0,l.brand="",l.providerid=0,l.description="",l.sharepct=0,r.value=[]),p.value="",v.value="form"}function $(){const s=p.value.trim();if(s){if(r.value.includes(s)){F("邮箱已存在");return}r.value.push(s),p.value=""}}function q(s){r.value.splice(s,1)}async function z(){k.value=!0;try{const s={brand:{brand:l.brand,providerid:Number(l.providerid)||0,description:l.description,sharerate:Math.round((Number(l.sharepct)||0)*100),contactmails:r.value.join(",")}};m.value&&(s.brand.id=Number(l.id)),await b(m.value?"updatebrand":"addbrand",s),B("保存成功"),V()}catch(s){w(s?.message??"保存失败")}finally{k.value=!1}}function A(s){window.confirm(`确定删除品牌商 "${s.brand}" 吗?`)&&b("delbrand",{id:s.id}).then(()=>{B("删除成功"),N()}).catch(e=>w(e?.message??"删除失败"))}return I(N),(s,e)=>(a(),o("div",null,[u(t("div",null,[t("div",W,[e[8]||(e[8]=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]=n=>M())},"+ 新增品牌商")]),t("div",X,[t("div",Y,[t("table",Z,[e[11]||(e[11]=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,[_.value?(a(),o("tr",tt,[...e[9]||(e[9]=[t("td",{colspan:"7",class:"text-center py-8"},[t("span",{class:"loading loading-spinner loading-sm"})],-1)])])):f.value.length?S("",!0):(a(),o("tr",et,[...e[10]||(e[10]=[t("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"暂无数据",-1)])])),(a(!0),o(h,null,g(f.value,n=>(a(),o("tr",{key:n.id},[t("td",st,i(j(n.id)),1),t("td",nt,i(n.brand),1),t("td",null,[t("span",lt,i(K(n.providerid)),1)]),t("td",ot,i(L(n.sharerate)),1),t("td",at,[C(n.contactmails).length?(a(!0),o(h,{key:0},g(C(n.contactmails),(c,U)=>(a(),o("span",{key:U,class:"badge badge-ghost badge-sm mr-1"},i(c),1))),128)):(a(),o("span",it,"-"))]),t("td",rt,i(n.productlists||""),1),t("td",null,[t("div",dt,[t("button",{class:"btn btn-ghost btn-xs",onClick:c=>M(n)},"编辑",8,ut),t("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:c=>A(n)},"删除",8,ct)])])]))),128))])])])])],512),[[E,v.value==="list"]]),u(t("div",null,[t("div",mt,[t("button",{class:"btn btn-ghost btn-sm",onClick:e[1]||(e[1]=n=>V())},"← 返回列表"),t("h2",pt,i(m.value?"编辑品牌商":"新增品牌商"),1)]),t("div",bt,[t("form",{onSubmit:D(z,["prevent"])},[t("div",vt,[e[12]||(e[12]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"品牌名称 *")],-1)),u(t("input",{"onUpdate:modelValue":e[2]||(e[2]=n=>l.brand=n),type:"text",class:"input input-bordered w-full",required:""},null,512),[[y,l.brand]])]),t("div",ft,[e[14]||(e[14]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"归属方案商")],-1)),u(t("select",{"onUpdate:modelValue":e[3]||(e[3]=n=>l.providerid=n),class:"select select-bordered w-full"},[e[13]||(e[13]=t("option",{value:0},"请选择方案商",-1)),(a(!0),o(h,null,g(x.value,n=>(a(),o("option",{key:n.id,value:n.id},i(n.name),9,xt))),128))],512),[[P,l.providerid,void 0,{number:!0}]])]),t("div",ht,[e[15]||(e[15]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"分成比例(%)")],-1)),u(t("input",{"onUpdate:modelValue":e[4]||(e[4]=n=>l.sharepct=n),type:"number",step:"0.01",min:"0",max:"100",class:"input input-bordered w-full"},null,512),[[y,l.sharepct,void 0,{number:!0}]]),e[16]||(e[16]=t("span",{class:"label-text-alt text-slate-400 mt-1"},"平台从订单实付里分给该品牌商的总提成;其名下渠道商再从这份里切自己的比例。",-1))]),t("div",gt,[e[17]||(e[17]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"描述")],-1)),u(t("textarea",{"onUpdate:modelValue":e[5]||(e[5]=n=>l.description=n),class:"textarea textarea-bordered w-full",rows:"3"},null,512),[[y,l.description]])]),t("div",yt,[e[19]||(e[19]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"联系邮箱")],-1)),t("div",wt,[r.value.length?S("",!0):(a(),o("p",_t,"暂无邮箱")),(a(!0),o(h,null,g(r.value,(n,c)=>(a(),o("div",{key:c,class:"flex items-center gap-2"},[t("span",kt,[e[18]||(e[18]=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)),J(" "+i(n),1)]),t("button",{type:"button",class:"btn btn-ghost btn-xs text-red-400 hover:text-red-600",onClick:U=>q(c)},"×",8,Ct)]))),128))]),t("div",Nt,[u(t("input",{"onUpdate:modelValue":e[6]||(e[6]=n=>p.value=n),type:"email",class:"input input-bordered input-sm flex-1",placeholder:"输入邮箱地址",onKeydown:O(D($,["prevent"]),["enter"])},null,40,Vt),[[y,p.value]]),t("button",{type:"button",class:"btn btn-outline btn-sm btn-primary",onClick:$},"添加")])]),t("div",Bt,[t("button",{type:"button",class:"btn btn-ghost",onClick:e[7]||(e[7]=n=>V())},"取消"),t("button",{type:"submit",class:"btn btn-primary text-white",disabled:k.value},"保存",8,Mt)])],32)])],512),[[E,v.value==="form"]])]))}});export{Ft as default};