diff --git a/klp-ui/src/components/MutiSelect/index.vue b/klp-ui/src/components/MutiSelect/index.vue index 489547fd..a06ee71c 100644 --- a/klp-ui/src/components/MutiSelect/index.vue +++ b/klp-ui/src/components/MutiSelect/index.vue @@ -1,10 +1,51 @@ - + \ No newline at end of file + + + \ No newline at end of file diff --git a/klp-ui/src/main.js b/klp-ui/src/main.js index 7cef69ae..c44635d5 100644 --- a/klp-ui/src/main.js +++ b/klp-ui/src/main.js @@ -46,6 +46,7 @@ import VueMeta from 'vue-meta' import DictData from '@/components/DictData' import KLPTable from '@/components/KLPUI/KLPTable/index.vue' import MemoInput from '@/components/MemoInput/index.vue' +import MutiSelect from '@/components/MutiSelect/index.vue' import CurrentCoilNo from '@/components/KLPService/Renderer/CurrentCoilNo.vue' import DictSelect from '@/components/DictSelect' @@ -81,6 +82,7 @@ Vue.component('ImageUpload', ImageUpload) Vue.component('ImagePreview', ImagePreview) Vue.component('KLPTable', KLPTable) Vue.component('MemoInput', MemoInput) +Vue.component('MutiSelect', MutiSelect) Vue.component('DictSelect', DictSelect) Vue.component('CurrentCoilNo', CurrentCoilNo) diff --git a/klp-ui/src/views/wms/coil/components/AbnormalForm.vue b/klp-ui/src/views/wms/coil/components/AbnormalForm.vue index dd2763af..dbb571a9 100644 --- a/klp-ui/src/views/wms/coil/components/AbnormalForm.vue +++ b/klp-ui/src/views/wms/coil/components/AbnormalForm.vue @@ -4,20 +4,18 @@ - - - 上板面 - - - 下板面 - - + + + - - {{ - dict.label }} - + + @@ -84,7 +82,12 @@ export default { return { rules: { position: [ - { required: true, message: '请选择位置', trigger: 'change' } + { required: true, message: '请选择位置', trigger: 'change' }, + { validator: this.validateArray, trigger: 'change' } + ], + plateSurface: [ + { required: true, message: '请选择上下板面', trigger: 'change' }, + { validator: this.validateArray, trigger: 'change' } ], startPosition: [ { required: true, message: '请输入开始位置', trigger: ['blur', 'change'] }, @@ -106,10 +109,26 @@ export default { computed: { formData: { get() { - return this.value || {}; + const data = this.value || {}; + // 接收时将CSV字符串解析成数组 + // if (data.plateSurface && typeof data.plateSurface === 'string') { + // data.plateSurface = data.plateSurface?.split(',') ?? []; + // } + // if (data.position && typeof data.position === 'string') { + // data.position = data.position?.split(',') ?? []; + // } + return data; }, set(newVal) { - this.$emit('input', { ...newVal }); + // 发送时将数组转为CSV + const data = { ...newVal }; + // if (data.plateSurface && Array.isArray(data.plateSurface)) { + // data.plateSurface = data.plateSurface?.join(',') ?? ''; + // } + // if (data.position && Array.isArray(data.position)) { + // data.position = data.position?.join(',') ?? ''; + // } + this.$emit('input', data); } } }, @@ -129,7 +148,8 @@ export default { this.formData = { abnormalId: undefined, coilId: currentCoilId, - position: undefined, + position: [], + plateSurface: [], startPosition: undefined, endPosition: undefined, length: undefined, @@ -161,6 +181,14 @@ export default { } else { callback(); } + }, + /** 校验数组 */ + validateArray(rule, value, callback) { + if (!value || value.length === 0) { + callback(new Error('请至少选择一个选项')); + } else { + callback(); + } } } }; diff --git a/klp-ui/src/views/wms/coil/components/ExceptionManager.vue b/klp-ui/src/views/wms/coil/components/ExceptionManager.vue index 25d5a486..fb935c46 100644 --- a/klp-ui/src/views/wms/coil/components/ExceptionManager.vue +++ b/klp-ui/src/views/wms/coil/components/ExceptionManager.vue @@ -1,43 +1,14 @@