|
|
@@ -65,7 +65,7 @@
|
|
|
v-if="
|
|
|
(row.status == 0 || row.status == 1) &&
|
|
|
[0, 3].includes(row.approvalStatus) &&
|
|
|
- (!unqualified_approval || unqualified_approval == 0)
|
|
|
+ !needApproval(row)
|
|
|
"
|
|
|
type="primary"
|
|
|
:underline="false"
|
|
|
@@ -77,7 +77,8 @@
|
|
|
<el-link
|
|
|
v-if="
|
|
|
(row.status == 0 || row.status == 1) &&
|
|
|
- [0, 3].includes(row.approvalStatus)&&unqualified_approval == 1
|
|
|
+ [0, 3].includes(row.approvalStatus) &&
|
|
|
+ needApproval(row)
|
|
|
"
|
|
|
type="primary"
|
|
|
:underline="false"
|
|
|
@@ -115,6 +116,66 @@
|
|
|
import DetailList from '@/views/unqualifiedProduct/unqualifiedList/detailList.vue';
|
|
|
import { reviewStatus } from '@/enum/dict';
|
|
|
|
|
|
+ // 检测类型 → 处置审批流程Key + 审批开关参数编码(与后端 ProcessTypeEnum.QMS_UNQUALIFIED_*、
|
|
|
+ // UNQUALIFIED_APPROVAL_PARAM_CODE_MAP 一一对应,合并配置避免两张表错位)
|
|
|
+ const APPROVAL_CONFIG = {
|
|
|
+ 1: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList',
|
|
|
+ paramCode: 'unqualifiedList_approval'
|
|
|
+ },
|
|
|
+ 2: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList2',
|
|
|
+ paramCode: 'unqualifiedList2_approval'
|
|
|
+ },
|
|
|
+ 3: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList3',
|
|
|
+ paramCode: 'unqualifiedList3_approval'
|
|
|
+ },
|
|
|
+ 4: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList4',
|
|
|
+ paramCode: 'unqualifiedList4_approval'
|
|
|
+ },
|
|
|
+ 5: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList5',
|
|
|
+ paramCode: 'unqualifiedList5_approval'
|
|
|
+ },
|
|
|
+ 6: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList6',
|
|
|
+ paramCode: 'unqualifiedList6_approval'
|
|
|
+ },
|
|
|
+ 7: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList7',
|
|
|
+ paramCode: 'unqualifiedList7_approval'
|
|
|
+ },
|
|
|
+ 8: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList8',
|
|
|
+ paramCode: 'unqualifiedList8_approval'
|
|
|
+ },
|
|
|
+ 9: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList9',
|
|
|
+ paramCode: 'unqualifiedList9_approval'
|
|
|
+ },
|
|
|
+ 10: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList10',
|
|
|
+ paramCode: 'unqualifiedList10_approval'
|
|
|
+ },
|
|
|
+ 11: {
|
|
|
+ processKey: 'qms_approval_unqualifiedList11',
|
|
|
+ paramCode: 'unqualifiedList11_approval'
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 流程结束回调:未在 bpm_process_business_relation 注册的流程Key需由流程变量显式携带
|
|
|
+ const UNQUALIFIED_CALLBACK_BEAN = 'qmsUnqualifiedProductsServiceImpl';
|
|
|
+ const UNQUALIFIED_CALLBACK_END_METHOD = 'updateApprovalStatus';
|
|
|
+
|
|
|
+ // 默认全部按“需要审批”处理,与后端参数未配置时的缺省语义一致,避免首屏按钮闪变
|
|
|
+ const buildDefaultApprovalMap = () =>
|
|
|
+ Object.keys(APPROVAL_CONFIG).reduce((result, type) => {
|
|
|
+ result[type] = true;
|
|
|
+ return result;
|
|
|
+ }, {});
|
|
|
+
|
|
|
export default {
|
|
|
components: {
|
|
|
OrderSearch,
|
|
|
@@ -129,7 +190,8 @@
|
|
|
visible: false,
|
|
|
loading: false,
|
|
|
processSubmitDialogFlag: false,
|
|
|
- unqualified_approval: 0,
|
|
|
+ // 检测类型 → 是否开启处置审批(true:需要审批,显示“提交”)
|
|
|
+ approvalParamMap: buildDefaultApprovalMap(),
|
|
|
releasParams: {
|
|
|
teamId: '',
|
|
|
id: ''
|
|
|
@@ -276,10 +338,7 @@
|
|
|
formatter: (_row, _column, cellValue) => {
|
|
|
// 无流程实例说明单据未进入审批流程,直接展示为“无流程”
|
|
|
const processInstanceId = _row.processInstanceId;
|
|
|
- if (
|
|
|
- !processInstanceId ||
|
|
|
- !String(processInstanceId).trim()
|
|
|
- ) {
|
|
|
+ if (!processInstanceId || !String(processInstanceId).trim()) {
|
|
|
return '无流程';
|
|
|
}
|
|
|
return reviewStatus[_row.approvalStatus];
|
|
|
@@ -336,25 +395,53 @@
|
|
|
created() {
|
|
|
this.requestDict('质检计划类型');
|
|
|
this.requestDict('处置状态');
|
|
|
- parameterGetByCode({
|
|
|
- code: 'unqualifiedList_approval'
|
|
|
- }).then((res) => {
|
|
|
- this.unqualified_approval = res.value;
|
|
|
- });
|
|
|
+ this.loadApprovalParams();
|
|
|
},
|
|
|
filters: {},
|
|
|
methods: {
|
|
|
+ // 按检测类型加载审批开关:参数值为 0 表示不需要审批,未配置或读取失败保持默认(需要审批)
|
|
|
+ async loadApprovalParams() {
|
|
|
+ await Promise.all(
|
|
|
+ Object.keys(APPROVAL_CONFIG).map(async (type) => {
|
|
|
+ try {
|
|
|
+ const res = await parameterGetByCode({
|
|
|
+ code: APPROVAL_CONFIG[type].paramCode
|
|
|
+ });
|
|
|
+ this.$set(
|
|
|
+ this.approvalParamMap,
|
|
|
+ type,
|
|
|
+ String(res && res.value).trim() !== '0'
|
|
|
+ );
|
|
|
+ } catch (e) {
|
|
|
+ // 读取失败保持默认“需要审批”
|
|
|
+ }
|
|
|
+ })
|
|
|
+ );
|
|
|
+ },
|
|
|
+ // 该行检测类型是否开启处置审批:开启显示“提交”,关闭显示“处置”
|
|
|
+ needApproval(row) {
|
|
|
+ return this.approvalParamMap[row.qualityType] !== false;
|
|
|
+ },
|
|
|
reportApprovalSubmit(res) {
|
|
|
+ const approvalConfig = APPROVAL_CONFIG[res.qualityType];
|
|
|
+ if (!approvalConfig) {
|
|
|
+ this.$message.warning('该检测类型未配置不良品处置审批流程');
|
|
|
+ return;
|
|
|
+ }
|
|
|
this.processSubmitDialogFlag = true;
|
|
|
this.$nextTick(async () => {
|
|
|
- let params = {
|
|
|
+ const params = {
|
|
|
businessId: res.id,
|
|
|
- businessKey: 'qms_approval_unqualifiedList',
|
|
|
+ businessKey: approvalConfig.processKey,
|
|
|
formCreateUserId: res.createUserId,
|
|
|
variables: {
|
|
|
businessCode: res.unqualifiedProductsCode,
|
|
|
businessName: res.categoryName,
|
|
|
- businessType: '不良品处置'
|
|
|
+ businessType: '不良品处置',
|
|
|
+ // List2~11 未在 bpm_process_business_relation 注册,需显式携带业务主键与回调方法,否则流程结束无法回写审批状态
|
|
|
+ businessId: res.id,
|
|
|
+ callBackMethodType: UNQUALIFIED_CALLBACK_BEAN,
|
|
|
+ callBackMethod: UNQUALIFIED_CALLBACK_END_METHOD
|
|
|
}
|
|
|
};
|
|
|
|