From 34a7e21b3508ac0f5f011d958210fdb7176d726b Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期六, 09 九月 2023 11:54:05 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.22:9001/r/lims-before

---
 src/views/laboratory/ledger/index.vue |  187 +++++++++++++++++++---------------------------
 1 files changed, 76 insertions(+), 111 deletions(-)

diff --git a/src/views/laboratory/ledger/index.vue b/src/views/laboratory/ledger/index.vue
index 12f8143..7d96ba1 100644
--- a/src/views/laboratory/ledger/index.vue
+++ b/src/views/laboratory/ledger/index.vue
@@ -2,7 +2,7 @@
   <div class="ledger-main">
     <div class="page-header-search">
       <div class="serve-btn">
-        <el-button type="primary" icon="el-icon-plus"
+        <el-button size="small" type="primary" icon="el-icon-plus"
           @click="showAddDrawer()">鏂板浠櫒</el-button>
       </div>
     </div>
@@ -11,7 +11,7 @@
         <div class="bom-item-search">
           <el-row>
             <el-col :span="19">
-              <el-input v-model="filterText" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" />
+              <el-input size="small" v-model="filterText" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" />
             </el-col>
             <el-col :span="5">
               <el-button type="primary" size="small" @click="addClassVisible = true"><i
@@ -26,23 +26,21 @@
         <div class="table-header">
           <div class="search-bar">
             <el-row :gutter="20">
-              <el-col :span="15">
+              <el-col :span="8">
                 <el-form ref="form" :inline="true" :model="searchData">
-                  <el-form-item>
-                    <el-input v-model="searchData.keyword" placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸">
+                  <el-form-item width="200">
+                    <el-input size="small" v-model="searchData.keyword" placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸">
                       <i slot="prefix" class="el-input__icon el-icon-search" />
                     </el-input>
                   </el-form-item>
                   <el-form-item>
-                    <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-button size="small" type="primary" @click="filterTableData">鏌ヨ</el-button>
+                    <el-button size="small" type="primary" plain @click="resetBtn">閲嶇疆</el-button>
                   </el-form-item>
                 </el-form>
               </el-col>
-              <el-col :span="9">
+              <el-col :span="16">
                 <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>
@@ -55,7 +53,7 @@
         <div class="table-box">
           <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%;">
+            :data="equipmentTable" style="width: 100%;height: 100vh">
             <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" />
@@ -174,43 +172,38 @@
         </div>
         <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">
+            <div :style="{ marginBottom: '18px' }" class="btns">
               <el-button @click="addNewCodePoints">娣诲姞</el-button>
-              <el-button @click="saveCodePoins">淇濆瓨</el-button>
+              <el-button v-show="codePointesTableStatus" @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%">
+              :data="codePointsTable" style="width: 100%;overflow: scroll;height:314px;">
               <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" />
+                  <el-input v-if="codePointesTableStatus && scope.row.isInput" v-model="scope.row.equipmentPoint" />
+                  <span v-else>{{ scope.row.equipmentPoint }}</span>
                 </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" />
+                  <el-input v-if="codePointesTableStatus && scope.row.isInput" v-model="scope.row.equipmentPointName" />
+                  <span v-else>{{ scope.row.equipmentPointName }}</span>
                 </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" />
+                  <el-input v-if="codePointesTableStatus && scope.row.isInput" v-model="scope.row.unit" />
+                  <span v-else>{{ scope.row.unit }}</span>
                 </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" />
+                  <el-input v-if="codePointesTableStatus && scope.row.isInput" v-model="scope.row.descriptiveness" />
+                  <span v-else>{{ scope.row.descriptiveness }}</span>
                 </template>
               </el-table-column>
 
@@ -273,7 +266,7 @@
             <el-col :span="11">
               <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"
+                <el-select v-model="equipmentform.conditions" clearable :allow-create="true"
                   placeholder="璇烽�夋嫨浠櫒璁惧鐘舵��" style="width:100%">
                   <el-option v-for="item in conditionsOptions" :key="item.value" :label="item.label"
                     :value="item.value" />
@@ -328,7 +321,7 @@
             </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="璇烽�夋嫨淇濈浜�"
