Merge branch 'dev-3.4-report' of git.mesalab.cn:nezha/nezha-fronted into dev-3.4-crosshair

This commit is contained in:
zyh
2022-06-15 17:45:10 +08:00
34 changed files with 513 additions and 56 deletions

View File

@@ -104,7 +104,6 @@ if (arg === 'html' || devStart === 'dev:html') {
baseConfig.module.rules.unshift({
include: [
resolve('src/entrance/app'),
resolve('src/components/common/alert'),
resolve('src/components/common/bottomBox'),
resolve('src/components/common/detailView'),
resolve('src/components/common/elSelect'),

View File

@@ -312,7 +312,8 @@ if (process.env.NODE_ENV == 'development') {
onEnd: [
{
move: [
{ source: path.join(__dirname, '../dist', '/static/config.json'), destination: path.join(__dirname, '../dist/config.json') }
{ source: path.join(__dirname, '../dist', '/static/config.json'), destination: path.join(__dirname, '../dist/config.json') },
{ source: path.join(__dirname, '../exportHtml', '/exportHtml.html'), destination: path.join(__dirname, '../dist/exportHtml.html') }
],
mkdir: [
@@ -345,7 +346,8 @@ if (process.env.NODE_ENV == 'development') {
onEnd: [
{
move: [
{ source: path.join(__dirname, '../dist', '/static/config.json'), destination: path.join(__dirname, '../dist/config.json') }
{ source: path.join(__dirname, '../dist', '/static/config.json'), destination: path.join(__dirname, '../dist/config.json') },
{ source: path.join(__dirname, '../exportHtml', '/snapshot_template.html'), destination: path.join(__dirname, '../dist/snapshot_template.html') }
],
mkdir: [
@@ -371,7 +373,7 @@ if (process.env.NODE_ENV == 'development') {
if (arg === 'html') {
plugin.onStart[0].delete.push(path.join(__dirname, '../exportHtml/'))
plugin.onEnd[0].copy.push(
{ source: path.join(__dirname, '../dist', '/index.html'), destination: path.join(__dirname, '../exportHtml', '/index.html') }
{ source: path.join(__dirname, '../dist', '/index.html'), destination: path.join(__dirname, '../exportHtml', '/snapshot_template.html') }
)
}
webpackConfig.plugins.push(

View File

@@ -0,0 +1,153 @@
.right-box-panel{
.item-receivers{
.el-select.el-select--small{
width: 100%;
}
.item-receivers-text{
color: $--color-text-secondary;
}
}
.el-input--suffix.el-date-editor--datetime .el-input__inner{
padding-left: 15px;
}
.form-items--half-width-group{
.item-receivers{
width: 100%;
.el-select.el-select--small{
width: 100%;
}
}
.form-item--half-width{
.el-date-editor.el-date-editor--datetime{
width: 100%;
.el-input__inner{
height: 32px;
}
}
}
.check-month_box{
.el-checkbox-group{
display: flex;
justify-content: start;
align-items: center;
flex-wrap: wrap;
.el-checkbox-button{
display: flex;
justify-content: center;
align-items: center;
width: calc(100% / 7);
margin-right: -2px;
margin-bottom: -1px;
border: 1px solid $--border-color-light;
.el-checkbox-button__inner{
border: 0px;
border-left: 0px !important;
border-bottom: 0px !important;
display: block;
width: 100%;
height: 100%;
background-color: $--background-color-empty;
border-radius: 0;
}
}
}
.el-checkbox-button.is-checked .el-checkbox-button__inner {
color: #fff;
border-radius: 0;
background-color: $--color-primary !important;
}
}
.range-time{
width: 100%;
.el-form-item__content{
height: 41px;
.el-radio-group{
height: 100%;
border-left: 1px solid $--border-color-light;
.el-radio-button__inner{
height: 100%;
line-height: 1.5;
font-size: 14px;
color: $--color-text-primary;
}
}
.el-checkbox-group{
height: 100%;
.el-checkbox-button{
margin-right: -2px;
.el-checkbox-button__inner{
background-color: $--background-color-empty;
border:1px solid $--border-color-light;
}
}
}
}
.el-radio-group{
display: flex;
border-left: 0;
.el-radio-button{
flex: 1;
}
}
.el-checkbox-button.is-checked .el-checkbox-button__inner {
color: #fff;
border-radius: 0;
background-color: $--color-primary !important;
border: 1px solid $--color-primary !important;
// margin-right: -1px;
}
}
.form-tabs{
width: 100%;
.el-tabs__nav{
display: flex;
.el-tabs__item{
flex: 1;
}
.el-checkbox-button.is-checked .el-checkbox-button__inner {
color: #fff;
border-radius: 0;
background-color: $--color-primary !important;
border: 1px solid $--color-primary !important;
// margin-right: -1px;
}
}
}
.form-day-week{
width: 100%;
.el-input-group__append{
border: 1px solid $--border-color-light;
background-color: $--right-box-sub-title-background-color;
}
}
}
}
.el-form-item__content{
text-align: unset !important;
.el-checkbox-button{
width: calc(100% / 7) !important;
.el-checkbox-button__inner{
width: 100%;
padding: 11px 3px;
}
}
.el-checkbox-button.is-focus .el-checkbox-button__inner{
border-color: $--border-color-base;
}
.el-tabs__item.is-top.is-active{
color: #fff !important;
background-color: $--color-primary !important;
}
.el-radio-button.el-radio-button--small.is-active{
.el-radio-button__inner{
color: #fff !important;
}
}
}

View File

@@ -51,6 +51,7 @@
@import './common/rightBox/chartRightBox/chartRightBox.scss';
@import './common/rightBox/mibBox.scss';
@import './common/rightBox/assetBactchEditBox.scss';
@import './common/rightBox/panelBox.scss';
@import './common/table/alert/alertMessageTable.scss';
@import './common/table/alert/alertRuleTable.scss';
@import './common/table/alert/alertSilenceTable.scss';

View File

@@ -210,6 +210,7 @@ export default {
this.showBasicInfo = !this.showBasicInfo
},
init () {
if (window.dataJson) { return }
this.loading = true
const weekDays = this.getWeeksTime()
if (this.trendTimer) {

View File

@@ -436,9 +436,14 @@ export default {
}
case 'system': {
this.chartData = []
this.chartData.push(this.dataJson[this.chartInfo.id + '_' + 0].result)
}
if (this.chartInfo.type === 'assetInfo' || this.chartInfo.type === 'endpointInfo') {
this.chartData = this.dataJson[this.chartInfo.id + '_' + 0].data
this.loading = false
break
}
this.chartData.push(this.dataJson[this.chartInfo.id + '_' + 0].result)
break
}
case 'misc': {
this.loading = false
setTimeout(() => {

View File

@@ -21,7 +21,7 @@ export default {
this.messageParams.route = route
this.messageParams.params = params
this.closeMessage = this.$message({
duration: 2000,
duration: showNext ? 5000 : 2000,
dangerouslyUseHTMLString: true,
type: 'success',
message: `<div>${msg} <span class="message-next ${showNext ? '' : 'hidden'}"><span class="message-next-continue">${this.$t('overall.continue')}</span> <span id="assetAdd" class="message-next-content">${this.$t(nextText)}</span></span></div>`,

View File

@@ -188,8 +188,8 @@
</el-form-item>
<!--remark-->
<el-form-item :label="$t('overall.remark')" class="full-form-item" prop="remark">
<el-input v-model="selection.pen.data.remark" :autosize="{ minRows: 2, maxRows: 6}" maxlength="256"
show-word-limit type="textarea"/>
<el-input v-model="selection.pen.data.remark" maxlength="256"
show-word-limit type="textarea" size="small" :rows="2"/>
</el-form-item>
<!--chart unit-->
<el-form-item v-show="selection.pen.data.type !='text'" :label="$t('dashboard.panel.chartForm.unit')" class="half-form-item"

View File

@@ -52,7 +52,7 @@
</el-form-item>
<!--remark-->
<el-form-item :label="$t('overall.remark')" prop="remark">
<el-input maxlength="256" show-word-limit v-model="editModel.remark" size="small" type="text"></el-input>
<el-input maxlength="256" show-word-limit v-model="editModel.remark" size="small" :rows="2" type="textarea"></el-input>
</el-form-item>
</el-form>
</div>

View File

@@ -15,7 +15,7 @@
show-word-limit size="small" type="text" v-model="editRole.name"></el-input>
</el-form-item>
<el-form-item :label="$t('overall.remark')">
<el-input maxlength="256" show-word-limit :rows="2" size='mini' type="textarea" v-model="editRole.remark" id="role-box-input-remark"/>
<el-input maxlength="256" show-word-limit :rows="2" size='small' type="textarea" v-model="editRole.remark" id="role-box-input-remark"/>
</el-form-item>
<el-form-item :label="$t('config.roles.permission')">

View File

@@ -149,11 +149,11 @@
</el-form-item>
<!--summary-->
<el-form-item :label="$t('alert.summary')" prop="summary">
<el-input id="alert-box-input-summary" v-model="editAlertRule.summary" maxlength="512" placeholder="" rows="3" show-word-limit size="small" type="textarea"></el-input>
<el-input id="alert-box-input-summary" v-model="editAlertRule.summary" maxlength="512" placeholder="" rows="2" show-word-limit size="small" type="textarea"></el-input>
</el-form-item>
<!--description-->
<el-form-item :label="$t('overall.remark')" prop="description">
<el-input id="alert-box-input-description" v-model="editAlertRule.description" maxlength="256" placeholder="" rows="4" show-word-limit size="small" type="textarea"></el-input>
<el-input id="alert-box-input-description" v-model="editAlertRule.description" maxlength="256" placeholder="" rows="2" show-word-limit size="small" type="textarea"></el-input>
</el-form-item>
<div class="alert-rule-split-title">{{ $t('alert.config.effectiveConfig') }}</div>
<!--state-->

View File

@@ -95,8 +95,8 @@
<el-form-item :label='$t("overall.remark")' class="range-time" prop="remark">
<el-input
v-model="editAlertSilence.remark"
:placeholder="$t('overall.remark')"
maxlength="256"
size="small" :rows="2"
show-word-limit
type="textarea">

View File

@@ -10,7 +10,7 @@
<div class="container__form">
<el-form ref="apiKeyBoxForm" :model="apiKeyBox" :rules="rules" label-position="top" label-width="120px">
<el-form-item :label="$t('profile.name')" prop="name">
<el-input maxlength="64" show-word-limit v-model="apiKeyBox.name" size="small" type="text" :placeholder="$t('profile.name')"></el-input>
<el-input maxlength="64" show-word-limit v-model="apiKeyBox.name" size="small" type="text"></el-input>
</el-form-item>
<el-form-item
:label="$t('profile.apiKey.box.expiredAt')"
@@ -23,12 +23,11 @@
type="datetime"
prefix-icon="el-icon-date"
:format="timeFormatStrToDatePickFormat(dateFormatStr)"
:placeholder="$t('backup.selectData')"
>
</my-date-picker>
</el-form-item>
<el-form-item :label="$t('overall.remark')">
<el-input show-word-limit v-model="apiKeyBox.remark" size="small" type="textarea" :placeholder="$t('overall.remark')" maxlength="256"></el-input>
<el-input size='small' show-word-limit maxlength="256" v-model="apiKeyBox.remark" type="textarea" :rows="2"></el-input>
</el-form-item>
</el-form>
</div>

View File

@@ -92,7 +92,7 @@
</div>
</template>
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.TEXTAREA">
<el-input v-model="label.value" :maxlength="4096" size="small" type="textarea"/>
<el-input v-model="label.value" :maxlength="4096" size="small" :rows="2" show-word-limit type="textarea"/>
</template>
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.RADIO">
<el-radio v-for="item in JSON.parse(label.param).items" :key="item.name" v-model="label.value" :label="item.name">{{item.name}}</el-radio>

View File

@@ -106,7 +106,7 @@
</div>
</template>
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.TEXTAREA">
<el-input v-model="label.value[0]" :maxlength="4096" size="small" type="textarea"/>
<el-input v-model="label.value[0]" :maxlength="4096" show-word-limit size="small" :rows="2" type="textarea"/>
</template>
<template v-else-if="label.type.toUpperCase() === assetConstants.labelTypeData.RADIO">
<el-radio-group v-model="label.value[0]">
@@ -753,7 +753,7 @@ export default {
this.$post(this.url, params).then(res => {
this.prevent_opt.save = false
if (res.code === 200) {
this.messageShow(this.$t('tip.saveSuccess'), '/endpoint', { assetId: res.data.id }, true, 'guide.addEndpoint')
this.messageShow(this.$t('tip.saveSuccess'), '/endpoint', { assetId: res.data.id }, false, 'guide.addEndpoint')
this.esc(true)
} else {
this.$message.error(res.msg)

View File

@@ -112,7 +112,7 @@
</div>
</el-form-item>
<el-form-item :label='$t("overall.remark")' prop="remark">
<el-input placeholder="" maxlength="256" type="textarea" show-word-limit v-model="editAssetMeta.remark" size="small" id="editAssetMeta-box-input-remark"></el-input>
<el-input placeholder="" maxlength="256" type="textarea" show-word-limit v-model="editAssetMeta.remark" size="small" :rows="2" id="editAssetMeta-box-input-remark"></el-input>
</el-form-item>
<!-- <el-form-item :label='$t("config.assetLabel.example")'>-->
<!-- <assetTagEx :param="editAssetMeta.param" :type="editAssetMeta.type.toUpperCase()"/>-->

View File

@@ -17,7 +17,7 @@
<el-input placeholder="" maxlength="64" show-word-limit v-model="editMetaGroup.name" size="small" id="editMetaGroup-box-input-name"></el-input>
</el-form-item>
<el-form-item :label='$t("overall.remark")' prop="remark">
<el-input placeholder="" maxlength="256" type="textarea" show-word-limit v-model="editMetaGroup.remark" size="small" id="editMetaGroup-box-input-remark"></el-input>
<el-input placeholder="" maxlength="256" type="textarea" show-word-limit v-model="editMetaGroup.remark" size="small" :rows="2" id="editMetaGroup-box-input-remark"></el-input>
</el-form-item>
</el-form>
</div>

View File

@@ -42,7 +42,7 @@
</el-form-item>
<!--descrption-->
<el-form-item :label="$t('overall.remark')" prop="remark">
<el-input id="asset-state-input-description" placeholder="" size="small" type="textarea" v-model="editAssetState.remark"></el-input>
<el-input id="asset-state-input-description" placeholder="" size="small" :rows="2" type="textarea" show-word-limit maxlength="256" v-model="editAssetState.remark"></el-input>
</el-form-item>
</el-form>
</div>

View File

@@ -26,7 +26,7 @@
<el-input v-model.number="editCabinet.uSize" :max="47" size="small" id="cabinet-box-input-uSize"></el-input>
</el-form-item>
<el-form-item :label="$t('overall.remark')">
<el-input size='mini' maxlength="256" show-word-limit v-model="editCabinet.remark" type="textarea" :rows="2" id="cabinet-box-input-remark"/>
<el-input size='small' maxlength="256" show-word-limit v-model="editCabinet.remark" type="textarea" :rows="2" id="cabinet-box-input-remark"/>
</el-form-item>
</el-form>
</div>

View File

@@ -67,11 +67,11 @@
</div>
<!--remark-->
<el-form-item :label="$t('overall.remark')">
<el-input maxlength="256" show-word-limit v-model="editChart.remark" :autosize="{ minRows: 1, maxRows: 6}" type="textarea"/>
<el-input maxlength="256" show-word-limit v-model="editChart.remark" size="small" :rows="2" type="textarea"/>
</el-form-item>
<!--remark-->
<el-form-item :label="$t('overall.link')" v-if="editChart.param">
<el-input maxlength="256" show-word-limit v-model="editChart.param.link" :autosize="{ minRows: 1, maxRows: 6}" type="textarea"/>
<el-input maxlength="256" show-word-limit v-model="editChart.param.link" size="small" :rows="2" type="textarea"/>
</el-form-item>
<!--title-->

View File

@@ -133,7 +133,7 @@
</div>
<!--url-->
<el-form-item v-if="isUrl(chartConfig.type)" :label='$t("dashboard.panel.chartForm.url")' :rules="{ required: true, message: $t('validate.required'), trigger: 'blur' }" prop="param.url">
<el-input id="chart-box-url" v-model="chartConfig.param.url" maxlength="1024" show-word-limit size="small" type="textarea" @change="change"></el-input>
<el-input id="chart-box-url" v-model="chartConfig.param.url" maxlength="1024" show-word-limit size="small" :rows="2" type="textarea" @change="change"></el-input>
</el-form-item>
<!--topoData-->
<el-form-item v-if="isDiagram(chartConfig.type)" >

View File

@@ -48,10 +48,9 @@
<el-form-item :label="$t('overall.remark')" prop="remark">
<el-input
v-model="editExprTemp.remark"
:placeholder="$t('overall.remark')"
maxlength="256"
show-word-limit
size="small"
size="small" :rows="2"
type="textarea"
></el-input>
</el-form-item>

View File

@@ -24,7 +24,7 @@
<el-input maxlength="256" rows="4" show-word-limit placeholder="" v-model="editipDetails.state" size="small"></el-input>
</el-form-item>
<el-form-item :label="$t('overall.remark')" prop="remark">
<el-input maxlength="256" rows="4" show-word-limit type="textarea" placeholder="" v-model="editipDetails.remark" size="small" id="mib-box-input-remark"></el-input>
<el-input maxlength="256" rows="2" show-word-limit type="textarea" placeholder="" v-model="editipDetails.remark" size="small" id="mib-box-input-remark"></el-input>
</el-form-item>
</el-form>
</div>

View File

@@ -61,7 +61,7 @@
<el-input maxlength="256" rows="4" show-word-limit placeholder="" v-model="editipam.vlan" size="small"></el-input>
</el-form-item>
<el-form-item :label="$t('overall.remark')" prop="remark">
<el-input maxlength="256" rows="4" show-word-limit type="textarea" placeholder="" v-model="editipam.remark" size="small" id="mib-box-input-remark"></el-input>
<el-input maxlength="256" rows="2" show-word-limit type="textarea" placeholder="" v-model="editipam.remark" size="small" id="mib-box-input-remark"></el-input>
</el-form-item>
</el-form>
</div>

View File

@@ -25,7 +25,7 @@
clearable></el-cascader>
</el-form-item>
<el-form-item :label="$t('overall.remark')" prop="remark">
<el-input maxlength="256" rows="4" show-word-limit type="textarea" placeholder="" v-model="editMib.remark" size="small" id="mib-box-input-remark"></el-input>
<el-input maxlength="256" rows="2" show-word-limit type="textarea" placeholder="" v-model="editMib.remark" size="small" id="mib-box-input-remark"></el-input>
</el-form-item>
<el-form-item :label="$t('config.mib.mibFiles')" prop="file" :rules="[{validator:checkMibFile,trigger:'change'}]" :class="{'add-required':!editMib.id}">
<el-upload drag :multiple="false" action="" :file-list="uploadFileList" :on-change="uploadChange" :auto-upload="false" accept="" :on-remove="afterClearFile" ref="mibFileUpload" class="mib-upload right-box-form-row" id="mib-box-input-file">

View File

@@ -28,12 +28,11 @@
<el-input
id="module-box-input-remark"
v-model="editModule.remark"
:autosize="{ minRows: 1, maxRows: 6}"
class="not-fixed-height no-resize"
maxlength="256"
show-word-limit
placeholder=""
size="small"
size="small" :rows="2"
type="textarea"></el-input>
</el-form-item>
<!--Enpoint template-->

View File

@@ -14,6 +14,148 @@
<el-form-item :label='$t("overall.name")' prop="name">
<el-input id="dc-box-input-name" v-model="editPanel.name" maxlength="64" placeholder="" show-word-limit size="small"></el-input>
</el-form-item>
<!--remark-->
<el-form-item :label='$t("overall.remark")' class="range-time" prop="remark">
<el-input
v-model="editPanel.remark"
maxlength="256"
size="small" :rows="2"
show-word-limit
type="textarea">
</el-input>
</el-form-item>
<el-form-item :label="$t('dashboard.panel.chartTooltip')" class="item-receivers" prop="chartShare">
<el-select v-model="editPanel.param.chartShare" clearable placeholder="" popper-class="right-box-select-top prevent-clickoutside" size="small" value-key="chartType">
<el-option value="none" label="Default">
<span class="panel-dropdown-label-txt" >{{$t('config.assetLabel.default')}}</span>
</el-option>
<el-option value="crosshair" label="Share crosshair">
<span class="panel-dropdown-label-txt" >{{$t('dashboard.panel.crosshair')}}</span>
</el-option>
<el-option value="tooltip" label="Share tooltip">
<span class="panel-dropdown-label-txt" >{{$t('dashboard.panel.shareTooltip')}}</span>
</el-option>
</el-select>
<div class="item-receivers-text">{{$t('dashboard.panel.chartTooltipText')}}</div>
</el-form-item>
<!-- Report -->
<div>
<el-form-item >
<div class="form__sub-title">
<span>{{$t('dashboard.panel.report')}}</span>
<el-switch v-model="editPanel.param.report.enable" size="small"></el-switch>
</div>
</el-form-item>
<div v-if="editPanel.param.report.enable">
<transition name="el-zoom-in-top" >
<div class="form-items--half-width-group">
<el-form-item
:label="$t('backup.start')"
class="form-item--half-width"
prop="stime"
>
<my-date-picker align="right" class=" "
v-model="editPanel.param.report.schedule.stime"
:format="timeFormatStrToDatePickFormat(dateFormatStr)"
popper-class="panel-time-picker-popper right-box-select-top"
prefix-icon=" "
size="mini"
type="datetime">
</my-date-picker>
</el-form-item>
<el-form-item
:label="$t('dashboard.panel.endAt')"
class="form-item--half-width"
prop="etime"
>
<my-date-picker align="right" class=" "
v-model="editPanel.param.report.schedule.etime"
:format="timeFormatStrToDatePickFormat(dateFormatStr)"
popper-class="panel-time-picker-popper right-box-select-top"
prefix-icon=" "
size="mini"
type="datetime">
</my-date-picker>
</el-form-item>
<el-form-item :label='$t("dashboard.panel.period")' class="range-time" prop="unit">
<el-radio-group v-model="editPanel.param.report.range.unit" size="small">
<el-radio-button label="day">{{ $t("dashboard.panel.prevDay") }}</el-radio-button>
<el-radio-button label="week">{{ $t("dashboard.panel.prevWeek") }}</el-radio-button>
<el-radio-button label="month">{{ $t("dashboard.panel.prevMonth") }}</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item
:label="$t('backup.schedule')"
prop="schType"
class="form-tabs">
<el-tabs
v-model="editPanel.param.report.schedule.type"
type="card"
@tab-click="datasourceChange"
class="backups-info-tab"
>
<el-tab-pane :label="$t('backup.Daily')" name="2"></el-tab-pane>
<el-tab-pane :label="$t('backup.Weekly')" name="3"></el-tab-pane>
<el-tab-pane :label="$t('backup.Monthly')" name="4"></el-tab-pane>
</el-tabs>
</el-form-item>
<el-form-item
v-if="isShow === 2 || isShow === 3 ? true :false"
:label="$t('backup.RepeatEvery')"
prop="repeat"
class="form-day-week">
<el-input
size="small"
v-model="editPanel.param.report.schedule.repeat"
id="chart-box-title"
v-if="isShow === 3 ? true :false">
<template slot="append">{{ $t("backup.week") }}</template>
</el-input>
<el-input
size="small"
v-model="editPanel.param.report.schedule.repeat"
id="chart-box-title"
v-if="isShow === 2 ? true :false">
<template slot="append">{{ $t("backup.day") }}</template>
</el-input>
</el-form-item>
<el-form-item v-if="isShow === 3 ? true : false" :label='$t("backup.WeekOn")' class="range-time" prop="nums">
<el-checkbox-group
v-model="editPanel.param.report.schedule.nums">
<el-checkbox-button
v-for="(item,index) in week"
:label="index + 1"
:key="index"
>{{item}}</el-checkbox-button>
</el-checkbox-group>
</el-form-item>
<el-form-item
v-show="isShow === 4 ? true : false"
:label="$t('backup.DayOfMonth')"
prop="nums"
class="check-month_box"
id="day-of-month"
>
<el-checkbox-group v-model="editPanel.param.report.schedule.nums">
<el-checkbox-button
v-for="(item, index) in month"
:label="index === 31 ? -1 : index + 1"
:key="item"
>{{ item }}</el-checkbox-button>
</el-checkbox-group>
</el-form-item>
<el-form-item v-if="isShow !== 0 ? true : false" :label="$t('dashboard.panel.receivers')" class="item-receivers" prop="receivers">
<el-select v-model="editPanel.param.report.receivers" clearable multiple placeholder="" popper-class="right-box-select-top prevent-clickoutside" size="small" value-key="chartType">
<el-option v-for="item in userData" :key="item.id" :label="item.name" :value="item.id">
<span class="panel-dropdown-label-txt" >{{item.name}}</span>
</el-option>
</el-select>
</el-form-item>
</div>
</transition>
</div>
</div>
</el-form>
</div>
</div>
@@ -32,6 +174,7 @@
<script>
import editRigthBox from '../mixin/editRigthBox'
import bus from '@/libs/bus'
export default {
name: 'panelBox',
props: {
@@ -44,14 +187,91 @@ export default {
return {
url: 'visual/panel',
editPanel: {},
isShow: 0,
userData: [],
rules: {
name: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
},
week: [
this.$t('week.Mon'),
this.$t('week.Tue'),
this.$t('week.Wed'),
this.$t('week.Thu'),
this.$t('week.Fri'),
this.$t('week.Sat'),
this.$t('week.Sun')
],
month: [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
'Last'
],
dateFormatStr: localStorage.getItem('nz-default-dateFormat')
? localStorage.getItem('nz-default-dateFormat')
: 'YYYY-MM-DD HH:ss:mm'
}
},
created () {
this.dateFormatStr = 'YYYY-MM-DD HH:mm:ss'
if (this.editPanel.id) {
this.isShow = Number(this.editPanel.param.report.schedule.type)
this.editPanel.param.report.schedule.type = this.editPanel.param.report.schedule.type + ''
this.editPanel.param.report.schedule.stime = this.utcTimeToTimezoneStr(this.editPanel.param.report.schedule.stime)
this.editPanel.param.report.schedule.etime = this.utcTimeToTimezoneStr(this.editPanel.param.report.schedule.etime)
}
},
mounted () {
this.getUserData()
},
methods: {
getUserData () {
return new Promise(resolve => {
this.$get('sys/user', { pageSize: -1, pageNo: 1 }).then(response => {
if (response.code === 200) {
this.userData = response.data.list
}
resolve()
})
})
},
datasourceChange (tab) {
this.isShow = Number(tab.name)
if (this.editPanel.param.report.schedule.nums) {
this.editPanel.param.report.schedule.nums = []
this.editPanel.param.report.schedule.repeat = 0
}
},
/* 关闭弹框 */
esc (refresh) {
this.prevent_opt.save = false
@@ -63,6 +283,33 @@ export default {
/* 保存 */
save () {
const params = {
id: this.editPanel.id ? this.editPanel.id : '',
name: this.editPanel.name,
type: 'dashboard',
pid: 0,
remark: this.editPanel.remark,
param: {
report: {
enable: this.editPanel.param.report.enable,
range: {
type: 'previous',
interval: 1,
unit: this.editPanel.param.report.range.unit
},
schedule: {
type: Number(this.editPanel.param.report.schedule.type),
repeat: this.editPanel.param.report.schedule.repeat ? this.editPanel.param.report.schedule.repeat : 1,
stime: this.timezoneToUtcTimeStr(this.editPanel.param.report.schedule.stime),
etime: this.timezoneToUtcTimeStr(this.editPanel.param.report.schedule.etime),
nums: this.editPanel.param.report.schedule.nums
},
receivers: this.editPanel.param.report.receivers
},
chartShare: this.editPanel.param.chartShare
}
}
const editParam = JSON.parse(JSON.stringify(params))
if (this.prevent_opt.save) {
return
}
@@ -70,7 +317,7 @@ export default {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.editPanel.id) {
this.$put(this.url, this.editPanel).then(response => {
this.$put(this.url, editParam).then(response => {
this.prevent_opt.save = false
if (response.code === 200) {
this.$message({ duration: 1000, type: 'success', message: this.$t('tip.saveSuccess') })
@@ -80,7 +327,7 @@ export default {
}
})
} else {
this.$post(this.url, this.editPanel).then(response => {
this.$post(this.url, editParam).then(response => {
this.prevent_opt.save = false
if (response.code === 200) {
this.$message({ duration: 1000, type: 'success', message: this.$t('tip.saveSuccess') })
@@ -127,6 +374,20 @@ export default {
this.isEdit = true
this.editPanel = JSON.parse(JSON.stringify(n))
}
},
'editPanel.param.report.schedule.stime': {
deep: true,
handler (n) {
this.editPanel.param.report.schedule.stime = bus
.timeFormate(new Date(n), 'YYYY-MM-DD HH:mm:ss')
}
},
'editPanel.param.report.schedule.etime': {
deep: true,
handler (n) {
this.editPanel.param.report.schedule.etime = bus
.timeFormate(new Date(n), 'YYYY-MM-DD HH:mm:ss')
}
}
}
}

View File

@@ -16,7 +16,7 @@
<el-input id="project-box-input-name" v-model="editProject.name" maxlength="64" show-word-limit size="small"></el-input>
</el-form-item>
<el-form-item :label='$t("overall.remark")'>
<el-input id="project-box-input-remark" v-model="editProject.remark" maxlength="256" show-word-limit type="textarea"></el-input>
<el-input id="project-box-input-remark" v-model="editProject.remark" maxlength="256" show-word-limit type="textarea" size="small" :rows="2"></el-input>
</el-form-item>
</el-form>
</div>

View File

@@ -19,7 +19,7 @@
<el-input v-model.number="editCabinet.uSize" :max="47" id="cabinet-box-input-uSize" size="small"></el-input>
</el-form-item>
<el-form-item :label="$t('overall.remark')">
<el-input size='mini' maxlength="256" show-word-limit v-model="editCabinet.remark" type="textarea" :rows="2" id="cabinet-box-input-remark"/>
<el-input size="small" :rows="2" maxlength="256" show-word-limit v-model="editCabinet.remark" type="textarea" id="cabinet-box-input-remark"/>
</el-form-item>
</el-form>
</div>

View File

@@ -21,7 +21,7 @@
</el-row>
</div>
<div v-else-if="type==='textarea'">
<el-input v-model="inputValue" size="small" type="textarea" maxlength="512" :autosize="{ minRows: 2, maxRows: 4}"/>
<el-input v-model="inputValue" size="small" type="textarea" show-word-limit maxlength="512" :rows="2"/>
</div>
<div v-else-if="type==='radio'">
<el-radio-group v-model="optionValue" >

View File

@@ -21,7 +21,7 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('licenseGen.comment')" prop="comment">
<el-input id="alert-box-input-description" placeholder="" size="small" type="textarea" v-model="licenseGen.comment"></el-input>
<el-input id="alert-box-input-description" placeholder="" size="small" :rows="2" type="textarea" v-model="licenseGen.comment" show-word-limit maxlength="256"></el-input>
</el-form-item>
<el-form-item class="license-gen-error" prop="file">
<div class="license-gen-form__upload">

View File

@@ -90,9 +90,10 @@
v-if="type == 'log'"
:id="inputId"
v-model="expressionList[index]"
:autosize="{ minRows: 1, maxRows: 6 }"
size="small" :rows="2"
class="not-fixed-height no-resize"
type="textarea"
show-word-limit maxlength="256"
@input="metricKeyDown"
@keyup.enter.native="expressionChange"
ref="elInput"
@@ -252,7 +253,7 @@
type="textarea"
:maxlength="styleType === 3 ? 512 : 4096"
show-word-limit
:autosize="{ minRows: 1, maxRows: 6 }"
size="small" :rows="2"
class="not-fixed-height no-resize"
ref="elInput"
></el-input>

View File

@@ -191,7 +191,23 @@ export default {
},
panel: { // 新增panel
id: '',
name: ''
name: '',
remark: '',
param: {
report: {
enable: false,
range: {
unit: ''
},
schedule: {
stime: '',
etime: '',
repeat: 0,
nums: [],
type: 0
}
}
}
},
chart: {},
blankChart: {
@@ -388,7 +404,23 @@ export default {
// this.$refs.panelBox.show(true)
this.panel = {
id: '',
name: ''
name: '',
remark: '',
param: {
report: {
enable: false,
range: {
unit: ''
},
schedule: {
stime: '',
etime: '',
nums: [],
type: 0 + ''
}
},
chartShare: 'none'
}
}
// this.$refs.panelBox.setTitle(this.$t('dashboard.panel.createPanelTitle'))
},

View File

@@ -46,6 +46,7 @@ router.beforeEach((to, from, next) => {
next({ path: '/setup' })
} else {
if (localStorage.getItem('nz-token')) {
store.commit('i18nReady', false)
post('/sys/user/permissions', { token: localStorage.getItem('nz-token') }).then(res => {
if (res.code === 200) {
const menuList = sortByOrderNum(res.data.menus)
@@ -91,11 +92,10 @@ router.beforeEach((to, from, next) => {
}
})
} else {
next()
const langList = localStorage.getItem('nz-language-list')
if (langList) {
store.commit('setLangList', JSON.parse(langList))
}
}
}
})
if (!store.getters.i18nIsReady) {
get(config.body.baseUrl + 'sys/i18n/lang').then(res => {
if (res.code === 200) {
@@ -104,16 +104,21 @@ router.beforeEach((to, from, next) => {
}
})
}
next()
}
}
}
})
})
})
} else if (localStorage.getItem('nz-token')) {
const i18nRequest = new Promise(resolve => {
// 从localStorage加载i18n
if (!store.getters.i18nIsReady) {
const langList = localStorage.getItem('nz-language-list')
if (langList) {
store.commit('setLangList', JSON.parse(langList))
}
if (!store.getters.i18nIsReady) {
Vue.http.get(configUrl).then(config => {
get(config.body.baseUrl + 'sys/i18n/lang').then(response => {
if (response.code === 200) {