From 9862248787934f4242ac9636e0c4d5b8ee0870b8 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期二, 20 十月 2026 16:45:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue | 92 ++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 88 insertions(+), 4 deletions(-)
diff --git a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue
index 39e3be1..cca0e74 100644
--- a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue
+++ b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue
@@ -70,6 +70,18 @@
</tr>
<tr>
<td class="td-title">
+ <p>鐩戠潱鏂瑰紡锛�</p>
+ </td>
+ <td colspan="5">
+ <el-select v-if="currentStep === 0" v-model="superviseModeList" multiple filterable collapse-tags
+ placeholder="璇烽�夋嫨鐩戠潱鏂瑰紡锛堢▼搴�4.2.4锛�" size="small" style="width: 100%">
+ <el-option v-for="item in superviseModeItems" :key="item" :label="item" :value="item"></el-option>
+ </el-select>
+ <span v-else class="td-info"> {{ form.superviseMethod }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
<p><span class="required-span">* </span>鐩戠潱璁板綍锛�</p>
</td>
<td colspan="5">
@@ -108,6 +120,23 @@
type="textarea">
</el-input>
<span v-else class="td-info"> {{ form.rectifyAdvice }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p>琚洃鐫d汉鍛樼‘璁ゆ剰瑙侊細</p>
+ </td>
+ <td colspan="5">
+ <span v-if="form.confirmOpinion" class="td-info">{{ form.confirmOpinion }}</span>
+ <template v-else-if="canConfirm">
+ <el-input v-model="confirmOpinion" :rows="2" size="small" type="textarea"
+ placeholder="瀵圭洃鐫h褰曠湡瀹炴�ц〃绀鸿鍙��"/>
+ <el-button :loading="confirming" size="small" type="primary" style="margin-top: 6px"
+ @click="confirmRecord">纭� 璁�</el-button>
+ </template>
+ <span v-else class="td-info">
+ {{ form.superviseDetailsRecordId ? '寰呰鐩戠潱浜哄憳纭' : '鐩戠潱鍛樻彁浜ゅ悗鐢辫鐩戠潱浜哄憳纭' }}
+ </span>
</td>
</tr>
<tr>
@@ -170,11 +199,26 @@
<script>
import {
addSuperviseDetailRecord,
- addSuperviseRecordOpinion, getRecordUser,
+ addSuperviseRecordOpinion, confirmSuperviseRecord, getRecordUser,
getSuperviseDetailRecord
} from "@/api/cnas/process/ensureResults/qualitySupervise";
import {selectUserCondition} from "@/api/business/inspectionTask";
import {mapGetters} from "@/utils/store-compat";
+
+// 鐩戠潱鍐呭9椤癸紝涓庡彈鎺ц褰曡〃 LMSY-CX29-JL02 鐨勬枃瀛楀強妯帓椤哄簭瀹屽叏涓�鑷�
+const SUPERVISE_CONTENT_ITEMS = [
+ '浜哄憳鎸佽瘉鍙婂煿璁�', '璁炬柦鍙婄幆澧冩潯浠�', '妫�娴嬫柟娉�',
+ '浠櫒璁惧绠$悊', '娴嬮噺婧簮鎬�', '鏍囧噯鐗╄川绠$悊',
+ '鏍峰搧鍒跺鍜屽缃�', '妫�娴嬫暟鎹鐞�', '缁撴灉鎶ュ憡缁撴灉'
+]
+// 鐩戠潱鏂瑰紡锛屽搴斻�婅川閲忕洃鐫g▼搴忋��4.2.4
+const SUPERVISE_MODE_ITEMS = [
+ '鏍告煡鍘熷璁板綍鍜屾姤鍛�',
+ '鐜板満鐩戠潱瀹為檯鎿嶄綔杩囩▼',
+ '涓庤鐩戠潱瀵硅薄浜ゆ祦',
+ '鍐呴儴璐ㄩ噺鎺у埗/澶栭儴璐ㄩ噺璇勪及',
+ '鍩硅鏁堟灉璇勪环'
+]
export default {
name: 'recordsDialog',
@@ -200,6 +244,8 @@
ratifyOpinion: '',
isAccording: '',
isFinish: '',
+ superviseMethod: '',
+ confirmOpinion: '',
},
currentStep: 0,
editLoad: false,
@@ -209,11 +255,27 @@
ratifyUserId: '',
superviseeList: [],
superviseContentList: [],
- superviseContentItems: ['浜哄憳鎸佽瘉鍙婂煿璁�', '璁炬柦鍙婄幆澧冩潯浠�', '妫�娴嬫柟娉�', '浠櫒璁惧绠$悊', '娴嬮噺婧簮鎬�', '鏍囧噯鐗╄川绠$悊', '鏍峰搧鍒跺鍜屽缃�', '妫�娴嬫暟鎹鐞�', '缁撴灉鎶ュ憡缁撴灉'],
+ superviseContentItems: SUPERVISE_CONTENT_ITEMS,
+ superviseModeItems: SUPERVISE_MODE_ITEMS,
+ superviseModeList: [],
+ confirmOpinion: '',
+ confirming: false,
};
},
computed: {
- ...mapGetters(["userId"]),
+ ...mapGetters(["userId", "nickName"]),
+ // 璁板綍宸叉彁浜や笖灏氭湭纭鏃讹紝鍙湁琚洃鐫d汉鍛樻湰浜哄彲浠ョ‘璁わ紙绋嬪簭4.2.5锛�
+ canConfirm() {
+ if (!this.form.superviseDetailsRecordId || this.form.confirmOpinion) {
+ return false
+ }
+ const members = (this.form.testMember || '').split('銆�').map(item => item.trim()).filter(Boolean)
+ if (this.nickName && members.includes(this.nickName)) {
+ return true
+ }
+ // 鍏滃簳锛氳鍒掓槑缁嗕腑鐧昏鐨勮鐩戠潱浜哄憳
+ return !!this.supervisedUserId && Number(this.supervisedUserId) === Number(this.userId)
+ },
contentRows() {
const rows = []
for (let i = 0; i < this.superviseContentItems.length; i += 3) {
@@ -255,6 +317,8 @@
this.ratifyUserId = res.data.ratifyUserId
this.superviseeList = this.form.testMember ? this.form.testMember.split('銆�').filter(i => i) : []
this.superviseContentList = this.form.superviseContent ? this.form.superviseContent.split('銆�').filter(i => i) : []
+ this.superviseModeList = this.form.superviseMethod ? this.form.superviseMethod.split('銆�').filter(i => i) : []
+ this.confirmOpinion = this.form.confirmOpinion || ''
this.getRecordUser()
}).catch(err => {
console.log('err---', err);
@@ -273,6 +337,7 @@
}
this.form.testMember = this.superviseeList.join('銆�')
this.form.superviseContent = this.superviseContentList.join('銆�')
+ this.form.superviseMethod = this.superviseModeList.join('銆�')
this.addInfo()
} else {
this.editInfo(isFinish)
@@ -311,6 +376,20 @@
this.editLoad = false
})
},
+ // 琚洃鐫d汉鍛樼‘璁ょ洃鐫h褰曪紙绋嬪簭4.2.5锛�
+ confirmRecord () {
+ const opinion = (this.confirmOpinion || '').trim() || '瀵圭洃鐫h褰曠湡瀹炴�ц〃绀鸿鍙��'
+ this.confirming = true
+ confirmSuperviseRecord({
+ superviseDetailsId: this.form.superviseDetailsId,
+ confirmOpinion: opinion
+ }).then(() => {
+ this.form.confirmOpinion = opinion
+ this.$message.success('宸茬‘璁ょ洃鐫h褰�')
+ }).finally(() => {
+ this.confirming = false
+ })
+ },
// 鍏抽棴寮规
closeRecordsDia () {
this.formDia = false
@@ -331,7 +410,12 @@
},
getRecordUser () {
getRecordUser({superviseDetailsId: this.form.superviseDetailsId}).then(res => {
- this.recordUserList = res.data
+ this.recordUserList = res.data || []
+ // 璁″垝宸叉寚瀹氱洃鐫e憳浣嗗皻鏈骇鐢熻褰曟椂锛岄粯璁ゅ弽鏄剧涓�浣嶇洃鐫e憳锛�
+ // 鍚庣鍙湁鍦ㄥ瓨鍦ㄤ笂鏈堣褰曟椂鎵嶄細鑷姩甯﹀嚭鐩戠潱鍛橈紝棣栨濉啓浼氫负绌恒��
+ if (this.currentStep === 0 && !this.form.supervisor && this.recordUserList.length) {
+ this.form.supervisor = this.recordUserList[0].userName
+ }
})
},
}
--
Gitblit v1.9.3