From 19f0e68b3fe3cf5244a2b936bfef4e0712bdf025 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期六, 20 六月 2026 11:02:12 +0800
Subject: [PATCH] tooltip错位修改

---
 src/views/qualityManagement/processInspection/index.vue |  122 ++++++++++++++++++++++++++++++----------
 1 files changed, 92 insertions(+), 30 deletions(-)

diff --git a/src/views/qualityManagement/processInspection/index.vue b/src/views/qualityManagement/processInspection/index.vue
index 6908322..1f2b26e 100644
--- a/src/views/qualityManagement/processInspection/index.vue
+++ b/src/views/qualityManagement/processInspection/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <div class="search_form">
+    <div class="search_form mb20">
       <div>
         <span class="search_title">宸ュ簭锛�</span>
         <el-input
@@ -39,8 +39,8 @@
     </div>
     <InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia>
     <FormDia ref="formDia" @close="handleQuery"></FormDia>
-    <files-dia ref="filesDia" @close="handleQuery"></files-dia>
-		<el-dialog v-model="dialogFormVisible" title="缂栬緫妫�楠屽憳" width="70%"
+    <files-dia ref="filesDia"></files-dia>
+		<el-dialog v-model="dialogFormVisible" title="缂栬緫妫�楠屽憳" width="30%"
 							 @close="closeDia">
 			<el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
 				<el-form-item label="妫�楠屽憳锛�" prop="checkName">
@@ -62,7 +62,7 @@
 
 <script setup>
 import { Search } from "@element-plus/icons-vue";
-import {onMounted, ref} from "vue";
+import {onMounted, ref, reactive, toRefs, getCurrentInstance, nextTick} from "vue";
 import InspectionFormDia from "@/views/qualityManagement/processInspection/components/inspectionFormDia.vue";
 import FormDia from "@/views/qualityManagement/processInspection/components/formDia.vue";
 import {ElMessageBox} from "element-plus";
@@ -75,23 +75,29 @@
 import FilesDia from "@/views/qualityManagement/processInspection/components/filesDia.vue";
 import dayjs from "dayjs";
 import {userListNoPage} from "@/api/system/user.js";
