bug修改:12732、12728、12726、12723、12702、12694、12689、12687、12682、12680、12677、12661、12658、12656、12654、12644、12643、12628、12626、12624、12618、12592、12589、12588、12580、12548
parent
5ea3a687ec
commit
97e4a681f3
|
|
@ -18,6 +18,7 @@
|
|||
"lint": "eslint --ext .js,.jsx,.tsx --fix src"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ahooksjs/use-url-state": "^3.5.1",
|
||||
"@ant-design/icons": "^6.1.0",
|
||||
"@ant-design/pro-components": "^2.8.10",
|
||||
"@cqsjjb/jjb-common-decorator": "latest",
|
||||
|
|
@ -31,7 +32,7 @@
|
|||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-to-print": "^3.2.0",
|
||||
"zy-react-library": "^1.0.167"
|
||||
"zy-react-library": "^1.0.175"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@antfu/eslint-config": "^5.4.1",
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ function Add(props) {
|
|||
form={form}
|
||||
values={{
|
||||
templateDetails: [{}],
|
||||
promiseType: "0",
|
||||
promiseType: 0,
|
||||
}}
|
||||
onFinish={onSubmit}
|
||||
loading={props.commitment.commitmentLoading}
|
||||
|
|
@ -75,7 +75,7 @@ function Add(props) {
|
|||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容" }],
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import DepartmentSelectTree from "zy-react-library/components/SelectTree/Departm
|
|||
import Table from "zy-react-library/components/Table";
|
||||
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import useIsExistenceDuplicateSelection from "zy-react-library/hooks/useIsExistenceDuplicateSelection";
|
||||
import useTable from "zy-react-library/hooks/useTable";
|
||||
import { getLabelName, validatorEndTime } from "zy-react-library/utils";
|
||||
import { PROMISE_TYPE_ENUM } from "~/enumerate/constant";
|
||||
|
|
@ -20,6 +21,7 @@ import { NS_COMMITMENT } from "~/enumerate/namespace";
|
|||
|
||||
function Add(props) {
|
||||
const query = useGetUrlQuery();
|
||||
const { isExistenceDuplicateSelection } = useIsExistenceDuplicateSelection();
|
||||
const [form] = Form.useForm();
|
||||
const promisePersons = Form.useWatch("promisePersons", form);
|
||||
const promiseTermStart = Form.useWatch("promiseTermStart", form);
|
||||
|
|
@ -75,6 +77,8 @@ function Add(props) {
|
|||
}, []);
|
||||
|
||||
const onSubmit = async (values) => {
|
||||
await isExistenceDuplicateSelection({ data: values.promisePersons, key: "postId", message: `承诺人岗位不能重复` });
|
||||
const peopleNumInvolved = values.promisePersons.reduce((acc, item) => acc + item.userName.length, 0);
|
||||
const persons = values.promisePersons.map(item => ({
|
||||
...item,
|
||||
userName: item.userName.join(","),
|
||||
|
|
@ -97,7 +101,7 @@ function Add(props) {
|
|||
id: query.id,
|
||||
promiseId: query.promiseId,
|
||||
promisePeoples: promiseAll,
|
||||
peopleNumInvolved: values.promisePersons.length,
|
||||
peopleNumInvolved,
|
||||
});
|
||||
if (success) {
|
||||
message.success("操作成功");
|
||||
|
|
@ -112,6 +116,8 @@ function Add(props) {
|
|||
<FormBuilder
|
||||
form={form}
|
||||
values={{
|
||||
promiseType: 0,
|
||||
promiseTypeName: "承诺书",
|
||||
promisePeoples: [{}], // 被承诺人
|
||||
promisePersons: [{}], // 承诺人
|
||||
}}
|
||||
|
|
@ -176,7 +182,7 @@ function Add(props) {
|
|||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容" }],
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
{ key: "divider2", label: "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||
{
|
||||
|
|
@ -341,6 +347,8 @@ function Add(props) {
|
|||
form.setFieldValue("passivePostId", "");
|
||||
form.setFieldValue("passiveUserName", "");
|
||||
form.setFieldValue("passiveUserId", "");
|
||||
setPostList([]);
|
||||
setPostList1([]);
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
|
||||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Form, message, Modal, Space, Tooltip } from "antd";
|
||||
import dayjs from "dayjs";
|
||||
import AddIcon from "zy-react-library/components/Icon/AddIcon";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import DictionarySelect from "zy-react-library/components/Select/Dictionary";
|
||||
|
|
@ -77,8 +78,8 @@ function List(props) {
|
|||
{ title: "适用期限", render: (_, record) => `${record.promiseTermStart}至${record.promiseTermEnd}` },
|
||||
{ title: "涉及部门", dataIndex: "departmentNames" },
|
||||
{ title: "涉及岗位", dataIndex: "postNames" },
|
||||
{ title: "承诺人数/涉及人数", dataIndex: "signedCount", render: (_, record) => `已完成${record.signedCount}/${record.peopleNumInvolved}` },
|
||||
{ title: "下发时间", dataIndex: "updateTime" },
|
||||
{ title: "承诺人数/涉及人数", dataIndex: "signedCount", render: (_, record) => `${record.signedCount === record.peopleNumInvolved ? "已" : "未"}完成${record.signedCount}/${record.peopleNumInvolved}` },
|
||||
{ title: "下发时间", dataIndex: "updateTime", render: (_, record) => record.updateTime ? dayjs(record.updateTime).format("YYYY-MM-DD") : "" },
|
||||
{ title: "状态", render: (_, record) => getLabelName({ list: [{ name: "已下发", bianma: "0" }, { name: "暂存", bianma: "1" }], status: record.state }) },
|
||||
{
|
||||
title: "操作",
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ function Add(props) {
|
|||
...values,
|
||||
id: query.id,
|
||||
promiseId: query.promiseId,
|
||||
isRegulatory: 0,
|
||||
isRegulatory: 1,
|
||||
});
|
||||
if (success) {
|
||||
message.success("操作成功");
|
||||
|
|
@ -73,7 +73,7 @@ function Add(props) {
|
|||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容" }],
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -97,12 +97,12 @@ function List(props) {
|
|||
>
|
||||
查看
|
||||
</Button>
|
||||
{props.permission("jg-promise-template-disable") && (
|
||||
{(props.permission("jg-promise-template-disable") && record.isRegulatory === 1) && (
|
||||
<Button type="link" onClick={() => updateState(record.id, record.state)}>
|
||||
{record.state === 0 ? "禁用" : "启用"}
|
||||
</Button>
|
||||
)}
|
||||
{props.permission("jg-promise-template-edit") && (
|
||||
{(props.permission("jg-promise-template-edit") && record.isRegulatory === 1) && (
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
|
|
@ -112,7 +112,7 @@ function List(props) {
|
|||
编辑
|
||||
</Button>
|
||||
)}
|
||||
{props.permission("jg-promise-template-deletes") && <Button type="link" danger onClick={() => onDelete(record.id)}>删除</Button>}
|
||||
{(props.permission("jg-promise-template-deletes") && record.isRegulatory === 1) && <Button type="link" danger onClick={() => onDelete(record.id)}>删除</Button>}
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import DepartmentSelectTree from "zy-react-library/components/SelectTree/Departm
|
|||
import Table from "zy-react-library/components/Table";
|
||||
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import useIsExistenceDuplicateSelection from "zy-react-library/hooks/useIsExistenceDuplicateSelection";
|
||||
import useTable from "zy-react-library/hooks/useTable";
|
||||
import { getLabelName, validatorEndTime } from "zy-react-library/utils";
|
||||
import { PROMISE_TYPE_ENUM, RELEASE_PLATFORM_ENUM } from "~/enumerate/constant";
|
||||
|
|
@ -20,6 +21,7 @@ import { NS_COMMITMENT } from "~/enumerate/namespace";
|
|||
|
||||
function Add(props) {
|
||||
const query = useGetUrlQuery();
|
||||
const { isExistenceDuplicateSelection } = useIsExistenceDuplicateSelection();
|
||||
const [form] = Form.useForm();
|
||||
const promisePeoples = Form.useWatch("promisePeoples", form);
|
||||
const promisePersons = Form.useWatch("promisePersons", form);
|
||||
|
|
@ -30,7 +32,8 @@ function Add(props) {
|
|||
const [corpInfoList, setCorpInfoList] = useState([]);
|
||||
const [postList, setPostList] = useState([]);
|
||||
const [postList1, setPostList1] = useState([]);
|
||||
const [choiceTemplateModalOpen, setchoiceTemplateModalOpen] = useState(false);
|
||||
const [choiceTemplateModalOpen, setChoiceTemplateModalOpen] = useState(false);
|
||||
const [isAlreadyChoiceTemplate, setIsAlreadyChoiceTemplate] = useState(false);
|
||||
|
||||
const getPostList = async (departmentId, corpId, index) => {
|
||||
const { data } = await props["jobInfo"]({ departmentId, corpinfoId: corpId, corpFlag: 1 });
|
||||
|
|
@ -40,6 +43,7 @@ function Add(props) {
|
|||
return newPostList;
|
||||
});
|
||||
};
|
||||
|
||||
const getPostList1 = async (departmentId, corpId) => {
|
||||
const { data } = await props["jobInfo"]({ departmentId, corpinfoId: corpId, corpFlag: 1 });
|
||||
setPostList1(data);
|
||||
|
|
@ -63,6 +67,7 @@ function Add(props) {
|
|||
form.setFieldsValue({
|
||||
...values,
|
||||
});
|
||||
setIsAlreadyChoiceTemplate(true);
|
||||
for (let i = 0; i < values.promisePersons.length; i++) {
|
||||
await getPostList(values.promisePersons[i].departmentId, values.promisePersons[i].corpId, i);
|
||||
}
|
||||
|
|
@ -76,18 +81,18 @@ function Add(props) {
|
|||
}, []);
|
||||
|
||||
const onSubmit = async (values) => {
|
||||
await isExistenceDuplicateSelection({ data: values.promisePersons, key: "userId", message: `${promiseType === 1 ? "受状人" : "承诺人"}不能重复` });
|
||||
const peoples = values.promisePeoples.map(item => ({
|
||||
...item,
|
||||
isPromisePeople: 1,
|
||||
}));
|
||||
const persons = values.promisePersons.map(item => ({
|
||||
...item,
|
||||
userName: item.userName.join(","),
|
||||
userId: item.userId.join(","),
|
||||
userName: item.userName,
|
||||
userId: item.userId,
|
||||
isPromisePeople: 0,
|
||||
}));
|
||||
const promiseAll = [...peoples, ...persons];
|
||||
|
||||
const { success } = await props[!query.id ? "busPromiseAdd" : "busPromiseEdit"]({
|
||||
...values,
|
||||
id: query.id,
|
||||
|
|
@ -118,9 +123,9 @@ function Add(props) {
|
|||
{
|
||||
name: "releasePlatform",
|
||||
label: "下发对象",
|
||||
span: releasePlatform === "1" ? 12 : 24,
|
||||
span: releasePlatform === 1 ? 12 : 24,
|
||||
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
||||
items: RELEASE_PLATFORM_ENUM,
|
||||
items: RELEASE_PLATFORM_ENUM.map(item => ({ ...item, bianma: +item.bianma })),
|
||||
componentProps: {
|
||||
onChange: () => {
|
||||
form.setFieldValue("promisePersons", [{}]);
|
||||
|
|
@ -132,7 +137,7 @@ function Add(props) {
|
|||
name: "level",
|
||||
label: "承诺书级别",
|
||||
dependencies: ["releasePlatform"],
|
||||
hidden: formValues => !(formValues.releasePlatform === "1"),
|
||||
hidden: formValues => !(formValues.releasePlatform === 1),
|
||||
render: (
|
||||
<DictionarySelect
|
||||
dictValue="PROMISE_LEVEL"
|
||||
|
|
@ -170,7 +175,7 @@ function Add(props) {
|
|||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setchoiceTemplateModalOpen(true);
|
||||
setChoiceTemplateModalOpen(true);
|
||||
}}
|
||||
>
|
||||
选择模板
|
||||
|
|
@ -178,6 +183,8 @@ function Add(props) {
|
|||
</div>
|
||||
),
|
||||
},
|
||||
...(isAlreadyChoiceTemplate
|
||||
? [
|
||||
{ name: "promiseTypeName", label: "安全承诺类型", span: 24, componentProps: { disabled: true } },
|
||||
{ name: "promiseType", label: "安全承诺类型", onlyForLabel: true },
|
||||
{
|
||||
|
|
@ -187,7 +194,7 @@ function Add(props) {
|
|||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容" }],
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
{ key: "divider2", label: promiseType === 1 ? "受状人" : "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||
{
|
||||
|
|
@ -199,7 +206,7 @@ function Add(props) {
|
|||
showRemoveButton: !(promiseType === 1),
|
||||
options: (field, index) => (
|
||||
[
|
||||
...(!releasePlatform || releasePlatform === "1"
|
||||
...(!releasePlatform || releasePlatform === 1
|
||||
? [
|
||||
{
|
||||
name: [field.name, "corpId"],
|
||||
|
|
@ -220,7 +227,7 @@ function Add(props) {
|
|||
form.setFieldValue(["promisePersons", field.name, "postId"], "");
|
||||
form.setFieldValue(["promisePersons", field.name, "postName"], "");
|
||||
form.setFieldValue(["promisePersons", field.name, "userName"], "");
|
||||
form.setFieldValue(["promisePersons", field.name, "userId"], promiseType === 1 ? "" : []);
|
||||
form.setFieldValue(["promisePersons", field.name, "userId"], "");
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -230,17 +237,17 @@ function Add(props) {
|
|||
{
|
||||
name: [field.name, "departmentId"],
|
||||
label: `部门${index + 1}`,
|
||||
span: releasePlatform === "2" ? 8 : 12,
|
||||
labelCol: { span: releasePlatform === "2" ? 6 : 4 },
|
||||
span: releasePlatform === 2 ? 8 : 12,
|
||||
labelCol: { span: releasePlatform === 2 ? 6 : 4 },
|
||||
render: (
|
||||
<DepartmentSelectTree
|
||||
isNeedCorpInfoId={!releasePlatform || releasePlatform === "1"}
|
||||
isNeedCorpInfoId={!releasePlatform || releasePlatform === 1}
|
||||
params={{ eqCorpinfoId: promisePersons?.[field.name]?.corpId || "" }}
|
||||
onChange={(departmentId) => {
|
||||
form.setFieldValue(["promisePersons", field.name, "postId"], "");
|
||||
form.setFieldValue(["promisePersons", field.name, "postName"], "");
|
||||
form.setFieldValue(["promisePersons", field.name, "userName"], "");
|
||||
form.setFieldValue(["promisePersons", field.name, "userId"], promiseType === 1 ? "" : []);
|
||||
form.setFieldValue(["promisePersons", field.name, "userId"], "");
|
||||
if (!departmentId)
|
||||
return;
|
||||
getPostList(departmentId, promisePersons?.[field.name]?.corpId, index);
|
||||
|
|
@ -255,8 +262,8 @@ function Add(props) {
|
|||
{
|
||||
name: [field.name, "postId"],
|
||||
label: `岗位${index + 1}`,
|
||||
span: releasePlatform === "2" ? 8 : 12,
|
||||
labelCol: { span: releasePlatform === "2" ? 6 : 4 },
|
||||
span: releasePlatform === 2 ? 8 : 12,
|
||||
labelCol: { span: releasePlatform === 2 ? 6 : 4 },
|
||||
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
||||
items: postList[index] || [],
|
||||
itemsField: { labelKey: "postName", valueKey: "id" },
|
||||
|
|
@ -269,7 +276,7 @@ function Add(props) {
|
|||
idKey: "id",
|
||||
}));
|
||||
form.setFieldValue(["promisePersons", field.name, "userName"], "");
|
||||
form.setFieldValue(["promisePersons", field.name, "userId"], promiseType === 1 ? "" : []);
|
||||
form.setFieldValue(["promisePersons", field.name, "userId"], "");
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -278,8 +285,8 @@ function Add(props) {
|
|||
{
|
||||
name: [field.name, "userId"],
|
||||
label: `人员${index + 1}`,
|
||||
span: releasePlatform === "2" ? 8 : 12,
|
||||
labelCol: { span: releasePlatform === "2" ? 6 : 4 },
|
||||
span: releasePlatform === 2 ? 8 : 12,
|
||||
labelCol: { span: releasePlatform === 2 ? 6 : 4 },
|
||||
render: (
|
||||
<PersonnelSelect
|
||||
params={{
|
||||
|
|
@ -290,7 +297,6 @@ function Add(props) {
|
|||
onGetLabel={(label) => {
|
||||
form.setFieldValue(["promisePersons", field.name, "userName"], label);
|
||||
}}
|
||||
mode={(promiseType === 1) ? "tags" : "multiple"}
|
||||
/>
|
||||
),
|
||||
},
|
||||
|
|
@ -341,7 +347,7 @@ function Add(props) {
|
|||
itemsField: { labelKey: "postName", valueKey: "id" },
|
||||
componentProps: {
|
||||
onChange: (event) => {
|
||||
form.setFieldValue(["promisePeoples", field.name, "postName"], getLabelName({ list: postList1, status: event, nameKey: "postName", valueKey: "id" }));
|
||||
form.setFieldValue(["promisePeoples", field.name, "postName"], getLabelName({ list: postList1, status: event, nameKey: "postName", idKey: "id" }));
|
||||
form.setFieldValue(["promisePeoples", field.name, "userName"], "");
|
||||
form.setFieldValue(["promisePeoples", field.name, "userId"], "");
|
||||
},
|
||||
|
|
@ -371,19 +377,27 @@ function Add(props) {
|
|||
),
|
||||
},
|
||||
},
|
||||
]
|
||||
: [
|
||||
{ key: "tip", customizeRender: true, span: 24, render: (<div style={{ color: "red", textAlign: "center" }}>请先选择安全承诺模板</div>) },
|
||||
]),
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
{choiceTemplateModalOpen && (
|
||||
<ChoiceTemplateModal
|
||||
onCancel={() => setchoiceTemplateModalOpen(false)}
|
||||
onCancel={() => setChoiceTemplateModalOpen(false)}
|
||||
onConfirm={(values) => {
|
||||
form.setFieldValue("promiseType", values.promiseType);
|
||||
form.setFieldValue("promiseTypeName", getLabelName({ list: PROMISE_TYPE_ENUM, status: values.promiseType }));
|
||||
form.setFieldValue("promiseText", values.promiseText);
|
||||
if (values.promiseType !== promiseType) {
|
||||
form.setFieldValue("promisePersons", [{}]);
|
||||
form.setFieldValue("promisePeoples", [{}]);
|
||||
}
|
||||
setIsAlreadyChoiceTemplate(true);
|
||||
setPostList([]);
|
||||
setPostList1([]);
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Descriptions, Divider } from "antd";
|
||||
import { Button, Descriptions, Divider, Spin } from "antd";
|
||||
import { useEffect, useState } from "react";
|
||||
import HeaderBack from "zy-react-library/components/HeaderBack";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import { getLabelName } from "zy-react-library/utils";
|
||||
import { RELEASE_PLATFORM_ENUM } from "~/enumerate/constant";
|
||||
import { PROMISE_TYPE_ENUM, RELEASE_PLATFORM_ENUM } from "~/enumerate/constant";
|
||||
import { NS_COMMITMENT } from "~/enumerate/namespace";
|
||||
import DetailModal from "~/pages/Container/Supervise/Components/DetailModal";
|
||||
|
||||
|
|
@ -20,12 +20,15 @@ function Detail(props) {
|
|||
const [busPromiseTemplateModalOpen, setBusPromiseTemplateModalOpen] = useState(false);
|
||||
const [id, setId] = useState("");
|
||||
const [modalUrl, setModalUrl] = useState("");
|
||||
|
||||
useEffect(() => {
|
||||
getData();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title="查看" />
|
||||
<Spin spinning={props.commitment.commitmentLoading}>
|
||||
<div style={{ padding: 20 }}>
|
||||
<Divider orientation="left">基本信息</Divider>
|
||||
<Descriptions
|
||||
|
|
@ -35,7 +38,8 @@ function Detail(props) {
|
|||
items={[
|
||||
{ label: "安全承诺名称", children: detail.promiseName },
|
||||
{ label: "下发对象", children: getLabelName({ list: RELEASE_PLATFORM_ENUM, status: detail.releasePlatform }) },
|
||||
{ label: "安全承诺级别", children: detail.levelName },
|
||||
...(detail.releasePlatform === 1 ? [{ label: "安全承诺级别", children: detail.levelName }] : []),
|
||||
{ label: "安全承诺类型", children: getLabelName({ list: PROMISE_TYPE_ENUM, status: detail.promiseType }) },
|
||||
{ label: "适用期限开始", children: detail.promiseTermStart },
|
||||
{ label: "适用期限结束", children: detail.promiseTermEnd },
|
||||
]}
|
||||
|
|
@ -53,11 +57,11 @@ function Detail(props) {
|
|||
<Descriptions
|
||||
bordered
|
||||
column={2}
|
||||
styles={{ label: { width: 200 } }}
|
||||
styles={{ label: { width: 200 }, content: { width: 720 } }}
|
||||
items={[
|
||||
...(detail.promisePersons || []).flatMap((item, index) => {
|
||||
const base = [
|
||||
{ label: `部门${index + 1}`, children: item.departmentName || "-", span: (detail.releasePlatform !== 1 ? 2 : 1) },
|
||||
{ label: `部门${index + 1}`, children: item.departmentName || "-" },
|
||||
{ label: `岗位${index + 1}`, children: item.postName || "-" },
|
||||
{ label: `人员${index + 1}`, children: item.userName || "-" },
|
||||
];
|
||||
|
|
@ -78,9 +82,9 @@ function Detail(props) {
|
|||
<Descriptions
|
||||
bordered
|
||||
column={2}
|
||||
styles={{ label: { width: 200 } }}
|
||||
styles={{ label: { width: 200 }, content: { width: 720 } }}
|
||||
items={[
|
||||
{ label: "部门", children: detail.promisePeople?.departmentName || "-", span: 2 },
|
||||
{ label: "部门", children: detail.promisePeople?.departmentName || "-" },
|
||||
{ label: "岗位", children: detail.promisePeople?.postName || "-" },
|
||||
{ label: "人员", children: detail.promisePeople?.userName || "-" },
|
||||
]}
|
||||
|
|
@ -99,6 +103,7 @@ function Detail(props) {
|
|||
</div>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</div>
|
||||
</Spin>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
import useUrlState from "@ahooksjs/use-url-state";
|
||||
import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
|
||||
import { tools } from "@cqsjjb/jjb-common-lib";
|
||||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Form, message, Modal, Space, Tabs, Tooltip } from "antd";
|
||||
import dayjs from "dayjs";
|
||||
import { useEffect, useState } from "react";
|
||||
import AddIcon from "zy-react-library/components/Icon/AddIcon";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
|
|
@ -13,10 +14,11 @@ import { getLabelName } from "zy-react-library/utils";
|
|||
import { PROMISE_TYPE_ENUM, RELEASE_PLATFORM_ENUM } from "~/enumerate/constant";
|
||||
import { NS_COMMITMENT } from "~/enumerate/namespace";
|
||||
|
||||
const { query } = tools.router;
|
||||
function List(props) {
|
||||
const [form] = Form.useForm();
|
||||
const [releasePlatform, setReleasePlatform] = useState(query.releasePlatform || RELEASE_PLATFORM_ENUM[0].bianma);
|
||||
const [query, setQuery] = useUrlState({
|
||||
releasePlatform: RELEASE_PLATFORM_ENUM[1].bianma,
|
||||
}, { navigateMode: "replace" });
|
||||
const [dorpInfo, setDorpInfo] = useState("");
|
||||
const { tableProps, getData } = useTable(props["busPromiseList"], {
|
||||
form,
|
||||
|
|
@ -25,7 +27,7 @@ function List(props) {
|
|||
createTimeE: formData.createTime?.[1],
|
||||
}),
|
||||
params: {
|
||||
releasePlatform,
|
||||
releasePlatform: query.releasePlatform,
|
||||
},
|
||||
});
|
||||
const getDorpInfo = async () => {
|
||||
|
|
@ -86,14 +88,13 @@ function List(props) {
|
|||
<Table
|
||||
headerTitle={(
|
||||
<Tabs
|
||||
activeKey={releasePlatform}
|
||||
activeKey={query.releasePlatform}
|
||||
items={RELEASE_PLATFORM_ENUM.map(item => ({
|
||||
key: item.bianma,
|
||||
label: item.name,
|
||||
}))}
|
||||
onChange={(event) => {
|
||||
query.releasePlatform = event;
|
||||
setReleasePlatform(event);
|
||||
setQuery({ releasePlatform: event });
|
||||
getData();
|
||||
}}
|
||||
/>
|
||||
|
|
@ -120,17 +121,17 @@ function List(props) {
|
|||
dataIndex: "promiseType",
|
||||
render: (_, record) => getLabelName({ list: PROMISE_TYPE_ENUM, status: record.promiseType }),
|
||||
},
|
||||
{ title: "安全承诺级别", dataIndex: "levelName" },
|
||||
{ title: "安全承诺级别", dataIndex: "levelName", hidden: query.releasePlatform === "2" },
|
||||
{
|
||||
title: "下发对象",
|
||||
dataIndex: "releasePlatform",
|
||||
render: (_, record) => getLabelName({ list: RELEASE_PLATFORM_ENUM, status: record.releasePlatform }),
|
||||
},
|
||||
{ title: "签订单位", dataIndex: "corpName" },
|
||||
{ title: "签订单位", dataIndex: "corpName", hidden: query.releasePlatform === "2" },
|
||||
{ title: "适用期限", render: (_, record) => `${record.promiseTermStart}至${record.promiseTermEnd}` },
|
||||
{ title: "涉及岗位", dataIndex: "postNames" },
|
||||
{ title: "承诺人数/涉及人数", dataIndex: "signedCount", render: (_, record) => `已完成${record.signedCount}/${record.peopleNumInvolved}` },
|
||||
{ title: "下发时间", dataIndex: "updateTime" },
|
||||
{ title: "承诺人数/涉及人数", dataIndex: "signedCount", render: (_, record) => `${record.signedCount === record.peopleNumInvolved ? "已" : "未"}完成${record.signedCount}/${record.peopleNumInvolved}` },
|
||||
{ title: "下发时间", dataIndex: "updateTime", render: (_, record) => record.updateTime ? dayjs(record.updateTime).format("YYYY-MM-DD") : "" },
|
||||
{
|
||||
title: "状态",
|
||||
render: (_, record) => getLabelName({
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Form, Space } from "antd";
|
||||
import dayjs from "dayjs";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
|
||||
|
|
@ -26,7 +25,7 @@ function List(props) {
|
|||
<Table
|
||||
columns={[
|
||||
{ title: "分公司名称", dataIndex: "corpName" },
|
||||
{ title: "年份", render: record => record.createTime ? dayjs(record.createTime).format("YYYY") : "" },
|
||||
{ title: "年份", dataIndex: "createTime" },
|
||||
{ title: "安全承诺数", dataIndex: "promiseCount" },
|
||||
{ title: "下发安全承诺人数", dataIndex: "issueCount" },
|
||||
{ title: "签订安全承诺人数", dataIndex: "signCount" },
|
||||
|
|
@ -39,7 +38,7 @@ function List(props) {
|
|||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
props.history.push(`./ListView?id=${record.id}`);
|
||||
props.history.push(`./ListView?id=${record.corpId}`);
|
||||
}}
|
||||
>
|
||||
查看
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Form, Space } from "antd";
|
||||
import dayjs from "dayjs";
|
||||
import HeaderBack from "zy-react-library/components/HeaderBack";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
|
|
@ -21,7 +20,7 @@ function List(props) {
|
|||
return (
|
||||
<div>
|
||||
<HeaderBack title="查看" />
|
||||
<div style={{ padding: 20 }}>
|
||||
<div style={{ padding: "0 20px 20px 20px" }}>
|
||||
<Search
|
||||
form={form}
|
||||
options={[
|
||||
|
|
@ -32,7 +31,7 @@ function List(props) {
|
|||
<Table
|
||||
columns={[
|
||||
{ title: "安全承诺名称", dataIndex: "promiseName" },
|
||||
{ title: "承诺期限", render: (record) => { return record.promiseTermStart ? `${dayjs(record.promiseTermStart).format("YYYY-MM-DD")}至${dayjs(record.promiseTermEnd).format("YYYY-MM-DD")}` : ""; } },
|
||||
{ title: "承诺期限", render: (_, record) => record.promiseTermStart ? `${record.promiseTermStart}至${record.promiseTermEnd}` : "" },
|
||||
{ title: "安全承诺级别", dataIndex: "levelName" },
|
||||
{ title: "涉及人数", dataIndex: "peopleNumInvolved" },
|
||||
{ title: "完成提交人数", dataIndex: "signedCount" },
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ function List(props) {
|
|||
return (
|
||||
<div>
|
||||
<HeaderBack title="查看" />
|
||||
<div style={{ padding: 20 }}>
|
||||
<div style={{ padding: "0 20px 20px 20px" }}>
|
||||
<Table
|
||||
columns={[
|
||||
{ title: "所属部门", dataIndex: "departmentName" },
|
||||
|
|
|
|||
|
|
@ -57,15 +57,15 @@ const DetailModal = (props) => {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div className="promise-content">
|
||||
<h1 className="title">{form.promiseType === 0 ? "安全生产承诺书" : "安全生产责任状"}</h1>
|
||||
|
||||
{form.promiseType === 0 && (
|
||||
<div>
|
||||
{`${form.userName ? `${form.userName + form.postName}:` : ""}` || ""}
|
||||
{`${form.promisePeople ? `${form.promisePeople + form.promisePeoplePost}:` : ""}` || ""}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="promise-content" dangerouslySetInnerHTML={{ __html: form.promiseText }} />
|
||||
<div dangerouslySetInnerHTML={{ __html: form.promiseText }} />
|
||||
|
||||
<div className="text">
|
||||
{
|
||||
|
|
@ -112,6 +112,7 @@ const DetailModal = (props) => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Modal>
|
||||
</>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
line-height: normal;
|
||||
|
||||
.cover {
|
||||
height: 841pt;
|
||||
//height: 842pt;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
display: none;
|
||||
|
|
@ -14,23 +14,11 @@
|
|||
}
|
||||
|
||||
> div {
|
||||
position: absolute;
|
||||
bottom: 100px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.cover {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.promise-content {
|
||||
word-wrap: break-word;
|
||||
word-break: break-word;
|
||||
white-space: pre-wrap;
|
||||
overflow-wrap: break-word;
|
||||
//position: absolute;
|
||||
//bottom: 100px;
|
||||
//left: 50%;
|
||||
//transform: translateX(-50%);
|
||||
margin-top: 629px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -63,3 +51,27 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.dialogContent {
|
||||
font-family: unset;
|
||||
font-size: 20px;
|
||||
|
||||
.cover {
|
||||
display: block;
|
||||
page-break-after: always;
|
||||
}
|
||||
|
||||
.promise-content {
|
||||
word-wrap: break-word;
|
||||
word-break: break-word;
|
||||
white-space: pre-wrap;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-top: 100px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue