From c6e96cdb8b1cfb51e9a45bf86c38d1353e983127 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 19 十月 2026 15:19:48 +0800
Subject: [PATCH] 设备模块业务完善及前序页面优化

---
 src/views/CNAS/resourceDemand/device/component/calibration.vue |  376 ++++-------------------------------------------------
 1 files changed, 31 insertions(+), 345 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/device/component/calibration.vue b/src/views/CNAS/resourceDemand/device/component/calibration.vue
index 6613757..36a3061 100644
--- a/src/views/CNAS/resourceDemand/device/component/calibration.vue
+++ b/src/views/CNAS/resourceDemand/device/component/calibration.vue
@@ -3,7 +3,7 @@
   <div>
     <div class="btnS">
       <el-button size="small" type="primary" @click="calibrationMaintenance()">鏍″噯椤圭洰缁存姢</el-button>
-      <el-button size="small" type="primary" @click="add('add')">娣诲姞鏍″噯璁板綍</el-button>
+      <el-button size="small" type="primary" @click="add()">娣诲姞鏍″噯璁板綍</el-button>
     </div>
     <div class="tables" style="margin-top: 10px;">
       <el-table :data="tableData" height="calc(100vh - 20em)" border>
@@ -21,11 +21,15 @@
         </el-table-column>
         <el-table-column label="鏍″噯璇佷功缂栧彿" min-width="150" prop="certificateSerialNumber"></el-table-column>
         <el-table-column label="璇存槑" min-width="150" prop="remark" show-overflow-tooltip></el-table-column>
-        <el-table-column label="鏍″噯鏃ユ湡" min-width="150" prop="calibrationDate"></el-table-column>
-        <el-table-column label="涓嬫鏍″噯鏃ユ湡" min-width="150" prop="nextCalibrationDate"></el-table-column>
-        <el-table-column label="纭鏃ユ湡" min-width="150" prop="confirmDate"></el-table-column>
+        <el-table-column label="鏍″噯鏃ユ湡" min-width="150" prop="calibrationDate"
+          :formatter="formatDateCell"></el-table-column>
+        <el-table-column label="涓嬫鏍″噯鏃ユ湡" min-width="150" prop="nextCalibrationDate"
+          :formatter="formatDateCell"></el-table-column>
+        <el-table-column label="纭鏃ユ湡" min-width="150" prop="confirmDate"
+          :formatter="formatDateCell"></el-table-column>
         <el-table-column label="鐧昏浜�" min-width="150" prop="createUser"></el-table-column>
-        <el-table-column label="鐧昏鏃ユ湡" min-width="150" prop="createTime"></el-table-column>
+        <el-table-column label="鐧昏鏃ユ湡" min-width="150" prop="createTime"
+          :formatter="formatDateCell"></el-table-column>
         <el-table-column fixed="right" label="鎿嶄綔" min-width="180" align="center">
           <template #default="{ row }">
             <el-button size="small" link type="primary" @click="handleAttachmentClick(row)">涓嬭浇闄勪欢</el-button>
@@ -34,7 +38,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
+      <el-pagination :current-page="search.current" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
         :total="search.total" layout="->,total, sizes, prev, pager, next, jumper"
         @size-change="handleSizeChange" @current-change="handleCurrentChange" background>
       </el-pagination>
@@ -85,7 +89,7 @@
         <el-table-column label="鏈�澶у厑璁歌宸�" prop="maxPermissibleError"></el-table-column>
         <el-table-column label="鍒ゅ畾鏍囧噯" prop="judgmentCriteria"></el-table-column>
         <el-table-column label="鍒涘缓浜�" prop="createdBy"></el-table-column>
-        <el-table-column label="鍒涘缓鏃堕棿" prop="creationTime"></el-table-column>
+        <el-table-column label="鍒涘缓鏃堕棿" prop="creationTime" :formatter="formatDateCell"></el-table-column>
         <el-table-column fixed="right" label="鎿嶄綔">
           <template #default="scope">
             <el-button size="small" link type="primary" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
