From a0eb3c8e9f2d145e94d8b6b8374d8233dcea86c2 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 05 九月 2023 14:53:11 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.65.113:9001/r/lims-before

---
 src/views/laboratory/ledger/index.vue |  304 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 199 insertions(+), 105 deletions(-)

diff --git a/src/views/laboratory/ledger/index.vue b/src/views/laboratory/ledger/index.vue
index 555d0b6..48f4240 100644
--- a/src/views/laboratory/ledger/index.vue
+++ b/src/views/laboratory/ledger/index.vue
@@ -16,7 +16,8 @@
         </el-form>
       </div>
       <div class="serve-btn">
-        <el-button type="primary" icon="el-icon-plus" @click="addDrawerVisible = true">鏂板浠櫒</el-button>
+        <el-button type="primary" icon="el-icon-plus"
+          @click="addDrawerVisible = true; equipmentform.equipmentMeasurement = 1; equipmentform.whetherDataAcquisition = 1">鏂板浠櫒</el-button>
       </div>
     </div>
     <div class="content-main">
@@ -24,7 +25,7 @@
         <div class="bom-item-search">
           <el-row>
             <el-col :span="19">
-              <el-input v-model="filterText" placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" />
+              <el-input v-model="filterText" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" />
             </el-col>
             <el-col :span="5">
               <el-button type="primary" size="small" @click="addClassVisible = true"><i
@@ -32,7 +33,7 @@
             </el-col>
           </el-row>
         </div>
-        <el-tree ref="classTree" :data="classTree" :props="defaultProps" :default-expand-all="true"
+        <el-tree :highlight-current="true" ref="classTree" :data="classTree" :props="defaultProps" :default-expand-all="true"
           :filter-node-method="filterNode" @node-click="nodeClickHandler" />
       </div>
       <div class="library-table">
@@ -51,9 +52,9 @@
           </div>
         </div>
         <div class="table-box">
-          <el-table ref="equipmentTable" node-key="father_name" :cell-style="{ textAlign: 'center' }"
-            :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
-            :data="equipmentTable" style="width: 100%">
+          <el-table ref="equipmentTable" node-key="father_name" :cell-style="{ textAlign: 'left' }"
+            :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'left' }"
+            :data="equipmentTable" style="width: 100%;">
             <el-table-column type="index" label="搴忓彿" min-width="90" />
             <el-table-column prop="equipment_code" label="浠櫒璁惧缂栧彿" min-width="200" />
             <el-table-column prop="equipment_name" label="浠櫒璁惧鍚嶇О" min-width="150" />
@@ -62,12 +63,14 @@
             <el-table-column prop="termValidity" label="璁¢噺鎴鏈夋晥鏈�" min-width="200" />
             <el-table-column prop="conditions" label="璁惧鐘舵��" min-width="120">
               <template slot-scope="scope">
-                <el-tag :type="scope.row.conditions === 0 ? 'primary' : 'success'" disable-transitions>{{
-                  scope.row.conditions | conditionsFilter }}</el-tag>
+                <el-tag v-if="scope.row.conditions === 1" type="success" disable-transitions>杩愯</el-tag>
+                <el-tag v-if="scope.row.conditions === 2" type="danger" disable-transitions>鏁呴殰</el-tag>
+                <el-tag v-if="scope.row.conditions === 3" type="warning" disable-transitions>鎶ヤ慨</el-tag>
+                <el-tag v-if="scope.row.conditions === 4" type="warning" disable-transitions>妫�淇�</el-tag>
+                <el-tag v-if="scope.row.conditions === 5" disable-transitions>寰呮満</el-tag>
               </template>
             </el-table-column>
             <el-table-column prop="storage_place" label="瀛樻斁鍦�" min-width="200" />
-
             <el-table-column label="鎿嶄綔" min-width="120" fixed="right">
               <template slot-scope="scope">
                 <el-button type="text" size="small" @click="openDetail(scope.row)">缂栬緫</el-button>
