123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- import { useAjax } from '@/Hook/useAjax';
- import { apiDistributorInfoList } from '@/services/distribution/info';
- import {
- apiShortBookInfoAllList,
- apiShortBookInfoBookConfig,
- apiShortBookInfoConfigDetail,
- apiShortBookInfoList,
- } from '@/services/distribution/shortBook';
- import {
- ActionType,
- BetaSchemaForm,
- PageContainer,
- ProFormInstance,
- ProTable,
- } from '@ant-design/pro-components';
- import { useModel } from '@umijs/max';
- import { message } from 'antd';
- import { useEffect, useRef, useState } from 'react';
- import formConfig from './formConfig';
- import { columns } from './tableConfig';
- type DataItem = {
- name: string;
- state: string;
- };
- const Page: React.FC = () => {
- let { state, getLabelAndClassList } = useModel('global');
- const formRef = useRef<ProFormInstance>();
- const actionRef = useRef<ActionType>();
- let [workDirection, setWorkDirection] = useState<any>(null);
- let [open, setOpen] = useState<any>(null); //新增作者
- let [editValues, setEditValues] = useState<any>({});
- // ======================API=======================
- let DistributorInfoList = useAjax((params) => apiDistributorInfoList(params)); //分销商列表
- let BookInfoList = useAjax((params) => apiShortBookInfoList(params), { type: 'table' }); //获取书籍列表
- let BookInfoBookConfig = useAjax((params) => apiShortBookInfoBookConfig(params)); //小说信息配置
- let BookInfoChapterAllList = useAjax((id) => apiShortBookInfoAllList(id)); //全部列表无分页
- let BookInfoConfigDetail = useAjax((id) => apiShortBookInfoConfigDetail(id)); //小说配置详情
- // 获取标签和分类
- useEffect(() => {
- getLabelAndClassList({ workDirection });
- }, [workDirection]);
- // 编辑
- const edit = (item: any) => {
- DistributorInfoList.run();
- BookInfoChapterAllList.run(item.bookId).then((res) => {
- setOpen(true);
- BookInfoConfigDetail.run(item.bookId).then((dres) => {
- console.log(dres.data, item);
- setEditValues(dres.data);
- formRef?.current?.setFieldsValue({ ...dres.data });
- });
- });
- };
- //编辑
- const submit = async (values: any) => {
- if (editValues?.id) {
- values.id = editValues?.id;
- }
- if (values.bookDistributorConfig) {
- values.bookDistributorConfig = values.bookDistributorConfig?.map((item: any) => {
- return { ...item, bookId: editValues.bookId };
- });
- }
- if (!values?.bookId) {
- values.bookId = editValues.bookId
- }
- BookInfoBookConfig.run(values).then((res) => {
- if (res.code === 200) {
- actionRef?.current?.reload();
- message.success('操作成功!');
- closeForm(false);
- }
- });
- console.log(values);
- };
- // 关闭表单弹窗和重置表单内容
- const closeForm = (b: boolean, values?: any) => {
- if (!b) {
- setEditValues({});
- formRef?.current?.resetFields?.();
- setOpen(b);
- } else {
- }
- };
- return (
- <PageContainer>
- <ProTable<any, any>
- headerTitle={'短篇小说配置信息列表'}
- actionRef={actionRef}
- rowKey={(r) => r.bookId}
- // 搜索的配置
- search={{
- labelWidth: 90,
- searchGutter: [10, 15],
- }}
- request={async (params) => {
- return await BookInfoList.run(params);
- }}
- scroll={{ x: 'auto' }}
- columns={columns({
- authList: state?.authList,
- labelList: state.labelList,
- categoryList: state.categoryList,
- enumList: state?.enumList,
- setWorkDirection,
- edit,
- })}
- // bordered
- />
- <BetaSchemaForm<DataItem>
- title={"信息配置"}
- formRef={formRef}
- width={900}
- open={open}
- onOpenChange={(b) => {
- !b && closeForm(b);
- }}
- layoutType={'ModalForm'}
- labelCol={{ span: 8 }}
- wrapperCol={{ span: 14 }}
- grid={true}
- layout="horizontal"
- onFinish={submit}
- columns={formConfig({
- enumList: state?.enumList,
- bookList: BookInfoChapterAllList?.data?.data,
- distributorInfoList: DistributorInfoList?.data?.data,
- })}
- loading={BookInfoBookConfig?.loading}
- />
- </PageContainer>
- );
- };
- export default Page;
|