From 9344d08f1f68997035904181df1199fcd7c7da9f Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 21 十二月 2023 11:35:53 +0800
Subject: [PATCH] 1.完成下载环信码功能

---
 src/api/fytz/userApi.js          |   10 +-
 src/api/fytz/creditApi.js        |    6 +
 package-lock.json                |   11 +++
 src/components.d.ts              |    2 
 src/api/fysp/problemApi.js       |    2 
 src/api/fytz/noticeApi.js        |   28 +++++----
 src/views/fytz/user/UserInfo.vue |   40 ++++++++++---
 src/api/fysp/userApi.js          |    8 +-
 src/api/fysp/evaluateApi.js      |    5 -
 src/api/index.js                 |    6 +-
 src/api/fysp/sceneApi.js         |   24 ++++---
 src/api/fysp/taskApi.js          |   28 +++++----
 package.json                     |    1 
 13 files changed, 109 insertions(+), 62 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 89fa2d3..9eb228d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,6 +14,7 @@
         "axios": "^1.2.1",
         "dayjs": "^1.11.10",
         "element-plus": "^2.4.3",
+        "js-base64": "^3.7.5",
         "pinia": "^2.0.26",
         "vue": "^3.2.45",
         "vue-i18n": "^9.8.0",
@@ -5043,6 +5044,11 @@
         "@sideway/formula": "^3.0.0",
         "@sideway/pinpoint": "^2.0.0"
       }
+    },
+    "node_modules/js-base64": {
+      "version": "3.7.5",
+      "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz",
+      "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA=="
     },
     "node_modules/js-sdsl": {
       "version": "4.2.0",
@@ -10834,6 +10840,11 @@
         "@sideway/pinpoint": "^2.0.0"
       }
     },
+    "js-base64": {
+      "version": "3.7.5",
+      "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz",
+      "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA=="
+    },
     "js-sdsl": {
       "version": "4.2.0",
       "dev": true
diff --git a/package.json b/package.json
index 0129d3b..fca809c 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
     "axios": "^1.2.1",
     "dayjs": "^1.11.10",
     "element-plus": "^2.4.3",
+    "js-base64": "^3.7.5",
     "pinia": "^2.0.26",
     "vue": "^3.2.45",
     "vue-i18n": "^9.8.0",
diff --git a/src/api/fysp/evaluateApi.js b/src/api/fysp/evaluateApi.js
index 7e61e1f..6e752a6 100644
--- a/src/api/fysp/evaluateApi.js
+++ b/src/api/fysp/evaluateApi.js
@@ -1,11 +1,10 @@
 import { $fysp } from '../index';
 
 export default {
-
   /**
    * 鑾峰彇鑷姩璇勪及鍘嗗彶璁板綍
    */
-  fetchAutoEvaluation(param){
-    return $fysp.post(`evaluation/auto/record`, param);
+  fetchAutoEvaluation(param) {
+    return $fysp.post(`evaluation/auto/record`, param).then((res) => res.data);
   }
 };
diff --git a/src/api/fysp/problemApi.js b/src/api/fysp/problemApi.js
index ce2ba9b..5bb2b72 100644
--- a/src/api/fysp/problemApi.js
+++ b/src/api/fysp/problemApi.js
@@ -10,6 +10,6 @@
    */
   checkProblem({ pId, action, remark = '', userId = id, userName = name }) {
     const params = `?pId=${pId}&action=${action}&remark=${remark}&userId=${userId}&userName=${userName}`;
-    return $fysp.post(`problemlist/check${params}`);
+    return $fysp.post(`problemlist/check${params}`).then((res) => res.data);
   },
 };
diff --git a/src/api/fysp/sceneApi.js b/src/api/fysp/sceneApi.js
index be95402..9f38b93 100644
--- a/src/api/fysp/sceneApi.js
+++ b/src/api/fysp/sceneApi.js
@@ -7,7 +7,7 @@
    */
   searchScene(area, page = 1, perPage = 20) {
     const params = `page=${page}&per_page=${perPage}`;
-    return $fysp.post(`scense/find?${params}`, area);
+    return $fysp.post(`scense/find?${params}`, area).then((res) => res.data);
   },
 
   /**
@@ -16,11 +16,13 @@
    * @returns 鍦烘櫙璇︽儏
    */
   getSceneDetail(sId) {
-    return $fysp.get(`scense/detail`, {
-      params: {
-        sceneId: sId
-      }
-    });
+    return $fysp
+      .get(`scense/detail`, {
+        params: {
+          sceneId: sId
+        }
+      })
+      .then((res) => res.data);
   },
 
   /**
@@ -33,21 +35,21 @@
       subScene: subScene ? JSON.stringify(subScene) : null,
       sceneDevice: sceneDevice ? sceneDevice : null
     };
-    return $fysp.post(`scense/detail/update?${params}`, rb);
+    return $fysp.post(`scense/detail/update?${params}`, rb).then((res) => res.data);
   },
 
   /**
    * 鏇存柊鍦烘櫙棰濆淇℃伅
    */
   updateSubScene(typeId, subScene) {
-    return this.updateSceneDetail(typeId, { subScene: subScene });
+    return this.updateSceneDetail(typeId, { subScene: subScene }).then((res) => res.data);
   },
 
   /**
    * 鏇存柊鍦烘櫙璁惧淇℃伅
    */
   updateSceneDevice(typeId, sceneDevice) {
-    return this.updateSceneDetail(typeId, { sceneDevice: sceneDevice });
+    return this.updateSceneDetail(typeId, { sceneDevice: sceneDevice }).then((res) => res.data);
   },
 
   /**
@@ -55,7 +57,7 @@
    * @param {Object} scene
    */
   createScene(scene) {
-    return $fysp.put('scense', scene);
+    return $fysp.put('scense', scene).then((res) => res.data);
   },
 
   /**
@@ -63,6 +65,6 @@
    * @param {Object} scene
    */
   updateScene(scene) {
-    return $fysp.post('scense', scene);
+    return $fysp.post('scense', scene).then((res) => res.data);
   }
 };