@@ -94,178 +98,25 @@
       </el-table>
     </el-dialog>
 
-    <!-- 娣诲姞鏍″噯璁板綍 -->
-    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-model="dialogVisible1"
-      title="娣诲姞鏍″噯璁板綍" top="5vh" width="80%" @close="resetCalibrationRecord">
-      <div style="height: 70vh;overflow-y: auto;overflow-x: hidden;">
-        <h4>
-          <div style="display: flex;align-items: center;">
-            <span class="line"></span>
-            <span>娣诲姞璁惧鏍″噯璁板綍</span>
-          </div>
-        </h4>
-        <el-form ref="calibrationRecord" :model="calibrationRecord" :rules="formRules" label-position="right"
-          label-width="120px">
-          <el-row>
-            <el-col :span="6">
-              <el-form-item label="鏍″噯鏈嶅姟鏈烘瀯:" prop="unitOfMeasure">
-                <el-select v-model="calibrationRecord.unitOfMeasure" :disabled="operationType === 'view'" clearable filterable
-                  size="small" style="width: 100%">
-                  <el-option v-for="name in calibrationServiceOptions" :key="name" :label="name" :value="name"></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="鏍″噯鏃ユ湡:" prop="calibrationDate">
-                <el-date-picker v-model="calibrationRecord.calibrationDate" :disabled="operationType === 'view'"
-                  format="YYYY-MM-DD" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 90%" type="date"
-                  value-format="YYYY-MM-DD" @change="getNextCalibrationDate">
-                </el-date-picker>
-              </el-form-item>
-            </el-col>
-            <el-col :span="10">
-              <el-form-item label="涓嬫鏍″噯鏃ユ湡:" label-width="140px">
-                <el-date-picker v-model="calibrationRecord.nextCalibrationDate" disabled format="YYYY-MM-DD"
-                  placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 90%" type="date" value-format="YYYY-MM-DD">
-                </el-date-picker>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
-              <el-form-item label="璁$畻鍣ㄥ叿:" prop="calculatingApparatus">
-                <el-input v-model="calibrationRecord.calculatingApparatus" :disabled="operationType === 'view'"
-                  size="small"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="璁$畻鏍囧噯閲忕▼:" prop="standardRange">
-                <el-input v-model="calibrationRecord.standardRange" :disabled="operationType === 'view'" size="small"
-                  style="width: 90%"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="10">
-              <el-form-item label="璁¢噺鏍囧噯涓嶇‘瀹氬害:" label-width="140px" prop="calibrationStandardUncertainty">
-                <el-input v-model="calibrationRecord.calibrationStandardUncertainty"
-                  :disabled="operationType === 'view'" size="small" style="width: 90%"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
-              <el-form-item label="鎵�渚濇嵁鏂囦欢:" prop="byDocument">
-                <el-input v-model="calibrationRecord.byDocument" :disabled="operationType === 'view'"
-                  size="small"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="璇佷功缂栧彿:" prop="certificateSerialNumber">
-                <el-input v-model="calibrationRecord.certificateSerialNumber" :disabled="operationType === 'view'"
-                  size="small" style="width: 90%"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="10">
-              <el-form-item label="鐘舵��:" label-width="140px" prop="status" required>
-                <el-radio-group v-model="calibrationRecord.status" :disabled="operationType === 'view'">
-                  <el-radio value="0yes">鍚堟牸</el-radio>
-                  <el-radio value="1no">涓嶅悎鏍�</el-radio>
-                  <el-radio value="2other">鍏朵粬</el-radio>
-                </el-radio-group>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
-              <el-form-item label="纭鏃ユ湡:">
-                <el-date-picker v-model="calibrationRecord.confirmDate" :disabled="operationType === 'view'"
-                  format="YYYY-MM-DD HH:mm:ss" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 100%" type="datetime"
-                  value-format="YYYY-MM-DD HH:mm:ss">
-                </el-date-picker>
-              </el-form-item>
-            </el-col>
-            <el-col :span="17">
-              <el-form-item label="闄勪欢锛�" prop="fileName">
-                <el-input v-model="calibrationRecord.fileName"
-                  :style="`width: ${operationType === 'add' ? '85%' : '100%'};}`" disabled size="small">
-                  <template #append><el-button v-if="operationType === 'add'"  :icon="$icon('el-icon-delete-solid')"
-                    @click="deleteFile"></el-button></template>
-                </el-input>
-                <el-upload v-if="operationType === 'add'" ref="upload" :action="action" :before-upload="beforeUpload"
-                  :headers="uploadHeader" :limit="1" :on-error="onError" :on-success="handleSuccessUp"
-                  :show-file-list="false" style="float: right;">
-                  <el-button :loading="upLoading" size="small" style="position: relative; top: -4px;"
-                    type="primary">闄勪欢涓婁紶
-                  </el-button>
-                </el-upload>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="澶囨敞:">
-                <el-input v-model="calibrationRecord.remark" :disabled="operationType === 'view'" :rows="3" size="small"
-                  style="width: 96%" type="textarea"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-        </el-form>
-        <h4>
-          <span style="display: flex;align-items: center;">
-            <span class="line"></span><span>鏍″噯鏉$洰纭缁撴灉</span>
-          </span>
-        </h4>
-        <el-table ref="calibrateTable" :data="calibrateParams" border>
-          <el-table-column label="缂栧彿" type="index" width="60"></el-table-column>
-          <el-table-column label="璁¢噺鍙傛暟" prop="measurementParameter"></el-table-column>
-          <el-table-column label="閲忕▼鑼冨洿" prop="rangeOfMeasurement"></el-table-column>
-          <el-table-column label="鏈�澶у厑璁歌宸�" prop="maxPermissibleError"></el-table-column>
-          <el-table-column label="鍒ゅ畾鏍囧噯" prop="judgmentCriteria"></el-table-column>
-          <el-table-column label="鏄惁鏍″噯" prop="isCalibration">
-            <template #header="scope">
-              <span class="required-span">* </span>鏄惁鏍″噯
-            </template>
-            <template #default="scope">
-              <el-radio-group v-model="scope.row.isCalibration" :disabled="operationType === 'view'">
-                <el-radio value="0yes">鏄�</el-radio>
-                <el-radio value="1no">鍚�</el-radio>
-              </el-radio-group>
-            </template>
-          </el-table-column>
-          <el-table-column label="鍒ゅ畾缁撴灉" min-width="140" prop="result">
-            <template #header="scope">
-              <span class="required-span">* </span>鍒ゅ畾缁撴灉
-            </template>
-            <template #default="scope">
-              <el-radio-group v-model="scope.row.result" :disabled="operationType === 'view'" @change="checkRadio()">
-                <el-radio value="0yes">鍚堟牸</el-radio>
-                <el-radio value="1no">涓嶅悎鏍�</el-radio>
-                <el-radio value="2other">鍏朵粬</el-radio>
-              </el-radio-group>
-            </template>
-          </el-table-column>
-          <el-table-column label="鍗曢」缁撴灉璇存槑" prop="singleResultStatement">
-            <template #default="scope">
-              <el-input v-model="scope.row.singleResultStatement" :disabled="operationType === 'view'"
-                size="small"></el-input>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-      <template #footer><span  class="dialog-footer">
-        <el-button v-if="operationType === 'add'" @click="dialogVisible1 = false">鍙� 娑�</el-button>
-        <el-button v-if="operationType === 'add'" :loading="addRecordLoading" type="primary" @click="addRecord">纭�
-          瀹�</el-button>
-      </span></template>
-    </el-dialog>
+    <!-- 娣诲姞/鏌ョ湅鏍″噯璁板綍寮圭獥 -->
+    <calibration-record-dia ref="calibrationRecordDia"
+      @success="getTableList(clickNodeVal.value)"></calibration-record-dia>
   </div>
 </template>
 
 <script>
 import {
   deviceMetricRecordPage,
-  showDeviceMetricsCopy,
   deleteDeviceMetricRecord,
-  deleteCNASFile,
   selectDeviceMetric,
   deleteDeviceMetrics,
-  addOrUpdateDeviceMetricRecord,
   saveOrUpdateDeviceMetric
 } from '@/api/cnas/resourceDemand/device.js'
