import { message, Modal, Table, Space } from "antd"; import { FolderAddOutlined } from '@ant-design/icons'; // import locale from 'antd/es/date-picker/locale/zh_CN'; // import { useParams } from "react-router-dom"; import { useEffect, useState } from "react"; // import { get, put, post, del, downloadUrl } from "../../../util/AjaxUtils.ts"; import { get, put, post, del, downloadUrl } from "../../util/AjaxUtils.ts"; import { Button, Form, Input } from 'antd'; import { AxiosResponse } from "axios"; import type { SearchProps } from 'antd/es/input/Search'; // import type { TableColumnsType } from 'antd'; type ContactType = { csaNo: string gmtCreate: string gmtModified: string name: string phone: string projContactId: string email: string company: string } const { Search } = Input; const { Column } = Table; export default function ContactPeople(props: any) { const [applyConcatId, setApplyConcatId] = useState('') //联系人id const [applyContactCsaNo, setapplyContactCsaNo] = useState('') //客服编号 const [applyContactEmail, setapplyContactEmail] = useState('') //联系人邮箱 const [applyContactName, setapplyContactName] = useState('') //联系人姓名 const [applyContactPhone, setapplyContactPhone] = useState('') //联系人手机 const [applyContactCompany, setapplyContactCompany] = useState('') const [messageApi, contextHolder] = message.useMessage(); const [formContact] = Form.useForm() const height = window.innerHeight - 200; const [isContantOpen, steIsContantOpen] = useState(false) // 联系人弹窗标题 const [contactTitle, setContactTitle] = useState('') // 客服二维码 const [imgUrl, setImgUrl] = useState('') // 联系人搜索关键字 const [peopleKeyWords, setPeopleKeyWords] = useState('') // 联系人表格数据 const [tableContactData, setTableContactData] = useState([]) // 联系人id 关键字 const [contactId, setContactId] = useState('') // 申请人信息搜索 applicantPeopleSearch const applicantPeopleSearch: SearchProps['onSearch'] = (value, _e, info) => ( console.log(info?.source, value), // alert(value), setPeopleKeyWords(value), getSearchProjContactList(value) ); // 获取联系人表格 const getProjContactList = () => { get({ messageApi, url: `/api/proj-contact/list/self`, onSuccess({ data }: AxiosResponse) { // console.log('联系人表格', data); // setTableBelongData(data) setTableContactData(data) } }) } // 获取联系人表格 带搜索 const getSearchProjContactList = (keywords: any) => { get({ messageApi, url: `/api/proj-contact/list/self?keywords=${keywords}`, onSuccess({ data }: AxiosResponse) { // console.log('联系人表格', data); // setTableBelongData(data) setTableContactData(data) } }) } // 联系人表格选择触发 const ContantRowSelection = { // selectedRowKeys: React.Key[] onChange: (_selectedRowKeys: React.Key[], selectedRows: ContactDataType[]) => { // console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); setApplyConcatId(selectedRows[0].projContactId) setapplyContactCsaNo(selectedRows[0].csaNo) setapplyContactEmail(selectedRows[0].email) setapplyContactName(selectedRows[0].name) setapplyContactPhone(selectedRows[0].phone) setapplyContactCompany(selectedRows[0].company) }, }; // 点击创建联系热人获取随机客服 const getCas = () => { get({ messageApi, url: `/api/csa/get`, onSuccess({ data }: AxiosResponse) { // console.log('随机客服信息二维码', data.casQrCode); formContact.setFieldsValue({ csaNo: data.csaNo }); if (data.casQrCode) { const imgUrl = downloadUrl(data.casQrCode,false); // console.log('图片地址', imgUrl); setImgUrl(imgUrl) } } }) } // 创建联系人 const newContact = () => { post({ messageApi, url: '/api/proj-contact/save', body: { csaNo: formContact.getFieldValue('csaNo'), name: formContact.getFieldValue('name'), phone: formContact.getFieldValue('phone'), email: formContact.getFieldValue('email'), company: formContact.getFieldValue('company') }, onBefore() { }, onSuccess() { messageApi.success('提交成功') getProjContactList() steIsContantOpen(false) }, onFinally() { } }) } // 编辑联系人 const upContact = () => { put({ messageApi, url: `/api/proj-contact/update/${contactId}`, body: { csaNo: formContact.getFieldValue('csaNo'), name: formContact.getFieldValue('name'), phone: formContact.getFieldValue('phone'), email: formContact.getFieldValue('email'), company: formContact.getFieldValue('company') }, onBefore() { }, onSuccess() { // console.log(data); // alert('编辑成功') messageApi.open({ type: 'success', content: '编辑成功' }) // getProjContactList() getSearchProjContactList(peopleKeyWords) steIsContantOpen(false) }, onFinally() { } }) } // 联系人人表单信息 点击确定 const contactHandleOk = () => { // alert('联系热确定') formContact.validateFields().then(() => { // 如果验证通过,则执行确认操作 // 这里可以放置你的确认操作逻辑 if (contactTitle === '编辑联系人') { upContact() } if (contactTitle === '创建联系人') { newContact() } // 关闭 弹窗 // setIsNewBelongOpen(false) // 初始化数据 formContact.resetFields(); // 重置表单字段为初始值 }).catch(() => { // 如果验证不通过,可以根据需要处理错误信息 // (errorInfo); }); }; useEffect(() => { getProjContactList() }, []) return (
{contextHolder}
联系人用于接受平台相关业务办理进度的通知信息与各类协议的线下签章等工作。
{applyContactName ? (
当前联系人:
请选择联系人
{applyContactName}/{applyContactPhone}{applyContactEmail ? '/' + applyContactEmail : ''}
) : (
当前联系人:
请选择联系人
{props.concatPeopleInfo.applyContactName}/{props.concatPeopleInfo.applyContactPhone}{props.concatPeopleInfo.applyContactEmail ? '/' + props.concatPeopleInfo.applyContactEmail : ''}
)}
{/* 表格 lyp*/} {props.isShow ? ( (text !== '' ? text : '一')} /> {/* */} ( { // alert(record.projOwnerId); // console.log('text:', text); // console.log('record:', record); setContactId(record.projContactId) setContactTitle('编辑联系人') steIsContantOpen(true) // formContact 表单赋值 formContact.setFieldsValue({ csaNo: record.csaNo, name: record.name, phone: record.phone, email: record.email, company: record.company }) }}>编辑 | { // alert(record.projOwnerId); del({ messageApi, url: `/api/proj-contact/remove/${record.projContactId}`, onSuccess() { messageApi.success('删除成功'); getProjContactList() } }) }}>删除 | { setContactTitle('查看联系人') steIsContantOpen(true) formContact.setFieldsValue({ csaNo: record.csaNo, name: record.name, phone: record.phone, email: record.email }) }}>查看 )} />
) : ( (text !== '' ? text : '一')} /> {/* */} ( { // alert(record.projOwnerId); // console.log('text:', text); // console.log('record:', record); setContactId(record.projContactId) setContactTitle('编辑联系人') steIsContantOpen(true) // formContact 表单赋值 formContact.setFieldsValue({ csaNo: record.csaNo, name: record.name, phone: record.phone, email: record.email, company: record.company }) }}>编辑 | { // alert(record.projOwnerId); del({ messageApi, url: `/api/proj-contact/remove/${record.projContactId}`, onSuccess() { messageApi.success('删除成功'); getProjContactList() } }) }}>删除 | { setContactTitle('查看联系人') steIsContantOpen(true) formContact.setFieldsValue({ csaNo: record.csaNo, name: record.name, phone: record.phone, email: record.email }) }}>查看 )} />
)}
{/* 选择创建/编辑/查看联系人弹框 lyp*/} { // }} onOk={ contactHandleOk } width={745} // 确认按钮样式 okButtonProps={{ size: 'large', style: { display: contactTitle == '查看联系人' ? 'none' : 'block' } }} // 返回按钮样式 cancelButtonProps={{ size: 'large', style: {} }} onCancel={() => { steIsContantOpen(false) getSearchProjContactList(peopleKeyWords) }} >
{contactTitle}
{ // setIsNewBelongOpen(true); }} autoComplete="off" >
姓名:
name="name" rules={[{ required: true, message: '请输入姓名' }]} >
电话:
name="phone" rules={[{ required: true, message: '请输入电话号码' }]} >
所属公司:
name="company" rules={[{ required: false, message: '请输入所属公司' }]} >
邮箱:
name="email" rules={[{ required: false, message: '请输入邮箱' }, { type: 'email', message: '请输入有效的邮箱地址' } ]} >
name="csaNo" >
请使用微信扫一扫
添加您的专属客服
) }