diff --git a/src/pages/Bid/BiddingAnnouncement/components/BiddingDocument.tsx b/src/pages/Bid/BiddingAnnouncement/components/BiddingDocument.tsx index 88793e0..f16a050 100644 --- a/src/pages/Bid/BiddingAnnouncement/components/BiddingDocument.tsx +++ b/src/pages/Bid/BiddingAnnouncement/components/BiddingDocument.tsx @@ -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 = (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 = (props) => { message: '当前项不可为空', }, ]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationChoose.tsx b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationChoose.tsx index 6a8cf7e..e862b3d 100644 --- a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationChoose.tsx +++ b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationChoose.tsx @@ -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 = (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 = (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 = (props) => { !controlDisplay ? false : [ - , - , - ] + , + , + ] } > @@ -255,6 +256,7 @@ const PackageInformationChoose: React.FC = (props) => { name="bidSectName" label="采购包名称" rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]} + normalize={(value) => trim(value)} > @@ -279,7 +281,7 @@ const PackageInformationChoose: React.FC = (props) => { {projectItems?.biddingSignDict == 'selection_method_1' && - projectItems?.examinationMethodDict == 'examination_method_1' ? ( + projectItems?.examinationMethodDict == 'examination_method_1' ? ( = (props) => !controlDisplay ? false : [ - , - , - ] + , + , + ] } >
= (props) => name="bidSectName" label="采购包名称" rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationInvite.tsx b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationInvite.tsx index 0b6f098..78ea436 100644 --- a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationInvite.tsx +++ b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationInvite.tsx @@ -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 = (props) => { }); if (form.getFieldValue('evalMethodDict') == null) { } else { - (false); + (false); } }; return ( @@ -157,13 +158,13 @@ const PackageInformationInvite: React.FC = (props) => { !controlDisplay ? false : [ - , - , - ] + , + , + ] } > @@ -184,6 +185,7 @@ const PackageInformationInvite: React.FC = (props) => { name="bidSectName" label="标段名称" rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationInviteBid.tsx b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationInviteBid.tsx index 6985591..bee3b9c 100644 --- a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationInviteBid.tsx +++ b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationInviteBid.tsx @@ -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 = (props) = setChooseProcessList(res.data); } }).finally(() => { - setSpinningload(false); + setSpinningload(false); }); }; //评价方法 @@ -238,13 +239,13 @@ const PackageInformationInviteBid: React.FC = (props) = !controlDisplay ? false : [ - , - , - ] + , + , + ] } > @@ -265,6 +266,7 @@ const PackageInformationInviteBid: React.FC = (props) = name="bidSectName" label="标段名称" rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationNegotiate.tsx b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationNegotiate.tsx index 6c0770b..8334924 100644 --- a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationNegotiate.tsx +++ b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationNegotiate.tsx @@ -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 = (props) = const [spinningload, setSpinningload] = useState(false); //保存loading const [saveLoading, setSaveLoading] = useState(false); - useEffect(() => { if (values.status == 0 || values.status == 1) { setStatus(false); @@ -148,13 +148,13 @@ const PackageInformationNegotiate: React.FC = (props) = !controlDisplay ? false : [ - , - , - ] + , + , + ] } > @@ -175,6 +175,7 @@ const PackageInformationNegotiate: React.FC = (props) = name="bidSectName" label="采购包名称" rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationOnly.tsx b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationOnly.tsx index f96acb6..7c4bff0 100644 --- a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationOnly.tsx +++ b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationOnly.tsx @@ -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 = (props) => { const [spinningload, setSpinningload] = useState(false); //保存loading const [saveLoading, setSaveLoading] = useState(false); - useEffect(() => { if (values.status == 0 || values.status == 1) { setStatus(false); @@ -143,7 +143,7 @@ const PackageInformationOnly: React.FC = (props) => { - + trim(value)}> diff --git a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationRecruit.tsx b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationRecruit.tsx index ecf911d..42c2faf 100644 --- a/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationRecruit.tsx +++ b/src/pages/Project/ProjectManage/PackageDivided/components/PackageInformationRecruit.tsx @@ -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 = (props) => } } }).finally(() => { - setSpinningload(false); + setSpinningload(false); }); values?.reviewRules == null ? setShowSelect(true) : setShowSelect(false); form.setFieldsValue({ @@ -159,13 +160,13 @@ const PackageInformationRecruit: React.FC = (props) => !controlDisplay ? false : [ - , - , - ] + , + , + ] } > @@ -186,6 +187,7 @@ const PackageInformationRecruit: React.FC = (props) => name="bidSectName" label="包件名称" rules={[{ required: controlDisplay }, { max: 100, message: '最大不能超过100字' }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/PackageDivided/utils.ts b/src/pages/Project/ProjectManage/PackageDivided/utils.ts index ebf0042..51f063c 100644 --- a/src/pages/Project/ProjectManage/PackageDivided/utils.ts +++ b/src/pages/Project/ProjectManage/PackageDivided/utils.ts @@ -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('编辑成功'); diff --git a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod1.tsx b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod1.tsx index d500861..4c18c87 100644 --- a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod1.tsx +++ b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod1.tsx @@ -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 = (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 = (props) => { label="项目名称" name="projectName" rules={[{ required: true }]} + normalize={(value) => trim(value)} > @@ -355,12 +357,12 @@ const ProjectDocumentation: React.FC = (props) => { - // /[\u4E00-\u9FA5]/i.test(value) ? Promise.reject('不能输入汉字') : Promise.resolve() - // } - // ]} + // rules={[ + // { + // validator: (_, value) => + // /[\u4E00-\u9FA5]/i.test(value) ? Promise.reject('不能输入汉字') : Promise.resolve() + // } + // ]} > diff --git a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod2.tsx b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod2.tsx index eb64a81..05d3de9 100644 --- a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod2.tsx +++ b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod2.tsx @@ -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 = (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 = (props) => { label="项目名称" name="projectName" rules={[{ required: true }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod3.tsx b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod3.tsx index ec74deb..08e567e 100644 --- a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod3.tsx +++ b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod3.tsx @@ -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() - } - value.push() + if (i === 0 && data[i].pid !== '0') { + value.push() + } + value.push() } return value; } @@ -202,6 +202,7 @@ const ProjectDocumentation: React.FC = (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 = (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 = (props) => { label="项目名称" name="projectName" rules={[{ required: true }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod4.tsx b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod4.tsx index 32952fc..7663330 100644 --- a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod4.tsx +++ b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod4.tsx @@ -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 = (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 = (props) => { label="项目名称" name="projectName" rules={[{ required: true }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod5.tsx b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod5.tsx index 356881c..82c17ed 100644 --- a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod5.tsx +++ b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod5.tsx @@ -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 = (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 = (props) => { label="项目名称" name="projectName" rules={[{ required: true }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod6.tsx b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod6.tsx index f6515ad..5de2020 100644 --- a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod6.tsx +++ b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod6.tsx @@ -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 = (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 = (props) => { label="项目名称" name="projectName" rules={[{ required: true }]} + normalize={(value) => trim(value)} > diff --git a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod9.tsx b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod9.tsx index cd83338..6f9e174 100644 --- a/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod9.tsx +++ b/src/pages/Project/ProjectManage/ProjectManager/ProjectInformationManagement/components/ProcurementMethod9.tsx @@ -1,540 +1,542 @@ /** * 单一来源-简化流程 */ - 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 { getDicData } from '@/utils/session'; - import '@/assets/lq_style.less'; +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, trim } from '@/utils/CommonUtils'; +import { getDicData } from '@/utils/session'; +import '@/assets/lq_style.less'; import { btnAuthority } from '@/utils/authority'; - const { Option } = Select; - - const layout = { - labelCol: { span: 10 }, - wrapperCol: { span: 13 }, - }; - /** - * 加载Option - * @param data 数据源 - */ - function createSelect(data: any) { - let value = []; - for (const item of data) { - value.push( - - ) - } - return value; - } - - function createSelectArea(data: any) { - let value = []; - for (let i = 0; i < data.length; i++) { - if (i === 0 && data[i].pid !== '0') { - value.push() - } - value.push() - } - return value; - } - - const ProjectDocumentation: React.FC = (props) => { - const { id, whetherReadonly, status, setTabFlag, setActiveKey, setCurrentPage } = props; - //获取字典 - const getDict: any = getDicData(); - const dictData = JSON.parse(getDict); - //表单数据 - const [formData, setFormData] = useState(null); - //省数据 - const [province, setProvince] = useState([]); - //区下拉选数据 - const [district, setDistrict] = useState([]); - //市下拉选数据 - const [city, setCity] = useState([]); - - const [form] = Form.useForm(); - //省默认值 - const [initialProvince, setInitialProvince] = useState(null); - //组织方式字典项 - const bidOrgDictSelect = createSelect(dictData['organization=entrust']); - //采购类型字典项 - const procurementTypeSelect = createSelect(dictData['procurement_type=entrust']); - //采购方式 - const bidMethodDictSelect = createSelect(dictData['procurement_mode=entrust']); - //资金来源 - const fundsProviderDictSelect = createSelect(dictData['funds_provider=record']); - //业务类型 - const bidMethodSubDictSelect = createSelect(dictData['bid_method_sub=record']); - //标段信息禁用标识 - const [noInformationFlag, setNoInformationFlag] = useState(String(status) === '0'); - //是否需要供应商ipass解密显隐 - const [isIPassDecode, isIPassDecodeSet] = useState(false); - function onChangeIpass(e: any) {//是否使用ipass制作 - isIPassDecodeSet(e.target.value === '0'); - } - useEffect(() => { - /** - * 根据id获取数据 - */ - getId(id).then(res => { - if (res.code === 200) { - let data = res.data; - if (data.isIPassFile === '0') {//是否需要供应商ipass解密显隐 - isIPassDecodeSet(true) - } - setFormData(data); - // data.isApproval = isEmpty(data.isApproval) ? '0' : data.isApproval; - data.isApproval = '1'; - data.isIPassDecode = isEmpty(data.isIPassDecode) ? '1' : data.isIPassDecode; - form.setFieldsValue(data); - //查询省份 - getByProvincesNumber(data.province).then(res => { - if (res.code === 200) { - let data = res.data; - form.setFieldsValue({ provinceName: data?.provincesName }); - } - }) - //回显省市区 - getProvinceCityDistrict(data.regionDictId); - - } - }) - /** - * 获取省份 - */ - getProvince().then(res => { - if (res.code === 200) { - setProvince(createSelectArea(res.data)); - } - }) - - }, []); - - /** - * 获取省市区数据 - * @param regionDictId - * @returns - */ - const getProvinceCityDistrict = (regionDictId: string) => { - if (isEmpty(regionDictId)) { - return; - } - //省 - if (regionDictId.substring(regionDictId.length - 4) === '0000') { - setInitialProvince(regionDictId); - form.setFieldsValue({ - regionDictId: null, - regionDictProvince: regionDictId - }); - getProvinces(regionDictId).then(res => { - if (res.code === 200) { - setCity(createSelectArea(res.data)); - } - }) - //市 - } else if (regionDictId.substring(regionDictId.length - 1) === '0') { - let pId = regionDictId.substring(0, regionDictId.length - 4) + '0000'; - //获取省数据 - getProvinces(pId).then(res => { - if (res.code === 200) { - setCity(createSelectArea(res.data)); - form.setFieldsValue({ - regionDictCity: regionDictId, - regionDictId: null, - regionDictProvince: pId - }); - setInitialProvince(pId); - //获取区数据 - getProvinces(regionDictId).then(res => { - if (res.code === 200) { - setDistrict(createSelectArea(res.data)); - } - }) - } - }) - //区 - } else { - //回显省市区数据 - getDictRegion(regionDictId).then(response => { - let region = response.data; - //获取区数据 - getProvinces(region.pid).then(res => { - if (res.code === 200) { - setDistrict(createSelectArea(res.data)); - let pid = ''; - pid = res.data[0].pid; - pid = pid.substring(0, pid.length - 3) + '000'; - setInitialProvince(pid); - form.setFieldsValue({ - regionDictCity: region.pid, - regionDictProvince: pid - }); - //获取市数据 - getProvinces(pid).then(res => { - if (res.code === 200) { - setCity(createSelectArea(res.data)); - } - }) - } - }) - }) - } - } - - - - //提交表单 - const onFinish = (values: any) => { - const submit = () => { - //获取行政区域名称 - let regionDictName = - getSelectName(values.regionDictProvince, province) + '-' + - getSelectName(values.regionDictCity, city) + '-' + - getSelectName(values.regionDictId, district); - regionDictName = regionDictName.replaceAll('全部', ''); - regionDictName = regionDictName.replace(/(-){2,}/, ''); - regionDictName = regionDictName.endsWith("-") ? regionDictName.substring(0, regionDictName.length - 1) : regionDictName; - //获取省市区的值存入regionDictId - if (isEmpty(values.regionDictCity)) { - values.regionDictId = values.regionDictProvince; - } else { - values.regionDictId = isEmpty(values.regionDictId) ? values.regionDictCity : values.regionDictId; - } - values.regionDictName = regionDictName; - !isIPassDecode && (values['isIPassDecode'] = '1'); - updateUtils(values); - //tab标段页解除禁用 - setTabFlag(false); - setNoInformationFlag(false); - noInformation(); - } - //验证 - getBudgetAmountById(id).then(res => { - if (res.code === 200) { - let data = res.data; - let budgetAmount = form.getFieldValue("budgetAmount"); - if (Number(data) === Number(budgetAmount)) { - submit(); - } else { - Modal.confirm({ - content: `您输入的项目预算金额(${budgetAmount})与标段预算总金额(${data})不符!请确认!`, - okText: '确认', - cancelText: '取消', - keyboard: false, - centered: true, - onCancel: () => { }, - onOk: () => submit() - }); - } - } - }) - }; - - const onFinishFailed = (errorInfo: any) => { - - }; - /** - * 省回调 - */ - const handleProvinceChange = (value: any) => { - setInitialProvince(value); - form.resetFields(["regionDictId"]); - form.resetFields(["regionDictCity"]); - getProvinces(value).then(res => { - if (res.code === 200) { - setCity(createSelectArea(res.data)); - } - }) - }; - /** - * 市回调 - * @param value - */ - const onSecondCityChange = (value: any) => { - form.resetFields(["regionDictId"]); - if (value) { - getProvinces(value).then(res => { - if (res.code === 200) { - setDistrict(createSelectArea(res.data)); - } - }) - } else { - setDistrict(createSelectArea([])); - } - }; - /** - * 区回调 - * @param value - */ - const handleCityChange = (value: any) => { - - }; - - - /** - * 标段信息 - */ - const noInformation = () => { - setActiveKey('2'); - setCurrentPage('2'); - } - - //项目基本信息 招标 - const formEditBidding = () => { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {formData !== null && formData.bidOrgDict === 'organization_1' ? ( - - - - ) : (<>) - } - - - - - - - - - - - - { return '1' } }]}> - - - - - - - - - - - - - - - - - - - - - - - - Number(value) - }, - { - pattern: /^\d+.?\d{0,4}$/, - message: '小数点后最多只能输入四位' - }, - { - pattern: /^[0-9]/, - message: '请输入正确的数字金额' - }, - ]} - > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +const { Option } = Select; - - - - { - whetherReadonly ? null : - () - } - - - - - - - - ) - } - - return formEditBidding(); - - } - - export default ProjectDocumentation; \ No newline at end of file +const layout = { + labelCol: { span: 10 }, + wrapperCol: { span: 13 }, +}; +/** + * 加载Option + * @param data 数据源 + */ +function createSelect(data: any) { + let value = []; + for (const item of data) { + value.push( + + ) + } + return value; +} + +function createSelectArea(data: any) { + let value = []; + for (let i = 0; i < data.length; i++) { + if (i === 0 && data[i].pid !== '0') { + value.push() + } + value.push() + } + return value; +} + +const ProjectDocumentation: React.FC = (props) => { + const { id, whetherReadonly, status, setTabFlag, setActiveKey, setCurrentPage } = props; + //获取字典 + const getDict: any = getDicData(); + const dictData = JSON.parse(getDict); + //表单数据 + const [formData, setFormData] = useState(null); + //省数据 + const [province, setProvince] = useState([]); + //区下拉选数据 + const [district, setDistrict] = useState([]); + //市下拉选数据 + const [city, setCity] = useState([]); + + const [form] = Form.useForm(); + //省默认值 + const [initialProvince, setInitialProvince] = useState(null); + //组织方式字典项 + const bidOrgDictSelect = createSelect(dictData['organization=entrust']); + //采购类型字典项 + const procurementTypeSelect = createSelect(dictData['procurement_type=entrust']); + //采购方式 + const bidMethodDictSelect = createSelect(dictData['procurement_mode=entrust']); + //资金来源 + const fundsProviderDictSelect = createSelect(dictData['funds_provider=record']); + //业务类型 + const bidMethodSubDictSelect = createSelect(dictData['bid_method_sub=record']); + //标段信息禁用标识 + const [noInformationFlag, setNoInformationFlag] = useState(String(status) === '0'); + //是否需要供应商ipass解密显隐 + const [isIPassDecode, isIPassDecodeSet] = useState(false); + function onChangeIpass(e: any) {//是否使用ipass制作 + isIPassDecodeSet(e.target.value === '0'); + } + useEffect(() => { + /** + * 根据id获取数据 + */ + getId(id).then(res => { + if (res.code === 200) { + let data = res.data; + if (data.isIPassFile === '0') {//是否需要供应商ipass解密显隐 + isIPassDecodeSet(true) + } + setFormData(data); + // data.isApproval = isEmpty(data.isApproval) ? '0' : data.isApproval; + data.isApproval = '1'; + data.isIPassDecode = isEmpty(data.isIPassDecode) ? '1' : data.isIPassDecode; + form.setFieldsValue(data); + //查询省份 + getByProvincesNumber(data.province).then(res => { + if (res.code === 200) { + let data = res.data; + form.setFieldsValue({ provinceName: data?.provincesName }); + } + }) + //回显省市区 + getProvinceCityDistrict(data.regionDictId); + + } + }) + /** + * 获取省份 + */ + getProvince().then(res => { + if (res.code === 200) { + setProvince(createSelectArea(res.data)); + } + }) + + }, []); + + /** + * 获取省市区数据 + * @param regionDictId + * @returns + */ + const getProvinceCityDistrict = (regionDictId: string) => { + if (isEmpty(regionDictId)) { + return; + } + //省 + if (regionDictId.substring(regionDictId.length - 4) === '0000') { + setInitialProvince(regionDictId); + form.setFieldsValue({ + regionDictId: null, + regionDictProvince: regionDictId + }); + getProvinces(regionDictId).then(res => { + if (res.code === 200) { + setCity(createSelectArea(res.data)); + } + }) + //市 + } else if (regionDictId.substring(regionDictId.length - 1) === '0') { + let pId = regionDictId.substring(0, regionDictId.length - 4) + '0000'; + //获取省数据 + getProvinces(pId).then(res => { + if (res.code === 200) { + setCity(createSelectArea(res.data)); + form.setFieldsValue({ + regionDictCity: regionDictId, + regionDictId: null, + regionDictProvince: pId + }); + setInitialProvince(pId); + //获取区数据 + getProvinces(regionDictId).then(res => { + if (res.code === 200) { + setDistrict(createSelectArea(res.data)); + } + }) + } + }) + //区 + } else { + //回显省市区数据 + getDictRegion(regionDictId).then(response => { + let region = response.data; + //获取区数据 + getProvinces(region.pid).then(res => { + if (res.code === 200) { + setDistrict(createSelectArea(res.data)); + let pid = ''; + pid = res.data[0].pid; + pid = pid.substring(0, pid.length - 3) + '000'; + setInitialProvince(pid); + form.setFieldsValue({ + regionDictCity: region.pid, + regionDictProvince: pid + }); + //获取市数据 + getProvinces(pid).then(res => { + if (res.code === 200) { + setCity(createSelectArea(res.data)); + } + }) + } + }) + }) + } + } + + + + //提交表单 + const onFinish = (values: any) => { + const submit = () => { + //获取行政区域名称 + let regionDictName = + getSelectName(values.regionDictProvince, province) + '-' + + getSelectName(values.regionDictCity, city) + '-' + + getSelectName(values.regionDictId, district); + regionDictName = regionDictName.replaceAll('全部', ''); + regionDictName = regionDictName.replace(/(-){2,}/, ''); + regionDictName = regionDictName.endsWith("-") ? regionDictName.substring(0, regionDictName.length - 1) : regionDictName; + //获取省市区的值存入regionDictId + if (isEmpty(values.regionDictCity)) { + values.regionDictId = values.regionDictProvince; + } else { + values.regionDictId = isEmpty(values.regionDictId) ? values.regionDictCity : values.regionDictId; + } + values.regionDictName = regionDictName; + values.projectName = trim(values.projectName); + !isIPassDecode && (values['isIPassDecode'] = '1'); + updateUtils(values); + //tab标段页解除禁用 + setTabFlag(false); + setNoInformationFlag(false); + noInformation(); + } + //验证 + getBudgetAmountById(id).then(res => { + if (res.code === 200) { + let data = res.data; + let budgetAmount = form.getFieldValue("budgetAmount"); + if (Number(data) === Number(budgetAmount)) { + submit(); + } else { + Modal.confirm({ + content: `您输入的项目预算金额(${budgetAmount})与标段预算总金额(${data})不符!请确认!`, + okText: '确认', + cancelText: '取消', + keyboard: false, + centered: true, + onCancel: () => { }, + onOk: () => submit() + }); + } + } + }) + }; + + const onFinishFailed = (errorInfo: any) => { + + }; + /** + * 省回调 + */ + const handleProvinceChange = (value: any) => { + setInitialProvince(value); + form.resetFields(["regionDictId"]); + form.resetFields(["regionDictCity"]); + getProvinces(value).then(res => { + if (res.code === 200) { + setCity(createSelectArea(res.data)); + } + }) + }; + /** + * 市回调 + * @param value + */ + const onSecondCityChange = (value: any) => { + form.resetFields(["regionDictId"]); + if (value) { + getProvinces(value).then(res => { + if (res.code === 200) { + setDistrict(createSelectArea(res.data)); + } + }) + } else { + setDistrict(createSelectArea([])); + } + }; + /** + * 区回调 + * @param value + */ + const handleCityChange = (value: any) => { + + }; + + + /** + * 标段信息 + */ + const noInformation = () => { + setActiveKey('2'); + setCurrentPage('2'); + } + + //项目基本信息 招标 + const formEditBidding = () => { + return ( +
+ + + + + trim(value)} + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {formData !== null && formData.bidOrgDict === 'organization_1' ? ( + + + + ) : (<>) + } + + + + + + + + + + + + { return '1' } }]}> + + + + + + + + + + + + + + + + + + + + + + + + Number(value) + }, + { + pattern: /^\d+.?\d{0,4}$/, + message: '小数点后最多只能输入四位' + }, + { + pattern: /^[0-9]/, + message: '请输入正确的数字金额' + }, + ]} + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + whetherReadonly ? null : + () + } + + + + + + +
+ ) + } + + return formEditBidding(); + +} + +export default ProjectDocumentation; \ No newline at end of file diff --git a/src/pages/ZYuShen/Bid/BiddingAnnouncement/components/BiddingDocument.tsx b/src/pages/ZYuShen/Bid/BiddingAnnouncement/components/BiddingDocument.tsx index 7de69a9..b18c045 100644 --- a/src/pages/ZYuShen/Bid/BiddingAnnouncement/components/BiddingDocument.tsx +++ b/src/pages/ZYuShen/Bid/BiddingAnnouncement/components/BiddingDocument.tsx @@ -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 = (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([]); //标包信息 const [spinning, setSping] = useState();//加载遮罩 const [editInformation, setEditInformation] = useState(false);//是否可编 @@ -38,7 +39,7 @@ const BiddingDocument: React.FC = (props) => { const [UploadList, setUploadList] = useState(); //存upload列表 const [UploadID, setUploadID] = useState("empty"); //upload 业务id const UploadProps: UploadProps = { - name:"file", + name: "file", disabled: editInformation } @@ -51,7 +52,7 @@ const BiddingDocument: React.FC = (props) => { useEffect(() => { - Int(); + Int(); form.resetFields();//清除form中数据 }, [type, pkId]); const Int = () => { @@ -67,7 +68,7 @@ const BiddingDocument: React.FC = (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 = (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 = (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 = (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 = (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 = (props) => { message: '当前项不可为空', }, ]} + normalize={(value) => trim(value)} > - +
= (props) => { @@ -268,11 +270,11 @@ const BiddingDocument: React.FC = (props) => { name="documentSetId" extra="单个附件最大30MB" > - {UploadID!="empty"? :null} + {UploadID != "empty" ? : null}

资审文件内容

- +
{/* {docBtnName != "" ? = (props) => { : null } */} {docBtnName != "" ? ( - - ): null} + ) : null}
diff --git a/src/utils/CommonUtils.ts b/src/utils/CommonUtils.ts index c82ecc3..dc9bd77 100644 --- a/src/utils/CommonUtils.ts +++ b/src/utils/CommonUtils.ts @@ -11,7 +11,7 @@ * 判断是否等于空 * @param value */ - export function isEmpty(value: any) { +export function isEmpty(value: any) { return value === null || value === void 0 || value === ''; } /** @@ -223,7 +223,7 @@ projectTypeCodeMaps.set("/Comparison", ["procurement_mode_3"]); //招募 projectTypeCodeMaps.set("/Recruit", ["procurement_mode_4"]); //谈判 -projectTypeCodeMaps.set("/Negotiation", ["procurement_mode_5", "procurement_mode_6", ]); +projectTypeCodeMaps.set("/Negotiation", ["procurement_mode_5", "procurement_mode_6",]); //询价 projectTypeCodeMaps.set("/Inquiry", ["procurement_mode_7"]); @@ -265,40 +265,53 @@ export const numberToChinese = (num: any) => { var AA = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"); var BB = new Array("", "十", "百", "仟", "萬", "億", "点", ""); var a = ("" + num).replace(/(^0*)/g, "").split("."), - k = 0, - re = ""; + k = 0, + re = ""; for (var i = a[0].length - 1; i >= 0; i--) { - switch (k) { - case 0: - re = BB[7] + re; - break; - case 4: - if (!new RegExp("0{4}//d{" + (a[0].length - i - 1) + "}$") - .test(a[0])) - re = BB[4] + re; - break; - case 8: - re = BB[5] + re; - BB[7] = BB[5]; - k = 0; - break; - } - if (k % 4 == 2 && a[0].charAt(i + 2) != '0' && a[0].charAt(i + 1) == '0') - re = AA[0] + re; - if (a[0].charAt(i) != '0') - re = AA[a[0].charAt(i)] + BB[k % 4] + re; - k++; + switch (k) { + case 0: + re = BB[7] + re; + break; + case 4: + if (!new RegExp("0{4}//d{" + (a[0].length - i - 1) + "}$") + .test(a[0])) + re = BB[4] + re; + break; + case 8: + re = BB[5] + re; + BB[7] = BB[5]; + k = 0; + break; + } + if (k % 4 == 2 && a[0].charAt(i + 2) != '0' && a[0].charAt(i + 1) == '0') + re = AA[0] + re; + if (a[0].charAt(i) != '0') + re = AA[a[0].charAt(i)] + BB[k % 4] + re; + k++; } if (a.length > 1) // 加上小数部分(如果有小数部分) { - re += BB[6]; - for (var i = 0; i < a[1].length; i++) - re += AA[a[1].charAt(i)]; + re += BB[6]; + for (var i = 0; i < a[1].length; i++) + re += AA[a[1].charAt(i)]; } if (re == '一十') - re = "十"; + re = "十"; if (re.match(/^一/) && re.length == 3) - re = re.replace("一", ""); + re = re.replace("一", ""); return re; +} +/** + * 删除行首行尾的空白字符方法(包括空格、制表符、换页符等等) + * @param str + * @returns + */ +export const trim = (str: string): string => { + if (isNotEmpty(str)) { + let _str = str.replace(/(^\s*)|(\s*$)/g, ""); + _str = _str.replace(/[<>|\\/??::*""“”\s\r\n\t]/g, ""); + return _str; + } + return ''; } \ No newline at end of file