anchor iview 悬浮_iview 表头table 悬浮提示tooltip ;iview 单元格悬浮提示 ;iview table header cell tooltip;...

一、批量悬浮提示

二、提示数据举例

三、核心方法:

//单元格提示

function renderCell(h, params) {

//console.log('h', h)

//console.log('params', params)

var tipsContent = getTips(params.column.key, params.row[params.column.key])

//console.log('tipsContent', tipsContent)

var values = formatTwoDecimalPlaces(params.row[params.column.key])

return h('tooltip',

{

props: {

placement: 'top'

}

},

[

values,//原始数据

h('div',

{

slot: 'content',

style: { whiteSpace: 'normal', wordBreak: 'break-all' }

},

tipsContent //提示语句

)

]

)

}

//表头提示

function renderHeader1(h, params) {

// console.log('h', h)

// console.log('params', params)

return h('tooltip',

{

props: {

transfer: true,

placement: 'bottom-end'//下右

}

},

[

//h('span', '优势度'),

h('span', params.column.title),

h('div',

{

'class': {

'custom-tooltip-content': true

},

slot: 'content'

},

[

h('p', '物种所占优势程度,由物种密度和采样点出现的频次计算所得。')

]

)

]

)

}

//简单使用举例

{

title: '优势度',

key: 'DominanceDegree1',

minWidth: 60,

align: "center",

render: renderCell

renderHeader: renderHeader1,

},

renderHeader1方法 加以改造也可以成为批量标题提示方法。

四、完整代码

@{

ViewBag.Title = "";

Layout = "~/Views/Shared/_LayoutNotFooter.cshtml";

}

.table-header-titleThree {

color: #333;

font-style: normal;

font-weight: bolder;

font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",

"Microsoft YaHei", "微软雅黑", Arial, sans-serif;

font-size: 20px;

text-align: center;

vertical-align: auto;

line-height: 1.5;

width: auto;

height: auto;

margin-bottom: 0px;

}

/*custom-tooltip 宽度*/

.ivu-tooltip-inner {

max-width: 600px;

}

.custom-tooltip-content {

white-space: normal;

width: 500px;

}

.custom-tooltip-content p {

text-indent: 2em;

font-size: 14px;

text-align: justify;

}

/*调整table cell间隔和行高*/

.ivu-table-cell {

padding-left: 1px;

padding-right: 1px;

}

.ivu-table-small td {

height: 36px;

}

/*echarts 数据视图 单位样式*/

.echart-table-uint{

font-size: 12px;

color: #515a6e;

float: right;

line-height: 23px;

padding: 4px 0px;

}

/*echarts 数据视图 表格样式*/

.echart-table{

width: 100%;

text-align: center;

border: 1px solid #dddddd;

border-collapse: collapse;

border-spacing: 0;

font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;

font-size: 12px;

color: #515a6e;

}

.echart-table tr td{

padding: 4px 0;

border: 1px solid #dddddd;

line-height: 23px;

}

.echart-table tr:nth-child(odd) td{

background-color: #FAFAFA;

}

filterable

placeholder="请选择批次"

style="width:150px;">

v-bind:key="item.value"

v-bind:label="item.text"

v-bind:value="item.value" />

v-bind:key="item.id"

v-bind:label="item.name"

v-bind:value="item.id" />

{ { getNameByID(listQuery.riverOrReservoirID,waterList)}}深圳市水生态健康综合评价

{ { getNameByID(listQuery.riverOrReservoirID,waterList)}}深圳市水生态健康评价分项指标表

{ { getNameByID(listQuery.riverOrReservoirID,waterList)}}深圳市水生态健康评价分项指标箱型图

