Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
E
ec-report-refactor
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lihuizhen
ec-report-refactor
Commits
2a5ad7e6
Commit
2a5ad7e6
authored
May 26, 2022
by
leon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: bar line and pie add tooltip formatter
parent
05399770
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
264 additions
and
143 deletions
+264
-143
HorizontalBar.vue
components/HorizontalBar/HorizontalBar.vue
+165
-122
LineMixBar.vue
components/LineMixBar/LineMixBar.vue
+23
-4
NormalBar.vue
components/NormalBar/NormalBar.vue
+23
-4
NormalLine.vue
components/NormalLine/NormalLine.vue
+23
-4
NormalPie.vue
components/NormalPie/NormalPie.vue
+30
-9
No files found.
components/HorizontalBar/HorizontalBar.vue
View file @
2a5ad7e6
...
@@ -6,7 +6,9 @@
...
@@ -6,7 +6,9 @@
<
script
>
<
script
>
import
uniEcCanvas
from
'@/uni-ec-canvas/uni-ec-canvas'
import
uniEcCanvas
from
'@/uni-ec-canvas/uni-ec-canvas'
import
echartElementData
from
'@/mixins/echartElementData.js'
import
echartElementData
from
'@/mixins/echartElementData.js'
import
{
DATAZOOM_DEFAULT
}
from
'@/mixins/zoomConfig.js'
import
{
DATAZOOM_DEFAULT
}
from
'@/mixins/zoomConfig.js'
let
chart
=
null
let
chart
=
null
let
lastCount
=
0
// 记录datazoom最后一次滑动的数值数量
let
lastCount
=
0
// 记录datazoom最后一次滑动的数值数量
...
@@ -47,26 +49,31 @@
...
@@ -47,26 +49,31 @@
}
}
}
=
this
.
elementData
}
=
this
.
elementData
const
that
=
this
const
that
=
this
that
.
ec
.
option
=
{
that
.
ec
.
option
=
{
...
that
.
elementInfo
.
option
,
...
that
.
elementInfo
.
option
,
yAxis
:
{
yAxis
:
{
...
that
.
elementInfo
.
option
.
yAxis
,
...
that
.
elementInfo
.
option
.
yAxis
,
data
:
categories
data
:
categories
},
},
tooltip
:
{
tooltip
:
that
.
dealTooltip
(
that
.
elementInfo
.
option
.
tooltip
),
...
that
.
elementInfo
.
option
.
tooltip
,
dataZoom
:
that
.
elementInfo
.
dataZoom
&&
that
.
elementInfo
.
dataZoom
.
show
?
[{
trigger
:
"axis"
...
that
.
elementInfo
.
dataZoom
,
},
...
DATAZOOM_DEFAULT
dataZoom
:
that
.
elementInfo
.
dataZoom
&&
that
.
elementInfo
.
dataZoom
.
show
?
[{...
that
.
elementInfo
.
dataZoom
,...
DATAZOOM_DEFAULT
}]
:
[{
show
:
false
}],
}]
:
[{
show
:
false
}],
series
:
that
.
dealSeriesData
(
series
)
series
:
that
.
dealSeriesData
(
series
)
}
}
chart
.
setOption
(
that
.
ec
.
option
)
chart
.
setOption
(
that
.
ec
.
option
)
chart
.
on
(
'click'
,
event
=>
{
chart
.
on
(
'click'
,
event
=>
{
const
{
preview
,
images
}
=
that
.
elementData
.
dataList
const
{
preview
,
images
}
=
that
.
elementData
.
dataList
var
urls
=
[]
var
urls
=
[]
var
caches
=
uni
.
getStorageSync
(
'cacheImages'
)
var
caches
=
uni
.
getStorageSync
(
'cacheImages'
)
images
.
forEach
(
url
=>
{
images
.
forEach
(
url
=>
{
if
(
caches
.
hasOwnProperty
(
url
))
{
if
(
caches
.
hasOwnProperty
(
url
))
{
urls
.
push
(
caches
[
url
])
urls
.
push
(
caches
[
url
])
}
else
{
}
else
{
urls
.
push
(
url
)
urls
.
push
(
url
)
...
@@ -93,14 +100,19 @@
...
@@ -93,14 +100,19 @@
initChart
()
{
initChart
()
{
// 等待子组件完全挂载完成---chart初始化完成
// 等待子组件完全挂载完成---chart初始化完成
this
.
$nextTick
().
then
(()
=>
{
this
.
$nextTick
().
then
(()
=>
{
const
{
categories
,
series
,
preview
,
images
}
=
this
.
elementData
.
dataList
const
{
if
(
this
.
labelShow
)
{
categories
,
series
,
preview
,
images
}
=
this
.
elementData
.
dataList
if
(
this
.
labelShow
)
{
// 处理初始状态时,数值显示的数量是否超过了配置的最大值
// 处理初始状态时,数值显示的数量是否超过了配置的最大值
let
count
=
categories
.
length
let
count
=
categories
.
length
if
(
this
.
elementInfo
.
dataZoom
&&
this
.
elementInfo
.
dataZoom
.
show
)
{
if
(
this
.
elementInfo
.
dataZoom
&&
this
.
elementInfo
.
dataZoom
.
show
)
{
count
=
count
*
(
this
.
elementInfo
.
dataZoom
.
end
-
this
.
elementInfo
.
dataZoom
.
start
)
/
100
count
=
count
*
(
this
.
elementInfo
.
dataZoom
.
end
-
this
.
elementInfo
.
dataZoom
.
start
)
/
100
}
}
if
(
count
>
this
.
elementInfo
.
option
.
dataset
.
maxCount
)
{
if
(
count
>
this
.
elementInfo
.
option
.
dataset
.
maxCount
)
{
this
.
elementInfo
.
option
.
dataset
.
show
=
false
this
.
elementInfo
.
option
.
dataset
.
show
=
false
}
}
lastCount
=
count
lastCount
=
count
...
@@ -109,23 +121,54 @@
...
@@ -109,23 +121,54 @@
const
dealSeries
=
this
.
dealSeriesData
(
series
)
const
dealSeries
=
this
.
dealSeriesData
(
series
)
this
.
$set
(
this
.
ec
.
option
,
'yAxis.data'
,
categories
)
this
.
$set
(
this
.
ec
.
option
,
'yAxis.data'
,
categories
)
this
.
$set
(
this
.
ec
.
option
,
'series'
,
dealSeries
)
this
.
$set
(
this
.
ec
.
option
,
'series'
,
dealSeries
)
this
.
$set
(
this
.
ec
.
option
,
'dataZoom'
,
this
.
elementInfo
.
dataZoom
&&
this
.
elementInfo
.
dataZoom
.
show
?
[{...
this
.
elementInfo
.
dataZoom
,...
DATAZOOM_DEFAULT
}]
:
[{
show
:
false
}])
this
.
$set
(
this
.
ec
.
option
,
'dataZoom'
,
this
.
elementInfo
.
dataZoom
&&
this
.
elementInfo
.
dataZoom
if
(
chart
)
{
.
show
?
[{
...
this
.
elementInfo
.
dataZoom
,
...
DATAZOOM_DEFAULT
}]
:
[{
show
:
false
}])
if
(
chart
)
{
const
option
=
chart
.
getOption
()
const
option
=
chart
.
getOption
()
option
.
series
=
dealSeries
option
.
series
=
dealSeries
// 重新setOption,使得设置的formatter生效
// 重新setOption,使得设置的formatter生效
chart
.
setOption
(
option
)
chart
.
setOption
(
option
)
if
(
Number
(
dealSeries
[
0
].
barWidth
))
{
if
(
Number
(
dealSeries
[
0
].
barWidth
))
{
const
height
=
categories
.
length
*
(
Number
(
dealSeries
[
0
].
barWidth
)
+
5
)
+
25
const
height
=
categories
.
length
*
(
Number
(
dealSeries
[
0
].
barWidth
)
+
5
)
+
25
uni
.
$emit
(
'handleUpdateHeight'
,
height
)
uni
.
$emit
(
'handleUpdateHeight'
,
height
)
chart
.
resize
({
width
:
chart
.
getWidth
(),
height
})
chart
.
resize
({
width
:
chart
.
getWidth
(),
height
})
}
}
}
}
if
(
preview
)
{
if
(
preview
)
{
this
.
cacheImages
(
images
)
this
.
cacheImages
(
images
)
}
}
})
})
},
},
/**
*
* @param tooltip 表单的tooltip设置
*/
dealTooltip
(
tooltip
)
{
if
(
!
tooltip
)
{
return
}
if
(
tooltip
.
formatter
&&
tooltip
.
formatter
.
length
)
{
return
{
...
tooltip
,
formatter
:
(
val
)
=>
{
return
this
.
$u
.
common
.
converFunction
(
tooltip
.
formatter
,
val
)
},
trigger
:
"axis"
}
}
return
{
...
tooltip
,
trigger
:
"axis"
}
},
/**
/**
* 处理数据
* 处理数据
*/
*/
...
@@ -156,16 +199,16 @@
...
@@ -156,16 +199,16 @@
*/
*/
cacheImages
(
images
)
{
cacheImages
(
images
)
{
var
caches
=
uni
.
getStorageSync
(
'cacheImages'
)
var
caches
=
uni
.
getStorageSync
(
'cacheImages'
)
if
(
!
caches
)
{
if
(
!
caches
)
{
caches
=
{}
caches
=
{}
}
}
images
.
forEach
(
url
=>
{
images
.
forEach
(
url
=>
{
// 如果包含当前url,就不再下载
// 如果包含当前url,就不再下载
if
(
!
caches
.
hasOwnProperty
(
url
))
{
if
(
!
caches
.
hasOwnProperty
(
url
))
{
uni
.
downloadFile
({
uni
.
downloadFile
({
url
:
url
,
url
:
url
,
success
:
(
res
)
=>
{
success
:
(
res
)
=>
{
if
(
res
.
statusCode
===
200
)
{
if
(
res
.
statusCode
===
200
)
{
caches
[
url
]
=
res
.
tempFilePath
caches
[
url
]
=
res
.
tempFilePath
uni
.
setStorageSync
(
'cacheImages'
,
caches
)
uni
.
setStorageSync
(
'cacheImages'
,
caches
)
}
}
...
@@ -181,12 +224,12 @@
...
@@ -181,12 +224,12 @@
handleDataZoomEvent
(
event
)
{
handleDataZoomEvent
(
event
)
{
var
count
=
this
.
elementData
.
dataList
.
categories
.
length
*
(
event
.
end
-
event
.
start
)
/
100
var
count
=
this
.
elementData
.
dataList
.
categories
.
length
*
(
event
.
end
-
event
.
start
)
/
100
// 给小程序里面赋值datas,如果存在且不为空,代表可以左右滑动切换
// 给小程序里面赋值datas,如果存在且不为空,代表可以左右滑动切换
if
(
this
.
elementData
.
dataList
.
datas
&&
this
.
elementData
.
dataList
.
datas
.
length
)
{
if
(
this
.
elementData
.
dataList
.
datas
&&
this
.
elementData
.
dataList
.
datas
.
length
)
{
count
=
this
.
elementData
.
dataList
.
datas
[
this
.
index
].
categories
.
length
*
(
event
.
end
-
event
.
start
)
/
100
count
=
this
.
elementData
.
dataList
.
datas
[
this
.
index
].
categories
.
length
*
(
event
.
end
-
event
.
start
)
/
100
this
.
switchData
(
event
,
count
)
this
.
switchData
(
event
,
count
)
}
}
// 当前图表初始设置了labelShow=true时,才判断超过最大个数隐藏
// 当前图表初始设置了labelShow=true时,才判断超过最大个数隐藏
if
(
this
.
labelShow
)
{
if
(
this
.
labelShow
)
{
this
.
dealLabelShowStatus
(
event
,
count
)
this
.
dealLabelShowStatus
(
event
,
count
)
}
}
lastCount
=
count
lastCount
=
count
...
@@ -200,15 +243,15 @@
...
@@ -200,15 +243,15 @@
dealLabelShowStatus
(
event
,
count
)
{
dealLabelShowStatus
(
event
,
count
)
{
var
flag
=
false
var
flag
=
false
const
maxCount
=
this
.
elementInfo
.
option
.
dataset
.
maxCount
const
maxCount
=
this
.
elementInfo
.
option
.
dataset
.
maxCount
if
(
lastCount
<
count
&&
lastCount
<=
maxCount
&&
count
>
maxCount
)
{
if
(
lastCount
<
count
&&
lastCount
<=
maxCount
&&
count
>
maxCount
)
{
// 放大的情况
// 放大的情况
flag
=
true
flag
=
true
}
}
if
(
lastCount
>
count
&&
lastCount
>=
maxCount
&&
count
<
maxCount
)
{
if
(
lastCount
>
count
&&
lastCount
>=
maxCount
&&
count
<
maxCount
)
{
// 缩小的情况
// 缩小的情况
flag
=
true
flag
=
true
}
}
if
(
flag
)
{
if
(
flag
)
{
const
series
=
this
.
ec
.
option
.
series
const
series
=
this
.
ec
.
option
.
series
series
.
map
(
item
=>
{
series
.
map
(
item
=>
{
item
.
label
.
show
=
count
<=
this
.
elementInfo
.
option
.
dataset
.
maxCount
item
.
label
.
show
=
count
<=
this
.
elementInfo
.
option
.
dataset
.
maxCount
...
@@ -224,15 +267,15 @@
...
@@ -224,15 +267,15 @@
* event: 包含dataZoom的start和end
* event: 包含dataZoom的start和end
* count: 当前图表显示的数量
* count: 当前图表显示的数量
*/
*/
switchData
(
event
,
count
)
{
switchData
(
event
,
count
)
{
const
categories
=
this
.
elementData
.
dataList
.
datas
[
this
.
index
].
categories
const
categories
=
this
.
elementData
.
dataList
.
datas
[
this
.
index
].
categories
// 容错在一个百分点内,认为是滑块滚动
// 容错在一个百分点内,认为是滑块滚动
const
flag
=
Math
.
abs
(
lastCount
-
count
)
<=
categories
.
length
/
100
?
true
:
false
const
flag
=
Math
.
abs
(
lastCount
-
count
)
<=
categories
.
length
/
100
?
true
:
false
if
(
flag
&&
event
.
end
===
100
&&
this
.
index
!=
this
.
elementData
.
dataList
.
datas
.
length
-
1
)
{
if
(
flag
&&
event
.
end
===
100
&&
this
.
index
!=
this
.
elementData
.
dataList
.
datas
.
length
-
1
)
{
this
.
index
+=
1
this
.
index
+=
1
this
.
setChartDatas
(
event
)
this
.
setChartDatas
(
event
)
}
}
if
(
flag
&&
event
.
start
===
0
&&
this
.
index
!=
0
)
{
if
(
flag
&&
event
.
start
===
0
&&
this
.
index
!=
0
)
{
this
.
index
-=
1
this
.
index
-=
1
this
.
setChartDatas
(
event
)
this
.
setChartDatas
(
event
)
}
}
...
...
components/LineMixBar/LineMixBar.vue
View file @
2a5ad7e6
...
@@ -63,10 +63,7 @@
...
@@ -63,10 +63,7 @@
type
:
'value'
type
:
'value'
}
}
],
],
tooltip
:
{
tooltip
:
that
.
dealTooltip
(
that
.
elementInfo
.
option
.
tooltip
),
...
that
.
elementInfo
.
option
.
tooltip
,
trigger
:
"axis"
},
toolbox
:
{
toolbox
:
{
...
that
.
elementInfo
.
option
.
toolbox
,
...
that
.
elementInfo
.
option
.
toolbox
,
feature
:
{
feature
:
{
...
@@ -125,6 +122,28 @@
...
@@ -125,6 +122,28 @@
}
}
})
})
},
},
/**
*
* @param tooltip 表单的tooltip设置
*/
dealTooltip
(
tooltip
)
{
if
(
!
tooltip
)
{
return
}
if
(
tooltip
.
formatter
&&
tooltip
.
formatter
.
length
)
{
return
{
...
tooltip
,
formatter
:
(
val
)
=>
{
return
this
.
$u
.
common
.
converFunction
(
tooltip
.
formatter
,
val
)
},
trigger
:
"axis"
}
}
return
{
...
tooltip
,
trigger
:
"axis"
}
},
/**
/**
* 处理数据
* 处理数据
*/
*/
...
...
components/NormalBar/NormalBar.vue
View file @
2a5ad7e6
...
@@ -49,10 +49,7 @@
...
@@ -49,10 +49,7 @@
...
that
.
elementInfo
.
option
.
xAxis
,
...
that
.
elementInfo
.
option
.
xAxis
,
data
:
categories
data
:
categories
},
},
tooltip
:
{
tooltip
:
that
.
dealTooltip
(
that
.
elementInfo
.
option
.
tooltip
),
...
that
.
elementInfo
.
option
.
tooltip
,
trigger
:
"axis"
},
toolbox
:
{
toolbox
:
{
...
that
.
elementInfo
.
option
.
toolbox
,
...
that
.
elementInfo
.
option
.
toolbox
,
feature
:
{
feature
:
{
...
@@ -111,6 +108,28 @@
...
@@ -111,6 +108,28 @@
}
}
})
})
},
},
/**
*
* @param tooltip 表单的tooltip设置
*/
dealTooltip
(
tooltip
)
{
if
(
!
tooltip
)
{
return
}
if
(
tooltip
.
formatter
&&
tooltip
.
formatter
.
length
)
{
return
{
...
tooltip
,
formatter
:
(
val
)
=>
{
return
this
.
$u
.
common
.
converFunction
(
tooltip
.
formatter
,
val
)
},
trigger
:
"axis"
}
}
return
{
...
tooltip
,
trigger
:
"axis"
}
},
/**
/**
* 处理数据
* 处理数据
*/
*/
...
...
components/NormalLine/NormalLine.vue
View file @
2a5ad7e6
...
@@ -51,10 +51,7 @@
...
@@ -51,10 +51,7 @@
...
that
.
elementInfo
.
option
.
xAxis
,
...
that
.
elementInfo
.
option
.
xAxis
,
data
:
categories
data
:
categories
},
},
tooltip
:
{
tooltip
:
that
.
dealTooltip
(
that
.
elementInfo
.
option
.
tooltip
),
...
that
.
elementInfo
.
option
.
tooltip
,
trigger
:
"axis"
},
toolbox
:
{
toolbox
:
{
...
that
.
elementInfo
.
option
.
toolbox
,
...
that
.
elementInfo
.
option
.
toolbox
,
feature
:
{
feature
:
{
...
@@ -113,6 +110,28 @@
...
@@ -113,6 +110,28 @@
}
}
})
})
},
},
/**
*
* @param tooltip 表单的tooltip设置
*/
dealTooltip
(
tooltip
)
{
if
(
!
tooltip
)
{
return
}
if
(
tooltip
.
formatter
&&
tooltip
.
formatter
.
length
)
{
return
{
...
tooltip
,
formatter
:
(
val
)
=>
{
return
this
.
$u
.
common
.
converFunction
(
tooltip
.
formatter
,
val
)
},
trigger
:
"axis"
}
}
return
{
...
tooltip
,
trigger
:
"axis"
}
},
/**
/**
* 处理数据
* 处理数据
*/
*/
...
...
components/NormalPie/NormalPie.vue
View file @
2a5ad7e6
...
@@ -41,18 +41,16 @@ export default {
...
@@ -41,18 +41,16 @@ export default {
})
})
canvas
.
setChart
(
chart
)
canvas
.
setChart
(
chart
)
const
{
series
}
=
this
.
elementData
.
dataList
const
{
series
}
=
this
.
elementData
.
dataList
const
that
=
this
this
.
ec
.
option
=
{
this
.
ec
.
option
=
{
...
th
is
.
elementInfo
.
option
,
...
th
at
.
elementInfo
.
option
,
color
:
[
'#1089E7'
,
'#F57474'
,
'#56D0E3'
,
'#F8B448'
,
'#8B78F6'
],
color
:
[
'#1089E7'
,
'#F57474'
,
'#56D0E3'
,
'#F8B448'
,
'#8B78F6'
],
tooltip
:
{
tooltip
:
that
.
dealTooltip
(
that
.
elementInfo
.
option
.
tooltip
),
...
this
.
elementInfo
.
option
.
tooltip
,
series
:
that
.
dealSeriesData
(
series
)
trigger
:
'item'
},
series
:
this
.
dealSeriesData
(
series
)
}
}
chart
.
setOption
(
th
is
.
ec
.
option
)
chart
.
setOption
(
th
at
.
ec
.
option
)
chart
.
on
(
'click'
,
event
=>
{
chart
.
on
(
'click'
,
event
=>
{
th
is
.
handleEchartsClick
(
event
)
th
at
.
handleEchartsClick
(
event
)
})
})
return
chart
return
chart
},
},
...
@@ -65,6 +63,29 @@ export default {
...
@@ -65,6 +63,29 @@ export default {
}
}
},
},
/**
*
* @param tooltip 表单的tooltip设置
*/
dealTooltip
(
tooltip
)
{
if
(
!
tooltip
)
{
return
}
if
(
tooltip
.
formatter
&&
tooltip
.
formatter
.
length
)
{
return
{
...
tooltip
,
formatter
:
(
val
)
=>
{
return
this
.
$u
.
common
.
converFunction
(
tooltip
.
formatter
,
val
)
},
trigger
:
"item"
}
}
return
{
...
tooltip
,
trigger
:
"item"
}
},
dealSeriesData
(
data
)
{
dealSeriesData
(
data
)
{
if
(
!
data
)
return
if
(
!
data
)
return
const
series
=
[{
const
series
=
[{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment