import { MyPageContainer, usePageTabs } from '@/common';
import { Apis } from '@/gen/Apis';
import { ProCard } from '@ant-design/pro-components';
import { useParams } from '@umijs/max';
import { Space, Tabs } from 'antd';
import { useEffect, useState } from 'react';
import AssetAccounts from './components/AssetAccounts';
import MyAssetBuildings from './components/AssetBuildings';
import AssetGrid from './components/AssetGrid';
import AssetInfo from './components/AssetInfo';
import ChargeStandard from './components/ChargeStandard';
import BindCompany from './components/modals/BindCompany';
import AssetUpdate from './modals/AssetUpdate';

export default function Show({ title }: { title?: string } = {}) {
  const { id } = useParams<{ id: string }>();
  const [data, setShow] = useState<any>({});

  // 注册当前页面为标签页
  const { addTab } = usePageTabs({
    tabKey: `asset-show-${id}`,
    tabLabel: data?.name || title || '项目详情',
  });

  const loadShow = () => {
    let paramsId: any = { id: id ?? 0 };
    Apis.Asset.AssetProjects.Show(paramsId).then((res) => {
      setShow(res?.data);
      // 更新标签页名称为API返回的name
      if (res?.data?.name) {
        addTab({
          key: `asset-show-${id}`,
          label: res.data.name,
          path: `/asset/${id}`,
        });
      }
    });
  };
  useEffect(() => {
    loadShow();
  }, [id]);

  let items = [
    // {
    //   label: '基本信息',
    //   key: 'info',
    //   closable: false,
    //   children: <AssetInfo item={data} reload={() => loadShow()} />,
    // },
    {
      label: '楼栋管理',
      key: 'asset_buildings',
      closable: false,
      children: <MyAssetBuildings item={data} />,
    },
    {
      label: '楼栋划分',
      key: 'grid',
      closable: false,
      children: <AssetGrid item={data} />,
    },
    {
      label: '收费标准',
      key: 'charge_standard',
      closable: false,
      children: <ChargeStandard item={data} />,
    },
    {
      label: '收款账号',
      key: 'asset_accounts',
      closable: false,
      children: <AssetAccounts item={data} />,
    },
    // {
    //   label: '车位管理',
    //   key: 'carport',
    //   closable: false,
    //   children: <MyAssetBuildings item={data} />,
    // },
  ];
  return (
    <MyPageContainer title={data?.name || title || '项目详情'}>
      <ProCard
        title={`${data?.name} (${data?.alias_name})`}
        extra={
          <Space>
            <AssetInfo
              item={{ ...data, type: 'primary' }}
              title="查看"
              reload={loadShow}
            />
            <AssetUpdate item={data} title="项目" reload={loadShow} />
            <BindCompany item={data} title="机构" reload={loadShow} />
          </Space>
        }
      >
        <div>* 您可在以下页签中对应管理：楼栋管理、楼栋划分、收款账号；</div>
      </ProCard>
      <ProCard>
        <Tabs type="card" items={data?.id ? items : []} />
      </ProCard>
    </MyPageContainer>
  );
}
