diff --git a/jjb.config.js b/jjb.config.js index 98c3749..979bca2 100644 --- a/jjb.config.js +++ b/jjb.config.js @@ -44,7 +44,7 @@ module.exports = { // 开发服务 server: { // 监听端口号 - port: "8081", + port: "8085", // 服务地址 host: "127.0.0.1", // 是否自动打开浏览器 diff --git a/package.json b/package.json index 9297ce4..a8dae4b 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-to-print": "^3.2.0", - "zy-react-library": "^1.0.134" + "zy-react-library": "^1.0.161" }, "devDependencies": { "@antfu/eslint-config": "^5.4.1", diff --git a/src/api/commitment/index.js b/src/api/commitment/index.js index 646f945..bc66408 100644 --- a/src/api/commitment/index.js +++ b/src/api/commitment/index.js @@ -55,14 +55,14 @@ export const busPromiseView = declareRequest( "commitmentLoading", `Get > /promise/busPromise/{id}`, ); -export const updateStatus = declareRequest( - "commitmentLoading", - "Put > @/promise/busPromise/updateStatus", -); export const busPromisePeople = declareRequest( "commitmentLoading", "Post > @/promise/busPromisePeople/list", ); +export const busPromisePeopleAllSign = declareRequest( + "commitmentLoading", + "Get > /promise/busPromise/getSignPromisePeopleInfo/{id}", +); export const busPromisePeopleView = declareRequest( "commitmentLoading", `Get > /promise/busPromisePeople/{id}`, diff --git a/src/enumerate/constant/index.js b/src/enumerate/constant/index.js index f077757..4e41f53 100644 --- a/src/enumerate/constant/index.js +++ b/src/enumerate/constant/index.js @@ -2,4 +2,7 @@ * 全局常量定义 */ +export const PROMISE_TYPE_ENUM = [{ name: "承诺书", bianma: "0" }, { name: "责任状", bianma: "1" }]; +export const RELEASE_PLATFORM_ENUM = [{ name: "分公司", bianma: "1" }, { name: "股份内部", bianma: "2" }]; + export {}; diff --git a/src/pages/Container/Enterprise/BusPromiseTemplate/Add/index.js b/src/pages/Container/Enterprise/BusPromiseTemplate/Add/index.js index 6926d3b..aa4c8b1 100644 --- a/src/pages/Container/Enterprise/BusPromiseTemplate/Add/index.js +++ b/src/pages/Container/Enterprise/BusPromiseTemplate/Add/index.js @@ -1,11 +1,13 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime"; -import { Button, Col, Form, Input, message, Row } from "antd"; +import { Form, message } from "antd"; import { useEffect } from "react"; +import Editor from "zy-react-library/components/Editor"; import FormBuilder from "zy-react-library/components/FormBuilder"; import HeaderBack from "zy-react-library/components/HeaderBack"; import DictionarySelect from "zy-react-library/components/Select/Dictionary"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; +import { PROMISE_TYPE_ENUM } from "~/enumerate/constant"; import { NS_COMMITMENT } from "~/enumerate/namespace"; function Add(props) { @@ -14,12 +16,7 @@ function Add(props) { const getData = async () => { if (query.id) { const { data } = await props["busPromiseTemplateView"]({ id: query.id }); - const values = { - ...data, - }; - form.setFieldsValue({ - ...values, - }); + form.setFieldsValue(data); } }; useEffect(() => { @@ -45,64 +42,23 @@ function Add(props) { form={form} values={{ templateDetails: [{}], - promiseType: 0, + promiseType: "0", }} onFinish={onSubmit} options={[ - { name: "promiseName", label: "模板名称", span: 24 }, + { name: "promiseName", label: "安全承诺模板名称", span: 24 }, { name: "promiseType", - label: "承诺书类型", + label: "安全承诺类型", render: FORM_ITEM_RENDER_ENUM.SELECT, - items: [ - { name: "承诺书", bianma: 0 }, - { name: "责任书", bianma: 1 }, - ], + items: PROMISE_TYPE_ENUM, componentProps: { disabled: true, }, }, - { name: "level", label: "承诺书级别", render: ( form.setFieldValue("levelName", label)} />) }, - { name: "levelName", label: "承诺书级别", onlyForLabel: true }, - { name: "promiseText", label: "正文", span: 24, render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, - { key: "templateDetails", span: 24, customizeRender: true, render: ( - <> - - {(fields, { add, remove }) => ( - <> - {fields.map((field, index) => ( - - - -
- - - - { - index >= 1 - ? - : - } -
-
- - -
- ))} - - )} -
- - ) }, - + { name: "level", label: "安全承诺级别", render: ( form.setFieldValue("levelName", label)} />) }, + { name: "levelName", label: "安全承诺级别名称", onlyForLabel: true }, + { name: "promiseText", label: "承诺内容", span: 24, render: }, ]} /> diff --git a/src/pages/Container/Enterprise/BusPromiseTemplate/List/index.js b/src/pages/Container/Enterprise/BusPromiseTemplate/List/index.js index e7243e4..309a6ac 100644 --- a/src/pages/Container/Enterprise/BusPromiseTemplate/List/index.js +++ b/src/pages/Container/Enterprise/BusPromiseTemplate/List/index.js @@ -1,3 +1,4 @@ +import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Button, Form, message, Modal, Space } from "antd"; import { useState } from "react"; @@ -36,27 +37,29 @@ function List(props) { labelCol={{ span: 8 }} form={form} options={[ - { name: "hiddenDesc", label: "模板名称" }, + { name: "likePromiseName", label: "安全承诺模板名称" }, ]} onFinish={getData} /> ( <> - + {props.permission("qy-promise-template-add") && ( + + )} )} columns={[ - { title: "模板名称", dataIndex: "promiseName" }, - { title: "承诺书级别", dataIndex: "levelName" }, + { title: "安全承诺模板名称", dataIndex: "promiseName" }, + { title: "安全承诺级别", dataIndex: "levelName" }, { title: "添加时间", dataIndex: "createTime" }, { title: "操作", @@ -74,17 +77,21 @@ function List(props) { > 查看 - - + {props.permission("qy-promise-template-disable") && ( + + )} + {props.permission("qy-promise-template-edit") && ( + + )} ), }, @@ -96,4 +103,4 @@ function List(props) { ); } -export default Connect([NS_COMMITMENT], true)(List); +export default Connect([NS_COMMITMENT], true)(Permission(List)); diff --git a/src/pages/Container/Enterprise/Components/DetailModal/index.js b/src/pages/Container/Enterprise/Components/DetailModal/index.js index a9f0061..5e0b0d8 100644 --- a/src/pages/Container/Enterprise/Components/DetailModal/index.js +++ b/src/pages/Container/Enterprise/Components/DetailModal/index.js @@ -1,125 +1,9 @@ -import { Connect } from "@cqsjjb/jjb-dva-runtime"; -import { Image, Modal } from "antd"; -import dayjs from "dayjs"; -import { useEffect, useRef, useState } from "react"; -import { useReactToPrint } from "react-to-print"; -import { getFileUrl } from "zy-react-library/utils"; -import { NS_COMMITMENT } from "~/enumerate/namespace"; -// Info.jsx -import "./index.less"; +import Info from "../../../Supervise/components/DetailModal"; -const Info = (props) => { - const [form, setForm] = useState({}); - const getData = async () => { - if (props.id) { - const { data } = await props[props.modalUrl]({ id: props.id }); - setForm(data); - } - }; - useEffect(() => { - props.id && getData(); - }, []); - const contentRef = useRef(null); - const handlePrint = useReactToPrint({ - contentRef, - pageStyle: `@page { - margin: 0mm; - } - @media print { - body { - margin: 10px; - padding: 10px; - } - } - `, - documentTitle: "", - }); +const DetailModal = (props) => { return ( - <> - -
-
-

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

-
-
河 北 港 口 集 团 有 限 公 司
-
- ( - {form.createTime ? dayjs(form.createTime).format("YYYY年") : ""} - ) -
-
-
- -

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

- - {form.promiseType === 0 && ( -
- {`${form.userName}:` || ""} -
- )} - -
{form.promiseText}
- -
- {form.templateDetails?.map((item, index) => ( -
{item.collateral}
- ))} -
- -
- {form.promiseType === 0 - ? ( -
若违反上述承诺和未履行安全生产职责,或发生责任事故的,接受政府或公司事故调查组做出的处罚决定。
- ) - : ( -
若未履行安全生产职责,或发生生产安全事故的,接受公司或政府事故调查组做出的处罚。
- )} -
- -
- {form.promiseType === 1 && ( -
- {!form.filepath - ? ( -
- 发状人: - {form.userName} -
- ) - : ( -
- : - - 发状人: - - -
- )} -
- )} - -
-
-
- - {form.promiseType === 0 ? "承诺人(本人签字)" : "受状人"} - : - -
-
-
-
-
-
- - + ); }; -export default Connect([NS_COMMITMENT], true)(Info); + +export default DetailModal; diff --git a/src/pages/Container/Enterprise/Components/DetailModal/index.less b/src/pages/Container/Enterprise/Components/DetailModal/index.less deleted file mode 100644 index 1062295..0000000 --- a/src/pages/Container/Enterprise/Components/DetailModal/index.less +++ /dev/null @@ -1,72 +0,0 @@ -.dialogContent { - padding: 50px; - font-size: 16px; - - .cover { - height: 841pt; - text-align: center; - position: relative; - display: none; - - h1 { - padding-top: 300px; - } - - > div { - position: absolute; - bottom: 100px; - left: 50%; - transform: translateX(-50%); - } - } - - @media print { - .cover { - display: block; - } - } - - .title { - text-align: center; - } - - .text { - text-indent: 35px; - line-height: 26px; - letter-spacing: 2px; - text-align: justify; - } - - .collateral { - text-indent: 35px; - line-height: 26px; - letter-spacing: 2px; - text-align: justify; - } - - .footer { - text-indent: 35px; - margin-top: 30px; - display: flex; - justify-content: space-between; - } - - .respondent, - .hairdresser { - .promiser { - display: flex; - align-items: flex-end; - - img { - margin-left: 30px; - width: 200px; - height: 100px; - } - } - - .time { - margin-top: 30px; - margin-left: 65px; - } - } -} diff --git a/src/pages/Container/Enterprise/Management/Add/index.js b/src/pages/Container/Enterprise/Management/Add/index.js index 7d474a4..534e9ec 100644 --- a/src/pages/Container/Enterprise/Management/Add/index.js +++ b/src/pages/Container/Enterprise/Management/Add/index.js @@ -1,8 +1,9 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime"; -import { Button, Col, Divider, Form, Input, message, Modal, Row, Select, Space } from "antd"; +import { Button, Form, message, Modal, Space } from "antd"; import dayjs from "dayjs"; import { cloneDeep } from "lodash-es"; import { useEffect, useState } from "react"; +import Editor from "zy-react-library/components/Editor"; import FormBuilder from "zy-react-library/components/FormBuilder"; import HeaderBack from "zy-react-library/components/HeaderBack"; import Search from "zy-react-library/components/Search"; @@ -13,32 +14,34 @@ 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 useTable from "zy-react-library/hooks/useTable"; -import { getLabelName } from "zy-react-library/utils"; +import { getLabelName, validatorEndTime } from "zy-react-library/utils"; +import { PROMISE_TYPE_ENUM } from "~/enumerate/constant"; import { NS_COMMITMENT } from "~/enumerate/namespace"; -const typeList = [{ name: "承诺书", bianma: 0 }, { name: "责任书", bianma: 1 }]; -const getTypeName = (value) => { - return typeList.find(item => item.bianma === value)?.name || ""; -}; - function Add(props) { const query = useGetUrlQuery(); const [form] = Form.useForm(); const promisePersons = Form.useWatch("promisePersons", form); - const promiseType = Form.useWatch("promiseType", form); - const [basicInfo, setBasicInfo] = useState([]); + const promiseTermStart = Form.useWatch("promiseTermStart", form); + const passivePostId = Form.useWatch("passivePostId", form); + const passiveDepartmentId = Form.useWatch("passiveDepartmentId", form); + + const [postList, setPostList] = useState([]); + const [postList1, setPostList1] = useState([]); const [choiceTemplateModalOpen, setchoiceTemplateModalOpen] = useState(false); - const getPostList = async (departmentId, corpId, index) => { - // 请求后台岗位接口 + const getPostList = async (departmentId, index) => { const { data } = await props["jobInfo"]({ departmentId, corpFlag: 1 }); - // 将岗位列表写入 map - setBasicInfo((prevBasicInfo) => { - const newBasicInfo = cloneDeep(prevBasicInfo); - newBasicInfo[index] = data; - return newBasicInfo; + setPostList((prevPostList) => { + const newPostList = cloneDeep(prevPostList); + newPostList[index] = data; + return newPostList; }); }; + const getPostList1 = async (departmentId) => { + const { data } = await props["jobInfo"]({ departmentId, corpFlag: 1 }); + setPostList1(data); + }; const getData = async () => { if (query.id) { const { data } = await props["busPromiseView"]({ id: query.id }); @@ -50,7 +53,7 @@ function Add(props) { const values = { ...data, promisePersons: promisePeopleBack, - promiseTypeName: getTypeName(data.promiseType), + promiseTypeName: getLabelName({ list: PROMISE_TYPE_ENUM, status: data.promiseType }), passiveDepartmentId: data.promisePeople.departmentId, passiveDepartmentName: data.promisePeople.departmentName, passivePostId: data.promisePeople.postId, @@ -62,7 +65,7 @@ function Add(props) { ...values, }); for (let i = 0; i < values.promisePersons.length; i++) { - await getPostList(values.promisePersons[i].departmentId, values.promisePersons[i].corpId, i); + await getPostList(values.promisePersons[i].departmentId, i); } } }; @@ -93,6 +96,7 @@ function Add(props) { id: query.id, promiseId: query.promiseId, promisePeoples: promiseAll, + peopleNumInvolved: values.promisePersons.length, }); if (success) { message.success("操作成功"); @@ -109,14 +113,13 @@ function Add(props) { values={{ promisePeoples: [{}], // 被承诺人 promisePersons: [{}], // 承诺人 - promiseDetails: [{}], // 模板 }} onFinish={onSubmit} options={[ - { name: "promiseName", label: "承诺书名称" }, + { name: "promiseName", label: "安全承诺名称" }, { name: "level", - label: "承诺书级别", + label: "安全承诺级别", render: ( ), }, - { name: "levelName", label: "承诺书级别名称", onlyForLabel: true }, + { name: "levelName", label: "安全承诺级别名称", onlyForLabel: true }, { name: "promiseTermStart", label: "适用期限开始", render: FORM_ITEM_RENDER_ENUM.DATE }, { name: "promiseTermEnd", label: "适用期限结束", render: FORM_ITEM_RENDER_ENUM.DATE, - rules: [{ + rules: [validatorEndTime(promiseTermStart), { validator: (_, value) => { - const timeStart = form.getFieldValue("promiseTermStart"); - if (value && timeStart && value < timeStart) { - return Promise.reject("结束时间不能早于开始时间"); - } - else { - return Promise.resolve(); - } - }, - }, { - validator: (_, value) => { - const timeStart = form.getFieldValue("promiseTermStart"); - if (value && timeStart) { - const startYear = dayjs(timeStart).year(); + if (value && promiseTermStart) { + const startYear = dayjs(promiseTermStart).year(); const endYear = dayjs(value).year(); if (startYear !== endYear) { @@ -155,321 +147,187 @@ function Add(props) { }, }], }, + { key: "divider1", label: "承诺内容", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, { - key: "promiseDetails", - span: 24, + key: "commitmentContentButton", customizeRender: true, + span: 24, render: ( - <> - 承诺书内容 -
- -
- -
- -
- - - - - - - - - - - - - - - {(fields, { add, remove }) => ( - <> - {fields.map((field, index) => ( - - - -
- - - - { - index >= 1 - ? - : ( - - ) - } -
-
- - - - - ))} - - )} - - - - {choiceTemplateModalOpen && ( - setchoiceTemplateModalOpen(false)} - data={{ id: query.id, hiddenId: query.hiddenId }} - /> - )} - +
+ +
), }, + { name: "promiseTypeName", label: "安全承诺类型", onlyForLabel: true }, + { name: "promiseType", label: "安全承诺类型", onlyForLabel: true }, + { name: "promiseText", label: "安全承诺内容", span: 24, render: () }, + { key: "divider2", label: "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, { - key: "promisePersons", + name: "promisePersons", span: 24, - customizeRender: true, + render: FORM_ITEM_RENDER_ENUM.FORM_LIST, + formListUniqueProps: { + options: (field, index) => ( + [ + { + name: [field.name, "departmentId"], + span: 8, + labelCol: { span: 6 }, + label: `部门${index + 1}`, + 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, index); + }} + onGetLabel={(label) => { + form.setFieldValue(["promisePersons", field.name, "departmentName"], label); + }} + /> + ), + }, + { name: [field.name, "departmentName"], label: `部门${index + 1}名称`, onlyForLabel: true }, + { + name: [field.name, "postId"], + span: 8, + labelCol: { span: 6 }, + label: `岗位${index + 1}`, + 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"], []); + }, + }, + }, + { name: [field.name, "postName"], label: `岗位${index + 1}名称`, onlyForLabel: true }, + { name: [field.name, "userName"], label: `人员${index + 1}名称`, onlyForLabel: true }, + { + name: [field.name, "userId"], + span: 8, + labelCol: { span: 6 }, + label: `人员${index + 1}`, + render: ( + { + form.setFieldValue(["promisePersons", field.name, "userName"], label); + }} + mode="multiple" + /> + ), + }, + ] + ), + }, + }, + { key: "divider3", label: "被承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, + { + name: "passiveDepartmentId", + label: "部门", + span: 8, + labelCol: { span: 6 }, render: ( - <> - - {promiseType === 1 || promiseType === "责任书" - ? "受状人" - : "承诺人"} - + { + form.setFieldValue("passivePostName", ""); + form.setFieldValue("passivePostId", []); + form.setFieldValue("passiveUserName", ""); + form.setFieldValue("passiveUserId", ""); - - {(fields, { add, remove }) => ( - <> - {fields.map((field, index) => ( - -
- - { - 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); - }} - /> - - - - - - - - - - - - - - - - - { - form.setFieldValue(["promisePersons", field.name, "userName"], label); - }} - mode={(promiseType === 1 || promiseType === "责任书") ? "tags" : "multiple"} - /> - - - - - - { - promiseType === 1 || promiseType === "责任书" - ? "" - : (index >= 1 - ? - : ) - } - - - ))} - - )} - - + if (!departmentId) + return; + getPostList1(departmentId); + }} + onGetLabel={(label) => { + form.setFieldValue("passiveDepartmentName", label); + }} + /> ), }, - { key: "passive", label: (promiseType === 1 || promiseType === "责任书") ? "发状人" : "被承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, - { name: "passiveDepartmentId", label: "部门", span: 8, render: ( - { - // 清空岗位和人员 - form.setFieldValue("passivePostName", ""); - form.setFieldValue("passivePostId", []); - form.setFieldValue("passiveUserName", ""); - form.setFieldValue("passiveUserId", []); - - if (!departmentId) - return; - getPostList(departmentId, "", 0); - }} - onGetLabel={(label) => { - form.setFieldValue("passiveDepartmentName", label); - }} - /> - ) }, { name: "passiveDepartmentName", label: "部门名称", onlyForLabel: true }, - { name: "passivePostId", label: "岗位", span: 8, render: - ( - <> - - - ) }, + { + name: "passivePostId", + label: "岗位", + span: 8, + labelCol: { span: 6 }, + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: postList1, + itemsField: { labelKey: "postName", valueKey: "id" }, + componentProps: { + onChange: (event) => { + form.setFieldValue("passivePostName", getLabelName({ list: postList1, status: event, nameKey: "postName", idKey: "id" })); + form.setFieldValue("passiveUserName", ""); + form.setFieldValue("passiveUserId", ""); + }, + }, + }, { name: "passivePostName", label: "岗位名称", onlyForLabel: true }, - { name: "passiveUserId", label: "人员", span: 8, render: ( - { - form.setFieldValue("passiveUserName", label); - }} - onChange={(value) => { - form.setFieldValue("passiveUserId", value); - }} - // mode="multiple" - /> - ) }, + { + name: "passiveUserId", + label: "人员", + span: 8, + labelCol: { span: 6 }, + render: ( + { + form.setFieldValue("passiveUserName", label); + }} + /> + ), + }, { name: "passiveUserName", label: "人员名称", onlyForLabel: true }, ]} /> + {choiceTemplateModalOpen && ( + 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("passiveDepartmentName", ""); + form.setFieldValue("passiveDepartmentId", ""); + form.setFieldValue("passivePostName", ""); + form.setFieldValue("passivePostId", ""); + form.setFieldValue("passiveUserName", ""); + form.setFieldValue("passiveUserId", ""); + }} + /> + )} ); } const ChoiceTemplateModalComponent = (props) => { - const parentForm = props.parentForm; // 使用外层表单 - const [form] = Form.useForm(); // ← 只给搜索用,不影响主页面 + const [form] = Form.useForm(); const { tableProps, getData } = useTable(props["busPromiseTemplateList"], { form, }); @@ -477,28 +335,29 @@ const ChoiceTemplateModalComponent = (props) => { return ( props.onCancel()}>关闭, ]} - onCancel={props.onCancel} >
getLabelName({ list: typeList, status: record.promiseType }), + render: (_, record) => getLabelName({ list: PROMISE_TYPE_ENUM, status: record.promiseType }), }, { title: "操作", @@ -509,26 +368,7 @@ const ChoiceTemplateModalComponent = (props) => {
( <> - + {props.permission("qy-promise-management-add") && ( + + )} )} columns={[ - { title: "承诺书名称", dataIndex: "promiseName" }, - { title: "承诺书级别", dataIndex: "levelName" }, + { title: "安全承诺名称", dataIndex: "promiseName" }, + { title: "安全承诺级别", dataIndex: "levelName" }, { title: "适用期限", render: (_, record) => `${record.promiseTermStart}至${record.promiseTermEnd}` }, - { title: "下发对象", dataIndex: "releasePlatform", render: (_, record) => getLabelName({ list: [[{ name: "分公司", bianma: 1 }, { name: "股份内部", bianma: 2 }]], status: record.releasePlatform }) }, { title: "涉及部门", dataIndex: "departmentNames" }, { title: "涉及岗位", dataIndex: "postNames" }, - { title: "承诺人数/涉及人数", dataIndex: "signedCount" }, + { title: "承诺人数/涉及人数", dataIndex: "signedCount", render: (_, record) => `已完成${record.signedCount}/${record.peopleNumInvolved}` }, { title: "下发时间", dataIndex: "updateTime" }, - { title: "状态", render: (_, record) => getLabelName({ list: [{ name: "启用", bianma: "0" }, { name: "禁用", bianma: "1" }], status: record.state }) }, + { title: "状态", render: (_, record) => getLabelName({ list: [{ name: "已下发", bianma: "0" }, { name: "暂存", bianma: "1" }], status: record.state }) }, { title: "操作", - width: 200, + width: 220, fixed: "right", render: (_, record) => ( @@ -87,28 +94,32 @@ function List(props) { > 查看 - + {props.permission("qy-promise-management-issue") && ( + + + + )} + {props.permission("qy-promise-management-edit") && ( - + )} -
( + + + + )} columns={[ { title: "部门", dataIndex: "departmentName" }, { title: "岗位", dataIndex: "postName" }, diff --git a/src/pages/Container/Supervise/BusPromiseTemplate/Add/index.js b/src/pages/Container/Supervise/BusPromiseTemplate/Add/index.js index ebf220c..56e863f 100644 --- a/src/pages/Container/Supervise/BusPromiseTemplate/Add/index.js +++ b/src/pages/Container/Supervise/BusPromiseTemplate/Add/index.js @@ -1,11 +1,13 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime"; -import { Button, Col, Form, Input, message, Row } from "antd"; +import { Form, message } from "antd"; import { useEffect } from "react"; +import Editor from "zy-react-library/components/Editor"; import FormBuilder from "zy-react-library/components/FormBuilder"; import HeaderBack from "zy-react-library/components/HeaderBack"; import DictionarySelect from "zy-react-library/components/Select/Dictionary"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; +import { PROMISE_TYPE_ENUM } from "~/enumerate/constant"; import { NS_COMMITMENT } from "~/enumerate/namespace"; function Add(props) { @@ -43,54 +45,13 @@ function Add(props) {
form.setFieldValue("levelName", label)} />) }, - { name: "levelName", label: "承诺书级别", onlyForLabel: true }, - { name: "promiseText", label: "正文", span: 24, render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, - { key: "templateDetails", span: 24, customizeRender: true, render: ( - <> - - {(fields, { add, remove }) => ( - <> - {fields.map((field, index) => ( - -
- -
- - - - { - index >= 1 - ? - : - } -
-
- - - - ))} - - )} - - - ) }, - + { name: "promiseName", label: "安全承诺模板名称", span: 24 }, + { name: "promiseType", label: "安全承诺类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PROMISE_TYPE_ENUM }, + { name: "level", label: "安全承诺级别", render: ( form.setFieldValue("levelName", label)} />) }, + { name: "levelName", label: "安全承诺级别名称", onlyForLabel: true }, + { name: "promiseText", label: "承诺内容", span: 24, render: () }, ]} /> diff --git a/src/pages/Container/Supervise/BusPromiseTemplate/List/index.js b/src/pages/Container/Supervise/BusPromiseTemplate/List/index.js index 87815dc..caf2e89 100644 --- a/src/pages/Container/Supervise/BusPromiseTemplate/List/index.js +++ b/src/pages/Container/Supervise/BusPromiseTemplate/List/index.js @@ -1,3 +1,4 @@ +import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { Button, Form, message, Modal, Space } from "antd"; import { useState } from "react"; @@ -7,11 +8,10 @@ import Table from "zy-react-library/components/Table"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import useTable from "zy-react-library/hooks/useTable"; import { getLabelName } from "zy-react-library/utils"; +import { PROMISE_TYPE_ENUM } from "~/enumerate/constant"; import { NS_COMMITMENT } from "~/enumerate/namespace"; import DetailModal from "~/pages/Container/Supervise/Components/DetailModal"; -const typeList = [{ name: "承诺书", bianma: 0 }, { name: "责任书", bianma: 1 }]; - function List(props) { const [form] = Form.useForm(); const { tableProps, getData } = useTable(props["busPromiseTemplateList"], { @@ -53,30 +53,32 @@ function List(props) { labelCol={{ span: 8 }} form={form} options={[ - { name: "hiddenDesc", label: "模板名称" }, - { name: "promiseType", label: "承诺书类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: typeList }, + { name: "likePromiseName", label: "安全承诺模板名称" }, + { name: "promiseType", label: "安全承诺类型", render: FORM_ITEM_RENDER_ENUM.SELECT, items: PROMISE_TYPE_ENUM }, ]} onFinish={getData} />
( <> - + {props.permission("jg-promise-template-add") && ( + + )} )} columns={[ { title: "公司名称", dataIndex: "corpName" }, - { title: "模板名称", dataIndex: "promiseName" }, - { title: "承诺书级别", dataIndex: "levelName" }, - { title: "类型", dataIndex: "promiseType", render: (_, record) => getLabelName({ list: typeList, status: record.promiseType }) }, + { title: "安全承诺模板名称", dataIndex: "promiseName" }, + { title: "安全承诺级别", dataIndex: "levelName" }, + { title: "安全承诺类型", dataIndex: "promiseType", render: (_, record) => getLabelName({ list: PROMISE_TYPE_ENUM, status: record.promiseType }) }, { title: "添加时间", dataIndex: "createTime" }, { title: "状态", render: (_, record) => getLabelName({ list: [{ name: "启用", bianma: "0" }, { name: "禁用", bianma: "1" }], status: record.state }) }, { @@ -95,19 +97,22 @@ function List(props) { > 查看 - - - - + {props.permission("jg-promise-template-disable") && ( + + )} + {props.permission("jg-promise-template-edit") && ( + + )} + {props.permission("jg-promise-template-deletes") && } ), }, @@ -119,4 +124,4 @@ function List(props) { ); } -export default Connect([NS_COMMITMENT], true)(List); +export default Connect([NS_COMMITMENT], true)(Permission(List)); diff --git a/src/pages/Container/Supervise/Management/Add/index.js b/src/pages/Container/Supervise/Management/Add/index.js index 331924b..f4012a1 100644 --- a/src/pages/Container/Supervise/Management/Add/index.js +++ b/src/pages/Container/Supervise/Management/Add/index.js @@ -1,8 +1,9 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime"; -import { Button, Col, Divider, Form, Input, message, Modal, Row, Select, Space } from "antd"; +import { Button, Form, message, Modal, Space } from "antd"; import dayjs from "dayjs"; import { cloneDeep } from "lodash-es"; import { useEffect, useState } from "react"; +import Editor from "zy-react-library/components/Editor"; import FormBuilder from "zy-react-library/components/FormBuilder"; import HeaderBack from "zy-react-library/components/HeaderBack"; import Search from "zy-react-library/components/Search"; @@ -13,14 +14,10 @@ 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 useTable from "zy-react-library/hooks/useTable"; -import { getLabelName } from "zy-react-library/utils"; +import { getLabelName, validatorEndTime } from "zy-react-library/utils"; +import { PROMISE_TYPE_ENUM, RELEASE_PLATFORM_ENUM } from "~/enumerate/constant"; import { NS_COMMITMENT } from "~/enumerate/namespace"; -const typeList = [{ name: "承诺书", bianma: 0 }, { name: "责任书", bianma: 1 }]; -const getTypeName = (value) => { - return typeList.find(item => item.bianma === value)?.name || ""; -}; - function Add(props) { const query = useGetUrlQuery(); const [form] = Form.useForm(); @@ -28,25 +25,28 @@ function Add(props) { const promisePersons = Form.useWatch("promisePersons", form); const promiseType = Form.useWatch("promiseType", form); const releasePlatform = Form.useWatch("releasePlatform", form); - const [dorpInfo, setDorpInfo] = useState(""); - const [basicInfo, setBasicInfo] = useState([]); + const promiseTermStart = Form.useWatch("promiseTermStart", form); + + const [corpInfoList, setCorpInfoList] = useState([]); + const [postList, setPostList] = useState([]); + const [postList1, setPostList1] = useState([]); const [choiceTemplateModalOpen, setchoiceTemplateModalOpen] = useState(false); - const [promisePersonsItem, setPromisePersonsItem] = useState(true); - const [formWidth, setFormWidth] = useState(24); const getPostList = async (departmentId, corpId, index) => { - // 请求后台岗位接口 const { data } = await props["jobInfo"]({ departmentId, corpinfoId: corpId, corpFlag: 1 }); - - // 将岗位列表写入 map - setBasicInfo((prevBasicInfo) => { - const newBasicInfo = cloneDeep(prevBasicInfo); - newBasicInfo[index] = data; - return newBasicInfo; + setPostList((prevPostList) => { + const newPostList = cloneDeep(prevPostList); + newPostList[index] = data; + return newPostList; }); }; + const getPostList1 = async (departmentId, corpId) => { + const { data } = await props["jobInfo"]({ departmentId, corpinfoId: corpId, corpFlag: 1 }); + setPostList1(data); + }; const getData = async () => { - setDorpInfo(await props["corpInfo"]({ enterpriseType: 2, pageSize: 1000, pageIndex: 1 })); + const { data: corpInfoList } = await props["corpInfo"]({ enterpriseType: 2, pageSize: 1000, pageIndex: 1 }); + setCorpInfoList(corpInfoList); if (query.id) { const { data } = await props["busPromiseView"]({ id: query.id }); const promisePeopleBack = data.promisePeopleBack.map(item => ({ @@ -57,17 +57,18 @@ function Add(props) { const values = { ...data, promisePeoples: [data.promisePeople], - promiseTypeName: getTypeName(data.promiseType), + promiseTypeName: getLabelName({ list: PROMISE_TYPE_ENUM, status: data.promiseType }), promisePersons: promisePeopleBack, }; - setFormWidth(values.releasePlatform === 1 ? 12 : 24); - setPromisePersonsItem(values.releasePlatform === 1); form.setFieldsValue({ ...values, }); for (let i = 0; i < values.promisePersons.length; i++) { await getPostList(values.promisePersons[i].departmentId, values.promisePersons[i].corpId, i); } + for (let i = 0; i < values.promisePeoples.length; i++) { + await getPostList1(values.promisePeoples[i].departmentId, values.promisePeoples[i].corpId); + } } }; useEffect(() => { @@ -84,6 +85,7 @@ function Add(props) { userName: item.userName.join(","), userId: item.userId.join(","), isPromisePeople: 0, + peopleNumInvolved: values.promisePersons.length, })); const promiseAll = [...peoples, ...persons]; @@ -108,7 +110,6 @@ function Add(props) { values={{ promisePeoples: [{}], // 被承诺人 promisePersons: [{}], // 承诺人 - promiseDetails: [{}], // 模板 }} onFinish={onSubmit} options={[ @@ -116,57 +117,38 @@ function Add(props) { { name: "releasePlatform", label: "下发对象", - span: formWidth, + span: releasePlatform === "1" ? 12 : 24, render: FORM_ITEM_RENDER_ENUM.SELECT, - items: [{ name: "分公司", bianma: 1 }, { name: "股份内部", bianma: 2 }], + items: RELEASE_PLATFORM_ENUM, componentProps: { - onChange: (value) => { - setPromisePersonsItem(value === 1); - setFormWidth(value === 1 ? 12 : 24); - const promisePersonsList = form.getFieldValue("promisePersons"); - promisePersonsList.forEach((item, index) => { - form.setFieldValue(["promisePersons", index], ""); - form.setFieldValue("level", undefined); - form.setFieldValue("levelName", ""); - }); + onChange: () => { + form.setFieldValue("promisePersons", [{}]); + form.setFieldValue("levelName", ""); }, }, }, - ...(releasePlatform === 1 - ? [ - { - name: "level", - label: "承诺书级别", - render: ( - form.setFieldValue("levelName", label)} - /> - ), - }, - { name: "levelName", label: "承诺书级别名称", onlyForLabel: true }, - ] - : []), + { + name: "level", + label: "承诺书级别", + dependencies: ["releasePlatform"], + hidden: formValues => !(formValues.releasePlatform === "1"), + render: ( + form.setFieldValue("levelName", label)} + /> + ), + }, + { name: "levelName", label: "承诺书级别名称", onlyForLabel: true }, { name: "promiseTermStart", label: "适用期限开始", render: FORM_ITEM_RENDER_ENUM.DATE }, { name: "promiseTermEnd", label: "适用期限结束", render: FORM_ITEM_RENDER_ENUM.DATE, - rules: [{ + rules: [validatorEndTime(promiseTermStart), { validator: (_, value) => { - const timeStart = form.getFieldValue("promiseTermStart"); - if (value && timeStart && value < timeStart) { - return Promise.reject("结束时间不能早于开始时间"); - } - else { - return Promise.resolve(); - } - }, - }, { - validator: (_, value) => { - const timeStart = form.getFieldValue("promiseTermStart"); - if (value && timeStart) { - const startYear = dayjs(timeStart).year(); + if (value && promiseTermStart) { + const startYear = dayjs(promiseTermStart).year(); const endYear = dayjs(value).year(); if (startYear !== endYear) { @@ -177,452 +159,264 @@ function Add(props) { }, }], }, + { key: "divider1", label: "承诺内容", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, { - key: "promiseDetails", - span: 24, + key: "commitmentContentButton", customizeRender: true, + span: 24, render: ( - <> - 承诺书内容 -
- -
- -
- -
- - - - - - - - - - - - - - - {(fields, { add, remove }) => ( - <> - {fields.map((field, index) => ( - - - -
- - - - { - index >= 1 - ? - : ( - - ) - } -
-
- - - - - ))} - - )} - - - - {choiceTemplateModalOpen && ( - setchoiceTemplateModalOpen(false)} - data={{ id: query.id, hiddenId: query.hiddenId }} - /> - )} - +
+ +
), }, + { name: "promiseTypeName", label: "安全承诺类型", span: 24, componentProps: { disabled: true } }, + { name: "promiseType", label: "安全承诺类型", onlyForLabel: true }, + { name: "promiseText", label: "安全承诺内容", span: 24, render: () }, + { key: "divider2", label: promiseType === 1 ? "受状人" : "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER }, { - key: "promisePersons", + name: "promisePersons", span: 24, - customizeRender: true, - render: ( - <> - - {promiseType === 1 || promiseType === "责任书" - ? "受状人" - : "承诺人"} - - - - {(fields, { add, remove }) => ( - <> - {fields.map((field, index) => ( - - {promisePersonsItem && ( -
- - - - - - - - )} - - - { - 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); - }} - /> - - - - - - { - promiseType === 1 || promiseType === "责任书" - ? "" - : (index >= 1 - ? - : ) - } - - - - - - - - - - - { - form.setFieldValue(["promisePersons", field.name, "userName"], label); - }} - mode={(promiseType === 1 || promiseType === "责任书") ? "tags" : "multiple"} - /> - - - - - - - ))} - - )} - - - ), + 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"], promiseType === 1 ? "" : []); + }, + }, + }, + { name: [field.name, "corpName"], label: `签订单位${index + 1}名称`, onlyForLabel: true }, + ] + : []), + { + 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 }, { - key: "promisePeoples", + name: "promisePeoples", span: 24, - customizeRender: true, - render: ( - <> - - - {promiseType === 1 || promiseType === "责任书" - ? "发状人" - : "被承诺人"} - - - {fields => ( - <> - {fields.map((field, index) => ( - - - - { - 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; - getPostList(departmentId, promisePeoples?.[field.name]?.corpId, index); - }} - onGetLabel={(label) => { - form.setFieldValue(["promisePeoples", field.name, "departmentName"], label); - }} - /> - - - - - - - - - - - - - - - - { - form.setFieldValue(["promisePeoples", field.name, "userName"], label); - }} - // mode="multiple" - /> - - - - - - - - ))} - - )} - - - - ), + 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 }, + ] + ), + }, }, ]} /> + {choiceTemplateModalOpen && ( + 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", [{}]); + setPostList([]); + }} + /> + )} ); } const ChoiceTemplateModalComponent = (props) => { - const parentForm = props.parentForm; // 使用外层表单 - const [form] = Form.useForm(); // ← 只给搜索用,不影响主页面 + const [form] = Form.useForm(); const { tableProps, getData } = useTable(props["busPromiseTemplateList"], { form, + useStorageQueryCriteria: false, }); return ( props.onCancel()}>关闭, ]} - onCancel={props.onCancel} >
getLabelName({ list: typeList, status: record.promiseType }), + render: (_, record) => getLabelName({ list: PROMISE_TYPE_ENUM, status: record.promiseType }), }, { title: "操作", @@ -633,24 +427,7 @@ const ChoiceTemplateModalComponent = (props) => {
({ + key: item.bianma, + label: item.name, + }))} + onChange={(event) => { + query.releasePlatform = event; + setReleasePlatform(event); + getData(); + }} + /> + )} toolBarRender={() => ( <> - + {props.permission("jg-promise-management-add") && ( + + )} )} columns={[ - { title: "承诺书名称", dataIndex: "promiseName" }, - { title: "下发对象", dataIndex: "releasePlatform", render: (_, record) => getLabelName({ list: [[{ name: "分公司", bianma: 1 }, { name: "股份内部", bianma: 2 }]], status: record.releasePlatform }) }, - { title: "承诺书级别", dataIndex: "levelName" }, - { title: "承诺书类型", dataIndex: "promiseType", render: (_, record) => getLabelName({ list: [{ name: "承诺书", bianma: 0 }, { name: "责任书", bianma: 1 }], status: record.promiseType }) }, + { title: "安全承诺名称", dataIndex: "promiseName" }, + { + title: "安全承诺类型", + dataIndex: "promiseType", + render: (_, record) => getLabelName({ list: PROMISE_TYPE_ENUM, status: record.promiseType }), + }, + { title: "安全承诺级别", dataIndex: "levelName" }, + { + title: "下发对象", + dataIndex: "releasePlatform", + render: (_, record) => getLabelName({ list: RELEASE_PLATFORM_ENUM, status: record.releasePlatform }), + }, { title: "签订单位", dataIndex: "corpName" }, - { title: "涉及岗位", dataIndex: "postNames" }, { title: "适用期限", render: (_, record) => `${record.promiseTermStart}至${record.promiseTermEnd}` }, - { title: "承诺人数/涉及人数", dataIndex: "signedCount" }, + { title: "涉及岗位", dataIndex: "postNames" }, + { title: "承诺人数/涉及人数", dataIndex: "signedCount", render: (_, record) => `已完成${record.signedCount}/${record.peopleNumInvolved}` }, { title: "下发时间", dataIndex: "updateTime" }, - { title: "状态", render: (_, record) => getLabelName({ list: [{ name: "启用", bianma: "0" }, { name: "禁用", bianma: "1" }], status: record.state }) }, + { + title: "状态", + render: (_, record) => getLabelName({ + list: [{ name: "已下发", bianma: "0" }, { name: "暂存", bianma: "1" }], + status: record.state, + }), + }, { title: "操作", - width: 200, + width: 220, fixed: "right", render: (_, record) => ( @@ -115,28 +153,32 @@ function List(props) { > 查看 - + {props.permission("jg-promise-management-issue") && ( + + + + )} + {props.permission("jg-promise-management-edit") && ( - + )} -
( + + + + )} columns={[ { title: "部门", dataIndex: "departmentName" }, { title: "岗位", dataIndex: "postName" }, diff --git a/src/pages/Container/Supervise/busPromise/List/index.js b/src/pages/Container/Supervise/busPromise/List/index.js index 24c2955..10343db 100644 --- a/src/pages/Container/Supervise/busPromise/List/index.js +++ b/src/pages/Container/Supervise/busPromise/List/index.js @@ -16,10 +16,9 @@ function List(props) { return (
record.createTime ? dayjs(record.createTime).format("YYYY") : "" }, - { title: "承诺书数", dataIndex: "promiseCount" }, - { title: "下发承诺书人数", dataIndex: "issueCount" }, - { title: "签订承诺书人数", dataIndex: "signCount" }, + { title: "安全承诺数", dataIndex: "promiseCount" }, + { title: "下发安全承诺人数", dataIndex: "issueCount" }, + { title: "签订安全承诺人数", dataIndex: "signCount" }, { title: "操作", width: 150, diff --git a/src/pages/Container/Supervise/busPromise/ListView/index.js b/src/pages/Container/Supervise/busPromise/ListView/index.js index 17eced5..38aedd7 100644 --- a/src/pages/Container/Supervise/busPromise/ListView/index.js +++ b/src/pages/Container/Supervise/busPromise/ListView/index.js @@ -23,18 +23,17 @@ function List(props) {
{ return record.promiseTermStart ? `${dayjs(record.promiseTermStart).format("YYYY-MM-DD")}至${dayjs(record.promiseTermEnd).format("YYYY-MM-DD")}` : ""; } }, - { title: "承诺书级别", dataIndex: "levelName" }, + { title: "安全承诺级别", dataIndex: "levelName" }, { title: "涉及人数", dataIndex: "peopleNumInvolved" }, { title: "完成提交人数", dataIndex: "signedCount" }, { diff --git a/src/pages/Container/Supervise/busPromise/View/index.js b/src/pages/Container/Supervise/busPromise/View/index.js index 682beb0..cb8a104 100644 --- a/src/pages/Container/Supervise/busPromise/View/index.js +++ b/src/pages/Container/Supervise/busPromise/View/index.js @@ -1,5 +1,5 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime"; -import { Button, Form, Space } from "antd"; +import { Button, Space } from "antd"; import { useState } from "react"; import HeaderBack from "zy-react-library/components/HeaderBack"; import Table from "zy-react-library/components/Table"; @@ -10,13 +10,11 @@ import { NS_COMMITMENT } from "~/enumerate/namespace"; import DetailModal from "~/pages/Container/Supervise/Components/DetailModal"; function List(props) { - const [form] = Form.useForm(); const [busPromiseTemplateModalOpen, setBusPromiseTemplateModalOpen] = useState(false); const [id, setId] = useState(""); const [modalUrl, setModalUrl] = useState(""); const query = useGetUrlQuery(); const { tableProps } = useTable(props["busPromisePeopleList"], { - form, params: { eqCorpId: query.id, }, @@ -30,7 +28,7 @@ function List(props) { columns={[ { title: "所属部门", dataIndex: "departmentName" }, { title: "姓名", dataIndex: "userName" }, - { title: "签署情况", dataIndex: "isSign", render: (_, record) => getLabelName({ list: [{ name: "未签署", bianma: "0" }, { name: "已签署", bianma: "1" }], status: record.isSign }) }, + { title: "签署状态", dataIndex: "isSign", render: (_, record) => getLabelName({ list: [{ name: "未签署", bianma: "0" }, { name: "已签署", bianma: "1" }], status: record.isSign }) }, { title: "操作", width: 150, diff --git a/src/pages/Container/Supervise/components/DetailModal/index.js b/src/pages/Container/Supervise/components/DetailModal/index.js index a9f0061..e2b15ce 100644 --- a/src/pages/Container/Supervise/components/DetailModal/index.js +++ b/src/pages/Container/Supervise/components/DetailModal/index.js @@ -3,12 +3,12 @@ import { Image, Modal } from "antd"; import dayjs from "dayjs"; import { useEffect, useRef, useState } from "react"; import { useReactToPrint } from "react-to-print"; +import PreviewImg from "zy-react-library/components/PreviewImg"; import { getFileUrl } from "zy-react-library/utils"; import { NS_COMMITMENT } from "~/enumerate/namespace"; -// Info.jsx import "./index.less"; -const Info = (props) => { +const DetailModal = (props) => { const [form, setForm] = useState({}); const getData = async () => { if (props.id) { @@ -17,7 +17,7 @@ const Info = (props) => { } }; useEffect(() => { - props.id && getData(); + getData(); }, []); const contentRef = useRef(null); const handlePrint = useReactToPrint({ @@ -61,17 +61,11 @@ const Info = (props) => { {form.promiseType === 0 && (
- {`${form.userName}:` || ""} + {`${form.userName ? `${form.userName}:` : ""}` || ""}
)} -
{form.promiseText}
- -
- {form.templateDetails?.map((item, index) => ( -
{item.collateral}
- ))} -
+
{form.promiseType === 0 @@ -95,7 +89,6 @@ const Info = (props) => { ) : (
- : 发状人: @@ -111,6 +104,8 @@ const Info = (props) => { {form.promiseType === 0 ? "承诺人(本人签字)" : "受状人"} : + {(form.filepath && !form.signList) && } + {form.signList && }
@@ -118,8 +113,7 @@ const Info = (props) => {
- ); }; -export default Connect([NS_COMMITMENT], true)(Info); +export default Connect([NS_COMMITMENT], true)(DetailModal);