Commit efe7a90e by wuqian

输入内容判断

parent dd4dc916
...@@ -22,6 +22,7 @@ export interface SearchForm { ...@@ -22,6 +22,7 @@ export interface SearchForm {
internalMemo?: string internalMemo?: string
productionFileId?: string productionFileId?: string
interceptedStatus?: boolean interceptedStatus?: boolean
platform?: string
} }
export interface CardOrderData { export interface CardOrderData {
id: number id: number
......
...@@ -12,3 +12,7 @@ export function useValue<T extends object>( ...@@ -12,3 +12,7 @@ export function useValue<T extends object>(
return [value, resetToDefault] return [value, resetToDefault]
} }
export function getLastSegment(str: string): string {
const lastIndex = str.lastIndexOf('_')
return lastIndex !== -1 ? str.slice(lastIndex + 1) : str
}
...@@ -30,7 +30,13 @@ export default function useShipment(callback?: () => void) { ...@@ -30,7 +30,13 @@ export default function useShipment(callback?: () => void) {
const shipmentLoading = ref(false) const shipmentLoading = ref(false)
const shipmentOrderRef = ref<ShipmentType>() const shipmentOrderRef = ref<ShipmentType>()
const searchShipmentByOrderNumber = async () => { const searchShipmentByOrderNumber = async () => {
const code = productionOrderNumber.value let code = productionOrderNumber.value
// AAAB_60527128-9_1_JMSC250121017 新版示例
const regex = /^[A-Z]{4}_/ //是否以四个大写字母加下划线开头
if (regex.test(code)) {
code =
code.split('_')[0] + '-' + code.split('_')[code.split('_').length - 1]
}
shipmentVisible.value = true shipmentVisible.value = true
if (!code) { if (!code) {
isLock.value = false isLock.value = false
......
import { getQaOrderBySubOrderNumber, qaFinishedApi } from '@/api/order' import { getQaOrderBySubOrderNumber, qaFinishedApi } from '@/api/order'
import { InspectionData, QaData, shopRemark } from '@/types/api/order' import { InspectionData, QaData, shopRemark } from '@/types/api/order'
import { useValue } from '@/utils/hooks/useValue' import { useValue, getLastSegment } from '@/utils/hooks/useValue'
import { showConfirm } from '@/utils/ui' import { showConfirm } from '@/utils/ui'
import { computed, ref } from 'vue' import { computed, ref } from 'vue'
...@@ -45,9 +45,8 @@ export default function useQuarantine() { ...@@ -45,9 +45,8 @@ export default function useQuarantine() {
return indexList return indexList
} }
const searchQaByOrderNumber = () => { const searchQaByOrderNumber = () => {
const uid = shipmentUid.value const uid = shipmentUid.value
const code = qaCode.value const code = getLastSegment(qaCode.value)
if (!code) { if (!code) {
isLock.value = false isLock.value = false
playAudio('picking_warning') playAudio('picking_warning')
...@@ -83,7 +82,12 @@ export default function useQuarantine() { ...@@ -83,7 +82,12 @@ export default function useQuarantine() {
// 查找是否已经存在 // 查找是否已经存在
const row = sourceData.value.find( const row = sourceData.value.find(
(item) => (item) =>
(uid === item.shipmentUid && (code1 === item.subOrderNumber || item.factorySubOrderNumber == code1)) || (!uid && (item.factorySubOrderNumber == code1 || item.subOrderNumber == code1)), (uid === item.shipmentUid &&
(code1 === item.subOrderNumber ||
item.factorySubOrderNumber == code1)) ||
(!uid &&
(item.factorySubOrderNumber == code1 ||
item.subOrderNumber == code1)),
) )
if (row) { if (row) {
// 质检数量不能大于发货数量 // 质检数量不能大于发货数量
...@@ -100,7 +104,10 @@ export default function useQuarantine() { ...@@ -100,7 +104,10 @@ export default function useQuarantine() {
offset: window.innerHeight / 2, offset: window.innerHeight / 2,
}) })
} }
const len = sourceData.value.filter(el => el.factorySubOrderNumber == code1 || code1 === el.subOrderNumber) const len = sourceData.value.filter(
(el) =>
el.factorySubOrderNumber == code1 || code1 === el.subOrderNumber,
)
const scansNum = sourceData.value[index].scansNum || 0 const scansNum = sourceData.value[index].scansNum || 0
const indexList = findAllIndex(code1) const indexList = findAllIndex(code1)
...@@ -111,7 +118,6 @@ export default function useQuarantine() { ...@@ -111,7 +118,6 @@ export default function useQuarantine() {
sourceData.value[i]['scansNum'] = scansNum + 1 sourceData.value[i]['scansNum'] = scansNum + 1
} }
}) })
} else { } else {
if (row.shipmentNum !== scansNum) { if (row.shipmentNum !== scansNum) {
sourceData.value[index]['scansNum'] = scansNum + 1 sourceData.value[index]['scansNum'] = scansNum + 1
...@@ -163,17 +169,32 @@ export default function useQuarantine() { ...@@ -163,17 +169,32 @@ export default function useQuarantine() {
Number(e.shipmentNum || 0) === Number(e.shipmentNum || 0) ===
Number(e.passNum || 0) + Number(e.notPassNum || 0), Number(e.passNum || 0) + Number(e.notPassNum || 0),
).length ).length
const row = sourceData.value.find(item => { const row = sourceData.value.find((item) => {
return (uid === item.shipmentUid && (code1 === item.subOrderNumber || item.factorySubOrderNumber == code1)) || (!uid && (item.factorySubOrderNumber == code1 || item.subOrderNumber == code1)) return (
(uid === item.shipmentUid &&
(code1 === item.subOrderNumber ||
item.factorySubOrderNumber == code1)) ||
(!uid &&
(item.factorySubOrderNumber == code1 ||
item.subOrderNumber == code1))
)
}) })
const index = sourceData.value.findIndex(item => { const index = sourceData.value.findIndex((item) => {
return (uid === item.shipmentUid && (code1 === item.subOrderNumber || item.factorySubOrderNumber == code1)) || (!uid && (item.factorySubOrderNumber == code1 || item.subOrderNumber == code1)) return (
(uid === item.shipmentUid &&
(code1 === item.subOrderNumber ||
item.factorySubOrderNumber == code1)) ||
(!uid &&
(item.factorySubOrderNumber == code1 ||
item.subOrderNumber == code1))
)
}) })
if (row) { if (row) {
// row.passNum += 1 // row.passNum += 1
currentRow.value = row currentRow.value = row
cloneRow.value = JSON.parse(JSON.stringify(currentRow.value)) cloneRow.value = JSON.parse(JSON.stringify(currentRow.value))
if (!row.inspectionStatus && !sourceData.value[index].scansNum) sourceData.value[index].scansNum = 1 if (!row.inspectionStatus && !sourceData.value[index].scansNum)
sourceData.value[index].scansNum = 1
} }
qaInputRef.value.focus() qaInputRef.value.focus()
isLock.value = false isLock.value = false
......
import { getOrderBySubOrderNumber, saveOrder } from '@/api/order' import { getOrderBySubOrderNumber, saveOrder } from '@/api/order'
import { ICompareObjects, OrderData, ProductList, ShipmentForm, ShipmentOrderRes } from '@/types/api/order' import {
import { useValue } from '@/utils/hooks/useValue' ICompareObjects,
OrderData,
ProductList,
ShipmentForm,
ShipmentOrderRes,
} from '@/types/api/order'
import { useValue ,getLastSegment} from '@/utils/hooks/useValue'
import { nextTick, ref } from 'vue' import { nextTick, ref } from 'vue'
import { ShipmentType } from '../Shipment.vue' import { ShipmentType } from '../Shipment.vue'
...@@ -24,7 +30,7 @@ export default function useShipment(callback?: () => void) { ...@@ -24,7 +30,7 @@ export default function useShipment(callback?: () => void) {
const shipmentLoading = ref(false) const shipmentLoading = ref(false)
const shipmentOrderRef = ref<ShipmentType>() const shipmentOrderRef = ref<ShipmentType>()
const searchShipmentByOrderNumber = async () => { const searchShipmentByOrderNumber = async () => {
const code = productionOrderNumber.value const code = getLastSegment(productionOrderNumber.value)
shipmentVisible.value = true shipmentVisible.value = true
if (!code) { if (!code) {
isLock.value = false isLock.value = false
...@@ -98,8 +104,7 @@ export default function useShipment(callback?: () => void) { ...@@ -98,8 +104,7 @@ export default function useShipment(callback?: () => void) {
ElMessageBox.confirm('不能加入,地址信息不一致!', '重要提示', { ElMessageBox.confirm('不能加入,地址信息不一致!', '重要提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
type: 'warning', type: 'warning',
}).catch(() => { }).catch(() => {})
})
} else { } else {
canJoin(res.data, code) canJoin(res.data, code)
} }
...@@ -213,7 +218,7 @@ export default function useShipment(callback?: () => void) { ...@@ -213,7 +218,7 @@ export default function useShipment(callback?: () => void) {
try { try {
const res = await saveOrder(data, shipmentForm.value) const res = await saveOrder(data, shipmentForm.value)
fetch(res.message || '') fetch(res.message || '')
.then(response => { .then((response) => {
// 确保响应是 OK // 确保响应是 OK
if (!response.ok) { if (!response.ok) {
throw new Error('网络响应错误') throw new Error('网络响应错误')
...@@ -221,14 +226,16 @@ export default function useShipment(callback?: () => void) { ...@@ -221,14 +226,16 @@ export default function useShipment(callback?: () => void) {
// 返回图片的二进制数据(Blob) // 返回图片的二进制数据(Blob)
return response.blob() return response.blob()
}) })
.then(blob => { .then((blob) => {
const a = document.createElement('a') const a = document.createElement('a')
a.href = window.URL.createObjectURL(blob) a.href = window.URL.createObjectURL(blob)
a.target = '_blank' a.target = '_blank'
a.download = (res.message as string).split('/')[ (res.message as string).split('/').length - 1] a.download = (res.message as string).split('/')[
(res.message as string).split('/').length - 1
]
a.click() a.click()
}) })
.catch(error => { .catch((error) => {
console.error('下载图片时出错:', error) console.error('下载图片时出错:', error)
}) })
ElMessage.success('发货成功') ElMessage.success('发货成功')
......
...@@ -47,6 +47,31 @@ ...@@ -47,6 +47,31 @@
></el-option> ></el-option>
</el-select> </el-select>
</ElFormItem> </ElFormItem>
<ElFormItem label="平台">
<ElSelect
v-model="searchForm.platform"
value-key=""
placeholder="请选择"
clearable
filterable
popper-class="customize-select-style"
style="width: 150px"
>
<ElOption
v-for="(item, index) in platformJson"
:key="index"
:label="item.type"
:value="item.type"
style="width: 160px"
>
<img
:src="`/images/icon/${item.icon.split('/').pop()}`"
style="height: 20px; margin: 5px 10px 0 0"
/>
<span :title="item.type">{{ item.type }}</span>
</ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem label="SKU"> <ElFormItem label="SKU">
<ElInput <ElInput
v-model.trim="searchForm.sku" v-model.trim="searchForm.sku"
...@@ -1214,6 +1239,7 @@ import { CustomColumn } from '@/types/table' ...@@ -1214,6 +1239,7 @@ import { CustomColumn } from '@/types/table'
import LogList from '@/components/LogList.vue' import LogList from '@/components/LogList.vue'
import CommonCard from '@/components/CommonCard.vue' import CommonCard from '@/components/CommonCard.vue'
import RightClickMenu from '@/components/RightClickMenu.vue' import RightClickMenu from '@/components/RightClickMenu.vue'
import platformJson from '../../../json/platform.json'
const tableRef = ref() const tableRef = ref()
const loading = ref(false) const loading = ref(false)
const currentPage = ref(1) const currentPage = ref(1)
...@@ -1665,6 +1691,7 @@ const [searchForm] = useValue<SearchForm>({ ...@@ -1665,6 +1691,7 @@ const [searchForm] = useValue<SearchForm>({
userMark: '', userMark: '',
customizedQuantity: '', customizedQuantity: '',
order: 'desc', order: 'desc',
platform:''
}) })
const tableColumns = computed<CustomColumn<CardOrderData[]>>(() => { const tableColumns = computed<CustomColumn<CardOrderData[]>>(() => {
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