From 2e4a6c4526b6c22808d5877f2050da852bfaebe7 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 30 十二月 2025 14:31:47 +0800
Subject: [PATCH] 外购成品检验功能迁移v1
---
src/views/business/inspectionTask/inspection.vue | 290 ++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 243 insertions(+), 47 deletions(-)
diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index 808ee32..62d0464 100644
--- a/src/views/business/inspectionTask/inspection.vue
+++ b/src/views/business/inspectionTask/inspection.vue
@@ -1,7 +1,7 @@
<template>
<div v-loading="loading" class="inspection" style="background-color: rgb(245, 247, 251);">
<el-row class="title">
- <el-col :span="8" style="text-align: left">
+ <el-col v-if="insOrder.ifsOrderType!=='02wg'" :span="8" style="text-align: left">
<el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px"
style="text-align: right; padding-top: 0; display: inline">
<el-form-item label="娓╁害:" style="margin-bottom: 0">
@@ -16,10 +16,11 @@
</el-form-item>
</el-form>
</el-col>
- <el-col :span="16" style="text-align: right">
+ <el-col :span="insOrder.ifsOrderType!=='02wg'?16:24" style="text-align: right">
+ <el-button v-if="insOrder.ifsOrderType && insOrder.ifsOrderType==='02wg'" size="small" type="primary" @click="showMaterialPropsDialog">IFS鐗╂枡灞炴�ф洿鏂�</el-button>
<el-button size="small" type="primary" @click="refreshView">鍒锋柊</el-button>
<el-button v-if="typeSource == 1" size="small" type="primary" @click="openPurchase">杩涜揣楠岃瘉</el-button>
- <el-button v-if="state == 1 && typeSource == 1" size="small" type="primary"
+ <el-button v-if="state == 1 && [0,1].includes(Number(typeSource))" size="small" type="primary"
@click="openUnPassDialog('add')">涓嶅悎鏍煎鐞�</el-button>
<el-button size="small" type="primary" @click="sampleVisible = true; uploadSample();">鏍峰搧鍒囨崲</el-button>
<!-- <el-button v-if="state == 1" size="small" type="primary" @click="taskVisible = true">浠诲姟鍒囨崲</el-button>-->
@@ -32,49 +33,94 @@
</el-col>
</el-row>
<div class="search">
- <el-form :inline="true" :model="searchForm" class="form-inline" label-position="right" label-width="100px">
- <el-form-item label="濮旀墭缂栧彿:">
- <el-input v-model="insOrder.entrustCode" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-form-item>
- <el-form-item label="鏍峰搧缂栧彿:">
- <el-tooltip :content="currentSample.sampleCode" :disabled="!currentSample.sampleCode">
- <el-input v-model="currentSample.sampleCode" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-tooltip>
- </el-form-item>
- <el-form-item label="鏍峰搧鍚嶇О:">
- <el-input v-model="currentSample.sample" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-form-item>
- <el-form-item label="鏍峰搧鏁伴噺:">
- <el-input v-model="sampleProduct.length" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-form-item>
- <el-form-item label="鏍峰搧鍨嬪彿:">
- <el-input v-model="currentSample.model" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-form-item>
- <el-form-item label="涓嬪彂鏃堕棿:">
- <el-input v-model="insOrder.sendTime" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-form-item>
- <el-form-item label="绱ф�ョ▼搴�:">
- <el-input v-model="insOrder.typeName" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-form-item>
- <el-form-item label="绾﹀畾鏃堕棿:">
- <el-input v-model="insOrder.appointed" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-form-item>
- <el-form-item v-if="typeSource === 1" label="鎶芥鏁伴噺:">
- <el-input v-model="insOrder.testQuantity" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-form-item>
- <el-form-item v-if="typeSource === 1" label="鍘傚瀵嗗害:">
- <el-input v-model="supplierDensity" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>
- </el-form-item>
- <el-form-item label="褰撳墠鏍峰搧浣嶆暟:" label-width="120px">
- <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>
- </el-form-item>
- <el-form-item label="澶囨敞:">
- <!-- <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span>-->
+<!-- <el-form :inline="true" :model="searchForm" class="form-inline" label-position="right" label-width="100px">-->
+<!-- <el-form-item label="濮旀墭缂栧彿:">-->
+<!-- <el-input v-model="insOrder.entrustCode" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="鏍峰搧缂栧彿:">-->
+<!-- <el-tooltip :content="currentSample.sampleCode" :disabled="!currentSample.sampleCode">-->
+<!-- <el-input v-model="currentSample.sampleCode" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-tooltip>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="鏍峰搧鍚嶇О:">-->
+<!-- <el-input v-model="currentSample.sample" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="鏍峰搧鏁伴噺:">-->
+<!-- <el-input v-model="sampleProduct.length" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="鏍峰搧鍨嬪彿:">-->
+<!-- <el-input v-model="currentSample.model" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="涓嬪彂鏃堕棿:">-->
+<!-- <el-input v-model="insOrder.sendTime" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="绱ф�ョ▼搴�:">-->
+<!-- <el-input v-model="insOrder.typeName" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="绾﹀畾鏃堕棿:">-->
+<!-- <el-input v-model="insOrder.appointed" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item v-if="typeSource === 1" label="鎶芥鏁伴噺:">-->
+<!-- <el-input v-model="insOrder.testQuantity" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item v-if="typeSource === 1" label="鍘傚瀵嗗害:">-->
+<!-- <el-input v-model="supplierDensity" clearable disabled placeholder="璇疯緭鍏�" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="褰撳墠鏍峰搧浣嶆暟:" label-width="120px">-->
+<!-- <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="澶囨敞:">-->
+<!-- <!– <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span>–>-->
+<!-- <el-input v-model="insOrder.remark" :disabled="state != 1" clearable placeholder="璇疯緭鍏�" size="small"-->
+<!-- @blur="subOtherForm(insOrder.remark, 'remark')"></el-input>-->
+<!-- <!– <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> –>-->
+<!-- </el-form-item>-->
+<!-- <template v-if="insOrder.isSplitOrder && insOrder.isSplitOrder===1">-->
+<!-- <el-form-item label="澶栨姢棰滆壊:">-->
+<!-- <el-input v-model="insOrder.outerColor" clearable disabled placeholder="" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="缁濈紭棰滆壊:">-->
+<!-- <el-input v-model="insOrder.insulationColor" clearable disabled placeholder="" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="鐩樺彿:">-->
+<!-- <el-input v-model="insOrder.drumNo" clearable disabled placeholder="" size="small"></el-input>-->
+<!-- </el-form-item>-->
+<!-- </template>-->
+<!-- </el-form>-->
+ <el-descriptions title="妫�楠屽崟姒傚喌" :column="4" border>
+ <template v-if="insOrder.ifsOrderType">
+ <el-descriptions-item label="闆朵欢鍙�">{{insOrder.partNo}}</el-descriptions-item>
+ <el-descriptions-item label="闆朵欢鍚嶇О">{{insOrder.partDetail}}</el-descriptions-item>
+ <el-descriptions-item label="鎵规鍙�">{{ insOrder.lotBatchNo }}</el-descriptions-item>
+ <el-descriptions-item label="鏍峰搧鍨嬪彿" >{{currentSample.model}}</el-descriptions-item>
+ <el-descriptions-item label="鎶芥鏁伴噺">{{insOrder.testQuantity}}</el-descriptions-item>
+ <el-descriptions-item label="鍘傚瀵嗗害">{{supplierDensity}}</el-descriptions-item>
+ <template v-if="insOrder.ifsOrderType && insOrder.ifsOrderType==='02wg'">
+ <el-descriptions-item label="杞藉叿缂栧彿">{{insOrder.drumNo}}</el-descriptions-item>
+ <el-descriptions-item label="璧峰绫虫爣(km)">{{insOrder.startMeterMark}}</el-descriptions-item>
+ <el-descriptions-item label="鎴绫虫爣(km)">{{insOrder.endMeterMark}}</el-descriptions-item>
+ <el-descriptions-item label="鍏ュ簱闀垮害(km)">{{calcInbondLength(insOrder.startMeterMark,insOrder.endMeterMark)}}</el-descriptions-item>
+ <el-descriptions-item label="缁濈紭棰滆壊">{{insOrder.insulationColor}}</el-descriptions-item>
+ <el-descriptions-item label="澶栨姢棰滆壊">{{insOrder.outerColor}}</el-descriptions-item>
+ <el-descriptions-item label="鍗板瓧淇℃伅">{{insOrder.letteringInfo}}</el-descriptions-item>
+ </template>
+ </template>
+ <template v-else>
+ <el-descriptions-item label="濮旀墭缂栧彿">{{ insOrder.entrustCode }}</el-descriptions-item>
+ <el-descriptions-item label="鏍峰搧缂栧彿">{{ currentSample.sampleCode }}</el-descriptions-item>
+ <el-descriptions-item label="鏍峰搧鍚嶇О">{{ currentSample.sample }}</el-descriptions-item>
+ <el-descriptions-item label="鏍峰搧鏁伴噺">{{ sampleProduct.length }}</el-descriptions-item>
+ <el-descriptions-item label="鏍峰搧鍨嬪彿">{{ currentSample.model }}</el-descriptions-item>
+ <el-descriptions-item label="涓嬪彂鏃堕棿">{{ insOrder.sendTime }}</el-descriptions-item>
+ <el-descriptions-item label="绱ф�ョ▼搴�">{{ insOrder.typeName }}</el-descriptions-item>
+ <el-descriptions-item label="绾﹀畾鏃堕棿">{{ insOrder.appointed }}</el-descriptions-item>
+ </template>
+ <el-descriptions-item label="褰撳墠鏍峰搧浣嶆暟"><el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag></el-descriptions-item>
+ <el-descriptions-item label="澶囨敞">
<el-input v-model="insOrder.remark" :disabled="state != 1" clearable placeholder="璇疯緭鍏�" size="small"
- @blur="subOtherForm(insOrder.remark, 'remark')"></el-input>
- <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> -->
- </el-form-item>
- </el-form>
+ @blur="subOtherForm(insOrder.remark, 'remark')"></el-input>
+ </el-descriptions-item>
+ </el-descriptions>
</div>
<div class="center">
<div class="search" style="
@@ -517,6 +563,49 @@
:purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification>
<!--鏌ョ湅宸ユ椂寮规-->
<viewManHourDia ref="viewManHourDia" @submit="openAddVerifyDia"></viewManHourDia>
+ <!-- IFS鐗╂枡灞炴�х紪杈戝脊妗�-->
+ <el-dialog
+ title="鏇存柊IFS搴撳瓨鐗╂枡鎵规灞炴��"
+ :visible.sync="ifsMaterialPropsVisible"
+ width="20%">
+ <el-form style="width:100%" :model="ifsMaterialPropsForm">
+ <el-form-item label="杞藉叿缂栧彿(Attr1):">
+ <el-input placeholder="杞藉叿缂栧彿" size="small" v-model="ifsMaterialPropsForm.drumNo"></el-input>
+ </el-form-item>
+ <el-form-item label="璧峰绫虫爣(Attr2):">
+ <el-input @blur="validateQuality()" placeholder="璧峰绫虫爣" size="small" v-model="ifsMaterialPropsForm.startMeterMark">
+ <span slot="suffix">km</span>
+ </el-input>
+ </el-form-item>
+ <el-form-item label="鎴绫虫爣(Attr3):">
+ <el-input @blur="validateQuality()" placeholder="鎴绫虫爣" size="small" v-model="ifsMaterialPropsForm.endMeterMark">
+ <span slot="suffix">km</span>
+ </el-input>
+ </el-form-item>
+ <!-- <el-form-item label="鍏ュ簱闀垮害">-->
+ <!-- <el-input v-model="ifsMaterialPropsForm.inboundLength"></el-input>-->
+ <!-- </el-form-item>-->
+ <el-form-item label="澶栨姢棰滆壊(Attr4):">
+ <el-select size="small" v-model="ifsMaterialPropsForm.outerColor">
+ <el-option v-for="(item,index) in outerColorList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="缁濈紭棰滆壊(Attr5):">
+ <el-select size="small" v-model="ifsMaterialPropsForm.insulationColor">
+ <el-option v-for="(item,index) in insulationColorList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍗板瓧淇℃伅(Attr8):">
+ <el-select size="small" v-model="ifsMaterialPropsForm.letteringInfo" placeholder="璇烽�夋嫨">
+ <el-option v-for="(item,index) in letteringInfoList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closePartPropDialog()">鍙� 娑�</el-button>
+ <el-button type="primary" @click="saveOrUpdatePartProp()">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
@@ -527,6 +616,7 @@
import AddUnPass from "../unpass/components/addUnPass.vue";
import InspectionWord from "./components/InspectionWord.vue";
import PurchaseVerification from "../unpass/components/PurchaseVerification.vue";
+import {getOneByIfsId,saveOrUpdateProps} from "@/api/business/ifsPartProps.js";
import {
doInsOrder,
getCableTag,
@@ -551,6 +641,7 @@
import html2canvas from "html2canvas";
import { mapGetters } from "vuex";
import viewManHourDia from "@/views/business/inspectionTask/components/viewManHourDia.vue";
+import {getDicts} from "@/api/system/dict/data";
export default {
name: 'Inspection',
components: {
@@ -563,6 +654,21 @@
},
data() {
return {
+ outerColorList:[],
+ insulationColorList:[],
+ letteringInfoList: [],
+ ifsMaterialPropsForm:{
+ id:null,
+ ifsInventoryId: null,
+ drumNo: '', // 杞藉叿缂栧彿
+ startMeterMark: '', // 璧峰绫虫爣
+ endMeterMark: '', // 鎴绫虫爣
+ insulationColor: '', // 缁濈紭棰滆壊
+ outerColor: '', // 澶栨姢棰滆壊
+ inboundLength: '', // 鍏ュ簱闀垮害
+ letteringInfo: '', // 鍗板瓧淇℃伅
+ },
+ ifsMaterialPropsVisible:false,
sonLaboratory: null,
orderId: null,
state: null,
@@ -879,6 +985,87 @@
this.stopWorker();
},
methods: {
+ validateQuality(){
+ let inboundLength = Number(this.calcInbondLength(this.ifsMaterialPropsForm.startMeterMark,this.ifsMaterialPropsForm.endMeterMark));
+ let testQuantity = Number(this.insOrder.testQuantity);
+ if(inboundLength!=null && testQuantity!==inboundLength){
+ this.$message.warning(`鍏ュ簱闀垮害(${inboundLength}km)涓庢楠屾暟閲�(${testQuantity}km)涓嶇锛岃纭锛乣);
+ }
+ },
+ calcInbondLength(startMeterMark,endMeterMark){
+ let inboundLength = null;
+ if((startMeterMark!=null && startMeterMark!=='') && (endMeterMark!=null&&endMeterMark!=='')){
+ let minus = this.$Big(endMeterMark).minus(this.$Big(startMeterMark));
+ inboundLength = Math.abs(minus)
+ }
+ return inboundLength;
+ },
+ getLetteringInfoDicts(){
+ getDicts("lettering_info_type").then(res=>{
+ if(res.code==200){
+ this.letteringInfoList = res.data
+ }
+ })
+ },
+ getInsulationColorDicts(){
+ getDicts("insulation_color_type").then(res=>{
+ if(res.code==200){
+ this.insulationColorList = res.data
+ }
+ })
+ },
+ getOuterColorDicts(){
+ getDicts("outer_color_type").then(res=>{
+ if(res.code==200){
+ this.outerColorList = res.data
+ }
+ })
+ },
+ closePartPropDialog(){
+ this.ifsMaterialPropsForm = {
+ id:null,
+ ifsInventoryId: null,
+ drumNo: '', // 杞藉叿缂栧彿
+ startMeterMark: '', // 璧峰绫虫爣
+ endMeterMark: '', // 鎴绫虫爣
+ insulationColor: '', // 缁濈紭棰滆壊
+ outerColor: '', // 澶栨姢棰滆壊
+ inboundLength: '', // 鍏ュ簱闀垮害
+ letteringInfo: '', // 鍗板瓧淇℃伅
+ }
+ this.ifsMaterialPropsVisible = false;
+ },
+ getPartProps(ifsId){
+ getOneByIfsId(ifsId).then((res)=>{
+ if(res.code==200 && res.data){
+ this.ifsMaterialPropsForm = res.data;
+ }
+ })
+ },
+ saveOrUpdatePartProp(){
+ this.ifsMaterialPropsForm.ifsInventoryId = this.insOrder.ifsInventoryId
+ saveOrUpdateProps({
+ ...this.ifsMaterialPropsForm,
+ partNo: this.insOrder.partNo,
+ lotBatchNo: this.insOrder.lotBatchNo,
+ }).then((res)=>{
+ if(res.code==200){
+ this.$message.success("淇濆瓨鎴愬姛");
+ this.ifsMaterialPropsVisible = false;
+ this.refreshView()
+ }
+ })
+ },
+ //鎵撳紑IFS鐗╂枡灞炴�у脊妗�
+ showMaterialPropsDialog(){
+ this.getPartProps(this.insOrder.ifsInventoryId)
+ this.getOuterColorDicts()
+ this.getInsulationColorDicts()
+ this.getLetteringInfoDicts()
+ this.$nextTick(()=>{
+ this.ifsMaterialPropsVisible = true;
+ })
+ },
// 鏂囦欢绠$悊--寮�濮�
getList() {
this.tableLoading = true;
@@ -945,6 +1132,10 @@
laboratory: this.sonLaboratory,
}).then(async (res) => {
this.insOrder = res.data.insOrder;
+ if(res.data.insOrder.ifsOrderType==='02wg'){
+ //鏌ヨ闆朵欢灞炴��
+ this.getPartProps(res.data.insOrder.ifsInventoryId)
+ }
this.supplierDensity = res.data.supplierDensity;
this.getList()
this.urgentList.forEach((m) => {
@@ -2579,12 +2770,16 @@
this.$message.error("璇锋寚瀹氬鏍镐汉鍛�");
return;
}
- if (!this.otherForm.humidity) {
+ if (!this.otherForm.humidity && this.insOrder.ifsOrderType!=='02wg') {
this.$message.error("璇疯緭鍏ユ箍搴�");
return;
}
- if (!this.otherForm.temperature) {
+ if (!this.otherForm.temperature && this.insOrder.ifsOrderType!=='02wg') {
this.$message.error("璇疯緭鍏ユ俯搴�");
+ return;
+ }
+ if (!this.insOrder.lotPartId && this.insOrder.ifsOrderType==='02wg') {
+ this.$message.error("璇峰~鍐橧FS搴撳瓨鐗╂枡鎵规灞炴��");
return;
}
this.submitLoading = true;
@@ -2939,6 +3134,7 @@
background-color: #fff;
border-radius: 3px;
margin-bottom: 10px;
+ padding: 10px;
}
.search .form-inline {
--
Gitblit v1.9.3