From 6cd44812a96026d6c6d0fff397eb2662c75fedd3 Mon Sep 17 00:00:00 2001
From: Goldennfish <1981343953@qq.com>
Date: 星期五, 28 七月 2023 17:00:04 +0800
Subject: [PATCH] 实验室管理设备台账完善

---
 src/views/laboratory/ledger/index.vue | 1096 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 950 insertions(+), 146 deletions(-)

diff --git a/src/views/laboratory/ledger/index.vue b/src/views/laboratory/ledger/index.vue
index 12e19f8..f092459 100644
--- a/src/views/laboratory/ledger/index.vue
+++ b/src/views/laboratory/ledger/index.vue
@@ -12,26 +12,36 @@
             </el-input>
           </el-form-item>
           <el-form-item>
-            <el-button type="primary">鏌ヨ</el-button>
-            <el-button type="primary" plain>閲嶇疆</el-button>
+            <el-button type="primary" @click="filterTableData">鏌ヨ</el-button>
+            <el-button type="primary" plain @click="resetBtn">閲嶇疆</el-button>
             <!-- <el-button type="text">楂樼骇鎼滅储<i class="el-icon-arrow-down el-icon--right" /></el-button> -->
           </el-form-item>
         </el-form>
       </div>
       <div class="serve-btn">
-        <el-button type="primary" icon="el-icon-plus">鏂板浜哄憳</el-button>
+        <el-button type="primary" icon="el-icon-plus" @click="addDrawerVisible = true">鏂板浠櫒</el-button>
       </div>
     </div>
     <div class="content-main">
       <div class="library-bom">
-        <el-input
-          placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
-        />
+        <div class="bom-item-search">
+          <el-row>
+            <el-col :span="19">
+              <el-input
+                v-model="filterText"
+                placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+              />
+            </el-col>
+            <el-col :span="5">
+              <el-button type="primary" size="small" @click="addClassVisible = true"><i class="el-icon-plus" /></el-button>
+            </el-col>
+          </el-row>
+        </div>
         <el-tree
           ref="classTree"
           :data="classTree"
           :props="defaultProps"
-          default-expand-all
+          :default-expand-all="true"
           :filter-node-method="filterNode"
           @node-click="nodeClickHandler"
         />
@@ -39,15 +49,13 @@
       <div class="library-table">
         <div class="table-header">
           <div class="search-bar">
-            <el-radio-group v-model="radioValue">
-              <el-radio-button label="鍏ㄩ儴" />
-              <el-radio-button label="杩愯" />
-              <el-radio-button label="寰呮満" />
-              <el-radio-button label="妫�淇�" />
-              <el-radio-button label="鏁呴殰" />
-              <el-radio-button label="鎶ュ簾" />
+            <el-radio-group v-model="radioValue" @change="getConditionTable">
+              <!-- <el-radio-button label="0">鍏ㄩ儴</el-radio-button> -->
+              <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value">
+                {{ item.label }}
+              </el-radio-button>
             </el-radio-group>
-            <el-checkbox v-model="isOut" :style="{'marginLeft':'12px'}">宸茶繃鏈�</el-checkbox>
+            <el-checkbox v-model="isOut" @change="getExpireTable" :style="{'marginLeft':'12px'}">宸茶繃鏈�</el-checkbox>
           </div>
           <div class="serve-btn">
             <!-- <el-button type="primary" icon="el-icon-plus">鏂板浜哄憳</el-button> -->
@@ -70,7 +78,7 @@
             <el-table-column
               prop="equipment_code"
               label="浠櫒璁惧缂栧彿"
-              min-width="150"
+              min-width="200"
             />
             <el-table-column
               prop="equipment_name"
@@ -93,15 +101,15 @@
               min-width="200"
             />
             <el-table-column
-              prop="incumbentStatus"
+              prop="conditions"
               label="璁惧鐘舵��"
               min-width="120"
             >
               <template slot-scope="scope">
                 <el-tag
-                  :type="scope.row.businessStatus === 0 ? 'primary' : 'success'"
+                  :type="scope.row.conditions === 0 ? 'primary' : 'success'"
                   disable-transitions
-                >{{ scope.row.businessStatus === 0 ? '鏈悓鎰�' : '宸插悓鎰�' }}</el-tag>
+                >{{ scope.row.conditions | conditionsFilter }}</el-tag>
               </template>
             </el-table-column>
             <el-table-column
@@ -109,6 +117,7 @@
               label="瀛樻斁鍦�"
               min-width="200"
             />
+
             <el-table-column
               label="鎿嶄綔"
               min-width="120"
@@ -116,10 +125,31 @@
             >
               <template slot-scope="scope">
                 <el-button type="text" size="small" @click="openDetail(scope.row)">缂栬緫</el-button>
-                <el-button type="text" size="small">鍒犻櫎</el-button>
+                <el-button type="text" size="small" @click="clickDelete(scope.row)">鍒犻櫎</el-button>
               </template>
             </el-table-column>
           </el-table>
