index.tsx 2.44 KB
import React, { useEffect, useState } from "react";
import { Button, Card, Form, Row, Tabs } from "antd";
import { PageHeaderWrapper } from "@ant-design/pro-layout";
import { history } from "umi";
import { Provider, useStore } from "../../store";
import ShopTask from "./components/ShopTask";
import AdviserTask from "./components/AdviserTask";
import useInitial from "@/hooks/useInitail";
import * as API from "../../api";
import { isEmpty } from "lodash";

export default () => (
  <Provider>
    <TaskEdit />
  </Provider>
);

function TaskEdit() {
  const querys: any = history.location?.query;
  const readOnly = querys?.readOnly === "1";
  const shopId = querys?.shopId;
  const taskDate = querys?.taskDate;
  const queryTab = querys?.currTab;
  const { shopTaskItem, setShopTaskItem, setIsReadOnly } = useStore();
  const [currTab, setCurrTab] = useState(queryTab ?? "1");
  const [shopTaskForm] = Form.useForm();

  // 获取门店零售任务详情
  const { data, setParams } = useInitial<
    API.ShopTaskItem,
    API.GetShopSaleTaskReq
  >(API.getShopSaleTask, {} as API.ShopTaskItem, {
    shopId,
    taskDate,
  });

  useEffect(() => {
    setShopTaskItem(data);
    setIsReadOnly(readOnly);
  }, [data, readOnly]);

  return (
    <PageHeaderWrapper title={false}>
      <Card
        bodyStyle={{ paddingTop: 0 }}
        title={<span>当前选择门店:{shopTaskItem?.shopName}</span>}
      >
        <Tabs
          defaultActiveKey={currTab}
          onChange={(activeKey) => setCurrTab(activeKey)}
          items={[
            {
              label: `门店任务分配${readOnly ? "详情" : ""}`,
              key: "1",
              children: !isEmpty(shopTaskItem) && (
                <ShopTask
                  form={shopTaskForm}
                  onRefresh={() => setParams({}, true)}
                />
              ),
            },
            {
              label: `销售顾问任务分配${readOnly ? "详情" : ""}`,
              key: "2",
              children: !isEmpty(shopTaskItem) && (
                <AdviserTask
                  form={shopTaskForm}
                  onRefresh={() => setParams({}, true)}
                />
              ),
            },
          ]}
        />
        {isEmpty(shopTaskItem) && (
          <Row align="middle" justify="center" style={{ marginTop: 50 }}>
            <Button onClick={() => history.goBack()}>返回列表</Button>
          </Row>
        )}
      </Card>
    </PageHeaderWrapper>
  );
}