From 6a715ab746427e46c44c59555a90c0f4d5f88a05 Mon Sep 17 00:00:00 2001 From: zhengpengju Date: Thu, 20 Jan 2022 10:36:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/pages/training/option/index.tsx | 70 +++++++++++++++++++++- admin/src/pages/training/option/service.ts | 21 ++++++- 2 files changed, 87 insertions(+), 4 deletions(-) diff --git a/admin/src/pages/training/option/index.tsx b/admin/src/pages/training/option/index.tsx index 1bc35be..bf705e1 100644 --- a/admin/src/pages/training/option/index.tsx +++ b/admin/src/pages/training/option/index.tsx @@ -9,8 +9,9 @@ import type { ProDescriptionsItemProps } from '@ant-design/pro-descriptions'; import ProDescriptions from '@ant-design/pro-descriptions'; import type { FormValueType } from './components/UpdateForm'; import UpdateForm from './components/UpdateForm'; -import { queryTrainList, saveTrain, removeTrain } from './service'; +import { queryTrainList, saveTrain, removeTrain, queryOrgTree, queryValueByKey } from './service'; import type { TableListItem, TableListPagination } from './data'; +import { useRequest } from 'umi'; /** * 添加培训 * @@ -77,7 +78,51 @@ const handleRemove = async (selectedRows: TableListItem[]) => { } }; + +interface OrgTreeForOaItem { + id?: number; + pId?: number; + + name?: string; +} + +interface children { + title?: string; + value?: number; + children?: children[]; +} + +// 递归方法 生成 json tree 数据 +const getJsonTree = (data: [], pId: number) => { + //console.log('getJsonTree..', data) + const itemArr = []; + for (let i = 0; i < data.length; i++) { + const node: OrgTreeForOaItem = data[i]; + //console.log('f') + //console.log('node?.pId',node?.pId) + //console.log('pId',pId) + if (node?.pId === pId) { + console.log('if') + const treeNode: children = {}; + treeNode.value = node?.id; + treeNode.title = node?.name; + //treeNode.url = node.url; + //treeNode.icon = node.icon; + + //eslint-disable-next-line @typescript-eslint/no-unused-vars + treeNode.children = getJsonTree(data, node?.id || 0); + itemArr.push(treeNode); + } + } + return itemArr; +}; + const TableList: React.FC = () => { + + const { data, loading } = useRequest(() => { + return queryValueByKey({}); + }); + /** 新建窗口的弹窗 */ const [createModalVisible, handleModalVisible] = useState(false); @@ -108,10 +153,21 @@ const TableList: React.FC = () => { }, { title: '培训对象', + valueType: 'treeSelect', dataIndex: 'org_names', + request: async () => { + const Value = await queryValueByKey({}); + const orgId = Value['common.org.id'] ? Value['common.org.id'] : 0; // 平台全局设置 + const tree = await queryOrgTree({ + org_id: orgId, + org_type: 2, + school_type:1, + }) + return getJsonTree(tree.table_List, orgId) + }, sorter: false, hideInForm: false, - renderText: (val: string) => `${val}`, + //renderText: (val: string) => `${val}`, }, { title: '开始时间', @@ -127,6 +183,14 @@ const TableList: React.FC = () => { hideInForm: true, renderText: (val: string) => `${val}`, }, + { + title: '培训时间', + valueType: 'dateTimeRange', + dataIndex: 'datetime', + sorter: false, + hideInForm: false, + renderText: (val: string) => `${val}`, + }, { title: '学时安排', sorter: false, @@ -239,7 +303,7 @@ const TableList: React.FC = () => { }} footer={null} > - + { + return request('/dsideal_yy/ypt/sys/org/getOrgTreeForOa', { + params, + }); +} + +/** 获取机构树根id (平台配置全局)*/ +export async function queryValueByKey( + params: ParamsType, +): Promise { + return request('/dsideal_yy/golbal/getValueByKey?key=common.org.id', { + params, + }); +}