2025-07-22 18:31:50 +08:00

126 lines
3.6 KiB
JavaScript

import Vue from 'vue'
import App from './App'
import store from './store'
// +----------------------------------------------------------------------
// | 组件引入
// +----------------------------------------------------------------------
// 引入全局TuniaoUI
import TuniaoUI from 'tuniao-ui'
Vue.use(TuniaoUI)
// 底部导航栏组件
import tabbar from '@/components/tabbar/tabbar.vue';
Vue.component('tabbar', tabbar);
// 登录框组件
import login from '@/components/login/login.vue';
Vue.component('login', login);
// |______________________________________________________________________
// +----------------------------------------------------------------------
// | 函数引入
// +----------------------------------------------------------------------
// 工具函数
import utils from './common/js/utils';
Vue.prototype.utils = utils;
// 广告函数
import adUtils from './common/js/ad';
Vue.prototype.adUtils = adUtils;
// 应用配置
const app_info = require("@/static/appInfo.js");
Vue.prototype.appInfo = app_info
Vue.config.productionTip = false
// 全局登录事件
Vue.prototype.login = function() {
if (!this.utils.getData('token')) {
this.$refs.login.modal = true
return;
}
}
let api_host = app_info.api_host;
Vue.prototype.imgUrl = api_host
// 统一请求函数
Vue.prototype.http = function(path, data, method = 'post', showLoading = true) {
return utils.http(this, path, data, method, showLoading)
}
// 获取当前页面路径
Vue.prototype.currentPage = function () {
var pages = getCurrentPages() // 获取栈实例
let currentRoute = pages[pages.length-1].route; // 获取当前页面路由
let currentPage = pages[pages.length-1]['$page']['fullPath'] //当前页面路径(带参数)
return currentPage
}
// 正常格式的日期时间
Vue.filter('format_date', function(time) {
const dateTime = new Date(time * 1000);
const YY = dateTime.getFullYear();
const MM =
dateTime.getMonth() + 1 < 10 ?
'0' + (dateTime.getMonth() + 1) :
dateTime.getMonth() + 1;
const D =
dateTime.getDate() < 10 ? '0' + dateTime.getDate() : dateTime.getDate();
const hh =
dateTime.getHours() < 10 ?
'0' + dateTime.getHours() :
dateTime.getHours();
const mm =
dateTime.getMinutes() < 10 ?
'0' + dateTime.getMinutes() :
dateTime.getMinutes();
const ss =
dateTime.getSeconds() < 10 ?
'0' + dateTime.getSeconds() :
dateTime.getSeconds();
return `${YY}-${MM}-${D} ${hh}:${mm}`
});
// 秒转时分秒格式
Vue.filter('format_second', function(second, tips = '不限时') {
if (second == undefined) return ''
if (second == 0) return tips
let result = parseInt(second)
let h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
let m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
let s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
let res = '';
if(h !== '00') res += `${h}`;
if(m !== '00') res += `${m}`;
res += `${s}`;
return res;
});
// |______________________________________________________________________
// +----------------------------------------------------------------------
// | 全局变量及函数
// +----------------------------------------------------------------------
// 引入TuniaoUI提供的vuex简写方法
let vuexStore = require('@/store/$t.mixin.js')
Vue.mixin(vuexStore)
// 导入并挂载全局的分享方法
import wxShare from '@/common/mixins/share.js'
Vue.mixin(wxShare)
// |______________________________________________________________________
App.mpType = 'app'
const app = new Vue({
store,
...App
})
app.$mount()