From 44331af13bba6e80cc3489d1263e08b4b8ea025b Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 15 十一月 2024 10:22:26 +0800
Subject: [PATCH] 修改下单
---
src/components/do/b1-inspect-order-plan/circuit-parameters2.vue | 278 +++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 216 insertions(+), 62 deletions(-)
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 62ef7d0..ecd3ef7 100644
--- a/src/components/do/b1-inspect-order-plan/circuit-parameters2.vue
+++ b/src/components/do/b1-inspect-order-plan/circuit-parameters2.vue
@@ -1,21 +1,21 @@
<template>
<div class="circuit-parameters">
<el-divider></el-divider>
- <el-row :gutter="5" style="width: calc(100% - 1px);margin-bottom: 10px;">
+ <el-row :gutter="8" style="width: calc(100% - 1px);margin-bottom: 10px;">
<el-col :span="17">
<el-row>
<el-col :span="23" style="display: flex;flex-wrap: wrap;">
- <table border="1" cellpadding="10" style="margin: 0 10px 10px 0;" v-for="(item,index) in insProductNew" :key="index + 'ppp'" v-show="isMore?true:(index<3?true:false)">
+ <table border="1" cellpadding="10" style="margin: 4px 10px 10px 0;width: 32%;" v-for="(item,index) in insProductNew" :key="index + 'ppp'" v-show="isMore?true:(index<3?true:false)">
<tr>
<td style="text-align: center;background: #F0F1F5;">
<el-tooltip effect="dark" :content="item.inspectionItemSubclass" placement="top-start"><span style="display: inline-block;width: 95px;" class="single-line-ellipsis">{{ item.inspectionItemSubclass }}</span>
</el-tooltip>
</td>
<td>
- <el-input size="small" placeholder="璁惧鍚嶇О" v-model="item.equipName" style="width: 95px;" readonly></el-input>
+ <el-input size="small" placeholder="璁惧鍚嶇О" v-model="item.equipName" readonly></el-input>
</td>
<td>
- <el-select v-model="item.equipValue" placeholder="璁惧缂栫爜" size="small" style="width: 95px;" :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,item)">
+ <el-select v-model="item.equipValue" placeholder="璁惧缂栫爜" size="small" :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,item)">
<el-option
v-for="m in item.equipOptions"
:key="m.value"
@@ -33,12 +33,12 @@
</el-col>
</el-row>
</el-col>
- <el-col :span="7">
+ <el-col :span="7" v-if="!isLook">
<div style="display: flex;align-items: center;justify-content: flex-end;" class="btns">
- <el-button type="primary" size="small" @click="addList(allBandList)" :disabled="state>1">娣诲姞棰戞</el-button>
- <el-button size="small" @click="deleteList(allBandList.length-1,allBandList,'鍒犻櫎棰戞')" :disabled="state>1">鍒犻櫎棰戞</el-button>
- <el-button type="primary" size="small" @click="addList(angleList)" v-if="!(state>1)&&intermodulationNum>0">娣诲姞瑙掑害</el-button>
- <el-button size="small" @click="deleteList(angleList.length-1,angleList)" v-if="!(state>1)&&intermodulationNum>0">鍒犻櫎瑙掑害</el-button>
+ <el-button type="primary" size="small" @click="addList(allBandList,'棰戞')" :disabled="state>1" style="margin: 4px;">娣诲姞棰戞</el-button>
+ <el-button size="small" @click="deleteList(allBandList.length-1,allBandList,'鍒犻櫎棰戞')" :disabled="state>1" style="margin: 4px;">鍒犻櫎棰戞</el-button>
+ <el-button type="primary" size="small" @click="addList(angleList)" v-if="!(state>1)&&intermodulationNum>0" style="margin: 4px;">娣诲姞瑙掑害</el-button>
+ <el-button size="small" @click="deleteList(angleList.length-1,angleList)" v-if="!(state>1)&&intermodulationNum>0" style="margin: 4px;">鍒犻櫎瑙掑害</el-button>
</div>
</el-col>
</el-row>
@@ -72,7 +72,7 @@
</el-select>
<el-button type="primary" size="small" @click="addList(h.projectList,'浜掕皟')" style="margin-left: 16px;" v-if="intermodulationNum>0&&!(state>1)">娣诲姞浜掕皟</el-button>
<el-button size="small" @click="deleteList(0,h.projectList,'浜掕皟')" v-if="intermodulationNum>0&&!(state>1)">鍒犻櫎浜掕皟</el-button>
- <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]" style="margin-left: 16px;">淇� 瀛�</el-button>
+ <el-button type="primary" size="small" @click="save(h,y)" :disabled="state>1" :loading="loading[y]" style="margin-left: 16px;" v-show="!isLook">淇� 瀛�</el-button>
</div>
<el-divider></el-divider>
<div class="circuit-parameters-item-content">
@@ -86,7 +86,7 @@
<div style="text-align: center;">{{ n.unit }}</div>
</el-col>
<el-col :span="2">
- <div style="text-align: center;">{{ n.tell }}</div>
+ <div style="text-align: center;" v-html="n.tell"></div>
</el-col>
<el-col :span="16">
<div class="content" style="text-align: center;width: 100%;overflow-x: auto;">
@@ -97,11 +97,6 @@
<div style="display: flex;align-items: center;">
<el-input size="small" placeholder="绔彛" v-model="item.value" :disabled="state>1"></el-input>
</div>
- </td>
- <td :rowspan="n.angleList.length+1">
- <el-button icon="el-icon-minus" circle size="mini" type="danger"
- @click="deleteList(n.portList.length-1,n.portList)" :disabled="state>1"></el-button>
- <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(n.portList)" :disabled="state>1"></el-button>
</td>
</tr>
<tr>
@@ -115,8 +110,11 @@
</table>
</div>
</el-col>
- <el-col :span="2">
- <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'涓嶅悎鏍�':(n.result===1?'鍚堟牸':'寰呭畾') }}
+ <el-col :span="1">
+ <el-input-number v-model="n.portNum" :min="1" :max="100" label="鏁伴噺" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number>
+ </el-col>
+ <el-col :span="1">
+ <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'涓嶅悎鏍�':(n.result===1?'鍚堟牸':(n.result===3?'涓嶅垽瀹�':'寰呭畾')) }}
</div>
</el-col>
</el-row>
@@ -129,30 +127,33 @@
<div style="text-align: center;">{{ n.unit }}</div>
</el-col>
<el-col :span="2">
- <div style="text-align: center;">{{ n.tell }}</div>
+ <div style="text-align: center;" v-html="n.tell"></div>
</el-col>
<el-col :span="16">
<div class="content" style="text-align: center;width: 100%;overflow-x: auto;">
<table border="1" cellpadding="10" class="thermal-table">
<tr>
- <td>棰戠偣</td>
+ <td>棰戞</td>
<td :colspan="n.portList.length+1">
<div style="display: flex;align-items: center;">
- <el-input size="small" placeholder="棰戠偣" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input>
+ <!-- <el-input size="small" placeholder="棰戠偣" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input> -->
+ <el-select v-model="n.often" placeholder="璇烽�夋嫨" size="small" style="width: 200px;" :disabled="state>1">
+ <el-option
+ v-for="item in bandList0"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
</div>
</td>
</tr>
<tr>
- <td>瑙掑害</td>
+ <td>绔彛</td>
<td v-for="(item,index) in n.portList" :key="index+'fff'">
<div style="display: flex;align-items: center;">
<el-input size="small" placeholder="绔彛" v-model="item.value" :disabled="state>1"></el-input>
</div>
- </td>
- <td :rowspan="n.angleList.length+1">
- <el-button icon="el-icon-minus" circle size="mini" type="danger"
- @click="deleteList(n.portList.length-1,n.portList)" :disabled="state>1"></el-button>
- <el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addList(n.portList)" :disabled="state>1"></el-button>
</td>
</tr>
<tr v-for="(item,index) in n.angleList" :key="index + 'eee'">
@@ -166,8 +167,11 @@
</table>
</div>
</el-col>
- <el-col :span="2">
- <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'涓嶅悎鏍�':(n.result===1?'鍚堟牸':'寰呭畾') }}
+ <el-col :span="1">
+ <el-input-number v-model="n.portNum" :min="1" :max="100" label="鏁伴噺" size="small" @change="m=>changePort(m,n.portList)" :disabled="state>1"></el-input-number>
+ </el-col>
+ <el-col :span="1">
+ <div style="text-align: center;" :class="{red:n.result===0,green:n.result===1}">{{ n.result===0?'涓嶅悎鏍�':(n.result===1?'鍚堟牸':(n.result===3?'涓嶅垽瀹�':'寰呭畾')) }}
</div>
</el-col>
</el-row>
@@ -180,11 +184,12 @@
<script>
export default {
- props:['insProduct','orderId','sampleId','state'],
+ props:['insProduct','orderId','sampleId','state','num','isLook','currentNum'],
data() {
return {
value: "",
bandList:[],
+ bandList0:[],
portList:[
{
value:'1',
@@ -238,13 +243,15 @@
isMore:false,
insProductNew:[],
intermodulationNum:0,//浜掕皟妫�楠岄」鐩殑鏁伴噺
- loading:{}
+ loading:{},
+ upTemplateState:false,
};
},
watch: {
// 瑙掑害鏁伴噺鍙樺寲鏃讹紝鏇存柊鎵�鏈夐娈典笅闈㈢殑鎵�鏈夐」鐩笅鐨勬墍鏈夌鍙e拰瑙掑害
angleList(val) {
- this.allBandList.forEach(item => {
+ if(!this.upTemplateState){
+ this.allBandList.forEach(item => {
item.projectList.forEach(m => {
if(m.angleList.length!==val.length){
m.angleList = JSON.parse(JSON.stringify(this.angleList))
@@ -269,6 +276,16 @@
}
})
})
+ }
+ },
+ currentNum(val) {
+ this.initData()
+ },
+ insProduct:{
+ deep:true,
+ handler:function(val){
+ this.initData()
+ }
}
},
mounted() {
@@ -283,14 +300,20 @@
}).then(res => {
this.bandList = res.data
})
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "浜掕皟-棰戞"
+ }).then(res => {
+ this.bandList0 = res.data
+ })
},
// 鍒濆鍖栨暟鎹�
initData(){
+ this.allBandList = []
// 澶勭悊椤圭洰
- this.insProductNew = JSON.parse(JSON.stringify(this.insProduct))
+ this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m=>m.inspectionItem.includes('鐢佃矾璇曢獙'))
this.insProductNew.forEach(async item => {
// 鑾峰彇璁惧鍒楄〃
- item.equipOptions = await this.getEquipOptions(item)
+ item.equipOptions = []
})
if(this.insProductNew[0].insProductResult2&&this.insProductNew[0].insProductResult2.length>0){
// 宸茬粡瀛樺湪鍊兼椂锛岃祴鍊�
@@ -325,17 +348,28 @@
angleList.push({value:m})
})
this.angleList = angleList
+ this.upTemplateState = false
+ }
+ let tell = ''
+ if(item.tell.includes(',')){
+ item.tell.split(',').forEach((m,i)=>{
+ tell = tell + m+ (i==item.tell.split(',').length-1?'':'<br/>')
+ })
+ }else{
+ tell = item.tell
}
let obj = {
inspectionItemSubclass: item.inspectionItemSubclass,
unit:item.unit,
- tell:item.tell,
+ tell:tell,
result:n.result,
id:item.id,
often:n.often,
equipName:n.equipName,
equipValue:n.equipValue,
- frequency:n.frequency
+ frequency:n.frequency,
+ sonLaboratory:item.sonLaboratory,
+ portNum:JSON.parse(n.value).length>0?JSON.parse(n.value)[0].length:4
}
this.$set(obj,'portList', n.port?portList:[])
this.$set(obj,'angleList', n.angle?angleList:[])
@@ -365,11 +399,31 @@
// 璧嬪�艰澶�
item.equipName = ''
item.equipValue = ''
+ this.portList = [
+ {
+ value:'1',
+ },
+ {
+ value:'2',
+ },
+ {
+ value:'3',
+ },
+ {
+ value:'4',
+ },
+ ]
+ this.angleList = [
+ {
+ value:''
+ }
+ ]
// 璧嬪�肩鍙e拰瑙掑害
item.portList = JSON.parse(JSON.stringify(this.portList))
item.angleList = JSON.parse(JSON.stringify(this.angleList))
// 璧嬪�肩粨璁�
item.result = ''
+ item.portNum = 4
// 璧嬪�兼渶宸��
item.value = []
if(item.inspectionItemSubclass.includes('浜掕皟')){
@@ -397,6 +451,7 @@
},
// 鍒犻櫎鏁扮粍
deleteList(index,list,type){
+ this.upTemplateState = false
if(list.length>1){
if(type=='浜掕皟'){
let index = null;
@@ -413,30 +468,7 @@
message: '涓嶈兘鍒犻櫎鏈�鍚庝竴涓簰璋�'
});
}else{
- if(list[index].frequency){
- this.$confirm(`鏄惁纭畾鍒犻櫎 ${list[index].often} 棰戠偣鏁版嵁?`, "鎻愮ず", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning"
- }).then(() => {
- this.$axios.post(this.$api.insOrderPlan.deleteInsContext2, {
- frequency:list[index].frequency,
- productId:list[index].id,
- often:list[index].often
- }).then(res => {
- if (res.code === 201) {
- this.$message.error('鍒犻櫎澶辫触')
- return
- }
- this.$message.success('宸插垹闄�')
- list.splice(index, 1)
- }).catch(err => {
- console.log(err)
- })
- }).catch(() => {})
- }else{
- list.splice(index, 1)
- }
+ list.splice(index, 1)
}
}else if(type=='鍒犻櫎棰戞'){
this.$confirm(`鏄惁纭畾鍒犻櫎 ${list[index].band} 棰戞鏁版嵁?`, "鎻愮ず", {
@@ -446,7 +478,8 @@
}).then(() => {
this.$axios.post(this.$api.insOrderPlan.deleteInsContext, {
frequency:list[index].band,
- productIds:list[index].projectList.map(m=>m.id)
+ productIds:list[index].projectList.map(m=>m.id),
+ num:this.num
}, {
headers: {
'Content-Type': 'application/json'
@@ -474,6 +507,7 @@
},
// 娣诲姞鏁扮粍
addList(list,type){
+ this.upTemplateState = false
if(type=='浜掕皟'){
let obj = null;
let index = null;
@@ -483,10 +517,59 @@
index = i;
}
})
+ obj.often = ''
+ obj.result = ''
+ let num0 = obj.value.length
+ let num1 = obj.value[0].length
+ delete obj.value
+ obj.value = []
+ for(let i = 0;i<num0;i++){
+ obj.value.push([])
+ for(let j = 0;j<num1;j++){
+ obj.value[i].push('')
+ }
+ }
list.splice(index+1, 0, obj)
+ }else if(type=='棰戞'){
+ let obj = JSON.parse(JSON.stringify(list[0]));
+ obj.band = ''
+ obj.projectList.forEach(item=>{
+ item.often = ''
+ item.result = ''
+ item.frequency = ''
+ let num0 = item.value.length
+ let num1 = item.value[0].length
+ delete item.value
+ item.value = []
+ for(let i = 0;i<num0;i++){
+ item.value.push([])
+ for(let j = 0;j<num1;j++){
+ item.value[i].push('')
+ }
+ }
+ })
+ list.push(obj)
+ }else if(type=='绔彛'){
+ let obj = JSON.parse(JSON.stringify(list[0]));
+ obj.value = null;
+ list.push(obj)
}else{
let obj = JSON.parse(JSON.stringify(list[0]));
list.push(obj)
+ }
+ },
+ // 鏀瑰彉绔彛
+ changePort(num,list){
+ if(num>list.length){
+ for(let i = list.length;i<num;i++){
+ let obj = JSON.parse(JSON.stringify(list[0]));
+ obj.value = null;
+ list.push(obj)
+ }
+ }else if(num<list.length){
+ for(let i = list.length;i>num;i--){
+ list.pop()
+ }
}
},
// 鑾峰彇璁惧閫夐」 id:涓烘楠岄」id
@@ -530,7 +613,7 @@
if(!n.often){
return
}
- if(!n.often.includes('MHz')){
+ if(!n.often.includes('MHz')&&!n.often.includes('MHZ')){
n.often = n.often + 'MHz'
}
},
@@ -546,6 +629,11 @@
},
save(h,y) {
let arr = h.projectList.map(item=>{
+ if(item.portList&&item.portList.length>0){
+ item.value.forEach(m=>{
+ m = m.splice(item.portList.length)
+ })
+ }
let obj = {
insProductId:item.id,
equipValue:this.insProductNew.find(m=>m.id==item.id).equipValue,
@@ -584,6 +672,39 @@
}).catch(err => {
console.log(err)
})
+ },
+ // 鏇存柊妯℃澘
+ upTemplate(obj){
+ this.upTemplateState = true;
+ // return
+ obj.allBandList.forEach((item,index)=>{
+ if(!this.allBandList[index]){
+ this.$set(this.allBandList, index, {projectList:this.HaveJson(this.allBandList[0].projectList)})
+ // this.allBandList[index] = {
+ // projectList:this.HaveJson(this.allBandList[0].projectList),
+ // band:item.band
+ // }
+ }
+ let arr = []
+ item.projectList.forEach((m,i)=>{
+ if(this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass)){
+ let obj0 = {
+ angleList:m.angleList,
+ portList:m.portList,
+ portNum:m.portNum,
+ // value:m.value,
+ valueType:m.valueType
+ }
+ this.$set(obj0,'value',m.value)
+ arr.push({...this.allBandList[index].projectList.find(n=>n.inspectionItemSubclass==m.inspectionItemSubclass),...obj0})
+ }
+ })
+ // this.allBandList[index].projectList = arr
+ this.$delete(this.allBandList[index],'projectList')
+ this.$set(this.allBandList[index],'projectList',arr)
+ })
+ this.angleList = obj.angleList
+ this.intermodulationNum = obj.intermodulationNum
}
}
}
@@ -627,4 +748,37 @@
.green{
color: green;
}
+>>>.el-input-number {
+ display: inline-flex;
+ flex-direction: column !important;
+ line-height: 26px;
+}
+
+>>>.el-input-number__increase, >>>.el-input-number__decrease {
+ width: 26px;
+ height: 26px;
+}
+>>>.el-input-number__increase{
+ top: 36px;
+ left: 10px;
+ border: 0px;
+ border-radius: 50%;
+ background: #3A7BFA;
+ color: #fff;
+}
+>>>.el-input-number__decrease{
+ top: -30px;
+ border: 0px;
+ border-radius: 50%;
+ left: 10px;
+ background: #F56C6C;
+ color: #fff;
+}
+>>>.el-input-number .el-input{
+ width: 50px;
+}
+>>>.el-input-number .el-input__inner{
+ width: 50px;
+ padding: 0;
+}
</style>
--
Gitblit v1.9.3