Merge branch 'dev-3.8' of https://git.mesalab.cn/nezha/nezha-fronted into dev-3.9

This commit is contained in:
zhangyu
2023-09-11 14:24:37 +08:00
11 changed files with 65 additions and 14 deletions

View File

@@ -743,3 +743,6 @@ i.nz-icon-override{
.el-form-item__error {
padding-top: 0;
}
input::placeholder{
text-transform:capitalize;
}

View File

@@ -245,6 +245,13 @@ export default {
}
this.chartInfo.loaded && this.query(elements, startTime, endTime, step, params, isRefresh)
},
getIemStep (element, step) {
let myStep = step
if (element.step) {
myStep = element.step + 's'
}
return myStep
},
query (elements, startTime, endTime, step, params, isRefresh) { // 获取chart的数据
this.isError = false
this.allDataLength = 0
@@ -272,10 +279,11 @@ export default {
urlPre += '/logs/loki'
}
let requests = elements.map((element) => {
const myStep = this.getIemStep(element, step)
if (this.from === fromRoute.chartTemp || this.from === fromRoute.dashboardTemp) {
return chartTempData
}
let query = `${urlPre}/api/v1/query_range?start=${startTime}&end=${endTime}&step=${step}`
let query = `${urlPre}/api/v1/query_range?start=${startTime}&end=${endTime}&step=${myStep}`
if (isTimeSeries(this.chartInfo.type)) {
let nullType = this.chartInfo.param.nullType || 'null'
nullType = (nullType === 'connected' ? 'null' : nullType)
@@ -299,10 +307,11 @@ export default {
})
if (this.multipleTime) {
const multipleRequests = elements.map((element) => {
const myStep = this.getIemStep(element, step)
if (this.from === fromRoute.chartTemp || this.from === fromRoute.dashboardTemp) {
return chartTempData
}
let query = `${urlPre}/api/v1/query_range?start=${startTime - this.minusTime / 1000}&end=${endTime - this.minusTime / 1000}&step=${step}`
let query = `${urlPre}/api/v1/query_range?start=${startTime - this.minusTime / 1000}&end=${endTime - this.minusTime / 1000}&step=${myStep}`
if (isTimeSeries(this.chartInfo.type)) {
let nullType = this.chartInfo.param.nullType || 'null'
nullType = (nullType === 'connected' ? 'null' : nullType)
@@ -352,7 +361,8 @@ export default {
}
if (comparisonSt && comparisonEt) {
const comparisonRequests = elements.map((element) => {
let query = `${urlPre}/api/v1/query_range?start=${comparisonSt}&end=${comparisonEt}&step=${step}`
const myStep = this.getIemStep(element, step)
let query = `${urlPre}/api/v1/query_range?start=${comparisonSt}&end=${comparisonEt}&step=${myStep}`
if (element.filter) {
query += `&filter=${element.filter}`
}

View File

@@ -79,7 +79,7 @@ export default {
const meta2dOptions = {
minScale: this.minScale,
// maxScale: 2,
autoAnchor: false,
autoAnchor: false
// disableAnchor: true
}
const meta2d = new window.Meta2d(this.meta2dId, meta2dOptions)
@@ -128,8 +128,12 @@ export default {
startTime = this.timeRange[0]
endTime = this.timeRange[1]
} else if (this.filterTime) {
startTime = this.filterTime[0]
endTime = this.filterTime[1]
startTime = this.momentStrToTimestamp(this.filterTime[0])
endTime = this.momentStrToTimestamp(this.filterTime[1])
}
if (typeof (startTime) == 'string') {
startTime = this.momentStrToTimestamp(this.filterTime[0])
endTime = this.momentStrToTimestamp(this.filterTime[1])
}
this.getQueryValues(this.querysArray, startTime, endTime).then((arr) => {
this.clacTopoData(this.$lodash.cloneDeep(this.topoData), arr).then((data) => {

View File

@@ -106,6 +106,13 @@
<el-col style="flex: 1">
<el-input maxlength="512" show-word-limit size="small" type="text" v-model="expressionsShow[index-1].legend" @change="expressionChange"></el-input>
</el-col>
<el-col class="legend-title" style="margin-left: 10px">
<span class="legend-title__span">{{$t('overall.step')}}&nbsp;</span>
</el-col>
<el-col style="flex: 1">
<el-input-number @change="expressionChange" v-model="expressionsShow[index-1].step" size="small" :min="minStep" :precision="0" :controls="false" class="append_unit" :placeholder="$t('overall.auto')" :data-unit="$t('overall.seconds')">
</el-input-number>
</el-col>
</el-row>
</el-row>
</transition>
@@ -1397,7 +1404,11 @@ export default {
}
},
mixins: [promqlInputMixin, publicConfig, chartTypeShow],
computed: {},
computed: {
minStep () {
return this.nzDefaultConfig.minStep
}
},
data () {
return {
rules: {

View File

@@ -381,7 +381,7 @@ export default {
height: 4,
unit: 2,
type: 'line',
elements: [{ expression: '', legend: '', type: 'expert', id: '', name: 'A', state: 1 }],
elements: [{ expression: '', legend: '', type: 'expert', id: '', name: 'A', state: 1 , step: undefined}],
param: {
stack: 0,
nullType: 'null',
@@ -427,7 +427,7 @@ export default {
height: 4,
unit: 2,
type: 'log',
elements: [{ expression: '', legend: '', type: 'expert', id: '', name: 'A', state: 1 }],
elements: [{ expression: '', legend: '', type: 'expert', id: '', name: 'A', state: 1 , step: undefined}],
param: {
enable: {
thresholds: false,

View File

@@ -327,7 +327,8 @@ export default {
legend: this.expressionsShow[i].legend,
name: this.expressionName[i],
state: this.expressionsShow[i].state,
orderNum: i
orderNum: i,
step: this.expressionsShow[i].step
})
}
})
@@ -407,7 +408,8 @@ export default {
error: '',
legend: '',
elementId: '',
state: 1
state: 1,
step: undefined
})
this.expressionChange()
} else {
@@ -420,7 +422,8 @@ export default {
error: '',
elementId: item.id,
legend: item.legend,
state: item.state
state: item.state,
step: item.step
})
}
},

View File

@@ -277,7 +277,7 @@ export default {
pointSize: 6
}
},
elements: [{ expression: '', legend: '', type: 'expert', id: '', name: 'A', state: 1, orderNum: 0 }],
elements: [{ expression: '', legend: '', type: 'expert', id: '', name: 'A', state: 1, orderNum: 0 , step: undefined}],
panel: '',
sync: 0,
remark: '',

View File

@@ -26,6 +26,7 @@ export default {
this.$axios.defaults.baseURL = result.body.baseUrl
const version = result.body.version
const baseUrl = result.body.baseUrl
this.$store.commit('setNzDefaultConfig', result.body)
localStorage.setItem('nz-baseURL', baseUrl)
const defaultWindowWidth = result.body.width || 1024
if (version !== localStorage.getItem('nz-version')) {

View File

@@ -178,6 +178,9 @@ Vue.mixin({
},
$routePath () {
return this.$route.path
},
nzDefaultConfig () {
return this.$store.getters.getNzDefaultConfig
}
},
methods: {

View File

@@ -119,6 +119,9 @@ Vue.mixin({
},
$routePath () {
return this.$route.path
},
nzDefaultConfig () {
return this.$store.getters.getNzDefaultConfig
}
},
...mainMixin

View File

@@ -58,9 +58,15 @@ const store = new Vuex.Store({
diagnosisTab: {}, // 故障诊断
showDiagnosisTab: false,
configSync: {}, // 配置同步
showConfigSync: false
showConfigSync: false,
nzDefaultConfig: {
minStep: 60
},
},
getters: {
getNzDefaultConfig (state) {
return state.nzDefaultConfig
},
getGlobalSearchId (state) {
return state.globalSearchId
},
@@ -135,6 +141,13 @@ const store = new Vuex.Store({
}
},
mutations: {
// 设置默认 config
setNzDefaultConfig (state, defaultConfig) {
state.nzDefaultConfig = {
...state.nzDefaultConfig,
...defaultConfig
}
},
/* 监听对象变化,用于顶部菜单与底部内容的同步 */
projectListChange (state) {
state.projectListChange++