杨青 преди 1 година
родител
ревизия
cdff8dba79

Файловите разлики са ограничени, защото са твърде много
+ 1419 - 0
.idea/shelf/Uncommitted_changes_before_Update_at_2023_4_26_15_16_[Changes]/AssessmentAfterDislysis.vue


Файловите разлики са ограничени, защото са твърде много
+ 2640 - 0
.idea/shelf/Uncommitted_changes_before_Update_at_2023_4_26_15_16_[Changes]/shelved.patch


+ 98 - 0
src/xt_pages/qcd/hemoglobin/index.vue Целия файл

@@ -0,0 +1,98 @@
1
+<!-- 血红蛋白 -->
2
+<template>
3
+    <div class="main-contain">
4
+      <div class="position">
5
+        <bread-crumb :crumbs="crumbs"></bread-crumb>
6
+      </div>
7
+      <div class="app-container">
8
+        <div class="page_patientControlAnalysis">
9
+            <el-tabs v-model="activeName" @tab-click="handleClick" >
10
+                <el-tab-pane label="统计全部" name="first">
11
+                    <!-- <totalSstatistics></totalSstatistics> -->
12
+                </el-tab-pane>
13
+                
14
+                <el-tab-pane label="统计个人" name="second">
15
+                    <!-- <individual></individual> -->
16
+                </el-tab-pane>
17
+            
18
+            </el-tabs>
19
+        </div>
20
+      </div>
21
+    </div>
22
+  </template>
23
+  
24
+<script>
25
+import echarts from 'echarts'
26
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
27
+// import totalSstatistics from './totalSstatistics.vue'
28
+// import individual from './individual.vue'
29
+export default {
30
+    name:'thyroidGland',
31
+    components: {
32
+        BreadCrumb,
33
+        // totalSstatistics,
34
+        // individual
35
+    },
36
+    data() {
37
+        return {
38
+            activeName: 'first'
39
+        }
40
+    },
41
+    methods:{
42
+      handleClick(tab, event) {
43
+        console.log(tab, event);
44
+      }
45
+    }
46
+}
47
+</script>
48
+
49
+<style lang="scss" scoped>
50
+// .page_patientControlAnalysis {
51
+
52
+// .pointTitle {
53
+//   font-size: 13px;
54
+// }
55
+
56
+// .chartTitle {
57
+//   font-size: 16px;
58
+//   font-weight: bold;
59
+//   color: #000000;
60
+// }
61
+
62
+// .point {
63
+//   width: 13px;
64
+//   height: 13px;
65
+//   background: linear-gradient(
66
+//       0deg,
67
+//       rgba(169, 224, 243, 1),
68
+//       rgba(159, 189, 252, 1)
69
+//   );
70
+//   border-radius: 7px;
71
+//   margin-right: 8px;
72
+// }
73
+
74
+// .pointTitle {
75
+//   font-size: 13px;
76
+// }
77
+
78
+// }
79
+
80
+</style>
81
+
82
+<style lang="scss">
83
+// .page_patientControlAnalysis {
84
+
85
+// .el-form-item {
86
+//   margin-bottom: 0;
87
+// }
88
+
89
+// .cell {
90
+//   text-align: center;
91
+// }
92
+
93
+// ::-webkit-scrollbar {
94
+//   height: 15px !important;
95
+// }
96
+
97
+// }
98
+</style>

+ 208 - 0
src/xt_pages/qcd/qualitycontrol/individual.vue Целия файл

