From 7f4ffe2c19004403bb3190f25879b2074f4d3932 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 16 十月 2026 17:16:43 +0800
Subject: [PATCH] fix:1. 过程要求 - 样品接收:列表样式优化。 2. 过程要求 - 方法验证:点击详情还能修改,导出格式优化,按客户给的文档来。 3. 业务管理 - 检验任务:删除不合格相关的检测。 4. 业务管理 - 报告结果:按照发送日期倒序排列。 5. 基础配置 - 行业管理:删除印章管理。 6. 体系管理要求 - 客户满意度:附件上传报错,精简上传逻辑。
---
src/views/CNAS/process/method/methodVerification/component/formDIa.vue | 141 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 129 insertions(+), 12 deletions(-)
diff --git a/src/views/CNAS/process/method/methodVerification/component/formDIa.vue b/src/views/CNAS/process/method/methodVerification/component/formDIa.vue
index 5323b46..aaffbc6 100644
--- a/src/views/CNAS/process/method/methodVerification/component/formDIa.vue
+++ b/src/views/CNAS/process/method/methodVerification/component/formDIa.vue
@@ -1,12 +1,13 @@
<template>
<div>
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
- :title="operationType === 'edit' ? '缂栬緫' : '鏂板'"
+ :title="operationType === 'edit' ? '缂栬緫' : operationType === 'view' ? '璇︽儏' : '鏂板'"
v-model="formDia"
width="90%" @close="closeDia">
<div v-if="operationType === 'edit'" style="text-align: right">
<el-button :disabled="form.confirmDate" size="small" type="primary" @click="validation">楠岃瘉纭</el-button>
</div>
+ <fieldset :disabled="operationType === 'view'" class="view-fieldset">
<table border="1" cellspacing="10" class="tables">
<tr>
<td>
@@ -202,6 +203,72 @@
</td>
</tr>
<tr>
+ <td>鏁版嵁澶勭悊</td>
+ <td colspan="7">
+ <el-input v-model="form.dataProcessing" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" size="small" type="textarea"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>璐ㄩ噺鎺у埗鏂规硶</td>
+ <td colspan="7">
+ <el-input v-model="form.qualityControlMethod" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" size="small" type="textarea"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>鏂规硶缁撴灉楠岃瘉</td>
+ <td colspan="7">
+ <el-input v-model="form.methodResultVerification" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" size="small" type="textarea"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>楠岃瘉缁撹</td>
+ <td colspan="7">
+ <el-input v-model="form.verificationConclusion" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" size="small" type="textarea"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>璇勫鎰忚</td>
+ <td colspan="7">
+ <div class="opinion-box">
+ <div class="opinion-checks">
+ <el-checkbox :model-value="form.reviewResult === '鍚屾剰浣跨敤'"
+ @change="toggleReview('鍚屾剰浣跨敤', $event)">鍚屾剰浣跨敤</el-checkbox>
+ <el-checkbox :model-value="form.reviewResult === '涓嶈兘浣跨敤'"
+ @change="toggleReview('涓嶈兘浣跨敤', $event)">涓嶈兘浣跨敤</el-checkbox>
+ <el-checkbox :model-value="form.reviewResult === '闄愬埗浣跨敤'"
+ @change="toggleReview('闄愬埗浣跨敤', $event)">闄愬埗浣跨敤</el-checkbox>
+ </div>
+ <div class="opinion-sign">
+ <span>璇勫浜哄憳锛�</span>
+ <el-input v-model="form.reviewPerson" placeholder="璇疯緭鍏�" size="small" style="width: 160px"></el-input>
+ <el-date-picker v-model="form.reviewDate" format="YYYY骞碝M鏈圖D鏃�" placeholder="閫夋嫨鏃ユ湡" size="small"
+ type="date" value-format="YYYY-MM-DD" style="width: 170px"></el-date-picker>
+ </div>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td>瀹℃壒鎰忚</td>
+ <td colspan="7">
+ <div class="opinion-box">
+ <div class="opinion-checks">
+ <el-checkbox :model-value="form.approvalResult === '鍚屾剰浣跨敤'"
+ @change="toggleApproval('鍚屾剰浣跨敤', $event)">鍚屾剰浣跨敤</el-checkbox>
+ <el-checkbox :model-value="form.approvalResult === '涓嶈兘浣跨敤'"
+ @change="toggleApproval('涓嶈兘浣跨敤', $event)">涓嶈兘浣跨敤</el-checkbox>
+ <el-checkbox :model-value="form.approvalResult === '闄愬埗浣跨敤'"
+ @change="toggleApproval('闄愬埗浣跨敤', $event)">闄愬埗浣跨敤</el-checkbox>
+ </div>
+ <div class="opinion-sign">
+ <span>鎶�鏈礋璐d汉锛�</span>
+ <el-input v-model="form.approvalPerson" placeholder="璇疯緭鍏�" size="small" style="width: 160px"></el-input>
+ <el-date-picker v-model="form.approvalDate" format="YYYY骞碝M鏈圖D鏃�" placeholder="閫夋嫨鏃ユ湡" size="small"
+ type="date" value-format="YYYY-MM-DD" style="width: 170px"></el-date-picker>
+ </div>
+ </div>
+ </td>
+ </tr>
+ <tr>
<td colspan="3">
<p>鏄惁寮曠敤姝ゆ爣鍑嗗紑灞曟娴�:</p>
</td>
@@ -216,19 +283,20 @@
<p>鍙傚姞纭浜虹鍚�:</p>
</td>
<td colspan="5">
- <el-select v-model="form.confirmUser" multiple placeholder="璇烽�夋嫨" size="small" style="width: 100%" :multiple-limit="5">
+ <el-select v-model="form.confirmUser" :disabled="operationType === 'view'" multiple placeholder="璇烽�夋嫨" size="small" style="width: 100%" :multiple-limit="5">
<el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</td>
</tr>
</table>
+ </fieldset>
<template #footer><span class="dialog-footer">
- <el-button @click="closeDia">鍙� 娑�</el-button>
- <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ <el-button @click="closeDia">{{ operationType === 'view' ? '鍏抽棴' : '鍙� 娑�' }}</el-button>
+ <el-button v-if="operationType !== 'view'" :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
</span></template>
</el-dialog>
- <ViewDeviceDialog v-if="viewDeviceDialog" ref="viewDeviceDialog" @closDeviceDia="closDeviceDia" @handleDeviceInfo="handleDeviceInfo"></ViewDeviceDialog>
- <ViewTestRecord v-if="viewTestRecordDialog" ref="viewTestRecordDialog"></ViewTestRecord>
+ <ViewDeviceDialog v-if="viewDeviceDialog" ref="viewDeviceDialog" :read-only="operationType === 'view'" @closDeviceDia="closDeviceDia" @handleDeviceInfo="handleDeviceInfo"></ViewDeviceDialog>
+ <ViewTestRecord v-if="viewTestRecordDialog" ref="viewTestRecordDialog" :read-only="operationType === 'view'"></ViewTestRecord>
<ViewWorkPermitDia v-if="viewWorkPermitDia" ref="viewWorkPermitDia"></ViewWorkPermitDia>
<calibrations-file-dia v-if="calibrationsFileDia" ref="calibrationsFileDia"></calibrations-file-dia>
</div>
@@ -236,17 +304,17 @@
<script>
import { dateFormat } from '@/utils/date'
-import ViewDeviceDialog from '../../standardMethodsChange/component/ViewDeviceDialog.vue';
-import ViewTestRecord from '../../standardMethodsChange/component/ViewTestRecord.vue';
-import ViewWorkPermitDia from '../../standardMethodsChange/component/viewWorkPermitDia.vue';
-import CalibrationsFileDia from '../../standardMethodsChange/component/calibrationsFileDia.vue';
+import ViewDeviceDialog from './ViewDeviceDialog.vue';
+import ViewTestRecord from './ViewTestRecord.vue';
+import ViewWorkPermitDia from './viewWorkPermitDia.vue';
+import CalibrationsFileDia from './calibrationsFileDia.vue';
import {
addMethodVerify,
getMethodVerifyOne,
methodVerifyAffirm,
updateMethodVerify
} from '@/api/cnas/process/method/methodVerification'
-import { selectUserCondition } from '@/api/cnas/process/method/standardMethodsChange'
+import { selectUserCondition } from '@/api/cnas/process/method/methodVerification'
export default {
name: 'formDIa',
// import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
@@ -294,6 +362,16 @@
otherReadiness: '',
otherIsSatisfied: '',
otherRemark: '',
+ dataProcessing: '',
+ qualityControlMethod: '',
+ methodResultVerification: '',
+ verificationConclusion: '',
+ reviewResult: '',
+ reviewPerson: '',
+ reviewDate: '',
+ approvalResult: '',
+ approvalPerson: '',
+ approvalDate: '',
machineAttachmentList: []
},
editLoad: false,
@@ -313,7 +391,7 @@
this.formDia = true
this.info = row
this.getUserList()
- if (this.operationType === 'edit') {
+ if (this.operationType === 'edit' || this.operationType === 'view') {
this.searchInfo(row)
}
},
@@ -332,6 +410,7 @@
},
// 鎻愪氦
handleEdit() {
+ if (this.operationType === 'view') return
this.editLoad = true
const processMethodSearchNews = this.HaveJson(this.form)
processMethodSearchNews.confirmUser = processMethodSearchNews.confirmUser && processMethodSearchNews.confirmUser.join(',')
@@ -341,6 +420,16 @@
} else {
this.addInfo(processMethodSearchNews)
}
+ },
+ // 璇勫鎰忚鍕鹃�夛紙涓夐�変竴锛屽啀鐐逛竴娆″彇娑堬級
+ toggleReview (value, checked) {
+ if (this.operationType === 'view') return
+ this.form.reviewResult = checked ? value : ''
+ },
+ // 瀹℃壒鎰忚鍕鹃�夛紙涓夐�変竴锛屽啀鐐逛竴娆″彇娑堬級
+ toggleApproval (value, checked) {
+ if (this.operationType === 'view') return
+ this.form.approvalResult = checked ? value : ''
},
// 鏌ョ湅涓婂矖璇�
viewWorkPermit () {
@@ -369,6 +458,7 @@
},
// 鎻愪氦璁惧淇℃伅
handleDeviceInfo (machineAttachmentList) {
+ if (this.operationType === 'view') return
this.viewDeviceDialog = false
this.form.machineAttachmentList = machineAttachmentList
},
@@ -445,6 +535,12 @@
width: 100%;
margin-top: 10px;
}
+.view-fieldset {
+ border: none;
+ margin: 0;
+ padding: 0;
+ min-width: 0;
+}
.tables td {
height: 34px;
width: 100px;
@@ -454,4 +550,25 @@
white-space: normal;
padding: 4px;
}
+.opinion-box {
+ border: 1px solid var(--el-border-color);
+ border-radius: 4px;
+ min-height: 72px;
+ padding: 8px 10px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ gap: 8px;
+}
+.opinion-checks {
+ display: flex;
+ justify-content: flex-start;
+}
+.opinion-sign {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ gap: 8px;
+ font-size: 14px;
+}
</style>
--
Gitblit v1.9.3