<template>
|
<div class="ins_order_config">
|
<div>
|
<el-row class="title">
|
<el-col :span="6" style="padding-left: 20px;">光纤配置</el-col>
|
<el-col :span="18" style="text-align: right;">
|
<el-button size="medium" type="primary" @click="save" :loading="saveLoad">保 存</el-button>
|
<el-button size="medium" @click="outConfig">
|
<span style="color: #3A7BFA;">取 消</span>
|
</el-button>
|
</el-col>
|
</el-row>
|
</div>
|
<div class="center">
|
<el-row :gutter="10" style="margin-bottom: 10px;">
|
<el-col :span="9">
|
<div class="grid-content">
|
<h5>套管</h5>
|
<div
|
style="display: flex;align-items: center;justify-content: space-between;padding: 0 12px;box-sizing: border-box;">
|
<div class="search-item">
|
<label style="width: 70px;">样品型号</label>
|
<span style="font-size: 14px;">{{models}}</span>
|
</div>
|
<el-radio-group v-model="packageInfo.radio" size="small" @change="upNum()">
|
<el-radio :label="0">全检</el-radio>
|
<el-radio :label="1">抽检</el-radio>
|
</el-radio-group>
|
</div>
|
<div
|
style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 8px;padding: 0 12px;box-sizing: border-box;">
|
<div class="search-item" style="margin-right: 10px;">
|
<label>套管数目</label>
|
<el-input v-model="packageInfo.num1" placeholder="请输入" size="small" @change="upNum"></el-input>
|
</div>
|
<div class="search-item" style="margin-right: 10px;">
|
<label style="width: 70px;">标准量</label>
|
<el-input v-model="packageInfo.num2" placeholder="请输入" size="small" @change="upNum"></el-input>
|
</div>
|
<div class="search-item">
|
<label style="width: 70px;">检测量</label>
|
<el-input v-model="packageInfo.num3" placeholder="请输入" size="small" @change="upNum" :disabled="packageInfo.radio===0"></el-input>
|
</div>
|
</div>
|
<el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px"
|
size="small" @selection-change="handleSelectionChange1">
|
<el-table-column type="selection" width="45">
|
</el-table-column>
|
<el-table-column label="管色标" show-overflow-tooltip>
|
<template slot-scope="scope">
|
<el-select v-model="scope.row.color" size="mini">
|
<el-option v-for="(color,i) in colors" :key="i" :label="color.lable" :value="color.value"></el-option>
|
</el-select>
|
</template>
|
</el-table-column>
|
<el-table-column prop="num2" label="标量" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="num3" label="测试量" show-overflow-tooltip>
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-col>
|
<el-col :span="15">
|
<div class="grid-content">
|
<h5>检测项信息</h5>
|
<el-table ref="table1" :data="tableData" tooltip-effect="dark" style="width: 100%" height="282px"
|
size="small" @selection-change="handleSelectionChange">
|
<el-table-column type="selection" width="55">
|
</el-table-column>
|
<el-table-column label="实验室" show-overflow-tooltip>
|
<template slot-scope="scope">{{ scope.row.date }}</template>
|
</el-table-column>
|
<el-table-column prop="name" label="检测项目" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="address" label="试验方法" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="address" label="单价" width="70" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="address" label="单位" width="70" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="address" label="预计时间" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="address" label="检测标准" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="address" label="检测要求" show-overflow-tooltip>
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row :gutter="10">
|
<el-col :span="12">
|
<div class="grid-content">
|
<h5>光纤带<el-button size="mini" type="primary" class="btns">生成光纤带</el-button></h5>
|
<div
|
style="display: flex;align-items: center;justify-content: space-between;margin:4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
|
<div class="search-item" style="width: 50%;margin-right: 16px;">
|
<label style="width: 80px;">纤带类型</label>
|
<el-select v-model="tape.value" placeholder="请选择" size="small" style="width: 100%;" :disabled="selectBushing.length===0">
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</div>
|
<div class="search-item" style="width: 50%;">
|
<label style="width: 80px;">参考标准</label>
|
<el-select v-model="tape.value" placeholder="请选择" size="small" style="width: 100%;">
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</div>
|
</div>
|
<el-table ref="table2" :data="tableData" tooltip-effect="dark" style="width: 100%" height="270px"
|
size="small" @selection-change="handleSelectionChange">
|
<el-table-column type="selection" width="55">
|
</el-table-column>
|
<el-table-column label="光纤带编号" show-overflow-tooltip>
|
<template slot-scope="scope">{{ scope.row.date }}</template>
|
</el-table-column>
|
<el-table-column prop="name" label="光纤带规格" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="address" label="参考标准" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="address" label="光纤检测量" show-overflow-tooltip>
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-col>
|
<el-col :span="12">
|
<div class="grid-content">
|
<h5>光纤<el-button size="mini" type="primary" class="btns" @click="addFiber" :disabled="mireModel===null||mireStandard===null">光纤配色</el-button></h5>
|
<div
|
style="display: flex;align-items: center;justify-content: space-between;margin: 4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
|
<div class="search-item" style="width: 50%;margin-right: 16px;">
|
<label style="width: 80px;">光纤类型</label>
|
<el-select v-model="mireModel" placeholder="请选择" size="small" style="width: 100%;" :disabled="selectBushing.length===0">
|
<el-option v-for="(item,a) in mireModels" :key="a" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</div>
|
<div class="search-item" style="width: 50%;">
|
<label style="width: 80px;">参考标准</label>
|
<el-select v-model="mireStandard" placeholder="请选择" size="small" style="width: 100%;" :disabled="mireModel===null"
|
@focus="selectsStandardMethodByFLSSM()" @change="(value)=>methodChange(value)">
|
<el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
|
</el-option>
|
</el-select>
|
</div>
|
</div>
|
<el-table ref="table3" :data="fiberList" tooltip-effect="dark" style="width: 100%" height="270px"
|
size="small" @selection-change="handleSelectionChange">
|
<el-table-column type="selection" width="55">
|
</el-table-column>
|
<el-table-column prop="bushColor" label="管套色标" width="90" align="center">
|
</el-table-column>
|
<el-table-column prop="color" label="光纤色标" width="120">
|
<template slot-scope="scope">
|
<el-select v-model="scope.row.color" size="mini">
|
<el-option v-for="(color,i) in colors" :key="i" :label="color.lable" :value="color.value"></el-option>
|
</el-select>
|
</template>
|
</el-table-column>
|
<el-table-column prop="model" label="光纤规格" show-overflow-tooltip align="center">
|
</el-table-column>
|
<el-table-column prop="standard" label="参考标准" show-overflow-tooltip align="center">
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-col>
|
</el-row>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
saveLoad: false,
|
packageInfo: {
|
radio: 1,
|
num1: null,
|
num2: null,
|
num3: null,
|
ismiers: false
|
},
|
tableData: [],
|
tape: {
|
value: ''
|
},
|
options: [],
|
sample: [],
|
models: '',
|
colors: [],
|
wires: [],
|
bushing: [],
|
mireModels: [],
|
mireModel: null,
|
mireStandard: [],
|
mireStandards: null,
|
selectBushing: [],
|
productList: [],
|
fiberList: []
|
}
|
},
|
mounted() {
|
this.$parent.sampleIds.forEach(a=>{
|
for (var i = 0; i < this.$parent.sampleList.length; i++) {
|
if (this.$parent.sampleList[i].id == a) {
|
this.sample.push(this.$parent.sampleList[i])
|
this.models+=(','+this.$parent.sampleList[i].model)
|
break
|
}
|
}
|
})
|
this.models = this.models.replace(',','')
|
this.getTypeDicts1()
|
this.getTypeDicts2()
|
this.getStandTreeBySampleType()
|
},
|
methods: {
|
save() {},
|
handleSelectionChange(val) {},
|
handleSelectionChange1(val){
|
this.selectBushing = val
|
},
|
outConfig(){
|
this.$parent.configShow = false
|
},
|
getTypeDicts1() {
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "色标"
|
}).then(res => {
|
this.colors = res.data
|
})
|
},
|
getTypeDicts2() {
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "线芯"
|
}).then(res => {
|
this.wires = res.data
|
})
|
},
|
upNum(){
|
if(this.packageInfo.radio === 0){
|
this.packageInfo.num3 = this.packageInfo.num2
|
}
|
if(parseInt(this.packageInfo.num2) < parseInt(this.packageInfo.num3)){
|
this.packageInfo.num3 = this.packageInfo.num2
|
}
|
if(this.packageInfo.num1!==null&&this.packageInfo.num1!==''
|
&&this.packageInfo.num2!==null&&this.packageInfo.num2!==''
|
&&this.packageInfo.num3!=null&&this.packageInfo.num3!==''){
|
let colors2 = []
|
if(this.packageInfo.num1 / this.colors.length > 1){
|
let num = this.packageInfo.num1 / this.colors.length
|
if(this.packageInfo.num1 % this.colors.length > 0) num+=1
|
for (var i = 0; i < num; i++) {
|
colors2 = colors2.concat(this.colors)
|
}
|
}else{
|
colors2 = colors2.concat(this.colors)
|
}
|
this.bushing = []
|
for (var i = 0; i < this.packageInfo.num1; i++) {
|
let bushing = {
|
color: colors2[i].label,
|
num2: this.packageInfo.num2,
|
num3: this.packageInfo.num3,
|
ismiers: this.packageInfo.ismiers,
|
fibers: [],
|
fiber: []
|
}
|
this.bushing.push(bushing)
|
}
|
}else{
|
this.bushing = []
|
}
|
},
|
getStandTreeBySampleType(){
|
this.$axios.get(this.$api.standardTree.getStandTreeBySampleType).then(res=>{
|
this.mireModels = []
|
res.data.forEach(a=>{
|
this.mireModels.push({
|
label: a.model,
|
value: a.sample + ' - ' + a.model
|
})
|
})
|
})
|
},
|
selectsStandardMethodByFLSSM() {
|
this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
|
tree: '中天科技检测中心 - 通信产品实验室 - 光纤 - ' + this.mireModel
|
}).then(res => {
|
this.mireStandards = res.data.standardMethodList
|
})
|
},
|
methodChange(val) {
|
if(val===null||val==='')return
|
this.$axios.post(this.$api.standardTree.selectStandardProductList, {
|
model: this.mireModel.split(' - ')[1],
|
standardMethodListId: val,
|
factory: ''
|
}, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
res.data.forEach(a => {
|
a.state = 0
|
})
|
this.productList = res.data
|
setTimeout(() => {
|
this.productList.forEach(a => {
|
if (a.state == 1) this.toggleSelection(a)
|
})
|
}, 200)
|
})
|
},
|
addFiber(){
|
let colors2 = []
|
if(this.packageInfo.num1 / this.colors.length > 1){
|
let num = this.packageInfo.num1 / this.colors.length
|
if(this.packageInfo.num1 % this.colors.length > 0) num+=1
|
for (var i = 0; i < num; i++) {
|
colors2 = colors2.concat(this.colors)
|
}
|
}else{
|
colors2 = colors2.concat(this.colors)
|
}
|
this.fiberList = []
|
let model = this.mireModel.split(' - ')[1]
|
let standard = this.mireStandards.find(a=>a.id == this.mireStandard).code
|
this.selectBushing.forEach(a=>{
|
for (var i = 0; i < a.num3; i++) {
|
if(this.packageInfo.ismiers){
|
|
}else{
|
let fiber = {
|
bushColor: a.color,
|
color: colors2[i].label,
|
model: model,
|
standard: standard
|
}
|
a.fiber.push(fiber)
|
this.fiberList.push(fiber)
|
}
|
}
|
})
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
.ins_order_config {
|
width: 100%;
|
height: 100%;
|
overflow-y: auto;
|
overflow-x: hidden;
|
}
|
|
.ins_order_config::-webkit-scrollbar {
|
width: 0;
|
}
|
|
.title {
|
height: 60px;
|
line-height: 60px;
|
}
|
|
.center {
|
width: 100%;
|
height: calc(100% - 60px);
|
}
|
|
.grid-content {
|
background: #fff;
|
border-radius: 4px;
|
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.05);
|
}
|
|
.grid-content h5 {
|
color: #3A7BFA;
|
font-weight: 400;
|
line-height: 32px;
|
padding-left: 16px;
|
box-sizing: border-box;
|
border-bottom: 1px solid #eee;
|
}
|
|
.search-item {
|
display: flex;
|
align-items: center;
|
line-height: 36px;
|
}
|
|
.search-item label {
|
width: 90px;
|
font-size: 12px;
|
color: #606266;
|
/* text-align: right; */
|
}
|
|
.btns {
|
margin: 8px 0 8px 10px;
|
}
|
|
>>>.el-table th.el-table__cell>.cell {
|
padding-top: 2px !important;
|
padding-bottom: 2px !important;
|
}
|
</style>
|