@@ -0,0 +1,208 @@
1
+<template>
2
+    <div>
3
+       <div class="content_top">
4
+            <el-autocomplete
5
+            class="inline-input"
6
+            v-model="inputValue"
7
+            :fetch-suggestions="querySearch"
8
+            :trigger-on-focus="false"
9
+            placeholder="请输入患者名字或透析号"
10
+            @select="handleSubmit"
11
+            ></el-autocomplete>
12
+            <div>
13
+                <span>查询时间:</span>
14
+                <el-date-picker
15
+                v-model="stat_time"
16
+                type="date"
17
+                placeholder="选择日期">
18
+                </el-date-picker>
19
+                <span>-</span>
20
+                <el-date-picker
21
+                v-model="end_time"
22
+                type="date"
23
+                placeholder="选择日期">
24
+                </el-date-picker>
25
+                <el-select v-model="value" placeholder="请选择">
26
+                    <el-option
27
+                    v-for="item in options"
28
+                    :key="item.value"
29
+                    :label="item.label"
30
+                    :value="item.value">
31
+                    </el-option>
32
+                </el-select>
33
+                <el-select v-model="value" placeholder="请选择">
34
+                    <el-option
35
+                    v-for="item in options"
36
+                    :key="item.value"
37
+                    :label="item.label"
38
+                    :value="item.value">
39
+                    </el-option>
40
+                </el-select>
41
+                <el-button type="primary">查询</el-button>
42
+            </div>
43
+            <div>
44
+                <el-button type="primary">打印</el-button>
45
+                <el-button type="primary">导出</el-button>
46
+            </div>
47
+       </div>
48
+       <div >
49
+        <el-row :gutter="20">
50
+            <el-col :span="4">
51
+              <div class="grid-content bg-purple">
52
+                <!-- <span style="font-size: 18px;font-weight: bold;display: block;">患者列表</span> -->
53
+                <h2>患者列表</h2>
54
+                <el-table
55
+                :data="tableData"
56
+                border
57
+                style="width: 100%">
58
+                    <el-table-column
59
+                        align="center"
60
+                        prop="date"
61
+                        label="透析号"
62
+                       >
63
+                    </el-table-column>
64
+                    <el-table-column
65
+                        align="center"
66
+                        prop="name"
67
+                        label="姓名"
68
+                        >
69
+                    </el-table-column>
70
+                </el-table>
71
+              </div>
72
+            </el-col>
73
+            <el-col :span="19">
74
+               <div class="grid-content bg-purple">
75
+                <div class="echart" id="germychart" :style={width:width,height:height}></div>
76
+                <el-table
77
+                    :data="tableData"
78
+                    style="width: 100%"
79
+                    border
80
+                    align="center"
81
+                    max-height="250">
82
+                    <el-table-column
83
+                    fixed
84
+                    prop="date"
85
+                    label="姓名"
86
+                   >
87
+                    </el-table-column>
88
+                    <el-table-column
89
+                    prop="name"
90
+                    label="检查日期"
91
+                    >
92
+                    </el-table-column>
93
+                    <el-table-column
94
+                    prop="province"
95
+                    label="甲状旁腺激素(pg/ml)"
96
+                    >
97
+                    </el-table-column>
98
+                    
99
+                </el-table>
100
+               </div>
101
+           </el-col>
102
+        </el-row>
103
+       </div>
104
+
105
+    </div>
106
+</template>
107
+<script>
108
+  import * as echarts from 'echarts'
109
+export default{
110
+    props: {
111
+   
112
+        width: {
113
+            type: String,
114
+            default: "100%"
115
+        },
116
+        height: {
117
+            type: String,
118
+            default: "400px"
119
+        },
120
+    
121
+    },
122
+    data() {
123
+        return {
124
+            inputValue:'',
125
+            stat_time:'',
126
+            end_time:'',
127
+            value:'',
128
+            myChart: {},
129
+            xData: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], //横坐标
130
+            opinionData: [23, 24, 18, 25, 27, 28, 25], //人数数据
131
+            // myChartStyle: { float: "left", width: "100%", height: "400px" },//图表样式
132
+            tableData:[],
133
+        }
134
+    },
135
+    created(){
136
+        
137
+    },
138
+    mounted() {
139
+        // this.$nextTick(function() {
140
+            this.initEcharts();
141
+		// })  
142
+    },
143
+    methods:{
144
+        handleSubmit(){
145
+            console.log('asdfa');
146
+        },
147
+        initEcharts() {
148
+            const option = {
149
+                xAxis: {
150
+                    type: 'category',
151
+                        boundaryGap:true,
152
+                        axisTick:{
153
+                            alignWithLabel:true //保证刻度线和标签对齐
154
+                        },
155
+                    data: this.xData,
156
+                    splitNumber:this.xData.length, //纵坐标数
157
+                    interval:this.xData //强制设置坐标轴分割间隔
158
+                },
159
+                yAxis: {
160
+                    type: 'value',
161
+                    boundaryGap: true,
162
+                    splitNumber:4, //纵坐标数
163
+                    interval:10 //强制设置坐标轴分割间隔
164
+                },
165
+                legend: {
166
+                    show: true,
167
+                    align:'left',//文字在前图标在后
168
+                    left:'15%',
169
+                    top:'5%',
170
+                    data: [{name:'甲状旁腺激素 pg/ml'}]
171
+                },
172
+                series: [
173
+                {
174
+                    data: this.opinionData,
175
+                    name:'甲状旁腺激素 pg/ml',
176
+                    type: "line",// 类型设置为折线图
177
+                    symbol: 'circle',
178
+                    itemStyle: {
179
+                        normal: {
180
+                            color: '#409eff', //改变折线点的颜色#a80000
181
+                            lineStyle: {
182
+                                color: '#409eff' //改变折线颜色
183
+                            }
184
+                        }
185
+                    },
186
+
187
+                },
188
+                
189
+                ],
190
+                
191
+            };
192
+            this.myChart = echarts.init(document.getElementById("germychart"));
193
+            this.myChart.setOption(option);
194
+            //随着屏幕大小调节图表
195
+            // window.addEventListener("resize", () => {
196
+            //     this.myChart.resize();
197
+            // });
198
+        },
199
+    }
200
+}
201
+</script>
202
+<style lang="scss" scoped>
203
+.content_top{
204
+    display: flex;
205
+    justify-content: space-around;
206
+    margin-bottom: 20px;
207
+}
208
+</style>

