Initial commit - full huishou project

This commit is contained in:
jiapengyu
2026-07-27 14:07:26 +08:00
commit 60790ad1b3
39127 changed files with 5989265 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"),o=e.defineComponent({__name:"detail",setup(o){const u=e.ref(null),i=()=>{e.index.navigateBack()},a=()=>{e.index.switchTab({url:"/pages/index/index"})};return e.onLoad(async t=>{if(null==t?void 0:t.orderId){const n=e.index.getStorageSync("orders"),o=n?JSON.parse(n):[];u.value=o.find(e=>e.orderId===t.orderId)||null}}),(o,r)=>{var d,l,s,c,v,g,m;return{a:e.t(null==(d=u.value)?void 0:d.orderId),b:e.t(u.value?e.unref(t.formatOrderTime)(u.value.timestamp):"-"),c:e.t("completed"===(null==(l=u.value)?void 0:l.status)?"已完成":"pending"===(null==(s=u.value)?void 0:s.status)?"待处理":"已取消"),d:e.n(null==(c=u.value)?void 0:c.status),e:e.f(null==(v=u.value)?void 0:v.items,(t,o,u)=>({a:e.t(e.unref(n.getCategoryIcon)(t.category)),b:e.t(t.name),c:e.t("kg"===t.unit?"重量":"数量"),d:e.t(t.weight||t.count),e:e.t("kg"===t.unit?"kg":"个"),f:e.t(t.unitPrice),g:e.t("kg"===t.unit?"kg":"个"),h:e.t(t.amount.toFixed(2)),i:o})),f:e.t((null==(g=u.value)?void 0:g.totalAmount.toFixed(2))||"0.00"),g:e.t((null==(m=u.value)?void 0:m.totalAmount.toFixed(2))||"0.00"),h:e.o(i),i:e.o(a)}}}}),u=e._export_sfc(o,[["__scopeId","data-v-8ca850cb"]]);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-8ca850cb"><view class="detail-card data-v-8ca850cb"><view class="detail-header data-v-8ca850cb"><view class="order-info data-v-8ca850cb"><text class="order-id data-v-8ca850cb">{{a}}</text><text class="order-time data-v-8ca850cb">{{b}}</text></view><view class="{{['order-status', 'data-v-8ca850cb', d]}}">{{c}}</view></view><view class="detail-section data-v-8ca850cb"><view class="section-title data-v-8ca850cb"><text class="section-icon data-v-8ca850cb">📦</text><text class="data-v-8ca850cb">回收物品</text></view><view class="items-list data-v-8ca850cb"><view wx:for="{{e}}" wx:for-item="item" wx:key="i" class="item-card data-v-8ca850cb"><view class="item-left data-v-8ca850cb"><text class="item-icon data-v-8ca850cb">{{item.a}}</text><view class="item-info data-v-8ca850cb"><text class="item-name data-v-8ca850cb">{{item.b}}</text><text class="item-spec data-v-8ca850cb">{{item.c}}: {{item.d}} {{item.e}}</text></view></view><view class="item-right data-v-8ca850cb"><text class="item-price data-v-8ca850cb">¥{{item.f}}/{{item.g}}</text><text class="item-amount data-v-8ca850cb">¥{{item.h}}</text></view></view></view></view><view class="detail-section data-v-8ca850cb"><view class="section-title data-v-8ca850cb"><text class="section-icon data-v-8ca850cb">💰</text><text class="data-v-8ca850cb">金额明细</text></view><view class="amount-detail data-v-8ca850cb"><view class="amount-row data-v-8ca850cb"><text class="amount-label data-v-8ca850cb">物品总价</text><text class="amount-value data-v-8ca850cb">¥{{f}}</text></view><view class="amount-row data-v-8ca850cb"><text class="amount-label data-v-8ca850cb">优惠金额</text><text class="amount-value discount data-v-8ca850cb">-¥0.00</text></view><view class="amount-row total data-v-8ca850cb"><text class="amount-label data-v-8ca850cb">实付金额</text><text class="amount-value data-v-8ca850cb">¥{{g}}</text></view></view></view></view><view class="bottom-actions data-v-8ca850cb"><view class="action-btn secondary data-v-8ca850cb" bindtap="{{h}}"><text class="data-v-8ca850cb">返回</text></view><view class="action-btn primary data-v-8ca850cb" bindtap="{{i}}"><text class="data-v-8ca850cb">继续回收</text></view></view></view>
+1
View File
@@ -0,0 +1 @@
.container.data-v-8ca850cb{min-height:100vh;background:#f5f5f5;padding:32rpx 32rpx 160rpx}.detail-card.data-v-8ca850cb{background:#fff;border-radius:16rpx;overflow:hidden}.detail-header.data-v-8ca850cb{display:flex;justify-content:space-between;align-items:flex-start;padding:28rpx 24rpx;background:linear-gradient(135deg,#36f,#254edb)}.order-info.data-v-8ca850cb{display:flex;flex-direction:column}.order-id.data-v-8ca850cb{font-size:30rpx;font-weight:600;color:#fff;margin-bottom:8rpx}.order-time.data-v-8ca850cb{font-size:24rpx;color:rgba(255,255,255,.8)}.order-status.data-v-8ca850cb{font-size:24rpx;padding:8rpx 20rpx;border-radius:20rpx;background:rgba(255,255,255,.2);color:#fff}.detail-section.data-v-8ca850cb{padding:24rpx;border-bottom:1rpx solid #f0f0f0}.detail-section.data-v-8ca850cb:last-child{border-bottom:none}.section-title.data-v-8ca850cb{display:flex;align-items:center;font-size:30rpx;font-weight:600;color:#333;margin-bottom:20rpx}.section-icon.data-v-8ca850cb{margin-right:12rpx}.items-list.data-v-8ca850cb{display:flex;flex-direction:column;gap:16rpx}.item-card.data-v-8ca850cb{display:flex;justify-content:space-between;align-items:center;padding:20rpx;background:#f9fafb;border-radius:12rpx}.item-left.data-v-8ca850cb{display:flex;align-items:center;flex:1}.item-icon.data-v-8ca850cb{font-size:44rpx;margin-right:16rpx}.item-info.data-v-8ca850cb{display:flex;flex-direction:column}.item-name.data-v-8ca850cb{font-size:30rpx;font-weight:600;color:#333;margin-bottom:4rpx}.item-spec.data-v-8ca850cb{font-size:24rpx;color:#999}.item-right.data-v-8ca850cb{display:flex;flex-direction:column;align-items:flex-end}.item-price.data-v-8ca850cb{font-size:24rpx;color:#999;margin-bottom:4rpx}.item-amount.data-v-8ca850cb{font-size:32rpx;font-weight:600;color:#36f}.amount-detail.data-v-8ca850cb{background:#f9fafb;border-radius:12rpx;padding:20rpx}.amount-row.data-v-8ca850cb{display:flex;justify-content:space-between;align-items:center;padding:12rpx 0}.amount-row.total.data-v-8ca850cb{padding-top:16rpx;margin-top:12rpx;border-top:1rpx dashed #e5e7eb}.amount-label.data-v-8ca850cb{font-size:28rpx;color:#666}.total .amount-label.data-v-8ca850cb{font-weight:600;color:#333}.amount-value.data-v-8ca850cb{font-size:28rpx;font-weight:600;color:#333}.amount-value.discount.data-v-8ca850cb{color:#f59e0b}.total .amount-value.data-v-8ca850cb{font-size:36rpx;color:#36f}.bottom-actions.data-v-8ca850cb{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-8ca850cb{flex:1;border-radius:40rpx;padding:24rpx;text-align:center;font-size:32rpx;font-weight:600}.action-btn.secondary.data-v-8ca850cb{background:#f3f4f6;color:#666}.action-btn.primary.data-v-8ca850cb{background:linear-gradient(135deg,#36f,#254edb);color:#fff}.action-btn.data-v-8ca850cb:active{opacity:.85}
+1
View File
@@ -0,0 +1 @@
"use strict";const e=require("../../common/vendor.js"),t=require("../../stores/order.js"),r=require("../../utils/order.js"),u=e.defineComponent({__name:"list",setup(u){const d=t.useOrderStore(),i=e.ref([]),o=e.computed(()=>d.orders.length>0&&i.value.length===d.orders.length),n=e.computed(()=>i.value.reduce((e,t)=>{const r=d.orders.find(e=>e.id===t);return e+((null==r?void 0:r.totalAmount)||0)},0)),l=()=>{o.value?i.value=[]:i.value=d.orders.map(e=>e.id)},s=e=>{const t=[];return e.city&&t.push(e.city),e.district&&t.push(e.district),e.community&&t.push(e.community),t.join(" > ")||"未选择区域"};return e.onMounted(()=>{d.loadOrders()}),(t,u)=>e.e({a:e.unref(d).orders.length>0},e.unref(d).orders.length>0?{b:e.f(e.unref(d).orders,(t,u,o)=>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(s(t)),e:e.t(e.unref(r.formatOrderTime)(t.createTime)),f:e.f(t.items,(t,r,u)=>({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.toFixed(2)),g:r})),g:e.t(t.totalAmount.toFixed(2)),h:e.o(r=>{return u=t.id,void e.index.showModal({title:"确认删除",content:"确定要删除这笔订单吗?",success:async e=>{e.confirm&&(await d.deleteOrder(u),i.value=i.value.filter(e=>e!==u))}});var u},t.id),i:t.id}))}:{},{c:i.value.length>0},i.value.length>0?e.e({d:o.value},(o.value,{}),{e:o.value?1:"",f:e.o(l),g:e.t(i.value.length),h:e.t(n.value.toFixed(2))}):{})}}),d=e._export_sfc(u,[["__scopeId","data-v-4039793c"]]);wx.createPage(d);
+6
View File
@@ -0,0 +1,6 @@
{
"navigationBarTitleText": "订单列表",
"navigationBarBackgroundColor": "#3366ff",
"navigationBarTextStyle": "white",
"usingComponents": {}
}
+1
View File
@@ -0,0 +1 @@
<view class="container data-v-4039793c"><view class="content data-v-4039793c"><view wx:if="{{a}}" class="order-list data-v-4039793c"><view wx:for="{{b}}" wx:for-item="order" wx:key="i" class="order-item data-v-4039793c"><view class="order-checkbox data-v-4039793c" catchtap="{{order.c}}"><view class="{{['checkbox', 'data-v-4039793c', order.b && 'checked']}}"><text wx:if="{{order.a}}" class="check-icon data-v-4039793c">✓</text></view></view><view class="order-content data-v-4039793c"><view class="order-header data-v-4039793c"><view class="order-region data-v-4039793c"><text class="region-icon data-v-4039793c">📍</text><text class="region-text data-v-4039793c">{{order.d}}</text></view><text class="order-time data-v-4039793c">{{order.e}}</text></view><view class="order-items data-v-4039793c"><view wx:for="{{order.f}}" wx:for-item="item" wx:key="g" class="order-item-row data-v-4039793c"><text class="item-name data-v-4039793c">{{item.a}}</text><view class="item-info data-v-4039793c"><text class="item-weight data-v-4039793c">{{item.b}} {{item.c}}</text><text class="item-price data-v-4039793c">¥{{item.d}}/{{item.e}}</text></view><text class="item-amount data-v-4039793c">¥{{item.f}}</text></view></view><view class="order-footer data-v-4039793c"><view class="order-total data-v-4039793c"><text class="total-label data-v-4039793c">合计:</text><text class="total-amount data-v-4039793c">¥{{order.g}}</text></view><view class="order-actions data-v-4039793c"><text class="delete-btn data-v-4039793c" catchtap="{{order.h}}">删除</text></view></view></view></view></view><view wx:else class="empty-state data-v-4039793c"><text class="empty-icon data-v-4039793c">📭</text><text class="empty-text data-v-4039793c">暂无订单</text><text class="empty-hint data-v-4039793c">完成回收后将在此显示订单记录</text></view></view><view wx:if="{{c}}" class="bottom-bar data-v-4039793c"><view class="select-all data-v-4039793c" bindtap="{{f}}"><view class="{{['checkbox', 'data-v-4039793c', e && 'checked']}}"><text wx:if="{{d}}" class="check-icon data-v-4039793c">✓</text></view><text class="select-text data-v-4039793c">全选</text></view><view class="selected-info data-v-4039793c"><text class="selected-count data-v-4039793c">已选 {{g}} 单</text><text class="selected-total data-v-4039793c">合计: ¥{{h}}</text></view></view></view>
+1
View File
@@ -0,0 +1 @@
.container.data-v-4039793c{min-height:100vh;background:#f5f5f5;padding-bottom:120rpx}.content.data-v-4039793c{padding:32rpx}.order-list.data-v-4039793c{display:flex;flex-direction:column;gap:24rpx}.order-item.data-v-4039793c{display:flex;background:#fff;border-radius:16rpx;padding:24rpx;box-shadow:0 2rpx 12rpx rgba(0,0,0,.04)}.order-checkbox.data-v-4039793c{display:flex;align-items:flex-start;padding-right:20rpx;padding-top:8rpx}.checkbox.data-v-4039793c{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-4039793c{background:#36f;border-color:#36f}.check-icon.data-v-4039793c{color:#fff;font-size:24rpx;font-weight:700}.order-content.data-v-4039793c{flex:1}.order-header.data-v-4039793c{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-4039793c{display:flex;align-items:center;flex:1}.region-icon.data-v-4039793c{font-size:28rpx;margin-right:8rpx}.region-text.data-v-4039793c{font-size:26rpx;color:#333;font-weight:500}.order-time.data-v-4039793c{font-size:24rpx;color:#999}.order-items.data-v-4039793c{margin-bottom:16rpx}.order-item-row.data-v-4039793c{display:flex;justify-content:space-between;align-items:center;padding:12rpx 0}.order-item-row.data-v-4039793c:not(:last-child){border-bottom:1rpx solid #f8f9fa}.item-name.data-v-4039793c{font-size:28rpx;color:#333;flex:1}.item-info.data-v-4039793c{display:flex;flex-direction:column;align-items:flex-end;flex:2;margin-right:16rpx}.item-weight.data-v-4039793c{font-size:24rpx;color:#666}.item-price.data-v-4039793c{font-size:24rpx;color:#999}.item-amount.data-v-4039793c{font-size:28rpx;font-weight:600;color:#36f}.order-footer.data-v-4039793c{display:flex;justify-content:space-between;align-items:center;padding-top:16rpx;border-top:1rpx dashed #f0f0f0}.order-total.data-v-4039793c{display:flex;align-items:baseline}.total-label.data-v-4039793c{font-size:26rpx;color:#666;margin-right:8rpx}.total-amount.data-v-4039793c{font-size:36rpx;font-weight:700;color:#36f}.order-actions.data-v-4039793c{margin-left:16rpx}.delete-btn.data-v-4039793c{font-size:26rpx;color:#ff4d4f;padding:8rpx 16rpx;border:1rpx solid #ff4d4f;border-radius:8rpx}.empty-state.data-v-4039793c{display:flex;flex-direction:column;align-items:center;padding:120rpx 40rpx;background:#fff;border-radius:16rpx}.empty-icon.data-v-4039793c{font-size:100rpx;margin-bottom:24rpx}.empty-text.data-v-4039793c{font-size:32rpx;font-weight:600;color:#333;margin-bottom:12rpx}.empty-hint.data-v-4039793c{font-size:26rpx;color:#999}.bottom-bar.data-v-4039793c{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:20rpx 32rpx;padding-bottom:calc(20rpx + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -2rpx 12rpx rgba(0,0,0,.08)}.select-all.data-v-4039793c{display:flex;align-items:center}.select-text.data-v-4039793c{font-size:28rpx;color:#333;margin-left:12rpx}.selected-info.data-v-4039793c{display:flex;align-items:baseline;gap:16rpx}.selected-count.data-v-4039793c{font-size:26rpx;color:#666}.selected-total.data-v-4039793c{font-size:32rpx;font-weight:700;color:#36f}.batch-delete.data-v-4039793c{margin-left:16rpx}.batch-delete-btn.data-v-4039793c{font-size:28rpx;color:#fff;padding:12rpx 24rpx;background:#ff4d4f;border-radius:8rpx}