+          <!-- 寮瑰嚭琛ㄥ崟椤� -->
+          <div>
+            <!-- 娣诲姞鍒嗙被 -->
+            <el-dialog title="娣诲姞鍒嗙被" :visible.sync="addClassVisible" width="33%">
+              <el-form :model="addTreeForm">
+                <el-form-item label="鍒嗙被鍚嶇О" label-width="100px">
+                  <el-input v-model="addTreeForm.name" autocomplete="off" />
+                </el-form-item>
+                <el-form-item label="鐖剁骇鍒嗙被" label-width="100px">
+                  <el-select v-model="addTreeForm.type" placeholder="璇烽�夋嫨">
+                    <el-option label="鍘熸潗鏂�" value="0" />
+                    <el-option label="鐢电嚎鐢电紗" value="1" />
+                  </el-select>
+                </el-form-item>
+              </el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button @click="addClassVisible = false">鍙� 娑�</el-button>
+                <el-button type="primary">纭� 瀹�</el-button>
+              </div>
+            </el-dialog>
+          </div>
           <div>
             <el-pagination
               :current-page="currentPage"
@@ -134,12 +164,13 @@
         </div>
       </div>
     </div>
-    <!--  -->
+    <!-- 浠櫒璇︽儏-->
     <el-drawer
       title="浠櫒璁惧璇︽儏"
       :visible.sync="detailDrawer"
       size="80%"
       class="detailDrawer"
+      @close="closeDetailDrawer"
     >
       <div>
         <div class="detail-info">
@@ -149,99 +180,573 @@
               <div>鍩烘湰淇℃伅</div>
             </div>
             <div class="tips-btn">
-              <span><i class="el-icon-edit" />鎿嶄綔锛�</span>
-              <el-button type="text" @click="dialogFormVisible = true">缂栬緫</el-button>
+              <el-button type="primary" @click="addDrawerVisible = true">缂栬緫</el-button>
             </div>
           </div>
           <div class="message">
-            <div class="message-item"><span><i class="el-icon-edit" />鎵�灞炲垎绫伙細</span></div>
+            <div class="message-item"><span><i class="el-icon-edit" />鎵�灞炲垎绫伙細{{ equipmentDetail.classifyId }}</span></div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />鍒涘缓浜猴細</span>
+              <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>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />寤烘。鏃ユ湡锛�</span>
+              <span><i class="el-icon-edit" />寤烘。鏃ユ湡锛歿{ equipmentDetail.acceptanceDate }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />璁惧缂栧彿锛�</span>
+              <span><i class="el-icon-edit" />璁惧缂栧彿锛歿{ equipmentDetail.equipmentCode }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />鍨嬪彿瑙勬牸锛�</span>
+              <span><i class="el-icon-edit" />鍨嬪彿瑙勬牸锛歿{ equipmentDetail.specificationsModels }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />娴嬮噺鑼冨洿锛�</span>
+              <span><i class="el-icon-edit" />娴嬮噺鑼冨洿锛歿{ equipmentDetail.measuringRange }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />涓嶇‘瀹氬害/璇樊锛�</span>
+              <span><i class="el-icon-edit" />涓嶇‘瀹氬害/璇樊锛歿{ equipmentDetail.errorRate }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />鐢熶骇鍘傚锛�</span>
+              <span><i class="el-icon-edit" />鐢熶骇鍘傚锛歿{ equipmentDetail.manufacturer }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />瀛樻斁鍦扮偣锛�</span>
+              <span><i class="el-icon-edit" />瀛樻斁鍦扮偣锛歿{ equipmentDetail.storagePlace }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />鍒拌揣鏃ユ湡锛�</span>
+              <span><i class="el-icon-edit" />鍒拌揣鏃ユ湡锛歿{ equipmentDetail.arrivalDate }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />楠屾敹鏃ユ湡锛�</span>
+              <span><i class="el-icon-edit" />楠屾敹鏃ユ湡锛歿{ equipmentDetail.acceptanceDate }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />淇濈浜猴細</span>
+              <span><i class="el-icon-edit" />淇濈浜猴細{{ equipmentDetail.userId }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />鏄惁鏀寔鏁伴噰锛�</span>
+              <span><i class="el-icon-edit" />鏄惁鏀寔鏁伴噰锛歿{ equipmentDetail.whetherDataAcquisition==1 ? '鏀寔': '涓嶆敮鎸�' }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />浠櫒璁惧璁¢噺锛�</span>
+              <span><i class="el-icon-edit" />浠櫒璁惧璁¢噺锛歿{ equipmentDetail.equipmentMeasurement==1 ? '闇�瑕�': '涓嶉渶瑕�' }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />璁¢噺鍛ㄦ湡锛�</span>
+              <span><i class="el-icon-edit" />璁¢噺鍛ㄦ湡锛歿{ equipmentDetail.termValidity }}</span>
             </div>
             <div class="message-item">
-              <span><i class="el-icon-edit" />鎻忚堪锛�</span>
+              <span><i class="el-icon-edit" />鎻忚堪锛歿{ equipmentDetail.descriptiveness }}</span>
             </div>
           </div>
         </div>
