|
@@ -14,8 +14,9 @@ import {
|
|
} from '@/pages/TaskManage/constent';
|
|
} from '@/pages/TaskManage/constent';
|
|
import { getMandateDetail } from '@/services/TaskManage';
|
|
import { getMandateDetail } from '@/services/TaskManage';
|
|
import { useLocation } from '@@/exports';
|
|
import { useLocation } from '@@/exports';
|
|
|
|
+import { UpOutlined } from '@ant-design/icons';
|
|
import { connect, useRequest } from '@umijs/max';
|
|
import { connect, useRequest } from '@umijs/max';
|
|
-import { Col, Divider, Row } from 'antd';
|
|
|
|
|
|
+import { Col, Collapse, CollapseProps, Divider, Row } from 'antd';
|
|
import moment from 'moment';
|
|
import moment from 'moment';
|
|
import { useEffect, useState } from 'react';
|
|
import { useEffect, useState } from 'react';
|
|
import { useNavigate } from 'umi';
|
|
import { useNavigate } from 'umi';
|
|
@@ -37,9 +38,9 @@ function TaskDetail(props: IPropsType) {
|
|
const navigate = useNavigate();
|
|
const navigate = useNavigate();
|
|
|
|
|
|
const [mandateDetail, setMandateDetail] = useState<IMandateDetailType>();
|
|
const [mandateDetail, setMandateDetail] = useState<IMandateDetailType>();
|
|
- const [handledWorkOrder, setHandledWorkOrder] = useState<IWorkOrderType[]>(
|
|
|
|
- [],
|
|
|
|
- );
|
|
|
|
|
|
+ const [handledWorkOrder, setHandledWorkOrder] = useState<
|
|
|
|
+ CollapseProps['items']
|
|
|
|
+ >([]);
|
|
|
|
|
|
const { refresh: refreshDetail } = useRequest(getMandateDetail, {
|
|
const { refresh: refreshDetail } = useRequest(getMandateDetail, {
|
|
defaultParams: [
|
|
defaultParams: [
|
|
@@ -63,18 +64,63 @@ function TaskDetail(props: IPropsType) {
|
|
),
|
|
),
|
|
CreateTime: moment(result.data.CreateTime).format('YYYY-MM-DD HH:mm'),
|
|
CreateTime: moment(result.data.CreateTime).format('YYYY-MM-DD HH:mm'),
|
|
};
|
|
};
|
|
- const workOrder = result.data.Records;
|
|
|
|
- const tempOrder = workOrder.map((record: IWorkOrderType) => {
|
|
|
|
|
|
+ const workOrder = result.data.Records.map((item: IWorkOrderType) => {
|
|
return {
|
|
return {
|
|
- ...record,
|
|
|
|
- RecordType: OrderType.find(
|
|
|
|
- (item) => item.value === record.RecordType,
|
|
|
|
- ),
|
|
|
|
- Status: OrderStatus.find((item) => item.value === record.Status),
|
|
|
|
- Responsible: userList.find((item) => item.ID === record.Responsible),
|
|
|
|
- CreateTime: moment(record.CreateTime).format('YYYY-MM-DD HH:mm')
|
|
|
|
|
|
+ ...item,
|
|
|
|
+ CreateTime: moment(item.CreateTime).format('YYYY-MM-DD HH:mm'),
|
|
|
|
+ Status: OrderStatus.find((status) => status.value === item.Status),
|
|
|
|
+ RecordType: OrderType.find((type) => type.value === item.RecordType),
|
|
|
|
+ Responsible: userList.find((user) => user.ID === item.Responsible),
|
|
};
|
|
};
|
|
});
|
|
});
|
|
|
|
+ const tempOrder = [
|
|
|
|
+ {
|
|
|
|
+ key: '1',
|
|
|
|
+ label: (
|
|
|
|
+ <span style={{ color: '#5697e4' }}>
|
|
|
|
+ 关联工单({workOrder.length})
|
|
|
|
+ </span>
|
|
|
|
+ ),
|
|
|
|
+ children: workOrder.map((record: IWorkOrderType) => {
|
|
|
|
+ return (
|
|
|
|
+ <div key={record.Id} className={styles.workOrderCard}>
|
|
|
|
+ <div className={styles.leftInfo}>
|
|
|
|
+ <Row style={{ marginBottom: '15px' }}>
|
|
|
|
+ <Col className={styles.fontS24} span={12}>
|
|
|
|
+ 工单编号:{record.Id}
|
|
|
|
+ </Col>
|
|
|
|
+ <Col className={styles.fontS24} span={12}>
|
|
|
|
+ 时间:{record.CreateTime}
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+ <Row>
|
|
|
|
+ <Col className={styles.fontS24} span={12}>
|
|
|
|
+ 工单状态:
|
|
|
|
+ <span style={{ color: '#5697e4' }}>
|
|
|
|
+ {record.Status?.label}
|
|
|
|
+ </span>
|
|
|
|
+ </Col>
|
|
|
|
+ <Col className={styles.fontS24} span={12}>
|
|
|
|
+ 工单负责人:{record.Responsible?.CName}
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+ </div>
|
|
|
|
+ <Divider type="vertical" style={{ height: '40px' }} />
|
|
|
|
+ <div
|
|
|
|
+ className={styles.rightButton}
|
|
|
|
+ style={{ color: '#5697e4' }}
|
|
|
|
+ onClick={() => {
|
|
|
|
+ goTaskOrder(record.Id, record.RecordType?.value);
|
|
|
|
+ }}
|
|
|
|
+ >
|
|
|
|
+ 查看工单
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ );
|
|
|
|
+ }),
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+
|
|
setMandateDetail(tempMandate);
|
|
setMandateDetail(tempMandate);
|
|
setHandledWorkOrder(tempOrder);
|
|
setHandledWorkOrder(tempOrder);
|
|
},
|
|
},
|
|
@@ -100,7 +146,7 @@ function TaskDetail(props: IPropsType) {
|
|
<PageTitle returnable>任务详情</PageTitle>
|
|
<PageTitle returnable>任务详情</PageTitle>
|
|
<div className={`${styles.cardContainer} card-box`}>
|
|
<div className={`${styles.cardContainer} card-box`}>
|
|
<div className={styles.normalInfo}>
|
|
<div className={styles.normalInfo}>
|
|
- <Row className={styles.infoRow} justify='space-between'>
|
|
|
|
|
|
+ <Row className={styles.infoRow} justify="space-between">
|
|
<Col className={styles.fontS24}>
|
|
<Col className={styles.fontS24}>
|
|
时间:{mandateDetail?.CreateTime}
|
|
时间:{mandateDetail?.CreateTime}
|
|
</Col>
|
|
</Col>
|
|
@@ -110,12 +156,12 @@ function TaskDetail(props: IPropsType) {
|
|
任务类别:{mandateDetail?.MandateClass?.label}
|
|
任务类别:{mandateDetail?.MandateClass?.label}
|
|
</Col>
|
|
</Col>
|
|
</Row>
|
|
</Row>
|
|
- <Row justify='space-between'>
|
|
|
|
- <Col className={styles.fontS24} >
|
|
|
|
|
|
+ <Row justify="space-between">
|
|
|
|
+ <Col className={styles.fontS24}>
|
|
{/*//@ts-ignore*/}
|
|
{/*//@ts-ignore*/}
|
|
任务状态:{mandateDetail?.Status?.label}
|
|
任务状态:{mandateDetail?.Status?.label}
|
|
</Col>
|
|
</Col>
|
|
- <Col className={styles.fontS24} >
|
|
|
|
|
|
+ <Col className={styles.fontS24}>
|
|
{/*// @ts-ignore*/}
|
|
{/*// @ts-ignore*/}
|
|
任务负责人:{mandateDetail?.ResponsiblePeople?.CName}
|
|
任务负责人:{mandateDetail?.ResponsiblePeople?.CName}
|
|
</Col>
|
|
</Col>
|
|
@@ -139,52 +185,17 @@ function TaskDetail(props: IPropsType) {
|
|
</Row>
|
|
</Row>
|
|
</div>
|
|
</div>
|
|
<div className={styles.relatedOrder}>
|
|
<div className={styles.relatedOrder}>
|
|
- <div
|
|
|
|
- className={styles.fontS28}
|
|
|
|
- style={{ marginLeft: '5px', marginBottom: '25px' }}
|
|
|
|
- >
|
|
|
|
- 关联工单
|
|
|
|
- </div>
|
|
|
|
- {handledWorkOrder.map((order) => {
|
|
|
|
- return (
|
|
|
|
- <div key={order.Id} className={styles.workOrderCard}>
|
|
|
|
- <div className={styles.leftInfo}>
|
|
|
|
- <Row className={styles.infoRow}>
|
|
|
|
- <Col className={styles.fontS24} span={12}>
|
|
|
|
- 工单编号:{order.Id}
|
|
|
|
- </Col>
|
|
|
|
- <Col className={styles.fontS24} span={12}>
|
|
|
|
- 时间:{order.CreateTime}
|
|
|
|
- </Col>
|
|
|
|
- </Row>
|
|
|
|
- <Row>
|
|
|
|
- <Col className={styles.fontS24} span={12}>
|
|
|
|
- 工单状态:
|
|
|
|
- <span style={{ color: '#5697e4' }}>
|
|
|
|
- {/*// @ts-ignore*/}
|
|
|
|
- {order.Status?.label}
|
|
|
|
- </span>
|
|
|
|
- </Col>
|
|
|
|
- <Col className={styles.fontS24} span={12}>
|
|
|
|
- {/*// @ts-ignore*/}
|
|
|
|
- 工单负责人:{order.Responsible?.CName}
|
|
|
|
- </Col>
|
|
|
|
- </Row>
|
|
|
|
- </div>
|
|
|
|
- <Divider type="vertical" style={{ height: '40px' }} />
|
|
|
|
- <div
|
|
|
|
- className={styles.rightButton}
|
|
|
|
- style={{ color: '#5697e4' }}
|
|
|
|
- onClick={() => {
|
|
|
|
- // @ts-ignore
|
|
|
|
- goTaskOrder(order.Id, order.RecordType?.value);
|
|
|
|
- }}
|
|
|
|
- >
|
|
|
|
- 查看工单
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- );
|
|
|
|
- })}
|
|
|
|
|
|
+ <Collapse
|
|
|
|
+ className={styles.collapseLabel}
|
|
|
|
+ ghost
|
|
|
|
+ expandIcon={({ isActive }) => (
|
|
|
|
+ <UpOutlined
|
|
|
|
+ style={{ color: '#5697e4' }}
|
|
|
|
+ rotate={isActive ? 180 : 0}
|
|
|
|
+ />
|
|
|
|
+ )}
|
|
|
|
+ items={handledWorkOrder}
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</PageContent>
|
|
</PageContent>
|