Browse Source

fix: 数据导出接口的数据权限设置

zhangying 9 months ago
parent
commit
6ceb804486
1 changed files with 19 additions and 3 deletions
  1. 19 3
      vue/src/utils/downloadFile.ts

+ 19 - 3
vue/src/utils/downloadFile.ts

@@ -4,6 +4,9 @@ import {ACCESS_TOKEN_KEY} from "@/enums/cacheEnum";
 import {Storage} from '@/utils/Storage';
 import dayjs from "dayjs";
 import {message as $message} from "ant-design-vue/lib/components";
+import {router} from '@/router';
+import {useUserStore} from '@/store/modules/user';
+import crtyptoHelp from "@/utils/crypto";
 /**
  * URL方式保存文件到本地
  * @param data 文件的blob数据
@@ -120,13 +123,26 @@ export interface downResponse {
 const handleDownloadByGet = async <T = any>(url, params, fileName, errorMsg): Promise<T> => {
   try {
     const token = Storage.get(ACCESS_TOKEN_KEY);
+    let headers = {}
+    if (token) {
+      // 登录用户token
+      headers['Authorization'] = token;
+
+      // 设置当前登录用户的角色的数据权限
+      const menuNo: any = router.currentRoute.value.meta.id;
+      if (menuNo != null) {
+        const allDataRange = useUserStore().dataRangeList;
+        const dataRange = allDataRange.filter(x => x.menuNo == menuNo)[0];
+        const dataRangeData = crtyptoHelp.encryptDes(JSON.stringify(dataRange));
+        headers['dng'] = dataRangeData.token;
+        headers['tm'] = dataRangeData.tm;
+      }
+    }
     const res = await axios.get(url, {
       params: params,
       responseType: 'blob',//设置返回类型
       //设置token
-      headers: {
-        Authorization: token,
-      },
+      headers,
     },).then((res) => {
       downloadFile(res, fileName, errorMsg);
     }, (error: any) => {