+                <el-select v-model="equipmentform.userId" clearable :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>
@@ -566,6 +559,7 @@
       // 鐮佺偣琛ㄦ牸
       codePointsTable: [
         {
+          'isInput':false,
           'unit': '',
           'descriptiveness': '',
           'equipmentPoint': '',
@@ -612,7 +606,7 @@
     },
     measureFormVisible(newVal){
       if(newVal === false){
-        this.resetForm("addmeasureForm");
+        this.cancelAddMeasure();
       }
     }
   },
@@ -645,7 +639,6 @@
     // 鑾峰彇鍒嗙被鏁版嵁
     async getThreeData() {
       const { data } = await getClassifyList()
-      // console.log(data)
       this.classTree = data.map(item => {
         if (item.children) {
           item.children = item.children.map(childrenItem => {
@@ -674,22 +667,18 @@
     },
     // 鏄剧ず浠櫒璇︽儏
     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) {
       this.nodeclicked = data
-      console.log(data)
       // 鍙湁鏁版嵁涓惡甯d鎵嶈兘鍙戦�佹煡璇㈣姹�
       if (data.id) {
         this.getEquipmentTable({ classifyId: data.id, pageSize: this.pageSize, pageNo: this.currentPage, whetherWhether: this.isOut })
@@ -697,7 +686,6 @@
     },
     // 鑾峰彇浠櫒鍒楄〃鏁版嵁
     async getEquipmentTable(ages) {
-      // console.log('鏉′欢瀵硅薄', ages)
       const { data } = await getInstrumentList(ages)
       this.equipmentTable = data.row
       this.total = data.total
@@ -716,19 +704,11 @@
     handleCurrentChange() {
       // 褰撳墠椤垫洿鏀�
     },
-    // 鏄剧ず璁惧鐮佺偣
-    addCodePoints() {
-      // 娣诲姞鏂扮爜鐐癸紝娓呯┖鍘熸暟缁�
-      this.codePointesTableStatus = true
-      this.codePointsTable = undefined
-    },
     // 鏂板璁惧鐮佺偣
     addNewCodePoints() {
-      //
-      if (!this.codePointsTable) {
-        this.codePointsTable = []
-      }
+      this.codePointesTableStatus = true;
       const newObj = {}
+      newObj.isInput = true,
       newObj.name = '' // 褰撳墠鐢ㄦ埛鐨勫悕绉�
       newObj.updateTime = '' // 鑾峰彇褰撳墠鏃堕棿
       newObj.equipmentPoint = ''
@@ -736,25 +716,21 @@
       newObj.descriptiveness = ''
       newObj.unit = ''
       newObj.instrumentId = this.equipmentDetail.id
-      this.codePointsTable.push(newObj)
+      this.codePointsTable.unshift(newObj)
     },
     // 淇濆瓨鎻愪氦鏂板璁惧鐮佺偣
     async saveCodePoins() {
-      console.log(this.codePointsTable)
-      if (!this.codePointsTable) {
-        this.codePointsTable = []
+      if (this.codePointsTable.length === 0) {
+        return this.$message.error('璇风偣鍑绘坊鍔犳寜閽坊鍔犳暟鎹�')
       }
-      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) {
+      let data = this.codePointsTable.filter(item => {
+        return item.instrumentId != null;
+      })
+      await addEquipmentPoint(data).then(()=>{
+        this.$message.success('娣诲姞鎴愬姛')
+      }).catch(error=>{
         this.$message.error(error.message)
-      }
+      })
       await this.closeCodePoins()
     },
     // 鍙栨秷鏂板璁惧鐮佺偣
@@ -775,42 +751,39 @@
     },
     // 鐐瑰嚮鏂板浠櫒璁惧鎴栧綋瀛樺湪浠櫒璇︽儏鏃舵槸淇敼浠櫒璁惧淇℃伅
     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) {
-        // 鏍煎紡鍖栨棩鏈�
-        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}')
-        try {
-          const res = await addInstrument(this.equipmentform)
-          console.log(res)
-        } catch (error) {
-          this.$message.error('娣诲姞澶辫触')
+      this.$refs["addNewEquipment"].validate(async(valid)=>{
+        if(valid){
+          if (Array.isArray(this.equipmentform.classifyId)) {
+            this.equipmentform.classifyId = this.equipmentform.classifyId.pop()
+          }
+          if (!this.equipmentDetail.id) {
+            // 鏍煎紡鍖栨棩鏈�
+            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}')
+            await addInstrument(this.equipmentform).then(()=>{
+              this.$message.success('娣诲姞鎴愬姛')
+            }).catch(error=>{
+              this.$message.error(error.message);
+            })
+            let d = this.nodeclicked;
+            this.nodeClickHandler(d);
+            this.addDrawerVisible = false
+            this.equipmentform = {}
+            return
+          }
+          console.log('淇敼浠櫒鍙傛暟', this.equipmentform)
+          await changeInstrument(this.equipmentform).then(()=>{
+            this.$message.success('淇敼鎴愬姛')
+            let d = this.nodeclicked;
+            this.nodeClickHandler(d);
+            this.addDrawerVisible = false
+            this.detailDrawer = false
+          }).catch(error=>{
+            this.$message.error(error.message);
+          })
         }
-        this.$message.success('娣诲姞鎴愬姛')
-        let d = this.nodeclicked;
-        this.nodeClickHandler(d);
-        this.addDrawerVisible = false
-        this.equipmentform = {}
-        return
-      }
-      console.log('淇敼浠櫒鍙傛暟', this.equipmentform)
-      try {
-        const res = await changeInstrument(this.equipmentform)
-        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')
@@ -830,10 +803,10 @@
       this.$refs[formName].resetFields();
     },
     cancelAddMeasure() {
-      this.$refs['upload'].clearFiles();
       this.measureForm.file = null;
       this.measureFormVisible = false
       this.resetForm('addmeasureForm');
+      this.$refs['upload'].clearFiles();
     },
     // 娣诲姞璁¢噺淇℃伅
     async addMeasure() {
@@ -845,7 +818,6 @@
             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()
           if(this.measureForm.file == null || this.measureForm.file == ""){
             this.$message.warning("璇烽�夋嫨瑕佷笂浼犵殑鏂囦欢!");
@@ -853,16 +825,11 @@
           }else{
             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)
+            await addMetricalInformation(formData)
             this.$message.success('娣诲姞鎴愬姛')
             const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id })
             this.measureTable = informationList
@@ -873,8 +840,6 @@
           }
           this.measureForm.file = null;
           this.$refs['upload'].clearFiles();
-        }else{
-          console.log(32);
         }
       });
     },