+ 98 - 0
src/xt_pages/qcd/qualitycontrol/thyroidGland.vue Целия файл

@@ -0,0 +1,98 @@
1
+<!-- 甲状旁腺激素分析 -->
2
+<template>
3
+    <div class="main-contain">
4
+      <div class="position">
5
+        <bread-crumb :crumbs="crumbs"></bread-crumb>
6
+      </div>
7
+      <div class="app-container">
8
+        <div class="page_patientControlAnalysis">
9
+            <el-tabs v-model="activeName" @tab-click="handleClick" >
10
+                <el-tab-pane label="统计全部" name="first">
11
+                    <totalSstatistics style="width: 100%; height: 400px;"></totalSstatistics>
12
+                </el-tab-pane>
13
+                
14
+                <el-tab-pane label="统计个人" name="second">
15
+                    <individual></individual>
16
+                </el-tab-pane>
17
+            
18
+            </el-tabs>
19
+        </div>
20
+      </div>
21
+    </div>
22
+  </template>
23
+  
24
+<script>
25
+import echarts from 'echarts'
26
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
27
+import totalSstatistics from './totalSstatistics.vue'
28
+import individual from './individual.vue'
29
+export default {
30
+    name:'thyroidGland',
31
+    components: {
32
+        BreadCrumb,
33
+        totalSstatistics,
34
+        individual
35
+    },
36
+    data() {
37
+        return {
38
+            activeName: 'first'
39
+        }
40
+    },
41
+    methods:{
42
+      handleClick(tab, event) {
43
+        console.log(tab, event);
44
+      }
45
+    }
46
+}
47
+</script>
48
+
49
+<style lang="scss" scoped>
50
+// .page_patientControlAnalysis {
51
+
52
+// .pointTitle {
53
+//   font-size: 13px;
54
+// }
55
+
56
+// .chartTitle {
57
+//   font-size: 16px;
58
+//   font-weight: bold;
59
+//   color: #000000;
60
+// }
61
+
62
+// .point {
63
+//   width: 13px;
64
+//   height: 13px;
65
+//   background: linear-gradient(
66
+//       0deg,
67
+//       rgba(169, 224, 243, 1),
68
+//       rgba(159, 189, 252, 1)
69
+//   );
70
+//   border-radius: 7px;
71
+//   margin-right: 8px;
72
+// }
73
+
74
+// .pointTitle {
75
+//   font-size: 13px;
76
+// }
77
+
78
+// }
79
+
80
+</style>
81
+
82
+<style lang="scss">
83
+// .page_patientControlAnalysis {
84
+
85
+// .el-form-item {
86
+//   margin-bottom: 0;
87
+// }
88
+
89
+// .cell {
90
+//   text-align: center;
91
+// }
92
+
93
+// ::-webkit-scrollbar {
94
+//   height: 15px !important;
95
+// }
96
+
97
+// }
98
+</style>

+ 212 - 0
src/xt_pages/qcd/qualitycontrol/totalSstatistics.vue Целия файл

