主题设置(编辑,删除章节)

master
Administrator 3 years ago
parent e0f9ec97ea
commit 12cf1d435d

@ -62,6 +62,7 @@ export async function copySubject(data: { [key: string]: any }, options?: { [key
// /** 新建规则 PUT /api/rule */ // /** 新建规则 PUT /api/rule */
// export async function updateRule(data: { [key: string]: any }, options?: { [key: string]: any }) { // export async function updateRule(data: { [key: string]: any }, options?: { [key: string]: any }) {
// return request<TableListItem>('/api/rule', { // return request<TableListItem>('/api/rule', {
@ -158,3 +159,16 @@ export async function removeSubject(data: { key: number[] }, options?: Record<st
...(options || {}), ...(options || {}),
}); });
} }
//删除章节
/** 删除课程 POST /dsideal_yy/ypt/careerTraining/course/delete */
export async function deleteChapter(data: { key: number[] }, options?: Record<string, any>) {
console.log('data:::', data);
return request<Record<string, any>>(' /dsideal_yy/ypt/careerTraining/subject/deleteChapter', {
data: { chapter_id: data?.key[0].chapter_id,subject_id: data?.key[0].subject_id}, // 当前接口不支持批量操作
method: 'POST',
requestType: 'form',
...(options || {}),
});
}