-        <el-tabs>
-          <el-tab-pane label="鐢ㄦ埛绠$悊" name="first">鐢ㄦ埛绠$悊</el-tab-pane>
-          <el-tab-pane label="閰嶇疆绠$悊" name="second">閰嶇疆绠$悊</el-tab-pane>
-          <el-tab-pane label="瑙掕壊绠$悊" name="third">瑙掕壊绠$悊</el-tab-pane>
-          <el-tab-pane label="瀹氭椂浠诲姟琛ュ伩" name="fourth">瀹氭椂浠诲姟琛ュ伩</el-tab-pane>
+        <el-tabs v-model="activeTabsName">
+          <el-tab-pane label="璁惧鐮佺偣" name="codePoints">
+            <el-button v-show="!codePointesTableStatus" :style="{marginBottom: '18px'}" @click="addCodePoints">鏂板璁惧鐮佺偣</el-button>
+            <div v-show="codePointesTableStatus" :style="{marginBottom: '18px'}" class="btns">
+              <el-button @click="addNewCodePoints">娣诲姞</el-button>
+              <el-button @click="saveCodePoins">淇濆瓨</el-button>
+              <el-button @click="closeCodePoins">鍙栨秷</el-button>
+            </div>
+
+            <el-table
+              ref="codePointsTable"
+              :cell-style="{textAlign: 'center'}"
+              :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
+              :data="codePointsTable"
+              style="width: 100%"
+            >
+              <el-table-column
+                type="index"
+                label="搴忓彿"
+                min-width="90"
+              />
+              <el-table-column
+                prop="equipmentPoint"
+                label="鐮佺偣缂栫爜"
+                min-width="150"
+              >
+                <template slot-scope="scope">
+                  <span v-show="!codePointesTableStatus">{{ scope.row.equipmentPoint }}</span>
+                  <el-input v-show="codePointesTableStatus" v-model="scope.row.equipmentPoint" />
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                prop="equipmentPointName"
+                label="鐮佺偣鍚嶇О"
+                min-width="150"
+              >
+                <template slot-scope="scope">
+                  <span v-show="!codePointesTableStatus">{{ scope.row.equipmentPointName }}</span>
+                  <el-input v-show="codePointesTableStatus" v-model="scope.row.equipmentPointName" />
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="unit"
+                label="鍗曚綅"
+                min-width="150"
+              >
+                <template slot-scope="scope">
+                  <span v-show="!codePointesTableStatus">{{ scope.row.unit }}</span>
+                  <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="descriptiveness"
+                label="鎻忚堪"
+                min-width="200"
+              >
+                <template slot-scope="scope">
+                  <span v-show="!codePointesTableStatus">{{ scope.row.descriptiveness }}</span>
+                  <el-input v-show="codePointesTableStatus" v-model="scope.row.descriptiveness" />
+                </template>
+              </el-table-column>
+
+            </el-table>
+          </el-tab-pane>
+          <el-tab-pane label="璁¢噺淇℃伅" name="measure">
+            <el-button :style="{marginBottom: '18px'}" @click="measureFormVisible = true">鏂板璁¢噺淇℃伅</el-button>
+            <el-table
+              ref="measureTable"
+              :cell-style="{textAlign: 'center'}"
+              :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
+              :data="measureTable"
+              style="width: 100%"
+            >
+              <el-table-column
+                type="index"
+                label="搴忓彿"
+                min-width="90"
+              />
+              <el-table-column
+                prop="name"
+                label="璐熻矗浜�"
+                min-width="200"
+              />
+              <el-table-column
+                prop="measurement_unit"
+                label="璁¢噺鍗曚綅"
+                min-width="150"
+              />
+              <el-table-column
+                prop="beginDate"
+                label="寮�濮嬫棩鏈�"
+                min-width="150"
+              />
+              <el-table-column
+                prop="endDate"
+                label="缁撴潫鏃ユ湡"
+                min-width="150"
+              />
+              <el-table-column
+                prop="performance_index"
+                label="鎬ц兘鎸囨爣"
+                min-width="200"
+              />
+              <el-table-column
+                prop="uncertainty"
+                label="涓嶇‘瀹氬害"
+                min-width="200"
+              />
+              <el-table-column
+                prop="conditions"
+                label="缁撴灉"
+                min-width="120"
+              >
+                <template slot-scope="scope">
+                  {{ scope.row.result }}
+                  <!-- <el-tag
+                    :type="scope.row.result === 0 ? 'primary' : 'success'"
+                    disable-transitions
+                  >{{ scope.row.result === 0 ? '鏈悓鎰�' : '宸插悓鎰�' }}</el-tag> -->
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="remarks"
+                label="澶囨敞"
+                min-width="200"
+              />
+            </el-table>
+          </el-tab-pane>
         </el-tabs>
-        <el-drawer
-          title="缂栬緫"
-          :append-to-body="true"
-          :visible.sync="editDrawer"
-        >
-          <p>_(:蟹銈濃垹)_</p>
-        </el-drawer>
       </div>
     </el-drawer>
