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 |  142 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 130 insertions(+), 12 deletions(-)

diff --git a/src/views/laboratory/ledger/index.vue b/src/views/laboratory/ledger/index.vue
index d8e1d65..f092459 100644
--- a/src/views/laboratory/ledger/index.vue
+++ b/src/views/laboratory/ledger/index.vue
@@ -12,8 +12,8 @@
             </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>
@@ -28,6 +28,7 @@
           <el-row>
             <el-col :span="19">
               <el-input
+                v-model="filterText"
                 placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
               />
             </el-col>
@@ -40,7 +41,7 @@
           ref="classTree"
           :data="classTree"
           :props="defaultProps"
-          default-expand-all
+          :default-expand-all="true"
           :filter-node-method="filterNode"
           @node-click="nodeClickHandler"
         />
@@ -48,13 +49,13 @@
       <div class="library-table">
         <div class="table-header">
           <div class="search-bar">
-            <el-radio-group v-model="radioValue">
-              <el-radio-button label="0">鍏ㄩ儴</el-radio-button>
+            <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> -->
@@ -124,7 +125,7 @@
             >
               <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>
@@ -650,6 +651,18 @@
         <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>
 
@@ -657,7 +670,7 @@
 import { getClassifyList, getInstrumentList,
   addInstrumentUser, addInstrument, getInstrumentDetail,
   getEquipmentPointList, addEquipmentPoint,
-  getMetricalInformationList, changeInstrument, addMetricalInformation } from '@/api/laboratory/ledger'
+  getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument } from '@/api/laboratory/ledger'
 import { parseTime } from '@/utils/index'
 export default {
   filters: {
@@ -689,6 +702,10 @@
       userOpetions: [],
       // 浠櫒鐘舵�侀厤缃」
       conditionsOptions: [
+        {
+          label: '鍏ㄩ儴',
+          value: 0
+        },
         {
           label: '杩愯',
           value: 1
@@ -748,6 +765,8 @@
       addClassVisible: false,
       // 鎺у埗鏂板璁¢噺妯℃�佹鏄剧ず
       measureFormVisible: false,
+      // 鎺у埗鍒犻櫎浠櫒妯℃�佹鏄剧ず
+      deletedialogVisible: false,
       // 鎺у埗娣诲姞淇敼浠櫒鎶藉眽鐨勬樉绀�
       addDrawerVisible: false,
       // 娣诲姞淇敼浠櫒鍙傛暟瀵硅薄
@@ -796,7 +815,17 @@
       // 鐮佺偣琛ㄦ牸鐨勭姸鎬侊細鏁版嵁灞曠ずfalse/鏂板杈撳叆true
       codePointesTableStatus: false,
       // 璁惧璇︽儏瀵硅薄
-      equipmentDetail: {}
+      equipmentDetail: {},
+      // 杩囨护鍏抽敭瀛�
+      filterText: '',
+      // 杩囨护鍚庣殑浠櫒璁惧琛�
+      filterdequipmentTable: '',
+      oldtableData: '',
+      // 杩囨护涓嶅悓鐘舵�佽澶�
+      conditionTable: '',
+      nodeclicked: '',
+      expireData: '',
+      instrumentId: ''
     }
   },
   watch: {
@@ -844,19 +873,21 @@
     },
     // 鑺傜偣鐐瑰嚮澶勭悊
     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)
       const { data } = await getInstrumentList(ages)
-      // console.log(data)
+      console.log(data)
       this.equipmentTable = data.row
       this.total = data.total
+      this.oldtableData = this.equipmentTable
     },
     // 杩囨护鑺傜偣
     filterNode(value, data) {
@@ -997,6 +1028,93 @@
     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
     }
   }
 }

--
Gitblit v1.9.3