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

This commit is contained in:
zyh
2023-06-27 11:29:51 +08:00
41 changed files with 169 additions and 66 deletions

View File

@@ -325,7 +325,12 @@
margin-top: 0 !important; margin-top: 0 !important;
margin-bottom: 0 !important; margin-bottom: 0 !important;
max-width: 626px !important; max-width: 626px !important;
.hidden-padding {
padding: 0;
> span{
padding: 0 20px;
}
}
} }
.api-select.right-box-select-top.right-public-box-dropdown-top { .api-select.right-box-select-top.right-public-box-dropdown-top {
.el-scrollbar__view.el-select-dropdown__list { .el-scrollbar__view.el-select-dropdown__list {

View File

@@ -6,7 +6,7 @@
margin-right: 20px; margin-right: 20px;
flex: 1; flex: 1;
} }
.latlng .input-box .el-input,.latlng .input-box .el-input-number{ .latlng .input-box .input-box-item .el-input,.latlng .input-box .input-box-item .el-input-number{
width: 100%; width: 100%;
} }
.latlng .map-config-dialog .el-dialog{ .latlng .map-config-dialog .el-dialog{
@@ -20,3 +20,24 @@
padding:0px 5px!important; padding:0px 5px!important;
} }
.prepend_unit{
display: flex;
.el-input--small .el-input__inner {
border-radius: 0 4px 4px 0;
border-left: none;
}
&::before{
content: attr(data-unit);
//position: absolute;
display: inline-block;
top: 0;
right: 100%;
padding: 0 5px;
color: $--color-text-secondary;
background-color: $--background-color-base;
border: 1px solid $--border-color-light;
border-radius:4px 0 0 4px;
}
}

View File

@@ -16,6 +16,9 @@
border: none !important; border: none !important;
} }
} }
.meta2d-chart-hide-header {
height: calc(100% - 78px);
}
.meta2d-project{ .meta2d-project{
height: calc(100% - 78px); height: calc(100% - 78px);
border: 1px solid; border: 1px solid;

View File

@@ -24,8 +24,8 @@
display: none !important; display: none !important;
} }
} }
.right-box__select{ .right-box__select-pipeline{
position: absolute; position: absolute;
left: -55px; left: -65px;
top: 0; top: 0;
} }

View File

@@ -60,6 +60,7 @@
@import './common/rightBox/assetMetaBox.scss'; @import './common/rightBox/assetMetaBox.scss';
@import './common/rightBox/menuBox.scss'; @import './common/rightBox/menuBox.scss';
@import './common/rightBox/moduleBox.scss'; @import './common/rightBox/moduleBox.scss';
@import './common/rightBox/pipelineSelect.scss';
@import './common/rightBox/ipam.scss'; @import './common/rightBox/ipam.scss';
@import './common/rightBox/assetMetaBox.scss'; @import './common/rightBox/assetMetaBox.scss';
@import './common/rightBox/chartRightBox/chartRightBox.scss'; @import './common/rightBox/chartRightBox/chartRightBox.scss';

View File

