Merge branch '20220510-委托推送的标段名称包含特殊字符导致weboffice文件创建失败' of http://10.124.128.2:8888/eshop/fe_service_ebtp_frontend into 20220413-zjl-公共服务平台
This commit is contained in:
@ -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,
|
||||
|
@ -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('编辑成功');
|
||||
|
@ -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>
|
||||
|
@ -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);
|
||||
|
@ -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标段页解除禁用
|
||||
|
@ -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标段页解除禁用
|
||||
|
@ -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标段页解除禁用
|
||||
|
@ -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标段页解除禁用
|
||||
|
@ -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标段页解除禁用
|
||||
|
@ -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>
|
||||
|
@ -313,4 +313,14 @@ export const scrollToAnchor = (anchorName: string) => {
|
||||
// 如果对应id的锚点存在,就跳转到锚点
|
||||
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;
|
||||
}
|
Reference in New Issue
Block a user