@@ -83,14 +86,11 @@
                 <el-form-item prop="name" label="鍒嗙被鍚嶇О" label-width="100px" :rules="[
                   { required: true, message: '鍒嗙被鍚嶇О涓嶈兘涓虹┖' }
                 ]">
-                  <el-input  v-model="addTreeForm.name"
-                   />
+                  <el-input placeholder="璇峰~鍐欏垎绫诲悕绉�" v-model="addTreeForm.name" />
                 </el-form-item>
                 <el-form-item label="鐖剁骇鍒嗙被" label-width="100px">
-                  <el-select style="width: 100%;" v-model="addTreeForm.type" placeholder="璇烽�夋嫨">
-                    <el-option label="鍘熸潗鏂�" value="0" />
-                    <el-option label="鐢电嚎鐢电紗" value="1" />
-                  </el-select>
+                  <el-cascader v-model="addTreeForm.type" :options="addTreeFormClassTree" style="width: 374.88px;"
+                    :show-all-levels="false" />
                 </el-form-item>
               </el-form>
               <div slot="footer" class="dialog-footer">
@@ -123,8 +123,8 @@
           <div class="message">
             <div class="message-item"><span><i class="el-icon-edit" />鎵�灞炲垎绫伙細{{ equipmentDetail.classifyId }}</span></div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />鍒涘缓浜猴細{{ equipmentDetail.createUserId }}</span>
-              <el-tag type="primary"><i class="el-icon-info" :style="{ marginRight: '4px', color: '#409EFF' }" /></el-tag>
+              <span><i class="el-icon-user" />鍒涘缓浜猴細{{ equipmentDetail.createUserId }}</span>
+              <!-- <el-tag type="primary"><i class="el-icon-info" :style="{ marginRight: '4px', color: '#409EFF' }" /></el-tag> -->
             </div>
             <div class="message-item">
               <span><i class="el-icon-edit" />寤烘。鏃ユ湡锛歿{ equipmentDetail.acceptanceDate }}</span>
@@ -154,7 +154,7 @@
               <span><i class="el-icon-edit" />楠屾敹鏃ユ湡锛歿{ equipmentDetail.acceptanceDate }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />淇濈浜猴細{{ equipmentDetail.userId }}</span>
+              <span><i class="el-icon-edit" />淇濈浜猴細{{ equipmentDetail.userName }}</span>
             </div>
             <div class="message-item">
               <span><i class="el-icon-edit" />鏄惁鏀寔鏁伴噰锛歿{ equipmentDetail.whetherDataAcquisition == 1 ? '鏀寔' : '涓嶆敮鎸�'
@@ -204,8 +204,8 @@
                   <el-input v-show="codePointesTableStatus" v-model="scope.row.unit" />
                 </template>
               </el-table-column>
-              <el-table-column prop="name" label="鏇存柊浜�" min-width="100" />
-              <el-table-column prop="updateTime" label="鏇存柊鏃ユ湡" min-width="120" />
+              <!-- <el-table-column prop="name" label="鏇存柊浜�" min-width="100" />
+              <el-table-column prop="updateTime" label="鏇存柊鏃ユ湡" min-width="120" /> -->
               <el-table-column prop="descriptiveness" label="鎻忚堪" min-width="200">
                 <template slot-scope="scope">
                   <span v-show="!codePointesTableStatus">{{ scope.row.descriptiveness }}</span>
@@ -246,27 +246,32 @@
     <el-drawer ref="addDrawer" :title="equipmentDetail.id ? '淇敼浠櫒璁惧淇℃伅' : '鏂板浠櫒璁惧'" :append-to-body="true"
       :visible.sync="addDrawerVisible" class="addDrawer" size="40%" @close="closeAddOrChangeDrawer">
       <div class="demo-drawer__content">
-        <el-form label-position="top" :model="equipmentform">
+        <el-form label-position="top" ref="addNewEquipment" :model="equipmentform">
           <el-row :gutter="50">
             <el-col :span="11">
-              <el-form-item label="鎵�灞炲垎绫伙細" label-width="80">
-                <el-cascader v-model="equipmentform.classifyId" :options="classTree" :show-all-levels="false" />
+              <el-form-item label="鎵�灞炲垎绫伙細" prop="classifyId" label-width="80" :rules="[
+                { required: true, message: '璇烽�夋嫨鎵�灞炲垎绫�', trigger: 'blur' }
+              ]">
+                <el-cascader style="width: 100%;" v-model="equipmentform.classifyId" :options="classTree" :show-all-levels="false" />
               </el-form-item>
             </el-col>
             <el-col :span="11">
