2021-03-19 18:52:19 +08:00
|
|
|
|
// import "./assets/css/main.css";
|
2020-01-17 16:50:17 +08:00
|
|
|
|
import './assets/stylus/index.scss'
|
2021-03-19 18:52:19 +08:00
|
|
|
|
import './assets/css/nzIcon.css'
|
|
|
|
|
|
import './assets/css/main.css'
|
|
|
|
|
|
import 'element-ui/lib/theme-chalk/index.css'
|
|
|
|
|
|
import ElementUI from 'element-ui'
|
2019-12-26 17:28:04 +08:00
|
|
|
|
import 'xterm/dist/xterm.css'
|
2019-12-02 16:16:26 +08:00
|
|
|
|
import i18n from './components/common/i18n'
|
2019-11-29 15:00:26 +08:00
|
|
|
|
|
2019-11-28 18:23:49 +08:00
|
|
|
|
import Vue from 'vue'
|
2019-12-05 16:48:23 +08:00
|
|
|
|
import Vuex from 'vuex'
|
2021-03-19 18:52:19 +08:00
|
|
|
|
import store from './store/index'
|
2019-11-28 18:23:49 +08:00
|
|
|
|
import App from './App'
|
|
|
|
|
|
import router from './router'
|
2020-01-08 22:19:46 +08:00
|
|
|
|
import VueResource from 'vue-resource'
|
2021-03-19 18:52:19 +08:00
|
|
|
|
import axios from 'axios'
|
|
|
|
|
|
import { hasPermission, hasButton } from './permission'
|
2020-04-15 22:01:56 +08:00
|
|
|
|
|
|
|
|
|
|
import plTable from 'pl-table'
|
|
|
|
|
|
import 'pl-table/themes/index.css'
|
|
|
|
|
|
|
2021-03-19 18:52:19 +08:00
|
|
|
|
import { post, get, put, del } from './http.js'
|
|
|
|
|
|
import { clickoutside, bottomBoxWindow, stringTimeParseToUnix, unixTimeParseToString, chartResizeTool, tableSet, cancelWithChange } from './components/common/js/tools.js'
|
|
|
|
|
|
import * as tools from './components/common/js/tools.js'
|
2020-07-15 20:43:19 +08:00
|
|
|
|
import * as constants from './components/common/js/constants.js'
|
2019-12-02 16:16:26 +08:00
|
|
|
|
|
2021-03-19 18:52:19 +08:00
|
|
|
|
import Pagination from './components/common/pagination' // 引入全局分页组件
|
|
|
|
|
|
import searchInput from './components/common/searchInput' // 搜索框组件
|
|
|
|
|
|
import elementSet from './components/common/elementSet' // 自定义表头组件
|
2020-04-15 22:01:56 +08:00
|
|
|
|
|
2021-03-19 18:52:19 +08:00
|
|
|
|
import projectBox from './components/common/rightBox/projectBox' // project弹框组件
|
|
|
|
|
|
import moduleBox from './components/common/rightBox/moduleBox' // module弹框组件
|
|
|
|
|
|
import editEndpointBox from './components/common/rightBox/editEndpointBox' // endpoint弹框组件
|
|
|
|
|
|
import addEndpointBox from './components/common/rightBox/addEndpointBox' // endpoint弹框组件
|
|
|
|
|
|
import assetBox from './components/common/rightBox/assetBox' // 资产添加组件
|
|
|
|
|
|
import batchEditAsset from './components/common/rightBox/batchEditAsset' // 资产批量修改组件
|
|
|
|
|
|
import alertConfigBox from './components/common/rightBox/alertConfigBox' // 告警规则弹框组件
|
|
|
|
|
|
import panelBox from './components/common/rightBox/panelBox' // 面板弹框组件
|
|
|
|
|
|
import moduleListPop from './components/page/asset/moduleListPop' // 面板弹框组件
|
|
|
|
|
|
import cabinetConfigBox from './components/common/popBox/cabinetConfig' // 面板弹框组件
|
|
|
|
|
|
import modelBox from './components/common/rightBox/modelBox' // model弹框
|
|
|
|
|
|
import bottomBox from './components/common/bottomBox/bottomBox' // 上滑框
|
|
|
|
|
|
import loading from './components/common/loading'
|
|
|
|
|
|
import mibBox from './components/common/rightBox/mibBox'
|
|
|
|
|
|
import leftMenu from './components/common/leftMenu'
|
|
|
|
|
|
import pickTime from './components/common/pickTime'
|
|
|
|
|
|
import bus from './libs/bus'
|
2020-01-08 22:19:46 +08:00
|
|
|
|
|
2021-03-19 18:52:19 +08:00
|
|
|
|
Vue.component('Pagination', Pagination)
|
|
|
|
|
|
Vue.component('searchInput', searchInput)
|
|
|
|
|
|
Vue.component('element-set', elementSet)
|
|
|
|
|
|
Vue.component('project-box', projectBox)
|
|
|
|
|
|
Vue.component('module-box', moduleBox)
|
|
|
|
|
|
Vue.component('edit-endpoint-box', editEndpointBox)
|
|
|
|
|
|
Vue.component('add-endpoint-box', addEndpointBox)
|
|
|
|
|
|
Vue.component('asset-box', assetBox)
|
|
|
|
|
|
Vue.component('batch-edit-asset', batchEditAsset)
|
|
|
|
|
|
Vue.component('alert-config-box', alertConfigBox)
|
|
|
|
|
|
Vue.component('panel-box', panelBox)
|
|
|
|
|
|
Vue.component('module-list-pop', moduleListPop)
|
|
|
|
|
|
Vue.component('cabinet-config-box', cabinetConfigBox)
|
|
|
|
|
|
Vue.component('model-box', modelBox)
|
|
|
|
|
|
Vue.component('loading', loading)
|
|
|
|
|
|
Vue.component('bottom-box', bottomBox)
|
|
|
|
|
|
Vue.component('mib-box', mibBox)
|
|
|
|
|
|
Vue.component('left-menu', leftMenu)
|
|
|
|
|
|
Vue.component('pick-time', pickTime)
|
2019-12-16 17:14:58 +08:00
|
|
|
|
|
2021-03-19 18:52:19 +08:00
|
|
|
|
Vue.prototype.$axios = axios
|
|
|
|
|
|
Vue.prototype.$post = post
|
|
|
|
|
|
Vue.prototype.$get = get
|
|
|
|
|
|
Vue.prototype.$put = put
|
|
|
|
|
|
Vue.prototype.$delete = del
|
|
|
|
|
|
Vue.prototype.$CONSTANTS = constants
|
|
|
|
|
|
Vue.prototype.$TOOLS = tools
|
|
|
|
|
|
Vue.prototype.$bottomBoxWindow = bottomBoxWindow // 底部上滑框控制
|
|
|
|
|
|
Vue.prototype.$stringTimeParseToUnix = stringTimeParseToUnix
|
|
|
|
|
|
Vue.prototype.$unixTimeParseToString = unixTimeParseToString
|
|
|
|
|
|
Vue.prototype.$chartResizeTool = chartResizeTool
|
|
|
|
|
|
Vue.prototype.$tableSet = tableSet
|
|
|
|
|
|
Vue.prototype.$tableHeight = { // 列表页表格的高度
|
|
|
|
|
|
normal: 'calc(100% - 100px)', // 常规高度,特例在下方定义
|
|
|
|
|
|
openSubList: { // 打开二级列表后的高度
|
2020-03-18 16:00:06 +08:00
|
|
|
|
mainList: 'calc(100% - 60px)',
|
2020-04-21 18:00:21 +08:00
|
|
|
|
subList: 'calc(100% - 86px)',
|
|
|
|
|
|
toTopBtnTop: 'calc(50% - 11px)'
|
2020-03-18 16:00:06 +08:00
|
|
|
|
},
|
2020-04-21 18:00:21 +08:00
|
|
|
|
toTopBtnTop: 'calc(100% - 73px)',
|
2021-03-19 18:52:19 +08:00
|
|
|
|
noPagination: 'calc(100% - 60px)' // 特例:没有翻页组件
|
|
|
|
|
|
}
|
2019-11-28 18:23:49 +08:00
|
|
|
|
|
2020-10-16 19:26:50 +08:00
|
|
|
|
Vue.mixin({
|
2021-03-19 18:52:19 +08:00
|
|
|
|
data: function () {
|
2020-12-21 11:51:58 +08:00
|
|
|
|
return {
|
2021-03-19 18:52:19 +08:00
|
|
|
|
prevent_opt: {
|
|
|
|
|
|
save: false,
|
|
|
|
|
|
import: false,
|
|
|
|
|
|
dumplicate: false,
|
|
|
|
|
|
delete: false,
|
|
|
|
|
|
refresh: false,
|
|
|
|
|
|
query: false
|
2020-12-21 11:51:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2020-12-17 11:07:57 +08:00
|
|
|
|
methods: {
|
2021-03-19 18:52:19 +08:00
|
|
|
|
utcTimeToTimezone: function (time) {
|
|
|
|
|
|
if (time) {
|
2020-12-17 11:07:57 +08:00
|
|
|
|
return bus.UTCTimeToConfigTimezone(time)
|
2020-12-04 20:53:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
utcTimeToTimezoneStr: function (time, format = 'yyyy-MM-dd hh:mm:ss') {
|
|
|
|
|
|
if (time) {
|
|
|
|
|
|
return bus.timeFormate(bus.UTCTimeToConfigTimezone(time), format)
|
|
|
|
|
|
} else {
|
2020-12-17 11:07:57 +08:00
|
|
|
|
return '-'
|
2020-12-04 20:53:58 +08:00
|
|
|
|
}
|
2020-12-17 11:07:57 +08:00
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
timezoneToUtcTime: function (time) {
|
|
|
|
|
|
if (time) {
|
2020-12-17 11:07:57 +08:00
|
|
|
|
return bus.configTimezoneToUTCTime(time)
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
timezoneToUtcTimeStr: function (time, format = 'yyyy-MM-dd hh:mm:ss') {
|
|
|
|
|
|
if (time) {
|
|
|
|
|
|
return bus.timeFormate(this.timezoneToUtcTime(time), format)
|
2020-12-17 11:07:57 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
tableTitleReset: function (src, dist) {
|
|
|
|
|
|
dist.forEach(item => {
|
|
|
|
|
|
const title = src.find(t => t.prop === item.prop)
|
|
|
|
|
|
if (title && title.label) {
|
|
|
|
|
|
item.label = title.label
|
2020-12-17 11:07:57 +08:00
|
|
|
|
}
|
2021-03-19 18:52:19 +08:00
|
|
|
|
})
|
2020-12-17 11:07:57 +08:00
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
hasButton (code) {
|
|
|
|
|
|
return hasButton(this.$store.getters.buttonList, code)
|
2020-12-17 11:07:57 +08:00
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
toTop (wrap) {
|
|
|
|
|
|
let currentTop = wrap.scrollTop
|
|
|
|
|
|
const interval = currentTop / 10
|
|
|
|
|
|
const intervalFunc = setInterval(function () { // 花200ms分10次回到顶部,模拟动画效果
|
|
|
|
|
|
if (currentTop === 0) {
|
|
|
|
|
|
clearInterval(intervalFunc)
|
2020-12-17 11:07:57 +08:00
|
|
|
|
} else {
|
2021-03-19 18:52:19 +08:00
|
|
|
|
currentTop = (currentTop - interval) < interval * 0.5 ? 0 : currentTop - interval
|
|
|
|
|
|
wrap.scrollTop = currentTop
|
2020-12-17 11:07:57 +08:00
|
|
|
|
}
|
2021-03-19 18:52:19 +08:00
|
|
|
|
}, 20)
|
2020-12-17 11:07:57 +08:00
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
toTopBtnHandler (wrap) {
|
|
|
|
|
|
const vm = this
|
|
|
|
|
|
wrap.addEventListener('scroll', bus.debounce(function () {
|
|
|
|
|
|
vm.tools.showTopBtn = wrap.scrollTop > 50
|
|
|
|
|
|
vm.tools.tableHover = wrap.scrollTop > 50
|
|
|
|
|
|
}, 100))
|
2020-12-24 18:45:12 +08:00
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
numberWithEConvent (num) {
|
2020-12-24 18:45:12 +08:00
|
|
|
|
if (num) {
|
2021-03-19 18:52:19 +08:00
|
|
|
|
if ((('' + num).indexOf('E') !== -1) || (('' + num).indexOf('e') !== -1)) {
|
|
|
|
|
|
const regExp = /'^((\\d+.?\\d+)[Ee]{1}(\\d+))$', 'ig'/
|
|
|
|
|
|
let result = regExp.exec(num)
|
|
|
|
|
|
let resultValue = ''
|
|
|
|
|
|
let power
|
2020-12-24 18:45:12 +08:00
|
|
|
|
if (result != null) {
|
2021-03-19 18:52:19 +08:00
|
|
|
|
resultValue = result[2]
|
|
|
|
|
|
power = result[3]
|
|
|
|
|
|
result = regExp.exec(num)
|
2020-12-24 18:45:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2021-03-19 18:52:19 +08:00
|
|
|
|
if (resultValue) {
|
|
|
|
|
|
if (power) {
|
|
|
|
|
|
const powVer = Math.pow(10, power)
|
|
|
|
|
|
resultValue = resultValue * powVer
|
|
|
|
|
|
return resultValue
|
2020-12-24 18:45:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
2021-03-19 18:52:19 +08:00
|
|
|
|
return num
|
2020-12-24 18:45:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-03-19 18:52:19 +08:00
|
|
|
|
return 0
|
2020-12-24 18:45:12 +08:00
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
translation (key) {
|
|
|
|
|
|
return i18n.t(key)
|
2021-03-05 20:34:58 +08:00
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
copyRow (row, rightBoxValKey, idKey = 'id', show = false, format, callback) {
|
2021-03-12 18:04:17 +08:00
|
|
|
|
/*
|
|
|
|
|
|
row 表格当前行
|
|
|
|
|
|
rightBoxValKey 右侧弹窗绑定的 data
|
|
|
|
|
|
idKey 当前数据的唯一标识
|
|
|
|
|
|
show 打开对应的弹窗 函数
|
|
|
|
|
|
format 是否需要对当前行进行处理
|
|
|
|
|
|
callBack 回调
|
|
|
|
|
|
*/
|
2021-03-19 18:52:19 +08:00
|
|
|
|
let rowCopy = { ...row }
|
|
|
|
|
|
if (rowCopy.name) {
|
|
|
|
|
|
rowCopy.name = 'Copy from ' + rowCopy.name
|
2021-03-18 13:58:55 +08:00
|
|
|
|
}
|
2021-03-19 18:52:19 +08:00
|
|
|
|
if (format) {
|
|
|
|
|
|
rowCopy = format(rowCopy)
|
2021-03-12 18:04:17 +08:00
|
|
|
|
}
|
2021-03-19 18:52:19 +08:00
|
|
|
|
delete rowCopy[idKey]
|
|
|
|
|
|
this[rightBoxValKey] = rowCopy
|
|
|
|
|
|
if (typeof show === 'function') {
|
2021-03-12 18:04:17 +08:00
|
|
|
|
show()
|
2021-03-19 18:52:19 +08:00
|
|
|
|
} else if (typeof show === 'string') {
|
|
|
|
|
|
this[show] = true
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.rightBox.show = true
|
2021-03-12 18:04:17 +08:00
|
|
|
|
}
|
2021-03-19 18:52:19 +08:00
|
|
|
|
if (callback) {
|
2021-03-12 18:04:17 +08:00
|
|
|
|
callback()
|
|
|
|
|
|
}
|
2021-03-19 18:52:19 +08:00
|
|
|
|
}
|
2020-12-17 11:07:57 +08:00
|
|
|
|
},
|
|
|
|
|
|
computed: {
|
2021-03-19 18:52:19 +08:00
|
|
|
|
getMenuList () {
|
|
|
|
|
|
return this.$store.state.user.menuList
|
2020-12-17 11:07:57 +08:00
|
|
|
|
},
|
2021-03-19 18:52:19 +08:00
|
|
|
|
getButtonList () {
|
|
|
|
|
|
return this.$store.state.buttonList
|
2020-12-17 11:07:57 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-03-19 18:52:19 +08:00
|
|
|
|
})
|
2020-10-16 19:26:50 +08:00
|
|
|
|
|
2021-03-19 18:52:19 +08:00
|
|
|
|
Vue.config.productionTip = false
|
|
|
|
|
|
Vue.use(ElementUI)
|
|
|
|
|
|
Vue.use(Vuex)
|
|
|
|
|
|
Vue.use(VueResource)
|
|
|
|
|
|
Vue.use(plTable)
|
|
|
|
|
|
Vue.use(hasPermission)
|
2019-12-04 13:45:37 +08:00
|
|
|
|
|
2021-03-19 18:52:19 +08:00
|
|
|
|
/* 指令 */
|
|
|
|
|
|
Vue.directive('cancel', cancelWithChange)
|
|
|
|
|
|
Vue.directive('clickoutside', clickoutside)
|
|
|
|
|
|
window.resizing = false
|
2019-12-26 17:28:04 +08:00
|
|
|
|
window.vm = new Vue({
|
2019-11-28 18:23:49 +08:00
|
|
|
|
el: '#app',
|
|
|
|
|
|
router,
|
2019-12-02 16:16:26 +08:00
|
|
|
|
i18n,
|
2019-12-05 16:48:23 +08:00
|
|
|
|
store,
|
2021-03-19 18:52:19 +08:00
|
|
|
|
components: { App },
|
2020-12-04 20:53:58 +08:00
|
|
|
|
template: '<App/>',
|
2021-03-19 18:52:19 +08:00
|
|
|
|
mounted () {
|
|
|
|
|
|
// store.commit()
|
2020-12-04 20:53:58 +08:00
|
|
|
|
}
|
2021-03-19 18:52:19 +08:00
|
|
|
|
})
|
2019-12-12 17:07:33 +08:00
|
|
|
|
|
2021-03-19 18:52:19 +08:00
|
|
|
|
export default window.vm
|
2020-03-19 20:44:14 +08:00
|
|
|
|
|
|
|
|
|
|
/* 重写组件内容 */
|
2021-03-19 18:52:19 +08:00
|
|
|
|
/* const elUi = require("element-ui");
|
2020-04-15 22:01:56 +08:00
|
|
|
|
const pl = require("pl-table");
|
2020-03-20 21:05:31 +08:00
|
|
|
|
//去掉el-table表头右侧的滚动条预留空间
|
2020-03-19 20:44:14 +08:00
|
|
|
|
elUi.Table.components.TableHeader.computed.hasGutter = () => {return false;};
|
2021-03-19 18:52:19 +08:00
|
|
|
|
pl.PlTable.components.ElTable.components.TableHeader.computed.hasGutter = () => {return false;}; */
|