Commit 4dd49110 by zhuzhequan Committed by qinjianhui

feat:podus 添加物流方式,订单来源查询条件 #ID: 1000105

parent aa5ffac2
......@@ -586,6 +586,10 @@ export function getAccountCodeByFactoryIdApi(params: { token: string }) {
params,
})
}
export function getLogisticsWayApi() {
return axios.get(`logisticsWay/usableAllList`)
}
// 打印拣货单item
export function printPickPdfByBatchNumberApi(params: {
batchArrangeNumber: string
......
......@@ -12,6 +12,8 @@ export interface ExportParams extends SearchForm {
export interface SearchForm {
timeType?: number | null
shopNumber?: string
source?: string
logisticsWayId?: number | null
shipmentType?: string | number | null
userMark?: string
processNumber?: string
......
......@@ -99,10 +99,9 @@
<template #image="{ row }">
<div
style="display: flex; flex-wrap: nowrap"
v-if="row.previewImgs?.length"
>
<div
v-for="img in row.previewImgs"
v-for="img in row.productMark!=='normal'?row.previewImgs:[{url:row.variantImage}]"
:key="img"
@click.stop="handleCurrentChange(img.url)"
style="cursor: pointer; margin-right: 5px; flex: 1"
......@@ -157,6 +156,12 @@
@click="podOrderDetailsData && print(podOrderDetailsData, true)"
>手动打印</ElButton
>
<ElButton
type="primary"
@click="printNormal"
>普货拣货
</ElButton
>
<ElButton type="success" @click="handlePrintFinish"
>打单完成</ElButton
>
......@@ -220,11 +225,13 @@ import {
clearSuperAllBoxApi,
getSuperPodBoxListApi,
submitSuperInspectionApi,
printNormalPdf,
} from '@/api/podCnOrder'
import useUserStore from '@/store/user'
import { Check } from '@element-plus/icons-vue'
import socket from '@/utils/cnSuperWebsocket'
import { ElMessage } from 'element-plus'
import { filePath } from '@/api/axios.ts'
const { getCLodop } = useLodop()
const userStore = useUserStore()
......@@ -268,31 +275,41 @@ const podOrderDetailsColumns = computed(() => [
// align: 'center',
// },
{
label: '库存SKU',
prop: 'thirdSkuCode',
width: 180,
align: 'center',
},
{
label: 'variant SKU',
prop: 'variantSku',
width: 140,
width: 150,
align: 'center',
},
{
label: '商品名称',
width: 200,
prop: 'productName',
},
{
label: '购买数量',
prop: 'purchaseNumber',
width: 90,
fixed: 'right',
prop: 'purchaseNumber',
align: 'center',
},
{
label: '拣货数量',
prop: 'count',
width: 90,
fixed: 'right',
align: 'center',
},
{
label: '验证结果',
slot: 'verifyResult',
fixed: 'right',
width: 90,
align: 'center',
},
......@@ -374,7 +391,7 @@ watch(
(val) => {
if (val && val.productList?.length)
val.productList.forEach((el) => {
if (!el.previewImgs) el.previewImgs = JSON.parse(el.imageAry)
if (!el.previewImgs) el.previewImgs = JSON.parse(el.imageAry || '[]')
})
},
{ deep: true },
......@@ -398,7 +415,7 @@ const renderItemBox = (bool: boolean) => {
if (!boxItem) boxItem = { data: { productList: [] } }
const { data } = boxItem
data?.productList?.forEach((el) => {
if (!el.previewImgs) el.previewImgs = JSON.parse(el.imageAry)
if (!el.previewImgs) el.previewImgs = JSON.parse(el.imageAry || '[]')
})
if (!data) {
renderLock = false
......@@ -467,6 +484,30 @@ const messageChange = (data: WebSocketMessage) => {
setPodBoxList(more)
}
}
const printNormal = async () => {
const arr: (number | undefined)[] = [];
(podBoxList.value || []).forEach((item: PodMakeOrderData) => {
if (item.data) {
if (item.data.productList && item.data.productList.length > 0) {
const flag = item.data.productList.some((item1) => {
return item1.productMark == 'normal'
})
if (flag) {
arr?.push(item.data?.id)
}
}
}
})
if (!arr.length) {
ElMessage.warning('暂无可打印的普货拣货单')
return
}
const res = await printNormalPdf(arr.join())
ElMessage.success('操作成功')
window.open(filePath + res.message)
}
const setPodBoxList = (data: WebSocketMessage) => {
const obj = data.txt
if (obj && typeof obj === 'string') {
......@@ -618,6 +659,16 @@ const initOrderDetailBox = async () => {
ElMessage.warning(res.message)
return
}
res.data.forEach(r=>{
r.data?.productList?.forEach(d=>{
if (d.productMark === 'normal') {
d.previewImgs = [{ url: d.variantImage || '' }]
} else {
if (!d.previewImgs) d.previewImgs = JSON.parse(d.imageAry || '[]')
}
})
})
orderStore.setPodBoxList({
boxList: res.data,
factoryNo,
......@@ -869,7 +920,8 @@ const clearAllBox = async () => {
}
const handleRowClick = (row: ProductList) => {
console.log(907, row)
coverImage.value = row.previewImgs?.[0]?.url || ''
const previewImages = row.productMark!=='normal'?row.previewImgs:[{url:row.variantImage}]
coverImage.value =previewImages?.[0]?.url || ''
productionOrderRef.value.focus()
}
const handleCurrentChange = (url: string) => {
......
<template>
<div class="card flex-column h-100 overflow-hidden">
<div class="header-filter-form">
<ElForm :model="searchForm" size="default" inline>
<ElForm label-position="left" label-width="70px" :model="searchForm" size="default" inline>
<!-- <div> -->
<ElFormItem label="仓库">
<ElSelect
......@@ -54,7 +54,7 @@
collapse-tags
collapse-tags-tooltip
placeholder="请输入工艺"
style="width: 230px"
style="width: 150px"
>
<el-option
v-for="item in craftList"
......@@ -313,6 +313,38 @@
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem label="物流方式">
<ElSelect
v-model="searchForm.logisticsWayId"
placeholder="请选择"
clearable
:teleported="false"
style="width: 150px"
>
<ElOption
v-for="(item, index) in logisticsWayList "
:key="index"
:value="item.id"
:label="item.name"
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem label="订单来源">
<ElSelect
v-model="searchForm.source"
placeholder="请选择"
clearable
:teleported="false"
style="width: 150px"
>
<ElOption
v-for="(item, index) in sourceList "
:key="index"
:value="item.id"
:label="item.name"
></ElOption>
</ElSelect>
</ElFormItem>
</ElForm>
<template #reference>
<el-button type="warning" @click="searchVisible = !searchVisible">
......@@ -2867,7 +2899,7 @@ import {
changeToFinished,
updateTrackingNumberAndRegister,
countTrackRegisterApi,
getCustomTagListApi,
getCustomTagListApi, getLogisticsWayApi,
} from '@/api/podUsOrder'
import { BaseRespData } from '@/types/api'
......@@ -2937,9 +2969,20 @@ declare global {
responseBody?: unknown
}
}
const sourceList = [
{
name:'erp推送',
id:'jomall-erp'
},
{
name:'第三方推送',
id:'third-party'
}
]
const tabsNav = ref<Tab[]>()
const isAuto = ref(true)
const countryList = ref([])
const logisticsWayList = ref<{name:string,id:number}[]>([])
const currentRow = ref<AddressInfo>({
receiverName: '',
receiverPhone: '',
......@@ -3087,6 +3130,8 @@ const detailData = ref({})
const [searchForm, resetSearchForm] = useValue<SearchForm>({
timeType: 1,
shopNumber: '',
source: '',
logisticsWayId: null,
shipmentType: '',
userMark: '',
processNumber: '',
......@@ -6118,7 +6163,14 @@ const getTagName = (row: ProductList) => {
: ''
}
const getLogisticsWay = async ()=>{
const {data} = await getLogisticsWayApi()
logisticsWayList.value = data
}
getPermission()
getLogisticsWay()
const globalProperties =
getCurrentInstance()?.appContext.config.globalProperties // 获取全局挂载
const isPermissionBtn = globalProperties?.$isPermissionBtn
......
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