diff --git a/src/components/card/CardProj.tsx b/src/components/card/CardProj.tsx
index d2376af..fbb1ad9 100644
--- a/src/components/card/CardProj.tsx
+++ b/src/components/card/CardProj.tsx
@@ -69,63 +69,42 @@ export default function CardProj(props: any) {
const [tagIdArray, setTagIdArray] = useState(data.tagDataIds)
// 动态显示标签状态
// const [tagStatus, setTagStatus] = useState('')
- // const downAll = (projId: string) => {
- // get({
- // messageApi,
- // url: `${Axios.defaults?.baseURL}/route/proj/download/all/${projId}`,
- // onBefore() {
- // console.log('正在打包')
- // },
- // onSuccess(data: any) {
- // console.log(data)
-
- // },
- // onFinally() {
-
- // }
- // })
- // }
- const downAll = async (projId: string, name: string) => {
+
+ const downAll = (projId: string, name: string) => {
setHasDown(true)
if (!hasDown) {
-
- try {
- setDownModal(true)
- setHasDown(true)
- // 发送请求
- const response = await Axios.get(
- `${Axios.defaults?.baseURL}/route/proj/download/all/${projId}`,
- { responseType: 'blob' } // 指定响应类型为 blob
- );
-
- // 检查状态码
- if (response.status === 200) {
- setDownModal(false)
- // 创建 Blob 对象
- const blob = new Blob([response.data], { type: response.headers['content-type'] });
- // 创建下载链接
- const url = window.URL.createObjectURL(blob);
- // 创建一个临时的 元素
- const link = document.createElement('a');
+ get({
+ messageApi,
+ url: `/route/proj/download/all/${projId}`,
+ config: {
+ responseType: 'blob' // 指定响应类型为 blob
+ },
+ onBefore() {
+ setDownModal(true); // 打开下载模态框
+ setHasDown(true); // 设置正在下载状态
+ },
+ onSuccess(data:any) {
+ // 处理下载成功的逻辑
+ const blob = new Blob([data.data]); // 创建 Blob 对象
+ const url = window.URL.createObjectURL(blob); // 创建下载链接
+ const link = document.createElement('a'); // 创建临时的 元素
link.href = url;
link.setAttribute('download', `${name}全部资料.zip`); // 设置下载文件的名称
document.body.appendChild(link);
link.click(); // 触发下载
document.body.removeChild(link); // 下载完成后移除 元素
- // 释放 URL 对象
+
+ // 释放 URL 对象,建议在用户确认下载完成后解除
// window.URL.revokeObjectURL(url);
- } else {
- console.error('下载失败');
-
+ },
+ onFinally() {
+ // 在请求完成后(成功或失败)都会执行
+ setHasDown(false); // 重置 hasDown 状态
+ setDownModal(false); // 关闭模态框
}
- } catch (error) {
- console.error('请求失败', error);
-
- } finally {
- // 无论请求成功与否,下载完成后都重置 hasDown 状态
- setHasDown(false);
- setDownModal(false); // 关闭模态框
- }
+ })
+
+
} else {
setDownModal(true);
}