-              <el-form-item label="璁惧缂栧彿锛�" label-width="80">
-                <el-input v-model="equipmentform.equipmentCode" autocomplete="off" />
+              <el-form-item label="璁惧缂栧彿锛�" prop="equipmentCode"
+                :rules="[{ required: true, message: '璇峰~鍐欒澶囩紪鍙�', trigger: 'blur' }]" label-width="80">
+                <el-input v-model="equipmentform.equipmentCode" placeholder="璇峰~鍐欒澶囩紪鍙�" autocomplete="off" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="50">
             <el-col :span="11">
-              <el-form-item label="浠櫒璁惧鍚嶇О锛�" label-width="80">
-                <el-input v-model="equipmentform.equipmentName" autocomplete="off" />
+              <el-form-item label="浠櫒璁惧鍚嶇О锛�" prop="equipmentName"
+                :rules="[{ required: true, message: '璇峰~鍐欎华鍣ㄨ澶囧悕绉�', trigger: 'blur' }]" label-width="80">
+                <el-input v-model="equipmentform.equipmentName" placeholder="璇峰~鍐欎华鍣ㄨ澶囧悕绉�" autocomplete="off" />
               </el-form-item>
             </el-col>
             <el-col :span="11">
-              <el-form-item label="鐘舵�侊細" label-width="80">
+              <el-form-item label="鐘舵�侊細" prop="conditions"
+                :rules="[{ required: true, message: '璇烽�夋嫨浠櫒璁惧鐘舵��', trigger: 'blur' }]" label-width="80">
                 <el-select v-model="equipmentform.conditions" clearable filterable :allow-create="true"
                   placeholder="璇烽�夋嫨浠櫒璁惧鐘舵��" style="width:100%">
                   <el-option v-for="item in conditionsOptions" :key="item.value" :label="item.label"
@@ -277,37 +282,38 @@
           </el-row>
           <el-row :gutter="50">
             <el-col :span="11">
-              <el-form-item label="鍨嬪彿瑙勬牸锛�" label-width="80">
-                <el-input v-model="equipmentform.specificationsModels" autocomplete="off" />
+              <el-form-item label="鍨嬪彿瑙勬牸锛�" prop="specificationsModels"
+                :rules="[{ required: true, message: '璇峰~鍐欏瀷鍙疯鏍�', trigger: 'blur' }]" label-width="80">
+                <el-input v-model="equipmentform.specificationsModels" placeholder="璇峰~鍐欏瀷鍙疯鏍�" autocomplete="off" />
               </el-form-item>
             </el-col>
             <el-col :span="11">
               <el-form-item label="娴嬮噺鑼冨洿锛�" label-width="80">
-                <el-input v-model="equipmentform.measuringRange" autocomplete="off" />
+                <el-input v-model="equipmentform.measuringRange" placeholder="璇峰~鍐欐祴閲忚寖鍥�" autocomplete="off" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="50">
             <el-col :span="11">
               <el-form-item label="涓嶇‘瀹氬害/鍑嗙‘搴�/鏈�澶у厑璁歌宸細" label-width="80">
-                <el-input v-model="equipmentform.errorRate" autocomplete="off" />
+                <el-input v-model="equipmentform.errorRate" placeholder="璇峰~鍐欎笉纭畾搴�/鍑嗙‘搴�/鏈�澶у厑璁歌宸�" autocomplete="off" />
               </el-form-item>
             </el-col>
             <el-col :span="11">
               <el-form-item label="鐢熶骇鍘傚锛�" label-width="80">
-                <el-input v-model="equipmentform.manufacturer" autocomplete="off" />
+                <el-input v-model="equipmentform.manufacturer" placeholder="璇峰~鍐欑敓浜у巶瀹�" autocomplete="off" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="50">
             <el-col :span="11">
               <el-form-item label="瀛樻斁鍦扮偣锛�" label-width="80">
-                <el-input v-model="equipmentform.storagePlace" autocomplete="off" />
+                <el-input v-model="equipmentform.storagePlace" placeholder="璇峰~鍐欏瓨鏀惧湴鐐�" autocomplete="off" />
               </el-form-item>
             </el-col>
             <el-col :span="11">
               <el-form-item label="鍒拌揣鏃ユ湡锛�" label-width="80">
-                <el-date-picker v-model="equipmentform.arrivalDate" type="date" placeholder="璇烽�夋嫨鍒拌揣鏃ユ湡"
+                <el-date-picker value-format="yyyy-MM-dd" v-model="equipmentform.arrivalDate" type="date" placeholder="璇烽�夋嫨鍒拌揣鏃ユ湡"
                   style="width:100%" />
               </el-form-item>
             </el-col>
@@ -315,7 +321,7 @@
           <el-row :gutter="50">
             <el-col :span="11">
               <el-form-item label="楠屾敹鏃ユ湡锛�" label-width="80">
-                <el-date-picker v-model="equipmentform.acceptanceDate" type="date" placeholder="璇烽�夋嫨楠屾敹鏃ユ湡"
+                <el-date-picker  value-format="yyyy-MM-dd" v-model="equipmentform.acceptanceDate" type="date" placeholder="璇烽�夋嫨楠屾敹鏃ユ湡"
                   style="width:100%" />
               </el-form-item>
             </el-col>
@@ -344,8 +350,8 @@
           </el-row>
           <el-row v-show="equipmentform.equipmentMeasurement === 1" :gutter="50">
             <el-col :span="12">
-              <el-form-item label="璁¢噺鎴鏈夋晥鏈燂細" label-width="80">
-                <el-input v-model="equipmentform.termValidity" type="number" />
+              <el-form-item label="璁¢噺鍛ㄦ湡(鏈�)锛�" label-width="80">
+                <el-input min="0" v-model="equipmentform.termValidity" placeholder="璇峰~鍐欒閲忓懆鏈�" type="number" />
               </el-form-item>
             </el-col>
           </el-row>
@@ -359,17 +365,17 @@
           </el-row>
         </el-form>
         <div class="demo-drawer__footer">
-          <el-button class="el-button--default" @click="addDrawerVisible = false">鍙� 娑�</el-button>
+          <el-button class="el-button--default" @click="cancelAddEq">鍙� 娑�</el-button>
           <el-button type="primary" class="el-button--primary el-button--medium" @click="addNewEquipment">纭� 瀹�</el-button>
         </div>
       </div>
     </el-drawer>
     <!-- 鏂板璁¢噺淇℃伅寮圭獥 -->
     <el-dialog class="measureForm" title="鏂板璁¢噺" :visible.sync="measureFormVisible">
-      <el-form label-position="top" :model="measureForm">
+      <el-form label-position="top" ref="addmeasureForm" :model="measureForm">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="璐熻矗浜�">
+            <el-form-item label="璐熻矗浜�" prop="userId" :rules="[{ required: true, message: '璇烽�夋嫨璐熻矗浜�', trigger: 'blur' }]">
               <el-select v-model="measureForm.userId" clearable filterable :allow-create="true" placeholder="璐熻矗浜�"
                 style="width:100%">
                 <el-option v-for="item in userOpetions" :key="item.id" :label="item.label" :value="item.value" />
@@ -377,14 +383,15 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="璁¢噺鍗曚綅">
-              <el-input v-model="measureForm.measurementUnit" />
+            <el-form-item label="璁¢噺鍗曚綅" prop="measurementUnit"
+              :rules="[{ required: true, message: '璇峰~鍐欒閲忓崟浣�', trigger: 'blur' }]">
+              <el-input placeholder="璇峰~鍐欒閲忓崟浣�" v-model="measureForm.measurementUnit" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="妫�瀹氭湁鏁堟湡">
+            <el-form-item label="妫�瀹氭湁鏁堟湡" prop="date" :rules="[{ required: true, message: '璇烽�夋嫨妫�瀹氭湁鏁堟湡', trigger: 'blur' }]">
               <el-date-picker v-model="measureForm.date" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
                 end-placeholder="缁撴潫鏃ユ湡" />
             </el-form-item>
@@ -392,13 +399,14 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="涓嶇‘瀹氬害">
-              <el-input v-model="measureForm.uncertainty" />
+            <el-form-item label="涓嶇‘瀹氬害" prop="uncertainty"
+              :rules="[{ required: true, message: '璇峰~鍐欎笉纭畾搴�', trigger: 'blur' }]">
+              <el-input placeholder="璇峰~鍐欎笉纭畾搴�" v-model="measureForm.uncertainty" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="缁撴灉">
-              <el-select v-model="measureForm.result" clearable filterable :allow-create="true" placeholder="璐熻矗浜�"
+            <el-form-item label="缁撴灉" prop="result" :rules="[{ required: true, message: '璇烽�夋嫨缁撴灉', trigger: 'blur' }]">
+              <el-select v-model="measureForm.result" clearable filterable :allow-create="true" placeholder="璇烽�夋嫨缁撴灉"
                 style="width:100%">
                 <el-option v-for="item in resultOptions" :key="item.id" :label="item.label" :value="item.value" />
               </el-select>
@@ -422,7 +430,7 @@
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="">
-              <el-upload class="upload-demo" action="#" :on-change="handleUpload" :auto-upload="false">
+              <el-upload ref="upload" class="upload-demo" action="#" :on-change="handleUpload" :auto-upload="false">
                 <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
               </el-upload>
             </el-form-item>
@@ -432,7 +440,7 @@
       <span slot="footer" class="dialog-footer">
         <el-button type="primary" @click="addMeasure">纭� 瀹�</el-button>
 
-        <el-button @click="measureFormVisible = false">鍙� 娑�</el-button>
+        <el-button @click="cancelAddMeasure">鍙� 娑�</el-button>
       </span>
     </el-dialog>
     <!-- 鍒犻櫎浠櫒寮瑰嚭妗� -->
@@ -451,43 +459,17 @@
   getClassifyList, getInstrumentList,
   addInstrumentUser, addInstrument, getInstrumentDetail,
   getEquipmentPointList, addEquipmentPoint,
