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

1 line
8.2 KiB
JavaScript

"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[339],{9519:function(e,s,t){var n=t(7842),i=t(9379),a=t(5544),c=t(118),r=t(758),l=t.n(r),o=t(6540),d=t(8594),u=t(9703),h=t(9201),v=t(5414),f=t(9674),m=t(4848),x=function(e,s,t){return Math.min(Math.max(e,s),t)};function g(){var e=(0,u.wR)(),s=e.resolvedTheme,t=(0,h.c)();(0,v.l)(s);var n=(0,o.useState)(""),r=(0,a.A)(n,2),g=r[0],S=r[1],j=(0,o.useState)(""),w=(0,a.A)(j,2),N=w[0],p=w[1],T=(0,o.useState)(null),k=(0,a.A)(T,2),b=k[0],y=k[1],A=(0,o.useState)(0),E=(0,a.A)(A,2),Y=E[0],M=E[1],C=(0,o.useState)(0),I=(0,a.A)(C,2),R=I[0],P=I[1],q=(0,o.useState)(0),D=(0,a.A)(q,2),F=D[0],Q=D[1],B=(0,o.useState)(!1),J=(0,a.A)(B,2),O=J[0],X=J[1],_=(0,o.useState)(!1),z=(0,a.A)(_,2),H=z[0],G=z[1],K=((0,o.useRef)(null),(0,o.useRef)(null)),L=(0,o.useRef)(null),U=(0,o.useRef)({width:0,height:0}),V=(0,o.useCallback)(function(e){H||l().nextTick(function(){var s=l().createSelectorQuery();s.select("#editCanvas").fields({node:!0,size:!0}).exec(function(s){var t,n,i,a=null===s||void 0===s||null===(t=s[0])||void 0===t?void 0:t.node;if(a){var c=a.getContext("2d"),r=(null===(n=s[0])||void 0===n?void 0:n.width)||300,o=(null===(i=s[0])||void 0===i?void 0:i.height)||400;r<=0&&(r=300),o<=0&&(o=400);var d=l().getSystemInfoSync().pixelRatio||1;a.width=Math.round(r*d),a.height=Math.round(o*d),c.scale(d,d),L.current=a,K.current=c,U.current={width:r,height:o},G(!0),W(c,r,o,e)}else setTimeout(function(){return V(e)},300)})})},[H]);(0,o.useEffect)(function(){var e,s,t=null===(e=l().getCurrentInstance().router)||void 0===e?void 0:e.params,n=null===t||void 0===t?void 0:t.designId,i=null===t||void 0===t?void 0:t.stickerId;S(n),p(i);var a,c,r,o=(0,d.p_)(),u=o.find(function(e){return e.id===n}),h=null===u||void 0===u||null===(s=u.designData)||void 0===s||null===(s=s.stickers)||void 0===s?void 0:s.find(function(e){return e.id===i});h&&(y(h),M((null===(a=h.edits)||void 0===a?void 0:a.brightness)||0),P((null===(c=h.edits)||void 0===c?void 0:c.hue)||0),Q((null===(r=h.edits)||void 0===r?void 0:r.contrast)||0),V(h))},[V]);var W=function(e,s,t,n,i){if(e&&L.current){var a=L.current;if(s&&t){var c=n.width||200,r=n.height||200,o=a.createImage();o.onload=function(){var n,a,l;e.clearRect(0,0,s,t),e.save();var d=.9*Math.min(s/c,t/r,4),u=c*d,h=r*d,v=(s-u)/2,f=(t-h)/2,m=null!==(n=null===i||void 0===i?void 0:i.brightness)&&void 0!==n?n:Y,x=null!==(a=null===i||void 0===i?void 0:i.hue)&&void 0!==a?a:R,g=null!==(l=null===i||void 0===i?void 0:i.contrast)&&void 0!==l?l:F;e.filter=0!==m||0!==x||0!==g?"brightness(".concat(100+m,"%) hue-rotate(").concat(x,"deg) contrast(").concat(100+g,"%)"):"none",e.drawImage(o,v,f,u,h),e.restore()},o.onerror=function(e){console.error("Canvas load image error:",e,n.src),l().showToast({title:"\u56fe\u7247\u52a0\u8f7d\u5931\u8d25",icon:"none"})},n.src&&(o.src=n.src)}}},Z=function(){if(b&&K.current&&L.current){var e=U.current,s=e.width,t=e.height;W(K.current,s,t,b,{brightness:Y,hue:R,contrast:F})}};(0,o.useEffect)(function(){Z()},[Y,R,F]);var $=function(){b&&g&&(X(!0),l().canvasToTempFilePath({canvas:L.current,quality:.92,success:function(e){var s,t=e.tempFilePath,n=(0,d.p_)(),a=n.findIndex(function(e){return e.id===g});if(-1!==a){var c=(null===(s=n[a].designData)||void 0===s?void 0:s.stickers)||[],r=c.findIndex(function(e){return e.id===N});-1!==r?(c[r]=(0,i.A)((0,i.A)({},c[r]),{},{src:t,edits:{brightness:Y,hue:R,contrast:F}}),(0,d.i5)(g,{designData:(0,i.A)((0,i.A)({},n[a].designData),{},{stickers:c})}),l().showToast({title:"\u4fdd\u5b58\u6210\u529f",icon:"success"}),l().navigateBack()):X(!1)}else X(!1)},fail:function(){X(!1),l().showToast({title:"\u4fdd\u5b58\u5931\u8d25",icon:"none"})}}))},ee=function(){b&&(l().cropImage?l().cropImage({src:b.src,cropScale:"1:1",success:function(e){var s=(0,i.A)((0,i.A)({},b),{},{src:e.tempFilePath});y(s),setTimeout(function(){return Z()},200)}}):l().showToast({title:"\u5f53\u524d\u5fae\u4fe1\u7248\u672c\u4e0d\u652f\u6301\u88c1\u526a",icon:"none"}))},se="https://your-api-domain.com",te=function(){b&&(X(!0),l().uploadFile({url:"".concat(se,"/api/sketch"),filePath:b.src,name:"image",success:function(e){try{var s=JSON.parse(e.data);if(!s.url)throw new Error("no url");var t=(0,i.A)((0,i.A)({},b),{},{src:s.url,edits:(0,i.A)((0,i.A)({},b.edits),{},{sketchSrc:s.url})});y(t),setTimeout(function(){return Z()},200),l().showToast({title:"\u7ebf\u7a3f\u751f\u6210\u6210\u529f",icon:"success"})}catch(e){ne()}},fail:function(){ne()}}))},ne=function(){b&&K.current?(l().showToast({title:"\u4f7f\u7528\u672c\u5730\u7ebf\u7a3f",icon:"none"}),M(20),Q(80),P(0),X(!1)):X(!1)},ie="".concat((Y+100)/200*100,"%"),ae="".concat((R+180)/360*100,"%"),ce="".concat((F+100)/200*100,"%");return(0,m.jsxs)(c.Ss,{className:"theme-".concat(s),children:[(0,m.jsx)(f.A,{}),(0,m.jsxs)(c.Ss,{className:"sticker-edit-page",children:[(0,m.jsxs)(c.Ss,{className:"edit-header",style:{paddingTop:"".concat(t.headerPaddingTop,"px")},children:[(0,m.jsx)(c.EY,{className:"edit-back",onTap:function(){return l().navigateBack()},children:"\u2190"}),(0,m.jsx)(c.EY,{className:"edit-title",children:"\u7f16\u8f91\u8d34\u7eb8"}),(0,m.jsx)(c.EY,{className:"edit-save",onTap:$,children:"\u4fdd\u5b58"})]}),(0,m.jsx)(c.Ss,{className:"edit-canvas-wrap",children:(0,m.jsx)(c.Hl,{id:"editCanvas",type:"2d",className:"edit-canvas",style:{width:"100%",height:"400px"}})}),(0,m.jsxs)(c.Ss,{className:"edit-tools dashed-card mt-20",children:[(0,m.jsxs)(c.Ss,{className:"edit-row",children:[(0,m.jsx)(c.EY,{className:"edit-label",children:"\u5feb\u901f\u64cd\u4f5c"}),(0,m.jsxs)(c.Ss,{className:"edit-quick-actions",children:[(0,m.jsx)(c.Ss,{className:"quick-btn",onTap:ee,children:(0,m.jsx)(c.EY,{children:"\u88c1\u526a"})}),(0,m.jsx)(c.Ss,{className:"quick-btn",onTap:te,children:(0,m.jsx)(c.EY,{children:"\u8f6c\u7ebf\u7a3f"})})]})]}),(0,m.jsxs)(c.Ss,{className:"edit-row slider-row",onTouchMove:function(e){var s=e.changedTouches[0].clientX,t=l().createSelectorQuery().in(e.currentTarget);t.select(".slider-track").boundingClientRect(function(e){if(e){var t=x((s-e.left)/e.width,0,1),n=1*Math.round((200*t-100)/1);M(x(n,-100,100))}}).exec()},children:[(0,m.jsx)(c.EY,{className:"edit-label",children:"\u4eae\u5ea6"}),(0,m.jsxs)(c.Ss,{className:"slider-wrap",children:[(0,m.jsxs)(c.Ss,{className:"slider-track",children:[(0,m.jsx)(c.Ss,{className:"slider-fill",style:{width:ie}}),(0,m.jsx)(c.Ss,{className:"slider-thumb",style:{left:ie}})]}),(0,m.jsx)(c.EY,{className:"slider-value",children:Y>0?"+".concat(Y):Y})]})]}),(0,m.jsxs)(c.Ss,{className:"edit-row slider-row",onTouchMove:function(e){var s=e.changedTouches[0].clientX,t=l().createSelectorQuery().in(e.currentTarget);t.select(".slider-track").boundingClientRect(function(e){if(e){var t=x((s-e.left)/e.width,0,1),n=1*Math.round((360*t-180)/1);P(x(n,-180,180))}}).exec()},children:[(0,m.jsx)(c.EY,{className:"edit-label",children:"\u8272\u76f8"}),(0,m.jsxs)(c.Ss,{className:"slider-wrap",children:[(0,m.jsxs)(c.Ss,{className:"slider-track",children:[(0,m.jsx)(c.Ss,{className:"slider-fill",style:{width:ae}}),(0,m.jsx)(c.Ss,{className:"slider-thumb",style:{left:ae}})]}),(0,m.jsx)(c.EY,{className:"slider-value",children:R>0?"+".concat(R):R})]})]}),(0,m.jsxs)(c.Ss,{className:"edit-row slider-row",onTouchMove:function(e){var s=e.changedTouches[0].clientX,t=l().createSelectorQuery().in(e.currentTarget);t.select(".slider-track").boundingClientRect(function(e){if(e){var t=x((s-e.left)/e.width,0,1),n=1*Math.round((200*t-100)/1);Q(x(n,-100,100))}}).exec()},children:[(0,m.jsx)(c.EY,{className:"edit-label",children:"\u5bf9\u6bd4\u5ea6"}),(0,m.jsxs)(c.Ss,{className:"slider-wrap",children:[(0,m.jsxs)(c.Ss,{className:"slider-track",children:[(0,m.jsx)(c.Ss,{className:"slider-fill",style:{width:ce}}),(0,m.jsx)(c.Ss,{className:"slider-thumb",style:{left:ce}})]}),(0,m.jsx)(c.EY,{className:"slider-value",children:F>0?"+".concat(F):F})]})]})]}),(0,m.jsx)(c.Ss,{style:{flex:1}}),O&&(0,m.jsx)(c.Ss,{className:"edit-loading",children:(0,m.jsx)(c.EY,{className:"edit-loading-text",children:"\u5904\u7406\u4e2d\u2026"})})]})]})}var S={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u7f16\u8f91\u8d34\u7eb8"};Page((0,n.createPageConfig)(g,"pages/diy/stickerEdit/index",{root:{cn:[]}},S||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(9519)});e.O()}]);