Commit a12745cc by qinjianhui

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

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