+    <!-- 娣诲姞浠櫒/淇敼浠櫒淇℃伅 -->
+    <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-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>
+            </el-col>
+            <el-col :span="11">
+              <el-form-item label="璁惧缂栧彿锛�" label-width="80">
+                <el-input v-model="equipmentform.equipmentCode" 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>
+            </el-col>
+            <el-col :span="11">
+              <el-form-item label="鐘舵�侊細" 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"
+                    :value="item.value"
+                  />
+                </el-select>
+              </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.specificationsModels" 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-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-form-item>
+            </el-col>
+            <el-col :span="11">
+              <el-form-item label="鐢熶骇鍘傚锛�" label-width="80">
+                <el-input v-model="equipmentform.manufacturer" 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-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="璇烽�夋嫨鍒拌揣鏃ユ湡"
+                  style="width:100%"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <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="璇烽�夋嫨楠屾敹鏃ユ湡"
+                  style="width:100%"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="11">
+              <el-form-item label="淇濈浜猴細" label-width="80">
+                <el-select
+                  v-model="equipmentform.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"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="50">
+            <el-col :span="11">
+              <el-form-item label="鏄惁鏀寔鏁伴噰锛�" label-width="80">
+                <el-radio v-model="equipmentform.whetherDataAcquisition" :label="1">鏀寔</el-radio>
+                <el-radio v-model="equipmentform.whetherDataAcquisition" :label="0">涓嶆敮鎸�</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="11">
+              <el-form-item label="浠櫒璁惧璁¢噺锛�" label-width="80">
+                <el-radio v-model="equipmentform.equipmentMeasurement" :label="1">闇�瑕�</el-radio>
+                <el-radio v-model="equipmentform.equipmentMeasurement" :label="0">涓嶉渶瑕�</el-radio>
+              </el-form-item>
+            </el-col>
+          </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>
+            </el-col>
+          </el-row>
+          <el-row :gutter="50">
+            <el-col :span="11">
+              <el-form-item label="鎻忚堪锛�" label-width="80">
+                <el-input
+                  v-model="equipmentform.descriptiveness"
+                  type="textarea"
+                  :rows="2"
+                  placeholder="璇疯緭鍏ュ唴瀹�"
+                  style="width:217%"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div class="demo-drawer__footer">
+          <el-button class="el-button--default" @click="addDrawerVisible = false">鍙� 娑�</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-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="璐熻矗浜�">
+              <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"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="璁¢噺鍗曚綅">
+              <el-input v-model="measureForm.measurementUnit" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="妫�瀹氭湁鏁堟湡">
+              <el-date-picker
+                v-model="measureForm.date"
+                type="daterange"
+                range-separator="鑷�"
+                start-placeholder="寮�濮嬫棩鏈�"
+                end-placeholder="缁撴潫鏃ユ湡"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="涓嶇‘瀹氬害">
+              <el-input 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="璐熻矗浜�"
+                style="width:100%"
+              >
+                <el-option
+                  v-for="item in resultOptions"
+                  :key="item.id"
+                  :label="item.label"
+                  :value="item.value"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="鎬ц兘鎸囨爣">
+              <el-input
+                v-model="measureForm.performanceIndex"
+                type="textarea"
+                :rows="2"
+                placeholder="璇疯緭鍏ュ唴瀹�"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="澶囨敞">
+              <el-input
+                v-model="measureForm.remarks"
+                type="textarea"
+                :rows="2"
+                placeholder="璇疯緭鍏ュ唴瀹�"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <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-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+              </el-upload>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="addMeasure">纭� 瀹�</el-button>
+
+        <el-button @click="measureFormVisible = false">鍙� 娑�</el-button>
+      </span>
+    </el-dialog>
+    <!-- 鍒犻櫎浠櫒寮瑰嚭妗� -->
+    <el-dialog
+      title="鎻愮ず"
+      :visible.sync="deletedialogVisible"
+      width="30%"
+      :before-close="handleClose">
+      <span>纭畾鍒犻櫎璇ヤ华鍣ㄥ悧锛�</span>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="deletedialogVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="deleteInstrument">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { getClassifyList, getInstrumentList } from '@/api/laboratory/ledger'
+import { getClassifyList, getInstrumentList,
+  addInstrumentUser, addInstrument, getInstrumentDetail,
+  getEquipmentPointList, addEquipmentPoint,
+  getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument } 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
+    }
+  },
   data() {
     return {
-      // 琛ㄦ牸鏁版嵁
-      classTree: [{
-        id: 1,
-        label: '涓�绾� 1',
-        children: [{
-          id: 4,
-          label: '浜岀骇 1-1',
-          children: [{
-            id: 9,
-            label: '涓夌骇 1-1-1'
-          }, {
-            id: 10,
-            label: '涓夌骇 1-1-2'
-          }]
-        }]
-      }],
+      // 鐢ㄦ埛涓嬫媺妗嗛厤缃」
+      userOpetions: [],
+      // 浠櫒鐘舵�侀厤缃」
+      conditionsOptions: [
+        {
+          label: '鍏ㄩ儴',
+          value: 0
+        },
+        {
+          label: '杩愯',
+          value: 1
+        },
+        {
+          label: '鏁呴殰',
+          value: 2
+        },
+        {
+          label: '鎶ヤ慨',
+          value: 3
+        },
+        {
+          label: '妫�淇�',
+          value: 4
+        },
+        {
+          label: '寰呮満',
+          value: 5
+        }
+      ],
+      // 璁¢噺鐘舵�侀厤缃」
+      resultOptions: [
+        {
+          label: '鍚堟牸',
+          value: 1
+        },
+        {
+          label: '鏍℃鍚庡彲鐢�',
+          value: 2
+        },
+        {
+          label: '涓嶅悎鏍�',
+          value: 3
+        }
+
+      ],
+      // 鍒嗙被tree鏁版嵁锛屽垎绫婚厤缃」
+      classTree: [],
+      // 娣诲姞鍒嗙被鍙傛暟
+      addTreeForm: {},
       // tree榛樿鍊�
       defaultProps: {
         children: 'children',
@@ -252,15 +757,75 @@
         keyword: ''
       },
       // 琛ㄦ牸鎼滅储鍗曢�夊��
-      radioValue: '鍏ㄩ儴',
+      radioValue: '0',
       // 琛ㄦ牸鎼滅储宸茶繃鏈�
+      // 鏄惁杩囨湡
       isOut: false,
+      // 鎺у埗娣诲姞鍒嗙被妯℃�佹鏄剧ず
+      addClassVisible: false,
+      // 鎺у埗鏂板璁¢噺妯℃�佹鏄剧ず
+      measureFormVisible: false,
+      // 鎺у埗鍒犻櫎浠櫒妯℃�佹鏄剧ず
+      deletedialogVisible: false,
+      // 鎺у埗娣诲姞淇敼浠櫒鎶藉眽鐨勬樉绀�
+      addDrawerVisible: false,
+      // 娣诲姞淇敼浠櫒鍙傛暟瀵硅薄
+      equipmentform: {
+        acceptanceDate: '', // 楠屾敹鏃ユ湡
+        arrivalDate: '', // 鍒拌揣鏃ユ湡
+        classifyId: '', // 鎵�灞炲垎绫�
+        conditions: '', // 鐘舵��
+        descriptiveness: '', // 鎻忚堪
+        equipmentCode: '', // 璁惧缂栧彿
+        equipmentMeasurement: 1, // 浠櫒璁惧璁¢噺
+        equipmentName: '', // 浠櫒璁惧鍚嶇О
+        errorRate: '', // 涓嶇‘瀹氬害/鍑嗙‘搴�/鏈�澶у厑璁歌宸�
+        userId: '', // 淇濈浜�
+        manufacturer: '', // 鐢熶骇鍘傚
+        measuringRange: '', // 娴嬮噺鑼冨洿
+        specificationsModels: '', // 鍨嬪彿瑙勬牸
+        storagePlace: '', // 瀛樻斁鍦扮偣
+        whetherDataAcquisition: 1 // 鏄惁鏀寔鏁伴噰
+      },
+      // 鎺у埗璁惧浠櫒璇︽儏鎶藉眽鏄剧ず
       detailDrawer: false,
-      editDrawer: false,
+      // 璁惧鏁版嵁鍒楄〃
       equipmentTable: [],
+      // 鍒嗛〉鍙傛暟
       currentPage: 1,
       pageSize: 10,
-      total: 0
+      total: 0,
+      // 鐮佺偣琛ㄦ牸
+      codePointsTable: [
+        {
+          'unit': 'mm',
+          'descriptiveness': '鐤簡锛屽仛涓嶄簡',
+          'equipmentPoint': 'Area-1',
+          'name': '灏忓皬',
+          'updateTime': '2023-07-24',
+          'id': 1,
+          'equipmentPointName': '瀵间綋灞忚斀锛堝鍘氶潰绉級'
+        }
+      ],
+      // 璁¢噺淇℃伅琛�
+      measureTable: [],
+      // 娣诲姞璁¢噺淇℃伅鍙傛暟瀵硅薄
+      measureForm: {},
+      activeTabsName: 'codePoints',
+      // 鐮佺偣琛ㄦ牸鐨勭姸鎬侊細鏁版嵁灞曠ずfalse/鏂板杈撳叆true
+      codePointesTableStatus: false,
+      // 璁惧璇︽儏瀵硅薄
+      equipmentDetail: {},
+      // 杩囨护鍏抽敭瀛�
+      filterText: '',
+      // 杩囨护鍚庣殑浠櫒璁惧琛�
+      filterdequipmentTable: '',
+      oldtableData: '',
+      // 杩囨护涓嶅悓鐘舵�佽澶�
+      conditionTable: '',
+      nodeclicked: '',
+      expireData: '',
+      instrumentId: ''
     }
   },
   watch: {
@@ -270,54 +835,314 @@
   },
   created() {
     this.getThreeData()
+    this.getUserOptions()
   },
   methods: {
-    openDetail(row) {
-      console.log(row)
-      this.detailDrawer = true
+    // 鑾峰彇鍒嗙被鏁版嵁
+    async getThreeData() {
+      const { data } = await getClassifyList()
+      // console.log(data)
+      this.classTree = data.map(item => {
+        if (item.children) {
+          item.children = item.children.map(childrenItem => {
+            return { ...childrenItem, label: childrenItem.son_name, value: childrenItem.id }
+          })
+        }
+        return { ...item, label: item.father_name, value: item.id ? item.id : item.father_name }
+      })
+      // console.log(this.classTree)
     },
+    // 鑾峰彇鐢ㄦ埛淇℃伅閰嶇疆椤�
+    async getUserOptions() {
+      const { data } = await addInstrumentUser()
+      this.userOpetions = data.map(item => ({ ...item, label: item.name, value: item.id }))
+    },
+    // 鏄剧ず浠櫒璇︽儏
+    async openDetail(row) {
+      // console.log(row)
+      this.detailDrawer = true
+      const { data } = await getInstrumentDetail({ InstrumentId: row.id })
+      this.equipmentDetail = data
+      this.equipmentform = data
+      console.log(this.equipmentform)
+      const { data: pointList } = await getEquipmentPointList({ InstrumentId: this.equipmentDetail.id })
+      this.codePointsTable = pointList
+      const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id })
+      this.measureTable = informationList
+      console.log(informationList)
+    },
+    // 鑺傜偣鐐瑰嚮澶勭悊
     nodeClickHandler(data, node, element) {
-      console.log(data)
+      this.nodeclicked = data
+      // console.log(data)
       // 鍙湁鏁版嵁涓惡甯d鎵嶈兘鍙戦�佹煡璇㈣姹�
       if (data.id) {
-        this.getEquipmentTable({ classifyId: data.id, pageSize: this.pageSize, pageNo: this.currentPage })
+        this.getEquipmentTable({ classifyId: data.id, pageSize: this.pageSize, pageNo: this.currentPage, whetherWhether: this.isOut })
       }
     },
