Commit f14187fb by linjinhong

PODUS待发货状态添加创建物流按钮

parent 63e91d11
......@@ -284,3 +284,16 @@ export function changeLogisticsApi(params: {
params,
)
}
// 创建物流
export function createLogisticsOrderApi(params: {
updateByIdParam: {
id: string | number
dataVersion: number
}
logisticsTrialCalculation: LogisticsData
}) {
return axios.post<never, BaseRespData<never>>(
'factory/podJomallOrderUs/createLogisticsOrder',
params,
)
}
......@@ -178,6 +178,9 @@
</el-button>
<template #dropdown>
<ElDropdownMenu>
<ElDropdownItem @click="getOrderByIdApi('createLogisticsOrder')"
>创建物流</ElDropdownItem
>
<ElDropdownItem @click="getOrderByIdApi('getTrackingNumber')"
>获取跟踪号</ElDropdownItem
>
......@@ -901,7 +904,7 @@
<el-dialog
v-model="isChangeWay"
:close-on-click-modal="false"
:title="`切换物流(当前物流方式:${selection[0]?.logisticsWayName})`"
:title="wayDialogTitle"
>
<el-table
v-loading="isChangeWayLoading"
......@@ -911,7 +914,7 @@
:data="logisticsWayData"
border
highlight-current-row
@current-change="currentChangeWay"
@row-click="(v:LogisticsData) =>rowClick(v, wayDialogTitle)"
>
<el-table-column
label="序号"
......@@ -949,13 +952,13 @@
</el-table-column>
</el-table>
<template #footer>
<el-button :disabled="isChangeWayLoading" @click="isChangeWay = false">
<el-button :disabled="isChangeWayLoading" @click="cancelWayDialog">
取消
</el-button>
<el-button
:loading="isChangeWayLoading"
type="primary"
@click="changeWaySubmit"
@click="changeWaySubmit(wayDialogTitle)"
>
确定
</el-button>
......@@ -992,7 +995,9 @@ import {
getfaceSimplexFileApi,
cancelLogisticsOrderApi,
changeLogisticsApi,
createLogisticsOrderApi,
} from '@/api/podUsOrder'
import { BaseRespData } from '@/types/api'
import TableView from '@/components/TableView.vue'
import {
......@@ -1664,52 +1669,61 @@ const printPodOrder = async () => {
}
/**
* @description: 获取跟踪号、获取打印面单、取消物流订单
* @description: 创建物流、获取跟踪号、获取打印面单、更改物流、取消物流订单
*/
const getOrderByIdApi = async (type: string) => {
if (selection.value.length === 0) {
return ElMessage.warning('请选择数据')
}
let message = ''
let Fn
if (type == 'getTrackingNumber') {
message = '获取跟踪号'
Fn = getTrackingNumberApi
} else if (type == 'getPrintOrder') {
message = '获取打印面单'
Fn = getfaceSimplexFileApi
} else if (type === 'cancelLogisticsOrder') {
message = '取消物流订单'
Fn = cancelLogisticsOrderApi
} else if (type === 'batchChangeLogistics') {
const operationMap: {
[key: string]: {
message: string
Fn: (orderIds: (string | number)[]) => Promise<BaseRespData<never>>
}
} = {
getTrackingNumber: { message: '获取跟踪号', Fn: getTrackingNumberApi },
getPrintOrder: { message: '获取打印面单', Fn: getfaceSimplexFileApi },
cancelLogisticsOrder: {
message: '取消物流订单',
Fn: cancelLogisticsOrderApi,
},
}
if (['batchChangeLogistics', 'createLogisticsOrder'].includes(type)) {
if (selection.value.length !== 1) {
return ElMessage.warning('请选择单条数据')
}
wayDialogTitle.value =
type === 'batchChangeLogistics'
? `切换物流(当前物流方式:${selection.value[0]?.logisticsWayName})`
: '创建物流'
isChangeWay.value = true
const { data } = await getLogisticsCalculation(selection.value[0]?.id)
console.log(selection.value[0])
const { data } = await getLogisticsCalculation(selection.value[0]?.id)
logisticsWayData.value = data
return
}
const operation = operationMap[type]
if (operation) {
try {
await showConfirm(`确定对该订单 ${message}?`, {
await showConfirm(`确定对该订单 ${operation.message}?`, {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
})
const ids = selection.value.map((el) => el.id)
// console.log(Fn)
if (Fn) {
const loading = ElLoading.service({
fullscreen: true,
text: '操作中...',
})
const res = await Fn(ids)
console.log(res)
const res = await operation.Fn(ids)
if (res.code === 200) {
if (isArray(res.data)) {
resultInfo.value = res.data
......@@ -1721,10 +1735,11 @@ const getOrderByIdApi = async (type: string) => {
ElMessage.error(res.message)
}
loading.close()
}
} catch (e) {
console.error(e)
return
}
} else {
ElMessage.warning('未知操作类型')
}
}
//展示返回结果
......@@ -1739,24 +1754,50 @@ const resultConfim = () => {
const changeWayRow = ref<LogisticsData>({} as LogisticsData)
const isChangeWayLoading = ref(false)
const changeWayRef = ref()
const currentChangeWay = (row: LogisticsData) => {
if (row.logisticsWayId == selection.value[0]?.logisticsWayId) {
const wayDialogTitle = ref('')
const rowClick = (row: LogisticsData, title: string) => {
try {
if (title == '创建物流') {
changeWayRow.value = row
} else {
if (row.logisticsWayId === selection.value[0]?.logisticsWayId) {
changeWayRow.value = {} as LogisticsData
return changeWayRef.value?.setCurrentRow()
// nextTick(() => {
changeWayRef.value?.setCurrentRow()
// })
return
}
changeWayRow.value = row
}
} catch (error) {
console.log(error)
}
}
const cancelWayDialog = () => {
changeWayRow.value = {} as LogisticsData
changeWayRef.value?.setCurrentRow()
isChangeWay.value = false
}
const changeWaySubmit = async () => {
//确认物流
const changeWaySubmit = async (title: string) => {
if (!changeWayRow.value?.logisticsWayId) {
return ElMessage.warning('请选择一条物流方式')
}
if (!changeWayRow.value.status) {
return ElMessage.warning('请选择状态为成功的物流方式')
}
let Fn
if (title !== '创建物流') {
if (
changeWayRow.value.logisticsWayId === selection.value[0]?.logisticsWayId
) {
return ElMessage.warning('更改的物流方式不能相同')
}
if (!changeWayRow.value.status) {
return ElMessage.warning('请选择状态为成功的物流方式')
Fn = changeLogisticsApi
} else {
Fn = createLogisticsOrderApi
}
isChangeWayLoading.value = true
try {
......@@ -1768,11 +1809,11 @@ const changeWaySubmit = async () => {
logisticsTrialCalculation: { ...changeWayRow.value },
}
await changeLogisticsApi(params)
await Fn(params)
isChangeWay.value = false
isChangeWayLoading.value = false
ElMessage.success('操作成功')
search()
loadTabData()
} catch (error) {
......
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