Merge branch '20220510-委托推送的标段名称包含特殊字符导致weboffice文件创建失败' of http://10.124.128.2:8888/eshop/fe_service_ebtp_frontend into 20220413-zjl-公共服务平台

This commit is contained in:
jl-zhoujl2
2022-05-20 14:46:22 +08:00
11 changed files with 67 additions and 46 deletions

View File

@ -12,6 +12,7 @@ import { getProMethod } from "@/utils/session";
import WebOffice0609, { WebOfficeRefProps } from "@/pages/webOffice/weboffice0609";
import moment from "moment";
import { AnnouncementGetMsg1, AnnouncementGetMsg2, AnnouncementGetMsg3, AnnouncementGetMsg4 } from "@/utils/AboutAnnouncementHelp";
import { trim } from "@/utils/CommonUtils";
interface BiddingDocumentProps {
modalVisible: boolean;
@ -213,7 +214,7 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
let fromData = {
"tpId": tpId,
"documentName": form.getFieldValue("documentName"),
"documentName": trim(form.getFieldValue("documentName")),
"documentSetId": form.getFieldValue("documentSetId"),
"sections": packageMsg,
"contentFileId": ref.current?.DocFileCode,

View File

@ -1,3 +1,4 @@
import { trim } from '@/utils/CommonUtils';
import { message } from 'antd';
import { updateForm } from './service';
@ -22,6 +23,7 @@ export const changeDict = (dictList: any[], code: any) => {
*/
export const handleUpdate = async (fields: any) => {
fields.bidSectName = trim(fields.bidSectName);
const success = await updateForm(fields).then((res) => {
if (res.code == 200) {
message.success('编辑成功');

View File

@ -7,7 +7,7 @@ import { getSelectName, ProcurementMethodItem, updateUtils } from '../utils';
import { getBudgetAmountById, getByProvincesNumber, getDictRegion, getId, getProvince, getProvinces } from '../service';
import { getDicData } from '@/utils/session';
import '@/assets/lq_style.less';
import { isEmpty } from '@/utils/CommonUtils';
import { isEmpty, trim } from '@/utils/CommonUtils';
import { btnAuthority } from '@/utils/authority';
const { Option } = Select;
@ -203,6 +203,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
values.regionDictId = isEmpty(values.regionDictId) ? values.regionDictCity : values.regionDictId;
}
values.regionDictName = regionDictName;
values.projectName = trim(values.projectName);
!isIPassDecode && (values['isIPassDecode'] = '1');
updateUtils(values);
//tab标段页解除禁用
@ -355,12 +356,12 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
<Form.Item
label="代理机构项目编号"
name="agencyCompanyProjectNum"
// rules={[
// {
// validator: (_, value) =>
// /[\u4E00-\u9FA5]/i.test(value) ? Promise.reject('不能输入汉字') : Promise.resolve()
// }
// ]}
// rules={[
// {
// validator: (_, value) =>
// /[\u4E00-\u9FA5]/i.test(value) ? Promise.reject('不能输入汉字') : Promise.resolve()
// }
// ]}
>
<Input maxLength={49} disabled={whetherReadonly} readOnly={whetherReadonly} />
</Form.Item>

View File

@ -7,7 +7,7 @@ import { getSelectName, ProcurementMethodItem, updateUtils } from '../utils';
import { getBudgetAmountById, getByProvincesNumber, getDictRegion, getId, getProvince, getProvinces } from '../service';
import { getDicData } from '@/utils/session';
import '@/assets/lq_style.less';
import { isEmpty } from '@/utils/CommonUtils';
import { isEmpty, trim } from '@/utils/CommonUtils';
import { btnAuthority } from '@/utils/authority';
const { Option } = Select;
@ -194,6 +194,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
values.regionDictId = isEmpty(values.regionDictId) ? values.regionDictCity : values.regionDictId;
}
values.regionDictName = regionDictName;
values.projectName = trim(values.projectName);
updateUtils(values);
//tab标段页解除禁用
setTabFlag(false);

View File

@ -7,7 +7,7 @@ import { getSelectName, ProcurementMethodItem, updateUtils } from '../utils';
import { getBudgetAmountById, getByProvincesNumber, getDictRegion, getId, getProvince, getProvinces } from '../service';
import { getDicData } from '@/utils/session';
import '@/assets/lq_style.less';
import { isEmpty } from '@/utils/CommonUtils';
import { isEmpty, trim } from '@/utils/CommonUtils';
import { btnAuthority } from '@/utils/authority';
const { Option } = Select;
@ -202,6 +202,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
values.regionDictId = isEmpty(values.regionDictId) ? values.regionDictCity : values.regionDictId;
}
values.regionDictName = regionDictName;
values.projectName = trim(values.projectName);
!isIPassDecode && (values['isIPassDecode'] = '1');
updateUtils(values);
//tab标段页解除禁用

View File

@ -7,7 +7,7 @@ import { getSelectName, ProcurementMethodItem, updateUtils } from '../utils';
import { getByProvincesNumber, getDictRegion, getId, getProvince, getProvinces } from '../service';
import { getDicData } from '@/utils/session';
import '@/assets/lq_style.less';
import { isEmpty } from '@/utils/CommonUtils';
import { isEmpty, trim } from '@/utils/CommonUtils';
import { btnAuthority } from '@/utils/authority';
const { Option } = Select;
@ -200,6 +200,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
values.regionDictId = isEmpty(values.regionDictId) ? values.regionDictCity : values.regionDictId;
}
values.regionDictName = regionDictName;
values.projectName = trim(values.projectName);
!isIPassDecode && (values['isIPassDecode'] = '1');
updateUtils(values);
//tab标段页解除禁用

View File

@ -7,7 +7,7 @@ import { getSelectName, ProcurementMethodItem, updateUtils } from '../utils';
import { getBudgetAmountById, getByProvincesNumber, getDictRegion, getId, getProvince, getProvinces } from '../service';
import { getDicData } from '@/utils/session';
import '@/assets/lq_style.less';
import { isEmpty } from '@/utils/CommonUtils';
import { isEmpty, trim } from '@/utils/CommonUtils';
import { btnAuthority } from '@/utils/authority';
const { Option } = Select;
@ -204,6 +204,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
values.regionDictId = isEmpty(values.regionDictId) ? values.regionDictCity : values.regionDictId;
}
values.regionDictName = regionDictName;
values.projectName = trim(values.projectName);
!isIPassDecode && (values['isIPassDecode'] = '1');
updateUtils(values);
//tab标段页解除禁用

View File

@ -5,7 +5,7 @@ import React, { useEffect, useState } from 'react';
import { Form, Input, Button, Select, Radio, Col, Row, Modal } from 'antd';
import { getSelectName, ProcurementMethodItem, updateUtils } from '../utils';
import { getBudgetAmountById, getByProvincesNumber, getDictRegion, getId, getProvince, getProvinces } from '../service';
import { isEmpty } from '@/utils/CommonUtils';
import { isEmpty, trim } from '@/utils/CommonUtils';
import { getDicData } from '@/utils/session';
import '@/assets/lq_style.less';
import { btnAuthority } from '@/utils/authority';
@ -203,6 +203,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
values.regionDictId = isEmpty(values.regionDictId) ? values.regionDictCity : values.regionDictId;
}
values.regionDictName = regionDictName;
values.projectName = trim(values.projectName);
!isIPassDecode && (values['isIPassDecode'] = '1');
updateUtils(values);
//tab标段页解除禁用

View File

@ -5,7 +5,7 @@
import { Form, Input, Button, Select, Radio, Col, Row, Modal } from 'antd';
import { getSelectName, ProcurementMethodItem, updateUtils } from '../utils';
import { getBudgetAmountById, getByProvincesNumber, getDictRegion, getId, getProvince, getProvinces } from '../service';
import { isEmpty } from '@/utils/CommonUtils';
import { isEmpty, trim } from '@/utils/CommonUtils';
import { getDicData } from '@/utils/session';
import '@/assets/lq_style.less';
import { btnAuthority } from '@/utils/authority';
@ -203,6 +203,7 @@ import { btnAuthority } from '@/utils/authority';
values.regionDictId = isEmpty(values.regionDictId) ? values.regionDictCity : values.regionDictId;
}
values.regionDictName = regionDictName;
values.projectName = trim(values.projectName);
!isIPassDecode && (values['isIPassDecode'] = '1');
updateUtils(values);
//tab标段页解除禁用

