import './head.css' // import { NodeJS } from 'types/node'; import { useDispatch } from 'react-redux' import BalanceHead from '../../components/balance/BalanceHead.tsx'; import RechargeHead from '../../components/recharge/RechargeHead.tsx'; import { Dropdown, MenuProps, message, Modal, Space, Spin, Input } from "antd"; import { DownOutlined, UserOutlined, QuestionCircleOutlined, BellOutlined, KeyOutlined, LogoutOutlined, GiftOutlined, AccountBookOutlined, ContainerOutlined, MenuFoldOutlined, UsergroupAddOutlined, } from "@ant-design/icons"; import { useContext, useEffect, useState } from "react"; import { put, get, post, getUseUrl } from "../../util/AjaxUtils.ts"; import { GlobalContext, GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts"; import UserEdit from "../../components/user/UserEdit.tsx"; import PasswordChange from "../../components/password/PasswordChange.tsx"; // import headRightBg from '../../assets/head-right-bg.png'; import InvoiceList from "../../components/invoice/InvoiceList.tsx"; import logoImg from '../../static/head/logo.png' import userImg from '../../static/homeimg/userimg.png' import kf from '../../static/head/kf.png' import kfImg from '../../static/head/kfImg.png' import { reMenuActive } from '../../util/cache'; // import BelongPeople from '../../components/BelongPeople/BelongPeople.tsx' import BelongPeople from '../../components/BelongPeople/BelongPeople.tsx' import ContactPeople from '../../components/ContactPeople/ContactPeople.tsx' import inv from '../../static/inv.png' import MyOrder from '../../components/myOrder/MyOrder.tsx' import NoticeModal from '../../components/NoticeModal/NoticeModal.tsx'; // import HeadCouponModal from '../../components/CouponModal/HeadCouponModal.tsx' export default function Head() { // const redxuState: any = useSelector(state => state) // const couponModal = redxuState.couponModal // 消息通知弹窗 const [noticeModal, setNoticeModal] = useState(false) // 客服弹窗 const [kfModal, setkfModal] = useState(false) // 未读消息数 const [unRead, setUnRead] = useState(0) // 获取未读消息总数 const getUnRead = () => { get({ messageApi, url: '/api/user-msg/count-un-read/self', onSuccess({ data }) { // console.log(data); setUnRead(data.data) } }) } // 邀请码弹窗 const [invitationModal, setinvitationModal] = useState(false) // 邀请码弹窗加载 const [isLoading, setisLoading] = useState(false) // 解除绑定邀请码弹窗 // const [relieveModal, setRelieveModal] = useState(false) // 申请的邀请码 const [invNum, setInvNum] = useState('') // 输入的邀请码 const [inInvNum, setInInvNum] = useState('') // 已绑定的邀请码 const [bindingInvNum, setBindingInvNum] = useState('') // 邀请码申请状态 const [icStatus, setIcStatus] = useState('') // 邀请码返利比例 const [icRebateRatio, seticRebateRatio] = useState('') // 全托管分账 const [icPriceAll, seticPriceAll] = useState(0) // 写材料分账 const [icPriceMaterial, seticPriceMaterial] = useState(0) // 获取邀请码申请状态 const getIcStatus = () => { get({ messageApi, url: '/api/ic/apply/get/self', onSuccess({ data }) { // console.log(data); if (data) { setIcStatus(data.applyStatus) } } }) } // 获取邀请码信息 const getIc = () => { get({ messageApi, url: '/api/ic/get/self', onBefore() { setisLoading(true) }, onSuccess({ data }) { // console.log(data); setInvNum(data.ic) setBindingInvNum(data.relationIc) seticRebateRatio(data.icRebateRatio) seticPriceAll(Number(data.icPriceAll) / 100 * Number(data.icRebateRatio) / 100) seticPriceMaterial(Number(data.icPriceMaterial) / 100 * Number(data.icRebateRatio) / 100) if (data.ic == '') { getIcStatus() } }, onFinally() { setisLoading(false) } }) } // 绑定邀请码 const putIc = () => { put({ messageApi, url: `/api/ic/update-relation-ic`, body: { value: inInvNum }, onBefore() { }, onSuccess() { // messageApi.success('保存成功,点击编辑按钮可继续修改项目简介'); // console.log(data); getIc() }, onFinally() { } }) } // 确定输入的邀请码事件 const postInvNum = () => { if (!inInvNum) { messageApi.open({ type: 'error', content: '请输入邀请码' }) } else { // setBindingInvNum(inInvNum) // messageApi.open({ // type: 'success', // content: '已绑定邀请码' // }) putIc() } } // 点击获取邀请码 const getInvNum = () => { post({ messageApi, url: `/api/ic/apply/apply`, onBefore() { }, onSuccess() { messageApi.success('已申请') getIcStatus() }, onFinally() { } }) // setInvNum('RSDNQ5H7') } // 复制邀请码 const copyInvNum = () => { // navigator.clipboard.writeText(invNum) // messageApi.open({ // type: 'success', // content: '已复制到剪切板' // }) // 创建一个临时的 input 元素 const tempInput = document.createElement('input'); document.body.appendChild(tempInput); tempInput.value = invNum; // 选中 input 中的内容 tempInput.select(); tempInput.setSelectionRange(0, 99999); // 对于移动设备的支持 // 执行复制操作 try { document.execCommand('copy'); messageApi.open({ type: 'success', content: '已复制到剪切板' }) } catch (err) { messageApi.open({ type: 'error', content: '复制失败,请手动复制' }) } // 移除临时的 input 元素 document.body.removeChild(tempInput); } const dispath = useDispatch() // 更新所属者表格储存至redux const upBelongArray = () => { get({ messageApi, url: `/api/proj-owner/list/self`, onBefore() { }, onSuccess(data: any) { // console.log('所属者表格', data.data); // setBelongPeopleArray(data.data) // 存redux的belongArray dispath({ type: 'uparray', val: data.data }) }, onFinally() { } }) } const globalContext = useContext(GlobalContext); const globalDispatchContext = useContext(GlobalDispatchContext); const [messageApi, contextHolder] = message.useMessage(); const [modal, modalHolder] = Modal.useModal(); const [loading, setLoading] = useState(false); const [isSelfModalOpen, setIsSelfModalOpen] = useState(false); const [isPasswordModalOpen, setIsPasswordModalOpen] = useState(false); const [isInvoiceModalOpen, setIsInvoiceModalOpen] = useState(false); // 我的订单弹窗 const [myorderModal, setMyorderModal] = useState(false) // 所属者弹窗 const [belongModal, setBelongModal] = useState(false) const [belongPeopleInfo, setBelongPeopleInfo] = useState({ authorName: '', authorType: '', authorIdCardType: '', authorIdCard: '', authorCrcAccount: '', authorId: '', authorProvinceCity: '' }) const setValue = () => { // console.log(value); } const setConcatValue = () => { } // 联系人弹窗 const [contactModal, setContactModal] = useState(false) const [concatPeopleInfo, setConcatPeopleInfo] = useState({ applyConcatId: '', applyContactCsaNo: '', applyContactEmail: '', applyContactName: '', applyContactPhone: '', applyContactCompany: '' }) // 优惠券弹窗 // const [couponModal, setCouponModal] = useState(false) // const [belongArray,setBelongArray] = useState([]) // // 获取初始所属者数组 // const getLength = () => { // get({ // messageApi, // url: `/api/proj-owner/list/self`, // onBefore() { // }, // onSuccess(data: any) { // // console.log('所属者表格', data.data); // // setBelongPeopleArray(data.data) // setBelongArray(data.data ) // }, // onFinally() { // } // }) // } // // 获取更新的所属者数组并且做对比查看是否刷新网页 // const getNewLength = () => { // get({ // messageApi, // url: `/api/proj-owner/list/self`, // onBefore() { // }, // onSuccess(data: any) { // // console.log('所属者表格', data.data); // // setBelongPeopleArray(data.data) // console.log('查看结果',data.data != belongArray); // // if (data.data == belongArray) { // // window.location.reload(); // // } // }, // onFinally() { // } // }) // } useEffect(() => { // getLength() reloadUser(messageApi, globalDispatchContext).then((data) => { if (!data.hasUserInfo) { setIsSelfModalOpen(true); } }); }, [globalContext.user]); // 刷新用户信息 const reloadUserInterval = async () => { await reloadUser(messageApi, globalDispatchContext); }; useEffect(() => { getUnRead() setInterval(reloadUserInterval, 5 * 60 * 1000); }, []) const items: MenuProps['items'] = [ { key: 'userinfo', label: (
个人信息
), onClick: () => { setIsSelfModalOpen(true); } }, { key: 'changePass', label: (
修改密码
), onClick: () => { setIsPasswordModalOpen(true); } }, { key: 'invoice', label: (
发票管理
), onClick: () => { setIsInvoiceModalOpen(true); } }, { key: 'myorder', label: (
{/* */} 我的订单
), onClick: () => { setMyorderModal(true) } }, { key: 'belong', label: (
产权所属者
), onClick: () => { setBelongModal(true) } }, { key: 'contact', label: (
产权联系人
), onClick: () => { setContactModal(true) } }, { key: 'coupon', label: (
优惠券
), onClick: () => { // setCouponModal(true) dispath({ type: 'changeCouponModal', val: true }) } }, { key: 'logout', label: (
退出系统
), onClick: () => { reMenuActive() window.location.href = '/copyright/logout' } }, ] return ( <>
{/* AI引擎软著 软件著作权一站式服务平台 */}
{/*
*/}
{ setkfModal(true) }}>
在线客服
{/*
{ window.open('https://www.aimzhu.com/operator/route/agreementportal/view?agreementId=c0c5683a-bef3-40c3-8395-900a362ea234&title=系统操作流程') }}>
*/} {/*
*/} {/*
*/}
{ setinvitationModal(true) getIc() }}> 邀请码
{ // window.open('https://www.aimzhu.com/operator/route/agreementportal/view?agreementId=c0c5683a-bef3-40c3-8395-900a362ea234&title=系统操作流程') getUseUrl() }}>
{ setNoticeModal(true) }}>
{unRead}
{/**/}
{/* 您好:{globalContext.user.nickname} */} 个人中心
{ if (!globalContext.user.hasUserInfo) { messageApi.info('请完善个人信息'); return; } setIsSelfModalOpen(false) // console.log('用户信息',globalContext.user.hasUserInfo); }}> { modal.confirm({ title: '提示', content: '确定保存吗?', okText: '确认', cancelText: '取消', okButtonProps: { style: { backgroundColor: 'var(--color-primary)' } }, onOk: () => { setIsSelfModalOpen(false); put({ messageApi, url: '/api/user-info/update-self', body: data, onBefore() { setLoading(true); }, onSuccess() { messageApi.success('修改成功'); }, onFinally() { setLoading(false); } }) } }); }} /> { setIsPasswordModalOpen(false) }}> { modal.confirm({ title: '提示', content: '确定修改吗?', okText: '确认', cancelText: '取消', okButtonProps: { style: { backgroundColor: 'var(--color-primary)' } }, onOk: () => { put({ messageApi, url: '/api/user/update-password', body: data, onBefore() { setLoading(true); }, onSuccess() { setIsPasswordModalOpen(false); messageApi.success('修改成功,重新登录生效'); }, onFinally() { setLoading(false); } }) } }); }} /> setIsInvoiceModalOpen(false)} > { upBelongArray() // getNewLength() setBelongModal(false) }}> { setBelongModal(false) }} setBelongPeopleInfo={setBelongPeopleInfo} belongPeopleInfo={belongPeopleInfo} setValue={setValue} isShow={false} > { setContactModal(false) }}> { setContactModal(false) }} setConcatPeopleInfo={setConcatPeopleInfo} concatPeopleInfo={concatPeopleInfo} setConcatValue={setConcatValue}> { // getNewLength() setinvitationModal(false) setInvNum('') setInInvNum('') }}>
我的邀请码
{ getInvNum() }} style={{ display: invNum || icStatus ? 'none' : 'block' }}> 点击申请
正在申请中
申请失败!
{ getInvNum() }}>重新申请
{invNum}
{ copyInvNum() }}> 复制
{/*
*/}
{/* {icRebateRatio ? `邀请码分享给他人,即可获得${icRebateRatio}%佣金` : '邀请码分享给他人,即可获得佣金'} */} {icRebateRatio ? (
邀请码分享给他人,即可获得{icRebateRatio}%佣金
全托管佣金:{icPriceAll}元,写材料佣金:{icPriceMaterial}元
) : (<>邀请码分享给他人,即可获得佣金)} {/* */}
{/*
失败的原因可能是XXXXXX导致,如有疑问请您咨询客服人员
*/}
{/*
*/}
他人邀请码
{ setInInvNum(e.target.value) }} />
{ postInvNum() }}>
{bindingInvNum}
{/*
{ setRelieveModal(true) }}> 解绑
*/}
{bindingInvNum ? '已绑定邀请码' : '输入他人的邀请码,即可获得相应优惠'}
{/* { setBindingInvNum('') setInInvNum('') setRelieveModal(false) }} onCancel={() => { setRelieveModal(false) }}>
确定解绑当前邀请码吗?
*/} { // setBindingInvNum('') // setInInvNum('') // setRelieveModal(false) // }} width={1500} onCancel={() => { setMyorderModal(false) }}> { setNoticeModal(false) getUnRead() // setUnRead(0) }}> { setkfModal(false) }}>
微信扫码咨询客服
若已登录电脑端, { window.open('https://work.weixin.qq.com/kfid/kfc599f9d40b65ac392') } }>点击联系客服
{/* { // setCouponModal(false) // setUnRead(0) }}> { // setCouponModal(false) }}> */} {contextHolder} {modalHolder} ) }