|
|
@@ -20,7 +20,7 @@
|
|
|
margin-top: 10px;
|
|
|
"
|
|
|
>
|
|
|
- 室间质控报表
|
|
|
+ 室间质控看板
|
|
|
</div>
|
|
|
<dv-decoration-5
|
|
|
style="width: 30%; height: 50%; margin: 0 auto"
|
|
|
@@ -84,13 +84,19 @@
|
|
|
:reverse="true"
|
|
|
style="width: 2%; height: 100%"
|
|
|
/>
|
|
|
- <div class="botright">
|
|
|
+ <div class="botmidd">
|
|
|
<chartD :info="chartDData" />
|
|
|
</div>
|
|
|
+ <dv-decoration-2
|
|
|
+ :reverse="true"
|
|
|
+ style="width: 2%; height: 100%"
|
|
|
+ />
|
|
|
+ <div class="botright">
|
|
|
+ <chartE :info="chartEData" />
|
|
|
+ </div>
|
|
|
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </dv-border-box-1>
|
|
|
+ </div></dv-border-box-1>
|
|
|
</dv-full-screen-container>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -105,7 +111,8 @@ export default {
|
|
|
chartA: () => import('./chartA.vue'),
|
|
|
chartB: () => import('./chartB.vue'),
|
|
|
chartC: () => import('./chartC.vue'),
|
|
|
- chartD: () => import('./chartD.vue')
|
|
|
+ chartD: () => import('./chartD.vue'),
|
|
|
+ chartE: () => import('./chartE.vue')
|
|
|
|
|
|
},
|
|
|
data () {
|
|
|
@@ -130,6 +137,9 @@ export default {
|
|
|
data1: [],
|
|
|
data2: [],
|
|
|
data3: [],
|
|
|
+ arr1: [],
|
|
|
+ arr2: [],
|
|
|
+ arr3: [],
|
|
|
yearValues: [new Date().getFullYear() - 4 + '', new Date().getFullYear() + ''],
|
|
|
size: 'mini',
|
|
|
valueFormat: 'yyyy',
|
|
|
@@ -150,6 +160,10 @@ export default {
|
|
|
chartDData: {
|
|
|
id: 'chartD',
|
|
|
title: '检验项目参加率'
|
|
|
+ },
|
|
|
+ chartEData: {
|
|
|
+ id: 'chartE',
|
|
|
+ title: '室内质控项目开展率'
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -211,6 +225,10 @@ export default {
|
|
|
id: 'chartD',
|
|
|
title: '检验项目参加率'
|
|
|
}
|
|
|
+ this.chartEData = {
|
|
|
+ id: 'chartE',
|
|
|
+ title: '室内质控项目开展率'
|
|
|
+ }
|
|
|
|
|
|
this.yearArr = this.getNumArr(Number(this.yearValues[0]), Number(this.yearValues[1]))
|
|
|
this.yearStr = this.yearArr.join(',')
|
|
|
@@ -243,6 +261,13 @@ export default {
|
|
|
this.chartDData.list5 = this.list5
|
|
|
this.chartDData.list6 = this.list6
|
|
|
this.chartDData.list7 = this.list7
|
|
|
+
|
|
|
+ this.getListE()
|
|
|
+ this.chartEData.yearArr = this.yearArr
|
|
|
+ this.chartEData.arr1 = this.arr1
|
|
|
+ this.chartEData.arr2 = this.arr2
|
|
|
+ this.chartEData.arr3 = this.arr3
|
|
|
+ console.log(this.chartEData)
|
|
|
},
|
|
|
|
|
|
async getListA () {
|
|
|
@@ -402,7 +427,7 @@ export default {
|
|
|
const zc = data6.find((v) => { return v.niandu === item + '' })
|
|
|
|
|
|
const gclv = (gk ? gk.count : 0) === 0 ? 0 : (((gc ? gc.count : 0) / (gk ? gk.count : 0)) * 100).toFixed(2)
|
|
|
- const sclv = (sk ? sk.count : 0) === 0 ? 0 : (((sc ? gc.count : 0) / (sk ? sk.count : 0)) * 100).toFixed(2)
|
|
|
+ const sclv = (sk ? sk.count : 0) === 0 ? 0 : (((sc ? sc.count : 0) / (sk ? sk.count : 0)) * 100).toFixed(2)
|
|
|
const zclv = (zk ? zk.count : 0) === 0 ? 0 : (((zc ? zc.count : 0) / (zk ? zk.count : 0)) * 100).toFixed(2)
|
|
|
|
|
|
// 国开展
|
|
|
@@ -420,6 +445,35 @@ export default {
|
|
|
// 总参加率
|
|
|
this.list7.push(zclv)
|
|
|
}
|
|
|
+ },
|
|
|
+ async getListE () {
|
|
|
+ this.arr1 = []
|
|
|
+ this.arr2 = []
|
|
|
+ this.arr3 = []
|
|
|
+ let data1 = []
|
|
|
+ let data2 = []
|
|
|
+
|
|
|
+ const sql1 = `select LEFT(suo_shu_nian_fen_,4) as niandu, COUNT(*) AS count from t_zkxxtjbzb WHERE find_in_set(LEFT(suo_shu_nian_fen_,4), '${this.yearStr}') and shi_yan_shi_ = '✓' GROUP BY LEFT(suo_shu_nian_fen_,4)`
|
|
|
+ const sql2 = `select LEFT(suo_shu_nian_fen_,4) as niandu, COUNT(*) AS count from t_zkxxtjbzb WHERE find_in_set(LEFT(suo_shu_nian_fen_,4), '${this.yearStr}') and shi_nei_zhi_kong_ = '✓' GROUP BY LEFT(suo_shu_nian_fen_,4)`
|
|
|
+
|
|
|
+ await this.$common.request('sql', sql1).then((res) => {
|
|
|
+ data1 = res.variables.data
|
|
|
+ })
|
|
|
+ await this.$common.request('sql', sql2).then((res) => {
|
|
|
+ data2 = res.variables.data
|
|
|
+ })
|
|
|
+
|
|
|
+ for (var item of this.yearArr) {
|
|
|
+ const m = data1.find((v) => { return v.niandu === item + '' })
|
|
|
+ const n = data2.find((v) => { return v.niandu === item + '' })
|
|
|
+
|
|
|
+ // 开展率
|
|
|
+ this.arr1.push(((m ? m.count : 0) === 0 ? 0 : ((n ? n.count : 0) / (m ? m.count : 0)) * 100).toFixed(2))
|
|
|
+ // 实验室开展项目数
|
|
|
+ this.arr2.push((m ? m.count : 0))
|
|
|
+ // 开展室内质控项目数
|
|
|
+ this.arr3.push(n ? n.count : 0)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -489,19 +543,24 @@ export default {
|
|
|
display: flex;
|
|
|
overflow: hidden;
|
|
|
box-sizing: border-box;
|
|
|
- height: 45%;
|
|
|
+ height: 47%;
|
|
|
width: 100%;
|
|
|
-
|
|
|
.botleft{
|
|
|
height: 100%;
|
|
|
- width: 50%;
|
|
|
+ width: 33%;
|
|
|
overflow: hidden;
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
}
|
|
|
+ .botmidd{
|
|
|
+ height: 100%;
|
|
|
+ width: 33%;
|
|
|
+ overflow: hidden;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
.botright{
|
|
|
height: 100%;
|
|
|
- width: 50%;
|
|
|
+ width: 33%;
|
|
|
overflow: hidden;
|
|
|
box-sizing: border-box;
|
|
|
}
|