diff --git a/admin/src/pages/training/option/index.tsx b/admin/src/pages/training/option/index.tsx index 78549f8..f38c5fe 100644 --- a/admin/src/pages/training/option/index.tsx +++ b/admin/src/pages/training/option/index.tsx @@ -9,7 +9,7 @@ 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, queryOrgTree, queryValueByKey, querySubjectList } from './service'; +import { queryTrainList, saveTrain, removeTrain, queryOrgTree, queryValueByKey, querySubjectList, querySubjectView } from './service'; import type { TableListItem, TableListPagination } from './data'; import { useRequest } from 'umi'; @@ -139,6 +139,7 @@ const TableList: React.FC = () => { title: '序号', key: 'index', valueType: 'indexBorder', + render: (text: React.ReactNode, _: any, index: number) => { if (actionRef && actionRef?.current && actionRef?.current?.pageInfo) { return `${(actionRef?.current?.pageInfo?.current - 1) * (actionRef.current.pageInfo?.pageSize) + (index + 1)}`; @@ -148,17 +149,36 @@ const TableList: React.FC = () => { }, width: 48, }, + { title: '培训名称', dataIndex: 'train_name', valueType: 'text', + hideInSearch: true, + formItemProps: { + rules: [ + { + required: true, + message: '请输入培训名称', + }, + ] + }, }, { title: '培训对象', valueType: 'select', + hideInSearch: true, fieldProps: { mode: "multiple" }, + formItemProps: { + rules: [ + { + required: true, + message: '请选择培训对象', + }, + ] + }, dataIndex: 'org_names', request: async () => { const Value = await queryValueByKey({}); @@ -184,6 +204,14 @@ const TableList: React.FC = () => { hideInTable: true, hideInForm: false, hideInSearch: false, + formItemProps: { + rules: [ + { + required: true, + message: '请选择主题', + }, + ] + }, request: async () => { const { data: Items } = await querySubjectList({ page_size: 1000 }); // console.log(Items, ')))'); @@ -203,23 +231,34 @@ const TableList: React.FC = () => { dataIndex: 'start_time', sorter: false, hideInForm: true, + hideInSearch: true, renderText: (val: string) => `${val}`, }, { title: '结束时间', dataIndex: 'end_time', sorter: false, + hideInSearch: true, hideInForm: true, renderText: (val: string) => `${val}`, }, { title: '培训时间', valueType: 'dateTimeRange', - dataIndex: 'datetime', + dataIndex: 'date_time', sorter: false, hideInForm: false, hideInTable: true, + hideInSearch: false, renderText: (val: string) => `${val}`, + formItemProps: { + rules: [ + { + required: true, + message: '请选择培训时间', + }, + ] + }, }, { title: '学时安排', @@ -227,6 +266,7 @@ const TableList: React.FC = () => { dataIndex: 'total_course_hours', valueType: 'text', hideInForm: true, + hideInSearch: true, renderText: (val: string) => `${val}小时`, }, { @@ -234,28 +274,27 @@ const TableList: React.FC = () => { dataIndex: 'option', valueType: 'option', render: (_, record) => [ - { - handleUpdateModalVisible(true); - setCurrentRow(record); - }} - > - 查看 - , + { handleUpdateModalVisible(true); - const idsArr = record?.org_ids?.split(",") - const orgName = record?.org_names?.split(",") - const idsData = [] - idsArr.map((e,i) => { - idsData.push({ - label: orgName[i], value: Number(e) - }) - }) - record.org_names = idsData + // const _record = JSON.parse(JSON.stringify(record)) + // const idsArr = _record?.org_ids?.split(",") + // const orgName = _record.org_names != "" ? _record.org_names.split(",") : "" + // const idsData = [] + // if (_record?.org_ids != false) { + // idsArr.map((e, i) => { + // idsData.push({ + // label: orgName[i], value: Number(e) + // }) + // }) + + // } + // _record.org_names = idsData + // _record.date_time = [_record.start_time, _record.end_time] + // console.log("2323", _record); + setCurrentRow(record); }} > @@ -303,7 +342,16 @@ const TableList: React.FC = () => { , ]} request={async (value) => { + if (value.date_time) { + value.begin_time = value.date_time[0] + value.end_time = value.date_time[1] + } + // delete value.date_time + console.log('search', value); + const _data = await queryTrainList(value); + + return { current: _data?.page_number, data: _data?.data?.list, @@ -387,11 +435,11 @@ const TableList: React.FC = () => { console.log(tree, 'tree'); const _data = { ...values, - end_time: values.datetime[1], - start_time: values.datetime[0], + end_time: values.date_time[1], + start_time: values.date_time[0], target_list_json: JSON.stringify(tree) } - delete _data.datetime + delete _data.date_time delete _data.org_names // delete params.course_time // delete params.examination_time @@ -403,6 +451,8 @@ const TableList: React.FC = () => { if (res.code === 2000) { handleModalVisible(false); actionRef.current?.reloadAndRest?.(); + } else { + message.error(res.msg); } }} @@ -436,8 +486,94 @@ const TableList: React.FC = () => { layoutType="Form" labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} - onFinish={async (values) => { - console.log(values); + request={async () => { + + const { data } = await querySubjectView({ train_id: currentRow?.train_id }); + + + data.date_time = [currentRow.start_time, currentRow.end_time] + data.org_names = [] + data.target_list.map((e) => { + console.log('1111', e); + + data.org_names.push({ + value: e.org_id, + label: e.org_name + }) + console.log("222", data); + + }) + console.log("edit", data); + + return data + }} + + onFinish={async (values: any) => { + // 表单处理 + //console.log('columns:', columns); + console.log('values1:', values, orgTree); + //return false; + // values.attachment_json.response.file.response.url + + let tree = [] + if (typeof values.org_names[0] === 'number') { + // tree = values.org_names + console.log('true values.org_names', tree, orgTree, values) + tree = orgTree?.filter((item, idx, self) => { + return (values?.org_names?.indexOf(item?.id) !== -1) + }); + console.log("tree,1111", tree); + + tree.map((e, i) => { + tree[i].org_id = e.id + tree[i].org_name = e.name + delete tree[i].id + delete tree[i].name + delete tree[i].pId + }) + } else { + values.org_names.map((e) => { + console.log(e, 'e'); + + }) + + // tree[i].org_id = e.id + // tree[i].org_name = e.name + console.log(values.org_names, 'false values.org_names') + } + + + + + console.log(321); + console.log(tree, 'tree'); + + + + const _data = { + ...values, + + end_time: values.date_time[1], + start_time: values.date_time[0], + target_list_json: JSON.stringify(tree), + train_id: currentRow.train_id + } + delete _data.date_time + delete _data.org_names + // delete params.course_time + // delete params.examination_time + + console.log('_data', _data); + + const res = await saveTrain(_data); + // console.log(res, 'ressss'); + if (res.code === 2000) { + handleUpdateModalVisible(false); + actionRef.current?.reloadAndRest?.(); + } else { + message.error(res.msg); + } + }} submitter={{ render: (props, doms) => ( @@ -450,7 +586,7 @@ const TableList: React.FC = () => { }} // action = '' title="编辑" - columns={getInitialValues(columns, currentRow)} + columns={columns} /> )} diff --git a/admin/src/pages/training/option/service.ts b/admin/src/pages/training/option/service.ts index 8fa2544..7ccf12c 100644 --- a/admin/src/pages/training/option/service.ts +++ b/admin/src/pages/training/option/service.ts @@ -92,3 +92,18 @@ export async function querySubjectList(params: { }); } +/** + * 获取主题列表 + * http://10.10.14.252:8080/workspace/myWorkspace.do?projectId=382#6426 + * @param params + * @returns + */ +export async function querySubjectView(params: { + page_size: number; + //count: number; +}): Promise<{ data: { list: CardListItemDataType[] } }> { + return request('/dsideal_yy/ypt/careerTraining/train/view', { + params, + }); +} +