|
|
@@ -128,9 +128,10 @@
|
|
|
TABLE_MAX_HEIGHT_DEFAULT,
|
|
|
TABLE_MAX_HEIGHT_PERMISSION,
|
|
|
APPROVAL_PROCESS_TABLE_COLUMNS,
|
|
|
+ APPROVAL_PROCESS_TABLE_OPTIONS,
|
|
|
} from './src/config';
|
|
|
import { EMERGENCY_PERMISSIONS } from '@/views/emergency/src/constant';
|
|
|
- import { EMERGENCY_PLAN_STATUS, APPROVAL_TYPE_MAP,APPROVAL_STATUS_MAP } from './src/constant';
|
|
|
+ import { EMERGENCY_PLAN_STATUS, APPROVAL_TYPE_MAP, APPROVAL_STATUS_MAP, APPROVAL_STATUS } from './src/constant';
|
|
|
|
|
|
const router = useRouter();
|
|
|
const planManagementPremissions = ref<boolean>(false);
|
|
|
@@ -138,7 +139,83 @@
|
|
|
EMERGENCY_PLAN_MANAGEMENT_TABLE_COLUMNS,
|
|
|
EMERGENCY_PLAN_MANAGEMENT_TABLE_OPTIONS,
|
|
|
);
|
|
|
- const { tableConfig: approvalProcessConfig } = useTableConfig(APPROVAL_PROCESS_TABLE_COLUMNS, {}, false);
|
|
|
+ // 添加合并单元格方法
|
|
|
+ const mergeApprovalProcess = ({ column, rowIndex }) => {
|
|
|
+ // 合并流程步骤列
|
|
|
+ if (column.label === '流程步骤' || column.label === '节点描述') {
|
|
|
+ if (
|
|
|
+ rowIndex > 0 &&
|
|
|
+ approvalProcessData.value[rowIndex].approvalOrder === approvalProcessData.value[rowIndex - 1].approvalOrder
|
|
|
+ ) {
|
|
|
+ return {
|
|
|
+ rowspan: 0,
|
|
|
+ colspan: 0,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ let count = 1;
|
|
|
+ for (let i = rowIndex + 1; i < approvalProcessData.value.length; i++) {
|
|
|
+ if (approvalProcessData.value[i].approvalOrder === approvalProcessData.value[rowIndex].approvalOrder) {
|
|
|
+ count++;
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ rowspan: count,
|
|
|
+ colspan: 1,
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 其他列正常显示
|
|
|
+ return {
|
|
|
+ rowspan: 1,
|
|
|
+ colspan: 1,
|
|
|
+ };
|
|
|
+ };
|
|
|
+ // 高亮表格
|
|
|
+ const highlightCell = ({ rowIndex }) => {
|
|
|
+ // 找到应该高亮的行索引
|
|
|
+ const findHighlightRowIndex = () => {
|
|
|
+ // 遍历所有行,寻找符合条件的行
|
|
|
+ for (let i = 0; i < approvalProcessData.value.length; i++) {
|
|
|
+ const row = approvalProcessData.value[i];
|
|
|
+
|
|
|
+ // 如果没有审批时间,返回该行索引
|
|
|
+ if (!row.approvalTime) {
|
|
|
+ return i;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果有审批时间且状态为退回(假设退回状态为2),返回该行索引
|
|
|
+ if (row.approvalTime && row.approvalStatus === APPROVAL_STATUS.REJECTED) {
|
|
|
+ return i;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果没有找到符合条件的行,返回最后一行索引
|
|
|
+ return approvalProcessData.value.length - 1;
|
|
|
+ };
|
|
|
+
|
|
|
+ // 获取应该高亮的行索引
|
|
|
+ const highlightRowIndex = findHighlightRowIndex();
|
|
|
+
|
|
|
+ // 如果当前行是应该高亮的行,则高亮
|
|
|
+ if (rowIndex === highlightRowIndex) {
|
|
|
+ return 'row--highlight';
|
|
|
+ }
|
|
|
+
|
|
|
+ return '';
|
|
|
+ };
|
|
|
+ const { tableConfig: approvalProcessConfig } = useTableConfig(
|
|
|
+ APPROVAL_PROCESS_TABLE_COLUMNS,
|
|
|
+ {
|
|
|
+ ...APPROVAL_PROCESS_TABLE_OPTIONS,
|
|
|
+ spanMethod: mergeApprovalProcess,
|
|
|
+ rowClassName: highlightCell,
|
|
|
+ },
|
|
|
+ false,
|
|
|
+ );
|
|
|
+
|
|
|
const { emergencyEventDice, getEmergencyEventDict, getEmergencyEvent } = useEmergencyHook();
|
|
|
const { planTypeDice, getPlanTypeDict, getPlanType, getEmergencyPlanStatusLabel } = useEmergencyPlanHook();
|
|
|
const { permissions } = useUserInfoHook();
|
|
|
@@ -244,6 +321,7 @@
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
basicDialogRef.value?.openDialog();
|
|
|
};
|
|
|
|