-  getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument
+  getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument, addClassify
 } from '@/api/laboratory/ledger'
 import { parseTime } from '@/utils/index'
 export default {
-  filters: {
-    conditionsFilter(value) {
-      let returnValue = null
-      switch (+value) {
-        case 1:
-          returnValue = '杩愯'
-          break
-        case 2:
-          returnValue = '鏁呴殰'
-          break
-        case 3:
-          returnValue = '鎶ヤ慨'
-          break
-        case 4:
-          returnValue = '妫�淇�'
-          break
-        case 5:
-          returnValue = '寰呮満'
-          break
-      }
-      return returnValue
-    }
-  },
+  filters: {},
   data() {
     return {
       // 鐢ㄦ埛涓嬫媺妗嗛厤缃」
       userOpetions: [],
       // 浠櫒鐘舵�侀厤缃」
       conditionsOptions: [
-        {
-          label: '鍏ㄩ儴',
-          value: 0
-        },
         {
           label: '杩愯',
           value: 1
@@ -528,7 +510,10 @@
       // 鍒嗙被tree鏁版嵁锛屽垎绫婚厤缃」
       classTree: [],
       // 娣诲姞鍒嗙被鍙傛暟
-      addTreeForm: {},
+      addTreeForm: {
+        name: null,
+        type: null
+      },
       // tree榛樿鍊�
       defaultProps: {
         children: 'children',
@@ -580,19 +565,28 @@
       // 鐮佺偣琛ㄦ牸
       codePointsTable: [
         {
-          'unit': 'mm',
-          'descriptiveness': '鐤簡锛屽仛涓嶄簡',
-          'equipmentPoint': 'Area-1',
-          'name': '灏忓皬',
-          'updateTime': '2023-07-24',
+          'unit': '',
+          'descriptiveness': '',
+          'equipmentPoint': '',
+          'name': '',
+          'updateTime': '',
           'id': 1,
-          'equipmentPointName': '瀵间綋灞忚斀锛堝鍘氶潰绉級'
+          'equipmentPointName': ''
         }
       ],
       // 璁¢噺淇℃伅琛�
       measureTable: [],
       // 娣诲姞璁¢噺淇℃伅鍙傛暟瀵硅薄
-      measureForm: {},
+      measureForm: {
+        userId: null,
+        measurementUnit: null,
+        date: null,
+        uncertainty: null,
+        result: null,
+        performanceIndex: null,
+        remarks: null,
+        file: null
+      },
       activeTabsName: 'codePoints',
       // 鐮佺偣琛ㄦ牸鐨勭姸鎬侊細鏁版嵁灞曠ずfalse/鏂板杈撳叆true
       codePointesTableStatus: false,
@@ -607,12 +601,19 @@
       conditionTable: '',
       nodeclicked: '',
       expireData: '',
-      instrumentId: ''
+      instrumentId: '',
+      addTreeFormClassTree: []
     }
   },
   watch: {
     filterText(val) {
       this.$refs.classTree.filter(val)
+    },
+    measureFormVisible(newVal){
+      if(newVal === false){
+        this.measureForm.file = null;
+        this.$refs['upload'].clearFiles();
+      }
     }
   },
   created() {
@@ -632,7 +633,18 @@
         }
         return { ...item, label: item.father_name, value: item.id ? item.id : item.father_name }
       })
-      // console.log(this.classTree)
+      this.addTreeFormClassTree = JSON.parse(JSON.stringify(this.classTree))
+      let father = {
+        children: null,
+        father_name: "鏃�",
+        id: 0,
+        label: "鏃�",
+        value: 0
+      }
+      this.addTreeFormClassTree.unshift(father)
+      this.addTreeFormClassTree.forEach(item => {
+        item.children = null
+      })
     },
     // 鑾峰彇鐢ㄦ埛淇℃伅閰嶇疆椤�
     async getUserOptions() {
@@ -656,7 +668,7 @@
     // 鑺傜偣鐐瑰嚮澶勭悊
     nodeClickHandler(data, node, element) {
       this.nodeclicked = data
-      // console.log(data)
+      console.log(data)
       // 鍙湁鏁版嵁涓惡甯d鎵嶈兘鍙戦�佹煡璇㈣姹�
       if (data.id) {
         this.getEquipmentTable({ classifyId: data.id, pageSize: this.pageSize, pageNo: this.currentPage, whetherWhether: this.isOut })
@@ -666,7 +678,6 @@
     async getEquipmentTable(ages) {
       // console.log('鏉′欢瀵硅薄', ages)
       const { data } = await getInstrumentList(ages)
-      console.log(data)
       this.equipmentTable = data.row
       this.total = data.total
       this.oldtableData = this.equipmentTable
@@ -697,12 +708,12 @@
         this.codePointsTable = []
       }
       const newObj = {}
-      newObj.name = '灏忓皬' // 褰撳墠鐢ㄦ埛鐨勫悕绉�
-      newObj.updateTime = '2023-07-24' // 鑾峰彇褰撳墠鏃堕棿
-      newObj.equipmentPoint = 'Area-1'
-      newObj.equipmentPointName = '瀵间綋灞忚斀锛堝鍘氶潰绉級'
+      newObj.name = '' // 褰撳墠鐢ㄦ埛鐨勫悕绉�
+      newObj.updateTime = '' // 鑾峰彇褰撳墠鏃堕棿
+      newObj.equipmentPoint = ''
+      newObj.equipmentPointName = ''
       newObj.descriptiveness = ''
-      newObj.unit = 'mm'
+      newObj.unit = ''
       newObj.instrumentId = this.equipmentDetail.id
       this.codePointsTable.push(newObj)
     },
@@ -721,7 +732,7 @@
           this.$message.success('娣诲姞鎴愬姛')
         }
       } catch (error) {
-        this.$message.error(error)
+        this.$message.error(error.message)
       }
       await this.closeCodePoins()
     },
