From 2a2049084f98a01027a6c7d0074c96f421e20284 Mon Sep 17 00:00:00 2001 From: qijq <624811160@qq.com> Date: Mon, 11 Aug 2025 09:02:27 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java-mall-app-shop-admin/App.vue | 12 +- java-mall-app-shop-admin/api/order.js | 22 +++- .../pages/my/shopInfo.vue | 4 +- .../order/components/retrunOrderItem.vue | 2 +- .../pages/order/order.vue | 57 ++++++--- .../warehouse/manage/addAndEditProduct.vue | 3 + .../warehouse/manage/specificationOfGood.vue | 4 + .../static/mp3/{2.MP3 => bufen.MP3} | Bin .../static/mp3/{3.MP3 => chaoshi.MP3} | Bin .../static/mp3/{4.MP3 => tuihuo.MP3} | Bin .../static/mp3/{1.MP3 => yuyue.MP3} | Bin java-mall-app-shop-admin/store/index.js | 2 + .../store/modules/push.js | 117 ++++++++++++++++++ .../store/modules/user.js | 3 +- java-mall-app-shop-admin/utils/http.js | 2 + 15 files changed, 197 insertions(+), 31 deletions(-) rename java-mall-app-shop-admin/static/mp3/{2.MP3 => bufen.MP3} (100%) rename java-mall-app-shop-admin/static/mp3/{3.MP3 => chaoshi.MP3} (100%) rename java-mall-app-shop-admin/static/mp3/{4.MP3 => tuihuo.MP3} (100%) rename java-mall-app-shop-admin/static/mp3/{1.MP3 => yuyue.MP3} (100%) create mode 100644 java-mall-app-shop-admin/store/modules/push.js diff --git a/java-mall-app-shop-admin/App.vue b/java-mall-app-shop-admin/App.vue index a8fff47..05f6264 100644 --- a/java-mall-app-shop-admin/App.vue +++ b/java-mall-app-shop-admin/App.vue @@ -113,21 +113,13 @@ export default { if (res.data) { const app = getApp(); if (!app.globalData.isAppActive) { - // 读取历史数据 - const ordrPushHistoryList = - uni.getStorageSync("PUSH_MSG_DATA") || []; - // 追加新数据(确保 historyList 是数组) - const newList = Array.isArray(ordrPushHistoryList) - ? [...ordrPushHistoryList, res.data] - : [res.data]; - // 存储更新后的数组 - uni.setStorageSync("PUSH_MSG_DATA", newList); // 创建通知 + uni.setStorageSync("pendingPushData", res.data); uni.createPushMessage(res.data); } else { console.log("应用已打开,直接处理消息"); // 可以在这里直接更新 UI - this.$store.dispatch("order/orderPush", res.data); + this.$store.dispatch("push/setPush", res.data); } } }); diff --git a/java-mall-app-shop-admin/api/order.js b/java-mall-app-shop-admin/api/order.js index 3a3603f..7634692 100644 --- a/java-mall-app-shop-admin/api/order.js +++ b/java-mall-app-shop-admin/api/order.js @@ -2,7 +2,7 @@ import http from "../utils/http"; import config from "../config/config"; /** - * 获取订单列表 + * 获取同城订单列表 * @author Seven * @data 2025-3-28 * @param { @@ -26,6 +26,26 @@ export function GetOrderList(params) { }); } +/** + * 获取同城订单详情 + * @author Seven + * @data 2025-3-28 + * @param { + * orderId:"DD-2025070723-1" + * } + * @returns { } + * @see https://mall.gpxscs.cn/admin/shop/shop-order-base/mch/order/detail + */ + +export function GetOrderDetail(params) { + return http({ + url: "/shop/shop-order-base/mch/order/detail", + method: "post", + data: params, + baseURL: config.adminApi, + }); +} + /** * 获取退货订单列表 * @author Seven diff --git a/java-mall-app-shop-admin/pages/my/shopInfo.vue b/java-mall-app-shop-admin/pages/my/shopInfo.vue index dd69172..9de9255 100644 --- a/java-mall-app-shop-admin/pages/my/shopInfo.vue +++ b/java-mall-app-shop-admin/pages/my/shopInfo.vue @@ -235,7 +235,9 @@ export default { }); }, handleShowTime() { - this.$refs["time"].open(); + uni.navigateTo({ + url: "/pages/my/storeBusinessStatus/businessStatus", + }); }, handleTimeRange(e) { this.form.businessTime = e[0] + e[1]; diff --git a/java-mall-app-shop-admin/pages/order/components/retrunOrderItem.vue b/java-mall-app-shop-admin/pages/order/components/retrunOrderItem.vue index 91d3efa..5c62815 100644 --- a/java-mall-app-shop-admin/pages/order/components/retrunOrderItem.vue +++ b/java-mall-app-shop-admin/pages/order/components/retrunOrderItem.vue @@ -3,7 +3,7 @@ # - {{ currOrderItem.order_pickup_num }} + {{ currOrderItem.orderNum }} {{ currOrderItem.return_state_name }} diff --git a/java-mall-app-shop-admin/pages/order/order.vue b/java-mall-app-shop-admin/pages/order/order.vue index 1673df8..e9451db 100644 --- a/java-mall-app-shop-admin/pages/order/order.vue +++ b/java-mall-app-shop-admin/pages/order/order.vue @@ -599,23 +599,46 @@ export default { }, computed: { ...mapState("user", ["userInfo"]), - ...mapState("order", ["pushOrderInfo"]), + ...mapState("push", ["orderDetail", "orderStatus"]), }, watch: { - pushOrderInfo: { - handler(newValue, oldValue) { + orderDetail: { + handler(newValue) { + if (newValue && newValue.order_id) { + console.log("orderDetail", newValue); + + // 找到数组中匹配的订单索引 + const index = this.orderInfo.order_page_list.records.findIndex( + (item) => item.order_id === newValue.order_id + ); + + // 如果找到匹配的订单 + if (index !== -1) { + // 保留原有的orderNum + const originalOrderNum = + this.orderInfo.order_page_list.records[index].orderNum; + + this.$set(this.orderInfo.order_page_list.records, index, { + ...this.orderInfo.order_page_list.records[index], + ...newValue, + orderNum: originalOrderNum, + }); + } + } + }, + deep: true, + }, + orderStatus: { + handler(newValue) { if (newValue) { - console.log("order watch", newValue); - - this.orderInfo.order_page_list.records.unshift(newValue); - - this.orderInfo.order_page_list.records = - this.orderInfo.order_page_list.records.map((item, index) => ({ - ...item, // 保留原有属性 - orderNum: index + 1, // 重新分配 orderNum (1, 2, 3, ...) - })); - - console.log(this.orderInfo.order_page_list.records); + this.pageNum = 1; + if (newValue == "mchRetrunOrderList") { + console.log("触发getSalesReturnOrderList"); + this.getSalesReturnOrderList(); + } else { + this.getOrderList(false); + console.log("触发getOrderList"); + } } }, }, @@ -630,7 +653,7 @@ export default { this.getOrderList(); }, methods: { - async getOrderList() { + async getOrderList(isLoding = true) { let accountDashboard = uni.getStorageSync("accountDashboard"); let auditInfo = uni.getStorageSync("auditInfo"); @@ -648,7 +671,9 @@ export default { if (this.loadingDownOnlinData) { this.showOrderLoading = false; } else { - this.showOrderLoading = true; + if (isLoding) { + this.showOrderLoading = true; + } } this.params = { diff --git a/java-mall-app-shop-admin/pages/warehouse/manage/addAndEditProduct.vue b/java-mall-app-shop-admin/pages/warehouse/manage/addAndEditProduct.vue index 280d3bd..342dec7 100644 --- a/java-mall-app-shop-admin/pages/warehouse/manage/addAndEditProduct.vue +++ b/java-mall-app-shop-admin/pages/warehouse/manage/addAndEditProduct.vue @@ -587,6 +587,7 @@ export default { }, showDelectPopup: false, cheboxList: [], + productSpec: [], }; }, computed: { @@ -916,6 +917,8 @@ export default { }; if (this.cheboxList.length > 0 || this.productSpec.length > 0) { + console.log(this.cheboxList, this.productSpec); + obj.product_spec = JSON.stringify([ { id: item.spec_id, diff --git a/java-mall-app-shop-admin/pages/warehouse/manage/specificationOfGood.vue b/java-mall-app-shop-admin/pages/warehouse/manage/specificationOfGood.vue index 9c38909..414534c 100644 --- a/java-mall-app-shop-admin/pages/warehouse/manage/specificationOfGood.vue +++ b/java-mall-app-shop-admin/pages/warehouse/manage/specificationOfGood.vue @@ -782,6 +782,10 @@ export default { if (!isVerify) return; + this.checkboxValue = this.checkboxValue.filter( + (item) => item !== null && item !== undefined + ); + this.$emit( "handerSpecificationInfoList", this.specificationInfoList, diff --git a/java-mall-app-shop-admin/static/mp3/2.MP3 b/java-mall-app-shop-admin/static/mp3/bufen.MP3 similarity index 100% rename from java-mall-app-shop-admin/static/mp3/2.MP3 rename to java-mall-app-shop-admin/static/mp3/bufen.MP3 diff --git a/java-mall-app-shop-admin/static/mp3/3.MP3 b/java-mall-app-shop-admin/static/mp3/chaoshi.MP3 similarity index 100% rename from java-mall-app-shop-admin/static/mp3/3.MP3 rename to java-mall-app-shop-admin/static/mp3/chaoshi.MP3 diff --git a/java-mall-app-shop-admin/static/mp3/4.MP3 b/java-mall-app-shop-admin/static/mp3/tuihuo.MP3 similarity index 100% rename from java-mall-app-shop-admin/static/mp3/4.MP3 rename to java-mall-app-shop-admin/static/mp3/tuihuo.MP3 diff --git a/java-mall-app-shop-admin/static/mp3/1.MP3 b/java-mall-app-shop-admin/static/mp3/yuyue.MP3 similarity index 100% rename from java-mall-app-shop-admin/static/mp3/1.MP3 rename to java-mall-app-shop-admin/static/mp3/yuyue.MP3 diff --git a/java-mall-app-shop-admin/store/index.js b/java-mall-app-shop-admin/store/index.js index 87b8e60..f55ee9a 100644 --- a/java-mall-app-shop-admin/store/index.js +++ b/java-mall-app-shop-admin/store/index.js @@ -3,6 +3,7 @@ import Vuex from "vuex"; import user from "./modules/user"; import order from "./modules/order"; import audit from "./modules/audit"; +import push from "./modules/push"; Vue.use(Vuex); @@ -11,6 +12,7 @@ const store = new Vuex.Store({ user, order, audit, + push, }, }); diff --git a/java-mall-app-shop-admin/store/modules/push.js b/java-mall-app-shop-admin/store/modules/push.js new file mode 100644 index 0000000..6a0289d --- /dev/null +++ b/java-mall-app-shop-admin/store/modules/push.js @@ -0,0 +1,117 @@ +import { GetOrderDetail } from "@/api/order"; +const defaultState = () => { + return { + pushBase: { + unipush_version: "", + payload: { + orderId: "", + category: "", + }, + title: "", + content: "", + }, + orderDetail: {}, + orderStatus: "", + appOpenStatus: false, + }; +}; + +const state = defaultState(); + +const getters = {}; + +const mutations = { + SET_PUSH(state, pushBase) { + state.pushBase = pushBase; + }, + SET_ORDER_DETAIL(state, orderDetail) { + state.orderDetail = orderDetail; + }, + SET_ORDER_STATUS_API(state, orderStatus) { + state.orderStatus = orderStatus; + }, + SET_APP_OPENT_STATUS(state, appOpenStatus) { + state.appOpenStatus = appOpenStatus; + }, +}; + +const actions = { + async setPush({ commit }, pushBase) { + console.log(pushBase); + commit("SET_PUSH", pushBase); + // 判断唤醒 + const pendingPushData = uni.getStorageSync("pendingPushData"); + + const AUDIO = uni.createInnerAudioContext(); + AUDIO.stop(); + switch (pushBase.payload.category) { + case "mchContract": + uni.navigateTo({ url: "/pages/audit/checkAudit" }); + break; + // 订单详情 + case "mchOrderDetail": + // AUDIO.src = "../../static/mp3/jinxingzhong.MP3"; + // AUDIO.play(); + + let params = { + orderId: pushBase.payload.orderId, + }; + + let res = await GetOrderDetail(params); + console.log(res); + if (res && res.status == 200) { + commit("SET_ORDER_DETAIL", res.data); + if (pendingPushData) { + uni.removeStorageSync("pendingPushData"); + uni.navigateTo({ + url: "/pages/order/order", + }); + } + } + break; + // 订单列表 + case "mchOnLineOrderList": + AUDIO.src = "../../static/mp3/jinxingzhong.MP3"; + AUDIO.play(); + commit("SET_ORDER_STATUS_API", pushBase.payload.category); + if (pendingPushData) { + uni.removeStorageSync("pendingPushData"); + uni.navigateTo({ + url: "/pages/order/order", + }); + } + break; + // 异常订单 + case "mchAbnormalOrderList": + // AUDIO.src = require("@static/mp3/1.MP3"); + commit("SET_ORDER_STATUS_API", pushBase.payload.category); + if (pendingPushData) { + uni.removeStorageSync("pendingPushData"); + uni.navigateTo({ + url: "/pages/order/order", + }); + } + break; + // 退款订单 + case "mchRetrunOrderList": + AUDIO.src = "../../static/mp3/tuihuo.MP3"; + AUDIO.play(); + commit("SET_ORDER_STATUS_API", pushBase.payload.category); + if (pendingPushData) { + uni.removeStorageSync("pendingPushData"); + uni.navigateTo({ + url: "/pages/order/order", + }); + } + break; + } + }, +}; + +export default { + namespaced: true, + state, + getters, + mutations, + actions, +}; diff --git a/java-mall-app-shop-admin/store/modules/user.js b/java-mall-app-shop-admin/store/modules/user.js index 649f3c9..6a9d1d5 100644 --- a/java-mall-app-shop-admin/store/modules/user.js +++ b/java-mall-app-shop-admin/store/modules/user.js @@ -121,10 +121,9 @@ const actions = { params.cid = push_clientid; params.osType = osType; + console.log("push_clientid", push_clientid); // #endif - console.log("push_clientid"); - const res = await GetAccountLogin(params); console.log(res); diff --git a/java-mall-app-shop-admin/utils/http.js b/java-mall-app-shop-admin/utils/http.js index 6f72125..f93de59 100644 --- a/java-mall-app-shop-admin/utils/http.js +++ b/java-mall-app-shop-admin/utils/http.js @@ -42,6 +42,8 @@ service.interceptors.response.use( (response) => { const res = response.data; + console.log(res); + if (res && res.status == 250) { uni.$u.toast(`提示:${res.msg}`);