NEZ-1879 feat:dashboard搜索关键字高亮
This commit is contained in:
@@ -107,17 +107,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.panel-select-item:hover{
|
.panel-select-item:hover{
|
||||||
color: #FA901C;
|
color: $--color-primary;
|
||||||
background: $--background-color-base;
|
background: $--background-color-base;
|
||||||
i{
|
i{
|
||||||
color: #FA901C;
|
color: $--color-primary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.panel-select-item.active{
|
.panel-select-item.active{
|
||||||
color: #FA901C;
|
color: $--color-primary;
|
||||||
background: $--background-color-base;
|
background: $--background-color-base;
|
||||||
i{
|
i{
|
||||||
color: #FA901C;
|
color: $--color-primary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -161,4 +161,7 @@
|
|||||||
color:#FF9219 !important;
|
color:#FF9219 !important;
|
||||||
cursor: pointer ;
|
cursor: pointer ;
|
||||||
}
|
}
|
||||||
|
.highlight-keyword{
|
||||||
|
color:$--color-primary;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,10 @@
|
|||||||
<span>{{item.name}}</span>
|
<span>{{item.name}}</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div slot="default">
|
<div class="dashboard-select-tail">
|
||||||
<slot name="tail"></slot>
|
<span class="dashboard-select-add" v-has="'main_add'" :title='$t("dashboard.panel.createPanelTitleSec")' @click="toAdd">
|
||||||
|
<i class="nz-icon nz-icon-create-square"></i> {{$t('overall.addDashboard')}}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="pop-item-wider">
|
<div class="pop-item-wider">
|
||||||
@@ -28,11 +30,11 @@
|
|||||||
check-on-click-node
|
check-on-click-node
|
||||||
check-strictly
|
check-strictly
|
||||||
default-expand-all
|
default-expand-all
|
||||||
highlight-current
|
:highlight-current="true"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
ref="panelTree">
|
ref="panelTree">
|
||||||
<div class="tree--node" slot-scope="{ node, data }">
|
<div class="tree--node" slot-scope="{ node, data }">
|
||||||
<span :title="node.label + ' (' + data.chartNum +' charts)' ">{{ node.label }}</span>
|
<span :title="node.label + ' (' + data.chartNum +' charts)' " v-html="ruleTitle(node.label)"></span>
|
||||||
<el-row class="block-col-2" style="margin-left:10px;margin-right:8px">
|
<el-row class="block-col-2" style="margin-left:10px;margin-right:8px">
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-dropdown v-if="!panelLock" placement="bottom-end" trigger="click" style="margin-right:10px">
|
<el-dropdown v-if="!panelLock" placement="bottom-end" trigger="click" style="margin-right:10px">
|
||||||
@@ -123,6 +125,12 @@ export default {
|
|||||||
this.userId = localStorage.getItem('nz-user-id')
|
this.userId = localStorage.getItem('nz-user-id')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 新增仪表盘
|
||||||
|
toAdd () {
|
||||||
|
this.$parent.toAdd()
|
||||||
|
this.esc()
|
||||||
|
},
|
||||||
|
|
||||||
// 左侧tab点击
|
// 左侧tab点击
|
||||||
tabChange (value) {
|
tabChange (value) {
|
||||||
if (this.currentTab !== value) {
|
if (this.currentTab !== value) {
|
||||||
@@ -141,7 +149,7 @@ export default {
|
|||||||
const flatArr = this.flatten(this.panelData)
|
const flatArr = this.flatten(this.panelData)
|
||||||
this.treeData = flatArr.filter(item => item.createBy == this.userId)
|
this.treeData = flatArr.filter(item => item.createBy == this.userId)
|
||||||
} else if (type === 'browse') { // 最近浏览
|
} else if (type === 'browse') { // 最近浏览
|
||||||
const browseArr = JSON.parse(localStorage.getItem(`nz-${this.userId}-browse`) || '[]')
|
const browseArr = JSON.parse(localStorage.getItem(`nz-view-dashboard-${this.userId}`) || '[]')
|
||||||
const flatArr = this.flatten(this.panelData)
|
const flatArr = this.flatten(this.panelData)
|
||||||
const tempArr = []
|
const tempArr = []
|
||||||
// 比对id获取最近浏览的数据
|
// 比对id获取最近浏览的数据
|
||||||
@@ -215,7 +223,7 @@ export default {
|
|||||||
// 设置最近浏览的面板
|
// 设置最近浏览的面板
|
||||||
setBrowse () {
|
setBrowse () {
|
||||||
// 获取最近浏览id数组
|
// 获取最近浏览id数组
|
||||||
let browseArr = JSON.parse(localStorage.getItem(`nz-${this.userId}-browse`) || '[]')
|
let browseArr = JSON.parse(localStorage.getItem(`nz-view-dashboard-${this.userId}`) || '[]')
|
||||||
const flatArr = this.flatten(this.panelData)
|
const flatArr = this.flatten(this.panelData)
|
||||||
// 若最近浏览的数据已被删除 则截取掉
|
// 若最近浏览的数据已被删除 则截取掉
|
||||||
for (let i = 0; i < browseArr.length; i++) {
|
for (let i = 0; i < browseArr.length; i++) {
|
||||||
@@ -236,7 +244,7 @@ export default {
|
|||||||
browseArr.unshift({ id: this.panel.id })
|
browseArr.unshift({ id: this.panel.id })
|
||||||
// 如果数组长度大于10则截取
|
// 如果数组长度大于10则截取
|
||||||
browseArr.splice(10)
|
browseArr.splice(10)
|
||||||
localStorage.setItem(`nz-${this.userId}-browse`, JSON.stringify(browseArr))
|
localStorage.setItem(`nz-view-dashboard-${this.userId}`, JSON.stringify(browseArr))
|
||||||
},
|
},
|
||||||
// 新增收藏
|
// 新增收藏
|
||||||
addStarred: bus.debounceFn(function (data) {
|
addStarred: bus.debounceFn(function (data) {
|
||||||
@@ -281,6 +289,16 @@ export default {
|
|||||||
// 不区分大小写
|
// 不区分大小写
|
||||||
return data.name.toLowerCase().indexOf(value.toLowerCase()) !== -1
|
return data.name.toLowerCase().indexOf(value.toLowerCase()) !== -1
|
||||||
},
|
},
|
||||||
|
// 高亮搜索的关键字
|
||||||
|
ruleTitle (title) {
|
||||||
|
const reg = new RegExp(this.filterPanel, 'ig')
|
||||||
|
const arr = title.match(reg)
|
||||||
|
let index = -1
|
||||||
|
return title.replace(reg, function () {
|
||||||
|
index++
|
||||||
|
return '<span class="highlight-keyword">' + arr[index] + '</span>'
|
||||||
|
})
|
||||||
|
},
|
||||||
updateWeight (data) {
|
updateWeight (data) {
|
||||||
const toUpdate = []
|
const toUpdate = []
|
||||||
let count = 0
|
let count = 0
|
||||||
|
|||||||
@@ -30,13 +30,6 @@
|
|||||||
<i @click.stop="delStarred(showPanel)" v-if="showPanel.starred" class="nz-icon nz-icon-a-xingzhuang2"></i>
|
<i @click.stop="delStarred(showPanel)" v-if="showPanel.starred" class="nz-icon nz-icon-a-xingzhuang2"></i>
|
||||||
<i @click.stop="addStarred(showPanel)" v-else class="nz-icon nz-icon-xingzhuang"></i>
|
<i @click.stop="addStarred(showPanel)" v-else class="nz-icon nz-icon-xingzhuang"></i>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:tail>
|
|
||||||
<div class="dashboard-select-tail">
|
|
||||||
<span class="dashboard-select-add" v-has="'main_add'" :title='$t("dashboard.panel.createPanelTitleSec")' @click="toAdd">
|
|
||||||
<i class="nz-icon nz-icon-create-square"></i> {{$t('overall.addDashboard')}}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</select-dashboard>
|
</select-dashboard>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user