From 051e5b520f0b94dd409d4fd90ea8fc350a943f9d Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 14 十月 2024 16:42:31 +0800
Subject: [PATCH] 完成温湿度特殊项目
---
src/components/do/b1-inspect-order-plan/circuit-parameters1.vue | 6 +
src/components/do/b1-inspect-order-plan/humidity.vue | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/do/b1-inspect-order-plan/circuit-parameters2.vue | 6 +
src/components/do/b1-inspect-order-plan/Inspection.vue | 12 +
src/assets/api/controller.js | 3
5 files changed, 275 insertions(+), 4 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 59cf00d..834e395 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -196,7 +196,8 @@
claimInsOrderPlan: "/insOrderPlan/claimInsOrderPlan", //璁ら妫�楠屼换鍔�
doInsOrder: "/insOrderPlan/doInsOrder", //鎵ц妫�楠屾搷浣�
saveInsContext: "/insOrderPlan/saveInsContext", //淇濆瓨妫�楠屽唴瀹�
- saveInsContext2: "/insOrderPlan/saveInsContext2", //淇濆瓨妫�楠屽唴瀹�
+ saveInsContext2: "/insOrderPlan/saveInsContext2", //淇濆瓨妫�楠屽唴瀹�--鐢佃矾璇曢獙
+ saveInsContext3: "/insOrderPlan/saveInsContext3", //淇濆瓨妫�楠屽唴瀹�--娓╂箍搴︽楠�
deleteInsContext: "/insOrderPlan/deleteInsContext", //鍒犻櫎棰戞
deleteInsContext2: "/insOrderPlan/deleteInsContext2", //鍒犻櫎棰戠偣
upPlanUser: "/insOrderPlan/upPlanUser", //浠诲姟浜ゆ帴
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index ce9beb9..178322a 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -260,7 +260,7 @@
<el-col :span="12" style="padding-left: 20px;text-align: left;" :class="{noShow:noBack}">妫�楠屽崟璇︽儏
</el-col>
<el-col :span="12" style="text-align: right;">
- <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1">妫�楠屾ā鏉垮垏鎹�</el-button>
+ <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')">妫�楠屾ā鏉垮垏鎹�</el-button>
<el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">鏍峰搧鍒囨崲</el-button>
<el-button size="small" type="primary" @click="taskVisible=true" v-show="!isLook">浠诲姟鍒囨崲</el-button>
<el-button size="small" type="primary" @click="handleSubmit" v-if="state==1"
@@ -347,7 +347,7 @@
</div> -->
</div>
<!-- 甯歌妫�楠屽師濮嬭褰� -->
- <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙'))">
+ <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╂箍搴﹁瘯楠�'))">
<table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index+currentTable+currentSample.id">
<tbody>
<tr v-for="(m,i) in item.arr" :key="i">
@@ -729,6 +729,10 @@
<CircuitParameters1 v-if="currentTableState==0" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters1>
<CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters2>
</div>
+ <!-- 娓╂箍搴﹁瘯楠� -->
+ <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╂箍搴﹁瘯楠�')">
+ <Humidity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1"/>
+ </div>
<el-upload :action="action"
:data="{
orderId:id
@@ -890,6 +894,7 @@
import excelFunction from '../../../util/excelFountion'
import CircuitParameters1 from './circuit-parameters1.vue'
import CircuitParameters2 from './circuit-parameters2.vue'
+ import Humidity from './humidity.vue'
import filePreview from '../../tool/file-preview.vue'
export default {
props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack'],
@@ -898,7 +903,8 @@
Circuit,
CircuitParameters1,
CircuitParameters2,
- filePreview
+ filePreview,
+ Humidity,
},
data() {
return {
diff --git a/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue b/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue
index 6315c9e..756c6b1 100644
--- a/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue
+++ b/src/components/do/b1-inspect-order-plan/circuit-parameters1.vue
@@ -391,6 +391,12 @@
},
currentNum(val) {
this.initData()
+ },
+ insProduct:{
+ deep:true,
+ handler:()=>{
+ this.initData()
+ }
}
},
mounted() {
diff --git a/src/components/do/b1-inspect-order-plan/circuit-parameters2.vue b/src/components/do/b1-inspect-order-plan/circuit-parameters2.vue
index e54a0f8..84f89f5 100644
--- a/src/components/do/b1-inspect-order-plan/circuit-parameters2.vue
+++ b/src/components/do/b1-inspect-order-plan/circuit-parameters2.vue
@@ -272,6 +272,12 @@
},
currentNum(val) {
this.initData()
+ },
+ insProduct:{
+ deep:true,
+ handler:()=>{
+ this.initData()
+ }
}
},
mounted() {
diff --git a/src/components/do/b1-inspect-order-plan/humidity.vue b/src/components/do/b1-inspect-order-plan/humidity.vue
new file mode 100644
index 0000000..8bf256a
--- /dev/null
+++ b/src/components/do/b1-inspect-order-plan/humidity.vue
@@ -0,0 +1,252 @@
+<template>
+ <div>
+ <table border="1" cellpadding="10" class="thermal-table" style="margin-bottom: 20px;">
+ <template v-for="(item,index) in insProductList">
+ <tr>
+ <td style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;" colspan="6">{{ item.inspectionItemSubclass }}</td>
+ </tr>
+ <tr>
+ <td style="font-size: 16px;background-color: #F0F1F5;">瑙勬牸鍨嬪彿</td>
+ <td>{{item.model}}</td>
+ <td style="font-size: 16px;background-color: #F0F1F5;">璇曢獙鏂规硶</td>
+ <td>{{item.methodS}}</td>
+ <td style="font-size: 16px;background-color: #F0F1F5;">璁惧缂栧彿</td>
+ <td>
+ <el-select v-model="item.equipValue" placeholder="璇烽�夋嫨" size="small" :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,item)">
+ <el-option
+ v-for="item in equipOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ </tr>
+ <tr>
+ <td style="font-size: 16px;background-color: #F0F1F5;">璇曢獙瑕佹眰</td>
+ <td colspan="3" style="text-align: left;">{{item.tell}}</td>
+ <td style="font-size: 16px;background-color: #F0F1F5;">璁惧鍚嶇О</td>
+ <td>{{ item.equipName }}</td>
+ </tr>
+ <tr>
+ <td style="font-size: 16px;background-color: #F0F1F5;">瀹為獙鍓嶆牱鍝佹鏌�</td>
+ <td colspan="2">
+ <el-select v-model="item.beforeCheck" placeholder="璇烽�夋嫨" size="small" :disabled="state>1" @change="save(item)">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ <td style="font-size: 16px;background-color: #F0F1F5;">瀹為獙鍚庢牱鍝佹鏌�</td>
+ <td colspan="2">
+ <el-select v-model="item.afterCheck" placeholder="璇烽�夋嫨" size="small" :disabled="state>1" @change="save(item)">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ </tr>
+ <tr style="background-color: #F0F1F5;">
+ <td colspan="2">鏃堕棿</td>
+ <td colspan="1">娓╁害</td>
+ <td colspan="1">婀垮害</td>
+ <td colspan="2">鎿嶄綔</td>
+ </tr>
+ <tr v-for="(m,i) in item.list" :key="i+item.id">
+ <td colspan="2">
+ <el-time-picker
+ v-model="m.time"
+ placeholder="鏃堕棿" size="small" editable format="HH:mm" value-format="HH:mm" style="width: 100%;" @change="save(item)" :disabled="state>1">
+ </el-time-picker>
+ </td>
+ <td colspan="1">
+ <el-input v-model="m.temperature" placeholder="娓╁害" size="small" @blur ="handleReplace(m,'鈩�','temperature',item)" :disabled="state>1"></el-input>
+ </td>
+ <td colspan="1">
+ <el-input v-model="m.humidity" placeholder="婀垮害" size="small" @blur ="handleReplace(m,'%rh','humidity',item)" :disabled="state>1"></el-input>
+ </td>
+ <td colspan="2">
+ <el-button icon="el-icon-minus" circle size="mini" type="danger"
+ @click="deleteList(item.list,i,item)" :disabled="state>1" style="margin: 5px;"></el-button>
+ <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(item.list,i)" :disabled="state>1" style="margin: 5px;"></el-button>
+ </td>
+ </tr>
+ </template>
+ </table>
+ </div>
+</template>
+
+<script>
+export default {
+ props:['insProduct','orderId','sampleId','state','isLook','num'],
+ data() {
+ return {
+ equipOptions:[],
+ insProductList:[],
+ options:[
+ {value: '瀹屽ソ', label: '瀹屽ソ'},
+ {value: '鐮存崯', label: '鐮存崯'}
+ ]
+ }
+ },
+ watch:{
+ insProduct:{
+ deep:true,
+ handler:function(newVal,oldVal){
+ this.init()
+ }
+ }
+ },
+ mounted() {
+ this.init()
+ },
+ methods: {
+ init(){
+ this.insProductList = this.HaveJson(this.insProduct)
+ this.insProductList.forEach(item=>{
+ if(!item.insProductResult){
+ // 鍒濆鍖�
+ this.$set(item,'list',[])
+ item.list.push({})
+ item.list.forEach(m=>{
+ this.$set(m,'time','')
+ this.$set(m,'temperature','')
+ this.$set(m,'humidity','')
+ })
+ this.$set(item,'equipValue','')
+ this.$set(item,'equipName','')
+ this.$set(item,'beforeCheck','')
+ this.$set(item,'afterCheck','')
+ }else{
+ // 璧嬪��
+ this.$set(item,'list',JSON.parse(item.insProductResult.insValue))
+ item.list.forEach(m=>{
+ this.$set(m,'time',m.time)
+ this.$set(m,'temperature',m.temperature)
+ this.$set(m,'humidity',m.humidity)
+ })
+ this.$set(item,'equipValue',item.insProductResult.equipValue)
+ this.$set(item,'equipName',item.insProductResult.equipName)
+ this.$set(item,'beforeCheck',item.insProductResult.beforeCheck)
+ this.$set(item,'afterCheck',item.insProductResult.afterCheck)
+ }
+ })
+ },
+ deleteList(arr,i,item){
+ if(arr.length>1){
+ arr.splice(i,1)
+ this.save(item)
+ }else{
+ this.$message({
+ type: 'warning',
+ message: '涓嶈兘鍐嶅垹闄や簡'
+ })
+ }
+ },
+ addList(arr,i){
+ arr.splice(i+1,0,{
+ time:'',
+ temperature:'',
+ humidity:''
+ })
+ },
+ async methodFocus(item){
+ this.equipOptions = await this.getEquipOptions(item)
+ },
+ // 鑾峰彇璁惧閫夐」 id:涓烘楠岄」id
+ async getEquipOptions(m) {
+ let arr = []
+ let res = await this.$axios.post(this.$api.deviceScope.selectDeviceByCategory, {
+ inspectionItem: m.inspectionItem,
+ inspectionItemSubclass: m.inspectionItemSubclass
+ })
+ if (res.code === 200 && res.data) {
+ arr = res.data.map(m => {
+ m.value = m.managementNumber
+ m.label = m.deviceName
+ return m
+ })
+ }
+ return arr
+ },
+ /**
+ * 澶勭悊璁惧淇℃伅
+ *
+ * @param {any} m - 鏂扮殑璁惧鍊�
+ * @param {Object} item - 璁惧瀵硅薄
+ */
+ handleEquip(m,item){
+ this.$delete(item, 'equipValue')
+ this.$set(item, 'equipValue', m)
+ this.$delete(item, 'equipName')
+ this.$set(item, 'equipName', this.equipOptions.find(m=>m.value==item.equipValue).label)
+ this.save(item)
+ },
+ /**
+ * 鏇挎崲鏂囨湰涓殑鎸囧畾鍗曚綅
+ *
+ * @param {Object} m - 闇�瑕佷慨鏀圭殑鏂囨湰瀵硅薄
+ * @param {string} unit - 瑕佹浛鎹㈢殑鍗曚綅
+ * @param {any} v - 鏈娇鐢ㄧ殑鍙傛暟锛堜繚鐣欎互鍖归厤鍏朵粬閲嶈浇锛�
+ * @returns {void} 鏃犺繑鍥炲��
+ */
+ handleReplace(m,unit,v,item){
+ if(m[v]&&!`${m[v]}`.includes(unit)){
+ m[v] = m[v]+unit
+ }
+ if(m[v]){
+ this.save(item)
+ }
+ },
+ save(item){
+ this.$axios.post(this.$api.insOrderPlan.saveInsContext3, {
+ insProductId:item.id,
+ insValue:JSON.stringify(item.list),
+ equipValue:item.equipValue,
+ equipName:item.equipName,
+ num:this.num,
+ beforeCheck:item.beforeCheck,
+ afterCheck:item.afterCheck,
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ noQs:true}).then(res => {
+ if (res.code === 201) {
+ this.$message.error('淇濆瓨澶辫触')
+ return
+ }
+ this.$message.success('宸蹭繚瀛�')
+ }).catch(err => {
+ console.log(err)
+ })
+ },
+ },
+}
+</script>
+
+<style scoped>
+ .thermal-table{
+ min-width: calc(100% - 10px);
+ margin: 5px 5px 0;
+ table-layout: fixed;
+ }
+ .thermal-table td {
+ min-width: 70px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 5px;
+ }
+ .thermal-table .el-input{
+ display: flex;
+ align-items: center;
+ }
+</style>
--
Gitblit v1.9.3