+    // 鑾峰彇浠櫒鍒楄〃鏁版嵁
     async getEquipmentTable(ages) {
-      console.log('鏉′欢瀵硅薄', ages)
+      // console.log('鏉′欢瀵硅薄', ages)
       const { data } = await getInstrumentList(ages)
       console.log(data)
       this.equipmentTable = data.row
       this.total = data.total
+      this.oldtableData = this.equipmentTable
     },
+    // 杩囨护鑺傜偣
     filterNode(value, data) {
       if (!value) return true
       return data.label.indexOf(value) !== -1
     },
-    async getThreeData() {
-      const { data } = await getClassifyList()
-      console.log(data)
-      this.classTree = data.map(item => {
-        if (item.children) {
-          item.children = item.children.map(childrenItem => {
-            return { ...childrenItem, label: childrenItem.son_name }
-          })
-        }
-        return { ...item, label: item.father_name }
-      })
-      console.log(this.classTree)
-    },
+    // 鏀瑰彉椤甸潰鏁版嵁澶у皬
     handleSizeChange() {
       // 褰撳墠椤靛ぇ灏�
     },
+    // 鏀瑰彉褰撳墠椤�
     handleCurrentChange() {
       // 褰撳墠椤垫洿鏀�
+    },
+    // 鏄剧ず璁惧鐮佺偣
+    addCodePoints() {
+      // 娣诲姞鏂扮爜鐐癸紝娓呯┖鍘熸暟缁�
+      this.codePointesTableStatus = true
+      this.codePointsTable = undefined
+    },
+    // 鏂板璁惧鐮佺偣
+    addNewCodePoints() {
+      //
+      if (!this.codePointsTable) {
+        this.codePointsTable = []
+      }
+      const newObj = {}
+      newObj.name = '灏忓皬' // 褰撳墠鐢ㄦ埛鐨勫悕绉�
+      newObj.updateTime = '2023-07-24' // 鑾峰彇褰撳墠鏃堕棿
+      newObj.equipmentPoint = 'Area-1'
+      newObj.equipmentPointName = '瀵间綋灞忚斀锛堝鍘氶潰绉級'
+      newObj.descriptiveness = ''
+      newObj.unit = 'mm'
+      newObj.instrumentId = this.equipmentDetail.id
+      this.codePointsTable.push(newObj)
+    },
+    // 淇濆瓨鎻愪氦鏂板璁惧鐮佺偣
+    async saveCodePoins() {
+      console.log(this.codePointsTable)
+      if (!this.codePointsTable) {
+        this.codePointsTable = []
+      }
+      if (this.codePointsTable.length === 0) return this.$message.error('璇风偣鍑绘坊鍔犳寜閽坊鍔犳暟鎹�')
+      try {
+        for (const item of this.codePointsTable) {
+          const { code, data, message } = await addEquipmentPoint(item)
+          console.log(data)
+          if (code !== 200) throw new Error(message)
+          this.$message.success('娣诲姞鎴愬姛')
+        }
+      } catch (error) {
+        this.$message.error(error)
+      }
+      await this.closeCodePoins()
+    },
+    // 鍙栨秷鏂板璁惧鐮佺偣
+    async closeCodePoins() {
+      this.codePointesTableStatus = false
+      this.codePointsTable = undefined
+      const { data: pointList } = await getEquipmentPointList({ InstrumentId: this.equipmentDetail.id })
+      this.codePointsTable = pointList
+    },
+    // 鐐瑰嚮鏂板浠櫒璁惧鎴栧綋瀛樺湪浠櫒璇︽儏鏃舵槸淇敼浠櫒璁惧淇℃伅
+    async addNewEquipment() {
+      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)
+        } catch (error) {
+          this.$message.error('娣诲姞澶辫触')
+        }
+        this.$message.success('娣诲姞鎴愬姛')
+        this.addDrawerVisible = false
+        this.equipmentform = {}
+        return
+      }
+      console.log('淇敼浠櫒鍙傛暟', this.equipmentform)
+      try {
+        const res = await changeInstrument(this.equipmentform)
+        console.log(res)
+        this.$message.success('淇敼鎴愬姛')
+        this.addDrawerVisible = false
+        this.detailDrawer = false
+      } catch (error) {
+        this.$message.error('娣诲姞澶辫触')
+      }
+    },
+    // 娣诲姞璁¢噺淇℃伅
+    async addMeasure() {
+      // 鏍煎紡鍖栨椂闂�
+      this.measureForm.instrumentId = this.equipmentDetail.id
+      if (Array.isArray(this.measureForm.date)) {
+        this.measureForm.beginDate = parseTime(this.measureForm.date[0], '{y}-{m}-{d}')
+        this.measureForm.endDate = parseTime(this.measureForm.date[1], '{y}-{m}-{d}')
+      }
+      console.log(this.measureForm)
+      const formData = new FormData()
+      formData.append('file', this.measureForm.file?.raw, this.measureForm.file?.name)
+      console.log(this.measureForm)
+      for (const key in this.measureForm) {
+        console.log(key)
+        // if (key === 'file') return
+        formData.append(key, this.measureForm[key])
+      }
+      console.log(formData)
+      try {
+        const { data } = await addMetricalInformation(formData)
+        console.log(data)
+        this.$message.success('娣诲姞鎴愬姛')
+        this.measureForm = {}
+        this.measureFormVisible = false
+      } catch (error) {
+        this.$message.error('娣诲姞澶辫触')
+      }
+    },
+    // 鍏抽棴璁惧璇︽儏鎶藉眽
+    closeDetailDrawer() {
+      this.equipmentDetail = {}
+      this.codePointsTable = []
+      this.measureTable = []
+    },
+    // 鍏抽棴娣诲姞淇敼璁惧鎶藉眽
+    closeAddOrChangeDrawer() {
+      if (!this.equipmentDetail.id) {
+        this.equipmentform = {}
+      }
+    },
+    // 鏂囦欢涓婁紶
+    handleUpload(file, fileList) {
+      // console.log(file, fileList)
+      this.measureForm.file = file
+    },
+    // 鏍规嵁杈撳叆鐨勮澶囩紪鍙凤紝璁惧鍚嶇О鎴栬�呭瀷鍙疯鏍煎叧閿瓧杩涜杩囨护鍒楄〃
+    filterTableData() {
+      this.oldtableData = this.equipmentTable
+      const filterdequipmentTable = this.equipmentTable.filter(item => {
+        return item.equipment_code.includes(this.searchData.keyword) || item.equipment_name.includes(this.searchData.keyword) || item.specifications_models.includes(this.searchData.keyword)
+      })
+      this.equipmentTable = filterdequipmentTable
+    },
+    resetBtn() {
+      this.searchData.keyword = ''
+      this.equipmentTable = this.oldtableData
+    },
+    getConditionTable() {
+      // console.log(this.radioValue)
+      let filteredTable = this.oldtableData.filter(item => {
+        return item.conditions === this.radioValue
+      })
+      // 鍏堝垽鏂璱sOut
+      if (this.isOut) {
+        // 濡傛灉鐜板湪鍕鹃�変簡宸茶繃鏈熸寜閽紝閭e氨浠庡綋鍓嶈繃婊ゅソ鐨勫垪琛ㄤ腑绛涢�夊嚭杩囨湡鍒楄〃
+        if (this.expireData.length === 0) {
+          this.equipmentTable = null
+        } else {
+          let expireItem
+          for (expireItem of this.expireData) {
+            filteredTable = filteredTable.filter(item => {
+              return item.equipment_code === expireItem.equipment_code
+            })
+          }
+          this.equipmentTable = filteredTable
+        }
+        if (!this.radioValue) {
+          this.equipmentTable = this.expireData
+        }
+      } else {
+        this.equipmentTable = filteredTable
+        if (!this.radioValue) {
+          this.equipmentTable = this.oldtableData
+        }
+      }
+    },
+    async getExpireTable() {
+      // const filteredTable = this.oldtableData.filter(item => {
+      //   return item.conditions === this.radioValue
+      // })
+      if (this.isOut) {
+        // 鎹曡幏鐐瑰嚮浜嗗凡杩囨湡锛岃姹傝繃鏈熸暟鎹苟淇濆瓨
+        const { data } = await getInstrumentList({ classifyId: this.nodeclicked.id, pageSize: this.pageSize, pageNo: this.currentPage, whetherWhether: this.isOut })
+        this.expireData = data.row
+        if (this.expireData.length === 0) {
+          this.equipmentTable = null
+        } else {
+          if (this.radioValue !== 0) {
+            let expireItem
+            for (expireItem of this.expireData) {
+              this.equipmentTable = this.oldtableData.filter(item => {
+                console.log(this.radioValue)
+                console.log('item', item)
+                console.log('expireItem', expireItem)
+                return item.conditions === this.radioValue && item.equipment_code === expireItem.equipment_code
+              })
+              console.log(this.equipmentTable)
+            }
+          } else {
+            this.equipmentTable = this.expireData
+          }
+        }
+      } else {
+        // 鎹曡幏鍙栨秷浜嗗凡杩囨湡锛屽皢杩囨湡鏁版嵁娓呯┖锛岄噸鏂版洿鏂癳quipmentTable
+        this.expireData = ''
+        this.equipmentTable = this.oldtableData.filter(item => {
+          return item.conditions === this.radioValue
+        })
+        if (this.radioValue === 0) {
+          this.equipmentTable = this.oldtableData
+        }
+      }
+    },
+    clickDelete(row) {
+      this.instrumentId = row.id
+      this.deletedialogVisible = true
+    },
+    async deleteInstrument() {
+      // console.log(row.id)
+      await deleteInstrument({ instrumentId: this.instrumentId })
+      this.deletedialogVisible = false
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
+.demo-drawer__content{
+  margin-left: 50px;
+}
+.demo-drawer__footer {
+  display: flex;
+  justify-content: space-between;
+}
+
+.demo-drawer__footer .el-button--default {
+  background-color: #fff;
+  color: #333;
+  width: 45%;
+  margin-bottom: 24px;
+}
+
+.demo-drawer__footer .el-button--primary {
+  background-color: #409EFF;
+  color: #fff;
+  width: 45%;
+  margin-right: 60px;
+  margin-bottom: 24px;
+}
 .ledger-main{
   width: 100%;
   height: 100%;
@@ -357,27 +1182,23 @@
     .library-bom{
       flex: 2;
       margin-right: 12px;
+      .bom-item-search{
+        margin-bottom: 12px;
+        ::v-deep .el-input{
+          input{
+            height: 33px;
+            line-height: 33px;
+          }
+        }
+      }
+         .bom-item-search .el-row{
+          // display: flex;
+          .el-col{
+            text-align: right;
+           }
+          }
       .el-tree {
         margin-top: 12px;
-        ::v-deep .el-tree-node__content{
-          height: 24px !important;
-          font-size: 14px;
-          display: inline-block !important;
-          padding: 2px;
-          color: #333;
-        }
-        ::v-deep .el-tree-node__content:hover{
-          background: rgba(58,124,253,0.1) !important;
-          // opacity: 0.31;
-          border-radius: 3px;
-          color: #333 !important;
-        }
-        ::v-deep .el-tree-node:focus>.el-tree-node__content{
-          background: rgba(58,124,253,0.1) !important;
-          // opacity: 0.31;
-          border-radius: 3px;
-          color: #333 !important;
-        }
       }
     }
     .library-table{
@@ -386,19 +1207,10 @@
       margin-left: 12px;
       display: flex;
       flex-direction: column;
-
-      /* .table-header{
-        display: flex;
-        justify-content: space-between;
-        .el-form-item{
-          margin-bottom: 30px !important;
-        }
-      } */
       .table-box{
           margin-top: 30px;
           flex: 1;
           background: #fff;
-          // padding: 20px 20px 10px 20px;
           display: flex;
           flex-direction: column;
           .el-table {
@@ -413,42 +1225,34 @@
     }
   }
 
-  .detailDrawer{
+}
+.addDrawer{
+  ::v-deep .el-drawer__body{
+      // padding: 24px !important;
+      overflow-y: scroll;
+      overflow-x: hidden;
+    }
+}
+.detailDrawer{
     ::v-deep .el-drawer__body{
       padding: 24px !important;
+      overflow-y: scroll;
     }
     .detail-info{
     background: #fff;
-      box-shadow: rgba(100, 100, 111, 0.2) 0px 5px 15px;
-
-    // padding: 10px 20px 10px 20px;
+    box-shadow: rgba(100, 100, 111, 0.2) 0px 5px 15px;
     margin: 0;
     margin-bottom: 12px;
     border-radius: 6px;
     overflow: hidden;
     .tips-main{
-      // margin: ;
       padding: 10px 20px 0 20px;
       display: flex;
       justify-content: space-between;
       align-items: center;
       height: 50px;
-      // height: ;
-      &:hover{
-        background: #85bff810;
-        .tips-btn{
-          display: block;
-          left: 0;
-          opacity:1;
-        }
-      }
       .tips-btn{
-        height: 100%;
-        // display: none;
-        position: relative;
-        opacity:0;
-        left: 100px;
-        transition: all 0.3s ease-in-out;
+        margin-bottom: 10px;
       }
       .tips{
       height: 100%;
@@ -456,7 +1260,6 @@
       height: 24px;
       align-items: center;
       font-size: 16px;
-      // margin-bottom: 12px;
       >span{
         display: inline-block;
         margin-right: 10px;
@@ -481,14 +1284,12 @@
       display: flex;
       flex-wrap: wrap;
       border-top: 1px solid #F2F6FC;
-      // border-top: 1px solid #F2F6FC;
       >div{
         flex: 30%;
         max-width: 30%;
         padding: 8px;
         color: #606266;
         align-items: center;
-        // height: 65px;
         font-size: 12px;
         height: 40px;
         display: flex;
@@ -496,18 +1297,21 @@
         >span{
           color: #303133;
           font-size: 14px;
-          //
           >i{
             margin-right: 8px;
           }
         }
       }
-      // >div:nth-child(5){
-      //   flex: 60%;
-      //   max-width: 60%;
-      // }
     }
   }
   }
+.measureForm{
+  //
+  .el-form-item{
+    //
+    .el-date-editor{
+      width: 100%;
+    }
+  }
 }
 </style>

--
Gitblit v1.9.3