Ver código fonte

切换项目更新

ZaiZai 11 meses atrás
pai
commit
6c5e329ff8
1 arquivos alterados com 45 adições e 20 exclusões
  1. 45 20
      src/views/tentative/material/sampling.vue

+ 45 - 20
src/views/tentative/material/sampling.vue

@@ -153,14 +153,14 @@
                     <el-form-item label="拟用部位">
                         <el-input v-model="addEditFormModel.proposedPosition" />
                     </el-form-item>
-                    <el-form-item label="是否使用RFID">
-                        <el-radio-group v-model="addEditFormModel.isRfid" size="large">
+                    <el-form-item label="是否使用RFID" prop="isRfid">
+                        <el-radio-group v-model="addEditFormModel.isRfid" size="large" @change="formRfidChange">
                             <el-radio :value="1">是</el-radio>
                             <el-radio :value="0">否</el-radio>
                         </el-radio-group>
                     </el-form-item>
                 </div>
-                <el-form-item v-if="addEditFormModel.isRfid === 1" label="RFID编号">
+                <el-form-item v-if="addEditFormModel.isRfid === 1" label="RFID编号" prop="rfid">
                     <el-select v-model="addEditFormModel.rfid" clearable block>
                         <el-option v-for="item in deviceTable" :key="item.epc" :label="item.epc" :value="item.epc" />
                     </el-select>
@@ -483,7 +483,7 @@ const editFormModalClick = () => {
             ...obj,
             representativeCount: obj.representativeCount === -1 ? '' : obj.representativeCount,
             materialCount: obj.materialCount === -1 ? '' : obj.materialCount,
-            isRfid: isNullES(obj.isRfid) ? 0 : obj.isRfid,
+            isRfid: isNullES(obj.rfid) ? 0 : 1,
         }
         addEditFormModal.value = true
         requestDevice()
@@ -508,6 +508,7 @@ const requestDevice = async () => {
         await device.open() // 打开设备
     }
     // 电脑接收到来自设备的消息回调
+    deviceTable.value = []
     device.oninputreport = (event) => {
         const { isRfid, rfid } = addEditFormModel.value
         if (isRfid !== 1 ) return
@@ -529,6 +530,15 @@ const requestDevice = async () => {
     }
 }
 
+//是否使用RFID
+const formRfidChange = () => {
+    const { isRfid } = addEditFormModel.value
+    if (isRfid !== 1) {
+        addEditFormModel.value.rfid = ''
+        deviceTable.value = []
+    }
+}
+
 //弹窗关闭
 const addEditFormModalClose = async () => {
     addEditFormModal.value = false
@@ -565,6 +575,20 @@ const addEditFormRules = {
         },
         trigger: 'blur',
     },
+    rfid: {
+        required: true,
+        validator: async (rule, value, callback) => {
+            const { isRfid } = addEditFormModel.value
+            if (isRfid !== 1) {
+                callback()
+            } else if (isNullES(value)) {
+                callback(new Error('请选择RFID编号'))
+            } else {
+                callback()
+            }
+        },
+        trigger: 'blur',
+    },
 }
 
 //校验材料编号是否唯一
@@ -587,22 +611,23 @@ const verification = async (val) => {
 const addEditFormLoading = ref(false)
 const addEditFormClick = async () => {
     const validate = await formValidate(addEditFormRef.value)
-    if (validate) {
-        addEditFormLoading.value = true
-        const { error, code, msg } = await samplingApi.submitForm({
-            ...addEditFormModel.value,
-            projectId: projectId.value,
-            contractId: searchForm.value.contractId,
-        })
-        //处理数据
-        addEditFormLoading.value = false
-        if (!error && code === 200) {
-            window?.$message?.success('操作成功')
-            addEditFormModal.value = false
-            await getTableData()
-        } else {
-            window?.$message?.error(msg || '操作失败')
-        }
+    if (!validate) return false
+    addEditFormLoading.value = true
+    const form = addEditFormModel.value
+    if (form.isRfid !== 1 ) {
+        form.rfid = ''
+    }
+    form.projectId = projectId.value
+    form.contractId = searchForm.value.contractId
+    const { error, code, msg } = await samplingApi.submitForm(form)
+    //处理数据
+    addEditFormLoading.value = false
+    if (!error && code === 200) {
+        window?.$message?.success('操作成功')
+        addEditFormModalClose().then()
+        await getTableData()
+    } else {
+        window?.$message?.error(msg || '操作失败')
     }
 }