123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- import { useAjax } from "@/Hook/useAjax";
- import { delCorpWechatApi, getCorpWechatAllApi, getCorpWechatApi, getCorpWechatDetailApi } from "@/services/adqV3/global";
- import { PlusOutlined, SearchOutlined } from "@ant-design/icons";
- import { Button, Card, Divider, Input, message, Select, Table, Typography } from "antd";
- import React, { useEffect, useState } from "react"
- import '../../tencentAdPutIn/index.less'
- import Modify from "./modify";
- import columns from "./tableConfig";
- const { Text, Paragraph } = Typography;
- /**
- * 企业微信
- * @returns
- */
- const CorpWechat: React.FC = () => {
- /**********************************/
- const [queryForm, setQueryForm] = useState<{ pageNum: number, pageSize: number, wechatName?: string, wechatIdList?: string[] }>({ pageNum: 1, pageSize: 20 })
- const [queryFormNew, setQueryFormNew] = useState<{ pageNum: number, pageSize: number, wechatName?: string, wechatIdList?: string[] }>({ pageNum: 1, pageSize: 20 })
- const [visible, setVisible] = useState<boolean>(false)
- const getCorpWechat = useAjax((params) => getCorpWechatApi(params))
- const delCorpWechat = useAjax((params) => delCorpWechatApi(params))
- /**********************************/
- useEffect(() => {
- getCorpWechat.run(queryFormNew)
- }, [queryFormNew])
- const del = (id: number) => {
- delCorpWechat.run(id).then(res => {
- if (res) {
- message.success('删除成功')
- getCorpWechat.refresh()
- }
- })
- }
- return <Card
- className="cardResetCss"
- title={<div className="flexStart" style={{ gap: 8 }}>
- <Input style={{ width: 200 }} placeholder="请输入企业微信名称" value={queryForm?.wechatName} allowClear onChange={(e) => setQueryForm({ ...queryForm, wechatName: e.target.value, pageNum: 1 })} />
- <Input.TextArea
- style={{ width: 300 }}
- placeholder="请输入企业微信ID(多个逗号隔开)"
- allowClear
- rows={1}
- onChange={(e) => {
- let value = e.target.value
- let arr: string[] = []
- if (value) {
- value = value.replace(/[,,\s]/g, ',')
- arr = value.split(',').filter((a: string) => a)
- }
- setQueryForm({ ...queryForm, wechatIdList: arr, pageNum: 1 })
- }}
- />
- <Button type="primary" icon={<SearchOutlined />} onClick={() => setQueryFormNew({ ...queryForm })}>搜索</Button>
- <Button type="primary" icon={<PlusOutlined />} onClick={() => { setVisible(true) }}>新增企业微信</Button>
- </div>}
- >
- <Table
- columns={columns(del)}
- dataSource={getCorpWechat.data?.records}
- size="small"
- loading={getCorpWechat?.loading}
- scroll={{ y: 600 }}
- bordered
- rowKey={'id'}
- pagination={{
- defaultPageSize: 20,
- current: getCorpWechat.data?.current || 1,
- pageSize: getCorpWechat.data?.size || 10,
- total: getCorpWechat.data?.total || 0
- }}
- onChange={(pagination) => {
- const { current, pageSize } = pagination
- setQueryForm({ ...queryForm, pageNum: current || 1, pageSize: pageSize || 10 })
- setQueryFormNew({ ...queryForm, pageNum: current || 1, pageSize: pageSize || 10 })
- }}
- />
- {/* 新增修改 */}
- {visible && <Modify
- visible={visible}
- onClose={() => {
- setVisible(false)
- }}
- onChange={() => {
- setVisible(false)
- getCorpWechat.refresh()
- }}
- />}
- </Card>
- }
- /**
- * 选择企微
- * @param param0
- * @returns
- */
- export const SelectCorpWechat: React.FC<{ value?: number, onChange?: (value?: number) => void }> = ({ value, onChange }) => {
- /*******************************/
- const [visible, setVisible] = useState<boolean>(false)
- const getCorpWechatAll = useAjax((params) => getCorpWechatAllApi(params))
- /*******************************/
- // 获取列表
- useEffect(() => {
- getCorpWechatAll.run({})
- }, [])
- return <>
- <Select
- showSearch
- allowClear
- placeholder="请选择企微"
- filterOption={(input: any, option: any) => {
- return option!.name?.toString().toLowerCase().includes(input.toLowerCase())
- }}
- style={{ width: 480 }}
- dropdownRender={menu => <>
- {menu}
- <Divider style={{ margin: '8px 0' }} />
- <div>
- <Button type="link" onClick={() => {
- window.location.href = '/#/launchSystemV3/tencenTasset/corpWechat'
- }}>前往管理</Button>
- <Button type="link" style={{ paddingLeft: 0, paddingRight: 0 }} onClick={() => {
- setVisible(true)
- }}>新增</Button>
- {/* <Link href="/#/launchSystemV3/tencenTasset/miniProgramWechat" target="_blank">
- 前往管理
- </Link> */}
- </div>
- </>}
- value={value}
- onChange={(e) => onChange?.(e)}
- >
- {getCorpWechatAll?.data?.map((item: { id: number, wechatId: string, wechatName: string }) => {
- return <Select.Option value={item.id} key={item.id} name={item.wechatName + `(${item.wechatId})`}><Text strong>{item.wechatName}</Text><Text type="secondary">{`(${item.wechatId})`}</Text></Select.Option>
- })}
- </Select>
- {/* 新增修改 */}
- {visible && <Modify
- visible={visible}
- onClose={() => {
- setVisible(false)
- }}
- onChange={() => {
- setVisible(false)
- getCorpWechatAll.refresh()
- }}
- />}
- </>
- }
- /**
- * 选择企微
- * @param param0
- * @returns
- */
- export const SelectCorpWechatCorpId: React.FC<{ value?: string[], onChange?: (value?: string[]) => void }> = ({ value, onChange }) => {
- /*******************************/
- const [visible, setVisible] = useState<boolean>(false)
- const getCorpWechatAll = useAjax((params) => getCorpWechatAllApi(params))
- /*******************************/
- // 获取列表
- useEffect(() => {
- getCorpWechatAll.run({})
- }, [])
- return <>
- <Select
- showSearch
- allowClear
- placeholder="请选择企微"
- filterOption={(input: any, option: any) => {
- return option!.name?.toString().toLowerCase().includes(input.toLowerCase())
- }}
- mode="multiple"
- style={{ width: 480 }}
- dropdownRender={menu => <>
- {menu}
- <Divider style={{ margin: '8px 0' }} />
- <div>
- <Button type="link" onClick={() => {
- window.location.href = '/#/launchSystemV3/tencenTasset/corpWechat'
- }}>前往管理</Button>
- <Button type="link" style={{ paddingLeft: 0, paddingRight: 0 }} onClick={() => {
- setVisible(true)
- }}>新增</Button>
- {/* <Link href="/#/launchSystemV3/tencenTasset/miniProgramWechat" target="_blank">
- 前往管理
- </Link> */}
- </div>
- </>}
- value={value}
- onChange={(e) => onChange?.(e)}
- >
- {getCorpWechatAll?.data?.map((item: { id: number, wechatId: string, wechatName: string }) => {
- return <Select.Option value={item.wechatId} disabled={value && value?.length > 0 && !value.includes(item.wechatId)} key={item.id} name={item.wechatName + `(${item.wechatId})`}><Text strong>{item.wechatName}</Text><Text type="secondary">{`(${item.wechatId})`}</Text></Select.Option>
- })}
- </Select>
- {/* 新增修改 */}
- {visible && <Modify
- visible={visible}
- onClose={() => {
- setVisible(false)
- }}
- onChange={() => {
- setVisible(false)
- getCorpWechatAll.refresh()
- }}
- />}
- </>
- }
- /**
- * 展示企微
- * @param param0
- * @returns
- */
- export const ShowCorpWechatDetail: React.FC<{ id: number }> = ({ id }) => {
- /*******************************/
- const getCorpWechatDetail = useAjax((params) => getCorpWechatDetailApi(params))
- /*******************************/
- // 获取列表
- useEffect(() => {
- if (id) {
- getCorpWechatDetail.run(id)
- }
- }, [id])
- return <Paragraph style={{ fontSize: 12, wordBreak: 'break-all', marginBottom: 0 }} ellipsis={{ rows: 2 }}>
- {getCorpWechatDetail.data ? <>
- <Text strong>企业微信:{getCorpWechatDetail.data?.wechatName}</Text><Text type="secondary">{`(${getCorpWechatDetail.data?.wechatId}})`}</Text>
- </> : id}
- </Paragraph>
- }
- export default CorpWechat
|