|
|
@@ -1,5 +1,4 @@
|
|
|
<template>
|
|
|
- <main class="safety-platform-container__main">
|
|
|
<!-- 反馈审核不通过提示条:仅在 evaluationSystem-feedback 且 approveRejectReson 有值时显示 -->
|
|
|
<el-alert
|
|
|
v-if="isFeedbackOperate && approveRejectReson"
|
|
|
@@ -8,6 +7,7 @@
|
|
|
show-icon
|
|
|
class="reject-alert"
|
|
|
/>
|
|
|
+ <main class="safety-platform-container__main">
|
|
|
<el-form ref="formRef" :model="ruleFormData" :rules="formRules" label-width="auto" class="evaluation-form">
|
|
|
<el-form-item label="考核信息标题:" prop="evaluationTitle">
|
|
|
<el-input v-model="ruleFormData.evaluationTitle" placeholder="请输入考核信息标题" disabled />
|
|
|
@@ -46,7 +46,7 @@
|
|
|
/>
|
|
|
</div>
|
|
|
<div class="evaluation-items-table">
|
|
|
- <el-table :data="evaluationItems" border show-summary :summary-method="getSummaries">
|
|
|
+ <el-table :data="evaluationItems" border show-summary :summary-method="getSummaries" :span-method="spanMethod" >
|
|
|
<el-table-column label="编号" type="index" width="80" align="center" />
|
|
|
<el-table-column label="考核项目" prop="evaluationItem" min-width="150" />
|
|
|
<el-table-column label="考核内容" prop="evaluationContent" min-width="200" />
|
|
|
@@ -493,6 +493,7 @@
|
|
|
isReviewInput: score.isReviewInput, // 是否显示复核得分输入框
|
|
|
// reviewRejectResonShow: detail.isSelfApproveButton || '', // 复核不通过原因
|
|
|
}));
|
|
|
+ generateSpanArr(evaluationItems.value);
|
|
|
} else {
|
|
|
evaluationItems.value = [];
|
|
|
}
|
|
|
@@ -501,7 +502,36 @@
|
|
|
ElMessage.error(e?.message || e?.data || '获取详情失败,请重试');
|
|
|
}
|
|
|
};
|
|
|
-
|
|
|
+ let spanArr = ref<number[]>([]); // 存储每行的合并数,0表示被合并的行
|
|
|
+const generateSpanArr = (data) => {
|
|
|
+ spanArr.value = [];
|
|
|
+ let position = 0; // 记录当前考核项目的起始位置
|
|
|
+
|
|
|
+ data.forEach((item, index) => {
|
|
|
+ if (index === 0) {
|
|
|
+ spanArr.value.push(1);
|
|
|
+ position = 0;
|
|
|
+ } else {
|
|
|
+ // 当前考核项目与前一项相同时合并
|
|
|
+ if (item.evaluationItem === data[index-1].evaluationItem) {
|
|
|
+ spanArr.value[position] += 1; // 起始行合并数+1
|
|
|
+ spanArr.value.push(0); // 当前行标记为合并
|
|
|
+ } else {
|
|
|
+ spanArr.value.push(1); // 新考核项目组
|
|
|
+ position = index; // 更新起始位置
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+const spanMethod = ({ row, column, rowIndex, columnIndex }) => {
|
|
|
+ // 仅对考核项目列(columnIndex=1)进行合并
|
|
|
+ if (columnIndex === 1) {
|
|
|
+ const _row = spanArr.value[rowIndex];
|
|
|
+ const _col = _row > 0 ? 1 : 0;
|
|
|
+ return [_row, _col];
|
|
|
+ }
|
|
|
+ return [1, 1]; // 其他列不合并
|
|
|
+};
|
|
|
const handleSubmit = async () => {
|
|
|
const res = await handleValidate();
|
|
|
if (!res) return;
|
|
|
@@ -706,10 +736,6 @@
|
|
|
@use '@/styles/page-details-layout.scss' as *;
|
|
|
@use '@/styles/basic-table-file.scss' as *;
|
|
|
|
|
|
- .reject-alert {
|
|
|
- margin-bottom: 20px;
|
|
|
- }
|
|
|
-
|
|
|
.evaluation-form {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|