Merge branch '20220510-委托推送的标段名称包含特殊字符导致weboffice文件创建失败' into 'master-20220527'

5.27 委托推送的标段名称包含特殊字符导致weboffice文件创建失败

See merge request eshop/fe_service_ebtp_frontend!85
This commit is contained in:
周建龙
2022-05-27 15:08:38 +08:00
18 changed files with 722 additions and 678 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,
@ -285,6 +286,7 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
message: '当前项不可为空',
},
]}
normalize={(value) => trim(value)}
>
<Input maxLength={200} readOnly={editInformation} />
</Form.Item>

View File

@ -3,6 +3,7 @@ import { Button, Form, Input, Modal, Select, Spin } from 'antd';
import { PackageInformationProps } from '../data';
import SelectProcess from './SelectProcess';
import { getChooseProcess } from '../service';
import { trim } from '@/utils/CommonUtils';
/**
* 公开比选编辑
@ -64,15 +65,15 @@ const PackageInformationChoose: React.FC<PackageInformationProps> = (props) => {
//判断评审规则是否存在(比选多阶段)
if (values?.reviewRules == null) {
//判断资格审查方法是否存在(比选一阶段预审)
if (values?.ptcpMode == null) {} else {
if (values?.ptcpMode == null) { } else {
params['levelFour'] = values?.ptcpMode;
}
} else {
params['levelThree'] = values?.reviewRules;
}
//判断应不应该显示选择流程按钮
if(projectItems?.biddingSignDict == 'selection_method_1') {//比选一阶段
if(projectItems?.examinationMethodDict == 'examination_method_2') {//资格后审
if (projectItems?.biddingSignDict == 'selection_method_1') {//比选一阶段
if (projectItems?.examinationMethodDict == 'examination_method_2') {//资格后审
values?.evalMethodDict == null ? setShowSelect(true) : setShowSelect(false);
} else {
values?.evalMethodDict == null || values?.ptcpMode == null ? setShowSelect(true) : setShowSelect(false);
@ -143,18 +144,18 @@ const PackageInformationChoose: React.FC<PackageInformationProps> = (props) => {
//判断评审规则是否存在(比选多阶段)
if (form.getFieldValue('reviewRules') == null || form.getFieldValue('reviewRules') == '') {
//判断资格审查方法是否存在(比选一阶段预审)
if (form.getFieldValue('ptcpMode') == null || form.getFieldValue('ptcpMode') == '') {} else {
if (form.getFieldValue('ptcpMode') == null || form.getFieldValue('ptcpMode') == '') { } else {
params['levelFour'] = form.getFieldValue('ptcpMode');
}
} else {
params['levelThree'] = form.getFieldValue('reviewRules');
}
//判断应不应该显示选择流程按钮
if(projectItems?.biddingSignDict == 'selection_method_1') {//比选一阶段
if(projectItems?.examinationMethodDict == 'examination_method_2') {//资格后审
//判断应不应该显示选择流程按钮
if (projectItems?.biddingSignDict == 'selection_method_1') {//比选一阶段
if (projectItems?.examinationMethodDict == 'examination_method_2') {//资格后审
form.getFieldValue('evalMethodDict') == null || form.getFieldValue('evalMethodDict') == '' ? setShowSelect(true) : setShowSelect(false);
} else {
form.getFieldValue('evalMethodDict') == null || form.getFieldValue('evalMethodDict') == ''|| form.getFieldValue('ptcpMode') == null || form.getFieldValue('ptcpMode') == '' ? setShowSelect(true) : setShowSelect(false);
form.getFieldValue('evalMethodDict') == null || form.getFieldValue('evalMethodDict') == '' || form.getFieldValue('ptcpMode') == null || form.getFieldValue('ptcpMode') == '' ? setShowSelect(true) : setShowSelect(false);
}
} else {
form.getFieldValue('evalMethodDict') == null || form.getFieldValue('evalMethodDict') == '' || form.getFieldValue('reviewRules') == null || form.getFieldValue('reviewRules') == '' ? setShowSelect(true) : setShowSelect(false);
@ -228,13 +229,13 @@ const PackageInformationChoose: React.FC<PackageInformationProps> = (props) => {
!controlDisplay
? false
: [
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
}
>
<Spin spinning={saveLoading} delay={300}>
@ -255,6 +256,7 @@ const PackageInformationChoose: React.FC<PackageInformationProps> = (props) => {
name="bidSectName"
label="采购包名称"
rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]}
normalize={(value) => trim(value)}
>
<Input disabled={!controlDisplay} placeholder="请填写采购包名称" />
</Form.Item>
@ -279,7 +281,7 @@ const PackageInformationChoose: React.FC<PackageInformationProps> = (props) => {
</Select>
</Form.Item>
{projectItems?.biddingSignDict == 'selection_method_1' &&
projectItems?.examinationMethodDict == 'examination_method_1' ? (
projectItems?.examinationMethodDict == 'examination_method_1' ? (
<Form.Item
name="ptcpMode"
label="资格审查方法"

View File

@ -3,6 +3,7 @@ import { Button, Form, Input, Modal, Select } from 'antd';
import { PackageInformationProps } from '@/pages/Project/ProjectManage/PackageDivided/data';
import { getChooseProcess } from '@/pages/Project/ProjectManage/PackageDivided/service';
import SelectProcess from '@/pages/Project/ProjectManage/PackageDivided/components/SelectProcess';
import { trim } from '@/utils/CommonUtils';
/*
*
* 询价编辑
@ -130,13 +131,13 @@ const PackageInformationEnquiry: React.FC<PackageInformationProps> = (props) =>
!controlDisplay
? false
: [
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
}
>
<Form
@ -156,6 +157,7 @@ const PackageInformationEnquiry: React.FC<PackageInformationProps> = (props) =>
name="bidSectName"
label="采购包名称"
rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]}
normalize={(value) => trim(value)}
>
<Input disabled={!controlDisplay} placeholder="请填写采购包名称" />
</Form.Item>

View File

@ -3,6 +3,7 @@ import { Button, Form, Input, Modal, Select, Spin } from 'antd';
import { PackageInformationProps } from '../data';
import { getChooseProcess } from '../service';
import SelectProcess from './SelectProcess';
import { trim } from '@/utils/CommonUtils';
/**
* 邀请招标编辑
*
@ -139,7 +140,7 @@ const PackageInformationInvite: React.FC<PackageInformationProps> = (props) => {
});
if (form.getFieldValue('evalMethodDict') == null) {
} else {
(false);
(false);
}
};
return (
@ -157,13 +158,13 @@ const PackageInformationInvite: React.FC<PackageInformationProps> = (props) => {
!controlDisplay
? false
: [
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
}
>
<Spin spinning={saveLoading} delay={300}>
@ -184,6 +185,7 @@ const PackageInformationInvite: React.FC<PackageInformationProps> = (props) => {
name="bidSectName"
label="标段名称"
rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]}
normalize={(value) => trim(value)}
>
<Input disabled={!controlDisplay} placeholder="请填写标段名称" />
</Form.Item>

View File

@ -3,6 +3,7 @@ import { Button, Form, Input, Modal, Select, Spin } from 'antd';
import { PackageInformationProps } from '../data';
import { getChooseProcess } from '../service';
import SelectProcess from './SelectProcess';
import { trim } from '@/utils/CommonUtils';
/**
* 公开招标编辑
*
@ -146,7 +147,7 @@ const PackageInformationInviteBid: React.FC<PackageInformationProps> = (props) =
setChooseProcessList(res.data);
}
}).finally(() => {
setSpinningload(false);
setSpinningload(false);
});
};
//评价方法
@ -238,13 +239,13 @@ const PackageInformationInviteBid: React.FC<PackageInformationProps> = (props) =
!controlDisplay
? false
: [
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
}
>
<Spin spinning={saveLoading} delay={300}>
@ -265,6 +266,7 @@ const PackageInformationInviteBid: React.FC<PackageInformationProps> = (props) =
name="bidSectName"
label="标段名称"
rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]}
normalize={(value) => trim(value)}
>
<Input disabled={!controlDisplay} placeholder="请填写标段名称" />
</Form.Item>

View File

@ -3,6 +3,7 @@ import { Button, Form, Input, Modal, Select, Spin } from 'antd';
import { PackageInformationProps } from '../data';
import { getChooseProcess } from '../service';
import SelectProcess from './SelectProcess';
import { trim } from '@/utils/CommonUtils';
/**
* 竞争性谈判编辑
@ -46,7 +47,6 @@ const PackageInformationNegotiate: React.FC<PackageInformationProps> = (props) =
const [spinningload, setSpinningload] = useState<boolean>(false);
//保存loading
const [saveLoading, setSaveLoading] = useState<boolean>(false);
useEffect(() => {
if (values.status == 0 || values.status == 1) {
setStatus(false);
@ -148,13 +148,13 @@ const PackageInformationNegotiate: React.FC<PackageInformationProps> = (props) =
!controlDisplay
? false
: [
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
}
>
<Spin spinning={saveLoading} delay={300}>
@ -175,6 +175,7 @@ const PackageInformationNegotiate: React.FC<PackageInformationProps> = (props) =
name="bidSectName"
label="采购包名称"
rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]}
normalize={(value) => trim(value)}
>
<Input disabled={!controlDisplay} placeholder="请填写采购包名称" />
</Form.Item>

View File

@ -3,6 +3,7 @@ import { Button, Form, Input, Modal, Select, Spin } from 'antd';
import { PackageInformationProps } from '../data';
import { getChooseProcess } from '../service';
import SelectProcess from './SelectProcess';
import { trim } from '@/utils/CommonUtils';
/**
* 单一来源编辑
*
@ -43,7 +44,6 @@ const PackageInformationOnly: React.FC<PackageInformationProps> = (props) => {
const [spinningload, setSpinningload] = useState<boolean>(false);
//保存loading
const [saveLoading, setSaveLoading] = useState<boolean>(false);
useEffect(() => {
if (values.status == 0 || values.status == 1) {
setStatus(false);
@ -143,7 +143,7 @@ const PackageInformationOnly: React.FC<PackageInformationProps> = (props) => {
<Form.Item name="bidSectBizNum" label="采购包编号">
<Input disabled />
</Form.Item>
<Form.Item name="bidSectName" label="采购包名称" rules={[{ required: controlDisplay }, { max: 100, message: "最大不能超过100字" }]}>
<Form.Item name="bidSectName" label="采购包名称" rules={[{ required: controlDisplay }, { max: 100, message: "最大不能超过100字" }]} normalize={(value) => trim(value)}>
<Input disabled={!controlDisplay} placeholder="请填写采购包名称" />
</Form.Item>
<Form.Item name="bidSectContractPrice" label="采购包预算">

View File

@ -3,6 +3,7 @@ import { Button, Form, Input, Modal, Select, Spin } from 'antd';
import { PackageInformationProps } from '../data';
import SelectProcess from './SelectProcess';
import { getChooseProcess } from '../service';
import { trim } from '@/utils/CommonUtils';
/**
* 公开招募编辑
*
@ -68,7 +69,7 @@ const PackageInformationRecruit: React.FC<PackageInformationProps> = (props) =>
}
}
}).finally(() => {
setSpinningload(false);
setSpinningload(false);
});
values?.reviewRules == null ? setShowSelect(true) : setShowSelect(false);
form.setFieldsValue({
@ -159,13 +160,13 @@ const PackageInformationRecruit: React.FC<PackageInformationProps> = (props) =>
!controlDisplay
? false
: [
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
<Button key="back" onClick={onCancel}>
</Button>,
<Button key="submit" type="primary" loading={saveLoading} onClick={onSubmit}>
</Button>,
]
}
>
<Spin spinning={saveLoading} delay={300}>
@ -186,6 +187,7 @@ const PackageInformationRecruit: React.FC<PackageInformationProps> = (props) =>
name="bidSectName"
label="包件名称"
rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]}
normalize={(value) => trim(value)}
>
<Input disabled={!controlDisplay} placeholder="请填写包件名称" />
</Form.Item>

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标段页解除禁用
@ -303,6 +304,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
label="项目名称"
name="projectName"
rules={[{ required: true }]}
normalize={(value) => trim(value)}
>
<Input disabled={whetherReadonly} readOnly={whetherReadonly} maxLength={150} />
</Form.Item>
@ -355,12 +357,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);
@ -293,6 +294,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
label="项目名称"
name="projectName"
rules={[{ required: true }]}
normalize={(value) => trim(value)}
>
<Input disabled={whetherReadonly} readOnly={whetherReadonly} maxLength={150} />
</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;
@ -34,10 +34,10 @@ function createSelect(data: any) {
function createSelectArea(data: any) {
let value = [];
for (let i = 0; i < data.length; i++) {
if (i === 0 && data[i].pid !== '0') {
value.push(<Option value=""></Option>)
}
value.push(<Option key={data[i].id} value={data[i].id}>{data[i].name}</Option>)
if (i === 0 && data[i].pid !== '0') {
value.push(<Option value=""></Option>)
}
value.push(<Option key={data[i].id} value={data[i].id}>{data[i].name}</Option>)
}
return value;
}
@ -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标段页解除禁用
@ -254,15 +255,15 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
*/
const onSecondCityChange = (value: any) => {
form.resetFields(["regionDictId"]);
if (value) {
getProvinces(value).then(res => {
if (res.code === 200) {
setDistrict(createSelectArea(res.data));
}
})
} else {
setDistrict(createSelectArea([]));
if (value) {
getProvinces(value).then(res => {
if (res.code === 200) {
setDistrict(createSelectArea(res.data));
}
})
} else {
setDistrict(createSelectArea([]));
}
};
/**
* 区回调
@ -306,6 +307,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
label="项目名称"
name="projectName"
rules={[{ required: true }]}
normalize={(value) => trim(value)}
>
<Input disabled={whetherReadonly} readOnly={whetherReadonly} maxLength={100} />
</Form.Item>

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标段页解除禁用
@ -279,6 +280,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
label="项目名称"
name="projectName"
rules={[{ required: true }]}
normalize={(value) => trim(value)}
>
<Input disabled={whetherReadonly} readOnly={whetherReadonly} maxLength={100} />
</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;
@ -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标段页解除禁用
@ -304,6 +305,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
label="项目名称"
name="projectName"
rules={[{ required: true }]}
normalize={(value) => trim(value)}
>
<Input disabled={whetherReadonly} readOnly={whetherReadonly} maxLength={150} />
</Form.Item>

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标段页解除禁用
@ -303,6 +304,7 @@ const ProjectDocumentation: React.FC<ProcurementMethodItem> = (props) => {
label="项目名称"
name="projectName"
rules={[{ required: true }]}
normalize={(value) => trim(value)}
>
<Input disabled={whetherReadonly} readOnly={whetherReadonly} maxLength={150} />
</Form.Item>

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,
@ -242,8 +243,9 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
message: '当前项不可为空',
},
]}
normalize={(value) => trim(value)}
>
<Input maxLength={200} readOnly={editInformation}/>
<Input maxLength={200} readOnly={editInformation} />
</Form.Item>
<Form.Item
label="关联标段"
@ -258,7 +260,7 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
<Checkbox.Group
options={TpPackageId}
style={{width: '100%'}}
style={{ width: '100%' }}
disabled={editInformation}
>
</Checkbox.Group>
@ -268,11 +270,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 +282,12 @@ const BiddingDocument: React.FC<BiddingDocumentProps> = (props) => {
: null
} */}
{docBtnName != "" ? (
<WebOffice0609
<WebOffice0609
readOnly={docReadOnly}
DOCFileCode={docFileCode}
webOfficeRef={ref}
/>
): null}
) : null}
</div>
</Card>
</Spin>