From d2eed0eb7c2f9537d5eaab7ccc3b6ab258959227 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 24 十月 2026 20:48:11 +0800
Subject: [PATCH] feat(device): 设备核查计划附件上传与运行记录导出调整

---
 src/views/CNAS/resourceDemand/device/component/record.vue |  385 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 210 insertions(+), 175 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/device/component/record.vue b/src/views/CNAS/resourceDemand/device/component/record.vue
index 9c45784..add40c3 100644
--- a/src/views/CNAS/resourceDemand/device/component/record.vue
+++ b/src/views/CNAS/resourceDemand/device/component/record.vue
@@ -5,51 +5,67 @@
       <el-form :model="search" ref="search" size="small" :inline="true">
         <el-form-item label="鏍峰搧缂栧彿">
           <el-input v-model="search.sampleCode" clearable placeholder="璇疯緭鍏�" size="small"
-                    @keyup.enter="getTableList(clickNodeVal.value)"></el-input>
+                    @keyup.enter="getTableList()"></el-input>
         </el-form-item>
-        <el-form-item label="绠$悊缂栧彿">
+        <el-form-item label="璁惧缂栧彿">
           <el-input v-model="search.managementNumber" clearable placeholder="璇疯緭鍏�" size="small"
-                    @keyup.enter="getTableList(clickNodeVal.value)"></el-input>
+                    @keyup.enter="getTableList()"></el-input>
         </el-form-item>
         <el-form-item>
-          <el-button size="small" type="primary" @click="getTableList(clickNodeVal.value)">鏌ヨ</el-button>
+          <el-button size="small" type="primary" @click="getTableList()">鏌ヨ</el-button>
           <el-button size="small" @click="resetSearch">閲嶇疆</el-button>
         </el-form-item>
       </el-form>
       <div>
-        <el-button v-if="isMenuList !== 1" size="small" type="primary" @click="dialogVisible = true, openAdd()">鏂� 寤�</el-button>
         <el-button :loading="outLoading" size="small" type="primary" @click="openHandleOut">瀵� 鍑�</el-button>
       </div>
     </div>
     <div>
-      <el-table ref="Recordtable" :data="formParamList" height="calc(100vh - 20em)"
-                v-loading="tableLoading"
- border>
-        <!-- 琛ㄦ牸鍒� -->
-        <el-table-column label="搴忓彿" type="index" width="70" align="center">
-          <template v-slot="scope">
+      <el-table ref="Recordtable" :data="formParamList" height="calc(100vh - 25em)"
+                v-loading="tableLoading" border>
+        <el-table-column label="搴忓彿" type="index" width="60" align="center">
+          <template #default="scope">
             <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="鏍峰搧缂栧彿" min-width="180" prop="sampleCode" />
-        <el-table-column label="璁惧鍚嶇О" min-width="150" prop="deviceName" />
-        <el-table-column label="绠$悊缂栧彿" min-width="150" prop="managementNumber" />
-        <el-table-column label="浣跨敤鍓�" min-width="120" prop="useBefore">
-          <template v-slot="scope">
-            {{ scope.row.useBefore === 1 ? '鑹ソ' : '寮傚父' }}
+        <el-table-column label="璁惧鍚嶇О" min-width="140" prop="deviceName" show-overflow-tooltip />
+        <el-table-column label="璁惧鍨嬪彿" min-width="120" prop="specificationModel" show-overflow-tooltip />
+        <el-table-column label="璁惧缂栧彿" min-width="130" prop="managementNumber" />
+        <el-table-column label="浣跨敤鏃ユ湡" width="110" align="center">
+          <template #default="scope">
+            {{ formatDateCell(scope.row.useStartDate) }}
           </template>
         </el-table-column>
-        <el-table-column label="浣跨敤鍚�" min-width="120" prop="useAfter">
-          <template v-slot="scope">
-            {{ scope.row.useAfter === 1 ? '鑹ソ' : '寮傚父' }}
+        <el-table-column label="鏍峰搧缂栧彿" min-width="150" prop="sampleCode">
+          <template #default="scope">
+            <span>{{ scope.row.sampleCode }}</span>
+            <el-tooltip v-if="scope.row.orderCode" :content="'鍏宠仈鍘熷璁板綍锛�' + scope.row.orderCode" placement="top">
+              <lims-icon class="link-icon" name="el-icon-link"></lims-icon>
+            </el-tooltip>
           </template>
         </el-table-column>
-        <!--        <el-table-column label="寮傚父鎯呭喌" min-width="120" prop="abnormal" />-->
-        <el-table-column label="浣跨敤寮�濮嬫棩鏈�" min-width="170" prop="useStartDate" :formatter="formatDateCell" />
-        <el-table-column label="浣跨敤缁撴潫鏃ユ湡" min-width="170" prop="useEndDate" :formatter="formatDateCell" />
-        <el-table-column label="浣跨敤浜�" min-width="120" prop="usePerson" />
-        <el-table-column label="澶囨敞" min-width="120" prop="remark" />
-        <!-- 鎿嶄綔鎸夐挳 -->
+        <el-table-column label="鏃堕棿锛�24灏忔椂鍒讹級" align="center">
+          <el-table-column label="寮�濮�" width="90" align="center">
+            <template #default="scope">{{ formatTimeCell(scope.row.useStartDate) }}</template>
+          </el-table-column>
+          <el-table-column label="缁撴潫" width="90" align="center">
+            <template #default="scope">{{ formatTimeCell(scope.row.useEndDate) }}</template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="璁惧鐘跺喌" align="center">
+          <el-table-column label="浣跨敤鍓�" width="80" align="center">
+            <template #default="scope">{{ formatStatus(scope.row.useBefore) }}</template>
+          </el-table-column>
+          <el-table-column label="浣跨敤鍚�" width="80" align="center">
+            <template #default="scope">{{ formatStatus(scope.row.useAfter) }}</template>
+          </el-table-column>
+        </el-table-column>
+        <el-table-column label="鐜鏉′欢" align="center">
+          <el-table-column label="鈩�" width="80" align="center" prop="temperature" />
+          <el-table-column label="%RH" width="80" align="center" prop="humidity" />
+        </el-table-column>
+        <el-table-column label="浣跨敤浜�" width="100" prop="usePerson" />
+        <el-table-column label="澶囨敞" min-width="140" prop="remark" show-overflow-tooltip />
         <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">
           <template #default="scope">
             <el-button size="small" link type="primary" @click="showDetailsDialog('edit', scope.row)">缂栬緫</el-button>
@@ -63,30 +79,57 @@
         @current-change="handleCurrentChange" background>
       </el-pagination>
     </div>
-    <el-dialog v-model="dialogVisible" title="浠櫒璁惧浣跨敤璁板綍琛�" top="5vh" width="55%">
-      <el-form ref="form" :model="form" label-width="130px">
-        <el-row>
-          <el-col :span="24">
-            <el-form-item :rules="[{ required: true, message: '鏍峰搧缂栧彿', trigger: 'blur' }]" label="鏍峰搧缂栧彿:"
+    <el-dialog v-model="dialogVisible" title="浠櫒璁惧杩愯璁板綍" top="5vh" width="70%">
+      <el-form ref="form" :model="form" label-width="105px">
+        <el-row :gutter="16">
+          <el-col :span="8">
+            <el-form-item label="璁惧鍚嶇О:">
+              <el-input v-model="form.deviceName" disabled size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="璁惧鍨嬪彿:">
+              <el-input v-model="form.specificationModel" disabled size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="璁惧缂栧彿:">
+              <el-input v-model="form.managementNumber" disabled size="small"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨浣跨敤鏃ユ湡', trigger: 'change' }]" label="浣跨敤鏃ユ湡:"
+              prop="useDate">
+              <el-date-picker v-model="form.useDate" :disabled="operationType === 'view'" format="YYYY-MM-DD"
+                placeholder="閫夋嫨浣跨敤鏃ユ湡" size="small" style="width: 100%" type="date" value-format="YYYY-MM-DD"
+                :disabled-date="disabledDate">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ牱鍝佺紪鍙�', trigger: 'blur' }]" label="鏍峰搧缂栧彿:"
               prop="sampleCode">
-              <el-input v-model="form.sampleCode" :disabled="operationType === 'view'" size="small"
-                style="width: 100%;"></el-input>
+              <el-input v-model="form.sampleCode" :disabled="operationType === 'view'" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="璁惧鍚嶇О:" required>
-              <el-input v-model="form.deviceName" :disabled="operationType === 'view'" size="small"
-                style="width: 100%;"></el-input>
+            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨寮�濮嬫椂闂�', trigger: 'change' }]" label="寮�濮嬫椂闂�:"
+              prop="useStartTime">
+              <el-time-picker v-model="form.useStartTime" :disabled="operationType === 'view'" format="HH:mm"
+                placeholder="閫夋嫨寮�濮嬫椂闂�" size="small" style="width: 100%" value-format="HH:mm:ss">
+              </el-time-picker>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="绠$悊缂栧彿:" required>
-              <el-input v-model="form.managementNumber" :disabled="operationType === 'view'" size="small"
-                style="width: 100%;"></el-input>
+            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨缁撴潫鏃堕棿', trigger: 'change' }]" label="缁撴潫鏃堕棿:"
+              prop="useEndTime">
+              <el-time-picker v-model="form.useEndTime" :disabled="operationType === 'view'" format="HH:mm"
+                placeholder="閫夋嫨缁撴潫鏃堕棿" size="small" style="width: 100%" value-format="HH:mm:ss">
+              </el-time-picker>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨浣跨敤鍓�', trigger: 'change' }]" label="浣跨敤鍓�:"
+            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨浣跨敤鍓嶇姸鎬�', trigger: 'change' }]" label="浣跨敤鍓�:"
               prop="useBefore">
               <el-radio-group v-model="form.useBefore" :disabled="operationType === 'view'">
                 <el-radio :value="1">鑹ソ</el-radio>
@@ -95,7 +138,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨浣跨敤鍚�', trigger: 'change' }]" label="浣跨敤鍚�:"
+            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨浣跨敤鍚庣姸鎬�', trigger: 'change' }]" label="浣跨敤鍚�:"
               prop="useAfter">
               <el-radio-group v-model="form.useAfter" :disabled="operationType === 'view'">
                 <el-radio :value="1">鑹ソ</el-radio>
@@ -104,22 +147,31 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヤ娇鐢ㄦ棩鏈�', trigger: 'blur' }]" label="浣跨敤鏃ユ湡:"
-              prop="useDateList">
-              <el-date-picker v-model="form.useDateList" :disabled="operationType === 'view'" end-placeholder="缁撴潫鏃ユ湡"
-                format="YYYY-MM-DD HH:mm:ss" size="small" start-placeholder="寮�濮嬫棩鏈�" style="width:100%"
-                type="datetimerange" value-format="YYYY-MM-DD HH:mm:ss"
-                              :disabled-date="disabledDate">
-              </el-date-picker>
+            <el-form-item label="鐜娓╁害:">
+              <el-input v-model="form.temperature" :disabled="operationType === 'view'" placeholder="璇疯緭鍏ユ俯搴�" size="small">
+                <template #append>鈩�</template>
+              </el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヤ娇鐢ㄤ汉', trigger: 'change' }]" label="浣跨敤浜�:"
+            <el-form-item label="鐜婀垮害:">
+              <el-input v-model="form.humidity" :disabled="operationType === 'view'" placeholder="璇疯緭鍏ユ箍搴�" size="small">
+                <template #append>%RH</template>
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨浣跨敤浜�', trigger: 'change' }]" label="浣跨敤浜�:"
               prop="usePersonId">
               <el-select @change="usePersonName" v-model="form.usePersonId" :disabled="operationType === 'view'"
                 placeholder="璇烽�夋嫨" size="small" style="width: 100%">
                 <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
               </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" v-if="form.orderCode">
