<template>
|
<div class="ins_order_config">
|
<div>
|
<el-row class="title">
|
<el-col :span="6" style="padding-left: 20px; text-align: left"
|
>光纤配置</el-col
|
>
|
<el-col :span="18" style="text-align: right">
|
<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 class="models" :title="models">{{ models }}</span>
|
</div>
|
<el-radio-group
|
v-model="packageInfo.radio"
|
size="small"
|
@change="isInspection()"
|
: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"
|
@blur="addBushing"
|
:disabled="active != 1"
|
></el-input>
|
</div>
|
<div class="search-item" style="margin-right: 10px">
|
<label style="width: 100px">每根管抽检标准量</label>
|
<el-input
|
v-model="packageInfo.standNum"
|
placeholder="请输入"
|
size="small"
|
@blur="addStandNum"
|
:disabled="active != 1"
|
style="width: 70px"
|
></el-input>
|
</div>
|
<div class="search-item">
|
<label style="width: 100px">每根管抽检检测量</label>
|
<el-input
|
v-model="packageInfo.testNum"
|
placeholder="请输入"
|
size="small"
|
@blur="addTestNum"
|
style="width: 70px"
|
: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 label="管色标" show-overflow-tooltip>
|
<template slot-scope="scope">
|
<el-select
|
v-model="scope.row.color"
|
size="mini"
|
:disabled="active != 1"
|
allow-create
|
filterable
|
>
|
<el-option
|
v-for="(color, i) in colors"
|
:key="i"
|
:label="color.dictLable"
|
:value="color.dictValue"
|
></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
|
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-column
|
prop="tell"
|
label="要求描述"
|
show-overflow-tooltip
|
width="150"
|
>
|
</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"
|
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, 1)
|
"
|
:header-cell-class-name="setClassName0"
|
>
|
<el-table-column
|
prop="color"
|
label="管套色标"
|
width="90"
|
align="center"
|
>
|
</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"
|
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%"
|
>
|
<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, 0)
|
"
|
:header-cell-class-name="setClassName0"
|
>
|
<el-table-column
|
prop="bushColor"
|
label="管套色标"
|
width="90"
|
align="center"
|
>
|
</el-table-column>
|
<el-table-column prop="color" label="光纤色标" width="120">
|
</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="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>
|
</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>
|
import { getDicts } from "@/api/system/dict/data";
|
import {
|
getStandTreeBySampleType,
|
selectStandardTreeList2,
|
selectStandardMethodEnum,
|
selectsStandardMethodByFLSSM,
|
selectStandardProductList,
|
} from "@/api/standard/standardLibrary";
|
export default {
|
props: {
|
active: {
|
type: Number,
|
default: () => 0,
|
},
|
},
|
data() {
|
return {
|
detectionType: null,
|
detectionSelect: [],
|
selectFiberList: [],
|
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,
|
sorted: false,
|
};
|
},
|
computed: {
|
isAllDisabled() {
|
return (
|
this.multiFiberList.length > 0 ||
|
this.currentDetectionItems ||
|
this.active != 1
|
);
|
},
|
},
|
watch: {},
|
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;
|
}
|
}
|
});
|
console.log(111, this.sample);
|
this.models = this.models.replace(",", "");
|
this.packageInfo.ismiers = this.models
|
.split(",")
|
.every(
|
(e) =>
|
(e.indexOf("d") > -1 || e.indexOf("D") > -1) && !e.includes("ADSS")
|
);
|
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.length == 0) a.fibers = [];
|
if (a.fiber == null || a.fiber.length == 0) a.fiber = [];
|
// 判断是否含有光纤带
|
if (this.packageInfo.ismiers) {
|
// this.fibersList = [] // 新增
|
// this.fiberList = [] // 新增
|
if (a.fibers.length > 0) {
|
a.fibers.sort((a, b) => a.id - b.id);
|
a.fibers.forEach((b) => {
|
this.$set(b, "color", a.color);
|
// 光纤带
|
this.fibersList.push(b);
|
// 光纤
|
b.fiber.forEach((c) => {
|
this.fiberList.push(c);
|
});
|
});
|
} else {
|
a.fiber.forEach((b) => {
|
this.fiberList.push(b);
|
});
|
}
|
} else {
|
// this.fiberList = []
|
a.fiber.forEach((b) => {
|
this.fiberList.push(b);
|
});
|
}
|
});
|
}
|
|
this.getTypeDicts1();
|
this.getStandTreeBySampleType();
|
this.getStandTreeBySampleType2();
|
this.selectsStandardMethodByFLSSM2();
|
},
|
methods: {
|
handleSelectionChange(val) {
|
// this.selectFibers = val
|
this.multiFiberList = val;
|
},
|
handleSelectionChange1(val) {
|
this.selectBushing = val;
|
},
|
handleSelectionChange2(val) {
|
this.detectionSelect = val;
|
// 赋值检测项信息 光纤带
|
if (this.detectionItems.type == 1) {
|
this.multiFiberList.forEach((item) => {
|
this.fibersList.forEach((a) => {
|
if (a.ident == item.ident) {
|
a.productList = [];
|
this.fibersList.find((a) => a.ident == item.ident).productList =
|
this.detectionSelect;
|
}
|
});
|
});
|
}
|
if (this.detectionItems.type == 0) {
|
// 赋值检测项信息 光纤
|
console.log("000", this.selectFiberList);
|
this.selectFiberList.forEach((item) => {
|
this.fiberList.forEach((a) => {
|
if (a.ident == item.ident) {
|
a.productList = [];
|
this.fiberList.find((a) => a.ident == item.ident).productList =
|
this.detectionSelect;
|
}
|
});
|
});
|
}
|
},
|
handleSelectionChange4(val) {
|
this.selectFiberList = val;
|
},
|
outConfig() {
|
this.$parent.configShow = false;
|
},
|
getTypeDicts1() {
|
getDicts("fiber_color_type")
|
.then((res) => {
|
if (res.code === 200) {
|
this.colors = res.data;
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
// 套管数目生成表格数据
|
addBushing() {
|
this.bushing = [];
|
for (let i = 0; i < this.packageInfo.num1; i++) {
|
let bushing = {
|
ident: this.bushing.length + 1,
|
color: this.colors[i].dictLabel,
|
standNum: null,
|
testNum: null,
|
fibers: [],
|
fiber: [],
|
};
|
this.bushing.push(bushing);
|
}
|
},
|
// 套管标准量赋值
|
addStandNum() {
|
if (this.selectBushing.length > 0) {
|
this.bushing.forEach((item) => {
|
this.selectBushing.forEach((a) => {
|
if (item.ident == a.ident) {
|
item.standNum = this.packageInfo.standNum;
|
}
|
});
|
});
|
}
|
},
|
// 套管检测量赋值
|
addTestNum() {
|
if (this.selectBushing.length > 0) {
|
this.bushing.forEach((item) => {
|
this.selectBushing.forEach((a) => {
|
if (item.ident == a.ident) {
|
item.testNum = this.packageInfo.testNum;
|
}
|
});
|
});
|
}
|
},
|
isInspection() {
|
this.fiberList = [];
|
this.fibersList = [];
|
this.detectionItems = [];
|
|
// 页面是否含有光纤带
|
if (this.packageInfo.ismiers) {
|
// 全检
|
if (this.packageInfo.radio == 0) {
|
// 根据标准量赋值检测量
|
if (parseInt(this.packageInfo.standNum) > 0) {
|
// 给光纤带赋值
|
this.packageInfo.testNum = this.packageInfo.standNum;
|
this.selectBushing = this.bushing;
|
this.addFibers();
|
this.multiFiberList = this.fibersList;
|
// 默认勾选
|
setTimeout(() => {
|
this.selectBushing.forEach((item) => {
|
let rowToSelect = this.bushing.find(
|
(a) => a.ident == item.ident
|
);
|
this.$refs.table0.toggleRowSelection(rowToSelect, true);
|
});
|
|
this.multiFiberList.forEach((item) => {
|
let rowToSelect = this.fibersList.find(
|
(a) => a.ident == item.ident
|
);
|
this.$refs.table2.toggleRowSelection(rowToSelect, true);
|
});
|
}, 200);
|
}
|
}
|
} else {
|
if (this.packageInfo.radio == 0) {
|
if (parseInt(this.packageInfo.standNum) > 0) {
|
this.packageInfo.testNum = this.packageInfo.standNum;
|
this.selectBushing = this.bushing;
|
this.addFiber();
|
// 默认勾选
|
setTimeout(() => {
|
this.selectBushing.forEach((item) => {
|
let rowToSelect = this.bushing.find(
|
(a) => a.ident == item.ident
|
);
|
this.$refs.table0.toggleRowSelection(rowToSelect, true);
|
});
|
}, 200);
|
}
|
}
|
}
|
},
|
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].dictLabel,
|
standNum: this.packageInfo.standNum,
|
testNum: this.packageInfo.testNum,
|
fibers: [],
|
fiber: [],
|
};
|
this.bushing.push(bushing);
|
}
|
// 给光纤带赋值
|
if (this.selectBushing.length === 0) {
|
this.selectBushing = this.bushing;
|
}
|
// this.miresModels 纤带类型
|
// this.miresStandards 参考标准
|
this.fibersList = [];
|
this.packageInfo.ismiers = true;
|
this.fiberList = [];
|
this.selectBushing.forEach((a) => {
|
a.fiber = [];
|
a.fibers = [];
|
for (let j = 0; j < parseInt(a.testNum); j++) {
|
let fibers = {
|
id: this.fibersList.length + 1,
|
code: null,
|
color: a.color,
|
model: null,
|
standard: null,
|
num: a.testNum,
|
productList: this.HaveJson(this.productList2),
|
fiber: [],
|
};
|
a.fibers.push(fibers);
|
this.fibersList.push(fibers);
|
}
|
});
|
} else {
|
this.bushing = [];
|
}
|
},
|
getStandTreeBySampleType() {
|
getStandTreeBySampleType({
|
laboratory: "通信产品实验室",
|
sampleType: "光纤",
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
this.mireModels = [];
|
res.data.forEach((a) => {
|
this.mireModels.push({
|
label: a.model,
|
value: a.sample + " - " + a.model,
|
});
|
});
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
getStandTreeBySampleType2() {
|
getStandTreeBySampleType({
|
laboratory: "通信产品实验室",
|
sampleType: "光纤带",
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
this.miresModels = [];
|
res.data.forEach((a) => {
|
this.miresModels.push({
|
label: a.model,
|
value: a.model,
|
});
|
});
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
selectsStandardMethodByFLSSM() {
|
this.mireStandards = [];
|
this.mireStandardLoading = true;
|
selectsStandardMethodByFLSSM({
|
tree: "中天科技检测中心 - 通信产品实验室 - 光纤 - " + this.mireModel,
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
this.mireStandardLoading = false;
|
this.mireStandards = res.data.standardMethodList;
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
selectsStandardMethodByFLSSM2() {
|
this.miresStandards = [];
|
selectsStandardMethodByFLSSM({
|
tree: "中天科技检测中心 - 通信产品实验室 - 光纤带 - " + this.miresModel,
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
this.miresStandards = res.data.standardMethodList;
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
methodChange(val) {
|
// 将下拉框值赋值给光纤 监听去除
|
if (this.selectFiberList.length == 0) {
|
this.$message.error("请选择数据");
|
return;
|
}
|
this.selectFiberList.forEach((item) => {
|
this.fiberList.forEach((a) => {
|
if (a.ident == item.ident) {
|
a.model = this.mireModel.split(" - ")[1]; // 光纤规格
|
a.noSplitModel = this.mireModel; // 光纤规格
|
if (this.mireStandards != null) {
|
a.standard = this.mireStandards.find(
|
(a) => a.id == this.mireStandard
|
).code; // 参考标准
|
}
|
}
|
});
|
});
|
if (val === null || val === "") return;
|
if (this.mireStandards == null) return;
|
selectStandardProductList({
|
model: this.mireModel.split(" - ")[1],
|
standardMethodListId: val,
|
factory: "",
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
this.detectionItems = [];
|
if (res.data != null && res.data.length != 0) {
|
res.data.forEach((a) => {
|
a.state = 0;
|
});
|
this.detectionItems = res.data;
|
this.detectionType = 0;
|
this.$set(this.detectionItems, "type", 0);
|
}
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
methodChange2(val) {
|
if (this.multiFiberList.length == 0) {
|
this.$message.error("请选择需要更改的数据");
|
return;
|
}
|
if (val === null || val === "") return;
|
selectStandardProductList({
|
model: "",
|
standardMethodListId: val,
|
factory:
|
"中天科技检测中心 - 通信产品实验室 - 光纤带 - " +
|
this.miresModel +
|
" - ",
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
// 将获取的检测项信息赋值
|
this.detectionItems = [];
|
if (res.data != null && res.data.length != 0) {
|
res.data.forEach((a) => {
|
a.state = 0;
|
});
|
this.detectionItems = res.data;
|
this.detectionType = 1;
|
this.$set(this.detectionItems, "type", 1);
|
}
|
|
// 给选中的光纤带赋值
|
for (let i = 0; i < this.fibersList.length; i++) {
|
this.multiFiberList.forEach((item) => {
|
if (this.fibersList[i].ident == item.ident) {
|
this.fibersList[i].model = this.miresModel; // 纤带规格
|
this.fibersList[i].num = this.miresModel.replace("芯", ""); // 光纤检测量
|
this.fibersList[i].productList = this.detectionItems; // 检测项
|
this.miresStandards.forEach((a) => {
|
if (a.id == this.miresStandard) {
|
this.fibersList[i].standard = a.code; // 参考标准
|
}
|
});
|
}
|
});
|
}
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
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 = [];
|
// 选择了光纤带
|
if (this.packageInfo.ismiers) {
|
if (this.multiFiberList.length != 0) {
|
this.multiFiberList.forEach((a, index) => {
|
a.fiber = [];
|
for (var i = 0; i < parseInt(a.num); i++) {
|
let fiber = {
|
ident: this.fiberList.length + 1,
|
bushColor: a.color,
|
color:
|
colors2[
|
i + parseInt(a.num) * index > colors2.length
|
? 0
|
: i + parseInt(a.num) * index * index
|
].dictLabel,
|
model: null,
|
noSplitModel: null,
|
standard: null,
|
fibersIdent: a.ident,
|
productList: [],
|
};
|
this.fiberList.push(fiber);
|
}
|
});
|
} else {
|
this.selectBushing.forEach((a, index) => {
|
a.fiber = [];
|
for (var i = 0; i < parseInt(a.testNum); i++) {
|
let fiber = {
|
ident: this.fiberList.length + 1,
|
bushColor: a.color,
|
color:
|
colors2[
|
i + parseInt(a.testNum) * index > colors2.length
|
? 0
|
: i + parseInt(a.testNum) * index
|
].dictLabel,
|
model: null,
|
noSplitModel: null,
|
standard: null,
|
productList: [],
|
};
|
this.fiberList.push(fiber);
|
}
|
});
|
}
|
} else {
|
this.fiberList = [];
|
let flag = true;
|
// 按照顺序生成光纤色标
|
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.selectBushing.forEach((item, index) => {
|
if (item.testNum != null && item.testNum != "") {
|
for (let i = 0; i < parseInt(item.testNum); i++) {
|
let fiber = {
|
ident: this.fiberList.length + 1,
|
bushColor: item.color,
|
color:
|
colors2[
|
i + parseInt(item.testNum) * index > colors2.length
|
? 0
|
: i + parseInt(item.testNum) * index * index
|
].dictLabel,
|
model: null,
|
standard: null,
|
productList: [],
|
};
|
this.fiberList.push(fiber);
|
}
|
} else {
|
flag = false;
|
}
|
});
|
if (!flag) {
|
this.$message.error("请填写光纤检测量");
|
return;
|
}
|
}
|
},
|
addFibers() {
|
if (this.selectBushing.length == 0) {
|
this.$message.error("未选择套管");
|
return;
|
}
|
// 套管的测试量 * 选择的光纤带数量
|
this.fibersList = [];
|
this.selectBushing.forEach((item) => {
|
for (let i = 0; i < parseInt(this.packageInfo.testNum); i++) {
|
let fibers = {
|
ident: this.fibersList.length + 1,
|
color: item.color,
|
code: null,
|
model: null,
|
standard: null,
|
num: null,
|
fiber: [],
|
productList: [],
|
};
|
this.fibersList.push(fibers);
|
}
|
});
|
},
|
rowClickFiber(row, column, event, type) {
|
console.log("row", row);
|
if (type == 1) {
|
this.fiberList = row.fiber;
|
if (row.productList != null && row.productList.length > 0) {
|
this.detectionItems = [];
|
this.detectionItems = row.productList;
|
}
|
if (row.fiber != null && row.fiber.length > 0) {
|
this.fiberList = [];
|
this.fiberList = row.fiber;
|
}
|
} else if (type == 0) {
|
this.detectionItems = [];
|
this.detectionItems = row.productList;
|
}
|
},
|
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) {
|
console.log(this.detectionItems);
|
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.selectFiberList.length > 0) {
|
this.selectFiberList.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;
|
}
|
},
|
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;
|
}
|
this.bushing.forEach((item) => {
|
// 如果光纤带有值
|
if (this.fibersList.length != 0) {
|
this.fibersList.forEach((a) => {
|
a.fiber = this.fiberList.filter((b) => b.fibersIdent == a.ident);
|
});
|
item.fibers = this.fibersList; // 光纤带
|
item.fiber = []; // 光纤
|
} else {
|
// 如果光纤带没有值
|
item.fibers = []; // 光纤带
|
item.fiber = this.fiberList; // 光纤
|
}
|
});
|
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;
|
padding: 10px 15px;
|
}
|
|
.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;
|
}
|
.models {
|
font-size: 14px;
|
width: 300px;
|
overflow: hidden;
|
text-overflow: ellipsis;
|
white-space: nowrap;
|
}
|
</style>
|