123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- import { loadingText, messageDuration, title } from '@/config/settings'
- import * as lodash from 'lodash'
- import { Loading, Message, MessageBox, Notification } from 'element-ui'
- import store from '@/store'
- import { getAccessToken } from '@/utils/accessToken'
- const accessToken = store.getters['user/accessToken']
- const layout = store.getters['settings/layout']
- const install = (Vue, opts = {}) => {
- /* 全局accessToken */
- Vue.prototype.$baseAccessToken = () => {
- return accessToken || getAccessToken()
- }
- /* 全局标题 */
- Vue.prototype.$baseTitle = (() => {
- return title
- })()
- /* 全局加载层 */
- Vue.prototype.$baseLoading = (index, text) => {
- let loading
- if (!index) {
- loading = Loading.service({
- lock: true,
- text: text || loadingText,
- background: 'hsla(0,0%,100%,.8)',
- })
- } else {
- loading = Loading.service({
- lock: true,
- text: text || loadingText,
- spinner: 'vab-loading-type' + index,
- background: 'hsla(0,0%,100%,.8)',
- })
- }
- return loading
- }
- /* 全局多彩加载层 */
- Vue.prototype.$baseColorfullLoading = (index, text) => {
- let loading
- if (!index) {
- loading = Loading.service({
- lock: true,
- text: text || loadingText,
- spinner: 'dots-loader',
- background: 'hsla(0,0%,100%,.8)',
- })
- } else {
- switch (index) {
- case 1:
- index = 'dots'
- break
- case 2:
- index = 'gauge'
- break
- case 3:
- index = 'inner-circles'
- break
- case 4:
- index = 'plus'
- break
- }
- loading = Loading.service({
- lock: true,
- text: text || loadingText,
- spinner: index + '-loader',
- background: 'hsla(0,0%,100%,.8)',
- })
- }
- return loading
- }
- /* 全局Message */
- Vue.prototype.$baseMessage = (message, type) => {
- Message({
- offset: 60,
- showClose: true,
- message: message,
- type: type,
- dangerouslyUseHTMLString: true,
- duration: messageDuration,
- })
- }
- /* 全局Alert */
- Vue.prototype.$baseAlert = (content, title, callback) => {
- MessageBox.alert(content, title || '温馨提示', {
- confirmButtonText: '确定',
- dangerouslyUseHTMLString: true,
- callback: (action) => {
- if (callback) {
- callback()
- }
- },
- })
- }
- /* 全局Confirm */
- Vue.prototype.$baseConfirm = (content, title, callback1, callback2) => {
- MessageBox.confirm(content, title || '温馨提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- closeOnClickModal: false,
- type: 'warning',
- })
- .then(() => {
- if (callback1) {
- callback1()
- }
- })
- .catch(() => {
- if (callback2) {
- callback2()
- }
- })
- }
- /* 全局Notification */
- Vue.prototype.$baseNotify = (message, title, type, position) => {
- Notification({
- title: title,
- message: message,
- position: position || 'top-right',
- type: type || 'success',
- duration: messageDuration,
- })
- }
- /* 全局TableHeight */
- Vue.prototype.$baseTableHeight = (formType) => {
- let height = window.innerHeight
- let paddingHeight = 400
- const formHeight = 50
- if (layout === 'vertical') {
- paddingHeight = 365
- }
- if ('number' == typeof formType) {
- height = height - paddingHeight - formHeight * formType
- } else {
- height = height - paddingHeight
- }
- return height
- }
- /* 全局map图层 */
- Vue.prototype.$baseMap = () => {
- return new maptalks.Map('map', {
- center: [116.41348403785, 39.910843952376],
- zoom: 12,
- minZoom: 1,
- maxZoom: 19,
- spatialReference: {
- projection: 'baidu',
- },
- attribution: {
- content: '© vue-admin-beautiful',
- },
- baseLayer: new maptalks.TileLayer('base', {
- cssFilter: 'sepia(100%) invert(90%)',
- urlTemplate:
- 'http://online{s}.map.bdimg.com/onlinelabel/?qt=tile&x={x}&y={y}&z={z}&styles=pl&scaler=1&p=1',
- subdomains: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
- attribution:
- '© <a target="_blank" href="http://map.baidu.com">Baidu</a>',
- }),
- })
- }
- /* 全局lodash */
- Vue.prototype.$baseLodash = lodash
- /* 全局事件总线 */
- Vue.prototype.$baseEventBus = new Vue()
- }
- if (typeof window !== 'undefined' && window.Vue) {
- install(window.Vue)
- }
- export default install
|