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("../../../stores/order.js"),a=e.defineComponent({__name:"list",setup(a){const l=t.useOrderStore(),d=e.ref(""),i=e.ref("all"),n=[{label:"全部",value:"all"},{label:"待处理",value:"pending"},{label:"已完成",value:"completed"},{label:"已取消",value:"cancelled"}],r=e.computed(()=>{let e=l.orders;if("all"!==i.value&&(e=e.filter(e=>e.status===i.value)),d.value){const t=d.value.toLowerCase();e=e.filter(e=>e.id.toLowerCase().includes(t)||e.name.toLowerCase().includes(t))}return[...e].reverse()}),o=()=>{e.index.redirectTo({url:"/pages/admin/index"})},s=()=>{e.index.redirectTo({url:"/pages/admin/price/list"})},u=()=>{e.index.redirectTo({url:"/pages/admin/user/list"})};return e.onMounted(()=>{e.index.getStorageSync("admin_login")?l.loadOrders():e.index.redirectTo({url:"/pages/admin/login"})}),(t,a)=>e.e({a:d.value,b:e.o(e=>d.value=e.detail.value),c:e.f(n,(t,a,l)=>({a:e.t(t.label),b:t.value,c:i.value===t.value?1:"",d:e.o(e=>i.value=t.value,t.value)})),d:e.f(r.value,(t,a,d)=>{return e.e({a:e.t(t.id),b:e.t((i=t.status,{pending:"待处理",completed:"已完成",cancelled:"已取消"}[i]||i)),c:e.n(t.status),d:e.t(t.name),e:e.t(t.weight?t.weight+"kg":t.count?t.count+"个":"-"),f:e.t(t.unitPrice),g:e.t("kg"===t.unit?"kg":"个"),h:e.t(t.createTime),i:e.t(t.amount.toFixed(2)),j:"pending"===t.status},"pending"===t.status?{k:e.o(a=>{return d=t.id,void e.index.showModal({title:"确认订单",content:"确定要确认此订单吗?",success:t=>{t.confirm&&(l.updateOrderStatus(d,"completed"),e.index.showToast({title:"已确认",icon:"success"}))}});var d},t.id)}:{},{l:"cancelled"!==t.status},"cancelled"!==t.status?{m:e.o(a=>{return d=t.id,void e.index.showModal({title:"取消订单",content:"确定要取消此订单吗?",success:t=>{t.confirm&&(l.updateOrderStatus(d,"cancelled"),e.index.showToast({title:"已取消",icon:"success"}))}});var d},t.id)}:{},{n:t.id,o:e.o(a=>{return l=t.id,void e.index.navigateTo({url:`/pages/order/detail?id=${l}`});var l},t.id)});var i}),e:0===r.value.length},(r.value.length,{}),{f:e.o(o),g:e.o(s),h:e.o(u)})}}),l=e._export_sfc(a,[["__scopeId","data-v-0ece1262"]]);wx.createPage(l);
@@ -0,0 +1,5 @@
{
"navigationStyle": "custom",
"navigationBarTitleText": "订单管理",
"usingComponents": {}
}
@@ -0,0 +1 @@
<view class="admin-container data-v-0ece1262"><view class="admin-header data-v-0ece1262"><view class="header-left data-v-0ece1262"><text class="header-title data-v-0ece1262">订单管理</text><text class="header-subtitle data-v-0ece1262">全部订单</text></view></view><view class="search-bar data-v-0ece1262"><view class="search-input-wrap data-v-0ece1262"><text class="search-icon data-v-0ece1262">🔍</text><input type="text" class="search-input data-v-0ece1262" placeholder="搜索订单号或品类" value="{{a}}" bindinput="{{b}}"/></view></view><view class="filter-bar data-v-0ece1262"><view wx:for="{{c}}" wx:for-item="filter" wx:key="b" class="{{['filter-item', 'data-v-0ece1262', filter.c && 'active']}}" bindtap="{{filter.d}}">{{filter.a}}</view></view><view class="order-list data-v-0ece1262"><view wx:for="{{d}}" wx:for-item="order" wx:key="n" class="order-card data-v-0ece1262" bindtap="{{order.o}}"><view class="order-header data-v-0ece1262"><view class="order-id data-v-0ece1262">订单? {{order.a}}</view><view class="{{['order-status', 'data-v-0ece1262', order.c]}}">{{order.b}}</view></view><view class="order-info data-v-0ece1262"><view class="info-row data-v-0ece1262"><text class="info-label data-v-0ece1262">品类:</text><text class="info-value data-v-0ece1262">{{order.d}}</text></view><view class="info-row data-v-0ece1262"><text class="info-label data-v-0ece1262">重量:</text><text class="info-value data-v-0ece1262">{{order.e}}</text></view><view class="info-row data-v-0ece1262"><text class="info-label data-v-0ece1262">单价:</text><text class="info-value data-v-0ece1262">¥{{order.f}}/{{order.g}}</text></view><view class="info-row data-v-0ece1262"><text class="info-label data-v-0ece1262">时间:</text><text class="info-value data-v-0ece1262">{{order.h}}</text></view></view><view class="order-footer data-v-0ece1262"><text class="total-amount data-v-0ece1262">¥{{order.i}}</text><view class="order-actions data-v-0ece1262"><view wx:if="{{order.j}}" class="action-btn confirm data-v-0ece1262" catchtap="{{order.k}}"> 确认 </view><view wx:if="{{order.l}}" class="action-btn cancel data-v-0ece1262" catchtap="{{order.m}}"> 取消 </view></view></view></view></view><view wx:if="{{e}}" class="empty-state data-v-0ece1262"><text class="empty-icon data-v-0ece1262">📭</text><text class="empty-text data-v-0ece1262">暂无订单</text></view><view class="tab-bar data-v-0ece1262"><view class="tab-item data-v-0ece1262" bindtap="{{f}}"><text class="tab-icon data-v-0ece1262">🏠</text><text class="tab-text data-v-0ece1262">首页</text></view><view class="tab-item active data-v-0ece1262"><text class="tab-icon data-v-0ece1262">📋</text><text class="tab-text data-v-0ece1262">订单</text></view><view class="tab-item data-v-0ece1262" bindtap="{{g}}"><text class="tab-icon data-v-0ece1262">💰</text><text class="tab-text data-v-0ece1262">价格</text></view><view class="tab-item data-v-0ece1262" bindtap="{{h}}"><text class="tab-icon data-v-0ece1262">👤</text><text class="tab-text data-v-0ece1262">用户</text></view></view></view>
@@ -0,0 +1 @@
.admin-container.data-v-0ece1262{min-height:100vh;background:#f5f7fa;padding-bottom:120rpx}.admin-header.data-v-0ece1262{background:linear-gradient(135deg,#36f,#254edb);padding:48rpx 32rpx}.header-left.data-v-0ece1262{color:#fff}.header-title.data-v-0ece1262{font-size:40rpx;font-weight:700;display:block}.header-subtitle.data-v-0ece1262{font-size:24rpx;opacity:.8;margin-top:4rpx}.search-bar.data-v-0ece1262{padding:24rpx 32rpx}.search-input-wrap.data-v-0ece1262{display:flex;align-items:center;background:#fff;border-radius:40rpx;padding:0 24rpx;height:72rpx;box-shadow:0 4rpx 12rpx rgba(0,0,0,.05)}.search-icon.data-v-0ece1262{font-size:28rpx;margin-right:16rpx}.search-input.data-v-0ece1262{flex:1;font-size:28rpx}.filter-bar.data-v-0ece1262{display:flex;gap:16rpx;padding:0 32rpx 24rpx;overflow-x:auto}.filter-item.data-v-0ece1262{padding:12rpx 28rpx;background:#fff;border-radius:24rpx;font-size:26rpx;color:#666;white-space:nowrap}.filter-item.active.data-v-0ece1262{background:#36f;color:#fff}.order-list.data-v-0ece1262{padding:0 32rpx}.order-card.data-v-0ece1262{background:#fff;border-radius:16rpx;padding:24rpx;margin-bottom:24rpx;box-shadow:0 4rpx 12rpx rgba(0,0,0,.05)}.order-header.data-v-0ece1262{display:flex;justify-content:space-between;align-items:center;margin-bottom:20rpx;padding-bottom:16rpx;border-bottom:1rpx solid #f0f0f0}.order-id.data-v-0ece1262{font-size:26rpx;color:#666}.order-status.data-v-0ece1262{font-size:22rpx;padding:6rpx 16rpx;border-radius:20rpx}.order-status.pending.data-v-0ece1262{background:#fff3e0;color:#f59e0b}.order-status.completed.data-v-0ece1262{background:#dcfce7;color:#36f}.order-status.cancelled.data-v-0ece1262{background:#fef2f2;color:#ef4444}.order-info.data-v-0ece1262{margin-bottom:20rpx}.info-row.data-v-0ece1262{display:flex;margin-bottom:12rpx}.info-row.data-v-0ece1262:last-child{margin-bottom:0}.info-label.data-v-0ece1262{font-size:26rpx;color:#999;width:100rpx}.info-value.data-v-0ece1262{font-size:26rpx;color:#333}.order-footer.data-v-0ece1262{display:flex;justify-content:space-between;align-items:center;padding-top:16rpx;border-top:1rpx solid #f0f0f0}.total-amount.data-v-0ece1262{font-size:32rpx;font-weight:700;color:#36f}.order-actions.data-v-0ece1262{display:flex;gap:16rpx}.action-btn.data-v-0ece1262{padding:12rpx 28rpx;border-radius:24rpx;font-size:24rpx}.action-btn.confirm.data-v-0ece1262{background:#36f;color:#fff}.action-btn.cancel.data-v-0ece1262{background:#f5f5f5;color:#666}.empty-state.data-v-0ece1262{display:flex;flex-direction:column;align-items:center;padding:100rpx 0}.empty-icon.data-v-0ece1262{font-size:96rpx;margin-bottom:24rpx}.empty-text.data-v-0ece1262{font-size:28rpx;color:#999}.tab-bar.data-v-0ece1262{position:fixed;bottom:0;left:0;right:0;height:100rpx;background:#fff;display:flex;box-shadow:0 -4rpx 12rpx rgba(0,0,0,.05)}.tab-item.data-v-0ece1262{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.tab-item.active .tab-icon.data-v-0ece1262,.tab-item.active .tab-text.data-v-0ece1262{color:#36f}.tab-icon.data-v-0ece1262{font-size:36rpx}.tab-text.data-v-0ece1262{font-size:22rpx;color:#999;margin-top:4rpx}