@@ -13,7 +13,7 @@ $--font-path: '~element-ui/lib/theme-chalk/fonts'; // 避免ele原字体加载
} }
body { body {
height: 100%; height: 100%;
min-width: 1024px; min-width: 1400px;
margin:0 !important; margin:0 !important;
padding: 0 !important; padding: 0 !important;
cursor: default; cursor: default;

View File

@@ -19,6 +19,7 @@
:is-chart="true" :is-chart="true"
:iconArray="iconArray" :iconArray="iconArray"
:ref="'topology' + index" :ref="'topology' + index"
:paddingTop="40"
/> />
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>

View File

@@ -4,7 +4,7 @@ const data = {
showHeader: true, showHeader: true,
name: '', name: '',
dashboardId: 1244, dashboardId: 1244,
groupId: 0, groupId: undefined,
span: 4, span: 4,
height: 4, height: 4,
updateBy: 381, updateBy: 381,

View File

@@ -94,7 +94,8 @@ export default {
this.term = new Terminal({ this.term = new Terminal({
cursorStyle: 'block', // 光标样式 null | 'block' | 'underline' | 'bar' cursorStyle: 'block', // 光标样式 null | 'block' | 'underline' | 'bar'
disableStdin: false, // 是否应禁用输入 disableStdin: false, // 是否应禁用输入
fontSize: 16 fontSize: 16,
lineHeight: 1.2
}) })
this.term.open(terminalContainer) this.term.open(terminalContainer)
this.term.focus() this.term.focus()

View File

@@ -150,6 +150,9 @@
<!-- <i class="nz-icon nz-icon-delete" v-if="!item.isDir" @click="delFile(item)"></i>--> <!-- <i class="nz-icon nz-icon-delete" v-if="!item.isDir" @click="delFile(item)"></i>-->
</div> </div>
</div> </div>
<div class="file-item">
{{$t('fileDirectory.overNum', {num: overNum})}}
</div>
</div> </div>
</div> </div>
<el-dialog <el-dialog
@@ -280,6 +283,8 @@ export default {
breadcrumb: [], breadcrumb: [],
fileList: [], fileList: [],
oldFileList: [], oldFileList: [],
overNum: false,
showNum: 10000,
newFolderBoxShow: false, newFolderBoxShow: false,
folder: '', folder: '',
fileDirectoryLoading: false, fileDirectoryLoading: false,
@@ -409,6 +414,12 @@ export default {
if (res.code === 200) { if (res.code === 200) {
this.fileDirectoryLoading = false this.fileDirectoryLoading = false
this.fileDirectory = res.data.path this.fileDirectory = res.data.path
if (res.data.list.length > this.showNum) {
this.overNum = res.data.list.length - this.showNum
res.data.list.splice(this.showNum, res.data.list.length)
} else {
this.overNum = false
}
res.data.list.forEach(item => { res.data.list.forEach(item => {
if (item.name[0] === '.') { if (item.name[0] === '.') {
item.isHide = true item.isHide = true

View File

@@ -175,6 +175,7 @@ export default {
}, },
viewGraph () { viewGraph () {
this.$refs.recordRulesQueryTab.viewGraph() this.$refs.recordRulesQueryTab.viewGraph()
this.dropdownHandler(true)
}, },
dropdownHandler (show) { dropdownHandler (show) {
if (!show) { if (!show) {

View File

@@ -48,6 +48,7 @@
:class="[selectSize ? `is-${ selectSize }` : '']" :class="[selectSize ? `is-${ selectSize }` : '']"
:disabled="selectDisabled" :disabled="selectDisabled"
:autocomplete="autoComplete || autocomplete" :autocomplete="autoComplete || autocomplete"
:maxlength = "maxlength"
@focus="handleFocus" @focus="handleFocus"
@blur="softFocus = false" @blur="softFocus = false"
@click.stop @click.stop
@@ -72,6 +73,7 @@
v-model="selectedLabel" v-model="selectedLabel"
type="text" type="text"
:placeholder="currentPlaceholder" :placeholder="currentPlaceholder"
:maxlength = "maxlength"
:name="name" :name="name"
:id="id" :id="id"
:autocomplete="autoComplete || autocomplete" :autocomplete="autoComplete || autocomplete"
@@ -301,6 +303,9 @@ export default {
popperAppendToBody: { popperAppendToBody: {
type: Boolean, type: Boolean,
default: true default: true
},
maxlength: {
type: Number
} }
}, },

View File

@@ -12,7 +12,7 @@
<div class="condition__column"> <div class="condition__column">
<div v-if="meta.nameIsEditing"> <div v-if="meta.nameIsEditing">
<el-select <el-select
allow-create allow-create :maxlength="64"
filterable filterable
size="mini" size="mini"
v-model="meta.name" v-model="meta.name"
@@ -35,7 +35,7 @@
<div class="condition__column"> <div class="condition__column">
<div v-if="meta.operIsEditing"> <div v-if="meta.operIsEditing">
<el-select <el-select
allow-create allow-create :maxlength="64"
filterable filterable
size="mini" size="mini"
v-model="meta.oper" v-model="meta.oper"

View File

@@ -7,9 +7,8 @@
</el-input> </el-input>
</div> </div>
<div class="input-box-item" v-if="showZoom"> <div class="input-box-item" v-if="showZoom">
<el-input v-model="zoom" :max="mapParam.maxZoom" :min="mapParam.minZoom" :step="1" controls-position="right"> <el-input-number v-model="zoom" :max="mapParam.maxZoom" :precision="0" :min="mapParam.minZoom" :controls="false" class="prepend_unit" :data-unit="$t('config.system.basic.zoom')">
<template v-if="showZoom" slot="prepend">{{$t('config.system.basic.zoom')}}</template> </el-input-number>
</el-input>
</div> </div>
<div class="input-box-item" style="margin-right: unset !important;width: 30px !important;flex:unset;" @click="mapConfigVisible = true"><i class="nz-icon nz-icon-weizhi" style="color:rgb(238, 157, 63)"></i></div> <div class="input-box-item" style="margin-right: unset !important;width: 30px !important;flex:unset;" @click="mapConfigVisible = true"><i class="nz-icon nz-icon-weizhi" style="color:rgb(238, 157, 63)"></i></div>
</div> </div>
@@ -209,9 +208,7 @@ export default {
} else { } else {
this.mapParam = { ...mapParam } this.mapParam = { ...mapParam }
} }
if (!this.zoom) {
this.zoom = mapParam.zoom this.zoom = mapParam.zoom
}
resolve() resolve()
} }
}) })

View File

@@ -8,6 +8,7 @@
:search-msg="searchMsg" :search-msg="searchMsg"
:show-history="false" :show-history="false"
:show-search="false" :show-search="false"
:isNzTransfet="true"
style="width:100%" style="width:100%"
@search="search" @search="search"
></search-input> ></search-input>

View File

@@ -30,13 +30,13 @@
</span> </span>
<el-row class="block-col-2" style="width: 35px;"> <el-row class="block-col-2" style="width: 35px;">
<el-col> <el-col>
<el-dropdown placement="bottom-end" trigger="click"> <el-dropdown placement="bottom-end" trigger="click" v-if="data.id != -1">
<span class="el-dropdown-link tree--operation" @click.stop><i class="nz-icon nz-icon-more1"></i></span> <span class="el-dropdown-link tree--operation" @click.stop><i class="nz-icon nz-icon-more1"></i></span>
<el-dropdown-menu class="right-box-select-top" slot="dropdown" v-has="['asset_label_delete', 'asset_label_edit']"> <el-dropdown-menu class="right-box-select-top" slot="dropdown" v-has="['asset_label_delete', 'asset_label_edit']">
<el-dropdown-item> <el-dropdown-item class="hidden-padding">
<span @click.stop="edit(data)"><i v-has="'asset_label_edit'" class="nz-icon nz-icon-edit"></i>{{$t('overall.edit')}}</span> <span @click.stop="edit(data)"><i v-has="'asset_label_edit'" class="nz-icon nz-icon-edit"></i>{{$t('overall.edit')}}</span>
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item> <el-dropdown-item class="hidden-padding">
<span @click.stop="del(data)" v-has="'asset_label_delete'"><i class="nz-icon nz-icon-delete"></i>{{$t('overall.delete')}}</span> <span @click.stop="del(data)" v-has="'asset_label_delete'"><i class="nz-icon nz-icon-delete"></i>{{$t('overall.delete')}}</span>
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>

View File

@@ -65,6 +65,7 @@ export default {
historiesLength: 0 historiesLength: 0
} }
}, },
inject: ['option'],
props: { props: {
meta2dId: { meta2dId: {
require: true require: true
@@ -81,10 +82,16 @@ export default {
undo () { // 撤销 undo () { // 撤销
getTopology(this.meta2dId).undo() getTopology(this.meta2dId).undo()
// getTopology(this.meta2dId).inactive() // getTopology(this.meta2dId).inactive()
if (this.option.map) {
getTopology(this.meta2dId).showMap()
}
bus.$emit('changeSelectPens', []) bus.$emit('changeSelectPens', [])
}, },
redo () { // 重做 redo () { // 重做
getTopology(this.meta2dId).redo() getTopology(this.meta2dId).redo()
if (this.option.map) {
getTopology(this.meta2dId).showMap()
}
// getTopology(this.meta2dId).inactive() // getTopology(this.meta2dId).inactive()
bus.$emit('changeSelectPens', []) bus.$emit('changeSelectPens', [])
}, },

View File

@@ -137,7 +137,7 @@ export default {
getTopology(this.meta2dId).resize() getTopology(this.meta2dId).resize()
getTopology(this.meta2dId).open(data) getTopology(this.meta2dId).open(data)
if (this.isChart) { if (this.isChart) {
getTopology(this.meta2dId).fitView(true, 20) getTopology(this.meta2dId).fitView(true, this.paddingTop)
} else { } else {
getTopology(this.meta2dId).centerView() getTopology(this.meta2dId).centerView()
} }
@@ -366,12 +366,12 @@ export default {
this.position.top = ePosition.layerY this.position.top = ePosition.layerY
this.$nextTick(() => { this.$nextTick(() => {
if ((boxWidth / 2) > ePosition.layerX) { if ((boxWidth / 2) > ePosition.layerX) {
this.position.left = ePosition.layerX + 20 this.position.left = ePosition.layerX + 15
} else { } else {
this.position.left = ePosition.layerX - 20 - 400 this.position.left = ePosition.layerX - 15 - 400
} }
if (boxHeight / 2 > ePosition.layerY) { if (boxHeight / 2 > ePosition.layerY) {
this.position.top = ePosition.layerY + 50 this.position.top = ePosition.layerY + 15
} else { } else {
this.position.top = ePosition.layerY - 300 this.position.top = ePosition.layerY - 300
} }

View File

@@ -466,7 +466,7 @@
</el-select> </el-select>
</div> </div>
<div style="display: inline-block;width: calc(70% - 13px);margin-left: 10px"> <div style="display: inline-block;width: calc(70% - 13px);margin-left: 10px">
<el-select v-model="pen.data.textLegend" size="small" filterable allow-create clearable default-first-option> <el-select v-model="pen.data.textLegend" size="small" filterable allow-create :maxlength="64" clearable default-first-option>
<el-option v-for="item in queryValues.filter(query => (query.parent === pen.data.textParent) && query.type === 'item')" :key="item.id" :value="item.name" :label='item.name' :title="item.name" style="width: 302px"> </el-option> <el-option v-for="item in queryValues.filter(query => (query.parent === pen.data.textParent) && query.type === 'item')" :key="item.id" :value="item.name" :label='item.name' :title="item.name" style="width: 302px"> </el-option>
</el-select> </el-select>
</div> </div>
@@ -806,7 +806,7 @@
</el-select> </el-select>
</div> </div>
<div style="display: inline-block;width: calc(70% - 13px);margin-left: 10px"> <div style="display: inline-block;width: calc(70% - 13px);margin-left: 10px">
<el-select v-model="pen.data.legend" size="small" filterable allow-create clearable default-first-option> <el-select v-model="pen.data.legend" size="small" filterable allow-create :maxlength="64" clearable default-first-option>
<el-option class="text-ellipsis" v-for="item in queryValues.filter(query => (query.parent === pen.data.parent) && query.type === 'item')" :key="item.id" :value="item.name" :label='item.name' :title="item.name" style="width: 302px;"></el-option> <el-option class="text-ellipsis" v-for="item in queryValues.filter(query => (query.parent === pen.data.parent) && query.type === 'item')" :key="item.id" :value="item.name" :label='item.name' :title="item.name" style="width: 302px;"></el-option>
</el-select> </el-select>
</div> </div>
@@ -1087,7 +1087,7 @@
:title="legend.legend" :title="legend.legend"
style="width: 100%" style="width: 100%"
filterable filterable
allow-create allow-create :maxlength="64"
default-first-option default-first-option
clearable> clearable>
<el-option class="text-ellipsis" v-for="item in queryValues.filter(query => (query.parent === legend.parent) && query.type === 'item')" :key="item.id" :value="item.name" :label='item.name' :title='item.name' style="width: 300px"></el-option> <el-option class="text-ellipsis" v-for="item in queryValues.filter(query => (query.parent === legend.parent) && query.type === 'item')" :key="item.id" :value="item.name" :label='item.name' :title='item.name' style="width: 300px"></el-option>

View File

@@ -13,7 +13,11 @@
@saveChart="saveChart" @saveChart="saveChart"
@getNodesArr="getNodesArr" @getNodesArr="getNodesArr"
/> />
<div class="meta2d-main" :class="isChart ? 'meta2d-chart': 'meta2d-project'" @contextmenu="onContextMenu($event)" style="position: relative" :style="{border: editFlag ? '1px solid' : ''}"> <div class="meta2d-main" :class="{
'meta2d-chart-hide-header': !showHeader,
'meta2d-chart': isChart,
'meta2d-project': !isChart
}" @contextmenu="onContextMenu($event)" style="position: relative" :style="{border: editFlag ? '1px solid' : ''}">
<div v-for="(item,index) in nodesArr" v-if="!editFlag && project" <div v-for="(item,index) in nodesArr" v-if="!editFlag && project"
:key="index" :key="index"
v-show="(item.y + offsetY - 48 > -20) && (item.x + item.width/2 + offsetX - 24 > - 20)" v-show="(item.y + offsetY - 48 > -20) && (item.x + item.width/2 + offsetX - 24 > - 20)"
@@ -127,6 +131,11 @@ import { globalStore } from '@meta2d/core'
export default { export default {
name: 'meta2dMain', name: 'meta2dMain',
mixins: [meta2dMainCalc, topoUtil], mixins: [meta2dMainCalc, topoUtil],
provide () {
return {
option: this.option
}
},
props: { props: {
meta2dId: {}, // 唯一id 不可重复 meta2dId: {}, // 唯一id 不可重复
iconArray: { iconArray: {
@@ -155,6 +164,24 @@ export default {
type: Boolean, type: Boolean,
default: true default: true
}, },
paddingTop: {
type: Number,
default: 20
}
},
data () {
return {
option: {
lineName: 'curve',
lineWidth: 1,
fromArrow: '',
toArrow: 'triangleSolid',
scale: 100,
grid: false,
rule: false,
map: false
},
}
}, },
computed: { computed: {
}, },

View File

@@ -65,6 +65,9 @@ export default {
console.log(this.params.title, this.dataSource.elements.expression, this.dataSource.metric) console.log(this.params.title, this.dataSource.elements.expression, this.dataSource.metric)
this.title = this.handleLegendAlias(this.params.title, this.params.title, this.dataSource.metric) || this.params.title this.title = this.handleLegendAlias(this.params.title, this.params.title, this.dataSource.metric) || this.params.title
this.content = this.handleLegendAlias(this.params.content, this.params.content, this.dataSource.metric) || this.params.content this.content = this.handleLegendAlias(this.params.content, this.params.content, this.dataSource.metric) || this.params.content
} else {
this.title = this.params.title
this.content = this.params.content
} }
this.params.legends.forEach(item => { this.params.legends.forEach(item => {
const findItem = this.queryValues.find(query => query.name === item.legend && query.parent === item.parent) const findItem = this.queryValues.find(query => query.name === item.legend && query.parent === item.parent)

View File

@@ -98,18 +98,9 @@ import { deepClone, s8 } from '@meta2d/core'
import lineData from './js/defaultPenLineData' import lineData from './js/defaultPenLineData'
export default { export default {
name: 'topologyTopTool', name: 'topologyTopTool',
inject: ['option'],
data () { data () {
return { return {
option: {
lineName: 'curve',
lineWidth: 1,
fromArrow: '',
toArrow: 'triangleSolid',
scale: 100,
grid: false,
rule: false,
map: false
},
dragstartFlag: false, dragstartFlag: false,
drawLineFlag: false, drawLineFlag: false,
scaleNum: 100, scaleNum: 100,
@@ -277,10 +268,12 @@ export default {
undo () { // 撤销 undo () { // 撤销
getTopology(this.meta2dId).undo() getTopology(this.meta2dId).undo()
// getTopology(this.meta2dId).inactive() // getTopology(this.meta2dId).inactive()
this.showMap()
bus.$emit('changeSelectPens', []) bus.$emit('changeSelectPens', [])
}, },
redo () { // 重做 redo () { // 重做
getTopology(this.meta2dId).redo() getTopology(this.meta2dId).redo()
this.showMap()
// getTopology(this.meta2dId).render() // getTopology(this.meta2dId).render()
// getTopology(this.meta2dId).inactive() // getTopology(this.meta2dId).inactive()
bus.$emit('changeSelectPens', []) bus.$emit('changeSelectPens', [])

View File

@@ -15,7 +15,7 @@
</el-form-item> </el-form-item>
<!--brand--> <!--brand-->
<el-form-item :label='$t("asset.brand")' prop="brandId"> <el-form-item :label='$t("asset.brand")' prop="brandId">
<el-select value-key="id" allow-create class="right-box__select" popper-class="right-box-select-top prevent-clickoutside" :filterable="true" v-model="editModel.brandId" placeholder="" size="small" id="module-box-input-project"> <el-select value-key="id" allow-create :maxlength="64" class="right-box__select" popper-class="right-box-select-top prevent-clickoutside" :filterable="true" v-model="editModel.brandId" placeholder="" size="small" id="module-box-input-project">
<el-option :id="'module-project-'+item.id" v-for="item in brandList" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option :id="'module-project-'+item.id" v-for="item in brandList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>

View File

@@ -75,6 +75,7 @@
popper-class="right-box-select-top right-public-box-dropdown-top" popper-class="right-box-select-top right-public-box-dropdown-top"
placeholder="key" placeholder="key"
size="mini" size="mini"
:maxlength="64"
@select="handleSelect" @select="handleSelect"
></el-autocomplete> ></el-autocomplete>
</el-form-item> </el-form-item>

View File

@@ -40,8 +40,8 @@
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item :label='$t("overall.type")' prop="type"> <el-form-item :label='$t("overall.type")' prop="type">
<el-select v-model="editAssetMeta.type" :popper-append-to-body="false" class="right-box__select" popper-class="right-box-select-top prevent-clickoutside" size="small" @change="selectType"> <el-select v-model="editAssetMeta.type" :popper-append-to-body="false" class="right-box__select" popper-class="right-box-select-top prevent-clickoutside right-box-select-width" size="small" @change="selectType">
<el-option v-for="(item, index) in typeData" :key="index" :value="item.value" :disabled="item.disabled"> <el-option v-for="(item, index) in typeData" :key="index" :value="item.value" :disabled="item.disabled" :label="item.name">
<div><i :class="item.icon"></i>&nbsp;&nbsp;<span>{{item.name}}</span></div> <div><i :class="item.icon"></i>&nbsp;&nbsp;<span>{{item.name}}</span></div>
</el-option> </el-option>
</el-select> </el-select>

View File

@@ -1025,7 +1025,7 @@
style="margin-right: 10px" style="margin-right: 10px"
@change="change('valueMapping', index)" @change="change('valueMapping', index)"
filterable filterable
allow-create allow-create :maxlength="64"
default-first-option default-first-option
> >
<el-option <el-option
@@ -1103,7 +1103,7 @@
size="small" size="small"
@change="change" @change="change"
filterable filterable
allow-create allow-create :maxlength="64"
default-first-option default-first-option
> >
<el-option <el-option

View File

@@ -195,7 +195,7 @@
size="small" size="small"
@change="change" @change="change"
filterable filterable
allow-create allow-create :maxlength="64"
default-first-option default-first-option
> >
<el-option <el-option

View File

@@ -776,7 +776,7 @@
style="margin-right: 10px" style="margin-right: 10px"
@change="change('valueMapping', index)" @change="change('valueMapping', index)"
filterable filterable
allow-create allow-create :maxlength="64"
default-first-option default-first-option
> >
<el-option <el-option
@@ -855,7 +855,7 @@
size="small" size="small"
@change="change" @change="change"
filterable filterable
allow-create allow-create :maxlength="64"
default-first-option default-first-option
> >
<el-option <el-option

View File

@@ -33,7 +33,7 @@
:placeholder="editIssue.type" :placeholder="editIssue.type"
style="margin-right: 10px" style="margin-right: 10px"
filterable filterable
allow-create allow-create :maxlength="64"
default-first-option default-first-option
> >
<el-option <el-option

View File

@@ -52,6 +52,7 @@
<!-- <el-input placeholder="" v-model=""></el-input>--> <!-- <el-input placeholder="" v-model=""></el-input>-->
<el-autocomplete <el-autocomplete
id="module-box-input-pattern" id="module-box-input-pattern"
:maxlength="64"
v-model="editModule.endpointNameTmpl" v-model="editModule.endpointNameTmpl"
:fetch-suggestions="querySearch" :fetch-suggestions="querySearch"
:placeholder="$t('overall.placeHolder')" :placeholder="$t('overall.placeHolder')"

View File

@@ -2,7 +2,7 @@
<span style="position: relative"> <span style="position: relative">
<el-select <el-select
id="module-box-logs-pipeline-type" id="module-box-logs-pipeline-type"
class="right-box__select" class="right-box__select right-box__select-pipeline"
placeholder="" placeholder=""
popper-class="right-box-select-top prevent-clickoutside pipeline" popper-class="right-box-select-top prevent-clickoutside pipeline"
size="small" size="small"
@@ -22,7 +22,7 @@
</el-option> </el-option>
</el-option-group> </el-option-group>
</el-select> </el-select>
<i class="nz-icon nz-icon-plus" @click="addPipelineShow" :title="$t('tip.add')"></i> <i class="nz-icon nz-icon-plus" @click="addPipelineShow" :title="$t('tip.add')" style="top: 2px"></i>
</span> </span>
</template> </template>

View File

@@ -16,6 +16,7 @@
id="traffic-setting-asset" id="traffic-setting-asset"
popper-class="no-style-class" popper-class="no-style-class"
size="small" size="small"
:maxlength="64"
v-model="assetSetting.host" v-model="assetSetting.host"
></el-autocomplete> ></el-autocomplete>
<el-popover @hide="popHide" @show="popShow" placement="bottom" popper-class="no-style-class" trigger="hover"> <el-popover @hide="popHide" @show="popShow" placement="bottom" popper-class="no-style-class" trigger="hover">
@@ -177,6 +178,7 @@
:trigger-on-focus="true" :trigger-on-focus="true"
popper-class="no-style-class" popper-class="no-style-class"
size="mini" size="mini"
:maxlength="64"
:highlight-first-item="true" :highlight-first-item="true"
@input="ifIndexInputChange(scope.row[item.prop],scope.row,scope.$index)" @input="ifIndexInputChange(scope.row[item.prop],scope.row,scope.$index)"
></el-autocomplete> ></el-autocomplete>

View File

@@ -182,7 +182,7 @@
v-model="editDialogObj.realValue" v-model="editDialogObj.realValue"
multiple multiple
filterable filterable
allow-create allow-create :maxlength="64"
default-first-option default-first-option
:filter-method="dialogValueListSet" :filter-method="dialogValueListSet"
v-loadMore="{ v-loadMore="{

View File

@@ -501,6 +501,7 @@ export default {
defaultItem: {}, defaultItem: {},
defaultValue: {}, defaultValue: {},
inTransform: {}, inTransform: {},
isNzTransfet: {},
position: { position: {
type: String, type: String,
default: '' default: ''
@@ -1111,7 +1112,16 @@ export default {
// 获取历史记录 数据进行处理以便循环展示 // 获取历史记录 数据进行处理以便循环展示
restructure_historyDate () { restructure_historyDate () {
if (localStorage.getItem('nz-history-' + this.where) !== undefined && localStorage.getItem('nz-history-' + this.where) !== null) { if (localStorage.getItem('nz-history-' + this.where) !== undefined && localStorage.getItem('nz-history-' + this.where) !== null) {
this.history_once = JSON.parse(localStorage.getItem('nz-history-' + this.where)) const arr = JSON.parse(localStorage.getItem('nz-history-' + this.where))
arr.forEach(labelArr => {
labelArr.forEach((item)=>{
const findItem = this.searchMsg.searchLabelList.find(searchLabel => searchLabel.id == item.id)
if(findItem) {
item.name = findItem.name
}
})
})
this.history_once = arr
} }
}, },
clear_search_list (e) { clear_search_list (e) {
@@ -1544,6 +1554,12 @@ export default {
const inputListDom = this.$refs['input-center-box'] const inputListDom = this.$refs['input-center-box']
if (inputListDom) { if (inputListDom) {
this.$nextTick(() => { this.$nextTick(() => {
if (this.isNzTransfet) {
const position = inputListDom.getBoundingClientRect()
this.selectDom.top = position.top + 36 + 'px'
this.selectDom.left = position.left + 'px'
return
}
if (this.inTransform) { if (this.inTransform) {
const position = inputListDom.getBoundingClientRect() const position = inputListDom.getBoundingClientRect()
this.selectDom.top = position.top + 36 + 'px' this.selectDom.top = position.top + 36 + 'px'

View File

@@ -95,7 +95,7 @@
<el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top"> <el-dropdown-menu slot="dropdown" class="right-box-select-top right-public-box-dropdown-top">
<!-- <el-dropdown-item v-has="'asset_label_edit'" :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>--> <!-- <el-dropdown-item v-has="'asset_label_edit'" :command="['edit', scope.row]"><i class="nz-icon nz-icon-edit"></i><span class="operation-dropdown-text">{{$t('overall.edit')}}</span></el-dropdown-item>-->
<el-dropdown-item v-has="'asset_label_edit'" :command="['copy', scope.row]"><i class="nz-icon nz-icon-override"></i><span class="operation-dropdown-text">{{$t('overall.duplicate')}}</span></el-dropdown-item> <el-dropdown-item v-has="'asset_label_edit'" :command="['copy', scope.row]"><i class="nz-icon nz-icon-override"></i><span class="operation-dropdown-text">{{$t('overall.duplicate')}}</span></el-dropdown-item>
<el-dropdown-item v-has="'asset_label_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:false, single:true}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item> <el-dropdown-item v-has="'asset_label_delete'" :command="['delete-rel', scope.row, {forceDeleteShow:true, single:false}]"><i class="nz-icon nz-icon-delete"></i><span class="operation-dropdown-text">{{$t('overall.delete')}}</span></el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>

View File

@@ -37,9 +37,9 @@
</template> </template>
<template slot-scope="scope" :column="item"> <template slot-scope="scope" :column="item">
<span v-if="item.prop==='varType'"> <span v-if="item.prop==='varType'">
<template v-if="scope.row[item.prop] == 0 ">None</template> <template v-if="scope.row[item.prop] == 0 ">{{$t('project.topology.none')}}</template>
<template v-if="scope.row[item.prop] == 1 ">Asset</template> <template v-if="scope.row[item.prop] == 1 ">{{$t('asset.asset')}}</template>
<template v-if="scope.row[item.prop] == 2 ">Endpoint</template> <template v-if="scope.row[item.prop] == 2 ">{{$t('asset.endpoint')}}</template>
</span> </span>
<template v-else-if="item.prop === 'name'"> <template v-else-if="item.prop === 'name'">
<copy :copyData='scope.row[item.prop]' :showInfo='scope.row[item.prop]'> <copy :copyData='scope.row[item.prop]' :showInfo='scope.row[item.prop]'>

View File

@@ -38,15 +38,15 @@
<template v-else-if="item.prop === 'state'"> <template v-else-if="item.prop === 'state'">
<div v-if="scope.row[item.prop] === 1"> <div v-if="scope.row[item.prop] === 1">
<span class="nz-icon nz-icon-circle ip-detail-available"></span> <span class="nz-icon nz-icon-circle ip-detail-available"></span>
{{ 'Available' }} {{ $t('overall.ipam.available') }}
</div> </div>
<div v-else-if="scope.row[item.prop] === 2"> <div v-else-if="scope.row[item.prop] === 2">
<span class="nz-icon nz-icon-circle ip-detail-transient"></span> <span class="nz-icon nz-icon-circle ip-detail-transient"></span>
{{ 'Transient' }} {{ $t('overall.ipam.available') }}
</div> </div>
<div v-else-if="scope.row[item.prop] === 3"> <div v-else-if="scope.row[item.prop] === 3">
<span class="nz-icon nz-icon-circle ip-detail-used"></span> <span class="nz-icon nz-icon-circle ip-detail-used"></span>
{{ 'Used' }} {{ $t('overall.ipam.used') }}
</div> </div>
</template> </template>
<span v-else-if="scope.row[item.prop]" :class="item.prop === 'remark'? 'el-table-remark':''">{{scope.row[item.prop]}}</span> <span v-else-if="scope.row[item.prop]" :class="item.prop === 'remark'? 'el-table-remark':''">{{scope.row[item.prop]}}</span>

View File

@@ -38,7 +38,7 @@
ref="deleteButton" ref="deleteButton"
:single="false" :single="false"
:from="'assetMeta'" :from="'assetMeta'"
:forceDeleteShow="false" :forceDeleteShow="true"
:delete-objs="batchDeleteObjs" :delete-objs="batchDeleteObjs"
@after="getTableData" @after="getTableData"
id="meta-msg-batch-delete" id="meta-msg-batch-delete"

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class="promqlInput"> <div class="promqlInput" :class=" errorMsg || appendMsg ? 'mb10' : ''">
<div class="query-row"> <div class="query-row">
<!--explore页面的样式--> <!--explore页面的样式-->
<template v-if="styleType == 1"> <template v-if="styleType == 1">
@@ -101,10 +101,10 @@
> >
</el-input> </el-input>
<div v-if="errorMsg" class="append-msg error"> <div v-if="errorMsg" class="append-msg error" style="position: absolute">
<span>{{ errorMsg }}</span> <span>{{ errorMsg }}</span>
</div> </div>
<div v-if="appendMsg" class="append-msg error"> <div v-if="appendMsg" class="append-msg error" style="position: absolute">
<span>{{ appendMsg }}</span> <span>{{ appendMsg }}</span>
</div> </div>
</div> </div>
@@ -273,13 +273,13 @@
class="not-fixed-height no-resize" class="not-fixed-height no-resize"
ref="elInput" ref="elInput"
></el-input> ></el-input>
</div>
<div class="append-msg error" v-if="errorMsg"> <div class="append-msg error" v-if="errorMsg">
<span>{{ errorMsg }}</span> <span>{{ errorMsg }}</span>
</div> </div>
<div class="append-msg error" v-if="appendMsg"> <div class="append-msg error" v-if="appendMsg">
<span>{{ appendMsg }}</span> <span>{{ appendMsg }}</span>
</div> </div>
</div>
</el-col> </el-col>
</el-row> </el-row>
</template> </template>

View File

@@ -281,6 +281,9 @@ export default {
event.cancelBubble = true event.cancelBubble = true
} }
this.checked = this.checked.filter(dcId => dcId !== id) this.checked = this.checked.filter(dcId => dcId !== id)
const checkedCount = this.checked.length
this.checkAll = checkedCount === this.dataCenter.length
this.isIndeterminate = checkedCount > 0 && checkedCount < this.dataCenter.length
}, },
// 开始任务 // 开始任务
startTask () { startTask () {

View File

@@ -272,6 +272,9 @@ export default {
event.cancelBubble = true event.cancelBubble = true
} }
this.checked = this.checked.filter(dcId => dcId !== id) this.checked = this.checked.filter(dcId => dcId !== id)
const checkedCount = this.checked.length
this.checkAll = checkedCount === this.dataCenter.length
this.isIndeterminate = checkedCount > 0 && checkedCount < this.dataCenter.length
}, },
// 开始任务 // 开始任务
startTask () { startTask () {