bug修改

master
LiuJiaNan 2025-12-17 15:41:32 +08:00
parent f4b3885675
commit 5ea3a687ec
13 changed files with 138 additions and 69 deletions

View File

@ -31,7 +31,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-to-print": "^3.2.0",
"zy-react-library": "^1.0.163"
"zy-react-library": "^1.0.167"
},
"devDependencies": {
"@antfu/eslint-config": "^5.4.1",

View File

@ -45,20 +45,38 @@ function Add(props) {
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,
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: "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 /> },
{
name: "promiseText",
label: "承诺内容",
span: 24,
render: (<Editor />),
required: false,
formItemProps: { required: true },
rules: [{ required: true, message: "请输入安全承诺内容" }],
},
]}
/>
</div>

View File

@ -6,6 +6,7 @@ import AddIcon from "zy-react-library/components/Icon/AddIcon";
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";
@ -17,15 +18,15 @@ function List(props) {
const [busPromiseTemplateModalOpen, setBusPromiseTemplateModalOpen] = useState(false);
const [id, setId] = useState("");
const [modalUrl, setModalUrl] = useState("");
const updatate = (id, state) => {
const updateState = (id, state) => {
const stateValue = state === 0 ? 1 : 0;
Modal.confirm({
title: "提示",
content: `确定要${state === 0 ? "禁用" : "启用"}当前承诺吗?`,
content: `确定要${state === 0 ? "禁用" : "启用"}当前安全承诺吗?`,
onOk: async () => {
const { success } = await props["busPromiseTemplateUpdate"]({ id, state: stateValue });
if (success) {
message.success("更新成功");
message.success(`${state === 0 ? "禁用" : "启用"}成功`);
getData();
}
},
@ -61,6 +62,7 @@ function List(props) {
{ title: "安全承诺模板名称", dataIndex: "promiseName" },
{ title: "安全承诺级别", dataIndex: "levelName" },
{ title: "添加时间", dataIndex: "createTime" },
{ title: "状态", render: (_, record) => getLabelName({ list: [{ name: "启用", bianma: "0" }, { name: "禁用", bianma: "1" }], status: record.state }) },
{
title: "操作",
width: 200,
@ -78,7 +80,7 @@ function List(props) {
查看
</Button>
{props.permission("qy-promise-template-disable") && (
<Button type="link" onClick={() => updatate(record.id, record.state)}>
<Button type="link" onClick={() => updateState(record.id, record.state)}>
{record.state === 0 ? "禁用" : "启用"}
</Button>
)}

View File

@ -67,6 +67,7 @@ function Add(props) {
for (let i = 0; i < values.promisePersons.length; i++) {
await getPostList(values.promisePersons[i].departmentId, i);
}
await getPostList1(values.passiveDepartmentId);
}
};
useEffect(() => {
@ -74,7 +75,7 @@ function Add(props) {
}, []);
const onSubmit = async (values) => {
const persons = promisePersons.map(item => ({
const persons = values.promisePersons.map(item => ({
...item,
userName: item.userName.join(","),
userId: item.userId.join(","),
@ -115,6 +116,7 @@ function Add(props) {
promisePersons: [{}], // 承诺人
}}
onFinish={onSubmit}
loading={props.commitment.commitmentLoading}
options={[
{ name: "promiseName", label: "安全承诺名称" },
{
@ -167,7 +169,15 @@ function Add(props) {
},
{ name: "promiseTypeName", label: "安全承诺类型", onlyForLabel: true },
{ name: "promiseType", label: "安全承诺类型", onlyForLabel: true },
{ name: "promiseText", label: "安全承诺内容", span: 24, render: (<Editor />) },
{
name: "promiseText",
label: "安全承诺内容",
span: 24,
render: (<Editor />),
required: false,
formItemProps: { required: true },
rules: [{ required: true, message: "请输入安全承诺内容" }],
},
{ key: "divider2", label: "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
{
name: "promisePersons",
@ -210,7 +220,12 @@ function Add(props) {
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, "postName"], getLabelName({
list: postList[index],
status: event,
nameKey: "postName",
idKey: "id",
}));
form.setFieldValue(["promisePersons", field.name, "userName"], "");
form.setFieldValue(["promisePersons", field.name, "userId"], []);
},
@ -276,7 +291,12 @@ function Add(props) {
itemsField: { labelKey: "postName", valueKey: "id" },
componentProps: {
onChange: (event) => {
form.setFieldValue("passivePostName", getLabelName({ list: postList1, status: event, nameKey: "postName", idKey: "id" }));
form.setFieldValue("passivePostName", getLabelName({
list: postList1,
status: event,
nameKey: "postName",
idKey: "id",
}));
form.setFieldValue("passiveUserName", "");
form.setFieldValue("passiveUserId", "");
},
@ -309,7 +329,10 @@ function Add(props) {
onCancel={() => setchoiceTemplateModalOpen(false)}
onConfirm={(values) => {
form.setFieldValue("promiseType", values.promiseType);
form.setFieldValue("promiseTypeName", getLabelName({ list: PROMISE_TYPE_ENUM, status: values.promiseType }));
form.setFieldValue("promiseTypeName", getLabelName({
list: PROMISE_TYPE_ENUM,
status: values.promiseType,
}));
form.setFieldValue("promiseText", values.promiseText);
form.setFieldValue("promisePersons", [{}]);
form.setFieldValue("passiveDepartmentName", "");

View File

@ -29,7 +29,7 @@ function Detail(props) {
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
styles={{ label: { width: 200 }, content: { width: "auto" } }}
items={[
{ label: "安全承诺名称", children: detail.promiseName },
{ label: "安全承诺级别", children: detail.levelName },
@ -41,9 +41,9 @@ function Detail(props) {
<Descriptions
bordered
column={1}
styles={{ label: { width: 200 } }}
styles={{ label: { width: 200 }, content: { width: "auto" } }}
items={[
{ label: "承诺内容", children: detail.promiseText },
{ label: "承诺内容", children: (<div dangerouslySetInnerHTML={{ __html: detail.promiseText }} />) },
]}
/>
<Divider orientation="left">{detail.promiseType === 1 ? "受状人" : "承诺人"}</Divider>
@ -51,11 +51,11 @@ function Detail(props) {
<Descriptions
bordered
column={3}
styles={{ label: { width: 200 } }}
styles={{ label: { width: 200 }, content: { width: "auto" } }}
items={[
...(detail.promisePersons || []).flatMap((item, index) => {
const base = [
{ label: `部门${index + 1}`, children: item.departmentName || "-", span: (detail.releasePlatform !== 1 ? 2 : 1) },
{ label: `部门${index + 1}`, children: item.departmentName || "-" },
{ label: `岗位${index + 1}`, children: item.postName || "-" },
{ label: `人员${index + 1}`, children: item.userName || "-" },
];
@ -67,7 +67,7 @@ function Detail(props) {
<Descriptions
bordered
column={3}
styles={{ label: { width: 200 } }}
styles={{ label: { width: 200 }, content: { width: "auto" } }}
items={[
{ label: "部门", children: detail.promisePeople?.departmentName || "-" },
{ label: "岗位", children: detail.promisePeople?.postName || "-" },

View File

@ -26,11 +26,11 @@ function List(props) {
if (state === 1) {
Modal.confirm({
title: "提示",
content: "确定要下发当前承诺吗?",
content: "确定要下发当前安全承诺吗?",
onOk: async () => {
const { success } = await props["busPromiseUpdate"]({ id, state: stateValue });
if (success) {
message.success("更新成功");
message.success("下发成功");
getData();
}
},
@ -45,7 +45,7 @@ function List(props) {
{ name: "promiseName", label: "安全承诺名称" },
{ name: "level", label: "安全承诺级别", render: (<DictionarySelect dictValue="PROMISE_LEVEL" onGetLabel={label => form.setFieldValue("levelName", label)} />) },
{ name: "dates", label: "下发时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE },
{ name: "departments", label: "涉及部门", render: (<DepartmentSelectTree />) },
{ name: "departmentId", label: "涉及部门", render: (<DepartmentSelectTree />) },
{
name: "signState",
label: "签署状态",

View File

@ -46,12 +46,35 @@ function Add(props) {
<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 },
{ name: "level", label: "安全承诺级别", render: (<DictionarySelect dictValue="PROMISE_LEVEL" onGetLabel={label => form.setFieldValue("levelName", label)} />) },
{
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 />) },
{
name: "promiseText",
label: "承诺内容",
span: 24,
render: (<Editor />),
required: false,
formItemProps: { required: true },
rules: [{ required: true, message: "请输入安全承诺内容" }],
},
]}
/>
</div>

View File

@ -33,15 +33,15 @@ function List(props) {
},
});
};
const updatate = (id, state) => {
const updateState = (id, state) => {
const stateValue = state === 0 ? 1 : 0;
Modal.confirm({
title: "提示",
content: `确定要${state === 0 ? "禁用" : "启用"}当前承诺吗?`,
content: `确定要${state === 0 ? "禁用" : "启用"}当前安全承诺吗?`,
onOk: async () => {
const { success } = await props["busPromiseTemplateUpdate"]({ id, state: stateValue });
if (success) {
message.success("更新成功");
message.success(`${state === 0 ? "禁用" : "启用"}成功`);
getData();
}
},
@ -98,7 +98,7 @@ function List(props) {
查看
</Button>
{props.permission("jg-promise-template-disable") && (
<Button type="link" onClick={() => updatate(record.id, record.state)}>
<Button type="link" onClick={() => updateState(record.id, record.state)}>
{record.state === 0 ? "禁用" : "启用"}
</Button>
)}

View File

@ -76,16 +76,15 @@ function Add(props) {
}, []);
const onSubmit = async (values) => {
const peoples = promisePeoples.map(item => ({
const peoples = values.promisePeoples.map(item => ({
...item,
isPromisePeople: 1,
}));
const persons = promisePersons.map(item => ({
const persons = values.promisePersons.map(item => ({
...item,
userName: item.userName.join(","),
userId: item.userId.join(","),
isPromisePeople: 0,
peopleNumInvolved: values.promisePersons.length,
}));
const promiseAll = [...peoples, ...persons];
@ -94,6 +93,7 @@ function Add(props) {
id: query.id,
promiseId: query.promiseId,
promisePeoples: promiseAll,
peopleNumInvolved: values.promisePersons.length,
});
if (success) {
message.success("操作成功");
@ -112,6 +112,7 @@ function Add(props) {
promisePersons: [{}], // 承诺人
}}
onFinish={onSubmit}
loading={props.commitment.commitmentLoading}
options={[
{ name: "promiseName", label: "承诺书名称", span: 24 },
{
@ -179,7 +180,15 @@ function Add(props) {
},
{ name: "promiseTypeName", label: "安全承诺类型", span: 24, componentProps: { disabled: true } },
{ name: "promiseType", label: "安全承诺类型", onlyForLabel: true },
{ name: "promiseText", label: "安全承诺内容", span: 24, render: (<Editor />) },
{
name: "promiseText",
label: "安全承诺内容",
span: 24,
render: (<Editor />),
required: false,
formItemProps: { required: true },
rules: [{ required: true, message: "请输入安全承诺内容" }],
},
{ key: "divider2", label: promiseType === 1 ? "受状人" : "承诺人", render: FORM_ITEM_RENDER_ENUM.DIVIDER },
{
name: "promisePersons",
@ -226,7 +235,7 @@ function Add(props) {
render: (
<DepartmentSelectTree
isNeedCorpInfoId={!releasePlatform || releasePlatform === "1"}
params={{ corpinfoId: promisePersons?.[field.name]?.corpId || "" }}
params={{ eqCorpinfoId: promisePersons?.[field.name]?.corpId || "" }}
onChange={(departmentId) => {
form.setFieldValue(["promisePersons", field.name, "postId"], "");
form.setFieldValue(["promisePersons", field.name, "postName"], "");

View File

@ -41,11 +41,11 @@ function List(props) {
if (state === 1) {
Modal.confirm({
title: "提示",
content: "确定要下发当前承诺吗?",
content: "确定要下发当前安全承诺吗?",
onOk: async () => {
const { success } = await props["busPromiseUpdate"]({ id, state: stateValue });
if (success) {
message.success("更新成功");
message.success("下发成功");
getData();
}
},

View File

@ -19,7 +19,7 @@ function List(props) {
form={form}
options={[
{ name: "corpName", label: "分公司名称" },
{ name: "promiseType", label: "年份", render: FORM_ITEM_RENDER_ENUM.DATE_YEAR },
{ name: "year", label: "年份", render: FORM_ITEM_RENDER_ENUM.DATE_YEAR },
]}
onFinish={getData}
/>

View File

@ -61,20 +61,22 @@ const DetailModal = (props) => {
{form.promiseType === 0 && (
<div>
{`${form.userName ? `${form.userName}:` : ""}` || ""}
{`${form.userName ? `${form.userName + form.postName}:` : ""}` || ""}
</div>
)}
<div className="text" dangerouslySetInnerHTML={{ __html: form.promiseText }} />
<div className="promise-content" dangerouslySetInnerHTML={{ __html: form.promiseText }} />
<div className="text">
{form.promiseType === 0
? (
<div>若违反上述承诺和未履行安全生产职责或发生责任事故的接受政府或公司事故调查组做出的处罚决定</div>
)
: (
<div>若未履行安全生产职责或发生生产安全事故的接受公司或政府事故调查组做出的处罚</div>
)}
{
form.promiseType === 0
? (
<div>若违反上述承诺和未履行安全生产职责或发生责任事故的接受政府或公司事故调查组做出的处罚决定</div>
)
: (
<div>若未履行安全生产职责或发生生产安全事故的接受公司或政府事故调查组做出的处罚</div>
)
}
</div>
<div style={{ alignItems: form.filepath ? "flex-end" : "flex-start" }}>
@ -100,13 +102,11 @@ const DetailModal = (props) => {
<div className="footer">
<div className="respondent">
<div className="promiser">
<span style={{ marginRight: form.filepath ? "0px" : "105px" }}>
{form.promiseType === 0 ? "承诺人(本人签字)" : "受状人"}
{(form.filepath && !form.signList) && <Image src={getFileUrl() + form.filepath} alt="sign" width={100} height={100} />}
{form.signList && <PreviewImg files={form.signList} />}
</span>
<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>
@ -116,4 +116,5 @@ const DetailModal = (props) => {
</>
);
};
export default Connect([NS_COMMITMENT], true)(DetailModal);

View File

@ -1,12 +1,13 @@
.dialogContent {
padding: 50px;
font-size: 16px;
line-height: normal;
.cover {
height: 841pt;
text-align: center;
position: relative;
display: none;
font-size: 16px;
h1 {
padding-top: 300px;
@ -24,6 +25,13 @@
.cover {
display: block;
}
.promise-content {
word-wrap: break-word;
word-break: break-word;
white-space: pre-wrap;
overflow-wrap: break-word;
}
}
.title {
@ -32,20 +40,11 @@
.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;
@ -56,12 +55,6 @@
.promiser {
display: flex;
align-items: flex-end;
img {
margin-left: 30px;
width: 200px;
height: 100px;
}
}
.time {