Commit a7c53064 by wuqian
parents 3b4b818b 07643510
...@@ -9,6 +9,7 @@ import { ...@@ -9,6 +9,7 @@ import {
WarehouseListData, WarehouseListData,
LogisticsData, LogisticsData,
ExportParams, ExportParams,
InterceptStateGroupData,
} from '@/types/api/podUsOrder' } from '@/types/api/podUsOrder'
import axios from './axios' import axios from './axios'
import { PodMakeOrderData } from '@/types/api/podMakeOrder' import { PodMakeOrderData } from '@/types/api/podMakeOrder'
...@@ -43,6 +44,13 @@ export function getOrderTabData() { ...@@ -43,6 +44,13 @@ export function getOrderTabData() {
'/factory/podJomallOrderUs/findStateGroupList', '/factory/podJomallOrderUs/findStateGroupList',
) )
} }
// 拦截状态数量
export function getgetInterceptStateGroupList() {
return axios.get<never, BaseRespData<InterceptStateGroupData>>(
'factory/podJomallOrderUs/findInterceptStateGroupList',
)
}
export function getOrderList( export function getOrderList(
params: SearchForm, params: SearchForm,
currentPage: number, currentPage: number,
...@@ -505,3 +513,25 @@ export function updateToWaitShipmentApi(params: { ...@@ -505,3 +513,25 @@ export function updateToWaitShipmentApi(params: {
params, params,
) )
} }
// 拦截状态改变
export function interceptUpdateApi(params: {
orderIds: (string | number)[]
interceptStatus: number
}) {
return axios.post<never, BaseRespData<never>>(
`factory/podJomallOrderUs/updateInterceptStatus`,
params,
)
}
// 驳回
export function rejectToApi(params: {
orderStatus: string
productList: ProductList[]
reasonStr: string
}) {
return axios.post<never, BaseRespData<never>>(
`factory/podJomallOrderUs/rejectTo`,
params,
)
}
...@@ -6,7 +6,7 @@ export interface Tab { ...@@ -6,7 +6,7 @@ export interface Tab {
export interface ExportParams extends SearchForm { export interface ExportParams extends SearchForm {
idList?: number[] idList?: number[]
exportAll: boolean exportAll: boolean
status?:string status?: string
} }
export interface SearchForm { export interface SearchForm {
...@@ -34,6 +34,7 @@ export interface SearchForm { ...@@ -34,6 +34,7 @@ export interface SearchForm {
batchArrangeNumber?: string batchArrangeNumber?: string
craftCode?: string craftCode?: string
thirdStockSku?: string thirdStockSku?: string
interceptStatus?: number | string
} }
export interface PodUsOrderListData { export interface PodUsOrderListData {
id: number id: number
...@@ -127,6 +128,7 @@ export interface ProductList { ...@@ -127,6 +128,7 @@ export interface ProductList {
supplierProductNo?: string | null supplierProductNo?: string | null
replenishmentSumNum?: number | null replenishmentSumNum?: number | null
batchArrangeNumber?: string | null batchArrangeNumber?: string | null
interceptStatus?: number | null
} }
export interface cardImages { export interface cardImages {
title: string title: string
...@@ -201,3 +203,12 @@ export interface CraftListData { ...@@ -201,3 +203,12 @@ export interface CraftListData {
craftName: string craftName: string
craftCode: string craftCode: string
} }
export interface InterceptStateGroupData {
shipment: {
[key: string]: number
}
production: {
[key: string]: number
}
}
...@@ -422,6 +422,7 @@ const renderItemBox = (bool: boolean) => { ...@@ -422,6 +422,7 @@ const renderItemBox = (bool: boolean) => {
if (renderLock) return if (renderLock) return
renderLock = true renderLock = true
let boxItem = podBoxList.value.find((item) => item.box === boxIndex.value) let boxItem = podBoxList.value.find((item) => item.box === boxIndex.value)
if (!boxItem) boxItem = { data: { productList: [] } } if (!boxItem) boxItem = { data: { productList: [] } }
const { data } = boxItem const { data } = boxItem
data?.productList?.forEach((el) => { data?.productList?.forEach((el) => {
......
...@@ -329,7 +329,11 @@ ...@@ -329,7 +329,11 @@
</ElButton> </ElButton>
</span> --> </span> -->
<span <span
v-if="status === 'PICKING' || status === 'TO_BE_REPLENISHMENT'" v-if="
status === 'PICKING' ||
status === 'TO_BE_REPLENISHMENT' ||
status === 'IN_PRODUCTION'
"
class="item" class="item"
> >
<ElButton type="primary" @click="printProductionOrder"> <ElButton type="primary" @click="printProductionOrder">
...@@ -412,7 +416,7 @@ ...@@ -412,7 +416,7 @@
<ElDropdownMenu> <ElDropdownMenu>
<ElDropdownItem <ElDropdownItem
:disabled=" :disabled="
selection.length === 0 || (selection.length === 0 && cardSelection.length === 0) ||
selection.some((item) => item.shipmentType !== 1) selection.some((item) => item.shipmentType !== 1)
" "
@click="getOrderByIdApi('createLogisticsOrder')" @click="getOrderByIdApi('createLogisticsOrder')"
...@@ -420,7 +424,7 @@ ...@@ -420,7 +424,7 @@
> >
<ElDropdownItem <ElDropdownItem
:disabled=" :disabled="
selection.length === 0 || (selection.length === 0 && cardSelection.length === 0) ||
selection.some((item) => item.shipmentType !== 1) selection.some((item) => item.shipmentType !== 1)
" "
@click="getOrderByIdApi('getTrackingNumber')" @click="getOrderByIdApi('getTrackingNumber')"
...@@ -428,7 +432,7 @@ ...@@ -428,7 +432,7 @@
> >
<ElDropdownItem <ElDropdownItem
:disabled=" :disabled="
selection.length === 0 || (selection.length === 0 && cardSelection.length === 0) ||
selection.some((item) => item.shipmentType !== 1) selection.some((item) => item.shipmentType !== 1)
" "
@click="getOrderByIdApi('getPrintOrder')" @click="getOrderByIdApi('getPrintOrder')"
...@@ -436,7 +440,7 @@ ...@@ -436,7 +440,7 @@
> >
<ElDropdownItem <ElDropdownItem
:disabled=" :disabled="
selection.length === 0 || (selection.length === 0 && cardSelection.length === 0) ||
selection.some((item) => item.shipmentType !== 1) selection.some((item) => item.shipmentType !== 1)
" "
@click="getOrderByIdApi('cancelLogisticsOrder')" @click="getOrderByIdApi('cancelLogisticsOrder')"
...@@ -475,12 +479,36 @@ ...@@ -475,12 +479,36 @@
</span> </span>
<span <span
v-if=" v-if="
status === 'INTERCEPTED' &&
(interceptCurrent === 1 || interceptCurrent === 4)
"
class="item"
>
<ElButton type="success" @click="interceptChange(true)">
拦截成功
</ElButton>
</span>
<span
v-if="
status === 'INTERCEPTED' &&
(interceptCurrent === 1 || interceptCurrent === 4)
"
class="item"
>
<ElButton type="danger" @click="interceptChange(false)">
拦截失败
</ElButton>
</span>
<span
v-if="
status === 'TO_BE_CONFIRMED' || status === 'TO_BE_CONFIRMED' ||
status === 'PICKING' || status === 'PICKING' ||
status === 'STOCK_OUT' || status === 'STOCK_OUT' ||
status === 'EXCEPTION_ORDER' || status === 'EXCEPTION_ORDER' ||
status === 'TO_BE_REPLENISHMENT' || status === 'TO_BE_REPLENISHMENT' ||
status === 'IN_PRODUCTION' status === 'IN_PRODUCTION' ||
status === 'TO_BE_ARRANGE'
" "
class="item" class="item"
> >
...@@ -488,6 +516,61 @@ ...@@ -488,6 +516,61 @@
刷新商品信息 刷新商品信息
</ElButton> </ElButton>
</span> </span>
<span
v-if="
status === 'STOCK_OUT' ||
status === 'CREATE_LOGISTICS' ||
status === 'TO_BE_ARRANGE' ||
status === 'PICKING' ||
status === 'IN_PRODUCTION'
"
class="item"
>
<ElDropdown>
<el-button type="warning">
驳回至<el-icon class="el-icon--right"><ArrowDown /></el-icon>
</el-button>
<template #dropdown>
<ElDropdownMenu>
<ElDropdownItem
:disabled="
selection.length === 0 && cardSelection.length === 0
"
@click="rejectOrder('TO_BE_CONFIRMED')"
>待确认</ElDropdownItem
>
<ElDropdownItem
v-if="
status === 'IN_PRODUCTION' ||
status === 'TO_BE_ARRANGE' ||
status === 'PICKING'
"
:disabled="
selection.length === 0 && cardSelection.length === 0
"
@click="rejectOrder('CREATE_LOGISTICS')"
>待创建物流</ElDropdownItem
>
<ElDropdownItem
v-if="status === 'PICKING' || status === 'IN_PRODUCTION'"
:disabled="
selection.length === 0 && cardSelection.length === 0
"
@click="rejectOrder('TO_BE_ARRANGE')"
>待排单</ElDropdownItem
>
<ElDropdownItem
v-if="status === 'IN_PRODUCTION'"
:disabled="
selection.length === 0 && cardSelection.length === 0
"
@click="rejectOrder('PICKING')"
>待拣胚</ElDropdownItem
>
</ElDropdownMenu>
</template>
</ElDropdown>
</span>
<span v-if="status === 'COMPLETE'" class="item"> <span v-if="status === 'COMPLETE'" class="item">
<ElButton type="success" @click="exportData">导出</ElButton> <ElButton type="success" @click="exportData">导出</ElButton>
</span> </span>
...@@ -573,6 +656,80 @@ ...@@ -573,6 +656,80 @@
<span class="sub-status-item-label">待同步</span> <span class="sub-status-item-label">待同步</span>
</div> </div>
</div> </div>
<div v-if="status === 'INTERCEPTED'" class="sub-status mb-10">
<div
class="sub-status-item"
:class="interceptCurrent === 1 ? 'sub-active' : ''"
@click="handleInterceptionCommand(1, 0)"
>
<span class="sub-status-item-label">生产拦截申请</span>
<span
v-if="interceptionStatus.production['0']"
class="tabs-node_count blue"
>{{ interceptionStatus.production['0'] }}</span
>
</div>
<div
class="sub-status-item"
:class="interceptCurrent === 2 ? 'sub-active' : ''"
@click="handleInterceptionCommand(2, 1)"
>
<span class="sub-status-item-label">生产拦截成功</span>
<span
v-if="interceptionStatus.production['1']"
class="tabs-node_count blue"
>{{ interceptionStatus.production['1'] }}</span
>
</div>
<div
class="sub-status-item"
:class="interceptCurrent === 3 ? 'sub-active' : ''"
@click="handleInterceptionCommand(3, 2)"
>
<span class="sub-status-item-label">生产拦截失败</span>
<span
v-if="interceptionStatus.production['2']"
class="tabs-node_count red"
>{{ interceptionStatus.production['2'] }}</span
>
</div>
<div
class="sub-status-item"
:class="interceptCurrent === 4 ? 'sub-active' : ''"
@click="handleInterceptionCommand(4, 2)"
>
<span class="sub-status-item-label">发货拦截申请</span>
<span
v-if="interceptionStatus.shipment['0']"
class="tabs-node_count blue"
>{{ interceptionStatus.shipment['0'] }}</span
>
</div>
<div
class="sub-status-item"
:class="interceptCurrent === 5 ? 'sub-active' : ''"
@click="handleInterceptionCommand(5, 3)"
>
<span class="sub-status-item-label">发货拦截成功</span>
<span
v-if="interceptionStatus.shipment['1']"
class="tabs-node_count blue"
>{{ interceptionStatus.shipment['1'] }}</span
>
</div>
<div
class="sub-status-item"
:class="interceptCurrent === 6 ? 'sub-active' : ''"
@click="handleInterceptionCommand(6, 4)"
>
<span class="sub-status-item-label">发货拦截失败</span>
<span
v-if="interceptionStatus.shipment['2']"
class="tabs-node_count red"
>{{ interceptionStatus.shipment['2'] }}</span
>
</div>
</div>
<div <div
v-if=" v-if="
status !== 'IN_PRODUCTION' && status !== 'IN_PRODUCTION' &&
...@@ -588,7 +745,6 @@ ...@@ -588,7 +745,6 @@
<TableView <TableView
ref="tableRef" ref="tableRef"
:columns="tableColumns" :columns="tableColumns"
:serial-numberable="true"
:selectionable="true" :selectionable="true"
:paginated-data="tableData" :paginated-data="tableData"
:cell-style="onCellStyle" :cell-style="onCellStyle"
...@@ -596,6 +752,26 @@ ...@@ -596,6 +752,26 @@
:row-style="getRowStyle" :row-style="getRowStyle"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<template #serialNumber="{ row, index }">
<div>
<el-tooltip
v-if="
status !== 'INTERCEPTED' &&
(row.interceptStatus == 0 || row.interceptStatus == 2)
"
effect="light"
:content="
row.interceptStatus == 0
? '订单已提交至生产拦截申请'
: '订单已提交至发货拦截申请'
"
placement="bottom"
>
<el-icon color="#E6A23C"><InfoFilled /></el-icon>
</el-tooltip>
<span class="serial-number">{{ index + 1 }}</span>
</div>
</template>
<template #goods="{ row }"> <template #goods="{ row }">
<div class="goods-info-box"> <div class="goods-info-box">
<div class="goods-list"> <div class="goods-list">
...@@ -1304,6 +1480,23 @@ ...@@ -1304,6 +1480,23 @@
:image-field="'variantImage'" :image-field="'variantImage'"
@contextmenu.prevent="(v: MouseEvent) => rightClick(v)" @contextmenu.prevent="(v: MouseEvent) => rightClick(v)"
> >
<template #top_left>
<el-tooltip
v-if="
cardItem.interceptStatus == 0 ||
cardItem.interceptStatus == 2
"
effect="light"
:content="
cardItem.interceptStatus == 0
? '订单已提交至生产拦截申请'
: '订单已提交至发货拦截申请'
"
placement="bottom"
>
<el-icon color="#E6A23C"><InfoFilled /></el-icon>
</el-tooltip>
</template>
<template <template
#top_right #top_right
v-if="['ZPZY', 'CXZY', 'THZY'].includes(cardItem.craftCode as string)" v-if="['ZPZY', 'CXZY', 'THZY'].includes(cardItem.craftCode as string)"
...@@ -1977,6 +2170,7 @@ ...@@ -1977,6 +2170,7 @@
import { getUserMarkList } from '@/api/common' import { getUserMarkList } from '@/api/common'
// import { AnyObject } from '@/types/api/warehouse' // import { AnyObject } from '@/types/api/warehouse'
import { import {
InfoFilled,
ArrowDown, ArrowDown,
CaretBottom, CaretBottom,
CaretTop, CaretTop,
...@@ -2032,6 +2226,9 @@ import { ...@@ -2032,6 +2226,9 @@ import {
batchDownloadRecomposingApi, batchDownloadRecomposingApi,
updateToWaitShipmentApi, updateToWaitShipmentApi,
exportPodUSInfo, exportPodUSInfo,
getgetInterceptStateGroupList,
interceptUpdateApi,
rejectToApi,
} from '@/api/podUsOrder' } from '@/api/podUsOrder'
import { BaseRespData } from '@/types/api' import { BaseRespData } from '@/types/api'
...@@ -2058,7 +2255,7 @@ import { ...@@ -2058,7 +2255,7 @@ import {
import usePageList from '@/utils/hooks/usePageList' import usePageList from '@/utils/hooks/usePageList'
import { useValue } from '@/utils/hooks/useValue' import { useValue } from '@/utils/hooks/useValue'
import { showConfirm } from '@/utils/ui' import { showConfirm } from '@/utils/ui'
import { DocumentCopy, EditPen } from '@element-plus/icons-vue' // import { DocumentCopy, EditPen } from '@element-plus/icons-vue'
import { Column, ElFormItem } from 'element-plus' import { Column, ElFormItem } from 'element-plus'
import { computed, onMounted, ref, nextTick, reactive } from 'vue' import { computed, onMounted, ref, nextTick, reactive } from 'vue'
import FastProduction from './FastProduction.vue' import FastProduction from './FastProduction.vue'
...@@ -2176,6 +2373,13 @@ const searchVisible = ref(false) ...@@ -2176,6 +2373,13 @@ const searchVisible = ref(false)
const confirmSelectionData = ref<LogisticsData[]>([]) const confirmSelectionData = ref<LogisticsData[]>([])
const confirmRowData = ref<ProductList | null>(null) const confirmRowData = ref<ProductList | null>(null)
const status = ref(localStorage.getItem('podUsStatus') || 'TO_BE_CONFIRMED') const status = ref(localStorage.getItem('podUsStatus') || 'TO_BE_CONFIRMED')
const interceptionStatus = ref<{
shipment: Record<string, number>
production: Record<string, number>
}>({
shipment: {},
production: {},
})
const detailData = ref({}) const detailData = ref({})
const [searchForm, resetSearchForm] = useValue<SearchForm>({ const [searchForm, resetSearchForm] = useValue<SearchForm>({
...@@ -2204,6 +2408,8 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({ ...@@ -2204,6 +2408,8 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
thirdStockSku: '', thirdStockSku: '',
}) })
const exceptionStatus = ref(1) const exceptionStatus = ref(1)
const interceptCurrent = ref(1)
const interceptStatus = ref(0)
const userMarkList = ref<string[]>([]) const userMarkList = ref<string[]>([])
const selection = ref<PodUsOrderListData[]>([]) const selection = ref<PodUsOrderListData[]>([])
const pickerOptions = { const pickerOptions = {
...@@ -2488,6 +2694,13 @@ const tableColumns = computed(() => { ...@@ -2488,6 +2694,13 @@ const tableColumns = computed(() => {
} }
return [ return [
{ {
label: '序号',
prop: 'serialNumber',
slot: 'serialNumber',
width: 60,
align: 'center',
},
{
label: '商品', label: '商品',
prop: 'goods', prop: 'goods',
slot: 'goods', slot: 'goods',
...@@ -2592,6 +2805,12 @@ const asyncOrderAddress = async () => { ...@@ -2592,6 +2805,12 @@ const asyncOrderAddress = async () => {
const changeTab = (item: Tab) => { const changeTab = (item: Tab) => {
status.value = item.status || '' status.value = item.status || ''
localStorage.setItem('podUsStatus', item.status as string) localStorage.setItem('podUsStatus', item.status as string)
// 如果切换到INTERCEPTED状态,设置默认的exceptionStatus
if (item.status === 'INTERCEPTED' && !interceptCurrent.value) {
interceptCurrent.value = 1
}
selection.value = [] selection.value = []
cardSelection.value = [] cardSelection.value = []
stockOutSuccessIds.value = [] stockOutSuccessIds.value = []
...@@ -2614,10 +2833,46 @@ const onCellClassName = ({ column }: { column: Column }) => { ...@@ -2614,10 +2833,46 @@ const onCellClassName = ({ column }: { column: Column }) => {
return 'exception-reason' return 'exception-reason'
} }
} }
// 获取Tab信息
const loadTabData = async () => { const loadTabData = async () => {
try { try {
const res = await getOrderTabData() const res = await getOrderTabData()
tabsNav.value = res.data tabsNav.value = res.data
// 获取拦截数量
const statusRes = await getgetInterceptStateGroupList()
interceptionStatus.value = statusRes.data as {
shipment: Record<string, number>
production: Record<string, number>
}
// 在 已完成 后面添加 拦截 标签页
const completeIndex = tabsNav.value.findIndex(
(item) => item.status === 'COMPLETE',
)
// 发货拦截数量
const shipmentCount = (statusRes.data as any)?.shipment
? Object.values((statusRes.data as any).shipment).reduce(
(sum: number, value: any) => sum + (Number(value) || 0),
0,
)
: 0
// 生产拦截数量
const productionCount = (statusRes.data as any)?.production
? Object.values((statusRes.data as any).production).reduce(
(sum: number, value: any) => sum + (Number(value) || 0),
0,
)
: 0
tabsNav.value.splice(completeIndex + 1, 0, {
status: 'INTERCEPTED',
statusName: '拦截',
quantity: shipmentCount + productionCount,
})
} catch (error) { } catch (error) {
// showError(error) // showError(error)
} }
...@@ -2665,11 +2920,13 @@ const { ...@@ -2665,11 +2920,13 @@ const {
timeRange.value && timeRange.value.length > 0 timeRange.value && timeRange.value.length > 0
? timeRange.value[1] ? timeRange.value[1]
: null, : null,
status: status.value, status: status.value === 'INTERCEPTED' ? '' : status.value,
exceptionHandling: exceptionHandling:
status.value === 'EXCEPTION_ORDER' status.value === 'EXCEPTION_ORDER'
? exceptionStatus.value || undefined ? exceptionStatus.value || undefined
: undefined, : undefined,
interceptStatus:
status.value === 'INTERCEPTED' ? interceptStatus.value : '',
}, },
page, page,
pageSize, pageSize,
...@@ -2687,6 +2944,7 @@ const { ...@@ -2687,6 +2944,7 @@ const {
? timeRange.value[1] ? timeRange.value[1]
: null, : null,
status: status.value, status: status.value,
interceptStatus: '',
}, },
page, page,
pageSize, pageSize,
...@@ -3556,6 +3814,55 @@ const getOrderByIdApi = async (type: string) => { ...@@ -3556,6 +3814,55 @@ const getOrderByIdApi = async (type: string) => {
ElMessage.warning('未知操作类型') ElMessage.warning('未知操作类型')
} }
} }
// 驳回
const rejectOrder = async (type: string) => {
if (selection.value.length === 0 && cardSelection.value.length === 0) {
return ElMessage.warning('请选择数据')
}
const loading = ElLoading.service({
fullscreen: true,
text: '操作中...',
background: 'rgba(0, 0, 0, 0.3)',
})
try {
const { value } = await ElMessageBox.prompt('驳回确认', {
confirmButtonText: '确认',
cancelButtonText: '取消',
inputType: 'textarea',
inputPlaceholder: '驳回原因',
inputPattern: /\S+/, // 非空验证,至少一个非空白字符
inputErrorMessage: '内容不能为空',
})
const res = await rejectToApi({
orderStatus: type,
productList: selection.value.length
? selection.value.flatMap(
(item: PodUsOrderListData) => item.productList || [],
)
: cardSelection.value,
reasonStr: value,
})
if (res.code !== 200) return
resultInfo.value = res.data
resultInfo.value = resultInfo.value.filter((item) => !item.status)
if (!resultInfo.value.length) {
ElMessage.success('操作成功')
search()
loadTabData()
} else {
resultRefs.value?.showDialog()
}
} catch (e) {
console.log(e)
} finally {
loading.close()
}
}
const handleStockOut = async (row: PodUsOrderListData) => { const handleStockOut = async (row: PodUsOrderListData) => {
wayDialogTitle.value = `切换物流(当前物流方式:${row.logisticsWayName})` wayDialogTitle.value = `切换物流(当前物流方式:${row.logisticsWayName})`
...@@ -4066,7 +4373,12 @@ const loadCraftList = async () => { ...@@ -4066,7 +4373,12 @@ const loadCraftList = async () => {
} }
const refreshMaterial = async () => { const refreshMaterial = async () => {
if ( if (
['PICKING', 'TO_BE_REPLENISHMENT', 'IN_PRODUCTION'].includes(status.value) [
'PICKING',
'TO_BE_REPLENISHMENT',
'IN_PRODUCTION',
'TO_BE_ARRANGE',
].includes(status.value)
) { ) {
if (cardSelection.value.length === 0) { if (cardSelection.value.length === 0) {
return ElMessage.warning('请选择数据') return ElMessage.warning('请选择数据')
...@@ -4088,9 +4400,12 @@ const refreshMaterial = async () => { ...@@ -4088,9 +4400,12 @@ const refreshMaterial = async () => {
) )
? selection.value.map((item) => item.id).join(',') ? selection.value.map((item) => item.id).join(',')
: undefined, : undefined,
productIds: ['PICKING', 'TO_BE_REPLENISHMENT', 'IN_PRODUCTION'].includes( productIds: [
status.value, 'PICKING',
) 'TO_BE_REPLENISHMENT',
'IN_PRODUCTION',
'TO_BE_ARRANGE',
].includes(status.value)
? cardSelection.value.map((item) => item.id).join(',') ? cardSelection.value.map((item) => item.id).join(',')
: undefined, : undefined,
}) })
...@@ -4164,6 +4479,14 @@ const handleExceptionCommand = (command: number) => { ...@@ -4164,6 +4479,14 @@ const handleExceptionCommand = (command: number) => {
exceptionStatus.value = command exceptionStatus.value = command
search() search()
} }
// 拦截分页
const handleInterceptionCommand = (current: number, command: number) => {
interceptCurrent.value = current
interceptStatus.value = command
search()
loadTabData()
}
const applyForReplenishment = async (row: ProductList | undefined) => { const applyForReplenishment = async (row: ProductList | undefined) => {
if (!row) { if (!row) {
if (cardSelection.value.length === 0) { if (cardSelection.value.length === 0) {
...@@ -4346,6 +4669,54 @@ const handleBeforeRouteLeave = ( ...@@ -4346,6 +4669,54 @@ const handleBeforeRouteLeave = (
next() next()
} }
// 拦截状态改变
const interceptChange = async (status: boolean) => {
if (selection.value.length === 0) {
return ElMessage.warning('请选择数据')
}
try {
await ElMessageBox.confirm(
`确定${status ? '拦截成功' : '拦截失败'}吗?`,
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
},
)
} catch (e) {
return
}
const loading = ElLoading.service({
fullscreen: true,
text: '操作中...',
background: 'rgba(0, 0, 0, 0.3)',
})
const interceptStatus = status
? interceptCurrent.value === 1
? 1
: 3
: interceptCurrent.value === 1
? 2
: 4
try {
const res = await interceptUpdateApi({
orderIds: selection.value.map((item) => item.id),
interceptStatus,
})
if (res.code !== 200) return
ElMessage.success('操作成功')
search()
loadTabData()
} catch (e) {
resultInfo.value = []
console.error(e)
} finally {
loading.close()
}
}
useRouter().beforeEach((to, from, next) => { useRouter().beforeEach((to, from, next) => {
handleBeforeRouteLeave(to, from, next) handleBeforeRouteLeave(to, from, next)
}) })
......
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