View File

@ -1,14 +1,15 @@
import {BarsOutlined, UploadOutlined} from "@ant-design/icons"
import {Button, Card, Checkbox, Col, Collapse, Form, Input, message, Modal, Row, Spin, Upload} from "antd"
import React, {useEffect, useRef, useState} from "react"
import { BarsOutlined, UploadOutlined } from "@ant-design/icons"
import { Button, Card, Checkbox, Col, Collapse, Form, Input, message, Modal, Row, Spin, Upload } from "antd"
import React, { useEffect, useRef, useState } from "react"
import {GetfileUsablePackage, GetfileMsg, creatfile, creatNotice} from "../service";
import { GetfileUsablePackage, GetfileMsg, creatfile, creatNotice } from "../service";
import Weboffice from "@/pages/webOffice/weboffice";
import {deleteFileObjId, getFileBidList, SnowflakeID} from "@/services/untilService";
import { deleteFileObjId, getFileBidList, SnowflakeID } from "@/services/untilService";
import ExtendUpload from "@/utils/ExtendUpload";
import {UploadProps} from "antd/lib/upload/interface";
import { UploadProps } from "antd/lib/upload/interface";
import WebOffice0609, { WebOfficeRefProps } from "@/pages/webOffice/weboffice0609";
import { trim } from "@/utils/CommonUtils";
interface BiddingDocumentProps {
modalVisible: boolean;
@ -21,12 +22,12 @@ interface BiddingDocumentProps {
}
const layout = {
labelCol: {span: 7},
wrapperCol: {span: 10},
labelCol: { span: 7 },
wrapperCol: { span: 10 },
};
const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
const {Panel} = Collapse;
const {titleName, modalVisible, onCancel, type, tpId, pkId, SX} = props;
const { Panel } = Collapse;
const { titleName, modalVisible, onCancel, type, tpId, pkId, SX } = props;
const [TpPackageId, setTpPackageId] = useState<any[]>([]); //标包信息
const [spinning, setSping] = useState<boolean>();//加载遮罩
const [editInformation, setEditInformation] = useState<boolean>(false);//是否可编
@ -38,7 +39,7 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
const [UploadList, setUploadList] = useState<any>(); //存upload列表
const [UploadID, setUploadID] = useState<any>("empty"); //upload 业务id
const UploadProps: UploadProps = {
name:"file",
name: "file",
disabled: editInformation
}
@ -51,7 +52,7 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
useEffect(() => {
Int();
Int();
form.resetFields();//清除form中数据
}, [type, pkId]);
const Int = () => {
@ -67,7 +68,7 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
onCancel();
}
for (const item of res.data) {
thisData.push({"label": item.bsName, "value": item.bsId})
thisData.push({ "label": item.bsName, "value": item.bsId })
}
setSping(false);
setEditInformation(false);//可编辑
@ -83,11 +84,11 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
});
} else if (type == "edit") {//=========================================================修改
GetfileUsablePackage(tpId,pkId).then(res => {
GetfileUsablePackage(tpId, pkId).then(res => {
if (res.code == 200) {
let thisData2 = [];
for (const item of res.data) {
thisData2.push({"label": item.bsName, "value": item.bsId})
thisData2.push({ "label": item.bsName, "value": item.bsId })
}
setTpPackageId(thisData2);
}
@ -100,10 +101,10 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
}
form.setFieldsValue({
"documentName": data.documentName,
"documentSetId": data.documentSetId,
"sectionIds": defPak,
},
"documentName": data.documentName,
"documentSetId": data.documentSetId,
"sectionIds": defPak,
},
)
setUploadID(data.documentSetId);
setSping(false);
@ -125,15 +126,15 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
let thisData1 = [];
let defPak = [];
for (const item of data.sections) {
thisData1.push({"label": item.bsName, "value": item.bsId})
thisData1.push({ "label": item.bsName, "value": item.bsId })
defPak.push(item.bsId);
}
setTpPackageId(thisData1);
form.setFieldsValue({
"documentName": data.documentName,
"documentSetId": data.documentSetId,
"sectionIds": defPak,
},
"documentName": data.documentName,
"documentSetId": data.documentSetId,
"sectionIds": defPak,
},
)
@ -167,12 +168,12 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
for (const item of TpPackageId) {//包数据
for (const item1 of form.getFieldValue("sectionIds"))
if (item.value == item1)
packageMsg.push({"bsId": item.value, "bsName": item.label})
packageMsg.push({ "bsId": item.value, "bsName": item.label })
}
const fromData = {
"tpId": tpId,
"documentName": form.getFieldValue("documentName"),
"documentName": trim(form.getFieldValue("documentName")),
"documentSetId": form.getFieldValue("documentSetId"),
"sections": packageMsg,
"contentFileId": ref.current?.DocFileCode,
@ -243,7 +244,7 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
},
]}
>
<Input maxLength={200} readOnly={editInformation}/>
<Input maxLength={200} readOnly={editInformation} />
</Form.Item>
<Form.Item
label="关联标段"
@ -258,7 +259,7 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
<Checkbox.Group
options={TpPackageId}
style={{width: '100%'}}
style={{ width: '100%' }}
disabled={editInformation}
>
</Checkbox.Group>
@ -268,11 +269,11 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
name="documentSetId"
extra="单个附件最大30MB"
>
{UploadID!="empty"? <ExtendUpload uploadProps={UploadProps} bid={UploadID}/>:null}
{UploadID != "empty" ? <ExtendUpload uploadProps={UploadProps} bid={UploadID} /> : null}
</Form.Item>
</Form>
<h3 className="first-title"></h3>
<Card style={{textAlign: "center"}}>
<Card style={{ textAlign: "center" }}>
<div>
{/* {docBtnName != "" ?
<Weboffice memberBtnName={docBtnName} readonly={docReadOnly} btnStyle={docSaveBtn} btnName={"保存"}
@ -280,12 +281,12 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
: null
} */}
{docBtnName != "" ? (
<WebOffice0609
<WebOffice0609
readOnly={docReadOnly}
DOCFileCode={docFileCode}
webOfficeRef={ref}
/>
): null}
) : null}
</div>
</Card>
</Spin>

View File

@ -314,3 +314,13 @@ export const scrollToAnchor = (anchorName: string) => {
if (anchorElement) { anchorElement.scrollIntoView({ block: 'start', behavior: 'smooth' }); }
}
}
/**
* 删除行首行尾的空白字符方法(包括空格、制表符、换页符等等)
* @param str
* @returns
*/
export const trim = (str: string | undefined) => {
let _str = str?.replace(/(^\s*)|(\s*$)/g, "");
_str = _str?.replace(/[<>|\\/?:*""“”\s\r\n\t]/, "");
return _str;
}