From cdf8190c92a536dabdbd3dfd6758cf67320ff6df Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 16 一月 2026 17:47:21 +0800
Subject: [PATCH] Merge branch 'dev_New' of http://114.132.189.42:9002/r/product-inventory-management into dev_New
---
src/views/qualityManagement/metricMaintenance/index.vue | 88 +++++++++++++++++++++++++++++++++++++++++---
1 files changed, 82 insertions(+), 6 deletions(-)
diff --git a/src/views/qualityManagement/metricMaintenance/index.vue b/src/views/qualityManagement/metricMaintenance/index.vue
index 4f62bca..f152a04 100644
--- a/src/views/qualityManagement/metricMaintenance/index.vue
+++ b/src/views/qualityManagement/metricMaintenance/index.vue
@@ -6,6 +6,8 @@
<div class="toolbar-left"></div>
<div class="toolbar-right">
<el-button type="primary" @click="openStandardDialog('add')">鏂板</el-button>
+ <el-button type="success" plain @click="handleBatchAudit(1)">鎵瑰噯</el-button>
+ <el-button type="warning" plain @click="handleBatchAudit(2)">鎾ら攢</el-button>
<el-button type="danger" plain @click="handleBatchDelete">鍒犻櫎</el-button>
</div>
</div>
@@ -16,6 +18,7 @@
:page="page"
:isSelection="true"
:tableLoading="tableLoading"
+ :rowClassName="rowClassNameCenter"
@selection-change="handleSelectionChange"
@pagination="handlePagination"
:total="page.total"
@@ -92,10 +95,10 @@
</div>
<div class="right-toolbar">
- <el-button type="primary" :disabled="!currentStandard" @click="openParamDialog('add')">
+ <el-button type="primary" :disabled="!currentStandard || isStandardReadonly" @click="openParamDialog('add')">
鏂板
</el-button>
- <el-button type="danger" plain :disabled="!currentStandard" @click="handleParamBatchDelete">
+ <el-button type="danger" plain :disabled="!currentStandard || isStandardReadonly" @click="handleParamBatchDelete">
鍒犻櫎
</el-button>
</div>
@@ -104,6 +107,8 @@
v-loading="detailLoading"
:data="detailTableData"
border
+ :row-class-name="() => 'row-center'"
+ class="center-table"
style="width: 100%"
height="calc(100vh - 220px)"
@selection-change="handleParamSelectionChange"
@@ -117,10 +122,10 @@
<el-table-column prop="defaultValue" label="榛樿鍊�" min-width="120" />
<el-table-column label="鎿嶄綔" width="140" fixed="right" align="center">
<template #default="{ row }">
- <el-button link type="primary" size="small" @click="openParamDialog('edit', row)">
+ <el-button link type="primary" size="small" :disabled="isStandardReadonly" @click="openParamDialog('edit', row)">
缂栬緫
</el-button>
- <el-button link type="danger" size="small" @click="handleParamDelete(row)">
+ <el-button link type="danger" size="small" :disabled="isStandardReadonly" @click="handleParamDelete(row)">
鍒犻櫎
</el-button>
</template>
@@ -155,7 +160,7 @@
<script setup>
import { Search } from '@element-plus/icons-vue'
-import { ref, reactive, toRefs, onMounted, getCurrentInstance } from 'vue'
+import { ref, reactive, toRefs, onMounted, getCurrentInstance, computed } from 'vue'
import { ElMessageBox } from 'element-plus'
import {
qualityTestStandardListPage,
@@ -163,6 +168,7 @@
qualityTestStandardUpdate,
qualityTestStandardDel,
qualityTestStandardCopyParam,
+ qualityTestStandardAudit,
qualityTestStandardParamList,
qualityTestStandardParamAdd,
qualityTestStandardParamUpdate,
@@ -173,6 +179,15 @@
import ParamFormDialog from './ParamFormDialog.vue'
const { proxy } = getCurrentInstance()
+
+// 宸︿晶鏍囧噯鍒楄〃锛氭暣琛屽唴瀹瑰眳涓紙閰嶅悎鏍峰紡锛�
+const rowClassNameCenter = () => 'row-center'
+
+// 鏍囧噯鐘舵�佷负鈥滈�氳繃(1)鈥濇椂锛屽彸渚у弬鏁扮姝㈠鍒犳敼
+const isStandardReadonly = computed(() => {
+ const state = currentStandard.value?.state
+ return state === 1 || state === '1'
+})
// 鎼滅储鏉′欢
const data = reactive({
@@ -286,7 +301,14 @@
},
{
label: '宸ュ簭',
- prop: 'processId'
+ prop: 'processId',
+ dataType: 'tag',
+ formatData: (val) => {
+ const target = processOptions.value.find(
+ (item) => String(item.value) === String(val)
+ )
+ return target?.label || val
+ }
},
{
label: '鐘舵��',
@@ -399,6 +421,32 @@
selectedRows.value = selection
}
+// 鎵归噺瀹℃牳锛氱姸鎬� 1=鎵瑰噯锛�2=鎾ら攢
+const handleBatchAudit = async (state) => {
+ if (!selectedRows.value.length) {
+ proxy.$message.warning('璇烽�夋嫨鏁版嵁')
+ return
+ }
+ const text = state === 1 ? '鎵瑰噯' : '鎾ら攢'
+ const payload = selectedRows.value
+ .filter(i => i?.id)
+ .map((item) => ({ id: item.id, state }))
+
+ if (!payload.length) {
+ proxy.$message.warning('璇烽�夋嫨鏈夋晥鏁版嵁')
+ return
+ }
+
+ try {
+ await ElMessageBox.confirm(`纭${text}閫変腑鐨勬爣鍑嗭紵`, '鎻愮ず', { type: 'warning' })
+ } catch {
+ return
+ }
+ await qualityTestStandardAudit(payload)
+ proxy.$message.success(`${text}鎴愬姛`)
+ getStandardList()
+}
+
// 宸︿晶琛岀偣鍑伙紝鍔犺浇鍙充晶鍙傛暟
const handleStandardRowClick = (row) => {
currentStandard.value = row
@@ -425,6 +473,10 @@
const openParamDialog = (type, row) => {
if (!currentStandard.value?.id) return
+ if (isStandardReadonly.value) {
+ proxy.$message.warning('璇ユ爣鍑嗗凡閫氳繃锛屽弬鏁颁笉鍙紪杈�')
+ return
+ }
paramOperationType.value = type
if (type === 'add') {
Object.assign(paramForm, {
@@ -449,6 +501,10 @@
const submitParamForm = async () => {
const testStandardId = currentStandard.value?.id
if (!testStandardId) return
+ if (isStandardReadonly.value) {
+ proxy.$message.warning('璇ユ爣鍑嗗凡閫氳繃锛屽弬鏁颁笉鍙紪杈�')
+ return
+ }
const payload = { ...paramForm, testStandardId }
if (paramOperationType.value === 'edit') {
await qualityTestStandardParamUpdate(payload)
@@ -463,6 +519,10 @@
const handleParamDelete = async (row) => {
if (!row?.id) return
+ if (isStandardReadonly.value) {
+ proxy.$message.warning('璇ユ爣鍑嗗凡閫氳繃锛屽弬鏁颁笉鍙紪杈�')
+ return
+ }
try {
await ElMessageBox.confirm('纭鍒犻櫎璇ュ弬鏁帮紵', '鎻愮ず', { type: 'warning' })
} catch {
@@ -474,6 +534,10 @@
}
const handleParamBatchDelete = async () => {
+ if (isStandardReadonly.value) {
+ proxy.$message.warning('璇ユ爣鍑嗗凡閫氳繃锛屽弬鏁颁笉鍙紪杈�')
+ return
+ }
if (!paramSelectedRows.value.length) {
proxy.$message.warning('璇烽�夋嫨鏁版嵁')
return
@@ -682,4 +746,16 @@
.clickable-link:hover {
text-decoration: underline;
}
+
+:deep(.row-center td) {
+ text-align: center !important;
+}
+
+/* el-table 琛ㄥご/鍐呭缁熶竴灞呬腑锛坮ow-class-name 涓嶄綔鐢ㄤ簬琛ㄥご锛� */
+:deep(.center-table .el-table__header-wrapper th .cell) {
+ text-align: center !important;
+}
+:deep(.center-table .el-table__body-wrapper td .cell) {
+ text-align: center !important;
+}
</style>
\ No newline at end of file
--
Gitblit v1.9.3