Files
anmo/server/public/admin/assets/specifications-BgU6P4mI.js
2025-08-19 14:16:51 +08:00

2 lines
9.6 KiB
JavaScript
Executable File

import{d as ee,s as le,j as ae,c as S,O as P,S as te,o as _,a as k,b as f,m as t,w as o,p as V,F as D,e as x,B as U,G as oe,f as b,t as se,C as A,T as ne,v as ie,E as ue,L as me,U as de,V as N}from"./index-CGub03FT.js";import{E as re,a as pe}from"./el-table-column-DBYsaEIo.js";import{E as ce}from"./el-checkbox-DPTWUty2.js";/* empty css */import{_ as Ve}from"./index.vue_vue_type_script_setup_true_lang-C0UWFojA.js";import{_ as fe}from"./picker-BGK36TCB.js";import{_ as ge}from"./index-D0ME4X5t.js";import{E as _e}from"./el-form-item-BKRcGrWB.js";import"./_baseIteratee-DQXt5gsj.js";import"./_Uint8Array-K6PPz5Xs.js";import"./isEqual-BjNIK6f1.js";import"./_initCloneObject-DyM2wGFM.js";import"./isArrayLikeObject-CV-4lauF.js";/* empty css */import"./el-select-D_df0KjM.js";import"./index-VnZzjdgn.js";import"./token-DI9FKtlJ.js";import"./_baseFindIndex-D7XfJLKM.js";import"./index-Dwl8-_cH.js";import"./index-D9SZz37w.js";/* empty css */import"./index-DV00iONH.js";import"./index-DUdO5aW4.js";import"./index.vue_vue_type_script_setup_true_lang-CcGOFaWK.js";/* empty css */import"./index-Ct2hxw5z.js";/* empty css */import"./cloneDeep-B3sFPNz9.js";import"./_baseClone-C3INvej2.js";/* empty css */import"./index.vue_vue_type_style_index_0_scoped_2c1dfcb3_lang-CRN1UyeX.js";import"./usePaging-BRbHtpJx.js";import"./index-BzbpkJ2I.js";import"./index-BO1KpKCq.js";import"./vuedraggable.umd-BhJfVXt2.js";/* empty css *//* empty css */const be={class:"ml-[80px] pr-8"},he={class:"flex m-4"},ke={class:"flex p-[16px] ml-4 mt-[16px] spec-item"},we={class:"spec-item__content"},ve={class:"flex flex-wrap col-top"},Ce={key:0},De={class:"flex pl-[10px] mb-4"},Ue=["onClick"],ml=ee({__name:"specifications",props:{modelValue:{default:{}}},setup(T){const c=T,I=le(),p=ae({tableData:[],selectData:[],tableDataIndex:0}),h=S(()=>!p.selectData.length),y=S(()=>c.modelValue.specValue||[]),O=S(()=>c.modelValue.specValueList||[]),j=()=>{c.modelValue.specValue.push({hasImage:0,id:"",name:"",specList:[{value:"",image:""}]})},F=l=>{if(c.modelValue.specValue.length<=1)return A.msgError("至少一个规格项");c.modelValue.specValue.splice(l,1)},q=l=>{c.modelValue.specValue[l].specList.push({value:"",image:""})},J=(l,e)=>{c.modelValue.specValue[l].specList.splice(e,1)},R=(l,e)=>{const s=c.modelValue.specValue,u=c.modelValue.specValueList;s.forEach((r,i)=>{r.hasImage=0,l==i&&(r.hasImage=e)}),u.forEach(r=>{r.image=""}),p.tableData.forEach(r=>{r.image=""})},z=(l,e)=>{var d;const s=(d=c.modelValue)==null?void 0:d.specValue[l],u=s==null?void 0:s.specList[e].value;(s==null?void 0:s.specList.filter(v=>v.value==u&&u!=""&&u.length!=0)).length>=2&&(A.msgWarning("已存在相同规格值"),s.specList[e].value="")},G=l=>{p.selectData=l.map(e=>e.ids)},E=(l,e)=>{p.tableData.forEach(s=>{p.selectData.includes(s.ids)&&s[e]!=null&&(s[e]=l)})},$=(l,e)=>{let s=[l,e];s=s.filter(i=>i.value!==void 0);const u=N(s.map(i=>i.ids)).join(),r=N(s.map(i=>i.value));return{id:l.id?l.id:"",ids:u,value:r,skuValueArr:r.toString(),image:l.image?l.image:e.image,price:l.price?l.price:"",linePrice:l.linePrice?l.linePrice:"",marketPrice:l.marketPrice?l.marketPrice:"",stock:l.stock?l.stock:"",volume:l.volume?l.volume:"",weight:l.weight?l.weight:"",code:l.code?l.code:""}},W=l=>(l=JSON.parse(JSON.stringify(l)),l.reduce((e,s)=>{const u=[];for(let r=0;r<e.length;r++){s.length||u.push($(e[r],{}));for(let i=0;i<s.length;i++)s[i].ids=i,u.push($(e[r],s[i]))}return u},[{}])),H=ne(()=>{const l=c.modelValue.specValue,e=p.tableData,s=l.map(d=>d.specList),u=W(s),r=JSON.parse(JSON.stringify(e)),i={};r.forEach(d=>{d.skuValueArr!==void 0&&(i[d.skuValueArr]=d)}),p.tableData=u.map(d=>i[d.skuValueArr]?{...i[d.skuValueArr],value:d.value,ids:d.ids,image:d.image||i[d.skuValueArr].image}:d)},10);P(()=>y.value,()=>{H()},{deep:!0,immediate:!0}),P(()=>O.value,l=>{p.tableData=l},{deep:!0,immediate:!0}),P(()=>p.tableData,l=>{c.modelValue.specValueList=l},{deep:!1,immediate:!0});const B=l=>{var e;p.tableDataIndex=l,(e=I.value)==null||e.showPopup()},K=l=>{p.tableData[p.tableDataIndex].image=l},M=l=>{p.tableData[l].image=""};return(l,e)=>{const s=ie,u=ue,r=ce,i=_e,d=ge,v=fe,L=Ve,g=re,Q=me,X=te("Plus"),Y=de,Z=pe;return _(),k(D,null,[f("div",be,[f("div",he,[t(s,{type:"primary",onClick:j},{default:o(()=>e[3]||(e[3]=[V("添加规格项")])),_:1})]),(_(!0),k(D,null,x(b(y),(a,n)=>(_(),U(d,{key:n,onClose:m=>F(n)},{default:o(()=>[f("div",ke,[e[6]||(e[6]=f("div",{class:"flex-none mr-[10px]"},[f("div",{class:"mt-2"},"规格名"),f("div",{class:"mt-6"},"规格值")],-1)),f("div",we,[t(i,{"label-width":"0",prop:`specValue.${n}.name`,rules:[{required:!0,message:"请输入规格名称",trigger:"blur"}]},{default:o(()=>[t(u,{modelValue:a.name,"onUpdate:modelValue":m=>a.name=m,style:{width:"240px"},maxlength:"20","show-word-limit":!0},null,8,["modelValue","onUpdate:modelValue"]),t(r,{class:"ml-4","false-label":0,"true-label":1,modelValue:a.hasImage,"onUpdate:modelValue":m=>a.hasImage=m,onChange:m=>R(n,m)},{default:o(()=>e[4]||(e[4]=[V("规格图片")])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:2},1032,["prop"]),f("div",ve,[(_(!0),k(D,null,x(a.specList,(m,C)=>(_(),U(i,{key:C,"label-width":"0",prop:`specValue.${n}.specList.${C}.value`,rules:[{required:!0,message:"请输入规格值",trigger:"blur"}],class:"mr-2"},{default:o(()=>[t(d,{onClose:w=>J(n,C)},{default:o(()=>[t(u,{class:"w-40",modelValue:m.value,"onUpdate:modelValue":w=>m.value=w,maxlength:"20","show-word-limit":"",onBlur:w=>z(n,C)},null,8,["modelValue","onUpdate:modelValue","onBlur"])]),_:2},1032,["onClose"]),a.hasImage?(_(),k("div",Ce,[t(v,{class:"mt-4",limit:1,size:"60px",modelValue:m.image,"onUpdate:modelValue":w=>m.image=w},null,8,["modelValue","onUpdate:modelValue"])])):oe("",!0)]),_:2},1032,["prop"]))),128)),t(s,{class:"ml-2",onClick:m=>q(n)},{default:o(()=>e[5]||(e[5]=[V(" + 添加规格值 ")])),_:2},1032,["onClick"])])])])]),_:2},1032,["onClose"]))),128))]),t(i,{label:"规格明细",class:"mt-8"},{default:o(()=>[f("div",De,[t(L,{class:"mr-2",disabled:b(h),onConfirm:e[0]||(e[0]=a=>E(a,"price"))},{default:o(()=>[t(s,{disabled:b(h)},{default:o(()=>e[7]||(e[7]=[V("设置价格")])),_:1},8,["disabled"])]),_:1},8,["disabled"]),t(L,{class:"mr-2",disabled:b(h),onConfirm:e[1]||(e[1]=a=>E(a,"linePrice"))},{default:o(()=>[t(s,{disabled:b(h)},{default:o(()=>e[8]||(e[8]=[V("设置时长")])),_:1},8,["disabled"])]),_:1},8,["disabled"]),t(L,{class:"mr-2",disabled:b(h),onConfirm:e[2]||(e[2]=a=>E(a,"marketPrice"))},{default:o(()=>[t(s,{disabled:b(h)},{default:o(()=>e[9]||(e[9]=[V("设置划线价")])),_:1},8,["disabled"])]),_:1},8,["disabled"])]),t(Z,{class:"pl-[10px]",data:b(p).tableData,"max-height":"600","row-height":75,"tooltip-effect":"dark",border:!1,"big-data-checkbox":!0,onSelectionChange:G},{default:o(()=>[t(g,{type:"selection",width:"55"}),(_(!0),k(D,null,x(b(y),(a,n)=>(_(),U(g,{key:n,label:a.name,"min-width":"140","show-overflow-tooltip":!0},{default:o(({row:m})=>[V(se(m.skuValueArr.split(",")[n]),1)]),_:2},1032,["label"]))),128)),t(g,{label:"规格图片","min-width":"90"},{default:o(({row:a,$index:n})=>[a.image?(_(),U(d,{key:0,onClose:m=>M(n)},{default:o(()=>[t(Q,{style:{width:"50px",height:"50px"},src:a.image,onClick:m=>B(n)},null,8,["src","onClick"])]),_:2},1032,["onClose"])):(_(),k("div",{key:1,class:"flex items-center justify-center spec-image",onClick:m=>B(n)},[t(Y,null,{default:o(()=>[t(X)]),_:1})],8,Ue))]),_:1}),t(g,{"min-width":"100"},{header:o(()=>e[10]||(e[10]=[f("span",{class:"text-error"},"*",-1),V(" 价格 ")])),default:o(({row:a,$index:n})=>[t(i,{"label-width":"0",prop:`specValueList.${n}.price`,rules:[{required:!0,message:"请输入规格价格",trigger:"blur"}]},{default:o(()=>[t(u,{class:"spec-input",type:"number",modelValue:a.price,"onUpdate:modelValue":m=>a.price=m},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop"])]),_:1}),t(g,{"min-width":"100"},{header:o(()=>e[11]||(e[11]=[V(" 划线价")])),default:o(({row:a})=>[t(u,{class:"spec-input",type:"number",modelValue:a.linePrice,"onUpdate:modelValue":n=>a.linePrice=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(g,{label:"成本价","min-width":"100"},{default:o(({row:a})=>[t(u,{class:"spec-input",type:"number",modelValue:a.marketPrice,"onUpdate:modelValue":n=>a.marketPrice=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(g,{"min-width":"100"},{header:o(()=>e[12]||(e[12]=[f("span",{class:"text-error"},"*",-1),V(" 库存 ")])),default:o(({row:a,$index:n})=>[t(i,{"label-width":"0",prop:`specValueList.${n}.stock`,rules:[{required:!0,message:"请输入规格库存",trigger:"blur"}]},{default:o(()=>[t(u,{class:"spec-input",type:"number",modelValue:a.stock,"onUpdate:modelValue":m=>a.stock=m},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop"])]),_:1}),t(g,{"min-width":"100"},{header:o(()=>e[13]||(e[13]=[V(" 体积")])),default:o(({row:a})=>[t(u,{class:"spec-input",type:"number",modelValue:a.volume,"onUpdate:modelValue":n=>a.volume=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(g,{label:"重量","min-width":"100"},{header:o(()=>e[14]||(e[14]=[V(" 重量")])),default:o(({row:a})=>[t(u,{class:"spec-input",type:"number",modelValue:a.weight,"onUpdate:modelValue":n=>a.weight=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(g,{label:"条码","min-width":"100"},{default:o(({row:a})=>[t(u,{class:"spec-input",type:"number",modelValue:a.code,"onUpdate:modelValue":n=>a.code=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1})]),_:1},8,["data"])]),_:1}),t(v,{ref_key:"materialRef",ref:I,hiddenUpload:!0,onChange:K},null,512)],64)}}});export{ml as default};