diff --git a/src/api/fysp/taskApi.js b/src/api/fysp/taskApi.js
index 1d6a3d8..35096d7 100644
--- a/src/api/fysp/taskApi.js
+++ b/src/api/fysp/taskApi.js
@@ -5,29 +5,33 @@
    * 鑾峰彇椤跺眰浠诲姟
    */
   getTopTask() {
-    return $fysp.get('task/alltask/0');
+    return $fysp.get('task/alltask/0').then((res) => res.data);
   },
 
   /**
    * 鑾峰彇瀛愪换鍔$粺璁′俊鎭�
    */
   getSubtaskSummary({ topTaskId = undefined, sceneTypeId = undefined }) {
-    return $fysp.get('subtask/summary', {
-      params: {
-        topTaskId: topTaskId,
-        sceneTypeId: sceneTypeId
-      }
-    });
+    return $fysp
+      .get('subtask/summary', {
+        params: {
+          topTaskId: topTaskId,
+          sceneTypeId: sceneTypeId
+        }
+      })
+      .then((res) => res.data);
   },
 
   /**
    * 鑾峰彇瀛愪换鍔¢棶棰樿鎯�
    */
   getProBySubtask(id) {
-    return $fysp.get('problemlist/subtask', {
-      params: {
-        stGuid: id
-      }
-    });
+    return $fysp
+      .get('problemlist/subtask', {
+        params: {
+          stGuid: id
+        }
+      })
+      .then((res) => res.data);
   }
 };
diff --git a/src/api/fysp/userApi.js b/src/api/fysp/userApi.js
index 758b4c2..389bf87 100644
--- a/src/api/fysp/userApi.js
+++ b/src/api/fysp/userApi.js
@@ -5,27 +5,27 @@
    * 鑾峰彇鐢ㄦ埛璇︽儏
    */
   getUserById(id) {
-    return $fysp.get(`userinfo/${id}`);
+    return $fysp.get(`userinfo/${id}`).then((res) => res.data);
   },
 
   /**
    * 鏇存柊鐢ㄦ埛璇︽儏
    */
   updateUser(user) {
-    return $fysp.post(`userinfo`, user);
+    return $fysp.post(`userinfo`, user).then((res) => res.data);
   },
 
   /**
    * 鑾峰彇鍦烘櫙鐨勭敤鎴疯鎯�
    */
   getUserByScene(sId) {
-    return $fysp.get(`userinfo/scene/get?sceneId=${sId}`);
+    return $fysp.get(`userinfo/scene/get?sceneId=${sId}`).then((res) => res.data);
   },
 
   /**
    * 鑷姩鍒涘缓璐︽埛
    */
   autoCreateAccount(sId) {
-    return $fysp.post(`userinfo/create?sceneId=${sId}`);
+    return $fysp.post(`userinfo/create?sceneId=${sId}`).then((res) => res.data);
   }
 };
