xiangpei
2024-09-17 b32150d1fd576fa3b89e85e2f99be2edc67b9293
src/main.js
@@ -4,7 +4,8 @@
import { getToken } from "@/utils/auth";
import Element from 'element-ui'
import './assets/styles/element-variables.scss'
import * as echarts from 'echarts'
import 'echarts-gl'
import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css
import App from './App'
@@ -42,6 +43,9 @@
import VScaleScreen from 'v-scale-screen'
import dataV from '@jiaminghi/data-view'
import gsap from 'gsap';
import { formatNumber } from './utils/format';
// 全局方法挂载
@@ -55,6 +59,9 @@
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
Vue.prototype.getToken = getToken
Vue.prototype.$uploadUrl = process.env.VUE_APP_BASE_API + "/common/upload"
Vue.prototype.$img = process.env.VUE_APP_BASE_API
Vue.prototype.$echarts = echarts
// 全局组件挂载
Vue.component('DictTag', DictTag)
@@ -72,6 +79,9 @@
Vue.use(dataV)
DictData.install()
// websocket
Vue.prototype.$websocket = null;
/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
@@ -87,6 +97,41 @@
Vue.config.productionTip = true
// 全局指令
Vue.directive('roll', {
  inserted: (el, binding) => {
    let target = {
      count: 0
    };
    let finalNumber = el.innerText;
    gsap.to(target, {
      count: finalNumber,
      duration: 1,
      ease: "power2.out",
      onUpdate: () => {
        // el.innerText = formatNumber(target.count.toFixed(0));
      }
    })
  },
  update: (el, binding) => {
    let target = {
      count: el.innerText
    };
    let finalNumber = el.getAttribute('value');
    gsap.to(target, {
      count: finalNumber,
      duration: 1,
      ease: "power2.out",
      onUpdate: () => {
        // el.innerText = formatNumber(target.count.toFixed(0));
      }
    })
  }
})
new Vue({
  el: '#app',
  router,