|
@@ -78,84 +78,113 @@ export default {
|
|
|
this.init()
|
|
this.init()
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
- init() {
|
|
|
|
|
- const D = new Date()
|
|
|
|
|
- // 控制数据显示,历史数据显示整年,本年度数据显示到上一个月
|
|
|
|
|
- const y = parseInt(D.toJSON().slice(0, 4))
|
|
|
|
|
- const m =
|
|
|
|
|
- parseInt(this.chooseYear) < y
|
|
|
|
|
- ? 12
|
|
|
|
|
- : parseInt(D.toJSON().split('-')[1]) - 1
|
|
|
|
|
- const w = window.innerWidth
|
|
|
|
|
- this.fontSize = w >= 1600 ? 20 : w > 1366 && w < 1600 ? 18 : 16
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- this.info.forEach((item, index) => {
|
|
|
|
|
- // console.log(item)
|
|
|
|
|
- if (this.name !== '病理') {
|
|
|
|
|
- const chart = echarts.init(document.getElementById(`card${index}`))
|
|
|
|
|
- const option = JSON.parse(JSON.stringify(monthChartOption))
|
|
|
|
|
- const xData = item.data
|
|
|
|
|
- .map((i, index) => `${index + 1}月`)
|
|
|
|
|
- .slice(0, m)
|
|
|
|
|
- const yData = item.data.map((i) => i.result || 0).slice(0, m)
|
|
|
|
|
- const yMax = Math.max(...yData)
|
|
|
|
|
- const yMin = Math.min(...yData)
|
|
|
|
|
- const limit = item.data
|
|
|
|
|
- .map((i) => i.limitValue)
|
|
|
|
|
- .filter((i) => i !== undefined)[0]
|
|
|
|
|
- const limitValue = item.data
|
|
|
|
|
- .map((i) => i.originalData)
|
|
|
|
|
- .filter((i) => i)[0]
|
|
|
|
|
- option.yAxis.max = Math.max(parseFloat(limit), parseFloat(yMax))
|
|
|
|
|
- // option.yAxis.min = Math.min(parseFloat(limit), parseFloat(yMin))
|
|
|
|
|
- // console.log(option.yAxis.max, option.yAxis.min, item.title)
|
|
|
|
|
- // console.log(item.title, yData)
|
|
|
|
|
- option.title.text = item.title
|
|
|
|
|
- option.title.textStyle.fontSize = this.fontSize
|
|
|
|
|
- option.title.subtext = `限值${limitValue.replace(/@/g, '')}`
|
|
|
|
|
- option.xAxis.data = xData
|
|
|
|
|
- option.series[0].data = yData
|
|
|
|
|
- option.series[0].markLine.data[0].yAxis = limit
|
|
|
|
|
- option.series[0].markLine.data[0].label.formatter = limit
|
|
|
|
|
- chart.setOption(option)
|
|
|
|
|
- } else {
|
|
|
|
|
- const chart = echarts.init(document.getElementById(`card${index}`))
|
|
|
|
|
- const option = JSON.parse(JSON.stringify(monthChartOptionbl))
|
|
|
|
|
- const xData = item.data
|
|
|
|
|
- .map((i, index) => `${index + 1}月`)
|
|
|
|
|
- .slice(0, m)
|
|
|
|
|
- const yData = item.data.map((i) =>
|
|
|
|
|
- this.$utils.isEmpty(i.result) ? null : i.result
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ init() {
|
|
|
|
|
+ const D = new Date()
|
|
|
|
|
+ const y = parseInt(D.toJSON().slice(0, 4))
|
|
|
|
|
+ const m =
|
|
|
|
|
+ parseInt(this.chooseYear) < y
|
|
|
|
|
+ ? 12
|
|
|
|
|
+ : parseInt(D.toJSON().split('-')[1]) - 1
|
|
|
|
|
+ const w = window.innerWidth
|
|
|
|
|
+ this.fontSize = w >= 1600 ? 20 : w > 1366 && w < 1600 ? 18 : 16
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.info.forEach((item, index) => {
|
|
|
|
|
+ if (this.name !== '病理') {
|
|
|
|
|
+ const chart = echarts.init(document.getElementById(`card${index}`))
|
|
|
|
|
+ const option = JSON.parse(JSON.stringify(monthChartOption))
|
|
|
|
|
+ const xData = item.data
|
|
|
|
|
+ .map((i, index) => `${index + 1}月`)
|
|
|
|
|
+ .slice(0, m)
|
|
|
|
|
+ const yData = item.data.map((i) => i.result || 0).slice(0, m)
|
|
|
|
|
+
|
|
|
|
|
+ // 获取有数据的月份
|
|
|
|
|
+ const validData = item.data
|
|
|
|
|
+ .filter((i) => i.result !== undefined && i.result !== null)
|
|
|
|
|
+ .slice(0, m)
|
|
|
|
|
+
|
|
|
|
|
+ // 获取最后一个有数据的月份的limitValue
|
|
|
|
|
+ let limitValue = ''
|
|
|
|
|
+ if (validData.length > 0) {
|
|
|
|
|
+ const lastData = validData[validData.length - 1]
|
|
|
|
|
+ limitValue = lastData.originalData || ''
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 获取最大值
|
|
|
|
|
+ const yMax = Math.max(...yData)
|
|
|
|
|
+ const yMin = Math.min(...yData)
|
|
|
|
|
+ const limit = item.data
|
|
|
|
|
+ .map((i) => i.limitValue)
|
|
|
|
|
+ .filter((i) => i !== undefined)[0]
|
|
|
|
|
+
|
|
|
|
|
+ option.yAxis.max = Math.max(parseFloat(limit), parseFloat(yMax))
|
|
|
|
|
+ option.title.text = item.title
|
|
|
|
|
+ option.title.textStyle.fontSize = this.fontSize
|
|
|
|
|
+
|
|
|
|
|
+ // 只显示限值,不显示"限值"前缀
|
|
|
|
|
+ if (limitValue) {
|
|
|
|
|
+ option.title.subtext = limitValue.replace(/@/g, '')
|
|
|
|
|
+ } else {
|
|
|
|
|
+ option.title.subtext = ''
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ option.xAxis.data = xData
|
|
|
|
|
+ option.series[0].data = yData
|
|
|
|
|
+ option.series[0].markLine.data[0].yAxis = limit
|
|
|
|
|
+ option.series[0].markLine.data[0].label.formatter = limit
|
|
|
|
|
+ chart.setOption(option)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 病理部分也需要同样处理
|
|
|
|
|
+ const chart = echarts.init(document.getElementById(`card${index}`))
|
|
|
|
|
+ const option = JSON.parse(JSON.stringify(monthChartOptionbl))
|
|
|
|
|
+ const xData = item.data
|
|
|
|
|
+ .map((i, index) => `${index + 1}月`)
|
|
|
|
|
+ .slice(0, m)
|
|
|
|
|
+ const yData = item.data.map((i) =>
|
|
|
|
|
+ this.$utils.isEmpty(i.result) ? null : i.result
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
- const limit = item.data
|
|
|
|
|
- .map((i) => i.limitValue)
|
|
|
|
|
- .filter((i) => i !== undefined)[0]
|
|
|
|
|
- const limitValue = item.data
|
|
|
|
|
- .map((i) => i.originalData)
|
|
|
|
|
- .filter((i) => i)[0]
|
|
|
|
|
|
|
+ // 获取有数据的月份
|
|
|
|
|
+ const validData = item.data
|
|
|
|
|
+ .filter((i) => i.result !== undefined && i.result !== null)
|
|
|
|
|
+ .slice(0, m)
|
|
|
|
|
+
|
|
|
|
|
+ // 获取最后一个有数据的月份的limitValue
|
|
|
|
|
+ let limitValue = ''
|
|
|
|
|
+ if (validData.length > 0) {
|
|
|
|
|
+ const lastData = validData[validData.length - 1]
|
|
|
|
|
+ limitValue = lastData.originalData || ''
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- option.title.text = item.title
|
|
|
|
|
- option.title.textStyle.fontSize = this.fontSize
|
|
|
|
|
- option.title.subtext = `限值${limitValue.replace(/@/g, '')}`
|
|
|
|
|
- option.xAxis.data = xData
|
|
|
|
|
- option.series[0].data = yData
|
|
|
|
|
|
|
+ const limit = item.data
|
|
|
|
|
+ .map((i) => i.limitValue)
|
|
|
|
|
+ .filter((i) => i !== undefined)[0]
|
|
|
|
|
|
|
|
- option.series[0].name = item.title
|
|
|
|
|
- const lData = item.data.map((i) =>
|
|
|
|
|
- this.$utils.isEmpty(i.limitValue) ? null : i.limitValue
|
|
|
|
|
- )
|
|
|
|
|
- option.series[1].data = lData
|
|
|
|
|
|
|
+ option.title.text = item.title
|
|
|
|
|
+ option.title.textStyle.fontSize = this.fontSize
|
|
|
|
|
+
|
|
|
|
|
+ // 只显示限值,不显示"限值"前缀
|
|
|
|
|
+ if (limitValue) {
|
|
|
|
|
+ option.title.subtext = limitValue.replace(/@/g, '')
|
|
|
|
|
+ } else {
|
|
|
|
|
+ option.title.subtext = ''
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ option.xAxis.data = xData
|
|
|
|
|
+ option.series[0].data = yData
|
|
|
|
|
|
|
|
- option.series[1].name = '达标标准率'
|
|
|
|
|
- option.legend.data = [item.title, '达标标准率']
|
|
|
|
|
|
|
+ option.series[0].name = item.title
|
|
|
|
|
+ const lData = item.data.map((i) =>
|
|
|
|
|
+ this.$utils.isEmpty(i.limitValue) ? null : i.limitValue
|
|
|
|
|
+ )
|
|
|
|
|
+ option.series[1].data = lData
|
|
|
|
|
|
|
|
- chart.setOption(option)
|
|
|
|
|
- // console.log(option)
|
|
|
|
|
- // chart.setOption(option)
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
- }, 100)
|
|
|
|
|
|
|
+ option.series[1].name = '达标标准率'
|
|
|
|
|
+ option.legend.data = [item.title, '达标标准率']
|
|
|
|
|
+
|
|
|
|
|
+ chart.setOption(option)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }, 100)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|