123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- import React, { useState } from 'react';
- import { Space, Table, Button, Input, Select, Tabs } from 'antd';
- import type { TableProps } from 'antd';
- import styles from './index.module.css';
- import PunlishPlanModal from '../weGZH/components/publishPlanModal';
- import { wxPlanType } from './type';
- const WeGZHContent: React.FC = () => {
- // 状态管理
- const [videoTitle, setVideoTitle] = useState<string>('');
- const [selectedPublisher, setSelectedPublisher] = useState<string>();
- const [isShowAddPunlishPlan, setIsShowAddPunlishPlan] = useState<boolean>(false);
- const [actionType, setActionType] = useState<'add' | 'edit'>('add');
- const [editPlanData, setEditPlanData] = useState<wxPlanType>();
- const [activeKey, setActiveKey] = useState<string>('1');
- // 表格列配置
- const columns: TableProps<wxPlanType>['columns'] = [
- {
- title: '公众号名称',
- dataIndex: 'officialAccount',
- key: 'officialAccount',
- },
- {
- title: '场景',
- dataIndex: 'scene',
- key: 'scene',
- },
- {
- title: '视频数量',
- dataIndex: 'videoCount',
- key: 'videoCount',
- },
- {
- title: '视频标题',
- dataIndex: 'videoTitle',
- key: 'videoTitle',
- ellipsis: true,
- },
- {
- title: '计划创建时间',
- dataIndex: 'planPublishTime',
- key: 'planPublishTime',
- },
- {
- title: '发布方',
- dataIndex: 'publisher',
- key: 'publisher',
- },
- {
- title: '操作',
- key: 'action',
- render: (_, record) => (
- <Space size="middle">
- <Button type="link" onClick={() => editPlan(record)}>编辑</Button>
- <Button type="link">详情</Button>
- </Space>
- ),
- },
- ];
- const editPlan = (record: wxPlanType) => {
- console.log(editPlanData)
- setEditPlanData(record);
- setActionType('edit');
- setIsShowAddPunlishPlan(true);
- };
- // 模拟数据
- const data: wxPlanType[] = [
- {
- officialAccount: '小慧爱厨房',
- scene: 1,
- videoCount: 3,
- videoTitle: '养老金最新规定,快来看看...',
- planPublishTime: '2024-08-13 13:32:07',
- publisher: '平台发布',
- videoList: [],
- },
- {
- officialAccount: '小阳看天下',
- scene: 1,
- videoCount: 1,
- videoTitle: '养老金最新规定,快来看看...',
- planPublishTime: '2024-08-13 13:32:07',
- publisher: '用户发布',
- videoList: [],
- },
- ];
- const addPunlishPlan = () => {
- setActionType('add');
- setIsShowAddPunlishPlan(true);
- }
- return (
- <div>
- <div className="rounded-lg">
- <div className="text-lg font-medium mb-3">公众号内容</div>
-
- {/* 搜索区域 */}
- <div className="flex flex-wrap gap-4 mb-3">
- <div className="flex items-center gap-2">
- <span className="text-gray-600">视频标题:</span>
- <Input
- placeholder="搜索视频标题"
- style={{ width: 200 }}
- value={videoTitle}
- allowClear
- onChange={e => setVideoTitle(e.target.value)}
- />
- </div>
- <div className="flex items-center gap-2">
- <span className="text-gray-600">发布方:</span>
- <Select
- placeholder="筛选场景"
- style={{ width: 200 }}
- value={selectedPublisher}
- onChange={setSelectedPublisher}
- allowClear
- options={[
- { label: '关注回复', value: 'platform' },
- { label: '用户发布', value: 'user' },
- ]}
- />
- </div>
- <Button type="primary" className="ml-2">搜索</Button>
- </div>
- <Tabs
- defaultActiveKey="1"
- type="card"
- size="large"
- items={[
- { label: '每日推送', key: '1' },
- { label: '自动回复', key: '2' },
- ]}
- activeKey={activeKey}
- onChange={setActiveKey}
- tabBarExtraContent={
- { right: <Button type="primary" onClick={addPunlishPlan}>+ 创建发布</Button> }}
- />
- {/* 表格区域 */}
- {
- activeKey === '1' && (
- <Table
- rowKey={(record) => record.officialAccount}
- className={styles.antTable}
- columns={columns}
- dataSource={data}
- pagination={{
- total: data.length,
- pageSize: 10,
- showTotal: (total) => `共 ${total} 条`,
- }}
- />
- )
- }
- {
- activeKey === '2' && (
- <Table
- rowKey={(record) => record.officialAccount}
- className={styles.antTable}
- columns={columns}
- dataSource={data}
- pagination={{
- total: data.length,
- pageSize: 10,
- showTotal: (total) => `共 ${total} 条`,
- }}
- />
- )
- }
- <PunlishPlanModal
- visible={isShowAddPunlishPlan}
- onCancel={() => setIsShowAddPunlishPlan(false)}
- onOk={() => setIsShowAddPunlishPlan(false)}
- actionType={actionType}
- editPlanData={undefined}
- />
- </div>
- </div>
- );
- };
- export default WeGZHContent;
|