93 lines
3.1 KiB
Vue
93 lines
3.1 KiB
Vue
|
<script>
|
|||
|
import {
|
|||
|
mapActions,
|
|||
|
mapMutations
|
|||
|
} from 'vuex'
|
|||
|
import config from '@/admin.config.js'
|
|||
|
import {
|
|||
|
version
|
|||
|
} from './package.json'
|
|||
|
import { uniAdminCacheKey } from './store/constants.js'
|
|||
|
import uploadFileForExtStorage from "@/js_sdk/ext-storage/uploadFileForExtStorage.js"
|
|||
|
export default {
|
|||
|
created() {
|
|||
|
this.clear = undefined
|
|||
|
},
|
|||
|
methods: {
|
|||
|
...mapMutations('app', ['SET_THEME']),
|
|||
|
...mapActions({
|
|||
|
init: 'app/init'
|
|||
|
}),
|
|||
|
clearPlatform() {
|
|||
|
const keysOfPlatform = uni.getStorageInfoSync().keys.filter(key => key.indexOf('platform') > -1)
|
|||
|
keysOfPlatform.length && keysOfPlatform.forEach(key => uni.removeStorageSync(key))
|
|||
|
}
|
|||
|
},
|
|||
|
onPageNotFound(msg) {
|
|||
|
uni.redirectTo({
|
|||
|
url: config.error.url
|
|||
|
})
|
|||
|
},
|
|||
|
onLaunch: function() {
|
|||
|
// #ifdef H5
|
|||
|
console.log(
|
|||
|
`%c uni-admin %c v${version} `,
|
|||
|
'background:#35495e ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff',
|
|||
|
'background:#007aff ;padding: 1px; border-radius: 0 3px 3px 0; color: #fff; font-weight: bold;'
|
|||
|
)
|
|||
|
// #endif
|
|||
|
// #ifdef H5
|
|||
|
// 此处为强制用户必须登录才能访问其他页面,如果需要部分页面不登录也能访问,需要在此过滤这些页面不执行下面的代码或直接注释掉此代码
|
|||
|
// let uni_id_token_expired = uni.getStorageSync("uni_id_token_expired");
|
|||
|
// if (!uni_id_token_expired || uni_id_token_expired < Date.now()) {
|
|||
|
// uni.reLaunch({
|
|||
|
// url: config.login.url
|
|||
|
// })
|
|||
|
// }
|
|||
|
// #endif
|
|||
|
// 线上示例使用
|
|||
|
// console.log('%c uni-app官方团队诚邀优秀前端工程师加盟,一起打造更卓越的uni-app & uniCloud,欢迎投递简历到 hr2013@dcloud.io', 'color: red');
|
|||
|
console.log('App Launch')
|
|||
|
if (this.$uniIdPagesStore.store.hasLogin) {
|
|||
|
this.init()
|
|||
|
}
|
|||
|
|
|||
|
// 登录成功回调
|
|||
|
uni.$on('uni-id-pages-login-success', () => {
|
|||
|
this.init()
|
|||
|
})
|
|||
|
|
|||
|
// theme
|
|||
|
this.SET_THEME(uni.getStorageSync(uniAdminCacheKey.theme) || 'default')
|
|||
|
|
|||
|
// 设置 uniCloud.uploadFile 默认上传的云存储供应商
|
|||
|
uploadFileForExtStorage.init({
|
|||
|
provider: "unicloud", // provider代表默认上传到哪,可选项 "unicloud" 内置存储; "extStorage" 扩展存储;
|
|||
|
domain: "cdn.example.com", //【重要】这里需要改成你开通扩展存储时绑定的自定义域名)
|
|||
|
fileID2fileURL: true, // 将fileID转成fileURL,方便兼容老项目
|
|||
|
// 获取上传参数的函数
|
|||
|
uploadFileOptions: async (event) => {
|
|||
|
// ext-storage-co 是你自己写的云对象,参考代码:https://doc.dcloud.net.cn/uniCloud/ext-storage/dev.html#getuploadfileoptions
|
|||
|
const uniCloudStorageExtCo = uniCloud.importObject("ext-storage-co");
|
|||
|
return await uniCloudStorageExtCo.getUploadFileOptions(event);
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
onShow: function() {
|
|||
|
console.log('App Show')
|
|||
|
this.clear = setInterval(() => this.clearPlatform(), 15 * 60 * 1000)
|
|||
|
},
|
|||
|
onHide: function() {
|
|||
|
console.log('App Hide')
|
|||
|
this.clear && clearInterval(this.clear)
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss">
|
|||
|
@import '@/common/uni.css';
|
|||
|
@import '@/common/uni-icons.css';
|
|||
|
@import '@/common/admin-icons.css';
|
|||
|
@import '@/common/theme.scss';
|
|||
|
</style>
|