Initial commit

This commit is contained in:
jiapengyu
2026-07-27 13:37:48 +08:00
commit ecba71e2a5
39123 changed files with 5989154 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
"use strict";const e=require("../../common/vendor.js"),t=require("../../utils/order.js"),n=require("../../utils/price.js");if(!Array){e.resolveComponent("uni-icons")()}Math;const o=e.defineComponent({__name:"detail",setup(o){const r=e.ref(null),i=()=>{e.index.navigateBack()},u=()=>{e.index.switchTab({url:"/pages/index/index"})};return e.onLoad(t=>{return n=this,o=null,i=function*(){if(null==t?void 0:t.orderId){const n=e.index.getStorageSync("orders"),o=n?JSON.parse(n):[];r.value=o.find(e=>e.orderId===t.orderId)||null}},new Promise((e,t)=>{var r=e=>{try{a(i.next(e))}catch(n){t(n)}},u=e=>{try{a(i.throw(e))}catch(n){t(n)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(r,u);a((i=i.apply(n,o)).next())});var n,o,i}),(o,a)=>{var l,d,s,c,v,g,m;return{a:e.t(null==(l=r.value)?void 0:l.orderId),b:e.t(r.value?e.unref(t.formatOrderTime)(r.value.timestamp):"-"),c:e.t("completed"===(null==(d=r.value)?void 0:d.status)?"已完成":"pending"===(null==(s=r.value)?void 0:s.status)?"待处理":"已取消"),d:e.n(null==(c=r.value)?void 0:c.status),e:e.f(null==(v=r.value)?void 0:v.items,(t,o,r)=>({a:"c82568ec-0-"+r,b:e.p({type:e.unref(n.getCategoryIcon)(t.category),size:40,color:"#3366ff"}),c:e.t(t.name),d:e.t("kg"===t.unit?"重量":"数量"),e:e.t(t.weight||t.count),f:e.t("kg"===t.unit?"kg":"个"),g:e.t(t.unitPrice),h:e.t("kg"===t.unit?"kg":"个"),i:e.t(t.amount.toFixed(2)),j:o})),f:e.t((null==(g=r.value)?void 0:g.totalAmount.toFixed(2))||"0.00"),g:e.t((null==(m=r.value)?void 0:m.totalAmount.toFixed(2))||"0.00"),h:e.o(i),i:e.o(u)}}}}),r=e._export_sfc(o,[["__scopeId","data-v-c82568ec"]]);wx.createPage(r);
+8
View File
@@ -0,0 +1,8 @@
{
"navigationBarTitleText": "订单详情",
"navigationBarBackgroundColor": "#3366ff",
"navigationBarTextStyle": "white",
"usingComponents": {
"uni-icons": "../../node-modules/@dcloudio/uni-ui/lib/uni-icons/uni-icons"
}
}
+1
View File
@@ -0,0 +1 @@
<view class="container data-v-c82568ec"><view class="detail-card data-v-c82568ec"><view class="detail-header data-v-c82568ec"><view class="order-info data-v-c82568ec"><text class="order-id data-v-c82568ec">{{a}}</text><text class="order-time data-v-c82568ec">{{b}}</text></view><view class="{{['order-status', 'data-v-c82568ec', d]}}">{{c}}</view></view><view class="detail-section data-v-c82568ec"><view class="section-title data-v-c82568ec"><text class="section-icon data-v-c82568ec">📦</text><text class="data-v-c82568ec">回收物品</text></view><view class="items-list data-v-c82568ec"><view wx:for="{{e}}" wx:for-item="item" wx:key="j" class="item-card data-v-c82568ec"><view class="item-left data-v-c82568ec"><uni-icons wx:if="{{item.b}}" class="item-icon data-v-c82568ec" u-i="{{item.a}}" bind:__l="__l" u-p="{{item.b}}"/><view class="item-info data-v-c82568ec"><text class="item-name data-v-c82568ec">{{item.c}}</text><text class="item-spec data-v-c82568ec">{{item.d}}: {{item.e}} {{item.f}}</text></view></view><view class="item-right data-v-c82568ec"><text class="item-price data-v-c82568ec">¥{{item.g}}/{{item.h}}</text><text class="item-amount data-v-c82568ec">¥{{item.i}}</text></view></view></view></view><view class="detail-section data-v-c82568ec"><view class="section-title data-v-c82568ec"><text class="section-icon data-v-c82568ec">💰</text><text class="data-v-c82568ec">金额明细</text></view><view class="amount-detail data-v-c82568ec"><view class="amount-row data-v-c82568ec"><text class="amount-label data-v-c82568ec">物品总价</text><text class="amount-value data-v-c82568ec">¥{{f}}</text></view><view class="amount-row data-v-c82568ec"><text class="amount-label data-v-c82568ec">优惠金额</text><text class="amount-value discount data-v-c82568ec">-¥0.00</text></view><view class="amount-row total data-v-c82568ec"><text class="amount-label data-v-c82568ec">实付金额</text><text class="amount-value data-v-c82568ec">¥{{g}}</text></view></view></view></view><view class="bottom-actions data-v-c82568ec"><view class="action-btn secondary data-v-c82568ec" bindtap="{{h}}"><text class="data-v-c82568ec">返回</text></view><view class="action-btn primary data-v-c82568ec" bindtap="{{i}}"><text class="data-v-c82568ec">继续回收</text></view></view></view>
+1
View File
@@ -0,0 +1 @@
.container.data-v-c82568ec{min-height:100vh;background:#f5f5f5;padding:32rpx 32rpx 160rpx}.detail-card.data-v-c82568ec{background:#fff;border-radius:16rpx;overflow:hidden}.detail-header.data-v-c82568ec{display:flex;justify-content:space-between;align-items:flex-start;padding:28rpx 24rpx;background:linear-gradient(135deg,#36f,#254edb)}.order-info.data-v-c82568ec{display:flex;flex-direction:column}.order-id.data-v-c82568ec{font-size:30rpx;font-weight:600;color:#fff;margin-bottom:8rpx}.order-time.data-v-c82568ec{font-size:24rpx;color:rgba(255,255,255,.8)}.order-status.data-v-c82568ec{font-size:24rpx;padding:8rpx 20rpx;border-radius:20rpx;background:rgba(255,255,255,.2);color:#fff}.detail-section.data-v-c82568ec{padding:24rpx;border-bottom:1rpx solid #f0f0f0}.detail-section.data-v-c82568ec:last-child{border-bottom:none}.section-title.data-v-c82568ec{display:flex;align-items:center;font-size:30rpx;font-weight:600;color:#333;margin-bottom:20rpx}.section-icon.data-v-c82568ec{margin-right:12rpx}.items-list.data-v-c82568ec{display:flex;flex-direction:column;gap:16rpx}.item-card.data-v-c82568ec{display:flex;justify-content:space-between;align-items:center;padding:20rpx;background:#f9fafb;border-radius:12rpx}.item-left.data-v-c82568ec{display:flex;align-items:center;flex:1}.item-icon.data-v-c82568ec{font-size:44rpx;margin-right:16rpx}.item-info.data-v-c82568ec{display:flex;flex-direction:column}.item-name.data-v-c82568ec{font-size:30rpx;font-weight:600;color:#333;margin-bottom:4rpx}.item-spec.data-v-c82568ec{font-size:24rpx;color:#999}.item-right.data-v-c82568ec{display:flex;flex-direction:column;align-items:flex-end}.item-price.data-v-c82568ec{font-size:24rpx;color:#999;margin-bottom:4rpx}.item-amount.data-v-c82568ec{font-size:32rpx;font-weight:600;color:#36f}.amount-detail.data-v-c82568ec{background:#f9fafb;border-radius:12rpx;padding:20rpx}.amount-row.data-v-c82568ec{display:flex;justify-content:space-between;align-items:center;padding:12rpx 0}.amount-row.total.data-v-c82568ec{padding-top:16rpx;margin-top:12rpx;border-top:1rpx dashed #e5e7eb}.amount-label.data-v-c82568ec{font-size:28rpx;color:#666}.total .amount-label.data-v-c82568ec{font-weight:600;color:#333}.amount-value.data-v-c82568ec{font-size:28rpx;font-weight:600;color:#333}.amount-value.discount.data-v-c82568ec{color:#f59e0b}.total .amount-value.data-v-c82568ec{font-size:36rpx;color:#36f}.bottom-actions.data-v-c82568ec{position:fixed;bottom:0;left:0;right:0;display:flex;gap:24rpx;padding:24rpx 32rpx;padding-bottom:calc(24rpx + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4rpx 12rpx rgba(0,0,0,.05)}.action-btn.data-v-c82568ec{flex:1;border-radius:40rpx;padding:24rpx;text-align:center;font-size:32rpx;font-weight:600}.action-btn.secondary.data-v-c82568ec{background:#f3f4f6;color:#666}.action-btn.primary.data-v-c82568ec{background:linear-gradient(135deg,#36f,#254edb);color:#fff}.action-btn.data-v-c82568ec:active{opacity:.85}
+1
View File
@@ -0,0 +1 @@
"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),r=require("../../stores/order.js"),o=require("../../utils/order.js"),n=e.defineComponent({__name:"list",setup(n){const u=r.useOrderStore(),i=e.ref([]),a=e.ref(50),l=e.ref(0),s=e.computed(()=>u.orders.length>0&&i.value.length===u.orders.length),d=e.computed(()=>i.value.reduce((e,t)=>{const r=u.orders.find(e=>e.id===t);return e+((null==r?void 0:r.totalAmount)||0)},0)),c=e.computed(()=>`${a.value+l.value}px`),m=e.computed(()=>`${a.value+60+l.value}px`),v=()=>{s.value?i.value=[]:i.value=u.orders.map(e=>e.id)},f=t=>{e.index.showModal({title:"确认删除",content:"确定要删除这笔订单吗?",success:e=>{return r=this,o=null,n=function*(){e.confirm&&(yield u.deleteOrder(t),i.value=i.value.filter(e=>e!==t))},new Promise((e,t)=>{var u=e=>{try{a(n.next(e))}catch(r){t(r)}},i=e=>{try{a(n.throw(e))}catch(r){t(r)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(u,i);a((n=n.apply(r,o)).next())});var r,o,n}})},p=e=>{const t=[];return e.city&&t.push(e.city),e.district&&t.push(e.district),e.community&&t.push(e.community),e.user&&t.push(e.user),t.join(" > ")||"未选择区域"},g=()=>{var e;if("undefined"!=typeof window){const r=[".uni-tabbar",".uni-tabbar-bottom",".uni-tabbar__wrapper",'[class*="tabbar"]',".tab-bar",".tabbar"];let o=null;for(const e of r){const t=document.querySelector(e);if(t){o=t;break}}if(o)a.value=o.offsetHeight;else{const e=document.querySelectorAll("div");for(const t of e){const e=t.getBoundingClientRect();if(e.bottom>=window.innerHeight-100&&e.top>=window.innerHeight-150){a.value=e.height;break}}}a.value<40&&(a.value=60);let n=0;const u=window.getComputedStyle(document.documentElement);if(n=parseInt(u.getPropertyValue("--safe-area-inset-bottom"))||0,0===n&&(n=parseInt(u.getPropertyValue("safe-area-inset-bottom"))||0),0===n)try{n=parseInt(window.getComputedStyle(document.body).getPropertyValue("--safe-area-inset-bottom"))||0}catch(t){}l.value=n||0;const i=document.querySelector('meta[name="viewport"]');i&&!(null==(e=i.getAttribute("content"))?void 0:e.includes("viewport-fit"))&&i.setAttribute("content",i.getAttribute("content")+", viewport-fit=cover")}};return e.onMounted(()=>{u.loadOrders(),setTimeout(()=>{g()},500),setTimeout(()=>{g()},1500)}),(r,n)=>e.e({a:e.unref(u).orders.length>0},e.unref(u).orders.length>0?{b:e.f(e.unref(u).orders,(t,r,n)=>e.e({a:i.value.includes(t.id)},(i.value.includes(t.id),{}),{b:i.value.includes(t.id)?1:"",c:e.o(e=>(e=>{const t=i.value.indexOf(e);t>-1?i.value.splice(t,1):i.value.push(e)})(t.id),t.id),d:e.t(p(t)),e:e.t(e.unref(o.formatOrderTime)(t.createTime)),f:e.f(t.items,(t,r,o)=>({a:e.t(t.name),b:e.t(t.weight||t.count),c:e.t("kg"===t.unit?"kg":"个"),d:e.t(t.price.toFixed(2)),e:e.t("kg"===t.unit?"kg":"个"),f:e.t((t.amount||0).toFixed(2)),g:r})),g:e.t((t.totalAmount||0).toFixed(2)),h:e.o(e=>f(t.id),t.id),i:t.id}))}:{c:t._imports_0$4},{d:e.unref(u).orders.length>0},e.unref(u).orders.length>0?e.e({e:s.value},(s.value,{}),{f:s.value?1:"",g:e.o(v),h:e.t(i.value.length),i:e.t(d.value.toFixed(2)),j:e.t(a.value),k:e.t(l.value),l:c.value}):{},{m:m.value})}}),u=e._export_sfc(n,[["__scopeId","data-v-c21a684c"]]);wx.createPage(u);
+6
View File
@@ -0,0 +1,6 @@
{
"navigationBarTitleText": "订单列表",
"navigationBarBackgroundColor": "#3366ff",
"navigationBarTextStyle": "white",
"usingComponents": {}
}
+1
View File
@@ -0,0 +1 @@
<view class="container data-v-c21a684c" style="{{'padding-bottom:' + m}}"><view class="content data-v-c21a684c"><view wx:if="{{a}}" class="order-list data-v-c21a684c"><view wx:for="{{b}}" wx:for-item="order" wx:key="i" class="order-item data-v-c21a684c"><view class="order-checkbox data-v-c21a684c" catchtap="{{order.c}}"><view class="{{['checkbox', 'data-v-c21a684c', order.b && 'checked']}}"><text wx:if="{{order.a}}" class="check-icon data-v-c21a684c">✓</text></view></view><view class="order-content data-v-c21a684c"><view class="order-header data-v-c21a684c"><view class="order-region data-v-c21a684c"><text class="region-icon data-v-c21a684c">📍</text><text class="region-text data-v-c21a684c">{{order.d}}</text></view><text class="order-time data-v-c21a684c">{{order.e}}</text></view><view class="order-items data-v-c21a684c"><view wx:for="{{order.f}}" wx:for-item="item" wx:key="g" class="order-item-row data-v-c21a684c"><text class="item-name data-v-c21a684c">{{item.a}}</text><view class="item-info data-v-c21a684c"><text class="item-weight data-v-c21a684c">{{item.b}} {{item.c}}</text><text class="item-price data-v-c21a684c">¥{{item.d}}/{{item.e}}</text></view><text class="item-amount data-v-c21a684c">¥{{item.f}}</text></view></view><view class="order-footer data-v-c21a684c"><view class="order-total data-v-c21a684c"><text class="total-label data-v-c21a684c">合计:</text><text class="total-amount data-v-c21a684c">¥{{order.g}}</text></view><view class="order-actions data-v-c21a684c"><text class="delete-btn data-v-c21a684c" catchtap="{{order.h}}">删除</text></view></view></view></view></view><view wx:else class="empty-state data-v-c21a684c"><image class="empty-icon data-v-c21a684c" src="{{c}}" mode="aspectFit"></image><text class="empty-text data-v-c21a684c">暂无订单</text><text class="empty-hint data-v-c21a684c">完成回收后将在此显示订单记录</text></view></view><view wx:if="{{d}}" class="bottom-bar data-v-c21a684c" style="{{'bottom:' + l}}"><view class="select-all data-v-c21a684c" bindtap="{{g}}"><view class="{{['checkbox', 'data-v-c21a684c', f && 'checked']}}"><text wx:if="{{e}}" class="check-icon data-v-c21a684c">✓</text></view><text class="select-text data-v-c21a684c">全选</text></view><view class="selected-info data-v-c21a684c"><text class="selected-count data-v-c21a684c">已选 {{h}} 单</text><text class="selected-total data-v-c21a684c">合计: ¥{{i}}</text></view><text class="debug-info data-v-c21a684c">tabBar:{{j}}px safeArea:{{k}}px</text></view></view>
+1
View File
@@ -0,0 +1 @@
.container.data-v-c21a684c{min-height:100vh;background:#f5f5f5}.content.data-v-c21a684c{padding:32rpx}.order-list.data-v-c21a684c{display:flex;flex-direction:column;gap:24rpx}.order-item.data-v-c21a684c{display:flex;background:#fff;border-radius:16rpx;padding:24rpx;box-shadow:0 2rpx 12rpx rgba(0,0,0,.04)}.order-checkbox.data-v-c21a684c{display:flex;align-items:flex-start;padding-right:20rpx;padding-top:8rpx}.checkbox.data-v-c21a684c{width:44rpx;height:44rpx;border:2rpx solid #ddd;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.checkbox.checked.data-v-c21a684c{background:#36f;border-color:#36f}.check-icon.data-v-c21a684c{color:#fff;font-size:24rpx;font-weight:700}.order-content.data-v-c21a684c{flex:1}.order-header.data-v-c21a684c{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16rpx;padding-bottom:16rpx;border-bottom:1rpx dashed #f0f0f0}.order-region.data-v-c21a684c{display:flex;align-items:center;flex:1}.region-icon.data-v-c21a684c{font-size:28rpx;margin-right:8rpx}.region-text.data-v-c21a684c{font-size:26rpx;color:#333;font-weight:500}.order-time.data-v-c21a684c{font-size:24rpx;color:#999}.order-items.data-v-c21a684c{margin-bottom:16rpx}.order-item-row.data-v-c21a684c{display:flex;justify-content:space-between;align-items:center;padding:12rpx 0}.order-item-row.data-v-c21a684c:not(:last-child){border-bottom:1rpx solid #f8f9fa}.item-name.data-v-c21a684c{font-size:28rpx;color:#333;flex:1}.item-info.data-v-c21a684c{display:flex;flex-direction:column;align-items:flex-end;flex:2;margin-right:16rpx}.item-weight.data-v-c21a684c{font-size:24rpx;color:#666}.item-price.data-v-c21a684c{font-size:24rpx;color:#999}.item-amount.data-v-c21a684c{font-size:28rpx;font-weight:600;color:#36f}.order-footer.data-v-c21a684c{display:flex;justify-content:space-between;align-items:center;padding-top:16rpx;border-top:1rpx dashed #f0f0f0}.order-total.data-v-c21a684c{display:flex;align-items:baseline}.total-label.data-v-c21a684c{font-size:26rpx;color:#666;margin-right:8rpx}.total-amount.data-v-c21a684c{font-size:36rpx;font-weight:700;color:#36f}.order-actions.data-v-c21a684c{margin-left:16rpx}.delete-btn.data-v-c21a684c{font-size:26rpx;color:#ff4d4f;padding:8rpx 16rpx;border:1rpx solid #ff4d4f;border-radius:8rpx}.empty-state.data-v-c21a684c{display:flex;flex-direction:column;align-items:center;padding:120rpx 40rpx;background:#fff;border-radius:16rpx}.empty-icon.data-v-c21a684c{width:120rpx;height:120rpx;margin-bottom:24rpx}.empty-text.data-v-c21a684c{font-size:32rpx;font-weight:600;color:#333;margin-bottom:12rpx}.empty-hint.data-v-c21a684c{font-size:26rpx;color:#999}.bottom-bar.data-v-c21a684c{position:fixed;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:#fff;box-shadow:0 -2px 12px rgba(0,0,0,.08);z-index:100}.select-all.data-v-c21a684c{display:flex;align-items:center}.select-text.data-v-c21a684c{font-size:28rpx;color:#333;margin-left:12rpx}.selected-info.data-v-c21a684c{display:flex;align-items:baseline;gap:16rpx}.selected-count.data-v-c21a684c{font-size:26rpx;color:#666}.selected-total.data-v-c21a684c{font-size:32rpx;font-weight:700;color:#36f}.debug-info.data-v-c21a684c{font-size:16rpx;color:#ff4d4f;position:absolute;bottom:2rpx;left:50%;transform:translate(-50%)}.batch-delete.data-v-c21a684c{margin-left:16rpx}.batch-delete-btn.data-v-c21a684c{font-size:28rpx;color:#fff;padding:12rpx 24rpx;background:#ff4d4f;border-radius:8rpx}