diff --git a/miniprogram/manifest.json b/miniprogram/manifest.json
index 9b5025c7..5f3016a8 100644
--- a/miniprogram/manifest.json
+++ b/miniprogram/manifest.json
@@ -1,5 +1,5 @@
{
- "name" : "miniprogram",
+ "name" : "钻石流",
"appid" : "__UNI__325B000",
"description" : "",
"versionName" : "1.0.0",
diff --git a/miniprogram/pages/mine/index.vue b/miniprogram/pages/mine/index.vue
index 062349ca..6e15f0a0 100644
--- a/miniprogram/pages/mine/index.vue
+++ b/miniprogram/pages/mine/index.vue
@@ -12,6 +12,7 @@
{{ isLoggedIn ? (userStore.user?.nickname || '微信用户') : '点击注册/登录' }}
+ ID: {{ userStore.user?.id }}
›
@@ -200,6 +201,12 @@ function handleLogout() {
color: #333;
font-weight: bold;
}
+.user-card__id {
+ font-size: 24rpx;
+ color: #999;
+ margin-top: 8rpx;
+ display: block;
+}
.user-card__arrow {
font-size: 36rpx;
color: #ccc;
diff --git a/miniprogram/static/logo.png b/miniprogram/static/logo.png
index b5771e20..4a8c9549 100644
Binary files a/miniprogram/static/logo.png and b/miniprogram/static/logo.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/api/cart.js b/miniprogram/unpackage/dist/build/mp-weixin/api/cart.js
new file mode 100644
index 00000000..255f6ba1
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/api/cart.js
@@ -0,0 +1 @@
+"use strict";const t=require("../utils/request.js");exports.addToCart=e=>t.post("/api/cart",e),exports.deleteCartItem=e=>t.del(`/api/cart/${e}`),exports.getCartList=()=>t.get("/api/cart"),exports.updateCartItem=(e,r)=>t.put(`/api/cart/${e}`,r);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/api/order.js b/miniprogram/unpackage/dist/build/mp-weixin/api/order.js
new file mode 100644
index 00000000..6b7982d7
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/api/order.js
@@ -0,0 +1 @@
+"use strict";const e=require("../utils/request.js");exports.cancelOrder=r=>e.put(`/api/orders/${r}/cancel`),exports.createOrder=r=>e.post("/api/orders",r),exports.getOrderDetail=r=>e.get(`/api/orders/${r}`),exports.getOrderList=()=>e.get("/api/orders");
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/api/product.js b/miniprogram/unpackage/dist/build/mp-weixin/api/product.js
new file mode 100644
index 00000000..b4253bb1
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/api/product.js
@@ -0,0 +1 @@
+"use strict";const t=require("../utils/request.js");exports.getCategories=()=>t.get("/api/categories"),exports.getProductDetail=e=>t.get(`/api/products/${e}`),exports.getProductSpecs=e=>t.get(`/api/products/${e}/specs`),exports.getProducts=e=>t.get("/api/products",e),exports.getSpecDataList=(e,s)=>t.post(`/api/products/${e}/spec-data`,s||{});
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/api/user.js b/miniprogram/unpackage/dist/build/mp-weixin/api/user.js
new file mode 100644
index 00000000..5a2158db
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/api/user.js
@@ -0,0 +1 @@
+"use strict";const e=require("../utils/request.js");exports.addAddress=s=>e.post("/api/user/addresses",s),exports.deleteAddress=s=>e.del(`/api/user/addresses/${s}`),exports.getAddressList=()=>e.get("/api/user/addresses"),exports.getUserProfile=()=>e.get("/api/user/profile"),exports.updateAddress=(s,r)=>e.put(`/api/user/addresses/${s}`,r);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/app.js b/miniprogram/unpackage/dist/build/mp-weixin/app.js
new file mode 100644
index 00000000..c793e0bb
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/app.js
@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./common/vendor.js");Math;const e={onLaunch(){console.log("App Launch")},onShow(){console.log("App Show")},onHide(){console.log("App Hide")}};function n(){const n=o.createSSRApp(e),p=o.createPinia();return n.use(p),{app:n}}n().app.mount("#app"),exports.createApp=n;
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/app.json b/miniprogram/unpackage/dist/build/mp-weixin/app.json
new file mode 100644
index 00000000..ebaf25be
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/app.json
@@ -0,0 +1,56 @@
+{
+ "pages": [
+ "pages/index/index",
+ "pages/category/index",
+ "pages/product/detail",
+ "pages/cart/index",
+ "pages/order/submit",
+ "pages/order/detail",
+ "pages/order/list",
+ "pages/mold/index",
+ "pages/calculator/index",
+ "pages/mine/index",
+ "pages/address/index",
+ "pages/search/index",
+ "pages/login/index"
+ ],
+ "window": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "珠宝商城",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "tabBar": {
+ "color": "#999",
+ "selectedColor": "#e4393c",
+ "backgroundColor": "#fff",
+ "list": [
+ {
+ "pagePath": "pages/index/index",
+ "iconPath": "static/tab/home.png",
+ "selectedIconPath": "static/tab/home_s.png",
+ "text": "首页"
+ },
+ {
+ "pagePath": "pages/mold/index",
+ "iconPath": "static/tab/model_house.png",
+ "selectedIconPath": "static/tab/model_house_s.png",
+ "text": "版房"
+ },
+ {
+ "pagePath": "pages/cart/index",
+ "iconPath": "static/tab/car.png",
+ "selectedIconPath": "static/tab/car_s.png",
+ "text": "购物车"
+ },
+ {
+ "pagePath": "pages/mine/index",
+ "iconPath": "static/tab/me.png",
+ "selectedIconPath": "static/tab/me_s.png",
+ "text": "我的"
+ }
+ ]
+ },
+ "permission": {},
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/app.wxss b/miniprogram/unpackage/dist/build/mp-weixin/app.wxss
new file mode 100644
index 00000000..c1b62518
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/app.wxss
@@ -0,0 +1 @@
+page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/common/assets.js b/miniprogram/unpackage/dist/build/mp-weixin/common/assets.js
new file mode 100644
index 00000000..80efe0d3
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/common/assets.js
@@ -0,0 +1 @@
+"use strict";exports._imports_0="/static/ic_search.png",exports._imports_0$1="/static/ic_none.png",exports._imports_0$2="/static/ic_back.png",exports._imports_0$3="/static/tab/me_s.png",exports._imports_0$4="/static/logo.png",exports._imports_0$5="/static/ic_notice.png",exports._imports_1="/static/ic_jz.png",exports._imports_1$1="/static/ic_address.png",exports._imports_1$2="/static/ic_address2.png",exports._imports_1$3="/static/ic_empty.png",exports._imports_2="/static/ic_kf.png",exports._imports_2$1="/static/ic_customer.png",exports._imports_2$2="/static/tab/car.png",exports._imports_2$3="/static/ic_tip.png",exports._imports_2$4="/static/ic_phone.png",exports._imports_3="/static/ic_time.png",exports._imports_3$1="/static/ic_about.png",exports._imports_4="/static/ic_agreement1.png",exports._imports_5="/static/ic_agreement2.png",exports._imports_6="/static/ic_loginout.png";
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/common/vendor.js b/miniprogram/unpackage/dist/build/mp-weixin/common/vendor.js
new file mode 100644
index 00000000..34bc7ffd
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/common/vendor.js
@@ -0,0 +1,15 @@
+"use strict";
+/**
+* @vue/shared v3.4.21
+* (c) 2018-present Yuxi (Evan) You and Vue contributors
+* @license MIT
+**/
+function e(e,t){const n=new Set(e.split(","));return t?e=>n.has(e.toLowerCase()):e=>n.has(e)}const t={},n=[],o=()=>{},r=()=>!1,s=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),i=e=>e.startsWith("onUpdate:"),c=Object.assign,a=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},u=Object.prototype.hasOwnProperty,l=(e,t)=>u.call(e,t),f=Array.isArray,p=e=>"[object Map]"===x(e),d=e=>"[object Set]"===x(e),h=e=>"function"==typeof e,g=e=>"string"==typeof e,m=e=>"symbol"==typeof e,v=e=>null!==e&&"object"==typeof e,_=e=>(v(e)||h(e))&&h(e.then)&&h(e.catch),y=Object.prototype.toString,x=e=>y.call(e),b=e=>"[object Object]"===x(e),w=e=>g(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,$=e(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),S=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},k=/-(\w)/g,O=S((e=>e.replace(k,((e,t)=>t?t.toUpperCase():"")))),P=/\B([A-Z])/g,E=S((e=>e.replace(P,"-$1").toLowerCase())),C=S((e=>e.charAt(0).toUpperCase()+e.slice(1))),I=S((e=>e?`on${C(e)}`:"")),A=(e,t)=>!Object.is(e,t),j=(e,t)=>{for(let n=0;n{const t=parseFloat(e);return isNaN(t)?e:t},L=(e,t)=>t&&t.__v_isRef?L(e,t.value):p(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n],o)=>(e[M(t,o)+" =>"]=n,e)),{})}:d(t)?{[`Set(${t.size})`]:[...t.values()].map((e=>M(e)))}:m(t)?M(t):!v(t)||f(t)||b(t)?t:String(t),M=(e,t="")=>{var n;return m(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};function T(e,t=null){let n;return(...o)=>(e&&(n=e.apply(t,o),e=null),n)}function V(e,t){if(!g(t))return;const n=(t=t.replace(/\[(\d+)\]/g,".$1")).split(".");let o=n[0];return e||(e={}),1===n.length?e[o]:V(e[o],n.slice(1).join("."))}function H(e){let t={};return b(e)&&Object.keys(e).sort().forEach((n=>{const o=n;t[o]=e[o]})),Object.keys(t)?t:e}const D=/:/g;const N=encodeURIComponent;function B(e,t=N){const n=e?Object.keys(e).map((n=>{let o=e[n];return void 0===typeof o||null===o?o="":b(o)&&(o=JSON.stringify(o)),t(n)+"="+t(o)})).filter((e=>e.length>0)).join("&"):null;return n?`?${n}`:""}const U=["onInit","onLoad","onShow","onHide","onUnload","onBackPress","onPageScroll","onTabItemTap","onReachBottom","onPullDownRefresh","onShareTimeline","onShareAppMessage","onShareChat","onAddToFavorites","onSaveExitState","onNavigationBarButtonTap","onNavigationBarSearchInputClicked","onNavigationBarSearchInputChanged","onNavigationBarSearchInputConfirmed","onNavigationBarSearchInputFocusChanged"];const W=["onShow","onHide","onLaunch","onError","onThemeChange","onPageNotFound","onUnhandledRejection","onExit","onInit","onLoad","onReady","onUnload","onResize","onBackPress","onPageScroll","onTabItemTap","onReachBottom","onPullDownRefresh","onShareTimeline","onAddToFavorites","onShareAppMessage","onShareChat","onSaveExitState","onNavigationBarButtonTap","onNavigationBarSearchInputClicked","onNavigationBarSearchInputChanged","onNavigationBarSearchInputConfirmed","onNavigationBarSearchInputFocusChanged"],z=(()=>({onPageScroll:1,onShareAppMessage:2,onShareTimeline:4,onShareChat:8}))();function F(e,t,n=!0){return!(n&&!h(t))&&(W.indexOf(e)>-1||0===e.indexOf("on"))}let K;const q=[];const J=T(((e,t)=>t(e))),G=function(){};G.prototype={_id:1,on:function(e,t,n){var o=this.e||(this.e={});return(o[e]||(o[e]=[])).push({fn:t,ctx:n,_id:this._id}),this._id++},once:function(e,t,n){var o=this;function r(){o.off(e,r),t.apply(n,arguments)}return r._=t,this.on(e,r,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),o=0,r=n.length;o=0;s--)if(o[s].fn===t||o[s].fn._===t||o[s]._id===t){o.splice(s,1);break}r=o}return r.length?n[e]=r:delete n[e],this}};var Z=G;function Q(e,t){if(!e)return;if(e=e.trim().replace(/_/g,"-"),t&&t[e])return e;if("chinese"===(e=e.toLowerCase()))return"zh-Hans";if(0===e.indexOf("zh"))return e.indexOf("-hans")>-1?"zh-Hans":e.indexOf("-hant")>-1?"zh-Hant":(n=e,["-tw","-hk","-mo","-cht"].find((e=>-1!==n.indexOf(e)))?"zh-Hant":"zh-Hans");var n;let o=["en","fr","es"];t&&Object.keys(t).length>0&&(o=Object.keys(t));const r=function(e,t){return t.find((t=>0===e.indexOf(t)))}(e,o);return r||void 0}function X(e){return function(){try{return e.apply(e,arguments)}catch(t){console.error(t)}}}let Y=1;const ee={};function te(e,t,n){if("number"==typeof e){const o=ee[e];if(o)return o.keepAlive||delete ee[e],o.callback(t,n)}return t}const ne="success",oe="fail",re="complete";function se(e,t={},{beforeAll:n,beforeSuccess:o}={}){b(t)||(t={});const{success:r,fail:s,complete:i}=function(e){const t={};for(const n in e){const o=e[n];h(o)&&(t[n]=X(o),delete e[n])}return t}(t),c=h(r),a=h(s),u=h(i),l=Y++;return function(e,t,n,o=!1){ee[e]={name:t,keepAlive:o,callback:n}}(l,e,(l=>{(l=l||{}).errMsg=function(e,t){return e&&-1!==e.indexOf(":fail")?t+e.substring(e.indexOf(":fail")):t+":ok"}(l.errMsg,e),h(n)&&n(l),l.errMsg===e+":ok"?(h(o)&&o(l,t),c&&r(l)):a&&s(l),u&&i(l)})),l}const ie="success",ce="fail",ae="complete",ue={},le={};function fe(e,t){return function(n){return e(n,t)||n}}function pe(e,t,n){let o=!1;for(let r=0;re(t),catch(){}}}function de(e,t={}){return[ie,ce,ae].forEach((n=>{const o=e[n];if(!f(o))return;const r=t[n];t[n]=function(e){pe(o,e,t).then((e=>h(r)&&r(e)||e))}})),t}function he(e,t){const n=[];f(ue.returnValue)&&n.push(...ue.returnValue);const o=le[e];return o&&f(o.returnValue)&&n.push(...o.returnValue),n.forEach((e=>{t=e(t)||t})),t}function ge(e){const t=Object.create(null);Object.keys(ue).forEach((e=>{"returnValue"!==e&&(t[e]=ue[e].slice())}));const n=le[e];return n&&Object.keys(n).forEach((e=>{"returnValue"!==e&&(t[e]=(t[e]||[]).concat(n[e]))})),t}function me(e,t,n,o){const r=ge(e);if(r&&Object.keys(r).length){if(f(r.invoke)){return pe(r.invoke,n).then((n=>t(de(ge(e),n),...o)))}return t(de(r,n),...o)}return t(n,...o)}function ve(e,t){return(n={},...o)=>function(e){return!(!b(e)||![ne,oe,re].find((t=>h(e[t]))))}(n)?he(e,me(e,t,c({},n),o)):he(e,new Promise(((r,s)=>{me(e,t,c({},n,{success:r,fail:s}),o)})))}function _e(e,t,n,o={}){const r=t+":fail";let s="";return s=n?0===n.indexOf(r)?n:r+" "+n:r,delete o.errCode,te(e,c({errMsg:s},o))}function ye(e,t,n,o){const r=function(e,t){e[0]}(t);if(r)return r}function xe(e,t,n,o){return n=>{const r=se(e,n,o),s=ye(0,[n]);return s?_e(r,e,s):t(n,{resolve:t=>function(e,t,n){return te(e,c(n||{},{errMsg:t+":ok"}))}(r,e,t),reject:(t,n)=>_e(r,e,function(e){return!e||g(e)?e:e.stack?("undefined"!=typeof globalThis&&globalThis.harmonyChannel||console.error(e.message+"\n"+e.stack),e.message):e}(t),n)})}}function be(e,t,n,o){return function(e,t,n,o){return(...e)=>{const n=ye(0,e);if(n)throw new Error(n);return t.apply(null,e)}}(0,t)}let we=!1,$e=0,Se=0;const ke=be(0,((e,t)=>{if(0===$e&&function(){var e,t;let n,o,r;{const s=(null===(e=wx.getWindowInfo)||void 0===e?void 0:e.call(wx))||wx.getSystemInfoSync(),i=(null===(t=wx.getDeviceInfo)||void 0===t?void 0:t.call(wx))||wx.getSystemInfoSync();n=s.windowWidth,o=s.pixelRatio,r=i.platform}$e=n,Se=o,we="ios"===r}(),0===(e=Number(e)))return 0;let n=e/750*(t||$e);return n<0&&(n=-n),n=Math.floor(n+1e-4),0===n&&(n=1!==Se&&we?.5:1),e<0?-n:n}));function Oe(e,t){Object.keys(t).forEach((n=>{h(t[n])&&(e[n]=function(e,t){const n=t?e?e.concat(t):f(t)?t:[t]:e;return n?function(e){const t=[];for(let n=0;n{const o=e[n],r=t[n];f(o)&&h(r)&&a(o,r)}))}const Ee=be(0,((e,t)=>{g(e)&&b(t)?Oe(le[e]||(le[e]={}),t):b(e)&&Oe(ue,e)})),Ce=be(0,((e,t)=>{g(e)?b(t)?Pe(le[e],t):delete le[e]:b(e)&&Pe(ue,e)}));const Ie=new class{constructor(){this.$emitter=new Z}on(e,t){return this.$emitter.on(e,t)}once(e,t){return this.$emitter.once(e,t)}off(e,t){e?this.$emitter.off(e,t):this.$emitter.e={}}emit(e,...t){this.$emitter.emit(e,...t)}},Ae=be(0,((e,t)=>(Ie.on(e,t),()=>Ie.off(e,t)))),je=be(0,((e,t)=>(Ie.once(e,t),()=>Ie.off(e,t)))),Re=be(0,((e,t)=>{f(e)||(e=e?[e]:[]),e.forEach((e=>{Ie.off(e,t)}))})),Le=be(0,((e,...t)=>{Ie.emit(e,...t)}));let Me,Te,Ve;function He(e){try{return JSON.parse(e)}catch(t){}return e}const De=[];function Ne(e,t){De.forEach((n=>{n(e,t)})),De.length=0}const Be=ve(Ue="getPushClientId",function(e,t,n,o){return xe(e,t,0,o)}(Ue,((e,{resolve:t,reject:n})=>{Promise.resolve().then((()=>{void 0===Ve&&(Ve=!1,Me="",Te="uniPush is not enabled"),De.push(((e,o)=>{e?t({cid:e}):n(o)})),void 0!==Me&&Ne(Me,Te)}))}),0,We));var Ue,We;const ze=[],Fe=/^\$|__f__|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|rpx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getDeviceInfo|getAppBaseInfo|getWindowInfo|getSystemSetting|getAppAuthorizeSetting/,Ke=/^create|Manager$/,qe=["createBLEConnection"],Je=["request","downloadFile","uploadFile","connectSocket"],Ge=["createBLEConnection"],Ze=/^on|^off/;function Qe(e){return Ke.test(e)&&-1===qe.indexOf(e)}function Xe(e){return Fe.test(e)&&-1===Ge.indexOf(e)}function Ye(e){return-1!==Je.indexOf(e)}function et(e){return!(Qe(e)||Xe(e)||function(e){return Ze.test(e)&&"onPush"!==e}(e))}function tt(e,t){return et(e)&&h(t)?function(n={},...o){return h(n.success)||h(n.fail)||h(n.complete)?he(e,me(e,t,c({},n),o)):he(e,new Promise(((r,s)=>{me(e,t,c({},n,{success:r,fail:s}),o)})))}:t}Promise.prototype.finally||(Promise.prototype.finally=function(e){const t=this.constructor;return this.then((n=>t.resolve(e&&e()).then((()=>n))),(n=>t.resolve(e&&e()).then((()=>{throw n}))))});const nt=["success","fail","cancel","complete"];const ot=()=>{const e=h(getApp)&&getApp({allowDefault:!0});return e&&e.$vm?e.$vm.$locale:function(){var e;let t="";{const n=(null===(e=wx.getAppBaseInfo)||void 0===e?void 0:e.call(wx))||wx.getSystemInfoSync();t=Q(n&&n.language?n.language:"en")||"en"}return t}()},rt=[];"undefined"!=typeof global&&(global.getLocale=ot);let st;function it(e=wx){return function(t,n){st=st||e.getStorageSync("__DC_STAT_UUID"),st||(st=Date.now()+""+Math.floor(1e7*Math.random()),wx.setStorage({key:"__DC_STAT_UUID",data:st})),n.deviceId=st}}function ct(e,t){if(e.safeArea){const n=e.safeArea;t.safeAreaInsets={top:n.top,left:n.left,right:e.windowWidth-n.right,bottom:e.screenHeight-n.bottom}}}function at(e,t){let n="",o="";switch(n=e.split(" ")[0]||t,o=e.split(" ")[1]||"",n=n.toLowerCase(),n){case"harmony":case"ohos":case"openharmony":n="harmonyos";break;case"iphone os":n="ios";break;case"mac":case"darwin":n="macos";break;case"windows_nt":n="windows"}return{osName:n,osVersion:o}}function ut(e,t){let n=e.deviceType||"phone";{const e={ipad:"pad",windows:"pc",mac:"pc"},o=Object.keys(e),r=t.toLowerCase();for(let t=0;t{ct(e,t),it()(e,t),function(e,t){const{brand:n="",model:o="",system:r="",language:s="",theme:i,version:a,platform:u,fontSizeSetting:l,SDKVersion:f,pixelRatio:p,deviceOrientation:d}=e,{osName:h,osVersion:g}=at(r,u);let m=a,v=ut(e,o),_=lt(n),y=pt(e),x=d,b=p,w=f;const $=(s||"").replace(/_/g,"-"),S={appId:"__UNI__325B000",appName:"钻石流",appVersion:"1.0.0",appVersionCode:"100",appLanguage:ft($),uniCompileVersion:"4.87",uniCompilerVersion:"4.87",uniRuntimeVersion:"4.87",uniPlatform:"mp-weixin",deviceBrand:_,deviceModel:o,deviceType:v,devicePixelRatio:b,deviceOrientation:x,osName:h,osVersion:g,hostTheme:i,hostVersion:m,hostLanguage:$,hostName:y,hostSDKVersion:w,hostFontSizeSetting:l,windowTop:0,windowBottom:0,osLanguage:void 0,osTheme:void 0,ua:void 0,hostPackageName:void 0,browserName:void 0,browserVersion:void 0,isUniAppX:!1};c(t,S)}(e,t)}},ht=dt,gt={args(e,t){let n=parseInt(e.current);if(isNaN(n))return;const o=e.urls;if(!f(o))return;const r=o.length;return r?(n<0?n=0:n>=r&&(n=r-1),n>0?(t.current=o[n],t.urls=o.filter(((e,t)=>!(t{const{brand:n,model:o,system:r="",platform:s=""}=e;let i=ut(e,o),a=lt(n);it()(e,t);const{osName:u,osVersion:l}=at(r,s);t=H(c(t,{deviceType:i,deviceBrand:a,deviceModel:o,osName:u,osVersion:l}))}},_t={returnValue:(e,t)=>{const{version:n,language:o,SDKVersion:r,theme:s}=e;let i=pt(e),a=(o||"").replace(/_/g,"-");const u={hostVersion:n,hostLanguage:a,hostName:i,hostSDKVersion:r,hostTheme:s,appId:"__UNI__325B000",appName:"钻石流",appVersion:"1.0.0",appVersionCode:"100",appLanguage:ft(a),isUniAppX:!1,uniPlatform:"mp-weixin",uniCompileVersion:"4.87",uniCompilerVersion:"4.87",uniRuntimeVersion:"4.87"};c(t,u)}},yt={returnValue:(e,t)=>{ct(e,t),t=H(c(t,{windowTop:0,windowBottom:0}))}},xt={args(e){const t=getApp({allowDefault:!0})||{};t.$vm?or("onError",e,t.$vm.$):(wx.$onErrorHandlers||(wx.$onErrorHandlers=[]),wx.$onErrorHandlers.push(e))}},bt={args(e){const t=getApp({allowDefault:!0})||{};if(t.$vm){if(e.__weh){const n=t.$vm.$.onError;if(n){const t=n.indexOf(e.__weh);t>-1&&n.splice(t,1)}}}else{if(!wx.$onErrorHandlers)return;const t=wx.$onErrorHandlers.findIndex((t=>t===e));-1!==t&&wx.$onErrorHandlers.splice(t,1)}}},wt={args(){if(wx.__uni_console__){if(wx.__uni_console_warned__)return;wx.__uni_console_warned__=!0,console.warn("开发模式下小程序日志回显会使用 socket 连接,为了避免冲突,建议使用 SocketTask 的方式去管理 WebSocket 或手动关闭日志回显功能。[详情](https://uniapp.dcloud.net.cn/tutorial/run/mp-log.html)")}}},$t=wt,St={$on:Ae,$off:Re,$once:je,$emit:Le,upx2px:ke,rpx2px:ke,interceptors:{},addInterceptor:Ee,removeInterceptor:Ce,onCreateVueApp:function(e){if(K)return e(K);q.push(e)},invokeCreateVueAppHook:function(e){K=e,q.forEach((t=>t(e)))},getLocale:ot,setLocale:e=>{const t=h(getApp)&&getApp();if(!t)return!1;return t.$vm.$locale!==e&&(t.$vm.$locale=e,rt.forEach((t=>t({locale:e}))),!0)},onLocaleChange:e=>{-1===rt.indexOf(e)&&rt.push(e)},getPushClientId:Be,onPushMessage:e=>{-1===ze.indexOf(e)&&ze.push(e)},offPushMessage:e=>{if(e){const t=ze.indexOf(e);t>-1&&ze.splice(t,1)}else ze.length=0},invokePushCallback:function(e){if("enabled"===e.type)Ve=!0;else if("clientId"===e.type)Me=e.cid,Te=e.errMsg,Ne(Me,e.errMsg);else if("pushMsg"===e.type){const t={type:"receive",data:He(e.message)};for(let e=0;e{t({type:"click",data:He(e.message)})}))},__f__:function(e,t,...n){t&&n.push(t),console[e].apply(console,n)}};const kt=["qy","env","error","version","lanDebug","cloud","serviceMarket","router","worklet","__webpack_require_UNI_MP_PLUGIN__"],Ot=["lanDebug","router","worklet"],Pt=wx.getLaunchOptionsSync?wx.getLaunchOptionsSync():null;function Et(e){return(!Pt||1154!==Pt.scene||!Ot.includes(e))&&(kt.indexOf(e)>-1||"function"==typeof wx[e])}function Ct(){const e={};for(const t in wx)Et(t)&&(e[t]=wx[t]);return"undefined"!=typeof globalThis&&"undefined"==typeof requireMiniProgram&&(globalThis.wx=e),e}const It=["__route__","__wxExparserNodeId__","__wxWebviewId__"],At=(jt={oauth:["weixin"],share:["weixin"],payment:["wxpay"],push:["weixin"]},function({service:e,success:t,fail:n,complete:o}){let r;jt[e]?(r={errMsg:"getProvider:ok",service:e,provider:jt[e]},h(t)&&t(r)):(r={errMsg:"getProvider:fail:服务["+e+"]不存在"},h(n)&&n(r)),h(o)&&o(r)});var jt;const Rt=Ct();Rt.canIUse("getAppBaseInfo")||(Rt.getAppBaseInfo=Rt.getSystemInfoSync),Rt.canIUse("getWindowInfo")||(Rt.getWindowInfo=Rt.getSystemInfoSync),Rt.canIUse("getDeviceInfo")||(Rt.getDeviceInfo=Rt.getSystemInfoSync);let Lt=Rt.getAppBaseInfo&&Rt.getAppBaseInfo();Lt||(Lt=Rt.getSystemInfoSync());const Mt=Lt?Lt.host:null,Tt=Mt&&"SAAASDK"===Mt.env?Rt.miniapp.shareVideoMessage:Rt.shareVideoMessage;var Vt=Object.freeze({__proto__:null,createSelectorQuery:function(){const e=Rt.createSelectorQuery(),t=e.in;return e.in=function(e){return e.$scope?t.call(this,e.$scope):t.call(this,function(e){const t=Object.create(null);return It.forEach((n=>{t[n]=e[n]})),t}(e))},e},getProvider:At,shareVideoMessage:Tt});const Ht={args(e,t){e.compressedHeight&&!t.compressHeight&&(t.compressHeight=e.compressedHeight),e.compressedWidth&&!t.compressWidth&&(t.compressWidth=e.compressedWidth)}};var Dt=function(e,t,n=wx){const o=function(e){function t(e,t,n){return function(r){return t(o(e,r,n))}}function n(e,n,o={},r={},s=!1){if(b(n)){const i=!0===s?n:{};h(o)&&(o=o(n,i)||{});for(const c in n)if(l(o,c)){let t=o[c];h(t)&&(t=t(n[c],n,i)),t?g(t)?i[t]=n[c]:b(t)&&(i[t.name?t.name:c]=t.value):console.warn(`微信小程序 ${e} 暂不支持 ${c}`)}else if(-1!==nt.indexOf(c)){const o=n[c];h(o)&&(i[c]=t(e,o,r))}else s||l(i,c)||(i[c]=n[c]);return i}return h(n)&&(h(o)&&o(n,{}),n=t(e,n,r)),n}function o(t,o,r,s=!1){return h(e.returnValue)&&(o=e.returnValue(t,o)),n(t,o,r,{},s||!1)}return function(t,r){const s=l(e,t);if(!s&&"function"!=typeof wx[t])return r;const i=s||h(e.returnValue)||Qe(t)||Ye(t),c=s||h(r);if(!s&&!r)return function(){console.error(`微信小程序 暂不支持${t}`)};if(!i||!c)return r;const a=e[t];return function(e,r){let s=a||{};h(a)&&(s=a(e));const i=[e=n(t,e,s.args,s.returnValue)];void 0!==r&&i.push(r);const c=wx[s.name||t].apply(wx,i);return(Qe(t)||Ye(t))&&c&&!c.__v_skip&&(c.__v_skip=!0),Xe(t)?o(t,c,s.returnValue,Qe(t)):c}}}(t);return new Proxy({},{get:(t,r)=>l(t,r)?t[r]:l(e,r)?tt(r,e[r]):l(St,r)?tt(r,St[r]):tt(r,o(r,n[r]))})}(Vt,Object.freeze({__proto__:null,compressImage:Ht,getAppAuthorizeSetting:{returnValue:function(e,t){const{locationReducedAccuracy:n}=e;t.locationAccuracy="unsupported",!0===n?t.locationAccuracy="reduced":!1===n&&(t.locationAccuracy="full")}},getAppBaseInfo:_t,getDeviceInfo:vt,getSystemInfo:dt,getSystemInfoSync:ht,getWindowInfo:yt,offError:bt,onError:xt,onSocketMessage:$t,onSocketOpen:wt,previewImage:gt,redirectTo:{},showActionSheet:mt}),Ct());let Nt,Bt;class Ut{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Nt,!e&&Nt&&(this.index=(Nt.scopes||(Nt.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const t=Nt;try{return Nt=this,e()}finally{Nt=t}}}on(){Nt=this}off(){Nt=this.parent}stop(e){if(this._active){let t,n;for(t=0,n=this.effects.length;t=4))break}1===this._dirtyLevel&&(this._dirtyLevel=0),Yt()}return this._dirtyLevel>=4}set dirty(e){this._dirtyLevel=e?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let e=Gt,t=Bt;try{return Gt=!0,Bt=this,this._runnings++,Kt(this),this.fn()}finally{qt(this),this._runnings--,Bt=t,Gt=e}}stop(){var e;this.active&&(Kt(this),qt(this),null==(e=this.onStop)||e.call(this),this.active=!1)}}function Kt(e){e._trackId++,e._depsLength=0}function qt(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},cn=new WeakMap,an=Symbol(""),un=Symbol("");function ln(e,t,n){if(Gt&&Bt){let t=cn.get(e);t||cn.set(e,t=new Map);let o=t.get(n);o||t.set(n,o=sn((()=>t.delete(n)))),nn(Bt,o)}}function fn(e,t,n,o,r,s){const i=cn.get(e);if(!i)return;let c=[];if("clear"===t)c=[...i.values()];else if("length"===n&&f(e)){const e=Number(o);i.forEach(((t,n)=>{("length"===n||!m(n)&&n>=e)&&c.push(t)}))}else switch(void 0!==n&&c.push(i.get(n)),t){case"add":f(e)?w(n)&&c.push(i.get("length")):(c.push(i.get(an)),p(e)&&c.push(i.get(un)));break;case"delete":f(e)||(c.push(i.get(an)),p(e)&&c.push(i.get(un)));break;case"set":p(e)&&c.push(i.get(an))}en();for(const a of c)a&&rn(a,4);tn()}const pn=e("__proto__,__v_isRef,__isVue"),dn=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(m)),hn=gn();function gn(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=to(this);for(let t=0,r=this.length;t{e[t]=function(...e){Xt(),en();const n=to(this)[t].apply(this,e);return tn(),Yt(),n}})),e}function mn(e){const t=to(this);return ln(t,0,e),t.hasOwnProperty(e)}class vn{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){const o=this._isReadonly,r=this._isShallow;if("__v_isReactive"===t)return!o;if("__v_isReadonly"===t)return o;if("__v_isShallow"===t)return r;if("__v_raw"===t)return n===(o?r?qn:Kn:r?Fn:zn).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const s=f(e);if(!o){if(s&&l(hn,t))return Reflect.get(hn,t,n);if("hasOwnProperty"===t)return mn}const i=Reflect.get(e,t,n);return(m(t)?dn.has(t):pn(t))?i:(o||ln(e,0,t),r?i:ao(i)?s&&w(t)?i:i.value:v(i)?o?Zn(i):Gn(i):i)}}class _n extends vn{constructor(e=!1){super(!1,e)}set(e,t,n,o){let r=e[t];if(!this._isShallow){const t=Yn(r);if(eo(n)||Yn(n)||(r=to(r),n=to(n)),!f(e)&&ao(r)&&!ao(n))return!t&&(r.value=n,!0)}const s=f(e)&&w(t)?Number(t)e,Sn=e=>Reflect.getPrototypeOf(e);function kn(e,t,n=!1,o=!1){const r=to(e=e.__v_raw),s=to(t);n||(A(t,s)&&ln(r,0,t),ln(r,0,s));const{has:i}=Sn(r),c=o?$n:n?ro:oo;return i.call(r,t)?c(e.get(t)):i.call(r,s)?c(e.get(s)):void(e!==r&&e.get(t))}function On(e,t=!1){const n=this.__v_raw,o=to(n),r=to(e);return t||(A(e,r)&&ln(o,0,e),ln(o,0,r)),e===r?n.has(e):n.has(e)||n.has(r)}function Pn(e,t=!1){return e=e.__v_raw,!t&&ln(to(e),0,an),Reflect.get(e,"size",e)}function En(e){e=to(e);const t=to(this);return Sn(t).has.call(t,e)||(t.add(e),fn(t,"add",e,e)),this}function Cn(e,t){t=to(t);const n=to(this),{has:o,get:r}=Sn(n);let s=o.call(n,e);s||(e=to(e),s=o.call(n,e));const i=r.call(n,e);return n.set(e,t),s?A(t,i)&&fn(n,"set",e,t):fn(n,"add",e,t),this}function In(e){const t=to(this),{has:n,get:o}=Sn(t);let r=n.call(t,e);r||(e=to(e),r=n.call(t,e)),o&&o.call(t,e);const s=t.delete(e);return r&&fn(t,"delete",e,void 0),s}function An(){const e=to(this),t=0!==e.size,n=e.clear();return t&&fn(e,"clear",void 0,void 0),n}function jn(e,t){return function(n,o){const r=this,s=r.__v_raw,i=to(s),c=t?$n:e?ro:oo;return!e&&ln(i,0,an),s.forEach(((e,t)=>n.call(o,c(e),c(t),r)))}}function Rn(e,t,n){return function(...o){const r=this.__v_raw,s=to(r),i=p(s),c="entries"===e||e===Symbol.iterator&&i,a="keys"===e&&i,u=r[e](...o),l=n?$n:t?ro:oo;return!t&&ln(s,0,a?un:an),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[l(e[0]),l(e[1])]:l(e),done:t}},[Symbol.iterator](){return this}}}}function Ln(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function Mn(){const e={get(e){return kn(this,e)},get size(){return Pn(this)},has:On,add:En,set:Cn,delete:In,clear:An,forEach:jn(!1,!1)},t={get(e){return kn(this,e,!1,!0)},get size(){return Pn(this)},has:On,add:En,set:Cn,delete:In,clear:An,forEach:jn(!1,!0)},n={get(e){return kn(this,e,!0)},get size(){return Pn(this,!0)},has(e){return On.call(this,e,!0)},add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear"),forEach:jn(!0,!1)},o={get(e){return kn(this,e,!0,!0)},get size(){return Pn(this,!0)},has(e){return On.call(this,e,!0)},add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear"),forEach:jn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((r=>{e[r]=Rn(r,!1,!1),n[r]=Rn(r,!0,!1),t[r]=Rn(r,!1,!0),o[r]=Rn(r,!0,!0)})),[e,n,t,o]}const[Tn,Vn,Hn,Dn]=Mn();function Nn(e,t){const n=t?e?Dn:Hn:e?Vn:Tn;return(t,o,r)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(l(n,o)&&o in t?n:t,o,r)}const Bn={get:Nn(!1,!1)},Un={get:Nn(!1,!0)},Wn={get:Nn(!0,!1)},zn=new WeakMap,Fn=new WeakMap,Kn=new WeakMap,qn=new WeakMap;function Jn(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>x(e).slice(8,-1))(e))}function Gn(e){return Yn(e)?e:Qn(e,!1,xn,Bn,zn)}function Zn(e){return Qn(e,!0,bn,Wn,Kn)}function Qn(e,t,n,o,r){if(!v(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const s=r.get(e);if(s)return s;const i=Jn(e);if(0===i)return e;const c=new Proxy(e,2===i?o:n);return r.set(e,c),c}function Xn(e){return Yn(e)?Xn(e.__v_raw):!(!e||!e.__v_isReactive)}function Yn(e){return!(!e||!e.__v_isReadonly)}function eo(e){return!(!e||!e.__v_isShallow)}function to(e){const t=e&&e.__v_raw;return t?to(t):e}function no(e){return Object.isExtensible(e)&&((e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})})(e,"__v_skip",!0),e}const oo=e=>v(e)?Gn(e):e,ro=e=>v(e)?Zn(e):e;class so{constructor(e,t,n,o){this.getter=e,this._setter=t,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Ft((()=>e(this._value)),(()=>co(this,2===this.effect._dirtyLevel?2:3))),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=n}get value(){const e=to(this);return e._cacheable&&!e.effect.dirty||!A(e._value,e._value=e.effect.run())||co(e,4),io(e),e.effect._dirtyLevel>=2&&co(e,2),e._value}set value(e){this._setter(e)}get _dirty(){return this.effect.dirty}set _dirty(e){this.effect.dirty=e}}function io(e){var t;Gt&&Bt&&(e=to(e),nn(Bt,null!=(t=e.dep)?t:e.dep=sn((()=>e.dep=void 0),e instanceof so?e:void 0)))}function co(e,t=4,n){const o=(e=to(e)).dep;o&&rn(o,t)}function ao(e){return!(!e||!0!==e.__v_isRef)}function uo(e){return function(e,t){if(ao(e))return e;return new lo(e,t)}(e,!1)}class lo{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:to(e),this._value=t?e:oo(e)}get value(){return io(this),this._value}set value(e){const t=this.__v_isShallow||eo(e)||Yn(e);e=t?e:to(e),A(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:oo(e),co(this,4))}}function fo(e){return ao(e)?e.value:e}const po={get:(e,t,n)=>fo(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return ao(r)&&!ao(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function ho(e){return Xn(e)?e:new Proxy(e,po)}class go{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0}get value(){const e=this._object[this._key];return void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return e=to(this._object),t=this._key,null==(n=cn.get(e))?void 0:n.get(t);var e,t,n}}function mo(e,t,n){const o=e[t];return ao(o)?o:new go(e,t,n)}function vo(e,t,n,o){try{return o?e(...o):e()}catch(r){yo(r,t,n)}}function _o(e,t,n,o){if(h(e)){const r=vo(e,t,n,o);return r&&_(r)&&r.catch((e=>{yo(e,t,n)})),r}const r=[];for(let s=0;s>>1,r=$o[o],s=Mo(r);snull==e.id?1/0:e.id,To=(e,t)=>{const n=Mo(e)-Mo(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Vo(e){wo=!1,bo=!0,$o.sort(To);try{for(So=0;So<$o.length;So++){const e=$o[So];e&&!1!==e.active&&vo(e,null,14)}}finally{So=0,$o.length=0,function(e){if(ko.length){const e=[...new Set(ko)].sort(((e,t)=>Mo(e)-Mo(t)));if(ko.length=0,Oo)return void Oo.push(...e);for(Oo=e,Po=0;Pog(e)?e.trim():e))),n&&(s=o.map(R))}let a,u=r[a=I(n)]||r[a=I(O(n))];!u&&i&&(u=r[a=I(E(n))]),u&&_o(u,e,6,s);const l=r[a+"Once"];if(l){if(e.emitted){if(e.emitted[a])return}else e.emitted={};e.emitted[a]=!0,_o(l,e,6,s)}}function Do(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(void 0!==r)return r;const s=e.emits;let i={},a=!1;if(!h(e)){const o=e=>{const n=Do(e,t,!0);n&&(a=!0,c(i,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return s||a?(f(s)?s.forEach((e=>i[e]=null)):c(i,s),v(e)&&o.set(e,i),i):(v(e)&&o.set(e,null),null)}function No(e,t){return!(!e||!s(t))&&(t=t.slice(2).replace(/Once$/,""),l(e,t[0].toLowerCase()+t.slice(1))||l(e,E(t))||l(e,t))}let Bo=null;function Uo(e){const t=Bo;return Bo=e,e&&e.type.__scopeId,t}const Wo={};function zo(e,t,n){return Fo(e,t,n)}function Fo(e,n,{immediate:r,deep:s,flush:i,once:c,onTrack:u,onTrigger:l}=t){if(n&&c){const e=n;n=(...t)=>{e(...t),k()}}const p=Fr,d=e=>!0===s?e:Jo(e,!1===s?1:void 0);let g,m,v=!1,_=!1;if(ao(e)?(g=()=>e.value,v=eo(e)):Xn(e)?(g=()=>d(e),v=!0):f(e)?(_=!0,v=e.some((e=>Xn(e)||eo(e))),g=()=>e.map((e=>ao(e)?e.value:Xn(e)?d(e):h(e)?vo(e,p,2):void 0))):g=h(e)?n?()=>vo(e,p,2):()=>(m&&m(),_o(e,p,3,[y])):o,n&&s){const e=g;g=()=>Jo(e())}let y=e=>{m=$.onStop=()=>{vo(e,p,4),m=$.onStop=void 0}},x=_?new Array(e.length).fill(Wo):Wo;const b=()=>{if($.active&&$.dirty)if(n){const e=$.run();(s||v||(_?e.some(((e,t)=>A(e,x[t]))):A(e,x)))&&(m&&m(),_o(n,p,3,[e,x===Wo?void 0:_&&x[0]===Wo?[]:x,y]),x=e)}else $.run()};let w;b.allowRecurse=!!n,"sync"===i?w=b:"post"===i?w=()=>Nr(b,p&&p.suspense):(b.pre=!0,p&&(b.id=p.uid),w=()=>Ao(b));const $=new Ft(g,o,w),S=zt(),k=()=>{$.stop(),S&&a(S.effects,$)};return n?r?b():x=$.run():"post"===i?Nr($.run.bind($),p&&p.suspense):$.run(),k}function Ko(e,t,n){const o=this.proxy,r=g(e)?e.includes(".")?qo(o,e):()=>o[e]:e.bind(o,o);let s;h(t)?s=t:(s=t.handler,n=t);const i=Gr(this),c=Fo(r,s.bind(o),n);return i(),c}function qo(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e0){if(n>=t)return e;n++}if((o=o||new Set).has(e))return e;if(o.add(e),ao(e))Jo(e.value,t,n,o);else if(f(e))for(let r=0;r{Jo(e,t,n,o)}));else if(b(e))for(const r in e)Jo(e[r],t,n,o);return e}function Go(){return{app:null,config:{isNativeTag:r,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Zo=0;let Qo=null;function Xo(e,t,n=!1){const o=Fr||Bo;if(o||Qo){const r=o?null==o.parent?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:Qo._context.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&h(t)?t.call(o&&o.proxy):t}}function Yo(e,t){tr(e,"a",t)}function er(e,t){tr(e,"da",t)}function tr(e,t,n=Fr){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(or(t,o,n),n){let e=n.parent;for(;e&&e.parent;)e.parent.vnode.type.__isKeepAlive&&nr(o,t,n,e),e=e.parent}}function nr(e,t,n,o){const r=or(t,e,o,!0);lr((()=>{a(o[t],r)}),n)}function or(e,t,n=Fr,o=!1){if(n){(function(e){return U.indexOf(e)>-1})(e)&&(n=n.root);const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;Xt();const r=Gr(n),s=_o(t,n,e,o);return r(),Yt(),s});return o?r.unshift(s):r.push(s),s}}const rr=e=>(t,n=Fr)=>(!Xr||"sp"===e)&&or(e,((...e)=>t(...e)),n),sr=rr("bm"),ir=rr("m"),cr=rr("bu"),ar=rr("u"),ur=rr("bum"),lr=rr("um"),fr=rr("sp"),pr=rr("rtg"),dr=rr("rtc");function hr(e,t=Fr){or("ec",e,t)}const gr=e=>e?Qr(e)?ts(e)||e.proxy:gr(e.parent):null;const mr=c(Object.create(null),{$:function(e){return e},$el:e=>e.__$el||(e.__$el={}),$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>gr(e.parent),$root:e=>gr(e.root),$emit:e=>e.emit,$options:e=>Sr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Ao(e.update)}),$watch:e=>Ko.bind(e)}),vr=(e,n)=>e!==t&&!e.__isScriptSetup&&l(e,n),_r={get({_:e},n){const{ctx:o,setupState:r,data:s,props:i,accessCache:c,type:a,appContext:u}=e;let f;if("$"!==n[0]){const a=c[n];if(void 0!==a)switch(a){case 1:return r[n];case 2:return s[n];case 4:return o[n];case 3:return i[n]}else{if(vr(r,n))return c[n]=1,r[n];if(s!==t&&l(s,n))return c[n]=2,s[n];if((f=e.propsOptions[0])&&l(f,n))return c[n]=3,i[n];if(o!==t&&l(o,n))return c[n]=4,o[n];xr&&(c[n]=0)}}const p=mr[n];let d,h;return p?("$attrs"===n&&ln(e,0,n),p(e)):(d=a.__cssModules)&&(d=d[n])?d:o!==t&&l(o,n)?(c[n]=4,o[n]):(h=u.config.globalProperties,l(h,n)?h[n]:void 0)},set({_:e},n,o){const{data:r,setupState:s,ctx:i}=e;return vr(s,n)?(s[n]=o,!0):r!==t&&l(r,n)?(r[n]=o,!0):!l(e.props,n)&&(("$"!==n[0]||!(n.slice(1)in e))&&(i[n]=o,!0))},has({_:{data:e,setupState:n,accessCache:o,ctx:r,appContext:s,propsOptions:i}},c){let a;return!!o[c]||e!==t&&l(e,c)||vr(n,c)||(a=i[0])&&l(a,c)||l(r,c)||l(mr,c)||l(s.config.globalProperties,c)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:l(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function yr(e){return f(e)?e.reduce(((e,t)=>(e[t]=null,e)),{}):e}let xr=!0;function br(e){const t=Sr(e),n=e.proxy,r=e.ctx;xr=!1,t.beforeCreate&&wr(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:c,watch:a,provide:u,inject:l,created:p,beforeMount:d,mounted:g,beforeUpdate:m,updated:_,activated:y,deactivated:x,beforeDestroy:b,beforeUnmount:w,destroyed:$,unmounted:S,render:k,renderTracked:O,renderTriggered:P,errorCaptured:E,serverPrefetch:C,expose:I,inheritAttrs:A,components:j,directives:R,filters:L}=t;if(l&&function(e,t,n=o){f(e)&&(e=Er(e));for(const o in e){const n=e[o];let r;r=v(n)?"default"in n?Xo(n.from||o,n.default,!0):Xo(n.from||o):Xo(n),ao(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[o]=r}}(l,r,null),c)for(const o in c){const e=c[o];h(e)&&(r[o]=e.bind(n))}if(s){const t=s.call(n,n);v(t)&&(e.data=Gn(t))}if(xr=!0,i)for(const f in i){const e=i[f],t=h(e)?e.bind(n,n):h(e.get)?e.get.bind(n,n):o,s=!h(e)&&h(e.set)?e.set.bind(n):o,c=ns({get:t,set:s});Object.defineProperty(r,f,{enumerable:!0,configurable:!0,get:()=>c.value,set:e=>c.value=e})}if(a)for(const o in a)$r(a[o],r,n,o);function M(e,t){f(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(function(){if(u){const e=h(u)?u.call(n):u;Reflect.ownKeys(e).forEach((t=>{!function(e,t){if(Fr){let n=Fr.provides;const o=Fr.parent&&Fr.parent.provides;o===n&&(n=Fr.provides=Object.create(o)),n[e]=t,"app"===Fr.type.mpType&&Fr.appContext.app.provide(e,t)}}(t,e[t])}))}}(),p&&wr(p,e,"c"),M(sr,d),M(ir,g),M(cr,m),M(ar,_),M(Yo,y),M(er,x),M(hr,E),M(dr,O),M(pr,P),M(ur,w),M(lr,S),M(fr,C),f(I))if(I.length){const t=e.exposed||(e.exposed={});I.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});k&&e.render===o&&(e.render=k),null!=A&&(e.inheritAttrs=A),j&&(e.components=j),R&&(e.directives=R),e.ctx.$onApplyOptions&&e.ctx.$onApplyOptions(t,e,n)}function wr(e,t,n){_o(f(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function $r(e,t,n,o){const r=o.includes(".")?qo(n,o):()=>n[o];if(g(e)){const n=t[e];h(n)&&zo(r,n)}else if(h(e))zo(r,e.bind(n));else if(v(e))if(f(e))e.forEach((e=>$r(e,t,n,o)));else{const o=h(e.handler)?e.handler.bind(n):t[e.handler];h(o)&&zo(r,o,e)}}function Sr(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,c=s.get(t);let a;return c?a=c:r.length||n||o?(a={},r.length&&r.forEach((e=>kr(a,e,i,!0))),kr(a,t,i)):a=t,v(t)&&s.set(t,a),a}function kr(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&kr(e,s,n,!0),r&&r.forEach((t=>kr(e,t,n,!0)));for(const i in t)if(o&&"expose"===i);else{const o=Or[i]||n&&n[i];e[i]=o?o(e[i],t[i]):t[i]}return e}const Or={data:Pr,props:Ar,emits:Ar,methods:Ir,computed:Ir,beforeCreate:Cr,created:Cr,beforeMount:Cr,mounted:Cr,beforeUpdate:Cr,updated:Cr,beforeDestroy:Cr,beforeUnmount:Cr,destroyed:Cr,unmounted:Cr,activated:Cr,deactivated:Cr,errorCaptured:Cr,serverPrefetch:Cr,components:Ir,directives:Ir,watch:function(e,t){if(!e)return t;if(!t)return e;const n=c(Object.create(null),e);for(const o in t)n[o]=Cr(e[o],t[o]);return n},provide:Pr,inject:function(e,t){return Ir(Er(e),Er(t))}};function Pr(e,t){return t?e?function(){return c(h(e)?e.call(this,this):e,h(t)?t.call(this,this):t)}:t:e}function Er(e){if(f(e)){const t={};for(let n=0;n{d=!0;const[t,n]=Mr(e,o,!0);c(u,t),n&&p.push(...n)};!r&&o.mixins.length&&o.mixins.forEach(t),e.extends&&t(e.extends),e.mixins&&e.mixins.forEach(t)}if(!a&&!d)return v(e)&&s.set(e,n),n;if(f(a))for(let n=0;n-1,o[1]=n<0||t-1||l(o,"default"))&&p.push(e)}}}const g=[u,p];return v(e)&&s.set(e,g),g}function Tr(e){return"$"!==e[0]&&!$(e)}function Vr(e){if(null===e)return"null";if("function"==typeof e)return e.name||"";if("object"==typeof e){return e.constructor&&e.constructor.name||""}return""}function Hr(e,t){return Vr(e)===Vr(t)}function Dr(e,t){return f(t)?t.findIndex((t=>Hr(t,e))):h(t)&&Hr(t,e)?0:-1}const Nr=Ro;function Br(e){return e?Xn(t=e)||Yn(t)||"__vInternal"in e?c({},e):e:null;var t}const Ur=Go();let Wr=0;function zr(e,n,o){const r=e.type,s=(n?n.appContext:e.appContext)||Ur,i={uid:Wr++,vnode:e,type:r,parent:n,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,scope:new Ut(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:n?n.provides:Object.create(s.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Mr(r,s),emitsOptions:Do(r,s),emit:null,emitted:null,propsDefaults:t,inheritAttrs:r.inheritAttrs,ctx:t,data:t,props:t,attrs:t,slots:t,refs:t,setupState:t,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:o,suspenseId:o?o.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null,$uniElements:new Map,$templateUniElementRefs:[],$templateUniElementStyles:{},$eS:{},$eA:{}};return i.ctx={_:i},i.root=n?n.root:i,i.emit=Ho.bind(null,i),e.ce&&e.ce(i),i}let Fr=null;const Kr=()=>Fr||Bo;let qr,Jr;qr=e=>{Fr=e},Jr=e=>{Xr=e};const Gr=e=>{const t=Fr;return qr(e),e.scope.on(),()=>{e.scope.off(),qr(t)}},Zr=()=>{Fr&&Fr.scope.off(),qr(null)};function Qr(e){return 4&e.vnode.shapeFlag}let Xr=!1;function Yr(e,t=!1){t&&Jr(t);const{props:n}=e.vnode,o=Qr(e);jr(e,n,o,t);const r=o?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=no(new Proxy(e.ctx,_r));const{setup:o}=n;if(o){const t=e.setupContext=o.length>1?function(e){const t=t=>{e.exposed=t||{}};return{get attrs(){return function(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get:(t,n)=>(ln(e,0,"$attrs"),t[n])}))}(e)},slots:e.slots,emit:e.emit,expose:t}}(e):null,n=Gr(e);Xt();const r=vo(o,e,0,[e.props,t]);Yt(),n(),_(r)?r.then(Zr,Zr):function(e,t,n){h(t)?e.render=t:v(t)&&(e.setupState=ho(t));es(e)}(e,r)}else es(e)}(e):void 0;return t&&Jr(!1),r}function es(e,t,n){const r=e.type;e.render||(e.render=r.render||o);{const t=Gr(e);Xt();try{br(e)}finally{Yt(),t()}}}function ts(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(ho(no(e.exposed)),{get:(t,n)=>n in t?t[n]:e.proxy[n],has:(e,t)=>t in e||t in mr}))}const ns=(e,t)=>{const n=function(e,t,n=!1){let r,s;const i=h(e);return i?(r=e,s=o):(r=e.get,s=e.set),new so(r,s,i||!s,n)}(e,0,Xr);return n},os="3.4.21";function rs(e){return fo(e)}const ss="[object Array]",is="[object Object]";function cs(e,t){const n={};return as(e,t),us(e,t,"",n),n}function as(e,t){if((e=rs(e))===t)return;const n=x(e),o=x(t);if(n==is&&o==is)for(let r in t){const n=e[r];void 0===n?e[r]=null:as(n,t[r])}else n==ss&&o==ss&&e.length>=t.length&&t.forEach(((t,n)=>{as(e[n],t)}))}function us(e,t,n,o){if((e=rs(e))===t)return;const r=x(e),s=x(t);if(r==is)if(s!=is||Object.keys(e).length{us(e,s[t],(""==n?"":n+".")+i+"["+t+"]",o)}));else if(c==is)if(a!=is||Object.keys(r).length{us(e,t[r],n+"["+r+"]",o)})):ls(o,n,e)}function ls(e,t,n){e[t]=n}function fs(e){const t=e.ctx.__next_tick_callbacks;if(t&&t.length){const e=t.slice(0);t.length=0;for(let t=0;t{t?vo(t.bind(e.proxy),e,14):o&&o(e.proxy)})),new Promise((e=>{o=e}))}function ds(e,t){const n=typeof(e=rs(e));if("object"===n&&null!==e){let n=t.get(e);if(void 0!==n)return n;if(f(e)){const o=e.length;n=new Array(o),t.set(e,n);for(let r=0;r{o[e]=n[e]})),o}(r,s));Object.keys(i).length?(o.__next_tick_pending=!0,r.setData(i,(()=>{o.__next_tick_pending=!1,fs(e)})),Lo()):fs(e)}}function ms(e,t,n){t.appContext.config.globalProperties.$applyOptions(e,t,n);const o=e.computed;if(o){const e=Object.keys(o);if(e.length){const n=t.ctx;n.$computedKeys||(n.$computedKeys=[]),n.$computedKeys.push(...e)}}delete t.ctx.$onApplyOptions}function vs(e,t=!1){const{setupState:n,$templateRefs:o,$templateUniElementRefs:r,ctx:{$scope:s,$mpPlatform:i}}=e;if("mp-alipay"===i)return;if(!s||!o&&!r)return;if(t)return o&&o.forEach((e=>_s(e,null,n))),void(r&&r.forEach((e=>_s(e,null,n))));const c="mp-baidu"===i||"mp-toutiao"===i,a=e=>{if(0===e.length)return[];const t=(s.selectAllComponents(".r")||[]).concat(s.selectAllComponents(".r-i-f")||[]);return e.filter((e=>{const o=function(e,t){const n=e.find((e=>e&&(e.properties||e.props).uI===t));if(n){const e=n.$vm;return e?ts(e.$)||e:function(e){v(e)&&no(e);return e}(n)}return null}(t,e.i);return!(!c||null!==o)||(_s(e,o,n),!1)}))},u=()=>{if(o){const t=a(o);t.length&&e.proxy&&e.proxy.$scope&&e.proxy.$scope.setData({r1:1},(()=>{a(t)}))}};r&&r.length&&ps(e,(()=>{r.forEach((e=>{f(e.v)?e.v.forEach((t=>{_s(e,t,n)})):_s(e,e.v,n)}))})),s._$setRef?s._$setRef(u):ps(e,u)}function _s({r:e,f:t},n,o){if(h(e))e(n,{});else{const r=g(e),s=ao(e);if(r||s)if(t){if(!s)return;f(e.value)||(e.value=[]);const t=e.value;if(-1===t.indexOf(n)){if(t.push(n),!n)return;n.$&&ur((()=>a(t,n)),n.$)}}else r?l(o,e)&&(o[e]=n):ao(e)&&(e.value=n)}}const ys=Ro;function xs(e,t){const n=e.component=zr(e,t.parentComponent,null);return n.renderer=t.mpType?t.mpType:"component",n.ctx.$onApplyOptions=ms,n.ctx.$children=[],"app"===t.mpType&&(n.render=o),t.onBeforeSetup&&t.onBeforeSetup(n,t),Yr(n),t.parentComponent&&n.proxy&&t.parentComponent.ctx.$children.push(ts(n)||n.proxy),function(e){const t=$s.bind(e);e.$updateScopedSlots=()=>Io((()=>Ao(t)));const n=()=>{if(e.isMounted){const{next:t,bu:n,u:o}=e;Ss(e,!1),Xt(),Lo(),Yt(),n&&j(n),Ss(e,!0),gs(e,bs(e)),o&&ys(o)}else ur((()=>{vs(e,!0)}),e),gs(e,bs(e))},r=e.effect=new Ft(n,o,(()=>Ao(s)),e.scope),s=e.update=()=>{r.dirty&&r.run()};s.id=e.uid,Ss(e,!0),s()}(n),n.proxy}function bs(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:i,propsOptions:[c],slots:a,attrs:u,emit:l,render:f,renderCache:p,data:d,setupState:h,ctx:g,uid:m,appContext:{app:{config:{globalProperties:{pruneComponentPropsCache:v}}}},inheritAttrs:_}=e;let y;e.$uniElementIds=new Map,e.$templateRefs=[],e.$templateUniElementRefs=[],e.$templateUniElementStyles={},e.$ei=0,v(m),e.__counter=0===e.__counter?1:0;const x=Uo(e);try{if(4&n.shapeFlag){ws(_,i,c,u);const e=r||o;y=f.call(e,e,p,i,h,d,g)}else{ws(_,i,c,t.props?u:(e=>{let t;for(const n in e)("class"===n||"style"===n||s(n))&&((t||(t={}))[n]=e[n]);return t})(u));const e=t;y=e.length>1?e(i,{attrs:u,slots:a,emit:l}):e(i,null)}}catch(b){yo(b,e,1),y=!1}return vs(e),Uo(x),y}function ws(e,t,n,o){if(t&&o&&!1!==e){const e=Object.keys(o).filter((e=>"class"!==e&&"style"!==e));if(!e.length)return;n&&e.some(i)?e.forEach((e=>{i(e)&&e.slice(9)in n||(t[e]=o[e])})):e.forEach((e=>t[e]=o[e]))}}function $s(){const e=this.$scopedSlotsData;if(!e||0===e.length)return;const t=this.ctx.$scope,n=t.data,o=Object.create(null);e.forEach((({path:e,index:t,data:r})=>{const s=V(n,e),i=g(t)?`${e}.${t}`:`${e}[${t}]`;if(void 0===s||void 0===s[t])o[i]=r;else{const e=cs(r,s[t]);Object.keys(e).forEach((t=>{o[i+"."+t]=e[t]}))}})),e.length=0,Object.keys(o).length&&t.setData(o)}function Ss({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}const ks=function(e,t=null){h(e)||(e=c({},e)),null==t||v(t)||(t=null);const n=Go(),o=new WeakSet,r=n.app={_uid:Zo++,_component:e,_props:t,_container:null,_context:n,_instance:null,version:os,get config(){return n.config},set config(e){},use:(e,...t)=>(o.has(e)||(e&&h(e.install)?(o.add(e),e.install(r,...t)):h(e)&&(o.add(e),e(r,...t))),r),mixin:e=>(n.mixins.includes(e)||n.mixins.push(e),r),component:(e,t)=>t?(n.components[e]=t,r):n.components[e],directive:(e,t)=>t?(n.directives[e]=t,r):n.directives[e],mount(){},unmount(){},provide:(e,t)=>(n.provides[e]=t,r),runWithContext(e){const t=Qo;Qo=r;try{return e()}finally{Qo=t}}};return r};function Os(e,t=null){("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof my?my:void 0).__VUE__=!0;const n=ks(e,t),r=n._context;r.config.globalProperties.$nextTick=function(e){return ps(this.$,e)};const s=e=>(e.appContext=r,e.shapeFlag=6,e),i=function(e,t){return xs(s(e),t)},c=function(e){return e&&function(e){const{bum:t,scope:n,update:o,um:r}=e;t&&j(t);{const t=e.parent;if(t){const n=t.ctx.$children,o=ts(e)||e.proxy,r=n.indexOf(o);r>-1&&n.splice(r,1)}}n.stop(),o&&(o.active=!1),r&&ys(r),ys((()=>{e.isUnmounted=!0}))}(e.$)};return n.mount=function(){e.render=o;const t=xs(s({type:e}),{mpType:"app",mpInstance:null,parentComponent:null,slots:[],props:null});return n._instance=t.$,t.$app=n,t.$createComponent=i,t.$destroyComponent=c,r.$appInstance=t,t},n.unmount=function(){},n}function Ps(e,t,n,o){h(t)&&or(e,t.bind(n),o)}function Es(e,t,n){!function(e,t,n){const o=e.mpType||n.$mpType;!o||"component"===o||"page"===o&&"component"===t.renderer||Object.keys(e).forEach((o=>{if(F(o,e[o],!1)){const r=e[o];f(r)?r.forEach((e=>Ps(o,e,n,t))):Ps(o,r,n,t)}}))}(e,t,n)}function Cs(e,t,n){return e[t]=n}function Is(e,...t){const n=this[e];return n?n(...t):(console.error(`method ${e} not found`),null)}function As(e){const t=e.config.errorHandler;return function(n,o,r){t&&t(n,o,r);const s=e._instance;if(!s||!s.proxy)throw n;s.onError?s.proxy.$callHook("onError",n):xo(n,0,o&&o.$.vnode,!1)}}function js(e,t){return e?[...new Set([].concat(e,t))]:t}let Rs;const Ls="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Ms=/^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;function Ts(){const e=Dt.getStorageSync("uni_id_token")||"",t=e.split(".");if(!e||3!==t.length)return{uid:null,role:[],permission:[],tokenExpired:0};let n;try{n=JSON.parse((o=t[1],decodeURIComponent(Rs(o).split("").map((function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join(""))))}catch(r){throw new Error("获取当前用户信息出错,详细错误信息为:"+r.message)}var o;return n.tokenExpired=1e3*n.exp,delete n.exp,delete n.iat,n}function Vs(e){const t=e.config;var n;t.errorHandler=J(e,As),n=t.optionMergeStrategies,W.forEach((e=>{n[e]=js}));const o=t.globalProperties;!function(e){e.uniIDHasRole=function(e){const{role:t}=Ts();return t.indexOf(e)>-1},e.uniIDHasPermission=function(e){const{permission:t}=Ts();return this.uniIDHasRole("admin")||t.indexOf(e)>-1},e.uniIDTokenValid=function(){const{tokenExpired:e}=Ts();return e>Date.now()}}(o),o.$set=Cs,o.$applyOptions=Es,o.$callMethod=Is,Dt.invokeCreateVueAppHook(e)}Rs="function"!=typeof atob?function(e){if(e=String(e).replace(/[\t\n\f\r ]+/g,""),!Ms.test(e))throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");var t;e+="==".slice(2-(3&e.length));for(var n,o,r="",s=0;s>16&255):64===o?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,255&t);return r}:atob;const Hs=Object.create(null);function Ds(e){delete Hs[e]}function Ns(e){if(!e)return;const[t,n]=e.split(",");return Hs[t]?Hs[t][parseInt(n)]:void 0}var Bs={install(e){Vs(e),e.config.globalProperties.pruneComponentPropsCache=Ds;const t=e.mount;e.mount=function(n){const o=t.call(e,n),r=function(){const e="createApp";if("undefined"!=typeof global&&void 0!==global[e])return global[e];if("undefined"!=typeof my)return my[e]}();return r?r(o):"undefined"!=typeof createMiniProgramApp&&createMiniProgramApp(o),o}}};function Us(e,t){const n=Kr(),r=n.ctx,s=void 0===t||"mp-weixin"!==r.$mpPlatform&&"mp-qq"!==r.$mpPlatform&&"mp-xhs"!==r.$mpPlatform||!g(t)&&"number"!=typeof t?"":"_"+t,i="e"+n.$ei+++s,a=r.$scope;if(!e)return delete a[i],i;const u=a[i];return u?u.value=e:a[i]=function(e,t){const n=e=>{var r;(r=e).type&&r.target&&(r.preventDefault=o,r.stopPropagation=o,r.stopImmediatePropagation=o,l(r,"detail")||(r.detail={}),l(r,"markerId")&&(r.detail="object"==typeof r.detail?r.detail:{},r.detail.markerId=r.markerId),b(r.detail)&&l(r.detail,"checked")&&!l(r.detail,"value")&&(r.detail.value=r.detail.checked),b(r.detail)&&(r.target=c({},r.target,r.detail)));let s=[e];t&&t.ctx.$getTriggerEventDetail&&"number"==typeof e.detail&&(e.detail=t.ctx.$getTriggerEventDetail(e.detail)),e.detail&&e.detail.__args__&&(s=e.detail.__args__);const i=n.value,a=()=>_o(function(e,t){if(f(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n&&n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e(t)))}return t}(e,i),t,5,s),u=e.target,p=!!u&&(!!u.dataset&&"true"===String(u.dataset.eventsync));if(!Ws.includes(e.type)||p){const t=a();if("input"===e.type&&(f(t)||_(t)))return;return t}setTimeout(a)};return n.value=e,n}(e,n),i}const Ws=["tap","longpress","longtap","transitionend","animationstart","animationiteration","animationend","touchforcechange"];const zs=function(e,t=null){return e&&(e.mpType="app"),Os(e,t).use(Bs)};const Fs=["externalClasses"];const Ks=/_(.*)_worklet_factory_/;function qs(e,t){const n=e.$children;for(let r=n.length-1;r>=0;r--){const e=n[r];if(e.$scope._$vueId===t)return e}let o;for(let r=n.length-1;r>=0;r--)if(o=qs(n[r],t),o)return o}const Js=["createSelectorQuery","createIntersectionObserver","selectAllComponents","selectComponent"];function Gs(e,t){const n=e.ctx;n.mpType=t.mpType,n.$mpType=t.mpType,n.$mpPlatform="mp-weixin",n.$scope=t.mpInstance,Object.defineProperties(n,{virtualHostId:{get(){const e=this.$scope.data.virtualHostId;return void 0===e?"":e}}}),n.$mp={},n._self={},e.slots={},f(t.slots)&&t.slots.length&&(t.slots.forEach((t=>{e.slots[t]=!0})),e.slots.d&&(e.slots.default=!0)),n.getOpenerEventChannel=function(){return t.mpInstance.getOpenerEventChannel()},n.$hasHook=Zs,n.$callHook=Qs,e.emit=function(e,t){return function(n,...o){const r=t.$scope;if(r&&n){const e={__args__:o};r.triggerEvent(n,e)}return e.apply(this,[n,...o])}}(e.emit,n)}function Zs(e){const t=this.$[e];return!(!t||!t.length)}function Qs(e,t){"mounted"===e&&(Qs.call(this,"bm"),this.$.isMounted=!0,e="m");const n=this.$[e];return n&&((e,t)=>{let n;for(let o=0;o{F(n,e[n])&&t.add(n)}));{const{extends:n,mixins:o}=e;o&&o.forEach((e=>Ys(e,t))),n&&Ys(n,t)}}return t}function ei(e,t,n){-1!==n.indexOf(t)||l(e,t)||(e[t]=function(e){return this.$vm&&this.$vm.$callHook(t,e)})}const ti=["onReady"];function ni(e,t,n=ti){t.forEach((t=>ei(e,t,n)))}function oi(e,t,n=ti){Ys(t).forEach((t=>ei(e,t,n)))}const ri=T((()=>{const e=[],t=h(getApp)&&getApp({allowDefault:!0});if(t&&t.$vm&&t.$vm.$){const n=t.$vm.$.appContext.mixins;if(f(n)){const t=Object.keys(z);n.forEach((n=>{t.forEach((t=>{l(n,t)&&!e.includes(t)&&e.push(t)}))}))}}return e}));const si=["onShow","onHide","onError","onThemeChange","onPageNotFound","onUnhandledRejection"];function ii(e,t){const n=e.$,o={globalData:e.$options&&e.$options.globalData||{},$vm:e,onLaunch(t){this.$vm=e;const o=n.ctx;this.$vm&&o.$scope&&o.$callHook||(Gs(n,{mpType:"app",mpInstance:this,slots:[]}),o.globalData=this.globalData,e.$callHook("onLaunch",t))}},r=wx.$onErrorHandlers;r&&(r.forEach((e=>{or("onError",e,n)})),r.length=0),function(e){const t=uo(function(){var e;let t="";{const n=(null===(e=wx.getAppBaseInfo)||void 0===e?void 0:e.call(wx))||wx.getSystemInfoSync();t=Q(n&&n.language?n.language:"en")||"en"}return t}());Object.defineProperty(e,"$locale",{get:()=>t.value,set(e){t.value=e}})}(e);const s=e.$.type;ni(o,si),oi(o,s);{const e=s.methods;e&&c(o,e)}return o}function ci(e,t){if(h(e.onLaunch)){const t=wx.getLaunchOptionsSync&&wx.getLaunchOptionsSync();e.onLaunch(t)}h(e.onShow)&&wx.onAppShow&&wx.onAppShow((e=>{t.$callHook("onShow",e)})),h(e.onHide)&&wx.onAppHide&&wx.onAppHide((e=>{t.$callHook("onHide",e)}))}const ai=["eO","uR","uRIF","uI","uT","uP","uS"];function ui(e){e.properties||(e.properties={}),c(e.properties,function(e,t=!1){const n={};if(!t){let e=function(e){const t=Object.create(null);e&&e.forEach((e=>{t[e]=!0})),this.setData({$slots:t})};ai.forEach((e=>{n[e]={type:null,value:""}})),n.uS={type:null,value:[]},n.uS.observer=e}return e.behaviors&&e.behaviors.includes("wx://form-field")&&(e.properties&&e.properties.name||(n.name={type:null,value:""}),e.properties&&e.properties.value||(n.value={type:null,value:""})),n}(e),function(e){const t={};return e&&e.virtualHost&&(t.virtualHostStyle={type:null,value:""},t.virtualHostClass={type:null,value:""},t.virtualHostHidden={type:null,value:""},t.virtualHostId={type:null,value:""}),t}(e.options))}const li=[String,Number,Boolean,Object,Array,null];function fi(e,t){const n=function(e,t){return f(e)&&1===e.length?e[0]:e}(e);return-1!==li.indexOf(n)?n:null}function pi(e,t){return(t?function(e){const t={};b(e)&&Object.keys(e).forEach((n=>{-1===ai.indexOf(n)&&(t[n]=e[n])}));return t}(e):Ns(e.uP))||{}}function di(e){const t=function(){const e=this.properties.uP;e&&(this.$vm?function(e,t){const n=to(t.props),o=Ns(e)||{};hi(n,o)&&(!function(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:i}}=e,c=to(r),[a]=e.propsOptions;let u=!1;if(!(o||i>0)||16&i){let o;Rr(e,t,r,s)&&(u=!0);for(const s in c)t&&(l(t,s)||(o=E(s))!==s&&l(t,o))||(a?!n||void 0===n[s]&&void 0===n[o]||(r[s]=Lr(a,c,s,void 0,e,!0)):delete r[s]);if(s!==c)for(const e in s)t&&l(t,e)||(delete s[e],u=!0)}else if(8&i){const n=e.vnode.dynamicProps;for(let o=0;o-1&&function(e){const t=$o.indexOf(e);t>So&&$o.splice(t,1)}(t.update),t.update());var r}(e,this.$vm.$):"m"===this.properties.uT&&function(e,t){const n=t.properties,o=Ns(e)||{};hi(n,o,!1)&&t.setData(o)}(e,this))};e.observers||(e.observers={}),e.observers.uP=t}function hi(e,t,n=!0){const o=Object.keys(t);if(n&&o.length!==Object.keys(e).length)return!0;for(let r=0;r{o.push(e.replace("uni://","wx://")),"uni://form-field"===e&&(f(n)?(n.push("name"),n.push("modelValue")):(n.name={type:String,default:""},n.modelValue={type:[String,Number,Boolean,Array,Object,Date],default:""}))})),o}(t)}function mi(e,{parse:t,mocks:n,isPage:o,isPageInProject:r,initRelation:s,handleLink:i,initLifetimes:a}){e=e.default||e;const u={multipleSlots:!0,addGlobalClass:!0,pureDataPattern:/^uP$/};f(e.mixins)&&e.mixins.forEach((e=>{v(e.options)&&c(u,e.options)})),e.options&&c(u,e.options);const p={options:u,lifetimes:a({mocks:n,isPage:o,initRelation:s,vueOptions:e}),pageLifetimes:{show(){this.$vm&&this.$vm.$callHook("onPageShow")},hide(){this.$vm&&this.$vm.$callHook("onPageHide")},resize(e){this.$vm&&this.$vm.$callHook("onPageResize",e)}},methods:{__l:i}};var d,h,g,m;return gi(p,e),ui(p),di(p),function(e,t){Fs.forEach((n=>{l(t,n)&&(e[n]=t[n])}))}(p,e),d=p.methods,h=e.wxsCallMethods,f(h)&&h.forEach((e=>{d[e]=function(t){return this.$vm[e](t)}})),g=p.methods,(m=e.methods)&&Object.keys(m).forEach((e=>{const t=e.match(Ks);if(t){const n=t[1];g[e]=m[e],g[n]=m[n]}})),t&&t(p,{handleLink:i}),p}let vi,_i;function yi(){return getApp().$vm}function xi(e,t){const{parse:n,mocks:o,isPage:r,initRelation:s,handleLink:i,initLifetimes:c}=t,a=mi(e,{mocks:o,isPage:r,isPageInProject:!0,initRelation:s,handleLink:i,initLifetimes:c});!function({properties:e},t){f(t)?t.forEach((t=>{e[t]={type:String,value:""}})):b(t)&&Object.keys(t).forEach((n=>{const o=t[n];if(b(o)){let t=o.default;h(t)&&(t=t());const r=o.type;o.type=fi(r),e[n]={type:o.type,value:t}}else e[n]={type:fi(o)}}))}(a,(e.default||e).props);const u=a.methods;return u.onLoad=function(e){var t;return this.options=e,this.$page={fullPath:(t=this.route+B(e),function(e){return 0===e.indexOf("/")}(t)?t:"/"+t)},this.$vm&&this.$vm.$callHook("onLoad",e)},ni(u,Xs),oi(u,e),function(e,t){if(!t)return;Object.keys(z).forEach((n=>{t&z[n]&&ei(e,n,[])}))}(u,e.__runtimeHooks),ni(u,ri()),n&&n(a,{handleLink:i}),a}const bi=Page,wi=Component;function $i(e){const t=e.triggerEvent,n=function(n,...o){return t.apply(e,[(r=n,O(r.replace(D,"-"))),...o]);var r};try{e.triggerEvent=n}catch(o){e._triggerEvent=n}}function Si(e,t,n){const o=t[e];t[e]=o?function(...e){return $i(this),o.apply(this,e)}:function(){$i(this)}}Page=function(e){return Si("onLoad",e),bi(e)},Component=function(e){Si("created",e);return e.properties&&e.properties.uP||(ui(e),di(e)),wi(e)};var ki=Object.freeze({__proto__:null,handleLink:function(e){const t=e.detail||e.value,n=t.vuePid;let o;n&&(o=qs(this.$vm,n)),o||(o=this.$vm),t.parent=o},initLifetimes:function({mocks:e,isPage:t,initRelation:n,vueOptions:o}){return{attached(){let r=this.properties;!function(e,t){if(!e)return;const n=e.split(","),o=n.length;1===o?t._$vueId=n[0]:2===o&&(t._$vueId=n[0],t._$vuePid=n[1])}(r.uI,this);const s={vuePid:this._$vuePid};n(this,s);const i=this,c=t(i);let a=r;this.$vm=function(e,t){vi||(vi=yi().$createComponent);const n=vi(e,t);return ts(n.$)||n}({type:o,props:pi(a,c)},{mpType:c?"page":"component",mpInstance:i,slots:r.uS||{},parentComponent:s.parent&&s.parent.$,onBeforeSetup(t,n){!function(e,t){Object.defineProperty(e,"refs",{get(){const e={};return function(e,t,n){e.selectAllComponents(t).forEach((e=>{const t=e.properties.uR;n[t]=e.$vm||e}))}(t,".r",e),t.selectAllComponents(".r-i-f").forEach((t=>{const n=t.properties.uR;n&&(e[n]||(e[n]=[]),e[n].push(t.$vm||t))})),e}})}(t,i),function(e,t,n){const o=e.ctx;n.forEach((n=>{l(t,n)&&(e[n]=o[n]=t[n])}))}(t,i,e),function(e,t){Gs(e,t);const n=e.ctx;Js.forEach((e=>{n[e]=function(...t){const o=n.$scope;if(o&&o[e])return o[e].apply(o,t)}}))}(t,n)}}),c||function(e){const t=e.$options;f(t.behaviors)&&t.behaviors.includes("uni://form-field")&&e.$watch("modelValue",(()=>{e.$scope&&e.$scope.setData({name:e.name,value:e.modelValue})}),{immediate:!0})}(this.$vm)},ready(){this.$vm&&(this.$vm.$callHook("mounted"),this.$vm.$callHook("onReady"))},detached(){var e;this.$vm&&(Ds(this.$vm.$.uid),e=this.$vm,_i||(_i=yi().$destroyComponent),_i(e))}}},initRelation:function(e,t){e.triggerEvent("__l",t)},isPage:function(e){return!!e.route},mocks:["__route__","__wxExparserNodeId__","__wxWebviewId__"]});const Oi=function(e){return App(ii(e))},Pi=(Ei=ki,function(e){return Component(xi(e,Ei))});var Ei;const Ci=function(e){return function(t){return Component(mi(t,e))}}(ki),Ii=function(e){ci(ii(e),e)},Ai=function(e){const t=ii(e),n=h(getApp)&&getApp({allowDefault:!0});if(!n)return;e.$.ctx.$scope=n;const o=n.globalData;o&&Object.keys(t.globalData).forEach((e=>{l(o,e)||(o[e]=t.globalData[e])})),Object.keys(t).forEach((e=>{l(n,e)||(n[e]=t[e])})),ci(t,e)};!function(){if(h(wx.preloadAssets)){const e=String.fromCharCode(99,100,110,49,46,100,99,108,111,117,100,46,110,101,116,46,99,110);setTimeout((()=>{wx.preloadAssets({data:[{type:"image",src:"https://"+e+"/4d7a4931516a41774d43556c643367314f4749774d6d49334d325135597a4932597a4577/img/shadow-grey.png"}]})}),3e3)}}(),wx.createApp=global.createApp=Oi,wx.createPage=Pi,wx.createComponent=Ci,wx.createPluginApp=global.createPluginApp=Ii,wx.createSubpackageApp=global.createSubpackageApp=Ai;
+/*!
+ * pinia v2.1.7
+ * (c) 2023 Eduardo San Martin Morote
+ * @license MIT
+ */
+let ji;const Ri=e=>ji=e,Li=Symbol();function Mi(e){return e&&"object"==typeof e&&"[object Object]"===Object.prototype.toString.call(e)&&"function"!=typeof e.toJSON}var Ti,Vi;(Vi=Ti||(Ti={})).direct="direct",Vi.patchObject="patch object",Vi.patchFunction="patch function";const Hi=()=>{};function Di(e,t,n,o=Hi){e.push(t);const r=()=>{const n=e.indexOf(t);n>-1&&(e.splice(n,1),o())};return!n&&zt()&&function(e){Nt&&Nt.cleanups.push(e)}(r),r}function Ni(e,...t){e.slice().forEach((e=>{e(...t)}))}const Bi=e=>e();function Ui(e,t){e instanceof Map&&t instanceof Map&&t.forEach(((t,n)=>e.set(n,t))),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],r=e[n];Mi(r)&&Mi(o)&&e.hasOwnProperty(n)&&!ao(o)&&!Xn(o)?e[n]=Ui(r,o):e[n]=o}return e}const Wi=Symbol();const{assign:zi}=Object;function Fi(e,t,n,o){const{state:r,actions:s,getters:i}=t,c=n.state.value[e];let a;return a=Ki(e,(function(){c||(n.state.value[e]=r?r():{});const t=function(e){const t=f(e)?new Array(e.length):{};for(const n in e)t[n]=mo(e,n);return t}(n.state.value[e]);return zi(t,s,Object.keys(i||{}).reduce(((t,o)=>(t[o]=no(ns((()=>{Ri(n);const t=n._s.get(e);return i[o].call(t,t)}))),t)),{}))}),t,n,o,!0),a}function Ki(e,t,n={},o,r,s){let i;const c=zi({actions:{}},n),a={deep:!0};let u,l,f,p=[],d=[];const h=o.state.value[e];let g;function m(t){let n;u=l=!1,"function"==typeof t?(t(o.state.value[e]),n={type:Ti.patchFunction,storeId:e,events:f}):(Ui(o.state.value[e],t),n={type:Ti.patchObject,payload:t,storeId:e,events:f});const r=g=Symbol();Io().then((()=>{g===r&&(u=!0)})),l=!0,Ni(p,n,o.state.value[e])}s||h||(o.state.value[e]={}),uo({});const v=s?function(){const{state:e}=n,t=e?e():{};this.$patch((e=>{zi(e,t)}))}:Hi;function _(t,n){return function(){Ri(o);const r=Array.from(arguments),s=[],i=[];function c(e){s.push(e)}function a(e){i.push(e)}let u;Ni(d,{args:r,name:t,store:y,after:c,onError:a});try{u=n.apply(this&&this.$id===e?this:y,r)}catch(l){throw Ni(i,l),l}return u instanceof Promise?u.then((e=>(Ni(s,e),e))).catch((e=>(Ni(i,e),Promise.reject(e)))):(Ni(s,u),u)}}const y=Gn({_p:o,$id:e,$onAction:Di.bind(null,d),$patch:m,$reset:v,$subscribe(t,n={}){const r=Di(p,t,n.detached,(()=>s())),s=i.run((()=>zo((()=>o.state.value[e]),(o=>{("sync"===n.flush?l:u)&&t({storeId:e,type:Ti.direct,events:f},o)}),zi({},a,n))));return r},$dispose:function(){i.stop(),p=[],d=[],o._s.delete(e)}});o._s.set(e,y);const x=(o._a&&o._a.runWithContext||Bi)((()=>o._e.run((()=>(i=Wt()).run(t)))));for(const $ in x){const t=x[$];if(ao(t)&&(!ao(w=t)||!w.effect)||Xn(t))s||(!h||Mi(b=t)&&b.hasOwnProperty(Wi)||(ao(t)?t.value=h[$]:Ui(t,h[$])),o.state.value[e][$]=t);else if("function"==typeof t){const e=_($,t);x[$]=e,c.actions[$]=t}}var b,w;return zi(y,x),zi(to(y),x),Object.defineProperty(y,"$state",{get:()=>o.state.value[e],set:e=>{m((t=>{zi(t,e)}))}}),o._p.forEach((e=>{zi(y,i.run((()=>e({store:y,app:o._a,pinia:o,options:c}))))})),h&&s&&n.hydrate&&n.hydrate(y.$state,h),u=!0,l=!0,y}const qi=((e,t=0)=>(t,n=Kr())=>{!Xr&&or(e,t,n)})("onShow",3);exports._export_sfc=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},exports.computed=ns,exports.createPinia=function(){const e=Wt(!0),t=e.run((()=>uo({})));let n=[],o=[];const r=no({install(e){Ri(r),r._a=e,e.provide(Li,r),e.config.globalProperties.$pinia=r,o.forEach((e=>n.push(e))),o=[]},use(e){return this._a?n.push(e):o.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return r},exports.createSSRApp=zs,exports.defineComponent=
+/*! #__NO_SIDE_EFFECTS__ */
+function(e,t){return h(e)?(()=>c({name:e.name},t,{setup:e}))():e},exports.defineStore=function(e,t,n){let o,r;const s="function"==typeof t;function i(e,n){(e=e||(!!(Fr||Bo||Qo)?Xo(Li,null):null))&&Ri(e),(e=ji)._s.has(o)||(s?Ki(o,t,r,e):Fi(o,r,e));return e._s.get(o)}return"string"==typeof e?(o=e,r=s?n:t):(r=e,o=e.id),i.$id=o,i},exports.e=(e,...t)=>c(e,...t),exports.f=(e,t)=>function(e,t){let n;if(f(e)||g(e)){n=new Array(e.length);for(let o=0,r=e.length;ot(e,n,n)));else{const o=Object.keys(e);n=new Array(o.length);for(let r=0,s=o.length;rUs(e,t),exports.onMounted=ir,exports.onShow=qi,exports.p=e=>function(e){const{uid:t,__counter:n}=Kr();return t+","+((Hs[t]||(Hs[t]=[])).push(Br(e))-1)+","+n}(e),exports.reactive=Gn,exports.ref=uo,exports.t=e=>(e=>g(e)?e:null==e?"":f(e)||v(e)&&(e.toString===y||!h(e.toString))?JSON.stringify(e,L,2):String(e))(e),exports.unref=fo;
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.js b/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.js
new file mode 100644
index 00000000..19b516e3
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.js
@@ -0,0 +1 @@
+"use strict";const e=require("../common/vendor.js"),t=require("../utils/request.js"),r=e.defineComponent({__name:"BannerSwiper",props:{images:{},video:{}},setup(r){function o(e){return e?e.startsWith("http")?e:t.BASE_URL+e:""}return(t,r)=>e.e({a:t.video},t.video?{b:o(t.video)}:{},{c:e.f(t.images,((e,t,r)=>({a:o(e),b:t})))})}}),o=e._export_sfc(r,[["__scopeId","data-v-19403e73"]]);wx.createComponent(o);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.json b/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.json
new file mode 100644
index 00000000..e8cfaaf8
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.wxml b/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.wxml
new file mode 100644
index 00000000..6285f394
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.wxss b/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.wxss
new file mode 100644
index 00000000..abd2441e
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/BannerSwiper.wxss
@@ -0,0 +1 @@
+.banner-swiper.data-v-19403e73,.banner-swiper__image.data-v-19403e73,.banner-swiper__video.data-v-19403e73{width:100%;height:600rpx}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.js b/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.js
new file mode 100644
index 00000000..3e54fdf8
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.js
@@ -0,0 +1 @@
+"use strict";const e=require("../common/vendor.js"),o=require("../common/assets.js"),s=e.defineComponent({__name:"CustomerServiceBtn",props:{mode:{}},emits:["close"],setup:s=>(s,t)=>e.e({a:"qrcode"===s.mode},"qrcode"===s.mode?{b:o._imports_0$4,c:e.o((e=>s.$emit("close"))),d:e.o((()=>{})),e:e.o((e=>s.$emit("close")))}:{})}),t=e._export_sfc(s,[["__scopeId","data-v-be5777d5"]]);wx.createComponent(t);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.json b/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.json
new file mode 100644
index 00000000..e8cfaaf8
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.wxml b/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.wxml
new file mode 100644
index 00000000..c842caaa
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.wxss b/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.wxss
new file mode 100644
index 00000000..4def6306
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/CustomerServiceBtn.wxss
@@ -0,0 +1 @@
+.cs-mask.data-v-be5777d5{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:999}.cs-popup.data-v-be5777d5{background:#fff;border-radius:16rpx;padding:40rpx;text-align:center;width:500rpx}.cs-popup__title.data-v-be5777d5{font-size:30rpx;color:#333;font-weight:700;display:block;margin-bottom:24rpx}.cs-popup__img.data-v-be5777d5{width:360rpx;height:360rpx}.cs-popup__close.data-v-be5777d5{margin-top:24rpx;font-size:28rpx;color:#999}.cs-btn.data-v-be5777d5{background:#e4393c;color:#fff;font-size:26rpx;border:none;padding:16rpx 32rpx;border-radius:44rpx;line-height:1.4}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.js b/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.js
new file mode 100644
index 00000000..b3ec4a75
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.js
@@ -0,0 +1 @@
+"use strict";const t=require("../common/vendor.js"),e=require("../utils/request.js"),o=t.defineComponent({__name:"ProductCard",props:{product:{}},setup(o){const r=o;function c(){var t;const o=r.product.thumb||(null==(t=r.product.bannerImages)?void 0:t[0]);return o?o.startsWith("http")?o:e.BASE_URL+o:"/static/logo.png"}function n(){t.index.navigateTo({url:`/pages/product/detail?id=${r.product.id}`})}return(e,o)=>({a:c(),b:t.t(e.product.name),c:t.t(e.product.styleNo),d:t.t(e.product.basePrice),e:t.t(e.product.stock),f:t.o(n)})}}),r=t._export_sfc(o,[["__scopeId","data-v-f1f5eb0c"]]);wx.createComponent(r);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.json b/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.json
new file mode 100644
index 00000000..e8cfaaf8
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.wxml b/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.wxml
new file mode 100644
index 00000000..21521597
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.wxml
@@ -0,0 +1 @@
+{{b}}({{c}})¥{{d}}库存{{e}}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.wxss b/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.wxss
new file mode 100644
index 00000000..60454562
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/ProductCard.wxss
@@ -0,0 +1 @@
+.product-card.data-v-f1f5eb0c{display:flex;flex-direction:column;background:#fff;border-radius:16rpx;overflow:hidden;width:100%}.product-card__image.data-v-f1f5eb0c{width:100%;height:340rpx}.product-card__info.data-v-f1f5eb0c{padding:16rpx 20rpx 20rpx}.product-card__name.data-v-f1f5eb0c{font-size:26rpx;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;line-height:1.5}.product-card__bottom.data-v-f1f5eb0c{display:flex;justify-content:space-between;align-items:center;margin-top:12rpx}.product-card__price-tag.data-v-f1f5eb0c{background:linear-gradient(135deg,#f5a0b8,#ff6d9b);border-radius:8rpx;padding:4rpx 16rpx}.product-card__price.data-v-f1f5eb0c{font-size:28rpx;color:#fff;font-weight:700}.product-card__stock.data-v-f1f5eb0c{font-size:22rpx;color:#999}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.js b/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.js
new file mode 100644
index 00000000..2b37c652
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.js
@@ -0,0 +1 @@
+"use strict";const e=require("../common/assets.js"),o={};const r=require("../common/vendor.js")._export_sfc(o,[["render",function(o,r){return{a:e._imports_0$5}}],["__scopeId","data-v-d7606e84"]]);wx.createComponent(r);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.json b/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.json
new file mode 100644
index 00000000..e8cfaaf8
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.wxml b/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.wxml
new file mode 100644
index 00000000..d2702e09
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.wxml
@@ -0,0 +1 @@
+叶生珠宝-空托之城空托都是当天金工石结算客服微信:15920028399交易方式:加微信门店交易,支付宝,微信,银行卡转账公司地址:深圳市罗湖区水贝二路贝丽花园21栋108叶生珠宝
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.wxss b/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.wxss
new file mode 100644
index 00000000..4a42b2ab
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/ShippingNotice.wxss
@@ -0,0 +1 @@
+.shipping-notice.data-v-d7606e84{background:#fce4ec;border-radius:20rpx;padding:28rpx 30rpx;margin:20rpx 24rpx 0}.shipping-notice__header.data-v-d7606e84{display:flex;align-items:center;margin-bottom:20rpx}.shipping-notice__icon.data-v-d7606e84{width:36rpx;height:36rpx;margin-right:10rpx}.shipping-notice__title.data-v-d7606e84{font-size:28rpx;font-weight:600;color:#e91e63}.shipping-notice__body.data-v-d7606e84{display:flex;flex-direction:column;gap:8rpx}.shipping-notice__item.data-v-d7606e84{font-size:26rpx;color:#e91e63;line-height:1.6}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.js b/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.js
new file mode 100644
index 00000000..ed6a5815
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.js
@@ -0,0 +1 @@
+"use strict";const e=require("../common/vendor.js"),t=require("../api/product.js"),n=require("../store/cart.js"),i=e.defineComponent({__name:"SpecPanel",props:{productId:{}},emits:["close"],setup(i,{emit:a}){const o=i,l=a,s=e.ref(null),u=e.ref(!1),r=e.ref(!1),c=e.ref([]),d=e.ref(new Map),v=n.useCartStore(),g=e.reactive({fineness:"",mainStone:"",ringSize:""});function S(e,t){g[e]=g[e]===t?"":t,f()}function m(){0!==d.value.size&&(d.value.forEach((e=>{v.addToCart({id:Date.now()+e.id,userId:0,productId:o.productId,specDataId:e.id,quantity:1,product:{},specData:e,checked:!0})})),e.index.showToast({title:`已加入${d.value.size}件`,icon:"success"}),d.value=new Map,l("close"))}async function f(){r.value=!0;try{c.value=await t.getSpecDataList(o.productId,{fineness:g.fineness||void 0,mainStone:g.mainStone||void 0,ringSize:g.ringSize||void 0})}catch{}finally{r.value=!1}}return e.onMounted((async()=>{u.value=!0;try{s.value=await t.getProductSpecs(o.productId)}catch{}finally{u.value=!1}f()})),(t,n)=>e.e({a:u.value},u.value?{}:s.value?e.e({c:s.value.fineness.length},s.value.fineness.length?{d:e.f(s.value.fineness,((t,n,i)=>({a:e.t(t),b:t,c:g.fineness===t?1:"",d:e.o((e=>S("fineness",t)),t)})))}:{},{e:s.value.mainStone.length},s.value.mainStone.length?{f:e.f(s.value.mainStone,((t,n,i)=>({a:e.t(t),b:t,c:g.mainStone===t?1:"",d:e.o((e=>S("mainStone",t)),t)})))}:{},{g:s.value.ringSize.length},s.value.ringSize.length?{h:e.f(s.value.ringSize,((t,n,i)=>({a:e.t(t),b:t,c:g.ringSize===t?1:"",d:e.o((e=>S("ringSize",t)),t)})))}:{}):{},{b:s.value,i:r.value},r.value?{}:c.value.length?{k:e.f(c.value,((t,n,i)=>e.e({a:e.t(t.modelName),b:e.t(t.fineness),c:t.mainStone},t.mainStone?{d:e.t(t.mainStone)}:{},{e:t.ringSize},t.ringSize?{f:e.t(t.ringSize)}:{},{g:e.t(t.goldTotalWeight),h:e.t(t.goldNetWeight),i:e.t(t.loss),j:e.t(t.goldLoss),k:e.t(t.goldPrice),l:e.t(t.goldValue),m:e.t(t.mainStoneCount),n:e.t(t.mainStoneWeight),o:e.t(t.mainStoneUnitPrice),p:e.t(t.mainStoneAmount),q:e.t(t.sideStoneCount),r:e.t(t.sideStoneWeight),s:e.t(t.sideStoneUnitPrice),t:e.t(t.sideStoneAmount),v:e.t(t.accessoryAmount),w:e.t(t.processingFee),x:e.t(t.settingFee),y:e.t(t.totalLaborCost),z:e.t(t.totalPrice),A:t.id,B:d.value.has(t.id)?1:"",C:e.o((e=>function(e){d.value.has(e.id)?d.value.delete(e.id):d.value.set(e.id,e),d.value=new Map(d.value)}(t)),t.id)})))}:{},{j:c.value.length,l:d.value.size},d.value.size?{m:e.t(d.value.size)}:{},{n:0===d.value.size?1:"",o:e.o(m),p:e.o((()=>{})),q:e.o((e=>t.$emit("close")))})}}),a=e._export_sfc(i,[["__scopeId","data-v-0e22571c"]]);wx.createComponent(a);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.json b/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.json
new file mode 100644
index 00000000..e8cfaaf8
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.wxml b/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.wxml
new file mode 100644
index 00000000..4f1b19ec
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.wxml
@@ -0,0 +1 @@
+加载中...成 色{{item.a}}主 石{{item.a}}手 寸{{item.a}}查询中...金料总重{{spec.g}}g金料净重{{spec.h}}g损耗{{spec.i}}%金耗{{spec.j}}g金价¥{{spec.k}}金值¥{{spec.l}}主石数量{{spec.m}}粒主石石重{{spec.n}}ct主石单价¥{{spec.o}}主石金额¥{{spec.p}}副石数量{{spec.q}}粒副石石重{{spec.r}}ct副石单价¥{{spec.s}}副石金额¥{{spec.t}}配件金额¥{{spec.v}}加工工费¥{{spec.w}}镶石工费¥{{spec.x}}总工费¥{{spec.y}} 加入购物车({{m}})
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.wxss b/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.wxss
new file mode 100644
index 00000000..3c52b96e
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/components/SpecPanel.wxss
@@ -0,0 +1 @@
+.spec-panel-mask.data-v-0e22571c{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:999;display:flex;align-items:flex-end}.spec-panel.data-v-0e22571c{background:#fff;width:100%;height:85vh;border-radius:24rpx 24rpx 0 0;display:flex;flex-direction:column}.spec-panel__scroll.data-v-0e22571c{flex:1;padding:32rpx 20rpx 0;overflow:hidden}.spec-panel__loading.data-v-0e22571c{text-align:center;padding:60rpx 0;color:#999;font-size:28rpx}.spec-group.data-v-0e22571c{margin-bottom:32rpx}.spec-group__label.data-v-0e22571c{font-size:30rpx;color:#333;font-weight:600;margin-bottom:20rpx;display:block;letter-spacing:8rpx}.spec-group__options.data-v-0e22571c{display:flex;flex-wrap:wrap;gap:16rpx}.spec-option.data-v-0e22571c{padding:14rpx 32rpx;font-size:26rpx;color:#333;background:#f5f5f5;border-radius:8rpx;border:2rpx solid #f5f5f5}.spec-option--active.data-v-0e22571c{color:#e91e63;background:#fce4ec;border-color:#e91e63}.spec-data-list.data-v-0e22571c{padding-bottom:20rpx}.spec-data-card.data-v-0e22571c{border:2rpx solid #f0e0e0;width:90%;border-radius:16rpx;padding:20rpx 16rpx;margin-bottom:20rpx;background:#fff}.spec-data-card--selected.data-v-0e22571c{border-color:#e91e63;background:#fff5f7}.spec-card__header.data-v-0e22571c{display:flex;justify-content:space-between;align-items:center;margin-bottom:16rpx;padding-bottom:14rpx;border-bottom:1rpx solid #f0f0f0}.spec-card__title.data-v-0e22571c{font-size:26rpx;color:#333;font-weight:600;flex-shrink:0}.spec-card__tags.data-v-0e22571c{display:flex;gap:8rpx;flex-wrap:wrap;justify-content:flex-end}.spec-card__tag.data-v-0e22571c{font-size:20rpx;color:#e91e63;background:#fce4ec;padding:4rpx 14rpx;border-radius:6rpx}.spec-card__grid.data-v-0e22571c{display:grid;grid-template-columns:repeat(2,1fr);gap:2rpx;background:#f5f5f5;border-radius:8rpx;overflow:hidden}.spec-card__cell.data-v-0e22571c{background:#fff;display:flex;justify-content:space-between;align-items:center;padding:14rpx 16rpx}.spec-card__label.data-v-0e22571c{font-size:22rpx;color:#999;flex-shrink:0}.spec-card__value.data-v-0e22571c{font-size:22rpx;color:#333;font-weight:500;margin-left:8rpx;text-align:right}.spec-card__footer.data-v-0e22571c{display:flex;justify-content:flex-end;align-items:center;margin-top:14rpx;padding-top:14rpx;border-top:1rpx solid #f0f0f0;gap:12rpx}.spec-card__total-label.data-v-0e22571c{font-size:26rpx;color:#e91e63}.spec-card__total-price.data-v-0e22571c{font-size:34rpx;color:#e91e63;font-weight:700}.spec-panel__bottom.data-v-0e22571c{padding:20rpx 28rpx;padding-bottom:calc(20rpx + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -2rpx 10rpx rgba(0,0,0,.05)}.spec-panel__cart-btn.data-v-0e22571c{background:linear-gradient(to right,#ffb6c8,#ff6d9b);color:#fff;text-align:center;padding:24rpx 0;border-radius:44rpx;font-size:30rpx;font-weight:500}.spec-panel__cart-btn--disabled.data-v-0e22571c{background:linear-gradient(to right,#ddd,#ccc)}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.js
new file mode 100644
index 00000000..fc2abce7
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),i=require("../../store/user.js"),a=require("../../api/user.js"),n=e.defineComponent({__name:"index",setup(n){const s=e.ref(20),o=e.ref(44);try{const t=e.index.getSystemInfoSync();s.value=t.statusBarHeight||20;const i=e.index.getMenuButtonBoundingClientRect();o.value=2*(i.top-(t.statusBarHeight||20))+i.height}catch{}function c(){e.index.navigateBack({delta:1})}const d=i.useUserStore(),l=e.ref(!1),u=e.ref(null),r=e.reactive({name:"",phone:"",province:"",city:"",district:"",detail:"",isDefault:!1});function v(){r.name="",r.phone="",r.province="",r.city="",r.district="",r.detail="",r.isDefault=!1,u.value=null,l.value=!0}function f(e){u.value=e.id,r.name=e.name,r.phone=e.phone,r.province=e.province,r.city=e.city,r.district=e.district,r.detail=e.detail,r.isDefault=e.isDefault,l.value=!0}async function p(){if(r.name&&r.phone&&r.detail)try{const t={name:r.name,phone:r.phone,province:r.province,city:r.city,district:r.district,detail:r.detail,isDefault:r.isDefault};u.value?await a.updateAddress(u.value,t):await a.addAddress(t),l.value=!1,await h(),e.index.showToast({title:"保存成功",icon:"success"})}catch{e.index.showToast({title:"保存失败",icon:"none"})}else e.index.showToast({title:"请填写完整信息",icon:"none"})}async function h(){try{const e=await a.getAddressList();d.setAddresses(e)}catch{}}return e.onMounted((()=>{h()})),(i,n)=>e.e({a:t._imports_0$2,b:e.o(c),c:o.value+"px",d:s.value+"px",e:s.value+o.value+"px",f:!l.value},l.value?{}:e.e({g:e.f(e.unref(d).addresses,((t,i,n)=>e.e({a:e.t(t.name),b:e.t(t.phone),c:t.isDefault},(t.isDefault,{}),{d:e.t(t.province),e:e.t(t.city),f:e.t(t.district),g:e.t(t.detail),h:e.o((e=>f(t)),t.id),i:e.o((e=>f(t)),t.id),j:e.o((i=>async function(t){e.index.showModal({title:"提示",content:"确定要删除该地址吗?",success:async i=>{if(i.confirm)try{await a.deleteAddress(t),await h(),e.index.showToast({title:"已删除",icon:"success"})}catch{e.index.showToast({title:"删除失败",icon:"none"})}}})}(t.id)),t.id),k:t.id}))),h:0===e.unref(d).addresses.length},(e.unref(d).addresses.length,{}),{i:e.o(v)}),{j:l.value},l.value?{k:r.name,l:e.o((e=>r.name=e.detail.value)),m:r.phone,n:e.o((e=>r.phone=e.detail.value)),o:r.province,p:e.o((e=>r.province=e.detail.value)),q:r.city,r:e.o((e=>r.city=e.detail.value)),s:r.district,t:e.o((e=>r.district=e.detail.value)),v:r.detail,w:e.o((e=>r.detail=e.detail.value)),x:r.isDefault,y:e.o((e=>r.isDefault=e.detail.value)),z:e.o((e=>l.value=!1)),A:e.o(p)}:{})}}),s=e._export_sfc(n,[["__scopeId","data-v-9a0c8684"]]);wx.createPage(s);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.json
new file mode 100644
index 00000000..ced5b279
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.wxml
new file mode 100644
index 00000000..84f4f185
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.wxml
@@ -0,0 +1 @@
+收货地址{{addr.a}}{{addr.b}}默认{{addr.d}}{{addr.e}}{{addr.f}}{{addr.g}}编辑删除暂无收货地址+ 新增收货地址收货人手机号省份城市区县详细地址设为默认取消保存
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.wxss
new file mode 100644
index 00000000..60a8aa5c
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/address/index.wxss
@@ -0,0 +1 @@
+.custom-navbar.data-v-9a0c8684{background:linear-gradient(to right,#ffcfde,#ffa6c4);position:fixed;top:0;left:0;right:0;z-index:100}.custom-navbar__content.data-v-9a0c8684{display:flex;align-items:center;padding:0 24rpx}.custom-navbar__back.data-v-9a0c8684{width:44rpx;height:44rpx}.custom-navbar__title.data-v-9a0c8684{flex:1;text-align:center;font-size:34rpx;font-weight:700;color:#333}.custom-navbar__placeholder.data-v-9a0c8684{width:44rpx}.address-page.data-v-9a0c8684{min-height:100vh;background:#f5f5f5}.address-card.data-v-9a0c8684{background:#fff;margin-bottom:16rpx;padding:24rpx 32rpx}.address-card__top.data-v-9a0c8684{display:flex;align-items:center;gap:16rpx;margin-bottom:8rpx}.address-card__name.data-v-9a0c8684{font-size:30rpx;color:#333;font-weight:700}.address-card__phone.data-v-9a0c8684{font-size:26rpx;color:#666}.address-card__default.data-v-9a0c8684{font-size:22rpx;color:#e4393c;border:1rpx solid #e4393c;border-radius:4rpx;padding:2rpx 8rpx}.address-card__detail.data-v-9a0c8684{font-size:26rpx;color:#666;line-height:40rpx}.address-card__actions.data-v-9a0c8684{display:flex;justify-content:flex-end;gap:32rpx;margin-top:16rpx;padding-top:16rpx;border-top:1rpx solid #f0f0f0}.address-card__edit.data-v-9a0c8684{font-size:26rpx;color:#1890ff}.address-card__delete.data-v-9a0c8684{font-size:26rpx;color:#e4393c}.empty-tip.data-v-9a0c8684{text-align:center;padding:80rpx 0;color:#999;font-size:28rpx}.add-btn.data-v-9a0c8684{margin:32rpx;background:#e4393c;color:#fff;text-align:center;padding:24rpx 0;border-radius:44rpx;font-size:30rpx}.address-form.data-v-9a0c8684{background:#fff;padding:24rpx 32rpx}.form-item.data-v-9a0c8684{display:flex;align-items:center;padding:20rpx 0;border-bottom:1rpx solid #f0f0f0}.form-item--switch.data-v-9a0c8684{justify-content:space-between}.form-label.data-v-9a0c8684{font-size:28rpx;color:#333;width:160rpx;flex-shrink:0}.form-input.data-v-9a0c8684{flex:1;font-size:28rpx;color:#333}.form-actions.data-v-9a0c8684{display:flex;gap:24rpx;margin-top:40rpx;padding-bottom:20rpx}.form-btn.data-v-9a0c8684{flex:1;text-align:center;padding:20rpx 0;border-radius:44rpx;font-size:28rpx}.form-btn--cancel.data-v-9a0c8684{border:1rpx solid #ddd;color:#666}.form-btn--save.data-v-9a0c8684{background:#e4393c;color:#fff}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.js
new file mode 100644
index 00000000..bd2977ce
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),l=require("../../utils/calculator.js"),i=e.defineComponent({__name:"index",setup(i){const a=e.ref(20),n=e.ref(44);try{const t=e.index.getSystemInfoSync();a.value=t.statusBarHeight||20;const l=e.index.getMenuButtonBoundingClientRect();n.value=2*(l.top-(t.statusBarHeight||20))+l.height}catch{}function o(){e.index.navigateBack({delta:1})}const u=[{key:"goldWeight",label:"金重",unit:"g"},{key:"mainStoneWeight",label:"主石重",unit:"ct"},{key:"sideStoneWeight",label:"副石重",unit:"ct"},{key:"lossRate",label:"损耗",unit:"倍率"},{key:"moldGoldPrice",label:"倒模金价",unit:"元"}],r=[{key:"mainStoneUnitPrice",label:"主石单价",unit:"元"},{key:"sideStoneUnitPrice",label:"副石单价",unit:"元"},{key:"sideStoneCount",label:"副石粒数",unit:"p"},{key:"microSettingFee",label:"微镶费",unit:"元/粒"},{key:"mainStoneSettingFee",label:"主石镶费",unit:"元"},{key:"threeDFee",label:"3D起板费",unit:"元"},{key:"basicLaborCost",label:"基本工费",unit:"元"},{key:"otherCost",label:"其他费用",unit:"元"}],c=e.reactive({goldWeight:0,mainStoneWeight:0,sideStoneWeight:0,lossRate:1,moldGoldPrice:0,mainStoneUnitPrice:0,sideStoneUnitPrice:0,sideStoneCount:0,microSettingFee:0,mainStoneSettingFee:0,threeDFee:0,basicLaborCost:0,otherCost:0}),s=e.reactive({});function d(e,t){const l=t.detail.value,i=Number(l);if(""===l||"-"===l)return c[e]=0,void delete s[e];isNaN(i)?s[e]="请输入有效数字":i<0?s[e]="不能为负数":(delete s[e],c[e]=i)}const b=e.computed((()=>{if(Object.keys(s).length>0)return null;try{return l.calculateRing({...c})}catch{return null}})),g=e.computed((()=>{const e=b.value;return e?[{label:"净金重",value:e.netGoldWeight.toFixed(4)+" g"},{label:"含耗重",value:e.weightWithLoss.toFixed(4)+" g"},{label:"金值",value:"¥"+e.goldValue.toFixed(2)},{label:"主石总价",value:"¥"+e.mainStoneTotal.toFixed(2)},{label:"副石总价",value:"¥"+e.sideStoneTotal.toFixed(2)},{label:"微镶总价",value:"¥"+e.microSettingTotal.toFixed(2)},{label:"总价",value:"¥"+e.totalPrice.toFixed(2)}]:[]}));return(l,i)=>({a:t._imports_0$2,b:e.o(o),c:n.value+"px",d:a.value+"px",e:a.value+n.value+"px",f:e.f(u,((t,l,i)=>e.e({a:e.t(t.label),b:e.t(t.unit),c:"请输入"+t.label,d:String(c[t.key]),e:e.o((e=>d(t.key,e)),t.key),f:s[t.key]},s[t.key]?{g:e.t(s[t.key])}:{},{h:t.key}))),g:e.f(r,((t,l,i)=>e.e({a:e.t(t.label),b:e.t(t.unit),c:"请输入"+t.label,d:String(c[t.key]),e:e.o((e=>d(t.key,e)),t.key),f:s[t.key]},s[t.key]?{g:e.t(s[t.key])}:{},{h:t.key}))),h:e.f(g.value,((t,l,i)=>({a:e.t(t.label),b:e.t(t.value),c:t.label})))})}}),a=e._export_sfc(i,[["__scopeId","data-v-59aa3e7d"]]);wx.createPage(a);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.json
new file mode 100644
index 00000000..ced5b279
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.wxml
new file mode 100644
index 00000000..62f50fec
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.wxml
@@ -0,0 +1 @@
+钻戒计算器基础参数{{field.a}}({{field.b}}){{field.g}}费用参数{{field.a}}({{field.b}}){{field.g}}计算结果{{r.a}}{{r.b}}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.wxss
new file mode 100644
index 00000000..71bca2d9
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/calculator/index.wxss
@@ -0,0 +1 @@
+.custom-navbar.data-v-59aa3e7d{background:linear-gradient(to right,#ffcfde,#ffa6c4);position:fixed;top:0;left:0;right:0;z-index:100}.custom-navbar__content.data-v-59aa3e7d{display:flex;align-items:center;padding:0 24rpx}.custom-navbar__back.data-v-59aa3e7d{width:44rpx;height:44rpx}.custom-navbar__title.data-v-59aa3e7d{flex:1;text-align:center;font-size:34rpx;font-weight:700;color:#333}.custom-navbar__placeholder.data-v-59aa3e7d{width:44rpx}.calculator-page.data-v-59aa3e7d{min-height:100vh;background:#f5f5f5;padding:16rpx}.section.data-v-59aa3e7d{background:#fff;border-radius:16rpx;padding:24rpx;margin-bottom:16rpx}.section__title.data-v-59aa3e7d{font-size:30rpx;font-weight:700;color:#333;margin-bottom:20rpx}.form-item.data-v-59aa3e7d{margin-bottom:20rpx}.form-item__label.data-v-59aa3e7d{font-size:26rpx;color:#666;display:block;margin-bottom:8rpx}.form-item__input.data-v-59aa3e7d{border:1rpx solid #ddd;border-radius:8rpx;padding:16rpx;font-size:28rpx;color:#333}.form-item__error.data-v-59aa3e7d{font-size:22rpx;color:#e4393c;margin-top:4rpx;display:block}.result-section.data-v-59aa3e7d{background:#fff8f0}.result-row.data-v-59aa3e7d{display:flex;justify-content:space-between;padding:12rpx 0;border-bottom:1rpx solid #f0e8e0}.result-row.data-v-59aa3e7d:last-child{border-bottom:none;font-weight:700;font-size:32rpx;color:#e4393c}.result-row__label.data-v-59aa3e7d{font-size:26rpx;color:#666}.result-row__value.data-v-59aa3e7d{font-size:26rpx;color:#333}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.js
new file mode 100644
index 00000000..d68acd14
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),n=require("../../store/cart.js"),i=require("../../utils/request.js"),o=e.defineComponent({__name:"index",setup(o){const a=n.useCartStore(),c=e.ref(0),s=e.ref(44),r=e.computed((()=>a.items.length>0&&a.items.every((e=>e.checked))));function u(){if(0===a.checkedItems.length)return void e.index.showToast({title:"请先选择商品",icon:"none"});e.index.getStorageSync("token")?e.index.navigateTo({url:"/pages/order/submit"}):e.index.navigateTo({url:"/pages/login/index"})}return e.onMounted((()=>{const t=e.index.getSystemInfoSync();c.value=t.statusBarHeight||0;const n=e.index.getMenuButtonBoundingClientRect();s.value=n.height+2*(n.top-(t.statusBarHeight||0)),a.fetchCart()})),(n,o)=>e.e({a:s.value+"px",b:c.value+"px",c:c.value+s.value+"px",d:e.unref(a).items.length>0},e.unref(a).items.length>0?{e:e.f(e.unref(a).items,((t,n,o)=>{var c,s,r,u,l,d,g,m,h,p,v,f,_;return{a:t.checked?"/static/ic_check_s.png":"/static/ic_check.png",b:e.o((n=>e.unref(a).toggleCheck(t.id)),t.id),c:(_=(null==(c=t.product)?void 0:c.thumb)||(null==(r=null==(s=t.product)?void 0:s.bannerImages)?void 0:r[0])||"",_?_.startsWith("http")?_:i.BASE_URL+_:""),d:e.t((null==(u=t.product)?void 0:u.name)||(null==(l=t.specData)?void 0:l.modelName)),e:e.t(null==(d=t.product)?void 0:d.styleNo),f:e.t(null==(g=t.specData)?void 0:g.modelName),g:e.t(null==(m=t.specData)?void 0:m.ringSize),h:e.t(null==(h=t.specData)?void 0:h.ringSize),i:e.t(null==(p=t.specData)?void 0:p.goldTotalWeight),j:e.t(null==(v=t.specData)?void 0:v.fineness),k:e.t((null==(f=t.specData)?void 0:f.totalPrice)||0),l:e.o((n=>e.unref(a).removeFromCart(t.id)),t.id),m:t.id}}))}:{f:t._imports_0$1},{g:e.unref(a).items.length>0},e.unref(a).items.length>0?{h:r.value?"/static/ic_check_s.png":"/static/ic_check.png",i:e.o((t=>e.unref(a).toggleCheckAll())),j:e.t(e.unref(a).totalAmount.toFixed(2)),k:0===e.unref(a).checkedItems.length?1:"",l:e.o(u)}:{})}}),a=e._export_sfc(o,[["__scopeId","data-v-cf3ca7ee"]]);wx.createPage(a);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.json
new file mode 100644
index 00000000..ced5b279
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.wxml
new file mode 100644
index 00000000..853356a3
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.wxml
@@ -0,0 +1 @@
+购物车{{item.d}}款号:{{item.e}}条码号:{{item.f}}镶口:{{item.g}}分手寸:{{item.h}}金重:{{item.i}}g{{item.j}}¥{{item.k}}元删除购物车是空的全选合计:¥{{j}}开始下单
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.wxss
new file mode 100644
index 00000000..88b82dcd
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/cart/index.wxss
@@ -0,0 +1 @@
+.cart-page.data-v-cf3ca7ee{min-height:100vh;background:#f5f5f5;padding-bottom:calc(120rpx + env(safe-area-inset-bottom))}.navbar.data-v-cf3ca7ee{position:fixed;top:0;left:0;right:0;z-index:100;background:linear-gradient(to right,#ffcfde,#ffa6c4)}.navbar__content.data-v-cf3ca7ee{display:flex;align-items:center;justify-content:center}.navbar__title.data-v-cf3ca7ee{font-size:34rpx;font-weight:600;color:#333}.cart-list.data-v-cf3ca7ee{padding:16rpx 20rpx}.cart-item.data-v-cf3ca7ee{display:flex;align-items:center;background:#fff;border-radius:16rpx;padding:28rpx 20rpx;margin-bottom:16rpx}.cart-item__check.data-v-cf3ca7ee{margin-right:16rpx;flex-shrink:0}.check-icon.data-v-cf3ca7ee{width:44rpx;height:44rpx}.cart-item__body.data-v-cf3ca7ee{flex:1;min-width:0}.cart-item__top.data-v-cf3ca7ee{display:flex}.cart-item__img.data-v-cf3ca7ee{width:200rpx;height:200rpx;border-radius:16rpx;margin-right:24rpx;flex-shrink:0}.cart-item__info.data-v-cf3ca7ee{flex:1;min-width:0}.cart-item__name.data-v-cf3ca7ee{font-size:32rpx;color:#333;font-weight:700;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:14rpx}.cart-item__specs.data-v-cf3ca7ee{display:grid;grid-template-columns:1fr 1fr;gap:6rpx 20rpx}.spec-tag.data-v-cf3ca7ee{font-size:24rpx;color:#666;line-height:1.7}.cart-item__bottom.data-v-cf3ca7ee{display:flex;align-items:center;justify-content:space-between;margin-top:16rpx}.cart-item__price.data-v-cf3ca7ee{font-size:34rpx;color:#e91e63;font-weight:700}.cart-item__delete.data-v-cf3ca7ee{font-size:24rpx;color:#bbb;padding:8rpx 0}.empty-cart.data-v-cf3ca7ee{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:280rpx}.empty-cart__icon.data-v-cf3ca7ee{width:360rpx;height:360rpx;margin-bottom:32rpx}.empty-cart__text.data-v-cf3ca7ee{font-size:30rpx;color:#bbb}.settle-bar.data-v-cf3ca7ee{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:16rpx 24rpx;box-shadow:0 -2rpx 16rpx rgba(0,0,0,.06)}.settle-bar__left.data-v-cf3ca7ee{display:flex;align-items:center}.settle-bar__all-text.data-v-cf3ca7ee{font-size:26rpx;color:#333;margin-left:10rpx}.settle-bar__right.data-v-cf3ca7ee{display:flex;align-items:center}.settle-bar__total.data-v-cf3ca7ee{margin-right:20rpx;display:flex;align-items:baseline}.settle-bar__total-label.data-v-cf3ca7ee{font-size:26rpx;color:#666}.settle-bar__price.data-v-cf3ca7ee{color:#e91e63;font-weight:700;font-size:38rpx}.settle-bar__btn.data-v-cf3ca7ee{background:linear-gradient(to right,#ffb6c8,#ff6d9b);color:#fff;font-size:28rpx;padding:18rpx 48rpx;border-radius:44rpx;font-weight:500}.settle-bar__btn--disabled.data-v-cf3ca7ee{background:linear-gradient(to right,#ddd,#ccc)}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.js
new file mode 100644
index 00000000..f587f992
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../utils/request.js"),n=e.defineComponent({__name:"index",setup(n){const u=e.ref(0),i=e.ref(44),l=e.ref(""),r=e.ref(0),o=e.ref([]),s=e.reactive({}),v=e.ref([]),c=e.ref(!1);function d(){e.index.navigateBack()}async function f(){c.value=!0;try{const e={categoryId:r.value,pageSize:50};Object.keys(s).forEach((t=>{s[t]&&(e[t]=s[t])}));const t=await a.get("/api/products",e);v.value=(null==t?void 0:t.list)||[]}catch{v.value=[]}finally{c.value=!1}}return e.onMounted((()=>{var t,n;const s=e.index.getSystemInfoSync();u.value=s.statusBarHeight||0;const v=e.index.getMenuButtonBoundingClientRect();i.value=v.height+2*(v.top-(s.statusBarHeight||0));const c=getCurrentPages(),d=c[c.length-1];r.value=Number((null==(t=d.options)?void 0:t.id)||0),l.value=decodeURIComponent((null==(n=d.options)?void 0:n.name)||""),async function(){try{const e=await a.get(`/api/categories/${r.value}/filters`);o.value=e||[]}catch{o.value=[]}}(),f()})),(n,r)=>e.e({a:t._imports_0$2,b:e.o(d),c:e.t(l.value),d:i.value+"px",e:u.value+"px",f:u.value+i.value+"px",g:o.value.length},o.value.length?{h:e.f(o.value,((t,a,n)=>({a:e.t(t.filterName),b:e.f(t.options,((a,n,u)=>({a:e.t(a),b:a,c:s[t.filterKey]===a?1:"",d:e.o((e=>{return n=t.filterKey,u=a,s[n]===u?delete s[n]:s[n]=u,void f();var n,u}),a)}))),c:t.filterKey})))}:{},{i:v.value.length},v.value.length?{j:e.f(v.value,((t,n,u)=>{var i,l;return{a:(l=t.thumb||(null==(i=t.bannerImages)?void 0:i[0])||"",l?l.startsWith("http")?l:a.BASE_URL+l:""),b:e.t(t.name),c:e.t(t.basePrice),d:e.t(t.stock),e:t.id,f:e.o((a=>{return n=t.id,void e.index.navigateTo({url:`/pages/product/detail?id=${n}`});var n}),t.id)}}))}:c.value?{}:{l:t._imports_0$1},{k:!c.value,m:c.value},(c.value,{}))}}),u=e._export_sfc(n,[["__scopeId","data-v-e771590a"]]);wx.createPage(u);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.json
new file mode 100644
index 00000000..ced5b279
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.wxml
new file mode 100644
index 00000000..03bd5978
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.wxml
@@ -0,0 +1 @@
+{{c}}{{filter.a}}{{opt.a}}{{p.b}}¥{{p.c}}库存{{p.d}}暂无商品加载中...
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.wxss
new file mode 100644
index 00000000..742e06e0
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/category/index.wxss
@@ -0,0 +1 @@
+.category-page.data-v-e771590a{min-height:100vh;background:#f5f5f5}.navbar.data-v-e771590a{position:fixed;top:0;left:0;right:0;z-index:100;background:linear-gradient(135deg,#ffcfde,#ffa6c4)}.navbar__content.data-v-e771590a{display:flex;align-items:center;justify-content:space-between;padding:0 24rpx}.navbar__back.data-v-e771590a{padding:10rpx}.navbar__back-icon.data-v-e771590a{width:40rpx;height:40rpx}.navbar__title.data-v-e771590a{font-size:34rpx;font-weight:600;color:#000}.navbar__placeholder.data-v-e771590a{width:60rpx}.filter-section.data-v-e771590a{background:#fff;padding:20rpx 24rpx 8rpx}.filter-group.data-v-e771590a{display:flex;margin-bottom:16rpx}.filter-group__label.data-v-e771590a{font-size:26rpx;color:#666;font-weight:500;width:80rpx;flex-shrink:0;padding-top:10rpx;letter-spacing:4rpx}.filter-group__options.data-v-e771590a{display:flex;flex-wrap:wrap;gap:12rpx;flex:1}.filter-option.data-v-e771590a{padding:10rpx 24rpx;font-size:24rpx;color:#333;background:#f5f5f5;border-radius:8rpx;border:2rpx solid transparent}.filter-option--active.data-v-e771590a{color:#e91e63;background:#fce4ec;border-color:#e91e63}.product-grid.data-v-e771590a{display:flex;flex-wrap:wrap;padding:16rpx;gap:16rpx}.product-card.data-v-e771590a{width:calc(50% - 8rpx);background:#fff;border-radius:16rpx;overflow:hidden}.product-card__img.data-v-e771590a{width:100%;height:340rpx}.product-card__info.data-v-e771590a{padding:16rpx 20rpx 20rpx}.product-card__name.data-v-e771590a{font-size:26rpx;color:#333;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:10rpx}.product-card__bottom.data-v-e771590a{display:flex;align-items:center;justify-content:space-between}.product-card__price.data-v-e771590a{font-size:30rpx;font-weight:700;background:linear-gradient(to right,#ffb6c8,#ff6d9b);-webkit-background-clip:text;color:transparent;padding:4rpx 16rpx;background:linear-gradient(to right,#fce4ec,#f8bbd0);color:#e91e63;border-radius:6rpx;font-size:26rpx}.product-card__stock.data-v-e771590a{font-size:22rpx;color:#999}.empty-state.data-v-e771590a{display:flex;flex-direction:column;align-items:center;padding-top:200rpx}.empty-state__icon.data-v-e771590a{width:300rpx;height:300rpx;margin-bottom:20rpx}.empty-state__text.data-v-e771590a{font-size:28rpx;color:#bbb}.loading-text.data-v-e771590a{text-align:center;padding:40rpx;color:#999;font-size:26rpx}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.js
new file mode 100644
index 00000000..344a92c9
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),a=require("../../common/assets.js"),t=require("../../api/product.js"),n=require("../../utils/request.js");Math||(o+u)();const o=()=>"../../components/ProductCard.js",u=()=>"../../components/CustomerServiceBtn.js",i=e.defineComponent({__name:"index",setup(o){const u=e.ref([]),i=e.ref([]),r=e.ref(void 0),c=e.ref(!1),l=e.ref(!1),s=e.ref(1),v=e.ref(""),d=e.ref(20),p=e.ref(44);try{const a=e.index.getSystemInfoSync();d.value=a.statusBarHeight||20;const t=e.index.getMenuButtonBoundingClientRect();p.value=2*(t.top-(a.statusBarHeight||20))+t.height}catch{}function f(){v.value.trim()&&e.index.navigateTo({url:`/pages/search/index?keyword=${encodeURIComponent(v.value.trim())}`})}function g(){e.index.navigateTo({url:"/pages/calculator/index"})}return e.onMounted((()=>{!async function(){try{const e=await t.getCategories();i.value=e}catch{}}(),async function(e=!1){e&&(s.value=1,u.value=[]),c.value=!0;try{const a={page:s.value,pageSize:20};r.value&&(a.categoryId=r.value),v.value&&(a.keyword=v.value);const n=await t.getProducts(a);e?u.value=n.list:u.value.push(...n.list)}catch{}finally{c.value=!1}}(!0)})),(t,o)=>e.e({a:p.value+"px",b:d.value+"px",c:a._imports_0,d:v.value,e:e.o((e=>v.value=e.detail.value)),f:e.o(f),g:e.o(f),h:e.f(i.value,((a,t,o)=>{return e.e({a:a.icon},a.icon?{b:(u=a.icon,u?u.startsWith("http")?u:n.BASE_URL+u:"")}:{},{c:e.t(a.name),d:a.id,e:r.value===a.id?1:"",f:e.o((t=>function(a){const t=i.value.find((e=>e.id===a)),n=t?encodeURIComponent(t.name):"";e.index.navigateTo({url:`/pages/category/index?id=${a}&name=${n}`})}(a.id)),a.id)});var u})),i:a._imports_1,j:e.o(g),k:a._imports_2,l:e.o((e=>l.value=!0)),m:e.f(u.value,((a,t,n)=>({a:"449a819d-0-"+n,b:e.p({product:a}),c:a.id}))),n:!c.value&&0===u.value.length},(c.value||u.value.length,{}),{o:c.value},(c.value,{}),{p:l.value},l.value?{q:e.o((e=>l.value=!1)),r:e.p({mode:"qrcode"})}:{})}}),r=e._export_sfc(i,[["__scopeId","data-v-449a819d"]]);wx.createPage(r);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.json
new file mode 100644
index 00000000..0fc044b6
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.json
@@ -0,0 +1,7 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {
+ "product-card": "../../components/ProductCard",
+ "customer-service-btn": "../../components/CustomerServiceBtn"
+ }
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.wxml
new file mode 100644
index 00000000..dd03d3ff
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.wxml
@@ -0,0 +1 @@
+凯缘钻之城搜索💎{{cat.c}}钻戒计算器客服找款暂无商品加载中...
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.wxss
new file mode 100644
index 00000000..7fc66228
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/index/index.wxss
@@ -0,0 +1 @@
+.home-page.data-v-449a819d{min-height:100vh;background:#f5f5f5}.custom-navbar.data-v-449a819d{background:linear-gradient(to right,#ffcfde,#ffa6c4)}.custom-navbar__content.data-v-449a819d{display:flex;align-items:center;justify-content:center}.custom-navbar__title.data-v-449a819d{font-size:34rpx;font-weight:700;color:#333}.search-bar.data-v-449a819d{display:flex;align-items:center;padding:16rpx 24rpx}.search-bar__input.data-v-449a819d{flex:1;display:flex;align-items:center;background:#fff;border-radius:40rpx;padding:16rpx 24rpx;height:72rpx;box-sizing:border-box}.search-bar__icon.data-v-449a819d{width:32rpx;height:32rpx;margin-right:12rpx;flex-shrink:0}.search-bar__field.data-v-449a819d{flex:1;font-size:24rpx;color:#333}.search-bar__btn.data-v-449a819d{margin-left:16rpx;font-size:28rpx;color:#333;font-weight:500}.category-section.data-v-449a819d{white-space:nowrap;padding:32rpx 0 24rpx;background:#fff}.category-section__inner.data-v-449a819d{display:inline-flex;padding:0 24rpx;gap:32rpx}.category-icon.data-v-449a819d{display:inline-flex;flex-direction:column;align-items:center;gap:12rpx;flex-shrink:0}.category-icon__circle.data-v-449a819d{width:120rpx;height:120rpx;border-radius:30rpx;background:linear-gradient(135deg,#fce4ec,#f8bbd0);display:flex;align-items:center;justify-content:center}.category-icon--active .category-icon__circle.data-v-449a819d{background:linear-gradient(135deg,#f48fb1,#e91e63);box-shadow:0 4rpx 16rpx rgba(233,30,99,.3)}.category-icon__emoji.data-v-449a819d{font-size:48rpx}.category-icon__img.data-v-449a819d{width:90rpx;height:90rpx}.category-icon__label.data-v-449a819d{font-size:24rpx;color:#333}.category-icon--active .category-icon__label.data-v-449a819d{color:#e91e63;font-weight:700}.quick-actions.data-v-449a819d{display:flex;gap:20rpx;padding:0 24rpx 24rpx;background-color:#fff}.quick-action.data-v-449a819d{flex:1;display:flex;align-items:center;justify-content:center;gap:16rpx;padding:28rpx 0;border-radius:16rpx;background:#fff}.quick-action--calc.data-v-449a819d{background:linear-gradient(135deg,#ffa4c3,#ffd2e0)}.quick-action--service.data-v-449a819d{background:linear-gradient(135deg,#e8f5e9,#fff)}.quick-action__icon.data-v-449a819d{width:44rpx;height:44rpx}.quick-action__text.data-v-449a819d{font-size:30rpx;color:#333;font-weight:600}.product-grid.data-v-449a819d{display:flex;flex-wrap:wrap;padding:0 24rpx;gap:16rpx}.product-grid__item.data-v-449a819d{width:calc(50% - 8rpx)}.empty-tip.data-v-449a819d,.loading-tip.data-v-449a819d{text-align:center;padding:60rpx 0;color:#999;font-size:28rpx}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.js
new file mode 100644
index 00000000..bf1c102b
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),i=require("../../common/assets.js"),t=require("../../utils/request.js"),a=require("../../store/user.js"),n=e.defineComponent({__name:"index",setup(n){const s=e.ref(!1),o=a.useUserStore();async function r(){if(!s.value){s.value=!0;try{await t.autoLogin(),await o.fetchProfile(),e.index.showToast({title:"登录成功",icon:"success"}),setTimeout((()=>{e.index.navigateBack({delta:1,fail:()=>{e.index.switchTab({url:"/pages/index/index"})}})}),500)}catch{e.index.showToast({title:"登录失败,请重试",icon:"none"})}finally{s.value=!1}}}function c(){e.index.navigateBack({delta:1,fail:()=>{e.index.switchTab({url:"/pages/index/index"})}})}return(t,a)=>({a:i._imports_0$4,b:s.value,c:e.o(r),d:e.o(c)})}}),s=e._export_sfc(n,[["__scopeId","data-v-a280ea1c"]]);wx.createPage(s);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.json
new file mode 100644
index 00000000..e301e431
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarTitleText": "登录",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.wxml
new file mode 100644
index 00000000..7dcb42d7
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.wxml
@@ -0,0 +1 @@
+暂不登录,先逛逛
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.wxss
new file mode 100644
index 00000000..5031a5b7
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/login/index.wxss
@@ -0,0 +1 @@
+.login-page.data-v-a280ea1c{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;padding:0 60rpx}.login-header.data-v-a280ea1c{display:flex;flex-direction:column;align-items:center;margin-bottom:120rpx}.login-logo.data-v-a280ea1c{width:160rpx;height:160rpx;margin-bottom:30rpx}.login-title.data-v-a280ea1c{font-size:40rpx;font-weight:700;color:#333;margin-bottom:16rpx}.login-desc.data-v-a280ea1c{font-size:26rpx;color:#999}.login-actions.data-v-a280ea1c{width:100%;display:flex;flex-direction:column;align-items:center}.login-btn.data-v-a280ea1c{width:100%;height:88rpx;line-height:88rpx;background:#e4393c;color:#fff;font-size:32rpx;border-radius:44rpx;border:none;text-align:center}.login-skip.data-v-a280ea1c{margin-top:32rpx;font-size:26rpx;color:#999}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.js
new file mode 100644
index 00000000..8c1a72c7
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),o=require("../../store/user.js"),n=require("../../api/order.js");Math||r();const r=()=>"../../components/CustomerServiceBtn.js",s=e.defineComponent({__name:"index",setup(r){const s=o.useUserStore(),a=e.ref(!1),i=e.ref(!1),u=e.ref(0),l=e.ref(!1),c=e.ref(20),d=e.ref(44);try{const t=e.index.getSystemInfoSync();c.value=t.statusBarHeight||20;const o=e.index.getMenuButtonBoundingClientRect();d.value=2*(o.top-(t.statusBarHeight||20))+o.height}catch{}function v(){l.value||e.index.navigateTo({url:"/pages/login/index"})}function g(t){e.index.getStorageSync("token")?e.index.navigateTo({url:t}):e.index.navigateTo({url:"/pages/login/index"})}function p(t){const o="user"===t?"用户协议":"隐私协议";e.index.showModal({title:o,content:"user"===t?"欢迎使用珠宝商城小程序。使用本小程序即表示您同意遵守相关服务条款。":"我们重视您的隐私保护。我们仅收集必要的信息以提供服务,不会向第三方泄露您的个人信息。",showCancel:!1,confirmText:"我知道了"})}function f(){e.index.showModal({title:"提示",content:"确定要退出登录吗?",success:t=>{t.confirm&&(s.logout(),l.value=!1,u.value=0,e.index.showToast({title:"已退出登录",icon:"success"}),setTimeout((()=>{e.index.switchTab({url:"/pages/index/index"})}),1e3))}})}return e.onShow((()=>{!function(){const t=e.index.getStorageSync("token");l.value=!!t,t&&(s.fetchProfile(),n.getOrderList().then((e=>{u.value=Array.isArray(e)?e.length:(null==e?void 0:e.total)||0})).catch((()=>{})))}()})),(o,n)=>{var r,x,m;return e.e({a:d.value+"px",b:c.value+"px",c:(null==(r=e.unref(s).user)?void 0:r.avatar)||"/static/logo.png",d:e.t(l.value?(null==(x=e.unref(s).user)?void 0:x.nickname)||"微信用户":"点击注册/登录"),e:l.value},l.value?{f:e.t(null==(m=e.unref(s).user)?void 0:m.id)}:{},{g:e.o(v),h:t._imports_0$3,i:e.t(u.value),j:e.o((e=>g("/pages/order/list"))),k:t._imports_1$1,l:e.o((e=>g("/pages/address/index"))),m:t._imports_2$1,n:e.o((e=>a.value=!0)),o:t._imports_3$1,p:e.o((e=>i.value=!0)),q:t._imports_4,r:e.o((e=>p("user"))),s:t._imports_5,t:e.o((e=>p("privacy"))),v:l.value},l.value?{w:t._imports_6,x:e.o(f)}:{},{y:a.value},a.value?{z:e.o((e=>a.value=!1)),A:e.p({mode:"qrcode"})}:{},{B:i.value},i.value?{C:e.o((e=>i.value=!1)),D:e.o((()=>{})),E:e.o((e=>i.value=!1))}:{})}}}),a=e._export_sfc(s,[["__scopeId","data-v-56e97d4f"]]);wx.createPage(a);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.json
new file mode 100644
index 00000000..bd145731
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.json
@@ -0,0 +1,6 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {
+ "customer-service-btn": "../../components/CustomerServiceBtn"
+ }
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.wxml
new file mode 100644
index 00000000..0c44710f
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.wxml
@@ -0,0 +1 @@
+我的{{d}}ID: {{f}}›我的订单 {{i}}›
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.wxss
new file mode 100644
index 00000000..0a5d671b
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/mine/index.wxss
@@ -0,0 +1 @@
+.mine-page.data-v-56e97d4f{min-height:100vh;background:#f5f5f5}.custom-navbar.data-v-56e97d4f{background:linear-gradient(to right,#ffcfde,#ffa6c4)}.custom-navbar__content.data-v-56e97d4f{display:flex;align-items:center;justify-content:center}.custom-navbar__title.data-v-56e97d4f{font-size:34rpx;font-weight:700;color:#333}.user-card.data-v-56e97d4f{display:flex;align-items:center;background:#fff;margin:0 24rpx;padding:32rpx;border-radius:16rpx}.user-card__avatar.data-v-56e97d4f{width:96rpx;height:96rpx;border-radius:50%;background:#f0f0f0;flex-shrink:0}.user-card__info.data-v-56e97d4f{flex:1;margin-left:24rpx}.user-card__name.data-v-56e97d4f{font-size:32rpx;color:#333;font-weight:700}.user-card__id.data-v-56e97d4f{font-size:24rpx;color:#999;margin-top:8rpx;display:block}.user-card__arrow.data-v-56e97d4f{font-size:36rpx;color:#ccc}.order-entry.data-v-56e97d4f{display:flex;align-items:center;margin:20rpx 24rpx 0;padding:24rpx 32rpx;background:linear-gradient(135deg,#fce4ec,#f8bbd0);border-radius:16rpx}.order-entry__icon.data-v-56e97d4f{width:40rpx;height:40rpx;margin-right:16rpx}.order-entry__text.data-v-56e97d4f{flex:1;font-size:28rpx;color:#333;font-weight:700}.order-entry__arrow.data-v-56e97d4f{font-size:32rpx;color:#999}.menu-group.data-v-56e97d4f{background:#fff;margin:20rpx 24rpx 0;border-radius:16rpx;overflow:hidden}.menu-item.data-v-56e97d4f{display:flex;align-items:center;padding:30rpx 32rpx;border-bottom:1rpx solid #f5f5f5}.menu-item.data-v-56e97d4f:last-child{border-bottom:none}.menu-item__icon.data-v-56e97d4f{width:40rpx;height:40rpx;margin-right:20rpx}.menu-item__label.data-v-56e97d4f{flex:1;font-size:28rpx;color:#333}.menu-item__arrow.data-v-56e97d4f{font-size:32rpx;color:#ccc}.modal-mask.data-v-56e97d4f{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:999}.modal-popup.data-v-56e97d4f{background:#fff;border-radius:16rpx;padding:40rpx;text-align:center;width:560rpx}.modal-popup__title.data-v-56e97d4f{font-size:32rpx;color:#333;font-weight:700;display:block;margin-bottom:20rpx}.modal-popup__content.data-v-56e97d4f{font-size:26rpx;color:#666;line-height:44rpx;display:block}.modal-popup__close.data-v-56e97d4f{margin-top:28rpx;font-size:28rpx;color:#999}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.js
new file mode 100644
index 00000000..bcb36bb0
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../utils/request.js"),a=require("../../utils/moldSearch.js"),n=e.defineComponent({__name:"index",setup(n){const u=e.ref([]),l=e.ref(""),s=e.ref(!1),i=e.ref(20),o=e.ref(44);try{const t=e.index.getSystemInfoSync();i.value=t.statusBarHeight||20;const a=e.index.getMenuButtonBoundingClientRect();o.value=2*(a.top-(t.statusBarHeight||20))+a.height}catch{}const r=e.computed((()=>a.searchMolds(u.value,l.value)));function c(e){return e?e.startsWith("http")?e:t.BASE_URL+e:""}function v(e){if(Array.isArray(e))return e;if("string"==typeof e)try{return JSON.parse(e)}catch{return[]}return[]}function f(e){l.value=e.detail.value}function g(){}function d(){e.index.showModal({title:"联系客服",content:"如需定制服务,请添加客服微信咨询",showCancel:!1})}async function h(){s.value=!0;try{const e=await t.get("/api/molds",{pageSize:100}),a=(null==e?void 0:e.list)||[];u.value=a.map((e=>({...e,images:v(e.images)})))}catch{}finally{s.value=!1}}return e.onMounted((()=>{h()})),e.onShow((()=>{h()})),(t,a)=>e.e({a:o.value+"px",b:i.value+"px",c:l.value,d:e.o(f),e:e.o(g),f:e.f(r.value,((t,a,n)=>e.e({a:e.t(t.name),b:(t.images||[]).length>0},(t.images||[]).length>0?{c:e.f(t.images||[],((a,n,u)=>({a:n,b:c(a),c:e.o((a=>function(t,a){const n=t.map((e=>c(e)));e.index.previewImage({urls:n,current:n[a]})}(t.images||[],n)),n)})))}:{},{d:t.styleNo},t.styleNo?{e:e.t(t.styleNo)}:{},{f:t.style},t.style?{g:e.t(t.style)}:{},{h:t.id}))),g:!s.value&&0===r.value.length},s.value||0!==r.value.length?{}:e.e({h:e.t(l.value?"未找到匹配结果":"暂无版房信息"),i:l.value},l.value?{j:e.o(d)}:{}),{k:s.value},(s.value,{}))}}),u=e._export_sfc(n,[["__scopeId","data-v-00ca4dc0"]]);wx.createPage(u);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.json
new file mode 100644
index 00000000..ced5b279
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.wxml
new file mode 100644
index 00000000..01e8ad32
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.wxml
@@ -0,0 +1 @@
+版房专区{{mold.a}}暂无图片{{h}} 联系客服咨询定制 加载中...
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.wxss
new file mode 100644
index 00000000..8bb36789
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/mold/index.wxss
@@ -0,0 +1 @@
+.mold-page.data-v-00ca4dc0{min-height:100vh;background:#f5f5f5}.custom-navbar.data-v-00ca4dc0{background:linear-gradient(to right,#ffcfde,#ffa6c4)}.custom-navbar__content.data-v-00ca4dc0{display:flex;align-items:center;justify-content:center}.custom-navbar__title.data-v-00ca4dc0{font-size:34rpx;font-weight:700;color:#333}.search-bar.data-v-00ca4dc0{background:#fff;padding:16rpx 24rpx}.search-bar__input.data-v-00ca4dc0{background:#f5f5f5;border-radius:32rpx;padding:16rpx 24rpx;font-size:26rpx;color:#333}.mold-list.data-v-00ca4dc0{padding:16rpx}.mold-card.data-v-00ca4dc0{background:#fff;border-radius:16rpx;padding:24rpx;margin-bottom:16rpx}.mold-card__name.data-v-00ca4dc0{font-size:30rpx;font-weight:700;color:#333;display:block;margin-bottom:16rpx}.mold-card__images.data-v-00ca4dc0{white-space:nowrap;margin-bottom:12rpx}.mold-card__img.data-v-00ca4dc0{width:200rpx;height:200rpx;border-radius:8rpx;margin-right:12rpx;display:inline-block}.mold-card__no-img.data-v-00ca4dc0{height:200rpx;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:8rpx;color:#999;font-size:26rpx;margin-bottom:12rpx}.mold-card__footer.data-v-00ca4dc0{display:flex;gap:16rpx}.mold-card__tag.data-v-00ca4dc0{font-size:22rpx;color:#999;background:#f5f5f5;padding:4rpx 12rpx;border-radius:4rpx}.empty-tip.data-v-00ca4dc0{text-align:center;padding:80rpx 0;color:#999;font-size:28rpx}.empty-tip__contact.data-v-00ca4dc0{margin-top:20rpx;color:#e4393c;font-size:26rpx}.loading-tip.data-v-00ca4dc0{text-align:center;padding:60rpx 0;color:#999;font-size:28rpx}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.js
new file mode 100644
index 00000000..6b09ee17
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../api/order.js"),n=require("../../store/order.js"),s=require("../../utils/request.js"),o=e.defineComponent({__name:"detail",setup(o){const i=n.useOrderStore(),c=e.ref(null),r=e.ref([]),u=e.ref(0),l=e.ref(20),d=e.ref(44);try{const t=e.index.getSystemInfoSync();l.value=t.statusBarHeight||20;const a=e.index.getMenuButtonBoundingClientRect();d.value=2*(a.top-(t.statusBarHeight||20))+a.height}catch{}function p(){e.index.navigateBack({delta:1})}function v(e){return e?e.startsWith("http")?e:s.BASE_URL+e:""}function g(e){var t,a;const n=null==(t=e.product)?void 0:t.bannerImages;if(n&&n.length>0)return v(n[0]);const s=null==(a=e.product)?void 0:a.thumb;return s?v(s):""}async function m(t){try{const e=await a.getOrderDetail(t);c.value=e,r.value=e.items||[],i.setCurrentOrder(e)}catch{e.index.showToast({title:"加载订单失败",icon:"none"})}}async function h(){c.value&&e.index.showModal({title:"提示",content:"确定要取消该订单吗?",success:async t=>{if(t.confirm&&c.value)try{await a.cancelOrder(c.value.id),c.value.status="cancelled",i.updateOrderStatus(c.value.id,"cancelled"),e.index.showToast({title:"订单已取消",icon:"success"})}catch{e.index.showToast({title:"取消订单失败",icon:"none"})}}})}return e.onMounted((()=>{var e;const t=getCurrentPages(),a=t[t.length-1];u.value=Number(null==(e=a.options)?void 0:e.id),u.value&&m(u.value)})),e.onShow((()=>{u.value&&m(u.value)})),(a,n)=>e.e({a:c.value},c.value?e.e({b:t._imports_0$2,c:e.o(p),d:d.value+"px",e:l.value+"px",f:l.value+d.value+"px",g:e.f(r.value,((t,a,n)=>e.e({a:g(t),b:e.t(t.product.name),c:t.specData.modelName},t.specData.modelName?{d:e.t(t.specData.modelName)}:{},{e:t.specData.fineness},t.specData.fineness?{f:e.t(t.specData.fineness)}:{},{g:t.specData.mainStone},t.specData.mainStone?{h:e.t(t.specData.mainStone)}:{},{i:t.specData.ringSize},t.specData.ringSize?{j:e.t(t.specData.ringSize)}:{},{k:t.specData.goldTotalWeight},t.specData.goldTotalWeight?{l:e.t(t.specData.goldTotalWeight)}:{},{m:t.specData.goldNetWeight},t.specData.goldNetWeight?{n:e.t(t.specData.goldNetWeight)}:{},{o:e.t(t.unitPrice),p:e.t(t.quantity),q:t.id}))),h:e.t(c.value.orderNo),i:e.t(c.value.totalPrice),j:"pending"===c.value.status},"pending"===c.value.status?{k:e.o(h)}:{},{l:t._imports_1$2,m:e.t(c.value.receiverAddress||"我的地址"),n:t._imports_2$4,o:e.t(c.value.receiverPhone||"我的手机号"),p:e.t(c.value.totalPrice),q:e.o(((...e)=>a.contactService&&a.contactService(...e)))}):{})}}),i=e._export_sfc(o,[["__scopeId","data-v-52b83eb4"]]);wx.createPage(i);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.json
new file mode 100644
index 00000000..ced5b279
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.json
@@ -0,0 +1,4 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.wxml
new file mode 100644
index 00000000..93009a17
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.wxml
@@ -0,0 +1 @@
+订单详情{{item.b}}款号:{{item.d}}商品型号:{{item.f}}成色:{{item.h}}主石:{{item.j}}手寸:{{item.l}}金料总重:{{item.n}}¥{{item.o}}元×{{item.p}}订单号{{h}}商品价格总计:¥{{i}}您已成功下单!客服电话(微信): 15920028399交易方式: 门店交易、微信、支付宝、银行卡转账公司地址: 水贝二路贝丽花园21栋1楼叶生珠宝请取消订单{{m}}{{o}}合计:¥{{p}}联系客服
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.wxss
new file mode 100644
index 00000000..f349dfea
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/detail.wxss
@@ -0,0 +1 @@
+.order-detail.data-v-52b83eb4{min-height:100vh;background:#f5f5f5;padding-bottom:130rpx}.custom-navbar.data-v-52b83eb4{background:linear-gradient(to right,#ffcfde,#ffa6c4);position:fixed;top:0;left:0;right:0;z-index:100}.custom-navbar__content.data-v-52b83eb4{display:flex;align-items:center;padding:0 24rpx}.custom-navbar__back.data-v-52b83eb4{width:44rpx;height:44rpx}.custom-navbar__title.data-v-52b83eb4{flex:1;text-align:center;font-size:34rpx;font-weight:700;color:#333}.custom-navbar__placeholder.data-v-52b83eb4{width:44rpx}.section.data-v-52b83eb4{background:#fff;margin:20rpx 24rpx;border-radius:16rpx;padding:24rpx}.order-item.data-v-52b83eb4{display:flex;padding:16rpx 0}.order-item+.order-item.data-v-52b83eb4{border-top:1rpx solid #f0f0f0}.order-item__img.data-v-52b83eb4{width:180rpx;height:180rpx;border-radius:12rpx;flex-shrink:0;background:#f5f5f5}.order-item__info.data-v-52b83eb4{flex:1;margin-left:20rpx;display:flex;flex-direction:column;justify-content:space-between}.order-item__name.data-v-52b83eb4{font-size:30rpx;font-weight:700;color:#333}.order-item__specs.data-v-52b83eb4{margin-top:12rpx;font-size:24rpx;color:#999}.spec-row.data-v-52b83eb4{display:flex;gap:40rpx;line-height:1.8}.spec-row text.data-v-52b83eb4{min-width:200rpx}.order-item__bottom.data-v-52b83eb4{display:flex;justify-content:space-between;align-items:center;margin-top:12rpx}.order-item__price.data-v-52b83eb4{font-size:32rpx;color:#e4393c;font-weight:700}.order-item__qty.data-v-52b83eb4{font-size:26rpx;color:#999}.info-row.data-v-52b83eb4{display:flex;justify-content:space-between;align-items:center;padding:16rpx 0;border-bottom:1rpx solid #f5f5f5}.info-row.data-v-52b83eb4:last-child{border-bottom:none}.info-label.data-v-52b83eb4{font-size:28rpx;color:#333}.info-value.data-v-52b83eb4{font-size:28rpx;color:#999}.tip-section.data-v-52b83eb4{margin-top:20rpx}.tip-section__title.data-v-52b83eb4{font-size:30rpx;color:#ff6d9b;font-weight:700;display:block;margin-bottom:20rpx}.tip-section__body.data-v-52b83eb4{display:flex;flex-direction:column;gap:12rpx;font-size:26rpx;color:#333;line-height:1.6}.tip-section__footer.data-v-52b83eb4{display:block;margin-top:20rpx;font-size:26rpx;color:#333}.cancel-section.data-v-52b83eb4{margin-top:20rpx;text-align:center;padding:0}.cancel-btn.data-v-52b83eb4{display:block;padding:28rpx 0;font-size:30rpx;color:#333}.receiver-section.data-v-52b83eb4{background:#fff;margin:20rpx 24rpx;border-radius:16rpx;padding:24rpx}.receiver-row.data-v-52b83eb4{display:flex;align-items:center;gap:12rpx;padding:12rpx 0;font-size:28rpx;color:#333}.receiver-icon.data-v-52b83eb4{width:36rpx;height:36rpx;flex-shrink:0}.bottom-bar.data-v-52b83eb4{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:20rpx 32rpx;padding-bottom:calc(20rpx + env(safe-area-inset-bottom));box-shadow:0 -2rpx 10rpx rgba(0,0,0,.05);display:flex;align-items:center;justify-content:flex-end;gap:30rpx}.bottom-bar__left.data-v-52b83eb4{display:flex;align-items:baseline}.bottom-bar__label.data-v-52b83eb4{font-size:26rpx;color:#333}.bottom-bar__price.data-v-52b83eb4{font-size:44rpx;color:#ff6d9b;font-weight:700}.bottom-bar__btn.data-v-52b83eb4{background:#ff6d9b;color:#fff;font-size:30rpx;font-weight:500;padding:22rpx 56rpx;border-radius:44rpx;border:none;line-height:1.4}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.js
new file mode 100644
index 00000000..20461be9
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../api/order.js"),r=require("../../store/order.js"),n=e.defineComponent({__name:"list",setup(n){const o=r.useOrderStore(),i=e.ref([]),u=e.ref(!1),s=e.ref(20),d=e.ref(44);try{const t=e.index.getSystemInfoSync();s.value=t.statusBarHeight||20;const a=e.index.getMenuButtonBoundingClientRect();d.value=2*(a.top-(t.statusBarHeight||20))+a.height}catch{}function l(){e.index.navigateBack({delta:1})}function c(e){const t=new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}async function g(){u.value=!0;try{const e=await a.getOrderList();i.value=e,o.setOrders(e)}catch{e.index.showToast({title:"加载订单失败",icon:"none"})}finally{u.value=!1}}return e.onMounted((()=>{g()})),e.onShow((()=>{g()})),(a,r)=>e.e({a:t._imports_0$2,b:e.o(l),c:d.value+"px",d:s.value+"px",e:s.value+d.value+"px",f:0===i.value.length&&!u.value},(0!==i.value.length||u.value,{}),{g:e.f(i.value,((t,a,r)=>({a:e.t(t.orderNo),b:e.t(c(t.createdAt)),c:e.t(t.totalPrice),d:t.id,e:e.o((a=>{return r=t.id,void e.index.navigateTo({url:`/pages/order/detail?id=${r}`});var r}),t.id)}))),h:u.value},(u.value,{}))}}),o=e._export_sfc(n,[["__scopeId","data-v-edaf40f5"]]);wx.createPage(o);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.json
new file mode 100644
index 00000000..ced5b279
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.json
@@ -0,0 +1,4 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.wxml
new file mode 100644
index 00000000..8d4b7ab5
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.wxml
@@ -0,0 +1 @@
+我的订单暂无订单{{order.b}}¥{{order.c}}加载中...
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.wxss
new file mode 100644
index 00000000..66606cea
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/list.wxss
@@ -0,0 +1 @@
+.order-list.data-v-edaf40f5{min-height:100vh;background:#f5f5f5;padding:16rpx}.custom-navbar.data-v-edaf40f5{background:linear-gradient(to right,#ffcfde,#ffa6c4);position:fixed;top:0;left:0;right:0;z-index:100}.custom-navbar__content.data-v-edaf40f5{display:flex;align-items:center;padding:0 24rpx}.custom-navbar__back.data-v-edaf40f5{width:44rpx;height:44rpx}.custom-navbar__title.data-v-edaf40f5{flex:1;text-align:center;font-size:34rpx;font-weight:700;color:#333}.custom-navbar__placeholder.data-v-edaf40f5{width:44rpx}.order-card.data-v-edaf40f5{background:#fff;border-radius:12rpx;padding:24rpx;margin-bottom:16rpx}.order-card__header.data-v-edaf40f5{display:flex;justify-content:space-between;align-items:center;margin-bottom:16rpx}.order-card__no.data-v-edaf40f5{font-size:26rpx;color:#666}.order-card__body.data-v-edaf40f5{display:flex;justify-content:space-between;align-items:center}.order-card__time.data-v-edaf40f5{font-size:24rpx;color:#999}.order-card__price.data-v-edaf40f5{font-size:32rpx;color:#e4393c;font-weight:700}.empty-tip.data-v-edaf40f5,.loading-tip.data-v-edaf40f5{text-align:center;padding:120rpx 0;color:#999;font-size:28rpx}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.js
new file mode 100644
index 00000000..da8ad3d4
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../store/cart.js"),i=require("../../api/order.js"),r=require("../../utils/request.js"),o=e.defineComponent({__name:"submit",setup(o){const u=a.useCartStore(),s=e.ref(0),n=e.ref(44),c=e.ref(""),l=e.ref(""),d=e.ref(""),v=e.ref(""),p=e.ref(!1),m=e.ref(!1);function f(){e.index.navigateBack()}const h=e.computed((()=>u.checkedItems)),_=e.computed((()=>h.value.reduce(((e,t)=>e+t.specData.totalPrice*t.quantity),0))),g=e.computed((()=>p.value&&!m.value));async function x(){if(g.value)if(c.value.trim())if(l.value.trim())if(d.value.trim()){m.value=!0;try{const t=await i.createOrder({items:h.value.map((e=>({productId:e.productId,specDataId:e.specDataId,quantity:e.quantity,unitPrice:e.specData.totalPrice}))),receiverName:c.value.trim(),receiverPhone:l.value.trim(),receiverAddress:d.value.trim()});for(const e of h.value)u.removeFromCart(e.id);e.index.redirectTo({url:`/pages/order/detail?id=${t.id}`})}catch{e.index.showToast({title:"提交订单失败,请重试",icon:"none"})}finally{m.value=!1}}else e.index.showToast({title:"请输入收货地址",icon:"none"});else e.index.showToast({title:"请输入联系电话",icon:"none"});else e.index.showToast({title:"请输入收货人姓名",icon:"none"})}return e.onMounted((()=>{const t=e.index.getSystemInfoSync();s.value=t.statusBarHeight||0;const a=e.index.getMenuButtonBoundingClientRect();n.value=a.height+2*(a.top-(t.statusBarHeight||0))})),(a,i)=>({a:t._imports_0$2,b:e.o(f),c:n.value+"px",d:s.value+"px",e:s.value+n.value+"px",f:t._imports_1$1,g:t._imports_2$3,h:c.value,i:e.o((e=>c.value=e.detail.value)),j:l.value,k:e.o((e=>l.value=e.detail.value)),l:d.value,m:e.o((e=>d.value=e.detail.value)),n:v.value,o:e.o((e=>v.value=e.detail.value)),p:t._imports_3,q:e.f(h.value,((t,a,i)=>{var o,u;return{a:(u=t.product.thumb||(null==(o=t.product.bannerImages)?void 0:o[0])||"",u?u.startsWith("http")?u:r.BASE_URL+u:""),b:e.t(t.product.name),c:e.t(t.specData.modelName||"B2022"),d:e.t(t.specData.fineness||"2606"),e:e.t(t.specData.fineness||"30"),f:e.t(t.specData.mainStone||"13.00#"),g:e.t(t.specData.ringSize||"13.00#"),h:e.t(t.specData.goldTotalWeight||"236"),i:e.t(t.specData.totalPrice),j:t.id}})),r:p.value?"/static/ic_check_s.png":"/static/ic_check.png",s:e.o((e=>p.value=!p.value)),t:e.t(_.value),v:g.value?"":1,w:e.o(x)})}}),u=e._export_sfc(o,[["__scopeId","data-v-2fe44f74"]]);wx.createPage(u);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.json
new file mode 100644
index 00000000..ced5b279
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.json
@@ -0,0 +1,4 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.wxml
new file mode 100644
index 00000000..141edd27
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.wxml
@@ -0,0 +1 @@
+订单提交叶生珠宝-空托之城广东省深圳市罗湖区水贝2路贝丽花园21栋108#生珠宝15920028399联系电话:空托之城 叶生15920028399姓名电话地址备注上班时间9:30-20:30分,下单15分钟即可出货。镶嵌主石每天18:00前,正常情况当天出货。{{item.b}}款号:{{item.c}}商品型号:{{item.d}}成色:{{item.e}}主石:{{item.f}}手寸:{{item.g}}金料总重:{{item.h}}¥{{item.i}}元因珠宝产品属于贵重物品,一旦出货,产品无质量问题不支持退换!合计:¥{{t}} 开始下单
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.wxss
new file mode 100644
index 00000000..ec968df1
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/order/submit.wxss
@@ -0,0 +1 @@
+.order-submit.data-v-2fe44f74{min-height:100vh;background:#f5f5f5;padding-bottom:140rpx}.navbar.data-v-2fe44f74{position:fixed;top:0;left:0;right:0;z-index:100;background:linear-gradient(135deg,#ffcfde,#ffa6c4)}.navbar__content.data-v-2fe44f74{display:flex;align-items:center;justify-content:space-between;padding:0 24rpx}.navbar__back.data-v-2fe44f74{padding:10rpx}.navbar__back-icon.data-v-2fe44f74{width:40rpx;height:40rpx}.navbar__title.data-v-2fe44f74{font-size:34rpx;font-weight:600;color:#000}.navbar__placeholder.data-v-2fe44f74{width:60rpx}.address-section.data-v-2fe44f74{background:#fff;margin:16rpx 24rpx;padding:24rpx;border-radius:16rpx}.address-section__header.data-v-2fe44f74{display:flex;align-items:center;margin-bottom:16rpx}.address-section__icon.data-v-2fe44f74{width:32rpx;height:32rpx;margin-right:8rpx}.address-section__title.data-v-2fe44f74{font-size:28rpx;color:#e91e63;font-weight:600}.address-section__content.data-v-2fe44f74{display:flex;flex-direction:column;gap:8rpx}.address-section__name.data-v-2fe44f74{font-size:28rpx;color:#333;font-weight:600}.address-section__detail.data-v-2fe44f74,.address-section__phone.data-v-2fe44f74,.address-section__contact.data-v-2fe44f74{font-size:24rpx;color:#666;line-height:36rpx}.info-section.data-v-2fe44f74{background:#fff;margin:0 24rpx 16rpx;padding:24rpx;border-radius:16rpx}.info-section__header.data-v-2fe44f74{display:flex;align-items:center;margin-bottom:20rpx}.info-section__icon.data-v-2fe44f74{width:32rpx;height:32rpx;margin-right:8rpx}.info-section__title.data-v-2fe44f74{font-size:28rpx;color:#e91e63;font-weight:600;margin-right:12rpx}.info-section__subtitle.data-v-2fe44f74{font-size:24rpx;color:#999}.form-item.data-v-2fe44f74{display:flex;align-items:center;padding:20rpx 0;border-bottom:1rpx solid #f0f0f0}.form-item.data-v-2fe44f74:last-child{border-bottom:none}.form-item__label.data-v-2fe44f74{font-size:26rpx;color:#333;width:100rpx;flex-shrink:0}.form-item__label.required.data-v-2fe44f74:before{content:"*";color:#e91e63;margin-right:4rpx}.form-item__input.data-v-2fe44f74{flex:1;font-size:26rpx;color:#333}.delivery-section.data-v-2fe44f74{background:#fff;margin:0 24rpx 16rpx;padding:24rpx;border-radius:16rpx}.delivery-section__header.data-v-2fe44f74{display:flex;align-items:center;margin-bottom:12rpx}.delivery-section__icon.data-v-2fe44f74{width:32rpx;height:32rpx;margin-right:8rpx}.delivery-section__title.data-v-2fe44f74{font-size:28rpx;color:#e91e63;font-weight:600}.delivery-section__content.data-v-2fe44f74{font-size:24rpx;color:#e91e63;line-height:36rpx}.product-section.data-v-2fe44f74{background:#fff;margin:0 24rpx 16rpx;padding:24rpx;border-radius:16rpx}.product-item.data-v-2fe44f74{display:flex;gap:20rpx}.product-item__img.data-v-2fe44f74{width:160rpx;height:160rpx;border-radius:12rpx;flex-shrink:0;background:#f5f5f5}.product-item__info.data-v-2fe44f74{flex:1;display:flex;flex-direction:column}.product-item__name.data-v-2fe44f74{font-size:28rpx;color:#333;font-weight:600;margin-bottom:8rpx}.product-item__specs.data-v-2fe44f74{display:grid;grid-template-columns:repeat(2,1fr);gap:8rpx;margin-bottom:12rpx}.product-item__spec.data-v-2fe44f74{font-size:22rpx;color:#666}.product-item__price.data-v-2fe44f74{font-size:30rpx;color:#e91e63;font-weight:700}.agreement.data-v-2fe44f74{background:#fffbe6;margin:0 24rpx 16rpx;padding:20rpx 24rpx;border-radius:16rpx;display:flex;align-items:center}.agreement__checkbox.data-v-2fe44f74{width:32rpx;height:32rpx;margin-right:12rpx;flex-shrink:0}.agreement__text.data-v-2fe44f74{font-size:24rpx;color:#333;line-height:36rpx}.submit-bar.data-v-2fe44f74{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:16rpx 24rpx;box-shadow:0 -2rpx 10rpx rgba(0,0,0,.05);display:flex;align-items:center;justify-content:space-between}.submit-bar__left.data-v-2fe44f74{display:flex;align-items:baseline}.submit-bar__label.data-v-2fe44f74{font-size:26rpx;color:#333}.submit-bar__price.data-v-2fe44f74{font-size:36rpx;color:#e91e63;font-weight:700}.submit-bar__btn.data-v-2fe44f74{background:linear-gradient(135deg,#ff6d9b,#ff4081);color:#fff;padding:20rpx 60rpx;border-radius:44rpx;font-size:28rpx;font-weight:600}.submit-bar__btn--disabled.data-v-2fe44f74{background:#ccc;pointer-events:none}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.js
new file mode 100644
index 00000000..6b6e83de
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../api/product.js"),n=require("../../utils/request.js");Math||(o+s+u+r)();const o=()=>"../../components/BannerSwiper.js",s=()=>"../../components/ShippingNotice.js",u=()=>"../../components/SpecPanel.js",r=()=>"../../components/CustomerServiceBtn.js",i=e.defineComponent({__name:"detail",setup(o){const s=e.ref(null),u=e.ref(!1),r=e.ref(!1),i=e.ref(20),l=e.ref(44);try{const t=e.index.getSystemInfoSync();i.value=t.statusBarHeight||20;const a=e.index.getMenuButtonBoundingClientRect();l.value=2*(a.top-(t.statusBarHeight||20))+a.height}catch{}function c(){e.index.navigateBack({delta:1})}function v(){e.index.switchTab({url:"/pages/cart/index"})}return e.onMounted((()=>{var t;const n=getCurrentPages(),o=n[n.length-1],u=Number(null==(t=o.options)?void 0:t.id);u&&async function(t){try{s.value=await a.getProductDetail(t)}catch{e.index.showToast({title:"加载商品失败",icon:"none"})}}(u)})),(a,o)=>e.e({a:s.value},s.value?e.e({b:t._imports_0$2,c:e.o(c),d:l.value+"px",e:i.value+"px",f:i.value+l.value+"px",g:e.p({images:s.value.bannerImages||[],video:s.value.bannerVideo}),h:e.t(s.value.name),i:e.t(s.value.basePrice),j:e.t(s.value.styleNo),k:e.t(s.value.stock),l:e.t(s.value.loss),m:e.t(s.value.laborCost),n:e.f(s.value.detailImages||[],((e,t,a)=>{return{a:t,b:(o=e,o?o.startsWith("http")?o:n.BASE_URL+o:"")};var o})),o:t._imports_2$1,p:e.o((e=>r.value=!0)),q:t._imports_2$2,r:e.o(v),s:e.o((e=>u.value=!0)),t:u.value},u.value?{v:e.o((e=>u.value=!1)),w:e.p({"product-id":s.value.id})}:{},{x:r.value},r.value?{y:e.o((e=>r.value=!1)),z:e.p({mode:"qrcode"})}:{}):{})}}),l=e._export_sfc(i,[["__scopeId","data-v-fa8c3d6a"]]);wx.createPage(l);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.json
new file mode 100644
index 00000000..dec6d7dc
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.json
@@ -0,0 +1,9 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {
+ "banner-swiper": "../../components/BannerSwiper",
+ "shipping-notice": "../../components/ShippingNotice",
+ "spec-panel": "../../components/SpecPanel",
+ "customer-service-btn": "../../components/CustomerServiceBtn"
+ }
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.wxml
new file mode 100644
index 00000000..52589fa5
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.wxml
@@ -0,0 +1 @@
+商品详情{{h}}¥{{i}}元款 号{{j}}库存{{k}}损 耗{{l}}%工费¥{{m}}商品详情客服购物车空托—查看详细参数
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.wxss
new file mode 100644
index 00000000..d9247dfc
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/product/detail.wxss
@@ -0,0 +1 @@
+.product-detail.data-v-fa8c3d6a{padding-bottom:140rpx;background:#f5f5f5}.custom-navbar.data-v-fa8c3d6a{background:linear-gradient(to right,#ffcfde,#ffa6c4);position:fixed;top:0;left:0;right:0;z-index:100}.custom-navbar__content.data-v-fa8c3d6a{display:flex;align-items:center;padding:0 24rpx}.custom-navbar__back.data-v-fa8c3d6a{width:44rpx;height:44rpx}.custom-navbar__title.data-v-fa8c3d6a{flex:1;text-align:center;font-size:34rpx;font-weight:700;color:#333}.custom-navbar__placeholder.data-v-fa8c3d6a{width:44rpx}.banner-wrapper.data-v-fa8c3d6a{margin:20rpx 24rpx 0;border-radius:20rpx;overflow:hidden}.base-info.data-v-fa8c3d6a{background:#fff;margin:20rpx 24rpx 0;border-radius:20rpx;padding:30rpx}.base-info__top.data-v-fa8c3d6a{display:flex;justify-content:space-between;align-items:center}.base-info__name.data-v-fa8c3d6a{font-size:32rpx;color:#333;font-weight:600;flex:1;margin-right:20rpx}.base-info__price.data-v-fa8c3d6a{display:flex;align-items:baseline;color:#ff6d9b;flex-shrink:0}.base-info__price-symbol.data-v-fa8c3d6a{font-size:30rpx;font-weight:700}.base-info__price-num.data-v-fa8c3d6a{font-size:48rpx;font-weight:700}.base-info__price-unit.data-v-fa8c3d6a{font-size:24rpx;margin-left:4rpx}.base-info__attrs.data-v-fa8c3d6a{margin-top:20rpx;border-top:1rpx solid #f0f0f0;padding-top:20rpx}.attr-row.data-v-fa8c3d6a{display:flex;align-items:center;padding:8rpx 0}.attr-label.data-v-fa8c3d6a{font-size:26rpx;color:#999;width:80rpx;flex-shrink:0;letter-spacing:4rpx}.attr-value.data-v-fa8c3d6a{font-size:28rpx;color:#333;min-width:180rpx;margin-right:40rpx}.detail-section.data-v-fa8c3d6a{background:#fff;margin:20rpx 24rpx 0;border-radius:20rpx;padding:30rpx}.detail-section__title.data-v-fa8c3d6a{text-align:center;font-size:30rpx;color:#333;font-weight:600;padding-bottom:24rpx;border-bottom:1rpx solid #eee;margin-bottom:24rpx}.detail-section__images.data-v-fa8c3d6a{display:flex;flex-direction:column;gap:8rpx}.detail-section__img.data-v-fa8c3d6a{width:100%;border-radius:12rpx}.bottom-bar.data-v-fa8c3d6a{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:16rpx 24rpx;padding-bottom:calc(16rpx + env(safe-area-inset-bottom));box-shadow:0 -2rpx 10rpx rgba(0,0,0,.05);display:flex;align-items:center;gap:20rpx}.bottom-bar__icons.data-v-fa8c3d6a{display:flex;gap:32rpx;flex-shrink:0}.bottom-bar__icon-item.data-v-fa8c3d6a{display:flex;flex-direction:column;align-items:center;gap:4rpx}.bottom-bar__icon-img.data-v-fa8c3d6a{width:44rpx;height:44rpx}.bottom-bar__icon-text.data-v-fa8c3d6a{font-size:20rpx;color:#666}.bottom-bar__main-btn.data-v-fa8c3d6a{flex:1;background:linear-gradient(to right,#f5a0b8,#e4393c);color:#fff;text-align:center;padding:24rpx 0;border-radius:44rpx;font-size:30rpx;font-weight:500}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.js b/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.js
new file mode 100644
index 00000000..b34e9498
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.js
@@ -0,0 +1 @@
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../api/product.js"),l=require("../../utils/request.js"),u=e.defineComponent({__name:"index",setup(u){const n=e.ref(""),o=e.ref([]),r=e.ref(!1),s=e.ref(0),i=e.ref(1),v=e.ref(!1),c=e.ref(20),d=e.ref(44);try{const t=e.index.getSystemInfoSync();c.value=t.statusBarHeight||20;const a=e.index.getMenuButtonBoundingClientRect();d.value=2*(a.top-(t.statusBarHeight||20))+a.height}catch{}function g(){e.index.navigateBack({delta:1})}return e.onMounted((()=>{var t;const l=getCurrentPages(),u=l[l.length-1];n.value=decodeURIComponent((null==(t=u.options)?void 0:t.keyword)||""),n.value&&async function(t=!1){t&&(i.value=1,o.value=[]),r.value=!0;try{const e=await a.getProducts({page:i.value,pageSize:20,keyword:n.value});t?o.value=e.list:o.value.push(...e.list),s.value=e.total||e.list.length,v.value=e.list.length<20}catch{e.index.showToast({title:"搜索失败",icon:"none"})}finally{r.value=!1}}(!0)})),(a,u)=>e.e({a:t._imports_0$2,b:e.o(g),c:e.t(n.value),d:d.value+"px",e:c.value+"px",f:c.value+d.value+"px",g:!r.value&&o.value.length>0},!r.value&&o.value.length>0?{h:e.t(s.value)}:{},{i:e.f(o.value,((t,a,u)=>{return e.e({a:(n=t.thumb||t.bannerImages&&t.bannerImages[0]||"",n?n.startsWith("http")?n:l.BASE_URL+n:""),b:e.t(t.name),c:t.styleNo},t.styleNo?{d:e.t(t.styleNo)}:{},{e:t.barcode},t.barcode?{f:e.t(t.barcode)}:{},{g:e.t(t.basePrice),h:e.t(t.stock||1),i:t.id,j:e.o((a=>{return l=t.id,void e.index.navigateTo({url:`/pages/product/detail?id=${l}`});var l}),t.id)});var n})),j:r.value},(r.value,{}),{k:!r.value&&v.value&&o.value.length>0},(!r.value&&v.value&&o.value.length,{}),{l:!r.value&&0===o.value.length},r.value||0!==o.value.length?{}:{m:t._imports_1$3})}}),n=e._export_sfc(u,[["__scopeId","data-v-c51e1679"]]);wx.createPage(n);
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.json b/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.json
new file mode 100644
index 00000000..ced5b279
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.wxml b/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.wxml
new file mode 100644
index 00000000..91b9606a
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.wxml
@@ -0,0 +1 @@
+全局搜索:{{c}}共计搜到:{{h}}条结果{{item.b}}款号:{{item.d}}条码号:{{item.f}}¥{{item.g}}元×{{item.h}}加载中...没有更多商品了没有搜索到相关商品
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.wxss b/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.wxss
new file mode 100644
index 00000000..5f6f32a9
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/pages/search/index.wxss
@@ -0,0 +1 @@
+.search-page.data-v-c51e1679{min-height:100vh;background:#f5f5f5}.custom-navbar.data-v-c51e1679{background:linear-gradient(to right,#ffcfde,#ffa6c4);position:fixed;top:0;left:0;right:0;z-index:100}.custom-navbar__content.data-v-c51e1679{display:flex;align-items:center;padding:0 24rpx}.custom-navbar__back.data-v-c51e1679{width:44rpx;height:44rpx}.custom-navbar__title.data-v-c51e1679{flex:1;text-align:center;font-size:34rpx;font-weight:700;color:#333}.custom-navbar__placeholder.data-v-c51e1679{width:44rpx}.result-tip.data-v-c51e1679{text-align:center;padding:20rpx 0;font-size:26rpx;color:#ff6d9b}.result-list.data-v-c51e1679{padding:0 24rpx}.result-item.data-v-c51e1679{display:flex;background:#fff;border-radius:12rpx;padding:24rpx;margin-bottom:16rpx}.result-item__img.data-v-c51e1679{width:160rpx;height:160rpx;border-radius:12rpx;flex-shrink:0;background:#f5f5f5}.result-item__info.data-v-c51e1679{flex:1;margin-left:20rpx;display:flex;flex-direction:column;justify-content:space-between}.result-item__name.data-v-c51e1679{font-size:30rpx;font-weight:700;color:#333}.result-item__meta.data-v-c51e1679{display:flex;gap:24rpx;font-size:24rpx;color:#999;margin-top:8rpx}.result-item__bottom.data-v-c51e1679{display:flex;justify-content:space-between;align-items:center;margin-top:12rpx}.result-item__price.data-v-c51e1679{font-size:32rpx;color:#ff6d9b;font-weight:700}.result-item__stock.data-v-c51e1679{font-size:26rpx;color:#999}.empty-tip.data-v-c51e1679{text-align:center;padding:120rpx 0 60rpx;color:#999;font-size:28rpx;display:flex;flex-direction:column;align-items:center}.empty-tip__img.data-v-c51e1679{width:300rpx;height:300rpx;margin-bottom:24rpx}.loading-tip.data-v-c51e1679{text-align:center;padding:60rpx 0;color:#999;font-size:28rpx}
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/project.config.json b/miniprogram/unpackage/dist/build/mp-weixin/project.config.json
new file mode 100644
index 00000000..de86aeb8
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/project.config.json
@@ -0,0 +1,37 @@
+{
+ "description": "项目配置文件。",
+ "packOptions": {
+ "ignore": []
+ },
+ "setting": {
+ "urlCheck": false,
+ "es6": true,
+ "postcss": false,
+ "minified": true,
+ "newFeature": true,
+ "bigPackageSizeSupport": true,
+ "minifyWXML": true
+ },
+ "compileType": "miniprogram",
+ "libVersion": "",
+ "appid": "wx58b02b73d9c26c10",
+ "projectname": "钻石流",
+ "condition": {
+ "search": {
+ "current": -1,
+ "list": []
+ },
+ "conversation": {
+ "current": -1,
+ "list": []
+ },
+ "game": {
+ "current": -1,
+ "list": []
+ },
+ "miniprogram": {
+ "current": -1,
+ "list": []
+ }
+ }
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_about.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_about.png
new file mode 100644
index 00000000..b5330e9c
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_about.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_address.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_address.png
new file mode 100644
index 00000000..6f053070
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_address.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_address2.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_address2.png
new file mode 100644
index 00000000..c75e2ae9
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_address2.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_agreement1.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_agreement1.png
new file mode 100644
index 00000000..5987085d
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_agreement1.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_agreement2.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_agreement2.png
new file mode 100644
index 00000000..045086c7
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_agreement2.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_back.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_back.png
new file mode 100644
index 00000000..0166203b
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_back.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_check.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_check.png
new file mode 100644
index 00000000..e2b45d3d
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_check.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_check_s.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_check_s.png
new file mode 100644
index 00000000..7328e50c
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_check_s.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_customer.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_customer.png
new file mode 100644
index 00000000..5ed80093
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_customer.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_empty.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_empty.png
new file mode 100644
index 00000000..2b204048
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_empty.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_jz.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_jz.png
new file mode 100644
index 00000000..c52b7f41
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_jz.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_kf.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_kf.png
new file mode 100644
index 00000000..e228cc35
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_kf.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_loginout.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_loginout.png
new file mode 100644
index 00000000..57adf2e4
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_loginout.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_none.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_none.png
new file mode 100644
index 00000000..d0bc5bae
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_none.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_notice.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_notice.png
new file mode 100644
index 00000000..4c940a83
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_notice.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_phone.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_phone.png
new file mode 100644
index 00000000..006cd037
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_phone.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_search.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_search.png
new file mode 100644
index 00000000..b0c04b82
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_search.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_time.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_time.png
new file mode 100644
index 00000000..51f038c0
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_time.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/ic_tip.png b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_tip.png
new file mode 100644
index 00000000..1c1bbb02
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/ic_tip.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/logo.png b/miniprogram/unpackage/dist/build/mp-weixin/static/logo.png
new file mode 100644
index 00000000..4a8c9549
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/logo.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/tab/car.png b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/car.png
new file mode 100644
index 00000000..916fb243
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/car.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/tab/car_s.png b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/car_s.png
new file mode 100644
index 00000000..edce938b
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/car_s.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/tab/home.png b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/home.png
new file mode 100644
index 00000000..01f41ea2
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/home.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/tab/home_s.png b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/home_s.png
new file mode 100644
index 00000000..5edd73d7
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/home_s.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/tab/me.png b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/me.png
new file mode 100644
index 00000000..bcd9db9b
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/me.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/tab/me_s.png b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/me_s.png
new file mode 100644
index 00000000..b435ed47
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/me_s.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/tab/model_house.png b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/model_house.png
new file mode 100644
index 00000000..87dfc40d
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/model_house.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/static/tab/model_house_s.png b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/model_house_s.png
new file mode 100644
index 00000000..b344f153
Binary files /dev/null and b/miniprogram/unpackage/dist/build/mp-weixin/static/tab/model_house_s.png differ
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/store/cart.js b/miniprogram/unpackage/dist/build/mp-weixin/store/cart.js
new file mode 100644
index 00000000..7c58d2f8
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/store/cart.js
@@ -0,0 +1 @@
+"use strict";const e=require("../common/vendor.js"),t=require("../api/cart.js"),a=e.defineStore("cart",(()=>{const a=e.ref([]),c=e.computed((()=>a.value.filter((e=>e.checked)))),n=e.computed((()=>c.value.reduce(((e,t)=>{var a;return e+((null==(a=t.specData)?void 0:a.totalPrice)||0)*t.quantity}),0)));return{items:a,checkedItems:c,totalAmount:n,fetchCart:async function(){if(e.index.getStorageSync("token"))try{const e=await t.getCartList();a.value=e.map((e=>({id:e.id,userId:0,productId:e.product_id,specDataId:e.spec_data_id,quantity:e.quantity,checked:!0,product:{id:e.product_id,name:e.product_name,basePrice:e.base_price,styleNo:e.style_no,bannerImages:"string"==typeof e.banner_images?JSON.parse(e.banner_images||"[]"):e.banner_images||[],thumb:e.thumb||""},specData:{id:e.spec_data_id,modelName:e.model_name,fineness:e.fineness,mainStone:e.main_stone,ringSize:e.ring_size,goldTotalWeight:e.gold_total_weight||0,totalPrice:e.unit_price||0}})))}catch{}},addToCart:function(e){a.value.push(e),t.addToCart({productId:e.productId,specDataId:e.specDataId,quantity:e.quantity}).catch((()=>{}))},removeFromCart:function(e){const c=a.value.findIndex((t=>t.id===e));-1!==c&&(a.value.splice(c,1),t.deleteCartItem(e).catch((()=>{})))},updateQuantity:function(e,c){const n=a.value.find((t=>t.id===e));n&&(n.quantity=c,t.updateCartItem(e,{quantity:c}).catch((()=>{})))},toggleCheck:function(e){const t=a.value.find((t=>t.id===e));t&&(t.checked=!t.checked)},toggleCheckAll:function(){const e=a.value.every((e=>e.checked));a.value.forEach((t=>{t.checked=!e}))}}}));exports.useCartStore=a;
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/store/order.js b/miniprogram/unpackage/dist/build/mp-weixin/store/order.js
new file mode 100644
index 00000000..199a7dab
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/store/order.js
@@ -0,0 +1 @@
+"use strict";const r=require("../common/vendor.js"),e=require("../api/order.js"),t=r.defineStore("order",(()=>{const t=r.ref([]),n=r.ref(null);return{orders:t,currentOrder:n,setOrders:function(r){t.value=r},setCurrentOrder:function(r){n.value=r},updateOrderStatus:function(r,e){var u;const s=t.value.find((e=>e.id===r));s&&(s.status=e),(null==(u=n.value)?void 0:u.id)===r&&(n.value.status=e)},fetchOrders:async function(){try{const r=await e.getOrderList();t.value=r}catch{}},fetchOrder:async function(r){try{const t=await e.getOrderDetail(r);return n.value=t,t}catch{return null}}}}));exports.useOrderStore=t;
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/store/user.js b/miniprogram/unpackage/dist/build/mp-weixin/store/user.js
new file mode 100644
index 00000000..9f58cf19
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/store/user.js
@@ -0,0 +1 @@
+"use strict";const e=require("../common/vendor.js"),t=require("../api/user.js"),n=e.defineStore("user",(()=>{const n=e.ref(null),s=e.ref(e.index.getStorageSync("token")||""),r=e.ref([]);return{user:n,token:s,addresses:r,setUser:function(e){n.value=e},setToken:function(t){s.value=t,e.index.setStorageSync("token",t)},logout:function(){n.value=null,s.value="",e.index.removeStorageSync("token")},setAddresses:function(e){r.value=e},fetchProfile:async function(){try{const e=await t.getUserProfile();n.value=e}catch{}},fetchAddresses:async function(){try{const e=await t.getAddressList();r.value=e}catch{}}}}));exports.useUserStore=n;
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/utils/calculator.js b/miniprogram/unpackage/dist/build/mp-weixin/utils/calculator.js
new file mode 100644
index 00000000..7a65eb5e
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/utils/calculator.js
@@ -0,0 +1 @@
+"use strict";exports.calculateRing=function(e){!function(e){const t=[["goldWeight","金重"],["mainStoneWeight","主石重"],["sideStoneWeight","副石重"],["lossRate","损耗"],["moldGoldPrice","倒模金价"],["mainStoneUnitPrice","主石单价"],["sideStoneUnitPrice","副石单价"],["sideStoneCount","副石粒数"],["microSettingFee","微镶费"],["mainStoneSettingFee","主石镶费"],["threeDFee","3D起板费"],["basicLaborCost","基本工费"],["otherCost","其他费用"]];for(const[o,i]of t)if(e[o]<0)throw new Error(`${i}不能为负数`)}(e);const t=e.goldWeight-.2*e.mainStoneWeight-.2*e.sideStoneWeight,o=t*e.lossRate,i=o*e.moldGoldPrice,n=e.mainStoneWeight*e.mainStoneUnitPrice,s=e.sideStoneWeight*e.sideStoneUnitPrice,r=e.sideStoneCount*e.microSettingFee;return{netGoldWeight:t,weightWithLoss:o,goldValue:i,mainStoneTotal:n,sideStoneTotal:s,microSettingTotal:r,totalPrice:i+n+s+e.mainStoneSettingFee+r+e.threeDFee+e.basicLaborCost+e.otherCost}};
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/utils/moldSearch.js b/miniprogram/unpackage/dist/build/mp-weixin/utils/moldSearch.js
new file mode 100644
index 00000000..8b7dc20a
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/utils/moldSearch.js
@@ -0,0 +1 @@
+"use strict";exports.searchMolds=function(e,o){const s=o.trim().toLowerCase();return s?e.filter((e=>[e.name,e.styleNo??"",e.barcodeNo??"",e.style??""].some((e=>e.toLowerCase().includes(s))))):e};
diff --git a/miniprogram/unpackage/dist/build/mp-weixin/utils/request.js b/miniprogram/unpackage/dist/build/mp-weixin/utils/request.js
new file mode 100644
index 00000000..de608b48
--- /dev/null
+++ b/miniprogram/unpackage/dist/build/mp-weixin/utils/request.js
@@ -0,0 +1 @@
+"use strict";const e=require("../common/vendor.js"),o="http://192.168.195.15:2850";function t(e){if(null===e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map((e=>t(e)));const o={};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){o[r.replace(/_([a-z])/g,((e,o)=>o.toUpperCase()))]=t(e[r])}return o}function r(r){const{url:s,method:a="GET",data:i,header:c={}}=r,d=e.index.getStorageSync("token")||"";return new Promise(((r,l)=>{e.index.request({url:`${o}${s}`,method:a,data:i,header:{"Content-Type":"application/json",...d?{Authorization:`Bearer ${d}`}:{},...c},success(o){const s=o.statusCode;if(401===s)return e.index.removeStorageSync("token"),e.index.showToast({title:"请重新登录",icon:"none"}),n(),void l(new Error("未授权"));if(s>=200&&s<300){const n=o.data;if(0===n.code){const e=t(n.data);r(e)}else e.index.showToast({title:n.message||"请求失败",icon:"none"}),l(new Error(n.message))}else e.index.showToast({title:"网络异常,请稍后重试",icon:"none"}),l(new Error(`HTTP ${s}`))},fail(o){e.index.showToast({title:"网络异常,请稍后重试",icon:"none"}),l(o)}})}))}function n(){return new Promise(((o,t)=>{e.index.login({provider:"weixin",success:async n=>{if(n.code)try{const t=await r({url:"/api/auth/wx-login",method:"POST",data:{code:n.code}});e.index.setStorageSync("token",t.token),o()}catch(s){console.error("登录接口调用失败:",s),t(s)}else console.error("微信登录获取 code 失败"),t(new Error("获取微信 code 失败"))},fail:e=>{console.error("uni.login 失败:",e),t(e)}})}))}exports.BASE_URL=o,exports.autoLogin=n,exports.del=(e,o)=>r({url:e,method:"DELETE",data:o}),exports.get=(e,o)=>r({url:e,method:"GET",data:o}),exports.post=(e,o)=>r({url:e,method:"POST",data:o}),exports.put=(e,o)=>r({url:e,method:"PUT",data:o});
diff --git a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
index be272370..99301dc9 100644
--- a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
+++ b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
@@ -1 +1 @@
-{"version":3,"file":"assets.js","sources":["static/ic_search.png","static/ic_jz.png","static/ic_kf.png","static/ic_back.png","static/ic_none.png","static/ic_customer.png","static/tab/car.png","static/ic_address.png","static/ic_tip.png","static/ic_time.png","static/ic_address2.png","static/ic_phone.png","static/tab/me_s.png","static/ic_about.png","static/ic_agreement1.png","static/ic_agreement2.png","static/ic_loginout.png","static/ic_empty.png","static/logo.png","static/ic_notice.png"],"sourcesContent":["export default \"__VITE_ASSET__cb299f1c__\"","export default \"__VITE_ASSET__ecc0114d__\"","export default \"__VITE_ASSET__995e2be8__\"","export default \"__VITE_ASSET__a09e4f4f__\"","export default \"__VITE_ASSET__c88a49dc__\"","export default \"__VITE_ASSET__834c867b__\"","export default \"__VITE_ASSET__de453aec__\"","export default \"__VITE_ASSET__2fa96069__\"","export default \"__VITE_ASSET__59ade930__\"","export default \"__VITE_ASSET__7a5d0bff__\"","export default \"__VITE_ASSET__2a259963__\"","export default \"__VITE_ASSET__e2171696__\"","export default \"__VITE_ASSET__0724ec6f__\"","export default \"__VITE_ASSET__53f234dc__\"","export default \"__VITE_ASSET__a736f8f4__\"","export default \"__VITE_ASSET__a25b5e1b__\"","export default \"__VITE_ASSET__d51d50e8__\"","export default \"__VITE_ASSET__b3f7ff5c__\"","export default \"__VITE_ASSET__46719607__\"","export default \"__VITE_ASSET__abe1da0c__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file
+{"version":3,"file":"assets.js","sources":["static/ic_search.png","static/ic_jz.png","static/ic_kf.png","static/ic_back.png","static/ic_none.png","static/ic_customer.png","static/tab/car.png","static/ic_address.png","static/ic_tip.png","static/ic_time.png","static/ic_address2.png","static/ic_phone.png","static/tab/me_s.png","static/ic_about.png","static/ic_agreement1.png","static/ic_agreement2.png","static/ic_loginout.png","static/ic_empty.png","static/logo.png","static/ic_notice.png"],"sourcesContent":["export default \"__VITE_ASSET__cb299f1c__\"","export default \"__VITE_ASSET__ecc0114d__\"","export default \"__VITE_ASSET__995e2be8__\"","export default \"__VITE_ASSET__a09e4f4f__\"","export default \"__VITE_ASSET__c88a49dc__\"","export default \"__VITE_ASSET__834c867b__\"","export default \"__VITE_ASSET__de453aec__\"","export default \"__VITE_ASSET__2fa96069__\"","export default \"__VITE_ASSET__59ade930__\"","export default \"__VITE_ASSET__7a5d0bff__\"","export default \"__VITE_ASSET__2a259963__\"","export default \"__VITE_ASSET__e2171696__\"","export default \"__VITE_ASSET__0724ec6f__\"","export default \"__VITE_ASSET__53f234dc__\"","export default \"__VITE_ASSET__a736f8f4__\"","export default \"__VITE_ASSET__a25b5e1b__\"","export default \"__VITE_ASSET__d51d50e8__\"","export default \"__VITE_ASSET__b3f7ff5c__\"","export default \"__VITE_ASSET__12ce430e__\"","export default \"__VITE_ASSET__abe1da0c__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/index.js.map b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/index.js.map
index 0e18f9c1..0c91b954 100644
--- a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/index.js.map
+++ b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["pages/mine/index.vue","../../../../Software/HBuilderX.4.76.2025082103/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbWluZS9pbmRleC52dWU"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n 我的\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ isLoggedIn ? (userStore.user?.nickname || '微信用户') : '点击注册/登录' }}\r\n \r\n ›\r\n \r\n\r\n \r\n \r\n \r\n 我的订单 {{ orderCount }}\r\n ›\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'F:/gitCode/uniapp/JewelryMall/miniprogram/pages/mine/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["useUserStore","ref","uni","getOrderList","onShow"],"mappings":";;;;;;;;AA8EA,MAAA,qBAA+B,MAAA;;;;AAE/B,UAAM,YAAYA,WAAAA;AACZ,UAAA,aAAaC,kBAAI,KAAK;AACtB,UAAA,YAAYA,kBAAI,KAAK;AACrB,UAAA,aAAaA,kBAAI,CAAC;AAClB,UAAA,aAAaA,kBAAI,KAAK;AAEtB,UAAA,kBAAkBA,kBAAI,EAAE;AACxB,UAAA,eAAeA,kBAAI,EAAE;AACvB,QAAA;AACI,YAAA,UAAUC,oBAAI;AACJ,sBAAA,QAAQ,QAAQ,mBAAmB;AAE7C,YAAA,UAAUA,oBAAI;AACpB,mBAAa,SAAS,QAAQ,OAAO,QAAQ,mBAAmB,OAAO,IAAI,QAAQ;AAAA,IAAA,QAE7E;AAAA,IAAiB;AAEzB,aAAS,cAAc;AACf,YAAA,QAAQA,cAAAA,MAAI,eAAe,OAAO;AAC7B,iBAAA,QAAQ,CAAC,CAAC;AACrB,UAAI,OAAO;AACT,kBAAU,aAAa;AACVC,+BAAA,EAAE,KAAK,CAAC,SAAc;AACtB,qBAAA,QAAQ,MAAM,QAAQ,IAAI,IAAI,KAAK,UAAU,6BAAM,UAAS;AAAA,QAAA,CACxE,EAAE,MAAM,MAAM;AAAA,QAAA,CAAE;AAAA,MACnB;AAAA,IACF;AAEAC,kBAAAA,OAAO,MAAM;AACC;IAAA,CACb;AAED,aAAS,sBAAsB;AACzB,UAAA,CAAC,WAAW,OAAO;AACrBF,sBAAAA,MAAI,WAAW,EAAE,KAAK,qBAAsB,CAAA;AAAA,MAC9C;AAAA,IACF;AAEA,aAAS,WAAW,KAAa;AACzB,YAAA,QAAQA,cAAAA,MAAI,eAAe,OAAO;AACxC,UAAI,CAAC,OAAO;AACVA,sBAAAA,MAAI,WAAW,EAAE,KAAK,qBAAsB,CAAA;AAC5C;AAAA,MACF;AACIA,oBAAAA,MAAA,WAAW,EAAE,IAAA,CAAK;AAAA,IACxB;AAEA,aAAS,cAAc,MAA0B;AACzC,YAAA,QAAQ,SAAS,SAAS,SAAS;AACzCA,oBAAAA,MAAI,UAAU;AAAA,QACZ;AAAA,QACA,SAAS,SAAS,SACd,sCACA;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,MAAA,CACd;AAAA,IACH;AAEA,aAAS,eAAe;AACtBA,oBAAAA,MAAI,UAAU;AAAA,QACZ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS,CAAC,QAAQ;AAChB,cAAI,IAAI,SAAS;AACf,sBAAU,OAAO;AACjB,uBAAW,QAAQ;AACnB,uBAAW,QAAQ;AACnBA,0BAAA,MAAI,UAAU,EAAE,OAAO,SAAS,MAAM,WAAW;AACjD,uBAAW,MAAM;AACfA,4BAAAA,MAAI,UAAU,EAAE,KAAK,qBAAsB,CAAA;AAAA,eAC1C,GAAI;AAAA,UACT;AAAA,QACF;AAAA,MAAA,CACD;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1JA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["pages/mine/index.vue","../../../../Software/HBuilderX.4.76.2025082103/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbWluZS9pbmRleC52dWU"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n 我的\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ isLoggedIn ? (userStore.user?.nickname || '微信用户') : '点击注册/登录' }}\r\n ID: {{ userStore.user?.id }}\r\n \r\n ›\r\n \r\n\r\n \r\n \r\n \r\n 我的订单 {{ orderCount }}\r\n ›\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'F:/gitCode/uniapp/JewelryMall/miniprogram/pages/mine/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["useUserStore","ref","uni","getOrderList","onShow"],"mappings":";;;;;;;;AA+EA,MAAA,qBAA+B,MAAA;;;;AAE/B,UAAM,YAAYA,WAAAA;AACZ,UAAA,aAAaC,kBAAI,KAAK;AACtB,UAAA,YAAYA,kBAAI,KAAK;AACrB,UAAA,aAAaA,kBAAI,CAAC;AAClB,UAAA,aAAaA,kBAAI,KAAK;AAEtB,UAAA,kBAAkBA,kBAAI,EAAE;AACxB,UAAA,eAAeA,kBAAI,EAAE;AACvB,QAAA;AACI,YAAA,UAAUC,oBAAI;AACJ,sBAAA,QAAQ,QAAQ,mBAAmB;AAE7C,YAAA,UAAUA,oBAAI;AACpB,mBAAa,SAAS,QAAQ,OAAO,QAAQ,mBAAmB,OAAO,IAAI,QAAQ;AAAA,IAAA,QAE7E;AAAA,IAAiB;AAEzB,aAAS,cAAc;AACf,YAAA,QAAQA,cAAAA,MAAI,eAAe,OAAO;AAC7B,iBAAA,QAAQ,CAAC,CAAC;AACrB,UAAI,OAAO;AACT,kBAAU,aAAa;AACVC,+BAAA,EAAE,KAAK,CAAC,SAAc;AACtB,qBAAA,QAAQ,MAAM,QAAQ,IAAI,IAAI,KAAK,UAAU,6BAAM,UAAS;AAAA,QAAA,CACxE,EAAE,MAAM,MAAM;AAAA,QAAA,CAAE;AAAA,MACnB;AAAA,IACF;AAEAC,kBAAAA,OAAO,MAAM;AACC;IAAA,CACb;AAED,aAAS,sBAAsB;AACzB,UAAA,CAAC,WAAW,OAAO;AACrBF,sBAAAA,MAAI,WAAW,EAAE,KAAK,qBAAsB,CAAA;AAAA,MAC9C;AAAA,IACF;AAEA,aAAS,WAAW,KAAa;AACzB,YAAA,QAAQA,cAAAA,MAAI,eAAe,OAAO;AACxC,UAAI,CAAC,OAAO;AACVA,sBAAAA,MAAI,WAAW,EAAE,KAAK,qBAAsB,CAAA;AAC5C;AAAA,MACF;AACIA,oBAAAA,MAAA,WAAW,EAAE,IAAA,CAAK;AAAA,IACxB;AAEA,aAAS,cAAc,MAA0B;AACzC,YAAA,QAAQ,SAAS,SAAS,SAAS;AACzCA,oBAAAA,MAAI,UAAU;AAAA,QACZ;AAAA,QACA,SAAS,SAAS,SACd,sCACA;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,MAAA,CACd;AAAA,IACH;AAEA,aAAS,eAAe;AACtBA,oBAAAA,MAAI,UAAU;AAAA,QACZ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS,CAAC,QAAQ;AAChB,cAAI,IAAI,SAAS;AACf,sBAAU,OAAO;AACjB,uBAAW,QAAQ;AACnB,uBAAW,QAAQ;AACnBA,0BAAA,MAAI,UAAU,EAAE,OAAO,SAAS,MAAM,WAAW;AACjD,uBAAW,MAAM;AACfA,4BAAAA,MAAI,UAAU,EAAE,KAAK,qBAAsB,CAAA;AAAA,eAC1C,GAAI;AAAA,UACT;AAAA,QACF;AAAA,MAAA,CACD;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3JA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/utils/request.js.map b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/utils/request.js.map
index 5e89aa2c..6f02512d 100644
--- a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/utils/request.js.map
+++ b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/utils/request.js.map
@@ -1 +1 @@
-{"version":3,"file":"request.js","sources":["utils/request.ts"],"sourcesContent":["// 后端 API 基础地址 - 根据环境自动切换\r\n// 开发环境使用本地服务器,生产环境使用线上地址\r\nconst ENV_BASE_URL: Record = {\r\n development: 'http://localhost:3000',\r\n production: 'https://api.example.com', // 部署时替换为真实域名\r\n}\r\n\r\nconst BASE_URL = ENV_BASE_URL[process.env.NODE_ENV || 'development'] || 'http://localhost:3000'\r\n\r\nexport { BASE_URL }\r\n\r\ninterface RequestOptions {\r\n url: string\r\n method?: 'GET' | 'POST' | 'PUT' | 'DELETE'\r\n data?: Record\r\n header?: Record\r\n}\r\n\r\ninterface ApiResponse {\r\n code: number\r\n data: T\r\n message: string\r\n}\r\n\r\n/** 将下划线命名转换为驼峰命名 */\r\nfunction toCamelCase(obj: any): any {\r\n if (obj === null || typeof obj !== 'object') return obj\r\n \r\n if (Array.isArray(obj)) {\r\n return obj.map(item => toCamelCase(item))\r\n }\r\n \r\n const result: any = {}\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase())\r\n result[camelKey] = toCamelCase(obj[key])\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction getToken(): string {\r\n return uni.getStorageSync('token') || ''\r\n}\r\n\r\nexport function request(options: RequestOptions): Promise {\r\n const { url, method = 'GET', data, header = {} } = options\r\n const token = getToken()\r\n\r\n return new Promise((resolve, reject) => {\r\n uni.request({\r\n url: `${BASE_URL}${url}`,\r\n method,\r\n data,\r\n header: {\r\n 'Content-Type': 'application/json',\r\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\r\n ...header,\r\n },\r\n success(res) {\r\n const statusCode = res.statusCode\r\n if (statusCode === 401) {\r\n uni.removeStorageSync('token')\r\n uni.showToast({ title: '请重新登录', icon: 'none' })\r\n autoLogin()\r\n reject(new Error('未授权'))\r\n return\r\n }\r\n if (statusCode >= 200 && statusCode < 300) {\r\n const body = res.data as ApiResponse\r\n if (body.code === 0) {\r\n // 将下划线命名转换为驼峰命名\r\n const camelData = toCamelCase(body.data)\r\n resolve(camelData)\r\n } else {\r\n uni.showToast({ title: body.message || '请求失败', icon: 'none' })\r\n reject(new Error(body.message))\r\n }\r\n } else {\r\n uni.showToast({ title: '网络异常,请稍后重试', icon: 'none' })\r\n reject(new Error(`HTTP ${statusCode}`))\r\n }\r\n },\r\n fail(err) {\r\n uni.showToast({ title: '网络异常,请稍后重试', icon: 'none' })\r\n reject(err)\r\n },\r\n })\r\n })\r\n}\r\n\r\n/** 微信小程序自动登录 */\r\nexport function autoLogin(): Promise {\r\n return new Promise((resolve, reject) => {\r\n uni.login({\r\n provider: 'weixin',\r\n success: async (loginRes) => {\r\n if (loginRes.code) {\r\n try {\r\n const data = await request<{ token: string; userId: number }>({\r\n url: '/api/auth/wx-login',\r\n method: 'POST',\r\n data: { code: loginRes.code },\r\n })\r\n uni.setStorageSync('token', data.token)\r\n resolve()\r\n } catch (err) {\r\n console.error('登录接口调用失败:', err)\r\n reject(err)\r\n }\r\n } else {\r\n console.error('微信登录获取 code 失败')\r\n reject(new Error('获取微信 code 失败'))\r\n }\r\n },\r\n fail: (err) => {\r\n console.error('uni.login 失败:', err)\r\n reject(err)\r\n },\r\n })\r\n })\r\n}\r\n\r\nexport const get = (url: string, data?: Record) =>\r\n request({ url, method: 'GET', data })\r\n\r\nexport const post = (url: string, data?: Record) =>\r\n request({ url, method: 'POST', data })\r\n\r\nexport const put = (url: string, data?: Record) =>\r\n request({ url, method: 'PUT', data })\r\n\r\nexport const del = (url: string, data?: Record) =>\r\n request({ url, method: 'DELETE', data })\r\n"],"names":["uni"],"mappings":";;AAEA,MAAM,eAAuC;AAAA,EAC3C,aAAa;AAAA,EACb,YAAY;AAAA;AACd;AAEM,MAAA,WAAW,aAAa,aAAqC;AAkBnE,SAAS,YAAY,KAAe;AAC9B,MAAA,QAAQ,QAAQ,OAAO,QAAQ;AAAiB,WAAA;AAEhD,MAAA,MAAM,QAAQ,GAAG,GAAG;AACtB,WAAO,IAAI,IAAI,CAAQ,SAAA,YAAY,IAAI,CAAC;AAAA,EAC1C;AAEA,QAAM,SAAc,CAAA;AACpB,aAAW,OAAO,KAAK;AACrB,QAAI,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,GAAG;AAC5C,YAAA,WAAW,IAAI,QAAQ,aAAa,CAAC,GAAG,WAAW,OAAO,YAAA,CAAa;AAC7E,aAAO,QAAQ,IAAI,YAAY,IAAI,GAAG,CAAC;AAAA,IACzC;AAAA,EACF;AACO,SAAA;AACT;AAEA,SAAS,WAAmB;AACnB,SAAAA,oBAAI,eAAe,OAAO,KAAK;AACxC;AAEO,SAAS,QAAqB,SAAqC;AAClE,QAAA,EAAE,KAAK,SAAS,OAAO,MAAM,SAAS,CAAA,EAAO,IAAA;AACnD,QAAM,QAAQ;AAEd,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtCA,kBAAAA,MAAI,QAAQ;AAAA,MACV,KAAK,GAAG,QAAQ,GAAG,GAAG;AAAA,MACtB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,QACN,gBAAgB;AAAA,QAChB,GAAI,QAAQ,EAAE,eAAe,UAAU,KAAK,GAAA,IAAO,CAAC;AAAA,QACpD,GAAG;AAAA,MACL;AAAA,MACA,QAAQ,KAAK;AACX,cAAM,aAAa,IAAI;AACvB,YAAI,eAAe,KAAK;AACtBA,8BAAI,kBAAkB,OAAO;AAC7BA,wBAAA,MAAI,UAAU,EAAE,OAAO,SAAS,MAAM,QAAQ;AACpC;AACH,iBAAA,IAAI,MAAM,KAAK,CAAC;AACvB;AAAA,QACF;AACI,YAAA,cAAc,OAAO,aAAa,KAAK;AACzC,gBAAM,OAAO,IAAI;AACb,cAAA,KAAK,SAAS,GAAG;AAEb,kBAAA,YAAY,YAAY,KAAK,IAAI;AACvC,oBAAQ,SAAS;AAAA,UAAA,OACZ;AACDA,gCAAA,UAAU,EAAE,OAAO,KAAK,WAAW,QAAQ,MAAM,QAAQ;AAC7D,mBAAO,IAAI,MAAM,KAAK,OAAO,CAAC;AAAA,UAChC;AAAA,QAAA,OACK;AACLA,wBAAA,MAAI,UAAU,EAAE,OAAO,cAAc,MAAM,QAAQ;AACnD,iBAAO,IAAI,MAAM,QAAQ,UAAU,EAAE,CAAC;AAAA,QACxC;AAAA,MACF;AAAA,MACA,KAAK,KAAK;AACRA,sBAAA,MAAI,UAAU,EAAE,OAAO,cAAc,MAAM,QAAQ;AACnD,eAAO,GAAG;AAAA,MACZ;AAAA,IAAA,CACD;AAAA,EAAA,CACF;AACH;AAGO,SAAS,YAA2B;AACzC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtCA,kBAAAA,MAAI,MAAM;AAAA,MACR,UAAU;AAAA,MACV,SAAS,OAAO,aAAa;AAC3B,YAAI,SAAS,MAAM;AACb,cAAA;AACI,kBAAA,OAAO,MAAM,QAA2C;AAAA,cAC5D,KAAK;AAAA,cACL,QAAQ;AAAA,cACR,MAAM,EAAE,MAAM,SAAS,KAAK;AAAA,YAAA,CAC7B;AACGA,0BAAAA,MAAA,eAAe,SAAS,KAAK,KAAK;AAC9B;mBACD,KAAK;AACZA,0BAAA,MAAA,MAAA,SAAA,2BAAc,aAAa,GAAG;AAC9B,mBAAO,GAAG;AAAA,UACZ;AAAA,QAAA,OACK;AACSA,wBAAAA,MAAA,MAAA,SAAA,2BAAA,gBAAgB;AACvB,iBAAA,IAAI,MAAM,cAAc,CAAC;AAAA,QAClC;AAAA,MACF;AAAA,MACA,MAAM,CAAC,QAAQ;AACbA,sBAAA,MAAA,MAAA,SAAA,2BAAc,iBAAiB,GAAG;AAClC,eAAO,GAAG;AAAA,MACZ;AAAA,IAAA,CACD;AAAA,EAAA,CACF;AACH;AAEa,MAAA,MAAM,CAAc,KAAa,SAC5C,QAAW,EAAE,KAAK,QAAQ,OAAO,MAAM;AAE5B,MAAA,OAAO,CAAc,KAAa,SAC7C,QAAW,EAAE,KAAK,QAAQ,QAAQ,MAAM;AAE7B,MAAA,MAAM,CAAc,KAAa,SAC5C,QAAW,EAAE,KAAK,QAAQ,OAAO,MAAM;AAE5B,MAAA,MAAM,CAAc,KAAa,SAC5C,QAAW,EAAE,KAAK,QAAQ,UAAU,KAAM,CAAA;;;;;;;"}
\ No newline at end of file
+{"version":3,"file":"request.js","sources":["utils/request.ts"],"sourcesContent":["// 手动切换后端地址,部署时改成线上域名即可\r\n// const BASE_URL = 'http://localhost:3000'\r\nconst BASE_URL = 'http://192.168.195.15:2850'\r\n\r\nexport { BASE_URL }\r\n\r\ninterface RequestOptions {\r\n url: string\r\n method?: 'GET' | 'POST' | 'PUT' | 'DELETE'\r\n data?: Record\r\n header?: Record\r\n}\r\n\r\ninterface ApiResponse {\r\n code: number\r\n data: T\r\n message: string\r\n}\r\n\r\n/** 将下划线命名转换为驼峰命名 */\r\nfunction toCamelCase(obj: any): any {\r\n if (obj === null || typeof obj !== 'object') return obj\r\n \r\n if (Array.isArray(obj)) {\r\n return obj.map(item => toCamelCase(item))\r\n }\r\n \r\n const result: any = {}\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase())\r\n result[camelKey] = toCamelCase(obj[key])\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction getToken(): string {\r\n return uni.getStorageSync('token') || ''\r\n}\r\n\r\nexport function request(options: RequestOptions): Promise {\r\n const { url, method = 'GET', data, header = {} } = options\r\n const token = getToken()\r\n\r\n return new Promise((resolve, reject) => {\r\n uni.request({\r\n url: `${BASE_URL}${url}`,\r\n method,\r\n data,\r\n header: {\r\n 'Content-Type': 'application/json',\r\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\r\n ...header,\r\n },\r\n success(res) {\r\n const statusCode = res.statusCode\r\n if (statusCode === 401) {\r\n uni.removeStorageSync('token')\r\n uni.showToast({ title: '请重新登录', icon: 'none' })\r\n autoLogin()\r\n reject(new Error('未授权'))\r\n return\r\n }\r\n if (statusCode >= 200 && statusCode < 300) {\r\n const body = res.data as ApiResponse\r\n if (body.code === 0) {\r\n // 将下划线命名转换为驼峰命名\r\n const camelData = toCamelCase(body.data)\r\n resolve(camelData)\r\n } else {\r\n uni.showToast({ title: body.message || '请求失败', icon: 'none' })\r\n reject(new Error(body.message))\r\n }\r\n } else {\r\n uni.showToast({ title: '网络异常,请稍后重试', icon: 'none' })\r\n reject(new Error(`HTTP ${statusCode}`))\r\n }\r\n },\r\n fail(err) {\r\n uni.showToast({ title: '网络异常,请稍后重试', icon: 'none' })\r\n reject(err)\r\n },\r\n })\r\n })\r\n}\r\n\r\n/** 微信小程序自动登录 */\r\nexport function autoLogin(): Promise {\r\n return new Promise((resolve, reject) => {\r\n uni.login({\r\n provider: 'weixin',\r\n success: async (loginRes) => {\r\n if (loginRes.code) {\r\n try {\r\n const data = await request<{ token: string; userId: number }>({\r\n url: '/api/auth/wx-login',\r\n method: 'POST',\r\n data: { code: loginRes.code },\r\n })\r\n uni.setStorageSync('token', data.token)\r\n resolve()\r\n } catch (err) {\r\n console.error('登录接口调用失败:', err)\r\n reject(err)\r\n }\r\n } else {\r\n console.error('微信登录获取 code 失败')\r\n reject(new Error('获取微信 code 失败'))\r\n }\r\n },\r\n fail: (err) => {\r\n console.error('uni.login 失败:', err)\r\n reject(err)\r\n },\r\n })\r\n })\r\n}\r\n\r\nexport const get = (url: string, data?: Record) =>\r\n request({ url, method: 'GET', data })\r\n\r\nexport const post = (url: string, data?: Record) =>\r\n request({ url, method: 'POST', data })\r\n\r\nexport const put = (url: string, data?: Record) =>\r\n request({ url, method: 'PUT', data })\r\n\r\nexport const del = (url: string, data?: Record) =>\r\n request({ url, method: 'DELETE', data })\r\n"],"names":["uni"],"mappings":";;AAEA,MAAM,WAAW;AAkBjB,SAAS,YAAY,KAAe;AAC9B,MAAA,QAAQ,QAAQ,OAAO,QAAQ;AAAiB,WAAA;AAEhD,MAAA,MAAM,QAAQ,GAAG,GAAG;AACtB,WAAO,IAAI,IAAI,CAAQ,SAAA,YAAY,IAAI,CAAC;AAAA,EAC1C;AAEA,QAAM,SAAc,CAAA;AACpB,aAAW,OAAO,KAAK;AACrB,QAAI,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,GAAG;AAC5C,YAAA,WAAW,IAAI,QAAQ,aAAa,CAAC,GAAG,WAAW,OAAO,YAAA,CAAa;AAC7E,aAAO,QAAQ,IAAI,YAAY,IAAI,GAAG,CAAC;AAAA,IACzC;AAAA,EACF;AACO,SAAA;AACT;AAEA,SAAS,WAAmB;AACnB,SAAAA,oBAAI,eAAe,OAAO,KAAK;AACxC;AAEO,SAAS,QAAqB,SAAqC;AAClE,QAAA,EAAE,KAAK,SAAS,OAAO,MAAM,SAAS,CAAA,EAAO,IAAA;AACnD,QAAM,QAAQ;AAEd,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtCA,kBAAAA,MAAI,QAAQ;AAAA,MACV,KAAK,GAAG,QAAQ,GAAG,GAAG;AAAA,MACtB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,QACN,gBAAgB;AAAA,QAChB,GAAI,QAAQ,EAAE,eAAe,UAAU,KAAK,GAAA,IAAO,CAAC;AAAA,QACpD,GAAG;AAAA,MACL;AAAA,MACA,QAAQ,KAAK;AACX,cAAM,aAAa,IAAI;AACvB,YAAI,eAAe,KAAK;AACtBA,8BAAI,kBAAkB,OAAO;AAC7BA,wBAAA,MAAI,UAAU,EAAE,OAAO,SAAS,MAAM,QAAQ;AACpC;AACH,iBAAA,IAAI,MAAM,KAAK,CAAC;AACvB;AAAA,QACF;AACI,YAAA,cAAc,OAAO,aAAa,KAAK;AACzC,gBAAM,OAAO,IAAI;AACb,cAAA,KAAK,SAAS,GAAG;AAEb,kBAAA,YAAY,YAAY,KAAK,IAAI;AACvC,oBAAQ,SAAS;AAAA,UAAA,OACZ;AACDA,gCAAA,UAAU,EAAE,OAAO,KAAK,WAAW,QAAQ,MAAM,QAAQ;AAC7D,mBAAO,IAAI,MAAM,KAAK,OAAO,CAAC;AAAA,UAChC;AAAA,QAAA,OACK;AACLA,wBAAA,MAAI,UAAU,EAAE,OAAO,cAAc,MAAM,QAAQ;AACnD,iBAAO,IAAI,MAAM,QAAQ,UAAU,EAAE,CAAC;AAAA,QACxC;AAAA,MACF;AAAA,MACA,KAAK,KAAK;AACRA,sBAAA,MAAI,UAAU,EAAE,OAAO,cAAc,MAAM,QAAQ;AACnD,eAAO,GAAG;AAAA,MACZ;AAAA,IAAA,CACD;AAAA,EAAA,CACF;AACH;AAGO,SAAS,YAA2B;AACzC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtCA,kBAAAA,MAAI,MAAM;AAAA,MACR,UAAU;AAAA,MACV,SAAS,OAAO,aAAa;AAC3B,YAAI,SAAS,MAAM;AACb,cAAA;AACI,kBAAA,OAAO,MAAM,QAA2C;AAAA,cAC5D,KAAK;AAAA,cACL,QAAQ;AAAA,cACR,MAAM,EAAE,MAAM,SAAS,KAAK;AAAA,YAAA,CAC7B;AACGA,0BAAAA,MAAA,eAAe,SAAS,KAAK,KAAK;AAC9B;mBACD,KAAK;AACZA,0BAAA,MAAA,MAAA,SAAA,2BAAc,aAAa,GAAG;AAC9B,mBAAO,GAAG;AAAA,UACZ;AAAA,QAAA,OACK;AACSA,wBAAAA,MAAA,MAAA,SAAA,2BAAA,gBAAgB;AACvB,iBAAA,IAAI,MAAM,cAAc,CAAC;AAAA,QAClC;AAAA,MACF;AAAA,MACA,MAAM,CAAC,QAAQ;AACbA,sBAAA,MAAA,MAAA,SAAA,2BAAc,iBAAiB,GAAG;AAClC,eAAO,GAAG;AAAA,MACZ;AAAA,IAAA,CACD;AAAA,EAAA,CACF;AACH;AAEa,MAAA,MAAM,CAAc,KAAa,SAC5C,QAAW,EAAE,KAAK,QAAQ,OAAO,MAAM;AAE5B,MAAA,OAAO,CAAc,KAAa,SAC7C,QAAW,EAAE,KAAK,QAAQ,QAAQ,MAAM;AAE7B,MAAA,MAAM,CAAc,KAAa,SAC5C,QAAW,EAAE,KAAK,QAAQ,OAAO,MAAM;AAE5B,MAAA,MAAM,CAAc,KAAa,SAC5C,QAAW,EAAE,KAAK,QAAQ,UAAU,KAAM,CAAA;;;;;;;"}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/common/vendor.js b/miniprogram/unpackage/dist/dev/mp-weixin/common/vendor.js
index dcd725ea..9fcc3371 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -7020,7 +7020,7 @@ function isConsoleWritable() {
function initRuntimeSocketService() {
const hosts = "172.31.144.1,192.168.21.7,192.168.195.32,127.0.0.1";
const port = "8090";
- const id = "mp-weixin_zpLFP9";
+ const id = "mp-weixin_RsROC4";
const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => {
} : initOnError();
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.js b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.js
index 715f3cd0..a028441f 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.js
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.js
@@ -78,44 +78,48 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
});
}
return (_ctx, _cache) => {
- var _a, _b;
+ var _a, _b, _c;
return common_vendor.e({
a: navBarHeight.value + "px",
b: statusBarHeight.value + "px",
c: ((_a = common_vendor.unref(userStore).user) == null ? void 0 : _a.avatar) || "/static/logo.png",
d: common_vendor.t(isLoggedIn.value ? ((_b = common_vendor.unref(userStore).user) == null ? void 0 : _b.nickname) || "微信用户" : "点击注册/登录"),
- e: common_vendor.o(handleUserCardClick),
- f: common_assets._imports_0$3,
- g: common_vendor.t(orderCount.value),
- h: common_vendor.o(($event) => navigateTo("/pages/order/list")),
- i: common_assets._imports_1$1,
- j: common_vendor.o(($event) => navigateTo("/pages/address/index")),
- k: common_assets._imports_2$1,
- l: common_vendor.o(($event) => showQrCode.value = true),
- m: common_assets._imports_3$1,
- n: common_vendor.o(($event) => showAbout.value = true),
- o: common_assets._imports_4,
- p: common_vendor.o(($event) => showAgreement("user")),
- q: common_assets._imports_5,
- r: common_vendor.o(($event) => showAgreement("privacy")),
- s: isLoggedIn.value
+ e: isLoggedIn.value
}, isLoggedIn.value ? {
- t: common_assets._imports_6,
- v: common_vendor.o(handleLogout)
+ f: common_vendor.t((_c = common_vendor.unref(userStore).user) == null ? void 0 : _c.id)
} : {}, {
- w: showQrCode.value
+ g: common_vendor.o(handleUserCardClick),
+ h: common_assets._imports_0$3,
+ i: common_vendor.t(orderCount.value),
+ j: common_vendor.o(($event) => navigateTo("/pages/order/list")),
+ k: common_assets._imports_1$1,
+ l: common_vendor.o(($event) => navigateTo("/pages/address/index")),
+ m: common_assets._imports_2$1,
+ n: common_vendor.o(($event) => showQrCode.value = true),
+ o: common_assets._imports_3$1,
+ p: common_vendor.o(($event) => showAbout.value = true),
+ q: common_assets._imports_4,
+ r: common_vendor.o(($event) => showAgreement("user")),
+ s: common_assets._imports_5,
+ t: common_vendor.o(($event) => showAgreement("privacy")),
+ v: isLoggedIn.value
+ }, isLoggedIn.value ? {
+ w: common_assets._imports_6,
+ x: common_vendor.o(handleLogout)
+ } : {}, {
+ y: showQrCode.value
}, showQrCode.value ? {
- x: common_vendor.o(($event) => showQrCode.value = false),
- y: common_vendor.p({
+ z: common_vendor.o(($event) => showQrCode.value = false),
+ A: common_vendor.p({
mode: "qrcode"
})
} : {}, {
- z: showAbout.value
+ B: showAbout.value
}, showAbout.value ? {
- A: common_vendor.o(($event) => showAbout.value = false),
- B: common_vendor.o(() => {
+ C: common_vendor.o(($event) => showAbout.value = false),
+ D: common_vendor.o(() => {
}),
- C: common_vendor.o(($event) => showAbout.value = false)
+ E: common_vendor.o(($event) => showAbout.value = false)
} : {});
};
}
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxml b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxml
index c6ee218e..df729f84 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxml
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxml
@@ -1 +1 @@
-我的{{d}}›我的订单 {{g}}›
\ No newline at end of file
+我的{{d}}ID: {{f}}›我的订单 {{i}}›
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxss b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxss
index 9cf1b123..de2a24c2 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxss
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxss
@@ -42,6 +42,12 @@
color: #333;
font-weight: bold;
}
+.user-card__id.data-v-569e925a {
+ font-size: 24rpx;
+ color: #999;
+ margin-top: 8rpx;
+ display: block;
+}
.user-card__arrow.data-v-569e925a {
font-size: 36rpx;
color: #ccc;
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/project.config.json b/miniprogram/unpackage/dist/dev/mp-weixin/project.config.json
index eac7e035..4246c6aa 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/project.config.json
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/project.config.json
@@ -14,7 +14,7 @@
"compileType": "miniprogram",
"libVersion": "",
"appid": "wx58b02b73d9c26c10",
- "projectname": "miniprogram",
+ "projectname": "钻石流",
"condition": {
"search": {
"current": -1,
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/static/logo.png b/miniprogram/unpackage/dist/dev/mp-weixin/static/logo.png
index b5771e20..4a8c9549 100644
Binary files a/miniprogram/unpackage/dist/dev/mp-weixin/static/logo.png and b/miniprogram/unpackage/dist/dev/mp-weixin/static/logo.png differ
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/utils/request.js b/miniprogram/unpackage/dist/dev/mp-weixin/utils/request.js
index 41278b53..5187bcf3 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/utils/request.js
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/utils/request.js
@@ -1,11 +1,6 @@
"use strict";
const common_vendor = require("../common/vendor.js");
-const ENV_BASE_URL = {
- development: "http://localhost:3000",
- production: "https://api.example.com"
- // 部署时替换为真实域名
-};
-const BASE_URL = ENV_BASE_URL["development"];
+const BASE_URL = "http://192.168.195.15:2850";
function toCamelCase(obj) {
if (obj === null || typeof obj !== "object")
return obj;
@@ -82,16 +77,16 @@ function autoLogin() {
common_vendor.index.setStorageSync("token", data.token);
resolve();
} catch (err) {
- common_vendor.index.__f__("error", "at utils/request.ts:109", "登录接口调用失败:", err);
+ common_vendor.index.__f__("error", "at utils/request.ts:104", "登录接口调用失败:", err);
reject(err);
}
} else {
- common_vendor.index.__f__("error", "at utils/request.ts:113", "微信登录获取 code 失败");
+ common_vendor.index.__f__("error", "at utils/request.ts:108", "微信登录获取 code 失败");
reject(new Error("获取微信 code 失败"));
}
},
fail: (err) => {
- common_vendor.index.__f__("error", "at utils/request.ts:118", "uni.login 失败:", err);
+ common_vendor.index.__f__("error", "at utils/request.ts:113", "uni.login 失败:", err);
reject(err);
}
});
diff --git a/miniprogram/utils/request.ts b/miniprogram/utils/request.ts
index 89dea954..d31d7c39 100644
--- a/miniprogram/utils/request.ts
+++ b/miniprogram/utils/request.ts
@@ -1,11 +1,6 @@
-// 后端 API 基础地址 - 根据环境自动切换
-// 开发环境使用本地服务器,生产环境使用线上地址
-const ENV_BASE_URL: Record = {
- development: 'http://localhost:3000',
- production: 'https://api.example.com', // 部署时替换为真实域名
-}
-
-const BASE_URL = ENV_BASE_URL[process.env.NODE_ENV || 'development'] || 'http://localhost:3000'
+// 手动切换后端地址,部署时改成线上域名即可
+// const BASE_URL = 'http://localhost:3000'
+const BASE_URL = 'http://192.168.195.15:2850'
export { BASE_URL }