Commit 92109a30 by wusiyi

feat: 订单添加质检流程 #1009863

parent 0b5f7315
...@@ -553,6 +553,20 @@ const props = withDefaults( ...@@ -553,6 +553,20 @@ const props = withDefaults(
) )
const emit = defineEmits(['update:detailVisible', 'close', 'onSuccess']) const emit = defineEmits(['update:detailVisible', 'close', 'onSuccess'])
// 获取自动完成上一单勾选缓存
const getCachedQualityAutoSure = (fallback: boolean) => {
const cached = localStorage.getItem('qualityScanAutoSure')
if (cached === null) return fallback
return cached === 'true'
}
// 缓存自动完成上一单勾选
watch(isAutoSure, (val) => {
if (props.fastKey === 'qualityScan') {
localStorage.setItem('qualityScanAutoSure', String(val))
}
})
const qualityFailDialogRef = ref<InstanceType<typeof QualityFailDialog>>() const qualityFailDialogRef = ref<InstanceType<typeof QualityFailDialog>>()
const historyKeyFromDetail = (d: FastProductionDetail): string => { const historyKeyFromDetail = (d: FastProductionDetail): string => {
...@@ -647,12 +661,9 @@ watch( ...@@ -647,12 +661,9 @@ watch(
const len = historyData.value const len = historyData.value
if ( if (
len.length > 0 && len.length > 0 &&
[ ['fastProduction', 'fastReceipt', 'productionScan'].includes(
'fastProduction', props.fastKey,
'fastReceipt', )
'productionScan',
'qualityScan',
].includes(props.fastKey)
) { ) {
confirmQuery(len, 0) confirmQuery(len, 0)
} }
...@@ -661,7 +672,10 @@ watch( ...@@ -661,7 +672,10 @@ watch(
trackingNumberRef.value && trackingNumberRef.value.focus() trackingNumberRef.value && trackingNumberRef.value.focus()
TrackingNumber.value = '' TrackingNumber.value = ''
isAutoSure.value = props.defaultAutoSure isAutoSure.value =
props.fastKey === 'qualityScan'
? getCachedQualityAutoSure(props.defaultAutoSure)
: props.defaultAutoSure
sendNum.value = 0 sendNum.value = 0
if (props.fastKey === 'qualityScan') { if (props.fastKey === 'qualityScan') {
initPrintDevice() initPrintDevice()
......
...@@ -11,9 +11,13 @@ ...@@ -11,9 +11,13 @@
<div class="mb-10"> <div class="mb-10">
{{ qualityPassed ? '确定质检通过吗?' : '确定质检不通过吗?' }} {{ qualityPassed ? '确定质检通过吗?' : '确定质检不通过吗?' }}
</div> </div>
<ElFormItem v-if="!qualityPassed" label="原因" prop="reasonKey"> <ElFormItem
v-if="!qualityPassed"
label="原因"
prop="qualify_problem_type"
>
<ElSelect <ElSelect
v-model="form.reasonKey" v-model="form.qualify_problem_type"
placeholder="请选择不通过原因" placeholder="请选择不通过原因"
style="width: 100%" style="width: 100%"
clearable clearable
...@@ -29,12 +33,12 @@ ...@@ -29,12 +33,12 @@
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem <ElFormItem
v-if="!qualityPassed && form.reasonKey === 5" v-if="!qualityPassed && form.qualify_problem_type === 5"
label="具体原因" label="具体原因"
prop="qualify_problem_type" prop="qualityIssues"
> >
<ElInput <ElInput
v-model="form.qualify_problem_type" v-model="form.qualityIssues"
placeholder="请输入不通过原因" placeholder="请输入不通过原因"
clearable clearable
/> />
...@@ -74,21 +78,21 @@ const updateParams = ref<{ id: number; version?: number }[]>([]) ...@@ -74,21 +78,21 @@ const updateParams = ref<{ id: number; version?: number }[]>([])
const reasonOptions = ref<QualityTypeItem[]>([]) const reasonOptions = ref<QualityTypeItem[]>([])
const form = reactive<{ const form = reactive<{
reasonKey: number | string | undefined qualify_problem_type: number | string
qualify_problem_type: string qualityIssues: string
}>({ }>({
reasonKey: undefined,
qualify_problem_type: '', qualify_problem_type: '',
qualityIssues: '',
}) })
const rules = computed<FormRules>(() => { const rules = computed<FormRules>(() => {
if (qualityPassed.value) return {} if (qualityPassed.value) return {}
const result: FormRules = { const result: FormRules = {
reasonKey: [ qualify_problem_type: [
{ required: true, message: '请选择不通过原因', trigger: 'change' }, { required: true, message: '请选择不通过原因', trigger: 'change' },
], ],
} }
if (form.reasonKey && form.reasonKey === 5) { if (form.qualify_problem_type && form.qualify_problem_type === 5) {
result.qualify_problem_type = [ result.qualify_problem_type = [
{ required: true, message: '请输入不通过原因', trigger: 'blur' }, { required: true, message: '请输入不通过原因', trigger: 'blur' },
] ]
...@@ -107,8 +111,14 @@ const loadReasons = async () => { ...@@ -107,8 +111,14 @@ const loadReasons = async () => {
} }
const handleReasonChange = () => { const handleReasonChange = () => {
form.qualify_problem_type = '' form.qualityIssues =
formRef.value?.clearValidate('qualify_problem_type') form.qualify_problem_type === 5
? ''
: reasonOptions.value.find(
(item) => item.key === form.qualify_problem_type,
)?.value || ''
formRef.value?.clearValidate('qualityIssues')
} }
const open = ( const open = (
...@@ -122,8 +132,8 @@ const open = ( ...@@ -122,8 +132,8 @@ const open = (
})) }))
qualityPassed.value = passed qualityPassed.value = passed
source.value = sourceType source.value = sourceType
form.reasonKey = undefined
form.qualify_problem_type = '' form.qualify_problem_type = ''
form.qualityIssues = ''
visible.value = true visible.value = true
if (!passed) void loadReasons() if (!passed) void loadReasons()
} }
...@@ -138,19 +148,12 @@ const handleSubmit = async () => { ...@@ -138,19 +148,12 @@ const handleSubmit = async () => {
if (!qualityPassed.value) { if (!qualityPassed.value) {
await formRef.value.validate() await formRef.value.validate()
} }
const selected = reasonOptions.value.find(
(item) => item.key === form.reasonKey,
)
submitLoading.value = true submitLoading.value = true
try { try {
const params = { const params = {
...form,
updateParams: updateParams.value, updateParams: updateParams.value,
qualityIssues: qualityPassed.value ? '' : selected?.value || '',
qualify_problem_type: qualityPassed.value
? ''
: form.reasonKey === 5
? form.qualify_problem_type
: (form.reasonKey as number | string),
qualityPassed: qualityPassed.value, qualityPassed: qualityPassed.value,
source: source.value, source: source.value,
} }
......
...@@ -1154,11 +1154,7 @@ ...@@ -1154,11 +1154,7 @@
pending-order-label="操作单号" pending-order-label="操作单号"
please-scan-tip="请扫码操作单号" please-scan-tip="请扫码操作单号"
search-input-audio-tip="请录入操作单号" search-input-audio-tip="请录入操作单号"
:history-storage-key=" history-storage-key="historyFactoryOrderNewData"
fastKey === 'qualityScan'
? 'historyFactoryOrderNewQualityData'
: 'historyFactoryOrderNewData'
"
tracking-placeholder="扫描枪输入操作单号" tracking-placeholder="扫描枪输入操作单号"
:query-api="getOperationByNo" :query-api="getOperationByNo"
:complete-api="completeOperationById" :complete-api="completeOperationById"
......
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