123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- import { setToken } from '@/utils/auth'
- import { getUrlParam, findElem, deleteEmptyObj } from '@/utils/util'
- if (getUrlParam().token) {
- setToken(getUrlParam().token)
- }
- import Vue from 'vue'
- import 'normalize.css/normalize.css' // A modern alternative to CSS resets
- // import './plugins/jquery.hiwprint.js'
- import ElementUI from '@zjlib/element-ui2'
- import '@zjlib/element-ui2/lib/theme-chalk/index.css'
- import VueQuillEditor from 'vue-quill-editor'
- // require styles
- import 'quill/dist/quill.core.css'
- import 'quill/dist/quill.snow.css'
- import 'quill/dist/quill.bubble.css'
- Vue.use(VueQuillEditor /* { default global options } */)
- import dataV from '@jiaminghi/data-view'
- Vue.use(dataV)
- import VQuillEditor from '@/components/v-quill-editor'
- Vue.component('v-quill-editor', VQuillEditor)
- import { Loading } from '@zjlib/element-ui2'
- let loading
- function startLoading() {
- loading = Loading.service({
- lock: true,
- text: '拼命加载中...',
- spinner: 'el-icon-loading',
- customClass: '.app-container'
- })
- }
- function endLoading() {
- loading.close()
- }
- import * as echarts from 'echarts'
- Vue.prototype.$echarts = echarts
- import '@/styles/index.scss' // global css
- import App from './App'
- import store from './store'
- import router from './router'
- import '@/icons' // icon
- import '@/permission' // permission control
- import * as filters from './filters' // global filters
- import directives from './directives'
- window._AMapSecurityConfig = {
- serviceHost: 'https://jiasm.zfire.top/' + '_AMapService'
- }
- import '@zjlib/element-plugins/dest/element-plugins.css'
- import ElementPlugins, { AMap } from '@zjlib/element-plugins'
- Vue.use(ElementPlugins, {
- // 表单页面表单属性配置
- formAttributes: {
- 'label-position': 'right'
- }
- // // 操作记录配置
- // operationRecord: function (options) {
- // // console.log(options.meta.moduleId)
- // // return new Promise((r, j) => {
- // // r([[], []])
- // // })
- // }
- })
- // // 本地引用;
- // import ElementPlugins, { AMap } from '@packages'
- // Vue.use(ElementPlugins, {
- // formAttributes: {
- // 'label-position': 'right'
- // }
- // })
- Vue.use(AMap)
- AMap.initAMapApiLoader({
- // 高德的key
- key: 'df9bfabcba60cc6e7ad45ae9923a682d',
- plugins: ['AMap.Geocoder', 'AMap.AutoComplete', 'AMap.PlaceSearch']
- })
- Vue.use(AMap)
- AMap.initAMapApiLoader({
- // 高德的key
- key: 'df9bfabcba60cc6e7ad45ae9923a682d',
- version: '2.0',
- plugins: ['AMap.Geocoder', 'AMap.AutoComplete', 'AMap.PlaceSearch', 'AMap.DistrictSearch']
- })
- import '@/utils/time.js'
- import { getIPAdd } from '@/utils/lbs.js'
- getIPAdd()
- .then(res => {
- Vue.prototype.$IpAdd = res.data
- })
- .catch(err => {})
- // 成功/错误提示
- import { successMsg, errorMsg, warningNotify, checkBtnRole, getSummaries, numToFixed } from '@/utils/common.js'
- Vue.prototype.$successMsg = successMsg
- Vue.prototype.$errorMsg = errorMsg
- Vue.prototype.$warningNotify = warningNotify
- Vue.prototype.$checkBtnRole = checkBtnRole
- Vue.prototype.$getSummaries = getSummaries
- Vue.prototype.$numToFixed = numToFixed
- Vue.prototype.$startLoading = startLoading
- Vue.prototype.$endLoading = endLoading
- Vue.prototype.$restrict = function (...codes) {
- var roles = this.$route.meta.roles || []
- for (var code of codes) {
- if (roles.includes(code)) {
- return true
- }
- }
- return false
- }
- // 自定义组件
- import ExportButton from '@/components/Common/export-button.vue'
- Vue.component('ExportButton', ExportButton)
- import ImportButton from '@/components/Common/import-button.vue'
- Vue.component('ImportButton', ImportButton)
- import CopyButton from '@/components/Common/copy-button.vue'
- Vue.component('CopyButton', CopyButton)
- import Collapse from '@/components/Common/collapse'
- Vue.component('Collapse', Collapse)
- Vue.prototype.$xdocUrl = 'https://pgxtadm.greeapps.com/preview/onlinePreview?url='
- Vue.prototype.$imageUrl = process.env.VUE_APP_BASE_API + 'img/get?key='
- Vue.prototype.$showImgUrl = function (url) {
- // try {
- // const { pathname } = new URL(url)
- // if (pathname.startsWith('/')) {
- // return `${process.env.VUE_APP_BASE_API}img/get?key=${pathname.substring(1)}`
- // }
- // return `${process.env.VUE_APP_BASE_API}img/get?key=${pathname}`
- // } catch (error) {
- // return url
- // }
- return url
- }
- Vue.prototype.$findElem = findElem
- Vue.prototype.$deleteEmptyObj = deleteEmptyObj
- /**
- * If you don't want to use mock-server
- * you want to use MockJs for mock api
- * you can execute: mockXHR()
- *
- * Currently MockJs will be used in the production environment,
- * please remove it before going online ! ! !
- */
- if (process.env.NODE_ENV === 'production') {
- const { mockXHR } = require('../mock')
- mockXHR()
- }
- // set ElementUI lang to EN
- // Vue.use(ElementUI, { locale })
- // 如果想要中文版 element-ui,按如下方式声明
- Vue.use(ElementUI)
- import { Message } from 'element-ui'
- //定义一个新的Message方法,多传入一个offset参数
- const $message = options => {
- return Message({
- ...options,
- offset: 80
- })
- }
- //重写方法,将offset写入options
- ;['success', 'warning', 'info', 'error'].forEach(type => {
- $message[type] = options => {
- if (typeof options === 'string') {
- options = {
- message: options,
- offset: 80
- }
- }
- options.type = type
- return Message(options)
- }
- })
- //将$message挂载到this上
- Vue.prototype.$message = $message
- //不加这行代码运行this.$message.closeAll时会报错
- Vue.prototype.$message.closeAll = Message.closeAll
- // register global utility filters
- Object.keys(filters).forEach(key => {
- Vue.filter(key, filters[key])
- })
- Object.keys(directives).forEach(key => {
- Vue.directive(key, directives[key])
- })
- Vue.config.productionTip = false
- // 解决翻译
- import { translaBeforeRegistration } from './global-text-processor' // 导入插件
- Vue.prototype.$setLanguage = function (type) {
- window.localStorage.setItem('Vue_Translation_Of_Text_Type', type)
- setTimeout(() => {
- location.reload(true)
- }, 200)
- }
- translaBeforeRegistration(function () {
- new Vue({
- el: '#app',
- router,
- store,
- render: h => h(App)
- })
- })
|