feat:项目管理-审计内容3-新增历史记录功能

This commit is contained in:
2025-11-17 16:43:32 +08:00
parent 93762473d6
commit 8f8d8c8dcf
2 changed files with 360 additions and 270 deletions

View File

@@ -237,13 +237,11 @@
</template>
<span class="ml-2"
>共生成
<span class="text-red-400 mx-1 font-bold">{{
item.count
}}</span>
<span class="text-red-400 mx-1 font-bold">{{ item.data ? item.data.length : 0 }}</span>
条数据</span
>
</div>
<a @click="openHistory(item)" class="cursor-pointer">历史记录</a>
<a @click="openHistory(index)" class="cursor-pointer">历史记录</a>
</div>
<a-table
v-if="item.mode === 'table'"
@@ -382,9 +380,9 @@
<a-back-top :target="getScrollContainer" />
<FileModal ref="fileModal" :current-company-id="currentCompanyId" />
<HistoryModal
v-model:visible="showHistory"
:item="clickedItem"
v-if="clickedItem"
v-model:visible="showHistory"
:interface-name="currentInterfaceName"
@select="handleHistorySelect"
/>
<!-- 文档选择弹窗 -->
@@ -468,6 +466,9 @@
// 文档管理相关变量
const currentCompanyId = ref<number>();
// 历史记录接口相关变量
const currentInterfaceName = ref('');
// 添加计算属性检查是否已生成三重一大数据
const hasTripleOneData = computed(() => {
const section = navigationItems.value[2];
@@ -869,16 +870,7 @@
console.log('三重一大接口返回结果:', result);
if (result.code === 0 && result.data && result.data.success) {
const tableData = result.data.data.map((item, index) => ({
key: index,
category: item.category || '',
policyContent: item.policyContent || '',
groupSystem: item.groupSystem || '',
companyFormulation: item.companyFormulation || '',
checkEvidence: item.checkEvidence || '',
testResult: item.testResult || '待检查',
workPaperIndex: item.workPaperIndex || []
}));
const tableData = mapTripleOneData(result.data.data);
// 保存到三重一大数据
tripleOneTableData.value = tableData;
@@ -949,18 +941,7 @@
console.log('重大经济决策调查表接口返回结果:', result);
if (result.code === 0 && result.data && result.data.success) {
const tableData = result.data.data.map((item, index) => ({
key: index,
index: index + 1,
name: item.decisionItem || '',
meetingTime: item.meetingTime || '',
decisionAmount: item.decisionAmount || '',
procedure: item.procedure || '',
executionStatus: item.executionStatus || '否',
goods: item.executionEffect?.good || '否',
normal: item.executionEffect?.normal || '否',
bad: item.executionEffect?.bad || '否'
}));
const tableData = mapDecisionTableData(result.data.data);
console.log('生成的表格数据:', tableData);
@@ -1145,12 +1126,106 @@
}
);
// 数据映射工具函数
const mapTripleOneData = (data: any[]) => {
return data.map((item, index) => ({
key: index,
category: item.category || '',
policyContent: item.policyContent || '',
groupSystem: item.groupSystem || '',
companyFormulation: item.companyFormulation || '',
checkEvidence: item.checkEvidence || '',
testResult: item.testResult || '待检查',
workPaperIndex: item.workPaperIndex || []
}));
};
const mapDecisionTableData = (data: any[]) => {
return data.map((item, index) => ({
key: index,
index: index + 1,
name: item.decisionItem || item.name || '',
meetingTime: item.meetingTime || '',
decisionAmount: item.decisionAmount || '',
procedure: item.procedure || '',
executionStatus: item.executionStatus || '否',
goods: item.executionEffect?.good || item.goods || '否',
normal: item.executionEffect?.normal || item.normal || '否',
bad: item.executionEffect?.bad || item.bad || '否'
}));
};
// 应用历史记录数据到指定章节
const applyHistoryData = (sectionIndex: number, data: any[], dataType: 'tripleOne' | 'decisionTable') => {
const section = navigationItems.value[sectionIndex];
if (dataType === 'tripleOne') {
const tableData = mapTripleOneData(data);
section.data = tableData;
tripleOneTableData.value = tableData;
// 强制刷新当前显示的表格
if (table3Title.value === '三重一大') {
section.columns = table3Columns.columns0;
section.data = [...tableData];
}
} else {
const tableData = mapDecisionTableData(data);
section.data = tableData;
decisionTableData.value = tableData;
// 强制刷新当前显示的表格
if (table3Title.value === '重大经济决策调查表') {
section.columns = table3Columns.columns1;
section.data = [...tableData];
}
}
};
const showHistory = ref(false);
const clickedItem = ref();
const openHistory = (item) => {
clickedItem.value = item;
const openHistory = (sectionIndex: number) => {
// 重置接口名称
currentInterfaceName.value = '';
// 根据当前章节和表格类型确定接口名称
if (sectionIndex === 2) { // 审计内容3章节
if (table3Title.value === '三重一大') {
currentInterfaceName.value = '/api/ai/auditContent3/generateTripleOneTable';
} else if (table3Title.value === '重大经济决策调查表') {
currentInterfaceName.value = '/api/ai/auditContent3/generateDecisionTable';
}
}
showHistory.value = true;
};
// 历史记录选择处理方法
const handleHistorySelect = (record: any) => {
// 关闭历史记录弹窗
showHistory.value = false;
try {
const responseData = JSON.parse(record.responseData);
if (!responseData.success || !responseData.data) {
throw new Error('历史记录数据格式错误');
}
// 根据接口名称确定数据类型
if (record.interfaceName === '/api/ai/auditContent3/generateTripleOneTable') {
applyHistoryData(2, responseData.data, 'tripleOne');
message.success('已应用选择的三重一大历史记录');
} else if (record.interfaceName === '/api/ai/auditContent3/generateDecisionTable') {
applyHistoryData(2, responseData.data, 'decisionTable');
message.success('已应用选择的重大经济决策调查表历史记录');
} else {
message.warning('不支持的历史记录类型');
}
} catch (error) {
console.error('解析历史记录数据失败:', error);
message.error('历史记录数据解析失败');
}
};
</script>
<script lang="ts">