修改动画效果(失败T_T)
商品页动画。
This commit is contained in:
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"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","navigationBarTextStyle":"black","backgroundColor":"#ffffff"},"tabBar":{"custom":true,"list":[{"pagePath":"pages/index/index","text":"首页"},{"pagePath":"pages/shop/index","text":"商品"},{"pagePath":"pages/designList/index","text":"设计清单"},{"pagePath":"pages/orders/index","text":"订单"},{"pagePath":"pages/profile/index","text":"我的"}]}}
|
||||
{"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"],"lazyCodeLoading":"requiredComponents","renderer":"skyline","componentFramework":"glass-easel","rendererOptions":{"skyline":{"disableABTest":true,"defaultDisplayBlock":false}},"window":{"backgroundTextStyle":"dark","navigationStyle":"custom","navigationBarTextStyle":"black","backgroundColor":"#ffffff"},"tabBar":{"custom":true,"list":[{"pagePath":"pages/index/index","text":"首页"},{"pagePath":"pages/shop/index","text":"商品"},{"pagePath":"pages/designList/index","text":"设计清单"},{"pagePath":"pages/orders/index","text":"订单"},{"pagePath":"pages/profile/index","text":"我的"}]}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+16
@@ -141,6 +141,22 @@
|
||||
</canvas>
|
||||
</template>
|
||||
|
||||
<template name="tmpl_0_27">
|
||||
<grid-view type="{{xs.b(i.p5,'aligned')}}" cross-axis-count="{{xs.b(i.p0,2)}}" max-cross-axis-extent="{{xs.b(i.p3,0)}}" main-axis-gap="{{xs.b(i.p2,0)}}" cross-axis-gap="{{xs.b(i.p1,0)}}" padding="{{xs.b(i.p4,[0, 0, 0, 0])}}" style="{{i.st}}" class="{{i.cl}}" bindtap="eh" id="{{i.uid||i.sid}}" data-sid="{{i.sid}}">
|
||||
<block wx:for="{{i.cn}}" wx:key="sid">
|
||||
<template is="{{xs.a(c, item.nn, l)}}" data="{{i:item,c:c+1,l:xs.f(l,item.nn)}}" />
|
||||
</block>
|
||||
</grid-view>
|
||||
</template>
|
||||
|
||||
<template name="tmpl_0_60">
|
||||
<share-element key="{{i.p2}}" transform="{{xs.b(i.p3,false)}}" duration="{{xs.b(i.p0,300)}}" easing-function="{{xs.b(i.p1,'ease-out')}}" transition-on-gesture shuttle-on-push="{{i.p0 === 301 ? 'from' : 'to'}}" rect-tween-type="linear" style="{{i.st}}" class="{{i.cl}}" bindtap="eh" id="{{i.uid||i.sid}}" data-sid="{{i.sid}}">
|
||||
<block wx:for="{{i.cn}}" wx:key="sid">
|
||||
<template is="{{xs.a(c, item.nn, l)}}" data="{{i:item,c:c+1,l:xs.f(l,item.nn)}}" />
|
||||
</block>
|
||||
</share-element>
|
||||
</template>
|
||||
|
||||
<template name="tmpl_0_8">
|
||||
<block>{{i.v}}</block>
|
||||
</template>
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
@@ -0,0 +1 @@
|
||||
.custom-tab-bar{align-items:center;background:#fff;border-top:3rpx dashed #a0c4ff;bottom:0;box-sizing:border-box;display:flex;height:120rpx;justify-content:space-around;left:0;padding-bottom:env(safe-area-inset-bottom);position:fixed;right:0;z-index:1000}.tab-item{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:10rpx 20rpx;position:relative}.tab-icon-img{height:28rpx;margin-bottom:4rpx;opacity:.6;transition:transform .2s;width:28rpx}.tab-item.active .tab-icon-img{opacity:1;transform:scale(1.15)}.tab-label{color:#b08d8d;font-size:20rpx;transition:color .2s}.tab-item.active .tab-label{color:#ff9a9e;font-weight:600}
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[777],{653:function(n,e,t){var a=t(7842),c=t(118),i=t(758),o=t.n(i),s=t(4848),p=[{pagePath:"/pages/index/index",text:"\u9996\u9875",icon:"/icon/\u9996\u9875.png"},{pagePath:"/pages/shop/index",text:"\u5546\u54c1",icon:"/icon/\u5546\u54c1.png"},{pagePath:"/pages/designList/index",text:"\u8bbe\u8ba1\u6e05\u5355",icon:"/icon/\u8c03\u8272\u76d8.png"},{pagePath:"/pages/orders/index",text:"\u8ba2\u5355",icon:"/icon/\u5305\u88f9.png"},{pagePath:"/pages/profile/index",text:"\u6211\u7684",icon:"/icon/\u4e2a\u4eba.png"}];function r(){var n,e="/".concat((null===(n=o().getCurrentInstance().router)||void 0===n?void 0:n.path)||"pages/index/index"),t=function(n){o().switchTab({url:n})};return(0,s.jsx)(c.Ss,{className:"custom-tab-bar",children:p.map(function(n){var a=e===n.pagePath;return(0,s.jsxs)(c.Ss,{className:"tab-item ".concat(a?"active":""),onTap:function(){return t(n.pagePath)},children:[(0,s.jsx)(c._V,{className:"tab-icon-img ".concat(a?"active":""),src:n.icon,mode:"aspectFit"}),(0,s.jsx)(c.EY,{className:"tab-label",children:n.text})]},n.pagePath)})})}Component((0,a.createComponentConfig)(r,"custom-tab-bar/index"))}},function(n){var e=function(e){return n(n.s=e)};n.O(0,[907,96],function(){return e(653)});n.O()}]);
|
||||
"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[777],{},function(n){var t=function(t){return n(n.s=t)};n.O(0,[907,96,76],function(){return t(653)});n.O()}]);
|
||||
Vendored
+48
-1
@@ -1 +1,48 @@
|
||||
.custom-tab-bar{-ms-flex-pack:distribute;-ms-flex-align:center;-webkit-align-items:center;align-items:center;background:#fff;border-top:3rpx dashed #a0c4ff;bottom:0;display:-webkit-flex;display:-ms-flexbox;display:flex;height:120rpx;-webkit-justify-content:space-around;justify-content:space-around;left:0;padding-bottom:env(safe-area-inset-bottom);position:fixed;right:0;z-index:1000}.tab-item{-ms-flex-align:center;-ms-flex-pack:center;-webkit-align-items:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center;padding:10rpx 20rpx;position:relative}.tab-icon-img{height:28rpx;margin-bottom:4rpx;opacity:.6;-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s;width:28rpx}.tab-item.active .tab-icon-img{opacity:1;-webkit-transform:scale(1.15);-ms-transform:scale(1.15);transform:scale(1.15)}.tab-label{color:#b08d8d;font-size:20rpx;-webkit-transition:color .2s;transition:color .2s}.tab-item.active .tab-label{color:#ff9a9e;font-weight:600}
|
||||
.custom-tab-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 120rpx;
|
||||
box-sizing: border-box;
|
||||
background: #ffffff;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
border-top: 3rpx dashed #a0c4ff;
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.tab-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 10rpx 20rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tab-icon-img {
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
margin-bottom: 4rpx;
|
||||
transition: transform 0.2s;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.tab-item.active .tab-icon-img {
|
||||
transform: scale(1.15);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.tab-label {
|
||||
font-size: 20rpx;
|
||||
color: #b08d8d;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.tab-item.active .tab-label {
|
||||
color: #ff9a9e;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"navigationBarTitleText":"收货地址","usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","navigationBarTitleText":"收货地址","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[301],{6855:function(e,n,t){var a=t(7842),c=t(118),s=t(9703),r=t(9201),i=t(5414),l=t(4848);function o(){var e=(0,s.wR)(),n=(e.theme,e.resolvedTheme),t=(0,r.c)();(0,i.l)(n);var a=[{title:"\u4e00\u3001\u7528\u6237\u6743\u8d23",content:"\u7528\u6237\u786e\u8ba4\u63d0\u4ea4\u7684\u8bbe\u8ba1\u5185\u5bb9\u4e0d\u4fb5\u72af\u7b2c\u4e09\u65b9\u77e5\u8bc6\u4ea7\u6743\uff0c\u5b9a\u5236\u5546\u54c1\u4e00\u7ecf\u786e\u8ba4\u4e0b\u5355\u5373\u8fdb\u5165\u751f\u4ea7\u6d41\u7a0b\uff0c\u975e\u8d28\u91cf\u95ee\u9898\u4e0d\u652f\u6301\u9000\u6362\u3002"},{title:"\u4e8c\u3001\u9690\u79c1\u4fdd\u62a4",content:"\u6211\u4eec\u4e25\u683c\u4fdd\u62a4\u7528\u6237\u4e2a\u4eba\u4fe1\u606f\uff0c\u5934\u50cf\u4e0e\u6635\u79f0\u4ec5\u7528\u4e8e\u63d0\u5347\u670d\u52a1\u4f53\u9a8c\uff0c\u4e0d\u4e0e\u7b2c\u4e09\u65b9\u5206\u4eab\u3002"},{title:"\u4e09\u3001\u552e\u540e\u8bf4\u660e",content:"\u6536\u5230\u5546\u54c1\u540e\u5982\u6709\u8d28\u91cf\u95ee\u9898\uff0c\u8bf7\u57287\u5929\u5185\u8054\u7cfb\u5ba2\u670d\uff0c\u6211\u4eec\u5c06\u4e3a\u60a8\u514d\u8d39\u91cd\u505a\u6216\u9000\u6b3e\u3002"},{title:"\u56db\u3001\u5b9a\u5236\u6d41\u7a0b",content:"1. \u9009\u62e9\u5546\u54c1\u54c1\u7c7b\u5e76\u52a0\u5165\u8bbe\u8ba1\u6e05\u5355\n2. \u5728DIY\u5de5\u4f5c\u53f0\u4e0a\u4f20\u56fe\u7247\u6216\u8f93\u5165\u6587\u5b57\n3. \u786e\u8ba4\u8bbe\u8ba1\u6548\u679c\u5e76\u63d0\u4ea4\u8ba2\u5355\n4. \u652f\u4ed8\u540e\u8fdb\u5165\u751f\u4ea7\uff0c\u7ea63-7\u4e2a\u5de5\u4f5c\u65e5\u53d1\u8d27\n5. \u7269\u6d41\u8ddf\u8e2a\u81f3\u786e\u8ba4\u6536\u8d27"}];return(0,l.jsx)(c.Ss,{className:"theme-".concat(n),children:(0,l.jsx)(c.Ss,{className:"agreement-page",children:(0,l.jsxs)(c.Ss,{className:"agreement-content",style:{marginTop:"".concat(t.headerPaddingTop,"px")},children:[(0,l.jsx)(c.EY,{className:"agreement-title",children:"\u5b9a\u5236\u534f\u8bae"}),a.map(function(e,n){return(0,l.jsxs)(c.Ss,{className:"agreement-section",children:[(0,l.jsx)(c.EY,{className:"agreement-h3",children:e.title}),(0,l.jsx)(c.EY,{className:"agreement-p",children:e.content})]},n)})]})})})}var m={navigationBarTitleText:"\u5b9a\u5236\u534f\u8bae"};Page((0,a.createPageConfig)(o,"pages/agreement/index",{root:{cn:[]}},m||{}))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[907,96,76],function(){return n(6855)});e.O()}]);
|
||||
"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[301],{6855:function(e,n,t){var a=t(7842),c=t(118),r=t(9703),s=t(9201),i=t(5414),l=t(4848);function o(){var e=(0,r.wR)(),n=(e.theme,e.resolvedTheme),t=(0,s.c)();(0,i.l)(n);var a=[{title:"\u4e00\u3001\u7528\u6237\u6743\u8d23",content:"\u7528\u6237\u786e\u8ba4\u63d0\u4ea4\u7684\u8bbe\u8ba1\u5185\u5bb9\u4e0d\u4fb5\u72af\u7b2c\u4e09\u65b9\u77e5\u8bc6\u4ea7\u6743\uff0c\u5b9a\u5236\u5546\u54c1\u4e00\u7ecf\u786e\u8ba4\u4e0b\u5355\u5373\u8fdb\u5165\u751f\u4ea7\u6d41\u7a0b\uff0c\u975e\u8d28\u91cf\u95ee\u9898\u4e0d\u652f\u6301\u9000\u6362\u3002"},{title:"\u4e8c\u3001\u9690\u79c1\u4fdd\u62a4",content:"\u6211\u4eec\u4e25\u683c\u4fdd\u62a4\u7528\u6237\u4e2a\u4eba\u4fe1\u606f\uff0c\u5934\u50cf\u4e0e\u6635\u79f0\u4ec5\u7528\u4e8e\u63d0\u5347\u670d\u52a1\u4f53\u9a8c\uff0c\u4e0d\u4e0e\u7b2c\u4e09\u65b9\u5206\u4eab\u3002"},{title:"\u4e09\u3001\u552e\u540e\u8bf4\u660e",content:"\u6536\u5230\u5546\u54c1\u540e\u5982\u6709\u8d28\u91cf\u95ee\u9898\uff0c\u8bf7\u57287\u5929\u5185\u8054\u7cfb\u5ba2\u670d\uff0c\u6211\u4eec\u5c06\u4e3a\u60a8\u514d\u8d39\u91cd\u505a\u6216\u9000\u6b3e\u3002"},{title:"\u56db\u3001\u5b9a\u5236\u6d41\u7a0b",content:"1. \u9009\u62e9\u5546\u54c1\u54c1\u7c7b\u5e76\u52a0\u5165\u8bbe\u8ba1\u6e05\u5355\n2. \u5728DIY\u5de5\u4f5c\u53f0\u4e0a\u4f20\u56fe\u7247\u6216\u8f93\u5165\u6587\u5b57\n3. \u786e\u8ba4\u8bbe\u8ba1\u6548\u679c\u5e76\u63d0\u4ea4\u8ba2\u5355\n4. \u652f\u4ed8\u540e\u8fdb\u5165\u751f\u4ea7\uff0c\u7ea63-7\u4e2a\u5de5\u4f5c\u65e5\u53d1\u8d27\n5. \u7269\u6d41\u8ddf\u8e2a\u81f3\u786e\u8ba4\u6536\u8d27"}];return(0,l.jsx)(c.Ss,{className:"theme-".concat(n),children:(0,l.jsx)(c.Ss,{className:"agreement-page",children:(0,l.jsxs)(c.Ss,{className:"agreement-content",style:{marginTop:"".concat(t.headerPaddingTop,"px")},children:[(0,l.jsx)(c.EY,{className:"agreement-title",children:"\u5b9a\u5236\u534f\u8bae"}),a.map(function(e,n){return(0,l.jsxs)(c.Ss,{className:"agreement-section",children:[(0,l.jsx)(c.EY,{className:"agreement-h3",children:e.title}),(0,l.jsx)(c.EY,{className:"agreement-p",children:e.content})]},n)})]})})})}var m={renderer:"webview",navigationBarTitleText:"\u5b9a\u5236\u534f\u8bae"};Page((0,a.createPageConfig)(o,"pages/agreement/index",{root:{cn:[]}},m||{}))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[907,96,76],function(){return n(6855)});e.O()}]);
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"navigationBarTitleText":"定制协议","usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","navigationBarTitleText":"定制协议","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
{"navigationBarTitleText":"编辑贴纸","usingComponents":{"comp":"../../../comp"}}
|
||||
{"renderer":"webview","navigationBarTitleText":"编辑贴纸","usingComponents":{"comp":"../../../comp"}}
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[421],{7265:function(e,s,a){var c=a(7842),i=a(5544),r=a(118),t=a(758),l=a.n(t),n=a(6540),o=a(5234),m=a(9703),d=a(9201),h=a(5414),g=a(4848),p=[{title:"\u6bd5\u4e1a\u7eaa\u5ff5\u7b14\u8bb0\u672c",desc:"\u5168\u73ed\u540d\u5b57\u7ec4\u6210\u6821\u5fbd",image:"/img/book_small/The1.jpg"},{title:"\u94dc\u8d28\u676f\u57ab",desc:"\u91d1\u5c5e\u8d28\u611f\u684c\u9762\u827a\u672f",image:"/img/cup/The1.jpg"},{title:"\u7af9\u5236\u7b14\u76d2",desc:"\u81ea\u7136\u7af9\u7eb9\u6587\u623f\u96c5\u5668",image:"/img/penbox/The1.jpg"},{title:"\u4e66\u672c\u578b\u706f",desc:"\u6e29\u6696\u5149\u5f71\u70b9\u4eae\u5fc3\u610f",image:"/img/booklight/The1.jpg"},{title:"\u60c5\u4fa3\u5b9a\u5236\u793c",desc:"\u4e24\u4e2a\u4eba\u7684\u540d\u5b57\u4ea4\u7ec7",image:"/img/book_big/The1.jpg"},{title:"\u4f01\u4e1a\u5e74\u4f1a\u793c",desc:"\u5458\u5de5\u540d\u5b57\u7ec4\u6210Logo",image:"/img/penbox/The2.jpg"}],x={"notebook-small":"/img/book_small/The1.jpg","notebook-large":"/img/book_big/The1.jpg",coaster:"/img/cup/The1.jpg",penbox:"/img/penbox/The1.jpg",booklamp:"/img/booklight/The1.jpg"};function j(){var e=(0,m.wR)(),s=(e.theme,e.resolvedTheme),a=(0,d.c)();(0,h.l)(s);var c=(0,n.useState)(""),t=(0,i.A)(c,2),j=t[0],N=t[1],u=function(e){l().navigateTo({url:"/pages/product/index?id=".concat(e)})},b=j.trim()?o.R6.filter(function(e){return e.name.includes(j)||e.desc.includes(j)}):o.R6,w=function(e){N(e.detail.value)};return(0,g.jsx)(r.Ss,{className:"theme-".concat(s),children:(0,g.jsxs)(r.Ss,{className:"index-page",children:[(0,g.jsx)(r.Ss,{className:"header-bar",style:{paddingTop:"".concat(a.headerPaddingTop,"px")},children:(0,g.jsx)(r.EY,{className:"header-title",children:"\u667a\u7ed8\u5fae\u523b"})}),(0,g.jsxs)(r.Ss,{className:"search-card dashed-card",children:[(0,g.jsx)(r.Ss,{className:"star-badge"}),(0,g.jsxs)(r.Ss,{className:"search-inner",children:[(0,g.jsx)(r._V,{className:"search-icon-img",src:"/icon/\u641c\u7d22.png",mode:"aspectFit"}),(0,g.jsx)(r.pd,{className:"search-input",type:"text",placeholder:"\u641c\u7d22\u5b9a\u5236\u54c1\u7c7b\uff1a\u7b14\u8bb0\u672c\u3001\u676f\u57ab\u3001\u4e66\u706f...",value:j,onInput:w,confirmType:"search"})]}),j.trim()&&(0,g.jsx)(r.Ss,{className:"search-result-hint",children:(0,g.jsx)(r.EY,{className:"hint-text",children:b.length>0?"\u627e\u5230 ".concat(b.length," \u4e2a\u76f8\u5173\u54c1\u7c7b"):"\u6ca1\u6709\u627e\u5230\u76f8\u5173\u54c1\u7c7b\uff0c\u8bd5\u8bd5\u770b\u5176\u4ed6\u5173\u952e\u8bcd"})})]}),(0,g.jsxs)(r.Ss,{className:"showcase-section mt-20",children:[(0,g.jsx)(r.EY,{className:"section-title",children:"\u5b9a\u5236\u6210\u54c1\u5c55\u793a"}),(0,g.jsx)(r.RC,{className:"showcase-swiper",indicatorColor:"#e0e0e0",indicatorActiveColor:"#ff9a9e",circular:!0,autoplay:!0,interval:3e3,duration:500,previousMargin:"40rpx",nextMargin:"40rpx",indicatorDots:!0,children:p.map(function(e,s){return(0,g.jsx)(r.wu,{className:"showcase-swiper-item",children:(0,g.jsxs)(r.Ss,{className:"showcase-swiper-card dashed-card",children:[(0,g.jsx)(r.Ss,{className:"star-badge"}),(0,g.jsx)(r.Ss,{className:"showcase-image-wrapper",children:(0,g.jsx)(r._V,{className:"showcase-real-img",src:e.image,mode:"aspectFill"})}),(0,g.jsxs)(r.Ss,{className:"showcase-text-area",children:[(0,g.jsxs)(r.Ss,{className:"showcase-info",children:[(0,g.jsx)(r.EY,{className:"showcase-title",children:e.title}),(0,g.jsx)(r.EY,{className:"showcase-desc",children:e.desc})]}),(0,g.jsx)(r.Ss,{className:"showcase-tag",children:"\u6210\u54c1\u6848\u4f8b"})]})]})},s)})})]}),(0,g.jsxs)(r.Ss,{className:"category-section mt-20",children:[(0,g.jsx)(r.EY,{className:"section-title",children:"\u70ed\u95e8\u54c1\u7c7b"}),(0,g.jsx)(r.Ss,{className:"category-grid",children:b.map(function(e){return(0,g.jsxs)(r.Ss,{className:"category-item dashed-card",onTap:function(){return u(e.id)},children:[(0,g.jsx)(r.Ss,{className:"star-badge"}),(0,g.jsx)(r.Ss,{className:"category-img-wrapper",children:(0,g.jsx)(r._V,{className:"category-img-real",src:x[e.id]||"/icon/\u56db\u89d2\u661f.png",mode:"aspectFill"})}),(0,g.jsx)(r.EY,{className:"category-name",children:e.name}),(0,g.jsx)(r.EY,{className:"category-desc",children:e.desc}),(0,g.jsxs)(r.EY,{className:"category-price",children:["\xa5",e.price," \u8d77"]})]},e.id)})}),0===b.length&&(0,g.jsxs)(r.Ss,{className:"empty-category dashed-card",children:[(0,g.jsx)(r._V,{className:"empty-icon-img",src:"/icon/\u641c\u7d22.png",mode:"aspectFit"}),(0,g.jsx)(r.EY,{className:"empty-text",children:"\u672a\u627e\u5230\u5339\u914d\u7684\u54c1\u7c7b"}),(0,g.jsx)(r.EY,{className:"empty-sub",children:"\u5c1d\u8bd5\u641c\u7d22\u201c\u7b14\u8bb0\u672c\u201d\u3001\u201c\u676f\u57ab\u201d\u7b49"})]})]}),(0,g.jsx)(r.Ss,{className:"safe-bottom-placeholder"})]})})}var N={};Page((0,c.createPageConfig)(j,"pages/index/index",{root:{cn:[]}},N||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(7265)});e.O()}]);
|
||||
"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[421],{7265:function(e,s,a){var c=a(7842),i=a(5544),r=a(118),t=a(758),n=a.n(t),l=a(6540),o=a(5234),d=a(9703),m=a(9201),h=a(5414),g=a(4848),p=[{title:"\u6bd5\u4e1a\u7eaa\u5ff5\u7b14\u8bb0\u672c",desc:"\u5168\u73ed\u540d\u5b57\u7ec4\u6210\u6821\u5fbd",image:"/img/book_small/The1.jpg"},{title:"\u94dc\u8d28\u676f\u57ab",desc:"\u91d1\u5c5e\u8d28\u611f\u684c\u9762\u827a\u672f",image:"/img/cup/The1.jpg"},{title:"\u7af9\u5236\u7b14\u76d2",desc:"\u81ea\u7136\u7af9\u7eb9\u6587\u623f\u96c5\u5668",image:"/img/penbox/The1.jpg"},{title:"\u4e66\u672c\u578b\u706f",desc:"\u6e29\u6696\u5149\u5f71\u70b9\u4eae\u5fc3\u610f",image:"/img/booklight/The1.jpg"},{title:"\u60c5\u4fa3\u5b9a\u5236\u793c",desc:"\u4e24\u4e2a\u4eba\u7684\u540d\u5b57\u4ea4\u7ec7",image:"/img/book_big/The1.jpg"},{title:"\u4f01\u4e1a\u5e74\u4f1a\u793c",desc:"\u5458\u5de5\u540d\u5b57\u7ec4\u6210Logo",image:"/img/penbox/The2.jpg"}],x={"notebook-small":"/img/book_small/The1.jpg","notebook-large":"/img/book_big/The1.jpg",coaster:"/img/cup/The1.jpg",penbox:"/img/penbox/The1.jpg",booklamp:"/img/booklight/The1.jpg"};function j(){var e=(0,d.wR)(),s=(e.theme,e.resolvedTheme),a=(0,m.c)();(0,h.l)(s);var c=(0,l.useState)(""),t=(0,i.A)(c,2),j=t[0],N=t[1],u=function(e){n().navigateTo({url:"/pages/product/index?id=".concat(e)})},b=j.trim()?o.R6.filter(function(e){return e.name.includes(j)||e.desc.includes(j)}):o.R6,w=function(e){N(e.detail.value)};return(0,g.jsx)(r.Ss,{className:"theme-".concat(s),children:(0,g.jsxs)(r.Ss,{className:"index-page",children:[(0,g.jsx)(r.Ss,{className:"header-bar",style:{paddingTop:"".concat(a.headerPaddingTop,"px")},children:(0,g.jsx)(r.EY,{className:"header-title",children:"\u667a\u7ed8\u5fae\u523b"})}),(0,g.jsxs)(r.Ss,{className:"search-card dashed-card",children:[(0,g.jsx)(r.Ss,{className:"star-badge"}),(0,g.jsxs)(r.Ss,{className:"search-inner",children:[(0,g.jsx)(r._V,{className:"search-icon-img",src:"/icon/\u641c\u7d22.png",mode:"aspectFit"}),(0,g.jsx)(r.pd,{className:"search-input",type:"text",placeholder:"\u641c\u7d22\u5b9a\u5236\u54c1\u7c7b\uff1a\u7b14\u8bb0\u672c\u3001\u676f\u57ab\u3001\u4e66\u706f...",value:j,onInput:w,confirmType:"search"})]}),j.trim()&&(0,g.jsx)(r.Ss,{className:"search-result-hint",children:(0,g.jsx)(r.EY,{className:"hint-text",children:b.length>0?"\u627e\u5230 ".concat(b.length," \u4e2a\u76f8\u5173\u54c1\u7c7b"):"\u6ca1\u6709\u627e\u5230\u76f8\u5173\u54c1\u7c7b\uff0c\u8bd5\u8bd5\u770b\u5176\u4ed6\u5173\u952e\u8bcd"})})]}),(0,g.jsxs)(r.Ss,{className:"showcase-section mt-20",children:[(0,g.jsx)(r.EY,{className:"section-title",children:"\u5b9a\u5236\u6210\u54c1\u5c55\u793a"}),(0,g.jsx)(r.RC,{className:"showcase-swiper",indicatorColor:"#e0e0e0",indicatorActiveColor:"#ff9a9e",circular:!0,autoplay:!0,interval:3e3,duration:500,previousMargin:"40rpx",nextMargin:"40rpx",indicatorDots:!0,children:p.map(function(e,s){return(0,g.jsx)(r.wu,{className:"showcase-swiper-item",children:(0,g.jsxs)(r.Ss,{className:"showcase-swiper-card dashed-card",children:[(0,g.jsx)(r.Ss,{className:"star-badge"}),(0,g.jsx)(r.Ss,{className:"showcase-image-wrapper",children:(0,g.jsx)(r._V,{className:"showcase-real-img",src:e.image,mode:"aspectFill"})}),(0,g.jsxs)(r.Ss,{className:"showcase-text-area",children:[(0,g.jsxs)(r.Ss,{className:"showcase-info",children:[(0,g.jsx)(r.EY,{className:"showcase-title",children:e.title}),(0,g.jsx)(r.EY,{className:"showcase-desc",children:e.desc})]}),(0,g.jsx)(r.Ss,{className:"showcase-tag",children:"\u6210\u54c1\u6848\u4f8b"})]})]})},s)})})]}),(0,g.jsxs)(r.Ss,{className:"category-section mt-20",children:[(0,g.jsx)(r.EY,{className:"section-title",children:"\u70ed\u95e8\u54c1\u7c7b"}),(0,g.jsx)(r.Ss,{className:"category-grid",children:b.map(function(e){return(0,g.jsxs)(r.Ss,{className:"category-item dashed-card",onTap:function(){return u(e.id)},children:[(0,g.jsx)(r.Ss,{className:"star-badge"}),(0,g.jsx)(r.Ss,{className:"category-img-wrapper",children:(0,g.jsx)(r._V,{className:"category-img-real",src:x[e.id]||"/icon/\u56db\u89d2\u661f.png",mode:"aspectFill"})}),(0,g.jsx)(r.EY,{className:"category-name",children:e.name}),(0,g.jsx)(r.EY,{className:"category-desc",children:e.desc}),(0,g.jsxs)(r.EY,{className:"category-price",children:["\xa5",e.price," \u8d77"]})]},e.id)})}),0===b.length&&(0,g.jsxs)(r.Ss,{className:"empty-category dashed-card",children:[(0,g.jsx)(r._V,{className:"empty-icon-img",src:"/icon/\u641c\u7d22.png",mode:"aspectFit"}),(0,g.jsx)(r.EY,{className:"empty-text",children:"\u672a\u627e\u5230\u5339\u914d\u7684\u54c1\u7c7b"}),(0,g.jsx)(r.EY,{className:"empty-sub",children:"\u5c1d\u8bd5\u641c\u7d22\u201c\u7b14\u8bb0\u672c\u201d\u3001\u201c\u676f\u57ab\u201d\u7b49"})]})]}),(0,g.jsx)(r.Ss,{className:"safe-bottom-placeholder"})]})})}var N={renderer:"webview"};Page((0,c.createPageConfig)(j,"pages/index/index",{root:{cn:[]}},N||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(7265)});e.O()}]);
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"navigationBarTitleText":"订单详情","usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","navigationBarTitleText":"订单详情","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"navigationBarTitleText":"设置","usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","navigationBarTitleText":"设置","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"navigationStyle":"custom","navigationBarTextStyle":"white","usingComponents":{"comp":"../../../comp"}}
|
||||
{"renderer":"skyline","componentFramework":"glass-easel","disableScroll":true,"navigationStyle":"custom","backgroundColor":"#1c1612","navigationBarTextStyle":"white","usingComponents":{"comp":"../../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[205],{6296:function(s,e,a){var c=a(7842),n=a(118),o=a(758),i=a.n(o),r=a(9703),d=a(9201),l=a(5414),t=a(5234),h=a(4848);function p(){var s=(0,r.wR)(),e=s.resolvedTheme,a=(0,d.c)();(0,l.l)(e);var c=function(s){i().navigateTo({url:"/pages/shop/detail/index?id=".concat(s)})};return(0,h.jsx)(n.Ss,{className:"shop-page theme-".concat(e),children:(0,h.jsxs)(n.Ss,{className:"shop-list",children:[(0,h.jsxs)(n.Ss,{className:"shop-header",style:{paddingTop:"".concat(a.headerPaddingTop,"px")},children:[(0,h.jsx)(n.EY,{className:"shop-header-title",children:"\u667a\u7ed8\u7cbe\u9009"}),(0,h.jsx)(n.EY,{className:"shop-header-sub",children:"\u6fc0\u5149\u5fae\u96d5\u5b9a\u5236\u597d\u7269"})]}),(0,h.jsx)(n.Ss,{className:"shop-grid",children:t.zv.map(function(s){var e,a,o,i;return(0,h.jsxs)(n.Ss,{className:"shop-card",onTap:function(){return c(s.id)},children:[(0,h.jsx)(n.Ss,{className:"shop-card-img-wrap",children:(0,h.jsx)(n._V,{className:"shop-card-img",src:(null===(e=s.images)||void 0===e?void 0:e[0])||s.iconImg||"",mode:"aspectFill",lazyLoad:!0})}),(0,h.jsxs)(n.Ss,{className:"shop-card-info",style:{backgroundColor:"rgba(".concat((null===(a=s.tone)||void 0===a?void 0:a[0])||28,", ").concat((null===(o=s.tone)||void 0===o?void 0:o[1])||22,", ").concat((null===(i=s.tone)||void 0===i?void 0:i[2])||18,", 0.92)")},children:[(0,h.jsx)(n.EY,{className:"shop-card-name",children:s.name}),(0,h.jsxs)(n.EY,{className:"shop-card-price",children:["\xa5",s.price]})]})]},s.id)})}),(0,h.jsx)(n.Ss,{style:{height:"160px"}})]})})}var m={};Page((0,c.createPageConfig)(p,"pages/shop/index",{root:{cn:[]}},m||{}))}},function(s){var e=function(e){return s(s.s=e)};s.O(0,[907,96,76],function(){return e(6296)});s.O()}]);
|
||||
"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[205],{6296:function(s,e,a){var n=a(7842),c=a(118),o=a(758),i=a.n(o),r=a(6540),l=a(9703),t=a(9201),d=a(5414),p=a(5947),h=a(653),u=a(5234),m=a(4848);function x(){var s=(0,l.wR)(),e=s.resolvedTheme,a=(0,t.c)();(0,d.l)(e),(0,r.useEffect)(function(){(0,p.i)()},[]);var n=function(s){(0,p.i)(),i().navigateTo({url:"/pages/shop/detail/index?id=".concat(s),routeType:"sharedElementRoute"})};return(0,m.jsxs)(c.Ss,{className:"shop-page theme-".concat(e),children:[(0,m.jsxs)(c.BM,{type:"custom",scrollY:!0,className:"shop-scroll",children:[(0,m.jsxs)(c.Ss,{className:"shop-header",style:{paddingTop:"".concat(a.headerPaddingTop,"px")},children:[(0,m.jsx)(c.EY,{className:"shop-header-title",children:"\u667a\u7ed8\u7cbe\u9009"}),(0,m.jsx)(c.EY,{className:"shop-header-sub",children:"\u6fc0\u5149\u5fae\u96d5\u5b9a\u5236\u597d\u7269"})]}),(0,m.jsx)(c.gf,{type:"aligned",crossAxisCount:2,mainAxisGap:10,crossAxisGap:10,padding:[0,12,12,12],className:"shop-grid",children:u.zv.map(function(s){var e,a,o,i;return(0,m.jsxs)(c.Ss,{className:"shop-card",onTap:function(){return n(s.id)},children:[(0,m.jsx)(c.Ss,{className:"shop-card-img-wrap",children:(0,m.jsx)(c.i8,{mapkey:"product-".concat(s.id),duration:300,className:"shop-card-share",children:(0,m.jsx)(c._V,{className:"shop-card-img",src:(null===(e=s.images)||void 0===e?void 0:e[0])||s.iconImg||"",mode:"aspectFill"})})}),(0,m.jsxs)(c.Ss,{className:"shop-card-info",style:{backgroundColor:"rgba(".concat((null===(a=s.tone)||void 0===a?void 0:a[0])||28,", ").concat((null===(o=s.tone)||void 0===o?void 0:o[1])||22,", ").concat((null===(i=s.tone)||void 0===i?void 0:i[2])||18,", 0.92)")},children:[(0,m.jsx)(c.EY,{className:"shop-card-name",children:s.name}),(0,m.jsxs)(c.EY,{className:"shop-card-price",children:["\xa5",s.price]})]})]},s.id)})}),(0,m.jsx)(c.Ss,{style:{height:"160px"}})]}),(0,m.jsx)(h.A,{})]})}var g={renderer:"skyline",componentFramework:"glass-easel",disableScroll:!0,navigationStyle:"custom",navigationBarTextStyle:"black"};Page((0,n.createPageConfig)(x,"pages/shop/index",{root:{cn:[]}},g||{}))}},function(s){var e=function(e){return s(s.s=e)};s.O(0,[907,96,76],function(){return e(6296)});s.O()}]);
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"skyline","componentFramework":"glass-easel","disableScroll":true,"navigationStyle":"custom","navigationBarTextStyle":"black","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
.shop-list{padding:0 24rpx 24rpx}.shop-header{padding:40rpx 0 24rpx;text-align:center}.shop-header-title{color:var(--text-primary);display:block;font-size:40rpx;font-weight:800;letter-spacing:4rpx}.shop-header-sub{color:var(--text-secondary);display:block;font-size:24rpx;margin-top:8rpx}.shop-grid{display:grid;gap:20rpx;grid-template-columns:1fr 1fr}.shop-card{background:var(--bg-card);border-radius:24rpx;-webkit-box-shadow:var(--shadow-card);box-shadow:var(--shadow-card);overflow:hidden;-webkit-transition:-webkit-transform .15s ease;transition:-webkit-transform .15s ease;transition:transform .15s ease;transition:transform .15s ease,-webkit-transform .15s ease}.shop-card:active{-webkit-transform:scale(.97);-ms-transform:scale(.97);transform:scale(.97)}.shop-card-img-wrap{aspect-ratio:3/4;background:#2a2218;overflow:hidden}.shop-card-img{height:100%;-o-object-fit:cover;object-fit:cover;-webkit-transition:-webkit-transform .4s ease;transition:-webkit-transform .4s ease;transition:transform .4s ease;transition:transform .4s ease,-webkit-transform .4s ease;width:100%}.shop-card-info{padding:16rpx 20rpx 20rpx}.shop-card-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#e8e0d6;display:-webkit-box;font-size:26rpx;line-height:1.4;min-height:74rpx;overflow:hidden}.shop-card-price{color:#ff9a9e;display:block;font-size:30rpx;font-weight:700;margin-top:10rpx}@media (min-width:750rpx){.shop-page{-ms-flex-pack:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}}
|
||||
.shop-page{height:100vh;overflow:hidden;width:100%}.shop-scroll{height:100vh;width:100%}.shop-header{padding:40rpx 0 24rpx;text-align:center}.shop-header-title{color:var(--text-primary);display:block;font-size:40rpx;font-weight:800;letter-spacing:4rpx}.shop-header-sub{color:var(--text-secondary);display:block;font-size:24rpx;margin-top:8rpx}.shop-card{background:var(--bg-card);border-radius:24rpx;box-shadow:var(--shadow-card);box-sizing:border-box;overflow:hidden;transition:transform .15s ease;width:100%}.shop-card-img-wrap{background:#2a2218;height:460rpx;overflow:hidden}.shop-card-share{height:100%;width:100%}.shop-card-img{height:100%;transition:transform .4s ease;width:100%}.shop-card-info{padding:16rpx 20rpx 20rpx}.shop-card-name{color:#e8e0d6;font-size:26rpx;line-height:1.4;min-height:74rpx;overflow:hidden}.shop-card-price{color:#ff9a9e;display:block;font-size:30rpx;font-weight:700;margin-top:10rpx}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"navigationBarTitleText":"用户数据库","backgroundColor":"#ffffff","usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","navigationBarTitleText":"用户数据库","backgroundColor":"#ffffff","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"usingComponents":{"comp":"../../comp"}}
|
||||
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
(function(){"use strict";var n={},t={};function r(e){var o=t[e];if(void 0!==o)return o.exports;var u=t[e]={exports:{}};return n[e](u,u.exports,r),u.exports}r.m=n,function(){var n=[];r.O=function(t,e,o,u){if(!e){var i=1/0;for(l=0;l<n.length;l++){e=n[l][0],o=n[l][1],u=n[l][2];for(var f=!0,c=0;c<e.length;c++)(!1&u||i>=u)&&Object.keys(r.O).every(function(n){return r.O[n](e[c])})?e.splice(c--,1):(f=!1,u<i&&(i=u));if(f){n.splice(l--,1);var a=o();void 0!==a&&(t=a)}}return t}u=u||0;for(var l=n.length;l>0&&n[l-1][2]>u;l--)n[l]=n[l-1];n[l]=[e,o,u]}}(),function(){r.n=function(n){var t=n&&n.__esModule?function(){return n["default"]}:function(){return n};return r.d(t,{a:t}),t}}(),function(){var n,t=Object.getPrototypeOf?function(n){return Object.getPrototypeOf(n)}:function(n){return n.__proto__};r.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"===typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"===typeof e.then)return e}var u=Object.create(null);r.r(u);var i={};n=n||[null,t({}),t([]),t(t)];for(var f=2&o&&e;"object"==typeof f&&!~n.indexOf(f);f=t(f))Object.getOwnPropertyNames(f).forEach(function(n){i[n]=function(){return e[n]}});return i["default"]=function(){return e},r.d(u,i),u}}(),function(){r.d=function(n,t){for(var e in t)r.o(t,e)&&!r.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:t[e]})}}(),function(){r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"===typeof window)return window}}()}(),function(){r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)}}(),function(){r.r=function(n){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){var n={121:0};r.O.j=function(t){return 0===n[t]};var t=function(t,e){var o,u,i=e[0],f=e[1],c=e[2],a=0;if(i.some(function(t){return 0!==n[t]})){for(o in f)r.o(f,o)&&(r.m[o]=f[o]);if(c)var l=c(r)}for(t&&t(e);a<i.length;a++)u=i[a],r.o(n,u)&&n[u]&&n[u][0](),n[u]=0;return r.O(l)},e=wx["webpackJsonp"]=wx["webpackJsonp"]||[];e.forEach(t.bind(null,0)),e.push=t.bind(null,e.push.bind(e))}()})();
|
||||
(function(){"use strict";var n={},t={};function r(e){var o=t[e];if(void 0!==o)return o.exports;var u=t[e]={exports:{}};return n[e](u,u.exports,r),u.exports}r.m=n,function(){var n=[];r.O=function(t,e,o,u){if(!e){var i=1/0;for(l=0;l<n.length;l++){e=n[l][0],o=n[l][1],u=n[l][2];for(var f=!0,c=0;c<e.length;c++)(!1&u||i>=u)&&Object.keys(r.O).every(function(n){return r.O[n](e[c])})?e.splice(c--,1):(f=!1,u<i&&(i=u));if(f){n.splice(l--,1);var a=o();void 0!==a&&(t=a)}}return t}u=u||0;for(var l=n.length;l>0&&n[l-1][2]>u;l--)n[l]=n[l-1];n[l]=[e,o,u]}}(),function(){r.n=function(n){var t=n&&n.__esModule?function(){return n["default"]}:function(){return n};return r.d(t,{a:t}),t}}(),function(){var n,t=Object.getPrototypeOf?function(n){return Object.getPrototypeOf(n)}:function(n){return n.__proto__};r.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"===typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"===typeof e.then)return e}var u=Object.create(null);r.r(u);var i={};n=n||[null,t({}),t([]),t(t)];for(var f=2&o&&e;"object"==typeof f&&!~n.indexOf(f);f=t(f))Object.getOwnPropertyNames(f).forEach(function(n){i[n]=function(){return e[n]}});return i["default"]=function(){return e},r.d(u,i),u}}(),function(){r.d=function(n,t){for(var e in t)r.o(t,e)&&!r.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:t[e]})}}(),function(){r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"===typeof window)return window}}()}(),function(){r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)}}(),function(){r.r=function(n){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){var n={502:0};r.O.j=function(t){return 0===n[t]};var t=function(t,e){var o,u,i=e[0],f=e[1],c=e[2],a=0;if(i.some(function(t){return 0!==n[t]})){for(o in f)r.o(f,o)&&(r.m[o]=f[o]);if(c)var l=c(r)}for(t&&t(e);a<i.length;a++)u=i[a],r.o(n,u)&&n[u]&&n[u][0](),n[u]=0;return r.O(l)},e=wx["webpackJsonp"]=wx["webpackJsonp"]||[];e.forEach(t.bind(null,0)),e.push=t.bind(null,e.push.bind(e))}()})();
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -9,7 +9,7 @@
|
||||
"css": "sass"
|
||||
},
|
||||
"scripts": {
|
||||
"build:weapp": "npx taro build --type weapp",
|
||||
"build:weapp": "npx taro build --type weapp && node scripts/patch-skyline-share-element.js",
|
||||
"build:swan": "taro build --type swan",
|
||||
"build:alipay": "taro build --type alipay",
|
||||
"build:tt": "taro build --type tt",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"urlCheck": true,
|
||||
"coverView": true,
|
||||
"lazyloadPlaceholderEnable": false,
|
||||
"skylineRenderEnable": false,
|
||||
"skylineRenderEnable": true,
|
||||
"preloadBackgroundData": false,
|
||||
"autoAudits": false,
|
||||
"useApiHook": true,
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
// Taro's React custom tabBar does not emit its local WXSS. WeChat reads this
|
||||
// file from the custom-tab-bar directory, so copy it after every build.
|
||||
const tabBarStyleSource = path.join(process.cwd(), 'src', 'custom-tab-bar', 'index.wxss')
|
||||
const tabBarStyleTarget = path.join(process.cwd(), 'dist', 'custom-tab-bar', 'index.wxss')
|
||||
fs.copyFileSync(tabBarStyleSource, tabBarStyleTarget)
|
||||
|
||||
const templatePath = path.join(process.cwd(), 'dist', 'base.wxml')
|
||||
const source = fs.readFileSync(templatePath, 'utf8')
|
||||
const original = '<share-element key="{{i.p2}}" transform="{{xs.b(i.p3,false)}}" duration="{{xs.b(i.p0,300)}}" easing-function="{{xs.b(i.p1,\'ease-out\')}}" style="{{i.st}}" class="{{i.cl}}" bindtap="eh" id="{{i.uid||i.sid}}" data-sid="{{i.sid}}">'
|
||||
const replacement = '<share-element key="{{i.p2}}" transform="{{xs.b(i.p3,false)}}" duration="{{xs.b(i.p0,300)}}" easing-function="{{xs.b(i.p1,\'ease-out\')}}" transition-on-gesture shuttle-on-push="{{i.p0 === 301 ? \'from\' : \'to\'}}" rect-tween-type="linear" style="{{i.st}}" class="{{i.cl}}" bindtap="eh" id="{{i.uid||i.sid}}" data-sid="{{i.sid}}">'
|
||||
|
||||
if (source.includes(replacement)) {
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
if (!source.includes(original)) {
|
||||
throw new Error('Skyline share-element template was not found')
|
||||
}
|
||||
|
||||
fs.writeFileSync(templatePath, source.replace(original, replacement), 'utf8')
|
||||
@@ -18,6 +18,16 @@ export default defineAppConfig({
|
||||
'pages/agreement/index',
|
||||
'pages/userDatabase/index'
|
||||
],
|
||||
lazyCodeLoading: 'requiredComponents',
|
||||
// Skyline 路由需要在应用级开启;普通页面在各自配置中覆盖为 WebView。
|
||||
renderer: 'skyline',
|
||||
componentFramework: 'glass-easel',
|
||||
rendererOptions: {
|
||||
skyline: {
|
||||
disableABTest: true,
|
||||
defaultDisplayBlock: false
|
||||
}
|
||||
},
|
||||
window: {
|
||||
backgroundTextStyle: 'dark',
|
||||
navigationStyle: 'custom',
|
||||
|
||||
+10
-1
@@ -1,9 +1,18 @@
|
||||
import { Component, PropsWithChildren } from 'react'
|
||||
import { ThemeProvider } from './context/ThemeContext'
|
||||
import { registerSharedElementRoute } from './utils/sharedElementRoute'
|
||||
import './app.scss'
|
||||
|
||||
class App extends Component<PropsWithChildren> {
|
||||
componentDidMount() {}
|
||||
onLaunch() {
|
||||
// 官方 Skyline 示例在 App.onLaunch 注册自定义路由。
|
||||
registerSharedElementRoute()
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
// 保留兜底:部分开发者工具会先完成 React 挂载,再暴露 wx.router。
|
||||
registerSharedElementRoute()
|
||||
}
|
||||
|
||||
componentDidShow() {}
|
||||
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
/* Skyline does not need the WebView vendor-prefix compatibility output. */
|
||||
/* autoprefixer: off */
|
||||
|
||||
.custom-tab-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 120px;
|
||||
height: 120rpx;
|
||||
box-sizing: border-box;
|
||||
background: #ffffff;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
border-top: 3px dashed #A0C4FF;
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
z-index: 1000;
|
||||
}
|
||||
@@ -19,14 +22,14 @@
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 10px 20px;
|
||||
padding: 10rpx 20rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tab-icon-img {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
margin-bottom: 4px;
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
margin-bottom: 4rpx;
|
||||
transition: transform 0.2s;
|
||||
opacity: 0.6;
|
||||
}
|
||||
@@ -37,7 +40,7 @@
|
||||
}
|
||||
|
||||
.tab-label {
|
||||
font-size: 20px;
|
||||
font-size: 20rpx;
|
||||
color: #b08d8d;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ const TABS = [
|
||||
|
||||
export default function CustomTabBar() {
|
||||
const currentPath = `/${Taro.getCurrentInstance().router?.path || 'pages/index/index'}`
|
||||
const isShopDetail = currentPath === '/pages/shop/detail/index'
|
||||
|
||||
const switchTab = (url: string) => {
|
||||
Taro.switchTab({ url })
|
||||
@@ -20,7 +21,7 @@ export default function CustomTabBar() {
|
||||
return (
|
||||
<View className='custom-tab-bar'>
|
||||
{TABS.map((tab) => {
|
||||
const isActive = currentPath === tab.pagePath
|
||||
const isActive = currentPath === tab.pagePath || (isShopDetail && tab.pagePath === '/pages/shop/index')
|
||||
return (
|
||||
<View
|
||||
key={tab.pagePath}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
.custom-tab-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 120rpx;
|
||||
box-sizing: border-box;
|
||||
background: #ffffff;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
border-top: 3rpx dashed #a0c4ff;
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.tab-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 10rpx 20rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tab-icon-img {
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
margin-bottom: 4rpx;
|
||||
transition: transform 0.2s;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.tab-item.active .tab-icon-img {
|
||||
transform: scale(1.15);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.tab-label {
|
||||
font-size: 20rpx;
|
||||
color: #b08d8d;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.tab-item.active .tab-label {
|
||||
color: #ff9a9e;
|
||||
font-weight: 600;
|
||||
}
|
||||
@@ -34,14 +34,14 @@ export function useSafeArea(): SafeAreaInfo {
|
||||
return
|
||||
}
|
||||
try {
|
||||
const sys = Taro.getSystemInfoSync()
|
||||
const sys = Taro.getWindowInfo()
|
||||
const mb = Taro.getMenuButtonBoundingClientRect()
|
||||
const statusBarHeight = sys.statusBarHeight || 20
|
||||
const menuButtonTop = mb.top ?? statusBarHeight + 4
|
||||
const menuButtonHeight = mb.height ?? 32
|
||||
const capsuleRight = mb.right ?? (sys.windowWidth - 7)
|
||||
const safeInsetTop = sys.safeArea?.top ?? statusBarHeight
|
||||
const safeInsetBottom = sys.safeAreaInsetBottom ?? (sys.screenHeight - (sys.safeArea?.bottom ?? sys.screenHeight))
|
||||
const safeInsetBottom = sys.screenHeight - (sys.safeArea?.bottom ?? sys.screenHeight)
|
||||
|
||||
// header 需要排在胶囊按钮下面,稍微留点空隙
|
||||
const headerPaddingTop = Math.max(menuButtonTop + menuButtonHeight + 6, statusBarHeight + 44)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview',
|
||||
navigationBarTitleText: '收货地址'
|
||||
})
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview',
|
||||
navigationBarTitleText: '定制协议'
|
||||
})
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview'
|
||||
})
|
||||
@@ -0,0 +1,3 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview'
|
||||
})
|
||||
@@ -0,0 +1,3 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview'
|
||||
})
|
||||
@@ -1,3 +1,4 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview',
|
||||
navigationBarTitleText: '编辑贴纸'
|
||||
})
|
||||
|
||||
@@ -115,7 +115,7 @@ export default function StickerEditPage() {
|
||||
let ch = res[0]?.height || 400
|
||||
if (cw <= 0) cw = 300
|
||||
if (ch <= 0) ch = 400
|
||||
const dpr = Taro.getSystemInfoSync().pixelRatio || 1
|
||||
const dpr = Taro.getWindowInfo().pixelRatio || 1
|
||||
canvas.width = Math.round(cw * dpr)
|
||||
canvas.height = Math.round(ch * dpr)
|
||||
ctx.scale(dpr, dpr)
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview'
|
||||
})
|
||||
@@ -1,3 +1,4 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview',
|
||||
navigationBarTitleText: '订单详情'
|
||||
})
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview'
|
||||
})
|
||||
@@ -0,0 +1,3 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview'
|
||||
})
|
||||
@@ -0,0 +1,3 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview'
|
||||
})
|
||||
@@ -0,0 +1,3 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview'
|
||||
})
|
||||
@@ -1,3 +1,4 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview',
|
||||
navigationBarTitleText: '设置'
|
||||
})
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'skyline',
|
||||
componentFramework: 'glass-easel',
|
||||
disableScroll: true,
|
||||
navigationStyle: 'custom',
|
||||
// 顶部为深色商品大图,状态栏文字设为白色,确保 iOS 时间/电量可见
|
||||
backgroundColor: '#1c1612',
|
||||
// 顶部为深色商品大图,状态栏文字设为白色
|
||||
navigationBarTextStyle: 'white'
|
||||
})
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
结构:沉浸式详情页(固定Hero + ScrollView内容 + CTA)
|
||||
============================================================ */
|
||||
|
||||
/* Skyline does not need the WebView vendor-prefix compatibility output. */
|
||||
/* autoprefixer: off */
|
||||
|
||||
.shop-detail-page {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
@@ -32,10 +35,15 @@
|
||||
will-change: height, transform;
|
||||
}
|
||||
|
||||
.shop-hero-share {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.shop-hero-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
will-change: top;
|
||||
}
|
||||
|
||||
@@ -109,7 +117,6 @@
|
||||
|
||||
/* --- Transition Band (sticky-like top info) --- */
|
||||
.shop-band {
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 4;
|
||||
@@ -226,7 +233,6 @@
|
||||
/* --- Spec Table --- */
|
||||
.shop-spec-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border-radius: 16rpx;
|
||||
overflow: hidden;
|
||||
font-size: 26rpx;
|
||||
@@ -256,7 +262,7 @@
|
||||
}
|
||||
|
||||
.shop-bottom-spacer {
|
||||
height: 200rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
|
||||
/* --- Back Button --- */
|
||||
@@ -270,7 +276,6 @@
|
||||
border-radius: 50%;
|
||||
background: rgba(0, 0, 0, 0.35);
|
||||
backdrop-filter: blur(16rpx) saturate(1.4);
|
||||
-webkit-backdrop-filter: blur(16rpx) saturate(1.4);
|
||||
border: 1rpx solid rgba(255,255,255,0.12);
|
||||
box-shadow: 0 2rpx 16rpx rgba(0,0,0,0.25);
|
||||
display: flex;
|
||||
@@ -279,10 +284,6 @@
|
||||
transition: opacity 0.2s ease, transform 0.15s ease;
|
||||
}
|
||||
|
||||
.shop-back-btn:active {
|
||||
transform: scale(0.92);
|
||||
}
|
||||
|
||||
.shop-back-arrow {
|
||||
font-size: 36rpx;
|
||||
color: rgba(255,255,255,0.85);
|
||||
@@ -291,18 +292,19 @@
|
||||
|
||||
/* --- Bottom CTA Bar --- */
|
||||
.shop-cta-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
bottom: 120px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 60;
|
||||
z-index: 100;
|
||||
min-height: 112rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 20rpx 32rpx calc(20rpx + env(safe-area-inset-bottom, 0px));
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 24rpx;
|
||||
backdrop-filter: blur(16rpx) saturate(1.2);
|
||||
-webkit-backdrop-filter: blur(16rpx) saturate(1.2);
|
||||
transition: background-color 0.4s ease;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { View, Text, Image, ScrollView } from '@tarojs/components'
|
||||
import { View, Text, Image, ScrollView, ShareElement } from '@tarojs/components'
|
||||
import Taro from '@tarojs/taro'
|
||||
import { useState, useEffect, useCallback, useMemo } from 'react'
|
||||
import './index.scss'
|
||||
@@ -7,6 +7,7 @@ import { ProductCategory } from '../../../types'
|
||||
import { useSafeArea } from '../../../hooks/useSafeArea'
|
||||
import { useStatusBar } from '../../../hooks/useStatusBar'
|
||||
import { useThemeContext } from '../../../context/ThemeContext'
|
||||
import CustomTabBar from '../../../custom-tab-bar'
|
||||
|
||||
const clamp = (v: number, min: number, max: number) => Math.min(Math.max(v, min), max)
|
||||
const lerp = (a: number, b: number, t: number) => a + (b - a) * t
|
||||
@@ -26,7 +27,7 @@ export default function ShopDetailPage() {
|
||||
|
||||
useEffect(() => {
|
||||
try {
|
||||
const info = Taro.getSystemInfoSync()
|
||||
const info = Taro.getWindowInfo()
|
||||
setWinHeight(info.windowHeight)
|
||||
} catch (e) {
|
||||
// fallback to safe default
|
||||
@@ -124,18 +125,31 @@ export default function ShopDetailPage() {
|
||||
transform: `translateY(${winHeight * heroStyles.translateY / 100}px)`
|
||||
}}
|
||||
>
|
||||
<Image
|
||||
className="shop-hero-img"
|
||||
src={product.images?.[0] || product.iconImg || ''}
|
||||
mode="aspectFill"
|
||||
<ShareElement
|
||||
mapkey={`product-${product.id}`}
|
||||
duration={301}
|
||||
className='shop-hero-share'
|
||||
style={{
|
||||
width: '100%',
|
||||
height: `${winHeight}px`,
|
||||
position: 'absolute',
|
||||
top: `${-winHeight * heroStyles.topCrop / 100}px`,
|
||||
top: 0,
|
||||
left: 0
|
||||
}}
|
||||
/>
|
||||
>
|
||||
<Image
|
||||
className="shop-hero-img"
|
||||
src={product.images?.[0] || product.iconImg || ''}
|
||||
mode="aspectFill"
|
||||
style={{
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
position: 'absolute',
|
||||
top: `${-winHeight * heroStyles.topCrop / 100}px`,
|
||||
left: 0
|
||||
}}
|
||||
/>
|
||||
</ShareElement>
|
||||
</View>
|
||||
|
||||
{/* Bottom gradient overlay driven by product tone */}
|
||||
@@ -164,6 +178,7 @@ export default function ShopDetailPage() {
|
||||
{/* Scrollable content sits above the fixed hero */}
|
||||
<ScrollView
|
||||
key={product.id}
|
||||
type="custom"
|
||||
className="shop-scroll"
|
||||
scrollY
|
||||
scrollEventThrottle={16}
|
||||
@@ -282,6 +297,9 @@ export default function ShopDetailPage() {
|
||||
<Text className="shop-cta-btn-text">立即定制</Text>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
{/* Detail is not a tabBar page, so render the app navigation explicitly. */}
|
||||
<CustomTabBar />
|
||||
</View>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'skyline',
|
||||
componentFramework: 'glass-easel',
|
||||
disableScroll: true,
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTextStyle: 'black'
|
||||
})
|
||||
+22
-30
@@ -1,10 +1,19 @@
|
||||
/* ============================================================
|
||||
Shop Page — 商品浏览页(列表页)
|
||||
Shop Page - 商品浏览页(Skyline 模式)
|
||||
============================================================ */
|
||||
|
||||
/* --- List Layer --- */
|
||||
.shop-list {
|
||||
padding: 0 24rpx 24rpx;
|
||||
/* Skyline does not need the WebView vendor-prefix compatibility output. */
|
||||
/* autoprefixer: off */
|
||||
|
||||
.shop-page {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.shop-scroll {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.shop-header {
|
||||
@@ -27,14 +36,9 @@
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* --- Product Grid (2-column) --- */
|
||||
.shop-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 20rpx;
|
||||
}
|
||||
|
||||
.shop-card {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
border-radius: 24rpx;
|
||||
overflow: hidden;
|
||||
background: var(--bg-card);
|
||||
@@ -42,20 +46,21 @@
|
||||
transition: transform 0.15s ease;
|
||||
}
|
||||
|
||||
.shop-card:active {
|
||||
transform: scale(0.97);
|
||||
}
|
||||
|
||||
/* aspect-ratio 在 Skyline 不稳定,用固定高度替代 */
|
||||
.shop-card-img-wrap {
|
||||
aspect-ratio: 3 / 4;
|
||||
height: 460rpx;
|
||||
overflow: hidden;
|
||||
background: #2a2218;
|
||||
}
|
||||
|
||||
.shop-card-share {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.shop-card-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
transition: transform 0.4s ease;
|
||||
}
|
||||
|
||||
@@ -67,9 +72,6 @@
|
||||
font-size: 26rpx;
|
||||
color: #e8e0d6;
|
||||
line-height: 1.4;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
min-height: 74rpx;
|
||||
}
|
||||
@@ -81,13 +83,3 @@
|
||||
margin-top: 10rpx;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
Responsive: container center on wide screens
|
||||
============================================================ */
|
||||
@media (min-width: 750rpx) {
|
||||
.shop-page {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
+40
-13
@@ -1,8 +1,11 @@
|
||||
import { View, Text, Image } from '@tarojs/components'
|
||||
import { View, Text, Image, ShareElement, ScrollView, GridView } from '@tarojs/components'
|
||||
import Taro from '@tarojs/taro'
|
||||
import { useEffect } from 'react'
|
||||
import { useThemeContext } from '../../context/ThemeContext'
|
||||
import { useSafeArea } from '../../hooks/useSafeArea'
|
||||
import { useStatusBar } from '../../hooks/useStatusBar'
|
||||
import { registerSharedElementRoute } from '../../utils/sharedElementRoute'
|
||||
import CustomTabBar from '../../custom-tab-bar'
|
||||
import './index.scss'
|
||||
import { PRODUCTS } from '../../utils/productConfig'
|
||||
|
||||
@@ -11,19 +14,36 @@ export default function ShopPage() {
|
||||
const safe = useSafeArea()
|
||||
useStatusBar(resolvedTheme)
|
||||
|
||||
useEffect(() => {
|
||||
registerSharedElementRoute()
|
||||
}, [])
|
||||
|
||||
const openDetail = (productId: string) => {
|
||||
Taro.navigateTo({ url: `/pages/shop/detail/index?id=${productId}` })
|
||||
// The initial app page may be WebView, so ensure registration here too.
|
||||
registerSharedElementRoute()
|
||||
Taro.navigateTo({
|
||||
url: `/pages/shop/detail/index?id=${productId}`,
|
||||
// @ts-ignore - routeType is a Skyline custom route option
|
||||
routeType: 'sharedElementRoute'
|
||||
} as any)
|
||||
}
|
||||
|
||||
return (
|
||||
<View className={`shop-page theme-${resolvedTheme}`}>
|
||||
<View className="shop-list">
|
||||
<ScrollView type="custom" scrollY className="shop-scroll">
|
||||
<View className="shop-header" style={{ paddingTop: `${safe.headerPaddingTop}px` }}>
|
||||
<Text className="shop-header-title">智绘精选</Text>
|
||||
<Text className="shop-header-sub">激光微雕定制好物</Text>
|
||||
</View>
|
||||
|
||||
<View className="shop-grid">
|
||||
<GridView
|
||||
type="aligned"
|
||||
crossAxisCount={2}
|
||||
mainAxisGap={10}
|
||||
crossAxisGap={10}
|
||||
padding={[0, 12, 12, 12]}
|
||||
className="shop-grid"
|
||||
>
|
||||
{PRODUCTS.map(product => (
|
||||
<View
|
||||
key={product.id}
|
||||
@@ -31,12 +51,17 @@ export default function ShopPage() {
|
||||
onTap={() => openDetail(product.id)}
|
||||
>
|
||||
<View className="shop-card-img-wrap">
|
||||
<Image
|
||||
className="shop-card-img"
|
||||
src={product.images?.[0] || product.iconImg || ''}
|
||||
mode="aspectFill"
|
||||
lazyLoad
|
||||
/>
|
||||
<ShareElement
|
||||
mapkey={`product-${product.id}`}
|
||||
duration={300}
|
||||
className='shop-card-share'
|
||||
>
|
||||
<Image
|
||||
className="shop-card-img"
|
||||
src={product.images?.[0] || product.iconImg || ''}
|
||||
mode="aspectFill"
|
||||
/>
|
||||
</ShareElement>
|
||||
</View>
|
||||
<View
|
||||
className="shop-card-info"
|
||||
@@ -49,11 +74,13 @@ export default function ShopPage() {
|
||||
</View>
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
</GridView>
|
||||
|
||||
{/* TabBar spacer so list isn't obscured */}
|
||||
{/* TabBar spacer */}
|
||||
<View style={{ height: '160px' }} />
|
||||
</View>
|
||||
</ScrollView>
|
||||
|
||||
<CustomTabBar />
|
||||
</View>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview',
|
||||
navigationBarTitleText: '用户数据库',
|
||||
backgroundColor: '#ffffff'
|
||||
})
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
export default definePageConfig({
|
||||
renderer: 'webview'
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
declare const wx: any
|
||||
|
||||
let registered = false
|
||||
|
||||
export function registerSharedElementRoute(): boolean {
|
||||
if (registered) return true
|
||||
if (typeof wx === 'undefined' || !wx.router?.addRouteBuilder) return false
|
||||
|
||||
wx.router.addRouteBuilder('sharedElementRoute', (routeContext: any) => {
|
||||
const { primaryAnimation } = routeContext
|
||||
|
||||
const handlePrimaryAnimation = () => {
|
||||
'worklet'
|
||||
const t = primaryAnimation.value
|
||||
// Keep the route builder within the official Skyline-supported
|
||||
// animation surface. The shared image is animated independently.
|
||||
return { backgroundColor: `rgba(28, 22, 18, ${t})` }
|
||||
}
|
||||
|
||||
return {
|
||||
opaque: false,
|
||||
maintainState: true,
|
||||
transitionDuration: 400,
|
||||
reverseTransitionDuration: 400,
|
||||
canTransitionFrom: false,
|
||||
canTransitionTo: false,
|
||||
handlePrimaryAnimation
|
||||
}
|
||||
})
|
||||
|
||||
registered = true
|
||||
return true
|
||||
}
|
||||
+1
-1
@@ -254,7 +254,7 @@ export function setTheme(theme: ThemeMode) {
|
||||
/** 根据自动模式解析实际生效主题 */
|
||||
export function resolveTheme(mode: ThemeMode): 'light' | 'dark' {
|
||||
if (mode === 'auto') {
|
||||
const info = Taro.getSystemInfoSync()
|
||||
const info = Taro.getAppBaseInfo()
|
||||
return info.theme === 'dark' ? 'dark' : 'light'
|
||||
}
|
||||
return mode
|
||||
|
||||
Reference in New Issue
Block a user