@@ -732,18 +743,29 @@
       const { data: pointList } = await getEquipmentPointList({ InstrumentId: this.equipmentDetail.id })
       this.codePointsTable = pointList
     },
+    async submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          return true
+        } else {
+          return false;
+        }
+      });
+    },
     // 鐐瑰嚮鏂板浠櫒璁惧鎴栧綋瀛樺湪浠櫒璇︽儏鏃舵槸淇敼浠櫒璁惧淇℃伅
     async addNewEquipment() {
+      let v = this.submitForm('addNewEquipment')
+      if (!v) {
+        return
+      }
       if (Array.isArray(this.equipmentform.classifyId)) {
         this.equipmentform.classifyId = this.equipmentform.classifyId.pop()
       }
       if (!this.equipmentDetail.id) {
         // 鏍煎紡鍖栨棩鏈�
-        console.log('鏂板浠櫒')
         this.equipmentform.arrivalDate = parseTime(this.equipmentform.arrivalDate, '{y}-{m}-{d}')
         this.equipmentform.acceptanceDate = parseTime(this.equipmentform.acceptanceDate, '{y}-{m}-{d}')
         // this.equipmentform.termValidity = parseTime(this.equipmentform?.termValidity, '{y}-{m}-{d}')
-        console.log('鏂板浠櫒璁惧鍙傛暟', this.equipmentform)
         try {
           const res = await addInstrument(this.equipmentform)
           console.log(res)
@@ -751,6 +773,8 @@
           this.$message.error('娣诲姞澶辫触')
         }
         this.$message.success('娣诲姞鎴愬姛')
+        let d = this.nodeclicked;
+        this.nodeClickHandler(d);
         this.addDrawerVisible = false
         this.equipmentform = {}
         return
@@ -758,16 +782,35 @@
       console.log('淇敼浠櫒鍙傛暟', this.equipmentform)
       try {
         const res = await changeInstrument(this.equipmentform)
-        console.log(res)
         this.$message.success('淇敼鎴愬姛')
+        let d = this.nodeclicked;
+        this.nodeClickHandler(d);
         this.addDrawerVisible = false
         this.detailDrawer = false
       } catch (error) {
         this.$message.error('娣诲姞澶辫触')
       }
     },
+    cancelAddEq() {
+      this.resetForm('addDrawer')
+      this.addDrawerVisible = false
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+    },
+    cancelAddMeasure() {
+      this.$refs['upload'].clearFiles();
+      this.measureForm.file = null;
+      this.measureFormVisible = false
+      this.resetForm('addmeasureForm')
+    },
     // 娣诲姞璁¢噺淇℃伅
     async addMeasure() {
+      let v = this.submitForm('addmeasureForm')
+      console.log(v);
+      if (!v) {
+        return
+      }
       // 鏍煎紡鍖栨椂闂�
       this.measureForm.instrumentId = this.equipmentDetail.id
       if (Array.isArray(this.measureForm.date)) {
@@ -788,17 +831,23 @@
         const { data } = await addMetricalInformation(formData)
         console.log(data)
         this.$message.success('娣诲姞鎴愬姛')
+        const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id })
+        this.measureTable = informationList
         this.measureForm = {}
         this.measureFormVisible = false
       } catch (error) {
         this.$message.error('娣诲姞澶辫触')
       }
