From a0b1fdec2bc5ddad11e981936b80d0fdf1e4bc69 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期三, 03 七月 2024 09:25:06 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before into master

---
 src/components/do/b1-ins-order/add.vue |  237 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 229 insertions(+), 8 deletions(-)

diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index 43ad37a..d6e3822 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -70,6 +70,23 @@
     line-height: 24px;
     margin-top: 5px;
   }
+  .circulateTable {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    .opticalProject {
+      width: 38%;
+    }
+    .temperatureList {
+      width: 60%;
+      .temperatureListTitle {
+        display: flex;
+        flex-direction: row;
+        justify-content: space-between;
+        line-height: 30px;
+      }
+    }
+  }
 </style>
 <style>
   .ins_order_add .el-input-group__append,
@@ -419,6 +436,7 @@
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>妫�楠岄」</span>
               <el-input
+                v-if="active==1"
               v-model="inspectionItem"
               @input="searchFilterList"
               size="mini"
@@ -432,6 +450,7 @@
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>妫�楠岄」瀛愰」</span>
               <el-input
+                v-if="active==1"
                 v-model="inspectionItemSubclass"
                 @input="searchFilterList"
                 size="mini"
@@ -446,6 +465,7 @@
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>璇曢獙鏂规硶</span>
               <el-input
+                v-if="active==1"
                 v-model="methodS"
                 @input="searchFilterList"
                 size="mini"
@@ -734,27 +754,85 @@
         </el-row>
       </span>
     </el-dialog>
-    <el-dialog title="娓╁害寰幆瑕佹眰濉啓" :visible.sync="circulateShow" width="800px" :show-close="false">
+    <el-dialog title="娓╁害寰幆瑕佹眰濉啓" :visible.sync="circulateShow" width="900px" :before-close="beforeCirculateShowClose" :show-close="false">
       <div class="search" style="display: flex;background: transparent;">
         <div class="search_thing">
           <div class="search_label">淇濇俯鏃堕棿锛�</div>
           <div class="search_input">
-            <el-input v-model="circulateForm.entrustCode" size="small" placeholder=""></el-input>
+            <el-input v-model="circulateForm.entrustTime" size="small" placeholder="" type="number"></el-input>
           </div>
         </div>
         <div class="search_thing">
           <div class="search_label">寰幆娆℃暟锛�</div>
           <div class="search_input">
-            <el-input v-model="circulateForm.entrustCode" size="small" placeholder=""></el-input>
+            <el-input v-model="circulateForm.entrustNum" size="small" placeholder="" type="number"></el-input>
           </div>
         </div>
         <div class="search_thing">
           <div class="search_label">娓╁害鐐癸細</div>
           <div class="search_input">
-            <el-input v-model="circulateForm.entrustCode" size="small" placeholder=""></el-input>
+            <el-input @blur="changeTemperatureData" v-model="circulateForm.entrustPoint" size="small" placeholder="" type="number"></el-input>
           </div>
         </div>
       </div>
+      <div class="circulateTable">
+        <div class="opticalProject">
+          <div style="line-height: 30px;">鍏夌氦椤圭洰</div>
+          <el-divider></el-divider>
+          <div>
+            <el-table
+              ref="multipleTable"
+              border
+              :header-cell-style="{'text-align':'center'}"
+              :cell-style="{'text-align':'center'}"
+              :data="opticalProject"
+              tooltip-effect="dark"
+              style="width: 100%"
+              @selection-change="handleSelectionChange">
+              <el-table-column
+                type="selection"
+                width="55">
+              </el-table-column>
+              <el-table-column prop="value" label="鍏夌氦椤圭洰" show-overflow-tooltip></el-table-column>
+            </el-table>
+          </div>
+        </div>
+        <div class="temperatureList">
+          <div class="temperatureListTitle">
+            <span>娓╁害鐐归泦鍚�(璇锋寜鐓ч『搴忓~鍐欙紝20鈩冨繀椤讳负棣栦綅)</span>
+            <span>
+              <el-button type="primary" size="mini" @click="addTemperatureData">鏂板</el-button>
+              <el-button size="mini" @click="deleteTemperatureData">鍒犻櫎</el-button>
+            </span>
+          </div>
+          <el-divider></el-divider>
+          <el-table
+            :data="temperatureData"
+            border
+            :header-cell-style="{'text-align':'center'}"
+            :cell-style="{'text-align':'center'}"
+            style="width: 100%">
+            <el-table-column prop="date" label="娓╁害鐐�(鈩�)" width="120px">
+              <template slot-scope="scope">
+                <el-input size="small" v-model="scope.row.temperaturePoint" clearable placeholder="璇疯緭鍏�"></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column prop="name" label="瑕佹眰(dB/Km)">
+              <template slot-scope="scope">
+                <span>x</span>
+                <el-select v-model="scope.row.askSymbol" placeholder="璇烽�夋嫨" size="small" style="width: 120px">
+                  <el-option v-for="item in temperatureDataList" :key="item.value" :label="item.label" :value="item.value">
+                  </el-option>
+                </el-select>
+                <el-input size="small" v-model="scope.row.askNum" clearable placeholder="璇疯緭鍏�" style="width: 120px"></el-input>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="spliceData">淇濆瓨</el-button>
+      </span>
     </el-dialog>
   </div>
 </template>
