|
@@ -0,0 +1,121 @@
|
|
|
+import React, { useState } from 'react';
|
|
|
+import { Table, Modal } from 'antd';
|
|
|
+import styles from './report.less';
|
|
|
+
|
|
|
+function Demo(props) {
|
|
|
+ const [memberVisible, setMemberVisible] = useState(false);
|
|
|
+
|
|
|
+ const expandedRowRender = record => {
|
|
|
+ switch (record.index) {
|
|
|
+ case 1:
|
|
|
+ return <Table columns={column2} dataSource={temp1} pagination={false} />;
|
|
|
+ case 2:
|
|
|
+ return (
|
|
|
+ <Table
|
|
|
+ columns={column4}
|
|
|
+ dataSource={temp1}
|
|
|
+ pagination={false}
|
|
|
+ expandable={{
|
|
|
+ expandedRowRender: () => (
|
|
|
+ <Table columns={column5} dataSource={temp3} pagination={false} />
|
|
|
+ ),
|
|
|
+ }}
|
|
|
+ rowKey="index"
|
|
|
+ />
|
|
|
+ );
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ const temp = [
|
|
|
+ { index: 1, type: '售前项目' },
|
|
|
+ { index: 2, type: '执行项目' },
|
|
|
+ ];
|
|
|
+ const temp1 = [
|
|
|
+ { index: 1, name: '项目A' },
|
|
|
+ { index: 2, name: '项目B' },
|
|
|
+ { index: 3, name: '项目C' },
|
|
|
+ ];
|
|
|
+ const temp2 = [
|
|
|
+ { index: 1, name: '员工A' },
|
|
|
+ { index: 2, name: '员工B' },
|
|
|
+ { index: 3, name: '员工C' },
|
|
|
+ ];
|
|
|
+ const temp3 = [
|
|
|
+ { type: '建设期项目管理人日' },
|
|
|
+ { type: '运营期项目管理人日' },
|
|
|
+ { type: '工程设计人日(设计联络、工艺、电气自控、机械、审核)' },
|
|
|
+ { type: '培训人日' },
|
|
|
+ { type: '金科陪客户培训人日' },
|
|
|
+ { type: '运营期培训人日' },
|
|
|
+ { type: '采购和质量控制人日' },
|
|
|
+ ];
|
|
|
+ const column0 = [
|
|
|
+ { title: '未提交', render: () => 0 },
|
|
|
+ { title: '已提交', render: () => 0 },
|
|
|
+ { title: '已审批', render: () => 0 },
|
|
|
+ { title: '已拒绝', render: () => 0 },
|
|
|
+ { title: '计入考核范围', render: () => 0 },
|
|
|
+ ];
|
|
|
+ const column1 = [
|
|
|
+ { title: '序号', dataIndex: 'index' },
|
|
|
+ Table.EXPAND_COLUMN,
|
|
|
+ { title: '人日类型', dataIndex: 'type' },
|
|
|
+ { title: '技术中心', children: column0 },
|
|
|
+ { title: '招采中心', children: column0 },
|
|
|
+ ];
|
|
|
+ const column2 = [
|
|
|
+ { title: '序号', dataIndex: 'index' },
|
|
|
+ {
|
|
|
+ title: '项目名称',
|
|
|
+ dataIndex: 'name',
|
|
|
+ render: text => <a onClick={() => setMemberVisible(true)}>{text}</a>,
|
|
|
+ },
|
|
|
+ { title: '项目编号' },
|
|
|
+ { title: '技术中心', children: column0 },
|
|
|
+ { title: '招采中心', children: column0 },
|
|
|
+ { title: '总计', render: () => 0 },
|
|
|
+ ];
|
|
|
+ const column3 = [
|
|
|
+ { title: '序号', dataIndex: 'index' },
|
|
|
+ { title: '员工名称', dataIndex: 'name' },
|
|
|
+ { title: '归属部门' },
|
|
|
+ { title: '未提交', render: () => 0 },
|
|
|
+ { title: '已提交', render: () => 0 },
|
|
|
+ { title: '已审批', render: () => 0 },
|
|
|
+ { title: '已拒绝', render: () => 0 },
|
|
|
+ { title: '小计', render: () => 0 },
|
|
|
+ ];
|
|
|
+ const column4 = [
|
|
|
+ { title: '序号', dataIndex: 'index' },
|
|
|
+ Table.EXPAND_COLUMN,
|
|
|
+ { title: '项目名称', dataIndex: 'name' },
|
|
|
+ { title: '项目编号' },
|
|
|
+ { title: '本月人日数', render: () => 0 },
|
|
|
+ { title: '累计人日数', render: () => 0 },
|
|
|
+ { title: '项目预算人日数', render: () => '未设置' },
|
|
|
+ ];
|
|
|
+ const column5 = [
|
|
|
+ { title: '分项工作代码', dataIndex: 'type' },
|
|
|
+ { title: '本月人日数', render: () => 0 },
|
|
|
+ { title: '累计人日数', render: () => 0 },
|
|
|
+ { title: '项目预算人日数', render: () => <a>设置</a> },
|
|
|
+ ];
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <Table
|
|
|
+ columns={column1}
|
|
|
+ dataSource={temp}
|
|
|
+ expandable={{
|
|
|
+ expandedRowRender,
|
|
|
+ }}
|
|
|
+ rowKey="index"
|
|
|
+ pagination={false}
|
|
|
+ />
|
|
|
+ <Modal visible={memberVisible} onCancel={() => setMemberVisible(false)} width="80%">
|
|
|
+ <Table columns={column3} dataSource={temp2} pagination={false} />
|
|
|
+ </Modal>
|
|
|
+ </>
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+export default Demo;
|