From f294efb8c01ad8b0704a92d51c14dbd55d898874 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 23 十月 2025 16:49:46 +0800
Subject: [PATCH] 拆分原材料和外购成品的业务流程(报检、下单、检验)
---
src/views/business/inspectionTask/inspection.vue | 225 +++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 172 insertions(+), 53 deletions(-)
diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index d750b75..40e6f22 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,7 +16,8 @@
</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" 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"
@@ -74,6 +75,17 @@
@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>
</div>
<div class="center">
@@ -526,6 +538,41 @@
: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 size="small" v-model="ifsMaterialPropsForm.drumNo"></el-input>
+ </el-form-item>
+ <el-form-item label="璧峰绫虫爣(Attr2):">
+ <el-input size="small" v-model="ifsMaterialPropsForm.startMeterMark"></el-input>
+ </el-form-item>
+ <el-form-item label="鎴绫虫爣(Attr3):">
+ <el-input size="small" v-model="ifsMaterialPropsForm.endMeterMark"></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-input size="small" v-model="ifsMaterialPropsForm.insulationColor"></el-input>
+ </el-form-item>
+ <el-form-item label="澶栨姢棰滆壊(Attr5):">
+ <el-input size="small" v-model="ifsMaterialPropsForm.outerColor"></el-input>
+ </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>
@@ -561,8 +608,9 @@
import DataWorker from '@/workers/DataWorker.worker.js';
import html2canvas from "html2canvas";
import { mapGetters } from "vuex";
-import { connect,disconnect,weightList } from "@/utils/connect.js";
import viewManHourDia from "@/views/business/inspectionTask/components/viewManHourDia.vue";
+import {connect,disconnect,weightList} from "@/utils/connect";
+import {getOneByIfsId,saveOrUpdateProps} from "@/api/business/ifsPartProps.js";
export default {
name: 'Inspection',
components: {
@@ -575,6 +623,19 @@
},
data() {
return {
+ letteringInfoList: [],
+ ifsMaterialPropsForm:{
+ id:null,
+ ifsOrderId: null,
+ drumNo: '', // 杞藉叿缂栧彿
+ startMeterMark: '', // 璧峰绫虫爣
+ endMeterMark: '', // 鎴绫虫爣
+ insulationColor: '', // 缁濈紭棰滆壊
+ outerColor: '', // 澶栨姢棰滆壊
+ inboundLength: '', // 鍏ュ簱闀垮害
+ letteringInfo: '', // 鍗板瓧淇℃伅
+ },
+ ifsMaterialPropsVisible:false,
sonLaboratory: null,
orderId: null,
state: null,
@@ -749,7 +810,6 @@
size: 10,
current: 0,
},
- tableLoading: false,
// 鏂囦欢鍒楄〃鐩稿叧--缁撴潫
// 浠诲姟鍒囨崲鍒楄〃--寮�濮�
tableData0: [],
@@ -784,6 +844,7 @@
},
tableLoading0: false,
// 浠诲姟鍒囨崲鍒楄〃--缁撴潫
+ isSplit: 0, // 鏄惁鏄媶鍗曡繃鏉ョ殑
};
},
// 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
@@ -794,7 +855,7 @@
},
},
created() {
- let { sonLaboratory, orderId, state, inspectorList, typeSource } =
+ let { sonLaboratory, orderId, state, inspectorList, typeSource,isSplit } =
this.$route.query;
this.sonLaboratory = sonLaboratory;
this.orderId = orderId;
@@ -802,6 +863,7 @@
this.state = state;
this.inspectorList = inspectorList;
this.typeSource = typeSource;
+ this.isSplit = isSplit;
},
mounted() {
this.getTypeDicts(); // 鑾峰彇绱ф�ョ▼搴︿笅鎷夋閫夐」
@@ -880,6 +942,7 @@
}
});
}
+ console.log("澶勭悊鍚庣殑妯℃澘-",this.tableList)
},
// 鐗规畩妫�楠岄」--鐩戝惉璁惧淇℃伅鏀瑰彉
equipForm: {
@@ -897,6 +960,49 @@
}
},
methods: {
+ closePartPropDialog(){
+ this.ifsMaterialPropsForm = {
+ id:null,
+ ifsOrderId: 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(){
+ saveOrUpdateProps({
+ ...this.ifsMaterialPropsForm,
+ partNo: this.insOrder.partNo,
+ lotBatchNo: this.insOrder.lotBatchNo,
+ }).then((res)=>{
+ if(res.code==200){
+ this.$message.success("淇濆瓨鎴愬姛");
+ this.ifsMaterialPropsVisible = false;
+ }
+ })
+ },
+ //鎵撳紑IFS鐗╂枡灞炴�у脊妗�
+ showMaterialPropsDialog(){
+ this.getPartProps(this.insOrder.ifsInventoryId)
+ this.$nextTick(()=>{
+ this.ifsMaterialPropsVisible = true;
+ })
+ },
+ disconnect() {
+ return disconnect
+ },
sss() {
console.log(this.$store.state.weightList) //
},
@@ -982,6 +1088,8 @@
laboratory: this.sonLaboratory,
}).then(async (res) => {
this.insOrder = res.data.insOrder;
+ //鏌ヨ闆朵欢灞炴��
+ this.getPartProps(res.data.insOrder.ifsInventoryId)
this.supplierDensity = res.data.supplierDensity;
this.getList()
this.urgentList.forEach((m) => {
@@ -1196,6 +1304,7 @@
return newObj;
},
handleDataAcquisition(data, noDialog) {
+ console.log("dadad--",data)
// 鏄惁鍙互缂栬緫鏁伴噰鏁版嵁
if (this.dataAcquisitionEidtAble) {
this.getDataType = 1;
@@ -1219,7 +1328,9 @@
};
}
// 寰幆鏁伴噰鏁版嵁
+ console.log(data[i],i)
for (let j in data[i]) {
+ console.log("jjjjj--",j)
// 鎷兼帴瀛楃涓� 妫�楠岄」鍒嗙被+妫�楠岄」+妫�楠屽瓙椤�
let str0 = "";
if (i.includes("@")) {
@@ -1423,6 +1534,7 @@
this.getDataIndexLoading = false;
this.dataGetDia = false;
this.getDataTypeId = "";
+ console.log("dadada---",this.dataAcquisitionInfo)
this.worker0.postMessage(
JSON.stringify({
dataAcquisitionInfo: this.dataAcquisitionInfo,
@@ -1436,6 +1548,7 @@
// 鐩戝惉 Worker 杩斿洖鐨勭粨鏋�
this.worker0.onmessage = (event) => {
let result = JSON.parse(event.data);
+ console.log("Worker 杩斿洖鐨勭粨鏋�:", result);
if (result.method == "changeInput") {
// 閲囬泦鍚庣殑鏁版嵁锛岄渶瑕佽繘琛岃绠楃殑绾跨▼杩涜璁$畻
let { list, n } = result.value;
@@ -1847,7 +1960,7 @@
if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」") {
if (count4 === 0) {
if (c.v.v) {
- c.v.v = c.v.v.replace(/\s*/g, "");
+ c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
}
str += c.v.v;
count4 += 1;
@@ -1858,7 +1971,7 @@
) {
if (count4 === 1) {
if (c.v.v) {
- c.v.v = c.v.v.replace(/\s*/g, "");
+ c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
}
str += c.v.v;
count4 += 1;
@@ -1868,7 +1981,7 @@
if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」鍒嗙被") {
if (count4 === 0) {
if (c.v.v) {
- c.v.v = c.v.v.replace(/\s*/g, "");
+ c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
}
str += c.v.v;
count4 += 1;
@@ -1876,7 +1989,8 @@
} else if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」") {
if (count4 === 1) {
if (c.v.v) {
- c.v.v = c.v.v.replace(/\s*/g, "");
+ console.log("杩涘叆1111111")
+ c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
}
str += c.v.v;
count4 += 1;
@@ -1887,7 +2001,7 @@
) {
if (count4 === 2) {
if (c.v.v) {
- c.v.v = c.v.v.replace(/\s*/g, "");
+ c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
}
str += c.v.v;
count4 += 1;
@@ -1897,7 +2011,7 @@
if (str === "鏈烘鎬ц兘骞叉�佹媺浼稿己搴�(绾靛悜)") {
if (c.v.ps != undefined && c.v.ps.value === "鍗曚綅") {
if (c.v.v) {
- c.v.v = c.v.v.replace(/\s*/g, "");
+ c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
}
str2 = str + c.v.v;
unit2 = c.v.v;
@@ -1915,13 +2029,13 @@
undefined
? ""
: this.currentSample.insProduct[i].inspectionItemClass;
- inspectionItemClass = inspectionItemClass.replace(/\s*/g, "");
+ inspectionItemClass = inspectionItemClass.replace(/[\n\r\s]*/g, "");
let inspectionItem =
this.currentSample.insProduct[i].inspectionItem == null ||
this.currentSample.insProduct[i].inspectionItem == undefined
? ""
: this.currentSample.insProduct[i].inspectionItem;
- inspectionItem = inspectionItem.replace(/\s*/g, "");
+ inspectionItem = inspectionItem.replace(/[\n\r\s]*/g, "");
let inspectionItemSubclass =
this.currentSample.insProduct[i].inspectionItemSubclass ==
null ||
@@ -1930,7 +2044,7 @@
? ""
: this.currentSample.insProduct[i].inspectionItemSubclass;
inspectionItemSubclass = inspectionItemSubclass.replace(
- /\s*/g,
+ /[\n\r\s]*/g,
""
);
if (inspectionItemSubclass === "骞叉�佹媺浼稿己搴�(绾靛悜)") {
@@ -2620,16 +2734,36 @@
openAddVerifyDia() {
this.addVerifyDia = true;
},
+ confirmSubmit(registerInsResults){
+ submitPlan({
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser,
+ entrustCode: this.insOrder.entrustCode,
+ registerInsResults: registerInsResults
+ }).then((res) => {
+ if (res.code === 200) {
+ this.$message.success("鎿嶄綔鎴愬姛");
+ this.goback();
+ this.submitLoading = false;
+ this.addVerifyDia = false;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ this.submitLoading = false;
+ });
+ },
submit() {
if (this.verifyUser === null || this.verifyUser === "") {
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;
}
@@ -2638,39 +2772,39 @@
orderId: this.orderId,
laboratory: this.sonLaboratory,
}).then((res) => {
+ console.log(res)
if (res.code === 200) {
- if (!res.data || res.data.length == 0) {
+ if (!res.data || res.data.errorMsg.length == 0) {
this.submitLoading = true;
- submitPlan({
- orderId: this.orderId,
- laboratory: this.sonLaboratory,
- verifyUser: this.verifyUser,
- entrustCode: this.insOrder.entrustCode,
- }).then((res) => {
- if (res.code === 200) {
- this.$message.success("鎿嶄綔鎴愬姛");
- this.goback();
- this.submitLoading = false;
- this.addVerifyDia = false;
- }
- })
- .catch((error) => {
- console.error(error);
- this.submitLoading = false;
+ //妫�楠岀被鍨嬩负鍘熸潗鏂�
+ if(this.typeSource==1 && res.data.unInsOrderCount==0 && this.isSplit==1){
+ const htmlStr = "鏄惁鐧昏IFS閲囪喘妫�楠岀粨鏋滃苟绉诲簱锛熻鎿嶄綔浼氱櫥璁�<span style='color:#ff4949'>鍚屼竴闆朵欢鍚屼竴璁㈠崟鐨勬墍鏈夋媶鍒嗘壒娆�</span>锛岃璋ㄦ厧閫夋嫨銆�"
+ this.$confirm(htmlStr, '鎻愮ず', {
+ confirmButtonText: '鏄�',
+ cancelButtonText: '鍚�',
+ type: 'warning',
+ dangerouslyUseHTMLString: true
+ }).then(() => {
+ this.confirmSubmit(true)
+ }).catch(() => {
+ this.confirmSubmit(false)
});
+ }else{
+ this.confirmSubmit(true)
+ }
} else {
let newData = [];
const h = this.$createElement;
- for (let i in res.data) {
- const lastChar = res.data[i].slice(-1);
+ for (let i in res.data.errorMsg) {
+ const lastChar = res.data.errorMsg[i].slice(-1);
if (lastChar == "-") {
- res.data[i] = res.data[i].slice(0, -1);
+ res.data.errorMsg[i] = res.data.errorMsg[i].slice(0, -1);
}
newData.push(
h(
"p",
{ style: "font-size: 14px;color: red;" },
- Number(i) + 1 + "銆�" + res.data[i]
+ Number(i) + 1 + "銆�" + res.data.errorMsg[i]
)
);
}
@@ -2693,22 +2827,7 @@
})
.then(() => {
this.submitLoading = true;
- submitPlan({
- orderId: this.orderId,
- laboratory: this.sonLaboratory,
- verifyUser: this.verifyUser,
- }).then((res) => {
- if (res.code === 200) {
- this.$message.success("鎿嶄綔鎴愬姛");
- this.addVerifyDia = false;
- this.goback();
- }
- this.submitLoading = false;
- })
- .catch((error) => {
- console.error(error);
- this.submitLoading = false;
- });
+ this.confirmSubmit(false)
})
.catch(() => { });
}
--
Gitblit v1.9.3