import { Button, message, Table, Tabs, Tag, Typography } from 'antd' import React, { useEffect, useState, useRef } from 'react' import consts from '@/consts' import { apiAddService } from '@/services/customer' import { useDispatch } from '@umijs/max' import ProTable from '@ant-design/pro-table' import { renderBadge } from '@/pages/Workbench/Dashboard/components/RatioPanels' import { longleSellStatusNum, longlePreserveStatusNum } from '@/pages/Product/Lock/LockStore/index' import { ProductLabel } from '@/pages/Product/Lock/LockStore/index' import { useModal } from '@/components/ModalStore' import { Plus } from '@icon-park/react' import classNames from 'classnames' import { queryRoadPricingListWithParams } from '@/services/product' import { cloudTitleEnum } from '@/pages/Product/Cloud/components/Detail/Form' const { TabPane } = Tabs const ClientTabList = ({ clientId, software, updatePayload }) => { const { Text } = Typography const dispatch = useDispatch() const dispatchModal = useModal() const [state, setState] = useState({ params: {}, cloud: [], loading: false // 云版表格loading }) const clientHeight = (document.body.clientHeight - 124 - 78) / 2 - 54 const columns = [ { title: '锁号', dataIndex: 'keyNum', width: 90, render: (clientName, record) => ( dispatchModal('D_LOCK_DETAIL', { dataId: record.id, orderIds: software.longle.map(item => item.id) }) } className={classNames('cursor-pointer hover:text-hex-967bbd', { 'text-primary': record.preserveStatus !== 3 })}> {record.preserveStatus === 3 ? ( {clientName} ) : ( {clientName} )} ) }, { title: '产品', dataIndex: 'product', width: 230, render: (_, record) => record.preserveStatus === 3 ? ( {record.product} ) : ( ) }, { title: '销售状态', dataIndex: 'sellStatus', width: 90, ellipsis: true, render: (_, record) => record.preserveStatus === 3 ? ( {longleSellStatusNum[record.sellStatus]?.text} ) : ( <>{longleSellStatusNum[record.sellStatus]?.text} ) }, { title: '维护状态', dataIndex: 'preserveStatus', key: 'preserveStatus', width: 90, ellipsis: true, render: (_, record) => record.preserveStatus === 3 ? ( {longlePreserveStatusNum[record.preserveStatus]?.text} ) : ( <>{longlePreserveStatusNum[record.preserveStatus]?.text} ) }, { title: '责任人', dataIndex: 'responsible', width: 70, ellipsis: true, render: (_, record) => record.preserveStatus === 3 ? ( {record.responsible} ) : ( <>{record.responsible} ) } ] const cloudColumns = [ { dataIndex: 'project_type', title: '云版名称', width: '20%', filters: Object.keys(cloudTitleEnum).map(item => ({ text: cloudTitleEnum[item], value: item })), onFilter: (projectType, record) => record.project_type.toString() === projectType, render: text => cloudTitleEnum[text] }, { dataIndex: 'mobile', title: '账号', width: '20%', render: (text, record) => (
dispatchModal('D_CLOUD_DETAIL', { dataId: record.ssoId, projectType: record.project_type }) }> {text}
) }, { dataIndex: 'real_name', title: '姓名', width: '20%' }, { dataIndex: 'upgrade_list', title: '已升级专业版', width: '40%', render: text => (
{text .filter(item => item.isUpgrade) .map(item => { return ( {item.name} ) })}
) } ] const handleAddService = async values => { const { code = -1 } = await apiAddService({ ...values, clientId }) if (code === consts.RET_CODE.SUCCESS) { message.success('新增成功') // 刷新数据 dispatch({ type: 'refresh/commitAction', payload: updatePayload }) } // 请求完了 return code === consts.RET_CODE.SUCCESS } const initCloudData = async () => { setState({ ...state, loading: true }) const { data = [] } = await queryRoadPricingListWithParams({ clientId }) setState({ ...state, cloud: data, loading: false }) } const handleTabChange = activeKey => { if (activeKey === '2') { initCloudData() } } useEffect(() => { setState({ ...state, params: { ...state.params, clientId } }) }, [clientId]) return (
软件锁{renderBadge(software.total, true)}} key="1">
record.id} dataSource={software.longle} pagination={false} scroll={{ y: clientHeight }} />
) } export default ClientTabList