chore(config): 添加项目配置文件和隐私协议
- 新增 .editorconfig 文件统一代码风格配置 - 新增 .env 环境变量配置文件 - 添加开发和生产环境的环境变量配置 - 配置 ESLint 忽略规则文件 - 设置代码检查配置文件 .eslintrc.js - 添加 Git 忽略文件规则 - 创建 Prettier 格式化忽略规则 - 添加隐私政策和服务协议HTML文件 - 实现访问密钥编辑组件基础结构
This commit is contained in:
54
src/views/pwl/pwlProject/components/data/columns.ts
Normal file
54
src/views/pwl/pwlProject/components/data/columns.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
export default [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '重大经济决策事项',
|
||||
dataIndex: 'name',
|
||||
key: 'name'
|
||||
},
|
||||
{
|
||||
title: '会议时间',
|
||||
dataIndex: 'content',
|
||||
key: 'content',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '决策事项金额',
|
||||
dataIndex: 'amount',
|
||||
key: 'amount',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '程序程序',
|
||||
dataIndex: 'progress',
|
||||
key: 'progress',
|
||||
width: 300
|
||||
},
|
||||
{
|
||||
title: '执行情况(是/否)',
|
||||
dataIndex: 'done',
|
||||
key: 'done'
|
||||
},
|
||||
{
|
||||
title: '执行效果(是否实现决策目标)',
|
||||
children: [
|
||||
{
|
||||
title: '好',
|
||||
dataIndex: 'goods'
|
||||
},
|
||||
{
|
||||
title: '一般',
|
||||
dataIndex: 'normal'
|
||||
},
|
||||
{
|
||||
title: '差',
|
||||
dataIndex: 'bad'
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
85
src/views/pwl/pwlProject/components/data/funcs.ts
Normal file
85
src/views/pwl/pwlProject/components/data/funcs.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
// 导入Vue相关依赖
|
||||
import { ref } from 'vue';
|
||||
|
||||
// 当前章节的ref
|
||||
const currentSection = ref(0);
|
||||
|
||||
// 滚动到指定章节
|
||||
export const scrollToSection = (index: number) => {
|
||||
const element = document.getElementById(`section-${index}`);
|
||||
if (element) {
|
||||
element.scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
block: 'start'
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// 获取滚动容器
|
||||
export const getScrollContainer = () => {
|
||||
const drawer = document.querySelector('.ant-drawer-body');
|
||||
return drawer || document.querySelector('.ant-modal-body') || document.documentElement;
|
||||
};
|
||||
|
||||
// 监听滚动位置更新当前章节
|
||||
export const handleScroll = () => {
|
||||
const scrollContainer = getScrollContainer();
|
||||
if (!scrollContainer) return;
|
||||
|
||||
const containerScrollTop = scrollContainer.scrollTop || document.documentElement.scrollTop;
|
||||
|
||||
// 获取所有章节元素
|
||||
const sections = Array.from(document.querySelectorAll('.audit-section'));
|
||||
|
||||
for (let i = sections.length - 1; i >= 0; i--) {
|
||||
const section = sections[i];
|
||||
const sectionTop = section.offsetTop;
|
||||
|
||||
if (sectionTop - 100 <= containerScrollTop) {
|
||||
currentSection.value = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// 检查章节是否有内容
|
||||
export const hasContent = (section: any) => {
|
||||
if (!section) return false;
|
||||
|
||||
if (section.mode === 'table') {
|
||||
return section.data && section.data.length > 0;
|
||||
} else if (section.textareaList) {
|
||||
return section.textareaList.some(textarea => textarea.content && textarea.content.trim());
|
||||
} else {
|
||||
return !!section.content?.trim();
|
||||
}
|
||||
};
|
||||
|
||||
// 构建导出数据
|
||||
export const buildExportData = () => {
|
||||
// 这里根据实际情况构建数据
|
||||
// 由于navigationItems现在是函数返回的ref,需要先获取值
|
||||
const items = navigationItems ? navigationItems.value : [];
|
||||
|
||||
const exportData: any = {
|
||||
companyName: form?.name || '',
|
||||
auditTime: form?.expirationTime || ''
|
||||
};
|
||||
|
||||
// 收集所有表格数据
|
||||
items.forEach((item, index) => {
|
||||
if (item.mode === 'table' && item.data && item.data.length > 0) {
|
||||
const currentTable = item.tableOptions[item.currentTableIndex];
|
||||
if (currentTable) {
|
||||
exportData[`table${index + 1}_${currentTable.value}`] = item.data;
|
||||
}
|
||||
} else if (item.content) {
|
||||
exportData[`content${index + 1}`] = item.content;
|
||||
}
|
||||
});
|
||||
|
||||
return exportData;
|
||||
};
|
||||
|
||||
// 导出currentSection以便其他文件使用
|
||||
export { currentSection };
|
||||
48
src/views/pwl/pwlProject/components/data/navigationItems.ts
Normal file
48
src/views/pwl/pwlProject/components/data/navigationItems.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
import { ref } from 'vue';
|
||||
import { getTableConfig } from './tableCommon';
|
||||
|
||||
const navigationItems = ref([]);
|
||||
|
||||
// 初始化导航项
|
||||
export function initNavigationItems() {
|
||||
navigationItems.value = Array.from({ length: 11 }, (_, index) => {
|
||||
const config = getTableConfig(index);
|
||||
return {
|
||||
number: getChineseNumber(index + 1),
|
||||
name: `审计内容${index + 1}`,
|
||||
title: config?.title || `审计内容${index + 1}`,
|
||||
description: '点击"AI生成"按钮让AI为您生成该部分内容,或直接在下方编辑',
|
||||
generating: false,
|
||||
suggestion: '',
|
||||
mode: 'table',
|
||||
showFileSelect: true, // 所有项都显示文件选择
|
||||
data: [],
|
||||
extraData: [],
|
||||
currentTableIndex: 0, // 当前选中的表格索引
|
||||
columns: null,
|
||||
extraTableTitle: config?.extraTableTitle || null,
|
||||
extraColumns: config?.extraColumns || [],
|
||||
tableOptions: config?.options || [],
|
||||
count: index + 1,
|
||||
tableType: config?.type || `auditContent${index + 1}`,
|
||||
content: '',
|
||||
rows: 8
|
||||
};
|
||||
});
|
||||
|
||||
return navigationItems;
|
||||
}
|
||||
|
||||
// 获取中文数字
|
||||
function getChineseNumber(num) {
|
||||
const chineseNumbers = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一'];
|
||||
return chineseNumbers[num - 1] || num;
|
||||
}
|
||||
|
||||
// 导出初始化的导航项
|
||||
export default function useNavigationItems() {
|
||||
if (navigationItems.value.length === 0) {
|
||||
initNavigationItems();
|
||||
}
|
||||
return navigationItems;
|
||||
}
|
||||
81
src/views/pwl/pwlProject/components/data/table10Columns.ts
Normal file
81
src/views/pwl/pwlProject/components/data/table10Columns.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
// 党风廉政建设责任制表格列
|
||||
export const partyConductColumns = [
|
||||
{
|
||||
title: '大类',
|
||||
dataIndex: 'category',
|
||||
key: 'category',
|
||||
align: 'center',
|
||||
width: 120,
|
||||
customCell: (_, index) => {
|
||||
if (index === 0) return { rowSpan: 37 };
|
||||
else if (index === 37) return { rowSpan: 3 };
|
||||
else if (index === 40) return { rowSpan: 3 };
|
||||
return { rowSpan: 0 };
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '子类',
|
||||
dataIndex: 'subCategory',
|
||||
key: 'subCategory',
|
||||
align: 'center',
|
||||
width: 120,
|
||||
customCell: (_, index) => {
|
||||
if (index === 0) return { rowSpan: 17 };
|
||||
else if (index === 17) return { rowSpan: 8 };
|
||||
else if (index === 25) return { rowSpan: 8 };
|
||||
else if (index === 33) return { rowSpan: 4 };
|
||||
else if (index === 37) return { rowSpan: 3 };
|
||||
else if (index === 40) return { rowSpan: 3 };
|
||||
return { rowSpan: 0 };
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '小类',
|
||||
dataIndex: 'detailCategory',
|
||||
key: 'detailCategory',
|
||||
align: 'center',
|
||||
width: 120,
|
||||
customCell: (_, index) => {
|
||||
if ([4, 17, 22, 25, 26, 27, 28, 29, 32, 33, 34, 37, 38, 39, 42].includes(index))
|
||||
return { rowSpan: 1 };
|
||||
else if ([18, 20, 23, 30, 35, 40].includes(index)) return { rowSpan: 2 };
|
||||
if (index === 0) return { rowSpan: 4 };
|
||||
else if (index === 5) return { rowSpan: 4 };
|
||||
else if (index === 9) return { rowSpan: 5 };
|
||||
else if (index === 14) return { rowSpan: 3 };
|
||||
return { rowSpan: 0 };
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '内容',
|
||||
dataIndex: 'content',
|
||||
key: 'content',
|
||||
align: 'center',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '执行情况',
|
||||
dataIndex: 'executionStatus',
|
||||
key: 'executionStatus',
|
||||
align: 'center',
|
||||
width: 300
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
// ellipsis: true
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// align: 'center',
|
||||
// width: 100
|
||||
// }
|
||||
];
|
||||
|
||||
export default {
|
||||
partyConductColumns
|
||||
};
|
||||
94
src/views/pwl/pwlProject/components/data/table11Columns.ts
Normal file
94
src/views/pwl/pwlProject/components/data/table11Columns.ts
Normal file
@@ -0,0 +1,94 @@
|
||||
// 历史审计问题整改表格列
|
||||
export const auditHistoryColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '审计年度',
|
||||
dataIndex: 'auditYear',
|
||||
key: 'auditYear',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '审计类型',
|
||||
dataIndex: 'auditType',
|
||||
key: 'auditType',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '审计发现的问题',
|
||||
dataIndex: 'problemFound',
|
||||
key: 'problemFound',
|
||||
align: 'center',
|
||||
width: 250,
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '整改要求',
|
||||
dataIndex: 'rectificationRequirement',
|
||||
key: 'rectificationRequirement',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '整改措施',
|
||||
dataIndex: 'rectificationMeasures',
|
||||
key: 'rectificationMeasures',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '整改完成情况',
|
||||
dataIndex: 'rectificationStatus',
|
||||
key: 'rectificationStatus',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '整改完成时间',
|
||||
dataIndex: 'completionDate',
|
||||
key: 'completionDate',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '整改责任人',
|
||||
dataIndex: 'responsiblePerson',
|
||||
key: 'responsiblePerson',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
dataIndex: 'remark',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
// ellipsis: true
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// align: 'center',
|
||||
// width: 100
|
||||
// }
|
||||
];
|
||||
|
||||
export default {
|
||||
auditHistoryColumns
|
||||
};
|
||||
446
src/views/pwl/pwlProject/components/data/table1Columns.ts
Normal file
446
src/views/pwl/pwlProject/components/data/table1Columns.ts
Normal file
@@ -0,0 +1,446 @@
|
||||
// 创建测试结果渲染函数
|
||||
export function createTestResultRender() {
|
||||
return ({ text }) => {
|
||||
if (text === '通过') return '<span style="color: #52c41a">通过</span>';
|
||||
if (text === '不通过') return '<span style="color: #ff4d4f">不通过</span>';
|
||||
return text || '待检查';
|
||||
};
|
||||
}
|
||||
|
||||
// 贯彻决策部署表格列
|
||||
export const default1Columns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '单位名称',
|
||||
dataIndex: 'unitName',
|
||||
key: 'unitName',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '规格',
|
||||
dataIndex: 'specification',
|
||||
key: 'specification',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '经费来源',
|
||||
dataIndex: 'fundSource',
|
||||
key: 'fundSource',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '编制数额',
|
||||
dataIndex: 'establishmentNum',
|
||||
key: 'establishmentNum',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '编制数额',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '其他编制',
|
||||
dataIndex: 'otherEstablishment',
|
||||
key: 'otherEstablishment',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '事业编制',
|
||||
dataIndex: 'institutionEstablishment',
|
||||
key: 'institutionEstablishment',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '实用人员',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '参公人数',
|
||||
dataIndex: 'publicServantNum',
|
||||
key: 'publicServantNum',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '聘用人数',
|
||||
dataIndex: 'employedNum',
|
||||
key: 'employedNum',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '领导职数',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '处级',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '核定数',
|
||||
dataIndex: 'departmentApproved',
|
||||
key: 'departmentApproved',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '实有数',
|
||||
dataIndex: 'departmentActual',
|
||||
key: 'departmentActual',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '科级',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '核定数',
|
||||
dataIndex: 'sectionApproved',
|
||||
key: 'sectionApproved',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '实有数',
|
||||
dataIndex: 'sectionActual',
|
||||
key: 'sectionActual',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '股级',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '核定数',
|
||||
dataIndex: 'teamApproved',
|
||||
key: 'teamApproved',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '实有数',
|
||||
dataIndex: 'teamActual',
|
||||
key: 'teamActual',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '参公单位非领导职数',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '处级',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '核定数',
|
||||
dataIndex: 'nonLeaderDeptApproved',
|
||||
key: 'nonLeaderDeptApproved',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '实有数',
|
||||
dataIndex: 'nonLeaderDeptActual',
|
||||
key: 'nonLeaderDeptActual',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '科级',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '核定数',
|
||||
dataIndex: 'nonLeaderSectionApproved',
|
||||
key: 'nonLeaderSectionApproved',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '实有数',
|
||||
dataIndex: 'nonLeaderSectionActual',
|
||||
key: 'nonLeaderSectionActual',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '股级',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '核定数',
|
||||
dataIndex: 'nonLeaderTeamApproved',
|
||||
key: 'nonLeaderTeamApproved',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '实有数',
|
||||
dataIndex: 'nonLeaderTeamActual',
|
||||
key: 'nonLeaderTeamActual',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '岗位设置',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '管理岗位',
|
||||
dataIndex: 'managementPosition',
|
||||
key: 'managementPosition',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '专业技术岗位',
|
||||
dataIndex: 'technicalPosition',
|
||||
key: 'technicalPosition',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '工勤技能岗位',
|
||||
dataIndex: 'workerPosition',
|
||||
key: 'workerPosition',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
align: 'center',
|
||||
width: 100
|
||||
}
|
||||
];
|
||||
|
||||
// 领导班子名单列
|
||||
export const leaderListColumns = [
|
||||
{
|
||||
title: '单位',
|
||||
dataIndex: 'unit',
|
||||
key: 'unit',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '姓名',
|
||||
dataIndex: 'name',
|
||||
key: 'name',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '部门',
|
||||
dataIndex: 'department',
|
||||
key: 'department',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '职务',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '党内',
|
||||
dataIndex: 'partyPosition',
|
||||
key: 'partyPosition',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '行政',
|
||||
dataIndex: 'adminPosition',
|
||||
key: 'adminPosition',
|
||||
align: 'center',
|
||||
width: 120
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '任职期间',
|
||||
dataIndex: 'tenurePeriod',
|
||||
key: 'tenurePeriod',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '主要工作责任',
|
||||
dataIndex: 'mainResponsibilities',
|
||||
key: 'mainResponsibilities',
|
||||
align: 'center',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
dataIndex: 'remark',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
align: 'center',
|
||||
width: 100
|
||||
}
|
||||
];
|
||||
|
||||
// 决策支出表列
|
||||
export const expenseColumns = [
|
||||
{
|
||||
title: '支出类型',
|
||||
dataIndex: 'expenseType',
|
||||
key: 'expenseType',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '年份',
|
||||
dataIndex: 'year',
|
||||
key: 'year',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '决算报表数(元)',
|
||||
dataIndex: 'finalStatementAmount',
|
||||
key: 'finalStatementAmount',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '年初预算数(元)',
|
||||
dataIndex: 'initialBudgetAmount',
|
||||
key: 'initialBudgetAmount',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '增减情况(%)',
|
||||
dataIndex: 'changePercentage',
|
||||
key: 'changePercentage',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '占年初预算比例(%)',
|
||||
dataIndex: 'budgetRatio',
|
||||
key: 'budgetRatio',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
dataIndex: 'remark',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '数据来源',
|
||||
dataIndex: 'dataSource',
|
||||
key: 'dataSource',
|
||||
align: 'center',
|
||||
width: 180
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
align: 'center',
|
||||
width: 100
|
||||
}
|
||||
];
|
||||
|
||||
// 八项规定表格列
|
||||
export const eightRegColumns = [
|
||||
{
|
||||
title: '审计内容',
|
||||
dataIndex: 'title',
|
||||
key: 'title',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '审计内容',
|
||||
dataIndex: 'content',
|
||||
key: 'content',
|
||||
align: 'center',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '检查的证据及测试内容',
|
||||
dataIndex: 'testContent',
|
||||
key: 'testContent',
|
||||
align: 'center',
|
||||
width: 300
|
||||
},
|
||||
{
|
||||
title: '测试结果',
|
||||
dataIndex: 'result',
|
||||
key: 'result',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
customRender: createTestResultRender()
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// align: 'center',
|
||||
// width: 140
|
||||
// }
|
||||
];
|
||||
|
||||
export default {
|
||||
default1Columns,
|
||||
leaderListColumns,
|
||||
expenseColumns,
|
||||
eightRegColumns,
|
||||
createTestResultRender
|
||||
};
|
||||
62
src/views/pwl/pwlProject/components/data/table2Columns.ts
Normal file
62
src/views/pwl/pwlProject/components/data/table2Columns.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
// 创建测试结果渲染函数
|
||||
export function createTestResultRender() {
|
||||
return ({ text }) => {
|
||||
if (text === '通过') return '<span style="color: #52c41a">通过</span>';
|
||||
if (text === '不通过') return '<span style="color: #ff4d4f">不通过</span>';
|
||||
return text || '待检查';
|
||||
};
|
||||
}
|
||||
|
||||
// 审计内容2表格列
|
||||
export const strategyAuditColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 60,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '审计内容',
|
||||
dataIndex: 'auditContent',
|
||||
key: 'auditContent',
|
||||
width: 150,
|
||||
align: 'center',
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '检查的证据及测试内容',
|
||||
dataIndex: 'checkEvidence',
|
||||
key: 'checkEvidence',
|
||||
width: 350,
|
||||
align: 'center',
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '测试结果',
|
||||
dataIndex: 'testResult',
|
||||
key: 'testResult',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
customRender: createTestResultRender()
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
width: 200,
|
||||
align: 'center',
|
||||
// ellipsis: true
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// width: 100,
|
||||
// align: 'center'
|
||||
// }
|
||||
];
|
||||
|
||||
export default {
|
||||
strategyAuditColumns,
|
||||
createTestResultRender
|
||||
};
|
||||
140
src/views/pwl/pwlProject/components/data/table3Columns.ts
Normal file
140
src/views/pwl/pwlProject/components/data/table3Columns.ts
Normal file
@@ -0,0 +1,140 @@
|
||||
import { createTestResultRender } from './table2Columns';
|
||||
|
||||
// 三重一大表格列
|
||||
export const tripleOneColumns = [
|
||||
{
|
||||
title: '',
|
||||
dataIndex: 'category',
|
||||
key: 'category',
|
||||
width: 120,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '政策内容',
|
||||
dataIndex: 'policyContent',
|
||||
key: 'policyContent',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '集团制度',
|
||||
dataIndex: 'groupSystem',
|
||||
key: 'groupSystem',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '公司制度',
|
||||
dataIndex: 'companyFormulation',
|
||||
key: 'companyFormulation',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '公司执行情况',
|
||||
dataIndex: 'checkEvidence',
|
||||
key: 'checkEvidence',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '执行结果',
|
||||
dataIndex: 'testResult',
|
||||
key: 'testResult',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
customRender: createTestResultRender()
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
align: 'center',
|
||||
width: 100
|
||||
}
|
||||
];
|
||||
|
||||
// 重大经济决策表格列
|
||||
export const decisionTableColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '重大经济决策事项',
|
||||
dataIndex: 'decisionItem',
|
||||
key: 'decisionItem',
|
||||
width: 200,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '会议时间',
|
||||
dataIndex: 'meetingTime',
|
||||
key: 'meetingTime',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '决策事项金额',
|
||||
dataIndex: 'decisionAmount',
|
||||
key: 'decisionAmount',
|
||||
width: 120,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '程序',
|
||||
dataIndex: 'procedure',
|
||||
key: 'procedure',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '执行情况(是/否)',
|
||||
dataIndex: 'executionStatus',
|
||||
key: 'executionStatus',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '执行效果(是否实现决策目标)',
|
||||
children: [
|
||||
{
|
||||
title: '好',
|
||||
dataIndex: 'goods',
|
||||
key: 'goods',
|
||||
width: 60,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '一般',
|
||||
dataIndex: 'normal',
|
||||
key: 'normal',
|
||||
width: 60,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '差',
|
||||
dataIndex: 'bad',
|
||||
key: 'bad',
|
||||
width: 60,
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// align: 'center',
|
||||
// width: 140
|
||||
// }
|
||||
];
|
||||
|
||||
export default {
|
||||
tripleOneColumns,
|
||||
decisionTableColumns
|
||||
};
|
||||
87
src/views/pwl/pwlProject/components/data/table4Columns.ts
Normal file
87
src/views/pwl/pwlProject/components/data/table4Columns.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
export const columns0 = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '年度',
|
||||
dataIndex: 'year',
|
||||
key: 'year',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '上级主管部门下达目标责任制',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '下达文件',
|
||||
dataIndex: 'superiorFile',
|
||||
key: 'superiorFile',
|
||||
align: 'center',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '完成情况',
|
||||
dataIndex: 'superiorCompletion',
|
||||
key: 'superiorCompletion',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '未完成原因',
|
||||
dataIndex: 'superiorReason',
|
||||
key: 'superiorReason',
|
||||
align: 'center',
|
||||
width: 200
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '单位自定下达目标责任制',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '计划文件',
|
||||
dataIndex: 'selfPlan',
|
||||
key: 'selfPlan',
|
||||
align: 'center',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '完成情况',
|
||||
dataIndex: 'selfCompletion',
|
||||
key: 'selfCompletion',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '未完成原因',
|
||||
dataIndex: 'selfReason',
|
||||
key: 'selfReason',
|
||||
align: 'center',
|
||||
width: 200
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
dataIndex: 'remark',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
}
|
||||
];
|
||||
|
||||
export default { columns0 };
|
||||
178
src/views/pwl/pwlProject/components/data/table5Columns.ts
Normal file
178
src/views/pwl/pwlProject/components/data/table5Columns.ts
Normal file
@@ -0,0 +1,178 @@
|
||||
export const budgetManageColumns = [
|
||||
{
|
||||
title: '预算科目名称',
|
||||
dataIndex: 'budgetSubject',
|
||||
key: 'budgetSubject',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '指标来源',
|
||||
dataIndex: 'indicatorSource',
|
||||
key: 'indicatorSource',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '合计',
|
||||
dataIndex: 'total',
|
||||
key: 'total',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '上年结余',
|
||||
dataIndex: 'lastYearBalance',
|
||||
key: 'lastYearBalance',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '年初部门预算',
|
||||
dataIndex: 'initialBudget',
|
||||
key: 'initialBudget',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '追加(减)预算',
|
||||
dataIndex: 'additionalBudget',
|
||||
key: 'additionalBudget',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '指标运用',
|
||||
align: 'center',
|
||||
children: [
|
||||
{
|
||||
title: '合计',
|
||||
dataIndex: 'indicatorUseTotal',
|
||||
key: 'indicatorUseTotal',
|
||||
align: 'center',
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
title: '拨款小计',
|
||||
dataIndex: 'appropriationSubtotal',
|
||||
key: 'appropriationSubtotal',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '拨款',
|
||||
dataIndex: 'appropriation',
|
||||
key: 'appropriation',
|
||||
align: 'center',
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
title: '工资统发',
|
||||
dataIndex: 'salaryPayment',
|
||||
key: 'salaryPayment',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '政府采购',
|
||||
dataIndex: 'govProcurement',
|
||||
key: 'govProcurement',
|
||||
align: 'center',
|
||||
width: 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '指标结余',
|
||||
dataIndex: 'indicatorBalance',
|
||||
key: 'indicatorBalance',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
align: 'center',
|
||||
width: 100
|
||||
}
|
||||
];
|
||||
|
||||
// 预算执行情况列
|
||||
export const budgetExecutionColumns = [
|
||||
{
|
||||
title: '项目',
|
||||
dataIndex: 'project',
|
||||
key: 'project',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '上年结转',
|
||||
dataIndex: 'lastYearCarryOver',
|
||||
key: 'lastYearCarryOver',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '本年预算小计',
|
||||
dataIndex: 'currentYearBudgetTotal',
|
||||
key: 'currentYearBudgetTotal',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '年初批复预算数',
|
||||
dataIndex: 'initialApprovedBudget',
|
||||
key: 'initialApprovedBudget',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '追加预算数',
|
||||
dataIndex: 'additionalBudgetAmount',
|
||||
key: 'additionalBudgetAmount',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '实际拨款数',
|
||||
dataIndex: 'actualAppropriation',
|
||||
key: 'actualAppropriation',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '指标结余',
|
||||
dataIndex: 'indicatorBalance',
|
||||
key: 'indicatorBalance',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// align: 'center',
|
||||
// width: 100
|
||||
// }
|
||||
];
|
||||
|
||||
export default {
|
||||
budgetManageColumns,
|
||||
budgetExecutionColumns
|
||||
};
|
||||
118
src/views/pwl/pwlProject/components/data/table6Columns.ts
Normal file
118
src/views/pwl/pwlProject/components/data/table6Columns.ts
Normal file
@@ -0,0 +1,118 @@
|
||||
export const stateAssetsManageColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 60,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '国有资产名称',
|
||||
dataIndex: 'assetName',
|
||||
key: 'assetName',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '取得方式',
|
||||
dataIndex: 'acquisitionMethod',
|
||||
key: 'acquisitionMethod',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '资产价值',
|
||||
dataIndex: 'assetValue',
|
||||
key: 'assetValue',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '资产地址',
|
||||
dataIndex: 'assetAddress',
|
||||
key: 'assetAddress',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '面积',
|
||||
dataIndex: 'area',
|
||||
key: 'area',
|
||||
align: 'center',
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
title: '承租方',
|
||||
dataIndex: 'tenant',
|
||||
key: 'tenant',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '合同金额',
|
||||
dataIndex: 'contractAmount',
|
||||
key: 'contractAmount',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '租赁起止时间',
|
||||
dataIndex: 'leasePeriod',
|
||||
key: 'leasePeriod',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '租金缴纳时间',
|
||||
dataIndex: 'rentPaymentTime',
|
||||
key: 'rentPaymentTime',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '是否上平台',
|
||||
dataIndex: 'platformLease',
|
||||
key: 'platformLease',
|
||||
align: 'center',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '审批文件',
|
||||
dataIndex: 'approvalDoc',
|
||||
key: 'approvalDoc',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '纳入预算',
|
||||
dataIndex: 'inBudget',
|
||||
key: 'inBudget',
|
||||
align: 'center',
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
dataIndex: 'remark',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: true
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// align: 'center',
|
||||
// width: 100
|
||||
// }
|
||||
];
|
||||
|
||||
export default {
|
||||
stateAssetsManageColumns
|
||||
};
|
||||
55
src/views/pwl/pwlProject/components/data/table7Columns.ts
Normal file
55
src/views/pwl/pwlProject/components/data/table7Columns.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import { createTestResultRender } from './table2Columns';
|
||||
|
||||
// 重大投资情况审计表格列
|
||||
export const investmentSituationColumns = [
|
||||
{
|
||||
title: '',
|
||||
dataIndex: 'category',
|
||||
key: 'category',
|
||||
width: 150,
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '审计内容',
|
||||
dataIndex: 'auditContent',
|
||||
key: 'auditContent',
|
||||
align: 'center',
|
||||
width: 300,
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '检查的证据及测试内容',
|
||||
dataIndex: 'checkEvidence',
|
||||
key: 'checkEvidence',
|
||||
align: 'center',
|
||||
width: 400,
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '测试结果',
|
||||
dataIndex: 'testResult',
|
||||
key: 'testResult',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
customRender: createTestResultRender()
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
// ellipsis: true
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// align: 'center',
|
||||
// width: 100
|
||||
// }
|
||||
];
|
||||
|
||||
// 删除不再需要的单独列配置
|
||||
export default {
|
||||
investmentSituationColumns
|
||||
};
|
||||
83
src/views/pwl/pwlProject/components/data/table8Columns.ts
Normal file
83
src/views/pwl/pwlProject/components/data/table8Columns.ts
Normal file
@@ -0,0 +1,83 @@
|
||||
import { createTestResultRender } from './table2Columns';
|
||||
|
||||
// 内部控制测试表格列
|
||||
export const internalControlTestColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '控制环节',
|
||||
dataIndex: 'controlLink',
|
||||
key: 'controlLink',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '控制要求',
|
||||
dataIndex: 'controlRequirement',
|
||||
key: 'controlRequirement',
|
||||
align: 'center',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '控制活动描述',
|
||||
dataIndex: 'controlActivity',
|
||||
key: 'controlActivity',
|
||||
align: 'center',
|
||||
width: 300,
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '控制职责岗位',
|
||||
dataIndex: 'controlPosition',
|
||||
key: 'controlPosition',
|
||||
align: 'center',
|
||||
width: 150
|
||||
},
|
||||
{
|
||||
title: '测试步骤',
|
||||
dataIndex: 'testSteps',
|
||||
key: 'testSteps',
|
||||
align: 'center',
|
||||
width: 250,
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '测试结果',
|
||||
dataIndex: 'testResult',
|
||||
key: 'testResult',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
customRender: createTestResultRender()
|
||||
},
|
||||
{
|
||||
title: '检查证据',
|
||||
dataIndex: 'checkEvidence',
|
||||
key: 'checkEvidence',
|
||||
align: 'center',
|
||||
width: 250,
|
||||
// ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
// ellipsis: true
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// align: 'center',
|
||||
// width: 100
|
||||
// }
|
||||
];
|
||||
|
||||
export default {
|
||||
internalControlTestColumns
|
||||
};
|
||||
55
src/views/pwl/pwlProject/components/data/table9Columns.ts
Normal file
55
src/views/pwl/pwlProject/components/data/table9Columns.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
|
||||
export const personnelEstablishmentColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '审计内容',
|
||||
dataIndex: 'auditContent',
|
||||
key: 'auditContent',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '审计目标',
|
||||
dataIndex: 'auditTarget',
|
||||
key: 'auditTarget',
|
||||
align: 'center',
|
||||
width: 250,
|
||||
},
|
||||
{
|
||||
title: '审计证据',
|
||||
dataIndex: 'auditEvidence',
|
||||
key: 'auditEvidence',
|
||||
align: 'center',
|
||||
width: 300,
|
||||
},
|
||||
{
|
||||
title: '生成结果',
|
||||
dataIndex: 'generationResult',
|
||||
key: 'generationResult',
|
||||
align: 'center',
|
||||
width: 300,
|
||||
},
|
||||
{
|
||||
title: '工作底稿索引',
|
||||
dataIndex: 'workPaperIndex',
|
||||
key: 'workPaperIndex',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
// {
|
||||
// title: '操作',
|
||||
// key: 'action',
|
||||
// align: 'center',
|
||||
// width: 100
|
||||
// }
|
||||
];
|
||||
|
||||
export default {
|
||||
personnelEstablishmentColumns
|
||||
};
|
||||
@@ -0,0 +1,60 @@
|
||||
|
||||
export const benefitEstablishmentColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
key: 'index',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '凭证号',
|
||||
dataIndex: 'voucher',
|
||||
key: 'voucher',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '支出日期',
|
||||
dataIndex: 'expenditureDate',
|
||||
key: 'expenditureDate',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '用途',
|
||||
dataIndex: 'usage',
|
||||
key: 'usage',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '收款方',
|
||||
dataIndex: 'payee',
|
||||
key: 'payee',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '金额(元)',
|
||||
dataIndex: 'amount',
|
||||
key: 'amount',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '归属部门/人员',
|
||||
dataIndex: 'belongTo',
|
||||
key: 'belongTo',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '款项性质说明',
|
||||
dataIndex: 'natureDesc',
|
||||
key: 'natureDesc',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '违规说明',
|
||||
dataIndex: 'violationDesc',
|
||||
key: 'violationDesc',
|
||||
align: 'center'
|
||||
}
|
||||
];
|
||||
|
||||
export default benefitEstablishmentColumns;
|
||||
482
src/views/pwl/pwlProject/components/data/tableCommon.ts
Normal file
482
src/views/pwl/pwlProject/components/data/tableCommon.ts
Normal file
@@ -0,0 +1,482 @@
|
||||
import table9ExtraColumns from './table9ExtraColumns';
|
||||
|
||||
export const tableConfigs = {
|
||||
// 审计内容1表格配置
|
||||
auditContent1: {
|
||||
type: 'auditContent1',
|
||||
title: '贯彻决策部署情况',
|
||||
options: [
|
||||
// { title: '贯彻决策部署', value: 'default1', columns: () => import('./table1Columns').then(m => m.default1Columns) },
|
||||
{
|
||||
title: '领导班子名单',
|
||||
value: 'leaderList',
|
||||
columns: () =>
|
||||
import('./table1Columns').then((m) => m.leaderListColumns)
|
||||
},
|
||||
{
|
||||
title: '决策支出表',
|
||||
value: 'expense',
|
||||
columns: () => import('./table1Columns').then((m) => m.expenseColumns)
|
||||
},
|
||||
{
|
||||
title: '八项规定',
|
||||
value: 'eightReg',
|
||||
columns: () => import('./table1Columns').then((m) => m.eightRegColumns)
|
||||
}
|
||||
],
|
||||
// 接口映射
|
||||
interfaceMap: {
|
||||
default1: '/api/ai/auditContent1/generateDefault1Table',
|
||||
leaderList: '/api/ai/auditContent1/generateLeaderListTable',
|
||||
expense: '/api/ai/auditContent1/generateExpenseTable',
|
||||
eightReg: '/api/ai/auditContent1/generateEightRegTable'
|
||||
}
|
||||
},
|
||||
// 审计内容2表格配置
|
||||
auditContent2: {
|
||||
type: 'auditContent2',
|
||||
title: '单位发展战略执行',
|
||||
options: [
|
||||
{
|
||||
title: '单位发展战略执行',
|
||||
value: 'strategyAudit',
|
||||
columns: () =>
|
||||
import('./table2Columns').then((m) => m.strategyAuditColumns)
|
||||
}
|
||||
],
|
||||
interfaceMap: {
|
||||
strategyAudit: '/api/ai/auditContent2/generateStrategyAuditTable'
|
||||
}
|
||||
},
|
||||
// 审计内容3表格配置
|
||||
auditContent3: {
|
||||
type: 'auditContent3',
|
||||
title: '重大经济决策调查',
|
||||
options: [
|
||||
{
|
||||
title: '重大经济决策调查表',
|
||||
value: 'decisionTable',
|
||||
columns: () =>
|
||||
import('./table3Columns').then((m) => m.decisionTableColumns)
|
||||
},
|
||||
{
|
||||
title: '三重一大',
|
||||
value: 'tripleOne',
|
||||
columns: () => import('./table3Columns').then((m) => m.tripleOneColumns)
|
||||
}
|
||||
],
|
||||
interfaceMap: {
|
||||
tripleOne: '/api/ai/auditContent3/generateTripleOneTable',
|
||||
decisionTable: '/api/ai/auditContent3/generateDecisionTable'
|
||||
}
|
||||
},
|
||||
// 审计内容4表格配置
|
||||
auditContent4: {
|
||||
type: 'auditContent4',
|
||||
title: '目标完成情况',
|
||||
options: [
|
||||
{
|
||||
title: '目标责任完成情况表',
|
||||
value: 'target',
|
||||
columns: () => import('./table4Columns').then((m) => m.columns0)
|
||||
}
|
||||
],
|
||||
interfaceMap: {
|
||||
target: '/api/ai/auditContent4/generateTargetTable'
|
||||
}
|
||||
},
|
||||
// 审计内容5表格配置
|
||||
auditContent5: {
|
||||
type: 'auditContent5',
|
||||
title: '财务管理情况',
|
||||
options: [
|
||||
{
|
||||
title: '预算管理审计',
|
||||
value: 'budgetManage',
|
||||
columns: () =>
|
||||
import('./table5Columns').then((m) => m.budgetManageColumns)
|
||||
},
|
||||
{
|
||||
title: '预算执行情况审计',
|
||||
value: 'budgetExecution',
|
||||
columns: () =>
|
||||
import('./table5Columns').then((m) => m.budgetExecutionColumns)
|
||||
}
|
||||
],
|
||||
interfaceMap: {
|
||||
budgetManage: '/api/ai/auditContent5/generateBudgetManageTable',
|
||||
budgetExecution: '/api/ai/auditContent5/generateBudgetExecutionTable'
|
||||
}
|
||||
},
|
||||
// 审计内容6表格配置
|
||||
auditContent6: {
|
||||
type: 'auditContent6',
|
||||
title: '国资管理情况',
|
||||
options: [
|
||||
{
|
||||
title: '国有资产管理审计',
|
||||
value: 'assets',
|
||||
columns: () =>
|
||||
import('./table6Columns').then((m) => m.stateAssetsManageColumns)
|
||||
}
|
||||
],
|
||||
interfaceMap: {
|
||||
assets: '/api/ai/auditContent6/generateAssetsTable'
|
||||
}
|
||||
},
|
||||
auditContent7: {
|
||||
type: 'auditContent7',
|
||||
title: '重大投资情况',
|
||||
options: [
|
||||
{
|
||||
title: '重大投资情况审计',
|
||||
value: 'investmentSituation',
|
||||
columns: () =>
|
||||
import('./table7Columns').then((m) => m.investmentSituationColumns)
|
||||
}
|
||||
],
|
||||
interfaceMap: {
|
||||
investmentSituation:
|
||||
'/api/ai/auditContent7/generateInvestmentSituationTable'
|
||||
}
|
||||
},
|
||||
auditContent8: {
|
||||
type: 'auditContent8',
|
||||
title: '治理结构与内部控制',
|
||||
options: [
|
||||
{
|
||||
title: '内部控制测试',
|
||||
value: 'internalControl',
|
||||
columns: () =>
|
||||
import('./table8Columns').then((m) => m.internalControlTestColumns)
|
||||
}
|
||||
],
|
||||
interfaceMap: {
|
||||
internalControl: '/api/ai/auditContent8/generateInternalControlTable'
|
||||
}
|
||||
},
|
||||
auditContent9: {
|
||||
type: 'auditContent9',
|
||||
title: '人员编制管理',
|
||||
options: [
|
||||
{
|
||||
title: '人员编制管理审计',
|
||||
value: 'personnel',
|
||||
columns: () =>
|
||||
import('./table9Columns').then((m) => m.personnelEstablishmentColumns)
|
||||
}
|
||||
],
|
||||
extraTableTitle: '福利费超范围支出明细清单',
|
||||
extraColumns: table9ExtraColumns,
|
||||
interfaceMap: {
|
||||
personnel: '/api/ai/auditContent9/generatePersonnelTable'
|
||||
}
|
||||
},
|
||||
auditContent10: {
|
||||
type: 'auditContent10',
|
||||
title: '廉政情况',
|
||||
options: [
|
||||
{
|
||||
title: '党风廉政建设责任制审计',
|
||||
value: 'partyConduct',
|
||||
columns: () =>
|
||||
import('./table10Columns').then((m) => m.partyConductColumns)
|
||||
}
|
||||
],
|
||||
interfaceMap: {
|
||||
partyConduct: '/api/ai/auditContent10/generatePartyConductTable'
|
||||
}
|
||||
},
|
||||
auditContent11: {
|
||||
type: 'auditContent11',
|
||||
title: '历史审计问题整改',
|
||||
options: [
|
||||
{
|
||||
title: '历史审计问题整改',
|
||||
value: 'history',
|
||||
columns: () =>
|
||||
import('./table11Columns').then((m) => m.auditHistoryColumns)
|
||||
}
|
||||
],
|
||||
interfaceMap: {
|
||||
history: '/api/ai/auditContent11/generateHistoryTable'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// 获取表格配置
|
||||
export function getTableConfig(sectionIndex: number) {
|
||||
const configKeys = Object.keys(tableConfigs);
|
||||
if (sectionIndex >= 0 && sectionIndex < configKeys.length) {
|
||||
return tableConfigs[configKeys[sectionIndex]];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// 获取所有表格配置
|
||||
export function getAllTableConfigs() {
|
||||
return tableConfigs;
|
||||
}
|
||||
|
||||
// 通过接口名称查找表格配置
|
||||
export function findTableConfigByInterface(interfaceName: string) {
|
||||
for (const [key, config] of Object.entries(tableConfigs)) {
|
||||
for (const [tableValue, tableInterface] of Object.entries(
|
||||
config.interfaceMap || {}
|
||||
)) {
|
||||
if (tableInterface === interfaceName) {
|
||||
return {
|
||||
sectionType: key,
|
||||
tableValue,
|
||||
config
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// 解析workPaperIndex字符串为对象数组
|
||||
function parseWorkPaperIndex(workPaperIndex) {
|
||||
if (!workPaperIndex || !Array.isArray(workPaperIndex)) return [];
|
||||
|
||||
return workPaperIndex.map((item) => {
|
||||
if (item && typeof item === 'object') {
|
||||
return {
|
||||
fileId: item.fileId || item.file_id || '',
|
||||
fileName: item.fileName || item.file_name || '',
|
||||
fileUrl: item.fileUrl || item.url || ''
|
||||
};
|
||||
}
|
||||
if (typeof item === 'string') {
|
||||
const parts = item.split('||');
|
||||
if (parts.length >= 3) {
|
||||
return {
|
||||
fileId: parts[0] || '',
|
||||
fileName: parts[1] || '',
|
||||
fileUrl: parts[2] || ''
|
||||
};
|
||||
}
|
||||
}
|
||||
// 兼容旧格式
|
||||
return {
|
||||
fileId: '',
|
||||
fileName: typeof item === 'string' ? item : '',
|
||||
fileUrl: ''
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
// 通用数据映射函数
|
||||
export function createDataMapper(type: string) {
|
||||
const mappers = {
|
||||
default1: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
index: index + 1,
|
||||
...item,
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
})),
|
||||
leaderList: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
...item,
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
})),
|
||||
expense: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
...item,
|
||||
finalStatementAmount: formatAmount(item.finalStatementAmount),
|
||||
initialBudgetAmount: formatAmount(item.initialBudgetAmount),
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
})),
|
||||
eightReg: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
...item,
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
})),
|
||||
strategyAudit: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
index: index + 1,
|
||||
...item,
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
})),
|
||||
tripleOne: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
...item,
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
})),
|
||||
decisionTable: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
index: index + 1,
|
||||
goods: item.executionEffect?.good || item.goods || '否',
|
||||
normal: item.executionEffect?.normal || item.normal || '否',
|
||||
bad: item.executionEffect?.bad || item.bad || '否',
|
||||
...item,
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
})),
|
||||
budgetManage: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
index: index + 1,
|
||||
...item,
|
||||
budgetSubject: item.budgetSubject || '-',
|
||||
indicatorSource: item.indicatorSource,
|
||||
total: formatAmount(item.indicatorSourceTotal),
|
||||
lastYearBalance: formatAmount(item.indicatorSourceLastYearBalance),
|
||||
initialBudget: formatAmount(item.indicatorSourceInitialBudget),
|
||||
additionalBudget: formatAmount(item.indicatorSourceAdditionalBudget),
|
||||
indicatorUseTotal: formatAmount(item.indicatorUseTotal),
|
||||
appropriationSubtotal: formatAmount(
|
||||
item.indicatorUseAppropriationSubtotal
|
||||
),
|
||||
appropriation: formatAmount(item.indicatorUseAppropriation),
|
||||
salaryPayment: formatAmount(item.indicatorUseSalaryPayment),
|
||||
govProcurement: formatAmount(item.indicatorUseGovProcurement),
|
||||
indicatorBalance: formatAmount(item.indicatorBalance),
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
})),
|
||||
investmentSituation: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
index: index + 1,
|
||||
category: item.category || '未分类',
|
||||
auditContent: item.auditContent || item.content || '',
|
||||
checkEvidence: item.checkEvidence || item.evidence || '',
|
||||
testResult: item.testResult || '待检查',
|
||||
...item,
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
})),
|
||||
personnel: (data) => {
|
||||
const mainData = data.map((item, index) => {
|
||||
const { ext, ...rest } = item;
|
||||
return {
|
||||
key: index,
|
||||
index: item.index || index + 1,
|
||||
...rest,
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
};
|
||||
});
|
||||
const extraData = data.reduce((acc, item) => {
|
||||
if (item.ext && Array.isArray(item.ext)) {
|
||||
return [...acc, ...item.ext];
|
||||
}
|
||||
return acc;
|
||||
}, []);
|
||||
return {
|
||||
mainData: mainData,
|
||||
extraData: extraData.map((item, idx) => ({
|
||||
key: idx,
|
||||
...item,
|
||||
index: item.index || idx + 1
|
||||
}))
|
||||
};
|
||||
},
|
||||
// 其他类型的映射...
|
||||
default: (data) =>
|
||||
data.map((item, index) => ({
|
||||
key: index,
|
||||
index: index + 1,
|
||||
...item,
|
||||
workPaperIndex: parseWorkPaperIndex(item.workPaperIndex)
|
||||
}))
|
||||
};
|
||||
|
||||
return mappers[type] || mappers.default;
|
||||
}
|
||||
|
||||
// 格式化金额
|
||||
function formatAmount(amount) {
|
||||
if (!amount) return '0.00';
|
||||
if (typeof amount === 'string' && amount.includes(',')) return amount;
|
||||
const num = parseFloat(amount);
|
||||
return isNaN(num)
|
||||
? '0.00'
|
||||
: num.toLocaleString('zh-CN', {
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2
|
||||
});
|
||||
}
|
||||
|
||||
// 生成接口映射
|
||||
export const apiMethodMap = {
|
||||
// 审计内容1
|
||||
default1: {
|
||||
generate: 'generateDefault1Table',
|
||||
export: 'exportDefault1Table'
|
||||
},
|
||||
leaderList: {
|
||||
generate: 'generateLeaderListTable',
|
||||
export: 'exportLeaderListTable'
|
||||
},
|
||||
expense: { generate: 'generateExpenseTable', export: 'exportExpenseTable' },
|
||||
eightReg: {
|
||||
generate: 'generateEightRegTable',
|
||||
export: 'exportEightRegTable'
|
||||
},
|
||||
// 审计内容2
|
||||
strategyAudit: {
|
||||
generate: 'generateStrategyAuditTable',
|
||||
export: 'exportStrategyAuditTable'
|
||||
},
|
||||
// 审计内容3
|
||||
tripleOne: {
|
||||
generate: 'generateTripleOneTable',
|
||||
export: 'exportTripleOneTable'
|
||||
},
|
||||
decisionTable: {
|
||||
generate: 'generateDecisionTable',
|
||||
export: 'exportDecisionTable'
|
||||
},
|
||||
// 审计内容4
|
||||
target: { generate: 'generateTargetTable', export: 'exportTargetTable' },
|
||||
// 审计内容5
|
||||
budgetManage: {
|
||||
generate: 'generateBudgetManageTable',
|
||||
export: 'exportBudgetManageTable'
|
||||
},
|
||||
budgetExecution: {
|
||||
generate: 'generateBudgetExecutionTable',
|
||||
export: 'exportBudgetExecutionTable'
|
||||
},
|
||||
// 审计内容6
|
||||
assets: { generate: 'generateAssetsTable', export: 'exportAssetsTable' },
|
||||
// 审计内容7
|
||||
investmentSituation: {
|
||||
generate: 'generateInvestmentSituationTable',
|
||||
export: 'exportInvestmentSituationTable'
|
||||
},
|
||||
// 审计内容8
|
||||
internalControl: {
|
||||
generate: 'generateInternalControlTable',
|
||||
export: 'exportInternalControlTable'
|
||||
},
|
||||
// 审计内容9
|
||||
personnel: {
|
||||
generate: 'generatePersonnelTable',
|
||||
export: 'exportPersonnelTable'
|
||||
},
|
||||
// 审计内容10
|
||||
partyConduct: {
|
||||
generate: 'generatePartyConductTable',
|
||||
export: 'exportPartyConductTable'
|
||||
},
|
||||
// 审计内容11
|
||||
history: { generate: 'generateHistoryTable', export: 'exportHistoryTable' },
|
||||
// 默认
|
||||
default: { generate: 'generateDefaultTable', export: 'exportDefaultTable' }
|
||||
};
|
||||
|
||||
export default {
|
||||
tableConfigs,
|
||||
getTableConfig,
|
||||
getAllTableConfigs,
|
||||
findTableConfigByInterface,
|
||||
createDataMapper,
|
||||
apiMethodMap
|
||||
};
|
||||
Reference in New Issue
Block a user