@ -23,19 +23,69 @@ import ProFormRichEdit from '../components/ProFormRichEdit';
import type { ActionType, ProColumns } from '@ant-design/pro-table'; import type { ActionType, ProColumns } from '@ant-design/pro-table';
import ProTable from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table';
import type { TableListItem, TableListPagination } from '../../option/data'; import type { TableListItem, TableListPagination } from '../../option/data';
import { queryCourseList, queryCourseListByTag, queryTagList, saveSubject } from '../../option/service'; import {queryCourseList, queryCourseListByTag, queryTagList, removeCourse, saveSubject} from '../../option/service';
import { commitSubject, getSubjectInfo, queryListChapterBySubject, saveChapter } from '../service'; import { commitSubject, getSubjectInfo, queryListChapterBySubject, saveChapter,deleteChapter } from '../service';
import { v4 as uuidv4 } from 'uuid'; import { v4 as uuidv4 } from 'uuid';
import {DataItem} from "@antv/data-set/lib/transform/tag-cloud";
import {removeTrain} from "@/pages/training/option/service";
import {listMyLearningChapterCourse} from "../../../../../../web/src/pages/course/list/service";
const { confirm } = Modal;
/** 列表项定义 */
const columns: ProColumns<TableListItem>[] = [ /**
*
*
* @param fields
*/
const handleAddChapter = async (fields: TableListItem) => {
const hide = message.loading('正在添加');
try {
const {course_ids} = fields
const {code, msg} = await saveChapter({ ...fields, course_ids: course_ids.toString()});
if(code === 2000){
hide();
message.success('添加成功');
return true;
}else{
hide();
message.warn(msg);
return false;
}
} catch (error) {
hide();
message.error('添加失败请重试!');
return false;
}
};
export default () => {
const uuid = uuidv4();
const formRef = useRef<ProFormInstance>();
const actionRef = useRef<ActionType>();
/** 更新窗口的弹窗 */
const [createModalVisible, handleCreateModalVisible] = useState<boolean>(false);
const [detailModalVisible, handleDetailModalVisible] = useState<boolean>(false);
const [updateModalVisible, handleUpdateModalVisible] = useState<boolean>(false);
const [selectedRowsState, setSelectedRows] = useState<TableListItem[]>([]);
const [uploadFileName, SetUploadFileName] = useState<string>();
const [uploadFileExt, SetUploadFileExt] = useState<string>();
const [subjectIntro, setSubjectIntro] = useState({});
const [currentRow, setCurrentRow] = useState<TableListItem>();
const formMapRef = useRef<React.MutableRefObject<ProFormInstance<any> | undefined>[]>([]);
/** 列表项定义 */
const columns: ProColumns<TableListItem>[] = [
{ {
title: '序号', title: '序号',
key: 'index', key: 'index',
valueType: 'indexBorder', valueType: 'indexBorder',
width: 48, width: 48,
align:'center'
}, },
{ {
title: '章节名称', title: '章节名称',
@ -53,6 +103,7 @@ const columns: ProColumns<TableListItem>[] = [
}, },
] ]
}, },
align:'center'
}, },
{ {
title: '简介', title: '简介',
@ -84,6 +135,7 @@ const columns: ProColumns<TableListItem>[] = [
/> />
), ),
align:'center'
}, },
{ {
title: '标签', title: '标签',
@ -107,6 +159,7 @@ const columns: ProColumns<TableListItem>[] = [
console.log(tags, 'tags:::'); console.log(tags, 'tags:::');
return tags; return tags;
}, },
align:'center'
}, },
{ {
title: '课程', title: '课程',
@ -140,7 +193,7 @@ const columns: ProColumns<TableListItem>[] = [
console.log(courses, 'courses:::'); console.log(courses, 'courses:::');
return courses; return courses;
}, },
align:'center'
}, },
{ {
title: '学时', title: '学时',
@ -151,6 +204,7 @@ const columns: ProColumns<TableListItem>[] = [
hideInForm: true, hideInForm: true,
hideInSearch: true, hideInSearch: true,
renderText: (val: string) => `${val}`, renderText: (val: string) => `${val}`,
align:'center'
}, },
{ {
@ -158,83 +212,72 @@ const columns: ProColumns<TableListItem>[] = [
dataIndex: 'option', dataIndex: 'option',
valueType: 'option', valueType: 'option',
width: 200, width: 200,
align:'center',
render: (_dom: any, record: React.SetStateAction<TableListItem | undefined>) => [ render: (_dom: any, record: React.SetStateAction<TableListItem | undefined>) => [
<a
key="detail"
onClick={() => {
//console.log('entity', entity);
//setCurrentRow(record);
//handleDetailModalVisible(true);
}}
>
</a>,
<a <a
key="update" key="update"
style={{marginRight:'1rem'}}
onClick={() => { onClick={() => {
//setCurrentRow(record); setCurrentRow(record);
//handleUpdateModalVisible(true); handleUpdateModalVisible(true);
}} }}
> >
</a>, </a>,
<a key="remove" onClick={() => { }}> <a key="remove" onClick={() => {
showConfirm(record)
}}>
</a>, </a>,
], ],
}, },
]; ];
/**
* const params = useParams();
* console.log('params', params);
* @param fields
*/ const {data:subjectInfo} = useRequest(() => {
const handleAddChapter = async (fields: TableListItem) => { return getSubjectInfo({subject_id: params?.id});
const hide = message.loading('正在添加'); });
const showConfirm=async (record)=>{
confirm({
title: '确认删除章节吗?',
centered:true,
onOk() {
handleRemove([record]);
setSelectedRows([]);
actionRef.current?.reloadAndRest?.();
},
onCancel() {
},
});
};
const handleRemove = async (selectedRows: TableListItem[]) => {
const hide = message.loading('正在删除');
if (!selectedRows) return true;
try { try {
const {course_ids} = fields const {code, msg} = await deleteChapter({
const {code, msg} = await saveChapter({ ...fields, course_ids: course_ids.toString()}); key: selectedRows,
if(code === 2000){ });
hide(); hide();
message.success('添加成功'); if(code === 2000 ){
return true; message.success('删除成功,即将刷新');
}else{ }else{
hide(); message.warning(msg);
message.warn(msg);
return false;
} }
return true;
} catch (error) { } catch (error) {
// console.log('error', error)
hide(); hide();
message.error('添加失败请重试!'); message.error('删除失败,请重试');
return false; return false;
} }
}; };
export default () => {
const uuid = uuidv4();
const formRef = useRef<ProFormInstance>();
const actionRef = useRef<ActionType>();
/** 更新窗口的弹窗 */
const [createModalVisible, handleCreateModalVisible] = useState<boolean>(false);
const [detailModalVisible, handleDetailModalVisible] = useState<boolean>(false);
const [updateModalVisible, handleUpdateModalVisible] = useState<boolean>(false);
const [uploadFileName, SetUploadFileName] = useState<string>();
const [uploadFileExt, SetUploadFileExt] = useState<string>();
const [subjectIntro, setSubjectIntro] = useState({});
const formMapRef = useRef<React.MutableRefObject<ProFormInstance<any> | undefined>[]>([]);
const params = useParams();
//console.log('params', params);
const {data:subjectInfo} = useRequest(() => {
return getSubjectInfo({subject_id: params?.id});
});
useEffect(() => { useEffect(() => {
console.log('getSubjectInfo', subjectInfo); console.log('getSubjectInfo', subjectInfo);
@ -266,6 +309,19 @@ export default () => {
}, [subjectInfo]); }, [subjectInfo]);
/** 获取列数据初始值 */
const getInitialValues = (cols: any[], vals: any) => {
console.log('getInitialValues-columns', columns);
console.log('getInitialValues-values', vals);
const initialValues: any[] = [];
cols.forEach((column: { dataIndex: string }) => {
const key: any = column?.dataIndex || '';
initialValues.push({ ...column, initialValue: key ? vals[key] : '' });
});
console.log('initialValues::', initialValues);
return initialValues || [];
};
return ( return (
<PageContainer content={''} extraContent={''}> <PageContainer content={''} extraContent={''}>
<ProCard className={styles.examinationrules}> <ProCard className={styles.examinationrules}>
@ -504,6 +560,54 @@ export default () => {
columns={columns} columns={columns}
/> />
</Modal> </Modal>
<Modal
title="编辑章节"
//
width="60%"
visible={updateModalVisible}
destroyOnClose
onCancel={() => {
handleUpdateModalVisible(false);
}}
footer={null}
>
{console.log('currentRow',currentRow)}
{currentRow?.chapter_id && (
<BetaSchemaForm<DataItem>
layout="horizontal"
layoutType="Form"
labelCol={{ span: 8 }}
wrapperCol={{ span: 12 }}
onFinish={async (values) => {
console.log('values', values)
console.log('currentRow', currentRow)
//const url = values?.upload[0]?.url?.replace('/dsideal_yy/html/','') || values?.upload[0]?.response?.url;
//console.log('url', url)
// await handleUpdate({
// ...values,
// attachment_filesize: attachment_json?.size || 0, // Bit 字节
// course_id: currentRow?.course_id,
// attachment_json: `{"img":"", "name": "${values.attachment_json?.name}", "url": "${values.attachment_json?.url}", "size": "${values.attachment_json?.size}"}`
// });
handleUpdateModalVisible(false); // 隐藏编辑窗口
actionRef.current?.reloadAndRest?.();
console.log(values);
}}
submitter={{
render: (props, doms) => (
<Row>
<Col span={12} offset={8}>
<Space>{doms}</Space>
</Col>
</Row>
),
}}
// action = ''
title="编辑"
columns={getInitialValues(columns, currentRow)}
/>
)}
</Modal>
</div> </div>
</StepsForm.StepForm> </StepsForm.StepForm>

Loading…
Cancel
Save