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