+
[
- ,
-
)
}
diff --git a/src/pages/ZYuShen/Bid/BiddingAnnouncement/components/BiddingDocument.tsx b/src/pages/ZYuShen/Bid/BiddingAnnouncement/components/BiddingDocument.tsx
index 7de69a9..75eb8c8 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,
@@ -243,7 +244,7 @@ const BiddingDocument: React.FC = (props) => {
},
]}
>
-
+
= (props) => {
@@ -268,11 +269,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/pages/ZZhaoMu/Bid/BiddingAnnouncement/BiddingAnnouncementList.tsx b/src/pages/ZZhaoMu/Bid/BiddingAnnouncement/BiddingAnnouncementList.tsx
index 865bc6c..baa8fc1 100644
--- a/src/pages/ZZhaoMu/Bid/BiddingAnnouncement/BiddingAnnouncementList.tsx
+++ b/src/pages/ZZhaoMu/Bid/BiddingAnnouncement/BiddingAnnouncementList.tsx
@@ -1,4 +1,4 @@
-import { UnorderedListOutlined } from "@ant-design/icons"
+import { ExclamationCircleOutlined, UnorderedListOutlined } from "@ant-design/icons"
import ProTable, { ActionType, ProColumns } from "@ant-design/pro-table"
import { Button, Card, Divider, Drawer, message, Modal, Spin, Table, Tabs } from "antd"
import React, { useEffect, useRef, useState } from "react"
@@ -19,6 +19,8 @@ import { checkConflict } from "@/pages/Bid/BiddingAnnouncement/service";
import { btnAuthority } from "@/utils/authority";
import { getApprProcessList } from "@/utils/SeleApprovalProcess/service"
import SeleApprovalProcess from "@/utils/SeleApprovalProcess"
+import { isEmpty } from "@/utils/CommonUtils"
+import { checkObjectId } from "@/utils/DownloadUtils"
/*
* 招标公告开始
@@ -59,6 +61,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => {
const [approvalVisible, setApprovalVisible] = useState(false);//选择流程弹窗控制参数
const [approvalData, setApprovalData] = useState([]);//选择流程数据存储
const { TabPane } = Tabs;
+ const { confirm } = Modal;
const columns: ProColumns[] = [
{
title: '公告名称',
@@ -117,42 +120,47 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => {
<>
toEdit(record)}>编辑
handleApproval(record)}>提交审批
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
handleRemove(record)}>删除
>
);
let btn2 = (
<>
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
let btn3 = (
<>
handleRelease(record)}>发布
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
let btn4 = (
<>
toEdit(record)}>编辑
handleApproval(record)}>提交审批
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
handleRemove(record)}>删除
>
);
let btn5 = (
<>
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
toChange(record)}>变更
{getProMethod() == "procurement_mode_4" ?
handleReleaseAgain(record)}>再次发布 : null}
@@ -163,9 +171,10 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => {
handleRelease(record)}>发布
handleReleaseOffline(record)}>线下发布
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
@@ -254,51 +263,59 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => {
<>
toEdit4Change(record)}>编辑
handleApproval(record)}>提交审批
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
handleRemove(record)}>删除
>
);
let btn2 = (
<>
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
let btn3 = (
<>
handleRelease(record)}>发布
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
let btn4 = (
<>
toEdit4Change(record)}>编辑
handleApproval(record)}>提交审批
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
handleRemove(record)}>删除
>
);
let btn5 = (
<>
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
+ {getProMethod() == "procurement_mode_4" ?
+ handleReleaseAgain(record)}>再次发布 : null}
>
);
let btn6 = (
<>
handleRelease(record)}>发布
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
@@ -495,17 +512,32 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => {
/**
* 再次发布
* */
- const handleReleaseAgain = async (record: any) => {
- setPageloading(true);
- await releaseNoticeAgain(record.id).then(res => {
- if (res.code == 200) {
- message.success('发布成功');
- if (type == "change" || type == "changeNew") {
- GetList(FpkId);
+ const handleReleaseAgain = (record: any) => {
+ const releaseAgain = async () => {
+ setPageloading(true);
+ await releaseNoticeAgain(record.id).then(res => {
+ if (res.code == 200) {
+ message.success('发布成功');
+ if (type == "change" || type == "changeNew") {
+ GetList(FpkId);
+ }
}
- }
- setRefresh(Math.random() + 1)
- }).finally(() => setPageloading(false));
+ setRefresh(Math.random() + 1)
+ }).finally(() => setPageloading(false));
+ }
+ if (record?.hasChangeAnno) {//存在处于已发布状态的变更公告
+ confirm({
+ title: '有已发布的变更公告,是否再次发布原公告?',
+ icon: ,
+ centered: true,
+ okText: '发布',
+ onOk() {
+ releaseAgain();
+ },
+ });
+ } else {
+ releaseAgain();
+ }
};
/**
@@ -527,13 +559,13 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => {
/**
* 发起审批
* */
- const handleApproval = async (record: any) => {
+ const handleApproval = async (record: any) => {
setPageloading(true);
//获取流程列表
getApprProcessList(record.id).then(res => {
- if(res?.code == 200) {
+ if (res?.code == 200) {
const data = res?.data
- if(data?.approval == true) {//打开选择流程界面
+ if (data?.approval == true) {//打开选择流程界面
setRecordData(record)
setApprovalData(data?.list)
setApprovalVisible(true)
diff --git a/src/pages/ZZhaoMu/Calibration/BidPublicityResult/index.tsx b/src/pages/ZZhaoMu/Calibration/BidPublicityResult/index.tsx
index fd4e4c1..6961ba1 100644
--- a/src/pages/ZZhaoMu/Calibration/BidPublicityResult/index.tsx
+++ b/src/pages/ZZhaoMu/Calibration/BidPublicityResult/index.tsx
@@ -17,6 +17,8 @@ import { getProId } from "@/utils/session";
import { btnAuthority } from "@/utils/authority";
import { getApprProcessList } from "@/utils/SeleApprovalProcess/service"
import SeleApprovalProcess from "@/utils/SeleApprovalProcess"
+import { isEmpty } from "@/utils/CommonUtils"
+import { checkObjectId } from "@/utils/DownloadUtils"
/*
* 招标公示开始
@@ -69,15 +71,15 @@ const BidPublicityResult: React.FC<{}> = (props) => {
title: '起草时间',
dataIndex: 'createDate',
// dataIndex: 'annoStartTime',
- key:"annoStartTime",
- align:'left',
+ key: "annoStartTime",
+ align: 'left',
valueType: 'dateTime',
},
{
title: '公示状态',
dataIndex: 'status',
- key:"status",
- align:'left',
+ key: "status",
+ align: 'left',
// valueEnum: {
// 1: { text: '起草', status: '' },
// 2: { text: '已提交', status: '' },
@@ -110,51 +112,57 @@ const BidPublicityResult: React.FC<{}> = (props) => {
<>
toEdit(record)}>编辑
handleApproval(record)}>提交审批
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
handleRemove(record)}>删除
>
);
let btn2 = (
<>
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
let btn3 = (
<>
handleRelease(record)}>发布
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
let btn4 = (
<>
toEdit(record)}>编辑
handleApproval(record)}>提交审批
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
handleRemove(record)}>删除
>
);
let btn5 = (
<>
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
let btn6 = (
<>
handleRelease(record)}>发布
toRead(record)}>查看
- toApprovalFor(record)}>
+ toApprovalFor(record)} hidden={!checkObjectId(record.id)}>
查看审批流程
+ window.open('/PublicPlatform' + '?id=' + record.id)}>公共服务平台
>
);
@@ -219,7 +227,7 @@ const BidPublicityResult: React.FC<{}> = (props) => {
if (res.data.length == 0) {
message.warn("没有可关联的包件!")
} else {
- setUpdateChange('新建中选候选人公示')
+ setUpdateChange('新增招募结果公示')
setType("new");
setUpdateVisible(true);
}
@@ -231,14 +239,14 @@ const BidPublicityResult: React.FC<{}> = (props) => {
}
/*编辑招标公示*/
const toEdit = (props: any) => {
- setUpdateChange('编辑中选候选人公示')
+ setUpdateChange('编辑招募结果公示')
setPkId(props.id);
setType("edit");
setUpdateVisible(true);
}
/*查看招标公示*/
const toRead = (props: any) => {
- setUpdateChange('查看中选候选人公示')
+ setUpdateChange('查看招募结果公示')
setType("read");
setPkId(props.id);
setUpdateVisible(true);
@@ -317,9 +325,9 @@ const BidPublicityResult: React.FC<{}> = (props) => {
setPageloading(true);
//获取流程列表
getApprProcessList(record.id).then(res => {
- if(res?.code == 200) {
+ if (res?.code == 200) {
const data = res?.data
- if(data?.approval == true) {//打开选择流程界面
+ if (data?.approval == true) {//打开选择流程界面
setRecordData(record)
setApprovalData(data?.list)
setApprovalVisible(true)
@@ -358,7 +366,7 @@ const BidPublicityResult: React.FC<{}> = (props) => {
size={"small"}
loading={pageloading}
toolBarRender={() => [
- toEditAdd([])}>新建中选候选人公示,
+ toEditAdd([])}>新增招募结果公示,
{ handleRemoveMore() }}>批量删除,
]}
search={false}
diff --git a/src/pages/ZZhaoMu/Tender/ProjectManager/ClarifyTheList/components/ClarifyTheList.tsx b/src/pages/ZZhaoMu/Tender/ProjectManager/ClarifyTheList/components/ClarifyTheList.tsx
index 29920dc..8a7b301 100644
--- a/src/pages/ZZhaoMu/Tender/ProjectManager/ClarifyTheList/components/ClarifyTheList.tsx
+++ b/src/pages/ZZhaoMu/Tender/ProjectManager/ClarifyTheList/components/ClarifyTheList.tsx
@@ -477,9 +477,10 @@ const ClarifyTheList: React.FC<{}> = () => {
return;
}
let packageIds = isNotEmpty(form.getFieldValue('packageId')) ? String(form.getFieldValue('packageId')).split(',') : [];
+ let params = { roomType };
if (isNotEmpty(packageIds) && packageIds.length !== 0) {
//获取公告信息 判断文件的获取和截止时间与应答截止时间的关系
- getClarifyAnnoList(packageIds).then(res => {
+ getClarifyAnnoList(packageIds, params).then(res => {
if (res.code == 200) {
getRoomList({ sectionIdList: packageIds }).then((res2) => {
if (res2.code == 200) {
diff --git a/src/pages/ZZhaoMu/Tender/ProjectManager/ClarifyTheList/service.ts b/src/pages/ZZhaoMu/Tender/ProjectManager/ClarifyTheList/service.ts
index 6686bee..77f7470 100644
--- a/src/pages/ZZhaoMu/Tender/ProjectManager/ClarifyTheList/service.ts
+++ b/src/pages/ZZhaoMu/Tender/ProjectManager/ClarifyTheList/service.ts
@@ -107,10 +107,11 @@ export function getSections(projectId: any, roomType: any) {
* 根据标段id查询公告
* @param data
*/
-export function getClarifyAnnoList(data: any) {
+export function getClarifyAnnoList(data: any, params: any) {
return request('/api/biz-service-ebtp-bid/v1/anno/clarifyAnnoList', {
method: 'post',
- data: data
+ data: data,
+ params: params,
});
}
/**
diff --git a/src/services/bidev.js b/src/services/bidev.js
index cc30a8e..c8d0c7b 100644
--- a/src/services/bidev.js
+++ b/src/services/bidev.js
@@ -18,7 +18,7 @@ export async function zmmultiOpenBizassessroom(params) {
export async function resetVerificationCode(params) {
return request(`/api/biz-service-ebtp-process/v1/bizassessroom/update/captcha/${params.id}`,
- {method: 'put'});
+ {method: 'post'});
}
export async function fetchJuryList(params) {
diff --git a/src/utils/CommonUtils.ts b/src/utils/CommonUtils.ts
index c82ecc3..c5d02af 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,62 @@ 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 anchorName
+ */
+export const scrollToAnchor = (anchorName: string) => {
+ if (anchorName) {
+ // 找到锚点
+ let anchorElement = document.getElementById(anchorName);
+ // 如果对应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;
}
\ No newline at end of file
diff --git a/src/utils/DownloadUtils.ts b/src/utils/DownloadUtils.ts
index 005e379..895e044 100644
--- a/src/utils/DownloadUtils.ts
+++ b/src/utils/DownloadUtils.ts
@@ -2,7 +2,7 @@
* @Author: zhoujianlong
* @Date: 2022-03-03 09:06:36
* @Last Modified by: zhoujianlong
- * @Last Modified time: 2022-03-17 16:40:43
+ * @Last Modified time: 2022-05-18 17:23:26
*/
import { getDownloadSecretKey, getFilelist, getFilelistBySecond } from "@/services/download_";
@@ -60,7 +60,7 @@ export interface FilelistProps {
* @param objectId
* @returns
*/
-const checkObjectId = (objectId: string) => {
+export const checkObjectId = (objectId: string) => {
const pattern = /[a-zA-Z]+/;
return objectId.length == 19 && !pattern.test(objectId);
}