+      this.measureForm.file = null;
+      this.$refs['upload'].clearFiles();
     },
     // 鍏抽棴璁惧璇︽儏鎶藉眽
     closeDetailDrawer() {
       this.equipmentDetail = {}
       this.codePointsTable = []
       this.measureTable = []
+      this.measureForm.file = null;
+      this.$refs['upload'].clearFiles();
     },
     // 鍏抽棴娣诲姞淇敼璁惧鎶藉眽
     closeAddOrChangeDrawer() {
@@ -894,23 +943,66 @@
       this.deletedialogVisible = true
     },
     async deleteInstrument() {
-      // console.log(row.id)
-      await deleteInstrument({ instrumentId: this.instrumentId })
+      await deleteInstrument({ instrumentId: this.instrumentId }).then(res=>{
+        this.$message.success('鍒犻櫎鎴愬姛锛�');
+        let d = this.nodeclicked
+        this.nodeClickHandler(d);
+      }).catch(()=>{
+        this.$message.error('鍒犻櫎澶辫触锛�');
+      });
       this.deletedialogVisible = false
     },
-    submitTreeForm(formName) {
+    async submitTreeForm(formName) {
+      let _that = this
       this.$refs[formName].validate((valid) => {
         if (valid) {
-          alert('submit!');
+          _that.addClassifyInfo()
         } else {
           console.log('error submit!!');
           return false;
         }
       });
     },
+    async addClassifyInfo() {
+      let _that = this
+      let data = {
+        fatherName: null,
+        sonName: null
+      }
+
+      if (_that.addTreeForm.type != null && _that.addTreeForm.type[0] != 0) {
+        data.fatherName = _that.addTreeFormClassTree.filter(item => {
+          return item.value == _that.addTreeForm.type[0]
+        })[0].label
+        data.sonName = _that.addTreeForm.name
+      } else {
+        data.fatherName = _that.addTreeForm.name
+      }      // return;
+      let add = await addClassify(data);
+      switch (add.message.split('-$')[0]) {
+        case '1':
+          this.$message({
+            message: '鎿嶄綔鎴愬姛锛�',
+            type: 'success'
+          });
+          _that.getThreeData()
+          _that.resetTreeForm('addTreeForm')
+          break;
+        case '2':
+          this.$message({
+            message: '宸插瓨鍦ㄨ鍒嗙被',
+            type: 'warning'
+          });
+          break;
+        case '0':
+          this.$message.error('娣诲姞澶辫触锛佽鑱旂郴绠$悊鍛�');
+          break;
+      }
+
+    },
     resetTreeForm(formName) {
       this.$refs[formName].resetFields();
-      this.addClassVisible=false
+      this.addClassVisible = false
     }
   }
 }
@@ -950,7 +1042,7 @@
     background: #fff;
     display: flex;
     justify-content: space-between;
-    padding: 0 24px 12px 24px;
+    padding: 15px 24px 12px 24px;
 
     .search-bar {
       .el-radio-button.is-active {
@@ -986,6 +1078,7 @@
     .library-bom {
       flex: 2;
       margin-right: 12px;
+			height: 80vh;
 
       .bom-item-search {
         margin-bottom: 12px;
@@ -1017,6 +1110,7 @@
       margin-left: 12px;
       display: flex;
       flex-direction: column;
+			height: 80vh;
 
       .table-box {
         margin-top: 30px;

--
Gitblit v1.9.3