-import { selectQualifiedSupplierManagementPage } from '@/api/cnas/externalService/supplierManage/supplierManage'
+import CalibrationRecordDia from './calibrationRecordDia.vue'
+import { formatListDate } from './dateFormat'
 import { mapGetters } from "@/utils/store-compat";
 export default {
+  components: { CalibrationRecordDia },
   props: {
     clickNodeVal: {
       type: Object,
@@ -280,33 +131,8 @@
       calibrateParams: [],
       calibrateParamsLoading: false,
       addCalibrateLoading: false,
-      calibrationRecord: {
-        unitOfMeasure: '', // 璁¢噺鍗曚綅
-        calibrationDate: null, // 鏍″噯鏃ユ湡
-        nextCalibrationDate: null, // 涓嬫鏍″噯鏃ユ湡
-        calculatingApparatus: '', // 璁$畻鍣ㄥ叿
-        confirmDate: null, // 纭鏃ユ湡
-        standardRange: '', // 璁$畻鏍囧噯閲忕▼
-        calibrationStandardUncertainty: '', // 璁¢噺鏍囧噯涓嶇‘瀹氬害
-        byDocument: '', // 渚濇嵁鏂囦欢
-        certificateSerialNumber: '', // 璇佷功缂栧彿
-        status: '', // 鐘舵��
-        remark: '', // 澶囨敞
-        systemFileName: '', //
-        fileName: '', //
-      },
-      formRules: {
-        unitOfMeasure: [{ required: true, message: '璇烽�夋嫨鏍″噯鏈嶅姟鏈烘瀯', trigger: 'change' }],
-        calibrationDate: [{ required: true, message: '璇烽�夋嫨鏍″噯鏃ユ湡', trigger: 'change' }],
-        calculatingApparatus: [{ required: true, message: '璇疯緭鍏ヨ绠楀櫒鍏�', trigger: 'blur' }],
-        standardRange: [{ required: true, message: '璇疯緭鍏ヨ绠楁爣鍑嗛噺绋�', trigger: 'blur' }],
-        calibrationStandardUncertainty: [{ required: true, message: '璇疯緭鍏ヨ閲忔爣鍑嗕笉纭畾搴�', trigger: 'blur' }],
-        byDocument: [{ required: true, message: '璇疯緭鍏ユ墍渚濇嵁鏂囦欢', trigger: 'blur' }],
-        status: [{ required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'change' }],
-      },
       tableData: [],
       dialogVisible0: false,
-      dialogVisible1: false,
       form0: {
         measurementParameter: '', // 璁¢噺鍙傛暟
         rangeOfMeasurement: '',
@@ -330,10 +156,6 @@
           { required: true, message: '璇疯緭鍏ュ垽瀹氭爣鍑�', trigger: 'blur' }
         ],
       },
-      addRecordLoading: false,
-      upLoading: false,
-      operationType: '',
-      qualifiedSupplierNames: [],
       search: {
         size: 20,
         current: 1,
@@ -343,50 +165,15 @@
   },
   // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
   computed: {
-    // 鏍″噯鏈嶅姟鏈烘瀯涓嬫媺閫夐」锛堝悎鏍间緵搴斿晢 + 褰撳墠鍊煎厹搴曪級
-    calibrationServiceOptions() {
-      const list = this.qualifiedSupplierNames.slice();
-      const value = this.calibrationRecord.unitOfMeasure;
-      if (value && list.indexOf(value) === -1) list.push(value);
-      return list;
-    },
     ...mapGetters(["nickName"]),
-    action() {
-      return this.javaApi + '/personBasicInfo/saveCNASFile'
-    }
   },
   mounted() {
-    this.obtainQualifiedSupplierList()
     //鑾峰彇鎿嶄綔璁板綍淇℃伅
     this.getTableList(this.clickNodeVal.value) // 鑾峰彇璁惧鏍″噯鍒楄〃鏁版嵁
   },
   methods: {
-    // 鎷夊彇鍚堟牸渚涘簲鍟嗗垪琛紙鏍″噯鏈嶅姟鏈烘瀯涓嬫媺閫夐」锛�
-    obtainQualifiedSupplierList() {
-      selectQualifiedSupplierManagementPage({ current: 1, size: 999 }).then(res => {
-        if (res.code === 200) {
-          const rows = (res.data && res.data.records) || [];
-          this.qualifiedSupplierNames = [...new Set(rows.map(r => r.supplierName).filter(Boolean))];
-        }
-      });
-    },
-    //鐘舵�佸垽瀹�
-    checkRadio() {
-      let resultList = this.calibrateParams.map(ele => ele.result)
-      if (resultList && resultList.filter(ele => ele == '1no').length > 0) {
-        this.calibrationRecord.status = '1no'
-      } else if (resultList && resultList.filter(ele => ele == '2other').length == resultList.length) {
-        this.calibrationRecord.status = '2other'
-      } else if (resultList && resultList.filter(ele => ele == '0yes').length == resultList.length) {
-        this.calibrationRecord.status = '0yes'
-      }
-    },
-    getNextCalibrationDate(val) {
-      let oneYearLaterDate = new Date(val)
-      oneYearLaterDate.setFullYear(oneYearLaterDate.getFullYear() + 1);
-      oneYearLaterDate.setDate(oneYearLaterDate.getDate() - 1);
-      // let obj = oneYearLaterDate.toISOString().split('T')[0];
-      this.calibrationRecord.nextCalibrationDate = oneYearLaterDate
+    formatDateCell(row, column, cellValue) {
+      return formatListDate(cellValue)
     },
     handleSizeChange(val) {
       this.search.size = val
@@ -402,20 +189,13 @@
         this.search.total = res.data.total
       })
     },
-    // 娣诲姞鏍告煡璁板綍
-    add(type) {
-      this.operationType = type
-      this.dialogVisible1 = true
-      this.getXmsg()
+    // 娣诲姞鏍″噯璁板綍
+    add() {
+      this.$refs.calibrationRecordDia.open(this.clickNodeVal.value, 'add')
     },
     // 鏌ョ湅璇︽儏
     handleViewClick(type, row) {
-      showDeviceMetricsCopy({ id: row.id, type: 'calibrate' }).then(res => {
-        this.calibrateParams = res.data
-      })
-      this.calibrationRecord = { ...row }
-      this.operationType = type
-      this.dialogVisible1 = true
+      this.$refs.calibrationRecordDia.open(this.clickNodeVal.value, type, row)
     },
     // 琛ㄦ牸鍒犻櫎鎿嶄綔
     handleDeleteClick(row) {
@@ -436,28 +216,14 @@
       })
     },
     handleAttachmentClick(row) {
-      this.$download.saveAs(row.systemFileName, row.systemFileName)
-    },
-    deleteFile() {
-      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎鏂囦欢, 鏄惁缁х画?', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        deleteCNASFile({ fileName: this.calibrationRecord.systemFileName }).then(res => {
-          this.calibrationRecord.fileName = ''
-          this.$refs.upload.clearFiles()
-          if (res.code == 200) {
-            this.$message.success('鍒犻櫎鎴愬姛锛�')
-          }
-        })
-      }).catch((err) => {
-        console.log('err----', err)
-        this.$message({
-          type: 'info',
-          message: '宸插彇娑堝垹闄�'
-        });
-      });
+      if (!row.systemFileName) {
+        this.$message.warning('鏈笂浼犳枃浠讹紒')
+        return
+      }
+      // 鍥剧墖瀛� /img/锛屽叾浠栨枃妗e瓨 /word/
+      const isImage = /\.(jpg|jpeg|png|gif|bmp|webp)$/i.test(row.systemFileName)
+      const url = this.javaApi + (isImage ? '/img/' : '/word/') + row.systemFileName
+      this.$download.saveAs(url, row.fileName || row.systemFileName)
     },
     // 鏍″噯椤圭洰缁存姢
     calibrationMaintenance() {
@@ -520,69 +286,6 @@
         }
       })
     },
