diff --git a/README.md b/README.md index 7f06a51..996bbbe 100644 --- a/README.md +++ b/README.md @@ -30,8 +30,8 @@ smart-engraving-miniapp/ │ │ └── index.ts # TypeScript 类型定义(ProductCategory、DesignItem、OrderItem 等) │ ├── utils/ │ │ ├── productConfig.ts # 产品品类配置(5 个品类 + iconImg 映射) -│ │ ├── store.ts # Data Access 层(Storage 读写,openid 隔离) -│ │ ├── api.ts / request.ts # 后端 HTTP 封装(wx.request + token) +│ │ ├── store/ # Data Access 层(按域拆分,openid 隔离) +│ │ ├── api/ # 后端 HTTP 封装(按域拆分,wx.request + token) │ │ ├── authState.ts # 登录态校验缓存(isAuthVerified / invalidateAuthCache) │ │ └── themeBackground.ts # 页面窗口背景同步(backgroundColorTop/Bottom) │ ├── context/ @@ -139,16 +139,16 @@ smart-engraving-miniapp/ ### 前端 DA 层设计 -所有数据操作通过 `src/utils/store.ts` 抽象: +所有数据操作通过 `src/utils/store/` 抽象(按域拆分,详见 `docs/parallel-development-guide.md`): ``` pages/ └─ 调用 store.getDesignList() / addDesign() / designToOrder() 等业务接口 - └─ store.ts 内封装 Taro.getStorageSync / setStorageSync + └─ store/.ts 内封装 Taro.getStorageSync / setStorageSync └─ key = ${scope}_${openid} 实现多用户数据隔离 ``` -**后端替换方案**:上线时只需重写 `store.ts` 中的函数为 `wx.request` HTTP 调用,页面层零改动。 +**后端替换方案**:按域在 `store/.ts` 与 `api/.ts` 中替换为 HTTP 调用,页面层零改动。 ### Icon 系统(emoji 已完全移除) diff --git a/dist/app.js b/dist/app.js index bdeb100..d5c6a7a 100644 --- a/dist/app.js +++ b/dist/app.js @@ -1,2 +1,2 @@ /*! For license information please see app.js.LICENSE.txt */ -require("./common"),require("./vendors"),require("./taro"),require("./runtime"),(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[524],{4247:function(e,n,t){"use strict";t(6882);var r=t(7842),l=t(1291),a=t(758),u=t.n(a),i=t(3029),o=t(2901),s=t(6919),c=t(5501),f=t(6540),d=t.t(f,2),p=t(9703),h=t(8594),g=t(6606),m=t(3246),v=t(1212),b=t(467),y=null;function S(){return y||(y=k().finally(function(){y=null}),y)}function k(){return x.apply(this,arguments)}function x(){return x=(0,b.A)((0,v.A)().m(function e(){var n,t,r,l;return(0,v.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(n=(0,h.Q4)(),null!==n&&void 0!==n&&n.openid&&!(0,h.Ic)(n.openid)){e.n=1;break}return e.a(2,!1);case 1:return e.p=1,e.n=2,u().login();case 2:if(t=e.v,t.code){e.n=3;break}return e.a(2,!1);case 3:return e.n=4,m.Ay.post("/api/auth/login",{code:t.code},{auth:!1,skipAuthRefresh:!0});case 4:if(r=e.v,null!==r&&void 0!==r&&r.accessToken){e.n=5;break}return e.a(2,!1);case 5:return(0,m.WG)(r.accessToken),e.n=6,m.Ay.get("/api/users/me",{skipAuthRefresh:!0});case 6:if(l=e.v,(null===l||void 0===l?void 0:l.openid)!==n.openid){e.n=7;break}return e.a(2,!0);case 7:return(0,m.L)(),(0,h.Hf)(),e.a(2,!1);case 8:return e.p=8,e.v,e.a(2,!1)}},e,null,[[1,8]])})),x.apply(this,arguments)}function w(){return z.apply(this,arguments)}function z(){return z=(0,b.A)((0,v.A)().m(function e(){var n,t,r;return(0,v.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(n=(0,h.Q4)(),null!==n&&void 0!==n&&n.openid&&!(0,h.Ic)(n.openid)){e.n=1;break}return e.a(2,!1);case 1:if((0,m.gf)()){e.n=2;break}return e.a(2,S());case 2:return e.p=2,e.n=3,m.Ay.get("/api/users/me",{skipAuthRefresh:!0});case 3:return e.a(2,!0);case 4:if(e.p=4,r=e.v,t=null===r||void 0===r?void 0:r.statusCode,401!==t){e.n=5;break}return e.a(2,S());case 5:return e.a(2,!!(0,m.gf)())}},e,null,[[2,4]])})),z.apply(this,arguments)}var N=t(4848),E=function(e){function n(){return(0,i.A)(this,n),(0,s.A)(this,n,arguments)}return(0,c.A)(n,e),(0,o.A)(n,[{key:"componentDidMount",value:function(){(0,g.G)((0,h.eW)((0,h.O4)())),(0,m.q)(S),w()}},{key:"componentDidShow",value:function(){}},{key:"componentDidHide",value:function(){}},{key:"render",value:function(){return(0,N.jsx)(p.NP,{children:this.props.children})}}])}(f.Component),P=E,C=t(7260),_={darkmode:!0,themeLocation:"theme.json",pages:["pages/index/index","pages/shop/index","pages/shop/detail/index","pages/product/index","pages/diy/index","pages/diy/stickerEdit/index","pages/checkout/index","pages/designList/index","pages/orders/index","pages/profile/index","pages/service/index","pages/wordcloud/index","pages/orderDetail/index","pages/address/index","pages/settings/index","pages/agreement/index","pages/userDatabase/index"],window:{backgroundTextStyle:"dark",navigationStyle:"custom",navigationBarBackgroundColor:"#faf7f2",backgroundColor:"#faf7f2",backgroundColorTop:"#faf7f2",backgroundColorBottom:"#faf7f2",navigationBarTextStyle:"black"},tabBar:{custom:!0,list:[{pagePath:"pages/index/index",text:"\u9996\u9875"},{pagePath:"pages/shop/index",text:"\u5546\u54c1"},{pagePath:"pages/designList/index",text:"\u8bbe\u8ba1\u6e05\u5355"},{pagePath:"pages/orders/index",text:"\u8ba2\u5355"},{pagePath:"pages/profile/index",text:"\u6211\u7684"}]}};r.window.__taroAppConfig=_;App((0,l.ND)(P,d,C.Ay,_));(0,a.initPxTransform)({designWidth:750,deviceRatio:{640:1.17,750:1,828:.905},baseFontSize:20,unitPrecision:void 0,targetUnit:void 0})},735:function(e,n){"use strict";n.DefaultEventPriority=16},2935:function(e,n,t){e.exports=function(e){var n={},r=t(6540),l=t(8585),a=Object.assign;function u(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;ti||l[u]!==a[i]){var o="\n"+l[u].replace(" at new "," at ");return e.displayName&&o.includes("")&&(o=o.replace("",e.displayName)),o}}while(1<=u&&0<=i);break}}}finally{nn=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?en(e):""}var rn=Object.prototype.hasOwnProperty,ln=[],an=-1;function un(e){return{current:e}}function on(e){0>an||(e.current=ln[an],ln[an]=null,an--)}function sn(e,n){an++,ln[an]=e.current,e.current=n}var cn={},fn=un(cn),dn=un(!1),pn=cn;function hn(e,n){var t=e.type.contextTypes;if(!t)return cn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l,a={};for(l in t)a[l]=n[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=a),a}function gn(e){return e=e.childContextTypes,null!==e&&void 0!==e}function mn(){on(dn),on(fn)}function vn(e,n,t){if(fn.current!==cn)throw Error(u(168));sn(fn,n),sn(dn,t)}function bn(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,"function"!==typeof r.getChildContext)return t;for(var l in r=r.getChildContext(),r)if(!(l in n))throw Error(u(108,z(e)||"Unknown",l));return a({},t,r)}function yn(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cn,pn=fn.current,sn(fn,e),sn(dn,dn.current),!0}function Sn(e,n,t){var r=e.stateNode;if(!r)throw Error(u(169));t?(e=bn(e,n,pn),r.__reactInternalMemoizedMergedChildContext=e,on(dn),on(fn),sn(fn,e)):on(dn),sn(dn,t)}var kn=Math.clz32?Math.clz32:zn,xn=Math.log,wn=Math.LN2;function zn(e){return e>>>=0,0===e?32:31-(xn(e)/wn|0)|0}var Nn=64,En=4194304;function Pn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Cn(e,n){var t=e.pendingLanes;if(0===t)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,u=268435455&t;if(0!==u){var i=u&~l;0!==i?r=Pn(i):(a&=u,0!==a&&(r=Pn(a)))}else u=t&~l,0!==u?r=Pn(u):0!==a&&(r=Pn(a));if(0===r)return 0;if(0!==n&&n!==r&&0===(n&l)&&(l=r&-r,a=n&-n,l>=a||16===l&&0!==(4194240&a)))return n;if(0!==(4&r)&&(r|=16&t),n=e.entangledLanes,0!==n)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function Rn(e,n,t){e.pendingLanes|=n,536870912!==n&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-kn(n),e[n]=t}function Fn(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0>=u,l-=u,At=1<<32-kn(n)+l|t<d?(p=f,f=null):p=f.sibling;var h=m(l,f,i[d],o);if(null===h){null===f&&(f=p);break}e&&f&&null===h.alternate&&n(l,f),u=a(h,u,d),null===c?s=h:c.sibling=h,c=h,f=p}if(d===i.length)return t(l,f),Jt&&Ot(l,d),s;if(null===f){for(;dp?(h=d,d=null):h=d.sibling;var y=m(l,d,b.value,s);if(null===y){null===d&&(d=h);break}e&&d&&null===y.alternate&&n(l,d),i=a(y,i,p),null===f?c=y:f.sibling=y,f=y,d=h}if(b.done)return t(l,d),Jt&&Ot(l,p),c;if(null===d){for(;!b.done;p++,b=o.next())b=g(l,b.value,s),null!==b&&(i=a(b,i,p),null===f?c=b:f.sibling=b,f=b);return Jt&&Ot(l,p),c}for(d=r(l,d);!b.done;p++,b=o.next())b=v(d,l,p,b.value,s),null!==b&&(e&&null!==b.alternate&&d.delete(null===b.key?p:b.key),i=a(b,i,p),null===f?c=b:f.sibling=b,f=b);return e&&d.forEach(function(e){return n(l,e)}),Jt&&Ot(l,p),c}function k(e,r,a,u){if("object"===typeof a&&null!==a&&a.type===c&&null===a.key&&(a=a.props.children),"object"===typeof a&&null!==a){switch(a.$$typeof){case o:e:{for(var f=a.key,d=r;null!==d;){if(d.key===f){if(f=a.type,f===c){if(7===d.tag){t(e,d.sibling),r=l(d,a.props.children),r.return=e,e=r;break e}}else if(d.elementType===f||"object"===typeof f&&null!==f&&f.$$typeof===y&&sr(f)===d.type){t(e,d.sibling),r=l(d,a.props),r.ref=ir(e,d,a),r.return=e,e=r;break e}t(e,d);break}n(e,d),d=d.sibling}a.type===c?(r=pi(a.props.children,e.mode,u,a.key),r.return=e,e=r):(u=di(a.type,a.key,a.props,null,e.mode,u),u.ref=ir(e,r,a),u.return=e,e=u)}return i(e);case s:e:{for(d=a.key;null!==r;){if(r.key===d){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){t(e,r.sibling),r=l(r,a.children||[]),r.return=e,e=r;break e}t(e,r);break}n(e,r),r=r.sibling}r=mi(a,e.mode,u),r.return=e,e=r}return i(e);case y:return d=a._init,k(e,r,d(a._payload),u)}if(T(a))return b(e,r,a,u);if(x(a))return S(e,r,a,u);or(e,a)}return"string"===typeof a&&""!==a||"number"===typeof a?(a=""+a,null!==r&&6===r.tag?(t(e,r.sibling),r=l(r,a),r.return=e,e=r):(t(e,r),r=gi(a,e.mode,u),r.return=e,e=r),i(e)):t(e,r)}return k}var fr=cr(!0),dr=cr(!1),pr={},hr=un(pr),gr=un(pr),mr=un(pr);function vr(e){if(e===pr)throw Error(u(174));return e}function br(e,n){sn(mr,n),sn(gr,e),sn(hr,pr),e=F(n),on(hr),sn(hr,e)}function yr(){on(hr),on(gr),on(mr)}function Sr(e){var n=vr(mr.current),t=vr(hr.current);n=U(t,e.type,n),t!==n&&(sn(gr,e),sn(hr,n))}function kr(e){gr.current===e&&(on(hr),on(gr))}var xr=un(0);function wr(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(t=t.dehydrated,null===t||Me(t)||De(t)))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!==(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var zr=[];function Nr(){for(var e=0;et?t:4,e(!0);var r=Pr.transition;Pr.transition={};try{e(!1),n()}finally{Mn=t,Pr.transition=r}}function dl(){return Wr().memoizedState}function pl(e,n,t){var r=Lu(e);t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},gl(e)?ml(n,t):(vl(e,n,t),t=_u(),e=Iu(e,r,t),null!==e&&bl(e,n,r))}function hl(e,n,t){var r=Lu(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(gl(e))ml(n,l);else{vl(e,n,l);var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&(a=n.lastRenderedReducer,null!==a))try{var u=n.lastRenderedState,i=a(u,t);if(l.hasEagerState=!0,l.eagerState=i,Kn(i,u))return}catch(e){}t=_u(),e=Iu(e,r,t),null!==e&&bl(e,n,r)}}function gl(e){var n=e.alternate;return e===_r||null!==n&&n===_r}function ml(e,n){Rr=Tr=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function vl(e,n,t){null!==ru&&0!==(1&e.mode)&&0===(2&tu)?(e=n.interleaved,null===e?(t.next=t,null===bt?bt=[n]:bt.push(n)):(t.next=e.next,e.next=t),n.interleaved=t):(e=n.pending,null===e?t.next=t:(t.next=e.next,e.next=t),n.pending=t)}function bl(e,n,t){if(0!==(4194240&t)){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,Un(e,t)}}var yl={readContext:vt,useCallback:Mr,useContext:Mr,useEffect:Mr,useImperativeHandle:Mr,useInsertionEffect:Mr,useLayoutEffect:Mr,useMemo:Mr,useReducer:Mr,useRef:Mr,useState:Mr,useDebugValue:Mr,useDeferredValue:Mr,useTransition:Mr,useMutableSource:Mr,useSyncExternalStore:Mr,useId:Mr,unstable_isNewReconciler:!1},Sl={readContext:vt,useCallback:function(e,n){return Br().memoizedState=[e,void 0===n?null:n],e},useContext:vt,useEffect:tl,useImperativeHandle:function(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,el(4194308,4,ul.bind(null,n,e),t)},useLayoutEffect:function(e,n){return el(4194308,4,e,n)},useInsertionEffect:function(e,n){return el(4,2,e,n)},useMemo:function(e,n){var t=Br();return n=void 0===n?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=Br();return n=void 0!==t?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=pl.bind(null,_r,e),[r.memoizedState,e]},useRef:function(e){var n=Br();return e={current:e},n.memoizedState=e},useState:Kr,useDebugValue:ol,useDeferredValue:function(e){var n=Kr(e),t=n[0],r=n[1];return tl(function(){var n=Pr.transition;Pr.transition={};try{r(e)}finally{Pr.transition=n}},[e]),t},useTransition:function(){var e=Kr(!1),n=e[0];return e=fl.bind(null,e[1]),Br().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=_r,l=Br();if(Jt){if(void 0===t)throw Error(u(407));t=t()}else{if(t=n(),null===ru)throw Error(u(349));0!==(30&Cr)||qr(r,n,t)}l.memoizedState=t;var a={value:t,getSnapshot:n};return l.queue=a,tl(Yr.bind(null,r,a,e),[e]),r.flags|=2048,Xr(9,Gr.bind(null,r,a,t,n),void 0,null),t},useId:function(){var e=Br(),n=ru.identifierPrefix;if(Jt){var t=jt,r=At;t=(r&~(1<<32-kn(r)-1)).toString(32)+t,n=":"+n+"R"+t,t=Fr++,0mu&&(n.flags|=128,r=!0,Ql(l,!1),n.lanes=4194304)}else{if(!r)if(e=wr(a),null!==e){if(n.flags|=128,r=!0,e=e.updateQueue,null!==e&&(n.updateQueue=e,n.flags|=4),Ql(l,!0),null===l.tail&&"hidden"===l.tailMode&&!a.alternate&&!Jt)return Hl(n),null}else 2*An()-l.renderingStartTime>mu&&1073741824!==t&&(n.flags|=128,r=!0,Ql(l,!1),n.lanes=4194304);l.isBackwards?(a.sibling=n.child,n.child=a):(e=l.last,null!==e?e.sibling=a:n.child=a,l.last=a)}return null!==l.tail?(n=l.tail,l.rendering=n,l.tail=n.sibling,l.renderingStartTime=An(),n.sibling=null,e=xr.current,sn(xr,r?1&e|2:1&e),n):(Hl(n),null);case 22:case 23:return Wu(),r=null!==n.memoizedState,null!==e&&null!==e.memoizedState!==r&&(n.flags|=8192),r&&0!==(1&n.mode)?0!==(1073741824&uu)&&(Hl(n),G&&6&n.subtreeFlags&&(n.flags|=8192)):Hl(n),null;case 24:return null;case 25:return null}throw Error(u(156,n.tag))}var Wl=i.ReactCurrentOwner,Al=!1;function jl(e,n,t,r){n.child=null===e?dr(n,null,t,r):fr(n,e.child,t,r)}function Ol(e,n,t,r,l){t=t.render;var a=n.ref;return mt(n,l),r=Qr(e,n,t,r,a,l),t=Hr(),null===e||Al?(Jt&&t&&Vt(n),n.flags|=1,jl(e,n,r,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ca(e,n,l))}function $l(e,n,t,r,l){if(null===e){var a=t.type;return"function"!==typeof a||si(a)||void 0!==a.defaultProps||null!==t.compare||void 0!==t.defaultProps?(e=di(t.type,null,r,n,n.mode,l),e.ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,Vl(e,n,a,r,l))}if(a=e.child,0===(e.lanes&l)){var u=a.memoizedProps;if(t=t.compare,t=null!==t?t:at,t(u,r)&&e.ref===n.ref)return ca(e,n,l)}return n.flags|=1,e=fi(a,r),e.ref=n.ref,e.return=n,n.child=e}function Vl(e,n,t,r,l){if(null!==e&&at(e.memoizedProps,r)&&e.ref===n.ref){if(Al=!1,0===(e.lanes&l))return n.lanes=e.lanes,ca(e,n,l);0!==(131072&e.flags)&&(Al=!0)}return Yl(e,n,t,r,l)}function ql(e,n,t){var r=n.pendingProps,l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&n.mode))n.memoizedState={baseLanes:0,cachePool:null},sn(iu,uu),uu|=t;else{if(0===(1073741824&t))return e=null!==a?a.baseLanes|t:t,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null},n.updateQueue=null,sn(iu,uu),uu|=e,null;n.memoizedState={baseLanes:0,cachePool:null},r=null!==a?a.baseLanes:t,sn(iu,uu),uu|=r}else null!==a?(r=a.baseLanes|t,n.memoizedState=null):r=t,sn(iu,uu),uu|=r;return jl(e,n,l,t),n.child}function Gl(e,n){var t=n.ref;(null===e&&null!==t||null!==e&&e.ref!==t)&&(n.flags|=512,n.flags|=2097152)}function Yl(e,n,t,r,l){var a=gn(t)?pn:fn.current;return a=hn(n,a),mt(n,l),t=Qr(e,n,t,r,a,l),r=Hr(),null===e||Al?(Jt&&r&&Vt(n),n.flags|=1,jl(e,n,t,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ca(e,n,l))}function Jl(e,n,t,r,l){if(gn(t)){var a=!0;yn(n)}else a=!1;if(mt(n,l),null===n.stateNode)null!==e&&(e.alternate=null,n.alternate=null,n.flags|=2),Tt(n,t,r),Ft(n,t,r,l),r=!0;else if(null===e){var u=n.stateNode,i=n.memoizedProps;u.props=i;var o=u.context,s=t.contextType;"object"===typeof s&&null!==s?s=vt(s):(s=gn(t)?pn:fn.current,s=hn(n,s));var c=t.getDerivedStateFromProps,f="function"===typeof c||"function"===typeof u.getSnapshotBeforeUpdate;f||"function"!==typeof u.UNSAFE_componentWillReceiveProps&&"function"!==typeof u.componentWillReceiveProps||(i!==r||o!==s)&&Rt(n,u,r,s),yt=!1;var d=n.memoizedState;u.state=d,Et(n,r,u,l),o=n.memoizedState,i!==r||d!==o||dn.current||yt?("function"===typeof c&&(_t(n,t,c,r),o=n.memoizedState),(i=yt||It(n,t,i,r,d,o,s))?(f||"function"!==typeof u.UNSAFE_componentWillMount&&"function"!==typeof u.componentWillMount||("function"===typeof u.componentWillMount&&u.componentWillMount(),"function"===typeof u.UNSAFE_componentWillMount&&u.UNSAFE_componentWillMount()),"function"===typeof u.componentDidMount&&(n.flags|=4194308)):("function"===typeof u.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=o),u.props=r,u.state=o,u.context=s,r=i):("function"===typeof u.componentDidMount&&(n.flags|=4194308),r=!1)}else{u=n.stateNode,kt(e,n),i=n.memoizedProps,s=n.type===n.elementType?i:it(n.type,i),u.props=s,f=n.pendingProps,d=u.context,o=t.contextType,"object"===typeof o&&null!==o?o=vt(o):(o=gn(t)?pn:fn.current,o=hn(n,o));var p=t.getDerivedStateFromProps;(c="function"===typeof p||"function"===typeof u.getSnapshotBeforeUpdate)||"function"!==typeof u.UNSAFE_componentWillReceiveProps&&"function"!==typeof u.componentWillReceiveProps||(i!==f||d!==o)&&Rt(n,u,r,o),yt=!1,d=n.memoizedState,u.state=d,Et(n,r,u,l);var h=n.memoizedState;i!==f||d!==h||dn.current||yt?("function"===typeof p&&(_t(n,t,p,r),h=n.memoizedState),(s=yt||It(n,t,s,r,d,h,o)||!1)?(c||"function"!==typeof u.UNSAFE_componentWillUpdate&&"function"!==typeof u.componentWillUpdate||("function"===typeof u.componentWillUpdate&&u.componentWillUpdate(r,h,o),"function"===typeof u.UNSAFE_componentWillUpdate&&u.UNSAFE_componentWillUpdate(r,h,o)),"function"===typeof u.componentDidUpdate&&(n.flags|=4),"function"===typeof u.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!==typeof u.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof u.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=h),u.props=r,u.state=h,u.context=o,r=s):("function"!==typeof u.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof u.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return Kl(e,n,t,r,a,l)}function Kl(e,n,t,r,l,a){Gl(e,n);var u=0!==(128&n.flags);if(!r&&!u)return l&&Sn(n,t,!1),ca(e,n,a);r=n.stateNode,Wl.current=n;var i=u&&"function"!==typeof t.getDerivedStateFromError?null:r.render();return n.flags|=1,null!==e&&u?(n.child=fr(n,e.child,null,a),n.child=fr(n,null,i,a)):jl(e,n,i,a),n.memoizedState=r.state,l&&Sn(n,t,!0),n.child}function Xl(e){var n=e.stateNode;n.pendingContext?vn(e,n.pendingContext,n.pendingContext!==n.context):n.context&&vn(e,n.context,!1),br(e,n.containerInfo)}function Zl(e,n,t,r,l){return ar(),ur(l),n.flags|=256,jl(e,n,t,r),n.child}var ea={dehydrated:null,treeContext:null,retryLane:0};function na(e){return{baseLanes:e,cachePool:null}}function ta(e,n,t){var r,l=n.pendingProps,a=xr.current,i=!1,o=0!==(128&n.flags);if((r=o)||(r=(null===e||null!==e.memoizedState)&&0!==(2&a)),r?(i=!0,n.flags&=-129):null!==e&&null===e.memoizedState||(a|=1),sn(xr,1&a),null===e)return tr(n),e=n.memoizedState,null!==e&&(e=e.dehydrated,null!==e)?(0===(1&n.mode)?n.lanes=1:De(e)?n.lanes=8:n.lanes=1073741824,null):(a=l.children,e=l.fallback,i?(l=n.mode,i=n.child,a={mode:"hidden",children:a},0===(1&l)&&null!==i?(i.childLanes=0,i.pendingProps=a):i=hi(a,l,0,null),e=pi(e,l,t,null),i.return=n,e.return=n,i.sibling=e,n.child=i,n.child.memoizedState=na(t),n.memoizedState=ea,e):ra(n,a));if(a=e.memoizedState,null!==a){if(r=a.dehydrated,null!==r){if(o)return 256&n.flags?(n.flags&=-257,ua(e,n,t,Error(u(422)))):null!==n.memoizedState?(n.child=e.child,n.flags|=128,null):(i=l.fallback,a=n.mode,l=hi({mode:"visible",children:l.children},a,0,null),i=pi(i,a,t,null),i.flags|=2,l.return=n,i.return=n,l.sibling=i,n.child=l,0!==(1&n.mode)&&fr(n,e.child,null,t),n.child.memoizedState=na(t),n.memoizedState=ea,i);if(0===(1&n.mode))n=ua(e,n,t,null);else if(De(r))n=ua(e,n,t,Error(u(419)));else if(l=0!==(t&e.childLanes),Al||l){if(l=ru,null!==l){switch(t&-t){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}l=0!==(i&(l.suspendedLanes|t))?0:i,0!==l&&l!==a.retryLane&&(a.retryLane=l,Iu(e,l,-1))}$u(),n=ua(e,n,t,Error(u(421)))}else Me(r)?(n.flags|=128,n.child=e.child,n=li.bind(null,e),Qe(r,n),n=null):(t=a.treeContext,J&&(Yt=Ae(r),Gt=n,Jt=!0,Xt=null,Kt=!1,null!==t&&(Ht[Bt++]=At,Ht[Bt++]=jt,Ht[Bt++]=Wt,At=t.id,jt=t.overflow,Wt=n)),n=ra(n,n.pendingProps.children),n.flags|=4096);return n}return i?(l=aa(e,n,l.children,l.fallback,t),i=n.child,a=e.child.memoizedState,i.memoizedState=null===a?na(t):{baseLanes:a.baseLanes|t,cachePool:null},i.childLanes=e.childLanes&~t,n.memoizedState=ea,l):(t=la(e,n,l.children,t),n.memoizedState=null,t)}return i?(l=aa(e,n,l.children,l.fallback,t),i=n.child,a=e.child.memoizedState,i.memoizedState=null===a?na(t):{baseLanes:a.baseLanes|t,cachePool:null},i.childLanes=e.childLanes&~t,n.memoizedState=ea,l):(t=la(e,n,l.children,t),n.memoizedState=null,t)}function ra(e,n){return n=hi({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function la(e,n,t,r){var l=e.child;return e=l.sibling,t=fi(l,{mode:"visible",children:t}),0===(1&n.mode)&&(t.lanes=r),t.return=n,t.sibling=null,null!==e&&(r=n.deletions,null===r?(n.deletions=[e],n.flags|=16):r.push(e)),n.child=t}function aa(e,n,t,r,l){var a=n.mode;e=e.child;var u=e.sibling,i={mode:"hidden",children:t};return 0===(1&a)&&n.child!==e?(t=n.child,t.childLanes=0,t.pendingProps=i,n.deletions=null):(t=fi(e,i),t.subtreeFlags=14680064&e.subtreeFlags),null!==u?r=fi(u,r):(r=pi(r,a,l,null),r.flags|=2),r.return=n,t.return=n,t.sibling=r,n.child=t,r}function ua(e,n,t,r){return null!==r&&ur(r),fr(n,e.child,null,t),e=ra(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function ia(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),gt(e.return,n,t)}function oa(e,n,t,r,l){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=t,a.tailMode=l)}function sa(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;if(jl(e,n,r.children,t),r=xr.current,0!==(2&r))r=1&r|2,n.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ia(e,t,n);else if(19===e.tag)ia(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(sn(xr,r),0===(1&n.mode))n.memoizedState=null;else switch(l){case"forwards":for(t=n.child,l=null;null!==t;)e=t.alternate,null!==e&&null===wr(e)&&(l=t),t=t.sibling;t=l,null===t?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),oa(n,!1,l,t,a);break;case"backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(e=l.alternate,null!==e&&null===wr(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}oa(n,!0,t,null,a);break;case"together":oa(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function ca(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),cu|=n.lanes,0===(t&n.childLanes))return null;if(null!==e&&n.child!==e.child)throw Error(u(153));if(null!==n.child){for(e=n.child,t=fi(e,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,t=t.sibling=fi(e,e.pendingProps),t.return=n;t.sibling=null}return n.child}function fa(e,n,t){switch(n.tag){case 3:Xl(n),ar();break;case 5:Sr(n);break;case 1:gn(n.type)&&yn(n);break;case 4:br(n,n.stateNode.containerInfo);break;case 10:pt(n,n.type._context,n.memoizedProps.value);break;case 13:var r=n.memoizedState;if(null!==r)return null!==r.dehydrated?(sn(xr,1&xr.current),n.flags|=128,null):0!==(t&n.child.childLanes)?ta(e,n,t):(sn(xr,1&xr.current),e=ca(e,n,t),null!==e?e.sibling:null);sn(xr,1&xr.current);break;case 19:if(r=0!==(t&n.childLanes),0!==(128&e.flags)){if(r)return sa(e,n,t);n.flags|=128}var l=n.memoizedState;if(null!==l&&(l.rendering=null,l.tail=null,l.lastEffect=null),sn(xr,xr.current),r)break;return null;case 22:case 23:return n.lanes=0,ql(e,n,t)}return ca(e,n,t)}function da(e,n){switch(qt(n),n.tag){case 1:return gn(n.type)&&mn(),e=n.flags,65536&e?(n.flags=-65537&e|128,n):null;case 3:return yr(),on(dn),on(fn),Nr(),e=n.flags,0!==(65536&e)&&0===(128&e)?(n.flags=-65537&e|128,n):null;case 5:return kr(n),null;case 13:if(on(xr),e=n.memoizedState,null!==e&&null!==e.dehydrated){if(null===n.alternate)throw Error(u(340));ar()}return e=n.flags,65536&e?(n.flags=-65537&e|128,n):null;case 19:return on(xr),null;case 4:return yr(),null;case 10:return ht(n.type._context),null;case 22:case 23:return Wu(),null;case 24:return null;default:return null}}var pa=!1,ha=!1,ga="function"===typeof WeakSet?WeakSet:Set,ma=null;function va(e,n){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(t){ni(e,n,t)}else t.current=null}function ba(e,n,t){try{t()}catch(t){ni(e,n,t)}}var ya=!1;function Sa(e,n){for(M(e.containerInfo),ma=n;null!==ma;)if(e=ma,n=e.child,0!==(1028&e.subtreeFlags)&&null!==n)n.return=e,ma=n;else for(;null!==ma;){e=ma;try{var t=e.alternate;if(0!==(1024&e.flags))switch(e.tag){case 0:case 11:case 15:break;case 1:if(null!==t){var r=t.memoizedProps,l=t.memoizedState,a=e.stateNode,i=a.getSnapshotBeforeUpdate(e.elementType===e.type?r:it(e.type,r),l);a.__reactInternalSnapshotBeforeUpdate=i}break;case 3:G&&Ne(e.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(u(163))}}catch(n){ni(e,e.return,n)}if(n=e.sibling,null!==n){n.return=e.return,ma=n;break}ma=e.return}return t=ya,ya=!1,t}function ka(e,n,t){var r=n.updateQueue;if(r=null!==r?r.lastEffect:null,null!==r){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,void 0!==a&&ba(n,t,a)}l=l.next}while(l!==r)}}function xa(e,n){if(n=n.updateQueue,n=null!==n?n.lastEffect:null,null!==n){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function wa(e){var n=e.ref;if(null!==n){var t=e.stateNode;switch(e.tag){case 5:e=R(t);break;default:e=t}"function"===typeof n?n(e):n.current=e}}function za(e,n,t){if(Gn&&"function"===typeof Gn.onCommitFiberUnmount)try{Gn.onCommitFiberUnmount(qn,n)}catch(e){}switch(n.tag){case 0:case 11:case 14:case 15:if(e=n.updateQueue,null!==e&&(e=e.lastEffect,null!==e)){var r=e=e.next;do{var l=r,a=l.destroy;l=l.tag,void 0!==a&&(0!==(2&l)||0!==(4&l))&&ba(n,t,a),r=r.next}while(r!==e)}break;case 1:if(va(n,t),e=n.stateNode,"function"===typeof e.componentWillUnmount)try{e.props=n.memoizedProps,e.state=n.memoizedState,e.componentWillUnmount()}catch(e){ni(n,t,e)}break;case 5:va(n,t);break;case 4:G?Ta(e,n,t):Y&&Y&&(n=n.stateNode.containerInfo,t=Pe(n),Le(n,t))}}function Na(e,n,t){for(var r=n;;)if(za(e,r,t),null===r.child||G&&4===r.tag){if(r===n)break;for(;null===r.sibling;){if(null===r.return||r.return===n)return;r=r.return}r.sibling.return=r.return,r=r.sibling}else r.child.return=r,r=r.child}function Ea(e){var n=e.alternate;null!==n&&(e.alternate=null,Ea(n)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(n=e.stateNode,null!==n&&ee(n)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Pa(e){return 5===e.tag||3===e.tag||4===e.tag}function Ca(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Pa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function _a(e){if(G){e:{for(var n=e.return;null!==n;){if(Pa(n))break e;n=n.return}throw Error(u(160))}var t=n;switch(t.tag){case 5:n=t.stateNode,32&t.flags&&(Se(n),t.flags&=-33),t=Ca(e),Ia(e,t,n);break;case 3:case 4:n=t.stateNode.containerInfo,t=Ca(e),La(e,t,n);break;default:throw Error(u(161))}}}function La(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?ve(t,e,n):de(t,e);else if(4!==r&&(e=e.child,null!==e))for(La(e,n,t),e=e.sibling;null!==e;)La(e,n,t),e=e.sibling}function Ia(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?me(t,e,n):fe(t,e);else if(4!==r&&(e=e.child,null!==e))for(Ia(e,n,t),e=e.sibling;null!==e;)Ia(e,n,t),e=e.sibling}function Ta(e,n,t){for(var r,l,a=n,i=!1;;){if(!i){i=a.return;e:for(;;){if(null===i)throw Error(u(160));switch(r=i.stateNode,i.tag){case 5:l=!1;break e;case 3:r=r.containerInfo,l=!0;break e;case 4:r=r.containerInfo,l=!0;break e}i=i.return}i=!0}if(5===a.tag||6===a.tag)Na(e,a,t),l?ye(r,a.stateNode):be(r,a.stateNode);else if(18===a.tag)l?Je(r,a.stateNode):Ye(r,a.stateNode);else if(4===a.tag){if(null!==a.child){r=a.stateNode.containerInfo,l=!0,a.child.return=a,a=a.child;continue}}else if(za(e,a,t),null!==a.child){a.child.return=a,a=a.child;continue}if(a===n)break;for(;null===a.sibling;){if(null===a.return||a.return===n)return;a=a.return,4===a.tag&&(i=!1)}a.sibling.return=a.return,a=a.sibling}}function Ra(e,n){if(G){switch(n.tag){case 0:case 11:case 14:case 15:return ka(3,n,n.return),xa(3,n),void ka(5,n,n.return);case 1:return;case 5:var t=n.stateNode;if(null!=t){var r=n.memoizedProps;e=null!==e?e.memoizedProps:r;var l=n.type,a=n.updateQueue;n.updateQueue=null,null!==a&&ge(t,a,l,e,r,n)}return;case 6:if(null===n.stateNode)throw Error(u(162));return t=n.memoizedProps,void pe(n.stateNode,null!==e?e.memoizedProps:t,t);case 3:return void(J&&null!==e&&e.memoizedState.isDehydrated&&qe(n.stateNode.containerInfo));case 12:return;case 13:return void Fa(n);case 19:return void Fa(n);case 17:return}throw Error(u(163))}switch(n.tag){case 0:case 11:case 14:case 15:return ka(3,n,n.return),xa(3,n),void ka(5,n,n.return);case 12:return;case 13:return void Fa(n);case 19:return void Fa(n);case 3:J&&null!==e&&e.memoizedState.isDehydrated&&qe(n.stateNode.containerInfo);break;case 22:case 23:return}e:if(Y){switch(n.tag){case 1:case 5:case 6:break e;case 3:case 4:n=n.stateNode,Le(n.containerInfo,n.pendingChildren);break e}throw Error(u(163))}}function Fa(e){var n=e.updateQueue;if(null!==n){e.updateQueue=null;var t=e.stateNode;null===t&&(t=e.stateNode=new ga),n.forEach(function(n){var r=ai.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))})}}function Ua(e,n){for(ma=n;null!==ma;){n=ma;var t=n.deletions;if(null!==t)for(var r=0;r";case Aa:return":has("+(Ya(e)||"")+")";case ja:return'[role="'+e.value+'"]';case $a:return'"'+e.value+'"';case Oa:return'[data-testname="'+e.value+'"]';default:throw Error(u(365))}}function Ja(e,n){var t=[];e=[e,0];for(var r=0;rl&&(l=i),r&=~a}if(r=l,r=An()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Xa(r/1960))-r,10e?16:e,null===wu)var r=!1;else{if(e=wu,wu=null,zu=0,0!==(6&tu))throw Error(u(331));var l=tu;for(tu|=4,ma=e.current;null!==ma;){var a=ma,i=a.child;if(0!==(16&ma.flags)){var o=a.deletions;if(null!==o){for(var s=0;sAn()-gu?Au(e,0):du|=t),Ru(e,n)}function ri(e,n){0===n&&(0===(1&e.mode)?n=1:(n=En,En<<=1,0===(130023424&En)&&(En=4194304)));var t=_u();e=Tu(e,n),null!==e&&(Rn(e,n,t),Ru(e,t))}function li(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),ri(e,t)}function ai(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(u(314))}null!==r&&r.delete(n),ri(e,t)}function ui(e,n){return Qn(e,n)}function ii(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function oi(e,n,t,r){return new ii(e,n,t,r)}function si(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ci(e){if("function"===typeof e)return si(e)?1:0;if(void 0!==e&&null!==e){if(e=e.$$typeof,e===g)return 11;if(e===b)return 14}return 2}function fi(e,n){var t=e.alternate;return null===t?(t=oi(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=14680064&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function di(e,n,t,r,l,a){var i=2;if(r=e,"function"===typeof e)si(e)&&(i=1);else if("string"===typeof e)i=5;else e:switch(e){case c:return pi(t.children,l,a,n);case f:i=8,l|=8;break;case d:return e=oi(12,t,n,2|l),e.elementType=d,e.lanes=a,e;case m:return e=oi(13,t,n,l),e.elementType=m,e.lanes=a,e;case v:return e=oi(19,t,n,l),e.elementType=v,e.lanes=a,e;case S:return hi(t,l,a,n);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case p:i=10;break e;case h:i=9;break e;case g:i=11;break e;case b:i=14;break e;case y:i=16,r=null;break e}throw Error(u(130,null==e?e:typeof e,""))}return n=oi(i,t,n,l),n.elementType=e,n.type=r,n.lanes=a,n}function pi(e,n,t,r){return e=oi(7,e,r,n),e.lanes=t,e}function hi(e,n,t,r){return e=oi(22,e,r,n),e.elementType=S,e.lanes=t,e.stateNode={},e}function gi(e,n,t){return e=oi(6,e,null,n),e.lanes=t,e}function mi(e,n,t){return n=oi(4,null!==e.children?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function vi(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=V,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Tn(0),this.expirationTimes=Tn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Tn(0),this.identifierPrefix=r,this.onRecoverableError=l,J&&(this.mutableSourceEagerHydrationData=null)}function bi(e,n,t,r,l,a,u,i,o){return e=new vi(e,n,t,i,o),1===n?(n=1,!0===a&&(n|=8)):n=0,a=oi(3,null,null,n),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null},St(a),e}function yi(e){if(!e)return cn;e=e._reactInternals;e:{if(N(e)!==e||1!==e.tag)throw Error(u(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(gn(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(null!==n);throw Error(u(171))}if(1===e.tag){var t=e.type;if(gn(t))return bn(e,t,n)}return n}function Si(e){var n=e._reactInternals;if(void 0===n){if("function"===typeof e.render)throw Error(u(188));throw e=Object.keys(e).join(","),Error(u(268,e))}return e=C(n),null===e?null:e.stateNode}function ki(e,n){if(e=e.memoizedState,null!==e&&null!==e.dehydrated){var t=e.retryLane;e.retryLane=0!==t&&t=c&&a>=d&&l<=f&&i<=p){e.splice(n,1);break}if(!(r!==c||t.width!==s.width||pi)){d>a&&(s.height+=d-a,s.y=a),pl)){c>r&&(s.width+=c-r,s.x=r),ft&&(t=i)),i ")+"\n\nNo matching component was found for:\n "+e.join(" > ")}return null},n.getPublicRootInstance=function(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return R(e.child.stateNode);default:return e.child.stateNode}},n.injectIntoDevTools=function(e){if(e={bundleType:e.bundleType,version:e.version,rendererPackageName:e.rendererPackageName,rendererConfig:e.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:i.ReactCurrentDispatcher,findHostInstanceByFiber:wi,findFiberByHostInstance:e.findFiberByHostInstance||zi,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},"undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)e=!1;else{var n=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(n.isDisabled||!n.supportsFiber)e=!0;else{try{qn=n.inject(e),Gn=n}catch(e){}e=!!n.checkDCE}}return e},n.isAlreadyRendering=function(){return!1},n.observeVisibleRects=function(e,n,t,r){if(!re)throw Error(u(363));e=Ka(e,n);var l=ce(e,t,r).disconnect;return{disconnect:function(){l()}}},n.registerMutableSourceForHydration=function(e,n){var t=n._getVersion;t=t(n._source),null==e.mutableSourceEagerHydrationData?e.mutableSourceEagerHydrationData=[n,t]:e.mutableSourceEagerHydrationData.push(n,t)},n.runWithPriority=function(e,n){var t=Mn;try{return Mn=e,n()}finally{Mn=t}},n.shouldError=function(){return null},n.shouldSuspend=function(){return!1},n.updateContainer=function(e,n,t,r){var l=n.current,a=_u(),u=Lu(l);return t=yi(t),null===n.context?n.context=t:n.pendingContext=t,n=xt(a,u),n.payload={element:e},r=void 0===r?null:r,null!==r&&(n.callback=r),wt(l,n),e=Iu(l,u,a),null!==e&&zt(e,l,u),u},n}},772:function(e,n,t){"use strict";e.exports=t(735)},4845:function(e,n,t){"use strict";e.exports=t(2935)},8271:function(e,n,t){"use strict";var r=t(7842)["navigator"];function l(e,n){var t=e.length;e.push(n);e:for(;0>>1,l=e[r];if(!(0>>1;ri(o,t))si(c,o)?(e[r]=c,e[s]=t,r=s):(e[r]=o,e[u]=t,r=u);else{if(!(si(c,t)))break e;e[r]=c,e[s]=t,r=s}}}return n}function i(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if("object"===typeof performance&&"function"===typeof performance.now){var o=performance;n.unstable_now=function(){return o.now()}}else{var s=Date,c=s.now();n.unstable_now=function(){return s.now()-c}}var f=[],d=[],p=1,h=null,g=3,m=!1,v=!1,b=!1,y="function"===typeof setTimeout?setTimeout:null,S="function"===typeof clearTimeout?clearTimeout:null,k="undefined"!==typeof setImmediate?setImmediate:null;function x(e){for(var n=a(d);null!==n;){if(null===n.callback)u(d);else{if(!(n.startTime<=e))break;u(d),n.sortIndex=n.expirationTime,l(f,n)}n=a(d)}}function w(e){if(b=!1,x(e),!v)if(null!==a(f))v=!0,U(z);else{var n=a(d);null!==n&&M(w,n.startTime-e)}}function z(e,t){v=!1,b&&(b=!1,S(C),C=-1),m=!0;var r=g;try{for(x(t),h=a(f);null!==h&&(!(h.expirationTime>t)||e&&!I());){var l=h.callback;if("function"===typeof l){h.callback=null,g=h.priorityLevel;var i=l(h.expirationTime<=t);t=n.unstable_now(),"function"===typeof i?h.callback=i:h===a(f)&&u(f),x(t)}else u(f);h=a(f)}if(null!==h)var o=!0;else{var s=a(d);null!==s&&M(w,s.startTime-t),o=!1}return o}finally{h=null,g=r,m=!1}}"undefined"!==typeof r&&void 0!==r.scheduling&&void 0!==r.scheduling.isInputPending&&r.scheduling.isInputPending.bind(r.scheduling);var N,E=!1,P=null,C=-1,_=5,L=-1;function I(){return!(n.unstable_now()-L<_)}function T(){if(null!==P){var e=n.unstable_now();L=e;var t=!0;try{t=P(!0,e)}finally{t?N():(E=!1,P=null)}}else E=!1}if("function"===typeof k)N=function(){k(T)};else if("undefined"!==typeof MessageChannel){var R=new MessageChannel,F=R.port2;R.port1.onmessage=T,N=function(){F.postMessage(null)}}else N=function(){y(T,0)};function U(e){P=e,E||(E=!0,N())}function M(e,t){C=y(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_continueExecution=function(){v||m||(v=!0,U(z))},n.unstable_forceFrameRate=function(e){0>e||125u?(e.sortIndex=r,l(d,e),null===a(f)&&e===a(d)&&(b?(S(C),C=-1):b=!0,M(w,r-u))):(e.sortIndex=i,l(f,e),v||m||(v=!0,U(z))),e},n.unstable_shouldYield=I,n.unstable_wrapCallback=function(e){var n=g;return function(){var t=g;g=n;try{return e.apply(this,arguments)}finally{g=t}}}},8585:function(e,n,t){"use strict";e.exports=t(8271)}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[907,96,76],function(){return n(4247)});e.O()}]); \ No newline at end of file +require("./common"),require("./vendors"),require("./taro"),require("./runtime"),(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[524],{4247:function(e,n,t){"use strict";t(6882);var r=t(7842),l=t(1291),a=t(758),u=t.n(a),i=t(3029),o=t(2901),s=t(6919),c=t(5501),f=t(6540),d=t.t(f,2),p=t(9703),h=t(1457),g=t(6606),m=t(3246),v=t(1212),b=t(467),y=null;function S(){return y||(y=k().finally(function(){y=null}),y)}function k(){return x.apply(this,arguments)}function x(){return x=(0,b.A)((0,v.A)().m(function e(){var n,t,r,l;return(0,v.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(n=(0,h.Q4)(),null!==n&&void 0!==n&&n.openid&&!(0,h.Ic)(n.openid)){e.n=1;break}return e.a(2,!1);case 1:return e.p=1,e.n=2,u().login();case 2:if(t=e.v,t.code){e.n=3;break}return e.a(2,!1);case 3:return e.n=4,m.Ay.post("/api/auth/login",{code:t.code},{auth:!1,skipAuthRefresh:!0});case 4:if(r=e.v,null!==r&&void 0!==r&&r.accessToken){e.n=5;break}return e.a(2,!1);case 5:return(0,m.WG)(r.accessToken),e.n=6,m.Ay.get("/api/users/me",{skipAuthRefresh:!0});case 6:if(l=e.v,(null===l||void 0===l?void 0:l.openid)!==n.openid){e.n=7;break}return e.a(2,!0);case 7:return(0,m.L)(),(0,h.Hf)(),e.a(2,!1);case 8:return e.p=8,e.v,e.a(2,!1)}},e,null,[[1,8]])})),x.apply(this,arguments)}function w(){return z.apply(this,arguments)}function z(){return z=(0,b.A)((0,v.A)().m(function e(){var n,t,r;return(0,v.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(n=(0,h.Q4)(),null!==n&&void 0!==n&&n.openid&&!(0,h.Ic)(n.openid)){e.n=1;break}return e.a(2,!1);case 1:if((0,m.gf)()){e.n=2;break}return e.a(2,S());case 2:return e.p=2,e.n=3,m.Ay.get("/api/users/me",{skipAuthRefresh:!0});case 3:return e.a(2,!0);case 4:if(e.p=4,r=e.v,t=null===r||void 0===r?void 0:r.statusCode,401!==t){e.n=5;break}return e.a(2,S());case 5:return e.a(2,!!(0,m.gf)())}},e,null,[[2,4]])})),z.apply(this,arguments)}var N=t(4848),E=function(e){function n(){return(0,i.A)(this,n),(0,s.A)(this,n,arguments)}return(0,c.A)(n,e),(0,o.A)(n,[{key:"componentDidMount",value:function(){(0,g.G)((0,h.eW)((0,h.O4)())),(0,m.q)(S),w()}},{key:"componentDidShow",value:function(){}},{key:"componentDidHide",value:function(){}},{key:"render",value:function(){return(0,N.jsx)(p.NP,{children:this.props.children})}}])}(f.Component),P=E,C=t(7260),_={darkmode:!0,themeLocation:"theme.json",pages:["pages/index/index","pages/shop/index","pages/shop/detail/index","pages/product/index","pages/diy/index","pages/diy/stickerEdit/index","pages/checkout/index","pages/designList/index","pages/orders/index","pages/profile/index","pages/service/index","pages/wordcloud/index","pages/orderDetail/index","pages/address/index","pages/settings/index","pages/agreement/index","pages/userDatabase/index"],window:{backgroundTextStyle:"dark",navigationStyle:"custom",navigationBarBackgroundColor:"#faf7f2",backgroundColor:"#faf7f2",backgroundColorTop:"#faf7f2",backgroundColorBottom:"#faf7f2",navigationBarTextStyle:"black"},tabBar:{custom:!0,list:[{pagePath:"pages/index/index",text:"\u9996\u9875"},{pagePath:"pages/shop/index",text:"\u5546\u54c1"},{pagePath:"pages/designList/index",text:"\u8bbe\u8ba1\u6e05\u5355"},{pagePath:"pages/orders/index",text:"\u8ba2\u5355"},{pagePath:"pages/profile/index",text:"\u6211\u7684"}]}};r.window.__taroAppConfig=_;App((0,l.ND)(P,d,C.Ay,_));(0,a.initPxTransform)({designWidth:750,deviceRatio:{640:1.17,750:1,828:.905},baseFontSize:20,unitPrecision:void 0,targetUnit:void 0})},735:function(e,n){"use strict";n.DefaultEventPriority=16},2935:function(e,n,t){e.exports=function(e){var n={},r=t(6540),l=t(8585),a=Object.assign;function u(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;ti||l[u]!==a[i]){var o="\n"+l[u].replace(" at new "," at ");return e.displayName&&o.includes("")&&(o=o.replace("",e.displayName)),o}}while(1<=u&&0<=i);break}}}finally{nn=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?en(e):""}var rn=Object.prototype.hasOwnProperty,ln=[],an=-1;function un(e){return{current:e}}function on(e){0>an||(e.current=ln[an],ln[an]=null,an--)}function sn(e,n){an++,ln[an]=e.current,e.current=n}var cn={},fn=un(cn),dn=un(!1),pn=cn;function hn(e,n){var t=e.type.contextTypes;if(!t)return cn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l,a={};for(l in t)a[l]=n[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=a),a}function gn(e){return e=e.childContextTypes,null!==e&&void 0!==e}function mn(){on(dn),on(fn)}function vn(e,n,t){if(fn.current!==cn)throw Error(u(168));sn(fn,n),sn(dn,t)}function bn(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,"function"!==typeof r.getChildContext)return t;for(var l in r=r.getChildContext(),r)if(!(l in n))throw Error(u(108,z(e)||"Unknown",l));return a({},t,r)}function yn(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cn,pn=fn.current,sn(fn,e),sn(dn,dn.current),!0}function Sn(e,n,t){var r=e.stateNode;if(!r)throw Error(u(169));t?(e=bn(e,n,pn),r.__reactInternalMemoizedMergedChildContext=e,on(dn),on(fn),sn(fn,e)):on(dn),sn(dn,t)}var kn=Math.clz32?Math.clz32:zn,xn=Math.log,wn=Math.LN2;function zn(e){return e>>>=0,0===e?32:31-(xn(e)/wn|0)|0}var Nn=64,En=4194304;function Pn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Cn(e,n){var t=e.pendingLanes;if(0===t)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,u=268435455&t;if(0!==u){var i=u&~l;0!==i?r=Pn(i):(a&=u,0!==a&&(r=Pn(a)))}else u=t&~l,0!==u?r=Pn(u):0!==a&&(r=Pn(a));if(0===r)return 0;if(0!==n&&n!==r&&0===(n&l)&&(l=r&-r,a=n&-n,l>=a||16===l&&0!==(4194240&a)))return n;if(0!==(4&r)&&(r|=16&t),n=e.entangledLanes,0!==n)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function Rn(e,n,t){e.pendingLanes|=n,536870912!==n&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-kn(n),e[n]=t}function Fn(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0>=u,l-=u,At=1<<32-kn(n)+l|t<d?(p=f,f=null):p=f.sibling;var h=m(l,f,i[d],o);if(null===h){null===f&&(f=p);break}e&&f&&null===h.alternate&&n(l,f),u=a(h,u,d),null===c?s=h:c.sibling=h,c=h,f=p}if(d===i.length)return t(l,f),Jt&&Ot(l,d),s;if(null===f){for(;dp?(h=d,d=null):h=d.sibling;var y=m(l,d,b.value,s);if(null===y){null===d&&(d=h);break}e&&d&&null===y.alternate&&n(l,d),i=a(y,i,p),null===f?c=y:f.sibling=y,f=y,d=h}if(b.done)return t(l,d),Jt&&Ot(l,p),c;if(null===d){for(;!b.done;p++,b=o.next())b=g(l,b.value,s),null!==b&&(i=a(b,i,p),null===f?c=b:f.sibling=b,f=b);return Jt&&Ot(l,p),c}for(d=r(l,d);!b.done;p++,b=o.next())b=v(d,l,p,b.value,s),null!==b&&(e&&null!==b.alternate&&d.delete(null===b.key?p:b.key),i=a(b,i,p),null===f?c=b:f.sibling=b,f=b);return e&&d.forEach(function(e){return n(l,e)}),Jt&&Ot(l,p),c}function k(e,r,a,u){if("object"===typeof a&&null!==a&&a.type===c&&null===a.key&&(a=a.props.children),"object"===typeof a&&null!==a){switch(a.$$typeof){case o:e:{for(var f=a.key,d=r;null!==d;){if(d.key===f){if(f=a.type,f===c){if(7===d.tag){t(e,d.sibling),r=l(d,a.props.children),r.return=e,e=r;break e}}else if(d.elementType===f||"object"===typeof f&&null!==f&&f.$$typeof===y&&sr(f)===d.type){t(e,d.sibling),r=l(d,a.props),r.ref=ir(e,d,a),r.return=e,e=r;break e}t(e,d);break}n(e,d),d=d.sibling}a.type===c?(r=pi(a.props.children,e.mode,u,a.key),r.return=e,e=r):(u=di(a.type,a.key,a.props,null,e.mode,u),u.ref=ir(e,r,a),u.return=e,e=u)}return i(e);case s:e:{for(d=a.key;null!==r;){if(r.key===d){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){t(e,r.sibling),r=l(r,a.children||[]),r.return=e,e=r;break e}t(e,r);break}n(e,r),r=r.sibling}r=mi(a,e.mode,u),r.return=e,e=r}return i(e);case y:return d=a._init,k(e,r,d(a._payload),u)}if(T(a))return b(e,r,a,u);if(x(a))return S(e,r,a,u);or(e,a)}return"string"===typeof a&&""!==a||"number"===typeof a?(a=""+a,null!==r&&6===r.tag?(t(e,r.sibling),r=l(r,a),r.return=e,e=r):(t(e,r),r=gi(a,e.mode,u),r.return=e,e=r),i(e)):t(e,r)}return k}var fr=cr(!0),dr=cr(!1),pr={},hr=un(pr),gr=un(pr),mr=un(pr);function vr(e){if(e===pr)throw Error(u(174));return e}function br(e,n){sn(mr,n),sn(gr,e),sn(hr,pr),e=F(n),on(hr),sn(hr,e)}function yr(){on(hr),on(gr),on(mr)}function Sr(e){var n=vr(mr.current),t=vr(hr.current);n=U(t,e.type,n),t!==n&&(sn(gr,e),sn(hr,n))}function kr(e){gr.current===e&&(on(hr),on(gr))}var xr=un(0);function wr(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(t=t.dehydrated,null===t||Me(t)||De(t)))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!==(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var zr=[];function Nr(){for(var e=0;et?t:4,e(!0);var r=Pr.transition;Pr.transition={};try{e(!1),n()}finally{Mn=t,Pr.transition=r}}function dl(){return Wr().memoizedState}function pl(e,n,t){var r=Lu(e);t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},gl(e)?ml(n,t):(vl(e,n,t),t=_u(),e=Iu(e,r,t),null!==e&&bl(e,n,r))}function hl(e,n,t){var r=Lu(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(gl(e))ml(n,l);else{vl(e,n,l);var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&(a=n.lastRenderedReducer,null!==a))try{var u=n.lastRenderedState,i=a(u,t);if(l.hasEagerState=!0,l.eagerState=i,Kn(i,u))return}catch(e){}t=_u(),e=Iu(e,r,t),null!==e&&bl(e,n,r)}}function gl(e){var n=e.alternate;return e===_r||null!==n&&n===_r}function ml(e,n){Rr=Tr=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function vl(e,n,t){null!==ru&&0!==(1&e.mode)&&0===(2&tu)?(e=n.interleaved,null===e?(t.next=t,null===bt?bt=[n]:bt.push(n)):(t.next=e.next,e.next=t),n.interleaved=t):(e=n.pending,null===e?t.next=t:(t.next=e.next,e.next=t),n.pending=t)}function bl(e,n,t){if(0!==(4194240&t)){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,Un(e,t)}}var yl={readContext:vt,useCallback:Mr,useContext:Mr,useEffect:Mr,useImperativeHandle:Mr,useInsertionEffect:Mr,useLayoutEffect:Mr,useMemo:Mr,useReducer:Mr,useRef:Mr,useState:Mr,useDebugValue:Mr,useDeferredValue:Mr,useTransition:Mr,useMutableSource:Mr,useSyncExternalStore:Mr,useId:Mr,unstable_isNewReconciler:!1},Sl={readContext:vt,useCallback:function(e,n){return Br().memoizedState=[e,void 0===n?null:n],e},useContext:vt,useEffect:tl,useImperativeHandle:function(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,el(4194308,4,ul.bind(null,n,e),t)},useLayoutEffect:function(e,n){return el(4194308,4,e,n)},useInsertionEffect:function(e,n){return el(4,2,e,n)},useMemo:function(e,n){var t=Br();return n=void 0===n?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=Br();return n=void 0!==t?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=pl.bind(null,_r,e),[r.memoizedState,e]},useRef:function(e){var n=Br();return e={current:e},n.memoizedState=e},useState:Kr,useDebugValue:ol,useDeferredValue:function(e){var n=Kr(e),t=n[0],r=n[1];return tl(function(){var n=Pr.transition;Pr.transition={};try{r(e)}finally{Pr.transition=n}},[e]),t},useTransition:function(){var e=Kr(!1),n=e[0];return e=fl.bind(null,e[1]),Br().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=_r,l=Br();if(Jt){if(void 0===t)throw Error(u(407));t=t()}else{if(t=n(),null===ru)throw Error(u(349));0!==(30&Cr)||qr(r,n,t)}l.memoizedState=t;var a={value:t,getSnapshot:n};return l.queue=a,tl(Yr.bind(null,r,a,e),[e]),r.flags|=2048,Xr(9,Gr.bind(null,r,a,t,n),void 0,null),t},useId:function(){var e=Br(),n=ru.identifierPrefix;if(Jt){var t=jt,r=At;t=(r&~(1<<32-kn(r)-1)).toString(32)+t,n=":"+n+"R"+t,t=Fr++,0mu&&(n.flags|=128,r=!0,Ql(l,!1),n.lanes=4194304)}else{if(!r)if(e=wr(a),null!==e){if(n.flags|=128,r=!0,e=e.updateQueue,null!==e&&(n.updateQueue=e,n.flags|=4),Ql(l,!0),null===l.tail&&"hidden"===l.tailMode&&!a.alternate&&!Jt)return Hl(n),null}else 2*An()-l.renderingStartTime>mu&&1073741824!==t&&(n.flags|=128,r=!0,Ql(l,!1),n.lanes=4194304);l.isBackwards?(a.sibling=n.child,n.child=a):(e=l.last,null!==e?e.sibling=a:n.child=a,l.last=a)}return null!==l.tail?(n=l.tail,l.rendering=n,l.tail=n.sibling,l.renderingStartTime=An(),n.sibling=null,e=xr.current,sn(xr,r?1&e|2:1&e),n):(Hl(n),null);case 22:case 23:return Wu(),r=null!==n.memoizedState,null!==e&&null!==e.memoizedState!==r&&(n.flags|=8192),r&&0!==(1&n.mode)?0!==(1073741824&uu)&&(Hl(n),G&&6&n.subtreeFlags&&(n.flags|=8192)):Hl(n),null;case 24:return null;case 25:return null}throw Error(u(156,n.tag))}var Wl=i.ReactCurrentOwner,Al=!1;function jl(e,n,t,r){n.child=null===e?dr(n,null,t,r):fr(n,e.child,t,r)}function Ol(e,n,t,r,l){t=t.render;var a=n.ref;return mt(n,l),r=Qr(e,n,t,r,a,l),t=Hr(),null===e||Al?(Jt&&t&&Vt(n),n.flags|=1,jl(e,n,r,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ca(e,n,l))}function $l(e,n,t,r,l){if(null===e){var a=t.type;return"function"!==typeof a||si(a)||void 0!==a.defaultProps||null!==t.compare||void 0!==t.defaultProps?(e=di(t.type,null,r,n,n.mode,l),e.ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,Vl(e,n,a,r,l))}if(a=e.child,0===(e.lanes&l)){var u=a.memoizedProps;if(t=t.compare,t=null!==t?t:at,t(u,r)&&e.ref===n.ref)return ca(e,n,l)}return n.flags|=1,e=fi(a,r),e.ref=n.ref,e.return=n,n.child=e}function Vl(e,n,t,r,l){if(null!==e&&at(e.memoizedProps,r)&&e.ref===n.ref){if(Al=!1,0===(e.lanes&l))return n.lanes=e.lanes,ca(e,n,l);0!==(131072&e.flags)&&(Al=!0)}return Yl(e,n,t,r,l)}function ql(e,n,t){var r=n.pendingProps,l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&n.mode))n.memoizedState={baseLanes:0,cachePool:null},sn(iu,uu),uu|=t;else{if(0===(1073741824&t))return e=null!==a?a.baseLanes|t:t,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null},n.updateQueue=null,sn(iu,uu),uu|=e,null;n.memoizedState={baseLanes:0,cachePool:null},r=null!==a?a.baseLanes:t,sn(iu,uu),uu|=r}else null!==a?(r=a.baseLanes|t,n.memoizedState=null):r=t,sn(iu,uu),uu|=r;return jl(e,n,l,t),n.child}function Gl(e,n){var t=n.ref;(null===e&&null!==t||null!==e&&e.ref!==t)&&(n.flags|=512,n.flags|=2097152)}function Yl(e,n,t,r,l){var a=gn(t)?pn:fn.current;return a=hn(n,a),mt(n,l),t=Qr(e,n,t,r,a,l),r=Hr(),null===e||Al?(Jt&&r&&Vt(n),n.flags|=1,jl(e,n,t,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ca(e,n,l))}function Jl(e,n,t,r,l){if(gn(t)){var a=!0;yn(n)}else a=!1;if(mt(n,l),null===n.stateNode)null!==e&&(e.alternate=null,n.alternate=null,n.flags|=2),Tt(n,t,r),Ft(n,t,r,l),r=!0;else if(null===e){var u=n.stateNode,i=n.memoizedProps;u.props=i;var o=u.context,s=t.contextType;"object"===typeof s&&null!==s?s=vt(s):(s=gn(t)?pn:fn.current,s=hn(n,s));var c=t.getDerivedStateFromProps,f="function"===typeof c||"function"===typeof u.getSnapshotBeforeUpdate;f||"function"!==typeof u.UNSAFE_componentWillReceiveProps&&"function"!==typeof u.componentWillReceiveProps||(i!==r||o!==s)&&Rt(n,u,r,s),yt=!1;var d=n.memoizedState;u.state=d,Et(n,r,u,l),o=n.memoizedState,i!==r||d!==o||dn.current||yt?("function"===typeof c&&(_t(n,t,c,r),o=n.memoizedState),(i=yt||It(n,t,i,r,d,o,s))?(f||"function"!==typeof u.UNSAFE_componentWillMount&&"function"!==typeof u.componentWillMount||("function"===typeof u.componentWillMount&&u.componentWillMount(),"function"===typeof u.UNSAFE_componentWillMount&&u.UNSAFE_componentWillMount()),"function"===typeof u.componentDidMount&&(n.flags|=4194308)):("function"===typeof u.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=o),u.props=r,u.state=o,u.context=s,r=i):("function"===typeof u.componentDidMount&&(n.flags|=4194308),r=!1)}else{u=n.stateNode,kt(e,n),i=n.memoizedProps,s=n.type===n.elementType?i:it(n.type,i),u.props=s,f=n.pendingProps,d=u.context,o=t.contextType,"object"===typeof o&&null!==o?o=vt(o):(o=gn(t)?pn:fn.current,o=hn(n,o));var p=t.getDerivedStateFromProps;(c="function"===typeof p||"function"===typeof u.getSnapshotBeforeUpdate)||"function"!==typeof u.UNSAFE_componentWillReceiveProps&&"function"!==typeof u.componentWillReceiveProps||(i!==f||d!==o)&&Rt(n,u,r,o),yt=!1,d=n.memoizedState,u.state=d,Et(n,r,u,l);var h=n.memoizedState;i!==f||d!==h||dn.current||yt?("function"===typeof p&&(_t(n,t,p,r),h=n.memoizedState),(s=yt||It(n,t,s,r,d,h,o)||!1)?(c||"function"!==typeof u.UNSAFE_componentWillUpdate&&"function"!==typeof u.componentWillUpdate||("function"===typeof u.componentWillUpdate&&u.componentWillUpdate(r,h,o),"function"===typeof u.UNSAFE_componentWillUpdate&&u.UNSAFE_componentWillUpdate(r,h,o)),"function"===typeof u.componentDidUpdate&&(n.flags|=4),"function"===typeof u.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!==typeof u.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof u.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=h),u.props=r,u.state=h,u.context=o,r=s):("function"!==typeof u.componentDidUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof u.getSnapshotBeforeUpdate||i===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return Kl(e,n,t,r,a,l)}function Kl(e,n,t,r,l,a){Gl(e,n);var u=0!==(128&n.flags);if(!r&&!u)return l&&Sn(n,t,!1),ca(e,n,a);r=n.stateNode,Wl.current=n;var i=u&&"function"!==typeof t.getDerivedStateFromError?null:r.render();return n.flags|=1,null!==e&&u?(n.child=fr(n,e.child,null,a),n.child=fr(n,null,i,a)):jl(e,n,i,a),n.memoizedState=r.state,l&&Sn(n,t,!0),n.child}function Xl(e){var n=e.stateNode;n.pendingContext?vn(e,n.pendingContext,n.pendingContext!==n.context):n.context&&vn(e,n.context,!1),br(e,n.containerInfo)}function Zl(e,n,t,r,l){return ar(),ur(l),n.flags|=256,jl(e,n,t,r),n.child}var ea={dehydrated:null,treeContext:null,retryLane:0};function na(e){return{baseLanes:e,cachePool:null}}function ta(e,n,t){var r,l=n.pendingProps,a=xr.current,i=!1,o=0!==(128&n.flags);if((r=o)||(r=(null===e||null!==e.memoizedState)&&0!==(2&a)),r?(i=!0,n.flags&=-129):null!==e&&null===e.memoizedState||(a|=1),sn(xr,1&a),null===e)return tr(n),e=n.memoizedState,null!==e&&(e=e.dehydrated,null!==e)?(0===(1&n.mode)?n.lanes=1:De(e)?n.lanes=8:n.lanes=1073741824,null):(a=l.children,e=l.fallback,i?(l=n.mode,i=n.child,a={mode:"hidden",children:a},0===(1&l)&&null!==i?(i.childLanes=0,i.pendingProps=a):i=hi(a,l,0,null),e=pi(e,l,t,null),i.return=n,e.return=n,i.sibling=e,n.child=i,n.child.memoizedState=na(t),n.memoizedState=ea,e):ra(n,a));if(a=e.memoizedState,null!==a){if(r=a.dehydrated,null!==r){if(o)return 256&n.flags?(n.flags&=-257,ua(e,n,t,Error(u(422)))):null!==n.memoizedState?(n.child=e.child,n.flags|=128,null):(i=l.fallback,a=n.mode,l=hi({mode:"visible",children:l.children},a,0,null),i=pi(i,a,t,null),i.flags|=2,l.return=n,i.return=n,l.sibling=i,n.child=l,0!==(1&n.mode)&&fr(n,e.child,null,t),n.child.memoizedState=na(t),n.memoizedState=ea,i);if(0===(1&n.mode))n=ua(e,n,t,null);else if(De(r))n=ua(e,n,t,Error(u(419)));else if(l=0!==(t&e.childLanes),Al||l){if(l=ru,null!==l){switch(t&-t){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}l=0!==(i&(l.suspendedLanes|t))?0:i,0!==l&&l!==a.retryLane&&(a.retryLane=l,Iu(e,l,-1))}$u(),n=ua(e,n,t,Error(u(421)))}else Me(r)?(n.flags|=128,n.child=e.child,n=li.bind(null,e),Qe(r,n),n=null):(t=a.treeContext,J&&(Yt=Ae(r),Gt=n,Jt=!0,Xt=null,Kt=!1,null!==t&&(Ht[Bt++]=At,Ht[Bt++]=jt,Ht[Bt++]=Wt,At=t.id,jt=t.overflow,Wt=n)),n=ra(n,n.pendingProps.children),n.flags|=4096);return n}return i?(l=aa(e,n,l.children,l.fallback,t),i=n.child,a=e.child.memoizedState,i.memoizedState=null===a?na(t):{baseLanes:a.baseLanes|t,cachePool:null},i.childLanes=e.childLanes&~t,n.memoizedState=ea,l):(t=la(e,n,l.children,t),n.memoizedState=null,t)}return i?(l=aa(e,n,l.children,l.fallback,t),i=n.child,a=e.child.memoizedState,i.memoizedState=null===a?na(t):{baseLanes:a.baseLanes|t,cachePool:null},i.childLanes=e.childLanes&~t,n.memoizedState=ea,l):(t=la(e,n,l.children,t),n.memoizedState=null,t)}function ra(e,n){return n=hi({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function la(e,n,t,r){var l=e.child;return e=l.sibling,t=fi(l,{mode:"visible",children:t}),0===(1&n.mode)&&(t.lanes=r),t.return=n,t.sibling=null,null!==e&&(r=n.deletions,null===r?(n.deletions=[e],n.flags|=16):r.push(e)),n.child=t}function aa(e,n,t,r,l){var a=n.mode;e=e.child;var u=e.sibling,i={mode:"hidden",children:t};return 0===(1&a)&&n.child!==e?(t=n.child,t.childLanes=0,t.pendingProps=i,n.deletions=null):(t=fi(e,i),t.subtreeFlags=14680064&e.subtreeFlags),null!==u?r=fi(u,r):(r=pi(r,a,l,null),r.flags|=2),r.return=n,t.return=n,t.sibling=r,n.child=t,r}function ua(e,n,t,r){return null!==r&&ur(r),fr(n,e.child,null,t),e=ra(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function ia(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),gt(e.return,n,t)}function oa(e,n,t,r,l){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=t,a.tailMode=l)}function sa(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;if(jl(e,n,r.children,t),r=xr.current,0!==(2&r))r=1&r|2,n.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ia(e,t,n);else if(19===e.tag)ia(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(sn(xr,r),0===(1&n.mode))n.memoizedState=null;else switch(l){case"forwards":for(t=n.child,l=null;null!==t;)e=t.alternate,null!==e&&null===wr(e)&&(l=t),t=t.sibling;t=l,null===t?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),oa(n,!1,l,t,a);break;case"backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(e=l.alternate,null!==e&&null===wr(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}oa(n,!0,t,null,a);break;case"together":oa(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function ca(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),cu|=n.lanes,0===(t&n.childLanes))return null;if(null!==e&&n.child!==e.child)throw Error(u(153));if(null!==n.child){for(e=n.child,t=fi(e,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,t=t.sibling=fi(e,e.pendingProps),t.return=n;t.sibling=null}return n.child}function fa(e,n,t){switch(n.tag){case 3:Xl(n),ar();break;case 5:Sr(n);break;case 1:gn(n.type)&&yn(n);break;case 4:br(n,n.stateNode.containerInfo);break;case 10:pt(n,n.type._context,n.memoizedProps.value);break;case 13:var r=n.memoizedState;if(null!==r)return null!==r.dehydrated?(sn(xr,1&xr.current),n.flags|=128,null):0!==(t&n.child.childLanes)?ta(e,n,t):(sn(xr,1&xr.current),e=ca(e,n,t),null!==e?e.sibling:null);sn(xr,1&xr.current);break;case 19:if(r=0!==(t&n.childLanes),0!==(128&e.flags)){if(r)return sa(e,n,t);n.flags|=128}var l=n.memoizedState;if(null!==l&&(l.rendering=null,l.tail=null,l.lastEffect=null),sn(xr,xr.current),r)break;return null;case 22:case 23:return n.lanes=0,ql(e,n,t)}return ca(e,n,t)}function da(e,n){switch(qt(n),n.tag){case 1:return gn(n.type)&&mn(),e=n.flags,65536&e?(n.flags=-65537&e|128,n):null;case 3:return yr(),on(dn),on(fn),Nr(),e=n.flags,0!==(65536&e)&&0===(128&e)?(n.flags=-65537&e|128,n):null;case 5:return kr(n),null;case 13:if(on(xr),e=n.memoizedState,null!==e&&null!==e.dehydrated){if(null===n.alternate)throw Error(u(340));ar()}return e=n.flags,65536&e?(n.flags=-65537&e|128,n):null;case 19:return on(xr),null;case 4:return yr(),null;case 10:return ht(n.type._context),null;case 22:case 23:return Wu(),null;case 24:return null;default:return null}}var pa=!1,ha=!1,ga="function"===typeof WeakSet?WeakSet:Set,ma=null;function va(e,n){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(t){ni(e,n,t)}else t.current=null}function ba(e,n,t){try{t()}catch(t){ni(e,n,t)}}var ya=!1;function Sa(e,n){for(M(e.containerInfo),ma=n;null!==ma;)if(e=ma,n=e.child,0!==(1028&e.subtreeFlags)&&null!==n)n.return=e,ma=n;else for(;null!==ma;){e=ma;try{var t=e.alternate;if(0!==(1024&e.flags))switch(e.tag){case 0:case 11:case 15:break;case 1:if(null!==t){var r=t.memoizedProps,l=t.memoizedState,a=e.stateNode,i=a.getSnapshotBeforeUpdate(e.elementType===e.type?r:it(e.type,r),l);a.__reactInternalSnapshotBeforeUpdate=i}break;case 3:G&&Ne(e.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(u(163))}}catch(n){ni(e,e.return,n)}if(n=e.sibling,null!==n){n.return=e.return,ma=n;break}ma=e.return}return t=ya,ya=!1,t}function ka(e,n,t){var r=n.updateQueue;if(r=null!==r?r.lastEffect:null,null!==r){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,void 0!==a&&ba(n,t,a)}l=l.next}while(l!==r)}}function xa(e,n){if(n=n.updateQueue,n=null!==n?n.lastEffect:null,null!==n){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function wa(e){var n=e.ref;if(null!==n){var t=e.stateNode;switch(e.tag){case 5:e=R(t);break;default:e=t}"function"===typeof n?n(e):n.current=e}}function za(e,n,t){if(Gn&&"function"===typeof Gn.onCommitFiberUnmount)try{Gn.onCommitFiberUnmount(qn,n)}catch(e){}switch(n.tag){case 0:case 11:case 14:case 15:if(e=n.updateQueue,null!==e&&(e=e.lastEffect,null!==e)){var r=e=e.next;do{var l=r,a=l.destroy;l=l.tag,void 0!==a&&(0!==(2&l)||0!==(4&l))&&ba(n,t,a),r=r.next}while(r!==e)}break;case 1:if(va(n,t),e=n.stateNode,"function"===typeof e.componentWillUnmount)try{e.props=n.memoizedProps,e.state=n.memoizedState,e.componentWillUnmount()}catch(e){ni(n,t,e)}break;case 5:va(n,t);break;case 4:G?Ta(e,n,t):Y&&Y&&(n=n.stateNode.containerInfo,t=Pe(n),Le(n,t))}}function Na(e,n,t){for(var r=n;;)if(za(e,r,t),null===r.child||G&&4===r.tag){if(r===n)break;for(;null===r.sibling;){if(null===r.return||r.return===n)return;r=r.return}r.sibling.return=r.return,r=r.sibling}else r.child.return=r,r=r.child}function Ea(e){var n=e.alternate;null!==n&&(e.alternate=null,Ea(n)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(n=e.stateNode,null!==n&&ee(n)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Pa(e){return 5===e.tag||3===e.tag||4===e.tag}function Ca(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Pa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function _a(e){if(G){e:{for(var n=e.return;null!==n;){if(Pa(n))break e;n=n.return}throw Error(u(160))}var t=n;switch(t.tag){case 5:n=t.stateNode,32&t.flags&&(Se(n),t.flags&=-33),t=Ca(e),Ia(e,t,n);break;case 3:case 4:n=t.stateNode.containerInfo,t=Ca(e),La(e,t,n);break;default:throw Error(u(161))}}}function La(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?ve(t,e,n):de(t,e);else if(4!==r&&(e=e.child,null!==e))for(La(e,n,t),e=e.sibling;null!==e;)La(e,n,t),e=e.sibling}function Ia(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?me(t,e,n):fe(t,e);else if(4!==r&&(e=e.child,null!==e))for(Ia(e,n,t),e=e.sibling;null!==e;)Ia(e,n,t),e=e.sibling}function Ta(e,n,t){for(var r,l,a=n,i=!1;;){if(!i){i=a.return;e:for(;;){if(null===i)throw Error(u(160));switch(r=i.stateNode,i.tag){case 5:l=!1;break e;case 3:r=r.containerInfo,l=!0;break e;case 4:r=r.containerInfo,l=!0;break e}i=i.return}i=!0}if(5===a.tag||6===a.tag)Na(e,a,t),l?ye(r,a.stateNode):be(r,a.stateNode);else if(18===a.tag)l?Je(r,a.stateNode):Ye(r,a.stateNode);else if(4===a.tag){if(null!==a.child){r=a.stateNode.containerInfo,l=!0,a.child.return=a,a=a.child;continue}}else if(za(e,a,t),null!==a.child){a.child.return=a,a=a.child;continue}if(a===n)break;for(;null===a.sibling;){if(null===a.return||a.return===n)return;a=a.return,4===a.tag&&(i=!1)}a.sibling.return=a.return,a=a.sibling}}function Ra(e,n){if(G){switch(n.tag){case 0:case 11:case 14:case 15:return ka(3,n,n.return),xa(3,n),void ka(5,n,n.return);case 1:return;case 5:var t=n.stateNode;if(null!=t){var r=n.memoizedProps;e=null!==e?e.memoizedProps:r;var l=n.type,a=n.updateQueue;n.updateQueue=null,null!==a&&ge(t,a,l,e,r,n)}return;case 6:if(null===n.stateNode)throw Error(u(162));return t=n.memoizedProps,void pe(n.stateNode,null!==e?e.memoizedProps:t,t);case 3:return void(J&&null!==e&&e.memoizedState.isDehydrated&&qe(n.stateNode.containerInfo));case 12:return;case 13:return void Fa(n);case 19:return void Fa(n);case 17:return}throw Error(u(163))}switch(n.tag){case 0:case 11:case 14:case 15:return ka(3,n,n.return),xa(3,n),void ka(5,n,n.return);case 12:return;case 13:return void Fa(n);case 19:return void Fa(n);case 3:J&&null!==e&&e.memoizedState.isDehydrated&&qe(n.stateNode.containerInfo);break;case 22:case 23:return}e:if(Y){switch(n.tag){case 1:case 5:case 6:break e;case 3:case 4:n=n.stateNode,Le(n.containerInfo,n.pendingChildren);break e}throw Error(u(163))}}function Fa(e){var n=e.updateQueue;if(null!==n){e.updateQueue=null;var t=e.stateNode;null===t&&(t=e.stateNode=new ga),n.forEach(function(n){var r=ai.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))})}}function Ua(e,n){for(ma=n;null!==ma;){n=ma;var t=n.deletions;if(null!==t)for(var r=0;r";case Aa:return":has("+(Ya(e)||"")+")";case ja:return'[role="'+e.value+'"]';case $a:return'"'+e.value+'"';case Oa:return'[data-testname="'+e.value+'"]';default:throw Error(u(365))}}function Ja(e,n){var t=[];e=[e,0];for(var r=0;rl&&(l=i),r&=~a}if(r=l,r=An()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Xa(r/1960))-r,10e?16:e,null===wu)var r=!1;else{if(e=wu,wu=null,zu=0,0!==(6&tu))throw Error(u(331));var l=tu;for(tu|=4,ma=e.current;null!==ma;){var a=ma,i=a.child;if(0!==(16&ma.flags)){var o=a.deletions;if(null!==o){for(var s=0;sAn()-gu?Au(e,0):du|=t),Ru(e,n)}function ri(e,n){0===n&&(0===(1&e.mode)?n=1:(n=En,En<<=1,0===(130023424&En)&&(En=4194304)));var t=_u();e=Tu(e,n),null!==e&&(Rn(e,n,t),Ru(e,t))}function li(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),ri(e,t)}function ai(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(u(314))}null!==r&&r.delete(n),ri(e,t)}function ui(e,n){return Qn(e,n)}function ii(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function oi(e,n,t,r){return new ii(e,n,t,r)}function si(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ci(e){if("function"===typeof e)return si(e)?1:0;if(void 0!==e&&null!==e){if(e=e.$$typeof,e===g)return 11;if(e===b)return 14}return 2}function fi(e,n){var t=e.alternate;return null===t?(t=oi(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=14680064&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function di(e,n,t,r,l,a){var i=2;if(r=e,"function"===typeof e)si(e)&&(i=1);else if("string"===typeof e)i=5;else e:switch(e){case c:return pi(t.children,l,a,n);case f:i=8,l|=8;break;case d:return e=oi(12,t,n,2|l),e.elementType=d,e.lanes=a,e;case m:return e=oi(13,t,n,l),e.elementType=m,e.lanes=a,e;case v:return e=oi(19,t,n,l),e.elementType=v,e.lanes=a,e;case S:return hi(t,l,a,n);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case p:i=10;break e;case h:i=9;break e;case g:i=11;break e;case b:i=14;break e;case y:i=16,r=null;break e}throw Error(u(130,null==e?e:typeof e,""))}return n=oi(i,t,n,l),n.elementType=e,n.type=r,n.lanes=a,n}function pi(e,n,t,r){return e=oi(7,e,r,n),e.lanes=t,e}function hi(e,n,t,r){return e=oi(22,e,r,n),e.elementType=S,e.lanes=t,e.stateNode={},e}function gi(e,n,t){return e=oi(6,e,null,n),e.lanes=t,e}function mi(e,n,t){return n=oi(4,null!==e.children?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function vi(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=V,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Tn(0),this.expirationTimes=Tn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Tn(0),this.identifierPrefix=r,this.onRecoverableError=l,J&&(this.mutableSourceEagerHydrationData=null)}function bi(e,n,t,r,l,a,u,i,o){return e=new vi(e,n,t,i,o),1===n?(n=1,!0===a&&(n|=8)):n=0,a=oi(3,null,null,n),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null},St(a),e}function yi(e){if(!e)return cn;e=e._reactInternals;e:{if(N(e)!==e||1!==e.tag)throw Error(u(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(gn(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(null!==n);throw Error(u(171))}if(1===e.tag){var t=e.type;if(gn(t))return bn(e,t,n)}return n}function Si(e){var n=e._reactInternals;if(void 0===n){if("function"===typeof e.render)throw Error(u(188));throw e=Object.keys(e).join(","),Error(u(268,e))}return e=C(n),null===e?null:e.stateNode}function ki(e,n){if(e=e.memoizedState,null!==e&&null!==e.dehydrated){var t=e.retryLane;e.retryLane=0!==t&&t=c&&a>=d&&l<=f&&i<=p){e.splice(n,1);break}if(!(r!==c||t.width!==s.width||pi)){d>a&&(s.height+=d-a,s.y=a),pl)){c>r&&(s.width+=c-r,s.x=r),ft&&(t=i)),i ")+"\n\nNo matching component was found for:\n "+e.join(" > ")}return null},n.getPublicRootInstance=function(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return R(e.child.stateNode);default:return e.child.stateNode}},n.injectIntoDevTools=function(e){if(e={bundleType:e.bundleType,version:e.version,rendererPackageName:e.rendererPackageName,rendererConfig:e.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:i.ReactCurrentDispatcher,findHostInstanceByFiber:wi,findFiberByHostInstance:e.findFiberByHostInstance||zi,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},"undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)e=!1;else{var n=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(n.isDisabled||!n.supportsFiber)e=!0;else{try{qn=n.inject(e),Gn=n}catch(e){}e=!!n.checkDCE}}return e},n.isAlreadyRendering=function(){return!1},n.observeVisibleRects=function(e,n,t,r){if(!re)throw Error(u(363));e=Ka(e,n);var l=ce(e,t,r).disconnect;return{disconnect:function(){l()}}},n.registerMutableSourceForHydration=function(e,n){var t=n._getVersion;t=t(n._source),null==e.mutableSourceEagerHydrationData?e.mutableSourceEagerHydrationData=[n,t]:e.mutableSourceEagerHydrationData.push(n,t)},n.runWithPriority=function(e,n){var t=Mn;try{return Mn=e,n()}finally{Mn=t}},n.shouldError=function(){return null},n.shouldSuspend=function(){return!1},n.updateContainer=function(e,n,t,r){var l=n.current,a=_u(),u=Lu(l);return t=yi(t),null===n.context?n.context=t:n.pendingContext=t,n=xt(a,u),n.payload={element:e},r=void 0===r?null:r,null!==r&&(n.callback=r),wt(l,n),e=Iu(l,u,a),null!==e&&zt(e,l,u),u},n}},772:function(e,n,t){"use strict";e.exports=t(735)},4845:function(e,n,t){"use strict";e.exports=t(2935)},8271:function(e,n,t){"use strict";var r=t(7842)["navigator"];function l(e,n){var t=e.length;e.push(n);e:for(;0>>1,l=e[r];if(!(0>>1;ri(o,t))si(c,o)?(e[r]=c,e[s]=t,r=s):(e[r]=o,e[u]=t,r=u);else{if(!(si(c,t)))break e;e[r]=c,e[s]=t,r=s}}}return n}function i(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if("object"===typeof performance&&"function"===typeof performance.now){var o=performance;n.unstable_now=function(){return o.now()}}else{var s=Date,c=s.now();n.unstable_now=function(){return s.now()-c}}var f=[],d=[],p=1,h=null,g=3,m=!1,v=!1,b=!1,y="function"===typeof setTimeout?setTimeout:null,S="function"===typeof clearTimeout?clearTimeout:null,k="undefined"!==typeof setImmediate?setImmediate:null;function x(e){for(var n=a(d);null!==n;){if(null===n.callback)u(d);else{if(!(n.startTime<=e))break;u(d),n.sortIndex=n.expirationTime,l(f,n)}n=a(d)}}function w(e){if(b=!1,x(e),!v)if(null!==a(f))v=!0,U(z);else{var n=a(d);null!==n&&M(w,n.startTime-e)}}function z(e,t){v=!1,b&&(b=!1,S(C),C=-1),m=!0;var r=g;try{for(x(t),h=a(f);null!==h&&(!(h.expirationTime>t)||e&&!I());){var l=h.callback;if("function"===typeof l){h.callback=null,g=h.priorityLevel;var i=l(h.expirationTime<=t);t=n.unstable_now(),"function"===typeof i?h.callback=i:h===a(f)&&u(f),x(t)}else u(f);h=a(f)}if(null!==h)var o=!0;else{var s=a(d);null!==s&&M(w,s.startTime-t),o=!1}return o}finally{h=null,g=r,m=!1}}"undefined"!==typeof r&&void 0!==r.scheduling&&void 0!==r.scheduling.isInputPending&&r.scheduling.isInputPending.bind(r.scheduling);var N,E=!1,P=null,C=-1,_=5,L=-1;function I(){return!(n.unstable_now()-L<_)}function T(){if(null!==P){var e=n.unstable_now();L=e;var t=!0;try{t=P(!0,e)}finally{t?N():(E=!1,P=null)}}else E=!1}if("function"===typeof k)N=function(){k(T)};else if("undefined"!==typeof MessageChannel){var R=new MessageChannel,F=R.port2;R.port1.onmessage=T,N=function(){F.postMessage(null)}}else N=function(){y(T,0)};function U(e){P=e,E||(E=!0,N())}function M(e,t){C=y(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_continueExecution=function(){v||m||(v=!0,U(z))},n.unstable_forceFrameRate=function(e){0>e||125u?(e.sortIndex=r,l(d,e),null===a(f)&&e===a(d)&&(b?(S(C),C=-1):b=!0,M(w,r-u))):(e.sortIndex=i,l(f,e),v||m||(v=!0,U(z))),e},n.unstable_shouldYield=I,n.unstable_wrapCallback=function(e){var n=g;return function(){var t=g;g=n;try{return e.apply(this,arguments)}finally{g=t}}}},8585:function(e,n,t){"use strict";e.exports=t(8271)}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[907,96,76],function(){return n(4247)});e.O()}]); \ No newline at end of file diff --git a/dist/common.js b/dist/common.js index fba9433..7f7389b 100644 --- a/dist/common.js +++ b/dist/common.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[76],{9513:function(n,t,e){e.d(t,{A:function(){return i}});var r=e(118),o=e(4848);function i(n){var t=n.children,e=n.className,i=n.style;return(0,o.jsx)(r.Ss,{className:"bottom-action-bar ".concat(e||""),style:i,children:t})}},7723:function(n,t,e){e.d(t,{A:function(){return f}});var r=e(5544),o=e(758),i=e.n(o),u=e(6540),c=e(118),a=e(6764),s=e(9703),l=e(8199),d=e(4848);function f(n){var t=(0,u.useState)("checking"),e=(0,r.A)(t,2),o=e[0],f=e[1],g=(0,u.useCallback)(function(){var n=!1;return(0,a.d)().then(function(t){n||f(t?"ok":"denied")}).catch(function(){n||f("denied")}),function(){n=!0}},[]);return(0,u.useEffect)(function(){var n=g(),t=function(){g()},e=function(){g()};return i().eventCenter.on("tabBarChange",t),i().eventCenter.on(s.Wo,e),i().eventCenter.on("authStateChanged",t),function(){n(),i().eventCenter.off("tabBarChange",t),i().eventCenter.off(s.Wo,e),i().eventCenter.off("authStateChanged",t)}},[g]),"checking"===o?(0,d.jsx)(c.Ss,{className:"login-guard",children:(0,d.jsxs)(c.Ss,{className:"login-guard-inner",children:[(0,d.jsx)(c._V,{className:"login-guard-icon",src:(0,l.uq)("/icon/\u8bbe\u7f6e.png"),mode:"aspectFit"}),(0,d.jsx)(c.EY,{className:"login-guard-title",children:"\u6821\u9a8c\u767b\u5f55\u72b6\u6001"})]})}):"denied"===o?(0,d.jsx)(c.Ss,{className:"login-guard",children:(0,d.jsxs)(c.Ss,{className:"login-guard-inner",children:[(0,d.jsx)(c._V,{className:"login-guard-icon",src:(0,l.uq)("/icon/\u4e2a\u4eba.png"),mode:"aspectFit"}),(0,d.jsx)(c.EY,{className:"login-guard-title",children:"\u8bf7\u5148\u767b\u5f55"}),(0,d.jsx)(c.EY,{className:"login-guard-desc",children:"\u767b\u5f55\u540e\u67e5\u770b\u60a8\u7684\u4e13\u5c5e\u5185\u5bb9"}),(0,d.jsx)(c.Ss,{className:"btn-primary login-guard-btn",onTap:function(){return i().switchTab({url:"/pages/profile/index"})},children:(0,d.jsx)(c.EY,{children:"\u53bb\u767b\u5f55"})})]})}):n.children}},3053:function(n,t,e){e.d(t,{A:function(){return f}});var r=e(5544),o=e(118),i=e(758),u=e.n(i),c=e(6540),a=e(9201);function s(n){var t=n.viewportBottom,e=n.scrollTop,r=n.statusBarHeight,o=Number.isFinite(t)?t:0,i=Number.isFinite(e)?e:0,u=Number.isFinite(r)?r:0;return Math.max(0,o+i-u-8)}function l(n){var t=n.scrollTop,e=n.startY,r=n.rangeY,o=Number.isFinite(t)?t:0,i=Math.max(0,Number.isFinite(e)?e:0),u=Math.max(1,Number.isFinite(r)?r:1);return o<=i?0:Math.min(1,(o-i)/u)}var d=e(4848);function f(n){var t=n.title,e=n.targetSelector,i=void 0===e?".page-header":e,f=n.showBack,g=void 0!==f&&f,h=(0,a.c)(),p=(0,c.useState)(0),m=(0,r.A)(p,2),v=m[0],S=m[1],y=(0,c.useMemo)(function(){return{startY:Math.max(0,h.headerPaddingTop-h.statusBarHeight),rangeY:Math.max(48,.45*h.headerPaddingTop)}},[h.headerPaddingTop,h.statusBarHeight]),k=(0,c.useRef)(y),b=(0,c.useRef)(null),A=(0,c.useRef)(0),T=(0,c.useCallback)(function(n){A.current=n,null===b.current&&(b.current=setTimeout(function(){b.current=null;var n=k.current,t=n.startY,e=n.rangeY;S(l({scrollTop:A.current,startY:t,rangeY:e}))},16))},[]);return(0,c.useEffect)(function(){var n=!1,t=null;k.current=y;var e=function(){n||u().createSelectorQuery().select(i).boundingClientRect(function(t){if(!n){if(!t||Array.isArray(t)||"number"!==typeof t.bottom||"number"!==typeof t.height)return k.current=y,void T(A.current);var e=s({viewportBottom:t.bottom,scrollTop:A.current,statusBarHeight:h.statusBarHeight}),r=Math.max(32,.7*t.height);k.current={startY:e,rangeY:r},T(A.current)}}).exec()};return u().nextTick(function(){n||(t=setTimeout(e,80))}),function(){n=!0,null!==t&&clearTimeout(t),null!==b.current&&clearTimeout(b.current),b.current=null}},[T,y,i]),u().usePageScroll(function(n){T(n.scrollTop)}),(0,d.jsxs)(o.Ss,{className:"scroll-top-mask",style:{height:"".concat(Math.max(h.menuButtonTop+h.menuButtonHeight+18,h.statusBarHeight+52)+24,"px"),opacity:v},children:[(0,d.jsx)(o.Ss,{className:"scroll-top-blur scroll-top-blur-mid"}),(0,d.jsx)(o.Ss,{className:"scroll-top-blur scroll-top-blur-soft"}),(0,d.jsx)(o.Ss,{className:"scroll-top-gradient"}),g&&(0,d.jsx)(o.Ss,{className:"scroll-top-back",style:{top:"".concat(h.menuButtonTop,"px")},onTap:function(){return u().navigateBack()},children:(0,d.jsx)(o.EY,{className:"scroll-top-back-arrow",children:"\u2190"})}),(0,d.jsx)(o.EY,{className:"scroll-top-title",style:{top:"calc(".concat(h.menuButtonTop,"px + 40rpx)"),transform:"translateY(-50%)",opacity:Math.max(0,Math.min(1,(v-.5)/.5))},children:t})]})}},9674:function(n,t,e){e.d(t,{A:function(){return u}});var r=e(118),o=e(9703),i=e(4848);function u(n){var t=n.darkTop,e=void 0!==t&&t,u=(0,o.wR)(),c=u.resolvedTheme,a="dark"===c||e,s=a?"#191919":"#faf7f2",l=a?"#ffffff":"#000000";return(0,i.jsx)(r.tf,{backgroundColor:s,backgroundColorTop:s,backgroundColorBottom:s,backgroundTextStyle:a?"light":"dark",rootBackgroundColor:s,children:(0,i.jsx)(r.yk,{frontColor:l,backgroundColor:s})})}},9703:function(n,t,e){e.d(t,{NP:function(){return g},Wo:function(){return f},wR:function(){return h}});var r=e(5544),o=e(6540),i=e(758),u=e.n(i),c=e(118),a=e(8594),s=e(6606),l=e(4848),d=(0,o.createContext)({theme:"auto",resolvedTheme:"light",toggleTheme:function(){},setTheme:function(){}}),f="themeChange";function g(n){var t=n.children,e=(0,o.useState)((0,a.O4)()),g=(0,r.A)(e,2),h=g[0],p=g[1],m=(0,o.useState)((0,a.eW)((0,a.O4)())),v=(0,r.A)(m,2),S=v[0],y=v[1],k=(0,o.useCallback)(function(n){y((0,a.eW)(n))},[]),b=(0,o.useCallback)(function(n){(0,a.Rq)(n),"auto"===(0,a.O4)()&&y(n)},[]),A=(0,o.useCallback)(function(){try{var n=u().getAppBaseInfo();b("dark"===n.theme?"dark":"light")}catch(n){}try{u().createSelectorQuery().select(".system-theme-detector").fields({computedStyle:["opacity"]}).exec(function(n){var t=n&&n[0]&&n[0].computedStyle&&n[0].computedStyle.opacity;b("1"===t?"dark":"light")})}catch(n){}},[b]),T=(0,o.useCallback)(function(n){(0,a.F0)(n),p(n),"auto"===n?A():k(n)},[A,k]),x=(0,o.useCallback)(function(){var n="light"===S?"dark":"light";T(n)},[S,T]);return(0,o.useEffect)(function(){A()},[A]),(0,o.useEffect)(function(){var n,t=function(n){!n||"dark"!==n.theme&&"light"!==n.theme||b(n.theme)},e=u();return null===(n=e.onThemeChange)||void 0===n||n.call(e,t),function(){var n;null===(n=e.offThemeChange)||void 0===n||n.call(e,t)}},[b]),(0,o.useEffect)(function(){u().eventCenter.trigger(f,S)},[S]),(0,o.useEffect)(function(){(0,s.G)(S)},[S]),(0,i.useDidShow)(function(){"auto"===h&&A()}),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.Ss,{className:"system-theme-detector"}),(0,l.jsx)(d.Provider,{value:{theme:h,resolvedTheme:S,toggleTheme:x,setTheme:T},children:t})]})}function h(){return(0,o.useContext)(d)}},9201:function(n,t,e){e.d(t,{c:function(){return a}});var r=e(5544),o=e(6540),i=e(758),u=e.n(i),c=null;function a(){var n=(0,o.useState)(null!==c&&void 0!==c?c:{statusBarHeight:20,menuButtonTop:26,menuButtonHeight:32,capsuleRight:368,safeInsetTop:20,safeInsetBottom:0,headerPaddingTop:66,backBtnPaddingTop:20}),t=(0,r.A)(n,2),e=t[0],i=t[1];return(0,o.useEffect)(function(){if(c)i(c);else try{var n,t,e,r,o,a,s,l,d=u().getSystemInfoSync(),f=u().getMenuButtonBoundingClientRect(),g=d.statusBarHeight||20,h=null!==(n=f.top)&&void 0!==n?n:g+4,p=null!==(t=f.height)&&void 0!==t?t:32,m=null!==(e=f.right)&&void 0!==e?e:d.windowWidth-7,v=null!==(r=null===(o=d.safeArea)||void 0===o?void 0:o.top)&&void 0!==r?r:g,S=null!==(a=d.safeAreaInsetBottom)&&void 0!==a?a:d.screenHeight-(null!==(s=null===(l=d.safeArea)||void 0===l?void 0:l.bottom)&&void 0!==s?s:d.screenHeight),y=Math.max(h+p+6,g+44),k=Math.max(g,h-4),b={statusBarHeight:g,menuButtonTop:h,menuButtonHeight:p,capsuleRight:m,safeInsetTop:v,safeInsetBottom:S,headerPaddingTop:y,backBtnPaddingTop:k};c=b,i(b)}catch(n){}},[]),e}},5414:function(n,t,e){e.d(t,{l:function(){return c}});var r=e(6540),o=e(758),i=e.n(o),u=e(6606);function c(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=t.mode,c=void 0===e?"auto":e,a=(0,r.useCallback)(function(){var t="dark"===c||"auto"===c&&"light"===n,e=t?"#000000":"#ffffff",r=t?"#faf7f2":"#191919";i().setNavigationBarColor({frontColor:e,backgroundColor:r}),(0,u.G)(n,r)},[c,n]);(0,r.useEffect)(a,[a]),(0,o.useDidShow)(a)}},6295:function(n,t,e){e.d(t,{gf:function(){return i.gf},iD:function(){return u},jp:function(){return d},r7:function(){return a},ri:function(){return l}});var r=e(1212),o=e(467),i=e(3246);function u(n){return c.apply(this,arguments)}function c(){return c=(0,o.A)((0,r.A)().m(function n(t){var e;return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:return n.n=1,i.Ay.post("/api/auth/login",{code:t},{auth:!1});case 1:return e=n.v,null!==e&&void 0!==e&&e.accessToken&&(0,i.WG)(e.accessToken),n.a(2,e)}},n)})),c.apply(this,arguments)}function a(n){return s.apply(this,arguments)}function s(){return s=(0,o.A)((0,r.A)().m(function n(t){return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:return n.a(2,i.Ay.patch("/api/users/me",t))}},n)})),s.apply(this,arguments)}function l(){(0,i.L)()}function d(){return f.apply(this,arguments)}function f(){return f=(0,o.A)((0,r.A)().m(function n(){return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:return n.a(2,i.Ay.get("/api/users/me"))}},n)})),f.apply(this,arguments)}},8199:function(n,t,e){e.d(t,{uq:function(){return o}});var r="https://wordcloudwechat.oss-cn-hangzhou.aliyuncs.com";function o(n){if(!n)return"";if(/^(https?:|wxfile:|data:)/i.test(n))return n;if(!r)return n;var t=r.replace(/\/+$/,"");if(!n.startsWith("/img/"))return n;var e=n.startsWith("/")?n:"/".concat(n);return"".concat(t).concat(e)}},6764:function(n,t,e){e.d(t,{d:function(){return S},m:function(){return h}});var r=e(1212),o=e(467),i=e(2284),u=e(758),c=e.n(u),a=e(6295),s=e(8594),l="smart_auth_verified",d=18e5,f=null,g=null;function h(){f=null,g=null;try{c().removeStorageSync(l)}catch(n){}}function p(n){var t=f||function(){try{var n=c().getStorageSync(l);return n&&"object"===(0,i.A)(n)?n:null}catch(n){return null}}();return t&&t.openid===n?Date.now()-t.at>d?null:(f=t,t.ok):null}function m(n,t){var e={openid:n,ok:t,at:Date.now()};f=e;try{c().setStorageSync(l,e)}catch(n){}}function v(){var n=(0,s.Q4)();return!(null===n||void 0===n||!n.openid)&&!(0,s.Ic)(n.openid)&&!!n.accessToken&&!!(0,a.gf)()}function S(){return y.apply(this,arguments)}function y(){return y=(0,o.A)((0,r.A)().m(function n(){var t,e;return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:if(t=(0,s.Q4)(),null!==t&&void 0!==t&&t.openid){n.n=1;break}return console.log("[AuthGuard] \u65e0\u672c\u5730\u7528\u6237\uff0c\u5224\u5b9a\u672a\u767b\u5f55"),n.a(2,!1);case 1:if(console.log("[AuthGuard] \u672c\u5730\u7528\u6237 openid=",t.openid),!(0,s.Ic)(t.openid)){n.n=2;break}return(0,s.Hf)(),(0,a.ri)(),h(),n.a(2,!1);case 2:if(e=p(t.openid),null===e){n.n=3;break}return console.log("[AuthGuard] \u547d\u4e2d\u672c\u5730\u7f13\u5b58 ok=",e),n.a(2,e);case 3:return g||(g=(0,a.jp)().then(function(n){console.log("[AuthGuard] getMe \u8fd4\u56de:",JSON.stringify(n));var e=!!n&&!!n.id&&n.openid===t.openid;return console.log("[AuthGuard] \u4e00\u81f4\u6027=",e),e?(m(t.openid,!0),!0):((0,s.Hf)(),(0,a.ri)(),h(),!1)}).catch(function(n){return console.error("[AuthGuard] getMe \u5931\u8d25\uff0c\u8d70\u672c\u5730\u4f1a\u8bdd\u515c\u5e95:",n),v()}).finally(function(){g=null})),n.a(2,g)}},n)})),y.apply(this,arguments)}},5234:function(n,t,e){e.d(t,{QE:function(){return l},R6:function(){return c},rj:function(){return s},y9:function(){return a},zv:function(){return u}});var r=e(9379),o=e(8199),i=[{id:"notebook-small",name:"\u5fae\u96d5\u7b14\u8bb0\u672c\uff08\u5c0f\uff09",desc:"\u4fbf\u643a\u968f\u884c\uff0c\u8bb0\u5f55\u70b9\u6ef4",icon:"/icon/\u4e66\u672c.png",iconImg:"/icon/\u4e66\u672c.png",price:12,originalPrice:18,leadTime:"3-5\u4e2a\u5de5\u4f5c\u65e5",description:"\u7cbe\u9009\u4f18\u8d28\u7eb8\u5f20\uff0c\u5c01\u9762\u91c7\u7528\u9ad8\u6863PU\u6750\u8d28\uff0c\u624b\u611f\u7ec6\u817b\u3002\u5185\u9875\u53ef\u5b9a\u5236\u6a2a\u7ebf\u3001\u65b9\u683c\u6216\u7a7a\u767d\u4e09\u79cd\u7248\u5f0f\u3002\u6fc0\u5149\u5fae\u96d5\u5de5\u827a\u5c06\u540d\u5b57\u6216\u56fe\u6848\u7cbe\u51c6\u523b\u5370\u5728\u5c01\u9762\uff0c\u6c38\u4e0d\u892a\u8272\u3002\u5c0f\u5de7\u8f7b\u4fbf\uff0c\u9002\u5408\u968f\u8eab\u643a\u5e26\uff0c\u65e0\u8bba\u662f\u8bfe\u5802\u7b14\u8bb0\u8fd8\u662f\u65e5\u5e38\u5907\u5fd8\uff0c\u90fd\u662f\u4f60\u7684\u4e13\u5c5e\u4f34\u4fa3\u3002",subtitle:"\u638c\u5fc3\u95f4\u7684\u4e13\u5c5e\u5370\u8bb0 \xb7 \u6fc0\u5149\u5fae\u96d5 \xb7 \u4e09\u8272\u5185\u9875\u53ef\u9009",tone:[28,22,18],story:"\u7075\u611f\u6e90\u81ea\u624b\u8d26\u6587\u5316\u4e2d\u5bf9\u4e66\u5199\u4eea\u5f0f\u611f\u7684\u8ffd\u6c42\u3002\u6211\u4eec\u76f8\u4fe1\uff0c\u5728\u6570\u5b57\u6d2a\u6d41\u7684\u65f6\u4ee3\uff0c\u7eb8\u7b14\u7684\u6e29\u5ea6\u4f9d\u7136\u4e0d\u53ef\u66ff\u4ee3\u3002\u5f53\u6fc0\u5149\u5fae\u96d5\u5728PU\u5c01\u9762\u4e0a\u7559\u4e0b\u4e13\u5c5e\u5370\u8bb0\uff0c\u6bcf\u4e00\u7b14\u4e66\u5199\u90fd\u5728\u4e0e\u8fc7\u53bb\u5bf9\u8bdd\u3002\u7b14\u8bb0\u672c\u5c0f\u5de7\u5230\u8db3\u4ee5\u653e\u5165\u4efb\u4f55\u53e3\u888b\uff0c\u5374\u627f\u8f7d\u7740\u72ec\u4e00\u65e0\u4e8c\u7684\u8bb0\u5fc6\u3002",scene:"\u8bfe\u5802\u7b14\u8bb0\u3001\u65e5\u5e38\u5907\u5fd8\u3001\u65c5\u884c\u624b\u8d26\u3001\u5fc3\u60c5\u65e5\u8bb0\u3002\u9002\u5408\u9001\u7ed9\u540c\u5b66\u3001\u4f34\u4fa3\u6216\u4f5c\u4e3a\u6d3b\u52a8\u4f34\u624b\u793c\u2014\u2014\u8ba9\u6bcf\u4e00\u4e2a\u4eba\u90fd\u62e5\u6709\u523b\u7740\u81ea\u5df1\u540d\u5b57\u7684\u4e13\u5c5e\u7b14\u8bb0\u672c\u3002",tags:["\u4f34\u624b\u793c","\u5b66\u751f","\u624b\u8d26","\u4fbf\u643a","\u6fc0\u5149\u5fae\u96d5"],specs:[["\u5c3a\u5bf8","105 \xd7 148mm\uff08A6\uff09"],["\u9875\u6570","120\u5f20/240\u9875"],["\u5185\u9875\u7248\u5f0f","\u6a2a\u7ebf / \u65b9\u683c / \u7a7a\u767d \u53ef\u9009"],["\u5c01\u9762\u6750\u8d28","\u9ad8\u6863PU\u76ae\u9769"],["\u96d5\u523b\u5de5\u827a","CO2 \u6fc0\u5149\u5fae\u96d5\uff08\u6c38\u4e0d\u892a\u8272\uff09"],["\u9002\u7528\u573a\u666f","\u8bfe\u5802\u3001\u65c5\u884c\u3001\u65e5\u5e38\u5907\u5fd8"]],images:["/img/book_small/The1.jpg"],mask:{shape:"rect",width:300,height:420,borderRadius:8}},{id:"notebook-large",name:"\u5fae\u96d5\u7b14\u8bb0\u672c\uff08\u5927\uff09",desc:"\u5927\u5f00\u672c\uff0c\u66f4\u591a\u521b\u4f5c\u7a7a\u95f4",icon:"/icon/\u4e66\u672c_\u5927.png",iconImg:"/icon/\u4e66\u672c_\u5927.png",price:45,originalPrice:58,leadTime:"3-5\u4e2a\u5de5\u4f5c\u65e5",description:"A4\u5c3a\u5bf8\u5927\u5f00\u672c\uff0c180\xb0\u5e73\u644a\u8bbe\u8ba1\uff0c\u4e66\u5199\u66f4\u81ea\u7531\u3002\u5c01\u9762\u53ef\u9009\u771f\u76ae\u3001\u4eff\u5e03\u7eb9\u6216\u78e8\u7802\u6750\u8d28\uff0c\u6fc0\u5149\u5fae\u96d5\u533a\u57df\u66f4\u5927\uff0c\u9002\u5408\u5448\u73b0\u5168\u73ed\u540d\u5b57\u3001\u56e2\u961f\u53e3\u53f7\u6216\u516c\u53f8Logo\u7b49\u5927\u7bc7\u5e45\u5185\u5bb9\u3002\u662f\u6bd5\u4e1a\u7eaa\u5ff5\u3001\u4f01\u4e1a\u5e74\u4f1a\u793c\u54c1\u7684\u9996\u9009\u3002",subtitle:"\u5927\u7bc7\u5e45\u5b9a\u5236\u9996\u9009 \xb7 180\xb0\u5e73\u644a \xb7 \u6bd5\u4e1a/\u56e2\u5efa\u5fc5\u5907",tone:[35,28,22],story:"\u6bcf\u4e00\u6b21\u544a\u522b\u90fd\u503c\u5f97\u88ab\u90d1\u91cd\u4e66\u5199\u3002\u6bd5\u4e1a\u5b63\u7684\u6559\u5ba4\u91cc\uff0c\u7b14\u8bb0\u672c\u644a\u5f00\u5728\u8bfe\u684c\u4e0a\uff0c\u5168\u73ed\u7684\u540d\u5b57\u88ab\u6fc0\u5149\u523b\u5370\u5728\u5c01\u9762\u4e2d\u592e\uff0c\u6210\u4e3a\u6c38\u6052\u7684\u540c\u5b66\u5f55\u3002180\xb0\u5e73\u644a\u8bbe\u8ba1\u8ba9\u4e66\u5199\u4e0d\u518d\u88ab\u8ba2\u88c5\u675f\u7f1a\uff0cA4\u5927\u5c3a\u5bf8\u7ed9\u4f60\u5c3d\u60c5\u6325\u6d12\u7684\u5929\u5730\u3002\u8fd9\u662f\u9001\u7ed9\u4e00\u7fa4\u4eba\u6700\u597d\u7684\u544a\u522b\u793c\u7269\u3002",scene:"\u6bd5\u4e1a\u7eaa\u5ff5\u518c\u3001\u516c\u53f8\u5e74\u4f1a\u793c\u54c1\u3001\u56e2\u961f\u5efa\u8bbe\u4f34\u624b\u793c\u3001\u5ba2\u6237\u7b54\u8c22\u3002\u7279\u522b\u9002\u5408\u9700\u8981\u5728\u5c01\u9762\u5448\u73b0\u5927\u91cf\u6587\u5b57\u6216\u56fe\u6848\u7684\u5b9a\u5236\u9700\u6c42\u2014\u2014\u73ed\u7ea7\u540d\u5355\u3001\u516c\u53f8\u613f\u666f\u3001\u56e2\u961f\u53e3\u53f7\u4e00\u7f51\u6253\u5c3d\u3002",tags:["\u6bd5\u4e1a\u793c","\u56e2\u5efa","\u4f01\u4e1a\u5b9a\u5236","\u5927\u7bc7\u5e45","\u5e73\u644a\u8bbe\u8ba1"],specs:[["\u5c3a\u5bf8","210 \xd7 297mm\uff08A4\uff09"],["\u9875\u6570","100\u5f20/200\u9875"],["\u5c01\u9762\u6750\u8d28","\u771f\u76ae / \u4eff\u5e03\u7eb9 / \u78e8\u7802 \u53ef\u9009"],["\u5f00\u5408\u9002\u7528","180\xb0\u5e73\u644a\u8bbe\u8ba1"],["\u96d5\u523b\u5de5\u827a","CO2 \u6fc0\u5149\u5fae\u96d5\uff08\u9ad8\u6e05\u6670\u5ea6\uff09"],["\u5b9a\u5236\u9762\u79ef","\u5c01\u9762\u6574\u9762\u53ef\u96d5"]],images:["/img/book_big/The1.jpg","/img/book_big/The2.jpg"],mask:{shape:"rect",width:340,height:480,borderRadius:8}},{id:"coaster",name:"\u94dc\u8d28\u676f\u57ab",desc:"\u91d1\u5c5e\u8d28\u611f\uff0c\u684c\u9762\u827a\u672f",icon:"/icon/\u676f\u5b50.png",iconImg:"/icon/\u676f\u5b50.png",price:25,originalPrice:35,leadTime:"5-7\u4e2a\u5de5\u4f5c\u65e5",description:"\u91c7\u7528\u4f18\u8d28\u9ec4\u94dc\u6750\u8d28\uff0c\u8868\u9762\u7ecf\u62c9\u4e1d\u5de5\u827a\u5904\u7406\uff0c\u5448\u73b0\u54d1\u5149\u91d1\u5c5e\u8d28\u611f\u3002\u80cc\u9762\u914d\u6709\u9632\u6ed1\u8f6f\u6728\u57ab\uff0c\u4fdd\u62a4\u684c\u9762\u540c\u65f6\u9632\u6b62\u6ed1\u52a8\u3002\u6fc0\u5149\u5fae\u96d5\u53ef\u5728\u8868\u9762\u523b\u5370\u540d\u5b57\u3001\u65e5\u671f\u6216\u795d\u798f\u8bed\uff0c\u662f\u4e54\u8fc1\u65b0\u5c45\u3001\u65b0\u5a5a\u8d3a\u793c\u7684\u7cbe\u81f4\u4e4b\u9009\u3002",subtitle:"\u9ec4\u94dc\u8d28\u611f \xb7 \u62c9\u4e1d\u54d1\u5149 \xb7 \u684c\u9762\u4e0a\u7684\u5fae\u578b\u96d5\u5851",tone:[42,30,18],story:"\u8bbe\u8ba1\u7075\u611f\u6765\u81ea\u65e5\u5f0f\u4f98\u5bc2\u7f8e\u5b66\u3002\u5c81\u6708\u4f1a\u5728\u9ec4\u94dc\u8868\u9762\u7559\u4e0b\u6e29\u67d4\u7684\u6c27\u5316\u75d5\u8ff9\uff0c\u5c31\u5982\u540c\u4e00\u676f\u8336\u4ece\u70ed\u5230\u51c9\u7684\u8fc7\u7a0b\u3002\u62c9\u4e1d\u5904\u7406\u540e\u7684\u54d1\u5149\u8868\u9762\u5728\u706f\u5149\u4e0b\u5448\u73b0\u7ec6\u817b\u7684\u91d1\u5c5e\u7eb9\u7406\uff0c\u6fc0\u5149\u5fae\u96d5\u7684\u540d\u5b57\u6210\u4e3a\u8fd9\u4ef6\u5668\u7269\u4e0a\u6700\u51b7\u9759\u7684\u6ce8\u811a\u3002\u5b83\u4e0d\u53ea\u662f\u676f\u57ab\uff0c\u66f4\u662f\u684c\u9762\u4e0a\u7684\u5fae\u578b\u96d5\u5851\u3002",scene:"\u4e54\u8fc1\u9001\u793c\u3001\u65b0\u5a5a\u8d3a\u793c\u3001\u5496\u5561\u89d2\u5e03\u7f6e\u3001\u529e\u516c\u684c\u7f8e\u5b66\u3002\u9002\u5408\u9001\u7ed9\u559c\u6b22\u624b\u51b2\u5496\u5561\u7684\u670b\u53cb\uff0c\u6216\u4f5c\u4e3a\u5a5a\u793c\u5bbe\u5ba2\u7684\u56de\u793c\u2014\u2014\u6bcf\u4e00\u53ea\u676f\u57ab\u4e0a\u90fd\u523b\u7740\u5bbe\u5ba2\u7684\u540d\u5b57\uff0c\u8ba9\u793c\u7269\u672c\u8eab\u6210\u4e3a\u5ea7\u4f4d\u5361\u3002",tags:["\u4e54\u8fc1\u793c","\u65b0\u5a5a\u8d3a\u793c","\u684c\u9762\u7f8e\u5b66","\u9ec4\u94dc","\u624b\u51b2\u5496\u5561"],specs:[["\u6750\u8d28","\u9ec4\u94dc + \u80cc\u9762\u8f6f\u6728\u9632\u6ed1\u57ab"],["\u8868\u9762\u5904\u7406","\u62c9\u4e1d\u54d1\u5149"],["\u76f4\u5f84","100mm"],["\u539a\u5ea6","3mm"],["\u96d5\u523b\u5de5\u827a","\u5149\u7ea4\u6fc0\u5149\u7cbe\u7ec6\u5fae\u96d5"],["\u8010\u6e29","\u2264120\xb0C"]],images:["/img/cup/The1.jpg"],mask:{shape:"circle",width:280,height:280}},{id:"penbox",name:"\u7af9\u5236\u7b14\u76d2",desc:"\u81ea\u7136\u7af9\u7eb9\uff0c\u6587\u623f\u96c5\u5668",icon:"/icon/\u7b14\u76d2.png",iconImg:"/icon/\u7b14\u76d2.png",price:75,originalPrice:98,leadTime:"7-10\u4e2a\u5de5\u4f5c\u65e5",description:"\u7cbe\u9009\u5929\u7136\u6960\u7af9\uff0c\u7ecf\u591a\u9053\u5de5\u5e8f\u6253\u78e8\u629b\u5149\uff0c\u4fdd\u7559\u5929\u7136\u7af9\u7eb9\u808c\u7406\u3002\u76d2\u76d6\u91c7\u7528\u78c1\u5438\u5f00\u5408\uff0c\u5185\u90e8\u8bbe\u6709\u5206\u5c42\u9694\u677f\u3002\u6fc0\u5149\u5fae\u96d5\u5728\u7af9\u9762\u4e0a\u5448\u73b0\u6df1\u6d45\u4e0d\u4e00\u7684\u96d5\u523b\u6548\u679c\uff0c\u878d\u5165\u58a8\u9999\u6c14\u8d28\u3002\u9002\u5408\u4e66\u623f\u6848\u5934\u3001\u4e66\u6cd5\u7231\u597d\u8005\u7684\u6587\u623f\u4f34\u4fa3\u3002",subtitle:"\u5929\u7136\u6960\u7af9 \xb7 \u78c1\u5438\u5f00\u5408 \xb7 \u6587\u623f\u96c5\u5668\u4e4b\u9009",tone:[30,24,16],story:"\u6bcf\u4e00\u53ea\u7b14\u76d2\u90fd\u6765\u81ea\u540c\u4e00\u7247\u7af9\u6797\u7684\u4e0d\u540c\u90e8\u4f4d\uff0c\u56e0\u6b64\u7eb9\u8def\u7edd\u4e0d\u91cd\u590d\u2014\u2014\u6b63\u5982\u6ca1\u6709\u4e24\u4e2a\u4eba\u7684\u4e66\u6cd5\u98ce\u683c\u5b8c\u5168\u76f8\u540c\u3002\u6211\u4eec\u4fdd\u7559\u4e86\u6960\u7af9\u5929\u7136\u7684\u6e29\u6da6\u89e6\u611f\uff0c\u53ea\u5728\u8868\u9762\u4ee5\u6fc0\u5149\u523b\u4e0b\u540d\u5b57\u6216\u4e00\u53e5\u7bb4\u8a00\u3002\u6253\u5f00\u78c1\u5438\u76d2\u76d6\u65f6\u7684\u6e05\u8106\u58f0\u54cd\uff0c\u662f\u6587\u623f\u4e2d\u7684\u5c0f\u5c0f\u4eea\u5f0f\u3002",scene:"\u4e66\u623f\u6848\u5934\u3001\u4e66\u6cd5\u7231\u597d\u8005\u88c5\u5907\u3001\u6559\u5e08\u8282\u793c\u7269\u3001\u4e66\u623f\u6696\u623f\u793c\u3002\u9002\u5408\u9001\u7ed9\u5199\u5b57\u597d\u770b\u7684\u4eba\u2014\u2014\u56e0\u4e3a\u61c2\u4e66\u5199\u7684\u4eba\uff0c\u624d\u61c2\u4e00\u53ea\u597d\u7b14\u76d2\u7684\u5206\u91cf\u3002",tags:["\u6587\u623f","\u4e66\u6cd5","\u6559\u5e08\u8282","\u4e66\u623f","\u5929\u7136\u6750\u8d28"],specs:[["\u6750\u8d28","\u5929\u7136\u6960\u7af9"],["\u5f00\u5408\u65b9\u5f0f","\u78c1\u5438\u5f0f\u76d2\u76d6"],["\u5185\u90e8\u7ed3\u6784","\u5206\u5c42\u9694\u677f\uff08\u53ef\u8c03\u8282\uff09"],["\u5c3a\u5bf8","200 \xd7 65 \xd7 30mm"],["\u8868\u9762\u5904\u7406","\u624b\u5de5\u6253\u78e8\u629b\u5149\uff0c\u65e0\u6f06"],["\u96d5\u523b\u5de5\u827a","CO2 \u6fc0\u5149\u70e7\u8680\uff08\u6df1\u6d45\u53ef\u8c03\uff09"]],images:["/img/penbox/The1.jpg","/img/penbox/The2.jpg","/img/penbox/The3.jpg"],mask:{shape:"rect",width:320,height:160,borderRadius:12}},{id:"booklamp",name:"\u4e66\u672c\u578b\u706f",desc:"\u6e29\u6696\u5149\u5f71\uff0c\u70b9\u4eae\u5fc3\u610f",icon:"/icon/\u4e66\u706f.png",iconImg:"/icon/\u4e66\u706f.png",price:45,originalPrice:68,leadTime:"5-7\u4e2a\u5de5\u4f5c\u65e5",description:"\u5f00\u5408\u5f0f\u8bbe\u8ba1\uff0c\u6253\u5f00\u5373\u4eae\uff0c\u5408\u62e2\u5373\u706d\uff0c\u5982\u9b54\u6cd5\u4e66\u822c\u5145\u6ee1\u60ca\u559c\u3002\u91c7\u7528LED\u6696\u5149\u706f\u6e90\uff0c\u5149\u7ebf\u67d4\u548c\u4e0d\u523a\u773c\uff0c\u53ef\u6301\u7eed\u70b9\u4eae6-8\u5c0f\u65f6\u3002\u5c01\u9762\u6fc0\u5149\u5fae\u96d5\u53ef\u5b9a\u5236\u6587\u5b57\u3001\u56fe\u6848\u6216\u7167\u7247\uff0c\u8ba9\u6e29\u6696\u7684\u706f\u5149\u627f\u8f7d\u4e13\u5c5e\u8bb0\u5fc6\u3002\u662f\u60c5\u4fa3\u793c\u7269\u3001\u6bd5\u4e1a\u793c\u7269\u7684\u521b\u610f\u4e4b\u9009\u3002",subtitle:"\u5f00\u5408\u5373\u4eae \xb7 LED\u6696\u5149 \xb7 \u9b54\u6cd5\u4e66\u822c\u7684\u60ca\u559c",tone:[25,20,15],story:"\u7075\u611f\u6765\u81ea\u300a\u54c8\u5229\xb7\u6ce2\u7279\u300b\u4e2d\u7684\u9b54\u6cd5\u8bfe\u672c\u2014\u2014\u6253\u5f00\u4e00\u672c\u4e66\uff0c\u5149\u8292\u503e\u6cfb\u800c\u51fa\u3002\u6211\u4eec\u91c7\u7528\u675c\u90a6\u7eb8\u4e0e\u5b9e\u6728\u5c01\u9762\u7ed3\u5408\uff0c\u8ba9\u706f\u4f53\u65e2\u8f7b\u8584\u53c8\u575a\u56fa\u3002\u6fc0\u5149\u5fae\u96d5\u5728\u5c01\u9762\u7559\u4e0b\u4f60\u7684\u540d\u5b57\u6216\u4e00\u5e45\u5c0f\u753b\uff0c\u5f53\u706f\u5728\u6df1\u591c\u4eae\u8d77\uff0c\u90a3\u662f\u4e13\u5c5e\u4e8e\u4f60\u7684\u6e29\u6696\u89d2\u843d\u3002",scene:"\u60c5\u4fa3\u793c\u7269\u3001\u6bd5\u4e1a\u7eaa\u5ff5\u3001\u5e8a\u5934\u591c\u706f\u3001\u9732\u8425\u6c1b\u56f4\u706f\u3001\u513f\u7ae5\u623f\u3002\u7279\u522b\u9002\u5408\u5728\u5c01\u9762\u523b\u4e0a\u4e24\u4e2a\u4eba\u7684\u540d\u5b57\u548c\u4e00\u53e5\u60c5\u8bdd\uff0c\u5728\u60c5\u4eba\u8282\u6216\u7eaa\u5ff5\u65e5\u9001\u51fa\u2014\u2014\u6253\u5f00\u4e66\u706f\uff0c\u5c31\u50cf\u6253\u5f00\u4e00\u5c01\u4f1a\u53d1\u5149\u7684\u60c5\u4e66\u3002",tags:["\u60c5\u4fa3\u793c","\u6bd5\u4e1a\u7eaa\u5ff5","\u591c\u706f","\u6c1b\u56f4\u706f","\u521b\u610f\u793c\u7269"],specs:[["\u5149\u6e90","LED \u6696\u767d\u5149\uff083000K\uff09"],["\u7eed\u822a","6-8\u5c0f\u65f6\uff08\u5185\u7f6e\u53ef\u5145\u7535\u9502\u7535\u6c60\uff09"],["\u5145\u7535","USB Type-C \u63a5\u53e3"],["\u5c01\u9762\u6750\u8d28","\u675c\u90a6\u7eb8 + \u5b9e\u6728\u5c01\u9762"],["\u5c55\u5f00\u5c3a\u5bf8","210 \xd7 150mm"],["\u96d5\u523b\u5de5\u827a","\u6fc0\u5149\u5fae\u96d5\uff08\u652f\u6301\u6587\u5b57+\u7b80\u5355\u56fe\u6848\uff09"]],images:["/img/booklight/The1.jpg","/img/booklight/The2.jpg"],mask:{shape:"rect",width:320,height:240,borderRadius:4}}],u=i.map(function(n){return(0,r.A)((0,r.A)({},n),{},{images:(n.images||[]).map(function(n){return(0,o.uq)(n)}),iconImg:(0,o.uq)(n.iconImg)})}),c=u,a=function(n){return u.find(function(t){return t.id===n})},s={"notebook-small":(0,o.uq)("/icon/\u4e66\u672c.png"),"notebook-large":(0,o.uq)("/icon/\u4e66\u672c_\u5927.png"),coaster:(0,o.uq)("/icon/\u676f\u5b50.png"),penbox:(0,o.uq)("/icon/\u7b14\u76d2.png"),booklamp:(0,o.uq)("/icon/\u4e66\u706f.png")};function l(n){return null!==n&&void 0!==n&&n.iconImg?(0,o.uq)(n.iconImg):null!==n&&void 0!==n&&n.id?(0,o.uq)(s[n.id]||"/icon/\u56db\u89d2\u661f.svg"):(0,o.uq)("/icon/\u56db\u89d2\u661f.svg")}},3246:function(n,t,e){e.d(t,{L:function(){return g},Sy:function(){return l},WG:function(){return f},gf:function(){return d},q:function(){return m}});var r=e(1212),o=e(9379),i=e(467),u=e(758),c=e.n(u),a="https://wxbackend.tokenleaping.com",s="smart_access_token";function l(){try{c().hideLoading()}catch(n){}}function d(){try{return c().getStorageSync(s)||""}catch(n){return""}}function f(n){c().setStorageSync(s,n)}function g(){try{c().removeStorageSync(s)}catch(n){}}var h=null;var p=null;function m(n){p=n}function v(n,t,e,r){return S.apply(this,arguments)}function S(){return S=(0,i.A)((0,r.A)().m(function n(t,e,o,i){return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:return n.a(2,c().request({url:"".concat(a).concat(t),method:e,data:o,header:i}))}},n)})),S.apply(this,arguments)}function y(n){return k.apply(this,arguments)}function k(){return k=(0,i.A)((0,r.A)().m(function n(t){var e,i,u,c,a,s,l,f,m,S,y,k,b,A,T,x,w,C,_=arguments;return(0,r.A)().w(function(n){while(1)switch(n.p=n.n){case 0:return e=_.length>1&&void 0!==_[1]?_[1]:{},i=e.method,u=void 0===i?"GET":i,c=e.data,a=e.headers,s=void 0===a?{}:a,l=e.auth,f=void 0===l||l,m=e.skipAuthRefresh,S=void 0!==m&&m,y=function(){var n=d();return(0,o.A)((0,o.A)({"Content-Type":"application/json"},f&&n?{Authorization:"Bearer ".concat(n)}:{}),s)},n.p=1,n.n=2,v(t,u,c,y());case 2:k=n.v,n.n=4;break;case 3:throw n.p=3,n.v,b=new Error("\u7f51\u7edc\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5"),b.statusCode=-1,b;case 4:if(401!==k.statusCode||S||!p){n.n=9;break}return n.n=5,p();case 5:if(A=n.v,!A){n.n=9;break}return n.p=6,n.n=7,v(t,u,c,y());case 7:k=n.v,n.n=9;break;case 8:throw n.p=8,n.v,T=new Error("\u7f51\u7edc\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5"),T.statusCode=-1,T;case 9:if(401!==k.statusCode){n.n=10;break}throw g(),null===(x=h)||void 0===x||x(),w=new Error("\u767b\u5f55\u5df2\u8fc7\u671f\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55"),w.statusCode=401,w;case 10:if(C=k.data,!C||"number"!==typeof C.code||0===C.code){n.n=11;break}throw new Error(C.message||"\u8bf7\u6c42\u5931\u8d25");case 11:return n.a(2,C&&"number"===typeof C.code?C.data:C)}},n,null,[[6,8],[1,3]])})),k.apply(this,arguments)}var b={get:function(n,t){return y(n,(0,o.A)((0,o.A)({},t),{},{method:"GET"}))},post:function(n,t,e){return y(n,(0,o.A)((0,o.A)({},e),{},{method:"POST",data:t}))},put:function(n,t,e){return y(n,(0,o.A)((0,o.A)({},e),{},{method:"PUT",data:t}))},patch:function(n,t,e){return y(n,(0,o.A)((0,o.A)({},e),{},{method:"PATCH",data:t}))},del:function(n,t){return y(n,(0,o.A)((0,o.A)({},t),{},{method:"DELETE"}))}};t.Ay=b},8594:function(n,t,e){e.d(t,{E1:function(){return K},EB:function(){return X},F0:function(){return U},Fu:function(){return q},Hf:function(){return x},IU:function(){return W},Ic:function(){return g},O4:function(){return O},Q1:function(){return _},Q4:function(){return b},Re:function(){return J},Rq:function(){return Q},ab:function(){return $},cY:function(){return H},eW:function(){return z},hG:function(){return N},i5:function(){return Y},iA:function(){return w},iZ:function(){return j},kg:function(){return B},kh:function(){return M},n7:function(){return G},p_:function(){return R},uF:function(){return I},ug:function(){return C},yU:function(){return Z}});var r=e(9379),o=e(436),i=e(758),u=e.n(i),c=e(5234),a=e(8199),s=e(6764),l="smart_theme",d="smart_user_info",f="smart_active_openid";function g(n){return!!n&&(n.startsWith("mock_")||n.startsWith("mock-"))}function h(){var n=b(),t=(null===n||void 0===n?void 0:n.openid)||u().getStorageSync(f)||"_guest_";return u().setStorageSync(f,t),t}function p(n){var t=h();return"".concat(n,"_").concat(t)}var m="smart_user_registry",v="zhihui2024";function S(){try{return u().getStorageSync(m)||[]}catch(n){return[]}}function y(n){var t=S();t.includes(n)||(t.push(n),u().setStorageSync(m,t))}function k(n){var t=S().filter(function(t){return t!==n});u().setStorageSync(m,t)}function b(){try{return u().getStorageSync(d)}catch(n){return null}}function A(n){var t;u().setStorageSync(d,n),null!==n&&void 0!==n&&n.openid&&(u().setStorageSync(f,n.openid),u().setStorageSync("user_info_".concat(n.openid),n),y(n.openid)),(0,s.m)(),null===(t=u().eventCenter)||void 0===t||t.trigger("authStateChanged",{openid:(null===n||void 0===n?void 0:n.openid)||""})}function T(n){try{var t=u().getStorageSync("user_info_".concat(n));if(t)return t}catch(n){}var e=b();return(null===e||void 0===e?void 0:e.openid)===n?e:null}function x(){var n;u().removeStorageSync(d),u().removeStorageSync(f),(0,s.m)(),null===(n=u().eventCenter)||void 0===n||n.trigger("authStateChanged",{openid:""})}function w(n){A(n)}function C(){return b()}function _(){var n=S();return n.map(function(n){var t=T(n),e=D(n),r=P(n);return{openid:n,nickName:(null===t||void 0===t?void 0:t.nickName)||"\u672a\u77e5\u7528\u6237",avatarUrl:(null===t||void 0===t?void 0:t.avatarUrl)||"",loginAt:(null===t||void 0===t?void 0:t.loginAt)||0,designCount:e.length,orderCount:r.length}})}function B(n,t){var e="mock_"+Date.now().toString(36)+"_"+Math.random().toString(36).slice(2,6),r={openid:e,nickName:n||"\u5fae\u4fe1\u7528\u6237",avatarUrl:t||"",loginAt:Date.now()};return A(r),r}function j(n){var t=T(n);return!!t&&(u().setStorageSync(d,t),u().setStorageSync(f,n),!0)}function N(n){u().removeStorageSync("user_info_".concat(n)),u().removeStorageSync("design_list_".concat(n)),u().removeStorageSync("order_list_".concat(n)),u().removeStorageSync("address_list_".concat(n)),k(n);var t=b();(null===t||void 0===t?void 0:t.openid)===n&&x()}function I(n){return n===v}function E(n,t){return"".concat(n,"_").concat(t)}function D(n){try{return u().getStorageSync(E("design_list",n))||[]}catch(n){return[]}}function P(n){try{return u().getStorageSync(E("order_list",n))||[]}catch(n){return[]}}function R(){try{return u().getStorageSync(p("design_list"))||[]}catch(n){return[]}}function q(n){u().setStorageSync(p("design_list"),n)}function H(n,t){var e=R(),r=(0,a.uq)((null===n||void 0===n?void 0:n.iconImg)||c.rj[null===n||void 0===n?void 0:n.id]||"/icon/\u56db\u89d2\u661f.svg"),i={id:"DSG"+Date.now(),productId:n.id,productName:n.name,productIcon:r,unitPrice:n.price,count:t,status:"undesigned",createdAt:(new Date).toISOString().slice(0,10)};return q([].concat((0,o.A)(e),[i])),i}function Y(n,t){var e=R(),o=e.findIndex(function(t){return t.id===n});-1!==o&&(e[o]=(0,r.A)((0,r.A)({},e[o]),t),q(e))}function M(n){var t=R().filter(function(t){return!n.includes(t.id)});q(t)}function G(){try{return u().getStorageSync(p("order_list"))||[]}catch(n){return[]}}function F(n){u().setStorageSync(p("order_list"),n)}function W(n){var t,e=R(),r=G(),i=e.find(function(t){return t.id===n});if(!i)return null;var u=null!==(t=i.productIcon)&&void 0!==t&&t.startsWith("/icon/")||/^https?:/i.test(i.productIcon||"")?i.productIcon:c.rj[i.productId]||"/icon/\u56db\u89d2\u661f.svg",s=(0,a.uq)(u),l={id:"ORD"+Date.now().toString().slice(-9),productName:i.productName,productIcon:s,statusCode:"pending",date:(new Date).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).replace(/\//g,"-"),price:"\xa5"+(i.unitPrice*i.count).toFixed(2),count:i.count,sku:"".concat(i.productName," \xd7 ").concat(i.count)},d=e.findIndex(function(t){return t.id===n});return-1!==d&&(e[d].status="ordered",e[d].orderId=l.id),q(e),F([l].concat((0,o.A)(r))),l}function O(){try{return u().getStorageSync(l)||"auto"}catch(n){return"auto"}}function U(n){u().setStorageSync(l,n)}var L=null;function Q(n){L=n}function z(n){if("auto"===n){if(L)return L;try{var t=u().getAppBaseInfo();if("dark"===t.theme||"light"===t.theme)return t.theme}catch(n){}return"light"}return n}function J(){try{return u().getStorageSync(p("address_list"))||[]}catch(n){return[]}}function V(n){u().setStorageSync(p("address_list"),n)}function K(n){var t=J(),e=(0,r.A)((0,r.A)({},n),{},{id:"ADR"+Date.now()});return e.isDefault&&t.forEach(function(n){n.isDefault=!1}),V([e].concat((0,o.A)(t))),e}function Z(n,t){var e=J(),o=e.findIndex(function(t){return t.id===n});-1!==o&&(t.isDefault&&e.forEach(function(n){n.isDefault=!1}),e[o]=(0,r.A)((0,r.A)({},e[o]),t),V(e))}function $(n){var t=J().filter(function(t){return t.id!==n});V(t)}function X(){return J().find(function(n){return n.isDefault})}},6606:function(n,t,e){e.d(t,{G:function(){return u}});var r=e(758),o=e.n(r);function i(n){return"dark"===n?"#191919":"#faf7f2"}function u(n,t){var e=null!==t&&void 0!==t?t:i(n);o().setBackgroundColor({backgroundColor:e,backgroundColorTop:e,backgroundColorBottom:e}),o().setBackgroundTextStyle({textStyle:"dark"===n?"light":"dark"})}}}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[76],{9513:function(n,t,e){e.d(t,{A:function(){return i}});var r=e(118),o=e(4848);function i(n){var t=n.children,e=n.className,i=n.style;return(0,o.jsx)(r.Ss,{className:"bottom-action-bar ".concat(e||""),style:i,children:t})}},7723:function(n,t,e){e.d(t,{A:function(){return f}});var r=e(5544),o=e(758),i=e.n(o),u=e(6540),c=e(118),a=e(6764),s=e(9703),l=e(8199),d=e(4848);function f(n){var t=(0,u.useState)("checking"),e=(0,r.A)(t,2),o=e[0],f=e[1],g=(0,u.useCallback)(function(){var n=!1;return(0,a.d)().then(function(t){n||f(t?"ok":"denied")}).catch(function(){n||f("denied")}),function(){n=!0}},[]);return(0,u.useEffect)(function(){var n=g(),t=function(){g()},e=function(){g()};return i().eventCenter.on("tabBarChange",t),i().eventCenter.on(s.Wo,e),i().eventCenter.on("authStateChanged",t),function(){n(),i().eventCenter.off("tabBarChange",t),i().eventCenter.off(s.Wo,e),i().eventCenter.off("authStateChanged",t)}},[g]),"checking"===o?(0,d.jsx)(c.Ss,{className:"login-guard",children:(0,d.jsxs)(c.Ss,{className:"login-guard-inner",children:[(0,d.jsx)(c._V,{className:"login-guard-icon",src:(0,l.uq)("/icon/\u8bbe\u7f6e.png"),mode:"aspectFit"}),(0,d.jsx)(c.EY,{className:"login-guard-title",children:"\u6821\u9a8c\u767b\u5f55\u72b6\u6001"})]})}):"denied"===o?(0,d.jsx)(c.Ss,{className:"login-guard",children:(0,d.jsxs)(c.Ss,{className:"login-guard-inner",children:[(0,d.jsx)(c._V,{className:"login-guard-icon",src:(0,l.uq)("/icon/\u4e2a\u4eba.png"),mode:"aspectFit"}),(0,d.jsx)(c.EY,{className:"login-guard-title",children:"\u8bf7\u5148\u767b\u5f55"}),(0,d.jsx)(c.EY,{className:"login-guard-desc",children:"\u767b\u5f55\u540e\u67e5\u770b\u60a8\u7684\u4e13\u5c5e\u5185\u5bb9"}),(0,d.jsx)(c.Ss,{className:"btn-primary login-guard-btn",onTap:function(){return i().switchTab({url:"/pages/profile/index"})},children:(0,d.jsx)(c.EY,{children:"\u53bb\u767b\u5f55"})})]})}):n.children}},3053:function(n,t,e){e.d(t,{A:function(){return f}});var r=e(5544),o=e(118),i=e(758),u=e.n(i),c=e(6540),a=e(9201);function s(n){var t=n.viewportBottom,e=n.scrollTop,r=n.statusBarHeight,o=Number.isFinite(t)?t:0,i=Number.isFinite(e)?e:0,u=Number.isFinite(r)?r:0;return Math.max(0,o+i-u-8)}function l(n){var t=n.scrollTop,e=n.startY,r=n.rangeY,o=Number.isFinite(t)?t:0,i=Math.max(0,Number.isFinite(e)?e:0),u=Math.max(1,Number.isFinite(r)?r:1);return o<=i?0:Math.min(1,(o-i)/u)}var d=e(4848);function f(n){var t=n.title,e=n.targetSelector,i=void 0===e?".page-header":e,f=n.showBack,g=void 0!==f&&f,h=(0,a.c)(),p=(0,c.useState)(0),m=(0,r.A)(p,2),v=m[0],S=m[1],y=(0,c.useMemo)(function(){return{startY:Math.max(0,h.headerPaddingTop-h.statusBarHeight),rangeY:Math.max(48,.45*h.headerPaddingTop)}},[h.headerPaddingTop,h.statusBarHeight]),k=(0,c.useRef)(y),b=(0,c.useRef)(null),A=(0,c.useRef)(0),T=(0,c.useCallback)(function(n){A.current=n,null===b.current&&(b.current=setTimeout(function(){b.current=null;var n=k.current,t=n.startY,e=n.rangeY;S(l({scrollTop:A.current,startY:t,rangeY:e}))},16))},[]);return(0,c.useEffect)(function(){var n=!1,t=null;k.current=y;var e=function(){n||u().createSelectorQuery().select(i).boundingClientRect(function(t){if(!n){if(!t||Array.isArray(t)||"number"!==typeof t.bottom||"number"!==typeof t.height)return k.current=y,void T(A.current);var e=s({viewportBottom:t.bottom,scrollTop:A.current,statusBarHeight:h.statusBarHeight}),r=Math.max(32,.7*t.height);k.current={startY:e,rangeY:r},T(A.current)}}).exec()};return u().nextTick(function(){n||(t=setTimeout(e,80))}),function(){n=!0,null!==t&&clearTimeout(t),null!==b.current&&clearTimeout(b.current),b.current=null}},[T,y,i]),u().usePageScroll(function(n){T(n.scrollTop)}),(0,d.jsxs)(o.Ss,{className:"scroll-top-mask",style:{height:"".concat(Math.max(h.menuButtonTop+h.menuButtonHeight+18,h.statusBarHeight+52)+24,"px"),opacity:v},children:[(0,d.jsx)(o.Ss,{className:"scroll-top-blur scroll-top-blur-mid"}),(0,d.jsx)(o.Ss,{className:"scroll-top-blur scroll-top-blur-soft"}),(0,d.jsx)(o.Ss,{className:"scroll-top-gradient"}),g&&(0,d.jsx)(o.Ss,{className:"scroll-top-back",style:{top:"".concat(h.menuButtonTop,"px")},onTap:function(){return u().navigateBack()},children:(0,d.jsx)(o.EY,{className:"scroll-top-back-arrow",children:"\u2190"})}),(0,d.jsx)(o.EY,{className:"scroll-top-title",style:{top:"calc(".concat(h.menuButtonTop,"px + 40rpx)"),transform:"translateY(-50%)",opacity:Math.max(0,Math.min(1,(v-.5)/.5))},children:t})]})}},9674:function(n,t,e){e.d(t,{A:function(){return u}});var r=e(118),o=e(9703),i=e(4848);function u(n){var t=n.darkTop,e=void 0!==t&&t,u=(0,o.wR)(),c=u.resolvedTheme,a="dark"===c||e,s=a?"#191919":"#faf7f2",l=a?"#ffffff":"#000000";return(0,i.jsx)(r.tf,{backgroundColor:s,backgroundColorTop:s,backgroundColorBottom:s,backgroundTextStyle:a?"light":"dark",rootBackgroundColor:s,children:(0,i.jsx)(r.yk,{frontColor:l,backgroundColor:s})})}},9703:function(n,t,e){e.d(t,{NP:function(){return g},Wo:function(){return f},wR:function(){return h}});var r=e(5544),o=e(6540),i=e(758),u=e.n(i),c=e(118),a=e(1457),s=e(6606),l=e(4848),d=(0,o.createContext)({theme:"auto",resolvedTheme:"light",toggleTheme:function(){},setTheme:function(){}}),f="themeChange";function g(n){var t=n.children,e=(0,o.useState)((0,a.O4)()),g=(0,r.A)(e,2),h=g[0],p=g[1],m=(0,o.useState)((0,a.eW)((0,a.O4)())),v=(0,r.A)(m,2),S=v[0],y=v[1],k=(0,o.useCallback)(function(n){y((0,a.eW)(n))},[]),b=(0,o.useCallback)(function(n){(0,a.Rq)(n),"auto"===(0,a.O4)()&&y(n)},[]),A=(0,o.useCallback)(function(){try{var n=u().getAppBaseInfo();b("dark"===n.theme?"dark":"light")}catch(n){}try{u().createSelectorQuery().select(".system-theme-detector").fields({computedStyle:["opacity"]}).exec(function(n){var t=n&&n[0]&&n[0].computedStyle&&n[0].computedStyle.opacity;b("1"===t?"dark":"light")})}catch(n){}},[b]),T=(0,o.useCallback)(function(n){(0,a.F0)(n),p(n),"auto"===n?A():k(n)},[A,k]),x=(0,o.useCallback)(function(){var n="light"===S?"dark":"light";T(n)},[S,T]);return(0,o.useEffect)(function(){A()},[A]),(0,o.useEffect)(function(){var n,t=function(n){!n||"dark"!==n.theme&&"light"!==n.theme||b(n.theme)},e=u();return null===(n=e.onThemeChange)||void 0===n||n.call(e,t),function(){var n;null===(n=e.offThemeChange)||void 0===n||n.call(e,t)}},[b]),(0,o.useEffect)(function(){u().eventCenter.trigger(f,S)},[S]),(0,o.useEffect)(function(){(0,s.G)(S)},[S]),(0,i.useDidShow)(function(){"auto"===h&&A()}),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.Ss,{className:"system-theme-detector"}),(0,l.jsx)(d.Provider,{value:{theme:h,resolvedTheme:S,toggleTheme:x,setTheme:T},children:t})]})}function h(){return(0,o.useContext)(d)}},9201:function(n,t,e){e.d(t,{c:function(){return a}});var r=e(5544),o=e(6540),i=e(758),u=e.n(i),c=null;function a(){var n=(0,o.useState)(null!==c&&void 0!==c?c:{statusBarHeight:20,menuButtonTop:26,menuButtonHeight:32,capsuleRight:368,safeInsetTop:20,safeInsetBottom:0,headerPaddingTop:66,backBtnPaddingTop:20}),t=(0,r.A)(n,2),e=t[0],i=t[1];return(0,o.useEffect)(function(){if(c)i(c);else try{var n,t,e,r,o,a,s,l,d=u().getSystemInfoSync(),f=u().getMenuButtonBoundingClientRect(),g=d.statusBarHeight||20,h=null!==(n=f.top)&&void 0!==n?n:g+4,p=null!==(t=f.height)&&void 0!==t?t:32,m=null!==(e=f.right)&&void 0!==e?e:d.windowWidth-7,v=null!==(r=null===(o=d.safeArea)||void 0===o?void 0:o.top)&&void 0!==r?r:g,S=null!==(a=d.safeAreaInsetBottom)&&void 0!==a?a:d.screenHeight-(null!==(s=null===(l=d.safeArea)||void 0===l?void 0:l.bottom)&&void 0!==s?s:d.screenHeight),y=Math.max(h+p+6,g+44),k=Math.max(g,h-4),b={statusBarHeight:g,menuButtonTop:h,menuButtonHeight:p,capsuleRight:m,safeInsetTop:v,safeInsetBottom:S,headerPaddingTop:y,backBtnPaddingTop:k};c=b,i(b)}catch(n){}},[]),e}},5414:function(n,t,e){e.d(t,{l:function(){return c}});var r=e(6540),o=e(758),i=e.n(o),u=e(6606);function c(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=t.mode,c=void 0===e?"auto":e,a=(0,r.useCallback)(function(){var t="dark"===c||"auto"===c&&"light"===n,e=t?"#000000":"#ffffff",r=t?"#faf7f2":"#191919";i().setNavigationBarColor({frontColor:e,backgroundColor:r}),(0,u.G)(n,r)},[c,n]);(0,r.useEffect)(a,[a]),(0,o.useDidShow)(a)}},4093:function(n,t,e){e.d(t,{jp:function(){return d},gf:function(){return i.gf},iD:function(){return u},ri:function(){return a},r7:function(){return s}});var r=e(1212),o=e(467),i=e(3246);function u(n){return c.apply(this,arguments)}function c(){return c=(0,o.A)((0,r.A)().m(function n(t){var e;return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:return n.n=1,i.Ay.post("/api/auth/login",{code:t},{auth:!1});case 1:return e=n.v,null!==e&&void 0!==e&&e.accessToken&&(0,i.WG)(e.accessToken),n.a(2,e)}},n)})),c.apply(this,arguments)}function a(){(0,i.L)()}function s(n){return l.apply(this,arguments)}function l(){return l=(0,o.A)((0,r.A)().m(function n(t){return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:return n.a(2,i.Ay.patch("/api/users/me",t))}},n)})),l.apply(this,arguments)}function d(){return f.apply(this,arguments)}function f(){return f=(0,o.A)((0,r.A)().m(function n(){return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:return n.a(2,i.Ay.get("/api/users/me"))}},n)})),f.apply(this,arguments)}},8199:function(n,t,e){e.d(t,{uq:function(){return o}});var r="https://wordcloudwechat.oss-cn-hangzhou.aliyuncs.com";function o(n){if(!n)return"";if(/^(https?:|wxfile:|data:)/i.test(n))return n;if(!r)return n;var t=r.replace(/\/+$/,"");if(!n.startsWith("/img/"))return n;var e=n.startsWith("/")?n:"/".concat(n);return"".concat(t).concat(e)}},6764:function(n,t,e){e.d(t,{d:function(){return S},m:function(){return h}});var r=e(1212),o=e(467),i=e(2284),u=e(758),c=e.n(u),a=e(4093),s=e(1457),l="smart_auth_verified",d=18e5,f=null,g=null;function h(){f=null,g=null;try{c().removeStorageSync(l)}catch(n){}}function p(n){var t=f||function(){try{var n=c().getStorageSync(l);return n&&"object"===(0,i.A)(n)?n:null}catch(n){return null}}();return t&&t.openid===n?Date.now()-t.at>d?null:(f=t,t.ok):null}function m(n,t){var e={openid:n,ok:t,at:Date.now()};f=e;try{c().setStorageSync(l,e)}catch(n){}}function v(){var n=(0,s.Q4)();return!(null===n||void 0===n||!n.openid)&&!(0,s.Ic)(n.openid)&&!!n.accessToken&&!!(0,a.gf)()}function S(){return y.apply(this,arguments)}function y(){return y=(0,o.A)((0,r.A)().m(function n(){var t,e;return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:if(t=(0,s.Q4)(),null!==t&&void 0!==t&&t.openid){n.n=1;break}return console.log("[AuthGuard] \u65e0\u672c\u5730\u7528\u6237\uff0c\u5224\u5b9a\u672a\u767b\u5f55"),n.a(2,!1);case 1:if(console.log("[AuthGuard] \u672c\u5730\u7528\u6237 openid=",t.openid),!(0,s.Ic)(t.openid)){n.n=2;break}return(0,s.Hf)(),(0,a.ri)(),h(),n.a(2,!1);case 2:if(e=p(t.openid),null===e){n.n=3;break}return console.log("[AuthGuard] \u547d\u4e2d\u672c\u5730\u7f13\u5b58 ok=",e),n.a(2,e);case 3:return g||(g=(0,a.jp)().then(function(n){console.log("[AuthGuard] getMe \u8fd4\u56de:",JSON.stringify(n));var e=!!n&&!!n.id&&n.openid===t.openid;return console.log("[AuthGuard] \u4e00\u81f4\u6027=",e),e?(m(t.openid,!0),!0):((0,s.Hf)(),(0,a.ri)(),h(),!1)}).catch(function(n){return console.error("[AuthGuard] getMe \u5931\u8d25\uff0c\u8d70\u672c\u5730\u4f1a\u8bdd\u515c\u5e95:",n),v()}).finally(function(){g=null})),n.a(2,g)}},n)})),y.apply(this,arguments)}},5234:function(n,t,e){e.d(t,{QE:function(){return l},R6:function(){return c},rj:function(){return s},y9:function(){return a},zv:function(){return u}});var r=e(9379),o=e(8199),i=[{id:"notebook-small",name:"\u5fae\u96d5\u7b14\u8bb0\u672c\uff08\u5c0f\uff09",desc:"\u4fbf\u643a\u968f\u884c\uff0c\u8bb0\u5f55\u70b9\u6ef4",icon:"/icon/\u4e66\u672c.png",iconImg:"/icon/\u4e66\u672c.png",price:12,originalPrice:18,leadTime:"3-5\u4e2a\u5de5\u4f5c\u65e5",description:"\u7cbe\u9009\u4f18\u8d28\u7eb8\u5f20\uff0c\u5c01\u9762\u91c7\u7528\u9ad8\u6863PU\u6750\u8d28\uff0c\u624b\u611f\u7ec6\u817b\u3002\u5185\u9875\u53ef\u5b9a\u5236\u6a2a\u7ebf\u3001\u65b9\u683c\u6216\u7a7a\u767d\u4e09\u79cd\u7248\u5f0f\u3002\u6fc0\u5149\u5fae\u96d5\u5de5\u827a\u5c06\u540d\u5b57\u6216\u56fe\u6848\u7cbe\u51c6\u523b\u5370\u5728\u5c01\u9762\uff0c\u6c38\u4e0d\u892a\u8272\u3002\u5c0f\u5de7\u8f7b\u4fbf\uff0c\u9002\u5408\u968f\u8eab\u643a\u5e26\uff0c\u65e0\u8bba\u662f\u8bfe\u5802\u7b14\u8bb0\u8fd8\u662f\u65e5\u5e38\u5907\u5fd8\uff0c\u90fd\u662f\u4f60\u7684\u4e13\u5c5e\u4f34\u4fa3\u3002",subtitle:"\u638c\u5fc3\u95f4\u7684\u4e13\u5c5e\u5370\u8bb0 \xb7 \u6fc0\u5149\u5fae\u96d5 \xb7 \u4e09\u8272\u5185\u9875\u53ef\u9009",tone:[28,22,18],story:"\u7075\u611f\u6e90\u81ea\u624b\u8d26\u6587\u5316\u4e2d\u5bf9\u4e66\u5199\u4eea\u5f0f\u611f\u7684\u8ffd\u6c42\u3002\u6211\u4eec\u76f8\u4fe1\uff0c\u5728\u6570\u5b57\u6d2a\u6d41\u7684\u65f6\u4ee3\uff0c\u7eb8\u7b14\u7684\u6e29\u5ea6\u4f9d\u7136\u4e0d\u53ef\u66ff\u4ee3\u3002\u5f53\u6fc0\u5149\u5fae\u96d5\u5728PU\u5c01\u9762\u4e0a\u7559\u4e0b\u4e13\u5c5e\u5370\u8bb0\uff0c\u6bcf\u4e00\u7b14\u4e66\u5199\u90fd\u5728\u4e0e\u8fc7\u53bb\u5bf9\u8bdd\u3002\u7b14\u8bb0\u672c\u5c0f\u5de7\u5230\u8db3\u4ee5\u653e\u5165\u4efb\u4f55\u53e3\u888b\uff0c\u5374\u627f\u8f7d\u7740\u72ec\u4e00\u65e0\u4e8c\u7684\u8bb0\u5fc6\u3002",scene:"\u8bfe\u5802\u7b14\u8bb0\u3001\u65e5\u5e38\u5907\u5fd8\u3001\u65c5\u884c\u624b\u8d26\u3001\u5fc3\u60c5\u65e5\u8bb0\u3002\u9002\u5408\u9001\u7ed9\u540c\u5b66\u3001\u4f34\u4fa3\u6216\u4f5c\u4e3a\u6d3b\u52a8\u4f34\u624b\u793c\u2014\u2014\u8ba9\u6bcf\u4e00\u4e2a\u4eba\u90fd\u62e5\u6709\u523b\u7740\u81ea\u5df1\u540d\u5b57\u7684\u4e13\u5c5e\u7b14\u8bb0\u672c\u3002",tags:["\u4f34\u624b\u793c","\u5b66\u751f","\u624b\u8d26","\u4fbf\u643a","\u6fc0\u5149\u5fae\u96d5"],specs:[["\u5c3a\u5bf8","105 \xd7 148mm\uff08A6\uff09"],["\u9875\u6570","120\u5f20/240\u9875"],["\u5185\u9875\u7248\u5f0f","\u6a2a\u7ebf / \u65b9\u683c / \u7a7a\u767d \u53ef\u9009"],["\u5c01\u9762\u6750\u8d28","\u9ad8\u6863PU\u76ae\u9769"],["\u96d5\u523b\u5de5\u827a","CO2 \u6fc0\u5149\u5fae\u96d5\uff08\u6c38\u4e0d\u892a\u8272\uff09"],["\u9002\u7528\u573a\u666f","\u8bfe\u5802\u3001\u65c5\u884c\u3001\u65e5\u5e38\u5907\u5fd8"]],images:["/img/book_small/The1.jpg"],mask:{shape:"rect",width:300,height:420,borderRadius:8}},{id:"notebook-large",name:"\u5fae\u96d5\u7b14\u8bb0\u672c\uff08\u5927\uff09",desc:"\u5927\u5f00\u672c\uff0c\u66f4\u591a\u521b\u4f5c\u7a7a\u95f4",icon:"/icon/\u4e66\u672c_\u5927.png",iconImg:"/icon/\u4e66\u672c_\u5927.png",price:45,originalPrice:58,leadTime:"3-5\u4e2a\u5de5\u4f5c\u65e5",description:"A4\u5c3a\u5bf8\u5927\u5f00\u672c\uff0c180\xb0\u5e73\u644a\u8bbe\u8ba1\uff0c\u4e66\u5199\u66f4\u81ea\u7531\u3002\u5c01\u9762\u53ef\u9009\u771f\u76ae\u3001\u4eff\u5e03\u7eb9\u6216\u78e8\u7802\u6750\u8d28\uff0c\u6fc0\u5149\u5fae\u96d5\u533a\u57df\u66f4\u5927\uff0c\u9002\u5408\u5448\u73b0\u5168\u73ed\u540d\u5b57\u3001\u56e2\u961f\u53e3\u53f7\u6216\u516c\u53f8Logo\u7b49\u5927\u7bc7\u5e45\u5185\u5bb9\u3002\u662f\u6bd5\u4e1a\u7eaa\u5ff5\u3001\u4f01\u4e1a\u5e74\u4f1a\u793c\u54c1\u7684\u9996\u9009\u3002",subtitle:"\u5927\u7bc7\u5e45\u5b9a\u5236\u9996\u9009 \xb7 180\xb0\u5e73\u644a \xb7 \u6bd5\u4e1a/\u56e2\u5efa\u5fc5\u5907",tone:[35,28,22],story:"\u6bcf\u4e00\u6b21\u544a\u522b\u90fd\u503c\u5f97\u88ab\u90d1\u91cd\u4e66\u5199\u3002\u6bd5\u4e1a\u5b63\u7684\u6559\u5ba4\u91cc\uff0c\u7b14\u8bb0\u672c\u644a\u5f00\u5728\u8bfe\u684c\u4e0a\uff0c\u5168\u73ed\u7684\u540d\u5b57\u88ab\u6fc0\u5149\u523b\u5370\u5728\u5c01\u9762\u4e2d\u592e\uff0c\u6210\u4e3a\u6c38\u6052\u7684\u540c\u5b66\u5f55\u3002180\xb0\u5e73\u644a\u8bbe\u8ba1\u8ba9\u4e66\u5199\u4e0d\u518d\u88ab\u8ba2\u88c5\u675f\u7f1a\uff0cA4\u5927\u5c3a\u5bf8\u7ed9\u4f60\u5c3d\u60c5\u6325\u6d12\u7684\u5929\u5730\u3002\u8fd9\u662f\u9001\u7ed9\u4e00\u7fa4\u4eba\u6700\u597d\u7684\u544a\u522b\u793c\u7269\u3002",scene:"\u6bd5\u4e1a\u7eaa\u5ff5\u518c\u3001\u516c\u53f8\u5e74\u4f1a\u793c\u54c1\u3001\u56e2\u961f\u5efa\u8bbe\u4f34\u624b\u793c\u3001\u5ba2\u6237\u7b54\u8c22\u3002\u7279\u522b\u9002\u5408\u9700\u8981\u5728\u5c01\u9762\u5448\u73b0\u5927\u91cf\u6587\u5b57\u6216\u56fe\u6848\u7684\u5b9a\u5236\u9700\u6c42\u2014\u2014\u73ed\u7ea7\u540d\u5355\u3001\u516c\u53f8\u613f\u666f\u3001\u56e2\u961f\u53e3\u53f7\u4e00\u7f51\u6253\u5c3d\u3002",tags:["\u6bd5\u4e1a\u793c","\u56e2\u5efa","\u4f01\u4e1a\u5b9a\u5236","\u5927\u7bc7\u5e45","\u5e73\u644a\u8bbe\u8ba1"],specs:[["\u5c3a\u5bf8","210 \xd7 297mm\uff08A4\uff09"],["\u9875\u6570","100\u5f20/200\u9875"],["\u5c01\u9762\u6750\u8d28","\u771f\u76ae / \u4eff\u5e03\u7eb9 / \u78e8\u7802 \u53ef\u9009"],["\u5f00\u5408\u9002\u7528","180\xb0\u5e73\u644a\u8bbe\u8ba1"],["\u96d5\u523b\u5de5\u827a","CO2 \u6fc0\u5149\u5fae\u96d5\uff08\u9ad8\u6e05\u6670\u5ea6\uff09"],["\u5b9a\u5236\u9762\u79ef","\u5c01\u9762\u6574\u9762\u53ef\u96d5"]],images:["/img/book_big/The1.jpg","/img/book_big/The2.jpg"],mask:{shape:"rect",width:340,height:480,borderRadius:8}},{id:"coaster",name:"\u94dc\u8d28\u676f\u57ab",desc:"\u91d1\u5c5e\u8d28\u611f\uff0c\u684c\u9762\u827a\u672f",icon:"/icon/\u676f\u5b50.png",iconImg:"/icon/\u676f\u5b50.png",price:25,originalPrice:35,leadTime:"5-7\u4e2a\u5de5\u4f5c\u65e5",description:"\u91c7\u7528\u4f18\u8d28\u9ec4\u94dc\u6750\u8d28\uff0c\u8868\u9762\u7ecf\u62c9\u4e1d\u5de5\u827a\u5904\u7406\uff0c\u5448\u73b0\u54d1\u5149\u91d1\u5c5e\u8d28\u611f\u3002\u80cc\u9762\u914d\u6709\u9632\u6ed1\u8f6f\u6728\u57ab\uff0c\u4fdd\u62a4\u684c\u9762\u540c\u65f6\u9632\u6b62\u6ed1\u52a8\u3002\u6fc0\u5149\u5fae\u96d5\u53ef\u5728\u8868\u9762\u523b\u5370\u540d\u5b57\u3001\u65e5\u671f\u6216\u795d\u798f\u8bed\uff0c\u662f\u4e54\u8fc1\u65b0\u5c45\u3001\u65b0\u5a5a\u8d3a\u793c\u7684\u7cbe\u81f4\u4e4b\u9009\u3002",subtitle:"\u9ec4\u94dc\u8d28\u611f \xb7 \u62c9\u4e1d\u54d1\u5149 \xb7 \u684c\u9762\u4e0a\u7684\u5fae\u578b\u96d5\u5851",tone:[42,30,18],story:"\u8bbe\u8ba1\u7075\u611f\u6765\u81ea\u65e5\u5f0f\u4f98\u5bc2\u7f8e\u5b66\u3002\u5c81\u6708\u4f1a\u5728\u9ec4\u94dc\u8868\u9762\u7559\u4e0b\u6e29\u67d4\u7684\u6c27\u5316\u75d5\u8ff9\uff0c\u5c31\u5982\u540c\u4e00\u676f\u8336\u4ece\u70ed\u5230\u51c9\u7684\u8fc7\u7a0b\u3002\u62c9\u4e1d\u5904\u7406\u540e\u7684\u54d1\u5149\u8868\u9762\u5728\u706f\u5149\u4e0b\u5448\u73b0\u7ec6\u817b\u7684\u91d1\u5c5e\u7eb9\u7406\uff0c\u6fc0\u5149\u5fae\u96d5\u7684\u540d\u5b57\u6210\u4e3a\u8fd9\u4ef6\u5668\u7269\u4e0a\u6700\u51b7\u9759\u7684\u6ce8\u811a\u3002\u5b83\u4e0d\u53ea\u662f\u676f\u57ab\uff0c\u66f4\u662f\u684c\u9762\u4e0a\u7684\u5fae\u578b\u96d5\u5851\u3002",scene:"\u4e54\u8fc1\u9001\u793c\u3001\u65b0\u5a5a\u8d3a\u793c\u3001\u5496\u5561\u89d2\u5e03\u7f6e\u3001\u529e\u516c\u684c\u7f8e\u5b66\u3002\u9002\u5408\u9001\u7ed9\u559c\u6b22\u624b\u51b2\u5496\u5561\u7684\u670b\u53cb\uff0c\u6216\u4f5c\u4e3a\u5a5a\u793c\u5bbe\u5ba2\u7684\u56de\u793c\u2014\u2014\u6bcf\u4e00\u53ea\u676f\u57ab\u4e0a\u90fd\u523b\u7740\u5bbe\u5ba2\u7684\u540d\u5b57\uff0c\u8ba9\u793c\u7269\u672c\u8eab\u6210\u4e3a\u5ea7\u4f4d\u5361\u3002",tags:["\u4e54\u8fc1\u793c","\u65b0\u5a5a\u8d3a\u793c","\u684c\u9762\u7f8e\u5b66","\u9ec4\u94dc","\u624b\u51b2\u5496\u5561"],specs:[["\u6750\u8d28","\u9ec4\u94dc + \u80cc\u9762\u8f6f\u6728\u9632\u6ed1\u57ab"],["\u8868\u9762\u5904\u7406","\u62c9\u4e1d\u54d1\u5149"],["\u76f4\u5f84","100mm"],["\u539a\u5ea6","3mm"],["\u96d5\u523b\u5de5\u827a","\u5149\u7ea4\u6fc0\u5149\u7cbe\u7ec6\u5fae\u96d5"],["\u8010\u6e29","\u2264120\xb0C"]],images:["/img/cup/The1.jpg"],mask:{shape:"circle",width:280,height:280}},{id:"penbox",name:"\u7af9\u5236\u7b14\u76d2",desc:"\u81ea\u7136\u7af9\u7eb9\uff0c\u6587\u623f\u96c5\u5668",icon:"/icon/\u7b14\u76d2.png",iconImg:"/icon/\u7b14\u76d2.png",price:75,originalPrice:98,leadTime:"7-10\u4e2a\u5de5\u4f5c\u65e5",description:"\u7cbe\u9009\u5929\u7136\u6960\u7af9\uff0c\u7ecf\u591a\u9053\u5de5\u5e8f\u6253\u78e8\u629b\u5149\uff0c\u4fdd\u7559\u5929\u7136\u7af9\u7eb9\u808c\u7406\u3002\u76d2\u76d6\u91c7\u7528\u78c1\u5438\u5f00\u5408\uff0c\u5185\u90e8\u8bbe\u6709\u5206\u5c42\u9694\u677f\u3002\u6fc0\u5149\u5fae\u96d5\u5728\u7af9\u9762\u4e0a\u5448\u73b0\u6df1\u6d45\u4e0d\u4e00\u7684\u96d5\u523b\u6548\u679c\uff0c\u878d\u5165\u58a8\u9999\u6c14\u8d28\u3002\u9002\u5408\u4e66\u623f\u6848\u5934\u3001\u4e66\u6cd5\u7231\u597d\u8005\u7684\u6587\u623f\u4f34\u4fa3\u3002",subtitle:"\u5929\u7136\u6960\u7af9 \xb7 \u78c1\u5438\u5f00\u5408 \xb7 \u6587\u623f\u96c5\u5668\u4e4b\u9009",tone:[30,24,16],story:"\u6bcf\u4e00\u53ea\u7b14\u76d2\u90fd\u6765\u81ea\u540c\u4e00\u7247\u7af9\u6797\u7684\u4e0d\u540c\u90e8\u4f4d\uff0c\u56e0\u6b64\u7eb9\u8def\u7edd\u4e0d\u91cd\u590d\u2014\u2014\u6b63\u5982\u6ca1\u6709\u4e24\u4e2a\u4eba\u7684\u4e66\u6cd5\u98ce\u683c\u5b8c\u5168\u76f8\u540c\u3002\u6211\u4eec\u4fdd\u7559\u4e86\u6960\u7af9\u5929\u7136\u7684\u6e29\u6da6\u89e6\u611f\uff0c\u53ea\u5728\u8868\u9762\u4ee5\u6fc0\u5149\u523b\u4e0b\u540d\u5b57\u6216\u4e00\u53e5\u7bb4\u8a00\u3002\u6253\u5f00\u78c1\u5438\u76d2\u76d6\u65f6\u7684\u6e05\u8106\u58f0\u54cd\uff0c\u662f\u6587\u623f\u4e2d\u7684\u5c0f\u5c0f\u4eea\u5f0f\u3002",scene:"\u4e66\u623f\u6848\u5934\u3001\u4e66\u6cd5\u7231\u597d\u8005\u88c5\u5907\u3001\u6559\u5e08\u8282\u793c\u7269\u3001\u4e66\u623f\u6696\u623f\u793c\u3002\u9002\u5408\u9001\u7ed9\u5199\u5b57\u597d\u770b\u7684\u4eba\u2014\u2014\u56e0\u4e3a\u61c2\u4e66\u5199\u7684\u4eba\uff0c\u624d\u61c2\u4e00\u53ea\u597d\u7b14\u76d2\u7684\u5206\u91cf\u3002",tags:["\u6587\u623f","\u4e66\u6cd5","\u6559\u5e08\u8282","\u4e66\u623f","\u5929\u7136\u6750\u8d28"],specs:[["\u6750\u8d28","\u5929\u7136\u6960\u7af9"],["\u5f00\u5408\u65b9\u5f0f","\u78c1\u5438\u5f0f\u76d2\u76d6"],["\u5185\u90e8\u7ed3\u6784","\u5206\u5c42\u9694\u677f\uff08\u53ef\u8c03\u8282\uff09"],["\u5c3a\u5bf8","200 \xd7 65 \xd7 30mm"],["\u8868\u9762\u5904\u7406","\u624b\u5de5\u6253\u78e8\u629b\u5149\uff0c\u65e0\u6f06"],["\u96d5\u523b\u5de5\u827a","CO2 \u6fc0\u5149\u70e7\u8680\uff08\u6df1\u6d45\u53ef\u8c03\uff09"]],images:["/img/penbox/The1.jpg","/img/penbox/The2.jpg","/img/penbox/The3.jpg"],mask:{shape:"rect",width:320,height:160,borderRadius:12}},{id:"booklamp",name:"\u4e66\u672c\u578b\u706f",desc:"\u6e29\u6696\u5149\u5f71\uff0c\u70b9\u4eae\u5fc3\u610f",icon:"/icon/\u4e66\u706f.png",iconImg:"/icon/\u4e66\u706f.png",price:45,originalPrice:68,leadTime:"5-7\u4e2a\u5de5\u4f5c\u65e5",description:"\u5f00\u5408\u5f0f\u8bbe\u8ba1\uff0c\u6253\u5f00\u5373\u4eae\uff0c\u5408\u62e2\u5373\u706d\uff0c\u5982\u9b54\u6cd5\u4e66\u822c\u5145\u6ee1\u60ca\u559c\u3002\u91c7\u7528LED\u6696\u5149\u706f\u6e90\uff0c\u5149\u7ebf\u67d4\u548c\u4e0d\u523a\u773c\uff0c\u53ef\u6301\u7eed\u70b9\u4eae6-8\u5c0f\u65f6\u3002\u5c01\u9762\u6fc0\u5149\u5fae\u96d5\u53ef\u5b9a\u5236\u6587\u5b57\u3001\u56fe\u6848\u6216\u7167\u7247\uff0c\u8ba9\u6e29\u6696\u7684\u706f\u5149\u627f\u8f7d\u4e13\u5c5e\u8bb0\u5fc6\u3002\u662f\u60c5\u4fa3\u793c\u7269\u3001\u6bd5\u4e1a\u793c\u7269\u7684\u521b\u610f\u4e4b\u9009\u3002",subtitle:"\u5f00\u5408\u5373\u4eae \xb7 LED\u6696\u5149 \xb7 \u9b54\u6cd5\u4e66\u822c\u7684\u60ca\u559c",tone:[25,20,15],story:"\u7075\u611f\u6765\u81ea\u300a\u54c8\u5229\xb7\u6ce2\u7279\u300b\u4e2d\u7684\u9b54\u6cd5\u8bfe\u672c\u2014\u2014\u6253\u5f00\u4e00\u672c\u4e66\uff0c\u5149\u8292\u503e\u6cfb\u800c\u51fa\u3002\u6211\u4eec\u91c7\u7528\u675c\u90a6\u7eb8\u4e0e\u5b9e\u6728\u5c01\u9762\u7ed3\u5408\uff0c\u8ba9\u706f\u4f53\u65e2\u8f7b\u8584\u53c8\u575a\u56fa\u3002\u6fc0\u5149\u5fae\u96d5\u5728\u5c01\u9762\u7559\u4e0b\u4f60\u7684\u540d\u5b57\u6216\u4e00\u5e45\u5c0f\u753b\uff0c\u5f53\u706f\u5728\u6df1\u591c\u4eae\u8d77\uff0c\u90a3\u662f\u4e13\u5c5e\u4e8e\u4f60\u7684\u6e29\u6696\u89d2\u843d\u3002",scene:"\u60c5\u4fa3\u793c\u7269\u3001\u6bd5\u4e1a\u7eaa\u5ff5\u3001\u5e8a\u5934\u591c\u706f\u3001\u9732\u8425\u6c1b\u56f4\u706f\u3001\u513f\u7ae5\u623f\u3002\u7279\u522b\u9002\u5408\u5728\u5c01\u9762\u523b\u4e0a\u4e24\u4e2a\u4eba\u7684\u540d\u5b57\u548c\u4e00\u53e5\u60c5\u8bdd\uff0c\u5728\u60c5\u4eba\u8282\u6216\u7eaa\u5ff5\u65e5\u9001\u51fa\u2014\u2014\u6253\u5f00\u4e66\u706f\uff0c\u5c31\u50cf\u6253\u5f00\u4e00\u5c01\u4f1a\u53d1\u5149\u7684\u60c5\u4e66\u3002",tags:["\u60c5\u4fa3\u793c","\u6bd5\u4e1a\u7eaa\u5ff5","\u591c\u706f","\u6c1b\u56f4\u706f","\u521b\u610f\u793c\u7269"],specs:[["\u5149\u6e90","LED \u6696\u767d\u5149\uff083000K\uff09"],["\u7eed\u822a","6-8\u5c0f\u65f6\uff08\u5185\u7f6e\u53ef\u5145\u7535\u9502\u7535\u6c60\uff09"],["\u5145\u7535","USB Type-C \u63a5\u53e3"],["\u5c01\u9762\u6750\u8d28","\u675c\u90a6\u7eb8 + \u5b9e\u6728\u5c01\u9762"],["\u5c55\u5f00\u5c3a\u5bf8","210 \xd7 150mm"],["\u96d5\u523b\u5de5\u827a","\u6fc0\u5149\u5fae\u96d5\uff08\u652f\u6301\u6587\u5b57+\u7b80\u5355\u56fe\u6848\uff09"]],images:["/img/booklight/The1.jpg","/img/booklight/The2.jpg"],mask:{shape:"rect",width:320,height:240,borderRadius:4}}],u=i.map(function(n){return(0,r.A)((0,r.A)({},n),{},{images:(n.images||[]).map(function(n){return(0,o.uq)(n)}),iconImg:(0,o.uq)(n.iconImg)})}),c=u,a=function(n){return u.find(function(t){return t.id===n})},s={"notebook-small":(0,o.uq)("/icon/\u4e66\u672c.png"),"notebook-large":(0,o.uq)("/icon/\u4e66\u672c_\u5927.png"),coaster:(0,o.uq)("/icon/\u676f\u5b50.png"),penbox:(0,o.uq)("/icon/\u7b14\u76d2.png"),booklamp:(0,o.uq)("/icon/\u4e66\u706f.png")};function l(n){return null!==n&&void 0!==n&&n.iconImg?(0,o.uq)(n.iconImg):null!==n&&void 0!==n&&n.id?(0,o.uq)(s[n.id]||"/icon/\u56db\u89d2\u661f.svg"):(0,o.uq)("/icon/\u56db\u89d2\u661f.svg")}},3246:function(n,t,e){e.d(t,{L:function(){return g},Sy:function(){return l},WG:function(){return f},gf:function(){return d},q:function(){return m}});var r=e(1212),o=e(9379),i=e(467),u=e(758),c=e.n(u),a="https://wxbackend.tokenleaping.com",s="smart_access_token";function l(){try{c().hideLoading()}catch(n){}}function d(){try{return c().getStorageSync(s)||""}catch(n){return""}}function f(n){c().setStorageSync(s,n)}function g(){try{c().removeStorageSync(s)}catch(n){}}var h=null;var p=null;function m(n){p=n}function v(n,t,e,r){return S.apply(this,arguments)}function S(){return S=(0,i.A)((0,r.A)().m(function n(t,e,o,i){return(0,r.A)().w(function(n){while(1)switch(n.n){case 0:return n.a(2,c().request({url:"".concat(a).concat(t),method:e,data:o,header:i}))}},n)})),S.apply(this,arguments)}function y(n){return k.apply(this,arguments)}function k(){return k=(0,i.A)((0,r.A)().m(function n(t){var e,i,u,c,a,s,l,f,m,S,y,k,b,A,T,x,w,C,_=arguments;return(0,r.A)().w(function(n){while(1)switch(n.p=n.n){case 0:return e=_.length>1&&void 0!==_[1]?_[1]:{},i=e.method,u=void 0===i?"GET":i,c=e.data,a=e.headers,s=void 0===a?{}:a,l=e.auth,f=void 0===l||l,m=e.skipAuthRefresh,S=void 0!==m&&m,y=function(){var n=d();return(0,o.A)((0,o.A)({"Content-Type":"application/json"},f&&n?{Authorization:"Bearer ".concat(n)}:{}),s)},n.p=1,n.n=2,v(t,u,c,y());case 2:k=n.v,n.n=4;break;case 3:throw n.p=3,n.v,b=new Error("\u7f51\u7edc\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5"),b.statusCode=-1,b;case 4:if(401!==k.statusCode||S||!p){n.n=9;break}return n.n=5,p();case 5:if(A=n.v,!A){n.n=9;break}return n.p=6,n.n=7,v(t,u,c,y());case 7:k=n.v,n.n=9;break;case 8:throw n.p=8,n.v,T=new Error("\u7f51\u7edc\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5"),T.statusCode=-1,T;case 9:if(401!==k.statusCode){n.n=10;break}throw g(),null===(x=h)||void 0===x||x(),w=new Error("\u767b\u5f55\u5df2\u8fc7\u671f\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55"),w.statusCode=401,w;case 10:if(C=k.data,!C||"number"!==typeof C.code||0===C.code){n.n=11;break}throw new Error(C.message||"\u8bf7\u6c42\u5931\u8d25");case 11:return n.a(2,C&&"number"===typeof C.code?C.data:C)}},n,null,[[6,8],[1,3]])})),k.apply(this,arguments)}var b={get:function(n,t){return y(n,(0,o.A)((0,o.A)({},t),{},{method:"GET"}))},post:function(n,t,e){return y(n,(0,o.A)((0,o.A)({},e),{},{method:"POST",data:t}))},put:function(n,t,e){return y(n,(0,o.A)((0,o.A)({},e),{},{method:"PUT",data:t}))},patch:function(n,t,e){return y(n,(0,o.A)((0,o.A)({},e),{},{method:"PATCH",data:t}))},del:function(n,t){return y(n,(0,o.A)((0,o.A)({},t),{},{method:"DELETE"}))}};t.Ay=b},1457:function(n,t,e){e.d(t,{E1:function(){return U},cY:function(){return y},Hf:function(){return P},kg:function(){return Y},ab:function(){return Q},hG:function(){return G},IU:function(){return w},Re:function(){return W},EB:function(){return z},p_:function(){return v},n7:function(){return T},O4:function(){return V},ug:function(){return q},Q4:function(){return I},Ic:function(){return c},Q1:function(){return H},kh:function(){return b},eW:function(){return X},Fu:function(){return S},Rq:function(){return $},F0:function(){return K},iA:function(){return R},iZ:function(){return M},yU:function(){return L},i5:function(){return k},uF:function(){return F}});var r=e(758),o=e.n(r),i="smart_user_info",u="smart_active_openid";function c(n){return!!n&&(n.startsWith("mock_")||n.startsWith("mock-"))}function a(){var n,t=null;try{t=o().getStorageSync(i)}catch(n){t=null}var e=(null===(n=t)||void 0===n?void 0:n.openid)||o().getStorageSync(u)||"_guest_";return o().setStorageSync(u,e),e}function s(n){var t=a();return"".concat(n,"_").concat(t)}function l(n,t){return"".concat(n,"_").concat(t)}var d=e(6764),f=e(9379),g=e(436),h=e(8199),p=e(5234);function m(n){try{return o().getStorageSync(l("design_list",n))||[]}catch(n){return[]}}function v(){try{return o().getStorageSync(s("design_list"))||[]}catch(n){return[]}}function S(n){o().setStorageSync(s("design_list"),n)}function y(n,t){var e=v(),r=(0,h.uq)((null===n||void 0===n?void 0:n.iconImg)||p.rj[null===n||void 0===n?void 0:n.id]||"/icon/\u56db\u89d2\u661f.svg"),o={id:"DSG"+Date.now(),productId:n.id,productName:n.name,productIcon:r,unitPrice:n.price,count:t,status:"undesigned",createdAt:(new Date).toISOString().slice(0,10)};return S([].concat((0,g.A)(e),[o])),o}function k(n,t){var e=v(),r=e.findIndex(function(t){return t.id===n});-1!==r&&(e[r]=(0,f.A)((0,f.A)({},e[r]),t),S(e))}function b(n){var t=v().filter(function(t){return!n.includes(t.id)});S(t)}function A(n){try{return o().getStorageSync(l("order_list",n))||[]}catch(n){return[]}}function T(){try{return o().getStorageSync(s("order_list"))||[]}catch(n){return[]}}function x(n){o().setStorageSync(s("order_list"),n)}function w(n){var t,e=v(),r=T(),o=e.find(function(t){return t.id===n});if(!o)return null;var i=null!==(t=o.productIcon)&&void 0!==t&&t.startsWith("/icon/")||/^https?:/i.test(o.productIcon||"")?o.productIcon:p.rj[o.productId]||"/icon/\u56db\u89d2\u661f.svg",u=(0,h.uq)(i),c={id:"ORD"+Date.now().toString().slice(-9),productName:o.productName,productIcon:u,statusCode:"pending",date:(new Date).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).replace(/\//g,"-"),price:"\xa5"+(o.unitPrice*o.count).toFixed(2),count:o.count,sku:"".concat(o.productName," \xd7 ").concat(o.count)},a=e.findIndex(function(t){return t.id===n});return-1!==a&&(e[a].status="ordered",e[a].orderId=c.id),S(e),x([c].concat((0,g.A)(r))),c}var C="smart_user_registry",_="zhihui2024";function B(){try{return o().getStorageSync(C)||[]}catch(n){return[]}}function j(n){var t=B();t.includes(n)||(t.push(n),o().setStorageSync(C,t))}function N(n){var t=B().filter(function(t){return t!==n});o().setStorageSync(C,t)}function I(){try{return o().getStorageSync(i)}catch(n){return null}}function E(n){var t;o().setStorageSync(i,n),null!==n&&void 0!==n&&n.openid&&(o().setStorageSync(u,n.openid),o().setStorageSync("user_info_".concat(n.openid),n),j(n.openid)),(0,d.m)(),null===(t=o().eventCenter)||void 0===t||t.trigger("authStateChanged",{openid:(null===n||void 0===n?void 0:n.openid)||""})}function D(n){try{var t=o().getStorageSync("user_info_".concat(n));if(t)return t}catch(n){}var e=I();return(null===e||void 0===e?void 0:e.openid)===n?e:null}function P(){var n;o().removeStorageSync(i),o().removeStorageSync(u),(0,d.m)(),null===(n=o().eventCenter)||void 0===n||n.trigger("authStateChanged",{openid:""})}function R(n){E(n)}function q(){return I()}function H(){var n=B();return n.map(function(n){var t=D(n),e=m(n),r=A(n);return{openid:n,nickName:(null===t||void 0===t?void 0:t.nickName)||"\u672a\u77e5\u7528\u6237",avatarUrl:(null===t||void 0===t?void 0:t.avatarUrl)||"",loginAt:(null===t||void 0===t?void 0:t.loginAt)||0,designCount:e.length,orderCount:r.length}})}function Y(n,t){var e="mock_"+Date.now().toString(36)+"_"+Math.random().toString(36).slice(2,6),r={openid:e,nickName:n||"\u5fae\u4fe1\u7528\u6237",avatarUrl:t||"",loginAt:Date.now()};return E(r),r}function M(n){var t=D(n);return!!t&&(o().setStorageSync(i,t),o().setStorageSync(u,n),!0)}function G(n){o().removeStorageSync("user_info_".concat(n)),o().removeStorageSync("design_list_".concat(n)),o().removeStorageSync("order_list_".concat(n)),o().removeStorageSync("address_list_".concat(n)),N(n);var t=I();(null===t||void 0===t?void 0:t.openid)===n&&P()}function F(n){return n===_}function W(){try{return o().getStorageSync(s("address_list"))||[]}catch(n){return[]}}function O(n){o().setStorageSync(s("address_list"),n)}function U(n){var t=W(),e=(0,f.A)((0,f.A)({},n),{},{id:"ADR"+Date.now()});return e.isDefault&&t.forEach(function(n){n.isDefault=!1}),O([e].concat((0,g.A)(t))),e}function L(n,t){var e=W(),r=e.findIndex(function(t){return t.id===n});-1!==r&&(t.isDefault&&e.forEach(function(n){n.isDefault=!1}),e[r]=(0,f.A)((0,f.A)({},e[r]),t),O(e))}function Q(n){var t=W().filter(function(t){return t.id!==n});O(t)}function z(){return W().find(function(n){return n.isDefault})}var J="smart_theme";function V(){try{return o().getStorageSync(J)||"auto"}catch(n){return"auto"}}function K(n){o().setStorageSync(J,n)}var Z=null;function $(n){Z=n}function X(n){if("auto"===n){if(Z)return Z;try{var t=o().getAppBaseInfo();if("dark"===t.theme||"light"===t.theme)return t.theme}catch(n){}return"light"}return n}},6606:function(n,t,e){e.d(t,{G:function(){return u}});var r=e(758),o=e.n(r);function i(n){return"dark"===n?"#191919":"#faf7f2"}function u(n,t){var e=null!==t&&void 0!==t?t:i(n);o().setBackgroundColor({backgroundColor:e,backgroundColorTop:e,backgroundColorBottom:e}),o().setBackgroundTextStyle({textStyle:"dark"===n?"light":"dark"})}}}]); \ No newline at end of file diff --git a/dist/custom-tab-bar/index.js b/dist/custom-tab-bar/index.js index fafb736..bb963c2 100644 --- a/dist/custom-tab-bar/index.js +++ b/dist/custom-tab-bar/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[777],{653:function(e,n,t){var a=t(7842),i=t(5544),c=t(118),o=t(758),r=t.n(o),s=t(6540),u=t(8594),f=t(9703),g=t(6606),h=t(8199),l=t(4848),v=[{pagePath:"/pages/index/index",label:"\u9996\u9875",icon:(0,h.uq)("/icon/\u9996\u9875.svg"),iconActive:(0,h.uq)("/icon/\u9996\u9875-fill.svg")},{pagePath:"/pages/shop/index",label:"\u5546\u54c1",icon:(0,h.uq)("/icon/\u5546\u54c1.svg"),iconActive:(0,h.uq)("/icon/\u5546\u54c1-fill.svg")},{pagePath:"/pages/designList/index",label:"\u8bbe\u8ba1\u6e05\u5355",icon:(0,h.uq)("/icon/\u8c03\u8272\u76d8.svg"),iconActive:(0,h.uq)("/icon/\u8c03\u8272\u76d8-fill.svg")},{pagePath:"/pages/orders/index",label:"\u8ba2\u5355",icon:(0,h.uq)("/icon/\u5305\u88f9.svg"),iconActive:(0,h.uq)("/icon/\u5305\u88f9-fill.svg")},{pagePath:"/pages/profile/index",label:"\u6211\u7684",icon:(0,h.uq)("/icon/\u4e2a\u4eba.svg"),iconActive:(0,h.uq)("/icon/\u4e2a\u4eba-fill.svg")}];function p(e){var n=v.findIndex(function(n){return e.endsWith(n.pagePath)});return v[n>=0?n:0].pagePath}function b(){var e=r().getCurrentInstance().router,n=e&&e.path?e.path:"pages/index/index";return p(n)}function m(){var e=(0,s.useState)((0,u.eW)((0,u.O4)())),n=(0,i.A)(e,2),t=n[0],a=n[1],o=(0,s.useState)(b),h=(0,i.A)(o,2),m=h[0],d=h[1];(0,s.useEffect)(function(){var e=function(e){return a(e)};return r().eventCenter.on(f.Wo,e),function(){r().eventCenter.off(f.Wo,e)}},[]),(0,s.useEffect)(function(){var e=function(e){!e||"dark"!==e.theme&&"light"!==e.theme||((0,u.Rq)(e.theme),"auto"===(0,u.O4)()&&a(e.theme))},n=r();return n.onThemeChange&&n.onThemeChange(e),function(){n.offThemeChange&&n.offThemeChange(e)}},[]),(0,s.useEffect)(function(){var e=function(e){var n=r().getCurrentInstance().router,t=n&&n.path?n.path:"pages/index/index";d(p(e||t))};return r().eventCenter.on("tabBarChange",e),function(){r().eventCenter.off("tabBarChange",e)}},[]),(0,s.useEffect)(function(){(0,g.G)(t)},[t]);var x=function(e){d(p(e)),r().switchTab({url:e}),r().eventCenter.trigger("tabBarChange",e)};return(0,l.jsxs)(c.Ss,{className:"tab-bar-root theme-".concat(t),children:[(0,l.jsx)(c.Ss,{className:"tab-bar-gradient"}),(0,l.jsx)(c.Ss,{className:"custom-tab-bar theme-".concat(t),children:v.map(function(e){var n=e.pagePath===m;return(0,l.jsxs)(c.Ss,{className:"tab-item ".concat(n?"active":""),onTap:function(){return x(e.pagePath)},children:[n&&(0,l.jsx)(c.Ss,{className:"tab-indicator"}),(0,l.jsx)(c._V,{className:"tab-icon-img ".concat(n?"active":""),src:n?e.iconActive:e.icon,mode:"aspectFit"}),(0,l.jsx)(c.EY,{className:"tab-label",children:e.label})]},e.pagePath)})})]})}Component((0,a.createComponentConfig)(m,"custom-tab-bar/index"))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[907,96,76],function(){return n(653)});e.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[777],{653:function(e,n,t){var a=t(7842),i=t(5544),c=t(118),o=t(758),r=t.n(o),s=t(6540),u=t(1457),f=t(9703),g=t(6606),h=t(8199),l=t(4848),v=[{pagePath:"/pages/index/index",label:"\u9996\u9875",icon:(0,h.uq)("/icon/\u9996\u9875.svg"),iconActive:(0,h.uq)("/icon/\u9996\u9875-fill.svg")},{pagePath:"/pages/shop/index",label:"\u5546\u54c1",icon:(0,h.uq)("/icon/\u5546\u54c1.svg"),iconActive:(0,h.uq)("/icon/\u5546\u54c1-fill.svg")},{pagePath:"/pages/designList/index",label:"\u8bbe\u8ba1\u6e05\u5355",icon:(0,h.uq)("/icon/\u8c03\u8272\u76d8.svg"),iconActive:(0,h.uq)("/icon/\u8c03\u8272\u76d8-fill.svg")},{pagePath:"/pages/orders/index",label:"\u8ba2\u5355",icon:(0,h.uq)("/icon/\u5305\u88f9.svg"),iconActive:(0,h.uq)("/icon/\u5305\u88f9-fill.svg")},{pagePath:"/pages/profile/index",label:"\u6211\u7684",icon:(0,h.uq)("/icon/\u4e2a\u4eba.svg"),iconActive:(0,h.uq)("/icon/\u4e2a\u4eba-fill.svg")}];function p(e){var n=v.findIndex(function(n){return e.endsWith(n.pagePath)});return v[n>=0?n:0].pagePath}function b(){var e=r().getCurrentInstance().router,n=e&&e.path?e.path:"pages/index/index";return p(n)}function m(){var e=(0,s.useState)((0,u.eW)((0,u.O4)())),n=(0,i.A)(e,2),t=n[0],a=n[1],o=(0,s.useState)(b),h=(0,i.A)(o,2),m=h[0],d=h[1];(0,s.useEffect)(function(){var e=function(e){return a(e)};return r().eventCenter.on(f.Wo,e),function(){r().eventCenter.off(f.Wo,e)}},[]),(0,s.useEffect)(function(){var e=function(e){!e||"dark"!==e.theme&&"light"!==e.theme||((0,u.Rq)(e.theme),"auto"===(0,u.O4)()&&a(e.theme))},n=r();return n.onThemeChange&&n.onThemeChange(e),function(){n.offThemeChange&&n.offThemeChange(e)}},[]),(0,s.useEffect)(function(){var e=function(e){var n=r().getCurrentInstance().router,t=n&&n.path?n.path:"pages/index/index";d(p(e||t))};return r().eventCenter.on("tabBarChange",e),function(){r().eventCenter.off("tabBarChange",e)}},[]),(0,s.useEffect)(function(){(0,g.G)(t)},[t]);var x=function(e){d(p(e)),r().switchTab({url:e}),r().eventCenter.trigger("tabBarChange",e)};return(0,l.jsxs)(c.Ss,{className:"tab-bar-root theme-".concat(t),children:[(0,l.jsx)(c.Ss,{className:"tab-bar-gradient"}),(0,l.jsx)(c.Ss,{className:"custom-tab-bar theme-".concat(t),children:v.map(function(e){var n=e.pagePath===m;return(0,l.jsxs)(c.Ss,{className:"tab-item ".concat(n?"active":""),onTap:function(){return x(e.pagePath)},children:[n&&(0,l.jsx)(c.Ss,{className:"tab-indicator"}),(0,l.jsx)(c._V,{className:"tab-icon-img ".concat(n?"active":""),src:n?e.iconActive:e.icon,mode:"aspectFit"}),(0,l.jsx)(c.EY,{className:"tab-label",children:e.label})]},e.pagePath)})})]})}Component((0,a.createComponentConfig)(m,"custom-tab-bar/index"))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[907,96,76],function(){return n(653)});e.O()}]); \ No newline at end of file diff --git a/dist/pages/address/index.js b/dist/pages/address/index.js index 89d057d..d88919c 100644 --- a/dist/pages/address/index.js +++ b/dist/pages/address/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[81],{8807:function(e,s,a){var n=a(7842),c=a(5544),t=a(118),r=a(758),l=a.n(r),i=a(6540),o=a(8594),d=a(9703),u=a(9201),m=a(5414),h=a(9674),p=a(3053),x=a(9513),j=a(8199),f=a(4848);function N(){var e=(0,d.wR)(),s=(e.theme,e.resolvedTheme),a=(0,u.c)();(0,m.l)(s);var n=(0,i.useState)([]),r=(0,c.A)(n,2),N=r[0],S=r[1],g=(0,i.useState)(null),v=(0,c.A)(g,2),E=v[0],Y=v[1],b=(0,i.useState)(!1),T=(0,c.A)(b,2),y=T[0],k=T[1],w=(0,i.useState)(""),A=(0,c.A)(w,2),B=A[0],C=A[1],D=(0,i.useState)(""),I=(0,c.A)(D,2),P=I[0],J=I[1],M=(0,i.useState)([]),O=(0,c.A)(M,2),R=O[0],q=O[1],F=(0,i.useState)(""),H=(0,c.A)(F,2),L=H[0],U=H[1],V=(0,i.useState)(!1),_=(0,c.A)(V,2),z=_[0],G=_[1],K=function(){return S((0,o.Re)())};(0,i.useEffect)(function(){K()},[]);var Q=function(){C(""),J(""),q([]),U(""),G(!1),Y(null)},W=function(){Q(),k(!0)},X=function(e){Y(e),C(e.name),J(e.phone),q(e.region),U(e.detail),G(e.isDefault),k(!0)},Z=function(e){l().showModal({title:"\u786e\u8ba4\u5220\u9664",content:"\u5220\u9664\u540e\u5c06\u65e0\u6cd5\u6062\u590d\u8be5\u5730\u5740",success:function(s){s.confirm&&((0,o.ab)(e),K())}})},$=function(e){var s="".concat(e.name," ").concat(e.phone,"\n").concat(e.region.join(" ")," ").concat(e.detail);l().setClipboardData({data:s})},ee=function(){if(B.trim()&&P.trim()&&0!==R.length&&L.trim()){var e={name:B,phone:P,region:R,detail:L,isDefault:z};E?(0,o.yU)(E.id,e):(0,o.E1)(e),l().showToast({title:"\u4fdd\u5b58\u6210\u529f",icon:"success"}),k(!1),Q(),K()}else l().showToast({title:"\u8bf7\u586b\u5199\u5b8c\u6574\u4fe1\u606f",icon:"none"})},se=function(e){q(e.detail.value||[])};return(0,f.jsxs)(t.Ss,{className:"theme-".concat(s),children:[(0,f.jsx)(h.A,{}),(0,f.jsx)(p.A,{title:"\u6536\u8d27\u5730\u5740",targetSelector:".page-header",showBack:!0}),(0,f.jsxs)(t.Ss,{className:"address-page",children:[(0,f.jsx)(t.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,f.jsxs)(t.Ss,{className:"page-header-inner",children:[(0,f.jsx)(t.Ss,{className:"back-btn",onTap:function(){return l().navigateBack()},children:(0,f.jsx)(t.EY,{className:"back-arrow",children:"\u2190"})}),(0,f.jsx)(t.EY,{className:"nav-title",children:"\u6536\u8d27\u5730\u5740"}),(0,f.jsx)(t.Ss,{className:"nav-placeholder"})]})}),(0,f.jsxs)(t.Ss,{className:"address-list",children:[N.map(function(e){return(0,f.jsxs)(t.Ss,{className:"address-card surface-card",children:[(0,f.jsxs)(t.Ss,{className:"address-header",children:[(0,f.jsxs)(t.Ss,{className:"address-user",children:[(0,f.jsx)(t.EY,{className:"address-name",children:e.name}),(0,f.jsx)(t.EY,{className:"address-phone",children:e.phone}),e.isDefault&&(0,f.jsx)(t.Ss,{className:"default-tag",children:(0,f.jsx)(t.EY,{children:"\u9ed8\u8ba4"})})]}),(0,f.jsxs)(t.EY,{className:"address-full",children:[e.region.join(" ")," ",e.detail]})]}),(0,f.jsxs)(t.Ss,{className:"address-actions",children:[(0,f.jsx)(t.EY,{className:"address-act",onTap:function(){return X(e)},children:"\u7f16\u8f91"}),(0,f.jsx)(t.EY,{className:"address-act",onTap:function(){return $(e)},children:"\u590d\u5236"}),(0,f.jsx)(t.EY,{className:"address-act delete",onTap:function(){return Z(e.id)},children:"\u5220\u9664"})]})]},e.id)}),0===N.length&&(0,f.jsxs)(t.Ss,{className:"empty-state",children:[(0,f.jsx)(t._V,{className:"empty-icon-img",src:(0,j.uq)("/icon/\u5730\u5740.png"),mode:"aspectFit"}),(0,f.jsx)(t.EY,{className:"empty-text",children:"\u8fd8\u6ca1\u6709\u6536\u8d27\u5730\u5740"}),(0,f.jsx)(t.EY,{className:"empty-sub",children:"\u70b9\u51fb\u4e0b\u65b9\u6309\u94ae\u6dfb\u52a0\u65b0\u5730\u5740"})]})]}),(0,f.jsx)(t.Ss,{className:"safe-bottom-placeholder"}),(0,f.jsx)(x.A,{children:(0,f.jsx)(t.Ss,{className:"btn-primary",onTap:W,children:(0,f.jsx)(t.EY,{children:"\u65b0\u589e\u6536\u8d27\u5730\u5740"})})}),y&&(0,f.jsx)(t.Ss,{className:"modal-overlay",children:(0,f.jsxs)(t.Ss,{className:"modal-card surface-card address-form",children:[(0,f.jsx)(t.EY,{className:"modal-title",children:E?"\u7f16\u8f91\u5730\u5740":"\u65b0\u589e\u5730\u5740"}),(0,f.jsx)(t.pd,{className:"form-input",placeholder:"\u6536\u8d27\u4eba\u59d3\u540d",value:B,onInput:function(e){return C(e.detail.value)}}),(0,f.jsx)(t.pd,{className:"form-input",placeholder:"\u624b\u673a\u53f7\u7801",type:"number",value:P,onInput:function(e){return J(e.detail.value)}}),(0,f.jsx)(t.LC,{mode:"region",value:R,onChange:se,children:(0,f.jsx)(t.Ss,{className:"form-picker",children:(0,f.jsx)(t.EY,{className:R.length?"form-picker-val":"form-picker-ph",children:R.length?R.join(" / "):"\u9009\u62e9\u7701 / \u5e02 / \u533a"})})}),(0,f.jsx)(t.pd,{className:"form-input",placeholder:"\u8be6\u7ec6\u5730\u5740\uff1a\u8857\u9053\u3001\u95e8\u724c\u53f7",value:L,onInput:function(e){return U(e.detail.value)}}),(0,f.jsxs)(t.Ss,{className:"form-row",onTap:function(){return G(!z)},children:[(0,f.jsx)(t.EY,{className:"form-label",children:"\u8bbe\u4e3a\u9ed8\u8ba4\u5730\u5740"}),(0,f.jsx)(t.Ss,{className:"checkbox ".concat(z?"checked":"")})]}),(0,f.jsxs)(t.Ss,{className:"form-actions",children:[(0,f.jsx)(t.Ss,{className:"btn-secondary",onTap:function(){k(!1),Q()},children:(0,f.jsx)(t.EY,{children:"\u53d6\u6d88"})}),(0,f.jsx)(t.Ss,{className:"btn-primary",onTap:ee,children:(0,f.jsx)(t.EY,{children:"\u4fdd\u5b58"})})]})]})})]})]})}var S={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u6536\u8d27\u5730\u5740"};Page((0,n.createPageConfig)(N,"pages/address/index",{root:{cn:[]}},S||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(8807)});e.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[81],{8807:function(e,s,a){var n=a(7842),c=a(5544),t=a(118),r=a(758),l=a.n(r),i=a(6540),o=a(1457),d=a(9703),u=a(9201),m=a(5414),h=a(9674),p=a(3053),x=a(9513),j=a(8199),f=a(4848);function N(){var e=(0,d.wR)(),s=(e.theme,e.resolvedTheme),a=(0,u.c)();(0,m.l)(s);var n=(0,i.useState)([]),r=(0,c.A)(n,2),N=r[0],S=r[1],g=(0,i.useState)(null),v=(0,c.A)(g,2),E=v[0],Y=v[1],b=(0,i.useState)(!1),T=(0,c.A)(b,2),y=T[0],k=T[1],w=(0,i.useState)(""),A=(0,c.A)(w,2),B=A[0],C=A[1],D=(0,i.useState)(""),I=(0,c.A)(D,2),P=I[0],J=I[1],M=(0,i.useState)([]),O=(0,c.A)(M,2),R=O[0],q=O[1],F=(0,i.useState)(""),H=(0,c.A)(F,2),L=H[0],U=H[1],V=(0,i.useState)(!1),_=(0,c.A)(V,2),z=_[0],G=_[1],K=function(){return S((0,o.Re)())};(0,i.useEffect)(function(){K()},[]);var Q=function(){C(""),J(""),q([]),U(""),G(!1),Y(null)},W=function(){Q(),k(!0)},X=function(e){Y(e),C(e.name),J(e.phone),q(e.region),U(e.detail),G(e.isDefault),k(!0)},Z=function(e){l().showModal({title:"\u786e\u8ba4\u5220\u9664",content:"\u5220\u9664\u540e\u5c06\u65e0\u6cd5\u6062\u590d\u8be5\u5730\u5740",success:function(s){s.confirm&&((0,o.ab)(e),K())}})},$=function(e){var s="".concat(e.name," ").concat(e.phone,"\n").concat(e.region.join(" ")," ").concat(e.detail);l().setClipboardData({data:s})},ee=function(){if(B.trim()&&P.trim()&&0!==R.length&&L.trim()){var e={name:B,phone:P,region:R,detail:L,isDefault:z};E?(0,o.yU)(E.id,e):(0,o.E1)(e),l().showToast({title:"\u4fdd\u5b58\u6210\u529f",icon:"success"}),k(!1),Q(),K()}else l().showToast({title:"\u8bf7\u586b\u5199\u5b8c\u6574\u4fe1\u606f",icon:"none"})},se=function(e){q(e.detail.value||[])};return(0,f.jsxs)(t.Ss,{className:"theme-".concat(s),children:[(0,f.jsx)(h.A,{}),(0,f.jsx)(p.A,{title:"\u6536\u8d27\u5730\u5740",targetSelector:".page-header",showBack:!0}),(0,f.jsxs)(t.Ss,{className:"address-page",children:[(0,f.jsx)(t.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,f.jsxs)(t.Ss,{className:"page-header-inner",children:[(0,f.jsx)(t.Ss,{className:"back-btn",onTap:function(){return l().navigateBack()},children:(0,f.jsx)(t.EY,{className:"back-arrow",children:"\u2190"})}),(0,f.jsx)(t.EY,{className:"nav-title",children:"\u6536\u8d27\u5730\u5740"}),(0,f.jsx)(t.Ss,{className:"nav-placeholder"})]})}),(0,f.jsxs)(t.Ss,{className:"address-list",children:[N.map(function(e){return(0,f.jsxs)(t.Ss,{className:"address-card surface-card",children:[(0,f.jsxs)(t.Ss,{className:"address-header",children:[(0,f.jsxs)(t.Ss,{className:"address-user",children:[(0,f.jsx)(t.EY,{className:"address-name",children:e.name}),(0,f.jsx)(t.EY,{className:"address-phone",children:e.phone}),e.isDefault&&(0,f.jsx)(t.Ss,{className:"default-tag",children:(0,f.jsx)(t.EY,{children:"\u9ed8\u8ba4"})})]}),(0,f.jsxs)(t.EY,{className:"address-full",children:[e.region.join(" ")," ",e.detail]})]}),(0,f.jsxs)(t.Ss,{className:"address-actions",children:[(0,f.jsx)(t.EY,{className:"address-act",onTap:function(){return X(e)},children:"\u7f16\u8f91"}),(0,f.jsx)(t.EY,{className:"address-act",onTap:function(){return $(e)},children:"\u590d\u5236"}),(0,f.jsx)(t.EY,{className:"address-act delete",onTap:function(){return Z(e.id)},children:"\u5220\u9664"})]})]},e.id)}),0===N.length&&(0,f.jsxs)(t.Ss,{className:"empty-state",children:[(0,f.jsx)(t._V,{className:"empty-icon-img",src:(0,j.uq)("/icon/\u5730\u5740.png"),mode:"aspectFit"}),(0,f.jsx)(t.EY,{className:"empty-text",children:"\u8fd8\u6ca1\u6709\u6536\u8d27\u5730\u5740"}),(0,f.jsx)(t.EY,{className:"empty-sub",children:"\u70b9\u51fb\u4e0b\u65b9\u6309\u94ae\u6dfb\u52a0\u65b0\u5730\u5740"})]})]}),(0,f.jsx)(t.Ss,{className:"safe-bottom-placeholder"}),(0,f.jsx)(x.A,{children:(0,f.jsx)(t.Ss,{className:"btn-primary",onTap:W,children:(0,f.jsx)(t.EY,{children:"\u65b0\u589e\u6536\u8d27\u5730\u5740"})})}),y&&(0,f.jsx)(t.Ss,{className:"modal-overlay",children:(0,f.jsxs)(t.Ss,{className:"modal-card surface-card address-form",children:[(0,f.jsx)(t.EY,{className:"modal-title",children:E?"\u7f16\u8f91\u5730\u5740":"\u65b0\u589e\u5730\u5740"}),(0,f.jsx)(t.pd,{className:"form-input",placeholder:"\u6536\u8d27\u4eba\u59d3\u540d",value:B,onInput:function(e){return C(e.detail.value)}}),(0,f.jsx)(t.pd,{className:"form-input",placeholder:"\u624b\u673a\u53f7\u7801",type:"number",value:P,onInput:function(e){return J(e.detail.value)}}),(0,f.jsx)(t.LC,{mode:"region",value:R,onChange:se,children:(0,f.jsx)(t.Ss,{className:"form-picker",children:(0,f.jsx)(t.EY,{className:R.length?"form-picker-val":"form-picker-ph",children:R.length?R.join(" / "):"\u9009\u62e9\u7701 / \u5e02 / \u533a"})})}),(0,f.jsx)(t.pd,{className:"form-input",placeholder:"\u8be6\u7ec6\u5730\u5740\uff1a\u8857\u9053\u3001\u95e8\u724c\u53f7",value:L,onInput:function(e){return U(e.detail.value)}}),(0,f.jsxs)(t.Ss,{className:"form-row",onTap:function(){return G(!z)},children:[(0,f.jsx)(t.EY,{className:"form-label",children:"\u8bbe\u4e3a\u9ed8\u8ba4\u5730\u5740"}),(0,f.jsx)(t.Ss,{className:"checkbox ".concat(z?"checked":"")})]}),(0,f.jsxs)(t.Ss,{className:"form-actions",children:[(0,f.jsx)(t.Ss,{className:"btn-secondary",onTap:function(){k(!1),Q()},children:(0,f.jsx)(t.EY,{children:"\u53d6\u6d88"})}),(0,f.jsx)(t.Ss,{className:"btn-primary",onTap:ee,children:(0,f.jsx)(t.EY,{children:"\u4fdd\u5b58"})})]})]})})]})]})}var S={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u6536\u8d27\u5730\u5740"};Page((0,n.createPageConfig)(N,"pages/address/index",{root:{cn:[]}},S||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(8807)});e.O()}]); \ No newline at end of file diff --git a/dist/pages/checkout/index.js b/dist/pages/checkout/index.js index aaa7d22..b5f39b7 100644 --- a/dist/pages/checkout/index.js +++ b/dist/pages/checkout/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[341],{9207:function(e,s,a){var c=a(7842),n=a(5544),i=a(118),r=a(758),t=a.n(r),l=a(6540),d=a(8594),o=a(9703),h=a(9201),m=a(5414),x=a(9674),u=a(3053),j=a(9513),g=a(4848);function p(){var e=(0,o.wR)(),s=(e.theme,e.resolvedTheme),a=(0,h.c)();(0,m.l)(s);var c=(0,l.useState)(null),r=(0,n.A)(c,2),p=r[0],N=r[1],f=(0,l.useState)(null),S=(0,n.A)(f,2),k=S[0],v=S[1],E=(0,l.useState)(!1),Y=(0,n.A)(E,2),w=Y[0],b=Y[1],y=(0,l.useState)([]),T=(0,n.A)(y,2),D=T[0],P=T[1];(0,l.useEffect)(function(){var e=t().getCurrentInstance().router,s=e?e.params:void 0,a=s?s.designId:void 0;if(a){var c=(0,d.p_)(),n=c.find(function(e){return e.id===a});N(n||null),v((0,d.EB)()),P((0,d.Re)())}},[]);var A=function(){k?t().showModal({title:"\u786e\u8ba4\u4e0b\u5355",content:"\u786e\u8ba4\u540e\u5c06\u4ece\u8bbe\u8ba1\u6e05\u5355\u751f\u6210\u8ba2\u5355\uff0c\u5e76\u5bc4\u9001\u81f3\uff1a\n".concat(C(k.region,k.detail)),success:function(e){e.confirm&&((0,d.IU)(p.id),t().showToast({title:"\u4e0b\u5355\u6210\u529f",icon:"success"}),setTimeout(function(){t().switchTab({url:"/pages/index/index"})},1500))}}):t().showToast({title:"\u8bf7\u5148\u6dfb\u52a0\u6536\u8d27\u5730\u5740",icon:"none"})},B=function(e){v(e),b(!1),t().showToast({title:"\u5730\u5740\u5df2\u66f4\u6539",icon:"success"})},R=p&&p.designData&&p.designData.stickers&&p.designData.stickers.length>0,I=p&&p.designData?p.designData.imageSrc:void 0,C=function(e,s){var a=e?e.join(" "):"";return a?"".concat(a," ").concat(s):s};if(!p)return(0,g.jsxs)(i.Ss,{className:"theme-".concat(s),children:[(0,g.jsx)(x.A,{}),(0,g.jsx)(u.A,{title:"\u8bbe\u8ba1\u6548\u679c\u786e\u8ba4",targetSelector:".page-header",showBack:!0}),(0,g.jsx)(i.Ss,{className:"checkout-page",children:(0,g.jsx)(i.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,g.jsxs)(i.Ss,{className:"page-header-inner",children:[(0,g.jsx)(i.Ss,{className:"back-btn",onTap:function(){return t().navigateBack()},children:(0,g.jsx)(i.EY,{className:"back-arrow",children:"\u2190"})}),(0,g.jsx)(i.EY,{className:"nav-title",children:"\u8bbe\u8ba1\u4e0d\u5b58\u5728"}),(0,g.jsx)(i.Ss,{className:"nav-placeholder"})]})})})]});var F={width:300,height:420};if(p.designData&&p.designData.category&&p.designData.category.mask){var _=p.designData.category.mask;F.width=_.width,F.height=_.height,"circle"===_.shape?F.borderRadius="50%":F.borderRadius=_.borderRadius||0}return(0,g.jsxs)(i.Ss,{className:"theme-".concat(s),children:[(0,g.jsx)(x.A,{}),(0,g.jsx)(u.A,{title:"\u8bbe\u8ba1\u6548\u679c\u786e\u8ba4",targetSelector:".page-header",showBack:!0}),(0,g.jsxs)(i.Ss,{className:"checkout-page",children:[(0,g.jsx)(i.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,g.jsxs)(i.Ss,{className:"page-header-inner",children:[(0,g.jsx)(i.Ss,{className:"back-btn",onTap:function(){return t().navigateBack()},children:(0,g.jsx)(i.EY,{className:"back-arrow",children:"\u2190"})}),(0,g.jsx)(i.EY,{className:"nav-title",children:"\u8bbe\u8ba1\u6548\u679c\u786e\u8ba4"}),(0,g.jsx)(i.Ss,{className:"nav-placeholder"})]})}),(0,g.jsx)(i.Ss,{className:"checkout-canvas surface-card",children:(0,g.jsx)(i.Ss,{className:"canvas-area",style:F,children:R?p.designData.stickers.map(function(e){return(0,g.jsx)(i._V,{className:"checkout-image",src:e.src,style:{transform:"translate(".concat(e.x,"px, ").concat(e.y,"px) scale(").concat(e.scale||1,")"),width:e.width||200,height:e.height||200},mode:"aspectFit"},e.id)}):I?(0,g.jsx)(i._V,{className:"checkout-image",src:p.designData.imageSrc,style:{transform:"translate(".concat(p.designData.imagePos&&p.designData.imagePos.x||0,"px, ").concat(p.designData.imagePos&&p.designData.imagePos.y||0,"px) scale(").concat(p.designData.imagePos&&p.designData.imagePos.scale||1,")")},mode:"aspectFit"}):null})}),(0,g.jsxs)(i.Ss,{className:"checkout-info surface-card",children:[(0,g.jsx)(i.EY,{className:"card-title",children:"\u786e\u8ba4\u5546\u54c1"}),(0,g.jsxs)(i.Ss,{className:"info-row",children:[(0,g.jsx)(i.EY,{className:"info-label",children:"\u5546\u54c1"}),(0,g.jsx)(i.EY,{className:"info-value",children:p.productName})]}),(0,g.jsxs)(i.Ss,{className:"info-row",children:[(0,g.jsx)(i.EY,{className:"info-label",children:"\u6570\u91cf"}),(0,g.jsxs)(i.EY,{className:"info-value",children:[p.count," \u4ef6"]})]}),(0,g.jsxs)(i.Ss,{className:"info-row",children:[(0,g.jsx)(i.EY,{className:"info-label",children:"\u5355\u4ef7"}),(0,g.jsxs)(i.EY,{className:"info-value",children:["\xa5",p.unitPrice]})]}),(0,g.jsxs)(i.Ss,{className:"info-row total-row",children:[(0,g.jsx)(i.EY,{className:"info-label",children:"\u603b\u4ef7"}),(0,g.jsxs)(i.EY,{className:"info-total",children:["\xa5",(p.unitPrice*p.count).toFixed(2)]})]})]}),(0,g.jsxs)(i.Ss,{className:"checkout-address-card surface-card",children:[(0,g.jsxs)(i.Ss,{className:"checkout-address-header",children:[(0,g.jsx)(i.EY,{className:"card-title",children:"\u6536\u8d27\u5730\u5740"}),(0,g.jsx)(i.Ss,{className:"address-change",onTap:function(){return b(!0)},children:(0,g.jsx)(i.EY,{className:"change-text",children:"\u66f4\u6539\u6536\u8d27\u5730\u5740"})})]}),k?(0,g.jsxs)(i.Ss,{className:"checkout-address-body",children:[(0,g.jsxs)(i.Ss,{className:"addr-row",children:[(0,g.jsx)(i.EY,{className:"addr-name",children:k.name}),(0,g.jsx)(i.EY,{className:"addr-phone",children:k.phone})]}),(0,g.jsx)(i.EY,{className:"addr-detail",children:C(k.region,k.detail)})]}):(0,g.jsx)(i.Ss,{className:"checkout-address-empty",onTap:function(){return b(!0)},children:(0,g.jsx)(i.EY,{className:"empty-text",children:"\u6682\u65e0\u6536\u8d27\u5730\u5740\uff0c\u70b9\u51fb\u6dfb\u52a0"})})]}),(0,g.jsxs)(j.A,{children:[(0,g.jsx)(i.Ss,{className:"btn-secondary",onTap:function(){return t().navigateBack()},children:(0,g.jsx)(i.EY,{children:"\u8fd4\u56de\u4fee\u6539"})}),(0,g.jsx)(i.Ss,{className:"btn-primary",onTap:A,children:(0,g.jsx)(i.EY,{children:"\u786e\u8ba4\u4e0b\u5355"})})]}),(0,g.jsx)(i.Ss,{className:"safe-bottom-placeholder"}),w&&(0,g.jsx)(i.Ss,{className:"modal-overlay",style:{alignItems:"flex-end",justifyContent:"flex-end"},children:(0,g.jsxs)(i.Ss,{className:"addr-picker-sheet surface-card",children:[(0,g.jsxs)(i.Ss,{className:"addr-picker-header",children:[(0,g.jsx)(i.EY,{className:"addr-picker-title",children:"\u9009\u62e9\u6536\u8d27\u5730\u5740"}),(0,g.jsx)(i.EY,{className:"addr-picker-close",onTap:function(){return b(!1)},children:"\u2715"})]}),(0,g.jsxs)(i.Ss,{className:"addr-picker-list",children:[D.map(function(e){return(0,g.jsxs)(i.Ss,{className:"addr-picker-item ".concat(k&&k.id===e.id?"active":""),onTap:function(){return B(e)},children:[(0,g.jsxs)(i.Ss,{className:"addr-picker-row",children:[(0,g.jsx)(i.EY,{className:"addr-picker-name",children:e.name}),(0,g.jsx)(i.EY,{className:"addr-picker-phone",children:e.phone}),e.isDefault&&(0,g.jsx)(i.EY,{className:"addr-picker-default",children:"\u9ed8\u8ba4"})]}),(0,g.jsx)(i.EY,{className:"addr-picker-detail",children:C(e.region,e.detail)})]},e.id)}),0===D.length&&(0,g.jsx)(i.Ss,{className:"addr-picker-empty",children:(0,g.jsx)(i.EY,{children:"\u6682\u65e0\u5730\u5740\uff0c\u8bf7\u5148\u6dfb\u52a0\u6536\u8d27\u5730\u5740"})})]}),(0,g.jsx)(i.Ss,{className:"addr-picker-add",onTap:function(){b(!1),t().navigateTo({url:"/pages/address/index"})},children:(0,g.jsx)(i.EY,{className:"addr-picker-add-text",children:"+ \u65b0\u5efa\u6536\u8d27\u5730\u5740"})})]})})]})]})}var N={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u786e\u8ba4\u4e0b\u5355"};Page((0,c.createPageConfig)(p,"pages/checkout/index",{root:{cn:[]}},N||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(9207)});e.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[341],{9207:function(e,s,a){var c=a(7842),n=a(5544),i=a(118),r=a(758),t=a.n(r),l=a(6540),d=a(1457),o=a(9703),h=a(9201),m=a(5414),x=a(9674),u=a(3053),j=a(9513),g=a(4848);function p(){var e=(0,o.wR)(),s=(e.theme,e.resolvedTheme),a=(0,h.c)();(0,m.l)(s);var c=(0,l.useState)(null),r=(0,n.A)(c,2),p=r[0],N=r[1],f=(0,l.useState)(null),S=(0,n.A)(f,2),k=S[0],v=S[1],E=(0,l.useState)(!1),Y=(0,n.A)(E,2),w=Y[0],b=Y[1],y=(0,l.useState)([]),T=(0,n.A)(y,2),D=T[0],P=T[1];(0,l.useEffect)(function(){var e=t().getCurrentInstance().router,s=e?e.params:void 0,a=s?s.designId:void 0;if(a){var c=(0,d.p_)(),n=c.find(function(e){return e.id===a});N(n||null),v((0,d.EB)()),P((0,d.Re)())}},[]);var A=function(){k?t().showModal({title:"\u786e\u8ba4\u4e0b\u5355",content:"\u786e\u8ba4\u540e\u5c06\u4ece\u8bbe\u8ba1\u6e05\u5355\u751f\u6210\u8ba2\u5355\uff0c\u5e76\u5bc4\u9001\u81f3\uff1a\n".concat(C(k.region,k.detail)),success:function(e){e.confirm&&((0,d.IU)(p.id),t().showToast({title:"\u4e0b\u5355\u6210\u529f",icon:"success"}),setTimeout(function(){t().switchTab({url:"/pages/index/index"})},1500))}}):t().showToast({title:"\u8bf7\u5148\u6dfb\u52a0\u6536\u8d27\u5730\u5740",icon:"none"})},B=function(e){v(e),b(!1),t().showToast({title:"\u5730\u5740\u5df2\u66f4\u6539",icon:"success"})},R=p&&p.designData&&p.designData.stickers&&p.designData.stickers.length>0,I=p&&p.designData?p.designData.imageSrc:void 0,C=function(e,s){var a=e?e.join(" "):"";return a?"".concat(a," ").concat(s):s};if(!p)return(0,g.jsxs)(i.Ss,{className:"theme-".concat(s),children:[(0,g.jsx)(x.A,{}),(0,g.jsx)(u.A,{title:"\u8bbe\u8ba1\u6548\u679c\u786e\u8ba4",targetSelector:".page-header",showBack:!0}),(0,g.jsx)(i.Ss,{className:"checkout-page",children:(0,g.jsx)(i.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,g.jsxs)(i.Ss,{className:"page-header-inner",children:[(0,g.jsx)(i.Ss,{className:"back-btn",onTap:function(){return t().navigateBack()},children:(0,g.jsx)(i.EY,{className:"back-arrow",children:"\u2190"})}),(0,g.jsx)(i.EY,{className:"nav-title",children:"\u8bbe\u8ba1\u4e0d\u5b58\u5728"}),(0,g.jsx)(i.Ss,{className:"nav-placeholder"})]})})})]});var F={width:300,height:420};if(p.designData&&p.designData.category&&p.designData.category.mask){var _=p.designData.category.mask;F.width=_.width,F.height=_.height,"circle"===_.shape?F.borderRadius="50%":F.borderRadius=_.borderRadius||0}return(0,g.jsxs)(i.Ss,{className:"theme-".concat(s),children:[(0,g.jsx)(x.A,{}),(0,g.jsx)(u.A,{title:"\u8bbe\u8ba1\u6548\u679c\u786e\u8ba4",targetSelector:".page-header",showBack:!0}),(0,g.jsxs)(i.Ss,{className:"checkout-page",children:[(0,g.jsx)(i.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,g.jsxs)(i.Ss,{className:"page-header-inner",children:[(0,g.jsx)(i.Ss,{className:"back-btn",onTap:function(){return t().navigateBack()},children:(0,g.jsx)(i.EY,{className:"back-arrow",children:"\u2190"})}),(0,g.jsx)(i.EY,{className:"nav-title",children:"\u8bbe\u8ba1\u6548\u679c\u786e\u8ba4"}),(0,g.jsx)(i.Ss,{className:"nav-placeholder"})]})}),(0,g.jsx)(i.Ss,{className:"checkout-canvas surface-card",children:(0,g.jsx)(i.Ss,{className:"canvas-area",style:F,children:R?p.designData.stickers.map(function(e){return(0,g.jsx)(i._V,{className:"checkout-image",src:e.src,style:{transform:"translate(".concat(e.x,"px, ").concat(e.y,"px) scale(").concat(e.scale||1,")"),width:e.width||200,height:e.height||200},mode:"aspectFit"},e.id)}):I?(0,g.jsx)(i._V,{className:"checkout-image",src:p.designData.imageSrc,style:{transform:"translate(".concat(p.designData.imagePos&&p.designData.imagePos.x||0,"px, ").concat(p.designData.imagePos&&p.designData.imagePos.y||0,"px) scale(").concat(p.designData.imagePos&&p.designData.imagePos.scale||1,")")},mode:"aspectFit"}):null})}),(0,g.jsxs)(i.Ss,{className:"checkout-info surface-card",children:[(0,g.jsx)(i.EY,{className:"card-title",children:"\u786e\u8ba4\u5546\u54c1"}),(0,g.jsxs)(i.Ss,{className:"info-row",children:[(0,g.jsx)(i.EY,{className:"info-label",children:"\u5546\u54c1"}),(0,g.jsx)(i.EY,{className:"info-value",children:p.productName})]}),(0,g.jsxs)(i.Ss,{className:"info-row",children:[(0,g.jsx)(i.EY,{className:"info-label",children:"\u6570\u91cf"}),(0,g.jsxs)(i.EY,{className:"info-value",children:[p.count," \u4ef6"]})]}),(0,g.jsxs)(i.Ss,{className:"info-row",children:[(0,g.jsx)(i.EY,{className:"info-label",children:"\u5355\u4ef7"}),(0,g.jsxs)(i.EY,{className:"info-value",children:["\xa5",p.unitPrice]})]}),(0,g.jsxs)(i.Ss,{className:"info-row total-row",children:[(0,g.jsx)(i.EY,{className:"info-label",children:"\u603b\u4ef7"}),(0,g.jsxs)(i.EY,{className:"info-total",children:["\xa5",(p.unitPrice*p.count).toFixed(2)]})]})]}),(0,g.jsxs)(i.Ss,{className:"checkout-address-card surface-card",children:[(0,g.jsxs)(i.Ss,{className:"checkout-address-header",children:[(0,g.jsx)(i.EY,{className:"card-title",children:"\u6536\u8d27\u5730\u5740"}),(0,g.jsx)(i.Ss,{className:"address-change",onTap:function(){return b(!0)},children:(0,g.jsx)(i.EY,{className:"change-text",children:"\u66f4\u6539\u6536\u8d27\u5730\u5740"})})]}),k?(0,g.jsxs)(i.Ss,{className:"checkout-address-body",children:[(0,g.jsxs)(i.Ss,{className:"addr-row",children:[(0,g.jsx)(i.EY,{className:"addr-name",children:k.name}),(0,g.jsx)(i.EY,{className:"addr-phone",children:k.phone})]}),(0,g.jsx)(i.EY,{className:"addr-detail",children:C(k.region,k.detail)})]}):(0,g.jsx)(i.Ss,{className:"checkout-address-empty",onTap:function(){return b(!0)},children:(0,g.jsx)(i.EY,{className:"empty-text",children:"\u6682\u65e0\u6536\u8d27\u5730\u5740\uff0c\u70b9\u51fb\u6dfb\u52a0"})})]}),(0,g.jsxs)(j.A,{children:[(0,g.jsx)(i.Ss,{className:"btn-secondary",onTap:function(){return t().navigateBack()},children:(0,g.jsx)(i.EY,{children:"\u8fd4\u56de\u4fee\u6539"})}),(0,g.jsx)(i.Ss,{className:"btn-primary",onTap:A,children:(0,g.jsx)(i.EY,{children:"\u786e\u8ba4\u4e0b\u5355"})})]}),(0,g.jsx)(i.Ss,{className:"safe-bottom-placeholder"}),w&&(0,g.jsx)(i.Ss,{className:"modal-overlay",style:{alignItems:"flex-end",justifyContent:"flex-end"},children:(0,g.jsxs)(i.Ss,{className:"addr-picker-sheet surface-card",children:[(0,g.jsxs)(i.Ss,{className:"addr-picker-header",children:[(0,g.jsx)(i.EY,{className:"addr-picker-title",children:"\u9009\u62e9\u6536\u8d27\u5730\u5740"}),(0,g.jsx)(i.EY,{className:"addr-picker-close",onTap:function(){return b(!1)},children:"\u2715"})]}),(0,g.jsxs)(i.Ss,{className:"addr-picker-list",children:[D.map(function(e){return(0,g.jsxs)(i.Ss,{className:"addr-picker-item ".concat(k&&k.id===e.id?"active":""),onTap:function(){return B(e)},children:[(0,g.jsxs)(i.Ss,{className:"addr-picker-row",children:[(0,g.jsx)(i.EY,{className:"addr-picker-name",children:e.name}),(0,g.jsx)(i.EY,{className:"addr-picker-phone",children:e.phone}),e.isDefault&&(0,g.jsx)(i.EY,{className:"addr-picker-default",children:"\u9ed8\u8ba4"})]}),(0,g.jsx)(i.EY,{className:"addr-picker-detail",children:C(e.region,e.detail)})]},e.id)}),0===D.length&&(0,g.jsx)(i.Ss,{className:"addr-picker-empty",children:(0,g.jsx)(i.EY,{children:"\u6682\u65e0\u5730\u5740\uff0c\u8bf7\u5148\u6dfb\u52a0\u6536\u8d27\u5730\u5740"})})]}),(0,g.jsx)(i.Ss,{className:"addr-picker-add",onTap:function(){b(!1),t().navigateTo({url:"/pages/address/index"})},children:(0,g.jsx)(i.EY,{className:"addr-picker-add-text",children:"+ \u65b0\u5efa\u6536\u8d27\u5730\u5740"})})]})})]})]})}var N={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u786e\u8ba4\u4e0b\u5355"};Page((0,c.createPageConfig)(p,"pages/checkout/index",{root:{cn:[]}},N||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(9207)});e.O()}]); \ No newline at end of file diff --git a/dist/pages/designList/index.js b/dist/pages/designList/index.js index 6bbb319..112d184 100644 --- a/dist/pages/designList/index.js +++ b/dist/pages/designList/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[319],{3512:function(e,s,n){var a=n(7842),t=n(5544),c=n(118),i=n(758),l=n.n(i),r=n(6540),d=n(8594),o=n(5234),u=n(8199),h=n(9703),g=n(9201),m=n(5414),x=n(7723),p=n(9674),b=n(3053),j=n(4848),f=[{code:"all",label:"\u5168\u90e8"},{code:"toDesign",label:"\u5f85\u8bbe\u8ba1"},{code:"undesigned",label:"\u672a\u8bbe\u8ba1"},{code:"designing",label:"\u8bbe\u8ba1\u4e2d"},{code:"ordered",label:"\u5df2\u4e0b\u5355"}],S=f.filter(function(e){return"undesigned"!==e.code}),N={undesigned:{label:"\u672a\u8bbe\u8ba1",cls:"badge-pink"},designing:{label:"\u8bbe\u8ba1\u4e2d",cls:"badge-blue"},ordered:{label:"\u5df2\u4e0b\u5355",cls:"badge-green"}};function v(){var e=(0,h.wR)(),s=e.resolvedTheme,n=(0,g.c)();(0,m.l)(s);var a=(0,r.useState)("all"),i=(0,t.A)(a,2),v=i[0],w=i[1],y=(0,r.useState)([]),T=(0,t.A)(y,2),E=T[0],Y=T[1],k=(0,r.useState)(!1),A=(0,t.A)(k,2),z=A[0],I=A[1],P=(0,r.useState)(new Set),B=(0,t.A)(P,2),C=B[0],L=B[1],M=(0,r.useCallback)(function(){Y((0,d.p_)())},[]),F=(0,r.useCallback)(function(){var e=l().getStorageSync("designList:filter");e&&f.some(function(s){return s.code===e})&&(w(e),l().removeStorageSync("designList:filter")),M()},[M]);(0,r.useEffect)(function(){var e=l().getCurrentInstance().page;if(e){var s=e.onShow;e.onShow=function(){F(),s&&s.apply(this)}}F()},[F]);var _="all"===v?E:"toDesign"===v?E.filter(function(e){return"undesigned"===e.status||"designing"===e.status}):E.filter(function(e){return e.status===v}),q=function(e){"ordered"!==e.status?l().navigateTo({url:"/pages/diy/index?source=designList&designId=".concat(e.id)}):l().showToast({title:"\u8be5\u5546\u54c1\u5df2\u4e0b\u5355\uff0c\u8bf7\u67e5\u770b\u8ba2\u5355",icon:"none"})},D=function(e){var s=new Set(C);s.has(e)?s.delete(e):s.add(e),L(s)},J=function(){C.size===_.length?L(new Set):L(new Set(_.map(function(e){return e.id})))},O=function(){0!==C.size&&l().showModal({title:"\u786e\u8ba4\u5220\u9664",content:"\u786e\u5b9a\u5220\u9664\u9009\u4e2d\u7684 ".concat(C.size," \u4e2a\u6761\u76ee\u5417\uff1f"),success:function(e){e.confirm&&((0,d.kh)(Array.from(C)),L(new Set),I(!1),M())}})},V=function(){z?(I(!1),L(new Set)):I(!0)};return(0,j.jsxs)(c.Ss,{className:"theme-".concat(s),children:[(0,j.jsx)(p.A,{}),(0,j.jsx)(b.A,{title:"\u6211\u7684\u8bbe\u8ba1\u6e05\u5355",targetSelector:".page-header.design-header"}),(0,j.jsx)(x.A,{children:(0,j.jsxs)(c.Ss,{className:"design-page",children:[(0,j.jsxs)(c.Ss,{className:"page-header design-header",style:{paddingTop:"".concat(n.statusBarHeight+12,"px")},children:[(0,j.jsx)(c.EY,{className:"header-title",children:"\u6211\u7684\u8bbe\u8ba1\u6e05\u5355"}),(0,j.jsx)(c.Ss,{className:"header-manage",onTap:V,children:(0,j.jsx)(c.EY,{children:z?"\u5b8c\u6210":"\u7ba1\u7406"})})]}),(0,j.jsx)(c.Ss,{className:"status-tabs",children:(0,j.jsx)(c.BM,{className:"tabs-scroll",scrollX:!0,children:S.map(function(e){return(0,j.jsx)(c.Ss,{className:"chip ".concat(v===e.code?"active":""),onTap:function(){return w(e.code)},children:(0,j.jsx)(c.EY,{className:"tab-label",children:e.label})},e.code)})})}),z&&(0,j.jsx)(c.Ss,{className:"batch-bar",children:(0,j.jsxs)(c.Ss,{className:"flex-between",style:{width:"100%"},children:[(0,j.jsxs)(c.Ss,{className:"batch-select-all",onTap:J,children:[(0,j.jsx)(c.Ss,{className:"batch-checkbox ".concat(C.size===_.length&&_.length>0?"checked":"")}),(0,j.jsxs)(c.EY,{className:"batch-text",children:["\u5168\u9009 (",C.size,"/",_.length,")"]})]}),(0,j.jsx)(c.Ss,{className:"batch-delete ".concat(C.size>0?"active":""),onTap:O,children:(0,j.jsx)(c.EY,{children:"\u5220\u9664"})})]})}),(0,j.jsxs)(c.BM,{className:"design-list",scrollY:!0,children:[_.map(function(e){var s=N[e.status],n=(e.productIcon||"").startsWith("/icon/")||/^https?:/i.test(e.productIcon||"")?e.productIcon:o.rj[e.productId]||"/icon/\u56db\u89d2\u661f.svg",a=(0,u.uq)(n),t=C.has(e.id);return(0,j.jsxs)(c.Ss,{className:"design-card ".concat(t?"selected":""),onTap:function(){return z?D(e.id):void 0},children:[(0,j.jsxs)(c.Ss,{className:"design-body",children:[z&&(0,j.jsx)(c.Ss,{className:"batch-checkbox ".concat(t?"checked":"")}),(0,j.jsx)(c._V,{className:"design-icon-img",src:a,mode:"aspectFit"}),(0,j.jsxs)(c.Ss,{className:"design-info",children:[(0,j.jsxs)(c.Ss,{className:"design-title-row",children:[(0,j.jsx)(c.EY,{className:"design-name",children:e.productName}),(0,j.jsx)(c.EY,{className:"badge ".concat(s.cls),children:s.label})]}),(0,j.jsxs)(c.EY,{className:"design-meta",children:["\u6570\u91cf: ",e.count," \u4ef6 | \u5355\u4ef7: \xa5",e.unitPrice]}),(0,j.jsxs)(c.EY,{className:"design-total",children:["\u5c0f\u8ba1: \xa5",(e.unitPrice*e.count).toFixed(2)]})]})]}),!z&&(0,j.jsxs)(c.Ss,{className:"design-actions",children:["ordered"!==e.status&&(0,j.jsx)(c.Ss,{className:"btn-primary design-btn",onTap:function(){return q(e)},children:(0,j.jsx)(c.EY,{children:"undesigned"===e.status?"\u5f00\u59cb\u8bbe\u8ba1":"\u7ee7\u7eed\u8bbe\u8ba1"})}),"ordered"===e.status&&(0,j.jsx)(c.Ss,{className:"btn-secondary design-btn",onTap:function(){return l().switchTab({url:"/pages/orders/index"})},children:(0,j.jsx)(c.EY,{children:"\u67e5\u770b\u8ba2\u5355"})})]})]},e.id)}),0===_.length&&(0,j.jsxs)(c.Ss,{className:"empty-state",children:[(0,j.jsx)(c._V,{className:"empty-icon-img",src:(0,u.uq)("/icon/\u8c03\u8272\u76d8.png"),mode:"aspectFit"}),(0,j.jsx)(c.EY,{className:"empty-text",children:"\u8fd8\u6ca1\u6709\u8bbe\u8ba1\u6e05\u5355"}),(0,j.jsx)(c.EY,{className:"empty-sub",children:"\u53bb\u9996\u9875\u901b\u901b\uff0c\u627e\u5230\u559c\u6b22\u7684\u5b9a\u5236\u54c1"}),(0,j.jsx)(c.Ss,{className:"btn-primary",onTap:function(){return l().switchTab({url:"/pages/index/index"})},children:(0,j.jsx)(c.EY,{children:"\u53bb\u901b\u901b"})})]})]})]})})]})}var w={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u8bbe\u8ba1\u6e05\u5355"};Page((0,a.createPageConfig)(v,"pages/designList/index",{root:{cn:[]}},w||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(3512)});e.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[319],{3512:function(e,s,n){var a=n(7842),t=n(5544),c=n(118),i=n(758),l=n.n(i),r=n(6540),d=n(1457),o=n(5234),u=n(8199),h=n(9703),g=n(9201),m=n(5414),x=n(7723),p=n(9674),b=n(3053),j=n(4848),f=[{code:"all",label:"\u5168\u90e8"},{code:"toDesign",label:"\u5f85\u8bbe\u8ba1"},{code:"undesigned",label:"\u672a\u8bbe\u8ba1"},{code:"designing",label:"\u8bbe\u8ba1\u4e2d"},{code:"ordered",label:"\u5df2\u4e0b\u5355"}],S=f.filter(function(e){return"undesigned"!==e.code}),N={undesigned:{label:"\u672a\u8bbe\u8ba1",cls:"badge-pink"},designing:{label:"\u8bbe\u8ba1\u4e2d",cls:"badge-blue"},ordered:{label:"\u5df2\u4e0b\u5355",cls:"badge-green"}};function v(){var e=(0,h.wR)(),s=e.resolvedTheme,n=(0,g.c)();(0,m.l)(s);var a=(0,r.useState)("all"),i=(0,t.A)(a,2),v=i[0],w=i[1],y=(0,r.useState)([]),T=(0,t.A)(y,2),E=T[0],Y=T[1],k=(0,r.useState)(!1),A=(0,t.A)(k,2),z=A[0],I=A[1],P=(0,r.useState)(new Set),B=(0,t.A)(P,2),C=B[0],L=B[1],M=(0,r.useCallback)(function(){Y((0,d.p_)())},[]),F=(0,r.useCallback)(function(){var e=l().getStorageSync("designList:filter");e&&f.some(function(s){return s.code===e})&&(w(e),l().removeStorageSync("designList:filter")),M()},[M]);(0,r.useEffect)(function(){var e=l().getCurrentInstance().page;if(e){var s=e.onShow;e.onShow=function(){F(),s&&s.apply(this)}}F()},[F]);var _="all"===v?E:"toDesign"===v?E.filter(function(e){return"undesigned"===e.status||"designing"===e.status}):E.filter(function(e){return e.status===v}),q=function(e){"ordered"!==e.status?l().navigateTo({url:"/pages/diy/index?source=designList&designId=".concat(e.id)}):l().showToast({title:"\u8be5\u5546\u54c1\u5df2\u4e0b\u5355\uff0c\u8bf7\u67e5\u770b\u8ba2\u5355",icon:"none"})},D=function(e){var s=new Set(C);s.has(e)?s.delete(e):s.add(e),L(s)},J=function(){C.size===_.length?L(new Set):L(new Set(_.map(function(e){return e.id})))},O=function(){0!==C.size&&l().showModal({title:"\u786e\u8ba4\u5220\u9664",content:"\u786e\u5b9a\u5220\u9664\u9009\u4e2d\u7684 ".concat(C.size," \u4e2a\u6761\u76ee\u5417\uff1f"),success:function(e){e.confirm&&((0,d.kh)(Array.from(C)),L(new Set),I(!1),M())}})},V=function(){z?(I(!1),L(new Set)):I(!0)};return(0,j.jsxs)(c.Ss,{className:"theme-".concat(s),children:[(0,j.jsx)(p.A,{}),(0,j.jsx)(b.A,{title:"\u6211\u7684\u8bbe\u8ba1\u6e05\u5355",targetSelector:".page-header.design-header"}),(0,j.jsx)(x.A,{children:(0,j.jsxs)(c.Ss,{className:"design-page",children:[(0,j.jsxs)(c.Ss,{className:"page-header design-header",style:{paddingTop:"".concat(n.statusBarHeight+12,"px")},children:[(0,j.jsx)(c.EY,{className:"header-title",children:"\u6211\u7684\u8bbe\u8ba1\u6e05\u5355"}),(0,j.jsx)(c.Ss,{className:"header-manage",onTap:V,children:(0,j.jsx)(c.EY,{children:z?"\u5b8c\u6210":"\u7ba1\u7406"})})]}),(0,j.jsx)(c.Ss,{className:"status-tabs",children:(0,j.jsx)(c.BM,{className:"tabs-scroll",scrollX:!0,children:S.map(function(e){return(0,j.jsx)(c.Ss,{className:"chip ".concat(v===e.code?"active":""),onTap:function(){return w(e.code)},children:(0,j.jsx)(c.EY,{className:"tab-label",children:e.label})},e.code)})})}),z&&(0,j.jsx)(c.Ss,{className:"batch-bar",children:(0,j.jsxs)(c.Ss,{className:"flex-between",style:{width:"100%"},children:[(0,j.jsxs)(c.Ss,{className:"batch-select-all",onTap:J,children:[(0,j.jsx)(c.Ss,{className:"batch-checkbox ".concat(C.size===_.length&&_.length>0?"checked":"")}),(0,j.jsxs)(c.EY,{className:"batch-text",children:["\u5168\u9009 (",C.size,"/",_.length,")"]})]}),(0,j.jsx)(c.Ss,{className:"batch-delete ".concat(C.size>0?"active":""),onTap:O,children:(0,j.jsx)(c.EY,{children:"\u5220\u9664"})})]})}),(0,j.jsxs)(c.BM,{className:"design-list",scrollY:!0,children:[_.map(function(e){var s=N[e.status],n=(e.productIcon||"").startsWith("/icon/")||/^https?:/i.test(e.productIcon||"")?e.productIcon:o.rj[e.productId]||"/icon/\u56db\u89d2\u661f.svg",a=(0,u.uq)(n),t=C.has(e.id);return(0,j.jsxs)(c.Ss,{className:"design-card ".concat(t?"selected":""),onTap:function(){return z?D(e.id):void 0},children:[(0,j.jsxs)(c.Ss,{className:"design-body",children:[z&&(0,j.jsx)(c.Ss,{className:"batch-checkbox ".concat(t?"checked":"")}),(0,j.jsx)(c._V,{className:"design-icon-img",src:a,mode:"aspectFit"}),(0,j.jsxs)(c.Ss,{className:"design-info",children:[(0,j.jsxs)(c.Ss,{className:"design-title-row",children:[(0,j.jsx)(c.EY,{className:"design-name",children:e.productName}),(0,j.jsx)(c.EY,{className:"badge ".concat(s.cls),children:s.label})]}),(0,j.jsxs)(c.EY,{className:"design-meta",children:["\u6570\u91cf: ",e.count," \u4ef6 | \u5355\u4ef7: \xa5",e.unitPrice]}),(0,j.jsxs)(c.EY,{className:"design-total",children:["\u5c0f\u8ba1: \xa5",(e.unitPrice*e.count).toFixed(2)]})]})]}),!z&&(0,j.jsxs)(c.Ss,{className:"design-actions",children:["ordered"!==e.status&&(0,j.jsx)(c.Ss,{className:"btn-primary design-btn",onTap:function(){return q(e)},children:(0,j.jsx)(c.EY,{children:"undesigned"===e.status?"\u5f00\u59cb\u8bbe\u8ba1":"\u7ee7\u7eed\u8bbe\u8ba1"})}),"ordered"===e.status&&(0,j.jsx)(c.Ss,{className:"btn-secondary design-btn",onTap:function(){return l().switchTab({url:"/pages/orders/index"})},children:(0,j.jsx)(c.EY,{children:"\u67e5\u770b\u8ba2\u5355"})})]})]},e.id)}),0===_.length&&(0,j.jsxs)(c.Ss,{className:"empty-state",children:[(0,j.jsx)(c._V,{className:"empty-icon-img",src:(0,u.uq)("/icon/\u8c03\u8272\u76d8.png"),mode:"aspectFit"}),(0,j.jsx)(c.EY,{className:"empty-text",children:"\u8fd8\u6ca1\u6709\u8bbe\u8ba1\u6e05\u5355"}),(0,j.jsx)(c.EY,{className:"empty-sub",children:"\u53bb\u9996\u9875\u901b\u901b\uff0c\u627e\u5230\u559c\u6b22\u7684\u5b9a\u5236\u54c1"}),(0,j.jsx)(c.Ss,{className:"btn-primary",onTap:function(){return l().switchTab({url:"/pages/index/index"})},children:(0,j.jsx)(c.EY,{children:"\u53bb\u901b\u901b"})})]})]})]})})]})}var w={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u8bbe\u8ba1\u6e05\u5355"};Page((0,a.createPageConfig)(v,"pages/designList/index",{root:{cn:[]}},w||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(3512)});e.O()}]); \ No newline at end of file diff --git a/dist/pages/diy/index.js b/dist/pages/diy/index.js index b407ae9..4092494 100644 --- a/dist/pages/diy/index.js +++ b/dist/pages/diy/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[95],{8955:function(e,a,s){var t=s(7842),c=s(9379),n=s(436),i=s(5544),r=s(118),l=s(758),o=s.n(l),d=s(6540),u=s(5234),h=s(8594),m=s(9703),p=s(9201),x=s(5414),g=s(9674),f=s(3053),v=s(9513),j=s(4848);function N(){var e=(0,m.wR)(),a=(e.theme,e.resolvedTheme),s=(0,p.c)();(0,x.l)(a);var t=(0,d.useState)(null),l=(0,i.A)(t,2),N=l[0],S=l[1],y=(0,d.useState)(1),w=(0,i.A)(y,2),b=(w[0],w[1],(0,d.useState)("")),k=(0,i.A)(b,2),A=k[0],E=k[1],T=(0,d.useState)(1),Y=(0,i.A)(T,2),D=(Y[0],Y[1]),I=(0,d.useState)([]),O=(0,i.A)(I,2),P=O[0],_=O[1],F=(0,d.useState)(null),M=(0,i.A)(F,2),B=M[0],R=M[1],z=(0,d.useState)(!1),V=(0,i.A)(z,2),q=V[0],C=V[1],G=(0,d.useState)({x:0,y:0}),J=(0,i.A)(G,2),X=J[0],H=J[1],L=(0,d.useState)(!1),K=(0,i.A)(L,2),Q=K[0],U=K[1],W=(0,d.useState)(!1),Z=(0,i.A)(W,2),$=Z[0],ee=Z[1];(0,d.useEffect)(function(){var e=o().getCurrentInstance().router,a=e?e.params:void 0,s=a?a.source:void 0,t=a&&a.productId||a&&a.category;if("product"===s&&t){var c=(0,u.y9)(t);if(c){S(c),D(Number(a?a.quantity:void 0)||1);var i={id:"DSG"+Date.now(),productId:c.id,productName:c.name,productIcon:c.icon,unitPrice:c.price,count:Number(a?a.quantity:void 0)||1,status:"designing",createdAt:(new Date).toISOString().slice(0,10)},r=(0,h.p_)();(0,h.Fu)([].concat((0,n.A)(r),[i])),E(i.id)}}else if("designList"===s&&a&&a.designId){var l=a.designId,d=(0,h.p_)(),m=d.find(function(e){return e.id===l});if(m){E(l),D(m.count);var p=(0,u.y9)(m.productId);if(p&&S(p),m.designData?m.designData.stickers:void 0)_(m.designData.stickers);else if(m.designData?m.designData.imageSrc:void 0){var x={id:"legacy_"+Date.now(),src:m.designData.imageSrc,x:m.designData.imagePos&&m.designData.imagePos.x||0,y:m.designData.imagePos&&m.designData.imagePos.y||0,scale:m.designData.imagePos&&m.designData.imagePos.scale||1,width:200,height:200,isOverlapping:!1};_([x])}}}else if(t){var g=(0,u.y9)(t);if(g){S(g);var f={id:"DSG"+Date.now(),productId:g.id,productName:g.name,productIcon:g.icon,unitPrice:g.price,count:1,status:"designing",createdAt:(new Date).toISOString().slice(0,10)},v=(0,h.p_)();(0,h.Fu)([].concat((0,n.A)(v),[f])),E(f.id)}}},[]);var ae=function(e){for(var a=e.map(function(e){return(0,c.A)((0,c.A)({},e),{},{isOverlapping:!1})}),s=0;si.x&&n.yi.y&&(a[s].isOverlapping=!0,a[t].isOverlapping=!0)}var u=a.some(function(e){return e.isOverlapping});return ee(u),a},se=function(){o().chooseImage({count:1,sizeType:["compressed"],sourceType:["album","camera"],success:function(e){var a=e.tempFilePaths[0];o().getImageInfo({src:a,success:function(e){var s={id:"stk_"+Date.now(),src:a,x:0,y:0,scale:1,width:e.width,height:e.height,isOverlapping:!1},t=[].concat((0,n.A)(P),[s]),c=ae(t);_(c),R(s.id)},fail:function(){var e={id:"stk_"+Date.now(),src:a,x:0,y:0,scale:1,width:200,height:200,isOverlapping:!1},s=[].concat((0,n.A)(P),[e]),t=ae(s);_(t),R(e.id)}})}})},te=function(e){var a=P.filter(function(a){return a.id!==e}),s=ae(a);_(s),B===e&&R(null)},ce=function(e,a){var s=e.touches[0],t=P.find(function(e){return e.id===a});t&&(R(a),C(!0),H({x:s.clientX-t.x,y:s.clientY-t.y}))},ne=function(e){if(q&&B){var a=e.touches[0],s=P.map(function(e){return e.id!==B?e:(0,c.A)((0,c.A)({},e),{},{x:a.clientX-X.x,y:a.clientY-X.y})}),t=ae(s);_(t)}},ie=function(){return C(!1)},re=function(){B&&A&&o().navigateTo({url:"/pages/diy/stickerEdit/index?designId=".concat(A,"&stickerId=").concat(B)})},le=function(e,a){var s=P.map(function(s){return s.id!==e?s:(0,c.A)((0,c.A)({},s),{},{scale:Math.max(.3,Math.min(3,s.scale+a))})}),t=ae(s);_(t)},oe=function(){o().navigateBack()},de=function(){if(!N)return{width:300,height:420};var e={width:N.mask.width,height:N.mask.height};return"rect"===N.mask.shape&&(e.borderRadius=N.mask.borderRadius||0),"circle"===N.mask.shape&&(e.borderRadius="50%"),e},ue=function(){$?o().showToast({title:"\u8d34\u7eb8\u4e0d\u80fd\u91cd\u53e0",icon:"none"}):(A&&(0,h.i5)(A,{designData:{stickers:P,category:N}}),U(!1),o().navigateTo({url:"/pages/checkout/index?designId=".concat(A)}))},he=B?P.find(function(e){return e.id===B}):void 0,me=he?he.scale:1;return N?(0,j.jsxs)(r.Ss,{className:"theme-".concat(a),children:[(0,j.jsx)(g.A,{}),(0,j.jsx)(f.A,{title:"\u8bbe\u8ba1\u5de5\u4f5c\u53f0",targetSelector:".page-header.surface-card",showBack:!0}),(0,j.jsxs)(r.Ss,{className:"diy-page",children:[(0,j.jsx)(r.Ss,{className:"page-header surface-card",style:{paddingTop:"".concat(s.statusBarHeight+12,"px")},children:(0,j.jsxs)(r.Ss,{className:"flex-between",style:{width:"100%"},children:[(0,j.jsx)(r.EY,{className:"back-btn",onTap:oe,children:"\u2190"}),(0,j.jsx)(r.EY,{className:"page-title",children:"\u8bbe\u8ba1\u5de5\u4f5c\u53f0"}),(0,j.jsx)(r.Ss,{className:"header-spacer"})]})}),(0,j.jsx)(r.Ss,{className:"canvas-wrapper surface-card mt-20",catchMove:!0,children:(0,j.jsxs)(r.Ss,{className:"canvas-area",style:de(),children:[P.map(function(e){return(0,j.jsx)(r._V,{className:"canvas-image ".concat(e.isOverlapping?"overlap":""," ").concat(B===e.id?"active":""),src:e.src,style:{transform:"translate(".concat(e.x,"px, ").concat(e.y,"px) scale(").concat(e.scale,")"),opacity:q&&B===e.id?.8:1,zIndex:B===e.id?10:5,width:e.width||200,height:e.height||200},onTouchStart:function(a){return ce(a,e.id)},onTouchMove:ne,onTouchEnd:ie,onTap:function(){return R(e.id)},mode:"aspectFit"},e.id)}),(0,j.jsx)(r.Ss,{className:"mask-border",style:de()})]})}),(0,j.jsxs)(r.Ss,{className:"sticker-panel surface-card mt-20",children:[(0,j.jsx)(r.EY,{className:"section-title",children:"\u8d34\u7eb8"}),(0,j.jsxs)(r.Ss,{className:"sticker-list",children:[P.map(function(e){return(0,j.jsxs)(r.Ss,{className:"sticker-thumb ".concat(e.isOverlapping?"overlap":""," ").concat(B===e.id?"active":""),children:[(0,j.jsx)(r._V,{src:e.src,className:"sticker-thumb-img",mode:"aspectFit",onTap:function(){return R(e.id)}}),(0,j.jsx)(r.Ss,{className:"sticker-del",onTap:function(){return te(e.id)},children:(0,j.jsx)(r.EY,{className:"del-icon",children:"\xd7"})})]},e.id)}),(0,j.jsxs)(r.Ss,{className:"sticker-add-btn",onTap:se,children:[(0,j.jsx)(r.EY,{className:"add-icon",children:"+"}),(0,j.jsx)(r.EY,{className:"add-label",children:"\u6dfb\u52a0"})]})]}),$&&(0,j.jsx)(r.EY,{className:"overlap-hint",children:"\u6709\u8d34\u7eb8\u91cd\u53e0\uff0c\u8bf7\u8c03\u6574\u4f4d\u7f6e"})]}),B&&(0,j.jsxs)(r.Ss,{className:"toolbar surface-card mt-20",children:[(0,j.jsxs)(r.Ss,{className:"tool-row",children:[(0,j.jsx)(r.EY,{className:"tool-label",children:"\u7f29\u653e"}),(0,j.jsxs)(r.Ss,{className:"flex-center",style:{gap:"20px"},children:[(0,j.jsx)(r.Ss,{className:"tool-btn",onTap:function(){return le(B,-.1)},children:"\uff0d"}),(0,j.jsxs)(r.EY,{className:"tool-value",children:[Math.round(100*me),"%"]}),(0,j.jsx)(r.Ss,{className:"tool-btn",onTap:function(){return le(B,.1)},children:"\uff0b"})]})]}),(0,j.jsxs)(r.Ss,{className:"tool-row",children:[(0,j.jsx)(r.EY,{className:"tool-label",children:"\u63d0\u793a"}),(0,j.jsx)(r.EY,{className:"tool-hint",children:"\u62d6\u52a8\u8c03\u6574\u4f4d\u7f6e\uff0c\u8d34\u7eb8\u4e0d\u53ef\u91cd\u53e0"})]})]}),(0,j.jsx)(r.Ss,{className:"edit-btn-bar mt-20",children:(0,j.jsx)(r.Ss,{className:"edit-btn ".concat(B?"active":"disabled"),onTap:re,children:(0,j.jsx)(r.EY,{children:"\u7f16\u8f91"})})}),(0,j.jsxs)(v.A,{children:[(0,j.jsx)(r.Ss,{className:"btn-primary",onTap:function(){return U(!0)},children:(0,j.jsx)(r.EY,{children:"\u9884\u89c8\u6548\u679c"})}),(0,j.jsx)(r.Ss,{className:"btn-secondary",onTap:se,children:(0,j.jsx)(r.EY,{children:"\u6dfb\u52a0\u8d34\u7eb8"})})]}),Q&&(0,j.jsx)(r.Ss,{className:"preview-overlay",children:(0,j.jsxs)(r.Ss,{className:"preview-card surface-card",children:[(0,j.jsx)(r.EY,{className:"preview-title",children:"\u786e\u8ba4\u6548\u679c"}),(0,j.jsx)(r.Ss,{className:"preview-canvas",style:de(),children:P.map(function(e){return(0,j.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,j.jsxs)(r.Ss,{className:"product-info",children:[(0,j.jsx)(r.EY,{className:"product-name",children:N.name}),(0,j.jsxs)(r.EY,{className:"product-size",children:["\u753b\u5e03\u5c3a\u5bf8: ",N.mask.width," \xd7 ",N.mask.height," px"]}),$&&(0,j.jsx)(r.EY,{className:"overlap-hint",children:"\u8d34\u7eb8\u6709\u91cd\u53e0\uff0c\u4e0d\u53ef\u63d0\u4ea4"})]}),(0,j.jsxs)(r.Ss,{className:"preview-actions",children:[(0,j.jsx)(r.Ss,{className:"btn-secondary",onTap:function(){return U(!1)},children:(0,j.jsx)(r.EY,{children:"\u8fd4\u56de\u4fee\u6539"})}),(0,j.jsx)(r.Ss,{className:"btn-primary ".concat($?"disabled":""),onTap:ue,children:(0,j.jsx)(r.EY,{children:"\u786e\u8ba4\u5b8c\u6210"})})]})]})}),(0,j.jsx)(r.Ss,{className:"safe-bottom-placeholder"})]})]}):(0,j.jsxs)(r.Ss,{className:"theme-".concat(a),children:[(0,j.jsx)(g.A,{}),(0,j.jsx)(f.A,{title:"\u8bbe\u8ba1\u5de5\u4f5c\u53f0",targetSelector:".page-header.surface-card",showBack:!0}),(0,j.jsx)(r.Ss,{className:"diy-page",children:(0,j.jsx)(r.EY,{className:"page-title",children:"\u52a0\u8f7d\u4e2d..."})})]})}var S={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"DIY\u5de5\u4f5c\u53f0"};Page((0,t.createPageConfig)(N,"pages/diy/index",{root:{cn:[]}},S||{}))}},function(e){var a=function(a){return e(e.s=a)};e.O(0,[907,96,76],function(){return a(8955)});e.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[95],{8955:function(e,a,s){var t=s(7842),c=s(9379),n=s(436),i=s(5544),r=s(118),l=s(758),o=s.n(l),d=s(6540),u=s(5234),h=s(1457),m=s(9703),p=s(9201),x=s(5414),g=s(9674),f=s(3053),v=s(9513),j=s(4848);function N(){var e=(0,m.wR)(),a=(e.theme,e.resolvedTheme),s=(0,p.c)();(0,x.l)(a);var t=(0,d.useState)(null),l=(0,i.A)(t,2),N=l[0],S=l[1],y=(0,d.useState)(1),w=(0,i.A)(y,2),b=(w[0],w[1],(0,d.useState)("")),k=(0,i.A)(b,2),A=k[0],E=k[1],T=(0,d.useState)(1),Y=(0,i.A)(T,2),D=(Y[0],Y[1]),I=(0,d.useState)([]),O=(0,i.A)(I,2),P=O[0],_=O[1],F=(0,d.useState)(null),M=(0,i.A)(F,2),B=M[0],R=M[1],z=(0,d.useState)(!1),V=(0,i.A)(z,2),q=V[0],C=V[1],G=(0,d.useState)({x:0,y:0}),J=(0,i.A)(G,2),X=J[0],H=J[1],L=(0,d.useState)(!1),K=(0,i.A)(L,2),Q=K[0],U=K[1],W=(0,d.useState)(!1),Z=(0,i.A)(W,2),$=Z[0],ee=Z[1];(0,d.useEffect)(function(){var e=o().getCurrentInstance().router,a=e?e.params:void 0,s=a?a.source:void 0,t=a&&a.productId||a&&a.category;if("product"===s&&t){var c=(0,u.y9)(t);if(c){S(c),D(Number(a?a.quantity:void 0)||1);var i={id:"DSG"+Date.now(),productId:c.id,productName:c.name,productIcon:c.icon,unitPrice:c.price,count:Number(a?a.quantity:void 0)||1,status:"designing",createdAt:(new Date).toISOString().slice(0,10)},r=(0,h.p_)();(0,h.Fu)([].concat((0,n.A)(r),[i])),E(i.id)}}else if("designList"===s&&a&&a.designId){var l=a.designId,d=(0,h.p_)(),m=d.find(function(e){return e.id===l});if(m){E(l),D(m.count);var p=(0,u.y9)(m.productId);if(p&&S(p),m.designData?m.designData.stickers:void 0)_(m.designData.stickers);else if(m.designData?m.designData.imageSrc:void 0){var x={id:"legacy_"+Date.now(),src:m.designData.imageSrc,x:m.designData.imagePos&&m.designData.imagePos.x||0,y:m.designData.imagePos&&m.designData.imagePos.y||0,scale:m.designData.imagePos&&m.designData.imagePos.scale||1,width:200,height:200,isOverlapping:!1};_([x])}}}else if(t){var g=(0,u.y9)(t);if(g){S(g);var f={id:"DSG"+Date.now(),productId:g.id,productName:g.name,productIcon:g.icon,unitPrice:g.price,count:1,status:"designing",createdAt:(new Date).toISOString().slice(0,10)},v=(0,h.p_)();(0,h.Fu)([].concat((0,n.A)(v),[f])),E(f.id)}}},[]);var ae=function(e){for(var a=e.map(function(e){return(0,c.A)((0,c.A)({},e),{},{isOverlapping:!1})}),s=0;si.x&&n.yi.y&&(a[s].isOverlapping=!0,a[t].isOverlapping=!0)}var u=a.some(function(e){return e.isOverlapping});return ee(u),a},se=function(){o().chooseImage({count:1,sizeType:["compressed"],sourceType:["album","camera"],success:function(e){var a=e.tempFilePaths[0];o().getImageInfo({src:a,success:function(e){var s={id:"stk_"+Date.now(),src:a,x:0,y:0,scale:1,width:e.width,height:e.height,isOverlapping:!1},t=[].concat((0,n.A)(P),[s]),c=ae(t);_(c),R(s.id)},fail:function(){var e={id:"stk_"+Date.now(),src:a,x:0,y:0,scale:1,width:200,height:200,isOverlapping:!1},s=[].concat((0,n.A)(P),[e]),t=ae(s);_(t),R(e.id)}})}})},te=function(e){var a=P.filter(function(a){return a.id!==e}),s=ae(a);_(s),B===e&&R(null)},ce=function(e,a){var s=e.touches[0],t=P.find(function(e){return e.id===a});t&&(R(a),C(!0),H({x:s.clientX-t.x,y:s.clientY-t.y}))},ne=function(e){if(q&&B){var a=e.touches[0],s=P.map(function(e){return e.id!==B?e:(0,c.A)((0,c.A)({},e),{},{x:a.clientX-X.x,y:a.clientY-X.y})}),t=ae(s);_(t)}},ie=function(){return C(!1)},re=function(){B&&A&&o().navigateTo({url:"/pages/diy/stickerEdit/index?designId=".concat(A,"&stickerId=").concat(B)})},le=function(e,a){var s=P.map(function(s){return s.id!==e?s:(0,c.A)((0,c.A)({},s),{},{scale:Math.max(.3,Math.min(3,s.scale+a))})}),t=ae(s);_(t)},oe=function(){o().navigateBack()},de=function(){if(!N)return{width:300,height:420};var e={width:N.mask.width,height:N.mask.height};return"rect"===N.mask.shape&&(e.borderRadius=N.mask.borderRadius||0),"circle"===N.mask.shape&&(e.borderRadius="50%"),e},ue=function(){$?o().showToast({title:"\u8d34\u7eb8\u4e0d\u80fd\u91cd\u53e0",icon:"none"}):(A&&(0,h.i5)(A,{designData:{stickers:P,category:N}}),U(!1),o().navigateTo({url:"/pages/checkout/index?designId=".concat(A)}))},he=B?P.find(function(e){return e.id===B}):void 0,me=he?he.scale:1;return N?(0,j.jsxs)(r.Ss,{className:"theme-".concat(a),children:[(0,j.jsx)(g.A,{}),(0,j.jsx)(f.A,{title:"\u8bbe\u8ba1\u5de5\u4f5c\u53f0",targetSelector:".page-header.surface-card",showBack:!0}),(0,j.jsxs)(r.Ss,{className:"diy-page",children:[(0,j.jsx)(r.Ss,{className:"page-header surface-card",style:{paddingTop:"".concat(s.statusBarHeight+12,"px")},children:(0,j.jsxs)(r.Ss,{className:"flex-between",style:{width:"100%"},children:[(0,j.jsx)(r.EY,{className:"back-btn",onTap:oe,children:"\u2190"}),(0,j.jsx)(r.EY,{className:"page-title",children:"\u8bbe\u8ba1\u5de5\u4f5c\u53f0"}),(0,j.jsx)(r.Ss,{className:"header-spacer"})]})}),(0,j.jsx)(r.Ss,{className:"canvas-wrapper surface-card mt-20",catchMove:!0,children:(0,j.jsxs)(r.Ss,{className:"canvas-area",style:de(),children:[P.map(function(e){return(0,j.jsx)(r._V,{className:"canvas-image ".concat(e.isOverlapping?"overlap":""," ").concat(B===e.id?"active":""),src:e.src,style:{transform:"translate(".concat(e.x,"px, ").concat(e.y,"px) scale(").concat(e.scale,")"),opacity:q&&B===e.id?.8:1,zIndex:B===e.id?10:5,width:e.width||200,height:e.height||200},onTouchStart:function(a){return ce(a,e.id)},onTouchMove:ne,onTouchEnd:ie,onTap:function(){return R(e.id)},mode:"aspectFit"},e.id)}),(0,j.jsx)(r.Ss,{className:"mask-border",style:de()})]})}),(0,j.jsxs)(r.Ss,{className:"sticker-panel surface-card mt-20",children:[(0,j.jsx)(r.EY,{className:"section-title",children:"\u8d34\u7eb8"}),(0,j.jsxs)(r.Ss,{className:"sticker-list",children:[P.map(function(e){return(0,j.jsxs)(r.Ss,{className:"sticker-thumb ".concat(e.isOverlapping?"overlap":""," ").concat(B===e.id?"active":""),children:[(0,j.jsx)(r._V,{src:e.src,className:"sticker-thumb-img",mode:"aspectFit",onTap:function(){return R(e.id)}}),(0,j.jsx)(r.Ss,{className:"sticker-del",onTap:function(){return te(e.id)},children:(0,j.jsx)(r.EY,{className:"del-icon",children:"\xd7"})})]},e.id)}),(0,j.jsxs)(r.Ss,{className:"sticker-add-btn",onTap:se,children:[(0,j.jsx)(r.EY,{className:"add-icon",children:"+"}),(0,j.jsx)(r.EY,{className:"add-label",children:"\u6dfb\u52a0"})]})]}),$&&(0,j.jsx)(r.EY,{className:"overlap-hint",children:"\u6709\u8d34\u7eb8\u91cd\u53e0\uff0c\u8bf7\u8c03\u6574\u4f4d\u7f6e"})]}),B&&(0,j.jsxs)(r.Ss,{className:"toolbar surface-card mt-20",children:[(0,j.jsxs)(r.Ss,{className:"tool-row",children:[(0,j.jsx)(r.EY,{className:"tool-label",children:"\u7f29\u653e"}),(0,j.jsxs)(r.Ss,{className:"flex-center",style:{gap:"20px"},children:[(0,j.jsx)(r.Ss,{className:"tool-btn",onTap:function(){return le(B,-.1)},children:"\uff0d"}),(0,j.jsxs)(r.EY,{className:"tool-value",children:[Math.round(100*me),"%"]}),(0,j.jsx)(r.Ss,{className:"tool-btn",onTap:function(){return le(B,.1)},children:"\uff0b"})]})]}),(0,j.jsxs)(r.Ss,{className:"tool-row",children:[(0,j.jsx)(r.EY,{className:"tool-label",children:"\u63d0\u793a"}),(0,j.jsx)(r.EY,{className:"tool-hint",children:"\u62d6\u52a8\u8c03\u6574\u4f4d\u7f6e\uff0c\u8d34\u7eb8\u4e0d\u53ef\u91cd\u53e0"})]})]}),(0,j.jsx)(r.Ss,{className:"edit-btn-bar mt-20",children:(0,j.jsx)(r.Ss,{className:"edit-btn ".concat(B?"active":"disabled"),onTap:re,children:(0,j.jsx)(r.EY,{children:"\u7f16\u8f91"})})}),(0,j.jsxs)(v.A,{children:[(0,j.jsx)(r.Ss,{className:"btn-primary",onTap:function(){return U(!0)},children:(0,j.jsx)(r.EY,{children:"\u9884\u89c8\u6548\u679c"})}),(0,j.jsx)(r.Ss,{className:"btn-secondary",onTap:se,children:(0,j.jsx)(r.EY,{children:"\u6dfb\u52a0\u8d34\u7eb8"})})]}),Q&&(0,j.jsx)(r.Ss,{className:"preview-overlay",children:(0,j.jsxs)(r.Ss,{className:"preview-card surface-card",children:[(0,j.jsx)(r.EY,{className:"preview-title",children:"\u786e\u8ba4\u6548\u679c"}),(0,j.jsx)(r.Ss,{className:"preview-canvas",style:de(),children:P.map(function(e){return(0,j.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,j.jsxs)(r.Ss,{className:"product-info",children:[(0,j.jsx)(r.EY,{className:"product-name",children:N.name}),(0,j.jsxs)(r.EY,{className:"product-size",children:["\u753b\u5e03\u5c3a\u5bf8: ",N.mask.width," \xd7 ",N.mask.height," px"]}),$&&(0,j.jsx)(r.EY,{className:"overlap-hint",children:"\u8d34\u7eb8\u6709\u91cd\u53e0\uff0c\u4e0d\u53ef\u63d0\u4ea4"})]}),(0,j.jsxs)(r.Ss,{className:"preview-actions",children:[(0,j.jsx)(r.Ss,{className:"btn-secondary",onTap:function(){return U(!1)},children:(0,j.jsx)(r.EY,{children:"\u8fd4\u56de\u4fee\u6539"})}),(0,j.jsx)(r.Ss,{className:"btn-primary ".concat($?"disabled":""),onTap:ue,children:(0,j.jsx)(r.EY,{children:"\u786e\u8ba4\u5b8c\u6210"})})]})]})}),(0,j.jsx)(r.Ss,{className:"safe-bottom-placeholder"})]})]}):(0,j.jsxs)(r.Ss,{className:"theme-".concat(a),children:[(0,j.jsx)(g.A,{}),(0,j.jsx)(f.A,{title:"\u8bbe\u8ba1\u5de5\u4f5c\u53f0",targetSelector:".page-header.surface-card",showBack:!0}),(0,j.jsx)(r.Ss,{className:"diy-page",children:(0,j.jsx)(r.EY,{className:"page-title",children:"\u52a0\u8f7d\u4e2d..."})})]})}var S={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"DIY\u5de5\u4f5c\u53f0"};Page((0,t.createPageConfig)(N,"pages/diy/index",{root:{cn:[]}},S||{}))}},function(e){var a=function(a){return e(e.s=a)};e.O(0,[907,96,76],function(){return a(8955)});e.O()}]); \ No newline at end of file diff --git a/dist/pages/diy/stickerEdit/index.js b/dist/pages/diy/stickerEdit/index.js index 842518c..b36258e 100644 --- a/dist/pages/diy/stickerEdit/index.js +++ b/dist/pages/diy/stickerEdit/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[339],{9519:function(e,s,t){var a=t(7842),n=t(9379),c=t(5544),i=t(118),r=t(758),l=t.n(r),o=t(6540),d=t(8594),u=t(9703),h=t(9201),f=t(5414),m=t(9674),x=t(3053),g=t(9513),v=t(4848),j=function(e,s,t){return Math.min(Math.max(e,s),t)};function S(){var e=(0,u.wR)(),s=e.resolvedTheme,t=(0,h.c)();(0,f.l)(s);var a=(0,o.useState)(""),r=(0,c.A)(a,2),S=r[0],N=r[1],p=(0,o.useState)(""),w=(0,c.A)(p,2),T=w[0],k=w[1],b=(0,o.useState)(null),y=(0,c.A)(b,2),A=y[0],E=y[1],Y=(0,o.useState)(0),M=(0,c.A)(Y,2),C=M[0],I=M[1],R=(0,o.useState)(0),D=(0,c.A)(R,2),P=D[0],B=D[1],q=(0,o.useState)(0),F=(0,c.A)(q,2),Q=F[0],J=F[1],O=(0,o.useState)(!1),X=(0,c.A)(O,2),H=X[0],_=X[1],z=(0,o.useState)(!1),G=(0,c.A)(z,2),K=G[0],L=G[1],U=((0,o.useRef)(null),(0,o.useRef)(null)),V=(0,o.useRef)(null),W=(0,o.useRef)({width:0,height:0}),Z=(0,o.useCallback)(function(e){K||l().nextTick(function(){var s=l().createSelectorQuery();s.select("#editCanvas").fields({node:!0,size:!0}).exec(function(s){var t=s&&s[0],a=t?t.node:void 0;if(a){var n=a.getContext("2d"),c=s[0]&&s[0].width||300,i=s[0]&&s[0].height||400;c<=0&&(c=300),i<=0&&(i=400);var r=l().getSystemInfoSync().pixelRatio||1;a.width=Math.round(c*r),a.height=Math.round(i*r),n.scale(r,r),V.current=a,U.current=n,W.current={width:c,height:i},L(!0),$(n,c,i,e)}else setTimeout(function(){return Z(e)},300)})})},[K]);(0,o.useEffect)(function(){var e=l().getCurrentInstance().router,s=e?e.params:void 0,t=s?s.designId:"",a=s?s.stickerId:"";N(t),k(a);var n=(0,d.p_)(),c=n.find(function(e){return e.id===t}),i=c&&c.designData&&c.designData.stickers?c.designData.stickers.find(function(e){return e.id===a}):void 0;i&&(E(i),I(i.edits&&i.edits.brightness||0),B(i.edits&&i.edits.hue||0),J(i.edits&&i.edits.contrast||0),Z(i))},[Z]);var $=function(e,s,t,a,n){if(e&&V.current){var c=V.current;if(s&&t){var i=a.width||200,r=a.height||200,o=c.createImage();o.onload=function(){e.clearRect(0,0,s,t),e.save();var a=.9*Math.min(s/i,t/r,4),c=i*a,l=r*a,d=(s-c)/2,u=(t-l)/2,h=n?n.brightness:C,f=n?n.hue:P,m=n?n.contrast:Q;e.filter=0!==h||0!==f||0!==m?"brightness(".concat(100+h,"%) hue-rotate(").concat(f,"deg) contrast(").concat(100+m,"%)"):"none",e.drawImage(o,d,u,c,l),e.restore()},o.onerror=function(e){console.error("Canvas load image error:",e,a.src),l().showToast({title:"\u56fe\u7247\u52a0\u8f7d\u5931\u8d25",icon:"none"})},a.src&&(o.src=a.src)}}},ee=function(){if(A&&U.current&&V.current){var e=W.current,s=e.width,t=e.height;$(U.current,s,t,A,{brightness:C,hue:P,contrast:Q})}};(0,o.useEffect)(function(){ee()},[C,P,Q]);var se=function(){A&&S&&(_(!0),l().canvasToTempFilePath({canvas:V.current,quality:.92,success:function(e){var s=e.tempFilePath,t=(0,d.p_)(),a=t.findIndex(function(e){return e.id===S});if(-1!==a){var c=t[a].designData&&t[a].designData.stickers||[],i=c.findIndex(function(e){return e.id===T});-1!==i?(c[i]=(0,n.A)((0,n.A)({},c[i]),{},{src:s,edits:{brightness:C,hue:P,contrast:Q}}),(0,d.i5)(S,{designData:(0,n.A)((0,n.A)({},t[a].designData),{},{stickers:c})}),l().showToast({title:"\u4fdd\u5b58\u6210\u529f",icon:"success"}),l().navigateBack()):_(!1)}else _(!1)},fail:function(){_(!1),l().showToast({title:"\u4fdd\u5b58\u5931\u8d25",icon:"none"})}}))},te=function(){A&&(l().cropImage?l().cropImage({src:A.src,cropScale:"1:1",success:function(e){var s=(0,n.A)((0,n.A)({},A),{},{src:e.tempFilePath});E(s),setTimeout(function(){return ee()},200)}}):l().showToast({title:"\u5f53\u524d\u5fae\u4fe1\u7248\u672c\u4e0d\u652f\u6301\u88c1\u526a",icon:"none"}))},ae="https://your-api-domain.com",ne=function(){A&&(_(!0),l().uploadFile({url:"".concat(ae,"/api/sketch"),filePath:A.src,name:"image",success:function(e){try{var s=JSON.parse(e.data);if(!s.url)throw new Error("no url");var t=(0,n.A)((0,n.A)({},A),{},{src:s.url,edits:(0,n.A)((0,n.A)({},A.edits),{},{sketchSrc:s.url})});E(t),setTimeout(function(){return ee()},200),l().showToast({title:"\u7ebf\u7a3f\u751f\u6210\u6210\u529f",icon:"success"})}catch(e){ce()}},fail:function(){ce()}}))},ce=function(){A&&U.current?(l().showToast({title:"\u4f7f\u7528\u672c\u5730\u7ebf\u7a3f",icon:"none"}),I(20),J(80),B(0),_(!1)):_(!1)},ie="".concat((C+100)/200*100,"%"),re="".concat((P+180)/360*100,"%"),le="".concat((Q+100)/200*100,"%");return(0,v.jsxs)(i.Ss,{className:"theme-".concat(s),children:[(0,v.jsx)(m.A,{}),(0,v.jsx)(x.A,{title:"\u7f16\u8f91\u8d34\u7eb8",targetSelector:".edit-header",showBack:!0}),(0,v.jsxs)(i.Ss,{className:"sticker-edit-page",children:[(0,v.jsxs)(i.Ss,{className:"edit-header",style:{paddingTop:"".concat(t.statusBarHeight+12,"px")},children:[(0,v.jsx)(i.EY,{className:"edit-back",onTap:function(){return l().navigateBack()},children:"\u2190"}),(0,v.jsx)(i.EY,{className:"edit-title",children:"\u7f16\u8f91\u8d34\u7eb8"}),(0,v.jsx)(i.EY,{className:"edit-save",onTap:se,children:"\u4fdd\u5b58"})]}),(0,v.jsx)(i.Ss,{className:"edit-canvas-wrap",children:(0,v.jsx)(i.Hl,{id:"editCanvas",type:"2d",className:"edit-canvas",style:{width:"100%",height:"480rpx"}})}),(0,v.jsxs)(i.Ss,{className:"edit-tools surface-card mt-20",children:[(0,v.jsxs)(i.Ss,{className:"edit-row",children:[(0,v.jsx)(i.EY,{className:"edit-label",children:"\u5feb\u901f\u64cd\u4f5c"}),(0,v.jsxs)(i.Ss,{className:"edit-quick-actions",children:[(0,v.jsx)(i.Ss,{className:"quick-btn",onTap:te,children:(0,v.jsx)(i.EY,{children:"\u88c1\u526a"})}),(0,v.jsx)(i.Ss,{className:"quick-btn",onTap:ne,children:(0,v.jsx)(i.EY,{children:"\u8f6c\u7ebf\u7a3f"})})]})]}),(0,v.jsxs)(i.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=j((s-e.left)/e.width,0,1),a=1*Math.round((200*t-100)/1);I(j(a,-100,100))}}).exec()},children:[(0,v.jsx)(i.EY,{className:"edit-label",children:"\u4eae\u5ea6"}),(0,v.jsxs)(i.Ss,{className:"slider-wrap",children:[(0,v.jsxs)(i.Ss,{className:"slider-track",children:[(0,v.jsx)(i.Ss,{className:"slider-fill",style:{width:ie}}),(0,v.jsx)(i.Ss,{className:"slider-thumb",style:{left:ie}})]}),(0,v.jsx)(i.EY,{className:"slider-value",children:C>0?"+".concat(C):C})]})]}),(0,v.jsxs)(i.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=j((s-e.left)/e.width,0,1),a=1*Math.round((360*t-180)/1);B(j(a,-180,180))}}).exec()},children:[(0,v.jsx)(i.EY,{className:"edit-label",children:"\u8272\u76f8"}),(0,v.jsxs)(i.Ss,{className:"slider-wrap",children:[(0,v.jsxs)(i.Ss,{className:"slider-track",children:[(0,v.jsx)(i.Ss,{className:"slider-fill",style:{width:re}}),(0,v.jsx)(i.Ss,{className:"slider-thumb",style:{left:re}})]}),(0,v.jsx)(i.EY,{className:"slider-value",children:P>0?"+".concat(P):P})]})]}),(0,v.jsxs)(i.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=j((s-e.left)/e.width,0,1),a=1*Math.round((200*t-100)/1);J(j(a,-100,100))}}).exec()},children:[(0,v.jsx)(i.EY,{className:"edit-label",children:"\u5bf9\u6bd4\u5ea6"}),(0,v.jsxs)(i.Ss,{className:"slider-wrap",children:[(0,v.jsxs)(i.Ss,{className:"slider-track",children:[(0,v.jsx)(i.Ss,{className:"slider-fill",style:{width:le}}),(0,v.jsx)(i.Ss,{className:"slider-thumb",style:{left:le}})]}),(0,v.jsx)(i.EY,{className:"slider-value",children:Q>0?"+".concat(Q):Q})]})]})]}),(0,v.jsx)(i.Ss,{style:{flex:1}}),(0,v.jsxs)(g.A,{className:"edit-footer",children:[(0,v.jsx)(i.Ss,{className:"btn-secondary",onTap:function(){return l().navigateBack()},children:(0,v.jsx)(i.EY,{children:"\u53d6\u6d88"})}),(0,v.jsx)(i.Ss,{className:"btn-primary",onTap:se,children:(0,v.jsx)(i.EY,{children:"\u4fdd\u5b58"})})]}),(0,v.jsx)(i.Ss,{className:"safe-bottom-placeholder"}),H&&(0,v.jsx)(i.Ss,{className:"edit-loading",children:(0,v.jsx)(i.EY,{className:"edit-loading-text",children:"\u5904\u7406\u4e2d\u2026"})})]})]})}var N={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u7f16\u8f91\u8d34\u7eb8"};Page((0,a.createPageConfig)(S,"pages/diy/stickerEdit/index",{root:{cn:[]}},N||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(9519)});e.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[339],{9519:function(e,s,t){var a=t(7842),n=t(9379),c=t(5544),i=t(118),r=t(758),l=t.n(r),o=t(6540),d=t(1457),u=t(9703),h=t(9201),f=t(5414),m=t(9674),x=t(3053),g=t(9513),v=t(4848),j=function(e,s,t){return Math.min(Math.max(e,s),t)};function S(){var e=(0,u.wR)(),s=e.resolvedTheme,t=(0,h.c)();(0,f.l)(s);var a=(0,o.useState)(""),r=(0,c.A)(a,2),S=r[0],N=r[1],p=(0,o.useState)(""),w=(0,c.A)(p,2),T=w[0],k=w[1],b=(0,o.useState)(null),y=(0,c.A)(b,2),A=y[0],E=y[1],Y=(0,o.useState)(0),M=(0,c.A)(Y,2),C=M[0],I=M[1],R=(0,o.useState)(0),D=(0,c.A)(R,2),P=D[0],B=D[1],q=(0,o.useState)(0),F=(0,c.A)(q,2),Q=F[0],J=F[1],O=(0,o.useState)(!1),X=(0,c.A)(O,2),H=X[0],_=X[1],z=(0,o.useState)(!1),G=(0,c.A)(z,2),K=G[0],L=G[1],U=((0,o.useRef)(null),(0,o.useRef)(null)),V=(0,o.useRef)(null),W=(0,o.useRef)({width:0,height:0}),Z=(0,o.useCallback)(function(e){K||l().nextTick(function(){var s=l().createSelectorQuery();s.select("#editCanvas").fields({node:!0,size:!0}).exec(function(s){var t=s&&s[0],a=t?t.node:void 0;if(a){var n=a.getContext("2d"),c=s[0]&&s[0].width||300,i=s[0]&&s[0].height||400;c<=0&&(c=300),i<=0&&(i=400);var r=l().getSystemInfoSync().pixelRatio||1;a.width=Math.round(c*r),a.height=Math.round(i*r),n.scale(r,r),V.current=a,U.current=n,W.current={width:c,height:i},L(!0),$(n,c,i,e)}else setTimeout(function(){return Z(e)},300)})})},[K]);(0,o.useEffect)(function(){var e=l().getCurrentInstance().router,s=e?e.params:void 0,t=s?s.designId:"",a=s?s.stickerId:"";N(t),k(a);var n=(0,d.p_)(),c=n.find(function(e){return e.id===t}),i=c&&c.designData&&c.designData.stickers?c.designData.stickers.find(function(e){return e.id===a}):void 0;i&&(E(i),I(i.edits&&i.edits.brightness||0),B(i.edits&&i.edits.hue||0),J(i.edits&&i.edits.contrast||0),Z(i))},[Z]);var $=function(e,s,t,a,n){if(e&&V.current){var c=V.current;if(s&&t){var i=a.width||200,r=a.height||200,o=c.createImage();o.onload=function(){e.clearRect(0,0,s,t),e.save();var a=.9*Math.min(s/i,t/r,4),c=i*a,l=r*a,d=(s-c)/2,u=(t-l)/2,h=n?n.brightness:C,f=n?n.hue:P,m=n?n.contrast:Q;e.filter=0!==h||0!==f||0!==m?"brightness(".concat(100+h,"%) hue-rotate(").concat(f,"deg) contrast(").concat(100+m,"%)"):"none",e.drawImage(o,d,u,c,l),e.restore()},o.onerror=function(e){console.error("Canvas load image error:",e,a.src),l().showToast({title:"\u56fe\u7247\u52a0\u8f7d\u5931\u8d25",icon:"none"})},a.src&&(o.src=a.src)}}},ee=function(){if(A&&U.current&&V.current){var e=W.current,s=e.width,t=e.height;$(U.current,s,t,A,{brightness:C,hue:P,contrast:Q})}};(0,o.useEffect)(function(){ee()},[C,P,Q]);var se=function(){A&&S&&(_(!0),l().canvasToTempFilePath({canvas:V.current,quality:.92,success:function(e){var s=e.tempFilePath,t=(0,d.p_)(),a=t.findIndex(function(e){return e.id===S});if(-1!==a){var c=t[a].designData&&t[a].designData.stickers||[],i=c.findIndex(function(e){return e.id===T});-1!==i?(c[i]=(0,n.A)((0,n.A)({},c[i]),{},{src:s,edits:{brightness:C,hue:P,contrast:Q}}),(0,d.i5)(S,{designData:(0,n.A)((0,n.A)({},t[a].designData),{},{stickers:c})}),l().showToast({title:"\u4fdd\u5b58\u6210\u529f",icon:"success"}),l().navigateBack()):_(!1)}else _(!1)},fail:function(){_(!1),l().showToast({title:"\u4fdd\u5b58\u5931\u8d25",icon:"none"})}}))},te=function(){A&&(l().cropImage?l().cropImage({src:A.src,cropScale:"1:1",success:function(e){var s=(0,n.A)((0,n.A)({},A),{},{src:e.tempFilePath});E(s),setTimeout(function(){return ee()},200)}}):l().showToast({title:"\u5f53\u524d\u5fae\u4fe1\u7248\u672c\u4e0d\u652f\u6301\u88c1\u526a",icon:"none"}))},ae="https://your-api-domain.com",ne=function(){A&&(_(!0),l().uploadFile({url:"".concat(ae,"/api/sketch"),filePath:A.src,name:"image",success:function(e){try{var s=JSON.parse(e.data);if(!s.url)throw new Error("no url");var t=(0,n.A)((0,n.A)({},A),{},{src:s.url,edits:(0,n.A)((0,n.A)({},A.edits),{},{sketchSrc:s.url})});E(t),setTimeout(function(){return ee()},200),l().showToast({title:"\u7ebf\u7a3f\u751f\u6210\u6210\u529f",icon:"success"})}catch(e){ce()}},fail:function(){ce()}}))},ce=function(){A&&U.current?(l().showToast({title:"\u4f7f\u7528\u672c\u5730\u7ebf\u7a3f",icon:"none"}),I(20),J(80),B(0),_(!1)):_(!1)},ie="".concat((C+100)/200*100,"%"),re="".concat((P+180)/360*100,"%"),le="".concat((Q+100)/200*100,"%");return(0,v.jsxs)(i.Ss,{className:"theme-".concat(s),children:[(0,v.jsx)(m.A,{}),(0,v.jsx)(x.A,{title:"\u7f16\u8f91\u8d34\u7eb8",targetSelector:".edit-header",showBack:!0}),(0,v.jsxs)(i.Ss,{className:"sticker-edit-page",children:[(0,v.jsxs)(i.Ss,{className:"edit-header",style:{paddingTop:"".concat(t.statusBarHeight+12,"px")},children:[(0,v.jsx)(i.EY,{className:"edit-back",onTap:function(){return l().navigateBack()},children:"\u2190"}),(0,v.jsx)(i.EY,{className:"edit-title",children:"\u7f16\u8f91\u8d34\u7eb8"}),(0,v.jsx)(i.EY,{className:"edit-save",onTap:se,children:"\u4fdd\u5b58"})]}),(0,v.jsx)(i.Ss,{className:"edit-canvas-wrap",children:(0,v.jsx)(i.Hl,{id:"editCanvas",type:"2d",className:"edit-canvas",style:{width:"100%",height:"480rpx"}})}),(0,v.jsxs)(i.Ss,{className:"edit-tools surface-card mt-20",children:[(0,v.jsxs)(i.Ss,{className:"edit-row",children:[(0,v.jsx)(i.EY,{className:"edit-label",children:"\u5feb\u901f\u64cd\u4f5c"}),(0,v.jsxs)(i.Ss,{className:"edit-quick-actions",children:[(0,v.jsx)(i.Ss,{className:"quick-btn",onTap:te,children:(0,v.jsx)(i.EY,{children:"\u88c1\u526a"})}),(0,v.jsx)(i.Ss,{className:"quick-btn",onTap:ne,children:(0,v.jsx)(i.EY,{children:"\u8f6c\u7ebf\u7a3f"})})]})]}),(0,v.jsxs)(i.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=j((s-e.left)/e.width,0,1),a=1*Math.round((200*t-100)/1);I(j(a,-100,100))}}).exec()},children:[(0,v.jsx)(i.EY,{className:"edit-label",children:"\u4eae\u5ea6"}),(0,v.jsxs)(i.Ss,{className:"slider-wrap",children:[(0,v.jsxs)(i.Ss,{className:"slider-track",children:[(0,v.jsx)(i.Ss,{className:"slider-fill",style:{width:ie}}),(0,v.jsx)(i.Ss,{className:"slider-thumb",style:{left:ie}})]}),(0,v.jsx)(i.EY,{className:"slider-value",children:C>0?"+".concat(C):C})]})]}),(0,v.jsxs)(i.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=j((s-e.left)/e.width,0,1),a=1*Math.round((360*t-180)/1);B(j(a,-180,180))}}).exec()},children:[(0,v.jsx)(i.EY,{className:"edit-label",children:"\u8272\u76f8"}),(0,v.jsxs)(i.Ss,{className:"slider-wrap",children:[(0,v.jsxs)(i.Ss,{className:"slider-track",children:[(0,v.jsx)(i.Ss,{className:"slider-fill",style:{width:re}}),(0,v.jsx)(i.Ss,{className:"slider-thumb",style:{left:re}})]}),(0,v.jsx)(i.EY,{className:"slider-value",children:P>0?"+".concat(P):P})]})]}),(0,v.jsxs)(i.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=j((s-e.left)/e.width,0,1),a=1*Math.round((200*t-100)/1);J(j(a,-100,100))}}).exec()},children:[(0,v.jsx)(i.EY,{className:"edit-label",children:"\u5bf9\u6bd4\u5ea6"}),(0,v.jsxs)(i.Ss,{className:"slider-wrap",children:[(0,v.jsxs)(i.Ss,{className:"slider-track",children:[(0,v.jsx)(i.Ss,{className:"slider-fill",style:{width:le}}),(0,v.jsx)(i.Ss,{className:"slider-thumb",style:{left:le}})]}),(0,v.jsx)(i.EY,{className:"slider-value",children:Q>0?"+".concat(Q):Q})]})]})]}),(0,v.jsx)(i.Ss,{style:{flex:1}}),(0,v.jsxs)(g.A,{className:"edit-footer",children:[(0,v.jsx)(i.Ss,{className:"btn-secondary",onTap:function(){return l().navigateBack()},children:(0,v.jsx)(i.EY,{children:"\u53d6\u6d88"})}),(0,v.jsx)(i.Ss,{className:"btn-primary",onTap:se,children:(0,v.jsx)(i.EY,{children:"\u4fdd\u5b58"})})]}),(0,v.jsx)(i.Ss,{className:"safe-bottom-placeholder"}),H&&(0,v.jsx)(i.Ss,{className:"edit-loading",children:(0,v.jsx)(i.EY,{className:"edit-loading-text",children:"\u5904\u7406\u4e2d\u2026"})})]})]})}var N={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u7f16\u8f91\u8d34\u7eb8"};Page((0,a.createPageConfig)(S,"pages/diy/stickerEdit/index",{root:{cn:[]}},N||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(9519)});e.O()}]); \ No newline at end of file diff --git a/dist/pages/orderDetail/index.js b/dist/pages/orderDetail/index.js index 7671e80..8f3cb23 100644 --- a/dist/pages/orderDetail/index.js +++ b/dist/pages/orderDetail/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[154],{6382:function(s,e,a){var c=a(7842),l=a(9379),r=a(5544),i=a(118),n=a(758),d=a.n(n),t=a(6540),m=a(9703),o=a(9201),h=a(5414),x=a(9674),j=a(3053),N=a(8594),u=a(5234),p=a(8199),S=a(4848);function g(){var s=(0,m.wR)(),e=(s.theme,s.resolvedTheme),a=(0,o.c)();(0,h.l)(e);var c=d().getCurrentInstance().router,n=c?c.params:{},g=n&&n.orderId||"",E=(0,t.useState)(null),Y=(0,r.A)(E,2),f=Y[0],k=Y[1],v=(0,t.useState)(null),w=(0,r.A)(v,2),b=w[0],C=w[1],T=(0,t.useState)(!1),A=(0,r.A)(T,2),y=A[0],B=A[1],I=(0,t.useState)([]),F=(0,r.A)(I,2),q=F[0],P=F[1];(0,t.useEffect)(function(){var s=(0,N.n7)(),e=s.find(function(s){return s.id===g});e&&(k(e),e.address?C(e.address):C((0,N.EB)())),P((0,N.Re)())},[g]);var V=function(s){C(s),B(!1);var e=(0,N.n7)(),a=e.findIndex(function(s){return s.id===g});a>=0&&(e[a]=(0,l.A)((0,l.A)({},e[a]),{},{address:s})),d().showToast({title:"\u5730\u5740\u5df2\u66f4\u6539",icon:"success"})};return f?(0,S.jsxs)(i.Ss,{className:"theme-".concat(e),children:[(0,S.jsx)(x.A,{}),(0,S.jsx)(j.A,{title:"\u8ba2\u5355\u8be6\u60c5",targetSelector:".page-header",showBack:!0}),(0,S.jsxs)(i.Ss,{className:"order-detail-page",children:[(0,S.jsx)(i.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,S.jsxs)(i.Ss,{className:"page-header-inner",children:[(0,S.jsx)(i.Ss,{className:"back-btn",onTap:function(){return d().navigateBack()},children:(0,S.jsx)(i.EY,{className:"back-arrow",children:"\u2190"})}),(0,S.jsx)(i.EY,{className:"nav-title",children:"\u8ba2\u5355\u8be6\u60c5"}),(0,S.jsx)(i.Ss,{className:"nav-placeholder"})]})}),(0,S.jsxs)(i.Ss,{className:"status-banner surface-card",children:[(0,S.jsxs)(i.EY,{className:"status-text",children:["pending"===f.statusCode&&"\u5f85\u4ed8\u6b3e","paid"===f.statusCode&&"\u5f85\u53d1\u8d27","shipping"===f.statusCode&&"\u5f85\u6536\u8d27","done"===f.statusCode&&"\u5df2\u5b8c\u6210"]}),(0,S.jsxs)(i.EY,{className:"status-desc",children:["pending"===f.statusCode&&"\u8bf7\u572830\u5206\u949f\u5185\u5b8c\u6210\u652f\u4ed8","paid"===f.statusCode&&"\u5546\u54c1\u6b63\u5728\u6253\u5305\u4e2d\uff0c\u5373\u5c06\u53d1\u8d27","shipping"===f.statusCode&&"\u5feb\u9012\u8fd0\u8f93\u4e2d\uff0c\u8bf7\u6ce8\u610f\u67e5\u6536","done"===f.statusCode&&"\u4ea4\u6613\u5df2\u5b8c\u6210\uff0c\u611f\u8c22\u60e0\u987e"]})]}),("shipping"===f.statusCode||"done"===f.statusCode)&&(0,S.jsxs)(i.Ss,{className:"logistics-card detail-card surface-card",children:[(0,S.jsxs)(i.Ss,{className:"logistics-header",children:[(0,S.jsxs)(i.Ss,{className:"flex-center",children:[(0,S.jsx)(i._V,{className:"card-icon-img",src:(0,p.uq)("/icon/\u5305\u88f9.png"),mode:"aspectFit"}),(0,S.jsx)(i.EY,{className:"logistics-title",children:"\u7269\u6d41\u4fe1\u606f"})]}),(0,S.jsx)(i.EY,{className:"logistics-num",children:"\u5355\u53f7: SF1234567890"})]}),(0,S.jsxs)(i.Ss,{className:"timeline",children:[(0,S.jsxs)(i.Ss,{className:"timeline-item active",children:[(0,S.jsx)(i.Ss,{className:"timeline-dot"}),(0,S.jsxs)(i.Ss,{className:"timeline-content",children:[(0,S.jsx)(i.EY,{className:"timeline-status",children:"\u8fd0\u8f93\u4e2d"}),(0,S.jsx)(i.EY,{className:"timeline-time",children:"2024-01-15 14:30"}),(0,S.jsx)(i.EY,{className:"timeline-desc",children:"\u3010\u5317\u4eac\u5e02\u3011\u5feb\u4ef6\u5df2\u5230\u8fbe\u5317\u4eac\u671d\u9633\u8f6c\u8fd0\u4e2d\u5fc3"})]})]}),(0,S.jsxs)(i.Ss,{className:"timeline-item",children:[(0,S.jsx)(i.Ss,{className:"timeline-dot"}),(0,S.jsxs)(i.Ss,{className:"timeline-content",children:[(0,S.jsx)(i.EY,{className:"timeline-status",children:"\u5df2\u53d1\u8d27"}),(0,S.jsx)(i.EY,{className:"timeline-time",children:"2024-01-15 09:00"}),(0,S.jsx)(i.EY,{className:"timeline-desc",children:"\u3010\u6df1\u5733\u5e02\u3011\u5546\u5bb6\u5df2\u53d1\u8d27\uff0c\u7b49\u5f85\u63fd\u6536"})]})]}),(0,S.jsxs)(i.Ss,{className:"timeline-item",children:[(0,S.jsx)(i.Ss,{className:"timeline-dot"}),(0,S.jsxs)(i.Ss,{className:"timeline-content",children:[(0,S.jsx)(i.EY,{className:"timeline-status",children:"\u5df2\u4e0b\u5355"}),(0,S.jsx)(i.EY,{className:"timeline-time",children:"2024-01-14 20:15"}),(0,S.jsx)(i.EY,{className:"timeline-desc",children:"\u8ba2\u5355\u5df2\u751f\u6210\uff0c\u7b49\u5f85\u5546\u5bb6\u53d1\u8d27"})]})]})]})]}),(0,S.jsxs)(i.Ss,{className:"product-card detail-card surface-card",children:[(0,S.jsxs)(i.Ss,{className:"product-row",children:[(0,S.jsx)(i.Ss,{className:"product-icon-wrapper",children:(0,S.jsx)(i._V,{className:"product-icon-img",src:(0,p.uq)((f.productIcon||"").startsWith("/icon/")||/^https?:/i.test(f.productIcon||"")?f.productIcon:u.rj[f.productId]||"/icon/\u56db\u89d2\u661f.svg"),mode:"aspectFit"})}),(0,S.jsxs)(i.Ss,{className:"product-info",children:[(0,S.jsx)(i.EY,{className:"product-name",children:f.productName}),(0,S.jsx)(i.EY,{className:"product-sku",children:f.sku})]})]}),(0,S.jsxs)(i.Ss,{className:"price-row",children:[(0,S.jsx)(i.EY,{className:"price-label",children:"\u5b9e\u4ed8\u6b3e"}),(0,S.jsx)(i.EY,{className:"price-value",children:f.price})]})]}),(0,S.jsxs)(i.Ss,{className:"address-card detail-card surface-card",children:[(0,S.jsxs)(i.Ss,{className:"address-header",children:[(0,S.jsxs)(i.Ss,{className:"flex-center",children:[(0,S.jsx)(i._V,{className:"card-icon-img",src:(0,p.uq)("/icon/\u5730\u5740.png"),mode:"aspectFit"}),(0,S.jsx)(i.EY,{className:"address-title",children:"\u6536\u8d27\u5730\u5740"})]}),(0,S.jsx)(i.Ss,{className:"address-change",onTap:function(){return B(!0)},children:(0,S.jsx)(i.EY,{className:"change-text",children:"\u66f4\u6539\u6536\u8d27\u5730\u5740"})})]}),b?(0,S.jsxs)(i.Ss,{className:"address-body",children:[(0,S.jsxs)(i.Ss,{className:"address-row",children:[(0,S.jsx)(i.EY,{className:"address-name",children:b.name}),(0,S.jsx)(i.EY,{className:"address-phone",children:b.phone})]}),(0,S.jsxs)(i.EY,{className:"address-detail",children:[(b.region||[]).join(" ")," ",b.detail]})]}):(0,S.jsx)(i.Ss,{className:"address-empty",children:(0,S.jsx)(i.EY,{children:"\u6682\u65e0\u6536\u8d27\u5730\u5740\uff0c\u8bf7\u5148\u6dfb\u52a0"})})]}),(0,S.jsxs)(i.Ss,{className:"meta-card detail-card surface-card",children:[(0,S.jsx)(i.EY,{className:"meta-title",children:"\u8ba2\u5355\u4fe1\u606f"}),(0,S.jsxs)(i.Ss,{className:"meta-row",children:[(0,S.jsx)(i.EY,{className:"meta-label",children:"\u8ba2\u5355\u7f16\u53f7"}),(0,S.jsx)(i.EY,{className:"meta-value",children:f.id})]}),(0,S.jsxs)(i.Ss,{className:"meta-row",children:[(0,S.jsx)(i.EY,{className:"meta-label",children:"\u521b\u5efa\u65f6\u95f4"}),(0,S.jsx)(i.EY,{className:"meta-value",children:f.date})]}),(0,S.jsxs)(i.Ss,{className:"meta-row",children:[(0,S.jsx)(i.EY,{className:"meta-label",children:"\u6570\u91cf"}),(0,S.jsxs)(i.EY,{className:"meta-value",children:[f.count," \u4ef6"]})]})]}),y&&(0,S.jsx)(i.Ss,{className:"modal-overlay",style:{alignItems:"flex-end",justifyContent:"flex-end"},children:(0,S.jsxs)(i.Ss,{className:"addr-picker-sheet surface-card",children:[(0,S.jsxs)(i.Ss,{className:"addr-picker-header",children:[(0,S.jsx)(i.EY,{className:"addr-picker-title",children:"\u9009\u62e9\u6536\u8d27\u5730\u5740"}),(0,S.jsx)(i.EY,{className:"addr-picker-close",onTap:function(){return B(!1)},children:"\u2715"})]}),(0,S.jsxs)(i.Ss,{className:"addr-picker-list",children:[q.map(function(s){return(0,S.jsxs)(i.Ss,{className:"addr-picker-item ".concat(b&&b.id===s.id?"active":""),onTap:function(){return V(s)},children:[(0,S.jsxs)(i.Ss,{className:"addr-picker-row",children:[(0,S.jsx)(i.EY,{className:"addr-picker-name",children:s.name}),(0,S.jsx)(i.EY,{className:"addr-picker-phone",children:s.phone}),s.isDefault&&(0,S.jsx)(i.EY,{className:"addr-picker-default",children:"\u9ed8\u8ba4"})]}),(0,S.jsxs)(i.EY,{className:"addr-picker-detail",children:[(s.region||[]).join(" ")," ",s.detail]})]},s.id)}),0===q.length&&(0,S.jsx)(i.Ss,{className:"addr-picker-empty",children:(0,S.jsx)(i.EY,{children:"\u6682\u65e0\u5730\u5740\uff0c\u8bf7\u5148\u6dfb\u52a0\u6536\u8d27\u5730\u5740"})})]}),(0,S.jsx)(i.Ss,{className:"addr-picker-add",onTap:function(){B(!1),d().navigateTo({url:"/pages/address/index"})},children:(0,S.jsx)(i.EY,{className:"addr-picker-add-text",children:"+ \u65b0\u5efa\u6536\u8d27\u5730\u5740"})})]})})]})]}):(0,S.jsxs)(i.Ss,{className:"theme-".concat(e),children:[(0,S.jsx)(x.A,{}),(0,S.jsx)(j.A,{title:"\u8ba2\u5355\u8be6\u60c5",targetSelector:".page-header",showBack:!0}),(0,S.jsx)(i.Ss,{className:"order-detail-page",children:(0,S.jsx)(i.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,S.jsxs)(i.Ss,{className:"page-header-inner",children:[(0,S.jsx)(i.Ss,{className:"back-btn",onTap:function(){return d().navigateBack()},children:(0,S.jsx)(i.EY,{className:"back-arrow",children:"\u2190"})}),(0,S.jsx)(i.EY,{className:"nav-title",children:"\u8ba2\u5355\u4e0d\u5b58\u5728"}),(0,S.jsx)(i.Ss,{className:"nav-placeholder"})]})})})]})}var E={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u8ba2\u5355\u8be6\u60c5"};Page((0,c.createPageConfig)(g,"pages/orderDetail/index",{root:{cn:[]}},E||{}))}},function(s){var e=function(e){return s(s.s=e)};s.O(0,[907,96,76],function(){return e(6382)});s.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[154],{6382:function(s,e,a){var c=a(7842),l=a(9379),r=a(5544),i=a(118),n=a(758),d=a.n(n),t=a(6540),m=a(9703),o=a(9201),h=a(5414),x=a(9674),j=a(3053),N=a(1457),u=a(5234),p=a(8199),S=a(4848);function g(){var s=(0,m.wR)(),e=(s.theme,s.resolvedTheme),a=(0,o.c)();(0,h.l)(e);var c=d().getCurrentInstance().router,n=c?c.params:{},g=n&&n.orderId||"",E=(0,t.useState)(null),Y=(0,r.A)(E,2),f=Y[0],k=Y[1],v=(0,t.useState)(null),w=(0,r.A)(v,2),b=w[0],C=w[1],T=(0,t.useState)(!1),A=(0,r.A)(T,2),y=A[0],B=A[1],I=(0,t.useState)([]),F=(0,r.A)(I,2),q=F[0],P=F[1];(0,t.useEffect)(function(){var s=(0,N.n7)(),e=s.find(function(s){return s.id===g});e&&(k(e),e.address?C(e.address):C((0,N.EB)())),P((0,N.Re)())},[g]);var V=function(s){C(s),B(!1);var e=(0,N.n7)(),a=e.findIndex(function(s){return s.id===g});a>=0&&(e[a]=(0,l.A)((0,l.A)({},e[a]),{},{address:s})),d().showToast({title:"\u5730\u5740\u5df2\u66f4\u6539",icon:"success"})};return f?(0,S.jsxs)(i.Ss,{className:"theme-".concat(e),children:[(0,S.jsx)(x.A,{}),(0,S.jsx)(j.A,{title:"\u8ba2\u5355\u8be6\u60c5",targetSelector:".page-header",showBack:!0}),(0,S.jsxs)(i.Ss,{className:"order-detail-page",children:[(0,S.jsx)(i.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,S.jsxs)(i.Ss,{className:"page-header-inner",children:[(0,S.jsx)(i.Ss,{className:"back-btn",onTap:function(){return d().navigateBack()},children:(0,S.jsx)(i.EY,{className:"back-arrow",children:"\u2190"})}),(0,S.jsx)(i.EY,{className:"nav-title",children:"\u8ba2\u5355\u8be6\u60c5"}),(0,S.jsx)(i.Ss,{className:"nav-placeholder"})]})}),(0,S.jsxs)(i.Ss,{className:"status-banner surface-card",children:[(0,S.jsxs)(i.EY,{className:"status-text",children:["pending"===f.statusCode&&"\u5f85\u4ed8\u6b3e","paid"===f.statusCode&&"\u5f85\u53d1\u8d27","shipping"===f.statusCode&&"\u5f85\u6536\u8d27","done"===f.statusCode&&"\u5df2\u5b8c\u6210"]}),(0,S.jsxs)(i.EY,{className:"status-desc",children:["pending"===f.statusCode&&"\u8bf7\u572830\u5206\u949f\u5185\u5b8c\u6210\u652f\u4ed8","paid"===f.statusCode&&"\u5546\u54c1\u6b63\u5728\u6253\u5305\u4e2d\uff0c\u5373\u5c06\u53d1\u8d27","shipping"===f.statusCode&&"\u5feb\u9012\u8fd0\u8f93\u4e2d\uff0c\u8bf7\u6ce8\u610f\u67e5\u6536","done"===f.statusCode&&"\u4ea4\u6613\u5df2\u5b8c\u6210\uff0c\u611f\u8c22\u60e0\u987e"]})]}),("shipping"===f.statusCode||"done"===f.statusCode)&&(0,S.jsxs)(i.Ss,{className:"logistics-card detail-card surface-card",children:[(0,S.jsxs)(i.Ss,{className:"logistics-header",children:[(0,S.jsxs)(i.Ss,{className:"flex-center",children:[(0,S.jsx)(i._V,{className:"card-icon-img",src:(0,p.uq)("/icon/\u5305\u88f9.png"),mode:"aspectFit"}),(0,S.jsx)(i.EY,{className:"logistics-title",children:"\u7269\u6d41\u4fe1\u606f"})]}),(0,S.jsx)(i.EY,{className:"logistics-num",children:"\u5355\u53f7: SF1234567890"})]}),(0,S.jsxs)(i.Ss,{className:"timeline",children:[(0,S.jsxs)(i.Ss,{className:"timeline-item active",children:[(0,S.jsx)(i.Ss,{className:"timeline-dot"}),(0,S.jsxs)(i.Ss,{className:"timeline-content",children:[(0,S.jsx)(i.EY,{className:"timeline-status",children:"\u8fd0\u8f93\u4e2d"}),(0,S.jsx)(i.EY,{className:"timeline-time",children:"2024-01-15 14:30"}),(0,S.jsx)(i.EY,{className:"timeline-desc",children:"\u3010\u5317\u4eac\u5e02\u3011\u5feb\u4ef6\u5df2\u5230\u8fbe\u5317\u4eac\u671d\u9633\u8f6c\u8fd0\u4e2d\u5fc3"})]})]}),(0,S.jsxs)(i.Ss,{className:"timeline-item",children:[(0,S.jsx)(i.Ss,{className:"timeline-dot"}),(0,S.jsxs)(i.Ss,{className:"timeline-content",children:[(0,S.jsx)(i.EY,{className:"timeline-status",children:"\u5df2\u53d1\u8d27"}),(0,S.jsx)(i.EY,{className:"timeline-time",children:"2024-01-15 09:00"}),(0,S.jsx)(i.EY,{className:"timeline-desc",children:"\u3010\u6df1\u5733\u5e02\u3011\u5546\u5bb6\u5df2\u53d1\u8d27\uff0c\u7b49\u5f85\u63fd\u6536"})]})]}),(0,S.jsxs)(i.Ss,{className:"timeline-item",children:[(0,S.jsx)(i.Ss,{className:"timeline-dot"}),(0,S.jsxs)(i.Ss,{className:"timeline-content",children:[(0,S.jsx)(i.EY,{className:"timeline-status",children:"\u5df2\u4e0b\u5355"}),(0,S.jsx)(i.EY,{className:"timeline-time",children:"2024-01-14 20:15"}),(0,S.jsx)(i.EY,{className:"timeline-desc",children:"\u8ba2\u5355\u5df2\u751f\u6210\uff0c\u7b49\u5f85\u5546\u5bb6\u53d1\u8d27"})]})]})]})]}),(0,S.jsxs)(i.Ss,{className:"product-card detail-card surface-card",children:[(0,S.jsxs)(i.Ss,{className:"product-row",children:[(0,S.jsx)(i.Ss,{className:"product-icon-wrapper",children:(0,S.jsx)(i._V,{className:"product-icon-img",src:(0,p.uq)((f.productIcon||"").startsWith("/icon/")||/^https?:/i.test(f.productIcon||"")?f.productIcon:u.rj[f.productId]||"/icon/\u56db\u89d2\u661f.svg"),mode:"aspectFit"})}),(0,S.jsxs)(i.Ss,{className:"product-info",children:[(0,S.jsx)(i.EY,{className:"product-name",children:f.productName}),(0,S.jsx)(i.EY,{className:"product-sku",children:f.sku})]})]}),(0,S.jsxs)(i.Ss,{className:"price-row",children:[(0,S.jsx)(i.EY,{className:"price-label",children:"\u5b9e\u4ed8\u6b3e"}),(0,S.jsx)(i.EY,{className:"price-value",children:f.price})]})]}),(0,S.jsxs)(i.Ss,{className:"address-card detail-card surface-card",children:[(0,S.jsxs)(i.Ss,{className:"address-header",children:[(0,S.jsxs)(i.Ss,{className:"flex-center",children:[(0,S.jsx)(i._V,{className:"card-icon-img",src:(0,p.uq)("/icon/\u5730\u5740.png"),mode:"aspectFit"}),(0,S.jsx)(i.EY,{className:"address-title",children:"\u6536\u8d27\u5730\u5740"})]}),(0,S.jsx)(i.Ss,{className:"address-change",onTap:function(){return B(!0)},children:(0,S.jsx)(i.EY,{className:"change-text",children:"\u66f4\u6539\u6536\u8d27\u5730\u5740"})})]}),b?(0,S.jsxs)(i.Ss,{className:"address-body",children:[(0,S.jsxs)(i.Ss,{className:"address-row",children:[(0,S.jsx)(i.EY,{className:"address-name",children:b.name}),(0,S.jsx)(i.EY,{className:"address-phone",children:b.phone})]}),(0,S.jsxs)(i.EY,{className:"address-detail",children:[(b.region||[]).join(" ")," ",b.detail]})]}):(0,S.jsx)(i.Ss,{className:"address-empty",children:(0,S.jsx)(i.EY,{children:"\u6682\u65e0\u6536\u8d27\u5730\u5740\uff0c\u8bf7\u5148\u6dfb\u52a0"})})]}),(0,S.jsxs)(i.Ss,{className:"meta-card detail-card surface-card",children:[(0,S.jsx)(i.EY,{className:"meta-title",children:"\u8ba2\u5355\u4fe1\u606f"}),(0,S.jsxs)(i.Ss,{className:"meta-row",children:[(0,S.jsx)(i.EY,{className:"meta-label",children:"\u8ba2\u5355\u7f16\u53f7"}),(0,S.jsx)(i.EY,{className:"meta-value",children:f.id})]}),(0,S.jsxs)(i.Ss,{className:"meta-row",children:[(0,S.jsx)(i.EY,{className:"meta-label",children:"\u521b\u5efa\u65f6\u95f4"}),(0,S.jsx)(i.EY,{className:"meta-value",children:f.date})]}),(0,S.jsxs)(i.Ss,{className:"meta-row",children:[(0,S.jsx)(i.EY,{className:"meta-label",children:"\u6570\u91cf"}),(0,S.jsxs)(i.EY,{className:"meta-value",children:[f.count," \u4ef6"]})]})]}),y&&(0,S.jsx)(i.Ss,{className:"modal-overlay",style:{alignItems:"flex-end",justifyContent:"flex-end"},children:(0,S.jsxs)(i.Ss,{className:"addr-picker-sheet surface-card",children:[(0,S.jsxs)(i.Ss,{className:"addr-picker-header",children:[(0,S.jsx)(i.EY,{className:"addr-picker-title",children:"\u9009\u62e9\u6536\u8d27\u5730\u5740"}),(0,S.jsx)(i.EY,{className:"addr-picker-close",onTap:function(){return B(!1)},children:"\u2715"})]}),(0,S.jsxs)(i.Ss,{className:"addr-picker-list",children:[q.map(function(s){return(0,S.jsxs)(i.Ss,{className:"addr-picker-item ".concat(b&&b.id===s.id?"active":""),onTap:function(){return V(s)},children:[(0,S.jsxs)(i.Ss,{className:"addr-picker-row",children:[(0,S.jsx)(i.EY,{className:"addr-picker-name",children:s.name}),(0,S.jsx)(i.EY,{className:"addr-picker-phone",children:s.phone}),s.isDefault&&(0,S.jsx)(i.EY,{className:"addr-picker-default",children:"\u9ed8\u8ba4"})]}),(0,S.jsxs)(i.EY,{className:"addr-picker-detail",children:[(s.region||[]).join(" ")," ",s.detail]})]},s.id)}),0===q.length&&(0,S.jsx)(i.Ss,{className:"addr-picker-empty",children:(0,S.jsx)(i.EY,{children:"\u6682\u65e0\u5730\u5740\uff0c\u8bf7\u5148\u6dfb\u52a0\u6536\u8d27\u5730\u5740"})})]}),(0,S.jsx)(i.Ss,{className:"addr-picker-add",onTap:function(){B(!1),d().navigateTo({url:"/pages/address/index"})},children:(0,S.jsx)(i.EY,{className:"addr-picker-add-text",children:"+ \u65b0\u5efa\u6536\u8d27\u5730\u5740"})})]})})]})]}):(0,S.jsxs)(i.Ss,{className:"theme-".concat(e),children:[(0,S.jsx)(x.A,{}),(0,S.jsx)(j.A,{title:"\u8ba2\u5355\u8be6\u60c5",targetSelector:".page-header",showBack:!0}),(0,S.jsx)(i.Ss,{className:"order-detail-page",children:(0,S.jsx)(i.Ss,{className:"page-header",style:{paddingTop:"".concat(a.statusBarHeight+12,"px")},children:(0,S.jsxs)(i.Ss,{className:"page-header-inner",children:[(0,S.jsx)(i.Ss,{className:"back-btn",onTap:function(){return d().navigateBack()},children:(0,S.jsx)(i.EY,{className:"back-arrow",children:"\u2190"})}),(0,S.jsx)(i.EY,{className:"nav-title",children:"\u8ba2\u5355\u4e0d\u5b58\u5728"}),(0,S.jsx)(i.Ss,{className:"nav-placeholder"})]})})})]})}var E={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u8ba2\u5355\u8be6\u60c5"};Page((0,c.createPageConfig)(g,"pages/orderDetail/index",{root:{cn:[]}},E||{}))}},function(s){var e=function(e){return s(s.s=e)};s.O(0,[907,96,76],function(){return e(6382)});s.O()}]); \ No newline at end of file diff --git a/dist/pages/orders/index.js b/dist/pages/orders/index.js index fc22c15..9a5e769 100644 --- a/dist/pages/orders/index.js +++ b/dist/pages/orders/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[402],{2307:function(e,s,a){var n=a(7842),r=a(5544),c=a(118),t=a(758),o=a.n(t),l=a(6540),i=a(8594),d=a(8199),p=a(9703),u=a(9201),h=a(5414),m=a(7723),x=a(9674),g=a(3053),b=a(4848),j=[{code:"all",label:"\u5168\u90e8"},{code:"pending",label:"\u5f85\u4ed8\u6b3e"},{code:"paid",label:"\u5f85\u53d1\u8d27"},{code:"shipping",label:"\u5f85\u6536\u8d27"},{code:"done",label:"\u5df2\u5b8c\u6210"}],f={pending:{label:"\u5f85\u4ed8\u6b3e",badge:"badge-pink"},paid:{label:"\u5f85\u53d1\u8d27",badge:"badge-blue"},shipping:{label:"\u5f85\u6536\u8d27",badge:"badge-blue"},done:{label:"\u5df2\u5b8c\u6210",badge:"badge-green"},cancelled:{label:"\u5df2\u53d6\u6d88",badge:"badge-gray"}};function N(){var e=(0,p.wR)(),s=(e.theme,e.resolvedTheme),a=(0,u.c)();(0,h.l)(s);var n=(0,l.useState)("all"),t=(0,r.A)(n,2),N=t[0],S=t[1],v=(0,l.useState)([]),E=(0,r.A)(v,2),Y=E[0],y=E[1],T=function(){return y((0,i.n7)())};(0,l.useEffect)(T,[]),(0,l.useEffect)(function(){var e=function(){var e=o().getStorageSync("orders:filter");e&&j.some(function(s){return s.code===e})&&(S(e),o().removeStorageSync("orders:filter")),T()};e();var s=o().getCurrentInstance().page;if(s){var a=s.onShow;s.onShow=function(){e(),a&&a.apply(this)}}},[]),(0,l.useEffect)(function(){return o().eventCenter&&o().eventCenter.once("orders:refresh",T),T(),function(){o().eventCenter&&o().eventCenter.off("orders:refresh",T)}},[]);var w="all"===N?Y:Y.filter(function(e){return e.statusCode===N}),C=function(e){o().navigateTo({url:"/pages/orderDetail/index?orderId=".concat(e.id)})};return(0,b.jsxs)(c.Ss,{className:"theme-".concat(s),children:[(0,b.jsx)(x.A,{}),(0,b.jsx)(g.A,{title:"\u6211\u7684\u8ba2\u5355",targetSelector:".orders-page .page-header"}),(0,b.jsx)(m.A,{children:(0,b.jsxs)(c.Ss,{className:"orders-page",children:[(0,b.jsx)(c.Ss,{className:"page-header",style:{marginTop:"".concat(a.statusBarHeight+12,"px")},children:(0,b.jsx)(c.EY,{className:"page-title",children:"\u6211\u7684\u8ba2\u5355"})}),(0,b.jsx)(c.Ss,{className:"status-tabs",children:(0,b.jsx)(c.BM,{className:"tabs-scroll",scrollX:!0,children:j.map(function(e){return(0,b.jsxs)(c.Ss,{className:"tab-item ".concat(N===e.code?"active":""),onTap:function(){return S(e.code)},children:[(0,b.jsx)(c.EY,{className:"tab-label",children:e.label}),N===e.code&&(0,b.jsx)(c.Ss,{className:"tab-underline"})]},e.code)})})}),(0,b.jsxs)(c.BM,{className:"orders-list",scrollY:!0,children:[w.map(function(e){var s=f[e.statusCode]||f.pending,a=(e.productIcon||"").startsWith("/icon/")||/^https?:/i.test(e.productIcon||"")?e.productIcon:"/icon/\u56db\u89d2\u661f.svg",n=(0,d.uq)(a);return(0,b.jsxs)(c.Ss,{className:"order-card surface-card",onTap:function(){return C(e)},children:[(0,b.jsxs)(c.Ss,{className:"order-header",children:[(0,b.jsx)(c.EY,{className:"order-date",children:e.date}),(0,b.jsx)(c.EY,{className:"badge ".concat(s.badge),children:s.label})]}),(0,b.jsxs)(c.Ss,{className:"order-body",children:[(0,b.jsx)(c.Ss,{className:"order-icon-wrapper",children:(0,b.jsx)(c._V,{className:"order-icon-img",src:n,mode:"aspectFit"})}),(0,b.jsxs)(c.Ss,{className:"order-info",children:[(0,b.jsx)(c.EY,{className:"order-product",children:e.productName}),(0,b.jsx)(c.EY,{className:"order-sku",children:e.sku}),(0,b.jsxs)(c.EY,{className:"order-meta",children:["\u6570\u91cf: ",e.count," \u4ef6 | ",e.id]})]})]}),(0,b.jsxs)(c.Ss,{className:"order-footer",children:[(0,b.jsxs)(c.Ss,{className:"order-price-bar",children:[(0,b.jsx)(c.EY,{className:"price-label",children:"\u5b9e\u4ed8\u6b3e"}),(0,b.jsx)(c.EY,{className:"price-value",children:e.price})]}),(0,b.jsxs)(c.Ss,{className:"order-actions",children:["pending"===e.statusCode&&(0,b.jsx)(c.Ss,{className:"btn-primary order-btn",children:(0,b.jsx)(c.EY,{children:"\u7acb\u5373\u4ed8\u6b3e"})}),"paid"===e.statusCode&&(0,b.jsx)(c.Ss,{className:"btn-secondary order-btn",children:(0,b.jsx)(c.EY,{children:"\u50ac\u53d1\u8d27"})}),"shipping"===e.statusCode&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.Ss,{className:"btn-secondary order-btn",onTap:function(e){e.stopPropagation(),o().showToast({title:"\u67e5\u770b\u7269\u6d41",icon:"none"})},children:(0,b.jsx)(c.EY,{children:"\u67e5\u770b\u7269\u6d41"})}),(0,b.jsx)(c.Ss,{className:"btn-primary order-btn",onTap:function(e){e.stopPropagation(),o().showToast({title:"\u786e\u8ba4\u6536\u8d27",icon:"none"})},children:(0,b.jsx)(c.EY,{children:"\u786e\u8ba4\u6536\u8d27"})})]}),"done"===e.statusCode&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.Ss,{className:"btn-secondary order-btn",onTap:function(e){e.stopPropagation(),o().showToast({title:"\u7533\u8bf7\u552e\u540e",icon:"none"})},children:(0,b.jsx)(c.EY,{children:"\u7533\u8bf7\u552e\u540e"})}),(0,b.jsx)(c.Ss,{className:"btn-primary order-btn",onTap:function(e){e.stopPropagation(),o().showToast({title:"\u518d\u6765\u4e00\u5355",icon:"none"})},children:(0,b.jsx)(c.EY,{children:"\u518d\u6765\u4e00\u5355"})})]}),(0,b.jsx)(c.Ss,{className:"btn-secondary order-btn",onTap:function(s){s.stopPropagation(),C(e)},children:(0,b.jsx)(c.EY,{children:"\u8be6\u60c5"})})]})]})]},e.id)}),0===w.length&&(0,b.jsxs)(c.Ss,{className:"empty-state",children:[(0,b.jsx)(c._V,{className:"empty-icon-img",src:(0,d.uq)("/icon/\u5305\u88f9.png"),mode:"aspectFit"}),(0,b.jsx)(c.EY,{className:"empty-text",children:"\u6682\u65e0\u8ba2\u5355"}),(0,b.jsx)(c.EY,{className:"empty-sub",children:"\u53bb\u9996\u9875\u5f00\u59cb\u5b9a\u5236\u5427"}),(0,b.jsx)(c.Ss,{className:"btn-primary",onTap:function(){return o().switchTab({url:"/pages/index/index"})},children:(0,b.jsx)(c.EY,{children:"\u53bb\u5b9a\u5236"})})]})]})]})})]})}var S={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u8ba2\u5355\u5217\u8868"};Page((0,n.createPageConfig)(N,"pages/orders/index",{root:{cn:[]}},S||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(2307)});e.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[402],{2307:function(e,s,a){var n=a(7842),r=a(5544),c=a(118),t=a(758),o=a.n(t),l=a(6540),i=a(1457),d=a(8199),p=a(9703),u=a(9201),h=a(5414),m=a(7723),x=a(9674),g=a(3053),b=a(4848),j=[{code:"all",label:"\u5168\u90e8"},{code:"pending",label:"\u5f85\u4ed8\u6b3e"},{code:"paid",label:"\u5f85\u53d1\u8d27"},{code:"shipping",label:"\u5f85\u6536\u8d27"},{code:"done",label:"\u5df2\u5b8c\u6210"}],f={pending:{label:"\u5f85\u4ed8\u6b3e",badge:"badge-pink"},paid:{label:"\u5f85\u53d1\u8d27",badge:"badge-blue"},shipping:{label:"\u5f85\u6536\u8d27",badge:"badge-blue"},done:{label:"\u5df2\u5b8c\u6210",badge:"badge-green"},cancelled:{label:"\u5df2\u53d6\u6d88",badge:"badge-gray"}};function N(){var e=(0,p.wR)(),s=(e.theme,e.resolvedTheme),a=(0,u.c)();(0,h.l)(s);var n=(0,l.useState)("all"),t=(0,r.A)(n,2),N=t[0],S=t[1],v=(0,l.useState)([]),E=(0,r.A)(v,2),Y=E[0],y=E[1],T=function(){return y((0,i.n7)())};(0,l.useEffect)(T,[]),(0,l.useEffect)(function(){var e=function(){var e=o().getStorageSync("orders:filter");e&&j.some(function(s){return s.code===e})&&(S(e),o().removeStorageSync("orders:filter")),T()};e();var s=o().getCurrentInstance().page;if(s){var a=s.onShow;s.onShow=function(){e(),a&&a.apply(this)}}},[]),(0,l.useEffect)(function(){return o().eventCenter&&o().eventCenter.once("orders:refresh",T),T(),function(){o().eventCenter&&o().eventCenter.off("orders:refresh",T)}},[]);var w="all"===N?Y:Y.filter(function(e){return e.statusCode===N}),C=function(e){o().navigateTo({url:"/pages/orderDetail/index?orderId=".concat(e.id)})};return(0,b.jsxs)(c.Ss,{className:"theme-".concat(s),children:[(0,b.jsx)(x.A,{}),(0,b.jsx)(g.A,{title:"\u6211\u7684\u8ba2\u5355",targetSelector:".orders-page .page-header"}),(0,b.jsx)(m.A,{children:(0,b.jsxs)(c.Ss,{className:"orders-page",children:[(0,b.jsx)(c.Ss,{className:"page-header",style:{marginTop:"".concat(a.statusBarHeight+12,"px")},children:(0,b.jsx)(c.EY,{className:"page-title",children:"\u6211\u7684\u8ba2\u5355"})}),(0,b.jsx)(c.Ss,{className:"status-tabs",children:(0,b.jsx)(c.BM,{className:"tabs-scroll",scrollX:!0,children:j.map(function(e){return(0,b.jsxs)(c.Ss,{className:"tab-item ".concat(N===e.code?"active":""),onTap:function(){return S(e.code)},children:[(0,b.jsx)(c.EY,{className:"tab-label",children:e.label}),N===e.code&&(0,b.jsx)(c.Ss,{className:"tab-underline"})]},e.code)})})}),(0,b.jsxs)(c.BM,{className:"orders-list",scrollY:!0,children:[w.map(function(e){var s=f[e.statusCode]||f.pending,a=(e.productIcon||"").startsWith("/icon/")||/^https?:/i.test(e.productIcon||"")?e.productIcon:"/icon/\u56db\u89d2\u661f.svg",n=(0,d.uq)(a);return(0,b.jsxs)(c.Ss,{className:"order-card surface-card",onTap:function(){return C(e)},children:[(0,b.jsxs)(c.Ss,{className:"order-header",children:[(0,b.jsx)(c.EY,{className:"order-date",children:e.date}),(0,b.jsx)(c.EY,{className:"badge ".concat(s.badge),children:s.label})]}),(0,b.jsxs)(c.Ss,{className:"order-body",children:[(0,b.jsx)(c.Ss,{className:"order-icon-wrapper",children:(0,b.jsx)(c._V,{className:"order-icon-img",src:n,mode:"aspectFit"})}),(0,b.jsxs)(c.Ss,{className:"order-info",children:[(0,b.jsx)(c.EY,{className:"order-product",children:e.productName}),(0,b.jsx)(c.EY,{className:"order-sku",children:e.sku}),(0,b.jsxs)(c.EY,{className:"order-meta",children:["\u6570\u91cf: ",e.count," \u4ef6 | ",e.id]})]})]}),(0,b.jsxs)(c.Ss,{className:"order-footer",children:[(0,b.jsxs)(c.Ss,{className:"order-price-bar",children:[(0,b.jsx)(c.EY,{className:"price-label",children:"\u5b9e\u4ed8\u6b3e"}),(0,b.jsx)(c.EY,{className:"price-value",children:e.price})]}),(0,b.jsxs)(c.Ss,{className:"order-actions",children:["pending"===e.statusCode&&(0,b.jsx)(c.Ss,{className:"btn-primary order-btn",children:(0,b.jsx)(c.EY,{children:"\u7acb\u5373\u4ed8\u6b3e"})}),"paid"===e.statusCode&&(0,b.jsx)(c.Ss,{className:"btn-secondary order-btn",children:(0,b.jsx)(c.EY,{children:"\u50ac\u53d1\u8d27"})}),"shipping"===e.statusCode&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.Ss,{className:"btn-secondary order-btn",onTap:function(e){e.stopPropagation(),o().showToast({title:"\u67e5\u770b\u7269\u6d41",icon:"none"})},children:(0,b.jsx)(c.EY,{children:"\u67e5\u770b\u7269\u6d41"})}),(0,b.jsx)(c.Ss,{className:"btn-primary order-btn",onTap:function(e){e.stopPropagation(),o().showToast({title:"\u786e\u8ba4\u6536\u8d27",icon:"none"})},children:(0,b.jsx)(c.EY,{children:"\u786e\u8ba4\u6536\u8d27"})})]}),"done"===e.statusCode&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.Ss,{className:"btn-secondary order-btn",onTap:function(e){e.stopPropagation(),o().showToast({title:"\u7533\u8bf7\u552e\u540e",icon:"none"})},children:(0,b.jsx)(c.EY,{children:"\u7533\u8bf7\u552e\u540e"})}),(0,b.jsx)(c.Ss,{className:"btn-primary order-btn",onTap:function(e){e.stopPropagation(),o().showToast({title:"\u518d\u6765\u4e00\u5355",icon:"none"})},children:(0,b.jsx)(c.EY,{children:"\u518d\u6765\u4e00\u5355"})})]}),(0,b.jsx)(c.Ss,{className:"btn-secondary order-btn",onTap:function(s){s.stopPropagation(),C(e)},children:(0,b.jsx)(c.EY,{children:"\u8be6\u60c5"})})]})]})]},e.id)}),0===w.length&&(0,b.jsxs)(c.Ss,{className:"empty-state",children:[(0,b.jsx)(c._V,{className:"empty-icon-img",src:(0,d.uq)("/icon/\u5305\u88f9.png"),mode:"aspectFit"}),(0,b.jsx)(c.EY,{className:"empty-text",children:"\u6682\u65e0\u8ba2\u5355"}),(0,b.jsx)(c.EY,{className:"empty-sub",children:"\u53bb\u9996\u9875\u5f00\u59cb\u5b9a\u5236\u5427"}),(0,b.jsx)(c.Ss,{className:"btn-primary",onTap:function(){return o().switchTab({url:"/pages/index/index"})},children:(0,b.jsx)(c.EY,{children:"\u53bb\u5b9a\u5236"})})]})]})]})})]})}var S={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u8ba2\u5355\u5217\u8868"};Page((0,n.createPageConfig)(N,"pages/orders/index",{root:{cn:[]}},S||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(2307)});e.O()}]); \ No newline at end of file diff --git a/dist/pages/product/index.js b/dist/pages/product/index.js index b5c96e8..69f3288 100644 --- a/dist/pages/product/index.js +++ b/dist/pages/product/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[612],{4120:function(s,e,a){var c=a(7842),l=a(5544),r=a(118),n=a(758),i=a.n(n),t=a(6540),d=a(5234),o=a(8594),m=a(9703),h=a(9201),x=a(5414),p=a(9674),j=a(3053),u=a(9513),N=a(4848);function S(){var s=(0,m.wR)(),e=(s.theme,s.resolvedTheme),a=(0,h.c)();(0,x.l)(e);var c=(0,t.useState)(!1),n=(0,l.A)(c,2),S=n[0],g=n[1],f=(0,t.useState)(1),E=(0,l.A)(f,2),Y=E[0],v=E[1],y=i().getCurrentInstance().router,b=y?y.params:void 0,k=b&&b.id?b.id:"",w=(0,d.y9)(k);if(!w)return(0,N.jsxs)(r.Ss,{className:"theme-".concat(e),children:[(0,N.jsx)(p.A,{}),(0,N.jsx)(j.A,{title:"\u5546\u54c1\u8be6\u60c5",targetSelector:".page-header",showBack:!0}),(0,N.jsx)(r.Ss,{className:"product-page",children:(0,N.jsx)(r.Ss,{className:"page-header",style:{marginTop:"".concat(a.statusBarHeight+12,"px")},children:(0,N.jsxs)(r.Ss,{className:"page-header-inner",children:[(0,N.jsx)(r.Ss,{className:"back-btn",style:{position:"fixed",left:"30rpx",top:"".concat(a.menuButtonTop,"px"),zIndex:41},onTap:function(){return i().navigateBack()},children:(0,N.jsx)(r.EY,{className:"back-arrow",children:"\u2190"})}),(0,N.jsx)(r.Ss,{className:"nav-placeholder"}),(0,N.jsx)(r.EY,{className:"nav-title",children:"\u5546\u54c1\u672a\u627e\u5230"}),(0,N.jsx)(r.Ss,{className:"nav-placeholder"})]})})})]});var T=w.specs&&w.specs.length>0?w.specs.find(function(s){return s[0].indexOf("\u5de5\u827a")>=0}):void 0,B=T?T[1]:"\u6fc0\u5149\u5fae\u96d5",A=function(){v(1),g(!0)},q=function(){(0,o.cY)(w,Y),g(!1),i().showToast({title:"\u5df2\u52a0\u5165\u8bbe\u8ba1\u6e05\u5355 x".concat(Y),icon:"success"}),setTimeout(function(){return i().navigateBack()},1200)},P=function(){i().navigateTo({url:"/pages/diy/index?source=product&productId=".concat(w.id,"&quantity=1")})},C=function(s){v(function(e){return Math.max(1,Math.min(99,e+s))})};return(0,N.jsxs)(r.Ss,{className:"theme-".concat(e),children:[(0,N.jsx)(p.A,{}),(0,N.jsx)(j.A,{title:"\u5546\u54c1\u8be6\u60c5",targetSelector:".page-header",showBack:!0}),(0,N.jsxs)(r.Ss,{className:"product-page",children:[(0,N.jsx)(r.Ss,{className:"page-header",style:{marginTop:"".concat(a.statusBarHeight+12,"px")},children:(0,N.jsxs)(r.Ss,{className:"page-header-inner",children:[(0,N.jsx)(r.Ss,{className:"back-btn",style:{position:"fixed",left:"30rpx",top:"".concat(a.menuButtonTop,"px"),zIndex:41},onTap:function(){return i().navigateBack()},children:(0,N.jsx)(r.EY,{className:"back-arrow",children:"\u2190"})}),(0,N.jsx)(r.Ss,{className:"nav-placeholder"}),(0,N.jsx)(r.EY,{className:"nav-title",children:"\u5546\u54c1\u8be6\u60c5"}),(0,N.jsx)(r.Ss,{className:"nav-placeholder"})]})}),(0,N.jsx)(r.Ss,{className:"hero-section",children:(0,N.jsx)(r.RC,{className:"hero-swiper",circular:!0,autoplay:!0,interval:3e3,duration:500,indicatorDots:!0,indicatorColor:"var(--border-strong)",indicatorActiveColor:"var(--accent-primary)",children:w.images&&w.images.length>0?w.images.map(function(s,e){return(0,N.jsx)(r.wu,{children:(0,N.jsx)(r.Ss,{className:"hero-block",children:(0,N.jsx)(r._V,{className:"hero-image",src:s,mode:"aspectFill"})})},e)}):(0,N.jsx)(r.wu,{children:(0,N.jsx)(r.Ss,{className:"hero-block hero-block-fallback",children:(0,N.jsx)(r._V,{className:"hero-fallback-icon",src:(0,d.QE)(w),mode:"aspectFit"})})})})}),(0,N.jsx)(r.Ss,{className:"detail-card surface-card",children:(0,N.jsxs)(r.Ss,{className:"price-line",children:[(0,N.jsxs)(r.Ss,{className:"price-left",children:[(0,N.jsx)(r.EY,{className:"detail-title",children:w.name}),(0,N.jsx)(r.EY,{className:"detail-desc",children:w.desc})]}),(0,N.jsxs)(r.Ss,{className:"price-right",children:[(0,N.jsxs)(r.EY,{className:"price",children:["\xa5",w.price]}),w.originalPrice&&w.originalPrice>w.price&&(0,N.jsxs)(r.EY,{className:"price-old",children:["\xa5",w.originalPrice]})]})]})}),(0,N.jsxs)(r.Ss,{className:"detail-card surface-card",children:[(0,N.jsxs)(r.Ss,{className:"spec-row",children:[(0,N.jsx)(r.EY,{className:"spec-key",children:"\u5355\u4ef7"}),(0,N.jsxs)(r.EY,{className:"spec-value",children:["\xa5",w.price]})]}),(0,N.jsxs)(r.Ss,{className:"spec-row",children:[(0,N.jsx)(r.EY,{className:"spec-key",children:"\u5de5\u671f"}),(0,N.jsx)(r.EY,{className:"spec-value",children:w.leadTime})]}),(0,N.jsxs)(r.Ss,{className:"spec-row",children:[(0,N.jsx)(r.EY,{className:"spec-key",children:"\u5c3a\u5bf8"}),(0,N.jsxs)(r.EY,{className:"spec-value",children:[w.mask.width," \xd7 ",w.mask.height," px"]})]}),(0,N.jsxs)(r.Ss,{className:"spec-row",children:[(0,N.jsx)(r.EY,{className:"spec-key",children:"\u5b9a\u5236\u5de5\u827a"}),(0,N.jsx)(r.EY,{className:"spec-value",children:B})]})]}),(0,N.jsxs)(r.Ss,{className:"detail-card surface-card",children:[(0,N.jsx)(r.EY,{className:"section-title",children:"\u5546\u54c1\u4ecb\u7ecd"}),(0,N.jsx)(r.EY,{className:"detail-text",children:w.description})]}),(0,N.jsxs)(u.A,{children:[(0,N.jsxs)(r.Ss,{className:"price-summary",children:[(0,N.jsx)(r.EY,{className:"summary-label",children:"\u8d77\u4ef7"}),(0,N.jsxs)(r.EY,{className:"summary-price",children:["\xa5",w.price]})]}),(0,N.jsx)(r.Ss,{className:"btn-secondary",onTap:A,children:(0,N.jsx)(r.EY,{children:"\u52a0\u5165\u8bbe\u8ba1\u6e05\u5355"})}),(0,N.jsx)(r.Ss,{className:"btn-primary",onTap:P,children:(0,N.jsx)(r.EY,{children:"\u7acb\u5373\u4e0b\u5355"})})]}),S&&(0,N.jsx)(r.Ss,{className:"modal-overlay",children:(0,N.jsxs)(r.Ss,{className:"modal-card surface-card",children:[(0,N.jsx)(r.EY,{className:"modal-title",children:"\u52a0\u5165\u8bbe\u8ba1\u6e05\u5355"}),(0,N.jsxs)(r.Ss,{className:"modal-product",children:[(0,N.jsx)(r._V,{className:"modal-icon-img",src:(0,d.QE)(w),mode:"aspectFit"}),(0,N.jsx)(r.EY,{className:"modal-name",children:w.name})]}),(0,N.jsxs)(r.Ss,{className:"quantity-row",children:[(0,N.jsx)(r.EY,{className:"qty-label",children:"\u6570\u91cf"}),(0,N.jsxs)(r.Ss,{className:"qty-control",children:[(0,N.jsx)(r.Ss,{className:"qty-btn",onTap:function(){return C(-1)},children:"\uff0d"}),(0,N.jsx)(r.EY,{className:"qty-num",children:Y}),(0,N.jsx)(r.Ss,{className:"qty-btn",onTap:function(){return C(1)},children:"\uff0b"})]})]}),(0,N.jsxs)(r.Ss,{className:"modal-total",children:[(0,N.jsx)(r.EY,{className:"total-label",children:"\u5c0f\u8ba1"}),(0,N.jsxs)(r.EY,{className:"total-price",children:["\xa5",(w.price*Y).toFixed(2)]})]}),(0,N.jsxs)(r.Ss,{className:"modal-actions",children:[(0,N.jsx)(r.Ss,{className:"btn-secondary",onTap:function(){return g(!1)},children:(0,N.jsx)(r.EY,{children:"\u53d6\u6d88"})}),(0,N.jsx)(r.Ss,{className:"btn-primary",onTap:q,children:(0,N.jsx)(r.EY,{children:"\u786e\u5b9a"})})]})]})})]})]})}var g={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u5546\u54c1\u8be6\u60c5"};Page((0,c.createPageConfig)(S,"pages/product/index",{root:{cn:[]}},g||{}))}},function(s){var e=function(e){return s(s.s=e)};s.O(0,[907,96,76],function(){return e(4120)});s.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[612],{4120:function(s,e,a){var c=a(7842),l=a(5544),r=a(118),n=a(758),i=a.n(n),t=a(6540),d=a(5234),o=a(1457),m=a(9703),h=a(9201),x=a(5414),p=a(9674),j=a(3053),u=a(9513),N=a(4848);function S(){var s=(0,m.wR)(),e=(s.theme,s.resolvedTheme),a=(0,h.c)();(0,x.l)(e);var c=(0,t.useState)(!1),n=(0,l.A)(c,2),S=n[0],g=n[1],f=(0,t.useState)(1),E=(0,l.A)(f,2),Y=E[0],v=E[1],y=i().getCurrentInstance().router,b=y?y.params:void 0,k=b&&b.id?b.id:"",w=(0,d.y9)(k);if(!w)return(0,N.jsxs)(r.Ss,{className:"theme-".concat(e),children:[(0,N.jsx)(p.A,{}),(0,N.jsx)(j.A,{title:"\u5546\u54c1\u8be6\u60c5",targetSelector:".page-header",showBack:!0}),(0,N.jsx)(r.Ss,{className:"product-page",children:(0,N.jsx)(r.Ss,{className:"page-header",style:{marginTop:"".concat(a.statusBarHeight+12,"px")},children:(0,N.jsxs)(r.Ss,{className:"page-header-inner",children:[(0,N.jsx)(r.Ss,{className:"back-btn",style:{position:"fixed",left:"30rpx",top:"".concat(a.menuButtonTop,"px"),zIndex:41},onTap:function(){return i().navigateBack()},children:(0,N.jsx)(r.EY,{className:"back-arrow",children:"\u2190"})}),(0,N.jsx)(r.Ss,{className:"nav-placeholder"}),(0,N.jsx)(r.EY,{className:"nav-title",children:"\u5546\u54c1\u672a\u627e\u5230"}),(0,N.jsx)(r.Ss,{className:"nav-placeholder"})]})})})]});var T=w.specs&&w.specs.length>0?w.specs.find(function(s){return s[0].indexOf("\u5de5\u827a")>=0}):void 0,B=T?T[1]:"\u6fc0\u5149\u5fae\u96d5",A=function(){v(1),g(!0)},q=function(){(0,o.cY)(w,Y),g(!1),i().showToast({title:"\u5df2\u52a0\u5165\u8bbe\u8ba1\u6e05\u5355 x".concat(Y),icon:"success"}),setTimeout(function(){return i().navigateBack()},1200)},P=function(){i().navigateTo({url:"/pages/diy/index?source=product&productId=".concat(w.id,"&quantity=1")})},C=function(s){v(function(e){return Math.max(1,Math.min(99,e+s))})};return(0,N.jsxs)(r.Ss,{className:"theme-".concat(e),children:[(0,N.jsx)(p.A,{}),(0,N.jsx)(j.A,{title:"\u5546\u54c1\u8be6\u60c5",targetSelector:".page-header",showBack:!0}),(0,N.jsxs)(r.Ss,{className:"product-page",children:[(0,N.jsx)(r.Ss,{className:"page-header",style:{marginTop:"".concat(a.statusBarHeight+12,"px")},children:(0,N.jsxs)(r.Ss,{className:"page-header-inner",children:[(0,N.jsx)(r.Ss,{className:"back-btn",style:{position:"fixed",left:"30rpx",top:"".concat(a.menuButtonTop,"px"),zIndex:41},onTap:function(){return i().navigateBack()},children:(0,N.jsx)(r.EY,{className:"back-arrow",children:"\u2190"})}),(0,N.jsx)(r.Ss,{className:"nav-placeholder"}),(0,N.jsx)(r.EY,{className:"nav-title",children:"\u5546\u54c1\u8be6\u60c5"}),(0,N.jsx)(r.Ss,{className:"nav-placeholder"})]})}),(0,N.jsx)(r.Ss,{className:"hero-section",children:(0,N.jsx)(r.RC,{className:"hero-swiper",circular:!0,autoplay:!0,interval:3e3,duration:500,indicatorDots:!0,indicatorColor:"var(--border-strong)",indicatorActiveColor:"var(--accent-primary)",children:w.images&&w.images.length>0?w.images.map(function(s,e){return(0,N.jsx)(r.wu,{children:(0,N.jsx)(r.Ss,{className:"hero-block",children:(0,N.jsx)(r._V,{className:"hero-image",src:s,mode:"aspectFill"})})},e)}):(0,N.jsx)(r.wu,{children:(0,N.jsx)(r.Ss,{className:"hero-block hero-block-fallback",children:(0,N.jsx)(r._V,{className:"hero-fallback-icon",src:(0,d.QE)(w),mode:"aspectFit"})})})})}),(0,N.jsx)(r.Ss,{className:"detail-card surface-card",children:(0,N.jsxs)(r.Ss,{className:"price-line",children:[(0,N.jsxs)(r.Ss,{className:"price-left",children:[(0,N.jsx)(r.EY,{className:"detail-title",children:w.name}),(0,N.jsx)(r.EY,{className:"detail-desc",children:w.desc})]}),(0,N.jsxs)(r.Ss,{className:"price-right",children:[(0,N.jsxs)(r.EY,{className:"price",children:["\xa5",w.price]}),w.originalPrice&&w.originalPrice>w.price&&(0,N.jsxs)(r.EY,{className:"price-old",children:["\xa5",w.originalPrice]})]})]})}),(0,N.jsxs)(r.Ss,{className:"detail-card surface-card",children:[(0,N.jsxs)(r.Ss,{className:"spec-row",children:[(0,N.jsx)(r.EY,{className:"spec-key",children:"\u5355\u4ef7"}),(0,N.jsxs)(r.EY,{className:"spec-value",children:["\xa5",w.price]})]}),(0,N.jsxs)(r.Ss,{className:"spec-row",children:[(0,N.jsx)(r.EY,{className:"spec-key",children:"\u5de5\u671f"}),(0,N.jsx)(r.EY,{className:"spec-value",children:w.leadTime})]}),(0,N.jsxs)(r.Ss,{className:"spec-row",children:[(0,N.jsx)(r.EY,{className:"spec-key",children:"\u5c3a\u5bf8"}),(0,N.jsxs)(r.EY,{className:"spec-value",children:[w.mask.width," \xd7 ",w.mask.height," px"]})]}),(0,N.jsxs)(r.Ss,{className:"spec-row",children:[(0,N.jsx)(r.EY,{className:"spec-key",children:"\u5b9a\u5236\u5de5\u827a"}),(0,N.jsx)(r.EY,{className:"spec-value",children:B})]})]}),(0,N.jsxs)(r.Ss,{className:"detail-card surface-card",children:[(0,N.jsx)(r.EY,{className:"section-title",children:"\u5546\u54c1\u4ecb\u7ecd"}),(0,N.jsx)(r.EY,{className:"detail-text",children:w.description})]}),(0,N.jsxs)(u.A,{children:[(0,N.jsxs)(r.Ss,{className:"price-summary",children:[(0,N.jsx)(r.EY,{className:"summary-label",children:"\u8d77\u4ef7"}),(0,N.jsxs)(r.EY,{className:"summary-price",children:["\xa5",w.price]})]}),(0,N.jsx)(r.Ss,{className:"btn-secondary",onTap:A,children:(0,N.jsx)(r.EY,{children:"\u52a0\u5165\u8bbe\u8ba1\u6e05\u5355"})}),(0,N.jsx)(r.Ss,{className:"btn-primary",onTap:P,children:(0,N.jsx)(r.EY,{children:"\u7acb\u5373\u4e0b\u5355"})})]}),S&&(0,N.jsx)(r.Ss,{className:"modal-overlay",children:(0,N.jsxs)(r.Ss,{className:"modal-card surface-card",children:[(0,N.jsx)(r.EY,{className:"modal-title",children:"\u52a0\u5165\u8bbe\u8ba1\u6e05\u5355"}),(0,N.jsxs)(r.Ss,{className:"modal-product",children:[(0,N.jsx)(r._V,{className:"modal-icon-img",src:(0,d.QE)(w),mode:"aspectFit"}),(0,N.jsx)(r.EY,{className:"modal-name",children:w.name})]}),(0,N.jsxs)(r.Ss,{className:"quantity-row",children:[(0,N.jsx)(r.EY,{className:"qty-label",children:"\u6570\u91cf"}),(0,N.jsxs)(r.Ss,{className:"qty-control",children:[(0,N.jsx)(r.Ss,{className:"qty-btn",onTap:function(){return C(-1)},children:"\uff0d"}),(0,N.jsx)(r.EY,{className:"qty-num",children:Y}),(0,N.jsx)(r.Ss,{className:"qty-btn",onTap:function(){return C(1)},children:"\uff0b"})]})]}),(0,N.jsxs)(r.Ss,{className:"modal-total",children:[(0,N.jsx)(r.EY,{className:"total-label",children:"\u5c0f\u8ba1"}),(0,N.jsxs)(r.EY,{className:"total-price",children:["\xa5",(w.price*Y).toFixed(2)]})]}),(0,N.jsxs)(r.Ss,{className:"modal-actions",children:[(0,N.jsx)(r.Ss,{className:"btn-secondary",onTap:function(){return g(!1)},children:(0,N.jsx)(r.EY,{children:"\u53d6\u6d88"})}),(0,N.jsx)(r.Ss,{className:"btn-primary",onTap:q,children:(0,N.jsx)(r.EY,{children:"\u786e\u5b9a"})})]})]})})]})]})}var g={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u5546\u54c1\u8be6\u60c5"};Page((0,c.createPageConfig)(S,"pages/product/index",{root:{cn:[]}},g||{}))}},function(s){var e=function(e){return s(s.s=e)};s.O(0,[907,96,76],function(){return e(4120)});s.O()}]); \ No newline at end of file diff --git a/dist/pages/profile/index.js b/dist/pages/profile/index.js index 900591d..1007db1 100644 --- a/dist/pages/profile/index.js +++ b/dist/pages/profile/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[481],{2579:function(e,s,a){var n=a(7842),i=a(1212),t=a(467),r=a(5544),c=a(118),l=a(758),o=a.n(l),u=a(6540),d=a(8594),p=a(9703),m=a(9201),g=a(5414),h=a(9674),x=a(3053),f=a(6295),j=a(3246),v=a(8199),N=a(4848),S={"\u6211\u7684\u8bbe\u8ba1":(0,v.uq)("/icon/\u8c03\u8272\u76d8.png"),"\u8bcd\u4e91\u751f\u6210":(0,v.uq)("/icon/\u8bcd\u4e91\u751f\u6210.png"),"\u6536\u8d27\u5730\u5740":(0,v.uq)("/icon/\u5730\u5740.png"),"\u8054\u7cfb\u5ba2\u670d":(0,v.uq)("/icon/\u7535\u8bdd.png"),"\u4f7f\u7528\u5e2e\u52a9":(0,v.uq)("/icon/\u4f7f\u7528\u5e2e\u52a9.png"),"\u8bbe\u7f6e":(0,v.uq)("/icon/\u8bbe\u7f6e.png")},b=[{key:"toDesign",label:"\u5f85\u8bbe\u8ba1",icon:(0,v.uq)("/icon/\u4e09\u89d2\u5c3a.png")},{key:"pending",label:"\u5f85\u4ed8\u6b3e",icon:(0,v.uq)("/icon/\u56db\u89d2\u661f.svg")},{key:"paid",label:"\u5f85\u53d1\u8d27",icon:(0,v.uq)("/icon/\u5305\u88f9.png")},{key:"shipping",label:"\u5f85\u6536\u8d27",icon:(0,v.uq)("/icon/\u676f\u5b50.png")},{key:"done",label:"\u5df2\u5b8c\u6210",icon:(0,v.uq)("/icon/\u4e66\u672c.png")}],k=[{label:"\u6211\u7684\u8bbe\u8ba1",path:"/pages/designList/index"},{label:"\u8bcd\u4e91\u751f\u6210",path:"/pages/wordcloud/index"},{label:"\u6536\u8d27\u5730\u5740",path:"/pages/address/index"},{label:"\u8054\u7cfb\u5ba2\u670d",path:"/pages/service/index"},{label:"\u4f7f\u7528\u5e2e\u52a9",path:"/pages/agreement/index"},{label:"\u8bbe\u7f6e",path:"/pages/settings/index"}],w=function(){};function T(){var e=(0,p.wR)(),s=(e.theme,e.resolvedTheme),a=(0,m.c)();(0,g.l)(s);var n=(0,u.useState)(!1),T=(0,r.A)(n,2),y=T[0],A=T[1],E=(0,u.useState)({nickName:"",avatarUrl:""}),Y=(0,r.A)(E,2),q=Y[0],U=Y[1],F=(0,u.useState)(!1),_=(0,r.A)(F,2),D=_[0],P=_[1],V=(0,u.useState)("entry"),L=(0,r.A)(V,2),C=L[0],J=L[1],O=(0,u.useState)(""),B=(0,r.A)(O,2),H=B[0],I=B[1],M=(0,u.useState)(""),R=(0,r.A)(M,2),W=R[0],$=R[1],z=(0,u.useState)(!1),G=(0,r.A)(z,2),K=G[0],Q=G[1],X=(0,u.useState)({toDesign:0,pending:0,paid:0,shipping:0,done:0}),Z=(0,r.A)(X,2),ee=Z[0],se=Z[1],ae=function(){var e=(0,d.n7)(),s=(0,d.p_)();se({toDesign:s.filter(function(e){return"undesigned"===e.status||"designing"===e.status}).length,pending:e.filter(function(e){return"pending"===e.statusCode}).length,paid:e.filter(function(e){return"paid"===e.statusCode}).length,shipping:e.filter(function(e){return"shipping"===e.statusCode}).length,done:e.filter(function(e){return"done"===e.statusCode}).length})},ne=function(){var e=(0,d.ug)();e&&e.openid?(A(!0),U({nickName:e.nickName||"",avatarUrl:e.avatarUrl||""})):(A(!1),U({nickName:"",avatarUrl:""})),ae()};(0,l.useDidShow)(function(){ne()});var ie=function(){J("entry"),I(""),$(""),P(!0)},te=function(){return P(!1)},re=function(e){Q(!1),(0,j.Sy)(),o().showToast({title:e,icon:"none"})},ce=function(e,s,a,n){var i={openid:s,nickName:a||"\u5fae\u4fe1\u7528\u6237",avatarUrl:n||"",accessToken:e,loginAt:Date.now()};(0,d.iA)(i),U({nickName:i.nickName,avatarUrl:i.avatarUrl}),A(!0),P(!1),J("entry"),Q(!1),(0,j.Sy)(),o().showToast({title:"\u767b\u5f55\u6210\u529f",icon:"success"})},le=function(){var e=(0,t.A)((0,i.A)().m(function e(){var s,a,n,t,r,c;return(0,i.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!K){e.n=1;break}return e.a(2);case 1:return console.log("[Profile] \u767b\u5f55\u6309\u94ae\u88ab\u70b9\u51fb\uff0c\u5f00\u59cb\u767b\u5f55\u6d41\u7a0b"),Q(!0),o().showLoading({title:"\u767b\u5f55\u4e2d",mask:!0}),e.p=2,e.n=3,o().login();case 3:return s=e.v,console.log("[Profile] wx.login \u6210\u529f\uff0ccode=",s.code),e.n=4,(0,f.iD)(s.code);case 4:if(a=e.v,console.log("[Profile] \u540e\u7aef /auth/login \u8fd4\u56de:",JSON.stringify(a)),a&&a.accessToken){e.n=5;break}return re("\u767b\u5f55\u5931\u8d25\uff0c\u672a\u62ff\u5230 token"),e.a(2);case 5:return n="",e.p=6,e.n=7,(0,f.jp)();case 7:t=e.v,n=t&&t.openid||"",e.n=9;break;case 8:e.p=8,e.v,n="";case 9:if(n){e.n=10;break}return re("\u767b\u5f55\u5f02\u5e38\uff0c\u8bf7\u91cd\u8bd5"),e.a(2);case 10:if(r=a.isNewUser||!a.nickname||!a.avatar,!r){e.n=11;break}return I(a.nickname||""),$(a.avatar||""),(0,j.Sy)(),Q(!1),J("fill"),o().showToast({title:"\u8bf7\u8bbe\u7f6e\u5934\u50cf\u548c\u6635\u79f0",icon:"none"}),e.a(2);case 11:ce(a.accessToken,n,a.nickname||"",a.avatar||""),e.n=13;break;case 12:e.p=12,c=e.v,console.error("[Profile] \u767b\u5f55\u6d41\u7a0b\u51fa\u9519:",c),re(c&&c.message||"\u540e\u7aef\u8fde\u63a5\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u7f51\u7edc");case 13:return e.a(2)}},e,null,[[6,8],[2,12]])}));return function(){return e.apply(this,arguments)}}(),oe=function(){var e=(0,t.A)((0,i.A)().m(function e(){var s,a,n,t;return(0,i.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!K){e.n=1;break}return e.a(2);case 1:return Q(!0),o().showLoading({title:"\u4fdd\u5b58\u4e2d",mask:!0}),e.p=2,e.n=3,(0,f.r7)({nickname:H||void 0,avatar:W||void 0});case 3:return s="",e.p=4,e.n=5,(0,f.jp)();case 5:a=e.v,s=a&&a.openid||"",e.n=7;break;case 6:e.p=6,e.v,s="";case 7:if(s){e.n=8;break}return re("\u4fdd\u5b58\u5f02\u5e38\uff0c\u8bf7\u91cd\u8bd5"),e.a(2);case 8:n=(0,d.ug)(),ce(n&&n.accessToken||(0,f.gf)(),s,H,W),e.n=10;break;case 9:e.p=9,t=e.v,console.error("[Profile] \u4fdd\u5b58\u8d44\u6599\u51fa\u9519:",t),re(t&&t.message||"\u4fdd\u5b58\u5931\u8d25");case 10:return e.a(2)}},e,null,[[4,6],[2,9]])}));return function(){return e.apply(this,arguments)}}(),ue=function(e){$(e.detail.avatarUrl||"")},de=function(e){switch(o().hideToast(),e){case"toDesign":o().setStorageSync("designList:filter","toDesign"),o().switchTab({url:"/pages/designList/index"});break;case"pending":o().setStorageSync("orders:filter","pending"),o().switchTab({url:"/pages/orders/index"});break;case"paid":o().setStorageSync("orders:filter","paid"),o().switchTab({url:"/pages/orders/index"});break;case"shipping":o().setStorageSync("orders:filter","shipping"),o().switchTab({url:"/pages/orders/index"});break;case"done":o().setStorageSync("orders:filter","done"),o().switchTab({url:"/pages/orders/index"});break}},pe=function(e,s){if(o().hideToast(),!y&&(e.includes("designList")||e.includes("orders")))return o().showToast({title:"\u8bf7\u5148\u767b\u5f55",icon:"none"}),void P(!0);"\u8054\u7cfb\u5ba2\u670d"!==s?e.startsWith("/pages/")&&(e.includes("designList")||e.includes("orders")?o().switchTab({url:e,fail:function(e){console.error("switchTab fail",e),o().showToast({title:"\u8df3\u8f6c\u5931\u8d25",icon:"none"})}}):o().navigateTo({url:e,fail:function(e){console.error("navigateTo fail",e),o().showToast({title:"\u8df3\u8f6c\u5931\u8d25",icon:"none"})}})):o().navigateTo({url:"/pages/service/index",fail:function(e){console.error("navigateTo service fail",e),o().showToast({title:"\u8df3\u8f6c\u5931\u8d25",icon:"none"})}})};return(0,N.jsxs)(c.Ss,{className:"theme-".concat(s),style:{minHeight:"100vh"},children:[(0,N.jsx)(h.A,{}),(0,N.jsx)(x.A,{title:"\u6211\u7684",targetSelector:".profile-header"}),(0,N.jsxs)(c.Ss,{className:"profile-page",children:[(0,N.jsxs)(c.Ss,{className:"profile-header surface-card",style:{marginTop:"".concat(a.statusBarHeight+12,"px")},children:[(0,N.jsxs)(c.Ss,{className:"user-info",children:[y&&q.avatarUrl?(0,N.jsx)(c._V,{className:"avatar",src:q.avatarUrl,mode:"aspectFill"}):(0,N.jsx)(c.Ss,{className:"avatar-placeholder",onTap:ie,children:(0,N.jsx)(c._V,{className:"avatar-icon-img",src:(0,v.uq)("/icon/\u4e2a\u4eba.png"),mode:"aspectFit"})}),(0,N.jsxs)(c.Ss,{className:"user-meta",children:[(0,N.jsx)(c.EY,{className:"user-name",onTap:y?w:ie,children:y?q.nickName:"\u70b9\u51fb\u767b\u5f55"}),(0,N.jsx)(c.EY,{className:"user-level",children:y?"\u667a\u7ed8\u5fae\u523b\u4f1a\u5458":"\u6388\u6743\u5fae\u4fe1\uff0c\u5f00\u542f\u4e13\u5c5e\u5b9a\u5236"})]})]}),(0,N.jsxs)(c.Ss,{className:"status-grid",children:[(0,N.jsx)(c.Ss,{className:"status-row row2",children:b.slice(0,2).map(function(e){return(0,N.jsxs)(c.Ss,{className:"status-group",children:[(0,N.jsxs)(c.Ss,{className:"status-item",onTap:function(){return de(e.key)},children:[(0,N.jsx)(c._V,{className:"status-icon-img",src:e.icon,mode:"aspectFit"}),(0,N.jsx)(c.EY,{className:"status-num",children:ee[e.key]}),(0,N.jsx)(c.EY,{className:"status-label",children:e.label})]}),(0,N.jsx)(c.Ss,{className:"status-divider"})]},e.key)})}),(0,N.jsx)(c.Ss,{className:"status-divider-h"}),(0,N.jsx)(c.Ss,{className:"status-row row3",children:b.slice(2).map(function(e,s){return(0,N.jsxs)(c.Ss,{className:"status-group",children:[(0,N.jsxs)(c.Ss,{className:"status-item",onTap:function(){return de(e.key)},children:[(0,N.jsx)(c._V,{className:"status-icon-img",src:e.icon,mode:"aspectFit"}),(0,N.jsx)(c.EY,{className:"status-num",children:ee[e.key]}),(0,N.jsx)(c.EY,{className:"status-label",children:e.label})]}),s<2&&(0,N.jsx)(c.Ss,{className:"status-divider"})]},e.key)})})]})]}),(0,N.jsxs)(c.Ss,{className:"mt-20",children:[(0,N.jsx)(c.EY,{className:"section-title",children:"\u5e38\u7528\u529f\u80fd"}),(0,N.jsx)(c.Ss,{className:"menu-grid",children:k.map(function(e,s){return(0,N.jsxs)(c.Ss,{className:"menu-card surface-card",onTap:function(){return pe(e.path,e.label)},children:[(0,N.jsx)(c._V,{className:"menu-icon-img",src:S[e.label],mode:"aspectFit"}),(0,N.jsx)(c.EY,{className:"menu-label",children:e.label})]},s)})})]}),(0,N.jsx)(c.Ss,{className:"enterprise-section surface-card mt-20",children:(0,N.jsxs)(c.Ss,{className:"flex-between",children:[(0,N.jsxs)(c.Ss,{className:"flex-column",children:[(0,N.jsxs)(c.Ss,{className:"flex-center",children:[(0,N.jsx)(c._V,{className:"enterprise-icon",src:(0,v.uq)("/icon/\u4f01\u4e1a\u6279\u91cf\u5b9a\u5236.png"),mode:"aspectFit"}),(0,N.jsx)(c.EY,{className:"enterprise-title",children:"\u4f01\u4e1a\u6279\u91cf\u5b9a\u5236"})]}),(0,N.jsx)(c.EY,{className:"enterprise-desc",children:"\u5e74\u4f1a\u793c\u54c1\u3001\u5165\u804c\u7eaa\u5ff5\u3001\u56e2\u5efa\u4f34\u624b\u793c"})]}),(0,N.jsx)(c.Ss,{className:"btn-primary enterprise-btn",children:(0,N.jsx)(c.EY,{children:"\u7acb\u5373\u54a8\u8be2"})})]})}),D&&(0,N.jsx)(c.Ss,{className:"modal-overlay",children:(0,N.jsxs)(c.Ss,{className:"login-card surface-card",children:[(0,N.jsx)(c.EY,{className:"login-title",children:"\u767b\u5f55\u667a\u7ed8\u5fae\u523b"}),"entry"===C?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(c.EY,{className:"login-desc",children:"\u767b\u5f55\u540e\u540c\u6b65\u60a8\u7684\u8bbe\u8ba1\u6e05\u5355\u548c\u8ba2\u5355"}),(0,N.jsxs)(c.Ss,{className:"login-actions",children:[(0,N.jsx)(c.Ss,{className:"btn-secondary",onTap:te,children:(0,N.jsx)(c.EY,{children:"\u53d6\u6d88"})}),(0,N.jsx)(c.Ss,{className:"btn-primary",onTap:le,children:(0,N.jsx)(c.EY,{children:"\u5fae\u4fe1\u767b\u5f55"})})]})]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(c.EY,{className:"login-desc",children:"\u8bf7\u8bbe\u7f6e\u60a8\u7684\u5934\u50cf\u548c\u6635\u79f0"}),(0,N.jsx)(c.$n,{className:"avatar-btn",openType:"chooseAvatar",onChooseAvatar:ue,children:W?(0,N.jsx)(c._V,{className:"avatar-img",src:W,mode:"aspectFill"}):(0,N.jsx)(c._V,{className:"avatar-placeholder-img",src:(0,v.uq)("/icon/\u4e2a\u4eba.png"),mode:"aspectFit"})}),(0,N.jsx)(c.pd,{type:"nickname",className:"nickname-input",placeholder:"\u8bf7\u8f93\u5165\u6635\u79f0",value:H,onInput:function(e){return I(e.detail.value)}}),(0,N.jsxs)(c.Ss,{className:"login-actions",children:[(0,N.jsx)(c.Ss,{className:"btn-secondary",onTap:te,children:(0,N.jsx)(c.EY,{children:"\u53d6\u6d88"})}),(0,N.jsx)(c.Ss,{className:"btn-primary",onTap:oe,children:(0,N.jsx)(c.EY,{children:"\u4fdd\u5b58"})})]})]})]})})]})]})}var y={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u4e2a\u4eba\u4e2d\u5fc3"};Page((0,n.createPageConfig)(T,"pages/profile/index",{root:{cn:[]}},y||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(2579)});e.O()}]); \ No newline at end of file +"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[481],{2579:function(e,s,a){var n=a(7842),i=a(1212),t=a(467),r=a(5544),c=a(118),l=a(758),o=a.n(l),u=a(6540),d=a(1457),p=a(9703),m=a(9201),g=a(5414),h=a(9674),x=a(3053),f=a(4093),j=a(3246),v=a(8199),N=a(4848),S={"\u6211\u7684\u8bbe\u8ba1":(0,v.uq)("/icon/\u8c03\u8272\u76d8.png"),"\u8bcd\u4e91\u751f\u6210":(0,v.uq)("/icon/\u8bcd\u4e91\u751f\u6210.png"),"\u6536\u8d27\u5730\u5740":(0,v.uq)("/icon/\u5730\u5740.png"),"\u8054\u7cfb\u5ba2\u670d":(0,v.uq)("/icon/\u7535\u8bdd.png"),"\u4f7f\u7528\u5e2e\u52a9":(0,v.uq)("/icon/\u4f7f\u7528\u5e2e\u52a9.png"),"\u8bbe\u7f6e":(0,v.uq)("/icon/\u8bbe\u7f6e.png")},b=[{key:"toDesign",label:"\u5f85\u8bbe\u8ba1",icon:(0,v.uq)("/icon/\u4e09\u89d2\u5c3a.png")},{key:"pending",label:"\u5f85\u4ed8\u6b3e",icon:(0,v.uq)("/icon/\u56db\u89d2\u661f.svg")},{key:"paid",label:"\u5f85\u53d1\u8d27",icon:(0,v.uq)("/icon/\u5305\u88f9.png")},{key:"shipping",label:"\u5f85\u6536\u8d27",icon:(0,v.uq)("/icon/\u676f\u5b50.png")},{key:"done",label:"\u5df2\u5b8c\u6210",icon:(0,v.uq)("/icon/\u4e66\u672c.png")}],k=[{label:"\u6211\u7684\u8bbe\u8ba1",path:"/pages/designList/index"},{label:"\u8bcd\u4e91\u751f\u6210",path:"/pages/wordcloud/index"},{label:"\u6536\u8d27\u5730\u5740",path:"/pages/address/index"},{label:"\u8054\u7cfb\u5ba2\u670d",path:"/pages/service/index"},{label:"\u4f7f\u7528\u5e2e\u52a9",path:"/pages/agreement/index"},{label:"\u8bbe\u7f6e",path:"/pages/settings/index"}],w=function(){};function T(){var e=(0,p.wR)(),s=(e.theme,e.resolvedTheme),a=(0,m.c)();(0,g.l)(s);var n=(0,u.useState)(!1),T=(0,r.A)(n,2),y=T[0],A=T[1],E=(0,u.useState)({nickName:"",avatarUrl:""}),Y=(0,r.A)(E,2),q=Y[0],U=Y[1],F=(0,u.useState)(!1),_=(0,r.A)(F,2),D=_[0],P=_[1],V=(0,u.useState)("entry"),L=(0,r.A)(V,2),C=L[0],J=L[1],O=(0,u.useState)(""),B=(0,r.A)(O,2),H=B[0],I=B[1],M=(0,u.useState)(""),R=(0,r.A)(M,2),W=R[0],$=R[1],z=(0,u.useState)(!1),G=(0,r.A)(z,2),K=G[0],Q=G[1],X=(0,u.useState)({toDesign:0,pending:0,paid:0,shipping:0,done:0}),Z=(0,r.A)(X,2),ee=Z[0],se=Z[1],ae=function(){var e=(0,d.n7)(),s=(0,d.p_)();se({toDesign:s.filter(function(e){return"undesigned"===e.status||"designing"===e.status}).length,pending:e.filter(function(e){return"pending"===e.statusCode}).length,paid:e.filter(function(e){return"paid"===e.statusCode}).length,shipping:e.filter(function(e){return"shipping"===e.statusCode}).length,done:e.filter(function(e){return"done"===e.statusCode}).length})},ne=function(){var e=(0,d.ug)();e&&e.openid?(A(!0),U({nickName:e.nickName||"",avatarUrl:e.avatarUrl||""})):(A(!1),U({nickName:"",avatarUrl:""})),ae()};(0,l.useDidShow)(function(){ne()});var ie=function(){J("entry"),I(""),$(""),P(!0)},te=function(){return P(!1)},re=function(e){Q(!1),(0,j.Sy)(),o().showToast({title:e,icon:"none"})},ce=function(e,s,a,n){var i={openid:s,nickName:a||"\u5fae\u4fe1\u7528\u6237",avatarUrl:n||"",accessToken:e,loginAt:Date.now()};(0,d.iA)(i),U({nickName:i.nickName,avatarUrl:i.avatarUrl}),A(!0),P(!1),J("entry"),Q(!1),(0,j.Sy)(),o().showToast({title:"\u767b\u5f55\u6210\u529f",icon:"success"})},le=function(){var e=(0,t.A)((0,i.A)().m(function e(){var s,a,n,t,r,c;return(0,i.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!K){e.n=1;break}return e.a(2);case 1:return console.log("[Profile] \u767b\u5f55\u6309\u94ae\u88ab\u70b9\u51fb\uff0c\u5f00\u59cb\u767b\u5f55\u6d41\u7a0b"),Q(!0),o().showLoading({title:"\u767b\u5f55\u4e2d",mask:!0}),e.p=2,e.n=3,o().login();case 3:return s=e.v,console.log("[Profile] wx.login \u6210\u529f\uff0ccode=",s.code),e.n=4,(0,f.iD)(s.code);case 4:if(a=e.v,console.log("[Profile] \u540e\u7aef /auth/login \u8fd4\u56de:",JSON.stringify(a)),a&&a.accessToken){e.n=5;break}return re("\u767b\u5f55\u5931\u8d25\uff0c\u672a\u62ff\u5230 token"),e.a(2);case 5:return n="",e.p=6,e.n=7,(0,f.jp)();case 7:t=e.v,n=t&&t.openid||"",e.n=9;break;case 8:e.p=8,e.v,n="";case 9:if(n){e.n=10;break}return re("\u767b\u5f55\u5f02\u5e38\uff0c\u8bf7\u91cd\u8bd5"),e.a(2);case 10:if(r=a.isNewUser||!a.nickname||!a.avatar,!r){e.n=11;break}return I(a.nickname||""),$(a.avatar||""),(0,j.Sy)(),Q(!1),J("fill"),o().showToast({title:"\u8bf7\u8bbe\u7f6e\u5934\u50cf\u548c\u6635\u79f0",icon:"none"}),e.a(2);case 11:ce(a.accessToken,n,a.nickname||"",a.avatar||""),e.n=13;break;case 12:e.p=12,c=e.v,console.error("[Profile] \u767b\u5f55\u6d41\u7a0b\u51fa\u9519:",c),re(c&&c.message||"\u540e\u7aef\u8fde\u63a5\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u7f51\u7edc");case 13:return e.a(2)}},e,null,[[6,8],[2,12]])}));return function(){return e.apply(this,arguments)}}(),oe=function(){var e=(0,t.A)((0,i.A)().m(function e(){var s,a,n,t;return(0,i.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!K){e.n=1;break}return e.a(2);case 1:return Q(!0),o().showLoading({title:"\u4fdd\u5b58\u4e2d",mask:!0}),e.p=2,e.n=3,(0,f.r7)({nickname:H||void 0,avatar:W||void 0});case 3:return s="",e.p=4,e.n=5,(0,f.jp)();case 5:a=e.v,s=a&&a.openid||"",e.n=7;break;case 6:e.p=6,e.v,s="";case 7:if(s){e.n=8;break}return re("\u4fdd\u5b58\u5f02\u5e38\uff0c\u8bf7\u91cd\u8bd5"),e.a(2);case 8:n=(0,d.ug)(),ce(n&&n.accessToken||(0,f.gf)(),s,H,W),e.n=10;break;case 9:e.p=9,t=e.v,console.error("[Profile] \u4fdd\u5b58\u8d44\u6599\u51fa\u9519:",t),re(t&&t.message||"\u4fdd\u5b58\u5931\u8d25");case 10:return e.a(2)}},e,null,[[4,6],[2,9]])}));return function(){return e.apply(this,arguments)}}(),ue=function(e){$(e.detail.avatarUrl||"")},de=function(e){switch(o().hideToast(),e){case"toDesign":o().setStorageSync("designList:filter","toDesign"),o().switchTab({url:"/pages/designList/index"});break;case"pending":o().setStorageSync("orders:filter","pending"),o().switchTab({url:"/pages/orders/index"});break;case"paid":o().setStorageSync("orders:filter","paid"),o().switchTab({url:"/pages/orders/index"});break;case"shipping":o().setStorageSync("orders:filter","shipping"),o().switchTab({url:"/pages/orders/index"});break;case"done":o().setStorageSync("orders:filter","done"),o().switchTab({url:"/pages/orders/index"});break}},pe=function(e,s){if(o().hideToast(),!y&&(e.includes("designList")||e.includes("orders")))return o().showToast({title:"\u8bf7\u5148\u767b\u5f55",icon:"none"}),void P(!0);"\u8054\u7cfb\u5ba2\u670d"!==s?e.startsWith("/pages/")&&(e.includes("designList")||e.includes("orders")?o().switchTab({url:e,fail:function(e){console.error("switchTab fail",e),o().showToast({title:"\u8df3\u8f6c\u5931\u8d25",icon:"none"})}}):o().navigateTo({url:e,fail:function(e){console.error("navigateTo fail",e),o().showToast({title:"\u8df3\u8f6c\u5931\u8d25",icon:"none"})}})):o().navigateTo({url:"/pages/service/index",fail:function(e){console.error("navigateTo service fail",e),o().showToast({title:"\u8df3\u8f6c\u5931\u8d25",icon:"none"})}})};return(0,N.jsxs)(c.Ss,{className:"theme-".concat(s),style:{minHeight:"100vh"},children:[(0,N.jsx)(h.A,{}),(0,N.jsx)(x.A,{title:"\u6211\u7684",targetSelector:".profile-header"}),(0,N.jsxs)(c.Ss,{className:"profile-page",children:[(0,N.jsxs)(c.Ss,{className:"profile-header surface-card",style:{marginTop:"".concat(a.statusBarHeight+12,"px")},children:[(0,N.jsxs)(c.Ss,{className:"user-info",children:[y&&q.avatarUrl?(0,N.jsx)(c._V,{className:"avatar",src:q.avatarUrl,mode:"aspectFill"}):(0,N.jsx)(c.Ss,{className:"avatar-placeholder",onTap:ie,children:(0,N.jsx)(c._V,{className:"avatar-icon-img",src:(0,v.uq)("/icon/\u4e2a\u4eba.png"),mode:"aspectFit"})}),(0,N.jsxs)(c.Ss,{className:"user-meta",children:[(0,N.jsx)(c.EY,{className:"user-name",onTap:y?w:ie,children:y?q.nickName:"\u70b9\u51fb\u767b\u5f55"}),(0,N.jsx)(c.EY,{className:"user-level",children:y?"\u667a\u7ed8\u5fae\u523b\u4f1a\u5458":"\u6388\u6743\u5fae\u4fe1\uff0c\u5f00\u542f\u4e13\u5c5e\u5b9a\u5236"})]})]}),(0,N.jsxs)(c.Ss,{className:"status-grid",children:[(0,N.jsx)(c.Ss,{className:"status-row row2",children:b.slice(0,2).map(function(e){return(0,N.jsxs)(c.Ss,{className:"status-group",children:[(0,N.jsxs)(c.Ss,{className:"status-item",onTap:function(){return de(e.key)},children:[(0,N.jsx)(c._V,{className:"status-icon-img",src:e.icon,mode:"aspectFit"}),(0,N.jsx)(c.EY,{className:"status-num",children:ee[e.key]}),(0,N.jsx)(c.EY,{className:"status-label",children:e.label})]}),(0,N.jsx)(c.Ss,{className:"status-divider"})]},e.key)})}),(0,N.jsx)(c.Ss,{className:"status-divider-h"}),(0,N.jsx)(c.Ss,{className:"status-row row3",children:b.slice(2).map(function(e,s){return(0,N.jsxs)(c.Ss,{className:"status-group",children:[(0,N.jsxs)(c.Ss,{className:"status-item",onTap:function(){return de(e.key)},children:[(0,N.jsx)(c._V,{className:"status-icon-img",src:e.icon,mode:"aspectFit"}),(0,N.jsx)(c.EY,{className:"status-num",children:ee[e.key]}),(0,N.jsx)(c.EY,{className:"status-label",children:e.label})]}),s<2&&(0,N.jsx)(c.Ss,{className:"status-divider"})]},e.key)})})]})]}),(0,N.jsxs)(c.Ss,{className:"mt-20",children:[(0,N.jsx)(c.EY,{className:"section-title",children:"\u5e38\u7528\u529f\u80fd"}),(0,N.jsx)(c.Ss,{className:"menu-grid",children:k.map(function(e,s){return(0,N.jsxs)(c.Ss,{className:"menu-card surface-card",onTap:function(){return pe(e.path,e.label)},children:[(0,N.jsx)(c._V,{className:"menu-icon-img",src:S[e.label],mode:"aspectFit"}),(0,N.jsx)(c.EY,{className:"menu-label",children:e.label})]},s)})})]}),(0,N.jsx)(c.Ss,{className:"enterprise-section surface-card mt-20",children:(0,N.jsxs)(c.Ss,{className:"flex-between",children:[(0,N.jsxs)(c.Ss,{className:"flex-column",children:[(0,N.jsxs)(c.Ss,{className:"flex-center",children:[(0,N.jsx)(c._V,{className:"enterprise-icon",src:(0,v.uq)("/icon/\u4f01\u4e1a\u6279\u91cf\u5b9a\u5236.png"),mode:"aspectFit"}),(0,N.jsx)(c.EY,{className:"enterprise-title",children:"\u4f01\u4e1a\u6279\u91cf\u5b9a\u5236"})]}),(0,N.jsx)(c.EY,{className:"enterprise-desc",children:"\u5e74\u4f1a\u793c\u54c1\u3001\u5165\u804c\u7eaa\u5ff5\u3001\u56e2\u5efa\u4f34\u624b\u793c"})]}),(0,N.jsx)(c.Ss,{className:"btn-primary enterprise-btn",children:(0,N.jsx)(c.EY,{children:"\u7acb\u5373\u54a8\u8be2"})})]})}),D&&(0,N.jsx)(c.Ss,{className:"modal-overlay",children:(0,N.jsxs)(c.Ss,{className:"login-card surface-card",children:[(0,N.jsx)(c.EY,{className:"login-title",children:"\u767b\u5f55\u667a\u7ed8\u5fae\u523b"}),"entry"===C?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(c.EY,{className:"login-desc",children:"\u767b\u5f55\u540e\u540c\u6b65\u60a8\u7684\u8bbe\u8ba1\u6e05\u5355\u548c\u8ba2\u5355"}),(0,N.jsxs)(c.Ss,{className:"login-actions",children:[(0,N.jsx)(c.Ss,{className:"btn-secondary",onTap:te,children:(0,N.jsx)(c.EY,{children:"\u53d6\u6d88"})}),(0,N.jsx)(c.Ss,{className:"btn-primary",onTap:le,children:(0,N.jsx)(c.EY,{children:"\u5fae\u4fe1\u767b\u5f55"})})]})]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(c.EY,{className:"login-desc",children:"\u8bf7\u8bbe\u7f6e\u60a8\u7684\u5934\u50cf\u548c\u6635\u79f0"}),(0,N.jsx)(c.$n,{className:"avatar-btn",openType:"chooseAvatar",onChooseAvatar:ue,children:W?(0,N.jsx)(c._V,{className:"avatar-img",src:W,mode:"aspectFill"}):(0,N.jsx)(c._V,{className:"avatar-placeholder-img",src:(0,v.uq)("/icon/\u4e2a\u4eba.png"),mode:"aspectFit"})}),(0,N.jsx)(c.pd,{type:"nickname",className:"nickname-input",placeholder:"\u8bf7\u8f93\u5165\u6635\u79f0",value:H,onInput:function(e){return I(e.detail.value)}}),(0,N.jsxs)(c.Ss,{className:"login-actions",children:[(0,N.jsx)(c.Ss,{className:"btn-secondary",onTap:te,children:(0,N.jsx)(c.EY,{children:"\u53d6\u6d88"})}),(0,N.jsx)(c.Ss,{className:"btn-primary",onTap:oe,children:(0,N.jsx)(c.EY,{children:"\u4fdd\u5b58"})})]})]})]})})]})]})}var y={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u4e2a\u4eba\u4e2d\u5fc3"};Page((0,n.createPageConfig)(T,"pages/profile/index",{root:{cn:[]}},y||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(2579)});e.O()}]); \ No newline at end of file diff --git a/dist/pages/settings/index.js b/dist/pages/settings/index.js index a49c380..f4ed5dd 100644 --- a/dist/pages/settings/index.js +++ b/dist/pages/settings/index.js @@ -1 +1 @@ -"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[486],{7904:function(e,s,a){var n=a(7842),t=a(9379),c=a(5544),i=a(118),l=a(758),r=a.n(l),o=a(6540),m=a(9703),d=a(9201),u=a(5414),h=a(9674),x=a(3053),g=a(8594),p=a(8199),j=a(4848),N=[{label:"\u6d45\u8272\u6a21\u5f0f",value:"light"},{label:"\u6df1\u8272\u6a21\u5f0f",value:"dark"},{label:"\u8ddf\u968f\u7cfb\u7edf",value:"auto"}],v=[{label:"\u4e2a\u4eba\u4fe1\u606f",icon:(0,p.uq)("/icon/\u4e2a\u4eba.png"),action:function(e){return e.setShowEdit(!0)}},{label:"\u8d26\u53f7\u7ba1\u7406",icon:(0,p.uq)("/icon/\u8d26\u53f7\u7ba1\u7406.png"),action:function(){return r().navigateTo({url:"/pages/userDatabase/index"})}},{label:"\u5b9a\u5236\u534f\u8bae",icon:(0,p.uq)("/icon/\u5b9a\u5236\u534f\u8bae.png"),action:function(){return r().navigateTo({url:"/pages/agreement/index"})}},{label:"\u5173\u4e8e\u6211\u4eec",icon:(0,p.uq)("/icon/\u5173\u4e8e\u6211\u4eec.png"),action:function(){return r().showToast({title:"\u667a\u7ed8\u5fae\u523b v1.0",icon:"none"})}}];function f(){var e=(0,m.wR)(),s=e.theme,a=e.setTheme,n=e.resolvedTheme,l=(0,d.c)();(0,u.l)(n);var f=(0,o.useState)({}),S=(0,c.A)(f,2),b=S[0],T=S[1],E=(0,o.useState)(""),w=(0,c.A)(E,2),Y=w[0],k=w[1],A=(0,o.useState)(""),y=(0,c.A)(A,2),q=y[0],F=y[1],U=(0,o.useState)(!1),V=(0,c.A)(U,2),_=V[0],B=V[1],H=function(){var e=(0,g.ug)()||{};T(e),k(e.nickName||""),F(e.avatarUrl||"")};(0,o.useEffect)(function(){H()},[]);var P=function(){(0,g.iA)((0,t.A)((0,t.A)({},b),{},{nickName:Y,avatarUrl:q})),r().showToast({title:"\u4fee\u6539\u6210\u529f",icon:"success"}),B(!1),H()},C=function(){r().showModal({title:"\u786e\u8ba4\u9000\u51fa",content:"\u9000\u51fa\u540e\u5c06\u6e05\u7a7a\u5f53\u524d\u767b\u5f55\u72b6\u6001\uff0c\u786e\u5b9a\u5417\uff1f",success:function(e){e.confirm&&((0,g.Hf)(),r().switchTab({url:"/pages/index/index"}))}})},D=function(e){F(e.detail.avatarUrl||"")};return(0,j.jsxs)(i.Ss,{className:"theme-".concat(n),style:{minHeight:"100vh"},children:[(0,j.jsx)(h.A,{}),(0,j.jsx)(x.A,{title:"\u8bbe\u7f6e",targetSelector:".page-header.settings-header",showBack:!0}),(0,j.jsx)(i.Ss,{className:"settings-page",children:(0,j.jsxs)(i.Ss,{className:"settings-area",children:[(0,j.jsxs)(i.Ss,{className:"page-header settings-header",style:{paddingTop:"".concat(l.statusBarHeight+12,"px")},children:[(0,j.jsx)(i.Ss,{className:"back-btn",onTap:function(){return r().navigateBack()},children:(0,j.jsx)(i.EY,{className:"back-arrow",children:"\u2190"})}),(0,j.jsx)(i.EY,{className:"page-title",children:"\u8bbe\u7f6e"}),(0,j.jsx)(i.Ss,{className:"header-spacer"})]}),(0,j.jsx)(i.Ss,{className:"settings-user surface-card mt-20",children:(0,j.jsxs)(i.Ss,{className:"flex-between",onTap:function(){return B(!0)},children:[(0,j.jsxs)(i.Ss,{className:"flex-center",children:[b.avatarUrl?(0,j.jsx)(i._V,{className:"settings-avatar",src:b.avatarUrl,mode:"aspectFill"}):(0,j.jsx)(i.Ss,{className:"settings-avatar-placeholder",children:(0,j.jsx)(i._V,{className:"settings-avatar-icon",src:(0,p.uq)("/icon/\u4e2a\u4eba.png"),mode:"aspectFit"})}),(0,j.jsxs)(i.Ss,{className:"settings-meta",children:[(0,j.jsx)(i.EY,{className:"settings-name",children:b.nickName||"\u672a\u767b\u5f55"}),(0,j.jsxs)(i.EY,{className:"settings-id",children:["ID: ",b.openid?b.openid.slice(-8):"---"]})]})]}),(0,j.jsx)(i.EY,{className:"arrow",children:"\u203a"})]})}),(0,j.jsxs)(i.Ss,{className:"settings-section surface-card mt-20",children:[(0,j.jsx)(i.EY,{className:"section-label",children:"\u5916\u89c2"}),(0,j.jsx)(i.Ss,{className:"theme-options",children:N.map(function(e){return(0,j.jsxs)(i.Ss,{className:"theme-option ".concat(s===e.value?"active":""),onTap:function(){return a(e.value)},children:[(0,j.jsx)(i.EY,{className:"theme-option-text",children:e.label}),s===e.value&&(0,j.jsx)(i.Ss,{className:"theme-check"})]},e.value)})}),"auto"===s&&(0,j.jsxs)(i.EY,{className:"theme-hint",children:["\u5f53\u524d\u8ddf\u968f\u7cfb\u7edf\uff1a","dark"===n?"\u6df1\u8272\u6a21\u5f0f":"\u6d45\u8272\u6a21\u5f0f"]})]}),(0,j.jsx)(i.Ss,{className:"settings-list surface-card mt-20",children:v.map(function(e,s){return(0,j.jsxs)(i.Ss,{className:"settings-item ".concat(s.ts`, +不要把页面私有类型散落在各个页面里。 + +## 2. 路线归属 + +每条路线的完整开发内容、设计 DO/DON'T 与验收标准见 `docs/routes/`: + +| 文档 | 分支 | +|---|---| +| [R1 商品目录动态化](routes/route-r1-product-catalog.md) | `feat/r1-catalog` | +| [R2 地址 + 设计清单](routes/route-r2-address-design.md) | `feat/r2-address-design` | +| [R3 订单 + 支付占位](routes/route-r3-order-pay.md) | `feat/r3-order-pay` | +| [R4 上传 + 词云 + 线稿](routes/route-r4-upload-wordcloud.md) | `feat/r4-upload-wordcloud` | + +| 路线 | 页面 | 后端 | 词云项目 | +|---|---|---|---| +| R1 商品目录 | `index`、`shop`、`product` | products/categories、schema 扩展、seed | 不用 | +| R2 地址 + 设计清单 | `address`、`designList` | addresses CRUD、design-list CRUD、状态映射 | 不用 | +| R3 订单 + 支付占位 | `checkout`、`orders`、`orderDetail`、付款按钮 | orders 重算/事务、payments 占位 | 不用 | +| R4 上传 + 词云 + 线稿 | `wordcloud`、`diy/stickerEdit` | upload、词云适配器、sketch、队列 | 复用,需冻结最小契约 | + +文件所有权约定: + +- `checkout` 页归 R3,R2 只做 `address` 和 `designList` 页。 +- `profile` 页是只读统计消费者,等 R2/R3 合入后再统一收尾。 +- `wordcloud` 项目只有 R4 会碰,其余路线不依赖它。 + +## 3. 新增接口怎么改 + +1. 后端先把 Swagger/DTO 定下来,确认字段与状态枚举。 +2. 在对应的 `api/.ts` 里写函数,返回类型对齐 `src/types`。 +3. 不需要改页面里的导入路径:聚合入口已 re-export 所有域文件, + 新函数会自动从 `../../utils/api` 导出。 +4. 页面只调用 `api` 层的函数,不在页面里直接写 `http.get`。 + +## 4. 新增本地业务怎么改 + +1. 判断属于哪个域,写进 `store/.ts`。 +2. 若该域已有文件,直接在文件内追加函数;不要新建 `xxx2.ts`。 +3. 新域需在 `store/index.ts` 增加一行显式 re-export。 +4. 页面通过 `../../utils/store` 导入,不直接 import 内部模块路径。 + +## 5. Git 协作 + +每路线在 `wechat_wc` 与 `wxmp_backend` 使用同名分支: + +| 路线 | 分支名 | +|---|---| +| R1 | `feat/r1-catalog` | +| R2 | `feat/r2-address-design` | +| R3 | `feat/r3-order-pay` | +| R4 | `feat/r4-upload-wordcloud` | + +日常循环: + +```bash +git checkout main && git pull +git checkout -b feat/r1-catalog + +# 提交并推送自己的分支 +git add -A +git commit -m "feat(catalog): xxx" +git push -u origin feat/r1-catalog + +# 主干有更新时,变基到最新 +git fetch origin +git rebase origin/main + +# 合入:只有合入负责人执行 +git checkout main && git pull +git merge --no-ff feat/r1-catalog +git push origin main +``` + +规则: + +- 主干 `main` 保持可运行,禁止直接 push,合入走 Pull Request。 +- 后端与前端同名分支是一对,评审时成对看,后端 Swagger 先定契约。 +- 不跨路线互相拉分支;主干更新只通过 `rebase origin/main` 获取。 +- 合入顺序:R1 先合(R3 服务端金额重算依赖商品表),R2/R4 随后,R3 最后。 + +## 6. 验证 + +每次提交前至少保证: + +```bash +npm run build:weapp +``` + +R1 合入前额外跑后端接口 smoke;R2/R3 合入前跑对应页面在微信开发者工具里的手测; +R4 合入前跑一次词云契约 smoke。 diff --git a/docs/routes/README.md b/docs/routes/README.md new file mode 100644 index 0000000..21398e4 --- /dev/null +++ b/docs/routes/README.md @@ -0,0 +1,26 @@ +# 四条并行开发路线 + +四份文档分别对应四个开发分支,覆盖前端 `wechat_wc`、后端 `wxmp_backend` 与词云项目 +`wordcloud` 的分工、开发内容、设计 DO/DON'T 和验收标准。以本目录文档为准,开发时 +不要随意扩大分支边界。 + +| 文档 | 分支 | 内容 | +|---|---|---| +| [R1 商品目录动态化](route-r1-product-catalog.md) | `feat/r1-catalog` | 商品/分类 API、seed、首页/商品/详情页切换 | +| [R2 地址 + 设计清单](route-r2-address-design.md) | `feat/r2-address-design` | 地址 CRUD、默认地址事务、设计 JSON 与状态映射 | +| [R3 订单 + 支付占位](route-r3-order-pay.md) | `feat/r3-order-pay` | 服务端下单、金额重算、订单状态机、支付未配置占位 | +| [R4 上传 + 词云 + 线稿](route-r4-upload-wordcloud.md) | `feat/r4-upload-wordcloud` | COS 上传、wordcloud 契约冻结、sketch、任务轮询 | + +## 合并顺序与依赖 + +- R1 是交易链路的前置,优先合入。 +- R2 依赖已有登录体系,可与 R1 并行。 +- R3 依赖 R1 的商品表和 R2 的地址/设计清单接口,最后合入。 +- R4 独立并行,但依赖 wordcloud 最小契约冻结。 + +## 通用红线 + +- 前后端同名分支成对评审,后端 Swagger 先定契约,前端再实现。 +- 每个分支合入主干前必须通过各自仓库的构建验证。 +- 页面统一从 `../../utils/store` 与 `../../utils/api` 聚合入口导入。 +- 不得跨路线修改其他分支的文件所有权。 diff --git a/docs/routes/route-r1-product-catalog.md b/docs/routes/route-r1-product-catalog.md new file mode 100644 index 0000000..f9f35f5 --- /dev/null +++ b/docs/routes/route-r1-product-catalog.md @@ -0,0 +1,93 @@ +# R1 商品目录动态化(feat/r1-catalog) + +**Goal:** 让首页、商品列表、沉浸式详情、商品详情四个页面改从后端商品/分类 API 取数, +前端不再直接依赖静态 `productConfig.ts` 作为线上数据源。 + +**Architecture:** 前端新增按域的 `api/product.ts` 与页面级加载状态;后端扩展 Product 表字段、 +补齐 products/categories 查询能力、写入 5 个真实品类 seed;前后端通过 `docs/api-contract-v1.md` +冻结响应结构;静态 `productConfig.ts` 降级为离线兜底与图标映射,R1 合并验证前不删除。 + +**Tech Stack:** Taro 3.6 + React 18 + TypeScript;NestJS 11 + Prisma/PostgreSQL。 + +## 1. 本分支要开发的内容 + +### 前端 `wechat_wc` + +| 文件 | 职责 | +|---|---| +| `src/types/index.ts` 或 `src/types/product.ts` | ProductCategory 与后端字段对齐,新增 `subtitle/tone/story/scene/tags/specs/mask/originalPrice/leadTime/status` | +| `src/utils/api/product.ts` | `fetchProducts(params)`、`fetchProduct(id)`、`fetchCategories()`,返回类型显式声明 | +| `src/hooks/useProducts.ts`(新增) | 商品列表/详情加载、loading/error/retry、可选 60s 内存缓存 | +| `src/pages/index/index.tsx` | 品类网格与搜索改走 API;成品轮播仍可静态,但价格/图片建议取商品数据 | +| `src/pages/shop/index.tsx` | 商品网格改走 API,补加载骨架、空态、失败重试 | +| `src/pages/shop/detail/index.tsx` | 按 `id` 拉详情,补 loading/error,保留沉浸式滚动动画 | +| `src/pages/product/index.tsx` | 按 `id` 拉详情,`addDesign` 继续复用 `store/design.ts` | +| `src/utils/productConfig.ts` | 保留为 seed 参考与离线兜底,不参与线上主流程 | + +### 后端 `wxmp_backend` + +| 模块 | 内容 | +|---|---| +| `prisma/schema.prisma` | Product 增加 `subtitle/leadTime/originalPrice/tone/tags/specs/mask/story/scene/iconImg`,其中 `tone Int[]`、`specs Json`、`mask Json`、`tags String[]` | +| `prisma/seed.ts` | 写入 5 个真实品类(笔记本小/大、杯垫、笔盒、书灯),图片用 OSS URL,mask 与前端现有一致 | +| `products` | `GET /api/products`:分页、`categoryId`、`keyword`、`status=ON_SALE`;`GET /api/products/:id`:404 处理 | +| `categories` | `GET /api/categories`:稳定排序返回,暂做扁平结构 | +| `docs/api-contract-v1.md` | 商品/分类接口、分页结构、Decimal 数字格式、错误码 | + +### 词云项目 `wordcloud` + +不参与本分支。 + +## 2. 设计注意事项 + +### DO + +- DO 前端只消费后端返回的 `price`,下单链路以后也不允许前端自算金额。 +- DO 在 API 层把 Decimal 字符串规范成本地 `number`,页面组件里不做字符串拼接运算。 +- DO 所有列表/详情页补齐 loading、空态、失败重试,失败时给出可操作文案。 +- DO 图片加载失败使用 `product.iconImg` 或 `四角星.svg` 兜底,单张图失败不阻塞页面。 +- DO `mask`、`specs`、`tone` 等富字段作为后端 JSON 返回,前端类型用判别联合描述。 +- DO 后端 seed 和前端 `productConfig.ts` 使用同一套稳定的业务 ID(如 `notebook-small`),方便前后端联调。 +- DO 在 R1 分支内同步更新前端 `types` 与 Swagger 文档,一个 PR 成对评审。 +- DO 商品列表接口先给分页参数,前端第一版可以每次取全部,但接口结构要能扩展。 +- DO 公共接口统一 `auth:false`,不要携带 token。 +- DO 保持项目事件规范:所有点击使用 `onTap`,不使用 `onClick`。 + +### DON'T + +- DON'T 直接删除 `productConfig.ts`,R1 合并前它仍是离线兜底和图标映射来源。 +- DON'T 在页面里直接写 `http.get('/api/products')`,必须收口到 `api/product.ts`。 +- DON'T 在前端硬编码新的图片 CDN 地址,继续走 `assetUrl` 与 `OSS_BASE_URL`。 +- DON'T 让前端根据 `originalPrice` 自行计算促销逻辑,促销后续由后端字段统一表达。 +- DON'T 依赖数据库插入顺序,列表必须有 `sort/createdAt` 稳定排序。 +- DON'T 在 seed 中用随机 cuid 造成不同环境商品 ID 漂移。 +- DON'T 在 R1 里顺手改主题、TabBar、DIY 等无关文件。 +- DON'T 把 `description` 塞进 JSON 大字段混用,普通段落继续用字符串字段。 + +## 3. 补充内容(用户未列但建议纳入) + +### 验收标准 + +- 前后端本地联调:首页/商品列表/沉浸式详情/商品详情四个页面数据来自 API,静态配置失效时页面有兜底而不会白屏。 +- 后端 `npm run build`、前端 `npm run build:weapp` 通过。 +- Swagger 中商品列表/详情/分类文档完整;前端类型与 Swagger 字段一一对应。 +- seed 后数据库包含 5 个在售品类,图片 URL 可访问。 + +### 合并与依赖 + +- 分支名:前端与后端均为 `feat/r1-catalog`。 +- 合并顺序:R1 是整个交易链路的前提,优先合入;R3 的服务端金额重算依赖本分支的商品表。 +- 合入前跑一次后端接口 smoke:`GET /api/categories`、`GET /api/products`、`GET /api/products/:id`。 + +### 风险 + +- OSS 图片域名若未配到微信后台 `downloadFile` 合法域名,商品图会在真机白图,联调时先确认。 +- `tone`、`mask` 等富字段若后端 JSON 序列化方式不统一,前端类型会悄悄失效,合入前要跑真实返回样例。 +- 首页成品轮播目前混用静态文案与商品数据,R1 建议只把“热门品类”切 API,轮播数据源单独决策。 + +### 测试要求 + +- 后端:至少补 products/categories 的 e2e(正常列表、空列表、404、keyword 过滤)。 +- 前端:三个页面手测加载态、断网重试、空数据、关键词搜索无结果、图片 404 兜底。 +- 不需要在 R1 引入自动化 UI 测试,保持手测清单即可。 + diff --git a/docs/routes/route-r2-address-design.md b/docs/routes/route-r2-address-design.md new file mode 100644 index 0000000..21a0126 --- /dev/null +++ b/docs/routes/route-r2-address-design.md @@ -0,0 +1,124 @@ +# R2 收货地址 + 设计清单(feat/r2-address-design) + +**Goal:** 把收货地址和设计清单从本地 Storage 切换到后端 CRUD,完成字段契约、接口权限、 +默认地址事务、设计数据 JSON 与状态映射,让 R3 的订单闭环可以直接消费这两组能力。 + +**Architecture:** 前端 `api/address.ts`、`api/design.ts` 负责 HTTP 契约,本地 +`store/address.ts`、`store/design.ts` 在联调期保留为兜底;后端补齐 addresses 与 design-list +的完整 CRUD、事务与本人数据校验;`checkout` 页归 R3 所有,R2 只定义接口不修改该页面。 + +**Tech Stack:** Taro 3.6 + React 18 + TypeScript;NestJS 11 + Prisma/PostgreSQL。 + +## 1. 本分支要开发的内容 + +### 前端 `wechat_wc` + +| 文件 | 职责 | +|---|---| +| `src/utils/api/address.ts` | `fetchAddresses/createAddress/updateAddress/deleteAddress/setDefaultAddress`,负责 `region[]` 与 `province/city/district` 双向转换 | +| `src/utils/api/design.ts` | `fetchDesignList/createDesign/updateDesign/deleteDesigns` | +| `src/pages/address/index.tsx` | 列表、新增、编辑、删除、设为默认全部走 API;保留表单校验与区域 Picker | +| `src/pages/designList/index.tsx` | 列表、状态筛选、批量删除走 API;保留 LoginGuard | +| `src/types/index.ts` | AddressItem/DesignItem 与后端结构对齐,新增服务端 id、状态码、时间字段 | +| `src/utils/store/address.ts`、`design.ts` | 降级为“本地缓存/离线兜底”,API 调用成功后同步刷新 | + +### 后端 `wxmp_backend` + +| 模块 | 内容 | +|---|---| +| `addresses` | `GET/POST /api/addresses`、`PATCH /api/addresses/:id`、`PATCH /api/addresses/:id/default`、`DELETE /api/addresses/:id`;全部带 userId 归属校验 | +| `addresses` 事务 | 设置默认时事务内先清旧默认再设新默认;删除默认地址后自动指定最新一条为默认 | +| `design-list` | `GET/POST /api/design-list`、`PATCH /api/design-list/:id`、`DELETE /api/design-list/:id`、批量删除 | +| `design-list` 校验 | `items` JSON 结构与大小校验、状态机转换、本人专属查询 | +| `docs/api-contract-v1.md` | 地址字段映射、设计清单状态枚举、错误码 | + +### 词云项目 `wordcloud` + +不参与本分支,但 `designData` 中的本地贴纸图片路径问题会影响后续 R4,见风险一节。 + +## 2. 状态映射(必须先定死) + +后端 `DesignListStatus` 目前是 `DRAFT/SUBMITTED/PROCESSING/DONE`,前端是 +`undesigned/designing/ordered`。R2 不要在两边各造一套值,建议按显示语义映射: + +| 前端显示 | 后端状态 | 前端状态码 | +|---|---|---| +| 待设计 | DRAFT | `undesigned` | +| 设计中 | SUBMITTED | `designing` | +| 生产中 | PROCESSING | `processing` | +| 已下单 | DONE | `ordered` | + +“已下单”不要用独立状态表达,改为 `orderId != null` 派生;前端只显示,不提交这个状态。 +状态码收口到 `docs/api-contract-v1.md`,后端校验状态迁移,前端不传自由字符串。 + +## 3. 字段契约 + +### 地址 + +后端 `province/city/district/detail` 对应前端 `region: [province, city, district] + detail`。 +转换只放在 `api/address.ts`,页面和 store 不得散落第二次转换。 + +### 设计数据 + +`DesignList.items` 是服务端 JSON,前端提交结构建议与当前 `DesignItem.designData` 对齐: + +```ts +interface DesignData { + stickers?: StickerItem[] + category?: ProductCategory + imageSrc?: string + imagePos?: { x: number; y: number; scale: number } +} +``` + +服务端只做白名单字段校验,不修改业务 JSON 内容;单条设计数据建议限制在 1MB 以内。 + +## 4. 设计注意事项 + +### DO + +- DO 地址的增删改查和默认切换全部要求登录态,401 时引导去个人中心登录。 +- DO 所有按 id 操作的服务端路由同时带 `userId` 条件,404 与 403 区分清楚。 +- DO 默认地址切换与删除补偿放在同一个 Prisma transaction 里。 +- DO 前端继续沿用户已熟悉的表单校验,但最终校验提示以后端返回为准。 +- DO 设计清单状态通过后端枚举返回,前端状态筛选基于返回的 `status` 计算。 +- DO 批量删除设计条目提供单个接口或循环调用时保证部分失败可恢复;推荐后端一次批量删除。 +- DO 本地 store 只在 API 失败时做降级读取,成功写回后以服务端数据为准。 + +### DON'T + +- DON'T 把前端 `region` 数组原样 POST 给后端,后端契约是四个独立地址字段。 +- DON'T 让前端直接写 `isDefault` 的两条规则,默认地址唯一性由后端事务保证。 +- DON'T 在路由/service 层漏掉归属校验;这是本分支最容易出的越权洞。 +- DON'T 新增前端自造状态 `ordered` 之外的字符串,状态值必须在契约文档里可枚举。 +- DON'T 在本分支修改 `checkout/index.tsx`,地址选择器与下单集成留给 R3。 +- DON'T 把 `wxfile://` 临时贴纸路径当作可持久化 URL 直接入库,R4 之前它只是本地预览。 +- DON'T 用设计清单字段承载订单状态,`orderId` 派生展示即可。 + +## 5. 补充内容 + +### 验收标准 + +- 地址页与设计清单页在登录态下增删改查、默认切换、批量删除全部走真实后端并刷新。 +- 后端所有变更接口带本人校验,越权访问返回 403,不存在资源返回 404。 +- 默认地址永远唯一;删除默认地址后列表自动产生新的默认地址。 +- 前端构建与后端构建通过;Swagger 涵盖地址与设计清单全部接口。 +- 状态映射表在 `docs/api-contract-v1.md` 中落地,前端页面不再出现魔法字符串状态。 + +### 合并与依赖 + +- 分支名:前端与后端均为 `feat/r2-address-design`。 +- R2 依赖已有登录体系(已完成),不依赖 R1;可与 R1 并行开发。 +- checkout 对地址 API 的调用在 R3 接入,R2 只需保证接口稳定即可。 + +### 风险 + +- 设计数据中的贴纸是本地临时路径,一旦真机重启或清理缓存,旧设计预览会裂图;在 R4 上传能力完成前,文档明确这是已知限制。 +- 旧版本本地 `smart_design_list_` 数据与后端数据可能并存,首次切换登录时避免双写冲突;可做一次性“导入本地清单”或直接忽略旧数据。 +- 批量删除接口若后端未实现,前端循环删除会遇到部分失败,联调时先约定失败语义。 + +### 测试要求 + +- 后端:地址 CRUD、默认地址唯一性事务、越权访问、设计清单状态迁移、超大 JSON 拒绝。 +- 前端:地址新增/编辑/删除/默认切换、设计清单筛选/批量删除、断网降级提示、401 引导登录。 + diff --git a/docs/routes/route-r3-order-pay.md b/docs/routes/route-r3-order-pay.md new file mode 100644 index 0000000..927714e --- /dev/null +++ b/docs/routes/route-r3-order-pay.md @@ -0,0 +1,132 @@ +# R3 订单闭环 + 支付接口占位(feat/r3-order-pay) + +**Goal:** 打通“设计清单 → 结算确认 → 创建订单 → 订单列表/详情 → 状态流转”的服务端闭环, +微信支付只留接口与配置位,不填真实密钥;支付不可用时流程能明确回到“待付款/支付未配置”。 + +**Architecture:** 前端 `api/order.ts` 承接下单与查询,`checkout/orders/orderDetail` 三个页面 +改为服务端数据源;后端订单创建在事务内重算金额、快照地址、生成幂等的订单号并创建 PENDING +支付记录;`payments` 在密钥未配置时返回显式占位响应,不做假成功。 + +**Tech Stack:** Taro 3.6 + React 18 + TypeScript;NestJS 11 + Prisma/PostgreSQL + Redis/BullMQ(可选)。 + +## 1. 本分支要开发的内容 + +### 前端 `wechat_wc` + +| 文件 | 职责 | +|---|---| +| `src/utils/api/order.ts` | `createOrder/fetchOrders/fetchOrderDetail/payOrder`;请求只带商品项、地址 id、designListId,不带金额 | +| `src/types/index.ts` | 服务端 Order 类型:`orderNo/status/totalAmount/items/addressSnapshot/createdAt/paidAt` | +| `src/pages/checkout/index.tsx` | 从服务端读设计清单,选择地址(用 R2 的地址接口),提交下单;展示服务端总价;支付未配置时提示后回订单列表 | +| `src/pages/orders/index.tsx` | 订单列表按状态 Tab 拉取;付款/确认收货等按钮调用对应接口或显示未配置 | +| `src/pages/orderDetail/index.tsx` | 按订单 id 拉详情;地址快照、商品、状态条、物流占位 | +| `src/utils/store/order.ts` | 标记 deprecated,仅保留为本地兜底,不再被 checkout 主流程调用 | +| `src/pages/profile/index.tsx` | 状态统计改为基于服务端订单列表(R2/R3 合入后统一收尾) | + +### 后端 `wxmp_backend` + +| 模块 | 内容 | +|---|---| +| `orders` | `POST /api/orders`:服务端按 Product/design-list 重算金额、事务创建订单+items+Payment、生成唯一 orderNo、快照地址 | +| `orders` 查询 | `GET /api/orders`(状态筛选/分页)、`GET /api/orders/:id`(仅本人)、`PATCH /api/orders/:id/confirm`、`POST /api/orders/:id/cancel`(按需) | +| `payments` | `POST /api/payments/:orderId/pay` 与 `POST /api/payments/notify` 保留签名;密钥为空时返回 `{ configured:false, message:'支付未配置' }` | +| `wechat` | `createUnifiedOrder/verifyPayNotify` 保持占位,不填入假商户参数 | +| `queue` | 可选:订单创建后入队定制任务,处理器先只更新 `CustomizationTask` 状态 | +| `docs/api-contract-v1.md` | 订单创建请求/响应、状态机、金额字段精度、错误码、幂等键 | + +### 词云项目 `wordcloud` + +不参与本分支。 + +## 2. 订单状态机 + +服务端 `OrderStatus` 与前端展示映射: + +| 后端 | 前端 Tab | 说明 | +|---|---|---| +| PENDING | 待付款 | 允许取消;支付未配置时长期停留 | +| PAID | 待发货 | 由支付回调推进,占位期不出现 | +| PROCESSING | 待发货 | 定制生产中 | +| SHIPPED | 待收货 | 需要发货/物流数据,本分支可展示占位 | +| COMPLETED | 已完成 | 用户确认收货推进 | +| CANCELLED | 已取消 | 待付款状态用户取消 | + +前端只读状态数组,不做状态转移判断;转移一律走后端接口或支付回调。 + +## 3. 接口设计要点 + +创建订单请求: + +```ts +{ + designListId: string, + addressId: string, + items: [{ productId, quantity }] +} +``` + +服务端响应: + +```ts +{ + id: string, + orderNo: string, + status: "PENDING", + totalAmount: number, + items: [], + addressSnapshot: {}, + createdAt: string +} +``` + +## 4. 设计注意事项 + +### DO + +- DO 订单金额、单价、总价全部由服务端计算,前端提交只给 `productId + quantity`。 +- DO 创建订单使用 `prisma.$transaction`,订单、明细、支付记录任一步失败整体回滚。 +- DO 给创建订单接口支持幂等键(客户端 `requestId` 或 `designListId` 防重复下单),双击提交只产生一单。 +- DO 订单号 `orderNo` 唯一,生成规则包含日期与随机位并在冲突时重试。 +- DO 收货地址在创建订单时直接快照到 `addressSnapshot`,订单创建后不再跟随地址变更。 +- DO 支付占位返回结构化 `configured:false`,前端据此显示“暂不支持支付”而不是错误弹窗。 +- DO 后端从配置读取微信支付密钥,密钥缺失时支付接口直接返回占位,不使用默认值或硬编码。 +- DO 订单列表/详情都校验当前用户 openid,越权访问返回 403。 +- DO 金额相关字段用 Decimal 精确类型持久化,序列化时统一成字符串或 number,避免浮点误差。 + +### DON'T + +- DON'T 信任前端传的 `totalAmount`/`price`,即使前端为了展示计算过也一律忽略。 +- DON'T 让客户端参数直接决定 `status`,状态只能由服务端接口和支付回调推进。 +- DON'T 在代码里填占位商户号、密钥、证书路径;密钥缺失是合法运行状态而非 bug。 +- DON'T 模拟支付成功,包括开发环境;未配置就是未配置,避免上线前“假流程”掩盖问题。 +- DON'T 支付回调先解锁订单再验签;本分支只留入口,不实现任何未验签的落库逻辑。 +- DON'T 在本分支删除 `store/order.ts`,把它标记 deprecated 即可,本地兜底退出要留到全链路验证后。 +- DON'T 修改 R2 的地址/设计清单接口签名,R3 只消费。 + +## 5. 补充内容 + +### 验收标准 + +- 指定一个已登录用户,从设计清单进入结算页,选地址后创建订单;服务端返回的 `totalAmount` 与商品单价×数量一致。 +- 双击提交只生成一单,订单号唯一。 +- 订单列表/详情展示服务端数据,越权用户拿不到他人订单。 +- 支付按钮在密钥未配置时返回 `configured:false` 并给出明确文案,不调用微信、不写成功记录。 +- 后端 `npm run build`、前端 `npm run build:weapp` 通过。 + +### 合并与依赖 + +- 分支名:前端与后端均为 `feat/r3-order-pay`。 +- 依赖 R1 的商品表和 R2 的地址/设计清单接口,合并顺序放在 R1、R2 之后。 +- 支付实现作为一个独立后续里程碑,不阻塞本分支交付。 + +### 风险 + +- 微信小程序对订单支付有场景与类目要求,目前未备案时不要尝试真支付,容易触发审核风险。 +- 物流信息当前为假数据,SHIPPED/COMPLETED 的物流时间轴要标注占位。 +- 若 R2 未按约定提供地址接口,checkout 集成会被卡住;R3 开发时先按 `api-contract-v1.md` 编写,联调阶段再对齐实现。 + +### 测试要求 + +- 后端:订单创建事务、金额重算、重复提交幂等、越权查询、状态流转、支付未配置占位响应。 +- 前端:结算页创建订单、双击防抖、订单空态、状态 Tab 筛选、越权场景提示、支付未配置提示。 + diff --git a/docs/routes/route-r4-upload-wordcloud.md b/docs/routes/route-r4-upload-wordcloud.md new file mode 100644 index 0000000..9b4c883 --- /dev/null +++ b/docs/routes/route-r4-upload-wordcloud.md @@ -0,0 +1,116 @@ +# R4 上传 + 词云生成 + 线稿(feat/r4-upload-wordcloud) + +**Goal:** 打通用户图片上传、词云任务生成、DIY 贴纸线稿处理和异步任务状态轮询; +这是四条路线中唯一复用 `wordcloud` 项目的路线,必须通过冻结接口契约的方式隔离它的大量变更。 + +**Architecture:** 小程序只与 `wxmp_backend` 通信;wxmp_backend 实现 COS 上传凭证、词云适配器、 +sketch 接口和任务记录/轮询;`wordcloud` FastAPI 服务作为外部引擎,只暴露并冻结最小契约。 +小程序页面对词云使用轮询进度,不使用 SSE/EventSource。 + +**Tech Stack:** Taro 3.6 + React 18 + TypeScript;NestJS 11 + Prisma/PostgreSQL + Redis/BullMQ; +腾讯云 COS;wordcloud FastAPI + EfficientWordCloud。 + +## 1. 本分支要开发的内容 + +### 前端 `wechat_wc` + +| 文件 | 职责 | +|---|---| +| `src/utils/api/upload.ts` | `getUploadCredentials/uploadToCos/sketchImage/createWordCloudJob/getWordCloudJob/getWordCloudResult` | +| `src/pages/wordcloud/index.tsx` | 真实上传底图、提交名字清单、创建任务、轮询进度、展示结果图并保存相册 | +| `src/pages/diy/stickerEdit/index.tsx` | 把占位域名 `https://your-api-domain.com/api/sketch` 换成 `BASE_URL/api/sketch`;保留前端灰度降级 | +| `src/types/index.ts` 或 `src/types/upload.ts` | `WordCloudJob/WordCloudStatus/SketchResult/CosCredentials` | +| `src/utils/request.ts` 或新增 `upload.ts` | 上传文件统一带 token 与业务 header | + +### 后端 `wxmp_backend` + +| 模块 | 内容 | +|---|---| +| `upload` | `GET /api/upload/credentials?key=...` 返回 STS 临时凭证或 COS 预签名 URL;`Upload` 表记录 | +| `wordcloud`(新增) | `POST /api/wordcloud/generate`、`GET /api/wordcloud/jobs/:id`、`GET /api/wordcloud/jobs/:id/result` | +| `wordcloud` 适配器 | 把小程序传入的底图+名字列表转成 wordcloud 契约请求;任务状态入库,用户归属校验 | +| `sketch`(新增) | `POST /api/sketch` 接收图片,返回处理后图片 URL;内部可先做基础处理或接外部 AI | +| `queue` | BullMQ 消费者把 wordcloud/sketch 任务状态同步到 `CustomizationTask`/`WordCloudJob` | +| `docs/wordcloud-contract.md` | 冻结 wordcloud 三/四个端点、字段、状态与错误语义,含版本号 | + +### 词云项目 `wordcloud` + +- 需要冻结的接口:`POST /api/jobs`(建议增加直接传名字列表/JSON 的方式)、`GET /api/jobs/{id}`、`GET /api/jobs/{id}/files/png`。 +- 其余 canvas、assets、projects、templates 等接口继续按它自己的节奏演进,小程序后端不依赖。 +- 若契约不变,wordcloud 内部重构无需通知 R4;契约变更时先升版本号,R4 单独出适配器更新。 + +## 2. 词云任务模型 + +小程序侧采用异步任务模型: + +```ts +interface WordCloudJob { + id: string + status: 'queued' | 'running' | 'success' | 'failed' + progress: number + imageUrl?: string + error?: string +} +``` + +流程: + +1. 前端上传底图,拿到 COS URL 或临时文件。 +2. `POST /api/wordcloud/generate` 提交底图 + 名字文本,后端创建任务并返回 `jobId`。 +3. 前端每 1-2 秒 `GET /api/wordcloud/jobs/:id` 轮询,`success` 后取 `imageUrl`。 +4. 结果图建议由 wxmp_backend 转存 COS 后返回微信可下载域名链接。 + +## 3. 设计注意事项 + +### DO + +- DO 小程序只调用 `wxmp_backend`,`wordcloud` 的地址、密钥、内部参数对小程序完全不可见。 +- DO 上传走临时凭证或预签名 URL,前端拿不到主账号 SecretKey。 +- DO 文件名与 `key` 由服务端生成或校验(如 `uploads/{userId}/{uuid}.jpg`),杜绝用户传路径穿越。 +- DO 限制文件类型与大小(底图建议 png/jpg ≤ 10MB、名单 ≤ 200 个名字),前后端双重校验。 +- DO 词云任务在数据库建记录并按用户隔离,用户只能查询自己的 job。 +- DO 轮询采用普通 HTTP GET,不做 SSE;小程序端 EventSource 支持不稳定。 +- DO 进度字段以 wordcloud 返回为准,前端只负责展示,不再用随机数模拟进度。 +- DO sketch 请求带登录态和文件大小校验,失败时前端降级本地灰度,并明确提示“已使用本地线稿”。 +- DO 长期运行的任务设置超时与失败清理,避免 COS 对象和任务记录无限堆积。 +- DO 在 `docs/wordcloud-contract.md` 记录契约版本,并在后端适配器代码里注释依赖版本。 + +### DON'T + +- DON'T 把 wordcloud 项目 fork 进 wxmp_backend,也不要把它的内部 Python/C++ 代码搬进 NestJS。 +- DON'T 在小程序前端硬编码 wordcloud 基础地址或直接调用它。 +- DON'T 上传逻辑使用完整云厂商密钥;密钥只存在于服务端环境变量。 +- DON'T 接受本地临时路径作为最终结果地址,wordcloud 返回的内部 `/api/jobs/...` 必须转成 COS 公网 URL。 +- DON'T 让用户通过猜 `jobId` 读取他人任务结果,所有查询都带 userId 条件。 +- DON'T 在密钥未配置时静默跳过上传/词云;返回结构化“未配置”错误,前端给出可理解提示。 +- DON'T 用假的 `setInterval` 进度假装生成完成,R4 结束前必须移除当前 wordcloud 页的模拟逻辑。 + +## 4. 补充内容 + +### 验收标准 + +- 小程序端上传图片可拿到 COS 可访问 URL,`Upload` 表有记录且归属当前用户。 +- `POST /api/wordcloud/generate` 可在真实 wordcloud 服务上产出 PNG,前端轮询到结果并保存相册。 +- `POST /api/sketch` 返回有效图片 URL;接口失败时前端走降级且不白屏。 +- 词云任务非本人不可访问;上传文件类型/大小校验生效。 +- `docs/wordcloud-contract.md` 已冻结并带版本号;前端 `wordcloud` 页不再有随机进度。 + +### 合并与依赖 + +- 分支名:前端与后端均为 `feat/r4-upload-wordcloud`。 +- 与 R1-R3 并行,不依赖商品/订单链路;后端上传基础设施可为后续 R2 的贴纸图片持久化提供能力。 +- wordcloud 契约若未冻结,R4 先完成“契约文档 + 后端适配层”,联调阶段再补真实 job。 + +### 风险 + +- wordcloud 正在大量变更,任务状态/产物路径随时可能变化;这正是契约冻结要解决的问题,联调时先锁定一个部署版本。 +- COS 与微信 `downloadFile`/`uploadFile` 合法域名必须提前配置,否则真机上传下载会失败。 +- 词云生成是 CPU 密集型任务,需要限制并发与单账号频率,防止被刷爆资源。 +- `designData` 中的贴纸图片若在 R4 接入上传,需要 R2 的设计 JSON 结构配合增加 `uploadedUrl` 字段,两分支交接时注意。 + +### 测试要求 + +- 后端:上传凭证、大小/类型校验、wordcloud 适配器正常/失败/超时、任务归属权限、sketch 接口。 +- 前端:词云上传、轮询进度、fail 重试、结果保存相册;线稿接口失败降级;无 COS 配置提示。 +- 集成:用固定 wordcloud 部署版本跑一次真实生成端到端 smoke。 + diff --git a/src/utils/api.ts b/src/utils/api.ts deleted file mode 100644 index b4090df..0000000 --- a/src/utils/api.ts +++ /dev/null @@ -1,90 +0,0 @@ -import http, { setToken, clearToken, getToken } from './request' - -export { getToken } - -/** - * 后端 API 方法集合 - * 对应 wxmp_backend 的路由(见后端 Swagger /docs) - * 说明:登录会调用后端 /api/auth/login,成功后把 accessToken 存入本地, - * 供后续请求自动携带。购物车/订单等仍可用本地 store.ts 作为离线兜底。 - */ - -export interface LoginResult { - accessToken: string - isNewUser: boolean // 首次登录(未设资料)为 true,前端需引导补填头像/姓名 - nickname: string | null - avatar: string | null -} - -/** - * 登录:把 wx.login() 的 code 交给后端,后端用 code2Session 换 openid, - * 自动注册/续登并签发 accessToken(个人主体无需手机号)。 - * 返回 isNewUser 供前端判断是否需补全资料。 - */ -export async function login(code: string): Promise { - const data = await http.post('/api/auth/login', { code }, { auth: false }) - if (data?.accessToken) { - setToken(data.accessToken) - } - return data -} - -/** 更新当前用户资料(昵称/头像),新用户在补填后提交到后端持久化 */ -export async function updateProfile(profile: { nickname?: string; avatar?: string }): Promise { - return http.patch('/api/users/me', profile) -} - -/** - * 首次注册:用 registerTicket + wx.getPhoneNumber 的 code 验证手机号,完成后自动登录 - */ -export async function registerWithPhone( - registerTicket: string, - phoneCode: string, - profile?: { nickname?: string; avatar?: string }, -): Promise<{ accessToken: string }> { - const data = await http.post<{ accessToken: string }>( - '/api/auth/register', - { registerTicket, phoneCode, ...profile }, - { auth: false }, - ) - setToken(data.accessToken) - return data -} - -/** 登出:仅清除本地 token(后端 JWT 无状态,无需撤销) */ -export function logout(): void { - clearToken() -} - -/** 后端用户信息(对应 User 模型;openpid 为主标识,openid 可空) */ -export interface UserProfile { - id: string - openpid?: string | null - openid?: string | null - unionid?: string | null - nickname?: string | null - avatar?: string | null - phone?: string | null - createdAt?: string - updatedAt?: string -} - -/** 获取当前登录用户信息 */ -export async function getMe(): Promise { - return http.get('/api/users/me') -} - -/** 商品列表 */ -export async function fetchProducts() { - return http.get('/api/products', { auth: false }) -} - -/** 商品详情 */ -export async function fetchProduct(id: string) { - return http.get(`/api/products/${id}`, { auth: false }) -} - -/** 分类列表 */ -export async function fetchCategories() { - return http.get('/api/categories', { auth: false }) -} diff --git a/src/utils/api/address.ts b/src/utils/api/address.ts new file mode 100644 index 0000000..bbafe6a --- /dev/null +++ b/src/utils/api/address.ts @@ -0,0 +1,7 @@ +/** + * R2 收货地址接口归属文件。 + * 后端 /api/addresses CRUD 就绪后,在这里补充: + * fetchAddresses / createAddress / updateAddress / deleteAddress / setDefaultAddress + * 返回类型优先直接对应 src/types/index.ts 的 AddressItem 契约。 + */ +export {} diff --git a/src/utils/api/auth.ts b/src/utils/api/auth.ts new file mode 100644 index 0000000..b208cd4 --- /dev/null +++ b/src/utils/api/auth.ts @@ -0,0 +1,45 @@ +import http, { clearToken, getToken, setToken } from '../request' + +export { getToken } + +export interface LoginResult { + accessToken: string + isNewUser: boolean // 首次登录(未设资料)为 true,前端需引导补填头像/姓名 + nickname: string | null + avatar: string | null +} + +/** + * 登录:把 wx.login() 的 code 交给后端,后端用 code2Session 换 openid, + * 自动注册/续登并签发 accessToken(个人主体无需手机号)。 + * 返回 isNewUser 供前端判断是否需补全资料。 + */ +export async function login(code: string): Promise { + const data = await http.post('/api/auth/login', { code }, { auth: false }) + if (data?.accessToken) { + setToken(data.accessToken) + } + return data +} + +/** + * 首次注册:用 registerTicket + wx.getPhoneNumber 的 code 验证手机号,完成后自动登录 + */ +export async function registerWithPhone( + registerTicket: string, + phoneCode: string, + profile?: { nickname?: string; avatar?: string }, +): Promise<{ accessToken: string }> { + const data = await http.post<{ accessToken: string }>( + '/api/auth/register', + { registerTicket, phoneCode, ...profile }, + { auth: false }, + ) + setToken(data.accessToken) + return data +} + +/** 登出:仅清除本地 token(后端 JWT 无状态,无需撤销) */ +export function logout(): void { + clearToken() +} diff --git a/src/utils/api/design.ts b/src/utils/api/design.ts new file mode 100644 index 0000000..c8b10da --- /dev/null +++ b/src/utils/api/design.ts @@ -0,0 +1,7 @@ +/** + * R2 设计清单接口归属文件。 + * 后端 /api/design-list CRUD 就绪后,在这里补充: + * fetchDesignList / createDesign / updateDesign / deleteDesign + * 设计数据(贴纸、掩膜、分类信息)以 JSON 方式随 items/designData 提交。 + */ +export {} diff --git a/src/utils/api/index.ts b/src/utils/api/index.ts new file mode 100644 index 0000000..166f13b --- /dev/null +++ b/src/utils/api/index.ts @@ -0,0 +1,11 @@ +/** + * API 层聚合入口:页面统一从 '../../utils/api' 导入。 + * 新接口写在 api/.ts,本文件只负责 re-export,不要往单文件堆代码。 + */ +export * from './auth' +export * from './user' +export * from './product' +export * from './address' +export * from './design' +export * from './order' +export * from './upload' diff --git a/src/utils/api/order.ts b/src/utils/api/order.ts new file mode 100644 index 0000000..a3b4cea --- /dev/null +++ b/src/utils/api/order.ts @@ -0,0 +1,7 @@ +/** + * R3 订单接口归属文件。 + * 后端 /api/orders 就绪后,在这里补充: + * createOrder / fetchOrders / fetchOrderDetail / payOrder + * 金额一律以服务端重算结果为准,前端只提交商品/设计数据与地址快照。 + */ +export {} diff --git a/src/utils/api/product.ts b/src/utils/api/product.ts new file mode 100644 index 0000000..8d296fd --- /dev/null +++ b/src/utils/api/product.ts @@ -0,0 +1,16 @@ +import http from '../request' + +/** 商品列表 */ +export async function fetchProducts() { + return http.get('/api/products', { auth: false }) +} + +/** 商品详情 */ +export async function fetchProduct(id: string) { + return http.get(`/api/products/${id}`, { auth: false }) +} + +/** 分类列表 */ +export async function fetchCategories() { + return http.get('/api/categories', { auth: false }) +} diff --git a/src/utils/api/upload.ts b/src/utils/api/upload.ts new file mode 100644 index 0000000..9aae6ed --- /dev/null +++ b/src/utils/api/upload.ts @@ -0,0 +1,7 @@ +/** + * R4 上传接口归属文件。 + * 后端 COS/wordcloud 适配器就绪后,在这里补充: + * getUploadCredentials / uploadImage / generateWordCloud / getWordCloudJob / sketchImage + * 词云任务使用“创建任务 -> 轮询状态 -> 取结果链接”的异步模型。 + */ +export {} diff --git a/src/utils/api/user.ts b/src/utils/api/user.ts new file mode 100644 index 0000000..d629f32 --- /dev/null +++ b/src/utils/api/user.ts @@ -0,0 +1,24 @@ +import http from '../request' + +/** 后端用户信息(对应 User 模型;openpid 为主标识,openid 可空) */ +export interface UserProfile { + id: string + openpid?: string | null + openid?: string | null + unionid?: string | null + nickname?: string | null + avatar?: string | null + phone?: string | null + createdAt?: string + updatedAt?: string +} + +/** 更新当前用户资料(昵称/头像),新用户在补填后提交到后端持久化 */ +export async function updateProfile(profile: { nickname?: string; avatar?: string }): Promise { + return http.patch('/api/users/me', profile) +} + +/** 获取当前登录用户信息 */ +export async function getMe(): Promise { + return http.get('/api/users/me') +} diff --git a/src/utils/store.ts b/src/utils/store.ts deleted file mode 100644 index 96ec662..0000000 --- a/src/utils/store.ts +++ /dev/null @@ -1,328 +0,0 @@ -import Taro from '@tarojs/taro' -import type { DesignItem, OrderItem, AddressItem, StickerItem } from '../types' -import { PRODUCT_ICON_MAP } from './productConfig' -import { assetUrl } from './asset' - -import { invalidateAuthCache } from './authState' -// 重新导出类型,供各页面从 store 直接引用(修正原「声明但不导出」的编译错误) -export type { DesignItem, OrderItem, AddressItem, StickerItem } - -const THEME_KEY = 'smart_theme' -const USER_KEY = 'smart_user_info' -const ACTIVE_USER_KEY = 'smart_active_openid' - -/** 判断 openid 是否为历史版 mock 残留(形如 mock_xxx) */ -export function isMockOpenid(openid?: string | null): boolean { - return !!openid && (openid.startsWith('mock_') || openid.startsWith('mock-')) -} - -// ---------- 当前用户 openid 管理 ---------- - -function getActiveOpenid(): string { - const user = getUserInfoRaw() - const openid = user?.openid || Taro.getStorageSync(ACTIVE_USER_KEY) || '_guest_' - Taro.setStorageSync(ACTIVE_USER_KEY, openid) - return openid -} - -function key(scope: string): string { - const prefix = getActiveOpenid() - return `${scope}_${prefix}` -} - -// ---------- 用户数据 ---------- - -const USER_REGISTRY_KEY = 'smart_user_registry' -const ADMIN_PASSWORD = 'zhihui2024' - -// ---------- 用户注册表 ---------- - -function getUserRegistry(): string[] { - try { return Taro.getStorageSync(USER_REGISTRY_KEY) || [] } catch { return [] } -} - -function saveToRegistry(openid: string) { - const list = getUserRegistry() - if (!list.includes(openid)) { - list.push(openid) - Taro.setStorageSync(USER_REGISTRY_KEY, list) - } -} - -function removeFromRegistry(openid: string) { - const list = getUserRegistry().filter(id => id !== openid) - Taro.setStorageSync(USER_REGISTRY_KEY, list) -} - -// ---------- 用户数据 ---------- - -export function getUserInfoRaw(): any { - try { return Taro.getStorageSync(USER_KEY) } catch { return null } -} - -export function setUserInfoRaw(info: any) { - Taro.setStorageSync(USER_KEY, info) - if (info?.openid) { - Taro.setStorageSync(ACTIVE_USER_KEY, info.openid) - // 为每个用户备份独立副本,方便切换账号时读取 - Taro.setStorageSync(`user_info_${info.openid}`, info) - saveToRegistry(info.openid) - } - invalidateAuthCache() - Taro.eventCenter?.trigger('authStateChanged', { openid: info?.openid || '' }) -} - -export function getUserInfoByOpenid(openid: string): any | null { - try { - const backup = Taro.getStorageSync(`user_info_${openid}`) - if (backup) return backup - } catch {} - const current = getUserInfoRaw() - if (current?.openid === openid) return current - return null -} - -export function clearUserInfo() { - // 仅退出登录,不删除用户数据 - Taro.removeStorageSync(USER_KEY) - Taro.removeStorageSync(ACTIVE_USER_KEY) - invalidateAuthCache() - Taro.eventCenter?.trigger('authStateChanged', { openid: '' }) -} - -export function setUserInfo(info: any) { - setUserInfoRaw(info) -} - -export function getUserInfo() { - return getUserInfoRaw() -} - -// ---------- 用户数据库管理 ---------- - -export function listAllUsers() { - const registry = getUserRegistry() - return registry.map(openid => { - const info = getUserInfoByOpenid(openid) - const dList = getDesignListFor(openid) - const oList = getOrderListFor(openid) - return { - openid, - nickName: info?.nickName || '未知用户', - avatarUrl: info?.avatarUrl || '', - loginAt: info?.loginAt || 0, - designCount: dList.length, - orderCount: oList.length - } - }) -} - -export function createUser(nickName: string, avatarUrl?: string) { - const openid = 'mock_' + Date.now().toString(36) + '_' + Math.random().toString(36).slice(2, 6) - const info = { openid, nickName: nickName || '微信用户', avatarUrl: avatarUrl || '', loginAt: Date.now() } - setUserInfoRaw(info) - return info -} - -export function switchUser(openid: string) { - const info = getUserInfoByOpenid(openid) - if (!info) return false - Taro.setStorageSync(USER_KEY, info) - Taro.setStorageSync(ACTIVE_USER_KEY, openid) - return true -} - -export function deleteUser(openid: string) { - // 删除该用户的所有数据 - Taro.removeStorageSync(`user_info_${openid}`) - Taro.removeStorageSync(`design_list_${openid}`) - Taro.removeStorageSync(`order_list_${openid}`) - Taro.removeStorageSync(`address_list_${openid}`) - removeFromRegistry(openid) - // 如果删的是当前登录用户,清掉登录态 - const current = getUserInfoRaw() - if (current?.openid === openid) { - clearUserInfo() - } -} - -export function verifyAdminPassword(password: string): boolean { - return password === ADMIN_PASSWORD -} - -// ---------- 跨用户读取辅助函数 ---------- - -function keyFor(scope: string, openid: string) { - return `${scope}_${openid}` -} - -function getDesignListFor(openid: string): DesignItem[] { - try { return Taro.getStorageSync(keyFor('design_list', openid)) || [] } catch { return [] } -} - -function getOrderListFor(openid: string): OrderItem[] { - try { return Taro.getStorageSync(keyFor('order_list', openid)) || [] } catch { return [] } -} - -// ---------- 设计清单 ---------- - -export function getDesignList(): DesignItem[] { - try { return Taro.getStorageSync(key('design_list')) || [] } catch { return [] } -} - -export function setDesignList(list: DesignItem[]) { - Taro.setStorageSync(key('design_list'), list) -} - -export function addDesign(product: any, count: number): DesignItem { - const list = getDesignList() - const iconImg = assetUrl(product?.iconImg || PRODUCT_ICON_MAP[product?.id] || '/icon/四角星.svg') - const item: DesignItem = { - id: 'DSG' + Date.now(), - productId: product.id, - productName: product.name, - productIcon: iconImg, - unitPrice: product.price, - count, - status: 'undesigned', - createdAt: new Date().toISOString().slice(0, 10) - } - setDesignList([...list, item]) - return item -} - -export function updateDesign(id: string, patch: Partial) { - const list = getDesignList() - const idx = list.findIndex(d => d.id === id) - if (idx === -1) return - list[idx] = { ...list[idx], ...patch } - setDesignList(list) -} - -/** 批量删除设计条目 */ -export function removeDesigns(ids: string[]) { - const list = getDesignList().filter(d => !ids.includes(d.id)) - setDesignList(list) -} - -/** 根据ID删除单条设计 */ -export function removeDesign(id: string) { - const list = getDesignList().filter(d => d.id !== id) - setDesignList(list) -} - -// ---------- 订单 ---------- - -export function getOrderList(): OrderItem[] { - try { return Taro.getStorageSync(key('order_list')) || [] } catch { return [] } -} - -export function setOrderList(list: OrderItem[]) { - Taro.setStorageSync(key('order_list'), list) -} - -export function designToOrder(designId: string): OrderItem | null { - const dList = getDesignList() - const oList = getOrderList() - const design = dList.find(d => d.id === designId) - if (!design) return null - - const rawIcon = design.productIcon?.startsWith('/icon/') || /^https?:/i.test(design.productIcon || '') - ? design.productIcon - : PRODUCT_ICON_MAP[design.productId] || '/icon/四角星.svg' - - const iconImg = assetUrl(rawIcon) - - const order: OrderItem = { - id: 'ORD' + Date.now().toString().slice(-9), - productName: design.productName, - productIcon: iconImg, - statusCode: 'pending', - date: new Date().toLocaleString('zh-CN', { month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }).replace(/\//g, '-'), - price: '¥' + (design.unitPrice * design.count).toFixed(2), - count: design.count, - sku: `${design.productName} × ${design.count}` - } - - const dIdx = dList.findIndex(d => d.id === designId) - if (dIdx !== -1) { - dList[dIdx].status = 'ordered' - dList[dIdx].orderId = order.id - } - - setDesignList(dList) - setOrderList([order, ...oList]) - return order -} - -// ---------- 主题 ---------- - -export type ThemeMode = 'light' | 'dark' | 'auto' - -export function getTheme(): ThemeMode { - try { return Taro.getStorageSync(THEME_KEY) || 'auto' } catch { return 'auto' } -} - -export function setTheme(theme: ThemeMode) { - Taro.setStorageSync(THEME_KEY, theme) -} - -// 跟随系统模式下,系统主题由 onThemeChange/getAppBaseInfo 写入缓存,供 resolveTheme 使用 -let detectedSystemTheme: 'light' | 'dark' | null = null - -export function setDetectedSystemTheme(t: 'light' | 'dark'): void { - detectedSystemTheme = t -} - -/** 根据自动模式解析实际生效主题 */ -export function resolveTheme(mode: ThemeMode): 'light' | 'dark' { - if (mode === 'auto') { - // darkmode 开启后 getAppBaseInfo().theme 能拿到系统主题;缓存仅用于启动时加速 - if (detectedSystemTheme) return detectedSystemTheme - try { - const info = Taro.getAppBaseInfo() - if (info.theme === 'dark' || info.theme === 'light') return info.theme - } catch { /* ignore */ } - return 'light' - } - return mode -} - -// ---------- 收货地址 ---------- - -export function getAddressList(): AddressItem[] { - try { return Taro.getStorageSync(key('address_list')) || [] } catch { return [] } -} - -export function setAddressList(list: AddressItem[]) { - Taro.setStorageSync(key('address_list'), list) -} - -export function addAddress(addr: Omit): AddressItem { - const list = getAddressList() - const item: AddressItem = { ...addr, id: 'ADR' + Date.now() } - // 若设为默认,取消其他默认 - if (item.isDefault) { - list.forEach(a => { a.isDefault = false }) - } - setAddressList([item, ...list]) - return item -} - -export function updateAddress(id: string, patch: Partial) { - const list = getAddressList() - const idx = list.findIndex(a => a.id === id) - if (idx === -1) return - if (patch.isDefault) list.forEach(a => { a.isDefault = false }) - list[idx] = { ...list[idx], ...patch } - setAddressList(list) -} - -export function deleteAddress(id: string) { - const list = getAddressList().filter(a => a.id !== id) - setAddressList(list) -} - -export function getDefaultAddress(): AddressItem | undefined { - return getAddressList().find(a => a.isDefault) -} diff --git a/src/utils/store/address.ts b/src/utils/store/address.ts new file mode 100644 index 0000000..abb815d --- /dev/null +++ b/src/utils/store/address.ts @@ -0,0 +1,42 @@ +import Taro from '@tarojs/taro' +import type { AddressItem } from '../../types' +import { key } from './keys' + +// ---------- 收货地址 ---------- + +export function getAddressList(): AddressItem[] { + try { return Taro.getStorageSync(key('address_list')) || [] } catch { return [] } +} + +export function setAddressList(list: AddressItem[]) { + Taro.setStorageSync(key('address_list'), list) +} + +export function addAddress(addr: Omit): AddressItem { + const list = getAddressList() + const item: AddressItem = { ...addr, id: 'ADR' + Date.now() } + // 若设为默认,取消其他默认 + if (item.isDefault) { + list.forEach(a => { a.isDefault = false }) + } + setAddressList([item, ...list]) + return item +} + +export function updateAddress(id: string, patch: Partial) { + const list = getAddressList() + const idx = list.findIndex(a => a.id === id) + if (idx === -1) return + if (patch.isDefault) list.forEach(a => { a.isDefault = false }) + list[idx] = { ...list[idx], ...patch } + setAddressList(list) +} + +export function deleteAddress(id: string) { + const list = getAddressList().filter(a => a.id !== id) + setAddressList(list) +} + +export function getDefaultAddress(): AddressItem | undefined { + return getAddressList().find(a => a.isDefault) +} diff --git a/src/utils/store/design.ts b/src/utils/store/design.ts new file mode 100644 index 0000000..b219e81 --- /dev/null +++ b/src/utils/store/design.ts @@ -0,0 +1,57 @@ +import Taro from '@tarojs/taro' +import type { DesignItem } from '../../types' +import { assetUrl } from '../asset' +import { PRODUCT_ICON_MAP } from '../productConfig' +import { key, keyFor } from './keys' + +/** 跨用户读取指定 openid 的设计清单(账号管理用) */ +export function getDesignListFor(openid: string): DesignItem[] { + try { return Taro.getStorageSync(keyFor('design_list', openid)) || [] } catch { return [] } +} + +// ---------- 设计清单 ---------- + +export function getDesignList(): DesignItem[] { + try { return Taro.getStorageSync(key('design_list')) || [] } catch { return [] } +} + +export function setDesignList(list: DesignItem[]) { + Taro.setStorageSync(key('design_list'), list) +} + +export function addDesign(product: any, count: number): DesignItem { + const list = getDesignList() + const iconImg = assetUrl(product?.iconImg || PRODUCT_ICON_MAP[product?.id] || '/icon/四角星.svg') + const item: DesignItem = { + id: 'DSG' + Date.now(), + productId: product.id, + productName: product.name, + productIcon: iconImg, + unitPrice: product.price, + count, + status: 'undesigned', + createdAt: new Date().toISOString().slice(0, 10) + } + setDesignList([...list, item]) + return item +} + +export function updateDesign(id: string, patch: Partial) { + const list = getDesignList() + const idx = list.findIndex(d => d.id === id) + if (idx === -1) return + list[idx] = { ...list[idx], ...patch } + setDesignList(list) +} + +/** 批量删除设计条目 */ +export function removeDesigns(ids: string[]) { + const list = getDesignList().filter(d => !ids.includes(d.id)) + setDesignList(list) +} + +/** 根据ID删除单条设计 */ +export function removeDesign(id: string) { + const list = getDesignList().filter(d => d.id !== id) + setDesignList(list) +} diff --git a/src/utils/store/index.ts b/src/utils/store/index.ts new file mode 100644 index 0000000..259b6fd --- /dev/null +++ b/src/utils/store/index.ts @@ -0,0 +1,47 @@ +/** + * DA 层聚合入口:页面统一从 '../../utils/store' 导入。 + * 新增领域逻辑请写在 store/.ts,本文件只负责 re-export。 + */ +export { isMockOpenid } from './keys' +export { + getUserInfoRaw, + setUserInfoRaw, + getUserInfoByOpenid, + clearUserInfo, + setUserInfo, + getUserInfo, + listAllUsers, + createUser, + switchUser, + deleteUser, + verifyAdminPassword +} from './user' +export { + getDesignList, + setDesignList, + addDesign, + updateDesign, + removeDesigns, + removeDesign +} from './design' +export { + getOrderList, + setOrderList, + designToOrder +} from './order' +export { + getAddressList, + setAddressList, + addAddress, + updateAddress, + deleteAddress, + getDefaultAddress +} from './address' +export { + getTheme, + setTheme, + setDetectedSystemTheme, + resolveTheme +} from './theme' +export type { ThemeMode } from './theme' +export type { DesignItem, OrderItem, AddressItem, StickerItem } from '../../types' diff --git a/src/utils/store/keys.ts b/src/utils/store/keys.ts new file mode 100644 index 0000000..ab9966f --- /dev/null +++ b/src/utils/store/keys.ts @@ -0,0 +1,35 @@ +import Taro from '@tarojs/taro' + +/** 当前登录用户信息在 Storage 中的 key */ +export const USER_KEY = 'smart_user_info' +/** 当前激活 openid 在 Storage 中的 key */ +export const ACTIVE_USER_KEY = 'smart_active_openid' + +/** 判断 openid 是否为历史版 mock 残留(形如 mock_xxx) */ +export function isMockOpenid(openid?: string | null): boolean { + return !!openid && (openid.startsWith('mock_') || openid.startsWith('mock-')) +} + +/** 取当前用户 openid;没有登录态时回退 _guest_ 并缓存 */ +function getActiveOpenid(): string { + let user: any = null + try { + user = Taro.getStorageSync(USER_KEY) + } catch { + user = null + } + const openid = user?.openid || Taro.getStorageSync(ACTIVE_USER_KEY) || '_guest_' + Taro.setStorageSync(ACTIVE_USER_KEY, openid) + return openid +} + +/** 按当前用户生成作用域 storage key */ +export function key(scope: string): string { + const prefix = getActiveOpenid() + return `${scope}_${prefix}` +} + +/** 按指定 openid 生成作用域 storage key */ +export function keyFor(scope: string, openid: string): string { + return `${scope}_${openid}` +} diff --git a/src/utils/store/order.ts b/src/utils/store/order.ts new file mode 100644 index 0000000..062991f --- /dev/null +++ b/src/utils/store/order.ts @@ -0,0 +1,55 @@ +import Taro from '@tarojs/taro' +import type { OrderItem } from '../../types' +import { assetUrl } from '../asset' +import { PRODUCT_ICON_MAP } from '../productConfig' +import { getDesignList, setDesignList } from './design' +import { key, keyFor } from './keys' + +/** 跨用户读取指定 openid 的订单列表(账号管理用) */ +export function getOrderListFor(openid: string): OrderItem[] { + try { return Taro.getStorageSync(keyFor('order_list', openid)) || [] } catch { return [] } +} + +// ---------- 订单 ---------- + +export function getOrderList(): OrderItem[] { + try { return Taro.getStorageSync(key('order_list')) || [] } catch { return [] } +} + +export function setOrderList(list: OrderItem[]) { + Taro.setStorageSync(key('order_list'), list) +} + +export function designToOrder(designId: string): OrderItem | null { + const dList = getDesignList() + const oList = getOrderList() + const design = dList.find(d => d.id === designId) + if (!design) return null + + const rawIcon = design.productIcon?.startsWith('/icon/') || /^https?:/i.test(design.productIcon || '') + ? design.productIcon + : PRODUCT_ICON_MAP[design.productId] || '/icon/四角星.svg' + + const iconImg = assetUrl(rawIcon) + + const order: OrderItem = { + id: 'ORD' + Date.now().toString().slice(-9), + productName: design.productName, + productIcon: iconImg, + statusCode: 'pending', + date: new Date().toLocaleString('zh-CN', { month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }).replace(/\//g, '-'), + price: '¥' + (design.unitPrice * design.count).toFixed(2), + count: design.count, + sku: `${design.productName} × ${design.count}` + } + + const dIdx = dList.findIndex(d => d.id === designId) + if (dIdx !== -1) { + dList[dIdx].status = 'ordered' + dList[dIdx].orderId = order.id + } + + setDesignList(dList) + setOrderList([order, ...oList]) + return order +} diff --git a/src/utils/store/theme.ts b/src/utils/store/theme.ts new file mode 100644 index 0000000..e14c3a9 --- /dev/null +++ b/src/utils/store/theme.ts @@ -0,0 +1,33 @@ +import Taro from '@tarojs/taro' + +const THEME_KEY = 'smart_theme' + +export type ThemeMode = 'light' | 'dark' | 'auto' + +export function getTheme(): ThemeMode { + try { return Taro.getStorageSync(THEME_KEY) || 'auto' } catch { return 'auto' } +} + +export function setTheme(theme: ThemeMode) { + Taro.setStorageSync(THEME_KEY, theme) +} + +// 跟随系统模式下,系统主题由 onThemeChange/getAppBaseInfo 写入缓存,供 resolveTheme 使用 +let detectedSystemTheme: 'light' | 'dark' | null = null + +export function setDetectedSystemTheme(t: 'light' | 'dark'): void { + detectedSystemTheme = t +} + +/** 根据自动模式解析实际生效主题 */ +export function resolveTheme(mode: ThemeMode): 'light' | 'dark' { + if (mode === 'auto') { + if (detectedSystemTheme) return detectedSystemTheme + try { + const info = Taro.getAppBaseInfo() + if (info.theme === 'dark' || info.theme === 'light') return info.theme + } catch { /* ignore */ } + return 'light' + } + return mode +} diff --git a/src/utils/store/user.ts b/src/utils/store/user.ts new file mode 100644 index 0000000..633daa5 --- /dev/null +++ b/src/utils/store/user.ts @@ -0,0 +1,123 @@ +import Taro from '@tarojs/taro' +import { invalidateAuthCache } from '../authState' +import { getDesignListFor } from './design' +import { ACTIVE_USER_KEY, USER_KEY } from './keys' +import { getOrderListFor } from './order' + +const USER_REGISTRY_KEY = 'smart_user_registry' +const ADMIN_PASSWORD = 'zhihui2024' + +// ---------- 用户注册表 ---------- + +function getUserRegistry(): string[] { + try { return Taro.getStorageSync(USER_REGISTRY_KEY) || [] } catch { return [] } +} + +function saveToRegistry(openid: string) { + const list = getUserRegistry() + if (!list.includes(openid)) { + list.push(openid) + Taro.setStorageSync(USER_REGISTRY_KEY, list) + } +} + +function removeFromRegistry(openid: string) { + const list = getUserRegistry().filter(id => id !== openid) + Taro.setStorageSync(USER_REGISTRY_KEY, list) +} + +// ---------- 用户数据 ---------- + +export function getUserInfoRaw(): any { + try { return Taro.getStorageSync(USER_KEY) } catch { return null } +} + +export function setUserInfoRaw(info: any) { + Taro.setStorageSync(USER_KEY, info) + if (info?.openid) { + Taro.setStorageSync(ACTIVE_USER_KEY, info.openid) + // 为每个用户备份独立副本,方便切换账号时读取 + Taro.setStorageSync(`user_info_${info.openid}`, info) + saveToRegistry(info.openid) + } + invalidateAuthCache() + Taro.eventCenter?.trigger('authStateChanged', { openid: info?.openid || '' }) +} + +export function getUserInfoByOpenid(openid: string): any | null { + try { + const backup = Taro.getStorageSync(`user_info_${openid}`) + if (backup) return backup + } catch {} + const current = getUserInfoRaw() + if (current?.openid === openid) return current + return null +} + +export function clearUserInfo() { + // 仅退出登录,不删除用户数据 + Taro.removeStorageSync(USER_KEY) + Taro.removeStorageSync(ACTIVE_USER_KEY) + invalidateAuthCache() + Taro.eventCenter?.trigger('authStateChanged', { openid: '' }) +} + +export function setUserInfo(info: any) { + setUserInfoRaw(info) +} + +export function getUserInfo() { + return getUserInfoRaw() +} + +// ---------- 用户数据库管理 ---------- + +export function listAllUsers() { + const registry = getUserRegistry() + return registry.map(openid => { + const info = getUserInfoByOpenid(openid) + const dList = getDesignListFor(openid) + const oList = getOrderListFor(openid) + return { + openid, + nickName: info?.nickName || '未知用户', + avatarUrl: info?.avatarUrl || '', + loginAt: info?.loginAt || 0, + designCount: dList.length, + orderCount: oList.length + } + }) +} + +export function createUser(nickName: string, avatarUrl?: string) { + const openid = 'mock_' + Date.now().toString(36) + '_' + Math.random().toString(36).slice(2, 6) + const info = { openid, nickName: nickName || '微信用户', avatarUrl: avatarUrl || '', loginAt: Date.now() } + setUserInfoRaw(info) + return info +} + +export function switchUser(openid: string) { + const info = getUserInfoByOpenid(openid) + if (!info) return false + Taro.setStorageSync(USER_KEY, info) + Taro.setStorageSync(ACTIVE_USER_KEY, openid) + return true +} + +export function deleteUser(openid: string) { + // 删除该用户的所有数据 + Taro.removeStorageSync(`user_info_${openid}`) + Taro.removeStorageSync(`design_list_${openid}`) + Taro.removeStorageSync(`order_list_${openid}`) + Taro.removeStorageSync(`address_list_${openid}`) + removeFromRegistry(openid) + // 如果删的是当前登录用户,清掉登录态 + const current = getUserInfoRaw() + if (current?.openid === openid) { + clearUserInfo() + } +} + +export function verifyAdminPassword(password: string): boolean { + return password === ADMIN_PASSWORD +}