Commit a96bb2d7 by qinjianhui

feat: 工厂订单取消后处理功能开发

parent 72632338
import axios from './axios'
import type { BasePaginationData } from '@/types/api'
import type { operateOrderListData } from '@/types/api/factoryOrderNew'
function normalizePodOrderQueryPayload(
data: Record<string, unknown>,
): Record<string, unknown> {
const { receiverCountry, ...rest } = data
if (!Array.isArray(receiverCountry)) {
return data
}
return {
...rest,
...(receiverCountry.length
? { receiverCountry: receiverCountry.join(',') }
: {}),
}
}
export function getCancelOrderProcessListApi(
data: Record<string, unknown>,
currentPage: number,
pageSize: number,
) {
const body = normalizePodOrderQueryPayload({ ...data })
return axios.post<never, BasePaginationData<operateOrderListData>>(
'factory/podOrderOperation/list_page',
{ ...body, status: 'PENDING_SCHEDULE', currentPage, pageSize },
)
}
...@@ -11,7 +11,7 @@ import type { ...@@ -11,7 +11,7 @@ import type {
RestockData, RestockData,
SearchForm, SearchForm,
StatusTreeNode, StatusTreeNode,
} from '@/types/api/factoryOrderNew/factoryOrderNew' } from '@/types/api/factoryOrderNew'
import { ResultInfoDataItem } from '@/types/api/order/common' import { ResultInfoDataItem } from '@/types/api/order/common'
import { ExportParams } from '@/types/api/order/factoryOrderNew' import { ExportParams } from '@/types/api/order/factoryOrderNew'
import type { OrderData } from '@/types/api/podMakeOrder' import type { OrderData } from '@/types/api/podMakeOrder'
......
...@@ -107,6 +107,14 @@ const router = createRouter({ ...@@ -107,6 +107,14 @@ const router = createRouter({
import('@/views/order/factoryOrderNew/index.vue'), import('@/views/order/factoryOrderNew/index.vue'),
}, },
{ {
path:'/order/cancel-order-process',
meta: {
title: '取消后订单处理',
},
component: () =>
import('@/views/order/cancelOrderProcess/index.vue'),
},
{
path: '/pod-cn-order/orderTracking', path: '/pod-cn-order/orderTracking',
meta: { meta: {
title: 'POD(CN)订单跟踪', title: 'POD(CN)订单跟踪',
......
...@@ -151,6 +151,11 @@ const menu: MenuItem[] = [ ...@@ -151,6 +151,11 @@ const menu: MenuItem[] = [
id: 12, id: 12,
label: '工厂订单(NEW)', label: '工厂订单(NEW)',
}, },
{
index: '/order/cancel-order-process',
id: 13,
label: '取消后订单处理',
},
], ],
}, },
{ {
......
import type { PaginationData } from '@/types/api'
export interface StatusTreeNode { export interface StatusTreeNode {
status: string status: string
statusName: string statusName: string
...@@ -271,3 +272,9 @@ export interface PickFailData { ...@@ -271,3 +272,9 @@ export interface PickFailData {
afterOutOccupied?: number afterOutOccupied?: number
afterOutAvailable?: number afterOutAvailable?: number
} }
export type CardLayoutListFetcher = (
payload: Record<string, unknown>,
currentPage: number,
pageSize: number,
) => Promise<PaginationData<operateOrderListData>>
...@@ -85,7 +85,7 @@ import { ...@@ -85,7 +85,7 @@ import {
} from '@/api/logistics' } from '@/api/logistics'
import { createLogisticsOrdersApi } from '@/api/podCnOrder' import { createLogisticsOrdersApi } from '@/api/podCnOrder'
import { FactoryOrderNewListData } from '@/types/api/factoryOrderNew/factoryOrderNew' import { FactoryOrderNewListData } from '@/types/api/factoryOrderNew'
const createLogisticDialogVisible = ref(false) const createLogisticDialogVisible = ref(false)
const props = defineProps<{ const props = defineProps<{
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { updateCustomDeclarationInfoApi } from '@/api/podCnOrder' import { updateCustomDeclarationInfoApi } from '@/api/podCnOrder'
import { FactoryOrderNewListData } from '@/types/api/factoryOrderNew/factoryOrderNew' import { FactoryOrderNewListData } from '@/types/api/factoryOrderNew'
import { import {
CustomDeclarationInfoForm, CustomDeclarationInfoForm,
PodCnOrderListData, PodCnOrderListData,
......
...@@ -196,7 +196,7 @@ import { ...@@ -196,7 +196,7 @@ import {
printPickPdfByBatchNumberApi, printPickPdfByBatchNumberApi,
printProductionPdfByBatchNumberApi, printProductionPdfByBatchNumberApi,
} from '@/api/factoryOrderNew' } from '@/api/factoryOrderNew'
import type { BatchManageData } from '@/types/api/factoryOrderNew/factoryOrderNew' import type { BatchManageData } from '@/types/api/factoryOrderNew'
import type { PaginationData } from '@/types/api' import type { PaginationData } from '@/types/api'
import TableView from '@/components/TableView.vue' import TableView from '@/components/TableView.vue'
import ArrangeDialog from './ArrangeDialog.vue' import ArrangeDialog from './ArrangeDialog.vue'
......
...@@ -293,19 +293,32 @@ import { ...@@ -293,19 +293,32 @@ import {
getFactoryOrderNewLogApi, getFactoryOrderNewLogApi,
} from '@/api/factoryOrderNew' } from '@/api/factoryOrderNew'
import type { PaginationData } from '@/types/api' import type { PaginationData } from '@/types/api'
import type { CardLayoutListFetcher } from '@/types/api/factoryOrderNew'
import usePageList from '@/utils/hooks/usePageList' import usePageList from '@/utils/hooks/usePageList'
import { operateOrderListData } from '@/types/api/factoryOrderNew/factoryOrderNew' import { operateOrderListData } from '@/types/api/factoryOrderNew'
import type { LogListData } from '@/types/api/order' import type { LogListData } from '@/types/api/order'
import LogList from '@/components/LogList.vue' import LogList from '@/components/LogList.vue'
import RightClickMenu from '@/components/RightClickMenu.vue' import RightClickMenu from '@/components/RightClickMenu.vue'
import platformJson from '../../../../json/platform.json' import platformJson from '../../../../json/platform.json'
const props = defineProps<{ const props = defineProps<{
status: string status?: string
queryPayload: Record<string, unknown> queryPayload?: Record<string, unknown>
initPageSize?: number initPageSize?: number
fetchList?: CardLayoutListFetcher
}>() }>()
const buildListPayload = () => {
const payload = { ...props.queryPayload }
if (props.fetchList || props.status === undefined) {
return payload
}
return {
...payload,
status: props.status === 'ALL' ? undefined : props.status,
}
}
const emit = defineEmits<{ const emit = defineEmits<{
'selection-change': [items: operateOrderListData[]] 'selection-change': [items: operateOrderListData[]]
'view-detail': [item: operateOrderListData] 'view-detail': [item: operateOrderListData]
...@@ -324,9 +337,9 @@ const { ...@@ -324,9 +337,9 @@ const {
initPageSize: props.initPageSize || 100, initPageSize: props.initPageSize || 100,
initLoad: false, initLoad: false,
query: async (current, size) => { query: async (current, size) => {
const payload = { const payload = buildListPayload()
...props.queryPayload, if (props.fetchList) {
status: props.status === 'ALL' ? undefined : props.status, return props.fetchList(payload, current, size)
} }
const res = await getCardLayoutListApi(payload, current, size) const res = await getCardLayoutListApi(payload, current, size)
return res.data as unknown as PaginationData<operateOrderListData> return res.data as unknown as PaginationData<operateOrderListData>
...@@ -411,12 +424,19 @@ const rightChange = (code: string) => { ...@@ -411,12 +424,19 @@ const rightChange = (code: string) => {
const openLogDialog = async (item: operateOrderListData) => { const openLogDialog = async (item: operateOrderListData) => {
if (!item.podOrderId) return if (!item.podOrderId) return
const loading = ElLoading.service({
fullscreen: true,
text: '加载中...',
background: 'rgba(0, 0, 0, 0.3)',
})
try { try {
const res = await getFactoryOrderNewLogApi(item.podOrderId as number) const res = await getFactoryOrderNewLogApi(item.podOrderId as number)
logList.value = (res.data || []) as unknown as LogListData[] logList.value = (res.data || []) as unknown as LogListData[]
logVisible.value = true logVisible.value = true
} catch (e) { } catch (e) {
// ignore // ignore
} finally {
loading.close()
} }
} }
......
...@@ -257,7 +257,7 @@ import platformJson from '../../../../json/platform.json' ...@@ -257,7 +257,7 @@ import platformJson from '../../../../json/platform.json'
import type { import type {
operateOrderListData, operateOrderListData,
PickCompleteData, PickCompleteData,
} from '@/types/api/factoryOrderNew/factoryOrderNew' } from '@/types/api/factoryOrderNew'
const emit = defineEmits(['adjustPickOrderSuccess']) const emit = defineEmits(['adjustPickOrderSuccess'])
const props = defineProps<{ const props = defineProps<{
......
...@@ -123,7 +123,7 @@ import { ...@@ -123,7 +123,7 @@ import {
replenishmentCompleteApi, replenishmentCompleteApi,
markStockOutOfApi, markStockOutOfApi,
} from '@/api/factoryOrderNew' } from '@/api/factoryOrderNew'
import type { PickCompleteData } from '@/types/api/factoryOrderNew/factoryOrderNew' import type { PickCompleteData } from '@/types/api/factoryOrderNew'
import type { BaseRespData } from '@/types/api' import type { BaseRespData } from '@/types/api'
import type { import type {
InterProductList, InterProductList,
......
...@@ -71,7 +71,7 @@ import { ref } from 'vue' ...@@ -71,7 +71,7 @@ import { ref } from 'vue'
import { ElMessage, ElMessageBox, ElLoading } from 'element-plus' import { ElMessage, ElMessageBox, ElLoading } from 'element-plus'
import BigNumber from 'bignumber.js' import BigNumber from 'bignumber.js'
import { pickCompleteByIdsDataApi } from '@/api/factoryOrderNew' import { pickCompleteByIdsDataApi } from '@/api/factoryOrderNew'
import type { PickCompleteData } from '@/types/api/factoryOrderNew/factoryOrderNew' import type { PickCompleteData } from '@/types/api/factoryOrderNew'
import TableView from '@/components/TableView.vue' import TableView from '@/components/TableView.vue'
import _ from 'lodash' import _ from 'lodash'
import CreateOutboundDialog from './CreateOutboundDialog.vue' import CreateOutboundDialog from './CreateOutboundDialog.vue'
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
import { reactive } from 'vue' import { reactive } from 'vue'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { getRestockListApi, restockCheckApi } from '@/api/factoryOrderNew' import { getRestockListApi, restockCheckApi } from '@/api/factoryOrderNew'
import type { RestockData } from '@/types/api/factoryOrderNew/factoryOrderNew' import type { RestockData } from '@/types/api/factoryOrderNew'
import TableView from '@/components/TableView.vue' import TableView from '@/components/TableView.vue'
import usePageList from '@/utils/hooks/usePageList' import usePageList from '@/utils/hooks/usePageList'
......
...@@ -141,8 +141,6 @@ export function useOrderDictionaries() { ...@@ -141,8 +141,6 @@ export function useOrderDictionaries() {
getUserMark(), getUserMark(),
getCustomTagList(), getCustomTagList(),
getLogisticsCompanyAllCodelist(), getLogisticsCompanyAllCodelist(),
getReceiverCountryList(),
loadWarehouseList(),
]) ])
} }
......
...@@ -7,7 +7,7 @@ import { ...@@ -7,7 +7,7 @@ import {
getFactoryOrderNewLogApi, getFactoryOrderNewLogApi,
getOperationOrderByIdApi, getOperationOrderByIdApi,
} from '@/api/factoryOrderNew' } from '@/api/factoryOrderNew'
import type { SearchForm } from '@/types/api/factoryOrderNew/factoryOrderNew' import type { SearchForm } from '@/types/api/factoryOrderNew'
import type { import type {
FactoryOrderNewListData, FactoryOrderNewListData,
LogListData, LogListData,
......
...@@ -6,7 +6,7 @@ import { ...@@ -6,7 +6,7 @@ import {
getSuspendStatisticsApi, getSuspendStatisticsApi,
} from '@/api/factoryOrderNew' } from '@/api/factoryOrderNew'
import type { StatusTreeNode } from '@/types/api/order/factoryOrderNew' import type { StatusTreeNode } from '@/types/api/order/factoryOrderNew'
import type { SearchForm } from '@/types/api/factoryOrderNew/factoryOrderNew' import type { SearchForm } from '@/types/api/factoryOrderNew'
interface UseOrderStatusTreeOptions { interface UseOrderStatusTreeOptions {
getQueryPayload: () => Record<string, unknown> getQueryPayload: () => Record<string, unknown>
......
...@@ -1189,6 +1189,8 @@ const { ...@@ -1189,6 +1189,8 @@ const {
craftList, craftList,
warehouseList, warehouseList,
productTypeGroups, productTypeGroups,
getReceiverCountryList,
loadWarehouseList,
loadAllDictionaries, loadAllDictionaries,
} = useOrderDictionaries() } = useOrderDictionaries()
...@@ -2925,6 +2927,8 @@ onMounted(() => { ...@@ -2925,6 +2927,8 @@ onMounted(() => {
loadStatusTreeCounts() loadStatusTreeCounts()
loadAllDictionaries() loadAllDictionaries()
getLogisticsWay() getLogisticsWay()
getReceiverCountryList()
loadWarehouseList()
// 仅用于消除 TS 插件的 unused-vars 警告:template refs 会绑定这两个变量 // 仅用于消除 TS 插件的 unused-vars 警告:template refs 会绑定这两个变量
void treeRef.value void treeRef.value
void tableRef.value void tableRef.value
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment