1 |
- import{d as ce,aJ as te,r as k,aK as ve,aI as me,Z as fe,k as N,E as ye,j as _e,ai as y,o as i,c as m,U as s,O as l,a as w,u as a,D as oe,F as V,a8 as F,M as P,R as $,S as B,T as R,P as ke,V as be,ac as ge,ad as we,n as Ve}from"./vue.1RczIYhx.js";import{c as Te,b as xe,e as Fe,f as De,P as Be,h as he}from"./api.CH9lJPx3.js";import{u as E}from"./useResponse.DqThFJSa.js";import{X as q}from"./index.DYFzjhQc.js";import{h,Q as Se}from"./elementPlus.CXoFsoPv.js";import{_ as Ue}from"./_plugin-vue_export-helper.DlAUqK2U.js";const Oe={class:"drawer-container"},Ce={class:"m-5"},Pe={style:{"margin-bottom":"20px"}},Re={key:0,style:{"margin-bottom":"20px"}},je={key:1,class:"sku-text"},Ke={key:2,class:"ml-2"},Me={class:"sku-title"},Ne={class:"button-container"},X=3,Ee=ce({__name:"SkuBuilder",props:te({rowData:Object,skuData:Object},{modelValue:{default:!1},modelModifiers:{}}),emits:te(["refresh"],["update:modelValue"]),setup(J,{emit:ae}){k(!1);const j=ve(J,"modelValue"),se=me("editDrawer"),le=J,{rowData:c,skuData:D}=le,Q=ae,T=k((c==null?void 0:c.brand.id)||""),_=k((c==null?void 0:c.kind.id)||""),W=k([]),Z=k([]),I=k([]),S=k({}),o=fe({powerType:"",versionType:"",version:1,versionFeature:""}),G=k([]),H=k([]),L=N(()=>c!==void 0),ne=[{label:"无",value:""},{label:"T",value:"T"},{label:"V",value:"V"}],U=k(),z=N(()=>{const n=[];for(const e of H.value){let r="";for(const u of e)r+=o[u]||"*";n.push(r)}for(const e of["powerType"]){const r=o[e];r&&n.push(r)}return o.versionType&&n.push(o.versionType+o.version),n.join("-")}),re=N(()=>c&&c.status===X?!0:!_.value||S.value.status!==X),A=N(()=>{const n={};for(const e of I.value){const r=e.section;n[r]=[];for(const u of e.items){const v=u.attr.key+"_"+u.id,d=o[v]||"*",b=u.attr_dict.find(f=>f.value===d);b&&n[r].push(b.id)}}return n});async function Y(){var b;if(!_.value)return;const n=[],e={powerType:"",versionType:"",version:1,versionFeature:""},r=[],u=await E(Te,_.value);S.value=u.data,S.value.status!==X&&h.warning("警告:尚未发布的产品种类!!!");const v=q.groupBy(u.data.RelatedAttrs,"section"),d=q.sortBy(Object.keys(v),f=>f);for(const f of d){const g=q.sortBy(v[f],"order");n.push({section:f,items:g});const K=[];let O=[];D&&(O=D[`section${f}`]||[]);for(const x of g){const M=x.attr.key+"_"+x.id;let t="";x.attr_dict.some(p=>O.includes(p.id))&&(t=((b=x.attr_dict.find(p=>O.includes(p.id)))==null?void 0:b.value)||""),o[M]=t,K.push(M)}r.push(K)}D&&L.value&&(T.value=c.brand.id,e.powerType=D.optional.powerType||"",e.versionType=D.optional.versionType||"",e.version=D.optional.version||1,e.versionFeature=c.version_feature||""),Object.assign(o,e),I.value=n,H.value=r}async function ie(){const n=await E(xe,{key:"power"});(!n||n.data.total===0)&&h({type:"warning",message:"警告:未找到产品属性:power(电源规格)!请在产品属性中定义标识为power的电源规格属性!"});const e=n.data[0].attr_dict;e.unshift({label:"无",value:""}),G.value=e}async function ee(n,e){const r={section1:A.value[1]||[],section2:A.value[2]||[],section3:A.value[3]||[]},u={powerType:o.powerType,versionType:o.versionType||null,version:o.versionType===""?null:o.version||null};if(L.value&&!e){try{const v={sku:z.value,kind:_.value,brand:T.value,version_feature:o.versionFeature,sku_selection:{...r,optional:u}},d=await Be(c.id,v);h({message:d.msg,type:"success"}),j.value=!1,Q("refresh")}catch(v){console.error("更新操作失败:",v)}return}U.value.validate(async v=>{if(v)if(S.value.status!==3)h({message:"此产品种类尚未发布!",type:"warning"});else try{const d=await he({sku:z.value,kind:_.value,brand:T.value,version_feature:o.versionFeature,sku_selection:{...r,optional:u}});d.code===2e3&&h({message:d.msg,type:"success"}),j.value=!1,Q("refresh")}catch(d){h.error({message:d.msg})}else return!1})}async function ue(){await Ve(),U.value&&(U.value.resetFields(),await Y())}function de(){o.version===1&&U.value.clearValidate("versionFeature")}async function pe(){W.value=(await E(Fe)).data,Z.value=(await E(De)).data}return ye(()=>{Y()}),_e(()=>{pe(),ie()}),(n,e)=>{const r=y("el-option"),u=y("el-select"),v=y("el-check-tag"),d=y("el-divider"),b=y("el-radio"),f=y("el-radio-group"),g=y("el-form-item"),K=y("el-input-number"),O=y("el-input"),x=y("el-button"),M=y("el-drawer");return i(),m("div",Oe,[s(M,{ref_key:"editDrawer",ref:se,modelValue:j.value,"onUpdate:modelValue":e[8]||(e[8]=t=>j.value=t),"close-on-click-modal":!1,"close-on-press-escape":!1,size:"45%"},{title:l(()=>e[9]||(e[9]=[w("span",{style:{"font-size":"16px","font-weight":"bold"}},"SKU生成器",-1)])),default:l(()=>[w("div",Ce,[w("div",Pe,[e[10]||(e[10]=w("span",{class:"select-container"},"产品品牌:",-1)),s(u,{modelValue:a(T),"onUpdate:modelValue":e[0]||(e[0]=t=>oe(T)?T.value=t:null),placeholder:"请选择品牌",style:{width:"25%"}},{default:l(()=>[(i(!0),m(V,null,F(a(W),t=>(i(),P(r,{key:t.id,label:t.brand_name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),a(T)?(i(),m("div",Re,[e[11]||(e[11]=w("span",{class:"select-container"},"种类名称:",-1)),s(u,{modelValue:a(_),"onUpdate:modelValue":e[1]||(e[1]=t=>oe(_)?_.value=t:null),disabled:a(L),placeholder:"请选择产品种类",style:{width:"25%"},onChange:ue},{default:l(()=>[(i(!0),m(V,null,F(a(Z),t=>(i(),P(r,{key:t.id,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])])):$("",!0),a(_)?(i(),m("div",je,[s(v,{checked:"",style:{"pointer-events":"none"}},{default:l(()=>[B("SKU:"+R(a(z)),1)]),_:1}),s(d,{ref:"dividerContainer",style:{margin:"10px 0 12px 0"}},null,512)])):$("",!0),a(_)?(i(),m("div",Ke,[s(a(Se),{ref_key:"ruleFormRef",ref:U,model:a(o),"label-position":"right","label-suffix":":"},{default:l(()=>[(i(!0),m(V,null,F(a(I),t=>(i(),m(V,{key:t.section},[w("div",Me,"第"+R(t.section)+"部分",1),(i(!0),m(V,null,F(t.items,p=>(i(),P(g,{key:p.id,label:p.attr.name,prop:p.attr.key+"_"+p.id,rules:[{required:!0,message:"必填项"}]},{default:l(()=>[s(f,{modelValue:a(o)[p.attr.key+"_"+p.id],"onUpdate:modelValue":C=>a(o)[p.attr.key+"_"+p.id]=C},{default:l(()=>[(i(!0),m(V,null,F(p.attr_dict,C=>(i(),P(b,{key:C.id,label:C.value},{default:l(()=>[B(R(C.label),1)]),_:2},1032,["label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1032,["label","prop"]))),128)),s(d,{ref_for:!0,ref:"dividerContainer",style:{margin:"20px 0 12px 0"}},null,512)],64))),128)),e[12]||(e[12]=w("div",{class:"sku-title"},"可选部分",-1)),s(g,{label:"电源",prop:"powerType"},{default:l(()=>[s(f,{modelValue:a(o).powerType,"onUpdate:modelValue":e[2]||(e[2]=t=>a(o).powerType=t)},{default:l(()=>[(i(!0),m(V,null,F(a(G),t=>(i(),P(b,{key:t.value,label:t.value},{default:l(()=>[B(R(t.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),s(g,{label:"版本类型",prop:"versionType"},{default:l(()=>[s(f,{modelValue:a(o).versionType,"onUpdate:modelValue":e[3]||(e[3]=t=>a(o).versionType=t)},{default:l(()=>[(i(),m(V,null,F(ne,t=>s(b,{key:t.value,label:t.value},{default:l(()=>[B(R(t.label),1)]),_:2},1032,["label"])),64))]),_:1},8,["modelValue"])]),_:1}),ke(s(g,{label:"版本编号",prop:"version"},{default:l(()=>[s(K,{modelValue:a(o).version,"onUpdate:modelValue":e[4]||(e[4]=t=>a(o).version=t),max:9,min:1,onChange:de},null,8,["modelValue"])]),_:1},512),[[be,a(o).versionType]]),s(g,ge(we({rules:[{required:a(o).version>1,message:"必填项",trigger:"blur"}],label:"版本特征",prop:"versionFeature"})),{default:l(()=>[s(O,{modelValue:a(o).versionFeature,"onUpdate:modelValue":e[5]||(e[5]=t=>a(o).versionFeature=t),autosize:"",clearable:"",style:{width:"40%"}},null,8,["modelValue"])]),_:1},16)]),_:1},8,["model"])])):$("",!0),s(d,{ref:"dividerContainer",style:{margin:"20px 0 12px 0"}},null,512),w("div",Ne,[s(x,{disabled:a(re),type:"primary",onClick:e[6]||(e[6]=t=>ee("skuForm",!1))},{default:l(()=>e[13]||(e[13]=[B("保存")])),_:1},8,["disabled"]),s(x,{disabled:a(S).status!==3,type:"primary",onClick:e[7]||(e[7]=t=>ee("skuForm",!0))},{default:l(()=>e[14]||(e[14]=[B("另存")])),_:1},8,["disabled"])])])]),_:1},8,["modelValue"])])}}}),Xe=Ue(Ee,[["__scopeId","data-v-b9f1ec25"]]);export{Xe as default};
|