From 97e4a681f325d347b99cba107bdc3a0962011e92 Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Sat, 20 Dec 2025 16:12:24 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9:12732=E3=80=8112728?= =?UTF-8?q?=E3=80=8112726=E3=80=8112723=E3=80=8112702=E3=80=8112694?= =?UTF-8?q?=E3=80=8112689=E3=80=8112687=E3=80=8112682=E3=80=8112680?= =?UTF-8?q?=E3=80=8112677=E3=80=8112661=E3=80=8112658=E3=80=8112656?= =?UTF-8?q?=E3=80=8112654=E3=80=8112644=E3=80=8112643=E3=80=8112628?= =?UTF-8?q?=E3=80=8112626=E3=80=8112624=E3=80=8112618=E3=80=8112592?= =?UTF-8?q?=E3=80=8112589=E3=80=8112588=E3=80=8112580=E3=80=8112548?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +- .../BusPromiseTemplate/Add/index.js | 4 +- .../Enterprise/Management/Add/index.js | 12 +- .../Enterprise/Management/List/index.js | 5 +- .../Supervise/BusPromiseTemplate/Add/index.js | 4 +- .../BusPromiseTemplate/List/index.js | 6 +- .../Supervise/Management/Add/index.js | 390 +++++++++--------- .../Supervise/Management/Detail/index.js | 149 +++---- .../Supervise/Management/List/index.js | 23 +- .../Supervise/busPromise/List/index.js | 5 +- .../Supervise/busPromise/ListView/index.js | 5 +- .../Supervise/busPromise/View/index.js | 2 +- .../Supervise/components/DetailModal/index.js | 93 ++--- .../components/DetailModal/index.less | 48 ++- 14 files changed, 395 insertions(+), 354 deletions(-) diff --git a/package.json b/package.json index 8da98ba..96132f8 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/pages/Container/Enterprise/BusPromiseTemplate/Add/index.js b/src/pages/Container/Enterprise/BusPromiseTemplate/Add/index.js index c361bde..0f55947 100644 --- a/src/pages/Container/Enterprise/BusPromiseTemplate/Add/index.js +++ b/src/pages/Container/Enterprise/BusPromiseTemplate/Add/index.js @@ -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: (), required: false, formItemProps: { required: true }, - rules: [{ required: true, message: "请输入安全承诺内容" }], + rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }], }, ]} /> diff --git a/src/pages/Container/Enterprise/Management/Add/index.js b/src/pages/Container/Enterprise/Management/Add/index.js index ddcf4ff..cece5e3 100644 --- a/src/pages/Container/Enterprise/Management/Add/index.js +++ b/src/pages/Container/Enterprise/Management/Add/index.js @@ -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) { ), 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([]); }} /> )} diff --git a/src/pages/Container/Enterprise/Management/List/index.js b/src/pages/Container/Enterprise/Management/List/index.js index 96c1043..0a19f00 100644 --- a/src/pages/Container/Enterprise/Management/List/index.js +++ b/src/pages/Container/Enterprise/Management/List/index.js @@ -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: "操作", diff --git a/src/pages/Container/Supervise/BusPromiseTemplate/Add/index.js b/src/pages/Container/Supervise/BusPromiseTemplate/Add/index.js index f446f03..78fdce0 100644 --- a/src/pages/Container/Supervise/BusPromiseTemplate/Add/index.js +++ b/src/pages/Container/Supervise/BusPromiseTemplate/Add/index.js @@ -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: (), required: false, formItemProps: { required: true }, - rules: [{ required: true, message: "请输入安全承诺内容" }], + rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }], }, ]} /> diff --git a/src/pages/Container/Supervise/BusPromiseTemplate/List/index.js b/src/pages/Container/Supervise/BusPromiseTemplate/List/index.js index cb31528..1d419e6 100644 --- a/src/pages/Container/Supervise/BusPromiseTemplate/List/index.js +++ b/src/pages/Container/Supervise/BusPromiseTemplate/List/index.js @@ -97,12 +97,12 @@ function List(props) { > 查看 - {props.permission("jg-promise-template-disable") && ( + {(props.permission("jg-promise-template-disable") && record.isRegulatory === 1) && ( )} - {props.permission("jg-promise-template-edit") && ( + {(props.permission("jg-promise-template-edit") && record.isRegulatory === 1) && ( )} - {props.permission("jg-promise-template-deletes") && } + {(props.permission("jg-promise-template-deletes") && record.isRegulatory === 1) && } ), }, diff --git a/src/pages/Container/Supervise/Management/Add/index.js b/src/pages/Container/Supervise/Management/Add/index.js index d359530..853bfb2 100644 --- a/src/pages/Container/Supervise/Management/Add/index.js +++ b/src/pages/Container/Supervise/Management/Add/index.js @@ -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: ( { - setchoiceTemplateModalOpen(true); + setChoiceTemplateModalOpen(true); }} > 选择模板 @@ -178,212 +183,221 @@ function Add(props) { ), }, - { name: "promiseTypeName", label: "安全承诺类型", span: 24, componentProps: { disabled: true } }, - { name: "promiseType", label: "安全承诺类型", onlyForLabel: true }, - { - name: "promiseText", - label: "安全承诺内容", - span: 24, - render: (), - required: false, - formItemProps: { required: true }, - rules: [{ required: true, message: "请输入安全承诺内容" }], - }, - { key: "divider2", label: promiseType === 1 ? "受状人" : "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, - { - name: "promisePersons", - span: 24, - render: FORM_ITEM_RENDER_ENUM.FORM_LIST, - formListUniqueProps: { - showAddButton: !(promiseType === 1), - showRemoveButton: !(promiseType === 1), - options: (field, index) => ( - [ - ...(!releasePlatform || releasePlatform === "1" - ? [ + ...(isAlreadyChoiceTemplate + ? [ + { name: "promiseTypeName", label: "安全承诺类型", span: 24, componentProps: { disabled: true } }, + { name: "promiseType", label: "安全承诺类型", onlyForLabel: true }, + { + name: "promiseText", + label: "安全承诺内容", + span: 24, + render: (), + required: false, + formItemProps: { required: true }, + rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }], + }, + { key: "divider2", label: promiseType === 1 ? "受状人" : "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, + { + name: "promisePersons", + span: 24, + render: FORM_ITEM_RENDER_ENUM.FORM_LIST, + formListUniqueProps: { + showAddButton: !(promiseType === 1), + showRemoveButton: !(promiseType === 1), + options: (field, index) => ( + [ + ...(!releasePlatform || releasePlatform === 1 + ? [ + { + name: [field.name, "corpId"], + label: `签订单位${index + 1}`, + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: corpInfoList, + itemsField: { labelKey: "corpName", valueKey: "id" }, + componentProps: { + onChange: (event) => { + form.setFieldValue(["promisePersons", field.name, "corpName"], getLabelName({ + list: corpInfoList, + status: event, + nameKey: "corpName", + idKey: "id", + })); + form.setFieldValue(["promisePersons", field.name, "departmentId"], ""); + form.setFieldValue(["promisePersons", field.name, "departmentName"], ""); + form.setFieldValue(["promisePersons", field.name, "postId"], ""); + form.setFieldValue(["promisePersons", field.name, "postName"], ""); + form.setFieldValue(["promisePersons", field.name, "userName"], ""); + form.setFieldValue(["promisePersons", field.name, "userId"], ""); + }, + }, + }, + { name: [field.name, "corpName"], label: `签订单位${index + 1}名称`, onlyForLabel: true }, + ] + : []), { - name: [field.name, "corpId"], - label: `签订单位${index + 1}`, + name: [field.name, "departmentId"], + label: `部门${index + 1}`, + span: releasePlatform === 2 ? 8 : 12, + labelCol: { span: releasePlatform === 2 ? 6 : 4 }, + render: ( + { + form.setFieldValue(["promisePersons", field.name, "postId"], ""); + form.setFieldValue(["promisePersons", field.name, "postName"], ""); + form.setFieldValue(["promisePersons", field.name, "userName"], ""); + form.setFieldValue(["promisePersons", field.name, "userId"], ""); + if (!departmentId) + return; + getPostList(departmentId, promisePersons?.[field.name]?.corpId, index); + }} + onGetLabel={(label) => { + form.setFieldValue(["promisePersons", field.name, "departmentName"], label); + }} + /> + ), + }, + { name: [field.name, "departmentName"], label: `部门${index + 1}名称`, onlyForLabel: true }, + { + name: [field.name, "postId"], + label: `岗位${index + 1}`, + span: releasePlatform === 2 ? 8 : 12, + labelCol: { span: releasePlatform === 2 ? 6 : 4 }, render: FORM_ITEM_RENDER_ENUM.SELECT, - items: corpInfoList, - itemsField: { labelKey: "corpName", valueKey: "id" }, + items: postList[index] || [], + itemsField: { labelKey: "postName", valueKey: "id" }, componentProps: { onChange: (event) => { - form.setFieldValue(["promisePersons", field.name, "corpName"], getLabelName({ - list: corpInfoList, + form.setFieldValue(["promisePersons", field.name, "postName"], getLabelName({ + list: postList[index], status: event, - nameKey: "corpName", + nameKey: "postName", idKey: "id", })); - form.setFieldValue(["promisePersons", field.name, "departmentId"], ""); - form.setFieldValue(["promisePersons", field.name, "departmentName"], ""); - 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"], ""); }, }, }, - { name: [field.name, "corpName"], label: `签订单位${index + 1}名称`, onlyForLabel: true }, + { name: [field.name, "postName"], label: `岗位${index + 1}名称`, onlyForLabel: true }, + { name: [field.name, "userName"], label: `人员${index + 1}名称`, onlyForLabel: true }, + { + name: [field.name, "userId"], + label: `人员${index + 1}`, + span: releasePlatform === 2 ? 8 : 12, + labelCol: { span: releasePlatform === 2 ? 6 : 4 }, + render: ( + { + form.setFieldValue(["promisePersons", field.name, "userName"], label); + }} + /> + ), + }, ] - : []), - { - name: [field.name, "departmentId"], - label: `部门${index + 1}`, - span: releasePlatform === "2" ? 8 : 12, - labelCol: { span: releasePlatform === "2" ? 6 : 4 }, - render: ( - { - 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 ? "" : []); - if (!departmentId) - return; - getPostList(departmentId, promisePersons?.[field.name]?.corpId, index); - }} - onGetLabel={(label) => { - form.setFieldValue(["promisePersons", field.name, "departmentName"], label); - }} - /> ), }, - { name: [field.name, "departmentName"], label: `部门${index + 1}名称`, onlyForLabel: true }, - { - name: [field.name, "postId"], - label: `岗位${index + 1}`, - 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" }, - componentProps: { - onChange: (event) => { - form.setFieldValue(["promisePersons", field.name, "postName"], getLabelName({ - list: postList[index], - status: event, - nameKey: "postName", - idKey: "id", - })); - form.setFieldValue(["promisePersons", field.name, "userName"], ""); - form.setFieldValue(["promisePersons", field.name, "userId"], promiseType === 1 ? "" : []); - }, - }, - }, - { name: [field.name, "postName"], label: `岗位${index + 1}名称`, onlyForLabel: true }, - { name: [field.name, "userName"], label: `人员${index + 1}名称`, onlyForLabel: true }, - { - name: [field.name, "userId"], - label: `人员${index + 1}`, - span: releasePlatform === "2" ? 8 : 12, - labelCol: { span: releasePlatform === "2" ? 6 : 4 }, - render: ( - { - form.setFieldValue(["promisePersons", field.name, "userName"], label); - }} - mode={(promiseType === 1) ? "tags" : "multiple"} - /> + }, + { key: "divider3", label: promiseType === 1 ? "发状人" : "被承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, + { + name: "promisePeoples", + span: 24, + render: FORM_ITEM_RENDER_ENUM.FORM_LIST, + formListUniqueProps: { + showAddButton: false, + showRemoveButton: false, + options: field => ( + [ + { + name: [field.name, "departmentId"], + label: "部门", + span: 8, + labelCol: { span: 6 }, + render: ( + { + form.setFieldValue(["promisePeoples", field.name, "postId"], ""); + form.setFieldValue(["promisePeoples", field.name, "postName"], ""); + form.setFieldValue(["promisePeoples", field.name, "userName"], ""); + form.setFieldValue(["promisePeoples", field.name, "userId"], ""); + if (!departmentId) + return; + getPostList1(departmentId, promisePeoples?.[field.name]?.corpId); + }} + onGetLabel={(label) => { + form.setFieldValue(["promisePeoples", field.name, "departmentName"], label); + }} + /> + ), + }, + { name: [field.name, "departmentName"], label: "部门名称", onlyForLabel: true }, + { + name: [field.name, "postId"], + label: "岗位", + span: 8, + labelCol: { span: 6 }, + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: postList1, + itemsField: { labelKey: "postName", valueKey: "id" }, + componentProps: { + onChange: (event) => { + 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"], ""); + }, + }, + }, + { name: [field.name, "postName"], label: "岗位名称", onlyForLabel: true }, + { + name: [field.name, "userId"], + label: "人员", + span: 8, + labelCol: { span: 6 }, + render: ( + { + form.setFieldValue(["promisePeoples", field.name, "userName"], label); + }} + /> + ), + }, + { name: [field.name, "userName"], label: "人员名称", onlyForLabel: true }, + ] ), }, - ] - ), - }, - }, - { key: "divider3", label: promiseType === 1 ? "发状人" : "被承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, - { - name: "promisePeoples", - span: 24, - render: FORM_ITEM_RENDER_ENUM.FORM_LIST, - formListUniqueProps: { - showAddButton: false, - showRemoveButton: false, - options: field => ( - [ - { - name: [field.name, "departmentId"], - label: "部门", - span: 8, - labelCol: { span: 6 }, - render: ( - { - form.setFieldValue(["promisePeoples", field.name, "postId"], ""); - form.setFieldValue(["promisePeoples", field.name, "postName"], ""); - form.setFieldValue(["promisePeoples", field.name, "userName"], ""); - form.setFieldValue(["promisePeoples", field.name, "userId"], ""); - if (!departmentId) - return; - getPostList1(departmentId, promisePeoples?.[field.name]?.corpId); - }} - onGetLabel={(label) => { - form.setFieldValue(["promisePeoples", field.name, "departmentName"], label); - }} - /> - ), - }, - { name: [field.name, "departmentName"], label: "部门名称", onlyForLabel: true }, - { - name: [field.name, "postId"], - label: "岗位", - span: 8, - labelCol: { span: 6 }, - render: FORM_ITEM_RENDER_ENUM.SELECT, - items: postList1, - 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, "userName"], ""); - form.setFieldValue(["promisePeoples", field.name, "userId"], ""); - }, - }, - }, - { name: [field.name, "postName"], label: "岗位名称", onlyForLabel: true }, - { - name: [field.name, "userId"], - label: "人员", - span: 8, - labelCol: { span: 6 }, - render: ( - { - form.setFieldValue(["promisePeoples", field.name, "userName"], label); - }} - /> - ), - }, - { name: [field.name, "userName"], label: "人员名称", onlyForLabel: true }, - ] - ), - }, - }, + }, + ] + : [ + { key: "tip", customizeRender: true, span: 24, render: (
请先选择安全承诺模板
) }, + ]), ]} /> {choiceTemplateModalOpen && ( 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); - form.setFieldValue("promisePersons", [{}]); - form.setFieldValue("promisePeoples", [{}]); + if (values.promiseType !== promiseType) { + form.setFieldValue("promisePersons", [{}]); + form.setFieldValue("promisePeoples", [{}]); + } + setIsAlreadyChoiceTemplate(true); setPostList([]); + setPostList1([]); }} /> )} diff --git a/src/pages/Container/Supervise/Management/Detail/index.js b/src/pages/Container/Supervise/Management/Detail/index.js index 202251b..0d29bd5 100644 --- a/src/pages/Container/Supervise/Management/Detail/index.js +++ b/src/pages/Container/Supervise/Management/Detail/index.js @@ -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,85 +20,90 @@ function Detail(props) { const [busPromiseTemplateModalOpen, setBusPromiseTemplateModalOpen] = useState(false); const [id, setId] = useState(""); const [modalUrl, setModalUrl] = useState(""); + useEffect(() => { getData(); }, []); + return (
-
- 基本信息 - - 承诺内容 - ) }, - ]} - /> - {detail.promiseType === 1 ? "受状人" : "承诺人"} - { - const base = [ - { label: `部门${index + 1}`, children: item.departmentName || "-", span: (detail.releasePlatform !== 1 ? 2 : 1) }, - { label: `岗位${index + 1}`, children: item.postName || "-" }, - { label: `人员${index + 1}`, children: item.userName || "-" }, - ]; + +
+ 基本信息 + + 承诺内容 + ) }, + ]} + /> + {detail.promiseType === 1 ? "受状人" : "承诺人"} + { + const base = [ + { label: `部门${index + 1}`, children: item.departmentName || "-" }, + { label: `岗位${index + 1}`, children: item.postName || "-" }, + { label: `人员${index + 1}`, children: item.userName || "-" }, + ]; - // 只有 releasePlatform=1(分公司) 才显示签订单位 - if (detail.releasePlatform === 1) { - base.unshift({ - label: `签订单位${index + 1}`, - children: item.corpName || "-", - }); - } + // 只有 releasePlatform=1(分公司) 才显示签订单位 + if (detail.releasePlatform === 1) { + base.unshift({ + label: `签订单位${index + 1}`, + children: item.corpName || "-", + }); + } - return base; - }), - ]} - /> - {detail.promiseType === 1 ? "发状人" : "被承诺人"} - -
- + return base; + }), + ]} + /> + {detail.promiseType === 1 ? "发状人" : "被承诺人"} + +
+ +
+ {busPromiseTemplateModalOpen && setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
- {busPromiseTemplateModalOpen && setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />} -
+
); } diff --git a/src/pages/Container/Supervise/Management/List/index.js b/src/pages/Container/Supervise/Management/List/index.js index f9208e7..dfbb413 100644 --- a/src/pages/Container/Supervise/Management/List/index.js +++ b/src/pages/Container/Supervise/Management/List/index.js @@ -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) { ({ 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({ diff --git a/src/pages/Container/Supervise/busPromise/List/index.js b/src/pages/Container/Supervise/busPromise/List/index.js index c02414c..b925d2e 100644 --- a/src/pages/Container/Supervise/busPromise/List/index.js +++ b/src/pages/Container/Supervise/busPromise/List/index.js @@ -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) {
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) {
{ -

{form.promiseType === 0 ? "安全生产承诺书" : "安全生产责任状"}

+
+

{form.promiseType === 0 ? "安全生产承诺书" : "安全生产责任状"}

- {form.promiseType === 0 && ( -
- {`${form.userName ? `${form.userName + form.postName}:` : ""}` || ""} -
- )} - -
- -
- { - form.promiseType === 0 - ? ( -
若违反上述承诺和未履行安全生产职责,或发生责任事故的,接受政府或公司事故调查组做出的处罚决定。
- ) - : ( -
若未履行安全生产职责,或发生生产安全事故的,接受公司或政府事故调查组做出的处罚。
- ) - } -
- -
- {form.promiseType === 1 && ( -
- {!form.filepath - ? ( -
- 发状人: - {form.userName} -
- ) - : ( -
- - 发状人: - - -
- )} + {form.promiseType === 0 && ( +
+ {`${form.promisePeople ? `${form.promisePeople + form.promisePeoplePost}:` : ""}` || ""}
)} +
-
-
-
-
{form.promiseType === 0 ? "承诺人(本人签字)" : "受状人"}
- : - {(form.filepath && !form.signList) && } - {form.signList && } +
+ { + form.promiseType === 0 + ? ( +
若违反上述承诺和未履行安全生产职责,或发生责任事故的,接受政府或公司事故调查组做出的处罚决定。
+ ) + : ( +
若未履行安全生产职责,或发生生产安全事故的,接受公司或政府事故调查组做出的处罚。
+ ) + } +
+ +
+ {form.promiseType === 1 && ( +
+ {!form.filepath + ? ( +
+ 发状人: + {form.userName} +
+ ) + : ( +
+ + 发状人: + + +
+ )} +
+ )} + +
+
+
+
{form.promiseType === 0 ? "承诺人(本人签字)" : "受状人"}
+ : + {(form.filepath && !form.signList) && } + {form.signList && } +
diff --git a/src/pages/Container/Supervise/components/DetailModal/index.less b/src/pages/Container/Supervise/components/DetailModal/index.less index 9f006a4..4952d7c 100644 --- a/src/pages/Container/Supervise/components/DetailModal/index.less +++ b/src/pages/Container/Supervise/components/DetailModal/index.less @@ -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; + } + } +} +