+            <el-form-item label="鍏宠仈鍘熷璁板綍:">
+              <el-input v-model="form.orderCode" disabled size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
@@ -129,7 +181,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <template #footer><span  class="dialog-footer">
+      <template #footer><span class="dialog-footer">
         <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
         <el-button v-if="operationType !== 'view'" type="primary" @click="saveRecord">纭� 瀹�</el-button>
       </span></template>
@@ -140,7 +192,7 @@
           type="month" value-format="YYYY-MM">
         </el-date-picker>
       </span>
-      <template #footer><span  class="dialog-footer">
+      <template #footer><span class="dialog-footer">
         <el-button @click="ratifyDialog = false, exportDate = ''">鍙� 娑�</el-button>
         <el-button :loading="outLoading" type="primary" @click="handleDown">瀵� 鍑�</el-button>
       </span></template>
@@ -151,28 +203,41 @@
 import {
   deviceRecordPage,
   exportUseRecord,
-  selectDeviceByCode,
-  saveDeviceRecord,
   updateDeviceRecord,
   deleteDeviceRecord,
 } from '@/api/cnas/resourceDemand/device.js'
 import { selectUserCondition } from "@/api/business/inspectionTask";
-import { formatListDate } from './dateFormat';
+import { formatDateOnly as toDateOnly } from './dateFormat';
 import { saveBlobOrShowError } from '@/utils/saveBlob'