diff --git a/src/api/fytz/creditApi.js b/src/api/fytz/creditApi.js
index 589bbe8..6c0dec0 100644
--- a/src/api/fytz/creditApi.js
+++ b/src/api/fytz/creditApi.js
@@ -1,3 +1,4 @@
+import { Base64 } from 'js-base64';
 import { $fytz } from '../index';
 
 /**
@@ -12,10 +13,11 @@
     return $fytz
       .get(`credit/ecCode/download?userId=${userId}`, { responseType: 'blob' })
       .then((res) => {
-        const url = window.URL.createObjectURL(new Blob([res.data]));
+        const name = Base64.decode(res.headers.get('fileName'));
+        const url = window.URL.createObjectURL(res.data);
         const link = document.createElement('a');
         link.href = url;
-        link.setAttribute('download', 'creditCode.png');
+        link.setAttribute('download', name);
         document.body.appendChild(link);
         link.click();
         document.body.removeChild(link);
diff --git a/src/api/fytz/noticeApi.js b/src/api/fytz/noticeApi.js
index 1a341d7..af6bd85 100644
--- a/src/api/fytz/noticeApi.js
+++ b/src/api/fytz/noticeApi.js
@@ -9,23 +9,27 @@
    */
   getNoticeHistory({ type, subtype = null, page = 1, perPage = 20 }) {
     const params = `userId=${id}&page=${page}&per_page=${perPage}`;
-    return $fytz.post(`notifications/history?${params}`, {
-      ecNoticetype: type,
-      ecNoticesubtype: subtype
-    });
+    return $fytz
+      .post(`notifications/history?${params}`, {
+        ecNoticetype: type,
+        ecNoticesubtype: subtype
+      })
+      .then((res) => res.data);
   },
 
   /**
    * 鑾峰彇鐢ㄦ埛鏈閫氱煡
    */
   getNotification() {
-    return $fytz.get('notifications', {
-      params: {
-        userId: id,
-        page: 1,
-        per_page: 30
-      }
-    });
+    return $fytz
+      .get('notifications', {
+        params: {
+          userId: id,
+          page: 1,
+          per_page: 30
+        }
+      })
+      .then((res) => res.data);
   },
 
   /**
@@ -62,6 +66,6 @@
   releaseNotice(notice) {
     notice.authorId = id;
     notice.authorName = name;
-    return $fytz.post(`notifications/${id}/release2`, notice);
+    return $fytz.post(`notifications/${id}/release2`, notice).then((res) => res.data);
   }
 };
diff --git a/src/api/fytz/userApi.js b/src/api/fytz/userApi.js
index 8a252c0..dd9b9fa 100644
--- a/src/api/fytz/userApi.js
+++ b/src/api/fytz/userApi.js
@@ -11,7 +11,7 @@
    */
   fetchUser(page = 1, per_page = 20, data) {
     const params = `page=${page}&per_page=${per_page}`;
-    return $fytz.post(`baseInfo/search/?${params}`, data);
+    return $fytz.post(`baseInfo/search/?${params}`, data).then((res) => res.data);
   },
 
   /**
@@ -20,7 +20,7 @@
    * @returns
    */
   fetchUserBaseInfo(userId) {
-    return $fytz.get(`userInfo/baseInfo?userId=${userId}`);
+    return $fytz.get(`userInfo/baseInfo?userId=${userId}`).then((res) => res.data);
   },
 
   /**
@@ -29,7 +29,7 @@
    * @returns
    */
   updateUserInfo(data) {
-    return $fytz.post('userInfo', data);
+    return $fytz.post('userInfo', data).then((res) => res.data);
   },
 
   /**
@@ -38,13 +38,13 @@
    * @returns
    */
   createUser(data) {
-    return $fytz.put('userInfo/create', data);
+    return $fytz.put('userInfo/create', data).then((res) => res.data);
   },
 
   /**
    * 閲嶇疆鐢ㄦ埛瀵嗙爜
    */
   resetPassword(id) {
-    return $fytz.post(`userInfo/resetPw?userId=${id}`);
+    return $fytz.post(`userInfo/resetPw?userId=${id}`).then((res) => res.data);
   }
 };
