<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"
|
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 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="packageInfo.radio === 0 || active != 1"
|
style="width: 100px"
|
></el-input>
|
</div>
|
<div class="search-item">
|
<label style="width: 100px">每根管抽检检测量</label>
|
<el-input
|
v-model="packageInfo.testNum"
|
placeholder="请输入"
|
size="small"
|
@blur="addTestNum"
|
:disabled="packageInfo.radio === 0 || active != 1"
|
style="width: 70px"
|
></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"
|
allow-create
|
filterable
|
>
|
<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.selectFiberList.length > 0 ||
|
this.multiFiberList.length > 0) &&
|
active == 1
|
"
|
>
|
</el-table-column>
|
<el-table-column
|
label="实验室"
|
show-overflow-tooltip
|
min-width="100"
|
prop="sonLaboratory"
|
></el-table-column>
|
<el-table-column
|
prop="inspectionItem"
|
label="检验项"
|
min-width="100"
|
show-overflow-tooltip
|
>
|
</el-table-column>
|
<el-table-column
|
prop="inspectionItemSubclass"
|
min-width="100"
|
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"
|
@change="changeASk(scope.row, 'ask')"
|
></el-input>
|
<span v-else>{{ scope.row.ask }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="tell"
|
label="要求描述"
|
show-overflow-tooltip
|
width="150"
|
>
|
<template slot-scope="scope">
|
<el-input
|
v-model="scope.row.tell"
|
placeholder="请输入"
|
size="small"
|
:disabled="active != 1"
|
v-if="!isAskOnlyRead"
|
@change="changeASk(scope.row)"
|
></el-input>
|
<span v-else>{{ scope.row.tell }}</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"
|
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 class="search-item" style="width: 30%; margin-right: 16px">
|
<label style="width: 80px">纤带类型</label>
|
<el-select
|
v-model="miresModel"
|
placeholder="请选择"
|
size="small"
|
style="width: 100%"
|
>
|
<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: 30%">
|
<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 class="search-item" style="width: 30%; margin-right: 16px">
|
<label>光纤检测量</label>
|
<el-input
|
:disabled="miresModel === null || active != 1"
|
v-model="miresNum"
|
placeholder="请输入"
|
size="small"
|
style="width: 100%"
|
@change="miresNumChange"
|
></el-input>
|
</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
|
ref="table2"
|
:data="fibersList"
|
tooltip-effect="dark"
|
style="width: 100%"
|
height="270px"
|
size="small"
|
@selection-change="handleSelectionChange"
|
highlight-current-row
|
:header-cell-class-name="setClassName0"
|
>
|
<el-table-column
|
type="selection"
|
width="55"
|
:selectable="() => active == 1"
|
>
|
</el-table-column>
|
<el-table-column
|
prop="color"
|
label="管套色标"
|
width="90"
|
align="center"
|
>
|
</el-table-column>
|
<el-table-column
|
prop="code"
|
label="光纤带编号"
|
show-overflow-tooltip
|
align="center"
|
>
|
<template slot-scope="scope">
|
<el-input
|
v-model="scope.row.code"
|
placeholder="请输入"
|
size="mini"
|
></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="model"
|
label="光纤带规格"
|
show-overflow-tooltip
|
align="center"
|
>
|
<template slot-scope="scope">
|
<el-input
|
v-model="scope.row.model"
|
placeholder="请输入"
|
size="mini"
|
></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="standard"
|
label="参考标准"
|
show-overflow-tooltip
|
align="center"
|
>
|
<template slot-scope="scope">
|
<el-input
|
v-model="scope.row.standard"
|
placeholder="请输入"
|
size="mini"
|
></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="num"
|
label="光纤检测量"
|
show-overflow-tooltip
|
align="center"
|
>
|
<template slot-scope="scope">
|
<el-input
|
v-model="scope.row.num"
|
placeholder="请输入"
|
size="mini"
|
></el-input>
|
</template>
|
</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%;"
|
: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 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
|
ref="table3"
|
:data="fiberList"
|
tooltip-effect="dark"
|
style="width: 100%"
|
height="270px"
|
size="small"
|
highlight-current-row
|
@selection-change="handleSelectionChange4"
|
: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"
|
allow-create
|
filterable
|
>
|
<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="60%"
|
:show-close="false"
|
:close-on-press-escape="false"
|
:close-on-click-modal="false"
|
:before-close="beforeClose"
|
v-loading.fullscreen.lock="bsm1DiaLoading"
|
>
|
<div v-if="bsm1" class="body" style="max-height: 60vh; overflow: scroll">
|
<el-row>
|
<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="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>
|
<div v-if="bsm2">
|
<el-row>
|
<el-col class="search_thing" :span="24">
|
<div class="search_label" style="width: 180px">
|
<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> -->
|
<el-input-number
|
size="medium"
|
v-model="bsm2Val"
|
:min="1"
|
:max="bsm2Val3Length"
|
:precision="0"
|
style="width: 55%"
|
:controls="false"
|
@change="bsm2Up"
|
></el-input-number>
|
<span>MAX:{{ bsm2Val3Length }}</span>
|
<el-switch
|
v-model="selfConnectBoolean"
|
@change="selfConnect"
|
active-color="#13ce66"
|
style="margin-left: 20px"
|
active-text="是否自接"
|
></el-switch>
|
</div>
|
</el-col>
|
</el-row>
|
<div
|
class="body"
|
style="overflow-y: scroll; min-height: 400px; height: 400px"
|
>
|
<el-row>
|
<el-col :span="11">
|
<span>样品A:</span>
|
</el-col>
|
<el-col :span="11" :offset="2">
|
<span>样品B:</span>
|
</el-col>
|
</el-row>
|
<el-row v-for="(a, ai) in bsm2Val2" :key="ai" style="margin: 10px 0">
|
<el-col :span="11">
|
<el-select
|
v-model="a[0]"
|
placeholder="请选择"
|
size="small"
|
style="width: 100%"
|
>
|
<el-option
|
v-for="(item, index) in fiberList"
|
:key="index"
|
:label="
|
sampleList[0].sampleCode +
|
'-' +
|
item.bushColor +
|
'-' +
|
item.color
|
"
|
:value="index + 1"
|
>
|
</el-option>
|
</el-select>
|
</el-col>
|
<el-col
|
:span="2"
|
class="pairing"
|
style="text-align: center; border: 0; color: rgba(0, 0, 0, 0.2)"
|
>——</el-col
|
>
|
<el-col :span="11">
|
<el-select
|
v-model="a[1]"
|
placeholder="请选择"
|
size="small"
|
style="width: 100%"
|
>
|
<el-option
|
v-for="(item, index) in fiberList"
|
:key="index"
|
:label="
|
sampleList[1].sampleCode +
|
'-' +
|
item.bushColor +
|
'-' +
|
item.color
|
"
|
:value="index + 1"
|
>
|
</el-option>
|
</el-select>
|
</el-col>
|
</el-row>
|
</div>
|
<!-- <el-row>
|
<el-col style="margin-top: 6px">
|
<el-col v-for="(a, ai) in bsm2Val2" :key="ai">
|
<el-col :span="10" class="pairing">{{a[0]}}</el-col>
|
<el-col :span="10" class="pairing">{{a[1]}}</el-col>
|
</el-col>
|
</el-col>
|
</el-row> -->
|
</div>
|
<span slot="footer" class="dialog-footer" v-if="bsm2">
|
<el-row>
|
<el-button type="primary" @click="save1" :loading="saveLoad"
|
>确 定</el-button
|
>
|
</el-row>
|
</span>
|
</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,
|
},
|
inspectionItemST: {
|
type: Number,
|
default: () => 0,
|
},
|
//保存的光纤熔接配对数组
|
fiberPairing: {
|
type: Array,
|
default: () => {
|
return [];
|
},
|
},
|
},
|
data() {
|
return {
|
bsm2Val2Copy: [],
|
selfConnectBoolean: false,
|
loadingText: "加载中",
|
bsm1DiaLoading: false,
|
bsm2Val3Length: null,
|
fiberLoss: [],
|
isBsm2Val2: false,
|
sampleList: [],
|
miresNum: null,
|
errOrFiberList: [],
|
errOrFiberRibbonList: [],
|
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,
|
isLoading: false,
|
};
|
},
|
computed: {
|
isAllDisabled() {
|
return (
|
this.multiFiberList.length > 0 ||
|
this.currentDetectionItems ||
|
this.active != 1
|
);
|
},
|
},
|
watch: {
|
bsm1Dia(newVal) {
|
if (!newVal) {
|
this.isLoading = false;
|
}
|
},
|
// 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.sampleList = this.$parent.sampleList;
|
console.log("this.sample", 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.bsm2Val2 = this.fiberPairing;
|
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.forEach((b) => {
|
// 光纤带
|
this.fibersList.push(b);
|
// 光纤
|
// this.fiberList = []
|
// this.fiberList = b.fiber
|
});
|
} 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: {
|
// 自接
|
selfConnect() {
|
if (this.selfConnectBoolean) {
|
// this.bsm2Val2 需要的最终结果 this.fiberList 下拉框内容
|
// 过滤出套管和色标一致的数据 以及相应的下标
|
let newFiberList = [];
|
let resultList = [];
|
for (let i = 0; i < this.fiberList.length; i++) {
|
let data = this.fiberList[i];
|
if (data.bushColor == data.color) {
|
newFiberList.push([data.bushColor, i + 1]);
|
}
|
}
|
// 根据字典进行一个排序
|
for (let i = 0; i < this.colors.length; i++) {
|
let color = this.colors[i];
|
for (let j = 0; j < newFiberList.length; j++) {
|
let newColor = newFiberList[j];
|
if (color.value == newColor[0]) {
|
newFiberList[j].push(color.orderNum);
|
}
|
}
|
}
|
newFiberList.sort((o1, o2) => o1[2] - o2[2]);
|
// 根据规则进行赋值 1-2 3-4 5-6 7-8 9-10
|
for (let i = 0; i < newFiberList.length; i++) {
|
// 避免多次循环
|
if (newFiberList.length < 2 * i + 1) {
|
break;
|
}
|
if (
|
newFiberList.length == 2 * i + 1 &&
|
newFiberList.length % 2 != 0
|
) {
|
resultList.push([]);
|
} else {
|
resultList.push([
|
newFiberList[2 * i][1],
|
newFiberList[2 * i + 1][1],
|
]);
|
}
|
}
|
this.bsm2Val2 = resultList;
|
console.log("bsm2", this.bsm2Val2);
|
// MAX 赋值
|
this.bsm2Val3Length = resultList.length;
|
this.bsm2Val = resultList.length;
|
} else {
|
this.computationalPairing(this.selectFiberList.length);
|
}
|
},
|
// 统一修改光纤检测量
|
miresNumChange() {
|
const regex = /\d+/;
|
const match = this.miresModel.match(regex);
|
let num = 0;
|
if (match) {
|
num = Number(match[0]);
|
}
|
if (num < this.miresNum) {
|
this.$message.error("光纤检测量不能大于光纤规格");
|
return;
|
}
|
if (this.miresNum < 0) {
|
this.$message.error("光纤检测量不能小于0");
|
return;
|
}
|
this.fibersList.forEach((item) => {
|
this.multiFiberList.forEach((a) => {
|
if (a.ident == item.ident) {
|
item.num = this.miresNum;
|
}
|
});
|
});
|
},
|
handleSelectionChange(val) {
|
// this.selectFibers = val
|
this.multiFiberList = val;
|
if (val.length > 0) {
|
this.rowClickFiber(val[val.length - 1], null, null, 1);
|
}
|
},
|
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) {
|
// 赋值检测项信息 光纤
|
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;
|
}
|
});
|
});
|
// 选择的时候就将fiberList的值赋值给对应的fiberList
|
setTimeout(() => {
|
if (this.multiFiberList.length > 0) {
|
this.multiFiberList.forEach((item) => {
|
this.fibersList.forEach((a) => {
|
if (a.ident == item.ident) {
|
a.fiber = this.fiberList;
|
}
|
});
|
});
|
}
|
}, 100);
|
}
|
},
|
handleSelectionChange4(val) {
|
this.selectFiberList = val;
|
console.log(val);
|
if (val != 0) {
|
this.rowClickFiber(val[val.length - 1], null, null, 0);
|
}
|
},
|
changeASk(row, type) {
|
if (type == "ask") {
|
// 如果检测要求含有正负号
|
if (row.tell.indexOf("±") != -1) {
|
let left = row.tell.substring(0, row.tell.indexOf("±"));
|
let right = row.tell.substring(row.tell.indexOf("±") + 1);
|
// 如果可以转化为数值
|
if (!isNaN(Number(left)) && !isNaN(Number(right))) {
|
if (row.ask.indexOf("-") != -1) {
|
let left1 = row.ask.substring(0, row.ask.indexOf("-"));
|
let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
|
if (
|
Number(left1) != Number(left) - Number(right) ||
|
Number(right1) != Number(left) + Number(right)
|
) {
|
//this.$message.error("检测要求不符合要求描述");
|
// row.ask =
|
// Number(left) -
|
// Number(right) +
|
// "-" +
|
// (Number(left) + Number(right));
|
}
|
} else {
|
//this.$message.error("检测要求不符合规范");
|
// row.ask = left + "-" + right;
|
return;
|
}
|
}
|
// 如果要求描述左边不能转化为数值
|
else if (isNaN(Number(left)) && !isNaN(Number(right))) {
|
const regex = /[~-]/;
|
const match = left.match(regex);
|
// 左边含有 - ~ 符号
|
if (match) {
|
let newLeft = "";
|
if (left.includes("(")) {
|
newLeft = left.replace("(", "(");
|
}
|
if (left.includes(")")) {
|
newLeft = newLeft.replace(")", ")");
|
}
|
const regexTwo = /\((\d+(\.\d+)?)([~-])(\d+(\.\d+)?)\)/;
|
const matchTwo = newLeft.match(regexTwo);
|
let leftTwo = Number(matchTwo[1]) - Number(right);
|
let rightTwo = Number(matchTwo[4]) + Number(right);
|
console.log(matchTwo);
|
console.log(leftTwo, rightTwo);
|
|
console.log(row.ask.indexOf("-"));
|
if (row.ask.indexOf("-") != -1) {
|
let left1 = row.ask.substring(0, row.ask.indexOf("-"));
|
let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
|
if (Number(left1) != leftTwo || Number(right1) != rightTwo) {
|
//this.$message.error("检测要求不符合要求描述");
|
// row.ask = leftTwo + "-" + rightTwo;
|
}
|
} else {
|
//this.$message.error("检测要求不符合规范");
|
// row.ask = leftTwo + "-" + rightTwo;
|
return;
|
}
|
}
|
}
|
}
|
// 如果要求描述含有≤ < ≥ > 符号
|
const regex = /[≤<≥>]/;
|
const match = row.tell.match(regex);
|
if (match) {
|
// 符号不一致
|
if (row.ask.indexOf(match[0]) != 0) {
|
//this.$message.error("检测要求不符合要求描述");
|
return;
|
} else {
|
// 符号一致
|
// 如果检测要求含有正负号 并且含有&号 ≥0.69&≤0.76 要求描述
|
if (row.tell.indexOf("&") != -1) {
|
if (row.ask.indexOf("&") == -1) {
|
//this.$message.error("检测要求不符合要求描述");
|
// row.ask = row.tell;
|
return;
|
} else {
|
let left = row.tell.substring(0, row.tell.indexOf("&"));
|
let right = row.tell.substring(row.tell.indexOf("&") + 1);
|
|
let leftAsk = row.ask.substring(0, row.ask.indexOf("&"));
|
let rightAsk = row.ask.substring(row.ask.indexOf("&") + 1);
|
if (leftAsk != left || rightAsk != right) {
|
//this.$message.error("检测要求不符合要求描述");
|
}
|
}
|
} else {
|
// 没有&号
|
const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, "g");
|
const matchTow = row.tell.match(regex);
|
let right = Number(matchTow[0].split(match[0])[1]);
|
let left = row.ask.substring(row.ask.indexOf(match[0]) + 1);
|
if (Number(left) != Number(right)) {
|
//this.$message.error("检测要求不符合要求描述");
|
// row.ask = match[0] + right;
|
}
|
}
|
}
|
}
|
|
// 如果要求描述含有范围
|
const regexTwo = /[~-]/;
|
const matchTwo = row.tell.match(regexTwo);
|
const matchAsk = row.ask.match(regexTwo);
|
if (matchTwo) {
|
let left = row.tell.substring(0, row.tell.indexOf(matchTwo[0]));
|
let right = row.tell.substring(row.tell.indexOf(matchTwo[0]) + 1);
|
|
if (!isNaN(Number(left)) && !isNaN(Number(right))) {
|
let leftAsk = row.ask.substring(0, row.ask.indexOf(matchAsk[0]));
|
let rightAsk = row.ask.substring(row.ask.indexOf(matchAsk[0]) + 1);
|
if (
|
Number(leftAsk) != Number(left) ||
|
Number(rightAsk) != Number(right)
|
) {
|
//this.$message.error("检测要求不符合要求描述");
|
// row.ask = left + "-" + right;
|
}
|
}
|
}
|
}
|
|
// 先勾选的情况下
|
this.detectionSelect.forEach((item) => {
|
if (item.id == row.id) {
|
item.ask = row.ask;
|
item.tell = row.tell;
|
// 光纤 0 光纤带 1
|
if (item.isFibers == 0) {
|
this.selectFiberList.forEach((a) => {
|
this.fiberList.forEach((b) => {
|
if (b.ident == a.ident) {
|
b.productList.forEach((item) => {
|
if (item.id == row.id) {
|
item.ask = row.ask;
|
item.tell = row.tell;
|
}
|
});
|
}
|
});
|
});
|
}
|
if (item.isFibers == 1) {
|
this.multiFiberList.forEach((a) => {
|
this.fibersList.forEach((b) => {
|
if (b.ident == a.ident) {
|
b.productList.forEach((item) => {
|
if (item.id == row.id) {
|
item.ask = row.ask;
|
item.tell = row.tell;
|
}
|
});
|
}
|
});
|
});
|
}
|
}
|
});
|
},
|
outConfig() {
|
this.$parent.configShow = false;
|
},
|
getTypeDicts1() {
|
this.$axios
|
.post(this.$api.enums.selectEnumByCategory, {
|
category: "色标",
|
})
|
.then((res) => {
|
this.colors = res.data;
|
});
|
},
|
// 套管数目生成表格数据
|
addBushing() {
|
this.bushing = [];
|
for (let i = 0; i < this.packageInfo.num1; i++) {
|
let bushing = {
|
ident: this.bushing.length + 1,
|
color: this.colors[i].label,
|
standNum: null,
|
testNum: null,
|
fibers: [],
|
fiber: [],
|
};
|
this.bushing.push(bushing);
|
}
|
},
|
// 套管标准量赋值
|
addStandNum() {
|
if (this.packageInfo.testNum > this.packageInfo.standNum) {
|
this.$message.error("检测量不能大于标准量");
|
this.packageInfo.testNum = this.packageInfo.standNum;
|
}
|
|
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 (
|
parseInt(this.packageInfo.testNum) > parseInt(this.packageInfo.standNum)
|
) {
|
this.packageInfo.testNum = this.packageInfo.standNum;
|
this.$message.error("检测量不能大于标准量");
|
}
|
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 (
|
this.packageInfo.standNum == null ||
|
this.packageInfo.standNum == ""
|
) {
|
this.$message.error("请先输入标准量");
|
return;
|
}
|
// 根据标准量赋值检测量
|
if (parseInt(this.packageInfo.standNum) > 0) {
|
this.packageInfo.testNum = this.packageInfo.standNum;
|
// 给光纤带赋值
|
this.bushing.forEach((item) => {
|
item.testNum = this.packageInfo.testNum;
|
item.standNum = this.packageInfo.standNum;
|
this.$refs.table0.toggleRowSelection(item, true);
|
});
|
|
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 (
|
this.packageInfo.standNum == null ||
|
this.packageInfo.standNum == ""
|
) {
|
this.$message.error("请先输入标准量");
|
return;
|
}
|
if (parseInt(this.packageInfo.standNum) > 0) {
|
this.packageInfo.testNum = this.packageInfo.standNum;
|
this.bushing.forEach((item) => {
|
item.testNum = this.packageInfo.testNum;
|
item.standNum = this.packageInfo.standNum;
|
this.$refs.table0.toggleRowSelection(item, true);
|
});
|
console.log(this.bushing);
|
this.selectBushing = this.bushing;
|
this.addFiber(1);
|
// 默认勾选
|
setTimeout(() => {
|
// this.selectBushing.forEach(item =>{
|
// let rowToSelect = this.bushing.find(a => a.ident == item.ident)
|
// this.$refs.table0.toggleRowSelection(rowToSelect, true)
|
// })
|
this.fiberList.forEach((item) => {
|
this.$refs.table3.toggleRowSelection(item, 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].label,
|
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() {
|
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)
|
// })
|
// this.addFiber()
|
// }, 200)
|
// })
|
|
// 将下拉框值赋值给光纤 监听去除
|
if (this.selectFiberList.length == 0) {
|
this.$message.error("请选择数据");
|
return;
|
}
|
|
if (val === null || val === "") return;
|
if (this.mireStandards == null) return;
|
this.$axios
|
.post(
|
this.$api.standardTree.selectStandardProductList,
|
{
|
model: this.mireModel.split(" - ")[1],
|
standardMethodListId: val,
|
factory: "",
|
},
|
{
|
headers: {
|
"Content-Type": "application/json",
|
},
|
}
|
)
|
.then((res) => {
|
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);
|
}
|
this.mireStandards.find((a) => a.id == val).code == "委托要求"
|
? (this.isAskOnlyRead = false)
|
: (this.isAskOnlyRead = true);
|
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; // 参考标准
|
}
|
}
|
});
|
});
|
});
|
},
|
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)
|
// })
|
// this.addFibers()
|
// }, 200)
|
// })
|
if (this.multiFiberList.length == 0) {
|
this.$message.error("请选择需要更改的数据");
|
return;
|
}
|
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) => {
|
// 将获取的检测项信息赋值
|
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);
|
// 判断是否为委托要求
|
this.miresStandards.find((a) => a.id == val).code == "委托要求"
|
? (this.isAskOnlyRead = false)
|
: (this.isAskOnlyRead = true);
|
}
|
// 给选中的光纤带赋值
|
// 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 // 参考标准
|
// }
|
// })
|
// }
|
// })
|
// }
|
for (let i = 0; i < this.multiFiberList.length; i++) {
|
for (let j = 0; j < this.fibersList.length; j++) {
|
if (this.multiFiberList[i].ident == this.fibersList[j].ident) {
|
this.fibersList[j].model = this.miresModel; // 纤带规格
|
this.fibersList[j].num = this.miresModel.replace("芯", ""); // 光纤检测量
|
this.miresStandards.forEach((a) => {
|
if (a.id == this.miresStandard) {
|
this.fibersList[j].standard = a.code; // 参考标准
|
}
|
});
|
}
|
}
|
}
|
});
|
},
|
addFiber(isInspection) {
|
//重新光纤配色,清空熔接配对
|
this.isBsm2Val2 = false;
|
this.bsm2Val2 = [];
|
// 最新
|
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) {
|
let count = 0;
|
console.log("this.multiFiberList", this.multiFiberList);
|
// 根据每根管抽检标准量 确定 颜色循环
|
let groupedByColor = this.multiFiberList.reduce((groups, value) => {
|
if (!groups[value.color]) {
|
groups[value.color] = Number(value.num);
|
} else {
|
groups[value.color] += Number(value.num);
|
}
|
return groups;
|
});
|
if (groupedByColor[groupedByColor.color]) {
|
groupedByColor[groupedByColor.color] =
|
groupedByColor[groupedByColor.color] + Number(groupedByColor.num);
|
} else {
|
this.$set(
|
groupedByColor,
|
groupedByColor.color,
|
Number(groupedByColor.num)
|
);
|
}
|
const regex = /\d+/;
|
const match = this.miresModel.match(regex);
|
console.log("groupedByColor", groupedByColor);
|
this.multiFiberList.forEach((item) => {
|
if (groupedByColor[item.color]) {
|
// 拿到当前的光纤带规格 确定颜色循环
|
let modelNumber = this.packageInfo.standNum;
|
if (match) {
|
modelNumber = Number(match[0]);
|
}
|
let colors3 = colors2.slice(0, modelNumber);
|
if (item.num == null || item.num == "") {
|
item.num = 0;
|
}
|
// 确定颜色循环
|
for (var i = 0; i < parseInt(item.num); i++) {
|
let fiber = {
|
ident: this.fiberList.length + 1,
|
bushColor: item.color,
|
color: colors3[count].label,
|
model: null,
|
noSplitModel: null,
|
standard: null,
|
fibersIdent: item.ident,
|
productList: [],
|
};
|
this.fiberList.push(fiber);
|
count++;
|
count = count % modelNumber;
|
}
|
}
|
});
|
// this.multiFiberList.forEach((a, index) => {
|
// a.fiber = [];
|
// if (index > 0 && index < this.multiFiberList.length) {
|
// if (
|
// this.multiFiberList[index].color ==
|
// this.multiFiberList[index - 1].color
|
// ) {
|
// // 根据每根管抽检标准量 确定 颜色循环
|
// //let colors3 = colors2.slice(0,this.packageInfo.standNum)
|
// 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].label,
|
// color: colors2[count].label,
|
// model: null,
|
// noSplitModel: null,
|
// standard: null,
|
// fibersIdent: a.ident,
|
// productList: [],
|
// };
|
// this.fiberList.push(fiber);
|
// count++;
|
// }
|
// } else {
|
// // 根据每根管抽检标准量 确定 颜色循环
|
// let colors3 = colors2.slice(0, this.packageInfo.standNum);
|
// 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].label,
|
// color: colors3[i].label,
|
// model: null,
|
// noSplitModel: null,
|
// standard: null,
|
// fibersIdent: a.ident,
|
// productList: [],
|
// };
|
// this.fiberList.push(fiber);
|
// }
|
// }
|
// } else {
|
// 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].label,
|
// color: colors2[i].label,
|
// model: null,
|
// noSplitModel: null,
|
// standard: null,
|
// fibersIdent: a.ident,
|
// productList: [],
|
// };
|
// this.fiberList.push(fiber);
|
// }
|
// }
|
// });
|
} else {
|
let count = 0;
|
let colors3 = colors2.slice(0, this.packageInfo.standNum);
|
this.selectBushing.forEach((item, index) => {
|
if (item.testNum != null && item.testNum != "") {
|
item.standNum = Number(item.standNum);
|
for (let i = 0; i < parseInt(item.testNum); i++) {
|
let fiber = {
|
ident: this.fiberList.length + 1,
|
bushColor: item.color,
|
color: colors3[count].label,
|
model: null,
|
standard: null,
|
productList: [],
|
};
|
this.fiberList.push(fiber);
|
count++;
|
count = count % this.packageInfo.standNum;
|
}
|
}
|
});
|
}
|
} 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);
|
}
|
let colors3 = colors2.slice(0, this.packageInfo.standNum);
|
let count = 0;
|
// 根据套管的测试量生成对应的数量的光纤数据
|
this.selectBushing.forEach((item, index) => {
|
if (item.testNum != null && item.testNum != "") {
|
item.standNum = Number(item.standNum);
|
for (let i = 0; i < parseInt(item.testNum); i++) {
|
let fiber = {
|
ident: this.fiberList.length + 1,
|
bushColor: item.color,
|
color: colors3[count].label,
|
model: null,
|
standard: null,
|
productList: [],
|
};
|
this.fiberList.push(fiber);
|
count++;
|
count = count % item.standNum;
|
}
|
// else {
|
// 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
|
// ].label,
|
// model: null,
|
// standard: null,
|
// productList: [],
|
// };
|
// this.fiberList.push(fiber);
|
// }
|
// }
|
} else {
|
flag = false;
|
}
|
});
|
|
if (!flag) {
|
this.$message.error("请填写光纤检测量");
|
return;
|
}
|
}
|
// 二代
|
// // 是否选择套管
|
// if(this.selectBushing.length == 0) {
|
// this.$message.error('未选择套管')
|
// return
|
// }
|
// 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].label,
|
// model: null,
|
// standard: null,
|
// productList: []
|
// }
|
// this.fiberList.push(fiber)
|
// }
|
// }else {
|
// flag = false
|
// }
|
// })
|
// if(!flag){
|
// this.$message.error('请填写光纤检测量')
|
// return
|
// }
|
|
// 最初
|
// 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,index) => {
|
// a.fiber = []
|
// for (var i = 0; i < parseInt(a.num); i++) {
|
// let fiber = {
|
// bushColor: a.color,
|
// color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
|
// model: model,
|
// standard: standard,
|
// productList: this.HaveJson(this.productList)
|
// }
|
// a.fiber.push(fiber)
|
// this.fiberList.push(fiber)
|
// }
|
// })
|
// } else {
|
// this.selectBushing.forEach((a,index) => {
|
// a.fiber = []
|
// for (var i = 0; i < parseInt(a.testNum); i++) {
|
// let fiber = {
|
// bushColor: a.color,
|
// color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].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)
|
// }
|
// })
|
|
if (this.selectBushing.length == 0) {
|
this.$message.error("未选择套管");
|
return;
|
}
|
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);
|
}
|
colors2 = colors2.splice(0, this.packageInfo.standNum);
|
// 套管的测试量 * 选择的光纤带数量
|
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,
|
colorShow: item.color + "-" + colors2[i].label,
|
code: null,
|
model: null,
|
standard: null,
|
num: null,
|
fiber: [],
|
productList: [],
|
};
|
this.fibersList.push(fibers);
|
}
|
});
|
},
|
rowClickFiber(row, column, event, type) {
|
// console.log("row", row);
|
// 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)
|
if (type == 1) {
|
this.fiberList = row.fiber;
|
if (
|
(row.model == null || row.model == "") &&
|
(row.standard == null || row.standard == "")
|
) {
|
this.detectionItems = [];
|
return;
|
}
|
if (row.model != null && row.model != "") {
|
this.miresModel = row.model;
|
this.selectsStandardMethodByFLSSM2();
|
}
|
setTimeout(() => {
|
if (row.standard != null && row.standard != "") {
|
this.miresStandard = this.miresStandards.find(
|
(a) => a.code == row.standard
|
).id;
|
}
|
this.$axios
|
.post(
|
this.$api.standardTree.selectStandardProductList,
|
{
|
model: "",
|
standardMethodListId: this.miresStandard,
|
factory:
|
"中天科技检测中心 - 通信产品实验室 - 光纤带 - " +
|
this.miresModel +
|
" - ",
|
},
|
{
|
headers: {
|
"Content-Type": "application/json",
|
},
|
}
|
)
|
.then((res) => {
|
// 将获取的检测项信息赋值
|
this.detectionItems = [];
|
if (res.data != null && res.data.length != 0) {
|
res.data.forEach((a) => {
|
a.state = 0;
|
this.$set(a, "isFibers", 1);
|
});
|
// 判断是否为委托要求
|
this.miresStandards.find((a) => a.id == this.miresStandard)
|
.code == "委托要求"
|
? (this.isAskOnlyRead = false)
|
: (this.isAskOnlyRead = true);
|
if (!this.isAskOnlyRead) {
|
row.productList.forEach((a) => {
|
res.data.forEach((b) => {
|
if (a.id == b.id) {
|
b.ask = a.ask;
|
b.tell = a.tell;
|
}
|
});
|
});
|
}
|
this.detectionItems = res.data;
|
this.detectionType = 1;
|
this.$set(this.detectionItems, "type", 1);
|
|
if (row.productList != null && row.productList.length > 0) {
|
let product = JSON.parse(JSON.stringify(row.productList));
|
setTimeout(() => {
|
product.forEach((p) => {
|
let rowToSelect = this.detectionItems.find(
|
(item) => item.id === p.id
|
);
|
if (rowToSelect) {
|
this.toggleSelection(rowToSelect);
|
}
|
});
|
}, 200);
|
}
|
}
|
});
|
}, 500);
|
} else if (type == 0) {
|
if (
|
(row.noSplitModel == null || row.noSplitModel == "") &&
|
(row.standard == null || row.standard == "")
|
) {
|
this.detectionItems = [];
|
return;
|
}
|
if (row.model != null && row.model != "") {
|
this.mireModel = row.noSplitModel;
|
this.selectsStandardMethodByFLSSM();
|
}
|
setTimeout(() => {
|
if (row.standard != null && row.standard != "") {
|
this.mireStandard = this.mireStandards.find(
|
(a) => a.code == row.standard
|
).id;
|
}
|
this.$axios
|
.post(
|
this.$api.standardTree.selectStandardProductList,
|
{
|
model: this.mireModel.split(" - ")[1],
|
standardMethodListId: this.mireStandard,
|
factory: "",
|
},
|
{
|
headers: {
|
"Content-Type": "application/json",
|
},
|
}
|
)
|
.then((res) => {
|
this.detectionItems = [];
|
if (res.data != null && res.data.length != 0) {
|
res.data.forEach((a) => {
|
a.state = 0;
|
this.$set(a, "isFibers", 0);
|
});
|
// 判断是否为委托要求
|
this.mireStandards.find((a) => a.id == this.mireStandard)
|
.code == "委托要求"
|
? (this.isAskOnlyRead = false)
|
: (this.isAskOnlyRead = true);
|
if (!this.isAskOnlyRead) {
|
row.productList.forEach((a) => {
|
res.data.forEach((b) => {
|
if (a.id == b.id) {
|
b.ask = a.ask;
|
b.tell = a.tell;
|
}
|
});
|
});
|
}
|
this.detectionItems = res.data;
|
this.detectionType = 0;
|
this.$set(this.detectionItems, "type", 0);
|
|
if (row.productList != null && row.productList.length > 0) {
|
let product = JSON.parse(JSON.stringify(row.productList));
|
setTimeout(() => {
|
product.forEach((p) => {
|
let rowToSelect = this.detectionItems.find(
|
(item) => item.id === p.id
|
);
|
if (rowToSelect) {
|
this.toggleSelection(rowToSelect);
|
}
|
});
|
}, 200);
|
}
|
}
|
});
|
}, 500);
|
}
|
},
|
toggleSelection(row) {
|
this.$refs.productTable.toggleRowSelection(row, true);
|
this.upProductSelect(null, row);
|
},
|
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.isBsm2Val2
|
) {
|
if (this.checkSampleCodeHasNull()) {
|
this.$message.error("熔接配对的样品编号不能为空");
|
return;
|
}
|
this.bsm2 = true;
|
this.bsm1Dia = true;
|
if (this.bsm2Val2.length === 0) {
|
this.bsm2Val =
|
((this.selectFiberList.length + 1) *
|
this.selectFiberList.length) /
|
2;
|
this.computationalPairing(this.selectFiberList.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();
|
});
|
},
|
save1() {
|
if (this.bsm2) {
|
if (this.bsm2Val2.length === 0) {
|
this.$message.error("特殊项目必须处理");
|
return;
|
}
|
const tempList = this.HaveJson(this.bsm2Val2);
|
let set = new Set();
|
for (let i = 0; i < tempList.length; i++) {
|
let num0 = set.size;
|
set.add(JSON.stringify(tempList[i]));
|
let num1 = set.size;
|
if (num1 == num0) {
|
console.log(set);
|
console.log(tempList);
|
this.$message.error("关联项目不能重复");
|
return;
|
}
|
// set.add(JSON.stringify(tempList[i].reverse()))
|
// let num2 = set.size
|
// if (num1 == num2) {
|
// console.log(111,set);
|
// console.log(111,tempList);
|
// this.$message.error('关联项目不能重复')
|
// return
|
// }
|
}
|
//转换熔接配对的编号
|
// let transformList = []
|
// for(let i=0;i<this.bsm2Val2.length;i++){
|
// let colorIndex1 = Number(this.bsm2Val2[i][0]-1)
|
// let colorIndex2 = Number(this.bsm2Val2[i][1]-1)
|
// let code1 = this.sampleList[0].sampleCode + '-' + this.fiberList[colorIndex1].bushColor + '-' + this.fiberList[colorIndex1].color
|
// let code2 = this.sampleList[1].sampleCode + '-' + this.fiberList[colorIndex2].bushColor + '-' + this.fiberList[colorIndex2].color
|
// transformList.push([code1,code2])
|
// }
|
this.isBsm2Val2 = true;
|
// console.log(this.bsm2Val2);
|
// console.log(transformList);
|
// this.$parent.fiberPairing = JSON.stringify(this.bsm2Val2)
|
}
|
this.bsm1Dia = false;
|
this.isBsm2Val2 = false;
|
this.fiberLoss = [];
|
},
|
upProductSelect(selection, row) {
|
let list = this.detectionSelect.filter(
|
(item) => item.inspectionItem == "光纤接头损耗"
|
);
|
if (list.length > 0) {
|
this.fiberLoss = list.map(
|
(item) => item.inspectionItem + "" + item.inspectionItemSubclass
|
);
|
}
|
if (row.inspectionItem == "光纤接头损耗") {
|
this.fiberLoss.push(
|
row.inspectionItem + "" + row.inspectionItemSubclass
|
);
|
}
|
let arr = [...new Set(this.fiberLoss)];
|
console.log("list", list);
|
console.log("this.fiberLoss", this.fiberLoss);
|
console.log("arr", arr);
|
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 === "光纤接头损耗" &&
|
row.state === 1 &&
|
!this.isBsm2Val2
|
) {
|
if (this.sampleList.length < 2) {
|
this.$message.error("样品数量不足够进行配对操作");
|
return;
|
} else {
|
if (this.checkSampleCodeHasNull()) {
|
this.$message.error("熔接配对的样品编号不能为空");
|
return;
|
}
|
// this.bsm2 = true;
|
// this.bsm1Dia = true;
|
arr.length == 3 ? (this.bsm2 = true) : (this.bsm2 = false);
|
console.log("arr", arr);
|
if (this.bsm2) {
|
this.computationalPairing(this.selectFiberList.length);
|
// 默认展示一对一
|
// this.bsm2Up(this.selectFiberList.length);
|
// if (this.bsm2Val2.length === 0) {
|
// this.bsm2Val = this.selectFiberList.length;
|
// this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
|
// console.log(222, this.bsm2Val2);
|
// } else {
|
// this.bsm2Val = this.selectFiberList.length;
|
// }
|
// if (this.bsm2Val2.length === 0) {
|
// this.bsm2Val =
|
// ((this.fiberList.length + 1) * this.fiberList.length) / 2;
|
// this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
|
// console.log(222, this.bsm2Val2);
|
// } else {
|
// this.bsm2Val = this.fiberPairing.length;
|
// }
|
}
|
}
|
} 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
|
// }
|
},
|
checkSampleCodeHasNull() {
|
const emptyCodeArr = this.sampleList.filter(
|
(ele) => ele.sampleCode == null
|
);
|
return emptyCodeArr.length > 0;
|
},
|
computationalPairing(n, isValue = false) {
|
this.bsm1Dia = true;
|
this.isLoading = true;
|
this.$axios
|
.get(this.$api.insOrder.permute + "?num=" + n + "&isValue=" + isValue)
|
.then((res) => {
|
this.bsm2Val3Length = this.HaveJson(res.data.resultData);
|
if (this.bsm2Val2.length === 0) {
|
this.bsm2Val = this.selectFiberList.length;
|
this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
|
console.log(222, this.bsm2Val2);
|
} else {
|
this.bsm2Val = this.selectFiberList.length;
|
}
|
this.bsm2Up(this.selectFiberList.length);
|
this.isLoading = false;
|
});
|
// const nums = [];
|
// for (let i = 1; i <= n; i++) {
|
// nums.push(i);
|
// }
|
// this.bsm2Val3 = this.HaveJson(this.permute(nums));
|
},
|
permute(nums) {
|
const result = [];
|
function backtrack(temp, nums) {
|
if (temp.length === 2) {
|
result.push([...temp]);
|
return;
|
}
|
for (let i = 0; i < nums.length; i++) {
|
// if (temp.includes(nums[i])) continue;
|
// 避免重复数字
|
if (temp.length > 0 && nums[i] < temp[temp.length - 1]) continue; // 规定顺序,避免重复组合
|
temp.push(nums[i]);
|
backtrack(temp, nums);
|
temp.pop();
|
}
|
}
|
backtrack([], nums);
|
return result;
|
},
|
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')
|
// if(this.inspectionItemST == 1) {
|
// this.$message.success('已保存')
|
// this.sample.forEach(a=>{
|
// a.bushing = this.bushing
|
// })
|
// this.$emit('saveFiberopticConfig')
|
// return
|
// }
|
|
let flag = true;
|
let flags = true;
|
|
// 光纤检测项信息校验
|
this.fiberList.forEach((item) => {
|
if (item.productList.length > 0) {
|
item.productList.forEach((row) => {
|
// 如果检测要求或者要求描述为空
|
if (row.ask == null || row.ask == "") {
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
}
|
if (row.tell == null || row.tell == "") {
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
}
|
// 如果检测要求含有正负号
|
if (row.tell.indexOf("±") != -1) {
|
let left = row.tell.substring(0, row.tell.indexOf("±"));
|
let right = row.tell.substring(row.tell.indexOf("±") + 1);
|
// 如果可以转化为数值
|
if (!isNaN(Number(left)) && !isNaN(Number(right))) {
|
if (row.ask.indexOf("-") != -1) {
|
let left1 = row.ask.substring(0, row.ask.indexOf("-"));
|
let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
|
if (
|
Number(left1) != Number(left) - Number(right) ||
|
Number(right1) != Number(left) + Number(right)
|
) {
|
//this.$message.error("11111");
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flag = false;
|
}
|
} else {
|
//this.$message.error("2222");
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flag = false;
|
}
|
}
|
// 如果要求描述左边不能转化为数值
|
else if (isNaN(Number(left)) && !isNaN(Number(right))) {
|
const regex = /[~-]/;
|
const match = left.match(regex);
|
// 左边含有 - ~ 符号
|
if (match) {
|
let newLeft = "";
|
if (left.includes("(")) {
|
newLeft = left.replace("(", "(");
|
}
|
if (left.includes(")")) {
|
newLeft = newLeft.replace(")", ")");
|
}
|
const regexTwo = /\((\d+(\.\d+)?)([~-])(\d+(\.\d+)?)\)/;
|
const matchTwo = newLeft.match(regexTwo);
|
let leftTwo = Number(matchTwo[1]) - Number(right);
|
let rightTwo = Number(
|
Number(matchTwo[4]) + Number(right)
|
).toFixed(6);
|
if (row.ask.indexOf("-") != -1) {
|
let left1 = row.ask.substring(0, row.ask.indexOf("-"));
|
let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
|
if (
|
Number(left1) != leftTwo ||
|
Number(right1) != rightTwo
|
) {
|
//this.$message.error("33333");
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flag = false;
|
}
|
} else {
|
//this.$message.error("44444");
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flag = false;
|
}
|
}
|
}
|
}
|
// 如果检测要求含有≤ < ≥ > 符号
|
const regex = /[≤<≥>]/;
|
const match = row.tell.match(regex);
|
if (match) {
|
// 符号不一致
|
if (row.ask.indexOf(match[0]) != 0) {
|
//this.$message.error("555555");
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flag = false;
|
} else {
|
// 符号一致
|
|
// 如果检测要求含有正负号 并且含有&号 ≥0.69&≤0.76 要求描述
|
if (row.tell.indexOf("&") != -1) {
|
if (row.ask.indexOf("&") == -1) {
|
//this.$message.error("检测要求不符合要求描述");
|
// row.ask = row.tell;
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
} else {
|
let left = row.tell.substring(0, row.tell.indexOf("&"));
|
let right = row.tell.substring(row.tell.indexOf("&") + 1);
|
|
let leftAsk = row.ask.substring(0, row.ask.indexOf("&"));
|
let rightAsk = row.ask.substring(row.ask.indexOf("&") + 1);
|
console.log("&", left, right, leftAsk, rightAsk);
|
if (leftAsk != left || rightAsk != right) {
|
//this.$message.error("88888");
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flag = false;
|
}
|
}
|
} else {
|
const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, "g");
|
const matchTow = row.tell.match(regex);
|
let right = Number(matchTow[0].split(match[0])[1]);
|
let left = row.ask.substring(row.ask.indexOf(match[0]) + 1);
|
if (Number(left) != Number(right)) {
|
//this.$message.error("666666");
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flag = false;
|
}
|
}
|
}
|
}
|
// 如果要求描述含有范围
|
const regexTwo = /[~-]/;
|
const matchTwo = row.tell.match(regexTwo);
|
const matchAsk = row.ask.match(regexTwo);
|
if (matchTwo) {
|
let left = row.tell.substring(0, row.tell.indexOf(matchTwo[0]));
|
let right = row.tell.substring(row.tell.indexOf(matchTwo[0]) + 1);
|
if (!isNaN(Number(left)) && !isNaN(Number(right))) {
|
let leftAsk = row.ask.substring(
|
0,
|
row.ask.indexOf(matchAsk[0])
|
);
|
let rightAsk = row.ask.substring(
|
row.ask.indexOf(matchAsk[0]) + 1
|
);
|
if (
|
Number(leftAsk) != Number(left) ||
|
Number(rightAsk) != Number(right)
|
) {
|
//this.$message.error("777777");
|
this.errOrFiberList.push(
|
"光纤管套色标" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flag = false;
|
}
|
}
|
}
|
});
|
}
|
});
|
|
// 光纤带检测项信息校验
|
this.fibersList.forEach((item) => {
|
if (item.productList.length > 0) {
|
item.productList.forEach((row) => {
|
if (row.ask == null || row.ask == "") {
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
}
|
if (row.tell == null || row.tell == "") {
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.color +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
}
|
// 如果检测要求含有正负号
|
if (row.tell.indexOf("±") != -1) {
|
let left = row.tell.substring(0, row.tell.indexOf("±"));
|
let right = row.tell.substring(row.tell.indexOf("±") + 1);
|
// 如果可以转化为数值
|
if (!isNaN(Number(left)) && !isNaN(Number(right))) {
|
if (row.ask.indexOf("-") != -1) {
|
let left1 = row.ask.substring(0, row.ask.indexOf("-"));
|
let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
|
if (
|
Number(left1) != Number(left) - Number(right) ||
|
Number(right1) != Number(left) + Number(right)
|
) {
|
// this.$message.error('11111')
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.colorShow +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flags = false;
|
}
|
} else {
|
// this.$message.error('2222')
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.colorShow +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flags = false;
|
}
|
}
|
// 如果要求描述左边不能转化为数值
|
else if (isNaN(Number(left)) && !isNaN(Number(right))) {
|
const regex = /[~-]/;
|
const match = left.match(regex);
|
// 左边含有 - ~ 符号
|
if (match) {
|
let newLeft = "";
|
if (left.includes("(")) {
|
newLeft = left.replace("(", "(");
|
}
|
if (left.includes(")")) {
|
newLeft = newLeft.replace(")", ")");
|
}
|
const regexTwo = /\((\d+(\.\d+)?)([~-])(\d+(\.\d+)?)\)/;
|
const matchTwo = newLeft.match(regexTwo);
|
let leftTwo = Number(matchTwo[1]) - Number(right);
|
let rightTwo = Number(matchTwo[4]) + Number(right);
|
if (row.ask.indexOf("-") != -1) {
|
let left1 = row.ask.substring(0, row.ask.indexOf("-"));
|
let right1 = row.ask.substring(row.ask.indexOf("-") + 1);
|
if (
|
Number(left1) != leftTwo ||
|
Number(right1) != rightTwo
|
) {
|
// this.$message.error('33333')
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.colorShow +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flags = false;
|
}
|
} else {
|
// this.$message.error('44444')
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.colorShow +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flags = false;
|
}
|
}
|
}
|
}
|
// 如果检测要求含有≤ < ≥ > 符号
|
const regex = /[≤<≥>]/;
|
const match = row.tell.match(regex);
|
if (match) {
|
// 符号不一致
|
if (row.ask.indexOf(match[0]) != 0) {
|
// this.$message.error('555555')
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.colorShow +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flags = false;
|
} else {
|
// 符号一致
|
if (row.tell.indexOf("&") != -1) {
|
if (row.ask.indexOf("&") == -1) {
|
// this.$message.error("检测要求不符合要求描述");
|
// row.ask = row.tell;
|
} else {
|
let left = row.tell.substring(0, row.tell.indexOf("&"));
|
let right = row.tell.substring(row.tell.indexOf("&") + 1);
|
|
let leftAsk = row.ask.substring(0, row.ask.indexOf("&"));
|
let rightAsk = row.ask.substring(row.ask.indexOf("&") + 1);
|
console.log("&", left, right, leftAsk, rightAsk);
|
if (leftAsk != left || rightAsk != right) {
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.colorShow +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flags = false;
|
}
|
}
|
} else {
|
const regex = new RegExp(`${match[0]}(\\d+(\\.\\d+)?)`, "g");
|
const matchTow = row.tell.match(regex);
|
let right = Number(matchTow[0].split(match[0])[1]);
|
let left = row.ask.substring(row.ask.indexOf(match[0]) + 1);
|
if (Number(left) != Number(right)) {
|
// this.$message.error('666666')
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.colorShow +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flags = false;
|
}
|
}
|
}
|
}
|
// 如果要求描述含有范围
|
const regexTwo = /[~-]/;
|
const matchTwo = row.tell.match(regexTwo);
|
const matchAsk = row.ask.match(regexTwo);
|
if (matchTwo) {
|
let left = row.tell.substring(0, row.tell.indexOf(matchTwo[0]));
|
let right = row.tell.substring(row.tell.indexOf(matchTwo[0]) + 1);
|
if (!isNaN(Number(left)) && !isNaN(Number(right))) {
|
let leftAsk = row.ask.substring(
|
0,
|
row.ask.indexOf(matchAsk[0])
|
);
|
let rightAsk = row.ask.substring(
|
row.ask.indexOf(matchAsk[0]) + 1
|
);
|
if (
|
Number(leftAsk) != Number(left) ||
|
Number(rightAsk) != Number(right)
|
) {
|
// this.$message.error('777777')
|
this.errOrFiberRibbonList.push(
|
"光纤带" +
|
item.colorShow +
|
" " +
|
row.inspectionItem +
|
" " +
|
row.inspectionItemSubclass
|
);
|
flags = false;
|
}
|
}
|
}
|
});
|
}
|
});
|
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
|
// })
|
|
// item.fibers = this.fibersList // 光纤带
|
let fibersFilter = this.fibersList.filter(
|
(a) => item.color == a.color
|
);
|
fibersFilter.forEach((aa) => {
|
aa.fiber = aa.fiber.filter((b) => b.bushColor == aa.color);
|
});
|
item.fibers = fibersFilter;
|
item.fiber = []; // 光纤
|
} else {
|
// 如果光纤带没有值
|
item.fibers = []; // 光纤带
|
item.fiber = this.fiberList.filter((a) => item.color == a.bushColor); // 光纤
|
//item.fiber = this.fiberList // 光纤
|
}
|
});
|
if (!flag || !flags) {
|
// 消息提示
|
this.errOrFiberRibbonList = [...new Set(this.errOrFiberRibbonList)];
|
this.errOrFiberList = [...new Set(this.errOrFiberList)];
|
let list = [...this.errOrFiberRibbonList, ...this.errOrFiberList];
|
|
let newData = [];
|
const h = this.$createElement;
|
for (let i in list) {
|
const lastChar = list[i].slice(-1);
|
if (lastChar == "-") {
|
list[i] = list[i].slice(0, -1);
|
}
|
newData.push(
|
h(
|
"p",
|
{ style: "font-size: 14px;color: red;" },
|
Number(i) + 1 + "、" + list[i]
|
)
|
);
|
}
|
newData.push(
|
h(
|
"p",
|
{
|
style:
|
"font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
|
},
|
"以上项目检测要求与要求描述不匹配,确定保存?"
|
)
|
);
|
this.$confirm("提示", {
|
title: "提示",
|
message: h("div", null, newData),
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "",
|
})
|
.then(() => {
|
this.$message.success("已保存");
|
this.sample.forEach((a) => {
|
a.bushing = this.bushing;
|
});
|
this.$emit("saveFiberopticConfig", eventData);
|
console.log("this.sample", this.sample);
|
// 清空错误消息
|
this.errOrFiberList = [];
|
this.errOrFiberRibbonList = [];
|
})
|
.catch(() => {
|
// 清空错误消息
|
this.errOrFiberList = [];
|
this.errOrFiberRibbonList = [];
|
});
|
} else {
|
this.$message.success("已保存");
|
this.sample.forEach((a) => {
|
a.bushing = this.bushing;
|
});
|
let eventData = {
|
bushing: this.bushing,
|
fiberPairing: this.bsm2Val2,
|
};
|
this.$emit("saveFiberopticConfig", eventData);
|
console.log("this.sample", this.sample);
|
}
|
},
|
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;
|
}
|
}
|
}
|
this.isBsm2Val2 = true;
|
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) {
|
if (this.selfConnectBoolean) {
|
this.bsm2Val2 = [];
|
// this.bsm2Val2 需要的最终结果 this.fiberList 下拉框内容
|
// 过滤出套管和色标一致的数据 以及相应的下标
|
let newFiberList = [];
|
let resultList = [];
|
for (let i = 0; i < this.fiberList.length; i++) {
|
let data = this.fiberList[i];
|
if (data.bushColor == data.color) {
|
newFiberList.push([data.bushColor, i + 1]);
|
}
|
}
|
// 根据字典进行一个排序
|
for (let i = 0; i < this.colors.length; i++) {
|
let color = this.colors[i];
|
for (let j = 0; j < newFiberList.length; j++) {
|
let newColor = newFiberList[j];
|
if (color.value == newColor[0]) {
|
newFiberList[j].push(color.orderNum);
|
}
|
}
|
}
|
newFiberList.sort((o1, o2) => o1[2] - o2[2]);
|
// 根据规则进行赋值 1-2 3-4 5-6 7-8 9-10
|
for (let i = 0; i < newFiberList.length; i++) {
|
// 避免多次循环
|
if (newFiberList.length < 2 * i + 1) {
|
break;
|
}
|
if (
|
newFiberList.length == 2 * i + 1 &&
|
newFiberList.length % 2 != 0
|
) {
|
resultList.push([]);
|
} else {
|
resultList.push([
|
newFiberList[2 * i][1],
|
newFiberList[2 * i + 1][1],
|
]);
|
}
|
}
|
resultList.length = val;
|
console.log("resultList", resultList);
|
this.bsm2Val2 = resultList;
|
console.log("this.bsm2Val2", this.bsm2Val2);
|
} else {
|
// if (val == this.bsm2Val3.length) {
|
// this.bsm2Val2 = [];
|
// this.computationalPairing(this.selectFiberList.length,true);
|
// if (this.bsm2Val2.length === 0) {
|
// this.bsm2Val =
|
// ((this.selectFiberList.length + 1) * this.selectFiberList.length) / 2;
|
// this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
|
// } else {
|
// this.bsm2Val = this.selectFiberList.length;
|
// }
|
// this.bsm1DiaLoading = false;
|
// console.log('loading',this,this.bsm1DiaLoading);
|
// } else {
|
// 一对一
|
this.bsm1DiaLoading = true;
|
let list = [];
|
let length = this.selectFiberList.length;
|
if (val) {
|
let num = 0;
|
if (val > length) {
|
num = length;
|
} else {
|
num = val;
|
}
|
for (let i = 1; i <= num; i++) {
|
list.push([i, i]);
|
}
|
}
|
// 剩余的按照规则来执行
|
if (val > length) {
|
for (let i = 1; i <= length; i++) {
|
for (let j = 1; j <= length; j++) {
|
if (list.length < val) {
|
if (i < j) {
|
list.push([i, j]);
|
}
|
}
|
}
|
}
|
}
|
this.bsm2Val2 = list;
|
this.bsm1DiaLoading = false;
|
}
|
//}
|
},
|
},
|
};
|
</script>
|
|
<style scoped>
|
.ins_order_config {
|
width: 100%;
|
height: 100%;
|
overflow-y: auto;
|
overflow-x: hidden;
|
}
|
.models {
|
font-size: 14px;
|
width: 80%;
|
overflow: hidden;
|
text-overflow: ellipsis;
|
white-space: nowrap;
|
}
|
.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 {
|
width: calc(100% - 40px);
|
background-color: #fff;
|
padding: 5px 40px 5px 0;
|
}
|
|
.search_thing {
|
display: flex;
|
align-items: center;
|
height: 50px;
|
}
|
|
.search_label {
|
width: 120px;
|
font-size: 14px;
|
text-align: right;
|
}
|
|
.search_input {
|
width: calc(100% - 120px);
|
}
|
.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>
|