You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

147 lines
3.9 KiB

const echarts = require('../../../components/ec-canvas/echarts.js')
Page({
data: {},
ecDataTrendComponent1_1: null as any,
async onLoad() {
const app = getApp<IAppOption>()
app.waitLogin().then(() => {})
const list = [
{ StatMonth: '2026-01', MonthInvitePCount: 1 },
{ StatMonth: '2026-02', MonthInvitePCount: 2 },
{ StatMonth: '2026-03', MonthInvitePCount: 3 },
{ StatMonth: '2026-04', MonthInvitePCount: 2 },
{ StatMonth: '2026-05', MonthInvitePCount: 5 },
{ StatMonth: '2026-06', MonthInvitePCount: 7 },
{ StatMonth: '2026-07', MonthInvitePCount: 5 },
{ StatMonth: '2026-08', MonthInvitePCount: 3 },
{ StatMonth: '2026-09', MonthInvitePCount: 8 },
{ StatMonth: '2026-10', MonthInvitePCount: 10 },
]
this.initChartBar(list)
},
initChartBar(list: any[]) {
return new Promise((reslove) => {
this.ecDataTrendComponent1_1 = this.selectComponent('#chart1_1')
this.ecDataTrendComponent1_1.init((canvas, width, height, dpr) => {
const chart = echarts.init(canvas, null, {
width,
height,
devicePixelRatio: dpr, // new
})
canvas.setChart(chart)
const x: string[] = []
const y1: string[] = []
list.forEach((item) => {
x.push(item.StatMonth)
y1.push(item.MonthInvitePCount)
})
const option = {
legend: {
top: 0,
right: 0,
itemWidth: 8,
itemHeight: 8,
icon: 'rect',
lineStyle: {
width: '0',
},
textStyle: {
color: '#B5B8BB',
fontSize: '12',
},
},
grid: {
top: '10%',
left: '3%',
right: '4%',
bottom: '0',
containLabel: true,
},
xAxis: [
{
type: 'category',
axisTick: {
show: false,
},
axisLabel: {
fontSize: 10,
color: '#B5B8BB',
},
axisLine: {
show: false,
},
data: x,
},
],
yAxis: [
{
type: 'value',
minInterval: 1,
splitLine: {
lineStyle: {
type: 'dashed',
},
},
axisLabel: {
fontSize: 10,
color: '#B5B8BB',
formatter(value) {
return Math.abs(value)
},
},
},
],
series: [
{
name: '入组患者数',
type: 'bar',
stack: 'a',
color: '#FF5722',
barWidth: 12,
data: y1,
},
{
name: '跳转患者数',
type: 'bar',
stack: 'a',
color: '#FF8A4C',
barWidth: 12,
data: y1,
},
{
name: '邀约患者数',
type: 'bar',
stack: 'a',
width: 4,
color: '#FFA64D',
barWidth: 12,
data: y1,
},
],
dataZoom: {
type: 'inside', // 有type这个属性,滚动条在最下面,也可以不行,写y:36,这表示距离顶端36px,一般就是在图上面。
startValue: x.length - 6,
endValue: x.length - 1,
filterMode: 'none',
},
}
chart.setOption(option)
reslove(chart)
return chart
})
})
},
handleInvite() {
wx.navigateTo({
url: '/doctor/pages/invite/index',
})
},
handleStat() {
wx.navigateTo({
url: '/doctor/pages/stat/index',
})
},
})