提交 10cebae0 作者: ZhangLingKun

功能:课程管理联调完成

上级 22137be3
......@@ -26,17 +26,50 @@ export type queryCurriculumInfoListType = InterListFunction<
export type addCurriculumType = InterFunction<
{
curriculumDesc?: string;
curriculumName: string;
curriculumName?: string;
detailContent?: string;
flightSkills: number;
flightSkillsName1: string;
flightSkillsName2: string;
free: number;
id: number;
price: number;
supplierName: string;
surfaceUrl: string;
videoUrl: string;
flightSkills?: number;
flightSkillsName1?: string;
flightSkillsName2?: string;
free?: number;
id?: number | null;
price?: number;
supplierName?: string;
surfaceUrl?: string;
videoUrl?: string;
},
NonNullable<unknown>
>;
// V1.0.1修改课程
export type updateCurriculumType = InterFunction<
{
curriculumDesc?: string;
curriculumName?: string;
detailContent?: string;
flightSkills?: number;
flightSkillsName1?: string;
flightSkillsName2?: string;
free?: number;
id: number | null;
price?: number;
supplierName?: string;
surfaceUrl?: string;
videoUrl?: string;
},
NonNullable<unknown>
>;
// V1.0.1课程技能列表
export type treeCurriculumSkillType = InterFunction<
NonNullable<unknown>,
{
id: number;
skillsName: string;
flightSkills: Array<{
id: number;
skillsName: string;
flightSkills: null;
}>;
}[]
>;
// V1.0.1删除课程
export type removeCurriculumType = InterFunction<{ id: number }, NonNullable<unknown>>;
import axios from '~/api/request';
import { addCurriculumType, queryCurriculumInfoListType } from '~/api/interface/mallManageType';
import {
addCurriculumType,
queryCurriculumInfoListType,
removeCurriculumType,
treeCurriculumSkillType,
updateCurriculumType,
} from '~/api/interface/mallManageType';
export class MallManageAPI {
// V1.0.1课程视频列表
......@@ -8,4 +14,13 @@ export class MallManageAPI {
// V1.0.1新增课程
static addCurriculum: addCurriculumType = (params) =>
axios.post('/release/curriculum/addCurriculum', params);
// V1.0.1修改课程
static updateCurriculum: updateCurriculumType = (params) =>
axios.post('/release/curriculum/updateCurriculum', params);
// V1.0.1课程技能列表
static treeCurriculumSkill: treeCurriculumSkillType = (params) =>
axios.get('/release/curriculum/treeCurriculumSkill', { params });
// V1.0.1删除课程
static removeCurriculum: removeCurriculumType = (params) =>
axios.get('/release/curriculum/removeCurriculum', { params });
}
......@@ -11,15 +11,16 @@ interface PropsType {
value: string;
// eslint-disable-next-line react/require-default-props
isDetail?: boolean;
height?: number;
}
const RichText: React.FC<PropsType> = ({ onChange, value, isDetail }) => {
const RichText: React.FC<PropsType> = ({ onChange, value, isDetail, height }) => {
useEffect(() => {
// 注:class写法需要在componentDidMount 创建编辑器
editor = new E('.edit');
editor.config.uploadImgShowBase64 = false;
editor.config.zIndex = 1;
editor.config.height = 550;
editor.config.height = height ? height : 550;
editor.config.uploadImgMaxLength = 5;
editor.config.uploadImgMaxSize = 1024 * 1024 * 3; // 2M
editor.config.customUploadImg = async (resultFiles: any, insertImgFn: any) => {
......
......@@ -22,7 +22,7 @@ interface PropsType {
}
export const Uploader: React.FC<PropsType> = (props) => {
Uploader.defaultProps = {
listType: 'text',
listType: 'picture-card',
fileSize: 2,
fileLength: 1,
fileType: [
......
import { useEffect, useState } from 'react';
import SearchBox from '~/components/search-box';
import { Button, Table, Image } from 'antd';
import { Button, Table, Image, message, Modal } from 'antd';
import { PlusOutlined } from '@ant-design/icons';
import { queryCurriculumInfoListType } from '~/api/interface/mallManageType';
import { InterListType, InterReqType } from '~/api/interface';
......@@ -16,6 +16,7 @@ type ReqType = InterReqType<queryCurriculumInfoListType>;
let query: ReqType = {};
const CourseManageView = () => {
const { confirm } = Modal;
// 是否打开变更弹窗
const [isAddEditVisModal, setIsAddEditVisModal] = useState<boolean>(false);
// 表格分页配置
......@@ -60,6 +61,23 @@ const CourseManageView = () => {
query = data;
getTableList(data).then();
};
// 删除数据
const handleDelete = (value: TableType[0]) => {
confirm({
title: '提示',
content: '是否删除该课程?',
onOk: async () => {
const res = await MallManageAPI.removeCurriculum({ id: value.id });
if (res && res.code === '200') {
message.success('删除成功');
paginationChange(
tableData.length === 1 ? pagination.current - 1 : pagination.current,
pagination.pageSize,
);
}
},
});
};
// 表格结构
const columns: ColumnsType<TableType[0]> = [
{
......@@ -114,7 +132,7 @@ const CourseManageView = () => {
>
编辑
</Button>
<Button type={'link'} danger>
<Button type={'link'} danger onClick={() => handleDelete(record)}>
删除
</Button>
</>
......@@ -184,6 +202,7 @@ const CourseManageView = () => {
<AddEditModal
open={isAddEditVisModal}
closed={() => {
setEditData(undefined);
setIsAddEditVisModal(false);
paginationChange(pagination.current, pagination.pageSize);
}}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论