<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" v-if="active==1">保 存</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()" :disabled="active!=1">
|
<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" :disabled="active!=1"></el-input>
|
</div>
|
<div class="search-item" style="margin-right: 10px;">
|
<label style="width: 70px;">标准量</label>
|
<el-input v-model="packageInfo.standNum" placeholder="请输入" size="small" @change="upNum" :disabled="active!=1"></el-input>
|
</div>
|
<div class="search-item">
|
<label style="width: 70px;">检测量</label>
|
<el-input v-model="packageInfo.testNum" placeholder="请输入" size="small" @change="upNum"
|
:disabled="packageInfo.radio===0||active!=1"></el-input>
|
</div>
|
</div>
|
<el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px" size="small"
|
@selection-change="handleSelectionChange1"
|
:header-cell-class-name="setClassName0">
|
<el-table-column
|
type="selection"
|
width="45"
|
:selectable="()=>(active==1)">
|
</el-table-column>
|
<el-table-column label="管色标" show-overflow-tooltip>
|
<template slot-scope="scope">
|
<el-select v-model="scope.row.color" size="mini" :disabled="active!=1">
|
<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="standNum" label="标量" show-overflow-tooltip align="center">
|
</el-table-column>
|
<el-table-column prop="testNum" label="测试量" show-overflow-tooltip align="center">
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-col>
|
<el-col :span="15">
|
<div class="grid-content">
|
<h5>检测项信息</h5>
|
<el-table ref="productTable" :data="detectionItems" tooltip-effect="dark" style="width: 100%"
|
:row-class-name="tableRowClassName"
|
:header-cell-class-name="setClassName"
|
height="283px"
|
size="small" @selection-change="handleSelectionChange2"
|
@select-all="handleAll"
|
@select="upProductSelect"
|
>
|
<el-table-column type="selection" width="55"
|
:selectable="()=>((currentDetectionItems||this.multiFiberList.length > 0)&&active==1)">
|
</el-table-column>
|
<el-table-column label="实验室" show-overflow-tooltip prop="sonLaboratory" ></el-table-column>
|
<el-table-column prop="inspectionItem" label="检验项" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="inspectionItemSubclass" label="检验项子项" show-overflow-tooltip width="100px">
|
</el-table-column>
|
<el-table-column prop="methodS" label="试验方法" min-width="90" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="price" label="单价" width="70" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="unit" label="单位" width="70" show-overflow-tooltip>
|
</el-table-column>
|
<!-- <el-table-column prop="manDay" label="预计时间" width="90" show-overflow-tooltip>
|
</el-table-column> -->
|
<el-table-column prop="ask" label="检测要求" show-overflow-tooltip width="200px">
|
<template slot-scope="scope">
|
<el-input v-model="scope.row.ask" placeholder="请输入" size="small" :disabled="active!=1" v-if="!isAskOnlyRead"></el-input>
|
<span v-else>{{ scope.row.ask }}</span>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row :gutter="10">
|
<el-col :span="12" v-if="packageInfo.ismiers">
|
<div class="grid-content">
|
<h5>光纤带
|
<el-button size="mini" type="primary" class="btns" @click="addFibers"
|
:disabled="miresModel===null||miresStandard===null" v-if="active==1">生成光纤带</el-button>
|
<el-button size="mini" class="btns" @click="clearFibers" :disabled="selectBushing.length === 0" v-if="active==1">清除</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="miresModel" placeholder="请选择" size="small" style="width: 100%;"
|
:disabled="selectBushing.length===0||active!=1">
|
<el-option v-for="(item,a) in miresModels" :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="miresStandard" placeholder="请选择" size="small" style="width: 100%;"
|
:disabled="miresModel===null||active!=1" @focus="selectsStandardMethodByFLSSM2()"
|
@change="(value)=>methodChange2(value)">
|
<el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
|
</el-option>
|
</el-select>
|
</div>
|
</div>
|
<el-table ref="table2" :data="fibersList" tooltip-effect="dark" style="width: 100%" height="270px"
|
size="small" @selection-change="handleSelectionChange" highlight-current-row @row-click="(row, column, event)=>rowClickFiber(row, column, event,0)"
|
:header-cell-class-name="setClassName0">
|
<el-table-column
|
type="selection"
|
width="55"
|
:selectable="()=>(active==1)">
|
</el-table-column>
|
<el-table-column prop="code" label="光纤带编号" show-overflow-tooltip align="center">
|
</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-column prop="num" label="光纤检测量" show-overflow-tooltip align="center">
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-col>
|
<el-col :span="!packageInfo.ismiers?24:12">
|
<div class="grid-content">
|
<h5>光纤<el-button size="mini" type="primary" class="btns" @click="addFiber"
|
:disabled="mireModel===null||mireStandard===null" v-if="active==1">光纤配色</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||active!=1">
|
<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||active!=1" @focus="selectsStandardMethodByFLSSM()"
|
@change="(value)=>methodChange(value)" :loading="mireStandardLoading">
|
<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" highlight-current-row @selection-change="handleSelectionChange4"
|
@row-click="(row, column, event)=>rowClickFiber(row, column, event,1)"
|
:header-cell-class-name="setClassName0">
|
<el-table-column
|
type="selection"
|
width="55"
|
:selectable="()=>(active==1)">
|
</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" :disabled="active!=1">
|
<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>
|
<el-dialog title="检测到特殊项,请作出以下选择" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose">
|
<div class="body" style="max-height: 60vh;">
|
<el-row v-if="bsm1">
|
<el-col class="search_thing" :span="22">
|
<div class="search_label"><span class="required-span">* </span>护套密度:</div>
|
<div class="search_input">
|
<el-radio-group v-model="bsm1Val" @input="upBsm1">
|
<el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" :label="a"></el-radio>
|
</el-radio-group>
|
</div>
|
</el-col>
|
<el-col class="search_thing" :span="22">
|
<div class="search_label">要求值:</div>
|
<div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
|
<el-radio-group v-model="bsm1Val" @input="upBsm1">
|
<el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai"
|
:label="a">{{JSON.parse(bsmRow.ask)[ai]}}</el-radio>
|
</el-radio-group>
|
</div>
|
</el-col>
|
<el-col class="search_thing" :span="22">
|
<div class="search_label">单价:</div>
|
<div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
|
<el-radio-group v-model="bsm1Val" @input="upBsm1">
|
<el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai"
|
:label="a">{{JSON.parse(bsmRow.price)[ai]}}</el-radio>
|
</el-radio-group>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row v-if="bsm2">
|
<el-col class="search_thing" :span="22">
|
<div class="search_label" style="width: 220px;"><span class="required-span">* </span>样品熔接配对数量:</div>
|
<div class="search_input">
|
<el-input-number size="medium" v-model="bsm2Val" :min="1" :max="bsm2Val3.length" :precision="0" style="width: 70%;"
|
:controls="false" @change="bsm2Up"></el-input-number>
|
<span>MAX:{{bsm2Val3.length}}</span>
|
</div>
|
</el-col>
|
<el-col style="margin-top: 6px;">
|
<el-col v-for="(a,ai) in bsm2Val2" :key="ai">
|
<el-col :span="10">
|
<el-select v-model="a[0]" placeholder="请选择" size="small" style="width: 100%;">
|
<el-option
|
v-for="(item,index) in sampleList"
|
:key="index"
|
:label="index+1"
|
:value="index+1">
|
</el-option>
|
</el-select>
|
</el-col>
|
<!-- <el-col :span="10" class="pairing">{{a[0]}}</el-col> -->
|
<el-col :span="4" class="pairing" style="border: 0;color: rgba(0, 0, 0, 0.2);">——</el-col>
|
<el-col :span="10">
|
<el-select v-model="a[1]" placeholder="请选择" size="small" style="width: 100%;">
|
<el-option
|
v-for="(item,index) in sampleList"
|
:key="index"
|
:label="index+1"
|
:value="index+1">
|
</el-option>
|
</el-select>
|
</el-col>
|
<!-- <el-col :span="10" class="pairing">{{a[1]}}</el-col> -->
|
</el-col>
|
</el-col>
|
</el-row>
|
<!-- <el-row v-if="bsm3">
|
<el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
|
<div class="search_label"><span class="required-span">* </span>RTS:</div>
|
<div class="search_input">
|
<el-input size="small" placeholder="请输入" clearable v-model="bsm3Val"></el-input>
|
</div>
|
</el-col>
|
</el-row> -->
|
</div>
|
</el-dialog>
|
<el-dialog title="RTS填写" :visible.sync="bsm3Dia" width="500px" :show-close="false" :before-close="beforeClose0">
|
<el-row>
|
<el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
|
<div class="search_label"><span class="required-span">* </span>RTS:</div>
|
<div class="search_input">
|
<el-input size="small" placeholder="请输入" clearable v-model="bsm3Val"></el-input>
|
</div>
|
</el-col>
|
</el-row>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
export default {
|
props: {
|
active: {
|
type: Number,
|
default: () => 0
|
},
|
},
|
data() {
|
return {
|
type:1,
|
saveLoad: false,
|
packageInfo: {
|
radio: 1,
|
num1: null,
|
standNum: null,
|
testNum: null,
|
ismiers: false
|
},
|
tableData: [],
|
tape: {
|
value: ''
|
},
|
options: [],
|
sample: [],
|
models: '',
|
colors: [],
|
wires: [],
|
bushing: [],
|
mireModels: [],
|
mireModel: null,
|
mireStandard: [],
|
mireStandards: null,
|
miresModels: [],
|
miresModel: null,
|
miresStandard: [],
|
miresStandards: null,
|
selectBushing: [],
|
productList: [],
|
productList2: [],
|
fiberList: [],
|
fibersList: [],
|
selectFibers: [],
|
detectionItems:[],
|
currentDetectionItems:null,
|
mireStandardLoading:false,
|
multiFiberList:[],
|
isAskOnlyRead:true,
|
bsm1Dia: false,
|
bsmRow: null,
|
bsm1: false,
|
bsm1Val: null,
|
bsm2: false,
|
bsm2Val: null,
|
bsm2Dia: false,
|
bsm2Val2: [],
|
bsm2Val3: [],
|
sampleIds:[],
|
bsm3Val: null,
|
bsmRow3: null,
|
bsm3Dia: false,
|
}
|
},
|
computed: {
|
isAllDisabled() {
|
return this.multiFiberList.length > 0||this.currentDetectionItems||this.active!=1
|
},
|
},
|
watch: {
|
mireModel(val1,val0) {
|
if(val1!=val0){
|
this.mireStandards = []
|
this.fiberList = []
|
this.multiFiberList = []
|
this.detectionItems = []
|
this.currentDetectionItems = null;
|
}
|
},
|
mireStandard(val1,val0) {
|
if(val1!=val0){
|
this.fiberList = []
|
this.multiFiberList = []
|
this.detectionItems = []
|
this.currentDetectionItems = null;
|
}
|
}
|
},
|
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.packageInfo.ismiers = this.models.split(',').every(e=>(e.indexOf('d')>-1||e.indexOf('D')>-1))
|
if(this.sample[0].bushing === undefined || this.sample[0].bushing === null){
|
this.bushing = []
|
}else{
|
this.bushing = this.HaveJson(this.sample[0].bushing)
|
this.packageInfo.num1 = this.sample[0].bushing.length
|
this.packageInfo.standNum = this.sample[0].bushing[0].standNum
|
this.packageInfo.testNum = this.sample[0].bushing[0].testNum
|
this.bushing.forEach(a=>{
|
if(a.fibers===null)a.fibers=[]
|
if(a.fiber===null)a.fiber=[]
|
if(this.packageInfo.ismiers){
|
a.fibers.forEach(b=>{
|
this.fibersList.push(b)
|
b.fiber.forEach(c=>{
|
this.fiberList.push(c)
|
})
|
})
|
}else{
|
a.fiber.forEach(b=>{
|
this.fiberList.push(b)
|
})
|
}
|
})
|
}
|
this.getTypeDicts1()
|
this.getStandTreeBySampleType()
|
this.getStandTreeBySampleType2()
|
},
|
methods: {
|
handleSelectionChange(val) {
|
this.selectFibers = val
|
this.multiFiberList = val
|
},
|
handleSelectionChange1(val) {
|
this.selectBushing = val
|
},
|
handleSelectionChange2(val){},
|
handleSelectionChange4(val){
|
this.multiFiberList = val
|
},
|
outConfig() {
|
this.$parent.configShow = false
|
},
|
getTypeDicts1() {
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "色标"
|
}).then(res => {
|
this.colors = res.data
|
})
|
},
|
upNum() {
|
this.fiberList = []
|
this.fibersList = []
|
this.detectionItems = []
|
if (this.packageInfo.radio === 0) {
|
this.packageInfo.testNum = this.packageInfo.standNum
|
}
|
if (parseInt(this.packageInfo.standNum) < parseInt(this.packageInfo.testNum)) {
|
this.packageInfo.testNum = this.packageInfo.standNum
|
}
|
if (this.packageInfo.num1 !== null && this.packageInfo.num1 !== '' &&
|
this.packageInfo.standNum !== null && this.packageInfo.standNum !== '' &&
|
this.packageInfo.testNum != null && this.packageInfo.testNum !== '') {
|
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,
|
standNum: this.packageInfo.standNum,
|
testNum: this.packageInfo.testNum,
|
fibers: [],
|
fiber: []
|
}
|
this.bushing.push(bushing)
|
}
|
} else {
|
this.bushing = []
|
}
|
},
|
getStandTreeBySampleType() {
|
this.$axios.post(this.$api.standardTree.getStandTreeBySampleType, {
|
laboratory: '通信产品实验室',
|
sampleType: '光纤'
|
}).then(res => {
|
this.mireModels = []
|
res.data.forEach(a => {
|
this.mireModels.push({
|
label: a.model,
|
value: a.sample + ' - ' + a.model
|
})
|
})
|
})
|
},
|
getStandTreeBySampleType2() {
|
this.$axios.post(this.$api.standardTree.getStandTreeBySampleType, {
|
laboratory: '通信产品实验室',
|
sampleType: '光纤带'
|
}).then(res => {
|
this.miresModels = []
|
res.data.forEach(a => {
|
this.miresModels.push({
|
label: a.model,
|
value: a.model
|
})
|
})
|
})
|
},
|
selectsStandardMethodByFLSSM() {
|
this.mireStandards = []
|
this.mireStandardLoading = true
|
this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
|
tree: '中天科技检测中心 - 通信产品实验室 - 光纤 - ' + this.mireModel
|
}).then(res => {
|
this.mireStandardLoading = false
|
this.mireStandards = res.data.standardMethodList
|
})
|
},
|
selectsStandardMethodByFLSSM2() {
|
this.miresStandards = []
|
this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
|
tree: '中天科技检测中心 - 通信产品实验室 - 光纤带 - ' + this.miresModel
|
}).then(res => {
|
this.miresStandards = 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)
|
})
|
},
|
methodChange2(val) {
|
if (val === null || val === '') return
|
this.$axios.post(this.$api.standardTree.selectStandardProductList, {
|
model: '',
|
standardMethodListId: val,
|
factory: '中天科技检测中心 - 通信产品实验室 - 光纤带 - ' + this.miresModel + ' - ',
|
}, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
res.data.forEach(a => {
|
a.state = 0
|
})
|
this.productList2 = res.data
|
setTimeout(() => {
|
this.productList2.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
|
if (this.packageInfo.ismiers) {
|
if(this.selectFibers.length === 0){
|
this.$message.error('未选择光纤带')
|
return
|
}
|
this.selectFibers.forEach(a => {
|
a.fiber = []
|
for (var i = 0; i < parseInt(a.num); i++) {
|
let fiber = {
|
bushColor: a.color,
|
color: colors2[i].label,
|
model: model,
|
standard: standard,
|
productList: this.HaveJson(this.productList)
|
}
|
a.fiber.push(fiber)
|
this.fiberList.push(fiber)
|
}
|
})
|
} else {
|
this.selectBushing.forEach(a => {
|
a.fiber = []
|
for (var i = 0; i < parseInt(a.testNum); i++) {
|
let fiber = {
|
bushColor: a.color,
|
color: colors2[i].label,
|
model: model,
|
standard: standard,
|
productList: this.HaveJson(this.productList)
|
}
|
a.fiber.push(fiber)
|
this.fiberList.push(fiber)
|
}
|
})
|
}
|
},
|
addFibers() {
|
if(this.selectBushing.length===0){
|
this.$message.error('未选择套管')
|
return
|
}
|
this.fibersList = []
|
let standard = this.miresStandards.find(a => a.id == this.miresStandard).code
|
this.packageInfo.ismiers = true
|
this.fiberList = []
|
this.selectBushing.forEach(a => {
|
a.fiber = []
|
a.fibers = []
|
for (var i = 0; i < parseInt(a.testNum); i++) {
|
let fibers = {
|
code: null,
|
color: a.color,
|
model: this.miresModel,
|
standard: standard,
|
num: a.testNum,
|
productList: this.HaveJson(this.productList2),
|
fiber: []
|
}
|
a.fibers.push(fibers)
|
this.fibersList.push(fibers)
|
}
|
})
|
},
|
rowClickFiber(row, column, event,type){
|
this.type = type
|
if(this.active===1){
|
if(type==0){
|
let standard = null;
|
try{
|
standard = this.miresStandards.find(a => a.id == this.miresStandards)
|
}catch(e){}
|
if(standard&&standard.code=='委托要求'){
|
this.isAskOnlyRead = false;
|
}else{
|
this.isAskOnlyRead = true;
|
}
|
}else{
|
let standard = null;
|
try{
|
standard = this.mireStandards.find(a => a.id == this.mireStandard)
|
}catch(e){}
|
if(standard&&standard.code=='委托要求'){
|
this.isAskOnlyRead = false;
|
}else{
|
this.isAskOnlyRead = true;
|
}
|
}
|
}
|
if(this.type==1){
|
if (this.active !== 1) {
|
this.sampleIds = []
|
this.sampleIds.push(row.id)
|
}
|
}
|
this.currentDetectionItems = row
|
this.detectionItems = row.productList
|
if(this.detectionItems === null) return
|
setTimeout(() => {
|
this.detectionItems.forEach(a => {
|
if (a.state == 1) this.toggleSelection(a)
|
})
|
}, 200)
|
},
|
toggleSelection(row) {
|
this.$refs.productTable.toggleRowSelection(row, true);
|
},
|
tableRowClassName({
|
row,
|
rowIndex
|
}) {
|
if (row.state === 0) {
|
return 'warning-row';
|
}
|
return '';
|
},
|
handleAll(e) {
|
if (e.length > 0) {
|
this.detectionItems.map(m => {
|
m.state = 1
|
return m
|
})
|
} else {
|
this.detectionItems.map(m => {
|
m.state = 0
|
return m
|
})
|
}
|
if (e.length > 0) {
|
if(this.multiFiberList.length > 0){
|
this.multiFiberList.map(item => {
|
item.productList.map(m=>{
|
m.state = 1;
|
return m;
|
})
|
return item
|
})
|
}else{
|
this.currentDetectionItems.productList.map(m=>{
|
m.state = 1;
|
return m;
|
})
|
}
|
} else {
|
if(this.multiFiberList.length > 0){
|
this.multiFiberList.map(item => {
|
item.productList.map(m=>{
|
m.state = 0;
|
return m;
|
})
|
return item
|
})
|
}else{
|
this.currentDetectionItems.productList.map(m=>{
|
m.state = 0;
|
return m;
|
});
|
}
|
}
|
this.bsmRow3 = []
|
this.detectionItems.forEach(p => {
|
if(this.type==1){
|
if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 1) {
|
if (p.section.indexOf('[') > -1) {
|
this.bsmRow = this.HaveJson(p)
|
}
|
this.bsm1 = true
|
this.bsm1Dia = true
|
} else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) {
|
this.bsm1 = false
|
}
|
if (p.bsm === '1' && p.inspectionItem === '熔接损耗' && this.sampleList.length > 1 && p.state === 1) {
|
this.bsm2 = true
|
this.bsm1Dia = true
|
if(this.bsm2Val2.length === 0){
|
this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2
|
this.computationalPairing(this.sampleList.length)
|
this.bsm2Val2 = this.HaveJson(this.bsm2Val3)
|
}
|
} else if (p.bsm === '1' && p.inspectionItem === '熔接损耗' && p.state === 1) {
|
this.bsm2 = false
|
}
|
}
|
if (p.ask.includes('RTS')&&p.state === 1) {
|
p.rts = ''
|
this.bsm3Val = ''
|
this.bsm3Dia = true
|
this.bsmRow3.push(p)
|
}
|
})
|
|
if (e.length > 0) {
|
this.sampleList.map(item => {
|
if (this.sampleIds.indexOf(item.id) > -1) {
|
item.insProduct.map(m => {
|
m.state = 1
|
return m;
|
})
|
}
|
return item
|
})
|
} else {
|
this.sampleList.map(item => {
|
if (this.sampleIds.indexOf(item.id) > -1) {
|
item.insProduct.map(m => {
|
m.state = 0
|
return m;
|
})
|
}
|
return item
|
})
|
}
|
this.$nextTick(() => {
|
this.$refs.productTable.doLayout()
|
})
|
},
|
upProductSelect(selection, row) {
|
row.state = row.state == 1 ? 0 : 1
|
if(this.multiFiberList.length > 0){
|
this.multiFiberList.map(item => {
|
item.productList.map(m=>{
|
if(m.id == row.id){
|
m.state = row.state;
|
}
|
return m
|
})
|
return item
|
})
|
}else{
|
this.currentDetectionItems.productList.map(m=>{
|
if(m.id == row.id){
|
m.state = row.state;
|
}
|
return m;
|
});
|
}
|
if(this.type==1){
|
if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1) {
|
if (row.section.indexOf('[') > -1) {
|
this.bsmRow = this.HaveJson(row)
|
}
|
this.bsm1 = true
|
this.bsm1Dia = true
|
} else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) {
|
this.bsm1 = false
|
}
|
if (row.bsm === '1' && row.inspectionItem === '熔接损耗' && this.sampleList.length > 1 && row.state === 1) {
|
this.bsm2 = true
|
this.bsm1Dia = true
|
if(this.bsm2Val2.length === 0){
|
this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2
|
this.computationalPairing(this.sampleList.length)
|
this.bsm2Val2 = this.HaveJson(this.bsm2Val3)
|
}
|
} else if (row.bsm === '1' && row.inspectionItem === '熔接损耗' && row.state === 1) {
|
this.bsm2 = false
|
}
|
}else{
|
this.bsm1Dia = false
|
}
|
if (row.ask.includes('RTS')&&row.state === 1) {
|
this.bsmRow3 = null;
|
row.rts = ''
|
this.bsm3Val = ''
|
this.bsm3Dia = true
|
this.bsmRow3 = row
|
}else{
|
this.bsm3Dia = false
|
}
|
},
|
computationalPairing(n){
|
const nums = [];
|
for (let i = 1; i <= n; i++) {
|
nums.push(i);
|
}
|
this.bsm2Val3 = this.HaveJson(this.permute(nums))
|
},
|
setClassName({ column }) {
|
if (column.type == 'selection' && !this.isAllDisabled) {
|
return 'all-disabled'
|
}
|
},
|
setClassName0({ column }){
|
if (column.type == 'selection' && this.active!=1) {
|
return 'all-disabled'
|
}
|
},
|
clearFibers(){
|
this.packageInfo.ismiers = false
|
this.fibersList = []
|
this.bushing.forEach(a=>{
|
a.fibers = []
|
})
|
},
|
save(){
|
if(this.bushing.length === 0){
|
this.$message.error('缺少配置无法保存')
|
return
|
}
|
for(let a in this.bushing){
|
if(this.bushing[a].fibers.length===0&&this.bushing[a].fiber.length===0){
|
this.$message.error(this.bushing[a].color+'管色标套管缺少配置无法保存')
|
return
|
}
|
}
|
this.sample.forEach(a=>{
|
a.bushing = this.bushing
|
})
|
this.$message.success('已保存')
|
this.$emit('saveFiberopticConfig')
|
},
|
beforeClose(done){
|
if (this.bsm1) {
|
if (this.bsm1Val === null || this.bsm1Val === '') {
|
this.$message.error('特殊项目必须处理')
|
return
|
}
|
}
|
if (this.bsm2) {
|
if (this.bsm2Val2.length === 0) {
|
this.$message.error('特殊项目必须处理')
|
return
|
}
|
let set = new Set()
|
for (let i=0;i<this.bsm2Val2.length;i++){
|
let num0 = set.size
|
set.add(JSON.stringify(this.bsm2Val2[i]))
|
let num1 = set.size
|
if(num1==num0){
|
this.$message.error('关联项目不能重复')
|
return
|
}
|
set.add(JSON.stringify(this.bsm2Val2[i].reverse()))
|
let num2 = set.size
|
if(num1==num2){
|
this.$message.error('关联项目不能重复')
|
return
|
}
|
}
|
}
|
done()
|
},
|
beforeClose0(done){
|
if(!this.bsm3Val){
|
this.$message.error('RST必须填写')
|
return
|
}else{
|
if(Array.isArray(this.bsmRow3)){
|
this.bsmRow3.forEach(item=>{
|
item.rts = this.bsm3Val
|
})
|
}else{
|
this.bsmRow3.rts = this.bsm3Val
|
}
|
}
|
done()
|
},
|
upBsm1(val) {
|
let sections = JSON.parse(this.bsmRow.section);
|
let asks = JSON.parse(this.bsmRow.ask);
|
let tells = JSON.parse(this.bsmRow.tell);
|
let manHours = JSON.parse(this.bsmRow.manHour);
|
let prices = JSON.parse(this.bsmRow.price);
|
for (var a in sections) {
|
if (val === sections[a]) {
|
this.productList.forEach(p => {
|
if (p.id === this.bsmRow.id) {
|
p.section = sections[a]
|
p.ask = asks[a]
|
p.tell = tells[a]
|
p.manHour = manHours[a]
|
p.price = prices[a]
|
}
|
})
|
break
|
}
|
}
|
},
|
bsm2Up(val){
|
let list = []
|
for(let a=1;a < this.bsm2Val3.length + 1;a++){
|
list.push(a)
|
}
|
let set = new Set()
|
let size1 = set.length
|
while(set.size < val){
|
set.add(Math.ceil(Math.random() * this.bsm2Val3.length))
|
}
|
this.bsm2Val2 = []
|
for(let a of set){
|
this.bsm2Val2.push(this.HaveJson(this.bsm2Val3[a-1]))
|
}
|
}
|
}
|
}
|
</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;
|
}
|
>>>.all-disabled .el-checkbox__input .el-checkbox__inner {
|
background-color: #edf2fc;
|
border-color: #dcdfe6;
|
cursor: not-allowed;
|
}
|
</style>
|