金久信后台管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

190 lines
5.5 KiB

/**
* vk-unicloud框架客户端(前端)
* author VK
*/
import userCenter from './libs/vk-unicloud/vk-unicloud-user-center'
import callFunctionUtil from './libs/vk-unicloud/vk-unicloud-callFunctionUtil'
import pubfn from './libs/function/index'
import modal from './libs/function/modal'
import navigate from './libs/function/vk.navigate'
import localStorage from './libs/function/vk.localStorage'
import sessionStorage from './libs/function/vk.sessionStorage'
import aliyunOSSUtil from './libs/function/aliyunOSSUtil'
import openapi from './libs/openapi/index'
import requestUtil from './libs/function/vk.request'
import importObject from './libs/function/vk.importObject'
import filters from './libs/function/vk.filters'
import mixin from './libs/mixin/mixin.js'
import initPermission from './libs/function/permission'
import storeMixin from './libs/store/mixin/mixin'
import initGlobalError from './libs/store/libs/error'
import consoleLog from './libs/install/console.log'
import updateManager from './libs/function/updateManager.js'
// #ifdef H5
import h5 from './libs/function/vk.h5'
// #endif
var vk = {
userCenter,
callFunctionUtil,
/**
* 发起一个云函数请求
*/
callFunction: callFunctionUtil.callFunction,
getToken: callFunctionUtil.getToken,
checkToken: callFunctionUtil.checkToken,
uploadFile: callFunctionUtil.uploadFile,
getConfig: callFunctionUtil.getConfig,
emitRefreshToken: callFunctionUtil.emitRefreshToken,
onRefreshToken: callFunctionUtil.onRefreshToken,
offRefreshToken: callFunctionUtil.offRefreshToken,
pubfn,
// #ifdef H5
h5,
// #endif
alert: modal.alert,
toast: modal.toast,
confirm: modal.confirm,
prompt: modal.prompt,
showActionSheet: modal.showActionSheet,
showLoading: modal.showLoading,
hideLoading: modal.hideLoading,
setLoading: modal.setLoading,
navigate,
// 保留当前页面,并进行页面跳转
navigateTo: navigate.navigateTo,
// 关闭当前页面,并进行页面跳转
redirectTo: navigate.redirectTo,
// 并关闭所有页面,并进行页面跳转
reLaunch: navigate.reLaunch,
// 并关闭所有非tab页面,并进行tab面跳转
switchTab: navigate.switchTab,
// 页面返回
navigateBack: navigate.navigateBack,
// 跳转到首页
navigateToHome: navigate.navigateToHome,
// 跳转到登录页
navigateToLogin: navigate.navigateToLogin,
// 跳转到小程序
navigateToMiniProgram: navigate.navigateToMiniProgram,
// 触发全局的自定义事件,附加参数都会传给监听器回调函数。
$emit: navigate.$emit,
// 监听全局的自定义事件,事件由 uni.$emit 触发,回调函数会接收事件触发函数的传入参数。
$on: navigate.$on,
// 触发全局的自定义事件,附加参数都会传给监听器回调函数。
$once: navigate.$once,
// 移除全局自定义事件监听器。
$off: navigate.$off,
// 本地持久
localStorage: localStorage,
// 本地会话缓存
sessionStorage: sessionStorage,
// 获取应用语言列表
getLocaleList: pubfn.getLocaleList,
// 获取应用当前语言
getLocale: pubfn.getLocale,
// 获取应用当前语言对象
getLocaleObject: pubfn.getLocaleObject,
// 设置应用当前语言
setLocale: pubfn.setLocale,
// 本地持久缓存
...localStorage,
// 本地会话缓存
...sessionStorage,
// 阿里云oss
aliyunOSSUtil,
// 更新管理器
updateManager,
// 开放API
openapi,
// 请求库
requestUtil,
// 发起URL请求
request: requestUtil.request,
// 导出云对象
importObject
};
// vk实例初始化
vk.init = function(obj = {}) {
let {
Vue, // Vue实例
config, // 配置
store, // vuex简写法则(新版本无需传store)
} = obj;
if (typeof store !== "undefined") {
// 兼容旧版本
Vue.use(store);
} else {
// 新版本无需传store
Vue.mixin(storeMixin);
if (config.globalError) {
Vue.use(initGlobalError);
}
}
// 自定义云函数路由配置
vk.callFunctionUtil.setConfig(config);
// 重写 console.log
Vue.use(consoleLog);
};
vk.getGlobalObject = function() {
if (typeof globalThis === "object") return globalThis;
if (typeof self === "object") return self;
if (typeof window === "object") return window;
if (typeof global === "object") return global;
};
// 加载拓展功能
vk.use = function(obj, util) {
for (let name in obj) {
if (obj[name] && typeof obj[name].init === "function") {
obj[name].init(util);
}
vk[name] = obj[name];
}
};
const install = Vue => {
// 全局混入
Vue.mixin(mixin);
// #ifndef VUE3
// 加载全局过滤器开始
for (let i in filters) {
Vue.filter(i, filters[i]);
}
Vue.prototype.vk = vk;
Vue.prototype.$fn = vk.pubfn;
// #endif
// #ifdef VUE3
// 将vk挂载到Vue实例
Vue.config.globalProperties.vk = vk;
Vue.config.globalProperties.$fn = vk.pubfn;
// #endif
// 将vk挂载到uni对象
if (typeof uni == "object") uni.vk = vk;
// 将vk挂载到全局
let vkGlobalThis = vk.getGlobalObject();
if (typeof vkGlobalThis == "object") vkGlobalThis.vk = vk;
let util = { vk };
// 加载插件
vk.use({
callFunctionUtil: vk.callFunctionUtil,
openapi: vk.openapi
}, util);
initPermission(Vue);
}
export default {
install
}