var nameList = ['VelocityOrDepthCombinationCharacteristics', 'WaterQuantityConditions', 'BottomQuality', 'DegreeRiverBend', 'ChangeRiverBend', 'StabilityOfRiverOrLakeBank', 'HabitatComplexity', 'WidthOfRiparianBufferZone', 'HabitatTypeOfRiparianBufferZone', 'VegetationDiversityOfRiparianZone', 'RiparianZoneUseType', 'DissolvedOxygen', 'TotalNitrogen', 'NH3N', 'TP', 'AlgaShannonWiener', 'AlgaBergerParker', 'ZoobenthosShannonWeiner', 'EPT', 'OligochaetaPercent', 'BiologicalInvasion', 'InterferenceIntensityOfRiverBody']

var chineseNameList = ['流速/水深结合特性', '水量状况', '底质', '河道弯曲程度', '河道改变程度', '河岸稳定性', '栖境复杂性', '河岸带缓冲区宽度', '河岸带缓冲区生境类型', '河岸带植被多样性', '河岸带土壤利用类型', '溶解氧(mg/L)', '总氮(mg/L)', 'NH3-N(mg/L)', 'TP(mg/L)', '藻类生物多样性指数', '藻类优势度指数', '大型底栖动物生物多样性指数', 'EPT分类单元数', '寡毛类比例', '生物入侵干扰', '河体干扰强度']

var habitatScoreArr = [];

function getTableColumns() {

var arr = [];

var obj0= {

title: '名称',

key: 'PointBatchIDLeftName',

minWidth: 70,

align: "center",

}

arr.push(obj0);

for (let j = 0; j < nameList.length; j++) {

let obj1 ={

title: chineseNameList[j],

key: nameList[j],

minWidth: chineseNameList[j].length*17,

align: "center",

render: renderCell

//render: function (h, params) {

// return formatTwoDecimalPlaces(params.row[nameList[j]]);

//},

}

arr.push(obj1);

}

/*

, 'RiverSum', 'RiverGrade'

,'综合评分','等级'

*/

var obj2 = {

title: '综合评分',

key: 'RiverSum',

minWidth: 70,

align: "center",

render: function (h, params) {

return formatTwoDecimalPlaces(params.row.RiverSum);

},

}

var obj3 = {

title: '等级',

key: 'RiverGrade',

minWidth: 60,

align: "center",

}

arr.push(obj2);

arr.push(obj3);

//console.log('arr', arr)

return arr;

}

