提交 07573887 作者: 龚洪江

功能:服务管理

上级 2b74ce98
...@@ -97,3 +97,17 @@ export type queryCategoryInfoByType = InterFunction< ...@@ -97,3 +97,17 @@ export type queryCategoryInfoByType = InterFunction<
}>; }>;
}[] }[]
>; >;
//服务-新增
export type addServiceType = InterFunction<
{
applicationId: number;
coverPlan: string;
displayState: number;
industryId: number;
serviceIntroduction?: string;
serviceName: string;
shareCard: string;
video: string;
},
any
>;
import axios from '~/api/request'; import axios from '~/api/request';
import { import {
addCurriculumType, addCurriculumType,
addServiceType,
queryCategoryInfoByType, queryCategoryInfoByType,
queryCurriculumInfoListType, queryCurriculumInfoListType,
removeCurriculumType, removeCurriculumType,
...@@ -28,4 +29,7 @@ export class MallManageAPI { ...@@ -28,4 +29,7 @@ export class MallManageAPI {
// 根据类型获取各个目录及分类信息 // 根据类型获取各个目录及分类信息
static queryCategoryInfoByType: queryCategoryInfoByType = (params) => static queryCategoryInfoByType: queryCategoryInfoByType = (params) =>
axios.get('/pms/classify/queryCategoryInfoByType', { params }); axios.get('/pms/classify/queryCategoryInfoByType', { params });
// 服务-新增
static addService: addServiceType = (data) =>
axios.post('/pms/backstage/work/addWorkService', data);
} }
...@@ -2,47 +2,64 @@ import { FC } from 'react'; ...@@ -2,47 +2,64 @@ import { FC } from 'react';
import { Button, Col, Form, Input, Modal, Row, Select, Upload } from 'antd'; import { Button, Col, Form, Input, Modal, Row, Select, Upload } from 'antd';
import { ModalProps } from 'antd'; import { ModalProps } from 'antd';
import { UploadOutlined } from '@ant-design/icons'; import { UploadOutlined } from '@ant-design/icons';
import { Uploader } from '~/components/uploader';
const AddOrEditServiceModal: FC<ModalProps> = ({ open, title, onCancel }) => { const AddOrEditServiceModal: FC<ModalProps> = ({ open, title, onCancel }) => {
return ( return (
<Modal open={open} title={title} onCancel={onCancel}> <Modal open={open} title={title} onCancel={onCancel}>
<Form labelCol={{ span: 4 }} wrapperCol={{ span: 16 }}> <Form labelCol={{ span: 4 }} wrapperCol={{ span: 16 }}>
<Form.Item label='服务名称'> <Form.Item
label='服务名称'
name='serviceName'
rules={[{ required: true, message: '请输入服务名称' }]}
>
<Input placeholder='请输入服务名称' /> <Input placeholder='请输入服务名称' />
</Form.Item> </Form.Item>
<Form.Item label='应用'> <Form.Item
label='应用'
name='applicationId'
rules={[{ required: true, message: '请选择应用' }]}
>
<Select placeholder='请选择应用'> <Select placeholder='请选择应用'>
<Select.Option>111</Select.Option> <Select.Option>111</Select.Option>
</Select> </Select>
</Form.Item> </Form.Item>
<Form.Item label='对应行业'> <Form.Item
label='对应行业'
name='industryId'
rules={[{ required: true, message: '请选择对应行业' }]}
>
<Select placeholder='请选择对应行业'> <Select placeholder='请选择对应行业'>
<Select.Option>111</Select.Option> <Select.Option>111</Select.Option>
</Select> </Select>
</Form.Item> </Form.Item>
<Form.Item label='封面图'> <Form.Item
<Upload listType='picture-card'> label='封面图'
name='coverPlan'
rules={[{ required: true, message: '请上传封面图' }]}
>
<Uploader listType='picture-card' fileUpload>
<UploadOutlined /> <UploadOutlined />
</Upload> </Uploader>
</Form.Item> </Form.Item>
<Form.Item label='分享卡片'> <Form.Item label='分享卡片' name='shareCard'>
<Upload listType='picture-card'> <Uploader listType='picture-card' fileUpload>
<UploadOutlined /> <UploadOutlined />
</Upload> </Uploader>
</Form.Item> </Form.Item>
<Form.Item label='视频'> <Form.Item label='视频' name='video'>
<Row> <Row>
<Col></Col> <Col></Col>
<Col> <Col>
<Upload> <Uploader listType='text' fileUpload>
<Button icon={<UploadOutlined />} size='small' type='primary'> <Button icon={<UploadOutlined />} size='small' type='primary'>
上传 上传
</Button> </Button>
</Upload> </Uploader>
</Col> </Col>
</Row> </Row>
</Form.Item> </Form.Item>
<Form.Item label='展示状态'> <Form.Item label='展示状态' name='displayState'>
<Select placeholder='请选择展示状态'> <Select placeholder='请选择展示状态'>
<Select.Option>上架</Select.Option> <Select.Option>上架</Select.Option>
<Select.Option>下架</Select.Option> <Select.Option>下架</Select.Option>
......
import { FC, useState } from 'react'; import { FC, useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { searchColumns } from '~/components/search-box'; import { searchColumns } from '~/components/search-box';
import SearchBox from '~/components/search-box'; import SearchBox from '~/components/search-box';
...@@ -11,6 +11,12 @@ import { ...@@ -11,6 +11,12 @@ import {
DeleteOutlined, DeleteOutlined,
} from '@ant-design/icons'; } from '@ant-design/icons';
import { ColumnsType } from 'antd/es/table'; import { ColumnsType } from 'antd/es/table';
import { CategoryManageAPI } from '~/api';
import { InterDataType } from '~/api/interface';
import { categoryListType } from '~/api/interface/categoryManage';
//分类返回类型
type categoryType = InterDataType<categoryListType>['list'];
const ServiceList: FC<any> = () => { const ServiceList: FC<any> = () => {
const navigate = useNavigate(); const navigate = useNavigate();
...@@ -82,6 +88,8 @@ const ServiceList: FC<any> = () => { ...@@ -82,6 +88,8 @@ const ServiceList: FC<any> = () => {
}, },
]; ];
const [tableData] = useState<{ id: number }[]>([{ id: 1 }]); const [tableData] = useState<{ id: number }[]>([{ id: 1 }]);
//行业分类列表
const [industryCategoryList, setIndustryCategoryList] = useState<categoryType>([]);
//新增、编辑服务弹窗 //新增、编辑服务弹窗
const [addOrEditServiceModalOpen, setAddOrEditServiceModalOpen] = useState<boolean>(false); const [addOrEditServiceModalOpen, setAddOrEditServiceModalOpen] = useState<boolean>(false);
const [addOrEditServiceModalTitle, setAddOrEditServiceModalTitle] = useState<string>('新增服务'); const [addOrEditServiceModalTitle, setAddOrEditServiceModalTitle] = useState<string>('新增服务');
...@@ -98,6 +106,18 @@ const ServiceList: FC<any> = () => { ...@@ -98,6 +106,18 @@ const ServiceList: FC<any> = () => {
const addOrEditServiceModalCancel = () => { const addOrEditServiceModalCancel = () => {
setAddOrEditServiceModalOpen(false); setAddOrEditServiceModalOpen(false);
}; };
//行业分类列表
const getIndustryCategoryList = () => {
CategoryManageAPI.getCategoryList({ directoryId: 2, pageSize: 99999, pageNo: 1 }).then(
() => {},
);
};
//应用分类列表
const getApplicationCategoryList = () => {
CategoryManageAPI.getCategoryList({ directoryId: 3, pageSize: 99999, pageNo: 1 }).then(
() => {},
);
};
//服务详情 //服务详情
const toServiceDetail = () => { const toServiceDetail = () => {
navigate({ pathname: '/mallManage/serviceDetail' }); navigate({ pathname: '/mallManage/serviceDetail' });
...@@ -106,6 +126,10 @@ const ServiceList: FC<any> = () => { ...@@ -106,6 +126,10 @@ const ServiceList: FC<any> = () => {
const toServiceIntroduce = () => { const toServiceIntroduce = () => {
navigate({ pathname: '/mallManage/serviceIntroduce' }); navigate({ pathname: '/mallManage/serviceIntroduce' });
}; };
useEffect(() => {
getIndustryCategoryList();
getApplicationCategoryList();
}, []);
return ( return (
<div className='service-list'> <div className='service-list'>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论