值班日志
parent
36803e7362
commit
8bdd8ddb1c
|
|
@ -68,3 +68,5 @@
|
||||||
`/emergencyRescue/container/enterprise/planAndDrill/emergencyPlan/list`
|
`/emergencyRescue/container/enterprise/planAndDrill/emergencyPlan/list`
|
||||||
- 预案与演练/应急演练管理
|
- 预案与演练/应急演练管理
|
||||||
`/emergencyRescue/container/enterprise/planAndDrill/emergencyExercise/list`
|
`/emergencyRescue/container/enterprise/planAndDrill/emergencyExercise/list`
|
||||||
|
- 应急救援/值班管理/值班日志
|
||||||
|
`/emergencyRescue/container/enterprise/emergencyRescue/duty/dutyLog/list`
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
import { declareRequest } from "@cqsjjb/jjb-dva-runtime";
|
||||||
|
|
||||||
|
export const dutyLogList = declareRequest(
|
||||||
|
"dutyLogLoading",
|
||||||
|
"Post > @/emergencyRescue/dutyLog/list",
|
||||||
|
);
|
||||||
|
export const dutyLogAdd = declareRequest(
|
||||||
|
"dutyLogLoading",
|
||||||
|
"Post > @/emergencyRescue/dutyLog/save",
|
||||||
|
);
|
||||||
|
export const dutyLogUpdate = declareRequest(
|
||||||
|
"dutyLogLoading",
|
||||||
|
"Put > @/emergencyRescue/dutyLog/edit",
|
||||||
|
);
|
||||||
|
export const dutyLogInfo = declareRequest(
|
||||||
|
"dutyLogLoading",
|
||||||
|
"Get > /emergencyRescue/dutyLog/{id}",
|
||||||
|
);
|
||||||
|
export const dutyLogDelete = declareRequest(
|
||||||
|
"dutyLogLoading",
|
||||||
|
"Delete > @/emergencyRescue/dutyLog/{id}",
|
||||||
|
);
|
||||||
|
export const dutyLogDeleteBatch = declareRequest(
|
||||||
|
"dutyLogLoading",
|
||||||
|
"Delete > @/emergencyRescue/dutyLog/ids?ids={ids}",
|
||||||
|
);
|
||||||
|
|
@ -26,3 +26,4 @@ export const NS_EMERGENCY_RESCUE_TEAM = defineNamespace("emergencyRescueTeam");
|
||||||
export const NS_ENTERPRISE_PLAN = defineNamespace("enterprisePlan");
|
export const NS_ENTERPRISE_PLAN = defineNamespace("enterprisePlan");
|
||||||
export const NS_EMERGENCY_PLAN = defineNamespace("emergencyPlan");
|
export const NS_EMERGENCY_PLAN = defineNamespace("emergencyPlan");
|
||||||
export const NS_EMERGENCY_EXERCISE = defineNamespace("emergencyExercise");
|
export const NS_EMERGENCY_EXERCISE = defineNamespace("emergencyExercise");
|
||||||
|
export const NS_DUTY_LOG = defineNamespace("dutyLog");
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
|
import { message } from "antd";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import FormBuilder from "zy-react-library/components/FormBuilder";
|
||||||
|
import Page from "zy-react-library/components/Page";
|
||||||
|
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
|
||||||
|
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
|
||||||
|
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||||
|
import useGetUserInfo from "zy-react-library/hooks/useGetUserInfo";
|
||||||
|
import { NS_DUTY_LOG } from "~/enumerate/namespace";
|
||||||
|
|
||||||
|
function Add(props) {
|
||||||
|
const [userInfo, setUserInfo] = useState({});
|
||||||
|
|
||||||
|
const query = useGetUrlQuery();
|
||||||
|
const { getUserInfo } = useGetUserInfo();
|
||||||
|
|
||||||
|
const [form] = FormBuilder.useForm();
|
||||||
|
|
||||||
|
const getData = async () => {
|
||||||
|
if (!query.id)
|
||||||
|
return;
|
||||||
|
|
||||||
|
const { data } = await props["dutyLogInfo"]({ id: query.id });
|
||||||
|
form.setFieldsValue({
|
||||||
|
...data,
|
||||||
|
time: [data.startTime, data.endTime],
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getData();
|
||||||
|
(async () => {
|
||||||
|
const userInfo = await getUserInfo();
|
||||||
|
setUserInfo(userInfo);
|
||||||
|
})();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const onSubmit = async (values) => {
|
||||||
|
const { success } = await props[query.id ? "dutyLogUpdate" : "dutyLogAdd"]({
|
||||||
|
...values,
|
||||||
|
startTime: values.time[0],
|
||||||
|
endTime: values.time[1],
|
||||||
|
id: query.id,
|
||||||
|
});
|
||||||
|
if (success) {
|
||||||
|
message.success(query.id ? "编辑成功" : "新增成功");
|
||||||
|
props.history.goBack();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Page headerTitle={query.id ? "编辑" : "新增"} isShowFooter={false}>
|
||||||
|
<FormBuilder
|
||||||
|
loading={props.dutyLog.dutyLogLoading}
|
||||||
|
options={[
|
||||||
|
{ name: "unitName", label: "单位名称" },
|
||||||
|
{ name: "time", label: "值班时间", render: FORM_ITEM_RENDER_ENUM.DATETIME_RANGE },
|
||||||
|
{ name: "dutyRecord", label: "值班记录", render: FORM_ITEM_RENDER_ENUM.TEXTAREA, span: 24 },
|
||||||
|
{ name: "handlingSituation", label: "处理情况", render: FORM_ITEM_RENDER_ENUM.TEXTAREA, span: 24 },
|
||||||
|
{ name: "handoverMatters", label: "交接事项", render: FORM_ITEM_RENDER_ENUM.TEXTAREA, span: 24 },
|
||||||
|
{
|
||||||
|
name: "dutyPersonnel",
|
||||||
|
label: "值班人员",
|
||||||
|
render: (
|
||||||
|
<PersonnelSelect
|
||||||
|
params={{ departmentId: userInfo.departmentId }}
|
||||||
|
onGetLabel={(label) => {
|
||||||
|
form.setFieldValue("dutyPersonnelName", label);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{ name: "dutyPersonnelName", label: "值班人员名称", onlyForLabel: true },
|
||||||
|
{
|
||||||
|
name: "reliefPersonnel",
|
||||||
|
label: "接班人员",
|
||||||
|
render: (
|
||||||
|
<PersonnelSelect
|
||||||
|
params={{ departmentId: userInfo.departmentId }}
|
||||||
|
onGetLabel={(label) => {
|
||||||
|
form.setFieldValue("reliefPersonnelName", label);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{ name: "reliefPersonnelName", label: "接班人员名称", onlyForLabel: true },
|
||||||
|
]}
|
||||||
|
form={form}
|
||||||
|
onFinish={onSubmit}
|
||||||
|
/>
|
||||||
|
</Page>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Connect([NS_DUTY_LOG], true)(Add);
|
||||||
|
|
@ -0,0 +1,142 @@
|
||||||
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
|
import { Button, message, Modal, Space } from "antd";
|
||||||
|
import { useState } from "react";
|
||||||
|
import AddIcon from "zy-react-library/components/Icon/AddIcon";
|
||||||
|
import DeleteIcon from "zy-react-library/components/Icon/DeleteIcon";
|
||||||
|
import Page from "zy-react-library/components/Page";
|
||||||
|
import Search from "zy-react-library/components/Search";
|
||||||
|
import Table from "zy-react-library/components/Table";
|
||||||
|
import useTable from "zy-react-library/hooks/useTable";
|
||||||
|
import { NS_DUTY_LOG } from "~/enumerate/namespace";
|
||||||
|
|
||||||
|
function List(props) {
|
||||||
|
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
|
||||||
|
|
||||||
|
const [form] = Search.useForm();
|
||||||
|
|
||||||
|
const { tableProps, getData } = useTable(props["dutyLogList"], {
|
||||||
|
form,
|
||||||
|
});
|
||||||
|
|
||||||
|
const onDelete = (record) => {
|
||||||
|
Modal.confirm({
|
||||||
|
title: "删除确认",
|
||||||
|
content: `确定要删除【${record.unitName}】吗`,
|
||||||
|
onOk: async () => {
|
||||||
|
const { success } = await props["dutyLogDelete"]({ id: record.id });
|
||||||
|
if (success) {
|
||||||
|
message.success("删除成功");
|
||||||
|
getData();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const onDeleteBatch = () => {
|
||||||
|
if (selectedRowKeys.length === 0) {
|
||||||
|
message.warning("请选择要删除的记录");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Modal.confirm({
|
||||||
|
title: "删除确认",
|
||||||
|
content: "确认要删除吗?",
|
||||||
|
onOk: async () => {
|
||||||
|
const { success } = await props["dutyLogDeleteBatch"]({ ids: selectedRowKeys });
|
||||||
|
if (success) {
|
||||||
|
message.success("删除成功");
|
||||||
|
getData();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Page isShowAllAction={false}>
|
||||||
|
<Search
|
||||||
|
options={[
|
||||||
|
{ name: "likeUnitName", label: "单位名称" },
|
||||||
|
]}
|
||||||
|
form={form}
|
||||||
|
onFinish={getData}
|
||||||
|
/>
|
||||||
|
<Table
|
||||||
|
rowSelection={{
|
||||||
|
preserveSelectedRowKeys: true,
|
||||||
|
selectedRowKeys,
|
||||||
|
onChange: (selectedRowKeys) => {
|
||||||
|
setSelectedRowKeys(selectedRowKeys);
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
toolBarRender={() => (
|
||||||
|
<Space>
|
||||||
|
<Button
|
||||||
|
type="primary"
|
||||||
|
icon={(<AddIcon />)}
|
||||||
|
onClick={() => {
|
||||||
|
props.history.push("./add");
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
新增
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
type="primary"
|
||||||
|
danger
|
||||||
|
ghost
|
||||||
|
icon={(<DeleteIcon />)}
|
||||||
|
onClick={onDeleteBatch}
|
||||||
|
>
|
||||||
|
批量删除
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
)}
|
||||||
|
columns={[
|
||||||
|
{ title: "单位名称", dataIndex: "unitName" },
|
||||||
|
{ title: "开始时间", dataIndex: "startTime" },
|
||||||
|
{ title: "结束时间", dataIndex: "endTime" },
|
||||||
|
{ title: "值班人员", dataIndex: "dutyPersonnelName" },
|
||||||
|
{ title: "接班人员", dataIndex: "reliefPersonnelName" },
|
||||||
|
{ title: "值班记录", dataIndex: "dutyRecord" },
|
||||||
|
{ title: "处理情况", dataIndex: "handlingSituation" },
|
||||||
|
{ title: "交接事宜", dataIndex: "handoverMatters" },
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
width: 150,
|
||||||
|
fixed: "right",
|
||||||
|
render: (_, record) => (
|
||||||
|
<Space>
|
||||||
|
<Button
|
||||||
|
type="link"
|
||||||
|
onClick={() => {
|
||||||
|
props.history.push(`./view?id=${record.id}`);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
查看
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
type="link"
|
||||||
|
onClick={() => {
|
||||||
|
props.history.push(`./add?id=${record.id}`);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
编辑
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
type="link"
|
||||||
|
danger
|
||||||
|
onClick={() => {
|
||||||
|
onDelete(record);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
{...tableProps}
|
||||||
|
/>
|
||||||
|
</Page>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Connect([NS_DUTY_LOG], true)(List);
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||||
|
import { Descriptions } from "antd";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import Page from "zy-react-library/components/Page";
|
||||||
|
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||||
|
import { NS_DUTY_LOG } from "~/enumerate/namespace";
|
||||||
|
|
||||||
|
function View(props) {
|
||||||
|
const [info, setInfo] = useState({});
|
||||||
|
|
||||||
|
const query = useGetUrlQuery();
|
||||||
|
|
||||||
|
const getData = async () => {
|
||||||
|
const { data } = await props["dutyLogInfo"]({ id: query.id });
|
||||||
|
setInfo(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getData();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Page headerTitle="查看">
|
||||||
|
<Descriptions
|
||||||
|
bordered
|
||||||
|
column={2}
|
||||||
|
styles={{ label: { width: 200 } }}
|
||||||
|
items={[
|
||||||
|
{ label: "单位名称", children: info.unitName },
|
||||||
|
{ label: "值班时间", children: `${info.startTime} ~ ${info.endTime}` },
|
||||||
|
{ label: "值班记录", children: info.dutyRecord, span: 2 },
|
||||||
|
{ label: "处理情况", children: info.handlingSituation, span: 2 },
|
||||||
|
{ label: "交接事项", children: info.handoverMatters, span: 2 },
|
||||||
|
{ label: "值班人员", children: info.dutyPersonnelName },
|
||||||
|
{ label: "接班人员", children: info.reliefPersonnelName },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</Page>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Connect([NS_DUTY_LOG], true)(View);
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
function DutyLog(props) {
|
||||||
|
return props.children;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default DutyLog;
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
function Duty(props) {
|
||||||
|
return props.children;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Duty;
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
function EmergencyRescue(props) {
|
||||||
|
return props.children;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default EmergencyRescue;
|
||||||
Loading…
Reference in New Issue