修改动画效果(失败T_T)

商品页动画。
This commit is contained in:
2026-08-05 10:13:52 +08:00
parent ba62c9f930
commit 91a68fef0b
80 changed files with 399 additions and 124 deletions
+1
View File
File diff suppressed because one or more lines are too long
Vendored
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -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":"我的"}]}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+16
View File
@@ -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>
+1 -1
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -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}
+1 -1
View File
@@ -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()}]);
+48 -1
View File
@@ -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;
}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"navigationBarTitleText":"收货地址","usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","navigationBarTitleText":"收货地址","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
@@ -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()}]);
+1 -1
View File
@@ -1 +1 @@
{"navigationBarTitleText":"定制协议","usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","navigationBarTitleText":"定制协议","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"navigationBarTitleText":"编辑贴纸","usingComponents":{"comp":"../../../comp"}}
{"renderer":"webview","navigationBarTitleText":"编辑贴纸","usingComponents":{"comp":"../../../comp"}}
+1 -1
View File
@@ -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()}]);
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"navigationBarTitleText":"订单详情","usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","navigationBarTitleText":"订单详情","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"navigationBarTitleText":"设置","usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","navigationBarTitleText":"设置","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -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"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -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()}]);
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"skyline","componentFramework":"glass-easel","disableScroll":true,"navigationStyle":"custom","navigationBarTextStyle":"black","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
@@ -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}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"navigationBarTitleText":"用户数据库","backgroundColor":"#ffffff","usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","navigationBarTitleText":"用户数据库","backgroundColor":"#ffffff","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"usingComponents":{"comp":"../../comp"}}
{"renderer":"webview","usingComponents":{"comp":"../../comp"}}
+1 -1
View File
@@ -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))}()})();
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -6,7 +6,7 @@
"urlCheck": true,
"coverView": true,
"lazyloadPlaceholderEnable": false,
"skylineRenderEnable": false,
"skylineRenderEnable": true,
"preloadBackgroundData": false,
"autoAudits": false,
"useApiHook": true,
+23
View File
@@ -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')
+10
View File
@@ -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
View File
@@ -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() {}
+10 -7
View File
@@ -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;
}
+2 -1
View File
@@ -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}
+48
View File
@@ -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;
}
+2 -2
View File
@@ -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
View File
@@ -1,3 +1,4 @@
export default definePageConfig({
renderer: 'webview',
navigationBarTitleText: '收货地址'
})
+1
View File
@@ -1,3 +1,4 @@
export default definePageConfig({
renderer: 'webview',
navigationBarTitleText: '定制协议'
})
+3
View File
@@ -0,0 +1,3 @@
export default definePageConfig({
renderer: 'webview'
})
+3
View File
@@ -0,0 +1,3 @@
export default definePageConfig({
renderer: 'webview'
})
+3
View File
@@ -0,0 +1,3 @@
export default definePageConfig({
renderer: 'webview'
})
@@ -1,3 +1,4 @@
export default definePageConfig({
renderer: 'webview',
navigationBarTitleText: '编辑贴纸'
})
+1 -1
View File
@@ -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)
+3
View File
@@ -0,0 +1,3 @@
export default definePageConfig({
renderer: 'webview'
})
+1
View File
@@ -1,3 +1,4 @@
export default definePageConfig({
renderer: 'webview',
navigationBarTitleText: '订单详情'
})
+3
View File
@@ -0,0 +1,3 @@
export default definePageConfig({
renderer: 'webview'
})
+3
View File
@@ -0,0 +1,3 @@
export default definePageConfig({
renderer: 'webview'
})
+3
View File
@@ -0,0 +1,3 @@
export default definePageConfig({
renderer: 'webview'
})
+3
View File
@@ -0,0 +1,3 @@
export default definePageConfig({
renderer: 'webview'
})
+1
View File
@@ -1,3 +1,4 @@
export default definePageConfig({
renderer: 'webview',
navigationBarTitleText: '设置'
})
+5 -1
View File
@@ -1,5 +1,9 @@
export default definePageConfig({
renderer: 'skyline',
componentFramework: 'glass-easel',
disableScroll: true,
navigationStyle: 'custom',
// 顶部为深色商品大图,状态栏文字设为白色,确保 iOS 时间/电量可见
backgroundColor: '#1c1612',
// 顶部为深色商品大图,状态栏文字设为白色
navigationBarTextStyle: 'white'
})
+15 -13
View File
@@ -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;
}
+26 -8
View File
@@ -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>
)
}
+7
View File
@@ -0,0 +1,7 @@
export default definePageConfig({
renderer: 'skyline',
componentFramework: 'glass-easel',
disableScroll: true,
navigationStyle: 'custom',
navigationBarTextStyle: 'black'
})
+22 -30
View File
@@ -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
View File
@@ -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
View File
@@ -1,4 +1,5 @@
export default definePageConfig({
renderer: 'webview',
navigationBarTitleText: '用户数据库',
backgroundColor: '#ffffff'
})
+3
View File
@@ -0,0 +1,3 @@
export default definePageConfig({
renderer: 'webview'
})
+33
View File
@@ -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
View File
@@ -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