import { Row, Col, Spin, Tooltip, Drawer } from 'antd' import React, { useState, useEffect } from 'react' import ClientForm from './Form.jsx' import ClientTabList from './TabList.jsx' import ClientLowerList from './LowerList.jsx' import { apiClientDetail } from '@/services/customer' import consts from '@/consts' import { connect } from 'umi' import { Up, Down } from '@icon-park/react' import { FlipOverEnum, useFlipOver } from '@/hooks/web/useFlipOver' const ClientDetail = props => { const { refresh, visible, dispatch, updateKey = 'client', dataId, orderIds = [], ...resetDrawerProps } = props const shouldUpdate = refresh?.[dataId ?? updateKey] || false const [state, setState] = useState({ loading: false, client: {}, log: [], serviceLog: [], software: {} }) const initData = async id => { setState({ ...state, loading: true }) const { data: { client = {}, log = [], serviceLog = [], software = {} }, code = -1 } = await apiClientDetail(id) if (code === consts.RET_CODE.SUCCESS) { if (shouldUpdate) { dispatch({ type: 'refresh/commitAction', payload: { main: updateKey, target: dataId } }) } setState({ ...state, client, log, serviceLog, software, loading: false }) } } const { flipFn, flipConsts } = useFlipOver(initData, dataId, orderIds) useEffect(() => { shouldUpdate && initData(dataId) }, [shouldUpdate]) useEffect(() => { visible && initData(dataId) }, [visible]) return (
{orderIds.length ? (
flipFn(FlipOverEnum.UP)} className={[flipConsts.disableUpBtn ? 'cursor-not-allowed' : 'cursor-pointer'].join(' ')} /> flipFn(FlipOverEnum.DOWN)} className={[flipConsts.disableDownBtn ? 'cursor-not-allowed' : 'cursor-pointer', 'ml-1'].join( ' ' )} />
) : null}
) } export default connect(({ refresh }) => ({ refresh }))(ClientDetail)