Commit 44958eab by zhaochengxiang

盘点任务详情

parent 4baef55c
......@@ -3,6 +3,7 @@ import { Modal, Form, Input, Select, Space, Button } from 'antd';
import { AppContext } from '../../../App';
import { dispatch } from '../../../model';
import { Basic, Process, Template } from './TaskDetail';
const FC = (props) => {
const { visible, onCancel, task, action } = props;
......@@ -11,17 +12,6 @@ const FC = (props) => {
const [confirmLoading, setConfirmLoading] = useState(false);
const { user } = useContext(AppContext);
const formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 4 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 20 },
},
};
const handleOk = async (status = '1') => {
try {
const values = await form.validateFields();
......@@ -64,7 +54,7 @@ const FC = (props) => {
<Modal
visible={visible}
title={`${action}${task?.title}`}
width={650}
width={1000}
confirmLoading={confirmLoading}
onCancel={() => {
reset();
......@@ -81,7 +71,6 @@ const FC = (props) => {
}
>
<Form
{...formItemLayout}
form={form}
>
<Form.Item
......@@ -92,6 +81,10 @@ const FC = (props) => {
<Input.TextArea rows={4} placeholder={`请输入${action}意见`} />
</Form.Item>
</Form>
<Basic task={task} />
<Process task={task} />
<Template task={task} />
</Modal>
);
}
......
......@@ -6,6 +6,7 @@ import LocalStorage from 'local-storage';
import { AppContext } from '../../../App';
import { dispatch } from '../../../model';
import { showMessage } from '../../../util';
import { Basic, Process, Template } from './TaskDetail';
const FC = (props) => {
const { visible, onCancel, task } = props;
......@@ -93,7 +94,7 @@ const FC = (props) => {
<Modal
visible={visible}
title={`盘点${task?.title}`}
width={650}
width={1000}
confirmLoading={confirmLoading}
onCancel={() => {
reset();
......@@ -119,6 +120,9 @@ const FC = (props) => {
</Upload>
</Form.Item>
</Form>
<Basic task={task} />
<Process task={task} />
<Template task={task} />
</Modal>
);
}
......
import React, { useMemo } from 'react';
import { Modal, Divider, Descriptions, Button, Table } from 'antd';
import { DownloadOutlined } from '@ant-design/icons';
import LocalStorage from 'local-storage';
import { status } from '.';
const FC = (props) => {
const { visible, onCancel, task } = props;
return (
<Modal
visible={visible}
title={`${task?.title}详情`}
width={1000}
onCancel={() => onCancel?.()}
footer={
<Button onClick={() => onCancel?.() }>取消</Button>
}
>
<Basic task={task} />
<Process task={task} />
<Template task={task} />
</Modal>
);
}
export default FC;
export const Basic = ({ task }) => {
return (
<React.Fragment>
<Divider>基本信息</Divider>
<Descriptions title="" labelStyle={{ fontWeight: 'bold' }}>
<Descriptions.Item label="任务ID">{task?.id}</Descriptions.Item>
<Descriptions.Item label="任务标题">{task?.title}</Descriptions.Item>
<Descriptions.Item label="任务说明">{task?.comment}</Descriptions.Item>
<Descriptions.Item label="任务状态">{status[task?.status]}</Descriptions.Item>
<Descriptions.Item label="所属部门">{task?.department?.groupDisplayName??task?.department?.groupName}</Descriptions.Item>
<Descriptions.Item label="资产专员">{task?.user?.userDisplayName??task?.user?.userName}</Descriptions.Item>
<Descriptions.Item label="更新日期">{task?.updateTime}</Descriptions.Item>
<Descriptions.Item label="更新人">{task?.user?.userDisplayName??task?.user?.userName}</Descriptions.Item>
<Descriptions.Item label="创建日期">{task?.createTime}</Descriptions.Item>
<Descriptions.Item label="创建人">{task?.user?.userDisplayName??task?.user?.userName}</Descriptions.Item>
</Descriptions>
</React.Fragment>
)
}
export const Process = ({ task }) => {
const columns = useMemo(() => {
return [
{
title: '处理人',
dataIndex: 'dealUser',
},
{
title: '处理时间',
dataIndex: 'processDate',
render: (ts, _) => ts ? new Date(ts).toLocaleString() : ''
},
{
title: '状态',
dataIndex: 'status',
render: (state, _) => (state==='1')?'通过':'驳回'
},
{
title: '答复内容',
dataIndex: 'content',
render: (_, record) => `${record.title}: ${record.value}`
}
]
}, [])
return (
<React.Fragment>
<Divider>审批过程</Divider>
{
task?.contents?.length === 0 ? <span>暂无审批过程</span> : <Table
width={980}
maxHeight='300px'
columns={columns}
dataSource={task?.contents||[]}
pagination={false}
/>
}
</React.Fragment>
)
}
export const Template = ({ task }) => {
const downloadTemplate = () => {
const env = LocalStorage.get('assetsEnv');
window.open(`/api/dataassetmanager/dataAssetCheckApi/getFileById?env=${env}&fileId=${task?.dataAssetExcel?.fileId}`);
}
return (
<React.Fragment>
<Divider>任务内容</Divider>
{
task?.dataAssetExcel ? <Button className='mr-2' icon={<DownloadOutlined />} onClick={ downloadTemplate }>
{`${task?.dataAssetExcel?.fileName}下载`}
</Button> : <span>暂无任务内容</span>
}
</React.Fragment>
)
}
\ No newline at end of file
......@@ -168,7 +168,7 @@ const FC = (props) => {
<Modal
visible={visible}
title={action==='add'?'新增任务':'编辑任务'}
width={650}
width={1000}
confirmLoading={confirmLoading}
onCancel={() => {
reset();
......
import { useState, useEffect, useMemo } from 'react';
import { Button, Table, Space } from 'antd';
import TaskDetail from './TaskDetail';
import UpdateTask from './UpdateTask';
import AuditTask from './AuditTask';
import CheckTask from './CheckTask';
......@@ -18,6 +19,10 @@ export const status = {
const FC = (props) => {
const [loading, setLoading] = useState(false);
const [tasks, setTasks] = useState();
const [taskDetailParams, setTaskDetailParams] = useState({
visible: false,
task: undefined,
});
const [updateTaskParams, setUpdateTaskParams] = useState({
visible: false,
task: undefined,
......@@ -35,7 +40,7 @@ const FC = (props) => {
const onActionClick = (task, action) => {
if (action === '详情') {
setTaskDetailParams({...taskDetailParams, task, visible: true});
} else if (action === '修改') {
setUpdateTaskParams({...updateTaskParams, task, visible: true, action: 'edit'});
} else if (action === '盘点') {
......@@ -131,6 +136,10 @@ const FC = (props) => {
setUpdateTaskParams({...updateTaskParams, action: 'add', visible: true});
}
const onTaskDetailCancel = () => {
setTaskDetailParams({...taskDetailParams, visible: false});
}
const onUpdateTaskCancel = (refresh = false) => {
setUpdateTaskParams({...updateTaskParams, visible: false});
refresh && getTasks();
......@@ -158,6 +167,12 @@ const FC = (props) => {
dataSource={tasks||[]}
/>
<TaskDetail
visible={taskDetailParams.visible}
task={taskDetailParams.task}
onCancel={onTaskDetailCancel}
/>
<UpdateTask
visible={updateTaskParams.visible}
task={updateTaskParams.task}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment