diff --git a/src/api/sales/order.js b/src/api/sales/order.js index 10dd777..bcfcd72 100644 --- a/src/api/sales/order.js +++ b/src/api/sales/order.js @@ -25,11 +25,11 @@ export const detail = (id) => { method: 'get', }); }; -export const shipList = (orderIs) => { +export const shipList = (orderIds) => { return request({ url: '/mall/trade/admin/tradeOrder/listDeliveryOrder', method: 'get', - params: { orderIs }, + params: { orderIds }, }); }; export const logistics = (id) => { @@ -85,6 +85,19 @@ export const send = (data) => { data, }); }; +export const sendVirtual = (data) => { + return request({ + url: '/mall/trade/admin/tradeOrder/virtualDelivery/' + data, + method: 'put', + }); +}; +export const sendVirtualAll = (data) => { + return request({ + url: '/mall/trade/admin/tradeOrder/batchVirtualDelivery', + method: 'put', + data, + }); +}; export const sendAll = (data) => { return request({ url: '/mall/trade/admin/tradeOrder/batchDelivery', diff --git a/src/store/modules/sales/category.js b/src/store/modules/sales/category.js index 35126d9..57b9eb1 100644 --- a/src/store/modules/sales/category.js +++ b/src/store/modules/sales/category.js @@ -3,7 +3,7 @@ import { ElMessage, ElMessageBox } from '@/plugins/element-plus'; const state = () => ({ code: 'CategoryManagement', condition: { - orderIs: [], + orderIds: [], }, list: [], total: 0, diff --git a/src/store/modules/sales/orderShip.js b/src/store/modules/sales/orderShip.js index 209447b..7c1084b 100644 --- a/src/store/modules/sales/orderShip.js +++ b/src/store/modules/sales/orderShip.js @@ -4,7 +4,7 @@ import { dict } from '@/plugins/global-api'; const state = () => ({ code: 'OrderShipManagement', condition: { - orderIs: [], + orderIds: [], }, list: [], total: 0, @@ -25,7 +25,7 @@ const mutations = { }; const actions = { search: async ({ state }) => { - let res = await api.shipList(state.condition.orderIs.join(',')); + let res = await api.shipList(state.condition.orderIds.join(',')); if (!res) { ElMessage.error('查询发货订单列表失败'); } @@ -37,11 +37,18 @@ const actions = { company: await api.searchShip(), }); }, - save: async ({ state }, data) => { + save: async ({ state, dispatch }, data) => { let res = null; - if (data.every((item) => item.logistics.companyCode && item.logistics.trackingNo)) { - res = await api.sendAll( - data.map((item) => { + if (data.every((item) => item.orderType === 4 || (item.logistics.companyCode && item.logistics.trackingNo))) { + res = await api.sendVirtualAll({ + orderIds: data.filter((item) => item.orderType === 4).map((item) => item.orderId), + }); + if (!res) { + ElMessage.error('虚拟发货失败'); + } + data = data + .filter((item) => item.orderType !== 4) + .map((item) => { return { companyCode: item.logistics.companyCode, companyName: dict(state.opts.company, item.logistics.companyCode, { @@ -51,10 +58,11 @@ const actions = { orderId: item.orderId, trackingNo: item.logistics.trackingNo, }; - }) - ); + }); + res = !data.length || (await api.sendAll(data)); if (res) { ElMessage.success('批量发货成功'); + dispatch('order/search', {}, { root: true }); } else { ElMessage.error('批量发货失败'); } diff --git a/src/store/modules/sales/product.js b/src/store/modules/sales/product.js index cd3bcbd..8e8c6a2 100644 --- a/src/store/modules/sales/product.js +++ b/src/store/modules/sales/product.js @@ -4,7 +4,7 @@ import { ElMessage, ElMessageBox } from '@/plugins/element-plus'; const state = () => ({ code: 'ProductManagement', condition: { - orderIs: [], + orderIds: [], }, list: [], total: 0, @@ -137,10 +137,10 @@ const actions = { enable: async ({ dispatch }, data) => { let res = await api.enable(data); if (res) { - ElMessage.success('保存成功'); + ElMessage.success((data.isEnable ? '上架' : '下架') + '成功'); dispatch('search'); } else { - ElMessage.error('保存失败'); + ElMessage.error((data.isEnable ? '上架' : '下架') + '失败'); } return res; }, diff --git a/src/views/operation/limit/product.vue b/src/views/operation/limit/product.vue index a0700a0..0bd676f 100644 --- a/src/views/operation/limit/product.vue +++ b/src/views/operation/limit/product.vue @@ -44,7 +44,7 @@ - + @@ -64,6 +64,10 @@ const total = computed(() => store.state.limitProduct.total); const opts = computed(() => store.state.limitProduct.opts); + const currentTimeRange = computed(() => + unref(opts).timeRange.find((item) => item.id === unref(state).condition.activityTimeId) + ); + /* 查询订单 */ const state = reactive({ condition: { diff --git a/src/views/sales/order/detail.vue b/src/views/sales/order/detail.vue index ea313b6..437e4bd 100644 --- a/src/views/sales/order/detail.vue +++ b/src/views/sales/order/detail.vue @@ -9,12 +9,16 @@
@@ -144,6 +158,7 @@ import OrderTrack from './track.vue'; const store = useStore(); const route = useRoute(); + const router = useRouter(); const opts = computed(() => store.state.order.opts); if (!unref(opts).init) { store.dispatch('order/load'); @@ -217,12 +232,26 @@ const handleTrack = () => { unref(refsOrderTrack).show(state.form.orderId); }; + + const handleUser = () => { + router.push({ + name: 'CustomerManagement', + query: { + account: state.form.userPhone, + }, + }); + };