diff --git a/src/api/index.js b/src/api/index.js
index 7b15cd6..45f5a4f 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -1,7 +1,7 @@
 import axios from 'axios';
 import { ElMessage } from 'element-plus';
 
-const debug = true;
+const debug = false;
 
 let ip1 = 'http://47.100.191.150:9005/';
 let ip1_file = 'http://47.100.191.150:9005/';
@@ -67,7 +67,7 @@
       if (response.status == 200) {
         if (response.data.success != undefined && response.data.success != null) {
           if (response.data.success == true) {
-            return response.data;
+            return response;
           } else {
             ElMessage({
               message: response.data.message,
@@ -76,7 +76,7 @@
             return Promise.reject(response.data.message);
           }
         } else {
-          return response.data;
+          return response;
         }
       } else {
         return Promise.reject(response);
diff --git a/src/components.d.ts b/src/components.d.ts
index 99f1394..c260238 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -17,6 +17,7 @@
     ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
     ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
     ElButton: typeof import('element-plus/es')['ElButton']
+    ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
     ElCard: typeof import('element-plus/es')['ElCard']
     ElCascader: typeof import('element-plus/es')['ElCascader']
     ElCol: typeof import('element-plus/es')['ElCol']
@@ -59,6 +60,7 @@
     ElTabPane: typeof import('element-plus/es')['ElTabPane']
     ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
+    ElText: typeof import('element-plus/es')['ElText']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
     ElTree: typeof import('element-plus/es')['ElTree']
     Footer: typeof import('./components/core/Footer.vue')['default']
diff --git a/src/views/fytz/user/UserInfo.vue b/src/views/fytz/user/UserInfo.vue
index 3269798..72b8dd9 100644
--- a/src/views/fytz/user/UserInfo.vue
+++ b/src/views/fytz/user/UserInfo.vue
@@ -58,9 +58,6 @@
         </template>
         <template #default="{ row }">
           <el-space>
-            <!-- <el-button :loading="row.loading1" type="primary" size="small" @click="editRow(row)"
-              >鏌ョ湅</el-button
-            > -->
             <el-button
               :loading="row.loading2"
               :type="row.userInfo.isenable != '0' ? 'danger' : 'primary'"
@@ -68,7 +65,27 @@
               @click="itemActive(row)"
               >{{ row.userInfo.isenable != '0' ? '涓嬬嚎' : '涓婄嚎' }}</el-button
             >
-            <el-dropdown
+            <el-button-group>
+              <el-button type="primary" :loading="row.loading1" size="small" @click="editRow(row)"
+                >鏌ョ湅</el-button
+              >
+              <el-dropdown @command="handleCommand" trigger="click">
+                <el-button
+                  type="primary"
+                  :loading="row.downloadLoading"
+                  size="small"
+                  :icon="row.downloadLoading ? '' : 'ArrowDown'"
+                ></el-button>
+                <template #dropdown>
+                  <el-dropdown-menu>
+                    <el-dropdown-item icon="Download" :command="{ c: 1, p: row }"
+                      >涓嬭浇鐜俊鐮�</el-dropdown-item
+                    >
+                  </el-dropdown-menu>
+                </template>
+              </el-dropdown>
+            </el-button-group>
+            <!-- <el-dropdown
               split-button
               :loading="row.loading1"
               size="small"
@@ -85,7 +102,7 @@
                   >
                 </el-dropdown-menu>
               </template>
-            </el-dropdown>
+            </el-dropdown> -->
           </el-space>
         </template>
       </el-table-column>
@@ -108,12 +125,14 @@
   },
   data() {
     return {
+      // 鏌ヨ鏉′欢
       formSearch: {
         _locations: {},
         searchText: '',
         scensetype: {},
         online: {}
       },
+      // 鏂板鐢ㄦ埛寮瑰嚭妗�
       drawer: false
     };
   },
@@ -188,14 +207,17 @@
     tableRowClassName({ row }) {
       return row.userInfo.isenable ? 'online-row' : 'offline-row';
     },
-    handleCommand(e){
-      const userId = e.p.userInfo.guid
+    handleCommand(e) {
+      const userId = e.p.userInfo.guid;
       switch (e.c) {
         // 涓嬭浇鐜俊鐮�
         case 1:
-          creditApi.downloadCode(userId)
+          e.p.downloadLoading = true;
+          creditApi.downloadCode(userId).finally(() => {
+            e.p.downloadLoading = false;
+          });
           break;
-      
+
         default:
           break;
       }

--
Gitblit v1.9.3