Files
wechat_wc/dist/pages/diy/index.js
T

1 line
9.0 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(1268),p=a(9703),x=a(4848);function v(){var e,s=(0,p.wR)(),a=s.theme,n=(0,o.useState)(null),l=(0,c.A)(n,2),v=l[0],g=l[1],f=(0,o.useState)(1),j=(0,c.A)(f,2),N=(j[0],j[1],(0,o.useState)("")),S=(0,c.A)(N,2),w=S[0],y=S[1],b=(0,o.useState)(1),k=(0,c.A)(b,2),A=(k[0],k[1]),E=(0,o.useState)([]),Y=(0,c.A)(E,2),T=Y[0],D=Y[1],I=(0,o.useState)(null),O=(0,c.A)(I,2),_=O[0],P=O[1],F=(0,o.useState)(!1),M=(0,c.A)(F,2),R=M[0],z=M[1],V=(0,o.useState)({x:0,y:0}),q=(0,c.A)(V,2),C=q[0],G=q[1],J=(0,o.useState)(!1),X=(0,c.A)(J,2),B=X[0],L=X[1],H=(0,o.useState)(!1),K=(0,c.A)(H,2),Q=K[0],U=K[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){g(t),A(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),A(m.count);var v=(0,u.y9)(m.productId);if(v&&g(v),null!==(p=m.designData)&&void 0!==p&&p.stickers)D(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};D([S])}}}else if(n){var w=(0,u.y9)(n);if(w){g(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)},k=(0,h.p_)();(0,h.Fu)([].concat((0,i.A)(k),[b])),y(b.id)}}},[]);var W=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 U(u),s},Z=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)(T),[a]),t=W(n);D(t),P(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)(T),[e]),n=W(a);D(n),P(e.id)}})}})},$=function(e){var s=T.filter(function(s){return s.id!==e}),a=W(s);D(a),_===e&&P(null)},ee=function(e,s){var a=e.touches[0],n=T.find(function(e){return e.id===s});n&&(P(s),z(!0),G({x:a.clientX-n.x,y:a.clientY-n.y}))},se=function(e){if(R&&_){var s=e.touches[0],a=T.map(function(e){return e.id!==_?e:(0,t.A)((0,t.A)({},e),{},{x:s.clientX-C.x,y:s.clientY-C.y})}),n=W(a);D(n)}},ae=function(){return z(!1)},ne=function(e,s){var a=T.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=W(a);D(n)},te=function(){d().navigateBack()},ie=function(){if(!v)return{width:300,height:420};var e={width:v.mask.width,height:v.mask.height};return"rect"===v.mask.shape&&(e.borderRadius=v.mask.borderRadius||0),"circle"===v.mask.shape&&(e.borderRadius="50%"),e},ce=function(){Q?d().showToast({title:"\u8d34\u7eb8\u4e0d\u80fd\u91cd\u53e0",icon:"none"}):(w&&(0,h.i5)(w,{designData:{stickers:T,category:v}}),L(!1),d().navigateTo({url:"/pages/checkout/index?designId=".concat(w)}))};return v?(0,x.jsx)(r.Ss,{className:"theme-".concat(a),children:(0,x.jsxs)(r.Ss,{className:"diy-page",children:[(0,x.jsx)(m.A,{}),(0,x.jsxs)(r.Ss,{className:"page-header dashed-card mt-20",children:[(0,x.jsx)(r.Ss,{className:"star-badge"}),(0,x.jsxs)(r.Ss,{className:"flex-between",style:{width:"100%"},children:[(0,x.jsx)(r.EY,{className:"back-btn",onTap:te,children:"\u2190"}),(0,x.jsx)(r.EY,{className:"page-title",children:"\u8bbe\u8ba1\u5de5\u4f5c\u53f0"}),(0,x.jsx)(r.Ss,{style:{width:"60px"}})]})]}),(0,x.jsxs)(r.Ss,{className:"canvas-wrapper dashed-card mt-20",children:[(0,x.jsx)(r.Ss,{className:"star-badge"}),(0,x.jsxs)(r.Ss,{className:"canvas-area",style:ie(),children:[T.map(function(e){return(0,x.jsx)(r._V,{className:"canvas-image ".concat(e.isOverlapping?"overlap":""," ").concat(_===e.id?"active":""),src:e.src,style:{transform:"translate(".concat(e.x,"px, ").concat(e.y,"px) scale(").concat(e.scale,")"),opacity:R&&_===e.id?.8:1,zIndex:_===e.id?10:5,width:e.width||200,height:e.height||200},onTouchStart:function(s){return ee(s,e.id)},onTouchMove:se,onTouchEnd:ae,onTap:function(){return P(e.id)},mode:"aspectFit"},e.id)}),(0,x.jsx)(r.Ss,{className:"mask-border",style:ie()})]})]}),(0,x.jsxs)(r.Ss,{className:"sticker-panel dashed-card mt-20",children:[(0,x.jsx)(r.Ss,{className:"star-badge"}),(0,x.jsx)(r.EY,{className:"section-title",children:"\u8d34\u7eb8"}),(0,x.jsxs)(r.Ss,{className:"sticker-list",children:[T.map(function(e){return(0,x.jsxs)(r.Ss,{className:"sticker-thumb ".concat(e.isOverlapping?"overlap":""," ").concat(_===e.id?"active":""),children:[(0,x.jsx)(r._V,{src:e.src,className:"sticker-thumb-img",mode:"aspectFit",onTap:function(){return P(e.id)}}),(0,x.jsx)(r.Ss,{className:"sticker-del",onTap:function(){return $(e.id)},children:(0,x.jsx)(r.EY,{className:"del-icon",children:"\xd7"})})]},e.id)}),(0,x.jsxs)(r.Ss,{className:"sticker-add-btn",onTap:Z,children:[(0,x.jsx)(r.EY,{className:"add-icon",children:"+"}),(0,x.jsx)(r.EY,{className:"add-label",children:"\u6dfb\u52a0"})]})]}),Q&&(0,x.jsx)(r.EY,{className:"overlap-hint",children:"\u26a0\ufe0f \u6709\u8d34\u7eb8\u91cd\u53e0\uff0c\u8bf7\u8c03\u6574\u4f4d\u7f6e"})]}),_&&(0,x.jsxs)(r.Ss,{className:"toolbar dashed-card mt-20",children:[(0,x.jsx)(r.Ss,{className:"star-badge"}),(0,x.jsxs)(r.Ss,{className:"tool-row",children:[(0,x.jsx)(r.EY,{className:"tool-label",children:"\u7f29\u653e"}),(0,x.jsxs)(r.Ss,{className:"flex-center",style:{gap:"20px"},children:[(0,x.jsx)(r.Ss,{className:"tool-btn",onTap:function(){return ne(_,-.1)},children:"\uff0d"}),(0,x.jsxs)(r.EY,{className:"tool-value",children:[Math.round(100*((null===(e=T.find(function(e){return e.id===_}))||void 0===e?void 0:e.scale)||1)),"%"]}),(0,x.jsx)(r.Ss,{className:"tool-btn",onTap:function(){return ne(_,.1)},children:"\uff0b"})]})]}),(0,x.jsxs)(r.Ss,{className:"tool-row",children:[(0,x.jsx)(r.EY,{className:"tool-label",children:"\u63d0\u793a"}),(0,x.jsx)(r.EY,{className:"tool-hint",children:"\u62d6\u52a8\u8c03\u6574\u4f4d\u7f6e\uff0c\u8d34\u7eb8\u4e0d\u53ef\u91cd\u53e0"})]})]}),(0,x.jsxs)(r.Ss,{className:"action-btns mt-20",children:[(0,x.jsx)(r.Ss,{className:"btn-gradient",onTap:function(){return L(!0)},children:(0,x.jsx)(r.EY,{children:"\u9884\u89c8\u6548\u679c"})}),(0,x.jsx)(r.Ss,{className:"btn-outline",onTap:Z,children:(0,x.jsx)(r.EY,{children:"\u6dfb\u52a0\u8d34\u7eb8"})})]}),B&&(0,x.jsx)(r.Ss,{className:"preview-overlay",children:(0,x.jsxs)(r.Ss,{className:"preview-card dashed-card",children:[(0,x.jsx)(r.Ss,{className:"star-badge"}),(0,x.jsx)(r.EY,{className:"preview-title",children:"\u786e\u8ba4\u6548\u679c"}),(0,x.jsx)(r.Ss,{className:"preview-canvas",style:ie(),children:T.map(function(e){return(0,x.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,x.jsxs)(r.Ss,{className:"product-info",children:[(0,x.jsx)(r.EY,{className:"product-name",children:v.name}),(0,x.jsxs)(r.EY,{className:"product-size",children:["\u753b\u5e03\u5c3a\u5bf8: ",v.mask.width," \xd7 ",v.mask.height," px"]}),Q&&(0,x.jsx)(r.EY,{className:"overlap-hint",children:"\u8d34\u7eb8\u6709\u91cd\u53e0\uff0c\u4e0d\u53ef\u63d0\u4ea4"})]}),(0,x.jsxs)(r.Ss,{className:"preview-actions",children:[(0,x.jsx)(r.Ss,{className:"btn-outline",onTap:function(){return L(!1)},children:(0,x.jsx)(r.EY,{children:"\u8fd4\u56de\u4fee\u6539"})}),(0,x.jsx)(r.Ss,{className:"btn-gradient ".concat(Q?"disabled":""),onTap:ce,children:(0,x.jsx)(r.EY,{children:"\u786e\u8ba4\u5b8c\u6210"})})]})]})}),(0,x.jsx)(r.Ss,{style:{height:"40px"}})]})}):(0,x.jsx)(r.Ss,{className:"theme-".concat(a),children:(0,x.jsx)(r.Ss,{className:"diy-page",children:(0,x.jsx)(r.EY,{className:"page-title",children:"\u52a0\u8f7d\u4e2d..."})})})}var g={};Page((0,n.createPageConfig)(v,"pages/diy/index",{root:{cn:[]}},g||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(8955)});e.O()}]);