@@ -884,7 +849,6 @@
       this.codePointsTable = []
       this.measureTable = []
       this.measureForm.file = null;
-      this.$refs['upload'].clearFiles();
     },
     // 鍏抽棴娣诲姞淇敼璁惧鎶藉眽
     closeAddOrChangeDrawer() {
@@ -894,7 +858,6 @@
     },
     // 鏂囦欢涓婁紶
     handleUpload(file, fileList) {
-      console.log(file, fileList)
       this.measureForm.file = file
     },
     // 鏍规嵁杈撳叆鐨勮澶囩紪鍙凤紝璁惧鍚嶇О鎴栬�呭瀷鍙疯鏍煎叧閿瓧杩涜杩囨护鍒楄〃
@@ -907,10 +870,11 @@
     },
     resetBtn() {
       this.searchData.keyword = ''
+      this.radioValue = 0;
+      this.isOut = false;
       this.equipmentTable = this.oldtableData
     },
     getConditionTable() {
-      // console.log(this.radioValue)
       let filteredTable = this.oldtableData.filter(item => {
         return item.conditions === this.radioValue
       })
@@ -953,12 +917,10 @@
             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
@@ -1080,7 +1042,10 @@
     display: flex;
     justify-content: space-between;
     padding: 15px 24px 12px 24px;
-
+    .serve-btn{
+      position: relative;
+      left: 92%;
+    }
     .search-bar {
       .el-radio-button.is-active {
         color: #409EFF !important;

--
Gitblit v1.9.3