+import dayjs from 'dayjs'
+
+const today = () => {
+  const now = new Date()
+  return `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`
+}
+
+const defaultForm = () => ({
+  id: null,
+  deviceId: '',
+  deviceName: '',
+  specificationModel: '',
+  managementNumber: '',
+  insOrderId: null,
+  orderCode: '',
+  sampleCode: '',
+  useDate: today(),
+  useStartTime: '',
+  useEndTime: '',
+  temperature: '',
+  humidity: '',
+  useBefore: 1,
+  useAfter: 1,
+  abnormal: '',
+  usePersonId: '',
+  usePerson: '',
+  remark: '',
+})
 export default {
-  props: {
-    clickNodeVal: {
-      type: Object,
-      default: () => {
-        return {};
-      }
-    },
-    // 鍒ゆ柇鏄惁鏄閮ㄥ垎绂�
-    isMenuList: {
-      type: Number,
-      default: 0
-    }
-  },
   data() {
     return {
       search: {
@@ -182,37 +247,11 @@
         sampleCode: '',
         managementNumber: ''
       },
-      responsiblePersonList: {},
-      isShow: false,
       outLoading: false,
       ratifyDialog: false,
       exportDate: '',
       userList: [],
-      form: {
-        // deviceId:'',
-        processNumber: '',
-        deviceName: '',
-        managementNumber: '',
-        //娓╁害
-        temperature: '',
-        //婀垮害
-        humidity: '',
-        //浣跨敤鍓�
-        useBefore: 1,
-        //浣跨敤鍚�
-        useAfter: 1,
-        //寮傚父鎯呭喌
-        abnormal: '',
-        useDateList: [],
-        //浣跨敤鏃ユ湡
-        useStartDate: null,
-        useEndDate: null,
-        //浣跨敤浜�
-        usePerson: '',
-        usePersonId: '',
-        //澶囨敞
-        remark: '',
-      },
+      form: defaultForm(),
       dialogVisible: false,
       operationType: '',
       formParamList: [],
@@ -220,11 +259,21 @@
     }
   },
   mounted() {
-    this.getTableList(this.clickNodeVal.value);
+    this.getTableList();
   },
   methods: {
-    formatDateCell(row, column, cellValue) {
-      return formatListDate(cellValue)
+    formatDateCell(value) {
+      return toDateOnly(value)
+    },
+    formatTimeCell(value) {
+      if (!value) return ''
+      const date = dayjs(String(value).replace('T', ' '))
+      return date.isValid() ? date.format('HH:mm') : ''
+    },
+    formatStatus(value) {
+      if (value === 1) return '鑹ソ'
+      if (value === 0) return '寮傚父'
+      return ''
     },
     // element-plus 鐨� el-date-picker 娌℃湁 picker-options锛屾敼鎴� :disabled-date
     disabledDate(time) {
@@ -232,11 +281,11 @@
     },
     handleSizeChange(val) {
       this.search.size = val
-      this.getTableList(this.clickNodeVal.value);
+      this.getTableList();
     },
     handleCurrentChange(val) {
       this.search.current = val
-      this.getTableList(this.clickNodeVal.value);
+      this.getTableList();
     },
     resetSearch() {
       this.search = {
@@ -246,15 +295,11 @@
         sampleCode: '',
         managementNumber: ''
       }
-      this.getTableList(this.clickNodeVal.value);
+      this.getTableList();
     },
-    async getTableList(deviceId) {
-      if (deviceId === undefined) {
-        deviceId = ''
-      }
+    async getTableList() {
       this.tableLoading = true
       await deviceRecordPage({
-        deviceId: deviceId,
         ...this.search
       }).then(res => {
         this.tableLoading = false
@@ -274,28 +319,18 @@
     handleDown() {
       this.outLoading = true
       exportUseRecord({
-        deviceId: this.clickNodeVal.value,
         sampleCode: this.search.sampleCode,
         managementNumber: this.search.managementNumber,
         exportDate: this.exportDate
       }).then(res => {
         this.outLoading = false
-        saveBlobOrShowError(res, '璁惧浣跨敤璁板綍.doc', 'application/msword')
+        saveBlobOrShowError(res, '浠櫒璁惧杩愯璁板綍.docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document')
       }).catch(() => {
         this.outLoading = false
       })
     },
-    //鏂板缓
-    openAdd() {
-      this.operationType = 'add'
-      this.getUserList()
-      selectDeviceByCode({ id: this.clickNodeVal.value }).then(res => {
-        this.form.deviceName = res.data.deviceName
-        this.form.managementNumber = res.data.managementNumber
-        this.$nextTick(() => {
-          this.$refs['form'].clearValidate()
-        })
-      });
+    resetForm() {
+      this.form = defaultForm()
     },
     usePersonName(value) {
       const index = this.userList.findIndex(item => item.id === value)
@@ -303,31 +338,39 @@
         this.form.usePerson = this.userList[index].name
       }
     },
-    //纭娣诲姞璁板綍
+    //淇濆瓨淇敼
     saveRecord() {
       this.$refs.form.validate((valid) => {
-        if (valid) {
-          this.form.useStartDate = this.form.useDateList[0]
-          this.form.useEndDate = this.form.useDateList[1]
-          this.form.deviceId = this.clickNodeVal.value
-          if (this.operationType === 'add') {
-            saveDeviceRecord(this.form).then(res => {
-              if (res.code == 200) {
-                this.$message.success('鏂板鎴愬姛')
-                this.getTableList(this.clickNodeVal.value)
-                this.dialogVisible = false
-              }
-            })
-          } else {
-            updateDeviceRecord(this.form).then(res => {
-              if (res.code == 200) {
-                this.$message.success('淇敼鎴愬姛')
-                this.getTableList(this.clickNodeVal.value)
-                this.dialogVisible = false
-              }
-            })
-          }
+        if (!valid) {
+          return
         }
+        if (this.form.useStartTime >= this.form.useEndTime) {
+          this.$message.error('缁撴潫鏃堕棿蹇呴』鏅氫簬寮�濮嬫椂闂�')
+          return
+        }
+        const payload = {
+          id: this.form.id || undefined,
+          deviceId: this.form.deviceId,
+          insOrderId: this.form.insOrderId || undefined,
+          sampleCode: this.form.sampleCode,
+          temperature: this.form.temperature,
+          humidity: this.form.humidity,
+          useBefore: this.form.useBefore,
+          useAfter: this.form.useAfter,
+          abnormal: this.form.abnormal,
+          usePersonId: this.form.usePersonId,
+          usePerson: this.form.usePerson,
+          remark: this.form.remark,
+          useStartDate: `${this.form.useDate} ${this.form.useStartTime}`,
+          useEndDate: `${this.form.useDate} ${this.form.useEndTime}`,
+        }
+        updateDeviceRecord(payload).then(res => {
+          if (res.code == 200) {
+            this.$message.success('淇敼鎴愬姛')
+            this.getTableList()
+            this.dialogVisible = false
+          }
+        })
       });
     },
     //鏌ョ湅璇︽儏
@@ -336,13 +379,23 @@
       this.dialogVisible = true;
       this.getUserList()
       // 澶嶅埗涓�浠藉啀缂栬緫锛岄伩鍏嶇洿鎺ユ敼鍔ㄨ〃鏍奸噷鐨勬暟鎹�
-      const useStartDate = row.useStartDate || ''
-      const useEndDate = row.useEndDate || ''
+      const start = row.useStartDate ? String(row.useStartDate).replace('T', ' ') : ''
+      const end = row.useEndDate ? String(row.useEndDate).replace('T', ' ') : ''
       this.form = {
+        ...defaultForm(),
         ...row,
-        useStartDate,
-        useEndDate,
-        useDateList: useStartDate && useEndDate ? [useStartDate, useEndDate] : []
+        deviceId: row.deviceId,
+        deviceName: row.deviceName || '',
+        specificationModel: row.specificationModel || '',
+        managementNumber: row.managementNumber || '',
+        orderCode: row.orderCode || '',
+        useDate: start ? start.slice(0, 10) : '',
+        useStartTime: start.length >= 19 ? start.slice(11, 19) : '',
+        useEndTime: end.length >= 19 ? end.slice(11, 19) : '',
+        temperature: row.temperature || '',
+        humidity: row.humidity || '',
+        usePersonId: row.usePersonId || '',
+        usePerson: row.usePerson || '',
       }
     },
     handleDeleteClick(index, row) {
@@ -372,37 +425,12 @@
     },
   },
   watch: {
-    // 鐩戝惉鐐瑰嚮el-tree鐨勬暟鎹紝杩涜鏁版嵁鍒锋柊
-    clickNodeVal(newVal) {
-      if (newVal.value) {
-        this.getTableList(newVal.value);
-      }
-    },
     dialogVisible(newVal) {
       if (newVal === false) {
-        this.form = {
-          // deviceId:'',
-          sampleCode: '',
-          deviceName: '',
-          managementNumber: '',
-          //娓╁害
-          temperature: '',
-          //婀垮害
-          humidity: '',
-          //浣跨敤鍓�
-          useBefore: 1,
-          //浣跨敤鍚�
-          useAfter: 1,
-          //寮傚父鎯呭喌
-          abnormal: '',
-          //浣跨敤鏃ユ湡
-          useDateList: [],
-          //浣跨敤浜�
-          usePersonId: '',
-          //澶囨敞
-          remark: '',
-        }
-        this.$refs.form.clearValidate()
+        this.resetForm()
+        this.$nextTick(() => {
+          this.$refs.form && this.$refs.form.clearValidate()
+        })
       }
     }
   }
@@ -414,6 +442,13 @@
   height: 46px;
   display: flex;
   justify-content: space-between;
-  margin-top: 10px;
+  margin-top: 4px;
+}
+
+.link-icon {
+  margin-left: 4px;
+  color: #409eff;
+  font-size: 14px;
+  vertical-align: middle;
 }
 </style>

--
Gitblit v1.9.3