var vm = new Vue({

template: "#viewTemplate",

el: '#app',

data: function () {

return {

tableHeight2:500,

waterList: [],

okloading: false,

total: null,

locationTypeArr: [{ text: '河流', value: 0 }, { text: '水库', value: 1 }],

sampleBatchArr: [{ text: '2019年夏季', value: 1 }],

list: [],

tableKey: 0,

listLoading: true,

listQuery: {

sampleBatch: 1,

riverOrReservoirID: null,

filters: []

},

filters: [],

dictionaryArr: [],

riverArr: [],

reservoirArr: [],

chart: null,

chartBar: null,

chartPie: null,

chartindexBarID: null,

tableHeight: '500px',

riverName: null,

tableColumns: []

}

},

watch: {

'listQuery.algaDataType'(newVal, oldVal) {

// console.log('newtypeId',newVal)

this.listQuery.riverOrReservoirID = null

// this.listQuery.page = 1

this.getData()

},

'listQuery.sampleBatch'(newVal, oldVal) {

// console.log('newtypeId',newVal)

// this.listQuery.page = 1

this.getData()

},

'listQuery.riverOrReservoirID'(newVal, oldVal) {

// console.log('newtypeId',newVal)

// this.listQuery.page = 1

this.getData()

}

},

created: function () {

this.getHabitatScoreAllData();

this.tableColumns = getTableColumns();

this.getData();

this.getWaterNameList();

},

mounted: function () {

this.$nextTick(() => {

const that = this

// //console.log('that',that);

window.addEventListener('resize', function () {

const chart = that.chart

const chartBar = that.chartBar

const chartPie = that.chartPie

const chartindexBarID = that.chartindexBarID

// console.log('chartBar', chartBar)

if (chart) {

chart.resize()

}

if (chartBar) {

chartBar.resize()

}

if (chartPie) {

chartPie.resize()

}

if (chartindexBarID) {

chartindexBarID.resize()

}

})

})

},

methods: {

getNameByID(id, array) {

let name = null

for (let index = 0; index < array.length; index++) {

const element = array[index]

if (element.id == id) {

name = element.name

}

}

return name

},

getWaterNameList: function () {

var that = this;

var url = '@Url.Action("WaterNameList", "Evaluate")';

$.ajax({

url: url,

data: { algaDataType:this.listQuery.algaDataType, sampleBatch: this.listQuery.sampleBatch },

type: "get",

dataType: "json",

success: function (result) {

//console.log('WaterNameList', result)

if (result != null && result.success > 0) {

that.waterList = result.data;

}

}

})

},

getHabitatScoreAllData:function() {

var url = '@Url.Action("GetHabitatScoreAllData", "Evaluate")';

$.ajax({

url: url,

// data: { algaDataType: this.listQuery.algaDataType, sampleBatch: this.listQuery.sampleBatch },

type: "get",

dataType: "json",

success: function (result) {

console.log('GetHabitatScoreAllData', result)

if (result != null && result.success > 0) {

habitatScoreArr = result.data;

}

}

})

},

getData: function () {

var that = this;

that.listLoading = true

//const filters = []

//for (const i in that.filters) {

// if (that.filters[i].value && that.filters[i].value.length > 0) {

// filters.push({ 'field': that.filters[i].row, 'op': that.filters[i].op, 'value': that.filters[i].value })

// }

//}

//if (filters.length > 0) {

// that.listQuery.filters = JSON.stringify(filters)

//} else {

// that.listQuery.filters = null

//}

//console.log('that.listQuery', that.listQuery)

if (that.listQuery.riverOrReservoirID != null && that.listQuery.riverOrReservoirID != '') {

var url = '@Url.Action("GetAllData", "Evaluate")';

$.ajax({

url: url,

data: that.listQuery,

type: "get",

dataType: "json",

success: function (result) {

console.log('GetAllData', result);

if (result != null && result.success > 0) {

for (var i = 0; i < result.data.length; i++) {

result.data[i].RiverGrade = translateRiverGrade(result.data[i].RiverSum);

}

//console.log("result.data", result.data);

that.initBoxplot(result.data)

that.initBar(result.data)

that.initPie(result.data)

that.list = result.data

that.listLoading = false

that.tableHeight = '400px'

}

},

error: function (result2) {

console.log("GetList error", result2);

}

})

}

// 柱状图 数据受 this.listQuery.riverOrReservoirID影响

if (that.listQuery.riverOrReservoirID == null || that.listQuery.riverOrReservoirID == '') {

var url2 = '@Url.Action("GetAllAverageData", "Evaluate")';

$.ajax({

url: url2,

data: that.listQuery,

type: "get",

dataType: "json",

success: function (result) {

console.log('GetAllAverageData', result);

if (result != null && result.success > 0) {

for (var i = 0; i < result.data.length; i++) {

result.data[i].RiverGrade = translateRiverGrade(result.data[i].RiverSum);

}

that.initBoxplot(result.data)

that.initBar(result.data)

that.initPie(result.data)

that.list = result.data

//that.total = result.data

that.listLoading = false

that.tableHeight = '300px'

}

},

error: function (result2) {

console.log("GetAllAverageData error", result2);

}

})

}

},

initBar(dataPms) {

const dataTemp = dataPms

// console.log('initBar_dataPms', dataPms)

if (this.chartBar) {

this.chartBar.dispose()

}

const myChart = echarts.init(document.getElementById('barID'))

if (dataTemp) {

// var legendName=['重度干扰', '中度干扰', '轻度干扰', '轻微干扰', '无干扰']

var seriesData = []

var titlePart = ''

var nameSum = ''

var name = ''

var xName = 'PointBatchIDLeftName'

nameSum = 'RiverSum'

titlePart = '河流'

//if (this.listQuery.riverOrReservoirID == null || this.listQuery.riverOrReservoirID == '') {

// xName = 'WaterName'

//} else {

// xName='PointName'

//}

var titleText = ''

// if (this.listQuery.riverOrReservoirID != null) {

// titlePart = this.getRiverArrNameByID(this.listQuery.riverOrReservoirID)

// }

// titleText = titlePart + '生境综合评价'

// console.log('bar-seriesData',seriesData);

// 指定图表的配置项和数据

const option = {

title: {

left: 'center',

text: titleText

},

tooltip: {

trigger: 'axis'

},

xAxis: {

data: dataTemp.map(function(item) {

return item[xName]

}),

axisLabel: {

interval: 0, // 坐标轴刻度标签的显示间隔.设置成 0 强制显示所有标签。设置为 1,隔一个标签显示一个标签。

rotate: 45, // 倾斜度 -90 至 90 默认为0

textStyle: {

fontWeight: 'bold', // 加粗

color: '#000000' // 黑色

}

}

},

yAxis: {

splitLine: {

show: false

}

},

toolbox: {

right: '20px',

// left: 'right',

feature: {

dataView: {

show: true,

title: '数据视图',

lang: ['

' + titleText + '
', '关闭'],

readOnly: true, // 点击刷新按钮会导致第二列数据消失,此处设置只读是为了隐藏刷新按钮。

optionToContent: function(opt) {

// console.log('bar-opt', opt)

return ToolboxDataView(opt)

}

},

saveAsImage: { show: true }

}

},

// dataZoom: [{

// startValue: '2014-06-01'

// }, {

// type: 'inside'

// }],

visualMap: {

top: 30,

// type:'piecewise',

// splitNumber:6,

// calculable:true,

orient: 'horizontal', // 方向:水平

left: 'center',

// itemWidth:10,

// itemHeight:5,

/* https://www.echartsjs.com/zh/option.html#visualMap-piecewise.pieces

lt(小于,little than),gt(大于,greater than),lte(小于等于 lettle than or equals),gte(大于等于,greater than or equals)来表达边界:

*/

pieces: [

// {

// gte: 0,

// lt: 60,

// label: '重度干扰',

// color: '#7e0023'

//},

{

gt: 0,

lte: 40,

label: '极差',

color: '#cc0033'

},

{

gt: 40,

lte: 60,

label: '差',

color: '#ff9933'

}, {

gt: 60,

lte: 80,

label: '亚健康',

color: '#ffde33'

}, {

gt: 80,

lte: 100,

label: '健康',

color: '#096'

}],

outOfRange: {

color: '#999'

}

},

series: {

name: '得分',

type: 'bar',

data: dataTemp.map(function(item) {

return formatTwoDecimalPlaces(item[nameSum]);

}),

markLine: {

silent: true,

data: [{

yAxis: 40

}, {

yAxis: 60

}, {

yAxis: 80

}, {

yAxis: 100

}]

}

}

}

// console.log('bar-option',option)

// 使用刚指定的配置项和数据显示图表。

myChart.setOption(option)

this.chartBar = myChart

} else {

myChart.clear()

}

},

initBoxplot(dataPms) {

//console.log('initBoxplot', dataPms)

const dataTemp = dataPms

if (this.chart) {

this.chart.dispose()

}

const myChart = echarts.init(document.getElementById('BoxplotID'))

if (dataTemp) {

// 动态批量创建局部变量

var objData = {}

for (let k = 0; k < nameList.length; k++) {

objData[nameList[k]] = []

}

for (let i = 0; i < dataTemp.length; i++) {

for (let j = 0; j < nameList.length; j++) {

objData[nameList[j]].push(dataTemp[i][nameList[j]])

}

}

// 对象赋值给数组

const dataAll = []

for (let k = 0; k < nameList.length; k++) {

dataAll.push(objData[nameList[k]])

}

// console.log('objData',objData)

//console.log('dataAll',dataAll)

// 指定图表的配置项和数据

var data = echarts.dataTool.prepareBoxplotData(dataAll)

var titlePart = ''

let nameSum = ''

let nameGrade = ''

nameSum = 'RiverSum'

titlePart = ''

nameGrade = 'RiverGrade'

var titleText = ''

// if (this.listQuery.riverOrReservoirID != null) {

// titlePart = this.getRiverArrNameByID(this.listQuery.riverOrReservoirID)

// }

// titlePart + '生境评价分项指标箱型图'

// console.log('data',data)

var option = {

// title: [

// {

// text: titleText,

// left: 'center'

// }

// ],

toolbox: {

right: '20px',

// left: 'right',

feature: {

// dataView: {

// show: true,

// title: '数据视图',

// lang:['

'+titleText+'
','关闭'],

// readOnly: true, //点击刷新按钮会导致第二列数据消失,此处设置只读是为了隐藏刷新按钮。

// optionToContent: function (opt) {

// //console.log('Boxplot-opt',opt)

// return ToolboxDataView(opt);

// }

// },

saveAsImage: { show: true }

}

},

tooltip: {

trigger: 'item',

axisPointer: {

type: 'shadow'

}

},

grid: {

backgroundColor: 'rgb(235, 235, 235)',

show: true,

left: '3%',

right: '4%',

containLabel: true,

bottom: '3%'

},

xAxis: {

type: 'category',

data: chineseNameList,

boundaryGap: true,

nameGap: 30,

splitArea: {

show: false

},

splitLine: {

show: false

},

axisLabel: {

interval: 0, // 坐标轴刻度标签的显示间隔.设置成 0 强制显示所有标签。设置为 1,隔一个标签显示一个标签。

rotate: 45, // 倾斜度 -90 至 90 默认为0

textStyle: {

fontWeight: 'bold', // 加粗

color: '#000000' // 黑色

}

}

},

yAxis: {

type: 'value',

name: ''

// splitArea: {

// show: true

// }

},

series: [

{

name: 'boxplot',

type: 'boxplot',

data: data.boxData,

tooltip: {

formatter: function(param) {

// // [min, Q1, median (or Q2), Q3, max]

return [

'' + param.name + ': ',

'上边界: ' + formatTwoDecimalPlaces(param.data[5]),

'上四分位数: ' + formatTwoDecimalPlaces(param.data[4]),

'中位数: ' + formatTwoDecimalPlaces(param.data[3]),

'下四分位数: ' + formatTwoDecimalPlaces(param.data[2]),

'下边界: ' + formatTwoDecimalPlaces(param.data[1])

].join('
')

}

}

},

{

name: '异常值',

type: 'scatter',

data: data.outliers

}

]

}

// 使用刚指定的配置项和数据显示图表。

myChart.setOption(option)

this.chart = myChart

} else {

myChart.clear()

}

},

initPie(dataPms) {

const dataTemp = dataPms

if (this.chartPie) {

this.chartPie.dispose()

}

const myChart = echarts.init(document.getElementById('pieID'))

if (dataTemp) {

const topNum = 30

const nameList = []

const data1 = []

var seriesData = []

var titlePart = ''

let nameSum = 'RiverSum'

let nameGrade = 'RiverGrade'

var titleText = ''

const nameObj = { b: '极差', c: '差', d: '亚健康', e: '健康' }

var rowLast = { b: 0, c: 0, d: 0, e: 0 }

var colorArr = [ '#cc0033', '#ff9933', '#ffde33', '#096']

for (var m = 0; m < dataTemp.length; m++) {

switch (dataTemp[m][nameGrade]) {

case '极差':

rowLast.b++

break

case '差':

rowLast.c++

break

case '亚健康':

rowLast.d++

break

case '健康':

rowLast.e++

break

default:

break

}

}

// console.log('pie-rowLast', rowLast)

for (var c in rowLast) {

nameList.push(nameObj[c])

const objC = { value: rowLast[c], name: nameObj[c] }//, color:colorLast[c]

data1.push(objC)

}

// console.log('pie-data1', data1)

var option = {

color: colorArr,

title: {

text: titleText,

x: 'center'

},

toolbox: {

right: '20px',

// left: 'right',

feature: {

// dataView: {

// show: true,

// title: '数据视图',

// lang:['

'+titleText+'
','关闭'],

// readOnly: true, //点击刷新按钮会导致第二列数据消失,此处设置只读是为了隐藏刷新按钮。

// optionToContent: function (opt) {

// //console.log('bar-opt',opt)

// return ToolboxDataView(opt);

// }

// },

saveAsImage: { show: true }

}

},

tooltip: {

trigger: 'item',

formatter: function(data) {

return (data.seriesName + '
' + data.name + ' : ' + formatTwoDecimalPlaces(data.value) + '个' + ' (' + formatTwoDecimalPlaces(data.percent) + '%' + ')')//

}

},

legend: {

top: topNum,

// orient: 'vertical',

left: '5px',

data: nameList

},

series: [

{

name: '类型占比',

type: 'pie',

radius: '55%',

// center: ['65%', '30%'],

center: ['50%', '60%'],

data: data1,

itemStyle: {

emphasis: {

shadowBlur: 10,

shadowOffsetX: 0,

shadowColor: 'rgba(0, 0, 0, 0.5)'

}

},

label: {

normal: {

show: false

}

}

}

]

}

// console.log('pie-option',option)

// 使用刚指定的配置项和数据显示图表。

myChart.setOption(option)

this.chartPie = myChart

} else {

myChart.clear()

}

}

}

});

/************** vue外部方法**************************************/

function getTips(name, value) {

var data = habitatScoreArr;

var value2 = '';

var arr1 = [];

for (let i = 0; i < data.length; i++) {

if (data[i].Abridge == name) {

arr1.push(data[i]);

//if (value >= data[i].Score) {

// value2 = data[i].EvaluateStandard

//}

}

}

//console.log('arr1', arr1);

for (let j = 0; j < arr1.length; j++) {

if (j < arr1.length - 1) {

if (value == arr1[j].Score || value > arr1[j].Score) {

value2 = arr1[j].EvaluateStandard;

break;

}

//data是从大到小排序的,当前值value>=大值是,就必须break跳出for循环,否则value也一定>=后面的小值;

//if (arr1[j].HabitatScoreType == 5) {

// console.log('arr1', arr1)

// if (value == arr1[j].Score ) {

// console.log(arr1[j].DValue, arr1[j].Score, value, value2)

// }

// if (value > arr1[j].Score) {

// console.log(111,arr1[j].DValue, arr1[j].Score, value, value2)

// }

//}

/*

河道改变程度 1.5 1.5 渠道化出现较少,通常在桥墩周围处出现渠道化,对水生生物影响小

111 "河道改变程度" 1 1.5 "渠道化比较广泛,在两岸有筑堤或桥梁支柱出现,对水生生物有影响

*/

} else if (arr1.length - 1 == j && value2 == '') {

value2 = arr1[j].EvaluateStandard;

}

}

//console.log(arr1[j].DValue, arr1[j].Score, value, value2)

return value2

}

function renderCell(h, params) {

//console.log('h', h)

//console.log('params', params)

var tipsContent = getTips(params.column.key, params.row[params.column.key])

//console.log('tipsContent', tipsContent)

var values = formatTwoDecimalPlaces(params.row[params.column.key])

return h('tooltip',

{

props: {

placement: 'top'

}

},

[

values,

h('div',

{

slot: 'content',

style: { whiteSpace: 'normal', wordBreak: 'break-all' }

},

tipsContent

)

]

)

}

function renderHeader1(h, params) {

// console.log('h', h)

// console.log('params', params)

return h('tooltip',

{

props: {

transfer: true,

placement: 'bottom-end'//下右

}

},

[

//h('span', '优势度'),

h('span', params.column.title),

h('div',

{

'class': {

'custom-tooltip-content': true

},

slot: 'content'

},

[

h('p', '物种所占优势程度,由物种密度和采样点出现的频次计算所得。')

]

)

]

)

}

function ToolboxDataView(opt) {

var unit = ''

if (opt.yAxis[0].name != undefined && opt.yAxis[0].name != null && opt.yAxis[0].name != '') {

unit = '

' + opt.yAxis[0].name + '
'

}

var axisData = opt.xAxis[0].data // 坐标数据

var series = opt.series // 折线图数据

var tdHeads = '

名称' // 表头第一列

var tdBodys = '' // 表数据

// 组装表头

for (var i = 0; i < series.length; i++) {

tdHeads += '

' + series[i].name + ''

}

var table = '

// 组装表数据

// 行数

for (var i = 0; i < axisData.length; i++) {

// 列数

for (var j = 0; j < series.length; j++) {

var temp = series[j].data[i]

if (temp != null && temp != undefined) {

tdBodys += '

' + formatTwoDecimalPlaces(temp) + ''

} else {

tdBodys += '

'

}

}

table += '

' + axisData[i] + '' + tdBodys + ''

tdBodys = ''

}

table += '

'

return unit + table

}

function TooltipFormatter(data) {

var seriesNames = []

var formateStrings = []

var formateString = ''

if (data.length > 0) {

formateStrings.push(data[0].axisValue)

for (var i in data) {

var item = data[i]

seriesNames.push(item.seriesName)

if (item.value != undefined) {

formateStrings.push(item.marker + item.seriesName + ': ' + formatTwoDecimalPlaces(item.value))

}

}

formateString = formateStrings.join('
')

return formateString

}

}

function translateRiverGrade(a) {

var value = "";

if (a <= 40) {

value = "极差"

}else if(a<=60){

value = "差";

}else if(a<=80){

value = "亚健康";

} else if (a <= 100) {

value = "健康";

}

//console.log("a", a);

//console.log("value", value);

return value;

}

转载来源:https://blog.csdn.net/qq_32678401/article/details/97802414

iview--table表格title提示和气泡提示

文本不换行,超出显示省略号,两种提示方式,title提示和气泡提示

气泡提示不足:当内容没超过一行,也会出现气泡提示。觉得不如Element-UI的table组件好用。

mounted() {

this.initTableColumn('tableColumn')

},

methods: {

initTableColumn(columnName) {

// 提示一:title提示

for (let i = 0; i < this[columnName].length; i++) {

if (!this[columnName][i].render) {

this.$set(this[columnName][i], 'ellipsis', true)

this.$set(this[columnName][i], 'render', (h, params) => {

return h('span', {attrs: {title: params.row[params.column.key]}}, params.row[params.column.key])

})

}

}

// title提示

for (let i = 0; i < this[columnName].length; i++) {

if (!this[columnName][i].render) {

this.$set(this[columnName][i], 'render', (h, params) => {

return h('div', [

h('span', {

style: {

display: 'inline-block',

width: '100%',

overflow: 'hidden',

textOverflow: 'ellipsis',

whiteSpace: 'nowrap'

},

domProps: {

title: params.row[params.column.key]

}

}, params.row[params.column.key])

])

})

}

}

// 提示二:气泡提示

for (let i = 0; i < this[columnName].length; i++) {

if (!this[columnName][i].render) {

this.$set(this[columnName][i], 'ellipsis', true)

this.$set(this[columnName][i], 'render', (h, params) => {

return h('Tooltip', {

props: { placement: 'top' }

}, [

params.row[params.column.key],

h('span', { slot: 'content', style: { whiteSpace: 'normal', wordBreak: 'break-all' } }, params.row[params.column.key])

])

})

}

}

}

}

你可能感兴趣的:(anchor,iview,悬浮)