|
@@ -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
|