feat:babel 6 升级 babel7 (使其可以编译 可选链 语法)
This commit is contained in:
@@ -1,40 +1,50 @@
|
||||
{
|
||||
"presets": [
|
||||
["env", {
|
||||
"modules": false,
|
||||
"targets": {
|
||||
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
|
||||
[
|
||||
"@babel/preset-env",
|
||||
{
|
||||
"modules": false,
|
||||
"targets": {
|
||||
"browsers": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not ie <= 8"
|
||||
]
|
||||
}
|
||||
}
|
||||
}],
|
||||
"stage-2"
|
||||
]
|
||||
],
|
||||
"plugins": [
|
||||
"transform-vue-jsx",
|
||||
[
|
||||
"@babel/plugin-transform-runtime",
|
||||
{
|
||||
"absoluteRuntime": false,
|
||||
"corejs": false,
|
||||
"helpers": true,
|
||||
"regenerator": true,
|
||||
"useESModules": false
|
||||
}
|
||||
],
|
||||
[
|
||||
"component",
|
||||
{
|
||||
"libraryName": "element-ui",
|
||||
"styleLibraryName": "theme-chalk"
|
||||
}
|
||||
],
|
||||
"@babel/plugin-proposal-optional-chaining"
|
||||
],
|
||||
"plugins": ["transform-vue-jsx", "transform-runtime"],
|
||||
"env": {
|
||||
"utils": {
|
||||
"test": {
|
||||
"presets": [
|
||||
[
|
||||
"env",
|
||||
{
|
||||
"loose": true,
|
||||
"modules": "commonjs",
|
||||
"targets": {
|
||||
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"@babel/preset-env"
|
||||
],
|
||||
"plugins": [
|
||||
["module-resolver", {
|
||||
"root": ["element-ui"],
|
||||
"alias": {
|
||||
"element-ui/src": "element-ui/lib"
|
||||
}
|
||||
}]
|
||||
"transform-vue-jsx",
|
||||
"transform-es2015-modules-commonjs",
|
||||
"dynamic-import-node"
|
||||
]
|
||||
},
|
||||
"test": {
|
||||
"presets": ["env"],
|
||||
"plugins": ["transform-es2015-modules-commonjs"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ const baseConfig = {
|
||||
test: /\.vue$/,
|
||||
loader: 'vue-loader',
|
||||
options: vueLoaderConfig
|
||||
},{
|
||||
}, {
|
||||
test: /\.less$/,
|
||||
use: [
|
||||
'vue-style-loader',
|
||||
@@ -59,20 +59,13 @@ const baseConfig = {
|
||||
resolve('test'),
|
||||
resolve('node_modules/element-ui/packages/scrollbar'),
|
||||
resolve('node_modules/@interactjs'),
|
||||
resolve('node_modules/vue-grid-layout')
|
||||
resolve('node_modules/vue-grid-layout'),
|
||||
resolve('node_modules/pl-table/package'),
|
||||
resolve('node_modules/uplot'),
|
||||
],
|
||||
exclude: '/node_modules/',
|
||||
options: {
|
||||
presets: [
|
||||
['env', {
|
||||
modules: false,
|
||||
targets: {
|
||||
browsers: ['> 1%', 'last 2 versions', 'not ie <= 8']
|
||||
}
|
||||
}],
|
||||
'stage-2'
|
||||
],
|
||||
plugins: ['transform-vue-jsx', 'transform-runtime']
|
||||
presets: ['@babel/preset-env', '@babel/preset-react']
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -153,7 +146,7 @@ if (arg === 'html' || devStart === 'dev:html') {
|
||||
resolve('src/components/common/project'),
|
||||
resolve('src/components/common/rightBox'),
|
||||
resolve('src/components/common/table'),
|
||||
resolve('src/components/common/v-selectpagenew'),
|
||||
resolve('src/components/common/v-selectpagenew')
|
||||
// resolve('src/components/page')
|
||||
],
|
||||
loader: 'url-loader',
|
||||
@@ -179,4 +172,7 @@ if (arg === 'html' || devStart === 'dev:html') {
|
||||
}
|
||||
})
|
||||
}
|
||||
module.exports = { ...baseConfig }
|
||||
module.exports = {
|
||||
...baseConfig,
|
||||
// transpileDependencies: ['uplot']
|
||||
}
|
||||
|
||||
4203
nezha-fronted/package-lock.json
generated
4203
nezha-fronted/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,11 @@
|
||||
"unit": "jest --config test/unit/jest.conf.js --coverage"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
|
||||
"@babel/polyfill": "^7.12.1",
|
||||
"@babel/preset-react": "^7.22.15",
|
||||
"@babel/register": "^7.22.15",
|
||||
"@babel/runtime": "^7.23.1",
|
||||
"@codemirror/autocomplete": "^6.7.1",
|
||||
"@codemirror/commands": "^6.2.4",
|
||||
"@codemirror/language": "^6.7.0",
|
||||
@@ -47,6 +52,8 @@
|
||||
"@topology/sequence-diagram": "^1.1.0",
|
||||
"awesome-qr": "^2.1.5-rc.0",
|
||||
"axios": "^0.19.0",
|
||||
"babel-loader": "^8.3.0",
|
||||
"babel-preset-mobx": "^2.0.0",
|
||||
"browserslist": "^4.21.4",
|
||||
"caniuse-lite": "^1.0.30001412",
|
||||
"css-minimizer-webpack-plugin": "^1.0.0",
|
||||
@@ -81,6 +88,8 @@
|
||||
"showdown": "^2.1.0",
|
||||
"spark-md5": "^3.0.2",
|
||||
"speed-measure-webpack-plugin": "^1.5.0",
|
||||
"uplot": "^1.6.26",
|
||||
"uplot-vue": "^1.1.5",
|
||||
"v-selectpage": "^2.1.4",
|
||||
"vue": "^2.6.10",
|
||||
"vue-clipboard2": "^0.3.3",
|
||||
@@ -104,19 +113,35 @@
|
||||
"xterm-addon-fit": "^0.7.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.17.9",
|
||||
"@vue/test-utils": "^1.0.0-beta.13",
|
||||
"autoprefixer": "^7.1.2",
|
||||
"babel-core": "^6.26.3",
|
||||
"@babel/cli": "^7.7.0",
|
||||
"@babel/core": "^7.7.2",
|
||||
"@babel/plugin-syntax-jsx": "^7.2.0",
|
||||
"@babel/plugin-transform-runtime": "^7.6.2",
|
||||
"@babel/preset-env": "^7.7.1",
|
||||
"@babel/register": "^7.7.0",
|
||||
"@vue/test-utils": "^1.0.0-beta.29",
|
||||
"autoprefixer": "^9.6.4",
|
||||
"babel-core": "^7.0.0-bridge.0",
|
||||
"babel-eslint": "^10.0.3",
|
||||
"babel-helper-vue-jsx-merge-props": "^2.0.3",
|
||||
"babel-jest": "^23.6.0",
|
||||
"babel-loader": "^7.1.5",
|
||||
"babel-loader": "^8.0.6",
|
||||
"babel-plugin-component": "^1.1.1",
|
||||
"babel-plugin-dynamic-import-node": "^2.3.0",
|
||||
"babel-plugin-syntax-jsx": "^6.18.0",
|
||||
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
|
||||
"babel-plugin-transform-runtime": "^6.22.0",
|
||||
"babel-plugin-transform-vue-jsx": "^3.7.0",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
"babel-preset-stage-2": "^6.22.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.0.0",
|
||||
"@babel/plugin-proposal-decorators": "^7.0.0",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.0.0",
|
||||
"@babel/plugin-proposal-function-sent": "^7.0.0",
|
||||
"@babel/plugin-proposal-json-strings": "^7.0.0",
|
||||
"@babel/plugin-proposal-numeric-separator": "^7.0.0",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
|
||||
"@babel/plugin-proposal-throw-expressions": "^7.0.0",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
|
||||
"@babel/plugin-syntax-import-meta": "^7.0.0",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.0.0",
|
||||
"babel-jest": "^23.4.2",
|
||||
"cache-loader": "^4.1.0",
|
||||
"chalk": "^2.0.1",
|
||||
"copy-webpack-plugin": "^4.0.1",
|
||||
|
||||
@@ -510,7 +510,7 @@ textarea {
|
||||
.document-copy-block {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: start;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.document-copy-text{
|
||||
margin-right: 10px;
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
justify-content: start;
|
||||
justify-content: flex-start;
|
||||
.el-dropdown-menu__item.nz-dropdown-menu__item-hover{
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
color:$--color-text-regular;
|
||||
.dialog-header-l{
|
||||
display: flex;
|
||||
justify-content: start;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
i.nz-icon{
|
||||
width: 70px;
|
||||
@@ -106,11 +106,11 @@
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&:nth-last-of-type(1){
|
||||
td{
|
||||
border-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -133,4 +133,4 @@
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
width: 100%;
|
||||
.el-checkbox-group{
|
||||
display: flex;
|
||||
justify-content: start;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
.el-checkbox-button{
|
||||
@@ -70,7 +70,7 @@
|
||||
.el-checkbox-button.is-checked{
|
||||
border: 1px solid #fbb569 !important;
|
||||
}
|
||||
|
||||
|
||||
.el-checkbox-button.is-checked .el-checkbox-button__inner {
|
||||
color: #fff;
|
||||
border-radius: 0;
|
||||
@@ -199,7 +199,7 @@
|
||||
.nz-icon-mimabukejian{
|
||||
font-size: 17px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.is-item-box-error .variable-title {
|
||||
border-color: #F56C6C
|
||||
}
|
||||
@@ -216,7 +216,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.el-form-item__content{
|
||||
.el-checkbox-button{
|
||||
width: calc(100% / 7) !important;
|
||||
@@ -224,7 +224,7 @@
|
||||
width: 100%;
|
||||
padding: 11px 3px;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
.el-checkbox-button.is-focus .el-checkbox-button__inner{
|
||||
border-color: $--border-color-base;
|
||||
@@ -242,11 +242,11 @@
|
||||
}
|
||||
|
||||
.query-variable-table{
|
||||
|
||||
|
||||
}
|
||||
.multiTip{
|
||||
max-width:200px;
|
||||
}
|
||||
.allOptionTip{
|
||||
max-width:208px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
}
|
||||
.user-name-td{
|
||||
display: flex;
|
||||
align-items: start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.flex-align-center {
|
||||
display: flex;
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
}
|
||||
.about-summary{
|
||||
display: flex;
|
||||
justify-content: start;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
padding-top: 6px;
|
||||
line-height: 21px;
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
}
|
||||
.el-checkbox-group{
|
||||
display: flex;
|
||||
justify-content: start;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
.el-checkbox-button{
|
||||
@@ -141,7 +141,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
#DayOfMonth{
|
||||
@@ -157,7 +157,7 @@
|
||||
}
|
||||
.el-checkbox-group{
|
||||
display: flex;
|
||||
justify-content: start;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
.el-checkbox-button{
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
:ref="'promql-'+(index-1)"
|
||||
:showRemove="false"
|
||||
:styleType="2"
|
||||
@change="expressionChange"
|
||||
@change="expressionChange(index - 1)"
|
||||
@removeExpression="removeExpression"
|
||||
></promql-input>
|
||||
</el-form-item>
|
||||
|
||||
@@ -316,7 +316,7 @@ export default {
|
||||
}
|
||||
this.change()
|
||||
},
|
||||
expressionChange: function () {
|
||||
expressionChange: function (index) {
|
||||
if (this.expressions.length) {
|
||||
this.chartConfig.elements = []
|
||||
this.expressions.forEach((expr, i) => {
|
||||
@@ -336,6 +336,7 @@ export default {
|
||||
} else {
|
||||
this.chartConfig.elements = []
|
||||
}
|
||||
this.$refs.chartForm.validate('elements.' + (index) + '.expression')
|
||||
this.change()
|
||||
},
|
||||
switchExpression (index, flag) {
|
||||
|
||||
@@ -290,18 +290,36 @@
|
||||
ref="elInput"
|
||||
|
||||
></div> -->
|
||||
<el-input
|
||||
v-model="expressionList[index]"
|
||||
v-if="type === 'log'"
|
||||
@input="metricKeyDown"
|
||||
autosize
|
||||
type="textarea"
|
||||
:maxlength="styleType === 3 ? 512 : 4096"
|
||||
show-word-limit
|
||||
size="small" :rows="1"
|
||||
class="not-fixed-height no-resize"
|
||||
ref="elInput"
|
||||
></el-input>
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="expressionList[index]"-->
|
||||
<!-- v-if="type === 'log'"-->
|
||||
<!-- @input="metricKeyDown"-->
|
||||
<!-- autosize-->
|
||||
<!-- type="textarea"-->
|
||||
<!-- :maxlength="styleType === 3 ? 512 : 4096"-->
|
||||
<!-- show-word-limit-->
|
||||
<!-- size="small" :rows="1"-->
|
||||
<!-- class="not-fixed-height no-resize"-->
|
||||
<!-- ref="elInput"-->
|
||||
<!-- ></el-input>-->
|
||||
<div>
|
||||
<MonacoEditor
|
||||
v-if="type == 'log'"
|
||||
v-model="expressionList[index]"
|
||||
theme="nz"
|
||||
class="not-fixed-height no-resize"
|
||||
ref="monacoEditor"
|
||||
style="border: 1px solid #dedede;"
|
||||
:style="{
|
||||
height: monacoEditorHeight + 'px'
|
||||
}"
|
||||
language="logql"
|
||||
:options="MONACO_EDITOR_OPTIONS"
|
||||
@editorWillMount="handelBeforeMount"
|
||||
@editorDidMount="handleMount"
|
||||
@change="expressionChange"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="append-msg error" v-if="errorMsg">
|
||||
<span>{{ errorMsg }}</span>
|
||||
|
||||
72
nezha-fronted/src/components/page/uPlot.vue
Normal file
72
nezha-fronted/src/components/page/uPlot.vue
Normal file
@@ -0,0 +1,72 @@
|
||||
npm install uplot-react uplot<template>
|
||||
<div>
|
||||
<input v-model="metrics" @change="getData"/>
|
||||
<div id="uPlot">
|
||||
<!-- <UplotVue-->
|
||||
<!-- :data="data"-->
|
||||
<!-- :options="options"-->
|
||||
<!-- :target="target"-->
|
||||
<!-- @create="onCreate"-->
|
||||
<!-- @delete="onDelete"-->
|
||||
<!-- />-->
|
||||
</div>
|
||||
<div>
|
||||
<div id="chart"/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import uPlot from 'uplot'
|
||||
// import UplotVue from 'uplot-vue'
|
||||
// import 'uplot/dist/uPlot.min.css'
|
||||
export default {
|
||||
name: 'uPlot',
|
||||
components: {
|
||||
// UplotVue
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
metrics: '',
|
||||
data: {},
|
||||
options: {},
|
||||
target: {}
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
this.uPlotInit()
|
||||
this.chartInit()
|
||||
},
|
||||
methods: {
|
||||
onCreate () {
|
||||
|
||||
},
|
||||
onDelete () {
|
||||
|
||||
},
|
||||
chartInit () {
|
||||
|
||||
},
|
||||
uPlotInit () {
|
||||
|
||||
},
|
||||
getData () {
|
||||
let url = '/prom/api/v1/query_range?'
|
||||
const nowTime = new Date().getTime()
|
||||
const start = this.start ? this.start : nowTime - 60 * 60 * 10000
|
||||
const end = this.end ? this.end : nowTime
|
||||
console.log(start, end)
|
||||
url += `start=${start}&end=${end}&step=15s&nullType=zero`
|
||||
url += `&query=${encodeURIComponent(this.metrics)}`
|
||||
this.$get(url).then(res => {
|
||||
console.log(res)
|
||||
this.oldData = res.data
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -8,7 +8,7 @@ import VueResource from 'vue-resource'
|
||||
import bus from '@/libs/bus'
|
||||
Vue.use(VueResource)
|
||||
|
||||
const loginWhiteList = ['/setup', '/sys/license/upload', '/sys/license/state', '/sys/appearance', '/i18n', '/terminal'] // 免登陆白名单
|
||||
const loginWhiteList = ['/setup', '/sys/license/upload', '/sys/license/state', '/sys/appearance', '/i18n', '/terminal', 'uPlot'] // 免登陆白名单
|
||||
export const permissionWhiteList = ['/profile', '/menu', ...loginWhiteList] // 权限白名单
|
||||
router.beforeEach((to, from, next) => {
|
||||
if (window.entrance) {
|
||||
|
||||
@@ -243,6 +243,9 @@ export default new Router({
|
||||
{
|
||||
path: '/notebook',
|
||||
component: resolve => require(['@/components/page/notebook/notebook'], resolve)
|
||||
}, {
|
||||
path: '/uPlot',
|
||||
component: resolve => require(['@/components/page/uPlot'], resolve)
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user