Commit a12745cc by qinjianhui

fix: 新订单单价打单bug修改

parent 51c71525
......@@ -874,6 +874,7 @@
/>
<PodDistributionOrder
v-model="podDistributionOrderVisible"
:is-new-order="true"
:print-order="printOrder"
:warehouse-list="warehouseList"
:query-api="getSingleQueryPodOrderApi"
......
......@@ -75,7 +75,11 @@
ref="testingInputRef"
v-model="barcode"
style="width: 400px"
placeholder="请输入生产单号/ 主SKU"
:placeholder="
isNewOrder
? '请输入操作单号/ 主SKU'
: '请输入生产单号/ 主SKU'
"
@keyup.enter="barcodeInput"
></el-input>
</el-form-item>
......@@ -268,7 +272,7 @@
</ElDialog>
</template>
<script setup lang="ts">
<script setup lang="tsx">
import { computed, nextTick, onUnmounted, ref, watch } from 'vue'
import useLodop from '@/utils/hooks/useLodop'
import TableView from '@/components/TableView.vue'
......@@ -283,8 +287,63 @@ import {
const { getCLodop } = useLodop()
import useOrderStore from '@/store/cnOrder'
import { WarehouseListData } from '@/types/index'
import { ElTag } from 'element-plus'
const orderStore = useOrderStore()
const boxList = computed(() => orderStore.podBoxList)
const operationStatusMap: Record<string, string> = {
PENDING_PACKING: '待配货',
PENDING_SCHEDULE: '待排单',
PENDING_REPLENISH: '待补胚',
PENDING_PICK: '待拣胚',
IN_PRODUCTION: '生产中',
PACKING_COMPLETED: '配货完成',
COMPLETED: '已完成',
CANCELLED: '已取消',
ARCHIVE: '已归档',
}
const operationStatusTagMap: Record<
string,
{
type?: 'success' | 'warning' | 'info' | 'danger' | 'primary'
style?: { backgroundColor: string; color: string; borderColor: string }
}
> = {
PENDING_PACKING: { type: 'warning' },
PENDING_SCHEDULE: { type: 'info' },
PENDING_REPLENISH: {
style: {
backgroundColor: '#E6A23C',
color: '#FFFFFF',
borderColor: '#E6A23C',
},
},
PENDING_PICK: {
style: {
backgroundColor: '#409EFF',
color: '#FFFFFF',
borderColor: '#409EFF',
},
},
IN_PRODUCTION: { type: 'primary' },
PACKING_COMPLETED: { type: 'success' },
COMPLETED: { type: 'success' },
CANCELLED: { type: 'danger' },
ARCHIVE: {
style: {
backgroundColor: '#909399',
color: '#FFFFFF',
borderColor: '#909399',
},
},
}
const parseOperationNo = (operationNoWithStatus: string) => {
const match = operationNoWithStatus.match(/^([^_]+)_(.+)$/)
if (!match)
return { operationNo: operationNoWithStatus, status: '', statusText: '' }
const [, operationNo, status] = match
const statusText = operationStatusMap[status] || status
return { operationNo, status, statusText }
}
const podOrderDetailsColumns = computed(() => [
{
label: '图片',
......@@ -295,10 +354,36 @@ const podOrderDetailsColumns = computed(() => [
fixed: 'left',
},
{
label: '生产单号',
prop: 'podJomallCnNo',
label: props.isNewOrder ? '操作单号' : '生产单号',
prop: props.isNewOrder ? 'operationNos' : 'podJomallCnNo',
width: 200,
align: 'center',
render: (row: ProductList) => {
return (
<div>
{props.isNewOrder &&
row.operationNos?.split(',').map((item) => {
const { operationNo, status, statusText } = parseOperationNo(item)
const { type, style } = operationStatusTagMap[status] || {}
return (
<div>
{operationNo}
{statusText && (
<ElTag
size="small"
type={type}
style={{ marginLeft: '6px', ...style }}
>
{statusText}
</ElTag>
)}
</div>
)
})}
{!props.isNewOrder && row.podJomallCnNo}
</div>
)
},
},
{
label: 'variant SKU',
......@@ -372,32 +457,16 @@ const props = defineProps<{
factoryNo: number,
warehouseId: number | string,
) => Promise<{ code: number; data: OrderData }>
/**
* 可复用注入:单件打单完成接口
* - 默认:CN 的 submitInspectionApi
* - 入参 data 与 CN 组件内部 orderParamList 映射保持一致({id, version?}数组)
*/
submitCompleteApi?: (
data: { id: number; version?: number }[],
warehouseId: number | string,
) => Promise<{ code: number; message?: string }>
/**
* 可复用注入:获取打印面单(返回 data.filePath 或 data.fileData,或直接返回字符串路径)
* - 默认:CN 的 getPrintLogisticLabelApi
*/
printLabelApi?: (id?: number) => Promise<{ code: number; data: unknown }>
/**
* 可复用注入:orderParamList 映射成提交给接口的数组
* - 默认:包含 version(dataVersion)
*/
mapOrderParamListToSubmitItems?: (
orderParamList: IorderItem[],
) => { id: number; version?: number }[]
/**
* 仓库选择的 sessionStorage key
* - 默认:locaclCnSingel
*/
warehouseSessionKey?: string
isNewOrder?: boolean
}>()
const emit = defineEmits<{
(e: 'update:modelValue', v: boolean): void
......@@ -528,7 +597,9 @@ const isLock = ref<boolean>(false)
async function barcodeInput() {
const code = barcode.value.trim()
if (!code) {
ElMessage.warning('请录入生产单号或SKU')
ElMessage.warning(
props.isNewOrder ? '请录入操作单号或SKU' : '请录入生产单号或SKU',
)
playAudio('picking_warning')
await inputActive()
return
......
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