zhangjie 2 年 前
コミット
2349e18414

+ 24 - 6
src/modules/card/views/CardManage.vue

@@ -141,13 +141,22 @@
                 更多<i class="el-icon-more el-icon--right"></i>
               </el-button>
               <el-dropdown-menu slot="dropdown" class="action-dropdown">
+                <el-dropdown-item>
+                  <el-button
+                    size="mini"
+                    type="primary"
+                    plain
+                    @click="toChangeTeacher(scope.row)"
+                    >编辑任务
+                  </el-button>
+                </el-dropdown-item>
                 <el-dropdown-item>
                   <el-button
                     size="mini"
                     type="primary"
                     plain
                     @click="toEdit(scope.row)"
-                    >编辑
+                    >编辑题卡
                   </el-button>
                 </el-dropdown-item>
                 <el-dropdown-item>
@@ -156,12 +165,11 @@
                     type="primary"
                     plain
                     @click="toView(scope.row)"
-                    >查看
+                    >查看题卡
                   </el-button>
                 </el-dropdown-item>
                 <el-dropdown-item>
                   <el-button
-                    v-if="false"
                     size="mini"
                     type="danger"
                     plain
@@ -176,7 +184,7 @@
                     plain
                     @click="toDownload([scope.row.id])"
                   >
-                    下载
+                    下载题卡
                   </el-button>
                 </el-dropdown-item>
               </el-dropdown-menu>
@@ -469,11 +477,11 @@ export default {
       row.enable = enable;
       this.$message.success("操作成功!");
     },
-    toEdit(row) {
+    toChangeTeacher(row) {
       this.curRow = { ...row, teacherId: row.assignTeacher };
       this.$refs.ModifyCard.open();
     },
-    toView(row) {
+    toEdit(row) {
       this.cacheSearchInfo();
       this.$router.push({
         name: "CardEdit",
@@ -483,6 +491,16 @@ export default {
         },
       });
     },
+    toView(row) {
+      const href = this.getRouterPath({
+        name: "CardPreview",
+        params: {
+          viewType: "view",
+          cardId: row.id,
+        },
+      });
+      window.open(href);
+    },
     async toDelete(row) {
       const confirm = await this.$confirm(
         `确定要删除题卡【${row.name}】吗?`,

+ 1 - 1
src/modules/questions/views/Course.vue

@@ -508,7 +508,7 @@ export default {
       var url =
         QUESTION_API +
         "/course/coursePage/" +
-        (this.currentPage - 1) +
+        this.currentPage +
         "/" +
         this.pageSize +
         "?" +

+ 1 - 1
src/modules/questions/views/School.vue

@@ -364,7 +364,7 @@ export default {
       var url =
         QUESTION_API +
         "/org/rootOrgPage/" +
-        (this.currentPage - 1) +
+        this.currentPage +
         "/" +
         this.pageSize +
         "?" +

+ 5 - 0
src/plugins/axios.js

@@ -213,6 +213,11 @@ _$httpWith500Msg.interceptors.response.use(
       return Promise.reject(error);
     }
 
+    // 下载数据类型为blob时,错误提示直接抛给通用下载逻辑
+    if (error.response.config.responseType === "blob") {
+      return Promise.reject(error);
+    }
+
     if (status != 200) {
       const data = error.response.data;
       if (ERROR_MSG_CONFIG.map((v) => v.code).includes(data.code)) {

+ 9 - 5
src/plugins/download.js

@@ -26,11 +26,15 @@ export async function downloadByApi(fetchFunc, fileName) {
   });
 
   // 展示后台错误信息
-  if (errorInfo && objTypeOf(errorInfo) === "blob") {
-    const res = await blobToText(errorInfo).catch(() => {});
-    if (!res) return Promise.reject("下载失败!");
-    const resJson = JSON.parse(res);
-    return Promise.reject(resJson.message);
+  if (errorInfo) {
+    if (errorInfo.response && objTypeOf(errorInfo.response.data) === "blob") {
+      const res = await blobToText(errorInfo.response.data).catch(() => {});
+      if (!res) return Promise.reject("下载失败!");
+      const resJson = JSON.parse(res);
+      return Promise.reject(resJson.desc);
+    } else {
+      return Promise.reject("下载失败!");
+    }
   }
 
   const filename =