| | |
| | | </el-radio-group> |
| | | </div> |
| | | <div style="display: flex; align-items: center"> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="openAddUnpass">新增不合格复测</el-button> |
| | | <!-- <el-button v-if="state == 1" size="small" type="primary" @click="openAddUnpass">新增不合格复测</el-button> |
| | | <el-button v-if="state == 1" size="small" type="primary" @click="unpassCheck">不合格复测</el-button> |
| | | <el-button v-if="state > 1" size="small" type="primary" @click="viewUnpassCheck">查看不合格复测</el-button> |
| | | <el-button v-if="state > 1" size="small" type="primary" @click="viewUnpassCheck">查看不合格复测</el-button> --> |
| | | <span v-if="cableTagList.length > 0"> 电缆配置:</span> |
| | | <el-select v-if="cableTagList.length > 0" v-model="currentTab" clearable placeholder="请选择" size="small" |
| | | @change="(m) => handleChangeCableTag(currentSample.id, 0, 'cableTag', m) |
| | |
| | | type="success">已检</el-tag> |
| | | </el-option> |
| | | </el-select> |
| | | <!-- 网分仪数采国产/进口 --> |
| | | <NetworkAnalyzerDataAcquisition :itemList="currentSample.insProduct" :param="param" |
| | | :equipOptions="equipOptions" |
| | | v-if="Array.isArray(currentSample.insProduct) && currentSample.insProduct.length > 0 && param" |
| | | ref="NetworkAnalyzerDataAcquisition" /> |
| | | <el-button :loading="dataAcquisitionLoading" v-if="state == 1" size="small" type="primary" |
| | | @click="getDataAcquisitionDevice">数据采集</el-button> |
| | | <el-button :type="dataAcquisitionEidtAble ? '' : 'primary'" v-if="state == 1" size="small" |
| | |
| | | </div> |
| | | <!-- 常规检验原始记录 --> |
| | | <div id="nav" v-loading="tableLoading" class="center-box"> |
| | | <template v-if=" |
| | | tableLists.find((m) => m.templateId == currentTable)"> |
| | | <template v-if="tableLists.find((m) => m.templateId == currentTable)"> |
| | | <table v-for="(item, index) in tableList" :key="index + currentTable + currentSample.id" border="1" |
| | | cellpadding="10" class="tables" id="myTable"> |
| | | <tbody> |
| | | <tr style="white-space: nowrap"> |
| | | 委托编号:{{ |
| | | insOrder.entrustCode |
| | | }} |
| | | <tr> |
| | | <th :colspan="50" style="text-align: left !important;"> |
| | | 委托编号:{{ |
| | | insOrder.entrustCode |
| | | }} |
| | | </th> |
| | | </tr> |
| | | <tr v-for="(m, i) in item.arr" :key="i"> |
| | | <td v-for="(n, j) in m" v-if="n.v.mc == undefined || Object.keys(n.v.mc).length === 4" |
| | | :id="item.templateId + '-' + n.i + '-' + n.r + '-' + n.c" :key="j" |
| | | :colspan="n.v.mc && n.v.mc.cs ? n.v.mc.cs : 1" :rowspan="n.v.mc && n.v.mc.rs ? n.v.mc.rs : 1" :style="`background:${n.v.bg ? n.v.bg : ''};color:${n.v.fc |
| | | };font-size:${n.v.fs}px;width:${handleWidth( |
| | | n |
| | | )}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl ? 'bold' : '' |
| | | };font-size:${n.v.fs}px;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl ? 'bold' : '' |
| | | };`"> |
| | | <div :class="`content-h-${n.v.ht} content-v-${n.v.vt}`" :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r] |
| | | }px;`" class="content"> |
| | | <template v-if=" |
| | | n.v.ps != undefined && |
| | | <template v-if="n.v.ps != undefined && |
| | | typeof n.v.ps.value === 'string' && |
| | | n.v.ps.value.includes('检验值') && |
| | | state == 1 |
| | |
| | | <el-select v-if=" |
| | | (getInspectionValueType(n.i) == 2 || |
| | | getInspectionValueType(n.i) == 5) && |
| | | state == 1 |
| | | state == 1 && (n.u != userId && n.u != undefined && n.u != '') |
| | | " v-model="n.v.v" class="table_input" @change="(m) => |
| | | changeInput( |
| | | m, |
| | |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">待定</span> |
| | | </template> |
| | | </template> |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && |
| | | <template v-else-if="n.v.ps != undefined && |
| | | n.v.ps.value === '设备编码' && |
| | | state == 1 |
| | | "> |
| | |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && n.v.ps.value === '设备名称' |
| | | "> |
| | | <el-select v-model="n.v.v" :disabled="state > 1" class="table_input" filterable multiple |
| | | placeholder="设备" remote @change="(val) => changeEquip(val, n)" |
| | | <el-select v-model="n.v.v" |
| | | :disabled="state > 1 || (n.u != userId && n.u != undefined && n.u != '')" class="table_input" |
| | | filterable multiple placeholder="设备" remote @change="(val) => changeEquip(val, n)" |
| | | @visible-change="(e) => getEquipOptions(e, n.i)"> |
| | | <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && |
| | | <template v-else-if="n.v.ps != undefined && |
| | | n.v.ps.value === '要求值' && |
| | | state == 1 |
| | | "> |
| | |
| | | state == 1 |
| | | "><span :style="`font-family:${n.v.ff} !important;`">{{ |
| | | toFixed(n.v.v, n.v.ct) |
| | | }}</span></template> |
| | | }}</span></template> |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && |
| | | n.v.ps.value === '最终值' && |
| | |
| | | toFixed(n.v.v, n.v.ct) |
| | | }}</span> |
| | | </template> |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && n.v.ps.value === '样品编号' |
| | | <template v-else-if="n.v.ps != undefined && n.v.ps.value === '样品编号' |
| | | "> |
| | | <div :title="currentSample.sampleCode" style=" |
| | | display: flex; |
| | |
| | | <i class="el-icon-caret-right table_caret" style="width: 16px" @click="caretSample(1)"></i> |
| | | </div> |
| | | </template> |
| | | <template v-else-if=" |
| | | n.v.ps != undefined && n.v.ps.value === '样品型号' |
| | | <template v-else-if="n.v.ps != undefined && n.v.ps.value === '样品型号' |
| | | "> |
| | | <div v-if=" |
| | | currentSample.model !== undefined && |
| | | <div v-if="currentSample.model !== undefined && |
| | | currentSample.model !== null |
| | | " :style="`font-family:${n.v.ff} !important;`"> |
| | | {{ currentSample.model }} |
| | | </div> |
| | | </template> |
| | | <template v-else-if="n.v.ps != undefined && n.v.ps.value === '起始时间' |
| | | "> |
| | | <span v-if="state > 1 || (n.u != userId && n.u != undefined && n.u != '')">{{ n.v.v }}</span> |
| | | <el-date-picker v-else v-model="n.v.v" type="datetime" placeholder="" format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" @change="(val) => changeTestTime(val, n, 'testStartTime')"> |
| | | </el-date-picker> |
| | | </template> |
| | | <template v-else-if="n.v.ps != undefined && n.v.ps.value === '终止时间' |
| | | "> |
| | | <span v-if="state > 1 || (n.u != userId && n.u != undefined && n.u != '')">{{ n.v.v }}</span> |
| | | <el-date-picker v-else v-model="n.v.v" type="datetime" placeholder="" format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" @change="(val) => changeTestTime(val, n, 'testEndTime')"> |
| | | </el-date-picker> |
| | | </template> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)"></span> |
| | | </div> |
| | |
| | | </div> |
| | | <el-drawer :size="550" :visible.sync="sampleVisible" title="样品切换"> |
| | | <el-table v-if="sampleVisible" ref="productTable" :current-row-key="currentKey" :data="sampleProduct" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | :row-class-name="tableRowClassName" :row-key="(record) => record.index" border class="el-table" height="100%" |
| | | highlight-current-row tooltip-effect="dark" @row-click="handleChangeSample"> |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :row-class-name="tableRowClassName" |
| | | :row-key="(record) => record.index" border class="el-table" height="100%" highlight-current-row |
| | | tooltip-effect="dark" @row-click="handleChangeSample"> |
| | | <el-table-column :key="Math.random()" align="center" label="序号" type="index" width="70px"> |
| | | </el-table-column> |
| | | <el-table-column label="样品编号" min-width="100px" prop="sampleCode" show-overflow-tooltip></el-table-column> |
| | |
| | | <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId" |
| | | :rawMaterialTag="rawMaterialTag" :sonLaboratory="sonLaboratory" :state="state" :typeSource="typeSource" |
| | | :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" /> |
| | | <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId" |
| | | <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId" :workShopId="workShopId" |
| | | :purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification> |
| | | <!--查看工时弹框--> |
| | | <viewManHourDia ref="viewManHourDia" @submit="openAddVerifyDia"></viewManHourDia> |
| | |
| | | import UnPassDialog from "../unpass/components/unPassDialog.vue"; |
| | | import AddUnPass from "../unpass/components/addUnPass.vue"; |
| | | import InspectionWord from "./components/InspectionWord.vue"; |
| | | import NetworkAnalyzerDataAcquisition from "./components/NetworkAnalyzerDataAcquisition.vue"; |
| | | import PurchaseVerification from "../unpass/components/PurchaseVerification.vue"; |
| | | import { |
| | | doInsOrder, |
| | |
| | | limsTable, |
| | | UnPassDialog, |
| | | InspectionWord, |
| | | NetworkAnalyzerDataAcquisition, |
| | | }, |
| | | data() { |
| | | return { |
| | | sonLaboratory: null, |
| | | workShopId: null, |
| | | orderId: null, |
| | | state: null, |
| | | inspectorList: null, |
| | |
| | | }, |
| | | }, |
| | | created() { |
| | | let { sonLaboratory, orderId, state, inspectorList, typeSource } = |
| | | let { sonLaboratory, orderId, state, inspectorList, typeSource, workShopId } = |
| | | this.$route.query; |
| | | this.workShopId = workShopId |
| | | this.sonLaboratory = sonLaboratory; |
| | | this.orderId = orderId; |
| | | this.id = this.orderId; |
| | |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | testEndTime: [], |
| | | testStartTime: [], |
| | | }; |
| | | }); |
| | | // 去重模板,返回有几个模板 |
| | |
| | | // 赋值当前样品列表 |
| | | this.sampleProduct = res.data.sampleProduct; |
| | | this.currentSample = this.HaveJson(this.sampleProduct[0]); |
| | | let insProduct = this.HaveJson(this.currentSample.insProduct); |
| | | // let insProduct = this.HaveJson(this.currentSample.insProduct); |
| | | // 温度、湿度赋值 |
| | | this.otherForm = { |
| | | temperature: this.insOrder.temperature |
| | |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | testEndTime: [], |
| | | testStartTime: [], |
| | | }; |
| | | }); |
| | | if (this.currentSample.index == undefined) |
| | |
| | | }, |
| | | // 多线程 |
| | | startWorker() { |
| | | console.log(`Worker 线程开始运行...`, this.worker, this.worker0) |
| | | if (this.worker) { |
| | | this.stopWorker(); // 确保之前的 Worker 已停止 |
| | | } |
| | |
| | | repetitionTag: this.repetitionTag |
| | | }); |
| | | this.tableLoading = false; |
| | | if (res.data.length > 0) { |
| | | if (res.data) { |
| | | return res.data; |
| | | } |
| | | }, |
| | |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | testEndTime: [], |
| | | testStartTime: [], |
| | | }; |
| | | }); |
| | | // 处理页面列表数据 |
| | |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | testEndTime: [], |
| | | testStartTime: [], |
| | | }; |
| | | }); |
| | | this.getTableLists0(list); |
| | |
| | | ) { |
| | | a.template[b].v.v = id.product.methodS; |
| | | } |
| | | if ( |
| | | a.template[b].v.ps != undefined && |
| | | a.template[b].v.ps.value === "试验条件" |
| | | ) { |
| | | a.template[b].v.v = id.product.radius; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | |
| | | (n) => n.v.ps != undefined && n.v.ps.value === "最终值" |
| | | ); //最终值列表 |
| | | a.template.forEach((b) => { |
| | | // console.log(444444, b) |
| | | if ( |
| | | b.v.ps != undefined && |
| | | b.v.ps.value === "序号" && |
| | |
| | | this.$set(b.v, "v", ""); |
| | | // b.v.v = '' |
| | | b.u = ""; |
| | | let obj = this.currentSample.insProduct.find(m => m.id == b.i) |
| | | if (obj) { |
| | | this.$set(b, "u", obj.checkUserId); |
| | | } |
| | | b.i && this.param[b.i] && this.param[b.i].insValue.push(b); |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === "计算值") { |
| | |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === "设备名称") { |
| | | this.$set(b.v, "v", ""); |
| | | b.u = ""; |
| | | let obj = this.currentSample.insProduct.find(m => m.id == b.i) |
| | | if (obj) { |
| | | this.$set(b, "u", obj.checkUserId); |
| | | } |
| | | // b.v.v = '' |
| | | b.i && this.param[b.i] && this.param[b.i].equipName.push(b); |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === "起始时间") { |
| | | this.$set(b.v, "v", ''); |
| | | let obj = this.currentSample.insProduct.find(m => m.id == b.i) |
| | | if (obj) { |
| | | this.$set(b, "u", obj.checkUserId); |
| | | } |
| | | // this.param[b.i].testStartTime = [] |
| | | b.i && this.param[b.i] && this.param[b.i].testStartTime.push(b); |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === "终止时间") { |
| | | this.$set(b.v, "v", ""); |
| | | let obj = this.currentSample.insProduct.find(m => m.id == b.i) |
| | | if (obj) { |
| | | this.$set(b, "u", obj.checkUserId); |
| | | } |
| | | // this.param[b.i].testEndTime = [] |
| | | b.i && this.param[b.i] && this.param[b.i].testEndTime.push(b); |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === "最终值") { |
| | | // b.v.v = '' |
| | |
| | | } |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === "结论") { |
| | | b.u = ""; |
| | | let obj = this.currentSample.insProduct.find(m => m.id == b.i) |
| | | if (obj) { |
| | | this.$set(b, "u", obj.checkUserId); |
| | | } |
| | | if ( |
| | | b.i !== undefined && |
| | | this.param[b.i] && |
| | |
| | | console.log("设备名称赋值----", e); |
| | | } |
| | | try { |
| | | // 起始时间赋值 |
| | | let testStartTime = a.insProductResult.testStartTime ? JSON.parse(a.insProductResult.testStartTime) : [] |
| | | for (let i = 0; i < testStartTime.length; i++) { |
| | | // 普通设备名称赋值 |
| | | this.param[a.id].testStartTime[i].v.v = testStartTime[i].v; |
| | | } |
| | | } catch (e) { |
| | | |
| | | } |
| | | try { |
| | | // 终止时间赋值 |
| | | let testEndTime = a.insProductResult.testEndTime ? JSON.parse(a.insProductResult.testEndTime) : [] |
| | | for (let i = 0; i < testEndTime.length; i++) { |
| | | // 普通设备名称赋值 |
| | | this.param[a.id].testEndTime[i].v.v = testEndTime[i].v; |
| | | } |
| | | } catch (e) { } |
| | | try { |
| | | // 最终值赋值 |
| | | this.param[a.id].resValue.v.v = this.toFixed( |
| | | a.lastValue, |
| | |
| | | }); |
| | | // 对excel函数进行处理 |
| | | this.handleExcelMethod(); |
| | | this.$nextTick(() => { |
| | | // 是否展示网分仪按钮 |
| | | this.$refs.NetworkAnalyzerDataAcquisition.init() |
| | | }) |
| | | }, |
| | | // 检验值输入后触发的函数 |
| | | changeInput(m, code, n, getDataType, changeSelect) { |
| | |
| | | // 定义一个函数来验证分数是否有效 |
| | | if (typeof n.v.v == "string") { |
| | | function isValidFraction(fraction) { |
| | | if (typeof fraction == 'number') { |
| | | return true |
| | | } |
| | | const [numerator, denominator] = fraction.split("/"); // 分子和分母 |
| | | return !(!denominator || !numerator); |
| | | } |
| | |
| | | console.log(888, error); |
| | | } |
| | | } |
| | | break; |
| | | // 赋值起始时间 |
| | | case "testEndTime": |
| | | if (value && value.length > 0) { |
| | | this.tableList[0].insProductResult[m] = []; |
| | | value.forEach((a, i) => { |
| | | let obj = { |
| | | v: a.v.v, |
| | | }; |
| | | this.tableList[0].insProductResult[m].push(obj); |
| | | }); |
| | | try { |
| | | this.tableList[0].insProductResult[m] = JSON.stringify( |
| | | this.tableList[0].insProductResult[m] |
| | | ); |
| | | } catch (error) { |
| | | console.log(888, error); |
| | | } |
| | | } |
| | | // this.tableList[0].insProductResult[m] = value ? value.v.v : ""; |
| | | break; |
| | | // 赋值终止时间 |
| | | case "testStartTime": |
| | | if (value && value.length > 0) { |
| | | this.tableList[0].insProductResult[m] = []; |
| | | value.forEach((a, i) => { |
| | | let obj = { |
| | | v: a.v.v, |
| | | }; |
| | | this.tableList[0].insProductResult[m].push(obj); |
| | | }); |
| | | try { |
| | | this.tableList[0].insProductResult[m] = JSON.stringify( |
| | | this.tableList[0].insProductResult[m] |
| | | ); |
| | | } catch (error) { |
| | | console.log(888, error); |
| | | } |
| | | } |
| | | // this.tableList[0].insProductResult[m] = value ? value.v.v : ""; |
| | | break; |
| | | // 赋值最终值 |
| | | case "resValue": |
| | |
| | | } |
| | | // 保存数据 |
| | | this.saveInsContext(n.i); |
| | | // 是否展示网分仪按钮 |
| | | this.$refs.NetworkAnalyzerDataAcquisition.init() |
| | | } catch (e) { |
| | | console.log("changeEquip----", e); |
| | | } |
| | | }, |
| | | // 起始时间/终止时间保存 |
| | | changeTestTime(val, n, type) { |
| | | this.$set(this.param[n.i][type][0].v, 'v', val) |
| | | this.saveInsContext(n.i); |
| | | }, |
| | | getAuthorizedPerson() { |
| | | selectUserCondition({ type: 1 }).then((res) => { |
| | |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null, |
| | | testEndTime: [], |
| | | testStartTime: [], |
| | | }; |
| | | }); |
| | | // 页面数据处理 |