Просмотр исходного кода

Merge branch 'develop' of http://163.228.141.122:3000/TEAMMODEL/TEAMModelOS into develop

jeff 7 месяцев назад
Родитель
Сommit
9dbca78de5

+ 46 - 1
TEAMModelOS/ClientApp/src/view/evaluation/components/BaseImport.vue

@@ -74,6 +74,7 @@
 <script>
 import excel from '@/utils/excel.js'
 import FileSaver from "file-saver";
+import { post } from '@/api/http'
 export default {
   props: ['period', 'subject'],
   data() {
@@ -171,9 +172,14 @@ export default {
     },
 
     /** 选择文件上传之前 */
-    beforeUpload(file) {
+    async beforeUpload(file) {
       this.isBtnLoading = true
       this.isSelectFinish = true
+      let isRefreshToken = await this.checkToken()
+      if(isRefreshToken) {
+        this.$Message.warning(this.$t('http.error401'))
+        return
+      }
       this.fileName = file.name ? this.getFileName(file.name) : ''
       // 如果是excel格式文档 则需要进行对应解析
       if (this.isExcel(file)) {
@@ -235,6 +241,45 @@ export default {
       }
     },
 
+    /** 检查token是否过期 */
+    checkToken() {
+      return new Promise((resolve, reject) => {
+        if (!localStorage.getItem('expires_in')) return false
+
+        var nowTime = new Date();
+        var offset = nowTime.getTimezoneOffset() / 60
+        let cT = Date.parse(nowTime)
+        let eT = Date.parse(localStorage.getItem('expires_in'))
+        let oT = 0
+        let btw = eT - oT - cT
+        if (btw > 10 * 60 * 1000) {
+          resolve(false)
+        } else {
+          try {
+            let url = this.$store.state.config[this.$store.state.config.srvAdr].coreAPIUrl
+            post(url + '/oauth2/token', {
+                "grant_type": "refresh_token",
+                'client_id': this.$store.state.config[this.$store.state.config.srvAdr].clientID,
+                "access_token": localStorage.getItem('access_token')
+            }).then(
+                res => {
+                    localStorage.setItem("access_token", res.access_token)
+                    localStorage.setItem("expires_in", res.expires_in)
+                    resolve(false)
+                },
+                err => {
+                    sessionStorage.setItem('loginOut', 'token刷新失败,退出重新登录')
+                    reject(true)
+                }
+            )
+          } catch (error) {
+            console.error(error);
+            reject(true)
+          }
+        }
+      })
+    },
+
     /* 获取文件名 */
     getFileName(name) {
       let regRule = /[`~?$^&*\|]/g

+ 1 - 1
TEAMModelOS/Controllers/Common/ExamController.cs

@@ -2551,7 +2551,7 @@ namespace TEAMModelOS.Controllers
             //ResponseBuilder builder = ResponseBuilder.custom();
             //var (id, school) = HttpContext.GetAuthTokenInfo();
             if (!request.TryGetProperty("id", out JsonElement id)) return BadRequest();
-            if (!request.TryGetProperty("cIds", out JsonElement cIds)) return BadRequest();
+            //if (!request.TryGetProperty("cIds", out JsonElement cIds)) return BadRequest();
             if (!request.TryGetProperty("studentId", out JsonElement studentId)) return BadRequest();
             if (!request.TryGetProperty("code", out JsonElement school)) return BadRequest();
             if (!request.TryGetProperty("scode", out JsonElement scode)) return BadRequest();