+import useUserStore from "@/store/modules/user";
 
 const data = reactive({
   searchForm: {
     process: "",
-    entryDate: [
-      dayjs().format("YYYY-MM-DD"),
-      dayjs().add(1, "day").format("YYYY-MM-DD"),
-    ], // 褰曞叆鏃ユ湡
-    entryDateStart: dayjs().format("YYYY-MM-DD"),
-    entryDateEnd: dayjs().add(1, "day").format("YYYY-MM-DD"),
+    entryDate: undefined, // 褰曞叆鏃ユ湡
+    entryDateStart: undefined,
+    entryDateEnd: undefined,
   },
+	rules: {
+		checkName: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
+	},
 });
 const { searchForm } = toRefs(data);
 const tableColumn = ref([
   {
     label: "妫�娴嬫棩鏈�",
     prop: "checkTime",
+    width: 120
+  },
+  {
+    label: "鐢熶骇宸ュ崟鍙�",
+    prop: "workOrderNo",
     width: 120
   },
   {
@@ -116,8 +122,18 @@
     prop: "unit",
   },
   {
-    label: "鏁伴噺",
+    label: "鎬绘暟閲�",
     prop: "quantity",
+    width: 100
+  },
+  {
+    label: "鍚堟牸鏁伴噺",
+    prop: "qualifiedQuantity",
+    width: 100
+  },
+  {
+    label: "涓嶅悎鏍兼暟閲�",
+    prop: "unqualifiedQuantity",
     width: 100
   },
   {
@@ -126,27 +142,43 @@
     width: 120
   },
   {
-    label: "妫�娴嬬粨鏋�",
-    prop: "checkResult",
+    label: "鍚堟牸鐜�",
+    prop: "passRate",
+    width: 100,
     dataType: "tag",
+    formatData: (params) => {
+      if (params == null || params === '') return '鈥�';
+      const n = Number(params);
+      if (Number.isNaN(n)) return '鈥�';
+      return `${n.toFixed(2)}%`;
+    },
     formatType: (params) => {
-      if (params == '涓嶅悎鏍�') {
-        return "danger";
-      } else if (params == '鍚堟牸') {
-        return "success";
-      } else {
-        return null;
-      }
+      if (params == null || params === '') return 'info';
+      const n = Number(params);
+      if (Number.isNaN(n)) return 'info';
+      if (n === 100) return 'success';
+      if (n >= 75) return 'primary';
+      if (n >= 50) return 'warning';
+      if (n >= 25) return 'danger';
+      return 'danger';
     },
   },
 	{
 		label: "鎻愪氦鐘舵��",
 		prop: "inspectState",
+		dataType: "tag",
 		formatData: (params) => {
 			if (params) {
 				return "宸叉彁浜�";
 			} else {
 				return "鏈彁浜�";
+			}
+		},
+		formatType: (params) => {
+			if (params) {
+				return "success";
+			} else {
+				return "info";
 			}
 		},
 	},
@@ -164,8 +196,21 @@
           openForm("edit", row);
         },
 				disabled: (row) => {
-					return row.inspectState == 1;
+					// 宸叉彁浜ゅ垯绂佺敤
+					if (row.inspectState == 1) return true;
+					// 濡傛灉妫�楠屽憳鏈夊�硷紝鍙湁褰撳墠鐧诲綍鐢ㄦ埛鑳界紪杈�
+					if (row.checkName) {
+						return row.checkName !== userStore.nickName;
+					}
+					return false;
 				}
+      },
+      {
+        name: "鏌ョ湅",
+        type: "text",
+        clickFun: (row) => {
+          openForm("view", row);
+        },
       },
       {
         name: "闄勪欢",
@@ -180,8 +225,15 @@
 				clickFun: (row) => {
 					submit(row.id);
 				},
+				loading: (row) => submitLoadingId.value === row.id,
 				disabled: (row) => {
-					return row.inspectState == 1;
+					// 宸叉彁浜ゅ垯绂佺敤
+					if (row.inspectState == 1) return true;
+					// 濡傛灉妫�楠屽憳鏈夊�硷紝鍙湁褰撳墠鐧诲綍鐢ㄦ埛鑳芥彁浜�
+					if (row.checkName) {
+						return row.checkName !== userStore.nickName;
+					}
+					return false;
 				}
 			},
 			{
@@ -195,7 +247,7 @@
 					}
 				},
 				disabled: (row) => {
-					return row.inspectState == 1 || row.checkName !== '';
+					return row.inspectState == 1 || row.checkName;
 				}
 			},
 			{
@@ -213,6 +265,7 @@
 const tableData = ref([]);
 const selectedRows = ref([]);
 const tableLoading = ref(false);
+const submitLoadingId = ref(null);
 const dialogFormVisible = ref(false);
 const form = ref({
 	checkName: ""
@@ -226,6 +279,7 @@
 const filesDia = ref()
 const inspectionFormDia = ref()
 const { proxy } = getCurrentInstance()
+const userStore = useUserStore()
 const changeDaterange = (value) => {
   searchForm.value.entryDateStart = undefined;
   searchForm.value.entryDateEnd = undefined;
@@ -281,12 +335,20 @@
     filesDia.value?.openDialog(type, row)
   })
 };
-// 鎻愪环
+// 鎻愪氦
 const submit = async (id) => {
-	const res = await submitQualityInspect({id: id})
-	if (res.code === 200) {
-		proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-		getList();
+	submitLoadingId.value = id;
+	try {
+		const res = await submitQualityInspect({ id });
+		if (res.code === 200) {
+			proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+			const row = tableData.value.find(item => item.id === id);
+			if (row) {
+				row.inspectState = 1;
+			}
+		}
+	} finally {
+		submitLoadingId.value = null;
 	}
 }
 const open = async (row) => {
@@ -344,13 +406,13 @@
 			type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
 		})
 		const downloadUrl = window.URL.createObjectURL(blob)
-		
+
 		const link = document.createElement('a')
 		link.href = downloadUrl
 		link.download = '杩囩▼妫�楠屾姤鍛�.docx'
 		document.body.appendChild(link)
 		link.click()
-		
+
 		document.body.removeChild(link)
 		window.URL.revokeObjectURL(downloadUrl)
 	})

--
Gitblit v1.9.3