fuliqi
2025-01-16 88ad0c93b99ee8a8bf84be87c2cd8c06d2591640
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'
@@ -37,10 +38,13 @@
import VueMeta from 'vue-meta'
// 字典数据组件
import DictData from '@/components/DictData'
import VueAnimateNumber from 'vue-animate-number'
// 大屏
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)
@@ -70,7 +77,11 @@
Vue.use(VueMeta)
Vue.use(VScaleScreen)
Vue.use(dataV)
Vue.use(VueAnimateNumber)
DictData.install()
// websocket
Vue.prototype.$websocket = null;
/**
 * If you don't want to use mock-server
@@ -87,6 +98,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,