<template>
|
<div class="circuit">
|
<table border="1" cellpadding="10" class="thermal-table">
|
<tr>
|
<th :colspan="typeList0.length+4" style="font-size: 18px;">室外分布100-D宽频射灯天线</th>
|
</tr>
|
<tr>
|
<td class="title">样品编号</td>
|
<td>1111</td>
|
<td class="title">样品型号</td>
|
<td>22222</td>
|
<td class="title">试验标准</td>
|
<td :colspan="typeList0.length">电信</td>
|
</tr>
|
<tr>
|
<td class="title">检验项目</td>
|
<td class="title">单位</td>
|
<td class="title">标准要求</td>
|
<td :colspan="typeList0.length+1" class="title">检验结果</td>
|
</tr>
|
<!-- 驻波比 -->
|
<template>
|
<tr>
|
<td :rowspan="roadList0.length+2">电压驻波比</td>
|
<td :rowspan="roadList0.length+2">/</td>
|
<td :rowspan="roadList0.length+2">≤1.5</td>
|
<td class="title">最差值</td>
|
<td v-for="(item,index) in typeList0" :key="index+'ooo'"><span style="display: inline-block;width: 40%;">{{ item.label }}</span><el-button icon="el-icon-minus" circle size="mini" type="danger" style="margin-left: 4px;" @click="deleteList(index,'端口')"></el-button><el-button icon="el-icon-plus" circle size="mini" type="primary" v-if="index==typeList0.length-1" @click="addInfo('端口')"></el-button></td>
|
</tr>
|
<tr v-for="(item,index) in roadList0" :key="index+'iiii'">
|
<td><span style="display: inline-block;width: 70%;">{{ item.label }}</span><el-button icon="el-icon-minus" circle size="mini" type="danger" @click="deleteList(index,'波段')"></el-button></td>
|
<td v-for="(m,i) in typeList0" :key="i+'aaa'">
|
<el-input clearable size="small" placeholder="" v-model="value" :disabled="state>1"></el-input>
|
</td>
|
</tr>
|
<tr>
|
<td><span style="display: inline-block;width: 70%;" class="title">驻波比最差值</span><el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addInfo('波段')"></el-button></td>
|
<td v-for="(m,i) in typeList0" :key="i+'bbb'">
|
<span>0</span>
|
</td>
|
</tr>
|
</template>
|
<!-- 隔离 -->
|
<template>
|
<tr>
|
<td :rowspan="roadList0.length+2">隔离</td>
|
<td :rowspan="roadList0.length+2">dB</td>
|
<td :rowspan="roadList0.length+2">≤-25</td>
|
</tr>
|
<tr v-for="(item,index) in roadList0" :key="index+'eee'">
|
<td>{{ item.label }}</td>
|
<td :colspan="index<isolationList.length-1?2:(typeList0.length/2>0?3:2)" v-for="(item,index) in isolationList" :key="index+'sss'"><el-input clearable size="small" placeholder="" v-model="item.value" :disabled="state>1"></el-input></td>
|
</tr>
|
<tr>
|
<td class="title">隔离最差值</td>
|
<td :colspan="index<isolationList.length-1?2:(typeList0.length/2>0?3:2)" v-for="(item,index) in isolationList" :key="index+'ggg'">{{ item.compValue }}</td>
|
</tr>
|
</template>
|
<!-- 互调 -->
|
<template>
|
<tr>
|
<td :rowspan="bandList0.length+2">互调37dBm</td>
|
<td :rowspan="bandList0.length+2">dBm</td>
|
<td :rowspan="bandList0.length+2">≤-107</td>
|
</tr>
|
<tr v-for="(item,index) in bandList0" :key="index+'yyy'">
|
<td><span style="display: inline-block;width: 70%;">{{ item.label }}</span><el-button icon="el-icon-minus" circle size="mini" type="danger" @click="deleteList(index,'频段')"></el-button></td>
|
<td v-for="(m,i) in typeList0" :key="i+'ccc'"><el-input clearable size="small" placeholder="" v-model="value" :disabled="state>1"></el-input></td>
|
</tr>
|
<tr>
|
<td class="title"><span style="display: inline-block;width: 70%;">互调最差值</span><el-button icon="el-icon-plus" circle size="mini" type="primary" @click="addInfo('频段')"></el-button></td>
|
<td v-for="(m,i) in typeList0" :key="i+'hhh'">0</td>
|
</tr>
|
</template>
|
</table>
|
<el-dialog
|
:title="'选择添加'+currentType"
|
:visible.sync="dialogVisible"
|
width="20%">
|
<el-checkbox-group v-model="checkList" v-if="currentType=='波段'">
|
<el-checkbox :label="item.label" v-for="(item,index) in roadList1" :key="index+'lll'">{{ item.label }}</el-checkbox>
|
</el-checkbox-group>
|
<el-checkbox-group v-model="checkList" v-if="currentType=='频段'">
|
<el-checkbox :label="item.label" v-for="(item,index) in bandList1" :key="index+'tttt'">{{ item.label }}</el-checkbox>
|
</el-checkbox-group>
|
<el-checkbox-group v-model="checkList" v-if="currentType=='端口'">
|
<el-checkbox :label="item.label" v-for="(item,index) in typeList1" :key="index+'uuuu'">{{ item.label }}</el-checkbox>
|
</el-checkbox-group>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
<el-button type="primary" @click="handleSure">确 定</el-button>
|
</span>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
roadList:[],
|
typeList:[],
|
bandList:[],
|
typeList0:[],
|
roadList0:[],
|
bandList0:[],
|
typeList1:[],
|
roadList1:[],
|
bandList1:[],
|
isolationList:[
|
{
|
compValue:'',
|
value:''
|
}
|
],
|
state: 1,
|
value:'',
|
dialogVisible:false,
|
currentType:'',//波段,频段,端口
|
checkList:[],
|
}
|
},
|
watch:{
|
roadList0(val){
|
this.roadList1 = this.roadList.filter(item=>{
|
return !val.find(m=>m.id==item.id)
|
})
|
},
|
typeList0(val){
|
this.typeList1 = this.typeList.filter(item=>{
|
return !val.find(m=>m.id==item.id)
|
})
|
this.isolationList = []
|
if(val.length<2){
|
this.isolationList = [{compValue:'',value:''}]
|
}else{
|
let num = Math.floor(val.length/2)
|
for(let i=0;i<num;i++){
|
this.isolationList.push({compValue:'',value:''})
|
}
|
}
|
console.log(this.isolationList)
|
},
|
bandList0(val){
|
this.bandList1 = this.bandList.filter(item=>{
|
return !val.find(m=>m.id==item.id)
|
})
|
},
|
dialogVisible(val){
|
if(!val){
|
this.checkList = []
|
}
|
}
|
},
|
mounted() {
|
this.getTypeDicts()
|
},
|
methods: {
|
getTypeDicts() {
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "电路试验波段"
|
}).then(res => {
|
this.roadList = res.data
|
this.roadList0 = this.HaveJson(this.roadList)
|
})
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "电路试验端口"
|
}).then(res => {
|
this.typeList = res.data
|
this.typeList0 = this.HaveJson(this.typeList)
|
})
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "电路试验频段"
|
}).then(res => {
|
this.bandList = res.data
|
this.bandList0 = this.HaveJson(this.bandList)
|
})
|
},
|
deleteList(index,type) {
|
switch(type){
|
case '波段':
|
if(this.roadList0.length>1){
|
this.roadList0.splice(index, 1)
|
}else{
|
this.$message.error('至少保留一条数据')
|
}
|
break;
|
case '频段':
|
if(this.bandList0.length>1){
|
this.bandList0.splice(index, 1)
|
}else{
|
this.$message.error('至少保留一条数据')
|
}
|
break;
|
case '端口':
|
if(this.typeList0.length>1){
|
this.typeList0.splice(index, 1)
|
}else{
|
this.$message.error('至少保留一条数据')
|
}
|
break;
|
}
|
},
|
handleSure(){
|
switch(this.currentType){
|
case '波段':
|
this.roadList.forEach((item,index)=>{
|
let obj = this.checkList.find(m=>m==item.label)
|
if(obj){
|
this.roadList0.push(item)
|
}
|
})
|
this.roadList0 = this.handleSortById(this.roadList0)
|
break;
|
case '频段':
|
this.bandList.forEach((item,index)=>{
|
let obj = this.checkList.find(m=>m==item.label)
|
if(obj){
|
this.bandList0.push(item)
|
}
|
})
|
this.bandList0 = this.handleSortById(this.bandList0)
|
break;
|
case '端口':
|
this.typeList.forEach((item,index)=>{
|
let obj = this.checkList.find(m=>m==item.label)
|
if(obj){
|
this.typeList0.push(item)
|
}
|
})
|
this.typeList0 = this.handleSortById(this.typeList0)
|
break;
|
}
|
this.dialogVisible = false
|
},
|
// 根据Id排序
|
handleSortById(arr){
|
return arr.sort((a,b)=>{
|
if(a.id>b.id){
|
return 1;
|
}else if(a.id<b.id){
|
return -1;
|
}else {
|
return 0;
|
}
|
})
|
},
|
addInfo(type){
|
this.currentType = type
|
this.dialogVisible = true
|
},
|
}
|
}
|
</script>
|
|
<style scoped>
|
.thermal-table{
|
min-width: calc(100% - 10px);
|
margin: 5px 5px 20px;
|
table-layout: fixed;
|
}
|
.thermal-table td,.thermal-table th {
|
min-width: 150px;
|
text-align: center;
|
font-size: 14px;
|
word-wrap: break-word;
|
white-space: normal;
|
padding: 5px;
|
}
|
.thermal-table .el-input{
|
display: flex;
|
align-items: center;
|
}
|
.title{
|
color: #000 !important;
|
font-weight: 700 !important;
|
}
|
</style>
|