161 lines
3.7 KiB
JavaScript
161 lines
3.7 KiB
JavaScript
import Vue from 'vue'
|
|
import App from './App'
|
|
import global from "./assets/script/global";
|
|
import store from "./store";
|
|
import schema from "async-validator";
|
|
import dialog from "./utils/dialog";
|
|
import mixin from '@/mixins/share-mixins.js'
|
|
import {_router, parseRoute} from "@/utils";
|
|
import {
|
|
SERVICE_API_URL,
|
|
SOCKET_URL,
|
|
STATIC_RESOURCE_URL,
|
|
VUE_APP_API_URL,
|
|
VUE_APP_RESOURCES_URL,
|
|
WX_LIVE_APPID
|
|
} from "@/config";
|
|
import uView from "uview-ui";
|
|
import GooSkeleton from '@/components/GooSkeleton/index.vue'
|
|
import { pageToWatchData } from '@/config/page'
|
|
|
|
Vue.use(uView)
|
|
Vue.component('GooSkeleton', GooSkeleton)
|
|
Vue.mixin(mixin)
|
|
|
|
// 注册全局组件
|
|
|
|
Vue.config.productionTip = false;
|
|
Vue.config.devtools = process.env.NODE_ENV !== "production";
|
|
|
|
Vue.prototype.$SERVICE_API_URL = SERVICE_API_URL
|
|
Vue.prototype.$SOCKET_URL = SOCKET_URL
|
|
Vue.prototype.$VUE_APP_RESOURCES_URL = VUE_APP_RESOURCES_URL
|
|
Vue.prototype.$STATIC_RESOURCE_URL = STATIC_RESOURCE_URL
|
|
Vue.prototype.$VUE_APP_API_URL = VUE_APP_API_URL
|
|
Vue.prototype.$WX_LIVE_APPID = WX_LIVE_APPID
|
|
Vue.prototype.$global = global
|
|
Vue.prototype.$pageToWatchData = pageToWatchData
|
|
|
|
Vue.prototype.$validator = function (rule) {
|
|
return new schema(rule);
|
|
};
|
|
|
|
// const CACHE_KEY = "clear_0.0.1";
|
|
|
|
// if (!cookie.has(CACHE_KEY)) {
|
|
// cookie.clearAll();
|
|
// cookie.set(CACHE_KEY, 1);
|
|
// }
|
|
// 强制转为几位小数,不足的补0
|
|
const forceToDecimal = function changeToDecimal(value, len = 1) {
|
|
const f_x = parseFloat(value)
|
|
if (isNaN(f_x)) {
|
|
return 0
|
|
}
|
|
let s = f_x.toString()
|
|
let rs = s.indexOf('.')
|
|
if (rs < 0) {
|
|
rs = s.length
|
|
s += '.'
|
|
}
|
|
while (s.length <= rs + len) {
|
|
s += '0'
|
|
}
|
|
const tempArr = s.split('.')
|
|
const decimalArr = tempArr[1].split('')
|
|
let res = tempArr[0] + '.'
|
|
for (let i = 0; i < len; i++) {
|
|
res += decimalArr[i]
|
|
}
|
|
return res
|
|
}
|
|
|
|
// 强制转为2位小数,不足的补0
|
|
const force2Decimal = function change2Decimal(value) {
|
|
return forceToDecimal(value, 2)
|
|
}
|
|
|
|
const formatCount = function(value) {
|
|
if (!value) return 0;
|
|
const num = parseFloat(value);
|
|
if (isNaN(num)) return 0;
|
|
if (num >= 10000) {
|
|
let val = num / 10000;
|
|
val = parseFloat(val.toFixed(1));
|
|
return val + '万';
|
|
}
|
|
return num;
|
|
}
|
|
|
|
const toast = (title = '', position = 'center', success = function() {}) => {
|
|
uni.showToast({
|
|
title,
|
|
mask: false,
|
|
icon: 'none',
|
|
duration: 2500,
|
|
position,
|
|
success
|
|
})
|
|
}
|
|
|
|
Vue.prototype.$force2Decimal = force2Decimal
|
|
Vue.prototype.$forceToDecimal = forceToDecimal
|
|
Vue.prototype.$formatCount = formatCount
|
|
|
|
Vue.config.productionTip = false
|
|
App.mpType = 'app'
|
|
Vue.prototype.$store = store
|
|
Vue.prototype.$dialog = dialog
|
|
|
|
Vue.prototype.$toast = toast
|
|
|
|
|
|
const app = new Vue(App)
|
|
|
|
Vue.mixin({
|
|
onLoad() {
|
|
const {
|
|
$mp
|
|
} = this.$root
|
|
this._route = parseRoute($mp)
|
|
this._data.$VUE_APP_RESOURCES_URL = VUE_APP_RESOURCES_URL;
|
|
},
|
|
onShow() {
|
|
_router.app = this
|
|
_router.currentRoute = this._route
|
|
}
|
|
})
|
|
|
|
Object.defineProperty(Vue.prototype, '$yrouter', {
|
|
get() {
|
|
return _router
|
|
}
|
|
})
|
|
|
|
Object.defineProperty(Vue.prototype, '$yroute', {
|
|
get() {
|
|
return this._route
|
|
}
|
|
})
|
|
|
|
// #ifdef H5
|
|
// H5编译的代码
|
|
Vue.prototype.$deviceType = 'h5'
|
|
store.commit('updateDevicetype', 'h5')
|
|
// #endif
|
|
|
|
// #ifdef APP-PLUS
|
|
// App平台编译的代码
|
|
Vue.prototype.$deviceType = 'app'
|
|
store.commit('updateDevicetype', 'app')
|
|
Vue.prototype.$platform = uni.getSystemInfoSync().platform
|
|
// #endif
|
|
|
|
// #ifdef MP-WEIXIN
|
|
// 微信小程序编译的代码
|
|
Vue.prototype.$deviceType = 'routine'
|
|
store.commit('updateDevicetype', 'routine')
|
|
// #endif
|
|
|
|
app.$mount()
|