From 0f102473c642142976d537af4c505b8a7161d6c5 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 31 十月 2025 15:30:17 +0800
Subject: [PATCH] 原材料报检拆分功能V1
---
src/views/business/inspectionTask/inspection.vue | 265 +++++++++++++++++++++++++---------------------------
1 files changed, 126 insertions(+), 139 deletions(-)
diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index 3a77d1f..243371d 100644
--- a/src/views/business/inspectionTask/inspection.vue
+++ b/src/views/business/inspectionTask/inspection.vue
@@ -18,14 +18,11 @@
</el-col>
<el-col :span="16" style="text-align: right">
<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="typeSource == 1" size="small" type="primary" @click="openPurchase">杩涜揣楠岃瘉</el-button>
+ <el-button v-if="state == 1 && typeSource == 1" 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>
+ <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>-->
<el-button v-if="state == 1" size="small" type="primary" @click="addVerifyDia = true">鎻愪氦</el-button>
<!-- 澶嶆牳 -->
<el-button v-if="state == 2" size="medium" type="primary" @click="openAddCheck">閫氳繃</el-button>
@@ -73,7 +70,7 @@
</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"
+ <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>
@@ -94,8 +91,8 @@
</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="unpassCheck">涓嶅悎鏍煎娴�</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>
<span v-if="cableTagList.length > 0"> 鐢电紗閰嶇疆锛�</span>
<el-select v-if="cableTagList.length > 0" v-model="currentTab" clearable placeholder="璇烽�夋嫨" size="small"
@@ -338,7 +335,7 @@
</div>
<el-upload v-if="state == 1" ref="upload" :action="action" :before-upload="beforeUpload" :data="{
orderId: id,
- }" :headers="headers" :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false"
+ }" :headers="uploadHeader" :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false"
accept=".jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar"
style="width: 80px !important;margin-top: 10px;">
<el-button v-if="state == 1" size="small" type="primary">闄勪欢涓婁紶</el-button></el-upload>
@@ -347,6 +344,7 @@
</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">
<el-table-column :key="Math.random()" align="center" label="搴忓彿" type="index" width="70px">
@@ -359,7 +357,6 @@
size="medium" style="margin-right: 5px">{{ item.label }}</el-tag>
</template>
</el-table-column>
- <el-table-column label="妫�楠屼汉" min-width="80px" prop="checkName" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="鏄惁鐣欐牱" prop="isLeave" show-overflow-tooltip width="95px">
<template slot-scope="scope">
<span>{{ scope.row.isLeave == 0 ? "鍚�" : "鏄�" }}</span>
@@ -504,24 +501,31 @@
<el-button :loading="reviewLoading" type="primary" @click="upInsReview(1)">纭� 瀹�</el-button>
</span>
</el-dialog>
+ <!-- 娣诲姞涓嶅悎鏍煎娴嬪脊妗�-->
<add-un-pass v-if="addUnPassDialog" ref="addUnPassDialog" :addUnPassDialog="addUnPassDialog"
@resetAddUnPass="resetAddUnPass"></add-un-pass>
+ <!-- 涓嶅悎鏍煎鐞嗗脊妗�-->
<UnPassDialog v-if="unPassDialog" ref="unPassDialog" :orderId="orderId" :unPassDialog="unPassDialog"
@resetForm="resetForm"></UnPassDialog>
- <!-- <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId"
+ <!-- 涓嶅悎鏍煎娴嬪脊妗�-->
+ <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId"
+ :cableTag="temCableTag" :repetitionTag="repetitionTag"
:rawMaterialTag="rawMaterialTag" :sonLaboratory="sonLaboratory" :state="state" :typeSource="typeSource"
- :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" /> -->
+ :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" />
+ <!-- 杩涜揣楠岃瘉寮规-->
<purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId"
:purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification>
+ <!--鏌ョ湅宸ユ椂寮规-->
+ <viewManHourDia ref="viewManHourDia" @submit="openAddVerifyDia"></viewManHourDia>
</div>
</template>
<script>
import excelFunction from "@/utils/excelFountion";
import limsTable from "@/components/Table/lims-table.vue";
-import UnPassDialog from "../unpass/components/addUnPass.vue";
+import UnPassDialog from "../unpass/components/unPassDialog.vue";
import AddUnPass from "../unpass/components/addUnPass.vue";
-// import InspectionWord from "./components/InspectionWord.vue";
+import InspectionWord from "./components/InspectionWord.vue";
import PurchaseVerification from "../unpass/components/PurchaseVerification.vue";
import {
doInsOrder,
@@ -542,19 +546,20 @@
delfile,
inspectionOrderDetailsTaskSwitching
} from "@/api/business/inspectionTask.js";
-import InspectionWorker from '../../../InspectionWorker.worker';
-import DataWorker from '../../../DataWorker.worker';
+import InspectionWorker from '@/workers/InspectionWorker.worker.js';
+import DataWorker from '@/workers/DataWorker.worker.js';
import html2canvas from "html2canvas";
import { mapGetters } from "vuex";
-import { getToken } from "@/utils/auth";
+import viewManHourDia from "@/views/business/inspectionTask/components/viewManHourDia.vue";
export default {
- name: 'inspection',
+ name: 'Inspection',
components: {
+ viewManHourDia,
PurchaseVerification,
AddUnPass,
limsTable,
UnPassDialog,
- // InspectionWord,
+ InspectionWord,
},
data() {
return {
@@ -730,7 +735,6 @@
size: 10,
current: 0,
},
- tableLoading: false,
// 鏂囦欢鍒楄〃鐩稿叧--缁撴潫
// 浠诲姟鍒囨崲鍒楄〃--寮�濮�
tableData0: [],
@@ -765,22 +769,18 @@
},
tableLoading0: false,
// 浠诲姟鍒囨崲鍒楄〃--缁撴潫
+ isSplit: 0, // 鏄惁鏄媶鍗曡繃鏉ョ殑
};
},
// 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
computed: {
...mapGetters(["userId"]),
- headers() {
- return {
- 'Authorization': "Bearer " + getToken()
- };
- },
action() {
return this.javaApi + "/insOrderPlan/uploadFile";
},
},
created() {
- let { sonLaboratory, orderId, state, inspectorList, typeSource } =
+ let { sonLaboratory, orderId, state, inspectorList, typeSource,isSplit } =
this.$route.query;
this.sonLaboratory = sonLaboratory;
this.orderId = orderId;
@@ -788,15 +788,24 @@
this.state = state;
this.inspectorList = inspectorList;
this.typeSource = typeSource;
+ this.isSplit = isSplit;
},
mounted() {
this.getTypeDicts(); // 鑾峰彇绱ф�ョ▼搴︿笅鎷夋閫夐」
this.getInsStateDicts();
this.getComparisonList();
this.getAuthorizedPerson();
- // this.getPower();
this.startWorker();
- this.getList0()
+ // this.getList0() // 浠诲姟鍒囨崲
+ this.scrollInit();
+ },
+ activated() {
+ this.getTypeDicts(); // 鑾峰彇绱ф�ョ▼搴︿笅鎷夋閫夐」
+ this.getInsStateDicts();
+ this.getComparisonList();
+ this.getAuthorizedPerson();
+ this.startWorker();
+ // this.getList0() // 浠诲姟鍒囨崲
this.scrollInit();
},
watch: {
@@ -897,15 +906,12 @@
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
type: "warning",
- })
- .then(() => {
- delfile({ id: row.id }).then((res) => {
- if (res.code == 201) return;
- this.$message.success("鍒犻櫎鎴愬姛");
- this.refresh();
- });
- })
- .catch(() => { });
+ }).then(() => {
+ delfile({ id: row.id }).then((res) => {
+ this.$message.success("鍒犻櫎鎴愬姛");
+ this.getList();
+ });
+ }).catch(() => { });
},
// 鏂囦欢绠$悊--缁撴潫
@@ -1038,8 +1044,9 @@
id: this.currentSample.id,
type: this.type,
laboratory: this.sonLaboratory,
- cableTag: "",
+ cableTag: this.temCableTag,
rawMaterialTag: this.rawMaterialTag,
+ repetitionTag: this.repetitionTag,
};
this.$nextTick(() => {
this.$refs.addUnPassDialog.getInsOrder(info);
@@ -1071,7 +1078,7 @@
},
// 鎵撳紑杩涜揣楠岃瘉寮规
openPurchase() {
- const operationType = this.state === 1 ? "add" : "view";
+ const operationType = this.state == 1 ? "add" : "view";
this.purchaseDialog = true;
const item = {
id: this.currentSample.id,
@@ -1133,7 +1140,6 @@
this.dataAcquisitionInfo = {};
this.getData = [];
for (let i in this.objectOrder(data)) {
- console.log("i---", i);
let obj = {};
if (i.includes("@")) {
obj = {
@@ -1476,12 +1482,10 @@
},
// 淇濆瓨婀垮害銆佹俯搴︽暟鎹�
subOtherForm(m, type) {
- console.log("m---", m);
write({
[type]: type === "remark" ? m : Number(m),
id: this.insOrder.id,
}).then((res) => {
- if (res.code == 201) return;
this.$message.success("淇濆瓨鎴愬姛");
});
},
@@ -1500,34 +1504,6 @@
a.download = "table.png";
a.click();
});
- },
- // 鏉冮檺鑾峰彇
- getPower() {
- let power = JSON.parse(sessionStorage.getItem("power"));
- let fileDel = false;
- let fileAdd = false;
- let collected = false;
- let temDataAcquisition = false;
- for (var i = 0; i < power.length; i++) {
- if (power[i].menuMethod == "uploadFile") {
- fileAdd = true;
- }
- if (power[i].menuMethod == "delfile") {
- fileDel = true;
- }
- if (power[i].menuMethod == "isItAllowedToModifyTheCollectedValues") {
- collected = true;
- }
- if (power[i].menuMethod == "temDataAcquisition") {
- temDataAcquisition = true;
- }
- }
- if (!fileDel) {
- // this.componentData0.do.splice(1, 1);
- }
- this.fileAdd = fileAdd;
- this.collected = collected;
- this.temDataAcquisition = temDataAcquisition;
},
uploadSample() {
doInsOrder({
@@ -1666,20 +1642,6 @@
this.comparisonList = this.dictToValue(response.data);
});
},
- // 鑾峰彇妫�楠屽�间负涓嬫媺鏃剁殑涓嬫媺鍒楄〃
- // selectEnumByCategoryOfSelect(val) {
- // this.enumList = [];
- // if (val === undefined || val === null) {
- // return;
- // }
- // this.$axios
- // .post(this.$api.enums.selectEnumByCategory, {
- // category: val,
- // })
- // .then((res) => {
- // this.enumList = res.data;
- // });
- // },
tableRowClassName({ row, rowIndex }) {
row.index = rowIndex + 1;
},
@@ -2585,6 +2547,33 @@
this.$message.error("鏈緭鍏ヤ笉閫氳繃鍘熷洜");
}
},
+ // 鏌ョ湅宸ユ椂
+ viewManHour() {
+ this.$refs.viewManHourDia.showDialog(this.id, 99);
+ },
+ 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("璇锋寚瀹氬鏍镐汉鍛�");
@@ -2604,25 +2593,24 @@
laboratory: this.sonLaboratory,
}).then((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(false)
+ }
} else {
let newData = [];
const h = this.$createElement;
@@ -2658,22 +2646,23 @@
})
.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)
+ // 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;
+ // });
})
.catch(() => { });
}
@@ -2695,17 +2684,24 @@
} else {
param = this.param;
}
+ let isNoTestValue = ''
+ for (let key in param) {
+ if (param[key]) {
+ if (param[key].insValue?.length === 0) {
+ isNoTestValue = 1
+ } else {
+ isNoTestValue = ''
+ }
+ }
+ }
saveInsContext({
param: JSON.stringify(param),
currentTable: this.currentTable,
sampleId: this.currentSample.id,
orderId: this.orderId,
- sonLaboratory: this.sonLaboratory
+ sonLaboratory: this.sonLaboratory,
+ isNoTestValue: isNoTestValue
}).then((res) => {
- if (res.code == 201) {
- this.$message.error("淇濆瓨澶辫触");
- return;
- }
this.$message.success("宸蹭繚瀛�");
});
// 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
@@ -2773,7 +2769,7 @@
}
},
getAuthorizedPerson() {
- selectUserCondition({ type: 0 }).then((res) => {
+ selectUserCondition({ type: 1 }).then((res) => {
let data = [];
res.data.forEach((a) => {
data.push({
@@ -2857,7 +2853,7 @@
this.upLoading = false;
if (response.code == 200) {
this.$message.success("涓婁紶鎴愬姛");
- this.$refs.fileList.selectList();
+ this.getList();
}
},
beforeUpload(file) {
@@ -2876,16 +2872,7 @@
},
handleDown(row) {
downFile({ id: row.id }).then((res) => {
- if (res.code === 200) {
- let url = "";
- if (res.data.type == 1) {
- url = this.javaApi + "/img/" + res.data.fileUrl;
- this.$download.saveAs(url, row.fileName)
- } else {
- url = this.javaApi + "/word/" + res.data.fileUrl;
- this.$download.saveAs(url, row.fileName)
- }
- }
+ this.$download.saveAs(res.data.fileUrl, row.fileName)
})
.catch((error) => { });
},
@@ -2910,7 +2897,7 @@
}
},
goback() {
- this.$tab.closeOpenPage({ path: "/business/inspectionTask" });
+ this.$router.go(-1)
}
},
};
@@ -3047,7 +3034,7 @@
}
.content-h-2 {
- justify-content: end;
+ justify-content: flex-end;
}
.content-v-0 {
@@ -3118,7 +3105,7 @@
align-items: center;
}
</style>
-<style>
+<style scoped>
/* .inspection .el-form-item__label {
color: #000;
} */
--
Gitblit v1.9.3