From 103d02733dba8942af2df34bcab948a10773b6be Mon Sep 17 00:00:00 2001 From: lxp <1928192722@qq.com> Date: 星期四, 08 八月 2024 21:22:02 +0800 Subject: [PATCH] 光纤配置完善 --- src/components/do/b1-ins-order/fiberoptic-config-two.vue | 1585 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/do/b1-ins-order/add.vue | 9 src/components/do/b1-inspect-order-plan/Inspection.vue | 2 src/components/do/b1-ins-order/fiberoptic-config.vue | 127 ++- src/components/view/b1-inspection-order.vue | 5 5 files changed, 1,678 insertions(+), 50 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 225de2c..f62bcb6 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -620,7 +620,8 @@ </el-row> </span> </el-dialog> - <fiberOpticConfig :currentId="currentId" @saveFiberopticConfig="getTotal()" v-if="configShow" :active="active" /> + <fiberOpticConfig :currentId="currentId" @saveFiberopticConfig="getTotal()" v-if="configShow && examine == 0" :active="active" /> + <fiberOpticConfigTwo :currentId="currentId" @saveFiberopticConfig="getTotal()" v-if="configShow && examine == 1" :active="active" /> <equipConfig :currentId="currentId" v-if="equipConfigShow" :active="active" /> <cableConfig v-if="cableConfigShow" :active="active" /> <!-- 鍗曢�夌壒娈婂�煎鐞嗘--> @@ -906,6 +907,7 @@ <script> import ValueTable from '../../tool/value-table.vue' import fiberOpticConfig from './fiberoptic-config.vue' +import fiberOpticConfigTwo from './fiberoptic-config-two.vue' import equipConfig from './equip-config.vue' import cableConfig from './cable-config.vue' import Vue from 'vue' @@ -915,10 +917,15 @@ components: { ValueTable, fiberOpticConfig, + fiberOpticConfigTwo, equipConfig, cableConfig }, props: { + examine: { + type: Number, + default: () => 0 + }, active: { type: Number, default: () => 0 diff --git a/src/components/do/b1-ins-order/fiberoptic-config-two.vue b/src/components/do/b1-ins-order/fiberoptic-config-two.vue new file mode 100644 index 0000000..a45fbcf --- /dev/null +++ b/src/components/do/b1-ins-order/fiberoptic-config-two.vue @@ -0,0 +1,1585 @@ +<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 style="font-size: 14px;">{{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:100px"></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:100px" + :disabled="packageInfo.radio===0||active!=1"></el-input> + </div> + </div> + <el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px" size="small" + @selection-change="handleSelectionChange1" + :header-cell-class-name="setClassName0"> + <!-- <el-table-column + type="selection" + width="45" + :selectable="()=>(active==1)"> + </el-table-column> --> + <el-table-column label="绠¤壊鏍�" show-overflow-tooltip> + <template slot-scope="scope"> + <el-select v-model="scope.row.color" size="mini" :disabled="active!=1" 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 prop="sonLaboratory" ></el-table-column> + <el-table-column prop="inspectionItem" label="妫�楠岄」" show-overflow-tooltip> + </el-table-column> + <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" show-overflow-tooltip width="100px"> + </el-table-column> + <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="90" show-overflow-tooltip> + </el-table-column> + <el-table-column prop="price" label="鍗曚环" width="70" show-overflow-tooltip> + </el-table-column> + <el-table-column prop="unit" label="鍗曚綅" width="70" show-overflow-tooltip> + </el-table-column> + <!-- <el-table-column prop="manDay" label="棰勮鏃堕棿" width="90" show-overflow-tooltip> + </el-table-column> --> + <el-table-column prop="ask" label="妫�娴嬭姹�" show-overflow-tooltip width="200px"> + <template slot-scope="scope"> + <el-input v-model="scope.row.ask" placeholder="璇疯緭鍏�" size="small" :disabled="active!=1" v-if="!isAskOnlyRead"></el-input> + <span v-else>{{ scope.row.ask }}</span> + </template> + </el-table-column> + </el-table> + </div> + </el-col> + </el-row> + <el-row :gutter="10"> + <el-col :span="12" v-if="packageInfo.ismiers"> + <div class="grid-content"> + <h5>鍏夌氦甯� + <el-button size="mini" type="primary" class="btns" @click="addFibers" + 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: 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 + type="selection" + width="55" + :selectable="()=>(active==1)"> + </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-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="500px" :show-close="false" :before-close="beforeClose"> + <div class="body" style="max-height: 60vh;"> + <el-row v-if="bsm1"> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span">* </span>鎶ゅ瀵嗗害锛�</div> + <div class="search_input"> + <el-radio-group v-model="bsm1Val" @input="upBsm1"> + <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" :label="a"></el-radio> + </el-radio-group> + </div> + </el-col> + <el-col class="search_thing" :span="22"> + <div class="search_label">瑕佹眰鍊硷細</div> + <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''"> + <el-radio-group v-model="bsm1Val" @input="upBsm1"> + <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" + :label="a">{{JSON.parse(bsmRow.ask)[ai]}}</el-radio> + </el-radio-group> + </div> + </el-col> + <el-col class="search_thing" :span="22"> + <div class="search_label">鍗曚环锛�</div> + <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''"> + <el-radio-group v-model="bsm1Val" @input="upBsm1"> + <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" + :label="a">{{JSON.parse(bsmRow.price)[ai]}}</el-radio> + </el-radio-group> + </div> + </el-col> + </el-row> + <el-row v-if="bsm2"> + <el-col class="search_thing" :span="22"> + <div class="search_label" style="width: 220px;"><span class="required-span">* </span>鏍峰搧鐔旀帴閰嶅鏁伴噺锛�</div> + <div class="search_input"> + <el-input-number size="medium" v-model="bsm2Val" :min="1" :max="bsm2Val3.length" :precision="0" style="width: 70%;" + :controls="false" @change="bsm2Up"></el-input-number> + <span>MAX锛歿{bsm2Val3.length}}</span> + </div> + </el-col> + <el-col style="margin-top: 6px;"> + <el-col v-for="(a,ai) in bsm2Val2" :key="ai"> + <el-col :span="10"> + <el-select v-model="a[0]" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="(item,index) in sampleList" + :key="index" + :label="index+1" + :value="index+1"> + </el-option> + </el-select> + </el-col> + <!-- <el-col :span="10" class="pairing">{{a[0]}}</el-col> --> + <el-col :span="4" class="pairing" style="border: 0;color: rgba(0, 0, 0, 0.2);">鈥斺��</el-col> + <el-col :span="10"> + <el-select v-model="a[1]" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="(item,index) in sampleList" + :key="index" + :label="index+1" + :value="index+1"> + </el-option> + </el-select> + </el-col> + <!-- <el-col :span="10" class="pairing">{{a[1]}}</el-col> --> + </el-col> + </el-col> + </el-row> + <!-- <el-row v-if="bsm3"> + <el-col class="search_thing" :span="22" style="display: flex;align-items: center;"> + <div class="search_label"><span class="required-span">* </span>RTS锛�</div> + <div class="search_input"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="bsm3Val"></el-input> + </div> + </el-col> + </el-row> --> + </div> + </el-dialog> + <el-dialog title="RTS濉啓" :visible.sync="bsm3Dia" width="500px" :show-close="false" :before-close="beforeClose0"> + <el-row> + <el-col class="search_thing" :span="22" style="display: flex;align-items: center;"> + <div class="search_label"><span class="required-span">* </span>RTS锛�</div> + <div class="search_input"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="bsm3Val"></el-input> + </div> + </el-col> + </el-row> + </el-dialog> + </div> +</template> + +<script> +import { set } from 'vue' + 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, + } + }, + computed: { + isAllDisabled() { + return this.multiFiberList.length > 0||this.currentDetectionItems||this.active!=1 + }, + }, + watch: { + // mireModel(val1,val0) { + // if(val1!=val0){ + // this.mireStandards = [] + // this.fiberList = [] + // this.multiFiberList = [] + // this.detectionItems = [] + // this.currentDetectionItems = null; + // } + // }, + // mireStandard(val1,val0) { + // if(val1!=val0){ + // this.fiberList = [] + // this.multiFiberList = [] + // this.detectionItems = [] + // this.currentDetectionItems = null; + // } + // } + }, + mounted() { + this.$parent.sampleIds.forEach(a => { + for (var i = 0; i < this.$parent.sampleList.length; i++) { + if (this.$parent.sampleList[i].id == a) { + this.sample.push(this.$parent.sampleList[i]) + this.models += (',' + this.$parent.sampleList[i].model) + break + } + } + }) + 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)) + 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.forEach(b=>{ + // 鍏夌氦甯� + 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() { + 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.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].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 + } + 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 + 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) + } + + }) + }, + 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) + } + + // 缁欓�変腑鐨勫厜绾ゅ甫璧嬪�� + 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 // 鍙傝�冩爣鍑� + } + }) + } + }) + } + }) + }, + 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].label, + 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].label, + 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].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 + } + // 濂楃鐨勬祴璇曢噺 * 閫夋嫨鐨勫厜绾ゅ甫鏁伴噺 + 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 + } + // if(type == 1) { + // 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){ + // 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) + // } + // } + // }) + // },1000) + // }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.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) + // } + // } + // }) + // },1000); + // } + }, + 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 + } + // if (row.ask.includes('RTS')&&row.state === 1) { + // this.bsmRow3 = null; + // row.rts = '' + // this.bsm3Val = '' + // this.bsm3Dia = true + // this.bsmRow3 = row + // }else{ + // this.bsm3Dia = false + // } + }, + computationalPairing(n){ + const nums = []; + for (let i = 1; i <= n; i++) { + nums.push(i); + } + this.bsm2Val3 = this.HaveJson(this.permute(nums)) + }, + setClassName({ column }) { + if (column.type == 'selection' && !this.isAllDisabled) { + return 'all-disabled' + } + }, + setClassName0({ column }){ + if (column.type == 'selection' && this.active!=1) { + return 'all-disabled' + } + }, + clearFibers(){ + this.packageInfo.ismiers = false + this.fibersList = [] + this.bushing.forEach(a=>{ + a.fibers = [] + }) + }, + save(){ + // if(this.bushing.length === 0){ + // this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨') + // return + // } + // for(let a in this.bushing){ + // if(this.bushing[a].fibers.length===0&&this.bushing[a].fiber.length===0){ + // this.$message.error(this.bushing[a].color+'绠¤壊鏍囧绠$己灏戦厤缃棤娉曚繚瀛�') + // return + // } + // } + // this.sample.forEach(a=>{ + // a.bushing = this.bushing + // }) + // this.$message.success('宸蹭繚瀛�') + // this.$emit('saveFiberopticConfig') + + 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; + } + + .ins_order_config::-webkit-scrollbar { + width: 0; + } + + .title { + height: 60px; + line-height: 60px; + } + + .center { + width: 100%; + height: calc(100% - 60px); + } + + .grid-content { + background: #fff; + border-radius: 4px; + box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.05); + } + + .grid-content h5 { + color: #3A7BFA; + font-weight: 400; + line-height: 32px; + padding-left: 16px; + box-sizing: border-box; + border-bottom: 1px solid #eee; + } + + .search-item { + display: flex; + align-items: center; + line-height: 36px; + } + + .search-item label { + width: 90px; + font-size: 12px; + color: #606266; + /* text-align: right; */ + } + + .btns { + margin: 8px 0 8px 10px; + } + + >>>.el-table th.el-table__cell>.cell { + padding-top: 2px !important; + padding-bottom: 2px !important; + } + >>>.all-disabled .el-checkbox__input .el-checkbox__inner { + background-color: #edf2fc; + border-color: #dcdfe6; + cursor: not-allowed; + } +</style> diff --git a/src/components/do/b1-ins-order/fiberoptic-config.vue b/src/components/do/b1-ins-order/fiberoptic-config.vue index 543547e..99b9bed 100644 --- a/src/components/do/b1-ins-order/fiberoptic-config.vue +++ b/src/components/do/b1-ins-order/fiberoptic-config.vue @@ -31,16 +31,16 @@ 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> + <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: 70px;">鏍囧噯閲�</label> - <el-input v-model="packageInfo.standNum" placeholder="璇疯緭鍏�" size="small" @blur="addStandNum" :disabled="active!=1"></el-input> + <label style="width: 100px">姣忔牴绠℃娊妫�鏍囧噯閲�</label> + <el-input v-model="packageInfo.standNum" placeholder="璇疯緭鍏�" size="small" @blur="addStandNum" :disabled="active!=1" style="width:100px"></el-input> </div> <div class="search-item"> - <label style="width: 70px;">妫�娴嬮噺</label> + <label style="width: 100px">姣忔牴绠℃娊妫�妫�娴嬮噺</label> <el-input v-model="packageInfo.testNum" placeholder="璇疯緭鍏�" size="small" @blur="addTestNum" - :disabled="packageInfo.radio===0||active!=1"></el-input> + :disabled="packageInfo.radio===0||active!=1" style="width:100px"></el-input> </div> </div> <el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px" size="small" @@ -78,7 +78,7 @@ @select="upProductSelect" > <el-table-column type="selection" width="55" - :selectable="()=>((currentDetectionItems||this.multiFiberList.length > 0)&&active==1)"> + :selectable="()=>((currentDetectionItems||this.selectFiberList.length > 0 || this.multiFiberList.length > 0)&&active==1)"> </el-table-column> <el-table-column label="瀹為獙瀹�" show-overflow-tooltip prop="sonLaboratory" ></el-table-column> <el-table-column prop="inspectionItem" label="妫�楠岄」" show-overflow-tooltip> @@ -134,7 +134,7 @@ <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> @@ -358,6 +358,7 @@ return { detectionType: null, detectionSelect: [], + selectFiberList: [], type:1, saveLoad: false, packageInfo: { @@ -467,9 +468,8 @@ // 鍏夌氦甯� this.fibersList.push(b) // 鍏夌氦 - b.fiber.forEach(c=>{ - this.fiberList.push(c) - }) + // this.fiberList = [] + // this.fiberList = b.fiber }) } else { a.fiber.forEach(b=>{ @@ -478,6 +478,7 @@ } }else{ + this.fiberList = [] a.fiber.forEach(b=>{ this.fiberList.push(b) }) @@ -492,8 +493,11 @@ }, methods: { handleSelectionChange(val) { - this.selectFibers = 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 @@ -502,27 +506,47 @@ this.detectionSelect = val // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦甯� if(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.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.multiFiberList.forEach(item => { + 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 } }) }) + + if(this.multiFiberList.length == 1) { + this.multiFiberList.forEach(item => { + this.fibersList.forEach(a => { + if(a.ident == item.ident){ + a.fiber = this.fiberList + } + }) + }) + }else if(this.multiFiberList.length > 1) { + this.fibersList.forEach(item => { + item.fiber = this.fiberList + }) + } } }, handleSelectionChange4(val){ - this.multiFiberList = val + this.selectFiberList = val + if(val != 0) { + this.rowClickFiber(val[val.length-1],null,null,0) + } }, outConfig() { this.$parent.configShow = false @@ -563,6 +587,11 @@ }, // 濂楃妫�娴嬮噺璧嬪�� 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 => { @@ -588,7 +617,7 @@ this.packageInfo.testNum = this.packageInfo.standNum this.selectBushing = this.bushing this.addFibers() - this.selectFibers = this.fibersList + this.multiFiberList = this.fibersList // 榛樿鍕鹃�� setTimeout(() => { this.selectBushing.forEach(item =>{ @@ -596,7 +625,7 @@ this.$refs.table0.toggleRowSelection(rowToSelect, true) }) - this.selectFibers.forEach(item =>{ + this.multiFiberList.forEach(item =>{ let rowToSelect = this.fibersList.find(a => a.ident == item.ident) this.$refs.table2.toggleRowSelection(rowToSelect, true) }) @@ -609,7 +638,6 @@ this.packageInfo.testNum = this.packageInfo.standNum this.selectBushing = this.bushing this.addFiber() - // 榛樿鍕鹃�� setTimeout(() => { this.selectBushing.forEach(item =>{ @@ -759,11 +787,11 @@ // }) // 灏嗕笅鎷夋鍊艰祴鍊肩粰鍏夌氦 鐩戝惉鍘婚櫎 - if(this.multiFiberList.length == 0) { + if(this.selectFiberList.length == 0) { this.$message.error('璇烽�夋嫨鏁版嵁') return } - this.multiFiberList.forEach(item => { + this.selectFiberList.forEach(item => { this.fiberList.forEach(a => { if(a.ident == item.ident){ a.model = this.mireModel.split(' - ')[1] // 鍏夌氦瑙勬牸 @@ -863,7 +891,6 @@ }) }, addFiber() { - // 鏈�鏂� let colors2 = [] if (this.packageInfo.num1 / this.colors.length > 1) { @@ -878,8 +905,8 @@ this.fiberList = [] // 閫夋嫨浜嗗厜绾ゅ甫 if (this.packageInfo.ismiers) { - if(this.selectFibers.length != 0){ - this.selectFibers.forEach((a,index) => { + if(this.multiFiberList.length != 0){ + this.multiFiberList.forEach((a,index) => { a.fiber = [] for (var i = 0; i < parseInt(a.num); i++) { let fiber = { @@ -904,6 +931,7 @@ bushColor: a.color, color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label, model: null, + noSplitModel: null, standard: null, productList: [] } @@ -1131,6 +1159,11 @@ // }) // }, 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() @@ -1151,28 +1184,28 @@ // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪�� 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) - - if (row.productList != null && row.productList.length > 0) { + if (row.productList != null && row.productList.length > 0) { + let product = JSON.parse(JSON.stringify(row.productList)) setTimeout(() => { - row.productList.forEach(product => { - let rowToSelect = this.detectionItems.find(item => item.id === product.id); + product.forEach(p => { + let rowToSelect = this.detectionItems.find(item => item.id === p.id); if (rowToSelect) { - this.toggleSelection(rowToSelect); - } + this.toggleSelection(rowToSelect); + } }); - },200) - + },200) } } }) },1000) }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() @@ -1198,19 +1231,19 @@ this.detectionItems = res.data this.detectionType = 0 this.$set(this.detectionItems,'type',0) - - if (row.productList != null && row.productList.length > 0) { + + if (row.productList != null && row.productList.length > 0) { + let product = JSON.parse(JSON.stringify(row.productList)) setTimeout(() => { - row.productList.forEach(product => { - let rowToSelect = this.detectionItems.find(item => item.id === product.id); + product.forEach(p => { + let rowToSelect = this.detectionItems.find(item => item.id === p.id); if (rowToSelect) { - this.toggleSelection(rowToSelect); + this.toggleSelection(rowToSelect); } }); },200) } } - }) },1000); } @@ -1330,8 +1363,8 @@ }, upProductSelect(selection, row) { row.state = row.state == 1 ? 0 : 1 - if(this.multiFiberList.length > 0){ - this.multiFiberList.map(item => { + if(this.selectFiberList.length > 0){ + this.selectFiberList.map(item => { item.productList.map(m=>{ if(m.id == row.id){ m.state = row.state; @@ -1430,9 +1463,9 @@ this.bushing.forEach(item=>{ // 濡傛灉鍏夌氦甯︽湁鍊� if(this.fibersList.length != 0) { - this.fibersList.forEach(a=>{ - a.fiber = this.fiberList.filter(b=>b.fibersIdent == a.ident) - }) + // this.fibersList.forEach(a=>{ + // a.fiber = this.fiberList + // }) item.fibers = this.fibersList // 鍏夌氦甯� item.fiber = [] // 鍏夌氦 }else { diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index 2f55a89..b9f79b7 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -417,7 +417,7 @@ <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i> <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">{{currentSample.sampleCode}}</div> <i class="el-icon-caret-right table_caret" style="width: 16px;" - v-if="!currentFiberOpticTape&&!currentFiberOptic"@click="caretSample(1)"></i> + v-if="!currentFiberOpticTape&&!currentFiberOptic" @click="caretSample(1)"></i> </div> </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧鍨嬪彿'"> diff --git a/src/components/view/b1-inspection-order.vue b/src/components/view/b1-inspection-order.vue index a1517d9..3aee027 100644 --- a/src/components/view/b1-inspection-order.vue +++ b/src/components/view/b1-inspection-order.vue @@ -340,7 +340,7 @@ </el-dialog> </div> <div style="width: 100%;height: 100%;" v-if="active >0"> - <Add :active="active" :currentId="currentId" v-if="active<4" /> + <Add :active="active" :currentId="currentId" v-if="active<4" :examine = "examine" /> </div> <el-dialog title="鏍囩鎵撳嵃" :visible.sync="printDialogVisible" width="40%" top="5vh"> <div style="width:100%;height: 400px;overflow-y: auto;" v-loading="loadPint"> @@ -461,6 +461,7 @@ data() { return { deleteTilte:'鎾ら攢', + examine: null, deleteList:[], loadPint:false, checkAll: false, @@ -952,6 +953,7 @@ // this.verifyDialogVisible = true; this.active = 3; this.currentId = row.id + this.examine = 1 }, // 鎾ら攢 handlEquash(row) { @@ -1112,6 +1114,7 @@ // 涓嬪崟 playOrder(num) { this.active = num + this.examine = 0 this.refreshTable('page') }, handleTab(m, i) { -- Gitblit v1.9.3