master
parent
97e4a681f3
commit
470bcbd160
|
|
@ -9,7 +9,8 @@ module.exports = {
|
|||
// 应用后端分支名称,部署上线需要
|
||||
javaGitBranch: "<branch-name>",
|
||||
// 接口服务地址
|
||||
API_HOST: "http://192.168.20.100:30140",
|
||||
// API_HOST: "http://192.168.20.100:30140",
|
||||
API_HOST: "https://gbs-gateway.qhdsafety.com",
|
||||
},
|
||||
production: {
|
||||
// 应用后端分支名称,部署上线需要
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-to-print": "^3.2.0",
|
||||
"zy-react-library": "^1.0.175"
|
||||
"zy-react-library": "^1.1.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@antfu/eslint-config": "^5.4.1",
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import "dayjs/locale/zh-cn";
|
|||
import "../blessed_by_buddha";
|
||||
|
||||
require("antd/dist/reset.css");
|
||||
require("zy-react-library/css/common.less");
|
||||
|
||||
dayjs.locale("zh-cn");
|
||||
setJJBCommonAntdMessage(message);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ 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 Page from "zy-react-library/components/Page";
|
||||
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";
|
||||
|
|
@ -27,60 +27,58 @@ function Add(props) {
|
|||
...values,
|
||||
id: query.id,
|
||||
promiseId: query.promiseId,
|
||||
isRegulatory: 0,
|
||||
isRegulatory: 1,
|
||||
});
|
||||
if (success) {
|
||||
message.success("操作成功");
|
||||
props.history.goBack();
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title={query.id ? "编辑" : "新增"} />
|
||||
<div style={{ paddingBottom: 10 }}>
|
||||
<FormBuilder
|
||||
form={form}
|
||||
values={{
|
||||
templateDetails: [{}],
|
||||
promiseType: 0,
|
||||
}}
|
||||
onFinish={onSubmit}
|
||||
loading={props.commitment.commitmentLoading}
|
||||
options={[
|
||||
{ name: "promiseName", label: "安全承诺模板名称", span: 24 },
|
||||
{
|
||||
name: "promiseType",
|
||||
label: "安全承诺类型",
|
||||
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
||||
items: PROMISE_TYPE_ENUM.map(item => ({ ...item, bianma: +item.bianma })),
|
||||
componentProps: {
|
||||
disabled: true,
|
||||
},
|
||||
<Page headerTitle={query.id ? "编辑" : "新增"} isShowFooter={false}>
|
||||
<FormBuilder
|
||||
form={form}
|
||||
values={{
|
||||
templateDetails: [{}],
|
||||
promiseType: 0,
|
||||
}}
|
||||
onFinish={onSubmit}
|
||||
loading={props.commitment.commitmentLoading}
|
||||
options={[
|
||||
{ name: "promiseName", label: "安全承诺模板名称", span: 24 },
|
||||
{
|
||||
name: "promiseType",
|
||||
label: "安全承诺类型",
|
||||
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
||||
items: PROMISE_TYPE_ENUM.map(item => ({ ...item, bianma: +item.bianma })),
|
||||
componentProps: {
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
name: "level",
|
||||
label: "安全承诺级别",
|
||||
render: (
|
||||
<DictionarySelect
|
||||
dictValue="PROMISE_LEVEL"
|
||||
onGetLabel={label => form.setFieldValue("levelName", label)}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{ name: "levelName", label: "安全承诺级别名称", onlyForLabel: true },
|
||||
{
|
||||
name: "promiseText",
|
||||
label: "承诺内容",
|
||||
span: 24,
|
||||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
},
|
||||
{
|
||||
name: "level",
|
||||
label: "安全承诺级别",
|
||||
render: (
|
||||
<DictionarySelect
|
||||
dictValue="PROMISE_LEVEL"
|
||||
onGetLabel={label => form.setFieldValue("levelName", label)}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{ name: "levelName", label: "安全承诺级别名称", onlyForLabel: true },
|
||||
{
|
||||
name: "promiseText",
|
||||
label: "承诺内容",
|
||||
span: 24,
|
||||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,23 +1,19 @@
|
|||
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";
|
||||
import AddIcon from "zy-react-library/components/Icon/AddIcon";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
import useTable from "zy-react-library/hooks/useTable";
|
||||
import { getLabelName } from "zy-react-library/utils";
|
||||
import { NS_COMMITMENT } from "~/enumerate/namespace";
|
||||
import DetailModal from "~/pages/Container/Supervise/Components/DetailModal";
|
||||
|
||||
function List(props) {
|
||||
const [form] = Form.useForm();
|
||||
const { tableProps, getData } = useTable(props["busPromiseTemplateList"], {
|
||||
form,
|
||||
});
|
||||
const [busPromiseTemplateModalOpen, setBusPromiseTemplateModalOpen] = useState(false);
|
||||
const [id, setId] = useState("");
|
||||
const [modalUrl, setModalUrl] = useState("");
|
||||
const updateState = (id, state) => {
|
||||
const stateValue = state === 0 ? 1 : 0;
|
||||
Modal.confirm({
|
||||
|
|
@ -33,7 +29,7 @@ function List(props) {
|
|||
});
|
||||
};
|
||||
return (
|
||||
<div style={{ padding: 20 }}>
|
||||
<Page isShowAllAction={false}>
|
||||
<Search
|
||||
labelCol={{ span: 8 }}
|
||||
form={form}
|
||||
|
|
@ -72,9 +68,7 @@ function List(props) {
|
|||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(record.id);
|
||||
setModalUrl("busPromiseTemplateView");
|
||||
props.history.push(`./view?id=${record.id}`);
|
||||
}}
|
||||
>
|
||||
查看
|
||||
|
|
@ -100,8 +94,7 @@ function List(props) {
|
|||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</div>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
import { Button, Descriptions } from "antd";
|
||||
import { useRef, useState } from "react";
|
||||
import { useReactToPrint } from "react-to-print";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import DetailModal from "~/pages/Container/Enterprise/components/DetailModal";
|
||||
|
||||
function View() {
|
||||
const query = useGetUrlQuery();
|
||||
|
||||
const [info, setInfo] = useState({});
|
||||
|
||||
const contentRef = useRef(null);
|
||||
const handlePrint = useReactToPrint({
|
||||
contentRef,
|
||||
pageStyle: `@page {
|
||||
margin: 0mm;
|
||||
}
|
||||
@media print {
|
||||
body {
|
||||
margin: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
}
|
||||
`,
|
||||
documentTitle: "",
|
||||
});
|
||||
|
||||
return (
|
||||
<Page
|
||||
headerTitle="查看"
|
||||
extraActionButtons={(
|
||||
<Button type="primary" onClick={handlePrint}>
|
||||
打印模板
|
||||
</Button>
|
||||
)}
|
||||
>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 } }}
|
||||
items={[
|
||||
{ label: "安全承诺模板名称", children: info.promiseName },
|
||||
{ label: "安全承诺级别", children: info.levelName },
|
||||
]}
|
||||
/>
|
||||
<div ref={contentRef}>
|
||||
<DetailModal
|
||||
id={query.id}
|
||||
modalUrl="busPromiseTemplateView"
|
||||
inline
|
||||
onGetData={(data) => {
|
||||
setInfo(data);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
export default View;
|
||||
|
|
@ -5,7 +5,7 @@ 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 Page from "zy-react-library/components/Page";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import DictionarySelect from "zy-react-library/components/Select/Dictionary";
|
||||
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
|
||||
|
|
@ -110,250 +110,247 @@ function Add(props) {
|
|||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title={query.id ? "编辑" : "新增"} />
|
||||
<div style={{ paddingBottom: 10 }}>
|
||||
<FormBuilder
|
||||
form={form}
|
||||
values={{
|
||||
promiseType: 0,
|
||||
promiseTypeName: "承诺书",
|
||||
promisePeoples: [{}], // 被承诺人
|
||||
promisePersons: [{}], // 承诺人
|
||||
}}
|
||||
onFinish={onSubmit}
|
||||
loading={props.commitment.commitmentLoading}
|
||||
options={[
|
||||
{ name: "promiseName", label: "安全承诺名称" },
|
||||
{
|
||||
name: "level",
|
||||
label: "安全承诺级别",
|
||||
render: (
|
||||
<DictionarySelect
|
||||
dictValue="PROMISE_LEVEL"
|
||||
onGetLabel={label => 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: [validatorEndTime(promiseTermStart), {
|
||||
validator: (_, value) => {
|
||||
if (value && promiseTermStart) {
|
||||
const startYear = dayjs(promiseTermStart).year();
|
||||
const endYear = dayjs(value).year();
|
||||
<Page headerTitle={query.id ? "编辑" : "新增"} isShowFooter={false}>
|
||||
<FormBuilder
|
||||
form={form}
|
||||
values={{
|
||||
promiseType: 0,
|
||||
promiseTypeName: "承诺书",
|
||||
promisePeoples: [{}], // 被承诺人
|
||||
promisePersons: [{}], // 承诺人
|
||||
}}
|
||||
onFinish={onSubmit}
|
||||
loading={props.commitment.commitmentLoading}
|
||||
options={[
|
||||
{ name: "promiseName", label: "安全承诺名称" },
|
||||
{
|
||||
name: "level",
|
||||
label: "安全承诺级别",
|
||||
render: (
|
||||
<DictionarySelect
|
||||
dictValue="PROMISE_LEVEL"
|
||||
onGetLabel={label => 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: [validatorEndTime(promiseTermStart), {
|
||||
validator: (_, value) => {
|
||||
if (value && promiseTermStart) {
|
||||
const startYear = dayjs(promiseTermStart).year();
|
||||
const endYear = dayjs(value).year();
|
||||
|
||||
if (startYear !== endYear) {
|
||||
return Promise.reject("开始时间和结束时间不能跨年");
|
||||
}
|
||||
if (startYear !== endYear) {
|
||||
return Promise.reject("开始时间和结束时间不能跨年");
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
}],
|
||||
},
|
||||
{ key: "divider1", label: "承诺内容", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||
{
|
||||
key: "commitmentContentButton",
|
||||
customizeRender: true,
|
||||
span: 24,
|
||||
render: (
|
||||
<div style={{ textAlign: "right", marginBottom: "20px" }}>
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setchoiceTemplateModalOpen(true);
|
||||
}}
|
||||
>
|
||||
选择模板
|
||||
</Button>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
{ name: "promiseTypeName", label: "安全承诺类型", onlyForLabel: true },
|
||||
{ name: "promiseType", label: "安全承诺类型", onlyForLabel: true },
|
||||
{
|
||||
name: "promiseText",
|
||||
label: "安全承诺内容",
|
||||
span: 24,
|
||||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
{ key: "divider2", label: "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||
{
|
||||
name: "promisePersons",
|
||||
span: 24,
|
||||
render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
|
||||
formListUniqueProps: {
|
||||
options: (field, index) => (
|
||||
[
|
||||
{
|
||||
name: [field.name, "departmentId"],
|
||||
span: 8,
|
||||
labelCol: { span: 6 },
|
||||
label: `部门${index + 1}`,
|
||||
render: (
|
||||
<DepartmentSelectTree
|
||||
onChange={async (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"], []);
|
||||
|
||||
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",
|
||||
}));
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
}],
|
||||
},
|
||||
{ key: "divider1", label: "承诺内容", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||
{
|
||||
key: "commitmentContentButton",
|
||||
customizeRender: true,
|
||||
span: 24,
|
||||
render: (
|
||||
<div style={{ textAlign: "right", marginBottom: "20px" }}>
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setchoiceTemplateModalOpen(true);
|
||||
}}
|
||||
>
|
||||
选择模板
|
||||
</Button>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
{ name: "promiseTypeName", label: "安全承诺类型", onlyForLabel: true },
|
||||
{ name: "promiseType", label: "安全承诺类型", onlyForLabel: true },
|
||||
{
|
||||
name: "promiseText",
|
||||
label: "安全承诺内容",
|
||||
span: 24,
|
||||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
{ key: "divider2", label: "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||
{
|
||||
name: "promisePersons",
|
||||
span: 24,
|
||||
render: FORM_ITEM_RENDER_ENUM.FORM_LIST,
|
||||
formListUniqueProps: {
|
||||
options: (field, index) => (
|
||||
[
|
||||
{
|
||||
name: [field.name, "departmentId"],
|
||||
span: 8,
|
||||
labelCol: { span: 6 },
|
||||
label: `部门${index + 1}`,
|
||||
render: (
|
||||
<DepartmentSelectTree
|
||||
onChange={async (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"], []);
|
||||
},
|
||||
|
||||
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: (
|
||||
<PersonnelSelect
|
||||
params={{
|
||||
postId: promisePersons?.[field.name]?.postId || "",
|
||||
departmentId: promisePersons?.[field.name]?.departmentId || "",
|
||||
}}
|
||||
isNeedPostId={true}
|
||||
onGetLabel={(label) => {
|
||||
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: (
|
||||
<DepartmentSelectTree
|
||||
onChange={async (departmentId) => {
|
||||
form.setFieldValue("passivePostName", "");
|
||||
form.setFieldValue("passivePostId", []);
|
||||
form.setFieldValue("passiveUserName", "");
|
||||
form.setFieldValue("passiveUserId", "");
|
||||
|
||||
if (!departmentId)
|
||||
return;
|
||||
getPostList1(departmentId);
|
||||
}}
|
||||
onGetLabel={(label) => {
|
||||
form.setFieldValue("passiveDepartmentName", label);
|
||||
}}
|
||||
/>
|
||||
},
|
||||
{ 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: (
|
||||
<PersonnelSelect
|
||||
params={{
|
||||
postId: promisePersons?.[field.name]?.postId || "",
|
||||
departmentId: promisePersons?.[field.name]?.departmentId || "",
|
||||
}}
|
||||
isNeedPostId={true}
|
||||
onGetLabel={(label) => {
|
||||
form.setFieldValue(["promisePersons", field.name, "userName"], label);
|
||||
}}
|
||||
mode="multiple"
|
||||
/>
|
||||
),
|
||||
},
|
||||
]
|
||||
),
|
||||
},
|
||||
{ name: "passiveDepartmentName", label: "部门名称", onlyForLabel: true },
|
||||
{
|
||||
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",
|
||||
}));
|
||||
},
|
||||
{ key: "divider3", label: "被承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||
{
|
||||
name: "passiveDepartmentId",
|
||||
label: "部门",
|
||||
span: 8,
|
||||
labelCol: { span: 6 },
|
||||
render: (
|
||||
<DepartmentSelectTree
|
||||
onChange={async (departmentId) => {
|
||||
form.setFieldValue("passivePostName", "");
|
||||
form.setFieldValue("passivePostId", []);
|
||||
form.setFieldValue("passiveUserName", "");
|
||||
form.setFieldValue("passiveUserId", "");
|
||||
},
|
||||
|
||||
if (!departmentId)
|
||||
return;
|
||||
getPostList1(departmentId);
|
||||
}}
|
||||
onGetLabel={(label) => {
|
||||
form.setFieldValue("passiveDepartmentName", label);
|
||||
}}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{ name: "passiveDepartmentName", label: "部门名称", onlyForLabel: true },
|
||||
{
|
||||
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,
|
||||
labelCol: { span: 6 },
|
||||
render: (
|
||||
<PersonnelSelect
|
||||
params={{
|
||||
postId: passivePostId,
|
||||
departmentId: passiveDepartmentId,
|
||||
}}
|
||||
isNeedPostId={true}
|
||||
onGetLabel={(label) => {
|
||||
form.setFieldValue("passiveUserName", label);
|
||||
}}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{ name: "passiveUserName", label: "人员名称", onlyForLabel: true },
|
||||
]}
|
||||
},
|
||||
{ name: "passivePostName", label: "岗位名称", onlyForLabel: true },
|
||||
{
|
||||
name: "passiveUserId",
|
||||
label: "人员",
|
||||
span: 8,
|
||||
labelCol: { span: 6 },
|
||||
render: (
|
||||
<PersonnelSelect
|
||||
params={{
|
||||
postId: passivePostId,
|
||||
departmentId: passiveDepartmentId,
|
||||
}}
|
||||
isNeedPostId={true}
|
||||
onGetLabel={(label) => {
|
||||
form.setFieldValue("passiveUserName", label);
|
||||
}}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{ name: "passiveUserName", label: "人员名称", onlyForLabel: true },
|
||||
]}
|
||||
/>
|
||||
{choiceTemplateModalOpen && (
|
||||
<ChoiceTemplateModal
|
||||
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("passiveDepartmentName", "");
|
||||
form.setFieldValue("passiveDepartmentId", "");
|
||||
form.setFieldValue("passivePostName", "");
|
||||
form.setFieldValue("passivePostId", "");
|
||||
form.setFieldValue("passiveUserName", "");
|
||||
form.setFieldValue("passiveUserId", "");
|
||||
setPostList([]);
|
||||
setPostList1([]);
|
||||
}}
|
||||
/>
|
||||
{choiceTemplateModalOpen && (
|
||||
<ChoiceTemplateModal
|
||||
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("passiveDepartmentName", "");
|
||||
form.setFieldValue("passiveDepartmentId", "");
|
||||
form.setFieldValue("passivePostName", "");
|
||||
form.setFieldValue("passivePostId", "");
|
||||
form.setFieldValue("passiveUserName", "");
|
||||
form.setFieldValue("passiveUserId", "");
|
||||
setPostList([]);
|
||||
setPostList1([]);
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -365,6 +362,7 @@ const ChoiceTemplateModalComponent = (props) => {
|
|||
|
||||
return (
|
||||
<Modal
|
||||
title="选择模板"
|
||||
open
|
||||
width={1200}
|
||||
maskClosable={false}
|
||||
|
|
@ -383,6 +381,8 @@ const ChoiceTemplateModalComponent = (props) => {
|
|||
onFinish={getData}
|
||||
/>
|
||||
<Table
|
||||
options={false}
|
||||
disabledResizer={true}
|
||||
columns={[
|
||||
{ title: "安全承诺名称", dataIndex: "promiseName" },
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Descriptions, Divider } from "antd";
|
||||
import { useEffect, useState } from "react";
|
||||
import HeaderBack from "zy-react-library/components/HeaderBack";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import { NS_COMMITMENT } from "~/enumerate/namespace";
|
||||
import DetailModal from "~/pages/Container/Supervise/Components/DetailModal";
|
||||
|
|
@ -21,74 +21,75 @@ function Detail(props) {
|
|||
useEffect(() => {
|
||||
getData();
|
||||
}, []);
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title="查看" />
|
||||
<div style={{ padding: 20 }}>
|
||||
<Divider orientation="left">基本信息</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 }, content: { width: "auto" } }}
|
||||
items={[
|
||||
{ label: "安全承诺名称", children: detail.promiseName },
|
||||
{ label: "安全承诺级别", children: detail.levelName },
|
||||
{ label: "适用期限开始", children: detail.promiseTermStart },
|
||||
{ label: "适用期限结束", children: detail.promiseTermEnd },
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">承诺内容</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 }, content: { width: "auto" } }}
|
||||
items={[
|
||||
{ label: "承诺内容", children: (<div dangerouslySetInnerHTML={{ __html: detail.promiseText }} />) },
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">{detail.promiseType === 1 ? "受状人" : "承诺人"}</Divider>
|
||||
|
||||
<Descriptions
|
||||
bordered
|
||||
column={3}
|
||||
styles={{ label: { width: 200 }, content: { width: "auto" } }}
|
||||
items={[
|
||||
...(detail.promisePersons || []).flatMap((item, index) => {
|
||||
const base = [
|
||||
{ label: `部门${index + 1}`, children: item.departmentName || "-" },
|
||||
{ label: `岗位${index + 1}`, children: item.postName || "-" },
|
||||
{ label: `人员${index + 1}`, children: item.userName || "-" },
|
||||
];
|
||||
return base;
|
||||
}),
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">{detail.promiseType === 1 ? "发状人" : "被承诺人"}</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={3}
|
||||
styles={{ label: { width: 200 }, content: { width: "auto" } }}
|
||||
items={[
|
||||
{ label: "部门", children: detail.promisePeople?.departmentName || "-" },
|
||||
{ label: "岗位", children: detail.promisePeople?.postName || "-" },
|
||||
{ label: "人员", children: detail.promisePeople?.userName || "-" },
|
||||
]}
|
||||
/>
|
||||
<div style={{ textAlign: "center", margin: "20px 0" }}>
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(query.id);
|
||||
setModalUrl("busPromiseView");
|
||||
}}
|
||||
>
|
||||
模板
|
||||
</Button>
|
||||
</div>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</div>
|
||||
</div>
|
||||
return (
|
||||
<Page
|
||||
headerTitle="查看"
|
||||
contentPadding="0 20px 20px 20px"
|
||||
extraActionButtons={(
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(query.id);
|
||||
setModalUrl("busPromiseView");
|
||||
}}
|
||||
>
|
||||
模板
|
||||
</Button>
|
||||
)}
|
||||
>
|
||||
<Divider orientation="left">基本信息</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 }, content: { width: "auto" } }}
|
||||
items={[
|
||||
{ label: "安全承诺名称", children: detail.promiseName },
|
||||
{ label: "安全承诺级别", children: detail.levelName },
|
||||
{ label: "适用期限开始", children: detail.promiseTermStart },
|
||||
{ label: "适用期限结束", children: detail.promiseTermEnd },
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">承诺内容</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 }, content: { width: "auto" } }}
|
||||
items={[
|
||||
{ label: "承诺内容", children: (<div dangerouslySetInnerHTML={{ __html: detail.promiseText }} />) },
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">{detail.promiseType === 1 ? "受状人" : "承诺人"}</Divider>
|
||||
|
||||
<Descriptions
|
||||
bordered
|
||||
column={3}
|
||||
styles={{ label: { width: 200 }, content: { width: "auto" } }}
|
||||
items={[
|
||||
...(detail.promisePersons || []).flatMap((item, index) => {
|
||||
const base = [
|
||||
{ label: `部门${index + 1}`, children: item.departmentName || "-" },
|
||||
{ label: `岗位${index + 1}`, children: item.postName || "-" },
|
||||
{ label: `人员${index + 1}`, children: item.userName || "-" },
|
||||
];
|
||||
return base;
|
||||
}),
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">{detail.promiseType === 1 ? "发状人" : "被承诺人"}</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={3}
|
||||
styles={{ label: { width: 200 }, content: { width: "auto" } }}
|
||||
items={[
|
||||
{ label: "部门", children: detail.promisePeople?.departmentName || "-" },
|
||||
{ label: "岗位", children: detail.promisePeople?.postName || "-" },
|
||||
{ label: "人员", children: detail.promisePeople?.userName || "-" },
|
||||
]}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ 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 Page from "zy-react-library/components/Page";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import DictionarySelect from "zy-react-library/components/Select/Dictionary";
|
||||
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
|
||||
|
|
@ -39,7 +40,7 @@ function List(props) {
|
|||
}
|
||||
};
|
||||
return (
|
||||
<div style={{ padding: 20 }}>
|
||||
<Page isShowAllAction={false}>
|
||||
<Search
|
||||
form={form}
|
||||
options={[
|
||||
|
|
@ -133,7 +134,7 @@ function List(props) {
|
|||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
</div>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Form, Space } from "antd";
|
||||
import { useState } from "react";
|
||||
import HeaderBack from "zy-react-library/components/HeaderBack";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import useTable from "zy-react-library/hooks/useTable";
|
||||
|
|
@ -19,57 +19,55 @@ function List(props) {
|
|||
const [busPromiseTemplateModalOpen, setBusPromiseTemplateModalOpen] = useState(false);
|
||||
const [id, setId] = useState("");
|
||||
const [modalUrl, setModalUrl] = useState("");
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title="签署详情" />
|
||||
<div style={{ padding: 20 }}>
|
||||
<Table
|
||||
toolBarRender={() => (
|
||||
<Space>
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(query.id);
|
||||
setModalUrl("busPromisePeopleAllSign");
|
||||
}}
|
||||
>
|
||||
签署汇总
|
||||
</Button>
|
||||
</Space>
|
||||
)}
|
||||
columns={[
|
||||
{ title: "部门", dataIndex: "departmentName" },
|
||||
{ title: "岗位", dataIndex: "postName" },
|
||||
{ title: "人员", dataIndex: "userName" },
|
||||
{ title: "签署时间", dataIndex: "signTime" },
|
||||
{ title: "签署状态", render: (_, record) => getLabelName({ list: [{ name: "未签署", bianma: "0" }, { name: "已签署", bianma: "1" }], status: record.isSign }) },
|
||||
{
|
||||
title: "操作",
|
||||
width: 200,
|
||||
fixed: "right",
|
||||
render: (_, record) => (
|
||||
<Space>
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(record.id);
|
||||
setModalUrl("busPromisePeopleView");
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</Button>
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
return (
|
||||
<Page headerTitle="签署详情">
|
||||
<Table
|
||||
toolBarRender={() => (
|
||||
<Space>
|
||||
<Button
|
||||
type="primary"
|
||||
ghost
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(query.id);
|
||||
setModalUrl("busPromisePeopleAllSign");
|
||||
}}
|
||||
>
|
||||
签署汇总
|
||||
</Button>
|
||||
</Space>
|
||||
)}
|
||||
columns={[
|
||||
{ title: "部门", dataIndex: "departmentName" },
|
||||
{ title: "岗位", dataIndex: "postName" },
|
||||
{ title: "人员", dataIndex: "userName" },
|
||||
{ title: "签署时间", dataIndex: "signTime" },
|
||||
{ title: "签署状态", render: (_, record) => getLabelName({ list: [{ name: "未签署", bianma: "0" }, { name: "已签署", bianma: "1" }], status: record.isSign }) },
|
||||
{
|
||||
title: "操作",
|
||||
width: 200,
|
||||
fixed: "right",
|
||||
render: (_, record) => (
|
||||
<Space>
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(record.id);
|
||||
setModalUrl("busPromisePeopleView");
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</Button>
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ 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 Page from "zy-react-library/components/Page";
|
||||
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";
|
||||
|
|
@ -32,53 +32,51 @@ function Add(props) {
|
|||
...values,
|
||||
id: query.id,
|
||||
promiseId: query.promiseId,
|
||||
isRegulatory: 1,
|
||||
isRegulatory: 0,
|
||||
});
|
||||
if (success) {
|
||||
message.success("操作成功");
|
||||
props.history.goBack();
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title={query.id ? "编辑" : "新增"} />
|
||||
<div style={{ paddingBottom: 10 }}>
|
||||
<FormBuilder
|
||||
form={form}
|
||||
onFinish={onSubmit}
|
||||
loading={props.commitment.commitmentLoading}
|
||||
options={[
|
||||
{ name: "promiseName", label: "安全承诺模板名称", span: 24 },
|
||||
{
|
||||
name: "promiseType",
|
||||
label: "安全承诺类型",
|
||||
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
||||
items: PROMISE_TYPE_ENUM.map(item => ({ ...item, bianma: +item.bianma })),
|
||||
},
|
||||
{
|
||||
name: "level",
|
||||
label: "安全承诺级别",
|
||||
render: (
|
||||
<DictionarySelect
|
||||
dictValue="PROMISE_LEVEL"
|
||||
onGetLabel={label => form.setFieldValue("levelName", label)}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{ name: "levelName", label: "安全承诺级别名称", onlyForLabel: true },
|
||||
{
|
||||
name: "promiseText",
|
||||
label: "承诺内容",
|
||||
span: 24,
|
||||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<Page isShowFooter={false} headerTitle={query.id ? "编辑" : "新增"}>
|
||||
<FormBuilder
|
||||
form={form}
|
||||
onFinish={onSubmit}
|
||||
loading={props.commitment.commitmentLoading}
|
||||
options={[
|
||||
{ name: "promiseName", label: "安全承诺模板名称", span: 24 },
|
||||
{
|
||||
name: "promiseType",
|
||||
label: "安全承诺类型",
|
||||
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
||||
items: PROMISE_TYPE_ENUM.map(item => ({ ...item, bianma: +item.bianma })),
|
||||
},
|
||||
{
|
||||
name: "level",
|
||||
label: "安全承诺级别",
|
||||
render: (
|
||||
<DictionarySelect
|
||||
dictValue="PROMISE_LEVEL"
|
||||
onGetLabel={label => form.setFieldValue("levelName", label)}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{ name: "levelName", label: "安全承诺级别名称", onlyForLabel: true },
|
||||
{
|
||||
name: "promiseText",
|
||||
label: "承诺内容",
|
||||
span: 24,
|
||||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
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";
|
||||
import AddIcon from "zy-react-library/components/Icon/AddIcon";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
|
||||
|
|
@ -10,16 +10,12 @@ 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";
|
||||
|
||||
function List(props) {
|
||||
const [form] = Form.useForm();
|
||||
const { tableProps, getData } = useTable(props["busPromiseTemplateList"], {
|
||||
form,
|
||||
});
|
||||
const [busPromiseTemplateModalOpen, setBusPromiseTemplateModalOpen] = useState(false);
|
||||
const [id, setId] = useState("");
|
||||
const [modalUrl, setModalUrl] = useState("");
|
||||
const onDelete = (id) => {
|
||||
Modal.confirm({
|
||||
title: "删除确认",
|
||||
|
|
@ -48,7 +44,7 @@ function List(props) {
|
|||
});
|
||||
};
|
||||
return (
|
||||
<div style={{ padding: 20 }}>
|
||||
<Page isShowAllAction={false}>
|
||||
<Search
|
||||
labelCol={{ span: 8 }}
|
||||
form={form}
|
||||
|
|
@ -90,19 +86,17 @@ function List(props) {
|
|||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(record.id);
|
||||
setModalUrl("busPromiseTemplateView");
|
||||
props.history.push(`./view?id=${record.id}`);
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</Button>
|
||||
{(props.permission("jg-promise-template-disable") && record.isRegulatory === 1) && (
|
||||
{(props.permission("jg-promise-template-disable") && record.isRegulatory === 0) && (
|
||||
<Button type="link" onClick={() => updateState(record.id, record.state)}>
|
||||
{record.state === 0 ? "禁用" : "启用"}
|
||||
</Button>
|
||||
)}
|
||||
{(props.permission("jg-promise-template-edit") && record.isRegulatory === 1) && (
|
||||
{(props.permission("jg-promise-template-edit") && record.isRegulatory === 0) && (
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
|
|
@ -112,15 +106,14 @@ function List(props) {
|
|||
编辑
|
||||
</Button>
|
||||
)}
|
||||
{(props.permission("jg-promise-template-deletes") && record.isRegulatory === 1) && <Button type="link" danger onClick={() => onDelete(record.id)}>删除</Button>}
|
||||
{(props.permission("jg-promise-template-deletes") && record.isRegulatory === 0) && <Button type="link" danger onClick={() => onDelete(record.id)}>删除</Button>}
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</div>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
import { Button, Descriptions } from "antd";
|
||||
import { useRef, useState } from "react";
|
||||
import { useReactToPrint } from "react-to-print";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import { getLabelName } from "zy-react-library/utils";
|
||||
import { PROMISE_TYPE_ENUM } from "~/enumerate/constant";
|
||||
import DetailModal from "~/pages/Container/Supervise/components/DetailModal";
|
||||
|
||||
function View() {
|
||||
const query = useGetUrlQuery();
|
||||
|
||||
const [info, setInfo] = useState({});
|
||||
|
||||
const contentRef = useRef(null);
|
||||
const handlePrint = useReactToPrint({
|
||||
contentRef,
|
||||
pageStyle: `@page {
|
||||
margin: 0mm;
|
||||
}
|
||||
@media print {
|
||||
body {
|
||||
margin: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
}
|
||||
`,
|
||||
documentTitle: "",
|
||||
});
|
||||
|
||||
return (
|
||||
<Page
|
||||
headerTitle="查看"
|
||||
extraActionButtons={(
|
||||
<Button type="primary" onClick={handlePrint}>
|
||||
打印模板
|
||||
</Button>
|
||||
)}
|
||||
>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 } }}
|
||||
items={[
|
||||
{ label: "公司名称", children: info.corpName },
|
||||
{ label: "安全承诺模板名称", children: info.promiseName },
|
||||
{ label: "安全承诺类型", children: getLabelName({ list: PROMISE_TYPE_ENUM, status: info.promiseType }) },
|
||||
{ label: "安全承诺级别", children: info.levelName },
|
||||
]}
|
||||
/>
|
||||
<div ref={contentRef}>
|
||||
<DetailModal
|
||||
id={query.id}
|
||||
modalUrl="busPromiseTemplateView"
|
||||
inline
|
||||
onGetData={(data) => {
|
||||
setInfo(data);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
export default View;
|
||||
|
|
@ -5,7 +5,7 @@ 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 Page from "zy-react-library/components/Page";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import DictionarySelect from "zy-react-library/components/Select/Dictionary";
|
||||
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
|
||||
|
|
@ -55,8 +55,8 @@ function Add(props) {
|
|||
const { data } = await props["busPromiseView"]({ id: query.id });
|
||||
const promisePeopleBack = data.promisePeopleBack.map(item => ({
|
||||
...item,
|
||||
userName: item.userName.split(","),
|
||||
userId: item.userId.split(","),
|
||||
userName: data.promiseType === 1 ? item.userName : item.userName.split(","),
|
||||
userId: data.promiseType === 1 ? item.userId : item.userId.split(","),
|
||||
}));
|
||||
const values = {
|
||||
...data,
|
||||
|
|
@ -81,15 +81,21 @@ function Add(props) {
|
|||
}, []);
|
||||
|
||||
const onSubmit = async (values) => {
|
||||
await isExistenceDuplicateSelection({ data: values.promisePersons, key: "userId", message: `${promiseType === 1 ? "受状人" : "承诺人"}不能重复` });
|
||||
if (promiseType === 1) {
|
||||
await isExistenceDuplicateSelection({ data: values.promisePersons, key: "userId", message: "受状人不能重复" });
|
||||
}
|
||||
else {
|
||||
await isExistenceDuplicateSelection({ data: values.promisePersons, key: "postId", message: "承诺人岗位不能重复" });
|
||||
}
|
||||
const peoples = values.promisePeoples.map(item => ({
|
||||
...item,
|
||||
isPromisePeople: 1,
|
||||
}));
|
||||
const peopleNumInvolved = values.promisePersons.reduce((acc, item) => acc + item.userName.length, 0);
|
||||
const persons = values.promisePersons.map(item => ({
|
||||
...item,
|
||||
userName: item.userName,
|
||||
userId: item.userId,
|
||||
userName: Array.isArray(item.userName) ? item.userName.join(",") : item.userName,
|
||||
userId: Array.isArray(item.userId) ? item.userId.join(",") : item.userId,
|
||||
isPromisePeople: 0,
|
||||
}));
|
||||
const promiseAll = [...peoples, ...persons];
|
||||
|
|
@ -98,7 +104,7 @@ function Add(props) {
|
|||
id: query.id,
|
||||
promiseId: query.promiseId,
|
||||
promisePeoples: promiseAll,
|
||||
peopleNumInvolved: values.promisePersons.length,
|
||||
peopleNumInvolved,
|
||||
});
|
||||
if (success) {
|
||||
message.success("操作成功");
|
||||
|
|
@ -107,283 +113,281 @@ function Add(props) {
|
|||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title={query.id ? "编辑" : "新增"} />
|
||||
<div style={{ paddingBottom: 10 }}>
|
||||
<FormBuilder
|
||||
form={form}
|
||||
values={{
|
||||
promisePeoples: [{}], // 被承诺人
|
||||
promisePersons: [{}], // 承诺人
|
||||
}}
|
||||
onFinish={onSubmit}
|
||||
loading={props.commitment.commitmentLoading}
|
||||
options={[
|
||||
{ name: "promiseName", label: "承诺书名称", span: 24 },
|
||||
{
|
||||
name: "releasePlatform",
|
||||
label: "下发对象",
|
||||
span: releasePlatform === 1 ? 12 : 24,
|
||||
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
||||
items: RELEASE_PLATFORM_ENUM.map(item => ({ ...item, bianma: +item.bianma })),
|
||||
componentProps: {
|
||||
onChange: () => {
|
||||
form.setFieldValue("promisePersons", [{}]);
|
||||
form.setFieldValue("levelName", "");
|
||||
},
|
||||
<Page headerTitle={query.id ? "编辑" : "新增"} isShowFooter={false}>
|
||||
<FormBuilder
|
||||
form={form}
|
||||
values={{
|
||||
promisePeoples: [{}], // 被承诺人
|
||||
promisePersons: [{}], // 承诺人
|
||||
}}
|
||||
onFinish={onSubmit}
|
||||
loading={props.commitment.commitmentLoading}
|
||||
options={[
|
||||
{ name: "promiseName", label: "承诺书名称", span: 24 },
|
||||
{
|
||||
name: "releasePlatform",
|
||||
label: "下发对象",
|
||||
span: releasePlatform === 1 ? 12 : 24,
|
||||
render: FORM_ITEM_RENDER_ENUM.SELECT,
|
||||
items: RELEASE_PLATFORM_ENUM.map(item => ({ ...item, bianma: +item.bianma })),
|
||||
componentProps: {
|
||||
onChange: () => {
|
||||
form.setFieldValue("promisePersons", [{}]);
|
||||
form.setFieldValue("levelName", "");
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "level",
|
||||
label: "承诺书级别",
|
||||
dependencies: ["releasePlatform"],
|
||||
hidden: formValues => !(formValues.releasePlatform === 1),
|
||||
render: (
|
||||
<DictionarySelect
|
||||
dictValue="PROMISE_LEVEL"
|
||||
onGetLabel={label => 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: [validatorEndTime(promiseTermStart), {
|
||||
validator: (_, value) => {
|
||||
if (value && promiseTermStart) {
|
||||
const startYear = dayjs(promiseTermStart).year();
|
||||
const endYear = dayjs(value).year();
|
||||
},
|
||||
{
|
||||
name: "level",
|
||||
label: "承诺书级别",
|
||||
dependencies: ["releasePlatform"],
|
||||
hidden: formValues => !(formValues.releasePlatform === 1),
|
||||
render: (
|
||||
<DictionarySelect
|
||||
dictValue="PROMISE_LEVEL"
|
||||
onGetLabel={label => 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: [validatorEndTime(promiseTermStart), {
|
||||
validator: (_, value) => {
|
||||
if (value && promiseTermStart) {
|
||||
const startYear = dayjs(promiseTermStart).year();
|
||||
const endYear = dayjs(value).year();
|
||||
|
||||
if (startYear !== endYear) {
|
||||
return Promise.reject("开始时间和结束时间不能跨年");
|
||||
}
|
||||
if (startYear !== endYear) {
|
||||
return Promise.reject("开始时间和结束时间不能跨年");
|
||||
}
|
||||
return Promise.resolve();
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
}],
|
||||
},
|
||||
{ key: "divider1", label: "承诺内容", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||
{
|
||||
key: "commitmentContentButton",
|
||||
customizeRender: true,
|
||||
span: 24,
|
||||
render: (
|
||||
<div style={{ textAlign: "right", marginBottom: "20px" }}>
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setChoiceTemplateModalOpen(true);
|
||||
}}
|
||||
>
|
||||
选择模板
|
||||
</Button>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
...(isAlreadyChoiceTemplate
|
||||
? [
|
||||
{ name: "promiseTypeName", label: "安全承诺类型", span: 24, componentProps: { disabled: true } },
|
||||
{ name: "promiseType", label: "安全承诺类型", onlyForLabel: true },
|
||||
{
|
||||
name: "promiseText",
|
||||
label: "安全承诺内容",
|
||||
span: 24,
|
||||
render: (<Editor />),
|
||||
required: false,
|
||||
formItemProps: { required: true },
|
||||
rules: [{ required: true, message: "请输入安全承诺内容", validateTrigger: "onBlur" }],
|
||||
},
|
||||
}],
|
||||
},
|
||||
{ key: "divider1", label: "承诺内容", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
|
||||
{
|
||||
key: "commitmentContentButton",
|
||||
customizeRender: true,
|
||||
span: 24,
|
||||
render: (
|
||||
<div style={{ textAlign: "right", marginBottom: "20px" }}>
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setChoiceTemplateModalOpen(true);
|
||||
}}
|
||||
>
|
||||
选择模板
|
||||
</Button>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
...(isAlreadyChoiceTemplate
|
||||
? [
|
||||
{ name: "promiseTypeName", label: "安全承诺类型", span: 24, componentProps: { disabled: true } },
|
||||
{ name: "promiseType", label: "安全承诺类型", onlyForLabel: true },
|
||||
{
|
||||
name: "promiseText",
|
||||
label: "安全承诺内容",
|
||||
span: 24,
|
||||
render: (<Editor />),
|
||||
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"], "");
|
||||
},
|
||||
{ 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"], promiseType === 1 ? "" : []);
|
||||
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: (
|
||||
<DepartmentSelectTree
|
||||
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"], "");
|
||||
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"], "");
|
||||
},
|
||||
{ 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: (
|
||||
<DepartmentSelectTree
|
||||
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"], promiseType === 1 ? "" : []);
|
||||
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"], promiseType === 1 ? "" : []);
|
||||
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: (
|
||||
<PersonnelSelect
|
||||
params={{
|
||||
postId: promisePersons?.[field.name]?.postId || "",
|
||||
departmentId: promisePersons?.[field.name]?.departmentId || "",
|
||||
}}
|
||||
isNeedPostId={true}
|
||||
onGetLabel={(label) => {
|
||||
form.setFieldValue(["promisePersons", field.name, "userName"], label);
|
||||
}}
|
||||
/>
|
||||
),
|
||||
},
|
||||
]
|
||||
),
|
||||
},
|
||||
},
|
||||
{ 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: (
|
||||
<PersonnelSelect
|
||||
params={{
|
||||
postId: promisePersons?.[field.name]?.postId || "",
|
||||
departmentId: promisePersons?.[field.name]?.departmentId || "",
|
||||
}}
|
||||
isNeedPostId={true}
|
||||
onGetLabel={(label) => {
|
||||
form.setFieldValue(["promisePersons", field.name, "userName"], label);
|
||||
}}
|
||||
mode={promiseType === 1 ? "" : "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: (
|
||||
<DepartmentSelectTree
|
||||
onChange={async (departmentId) => {
|
||||
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" }));
|
||||
},
|
||||
{ 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: (
|
||||
<DepartmentSelectTree
|
||||
onChange={async (departmentId) => {
|
||||
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: (
|
||||
<PersonnelSelect
|
||||
params={{
|
||||
postId: promisePeoples?.[field.name]?.postId || "",
|
||||
departmentId: promisePeoples?.[field.name]?.departmentId || "",
|
||||
}}
|
||||
isNeedPostId={true}
|
||||
onGetLabel={(label) => {
|
||||
form.setFieldValue(["promisePeoples", field.name, "userName"], label);
|
||||
}}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{ name: [field.name, "userName"], label: "人员名称", onlyForLabel: true },
|
||||
]
|
||||
),
|
||||
},
|
||||
},
|
||||
{ name: [field.name, "postName"], label: "岗位名称", onlyForLabel: true },
|
||||
{
|
||||
name: [field.name, "userId"],
|
||||
label: "人员",
|
||||
span: 8,
|
||||
labelCol: { span: 6 },
|
||||
render: (
|
||||
<PersonnelSelect
|
||||
params={{
|
||||
postId: promisePeoples?.[field.name]?.postId || "",
|
||||
departmentId: promisePeoples?.[field.name]?.departmentId || "",
|
||||
}}
|
||||
isNeedPostId={true}
|
||||
onGetLabel={(label) => {
|
||||
form.setFieldValue(["promisePeoples", field.name, "userName"], label);
|
||||
}}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{ name: [field.name, "userName"], label: "人员名称", onlyForLabel: true },
|
||||
]
|
||||
),
|
||||
},
|
||||
]
|
||||
: [
|
||||
{ key: "tip", customizeRender: true, span: 24, render: (<div style={{ color: "red", textAlign: "center" }}>请先选择安全承诺模板</div>) },
|
||||
]),
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
},
|
||||
]
|
||||
: [
|
||||
{ key: "tip", customizeRender: true, span: 24, render: (<div style={{ color: "red", textAlign: "center" }}>请先选择安全承诺模板</div>) },
|
||||
]),
|
||||
]}
|
||||
/>
|
||||
{choiceTemplateModalOpen && (
|
||||
<ChoiceTemplateModal
|
||||
onCancel={() => setChoiceTemplateModalOpen(false)}
|
||||
|
|
@ -401,7 +405,7 @@ function Add(props) {
|
|||
}}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -414,6 +418,7 @@ const ChoiceTemplateModalComponent = (props) => {
|
|||
|
||||
return (
|
||||
<Modal
|
||||
title="选择模板"
|
||||
open
|
||||
width={1200}
|
||||
maskClosable={false}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Descriptions, Divider, Spin } from "antd";
|
||||
import { Button, Descriptions, Divider } from "antd";
|
||||
import { useEffect, useState } from "react";
|
||||
import HeaderBack from "zy-react-library/components/HeaderBack";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import { getLabelName } from "zy-react-library/utils";
|
||||
import { PROMISE_TYPE_ENUM, RELEASE_PLATFORM_ENUM } from "~/enumerate/constant";
|
||||
|
|
@ -26,85 +26,83 @@ function Detail(props) {
|
|||
}, []);
|
||||
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title="查看" />
|
||||
<Spin spinning={props.commitment.commitmentLoading}>
|
||||
<div style={{ padding: 20 }}>
|
||||
<Divider orientation="left">基本信息</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 } }}
|
||||
items={[
|
||||
{ label: "安全承诺名称", children: detail.promiseName },
|
||||
{ label: "下发对象", children: getLabelName({ list: RELEASE_PLATFORM_ENUM, status: detail.releasePlatform }) },
|
||||
...(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 },
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">承诺内容</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 } }}
|
||||
items={[
|
||||
{ label: "承诺内容", children: (<div dangerouslySetInnerHTML={{ __html: detail.promiseText }} />) },
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">{detail.promiseType === 1 ? "受状人" : "承诺人"}</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={2}
|
||||
styles={{ label: { width: 200 }, content: { width: 720 } }}
|
||||
items={[
|
||||
...(detail.promisePersons || []).flatMap((item, index) => {
|
||||
const base = [
|
||||
{ label: `部门${index + 1}`, children: item.departmentName || "-" },
|
||||
{ label: `岗位${index + 1}`, children: item.postName || "-" },
|
||||
{ label: `人员${index + 1}`, children: item.userName || "-" },
|
||||
];
|
||||
<Page
|
||||
headerTitle="查看"
|
||||
contentPadding="0 20px 20px 20px"
|
||||
extraActionButtons={(
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(query.id);
|
||||
setModalUrl("busPromiseView");
|
||||
}}
|
||||
>
|
||||
模板
|
||||
</Button>
|
||||
)}
|
||||
>
|
||||
<Divider orientation="left">基本信息</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 } }}
|
||||
items={[
|
||||
{ label: "安全承诺名称", children: detail.promiseName },
|
||||
{ label: "下发对象", children: getLabelName({ list: RELEASE_PLATFORM_ENUM, status: detail.releasePlatform }) },
|
||||
...(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 },
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">承诺内容</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={1}
|
||||
styles={{ label: { width: 200 } }}
|
||||
items={[
|
||||
{ label: "承诺内容", children: (<div dangerouslySetInnerHTML={{ __html: detail.promiseText }} />) },
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">{detail.promiseType === 1 ? "受状人" : "承诺人"}</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={2}
|
||||
styles={{ label: { width: 200 }, content: { width: 720 } }}
|
||||
items={[
|
||||
...(detail.promisePersons || []).flatMap((item, index) => {
|
||||
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;
|
||||
}),
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">{detail.promiseType === 1 ? "发状人" : "被承诺人"}</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={2}
|
||||
styles={{ label: { width: 200 }, content: { width: 720 } }}
|
||||
items={[
|
||||
{ label: "部门", children: detail.promisePeople?.departmentName || "-" },
|
||||
{ label: "岗位", children: detail.promisePeople?.postName || "-" },
|
||||
{ label: "人员", children: detail.promisePeople?.userName || "-" },
|
||||
]}
|
||||
/>
|
||||
<div style={{ textAlign: "center", margin: "20px 0" }}>
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(query.id);
|
||||
setModalUrl("busPromiseView");
|
||||
}}
|
||||
>
|
||||
模板
|
||||
</Button>
|
||||
</div>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</div>
|
||||
</Spin>
|
||||
</div>
|
||||
return base;
|
||||
}),
|
||||
]}
|
||||
/>
|
||||
<Divider orientation="left">{detail.promiseType === 1 ? "发状人" : "被承诺人"}</Divider>
|
||||
<Descriptions
|
||||
bordered
|
||||
column={2}
|
||||
styles={{ label: { width: 200 }, content: { width: 720 } }}
|
||||
items={[
|
||||
{ label: "部门", children: detail.promisePeople?.departmentName || "-" },
|
||||
{ label: "岗位", children: detail.promisePeople?.postName || "-" },
|
||||
{ label: "人员", children: detail.promisePeople?.userName || "-" },
|
||||
]}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ 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 Page from "zy-react-library/components/Page";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import DictionarySelect from "zy-react-library/components/Select/Dictionary";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
|
|
@ -56,7 +57,7 @@ function List(props) {
|
|||
};
|
||||
|
||||
return (
|
||||
<div style={{ padding: 20 }}>
|
||||
<Page isShowAllAction={false}>
|
||||
<Search
|
||||
form={form}
|
||||
options={[
|
||||
|
|
@ -191,7 +192,7 @@ function List(props) {
|
|||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
</div>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Form, Space } from "antd";
|
||||
import { useState } from "react";
|
||||
import HeaderBack from "zy-react-library/components/HeaderBack";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import useTable from "zy-react-library/hooks/useTable";
|
||||
|
|
@ -20,55 +20,53 @@ function List(props) {
|
|||
const [id, setId] = useState("");
|
||||
const [modalUrl, setModalUrl] = useState("");
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title="签署详情" />
|
||||
<div style={{ padding: 20 }}>
|
||||
<Table
|
||||
toolBarRender={() => (
|
||||
<Space>
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(query.id);
|
||||
setModalUrl("busPromisePeopleAllSign");
|
||||
}}
|
||||
>
|
||||
签署汇总
|
||||
</Button>
|
||||
</Space>
|
||||
)}
|
||||
columns={[
|
||||
{ title: "部门", dataIndex: "departmentName" },
|
||||
{ title: "岗位", dataIndex: "postName" },
|
||||
{ title: "人员", dataIndex: "userName" },
|
||||
{ title: "签署时间", dataIndex: "signTime" },
|
||||
{ title: "签署状态", render: (_, record) => getLabelName({ list: [{ name: "未签署", bianma: "0" }, { name: "已签署", bianma: "1" }], status: record.isSign }) },
|
||||
{
|
||||
title: "操作",
|
||||
width: 200,
|
||||
fixed: "right",
|
||||
render: (_, record) => (
|
||||
<Space>
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(record.id);
|
||||
setModalUrl("busPromisePeopleView");
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</Button>
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</div>
|
||||
</div>
|
||||
<Page headerTitle="签署详情">
|
||||
<Table
|
||||
toolBarRender={() => (
|
||||
<Space>
|
||||
<Button
|
||||
type="primary"
|
||||
ghost
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(query.id);
|
||||
setModalUrl("busPromisePeopleAllSign");
|
||||
}}
|
||||
>
|
||||
签署汇总
|
||||
</Button>
|
||||
</Space>
|
||||
)}
|
||||
columns={[
|
||||
{ title: "部门", dataIndex: "departmentName" },
|
||||
{ title: "岗位", dataIndex: "postName" },
|
||||
{ title: "人员", dataIndex: "userName" },
|
||||
{ title: "签署时间", dataIndex: "signTime" },
|
||||
{ title: "签署状态", render: (_, record) => getLabelName({ list: [{ name: "未签署", bianma: "0" }, { name: "已签署", bianma: "1" }], status: record.isSign }) },
|
||||
{
|
||||
title: "操作",
|
||||
width: 200,
|
||||
fixed: "right",
|
||||
render: (_, record) => (
|
||||
<Space>
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(record.id);
|
||||
setModalUrl("busPromisePeopleView");
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</Button>
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</Page>
|
||||
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Form, Space } from "antd";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
|
||||
|
|
@ -13,7 +14,7 @@ function List(props) {
|
|||
});
|
||||
|
||||
return (
|
||||
<div style={{ padding: 20 }}>
|
||||
<Page isShowAllAction={false}>
|
||||
<Search
|
||||
form={form}
|
||||
options={[
|
||||
|
|
@ -49,7 +50,7 @@ function List(props) {
|
|||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
</div>
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Form, Space } from "antd";
|
||||
import HeaderBack from "zy-react-library/components/HeaderBack";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import Search from "zy-react-library/components/Search";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import useTable from "zy-react-library/hooks/useTable";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
import { NS_COMMITMENT } from "~/enumerate/namespace";
|
||||
|
||||
function List(props) {
|
||||
|
|
@ -18,45 +18,42 @@ function List(props) {
|
|||
});
|
||||
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title="查看" />
|
||||
<div style={{ padding: "0 20px 20px 20px" }}>
|
||||
<Search
|
||||
form={form}
|
||||
options={[
|
||||
{ name: "promiseName", label: "安全承诺名称" },
|
||||
]}
|
||||
onFinish={getData}
|
||||
/>
|
||||
<Table
|
||||
columns={[
|
||||
{ title: "安全承诺名称", dataIndex: "promiseName" },
|
||||
{ title: "承诺期限", render: (_, record) => record.promiseTermStart ? `${record.promiseTermStart}至${record.promiseTermEnd}` : "" },
|
||||
{ title: "安全承诺级别", dataIndex: "levelName" },
|
||||
{ title: "涉及人数", dataIndex: "peopleNumInvolved" },
|
||||
{ title: "完成提交人数", dataIndex: "signedCount" },
|
||||
{
|
||||
title: "操作",
|
||||
width: 150,
|
||||
fixed: "right",
|
||||
render: (_, record) => (
|
||||
<Space>
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
props.history.push(`./view?id=${record.id}`);
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</Button>
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<Page headerTitle="查看">
|
||||
<Search
|
||||
form={form}
|
||||
options={[
|
||||
{ name: "promiseName", label: "安全承诺名称" },
|
||||
]}
|
||||
onFinish={getData}
|
||||
/>
|
||||
<Table
|
||||
columns={[
|
||||
{ title: "安全承诺名称", dataIndex: "promiseName" },
|
||||
{ title: "承诺期限", render: (_, record) => record.promiseTermStart ? `${record.promiseTermStart}至${record.promiseTermEnd}` : "" },
|
||||
{ title: "安全承诺级别", dataIndex: "levelName" },
|
||||
{ title: "涉及人数", dataIndex: "peopleNumInvolved" },
|
||||
{ title: "完成提交人数", dataIndex: "signedCount" },
|
||||
{
|
||||
title: "操作",
|
||||
width: 150,
|
||||
fixed: "right",
|
||||
render: (_, record) => (
|
||||
<Space>
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
props.history.push(`./view?id=${record.id}&promiseId=${record.promiseId}`);
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</Button>
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
</Page>
|
||||
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Connect } from "@cqsjjb/jjb-dva-runtime";
|
||||
import { Button, Space } from "antd";
|
||||
import { useState } from "react";
|
||||
import HeaderBack from "zy-react-library/components/HeaderBack";
|
||||
import Page from "zy-react-library/components/Page";
|
||||
import Table from "zy-react-library/components/Table";
|
||||
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
||||
import useTable from "zy-react-library/hooks/useTable";
|
||||
|
|
@ -16,45 +16,56 @@ function List(props) {
|
|||
const query = useGetUrlQuery();
|
||||
const { tableProps } = useTable(props["busPromisePeopleList"], {
|
||||
params: {
|
||||
corpId: query.id,
|
||||
promiseId: query.promiseId,
|
||||
},
|
||||
});
|
||||
|
||||
return (
|
||||
<div>
|
||||
<HeaderBack title="查看" />
|
||||
<div style={{ padding: "0 20px 20px 20px" }}>
|
||||
<Table
|
||||
columns={[
|
||||
{ title: "所属部门", dataIndex: "departmentName" },
|
||||
{ title: "姓名", dataIndex: "userName" },
|
||||
{ title: "签署状态", dataIndex: "isSign", render: (_, record) => getLabelName({ list: [{ name: "未签署", bianma: "0" }, { name: "已签署", bianma: "1" }], status: record.isSign }) },
|
||||
{
|
||||
title: "操作",
|
||||
width: 150,
|
||||
fixed: "right",
|
||||
render: (_, record) => (
|
||||
<Space>
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(record.id);
|
||||
setModalUrl("busPromisePeopleView");
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</Button>
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Page headerTitle="详情列表">
|
||||
<Table
|
||||
toolBarRender={() => (
|
||||
<Space>
|
||||
<Button
|
||||
type="primary"
|
||||
ghost
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(query.id);
|
||||
setModalUrl("busPromisePeopleAllSign");
|
||||
}}
|
||||
>
|
||||
签署汇总
|
||||
</Button>
|
||||
</Space>
|
||||
)}
|
||||
columns={[
|
||||
{ title: "所属部门", dataIndex: "departmentName" },
|
||||
{ title: "姓名", dataIndex: "userName" },
|
||||
{ title: "签署状态", dataIndex: "isSign", render: (_, record) => getLabelName({ list: [{ name: "未签署", bianma: "0" }, { name: "已签署", bianma: "1" }], status: record.isSign }) },
|
||||
{
|
||||
title: "操作",
|
||||
width: 150,
|
||||
fixed: "right",
|
||||
render: (_, record) => (
|
||||
<Space>
|
||||
<Button
|
||||
type="link"
|
||||
onClick={() => {
|
||||
setBusPromiseTemplateModalOpen(true);
|
||||
setId(record.id);
|
||||
setModalUrl("busPromisePeopleView");
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</Button>
|
||||
</Space>
|
||||
),
|
||||
},
|
||||
]}
|
||||
{...tableProps}
|
||||
/>
|
||||
{busPromiseTemplateModalOpen && <DetailModal onCancel={() => setBusPromiseTemplateModalOpen(false)} id={id} modalUrl={modalUrl} />}
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ const DetailModal = (props) => {
|
|||
if (props.id) {
|
||||
const { data } = await props[props.modalUrl]({ id: props.id });
|
||||
setForm(data);
|
||||
props.onGetData?.(data);
|
||||
}
|
||||
};
|
||||
useEffect(() => {
|
||||
|
|
@ -34,85 +35,86 @@ const DetailModal = (props) => {
|
|||
`,
|
||||
documentTitle: "",
|
||||
});
|
||||
return (
|
||||
<>
|
||||
<Modal
|
||||
title={form.promiseType === 0 ? "安全生产承诺书" : "安全生产责任状"}
|
||||
open
|
||||
onCancel={props.onCancel}
|
||||
okText="打印"
|
||||
onOk={handlePrint}
|
||||
width={800}
|
||||
>
|
||||
<div ref={contentRef} className="dialogContent">
|
||||
<div className="cover print_use">
|
||||
<h1>{form.promiseType === 0 ? "安全生产承诺书" : "安全生产责任状"}</h1>
|
||||
|
||||
const renderContent = () => {
|
||||
return (
|
||||
<div ref={contentRef} className="dialogContent">
|
||||
<div className="cover print_use">
|
||||
<h1>{form.promiseType === 0 ? "安全生产承诺书" : "安全生产责任状"}</h1>
|
||||
<div>
|
||||
<div>河 北 港 口 集 团 有 限 公 司</div>
|
||||
<div>
|
||||
<div>河 北 港 口 集 团 有 限 公 司</div>
|
||||
<div>
|
||||
(
|
||||
{form.createTime ? dayjs(form.createTime).format("YYYY年") : ""}
|
||||
)
|
||||
</div>
|
||||
(
|
||||
{form.createTime ? dayjs(form.createTime).format("YYYY年") : ""}
|
||||
)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="promise-content">
|
||||
<h1 className="title">{form.promiseType === 0 ? "安全生产承诺书" : "安全生产责任状"}</h1>
|
||||
<div className="promise-content">
|
||||
<h1 className="title">{form.promiseType === 0 ? "安全生产承诺书" : "安全生产责任状"}</h1>
|
||||
|
||||
{form.promiseType === 0 && (
|
||||
<div>
|
||||
{`${form.promisePeople ? `${form.promisePeople + form.promisePeoplePost}:` : ""}` || ""}
|
||||
{form.promiseType === 0 && (
|
||||
<div>
|
||||
{`${(form.promisePeople && form.promisePeoplePost) ? `${form.promisePeople + form.promisePeoplePost}:` : ""}` || ""}
|
||||
</div>
|
||||
)}
|
||||
<div dangerouslySetInnerHTML={{ __html: form.promiseText }} />
|
||||
|
||||
<div className="text">
|
||||
{
|
||||
form.promiseType === 0
|
||||
? (
|
||||
<div>若违反上述承诺和未履行安全生产职责,或发生责任事故的,接受政府或公司事故调查组做出的处罚决定。</div>
|
||||
)
|
||||
: (
|
||||
<div>若未履行安全生产职责,或发生生产安全事故的,接受公司或政府事故调查组做出的处罚。</div>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
|
||||
<div style={{ alignItems: form.filepath ? "flex-end" : "flex-start" }}>
|
||||
{form.promiseType === 1 && (
|
||||
<div className="hairdresser">
|
||||
<div className="promiser">
|
||||
发状人:
|
||||
{form.promisePeople}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<div dangerouslySetInnerHTML={{ __html: form.promiseText }} />
|
||||
|
||||
<div className="text">
|
||||
{
|
||||
form.promiseType === 0
|
||||
? (
|
||||
<div>若违反上述承诺和未履行安全生产职责,或发生责任事故的,接受政府或公司事故调查组做出的处罚决定。</div>
|
||||
)
|
||||
: (
|
||||
<div>若未履行安全生产职责,或发生生产安全事故的,接受公司或政府事故调查组做出的处罚。</div>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
|
||||
<div style={{ alignItems: form.filepath ? "flex-end" : "flex-start" }}>
|
||||
{form.promiseType === 1 && (
|
||||
<div className="hairdresser">
|
||||
{!form.filepath
|
||||
? (
|
||||
<div className="promiser">
|
||||
发状人:
|
||||
{form.userName}
|
||||
</div>
|
||||
)
|
||||
: (
|
||||
<div className="promiser">
|
||||
<span style={{ marginRight: form.filepath ? "0px" : "105px" }}>
|
||||
发状人:
|
||||
<Image src={getFileUrl() + form.filepath} alt="sign" width={100} height={100} />
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="footer">
|
||||
<div className="respondent">
|
||||
<div style={{ marginRight: form.filepath ? "0px" : "105px" }} className="promiser">
|
||||
<div style={{ textIndent: "35px" }}>{form.promiseType === 0 ? "承诺人(本人签字)" : "受状人"}</div>
|
||||
:
|
||||
{(form.filepath && !form.signList) && <Image src={getFileUrl() + form.filepath} alt="sign" width={100} height={100} />}
|
||||
{form.signList && <PreviewImg files={form.signList} fileUrlKey="filepath" />}
|
||||
</div>
|
||||
<div className="footer">
|
||||
<div className="respondent">
|
||||
<div style={{ marginRight: form.filepath ? "0px" : "105px" }} className="promiser">
|
||||
<div style={{ textIndent: "35px" }}>{form.promiseType === 0 ? "承诺人(本人签字)" : "受状人"}</div>
|
||||
:
|
||||
{(form.filepath && !form.signList) && <Image src={getFileUrl() + form.filepath} alt="sign" width={100} height={100} />}
|
||||
{form.signList && <PreviewImg files={form.signList} fileUrlKey="filepath" />}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
if (props.inline) {
|
||||
return renderContent();
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Modal
|
||||
title={form.promiseType === 0 ? "安全生产承诺书" : "安全生产责任状"}
|
||||
open
|
||||
maskClosable={false}
|
||||
onCancel={props.onCancel}
|
||||
okText="打印"
|
||||
onOk={handlePrint}
|
||||
width={800}
|
||||
>
|
||||
{renderContent()}
|
||||
</Modal>
|
||||
</>
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue