1107
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
/**
|
||||
* 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
|
||||
}
|
||||
Reference in New Issue
Block a user