完成审计报告生成功能页面
This commit is contained in:
@@ -513,7 +513,7 @@
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, reactive, watch, onMounted, onUnmounted, computed } from 'vue';
|
||||
import { ref, reactive, watch, onMounted, onUnmounted, computed, nextTick } from 'vue';
|
||||
import { Form, message, Modal, TableProps } from 'ant-design-vue';
|
||||
import { assignObject } from 'ele-admin-pro';
|
||||
import { copyText } from '@/utils/common';
|
||||
@@ -608,7 +608,8 @@
|
||||
caseIndex: '',
|
||||
projectName: '',
|
||||
auditedTarget: '',
|
||||
auditMatter: ''
|
||||
auditMatter: '',
|
||||
auditMatterType: '' // 审计事项类型编码(code)
|
||||
});
|
||||
const evidenceSelectedRows = ref<any[]>([]);
|
||||
|
||||
@@ -750,25 +751,63 @@
|
||||
fileModal.value.open(tableInfo.tableKey);
|
||||
};
|
||||
|
||||
/**
|
||||
* 根据表格类型获取审计事项类型编码
|
||||
*/
|
||||
const getAuditMatterTypeByTable = (tableValue: string): string => {
|
||||
// 根据 AuditMatterTypeEnum 枚举映射
|
||||
const mapping: Record<string, string> = {
|
||||
'eightReg': 'eightReg', // 八项规定
|
||||
'expense': 'expense', // 决策支出表
|
||||
'leaderList': 'leaderList', // 领导班子名单
|
||||
'strategyAudit': 'strategyAudit', // 单位发展战略执行
|
||||
'decisionTable': 'decisionTable', // 重大经济决策调查表
|
||||
'tripleOne': 'tripleOne', // 三重一大
|
||||
'target': 'target', // 目标责任制完成情况表
|
||||
'budgetExecution': 'budgetExecution', // 预算执行情况审计
|
||||
'budgetManage': 'budgetManage', // 预算管理审计
|
||||
'assets': 'assets', // 国有资产管理审计
|
||||
'investmentSituation': 'investmentSituation', // 重大投资情况
|
||||
'internalControl': 'internalControl', // 内部控制测试表
|
||||
'personnel': 'personnel', // 人员编制管理审计
|
||||
'partyConduct': 'partyConduct', // 党风廉政建设责任制审计
|
||||
'history': 'history' // 历史审计问题整改
|
||||
};
|
||||
return mapping[tableValue] || tableValue;
|
||||
};
|
||||
|
||||
/* 打开取证单预览弹窗 */
|
||||
const openEvidenceModal = (sectionIndex: number) => {
|
||||
const section: any = navigationItems.value[sectionIndex];
|
||||
const tableInfo = getTableInfo(sectionIndex);
|
||||
|
||||
evidenceBaseInfo.caseIndex =
|
||||
(form as any).caseIndex || props.data?.caseIndex || '';
|
||||
evidenceBaseInfo.projectName = form.name || props.data?.name || '';
|
||||
evidenceBaseInfo.auditedTarget =
|
||||
(form as any).nickname || (props.data as any)?.nickname || '';
|
||||
|
||||
const baseMatter = section?.title || section?.name || '';
|
||||
const tableTitle = tableInfo?.currentTable?.title || '';
|
||||
|
||||
// 设置审计事项类型(根据当前表格类型)- 使用 code 而不是 value
|
||||
const auditMatterTypeCode = getAuditMatterTypeByTable(tableInfo?.currentTable?.value);
|
||||
console.log('openEvidenceModal - tableValue:', tableInfo?.currentTable?.value);
|
||||
console.log('openEvidenceModal - auditMatterTypeCode:', auditMatterTypeCode);
|
||||
|
||||
// 逐个字段赋值确保响应式更新
|
||||
evidenceBaseInfo.caseIndex = (form as any).caseIndex || props.data?.caseIndex || '';
|
||||
evidenceBaseInfo.projectName = form.name || props.data?.name || '';
|
||||
evidenceBaseInfo.auditedTarget = (form as any).nickname || (props.data as any)?.nickname || '';
|
||||
evidenceBaseInfo.auditMatter = tableTitle
|
||||
? `${baseMatter ? `${baseMatter} - ` : ''}${tableTitle}`
|
||||
: baseMatter;
|
||||
evidenceBaseInfo.auditMatterType = auditMatterTypeCode; // 关键:设置审计事项类型编码
|
||||
|
||||
console.log('openEvidenceModal - evidenceBaseInfo:', evidenceBaseInfo);
|
||||
console.log('openEvidenceModal - evidenceBaseInfo.auditMatterType:', evidenceBaseInfo.auditMatterType);
|
||||
|
||||
evidenceSelectedRows.value = selectedRowsMap[sectionIndex] || [];
|
||||
evidenceModalVisible.value = true;
|
||||
|
||||
// 关键:使用 nextTick 确保响应式更新完成后再打开弹窗
|
||||
nextTick(() => {
|
||||
console.log('nextTick - evidenceBaseInfo.auditMatterType:', evidenceBaseInfo.auditMatterType);
|
||||
evidenceModalVisible.value = true;
|
||||
});
|
||||
};
|
||||
|
||||
/* 保存表格生成数据 */
|
||||
@@ -1060,6 +1099,12 @@
|
||||
section?.title ||
|
||||
section?.name ||
|
||||
'';
|
||||
|
||||
// 关键:设置审计事项类型编码(根据当前表格类型)
|
||||
const auditMatterTypeCode = getAuditMatterTypeByTable(currentTable.value);
|
||||
console.log('generateEvidence - tableValue:', currentTable.value);
|
||||
console.log('generateEvidence - auditMatterTypeCode:', auditMatterTypeCode);
|
||||
evidenceBaseInfo.auditMatterType = auditMatterTypeCode;
|
||||
|
||||
// 将生成的取证单数据作为选中的行数据传入,包含所有字段
|
||||
const evidenceData = {
|
||||
@@ -1097,7 +1142,12 @@
|
||||
};
|
||||
|
||||
evidenceSelectedRows.value = [evidenceData];
|
||||
evidenceModalVisible.value = true;
|
||||
|
||||
// 关键:使用 nextTick 确保响应式更新完成后再打开弹窗
|
||||
nextTick(() => {
|
||||
console.log('generateEvidence nextTick - evidenceBaseInfo.auditMatterType:', evidenceBaseInfo.auditMatterType);
|
||||
evidenceModalVisible.value = true;
|
||||
});
|
||||
} else {
|
||||
throw new Error(
|
||||
apiResult.data?.error || apiResult.message || '生成取证单失败'
|
||||
|
||||
Reference in New Issue
Block a user