1import{by as en,bz as sn,_ as tn}from"./index-DoWvVrc1.js";import{d as an,k as T,g as cn,c as G,o as w,a3 as ln,l as v,Q as dn,w as K,a as P,b as $,bN as pn,e as O,f as W,F as J,r as Q,S as fn,p as Z,aE as un,ao as gn,a8 as X,bO as hn,t as Y,B as In,i as yn}from"./vendor-Bh6u8-zI.js";const mn={class:"drawer-title"},kn={class:"same-product-tip"},vn={class:"same-product-layout"},Sn={key:0,class:"reference-panel"},_n=["src"],Pn={class:"reference-thumb-list"},An=["onClick"],Nn=["src"],Ln={key:0,class:"reference-item__check"},Un={class:"same-product-result"},wn={key:0,class:"same-product-grid"},Cn=["src","alt"],Dn={key:1,class:"same-product-img-placeholder"},xn=["href"],On={class:"same-product-meta"},zn=an({__name:"SameProductSearchDrawer",props:{saveHandler:{type:Function}},emits:["save"],setup(n,{expose:r,emit:e}){const d=n,o=e,c=T(!1),t=T(!1),u=T(""),y=T([]),h=T(""),g=T([]),I=cn(()=>y.value.find(s=>s.id===h.value)||y.value[0]);function A(s,a){y.value=s,h.value="",g.value=[],c.value=!0;const f=a&&s.some(k=>k.id===a.id)?a:s[0];f&&x(f)}async function x(s){if(h.value!==s.id){h.value=s.id,t.value=!0,g.value=[];try{const a=await en({url:s.url});g.value=a.code===0&&Array.isArray(a.data)?a.data.map(M).filter(f=>!!f):[],a.code!==0&&X.warning(a.msg||"è·å忬¾åå失败")}catch{g.value=[],X.error("è·å忬¾åå失败")}finally{t.value=!1}}}function S(s,a){if(!s)return"";for(const f of a){const k=s[f];if(k!=null&&k!=="")return k}return""}function C(s){if(!s)return"";const a=s.match(/\/offer\/(\d+)\.html/i);return(a==null?void 0:a[1])||""}function L(s){return(Array.isArray(s)?s:[]).map(f=>typeof f=="string"?f:(f==null?void 0:f.url)||(f==null?void 0:f.imageUrl)||(f==null?void 0:f.src)||"").filter(Boolean)}function m(s){const a=s.trim().replace(/&/g,"&");return!a||a.startsWith("data:")?"":a.startsWith("//")?`https:${a}`:/^https?:\/\//i.test(a)?a:""}function N(s){var D;const a=typeof s=="string"?s:"";if(!a)return[];const f=new Set;typeof DOMParser<"u"&&/<img/i.test(a)&&new DOMParser().parseFromString(a,"text/html").querySelectorAll("img").forEach(l=>{const V=l.getAttribute("src")||l.getAttribute("data-src")||l.getAttribute("data-original")||l.getAttribute("data-ks-lazyload")||l.getAttribute("data-lazyload-src"),b=V?m(V):"";b&&f.add(b)});const k=/(?:https?:)?\/\/[^"'<>\s\\]+?\.(?:png|jpe?g|webp|gif)(?:\?[^"'<>\s\\]*)?/gi;return(D=a.match(k))==null||D.forEach(p=>{const l=m(p);l&&f.add(l)}),[...f]}function E(s){return Array.isArray(s)?L(s)[0]||"":s&&typeof s=="object"?s.url||s.imageUrl||s.src||"":s?String(s):""}function M(s,a){if(!s)return null;const f=String(S(s,["product_url","goodsUrl","url","åå龿¥"])||""),k=String(S(s,["offerId","offer_id","ååID"])||C(f)),D=E(S(s,["imageUrl","image_url","imgUrl","mainImage","å¾ç龿¥","å¾ç"])),p=String(S(s,["product_name","productName","title","name","åååç§°","产ååç§°","æ é¢"])||"1688 忬¾åå"),l=f||(k?`https://detail.1688.com/offer/${k}.html`:"");return!D&&!l?null:{id:k||l||`same-product-${a}`,offerId:k,title:p,url:l,imageUrl:D,price:String(S(s,["price","ä»·æ ¼"])||""),soldCount:String(S(s,["monthSold","soldCount","sales","æéé","æé"])||""),sourceData:{...s}}}async function F(s){var f,k;const a=s.offerId||C(s.url);if(!a)return s;try{const D=await sn({offerId:a}),p=D.code===0&&Array.isArray(D.data)?D.data[0]:null;if(!p)return s;const l=L(((f=p==null?void 0:p.productImage)==null?void 0:f.images)||(p==null?void 0:p.productImages)||(p==null?void 0:p.images)),V=L(((k=p==null?void 0:p.detailImage)==null?void 0:k.images)||(p==null?void 0:p.detailImages)||(p==null?void 0:p.descriptionImages)||(p==null?void 0:p.productDetailImages)),b=V.length?[]:N(S(p,["description","desc","detailDesc","detailDescription","descriptionHtml","detailHtml","detailContent","descContent"]));return{...s,offerId:a,sourceData:{...s.sourceData||{},...p},title:String(S(p,["productName","productTitle","subject","title","name"])||s.title),mainImages:l.length?l:s.imageUrl?[s.imageUrl]:[],detailImages:V.length?V:b}}catch{return s}}function H(s){const a=String(s||"").trim();return a?/[¥¥å
]/.test(a)?a:`Â¥${a}`:"/"}function R(s){return String(s||"").trim()||"/"}async function U(s){u.value=s.id;try{const a=await F(s);if(d.saveHandler){await d.saveHandler(a)&&(c.value=!1);return}o("save",a),c.value=!1}finally{u.value=""}}return r({open:A}),(s,a)=>{const f=In,k=un,D=fn,p=ln;return w(),G(p,{open:v(c),"onUpdate:open":a[2]||(a[2]=l=>dn(c)?c.value=l:null),width:"1040","z-index":1200,closable:!1,"mask-closable":!1,"destroy-on-close":"","root-class-name":"product-library-drawer-root same-product-drawer-root"},{title:K(()=>[P("div",mn,[a[3]||(a[3]=P("span",null,"1688 ä»¥å¾ææ¬¾",-1)),P("button",{type:"button",class:"drawer
1-close","aria-label":"å
³é",onClick:a[0]||(a[0]=l=>c.value=!1)},[$(v(gn))])])]),default:K(()=>[P("div",kn,[$(v(pn),{class:"same-product-tip__icon"}),a[4]||(a[4]=P("span",null,"鿩忬¾åååï¼æä»¬ä¼ä¿åååæ é¢ã主å¾ã详æ
å¾çä¿¡æ¯å°åååºã",-1))]),P("div",vn,[v(y).length?(w(),O("aside",Sn,[v(I)?(w(),O("button",{key:0,type:"button",class:"reference-main",onClick:a[1]||(a[1]=l=>x(v(I)))},[P("img",{src:v(I).url,alt:"å½åæç´¢åèå¾",referrerpolicy:"no-referrer"},null,8,_n)])):W("",!0),P("div",Pn,[(w(!0),O(J,null,Q(v(y),l=>(w(),O("button",{key:l.id,type:"button",class:Z(["reference-item",{active:l.id===v(h)}]),onClick:V=>x(l)},[P("img",{src:l.url,alt:"æç´¢åèå¾",referrerpolicy:"no-referrer"},null,8,Nn),l.id===v(h)?(w(),O("span",Ln,[$(v(hn))])):W("",!0)],10,An))),128))])])):W("",!0),P("div",Un,[$(D,{spinning:v(t),tip:"ååå è½½ä¸...",class:"same-product-spin"},{default:K(()=>[P("div",{class:Z(["same-product-content",{"same-product-content--center":v(t)||!v(g).length}])},[v(g).length?(w(),O("div",wn,[(w(!0),O(J,null,Q(v(g),l=>(w(),O("div",{key:l.id,class:"same-product-card"},[l.imageUrl?(w(),O("img",{key:0,src:l.imageUrl,alt:l.title,class:"same-product-img",referrerpolicy:"no-referrer"},null,8,Cn)):(w(),O("div",Dn," ææ å¾ç ")),P("a",{href:l.url,target:"_blank",rel:"noopener noreferrer",class:"same-product-title"},Y(l.title),9,xn),P("div",On,[P("span",null,Y(H(l.price)),1),P("span",null,"æééï¼"+Y(R(l.soldCount)),1)]),$(f,{type:"primary",block:"",loading:v(u)===l.id,onClick:V=>U(l)},{default:K(()=>[...a[5]||(a[5]=[yn(" ä¿å ",-1)])]),_:1},8,["loading","onClick"])]))),128))])):v(t)?W("",!0):(w(),G(k,{key:1,description:"ææ åæ¬¾åå"}))],2)]),_:1},8,["spinning"])])])]),_:1},8,["open"])}}}),Gn=tn(zn,[["__scopeId","data-v-58c58689"]]),jn={1688:"1688",taobao:"TAOBAO",tmall:"TMALL",pinduoduo:"PINDUODUO",jd:"JD",amazon:"AMAZON",shopify:"SHOPIFY",ebay:"EBAY",tiktok:"TIKTOK_SHOP",tiktok_shop:"TIKTOK_SHOP"};function i(n){return String(n!=null?n:"").trim()}function _(n){return Array.isArray(n)?n:[]}function Vn(n){return(Array.isArray(n)?n:n?[n]:[]).map(i).filter(Boolean)}function j(n,r){for(const e of r){const d=n[e];if(d!=null&&d!=="")return d}}function B(n){if(n==null||n==="")return;if(typeof n=="number")return!Number.isFinite(n)||n<0?void 0:Number.isInteger(n)?n:Math.round(n*100);const r=i(n).replace(/[¥¥å
$â¬Â£,]/g,"");if(!r)return;const e=Number(r);if(!(!Number.isFinite(e)||e<0))return r.includes(".")?Math.round(e*100):e}function z(n){if(n==null||n==="")return;const r=Number(n);return Number.isFinite(r)&&r>=0?r:void 0}function Bn(n){const r=i(n);return jn[r.toLowerCase()]||r.toUpperCase()||"1688"}function on(n){var r;return((r=n.match(/\/offer\/(\d+)\.html/i))==null?void 0:r[1])||""}function rn(n){return _(n).map(r=>{var e;return{type:i((r==null?void 0:r.type)||(r==null?void 0:r.identifierType)||"OTHER"),value:i((r==null?void 0:r.value)||(r==null?void 0:r.identifierValue)),name:(e=r==null?void 0:r.name)!=null?e:null}}).filter(r=>r.type&&r.value)}function q(n){var e;const r=i(typeof n=="object"?(n==null?void 0:n.value)||(n==null?void 0:n.name)||(n==null?void 0:n.label):n);return r?{valueId:i(n&&typeof n=="object"&&((n==null?void 0:n.valueId)||(n==null?void 0:n.id))||r),value:r,unit:n&&typeof n=="object"&&(e=n==null?void 0:n.unit)!=null?e:null,imageUrl:n&&typeof n=="object"&&(n==null?void 0:n.imageUrl)||null}:null}function Tn(n,r){const e=_(n.variantAttributeList||n.variantAttributes||n.skuSpecs||n.skuSpecList),d=e.length?e:r;if(!d.length&&_(n.productSkuInfos).length){const o=new Map;
1return _(n.productSkuInfos).forEach(c=>{_(c==null?void 0:c.skuAttributes).forEach((t,u)=>{const y=i((t==null?void 0:t.attributeId)||(t==null?void 0:t.id)||`attribute-${u+1}`),h=i((t==null?void 0:t.attributeName)||(t==null?void 0:t.name)||`è§æ ¼${u+1}`);if(!y||!h)return;const g=o.get(y)||{attributeId:y,name:h,position:u+1,values:[]},I=q({valueId:(t==null?void 0:t.valueId)||(t==null?void 0:t.value),value:(t==null?void 0:t.value)||(t==null?void 0:t.valueName),imageUrl:(t==null?void 0:t.skuImageUrl)||(t==null?void 0:t.imageUrl)});I&&!g.values.some(A=>A.valueId===I.valueId)&&g.values.push(I),o.set(y,g)})}),[...o.values()]}return d.map((o,c)=>{const t=_((o==null?void 0:o.values)||(o==null?void 0:o.valueList)||(o==null?void 0:o.options)||(o==null?void 0:o.items)||(o==null?void 0:o.value)).map(q).filter(u=>!!u);return{attributeId:i((o==null?void 0:o.attributeId)||(o==null?void 0:o.id)||(o==null?void 0:o.specId)||(o==null?void 0:o.name)||`attribute-${c+1}`),name:i((o==null?void 0:o.name)||(o==null?void 0:o.attributeName)||(o==null?void 0:o.specName)||`è§æ ¼${c+1}`),position:Number((o==null?void 0:o.position)||c+1),values:t}}).filter(o=>o.name&&o.values.length)}function $n(n,r){const e=_(n.saleAttributeList||n.saleAttributes||n.skuAttributes);return e.length?e.map(o=>({attributeId:i((o==null?void 0:o.attributeId)||(o==null?void 0:o.id)),attributeName:i((o==null?void 0:o.attributeName)||(o==null?void 0:o.name)),valueId:i((o==null?void 0:o.valueId)||(o==null?void 0:o.id)||(o==null?void 0:o.valueName)||(o==null?void 0:o.value)),valueName:i((o==null?void 0:o.valueName)||(o==null?void 0:o.value)||(o==null?void 0:o.name))})).filter(o=>o.attributeId&&o.attributeName&&o.valueId&&o.valueName):_(n.specValues).map((o,c)=>{const t=r[c],u=i(typeof o=="object"?(o==null?void 0:o.value)||(o==null?void 0:o.name):o);return{attributeId:(t==null?void 0:t.attributeId)||`attribute-${c+1}`,attributeName:(t==null?void 0:t.name)||`è§æ ¼${c+1}`,valueId:i(typeof o=="object"&&((o==null?void 0:o.valueId)||(o==null?void 0:o.id))||u),valueName:u}}).filter(o=>o.valueName)}function En(n,r){return _(n.skuList||n.skus||n.skuItems||n.skuInfoList||n.productSkuInfos).map((e,d)=>{var x,S,C,L,m;const o=e,c=i(j(o,["externalSkuId","skuId","variantId","id"])),t=i(j(o,["sellerSku","skuCode","outerId","cargoNumber"]));if(!c&&!t)return null;const u=B(j(o,["price","salePrice","skuPrice","consignPrice"])||((x=o.fenxiaoPriceInfo)==null?void 0:x.offerPrice)),y=B(j(o,["originalPrice","marketPrice","linePrice"])),h=B(j(o,["costPrice","purchasePrice"])),g=z(j(o,["stock","inventory","quantity","amountOnSale"])),I=z(o.weight),A={externalSkuId:c,sellerSku:t,title:i(j(o,["title","skuName","name"]))||_(o.specValues).map(i).join(" / ")||_(o.skuAttributes).map(N=>i((N==null?void 0:N.value)||(N==null?void 0:N.valueName))).filter(Boolean).join(" / ")||`SKU ${d+1}`,imageUrl:i(j(o,["imageUrl","image","imgUrl","url"]))||i(((C=(S=o.skuAttributes)==null?void 0:S[0])==null?void 0:C.skuImageUrl)||((m=(L=o.skuAttributes)==null?void 0:L[0])==null?void 0:m.imageUrl)),identifiers:rn(o.identifiers||o.identifierList),saleAttributeList:$n(e,r),...u===void 0?{}:{price:u},...y===void 0?{}:{originalPrice:y},...h===void 0?{}:{costPrice:h},...g===void 0?{}:{stock:g},...I===void 0?{}:{weight:I},weightUnit:i(o.weightUnit||"g")||void 0,currency:i(o.currency||n.currency||"CNY")||void 0,status:i(o.status||o.productStatus||n.productStatus)||void 0};return Object.fromEntries(Object.entries(A).filter(([,N])=>N!==void 0))}).filter(e=>!!e)}function Mn(n){const r=_((n==null?void 0:n.values)||(n==null?void 0:n.valueList)||(n==null?void 0:n.options)||(n==null?void 0:n.value));return!r.length&&(n==null?void 0:n.value)!==void 0&&r.push(n.value),r.map(q).filter(e=>!!e)}function Fn(n,r){const e=_(n.attributeList||n.productAttributes||n.attributes||n.attributeValues||n.productAttribute),d=e.length?e:r,o=new Map;return d.forEach((c,t)=>{const u=i((c==null?void 0:c.attributeId)||(c==null?void 0:c.id)||(c==null?void 0:c.name)||`attribute-${t+1}`),y=i((c==null?void 0:c.name)||(c==null?void 0:c.attributeName)||(c==null?void 0:c.propertyName)||`屿§${t+1}`);
1if(!u||!y)return;const h=Mn(c),g=o.get(u)||{attributeId:u,name:y,values:[]};h.forEach(I=>{g.values.some(A=>A.valueId===I.valueId&&A.value===I.value)||g.values.push(I)}),o.set(u,g)}),[...o.values()].filter(c=>c.name&&c.values.length)}function Hn(n,r,e){const d=i(j(n,["externalProductId","externalId","offerId","itemId","goodsId"]));if(d)return d.slice(0,128);const o=r==="1688"?on(e):"";return o||""}function nn(n,r){const e=r==="main"?n.mainImages:n.detailImages,d=r==="main"?n.mainImageList:n.detailImageList;return(e!=null&&e.length?e.map(o=>o.url):d||[]).filter(Boolean)}function Rn(n){const r=n.map(e=>e.price).filter(e=>typeof e=="number"&&e>=0);return r.length?{minPrice:Math.min(...r),maxPrice:Math.max(...r)}:{}}function bn(n){const r=n.map(e=>e.stock).filter(e=>typeof e=="number"&&e>=0);return r.length?r.reduce((e,d)=>e+d,0):void 0}function Kn(n){var h,g,I,A,x,S,C,L,m,N,E,M,F,H,R;const r=n.logistics||n.logisticsInfo||n.productShippingInfo||n.shippingInfo;if(!r||typeof r!="object")return{};const e=r.logistics&&typeof r.logistics=="object"?r.logistics:{},d=_(r.skuShippingInfoList)[0]||{},o=_(r.skuShippingDetails)[0]||{},c=i(r.shippingAddress||e.shippingAddress||r.sendGoodsAddressText),t=c.match(/^([^çå¸åºå¿]+ç)?([^å¸åºå¿]+å¸)?/),u=U=>{if(typeof U=="boolean")return U;if(U==="true"||U==="1"||U===1)return!0;if(U==="false"||U==="0"||U===0)return!1},y={weight:z((I=(g=(h=r.weight)!=null?h:e.weight)!=null?g:d.weight)!=null?I:o.weight),weightUnit:i(r.weightUnit||e.weightUnit||"g")||void 0,packageLength:z((S=(x=(A=r.packageLength)!=null?A:e.packageLength)!=null?x:d.length)!=null?S:o.length),packageWidth:z((m=(L=(C=r.packageWidth)!=null?C:e.packageWidth)!=null?L:d.width)!=null?m:o.width),packageHeight:z((M=(E=(N=r.packageHeight)!=null?N:e.packageHeight)!=null?E:d.height)!=null?M:o.height),dimensionUnit:i(r.dimensionUnit||e.dimensionUnit||"cm")||void 0,shippingCountryCode:i(r.shippingCountryCode||e.shippingCountryCode||"CN")||void 0,shippingProvince:i(r.shippingProvince||e.shippingProvince||(t==null?void 0:t[1]))||void 0,shippingCity:i(r.shippingCity||e.shippingCity||(t==null?void 0:t[2]))||void 0,shippingAddress:c||void 0,freightTemplateId:i(r.freightTemplateId||r.freightTemplate||e.freightTemplateId||e.freightTemplate)||void 0,warehouseId:i(r.warehouseId||e.warehouseId)||void 0,freeShipping:u((F=r.freeShipping)!=null?F:e.freeShipping),minDeliveryDays:z((H=r.minDeliveryDays)!=null?H:e.minDeliveryDays),maxDeliveryDays:z((R=r.maxDeliveryDays)!=null?R:e.maxDeliveryDays)};return Object.fromEntries(Object.entries(y).filter(([,U])=>U!==void 0))}function Wn(n){var S,C,L;const r=n,e=i(n.productLink||n.sameProductUrl||r.sourceLink||r.sourceUrl),d=Bn(n.ecommercePlatform||r.sourcePlatform||r.platform),o=Tn(r,n.skuSpecs||[]),c=En(r,o),t=Fn(r,n.attributes||n.productAttributes||[]),u=Rn(c),h=[..._((S=r.productSaleInfo)==null?void 0:S.priceRangeList).map(m=>B(m&&typeof m=="object"?m.price:m)).filter(m=>typeof m=="number"&&m>=0),...u.minPrice===void 0?[]:[u.minPrice,u.maxPrice],...r.minPrice===void 0?[]:[B(r.minPrice)],...r.maxPrice===void 0?[]:[B(r.maxPrice)]].filter(m=>typeof m=="number"&&m>=0),g=bn(c),I=z((L=(C=r.productSaleInfo)==null?void 0:C.amountOnSale)!=null?L:r.totalStock),A=I!=null?I:g;return{externalProductId:Hn(r,d,e),ecommercePlatform:d,productLink:e||void 0,title:i(n.title)||"æªå½ååå",subtitle:i(r.subtitle)||void 0,categoryId:i(r.categoryId)||void 0,categoryName:i(r.categoryName)||void 0,categoryPath:i(r.categoryPath)||void 0,brandName:i(r.brandName)||void 0,shopId:i(r.shopId||r.sellerOpenId)||void 0,shopName:i(n.shopName||n.storeName||r.shopName||r.companyName)||void 0,mainImageList:nn(n,"main"),detailImageList:nn(n,"detail"),videoList:Vn(r.videoList||r.videos||r.mainVideo),identifierList:rn(r.identifierList||r.identifiers),variantAttributeList:o,skuList:c,attributeList:t,logistics:Kn({...r,logistics:n.logistics||n.logisticsInfo||r.logistics||r.logisticsInfo}),description:i(r.description||r.desc||r.detailDescription)||void 0,currency:i(r.currency||"CNY")||void 0,...h.length?{minPrice:Math.min(...h),maxPrice:Math.max(...h)}:{}
1,originalPrice:B(r.originalPrice),...A===void 0?{}:{totalStock:A},salesCount:z(r.salesCount||r.sales||r.monthSold),productStatus:i(r.productStatus||(r.status==="published"?"ON_SALE":r.status))||void 0}}function Jn(n){var o;const r=n.sourceData||{},e=n.offerId||r.externalProductId||r.offerId||on(i(n.url)),d={...r,externalProductId:e,ecommercePlatform:"1688",productLink:n.url,title:n.title,mainImageList:(o=n.mainImages)!=null&&o.length?n.mainImages:[n.imageUrl].filter(Boolean),detailImageList:n.detailImages||[],mainImages:[],detailImages:[]};return Wn(d)}export{Gn as S,Jn as a,Wn as t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.