<template>
|
<div class="circuit-parameters">
|
<el-divider></el-divider>
|
<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: 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" readonly></el-input>
|
</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="m in item.equipOptions" :key="m.value" :label="m.value" :value="m.value">
|
</el-option>
|
</el-select>
|
</td>
|
</tr>
|
</table>
|
</el-col>
|
<el-col :span="1" v-show="insProductNew.length > 3">
|
<el-button icon="el-icon-arrow-down" type="text" @click="isMore = true" v-if="!isMore">更多</el-button>
|
<el-button icon="el-icon-arrow-up" type="text" @click="isMore = false" v-if="isMore">收起</el-button>
|
</el-col>
|
</el-row>
|
</el-col>
|
<el-col :span="7">
|
<div style="display: flex;align-items: center;justify-content: flex-end;flex-wrap: wrap;" class="btns"
|
v-if="!isLook">
|
<el-button type="primary" size="small" @click="addList(allBandList, '频段')" :disabled="state > 1"
|
style="margin: 4px;">添加频段</el-button>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row :gutter="5"
|
style="font-size: 18px;font-weight: 700;background: #F0F1F5;padding: 16px 0;box-sizing: border-box;width: 100%;">
|
<el-col :span="2">
|
<div style="text-align: center;">检验项目</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;">单位</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;">标准要求</div>
|
</el-col>
|
<el-col :span="16">
|
<div style="text-align: center;">检验结果</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;">结论</div>
|
</el-col>
|
</el-row>
|
<div class="circuit-parameters-item" v-for="(h, y) in allBandList" :key="y + 'ooo'">
|
<div class="circuit-parameters-item-title">
|
<span>频段:</span>
|
<el-select v-model="h.band" placeholder="请选择" size="small" style="width: 200px;" :disabled="state > 1">
|
<el-option v-for="item in bandList" :key="item.value" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
<el-button size="small" @click="deleteList(y, allBandList, '删除频段')" :disabled="state > 1"
|
style="margin-left: 16px;" type="danger">删除频段</el-button>
|
<el-button type="primary" size="small" @click="save(h, y)" :disabled="state > 1" :loading="loading[y]"
|
v-show="!isLook">保 存</el-button>
|
</div>
|
<el-divider></el-divider>
|
<div class="circuit-parameters-item-content">
|
<template v-for="(n, j) in h.projectList">
|
<!-- 电压驻波比 -->
|
<el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;"
|
v-if="n.inspectionItemSubclass.includes('驻波比') || n.inspectionItemSubclass.includes('隔离度') || n.inspectionItemSubclass.includes('带外抑制') || n.inspectionItemSubclass.includes('带内波动') || n.inspectionItemSubclass.includes('插入损耗')">
|
<el-col :span="2">
|
<div style="text-align: center;">{{ n.inspectionItemSubclass }}</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;">{{ n.unit }}</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;" v-html="n.ask"></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 v-for="(item, index) in n.portList" :key="index + 'aaa'">
|
<div style="display: flex;align-items: center;">
|
<el-input size="small" placeholder="端口" v-model="item.value" :disabled="state > 1"></el-input>
|
</div>
|
</td>
|
</tr>
|
<tr>
|
<td>
|
最差值
|
</td>
|
<td v-for="(m, i) in n.portList" :key="i + 'ggg'">
|
<el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value[0]"
|
:disabled="state > 1"></el-input>
|
</td>
|
</tr>
|
</table>
|
</div>
|
</el-col>
|
<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 ? '不判定' : (n.result === 3
|
? '不判定' : '待定'))) }}
|
</div>
|
</el-col>
|
</el-row>
|
<!-- 互调 -->
|
<el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;"
|
v-if="n.inspectionItemSubclass.includes('互调')">
|
<el-col :span="2">
|
<div style="text-align: center;">{{ n.inspectionItemSubclass }}</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;">{{ n.unit }}</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;" v-html="n.ask"></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 :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-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 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>
|
</tr>
|
<tr>
|
<td>
|
最差值
|
</td>
|
<td v-for="(m, i) in n.portList" :key="i + 'ggg'">
|
<el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value[0]"
|
:disabled="state > 1"></el-input>
|
</td>
|
</tr>
|
</table>
|
</div>
|
</el-col>
|
<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 ? '不判定' : (n.result === 3
|
? '不判定' : '待定'))) }}
|
</div>
|
</el-col>
|
</el-row>
|
<!-- 幅度偏差/最大相位偏差 -->
|
<el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;"
|
v-if="n.inspectionItemSubclass.includes('偏差')">
|
<el-col :span="2">
|
<div style="text-align: center;">{{ n.inspectionItemSubclass }}</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;">{{ n.unit }}</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;" v-html="n.ask"></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 v-for="(item, index) in n.portList" :key="index + 'aaa'">
|
<div style="display: flex;align-items: center;">
|
<el-input size="small" placeholder="频段" v-model="item.value" :disabled="state > 1"></el-input>
|
</div>
|
</td>
|
</tr>
|
<tr>
|
<td>
|
最差值
|
</td>
|
<td v-for="(m, i) in n.portList" :key="i + 'ggg'">
|
<el-input size="small" placeholder="最差值" v-model="n.value[0][i]" v-if="n.value[0]"
|
:disabled="state > 1"></el-input>
|
</td>
|
</tr>
|
</table>
|
</div>
|
</el-col>
|
<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>
|
<!-- 最大耦合度/最小耦合度 -->
|
<el-row :gutter="5" style="margin: 12px 0 0;display: flex;align-items: center;"
|
v-if="n.inspectionItemSubclass.includes('耦合度')">
|
<el-col :span="2">
|
<div style="text-align: center;">{{ n.inspectionItemSubclass }}</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;">{{ n.unit }}</div>
|
</el-col>
|
<el-col :span="2">
|
<div style="text-align: center;" v-html="n.ask"></div>
|
</el-col>
|
<el-col :span="17">
|
<div class="content" style="text-align: center;width: 100%;overflow-x: auto;">
|
<table border="1" cellpadding="10" class="thermal-table">
|
<!-- <tr>
|
<td>角度</td>
|
<td>
|
<div style="display: flex;align-items: center;">
|
<el-input size="small" placeholder="频点" v-model="n.often" :disabled="state>1" @blur="handlePort(n)"></el-input>
|
</div>
|
</td>
|
</tr> -->
|
<tr>
|
<td>
|
最差值
|
</td>
|
<td>
|
<el-input size="small" placeholder="最差值" v-model="n.value[0][0]" :disabled="state > 1"></el-input>
|
</td>
|
</tr>
|
</table>
|
</div>
|
</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>
|
<el-divider v-if="j != h.projectList.length - 1"></el-divider>
|
</template>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
export default {
|
props: ['insProduct', 'orderId', 'sampleId', 'state', 'num', 'isLook', 'currentNum'],
|
data() {
|
return {
|
value: "",
|
bandList: [],
|
bandList0: [],
|
portList: [
|
{
|
value: '1',
|
},
|
],
|
projectList: [
|
{
|
name: '电压驻波比',
|
unit: '/',
|
ask: '≤1.45',
|
result: '',
|
conclusion: '合格',
|
portList: [],
|
value: [],//双层数组
|
},
|
{
|
name: '同极化隔离度',
|
unit: 'dB',
|
ask: '≤1.45',
|
result: '',
|
conclusion: '合格',
|
portList: [],
|
value: [],//双层数组
|
},
|
{
|
name: '互调',
|
band: '2100MHz',
|
unit: 'dB',
|
ask: '≤1.45',
|
result: '',
|
conclusion: '合格',
|
portList: [],
|
value: [],//双层数组
|
},
|
{
|
name: '偏差',
|
unit: 'dB',
|
ask: '≤1.45',
|
result: '',
|
conclusion: '合格',
|
portList: [],
|
value: [],//双层数组
|
},
|
{
|
name: '最大耦合度',
|
unit: 'dB',
|
band: '2100MHz',
|
ask: '≤1.45',
|
result: '',
|
conclusion: '合格',
|
portList: [],
|
value: [],//双层数组
|
resValue: ''
|
},
|
],
|
|
allBandList: [],//频段
|
insProductNew: [],
|
isMore: false,
|
loading: {},
|
intermodulationNum: 0,//互调检验项目的数量
|
upTemplateState: false,
|
};
|
},
|
watch: {
|
currentNum(val) {
|
this.initData()
|
},
|
insProduct: {
|
deep: true,
|
handler: function (val) {
|
// console.log('更新页面啦')
|
this.initData()
|
}
|
}
|
},
|
mounted() {
|
this.getTypeDicts()
|
this.initData()
|
},
|
methods: {
|
// 字典获取数据
|
getTypeDicts() {
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "电路试验波段"
|
}).then(res => {
|
this.bandList = res.data
|
})
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "互调-频段"
|
}).then(res => {
|
this.bandList0 = res.data
|
})
|
},
|
// 初始化数据
|
initData() {
|
this.allBandList = []
|
this.intermodulationNum = 0
|
// 处理项目
|
this.insProductNew = JSON.parse(JSON.stringify(this.insProduct)).filter(m => m.inspectionItem.includes('电路试验'))
|
this.insProductNew.forEach(async item => {
|
if (item.inspectionItemSubclass.includes('互调')) {
|
this.intermodulationNum++
|
}
|
// 获取设备列表
|
item.equipOptions = []
|
})
|
if (this.insProductNew[0].insProductResult2 && this.insProductNew[0].insProductResult2.length > 0) {
|
// 已经存在值时,赋值
|
let bandList = this.insProductNew[0].insProductResult2.map(m => m.frequency)
|
bandList = Array.from(new Set(bandList))
|
// 上传附件后,设置检验项数据为空的内容
|
let sample = this.insProductNew[0];//获取驻波比的数据,如果驻波比值存在而其他检验项值不存在,则根据驻波比设置默认数据
|
if (sample.insProductResult2 && sample.insProductResult2.length > 0) {
|
this.insProductNew.forEach(item => {
|
if (!item.inspectionItemSubclass.includes('驻波比') && (!item.insProductResult2 || item.insProductResult2.length == 0 || item.insProductResult2.length < bandList.length)) {
|
if (!(item.insProductResult2.length > 0 && item.insProductResult2.length < bandList.length)) {
|
item.insProductResult2 = []
|
}
|
sample.insProductResult2.forEach(m => {
|
let obj = this.HaveJson(m)
|
// 如果数据有,但是不够所有频段的数量,则补全数据
|
if (item.insProductResult2.length > 0 && item.insProductResult2.length < bandList.length) {
|
let obj0 = item.insProductResult2.find(n => m.frequency == n.frequency)
|
if (!obj0) {
|
let port = '1'
|
let value = JSON.parse(m.value)
|
let value0 = []
|
value.forEach(n => {
|
if (!item.inspectionItemSubclass.includes('耦合度')) {
|
value0.push([''])
|
} else {
|
value0.push([''])
|
}
|
})
|
obj.port = port
|
obj.value = JSON.stringify(value0)
|
item.insProductResult2.push(obj)
|
}
|
} else {
|
// 如果一条数据都没有,则补全数据
|
let port = '1'
|
let value = JSON.parse(m.value)
|
let value0 = []
|
value.forEach(n => {
|
if (!item.inspectionItemSubclass.includes('耦合度')) {
|
value0.push([''])
|
} else {
|
value0.push([''])
|
}
|
})
|
obj.port = port
|
obj.value = JSON.stringify(value0)
|
item.insProductResult2.push(obj)
|
}
|
})
|
}
|
})
|
}
|
// 继续回显数据
|
this.allBandList = []
|
for (let i = 0; i < bandList.length; i++) {
|
let arr = []
|
this.insProductNew.forEach(item => {
|
let equipNameList = []
|
let equipValueList = []
|
item.insProductResult2.forEach(n => {
|
if (n.frequency === bandList[i]) {
|
// 赋值页面设备名称和值
|
if (n.equipValue) {
|
equipNameList.push(n.equipName)
|
equipValueList.push(n.equipValue)
|
}
|
// 以下为赋值列表信息
|
let portList = []
|
if (n.port && n.port.split(',').length > 0) {
|
n.port.split(',').forEach(m => {
|
portList.push({ value: m })
|
})
|
}
|
let ask = ''
|
if (item.ask.includes(',')) {
|
item.ask.split(',').forEach((m, i) => {
|
ask = ask + m + (i == item.ask.split(',').length - 1 ? '' : '<br/>')
|
})
|
} else {
|
ask = item.ask
|
}
|
console.log(ask)
|
let obj = {
|
inspectionItemSubclass: item.inspectionItemSubclass,
|
unit: item.unit,
|
ask: ask,
|
result: n.result,
|
id: item.id,
|
often: n.often,
|
equipName: n.equipName,
|
equipValue: n.equipValue,
|
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, 'value', JSON.parse(n.value))
|
arr.push(obj)
|
}
|
})
|
if (equipValueList.length > 0) {
|
this.$delete(item, 'equipName')
|
this.$delete(item, 'equipValue')
|
this.$set(item, 'equipName', equipNameList[equipNameList.length - 1])
|
this.$set(item, 'equipValue', equipValueList[equipValueList.length - 1])
|
}
|
})
|
this.$set(this.allBandList, i, {
|
band: bandList[i],
|
projectList: arr
|
})
|
}
|
} else {
|
console.log(2222)
|
// 没有值时,初始化页面
|
this.insProductNew.forEach(async item => {
|
// 赋值设备
|
item.equipName = ''
|
item.equipValue = ''
|
// 赋值端口和角度
|
this.portList = [
|
{
|
value: '1',
|
},
|
]
|
item.portList = JSON.parse(JSON.stringify(this.portList))
|
// 赋值结论
|
item.result = ''
|
// 赋值最差值
|
item.value = []
|
item.portNum = 4
|
if (item.inspectionItemSubclass.includes('耦合度')) {
|
item.value.push([''])
|
} else {
|
item.value.push([])
|
for (let j = 0; j < item.portList.length; j++) {
|
item.value[i].push('')
|
}
|
}
|
})
|
// 初始化频段
|
this.allBandList.push(
|
{
|
band: '',
|
projectList: JSON.parse(JSON.stringify(this.insProductNew))
|
}
|
)
|
console.log(this.allBandList)
|
}
|
},
|
// 删除数组
|
deleteList(index, list, type) {
|
this.upTemplateState = false;
|
if (list.length > 1) {
|
if (type == '互调') {
|
// let index = null;
|
let num = 0;
|
list.forEach((m, i) => {
|
if (m.inspectionItemSubclass.includes('互调')) {
|
// index = i;
|
num++
|
}
|
})
|
if (num == 1) {
|
this.$message({
|
type: 'warning',
|
message: '不能删除最后一个互调'
|
});
|
} else {
|
list.splice(index, 1)
|
}
|
} else if (type == '删除频段') {
|
this.$confirm(`是否确定删除 ${list[index].band} 频段数据?`, "提示", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning"
|
}).then(() => {
|
this.$axios.post(this.$api.insOrderPlan.deleteInsContext, {
|
frequency: list[index].band,
|
productIds: list[index].projectList.map(m => m.id),
|
num: this.num
|
}, {
|
headers: {
|
'Content-Type': 'application/json'
|
},
|
noQs: true
|
}).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)
|
}
|
} else {
|
this.$message({
|
type: 'warning',
|
message: '不能删除最后一个'
|
});
|
}
|
},
|
// 添加数组
|
addList(list, type) {
|
this.upTemplateState = false;
|
if (type == '互调') {
|
let obj = null;
|
let index = null;
|
list.forEach((m, i) => {
|
if (m.inspectionItemSubclass.includes('互调')) {
|
obj = JSON.parse(JSON.stringify(m));
|
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 ('端口') {
|
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
|
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
|
},
|
async methodFocus(item) {
|
this.$delete(item, 'equipOptions')
|
this.$set(item, 'equipOptions', await this.getEquipOptions(item))
|
},
|
handleEquip(m, item) {
|
this.$delete(item, 'equipValue')
|
this.$set(item, 'equipValue', m)
|
this.$delete(item, 'equipName')
|
this.$set(item, 'equipName', item.equipOptions.find(m => m.value == item.equipValue).label)
|
},
|
handlePort(n) {
|
if (!n.often) {
|
return
|
}
|
if (!n.often.includes('MHz') && !n.often.includes('MHZ')) {
|
n.often = n.often + 'MHz'
|
}
|
},
|
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,
|
equipName: this.insProductNew.find(m => m.id == item.id).equipName,
|
port: item.portList.map(m => m.value).join(','),
|
value: JSON.stringify(item.value),
|
often: item.often
|
}
|
return obj
|
})
|
this.$delete(this.loading, y)
|
this.$set(this.loading, y, true)
|
this.$axios.post(this.$api.insOrderPlan.saveInsContext2, {
|
// orderId:this.orderId,
|
sampleId: this.orderId,
|
sonLaboratory: h.projectList[0].sonLaboratory,
|
frequency: h.band,
|
insProductResult2s: arr
|
}, {
|
headers: {
|
'Content-Type': 'application/json'
|
},
|
noQs: true
|
}).then(res => {
|
this.$set(this.loading, y, false)
|
// this.loading[y] = false
|
if (res.code === 201) {
|
this.$message.error('保存失败')
|
return
|
}
|
for (let i = 0; i < res.data.length; i++) {
|
h.projectList[i].result = res.data[i]
|
}
|
this.$message.success('已保存')
|
}).catch(err => {
|
console.log(err)
|
})
|
},
|
async saveAll() {
|
if (this.allBandList.find(m => !m.band)) {
|
this.$message.error('请先填写频段')
|
return false
|
} else {
|
let arr0 = []
|
this.allBandList.forEach((h, j) => {
|
// this.save(h,j)
|
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,
|
equipName: this.insProductNew.find(m => m.id == item.id).equipName,
|
port: item.portList.map(m => m.value).join(','),
|
value: JSON.stringify(item.value),
|
often: item.often
|
}
|
return obj
|
})
|
let obj0 = {
|
sampleId: this.orderId,
|
sonLaboratory: h.projectList[0].sonLaboratory,
|
frequency: h.band,
|
insProductResult2s: arr
|
}
|
arr0.push(obj0)
|
})
|
let res = await this.$axios.post(this.$api.insOrderPlan.saveInsContext2s, {
|
insProductResultDtos: arr0
|
}, {
|
headers: {
|
'Content-Type': 'application/json'
|
},
|
noQs: true
|
})
|
if (res.code === 201) {
|
this.$message.error('保存失败')
|
return false
|
} else {
|
this.$message.success('已保存')
|
return true
|
}
|
}
|
},
|
// 更新模板
|
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)
|
// }
|
}
|
this.allBandList[index].band = item.band
|
let arr = []
|
item.projectList.forEach((m, i) => {
|
if (this.allBandList[index].projectList.find(n => n.inspectionItemSubclass == m.inspectionItemSubclass)) {
|
let obj0 = {
|
portList: m.portList,
|
portNum: m.portNum,
|
valueType: m.valueType
|
}
|
this.$set(obj0, 'value', m.value)
|
arr.push({ ...this.allBandList[index].projectList.find(n => n.inspectionItemSubclass == m.inspectionItemSubclass), ...obj0 })
|
}
|
})
|
this.$delete(this.allBandList[index], 'projectList')
|
this.$set(this.allBandList[index], 'projectList', arr)
|
// this.allBandList[index].projectList = arr
|
})
|
this.intermodulationNum = obj.intermodulationNum
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
.circuit-parameters {
|
position: relative;
|
overflow: visible;
|
}
|
|
.circuit-parameters-item {
|
margin-bottom: 10px;
|
border: 1px solid #eee;
|
padding: 10px;
|
box-sizing: border-box;
|
border-radius: 8px;
|
}
|
|
.circuit-parameters-item-title {
|
display: flex;
|
align-items: center;
|
}
|
|
.thermal-table {
|
min-width: calc(100% - 10px);
|
table-layout: fixed;
|
}
|
|
.thermal-table td,
|
.thermal-table th {
|
min-width: 120px;
|
text-align: center;
|
font-size: 14px;
|
word-wrap: break-word;
|
white-space: normal;
|
padding: 5px;
|
}
|
|
.thermal-table .el-input {
|
display: flex;
|
align-items: center;
|
}
|
|
.equip {
|
display: flex;
|
align-items: center;
|
}
|
|
.red {
|
color: red;
|
}
|
|
.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>
|