Files
wechat_wc/dist/pages/diy/index.js
T
2026-08-04 11:07:38 +08:00

1 line
9.3 KiB
JavaScript

"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[95],{8955:function(e,s,a){var n=a(7842),t=a(9379),i=a(436),c=a(5544),r=a(118),l=a(758),d=a.n(l),o=a(6540),u=a(5234),h=a(8594),m=a(9703),p=a(4848);function x(){var e,s=(0,m.wR)(),a=(s.theme,s.resolvedTheme),n=(0,o.useState)(null),l=(0,c.A)(n,2),x=l[0],v=l[1],g=(0,o.useState)(1),f=(0,c.A)(g,2),j=(f[0],f[1],(0,o.useState)("")),N=(0,c.A)(j,2),S=N[0],y=N[1],w=(0,o.useState)(1),b=(0,c.A)(w,2),k=(b[0],b[1]),E=(0,o.useState)([]),Y=(0,c.A)(E,2),A=Y[0],T=Y[1],I=(0,o.useState)(null),D=(0,c.A)(I,2),O=D[0],_=D[1],P=(0,o.useState)(!1),F=(0,c.A)(P,2),M=F[0],R=F[1],z=(0,o.useState)({x:0,y:0}),V=(0,c.A)(z,2),q=V[0],C=V[1],G=(0,o.useState)(!1),J=(0,c.A)(G,2),X=J[0],B=J[1],L=(0,o.useState)(!1),H=(0,c.A)(L,2),K=H[0],Q=H[1];(0,o.useEffect)(function(){var e,s=null===(e=d().getCurrentInstance().router)||void 0===e?void 0:e.params,a=null===s||void 0===s?void 0:s.source,n=(null===s||void 0===s?void 0:s.productId)||(null===s||void 0===s?void 0:s.category);if("product"===a&&n){var t=(0,u.y9)(n);if(t){v(t),k(Number(null===s||void 0===s?void 0:s.quantity)||1);var c={id:"DSG"+Date.now(),productId:t.id,productName:t.name,productIcon:t.icon,unitPrice:t.price,count:Number(null===s||void 0===s?void 0:s.quantity)||1,status:"designing",createdAt:(new Date).toISOString().slice(0,10)},r=(0,h.p_)();(0,h.Fu)([].concat((0,i.A)(r),[c])),y(c.id)}}else if("designList"===a&&null!==s&&void 0!==s&&s.designId){var l=s.designId,o=(0,h.p_)(),m=o.find(function(e){return e.id===l});if(m){var p,x;y(l),k(m.count);var g=(0,u.y9)(m.productId);if(g&&v(g),null!==(p=m.designData)&&void 0!==p&&p.stickers)T(m.designData.stickers);else if(null!==(x=m.designData)&&void 0!==x&&x.imageSrc){var f,j,N,S={id:"legacy_"+Date.now(),src:m.designData.imageSrc,x:(null===(f=m.designData.imagePos)||void 0===f?void 0:f.x)||0,y:(null===(j=m.designData.imagePos)||void 0===j?void 0:j.y)||0,scale:(null===(N=m.designData.imagePos)||void 0===N?void 0:N.scale)||1,width:200,height:200,isOverlapping:!1};T([S])}}}else if(n){var w=(0,u.y9)(n);if(w){v(w);var b={id:"DSG"+Date.now(),productId:w.id,productName:w.name,productIcon:w.icon,unitPrice:w.price,count:1,status:"designing",createdAt:(new Date).toISOString().slice(0,10)},E=(0,h.p_)();(0,h.Fu)([].concat((0,i.A)(E),[b])),y(b.id)}}},[]);var U=function(e){for(var s=e.map(function(e){return(0,t.A)((0,t.A)({},e),{},{isOverlapping:!1})}),a=0;a<s.length;a++)for(var n=a+1;n<s.length;n++){var i=s[a],c=s[n],r=i.width*i.scale,l=i.height*i.scale,d=c.width*c.scale,o=c.height*c.scale;i.x<c.x+d&&i.x+r>c.x&&i.y<c.y+o&&i.y+l>c.y&&(s[a].isOverlapping=!0,s[n].isOverlapping=!0)}var u=s.some(function(e){return e.isOverlapping});return Q(u),s},W=function(){d().chooseImage({count:1,sizeType:["compressed"],sourceType:["album","camera"],success:function(e){var s=e.tempFilePaths[0];d().getImageInfo({src:s,success:function(e){var a={id:"stk_"+Date.now(),src:s,x:0,y:0,scale:1,width:e.width,height:e.height,isOverlapping:!1},n=[].concat((0,i.A)(A),[a]),t=U(n);T(t),_(a.id)},fail:function(){var e={id:"stk_"+Date.now(),src:s,x:0,y:0,scale:1,width:200,height:200,isOverlapping:!1},a=[].concat((0,i.A)(A),[e]),n=U(a);T(n),_(e.id)}})}})},Z=function(e){var s=A.filter(function(s){return s.id!==e}),a=U(s);T(a),O===e&&_(null)},$=function(e,s){var a=e.touches[0],n=A.find(function(e){return e.id===s});n&&(_(s),R(!0),C({x:a.clientX-n.x,y:a.clientY-n.y}))},ee=function(e){if(M&&O){var s=e.touches[0],a=A.map(function(e){return e.id!==O?e:(0,t.A)((0,t.A)({},e),{},{x:s.clientX-q.x,y:s.clientY-q.y})}),n=U(a);T(n)}},se=function(){return R(!1)},ae=function(){O&&S&&d().navigateTo({url:"/pages/diy/stickerEdit/index?designId=".concat(S,"&stickerId=").concat(O)})},ne=function(e,s){var a=A.map(function(a){return a.id!==e?a:(0,t.A)((0,t.A)({},a),{},{scale:Math.max(.3,Math.min(3,a.scale+s))})}),n=U(a);T(n)},te=function(){d().navigateBack()},ie=function(){if(!x)return{width:300,height:420};var e={width:x.mask.width,height:x.mask.height};return"rect"===x.mask.shape&&(e.borderRadius=x.mask.borderRadius||0),"circle"===x.mask.shape&&(e.borderRadius="50%"),e},ce=function(){K?d().showToast({title:"\u8d34\u7eb8\u4e0d\u80fd\u91cd\u53e0",icon:"none"}):(S&&(0,h.i5)(S,{designData:{stickers:A,category:x}}),B(!1),d().navigateTo({url:"/pages/checkout/index?designId=".concat(S)}))};return x?(0,p.jsx)(r.Ss,{className:"theme-".concat(a),children:(0,p.jsxs)(r.Ss,{className:"diy-page",children:[(0,p.jsxs)(r.Ss,{className:"page-header dashed-card mt-20",children:[(0,p.jsx)(r.Ss,{className:"star-badge"}),(0,p.jsxs)(r.Ss,{className:"flex-between",style:{width:"100%"},children:[(0,p.jsx)(r.EY,{className:"back-btn",onTap:te,children:"\u2190"}),(0,p.jsx)(r.EY,{className:"page-title",children:"\u8bbe\u8ba1\u5de5\u4f5c\u53f0"}),(0,p.jsx)(r.Ss,{style:{width:"60px"}})]})]}),(0,p.jsxs)(r.Ss,{className:"canvas-wrapper dashed-card mt-20",catchMove:!0,children:[(0,p.jsx)(r.Ss,{className:"star-badge"}),(0,p.jsxs)(r.Ss,{className:"canvas-area",style:ie(),children:[A.map(function(e){return(0,p.jsx)(r._V,{className:"canvas-image ".concat(e.isOverlapping?"overlap":""," ").concat(O===e.id?"active":""),src:e.src,style:{transform:"translate(".concat(e.x,"px, ").concat(e.y,"px) scale(").concat(e.scale,")"),opacity:M&&O===e.id?.8:1,zIndex:O===e.id?10:5,width:e.width||200,height:e.height||200},onTouchStart:function(s){return $(s,e.id)},onTouchMove:ee,onTouchEnd:se,onTap:function(){return _(e.id)},mode:"aspectFit"},e.id)}),(0,p.jsx)(r.Ss,{className:"mask-border",style:ie()})]})]}),(0,p.jsxs)(r.Ss,{className:"sticker-panel dashed-card mt-20",children:[(0,p.jsx)(r.Ss,{className:"star-badge"}),(0,p.jsx)(r.EY,{className:"section-title",children:"\u8d34\u7eb8"}),(0,p.jsxs)(r.Ss,{className:"sticker-list",children:[A.map(function(e){return(0,p.jsxs)(r.Ss,{className:"sticker-thumb ".concat(e.isOverlapping?"overlap":""," ").concat(O===e.id?"active":""),children:[(0,p.jsx)(r._V,{src:e.src,className:"sticker-thumb-img",mode:"aspectFit",onTap:function(){return _(e.id)}}),(0,p.jsx)(r.Ss,{className:"sticker-del",onTap:function(){return Z(e.id)},children:(0,p.jsx)(r.EY,{className:"del-icon",children:"\xd7"})})]},e.id)}),(0,p.jsxs)(r.Ss,{className:"sticker-add-btn",onTap:W,children:[(0,p.jsx)(r.EY,{className:"add-icon",children:"+"}),(0,p.jsx)(r.EY,{className:"add-label",children:"\u6dfb\u52a0"})]})]}),K&&(0,p.jsx)(r.EY,{className:"overlap-hint",children:"\u26a0\ufe0f \u6709\u8d34\u7eb8\u91cd\u53e0\uff0c\u8bf7\u8c03\u6574\u4f4d\u7f6e"})]}),O&&(0,p.jsxs)(r.Ss,{className:"toolbar dashed-card mt-20",children:[(0,p.jsx)(r.Ss,{className:"star-badge"}),(0,p.jsxs)(r.Ss,{className:"tool-row",children:[(0,p.jsx)(r.EY,{className:"tool-label",children:"\u7f29\u653e"}),(0,p.jsxs)(r.Ss,{className:"flex-center",style:{gap:"20px"},children:[(0,p.jsx)(r.Ss,{className:"tool-btn",onTap:function(){return ne(O,-.1)},children:"\uff0d"}),(0,p.jsxs)(r.EY,{className:"tool-value",children:[Math.round(100*((null===(e=A.find(function(e){return e.id===O}))||void 0===e?void 0:e.scale)||1)),"%"]}),(0,p.jsx)(r.Ss,{className:"tool-btn",onTap:function(){return ne(O,.1)},children:"\uff0b"})]})]}),(0,p.jsxs)(r.Ss,{className:"tool-row",children:[(0,p.jsx)(r.EY,{className:"tool-label",children:"\u63d0\u793a"}),(0,p.jsx)(r.EY,{className:"tool-hint",children:"\u62d6\u52a8\u8c03\u6574\u4f4d\u7f6e\uff0c\u8d34\u7eb8\u4e0d\u53ef\u91cd\u53e0"})]})]}),(0,p.jsx)(r.Ss,{className:"edit-btn-bar mt-20",children:(0,p.jsx)(r.Ss,{className:"edit-btn ".concat(O?"active":"disabled"),onTap:ae,children:(0,p.jsx)(r.EY,{children:"\u7f16\u8f91"})})}),(0,p.jsxs)(r.Ss,{className:"action-btns mt-20",children:[(0,p.jsx)(r.Ss,{className:"btn-gradient",onTap:function(){return B(!0)},children:(0,p.jsx)(r.EY,{children:"\u9884\u89c8\u6548\u679c"})}),(0,p.jsx)(r.Ss,{className:"btn-outline",onTap:W,children:(0,p.jsx)(r.EY,{children:"\u6dfb\u52a0\u8d34\u7eb8"})})]}),X&&(0,p.jsx)(r.Ss,{className:"preview-overlay",children:(0,p.jsxs)(r.Ss,{className:"preview-card dashed-card",children:[(0,p.jsx)(r.Ss,{className:"star-badge"}),(0,p.jsx)(r.EY,{className:"preview-title",children:"\u786e\u8ba4\u6548\u679c"}),(0,p.jsx)(r.Ss,{className:"preview-canvas",style:ie(),children:A.map(function(e){return(0,p.jsx)(r._V,{className:"preview-image ".concat(e.isOverlapping?"overlap":""),src:e.src,style:{transform:"translate(".concat(e.x,"px, ").concat(e.y,"px) scale(").concat(e.scale,")"),width:e.width||200,height:e.height||200},mode:"aspectFit"},e.id)})}),(0,p.jsxs)(r.Ss,{className:"product-info",children:[(0,p.jsx)(r.EY,{className:"product-name",children:x.name}),(0,p.jsxs)(r.EY,{className:"product-size",children:["\u753b\u5e03\u5c3a\u5bf8: ",x.mask.width," \xd7 ",x.mask.height," px"]}),K&&(0,p.jsx)(r.EY,{className:"overlap-hint",children:"\u8d34\u7eb8\u6709\u91cd\u53e0\uff0c\u4e0d\u53ef\u63d0\u4ea4"})]}),(0,p.jsxs)(r.Ss,{className:"preview-actions",children:[(0,p.jsx)(r.Ss,{className:"btn-outline",onTap:function(){return B(!1)},children:(0,p.jsx)(r.EY,{children:"\u8fd4\u56de\u4fee\u6539"})}),(0,p.jsx)(r.Ss,{className:"btn-gradient ".concat(K?"disabled":""),onTap:ce,children:(0,p.jsx)(r.EY,{children:"\u786e\u8ba4\u5b8c\u6210"})})]})]})}),(0,p.jsx)(r.Ss,{style:{height:"40px"}})]})}):(0,p.jsx)(r.Ss,{className:"theme-".concat(a),children:(0,p.jsx)(r.Ss,{className:"diy-page",children:(0,p.jsx)(r.EY,{className:"page-title",children:"\u52a0\u8f7d\u4e2d..."})})})}var v={};Page((0,n.createPageConfig)(x,"pages/diy/index",{root:{cn:[]}},v||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(8955)});e.O()}]);