@@ -765,6 +843,7 @@
 import equipConfig from './equip-config.vue'
 import cableConfig from './cable-config.vue'
 import Vue from 'vue'
+import {iuCharts} from "../../../util/echarts";
 
 export default {
     components: {
@@ -874,6 +953,7 @@
         productList0: [],
         bsm1DiaList: [],
         productIds: [],
+        productListSelected: [],
         getProductLoad: false,
         saveLoad: false,
         templateDia: false,
@@ -926,8 +1006,22 @@
         inspectionItemSubclass:null,
         methodS:null,
         circulateShow:false,
-        circulateForm:{},
-        isBsm2Val2:false
+        circulateForm:{
+          entrustTime: '',
+          entrustNum: '',
+          entrustPoint: ''
+        },
+        isBsm2Val2:false,
+        opticalProject: [], // 娓╁害寰幆寮规鍏夌氦椤圭洰鍒楄〃
+        opticalProjectList: [], // 娓╁害寰幆寮规鍏夌氦椤圭洰閫変腑鐨勬暟缁�
+        temperatureData: [], // 娓╁害寰幆寮规娓╁害鐐归泦鍚堝垪琛�
+        temperatureDataList: [
+          {label: '<', value: '<'},
+          {label: '鈮�', value: '鈮�'},
+          {label: '锛�', value: '锛�'},
+          {label: '鈮�', value: '鈮�'},
+          {label: '锛�', value: '锛�'},
+        ]
       }
     },
     watch: {
@@ -1002,6 +1096,109 @@
       }
     },
     methods: {
+      spliceData () {
+        if (!this.circulateForm.entrustNum || !this.circulateForm.entrustTime || !this.circulateForm.entrustPoint || this.opticalProjectList.length === 0 || this.temperatureData.length === 0) {
+          this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
+          return
+        }
+
+        const opticalProjectList = JSON.parse(JSON.stringify(this.opticalProjectList))
+        let entrustTime = this.circulateForm.entrustTime
+        let entrustNum = this.circulateForm.entrustNum
+        let temperaturePoint1 = JSON.parse(JSON.stringify(this.temperatureData))
+        temperaturePoint1.forEach(t => {
+          if (!t.temperaturePoint || !t.askSymbol || !t.askNum) {
+            throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
+          }
+        })
+        let temperaturePoint = JSON.parse(JSON.stringify(this.temperatureData))
+        temperaturePoint.unshift({temperaturePoint: 20})
+        let askArr = []
+        let opticalProjectArr = []
+        // 鎷兼帴瑕佹眰鍊糰sk
+        opticalProjectList.forEach(o => {
+          opticalProjectArr.push(o.value)
+          temperaturePoint.forEach(t => {
+            if (!t.askSymbol) {
+              const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + null
+              askArr.push(askObj)
+            } else {
+              const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + t.askSymbol + t.askNum
+              askArr.push(askObj)
+            }
+          })
+        })
+        askArr.push(this.circulateForm.entrustNum)
+        const ask = askArr.join(';')
+        // 鎷兼帴瑕佹眰鎻忚堪tell
+        let askNum = []
+        let temperaturePointList = []
+        let temperaturePointList2 = []
+        entrustTime = entrustTime + 'h'
+        entrustNum = entrustNum + '娆�'
+        temperaturePoint.forEach(t => {
+          t.temperaturePoint = t.temperaturePoint + '鈩�'
+          temperaturePointList.push(t.temperaturePoint)
+        })
+        temperaturePoint1.forEach(t => {
+          t.temperaturePoint = t.temperaturePoint + '鈩�'
+          askNum.push(t.askSymbol + t.askNum + 'dB/Km')
+          temperaturePointList2.push(t.temperaturePoint)
+        })
+        let additionArr = []
+        askNum.forEach(a => {
+          additionArr.push(temperaturePointList2.join(',') + a)
+        })
+        temperaturePointList2.unshift(20 + '鈩�')
+        const tell = '娓╁害鑼冨洿:' + temperaturePointList2.join(',') + ';' + '淇濇俯鏃堕棿:' + entrustTime + ';' + '寰幆娆℃暟:'
+          + entrustNum + ';' + '鍏夌氦(' + opticalProjectArr.join(',') + ')' + '闄勫姞琛板噺缁濆鍊�:' + additionArr.join(';')
+        this.productList.forEach(item => {
+          if (item.inspectionItem === '娓╁害寰幆') {
+            item.ask = ask
+            item.tell = tell
+          }
+        })
+        console.log('ask---', ask)
+        console.log('tell---', tell)
+        this.circulateShow = false
+      },
+      beforeCirculateShowClose () {
+        if (!this.circulateForm.entrustNum || !this.circulateForm.entrustTime || !this.circulateForm.entrustPoint || this.opticalProjectList.length === 0 || this.temperatureData.length === 0) {
+          this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
+          return
+        }
+        let temperaturePoint1 = JSON.parse(JSON.stringify(this.temperatureData))
+        temperaturePoint1.forEach(t => {
+          if (!t.temperaturePoint || !t.askSymbol || !t.askNum) {
+            throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�')
+          }
+        })
+      },
+      handleSelectionChange(val) {
+        this.opticalProjectList = val;
+      },
+      addTemperatureData () {
+        const obj = {}
+        this.temperatureData.push(obj)
+      },
+      deleteTemperatureData () {
+        if (this.temperatureData.length > 0) {
+          this.temperatureData = this.temperatureData.slice(0,-1)
+        }
+      },
+      changeTemperatureData () {
+        const length = this.temperatureData.length
+        const entrustPoint = Number(this.circulateForm.entrustPoint)
+        if (entrustPoint > length) {
+          for (let i = 0; i < (entrustPoint - length); i++) {
+            const obj = {}
+            this.temperatureData.push(obj)
+          }
+        } else if (entrustPoint < length) {
+          const deleteNum = length - entrustPoint
+          this.temperatureData = this.temperatureData.slice(0,-deleteNum)
+        }
+      },
       searchFilterList () {
         const vtw = {
           inspectionItem: this.inspectionItem, // 妫�楠岄」
@@ -1130,6 +1327,19 @@
         } else if (!this.sampleList.every(m => m.standardMethodListId)) {
           this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�')
         } else {
+          const select = this.selectTree.split(' - ')
+          const productListSelected = this.productListSelected.some(item => item.inspectionItem === '娓╁害寰幆')
+          let isHaveBushing = ''
+          this.sampleList.forEach(item => {
+            if (!item.bushing || item.bushing.length === 0) {
+              isHaveBushing = false
+            }
+          })
+          console.log('isHaveBushing===', isHaveBushing)
+          if (productListSelected && select[2] === '鍏夌紗' && isHaveBushing === false) {
+            this.$message.error('鍏夌紗娓╁害寰幆椤圭洰蹇呴』杩涜鍏夌氦閰嶇疆')
+            return
+          }
           let sampleList = this.HaveJson(this.sampleList)
           let projectNum = this.totalArr.filter(a => a.state == 1).length
           if(projectNum==0){
@@ -1628,6 +1838,7 @@
         this.$refs.sampleTable.doLayout()
       },
       selectProduct(val) {
+        this.productListSelected = val
         this.productIds = []
         val.forEach(a => {
           this.productIds.push(a.id)
@@ -1705,11 +1916,21 @@
           }
           return item
         })
-        if (row.inspectionItem === '娓╁害寰幆') {
+        const select = this.selectTree.split(' - ')
+        if (row.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && row.state === 1) {
           this.circulateShow = true;
           return
+        } else if (row.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && row.state === 0) {
+          this.circulateShow = false;
         }
         this.getProNum()
+      },
+      searchProject () {
+        this.$axios.post(this.$api.enums.selectEnumByCategory, {
+          category: "鍏夌氦椤圭洰"
+        }).then(res => {
+          this.opticalProject = res.data
+        })
       },
       permute(nums) {
         const result = [];
@@ -1872,6 +2093,7 @@
             })
           }, 200)
         })
+        this.searchProject()
       },
       changeModel() {
         this.sampleList.forEach(a => {
@@ -1931,7 +2153,6 @@
         }
       },
       handleAll(e) {
-        console.log('鍏ㄩ��')
         if (e.length > 0) {
           this.productList.map(m => {
             m.state = 1

--
Gitblit v1.9.3