@@ -0,0 +1,212 @@
1
+<template>
2
+    <div>
3
+        <div class="content_top">
4
+            <div class="block">
5
+                <span>查询时间:</span>
6
+                <el-date-picker
7
+                v-model="time_month"
8
+                type="month"
9
+                placeholder="选择月">
10
+                </el-date-picker>
11
+            </div>
12
+            <div>
13
+                <el-date-picker
14
+                v-model="stat_time"
15
+                type="date"
16
+                placeholder="选择日期">
17
+                </el-date-picker>
18
+                <span>-</span>
19
+                <el-date-picker
20
+                v-model="end_time"
21
+                type="date"
22
+                placeholder="选择日期">
23
+                </el-date-picker>
24
+            </div>
25
+            <div style="width: 200px;">
26
+                <el-input v-model="input" placeholder="请输入内容"></el-input>
27
+            </div>
28
+            <el-button type="primary">查询</el-button>
29
+        </div>
30
+        <div class="cell clearfix">
31
+          <p class="chartTitle">统计图</p>
32
+        </div>
33
+        <div class="echart" id="mychart" :style={width:width,height:height}></div>
34
+        <div style="width: 80%;margin: auto;">
35
+            <el-table
36
+            :data="tableData"
37
+            :show-summary = true
38
+            border
39
+            style="width: 100%;">
40
+                <el-table-column
41
+                    prop="date"
42
+                    align="center"
43
+                    label="甲状旁腺激素"
44
+                    >
45
+                </el-table-column>
46
+                <el-table-column
47
+                    prop="name"
48
+                    
49
+                    label="人数"
50
+                    >
51
+                </el-table-column>
52
+                <el-table-column
53
+                    prop="address"
54
+                    align="center"
55
+                    label="操作">
56
+                    <template slot-scope="scope">
57
+                        <el-button @click="handleClick(scope.row)" style="font-size:16px;"
58
+                                type="text" >查看详情
59
+                        </el-button>
60
+                    </template>
61
+                </el-table-column>
62
+            </el-table>
63
+        </div>
64
+    </div>
65
+</template>
66
+<script>
67
+import * as echarts from "echarts";
68
+export default{
69
+    props: {
70
+   
71
+    width: {
72
+      type: String,
73
+      default: "100%"
74
+    },
75
+    height: {
76
+      type: String,
77
+      default: "400px"
78
+    },
79
+    
80
+  },
81
+    data() {
82
+        return {
83
+            time_month:'',
84
+            stat_time:'',
85
+            end_time:'',
86
+            input:'',
87
+            myChart: {},
88
+            pieData : [
89
+            {
90
+          value: 463,
91
+          name: "不达标值患者"
92
+        },
93
+        {
94
+          value: 395,
95
+          name: "未检查患者"
96
+        },
97
+        {
98
+          value: 157,
99
+          name: "达标值患者"
100
+        },
101
+        // {
102
+        //   value: 149,
103
+        //   name: "广东"
104
+        // },
105
+        // {
106
+        //   value: 147,
107
+        //   name: "湖南"
108
+        // }
109
+            
110
+            ],
111
+            pieName: [],
112
+            // myChartStyle:{float: "right", width: "100%", height: "400px"},
113
+            tableData:[],
114
+        }
115
+    },
116
+    mounted() {
117
+    this.initDate(); //数据初始化
118
+    this.initEcharts();
119
+  },
120
+  methods: {
121
+    initDate() {
122
+      for (let i = 0; i < this.pieData.length; i++) {
123
+        this.pieName[i] = this.pieData[i].name;
124
+      }
125
+    },
126
+    initEcharts() {
127
+      // 饼图
128
+      const option = {
129
+        legend: {
130
+          // 图例
131
+          data: this.pieName,
132
+          left: "10%",
133
+          top: "30%",
134
+          orient: "vertical"
135
+        },
136
+        color:['#ff7f9f','#fff67f','#1e5feb'],
137
+        title: {
138
+          // 设置饼图标题,位置设为顶部居中
139
+        //   text: "国内院士前五省份图示",
140
+          top: "0%",
141
+          left: "center"
142
+        },
143
+        series: [
144
+          {
145
+            type: "pie",
146
+            label: {
147
+              show: true,
148
+              formatter:"{b} : {d}% ({c})"
149
+              // b代表名称,c代表对应值,d代表百分比"{b} : {d}% ({c})" 
150
+            },
151
+            radius: "65%", //饼图半径
152
+            data: this.pieData
153
+          }
154
+        ]
155
+      };
156
+    //   console.log(this.seriesData);
157
+      const optionFree = {
158
+        series: [
159
+          {
160
+            data: this.seriesData,
161
+            type: "line",
162
+            smooth: true
163
+          }
164
+        ]
165
+      };
166
+      this.myChart = echarts.init(document.getElementById("mychart"));
167
+      this.myChart.setOption(option);
168
+      //随着屏幕大小调节图表
169
+    //   window.addEventListener("resize", () => {
170
+    //     this.myChart.resize();
171
+    //   });
172
+    },
173
+    getSummaries(param) {
174
+        const { columns, data } = param;
175
+        const sums = [];
176
+        columns.forEach((column, index) => {
177
+          if (index === 0) {
178
+            sums[index] = '总价';
179
+            return;
180
+          }
181
+          const values = data.map(item => Number(item[column.property]));
182
+          if (!values.every(value => isNaN(value))) {
183
+            sums[index] = values.reduce((prev, curr) => {
184
+              const value = Number(curr);
185
+              if (!isNaN(value)) {
186
+                return prev + curr;
187
+              } else {
188
+                return prev;
189
+              }
190
+            }, 0);
191
+            sums[index] += ' 元';
192
+          } else {
193
+            sums[index] = 'N/A';
194
+          }
195
+        });
196
+
197
+        return sums;
198
+    },
199
+    handleClick(id){
200
+        console.log(id);
201
+    }
202
+  }
203
+
204
+}
205
+</script>
206
+<style lang="scss" scoped>
207
+.content_top{
208
+    display: flex;
209
+    justify-content: space-around;
210
+    color: #1e5feb;
211
+}
212
+</style>