-    addRecord() {
-      this.$refs['calibrationRecord'].validate((valid) => {
-        if (valid) {
-          try {
-            if (this.calibrateParams.some(m => m.isCalibration === undefined)) {
-              this.$message.error('璇烽�夋嫨鏄惁鏍″噯')
-              return
-            }
-            if (!this.calibrateParams.every(m => m.result !== undefined)) {
-              this.$message.error('璇烽�夋嫨鍒ゅ畾缁撴灉')
-              return
-            }
-            this.addRecordLoading = true
-            this.calibrationRecord.deviceId = this.clickNodeVal.value;
-            this.calibrationRecord.createUser = this.nickName
-            this.calibrationRecord.type = 'calibrate'
-            this.calibrationRecord.deviceMetricsCopyList = this.calibrateParams
-            addOrUpdateDeviceMetricRecord(this.calibrationRecord).then(res => {
-              if (res.code == 200) {
-                this.$message.success('娣诲姞鎴愬姛')
-                this.dialogVisible1 = false
-                this.getTableList(this.clickNodeVal.value)
-              }
-              this.addRecordLoading = false
-            })
-          } catch (e) {
-            console.log('addRecord---', e)
-            this.addRecordLoading = false
-          }
-        } else {
-          this.$message.warning('鏈夊繀濉」鏈~');
-        }
-      })
-    },
-    resetCalibrationRecord() {
-      this.$refs.calibrationRecord.resetFields()
-    },
-    // 涓婁紶闄勪欢
-    handleSuccessUp(response, file) {
-      if (response.code == 200) {
-        // 鍦ㄤ繚瀛樿祴鍊兼柊鏂囦欢
-        this.calibrationRecord.fileName = file.name
-        this.calibrationRecord.systemFileName = response.data
-        this.upLoading = false;
-      } else {
-        this.upLoading = false;
-        this.$message.error(response.message)
-      }
-    },
-    beforeUpload(file) {
-      if (file.size > 1024 * 1024 * 10) {
-        this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
-        this.$refs.upload.clearFiles()
-        return false;
-      } else {
-        this.upLoading = true;
-        return true;
-      }
-    },
-    onError(err, file, fileList) {
-      this.$message.error('涓婁紶澶辫触')
-      this.$refs.upload.clearFiles()
-    },
     // end
   },
   watch: {
@@ -590,23 +293,6 @@
     clickNodeVal(newVal) {
       if (newVal.value) {
         this.getTableList(newVal.value);
-      }
-    },
-    dialogVisible1(newVal) {
-      if (newVal === false) {
-        this.calibrateParams = []
-        this.calibrationRecord = {
-          unitOfMeasure: '', // 璁¢噺鍗曚綅
-          calibrationDate: null, // 鏍″噯鏃ユ湡
-          nextCalibrationDate: null, // 涓嬫鏍″噯鏃ユ湡
-          calculatingApparatus: '', // 璁$畻鍣ㄥ叿
-          standardRange: '', // 璁$畻鏍囧噯閲忕▼
-          calibrationStandardUncertainty: '', // 璁¢噺鏍囧噯涓嶇‘瀹氬害
-          byDocument: '', // 渚濇嵁鏂囦欢
-          certificateSerialNumber: '', // 璇佷功缂栧彿
-          status: '', // 鐘舵��
-          remark: '', // 澶囨敞
-        }
       }
     }
   }

--
Gitblit v1.9.3