Browse Source

6月1日杨青

杨青 1 year ago
parent
commit
7a0dbe6b39
36 changed files with 5671 additions and 264 deletions
  1. 113 0
      .idea/shelf/Uncommitted_changes_before_Update_at_2023_5_30_16_44_[Changes]/shelved.patch
  2. 2 1
      src/router/index.js
  3. 107 0
      src/router/modules/Dialysisanalysis.js
  4. 92 18
      src/router/modules/qcd.js
  5. 249 0
      src/xt_pages/Dialysisanalysis/albumin/albuminall.vue
  6. 218 0
      src/xt_pages/Dialysisanalysis/albumin/albuminalone.vue
  7. 102 0
      src/xt_pages/Dialysisanalysis/albumin/index.vue
  8. 102 0
      src/xt_pages/Dialysisanalysis/bloodPhosphorus/index.vue
  9. 249 0
      src/xt_pages/Dialysisanalysis/bloodPhosphorus/phosphorusall.vue
  10. 217 0
      src/xt_pages/Dialysisanalysis/bloodPhosphorus/phosphorusalone.vue
  11. 102 0
      src/xt_pages/Dialysisanalysis/bloodPotassium/index.vue
  12. 249 0
      src/xt_pages/Dialysisanalysis/bloodPotassium/potassiumall.vue
  13. 217 0
      src/xt_pages/Dialysisanalysis/bloodPotassium/potassiumalone.vue
  14. 249 0
      src/xt_pages/Dialysisanalysis/calcium/calciumall.vue
  15. 217 0
      src/xt_pages/Dialysisanalysis/calcium/calciumalone.vue
  16. 11 7
      src/xt_pages/Dialysisanalysis/calcium/index.vue
  17. 167 0
      src/xt_pages/Dialysisanalysis/dialysis_index.vue
  18. 248 0
      src/xt_pages/Dialysisanalysis/hemoglobin/hemoglobinall.vue
  19. 217 0
      src/xt_pages/Dialysisanalysis/hemoglobin/hemoglobinalone.vue
  20. 102 0
      src/xt_pages/Dialysisanalysis/hemoglobin/index.vue
  21. 209 0
      src/xt_pages/Dialysisanalysis/nonnumerical.vue
  22. 102 0
      src/xt_pages/Dialysisanalysis/otherIndicators/index.vue
  23. 249 0
      src/xt_pages/Dialysisanalysis/otherIndicators/otherall.vue
  24. 217 0
      src/xt_pages/Dialysisanalysis/otherIndicators/otheralone.vue
  25. 102 0
      src/xt_pages/Dialysisanalysis/platelets/index.vue
  26. 249 0
      src/xt_pages/Dialysisanalysis/platelets/plateletsall.vue
  27. 217 0
      src/xt_pages/Dialysisanalysis/platelets/plateletsalone.vue
  28. 243 0
      src/xt_pages/Dialysisanalysis/qualitycontrol/individual.vue
  29. 103 0
      src/xt_pages/Dialysisanalysis/qualitycontrol/thyroidGland.vue
  30. 255 0
      src/xt_pages/Dialysisanalysis/qualitycontrol/totalSstatistics.vue
  31. 167 0
      src/xt_pages/qcd/dialysis_index.vue
  32. 58 23
      src/xt_pages/qcd/qualitycontrol/individual.vue
  33. 9 4
      src/xt_pages/qcd/qualitycontrol/thyroidGland.vue
  34. 233 190
      src/xt_pages/qcd/qualitycontrol/totalSstatistics.vue
  35. 5 4
      src/xt_pages/stock/stockInOrderDetailPrint.vue
  36. 23 17
      src/xt_pages/user/components/PatientDetail.vue

File diff suppressed because it is too large
+ 113 - 0
.idea/shelf/Uncommitted_changes_before_Update_at_2023_5_30_16_44_[Changes]/shelved.patch


+ 2 - 1
src/router/index.js View File

@@ -173,6 +173,7 @@ var _asy_router_map = [
173 173
   otherManagement,
174 174
   qcd,
175 175
   // qualitycontrol,//透析分析5/29
176
+ 
176 177
   device,
177 178
   org,
178 179
   data_upload,
@@ -203,7 +204,7 @@ var _asy_router_map = [
203 204
   integration,
204 205
   basicConfig,
205 206
   supply,
206
- 
207
+  Dialysisanalysis,// 新菜单6.1
207 208
 ]
208 209
 
209 210
 var is_asy_router = process.env.NODE_ENV === 'production' // true; 设置为 true 强制进行路由验证

+ 107 - 0
src/router/modules/Dialysisanalysis.js View File

@@ -0,0 +1,107 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/Dialysisanalysis',
5
+  component: Layout,
6
+  redirect: '/Dialysisanalysis/qualitycontrol/thyroidGland',
7
+  name: 'Dialysisanalysis',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: '透析分析',
11
+    icon: 'statistics'
12
+  },
13
+  children: [
14
+    {
15
+      path: '/Dialysisanalysis/qualitycontrol/thyroidGland',
16
+      component: () => import('@/xt_pages/Dialysisanalysis/qualitycontrol/thyroidGland'),
17
+      name: 'thyroidGland',
18
+      meta: {
19
+        title: '甲状旁腺激素分析',
20
+        noCache: true
21
+      }
22
+    },
23
+    // {
24
+    //   path: '/Dialysisanalysis/hemoglobin',
25
+    //   component: () => import('@/xt_pages/Dialysisanalysis/hemoglobin/index'),
26
+    //   name: 'index',
27
+    //   meta: {
28
+    //     title: '血红蛋白',
29
+    //     noCache: true
30
+    //   }
31
+    // },
32
+    // {
33
+    //   path: '/Dialysisanalysis/bloodPotassium',
34
+    //   component: () => import('@/xt_pages/Dialysisanalysis/bloodPotassium/index'),
35
+    //   name: 'index',
36
+    //   meta: {
37
+    //     title: '血钾',
38
+    //     noCache: true
39
+    //   }
40
+    // },
41
+    // {
42
+    //   path: '/Dialysisanalysis/albumin',
43
+    //   component: () => import('@/xt_pages/Dialysisanalysis/albumin/index'),
44
+    //   name: 'index',
45
+    //   meta: {
46
+    //     title: '白蛋白',
47
+    //     noCache: true
48
+    //   }
49
+    // },
50
+    // {
51
+    //   path: '/Dialysisanalysis/bloodPhosphorus',
52
+    //   component: () => import('@/xt_pages/Dialysisanalysis/bloodPhosphorus/index'),
53
+    //   name: 'index',
54
+    //   meta: {
55
+    //     title: '血磷',
56
+    //     noCache: true
57
+    //   }
58
+    // },
59
+    // {
60
+    //   path: '/Dialysisanalysis/calcium',
61
+    //   component: () => import('@/xt_pages/Dialysisanalysis/calcium/index'),
62
+    //   name: 'index',
63
+    //   meta: {
64
+    //     title: '钙',
65
+    //     noCache: true
66
+    //   }
67
+    // },
68
+    // {
69
+    //   path: '/Dialysisanalysis/platelets',
70
+    //   component: () => import('@/xt_pages/Dialysisanalysis/platelets/index'),
71
+    //   name: 'index',
72
+    //   meta: {
73
+    //     title: '血小板',
74
+    //     noCache: true
75
+    //   }
76
+    // },
77
+    // {
78
+    //   path: '/Dialysisanalysis/otherIndicators',
79
+    //   component: () => import('@/xt_pages/Dialysisanalysis/otherIndicators/index'),
80
+    //   name: 'index',
81
+    //   meta: {
82
+    //     title: '其他指标',
83
+    //     noCache: true
84
+    //   }
85
+    // },
86
+    // {
87
+    //   path: '/Dialysisanalysis/nonnumerical',
88
+    //   component: () => import('@/xt_pages/Dialysisanalysis/nonnumerical'),
89
+    //   name: 'nonnumerical',
90
+    //   meta: {
91
+    //     title: '非数值类的列表展示',
92
+    //     noCache: true
93
+    //   }
94
+    // },
95
+    // {
96
+    //   path: '/Dialysisanalysis/dialysis_index',
97
+    //   component: () => import('@/xt_pages/Dialysisanalysis/dialysis_index'),
98
+    //   name: 'dialysis_index',
99
+    //   meta: {
100
+    //     title: '透析指标详情',
101
+    //     noCache: true
102
+    //   }
103
+    // },
104
+   
105
+  
106
+  ]
107
+}

+ 92 - 18
src/router/modules/qcd.js View File

@@ -67,24 +67,98 @@ export default {
67 67
     //     noCache: true
68 68
     //   }
69 69
     // },
70
-    {
71
-      path: '/qcd/thyroidGland',
72
-      component: () => import('@/xt_pages/qcd/qualitycontrol/thyroidGland'),
73
-      name: 'thyroidGland',
74
-      meta: {
75
-        title: '甲状旁腺激素分析',
76
-        noCache: true
77
-      }
78
-    },
79
-    {
80
-      path: '/qcd/hemoglobin',
81
-      component: () => import('@/xt_pages/qcd/hemoglobin/index'),
82
-      name: 'index',
83
-      meta: {
84
-        title: '血红蛋白',
85
-        noCache: true
86
-      }
87
-    },
70
+    
71
+    
72
+    // {
73
+    //   path: '/qcd/thyroidGland',
74
+    //   component: () => import('@/xt_pages/qcd/qualitycontrol/thyroidGland'),
75
+    //   name: 'thyroidGland',
76
+    //   meta: {
77
+    //     title: '甲状旁腺激素分析',
78
+    //     noCache: true
79
+    //   }
80
+    // },
81
+    // {
82
+    //   path: '/qcd/hemoglobin',
83
+    //   component: () => import('@/xt_pages/qcd/hemoglobin/index'),
84
+    //   name: 'index',
85
+    //   meta: {
86
+    //     title: '血红蛋白',
87
+    //     noCache: true
88
+    //   }
89
+    // },
90
+    // {
91
+    //   path: '/qcd/bloodPotassium',
92
+    //   component: () => import('@/xt_pages/qcd/bloodPotassium/index'),
93
+    //   name: 'index',
94
+    //   meta: {
95
+    //     title: '血钾',
96
+    //     noCache: true
97
+    //   }
98
+    // },
99
+    // {
100
+    //   path: '/qcd/albumin',
101
+    //   component: () => import('@/xt_pages/qcd/albumin/index'),
102
+    //   name: 'index',
103
+    //   meta: {
104
+    //     title: '白蛋白',
105
+    //     noCache: true
106
+    //   }
107
+    // },
108
+    // {
109
+    //   path: '/qcd/bloodPhosphorus',
110
+    //   component: () => import('@/xt_pages/qcd/bloodPhosphorus/index'),
111
+    //   name: 'index',
112
+    //   meta: {
113
+    //     title: '血磷',
114
+    //     noCache: true
115
+    //   }
116
+    // },
117
+    // {
118
+    //   path: '/qcd/calcium',
119
+    //   component: () => import('@/xt_pages/qcd/calcium/index'),
120
+    //   name: 'index',
121
+    //   meta: {
122
+    //     title: '钙',
123
+    //     noCache: true
124
+    //   }
125
+    // },
126
+    // {
127
+    //   path: '/qcd/platelets',
128
+    //   component: () => import('@/xt_pages/qcd/platelets/index'),
129
+    //   name: 'index',
130
+    //   meta: {
131
+    //     title: '血小板',
132
+    //     noCache: true
133
+    //   }
134
+    // },
135
+    // {
136
+    //   path: '/qcd/otherIndicators',
137
+    //   component: () => import('@/xt_pages/qcd/otherIndicators/index'),
138
+    //   name: 'index',
139
+    //   meta: {
140
+    //     title: '其他指标',
141
+    //     noCache: true
142
+    //   }
143
+    // },
144
+    // {
145
+    //   path: '/qcd/nonnumerical',
146
+    //   component: () => import('@/xt_pages/qcd/nonnumerical'),
147
+    //   name: 'nonnumerical',
148
+    //   meta: {
149
+    //     title: '非数值类的列表展示',
150
+    //     noCache: true
151
+    //   }
152
+    // },
153
+    // {
154
+    //   path: '/qcd/dialysis_index',
155
+    //   component: () => import('@/xt_pages/qcd/dialysis_index'),
156
+    //   name: 'dialysis_index',
157
+    //   meta: {
158
+    //     title: '透析指标详情',
159
+    //     noCache: true
160
+    //   }
161
+    // },
88 162
     {
89 163
       path: '/qcd/basicInformationAnalysis',
90 164
       component: () => import('@/xt_pages/qcd/basicInformationAnalysis'),

+ 249 - 0
src/xt_pages/Dialysisanalysis/albumin/albuminall.vue View File

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

+ 218 - 0
src/xt_pages/Dialysisanalysis/albumin/albuminalone.vue View File

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

+ 102 - 0
src/xt_pages/Dialysisanalysis/albumin/index.vue View File

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

+ 102 - 0
src/xt_pages/Dialysisanalysis/bloodPhosphorus/index.vue View File

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

+ 249 - 0
src/xt_pages/Dialysisanalysis/bloodPhosphorus/phosphorusall.vue View File

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

+ 217 - 0
src/xt_pages/Dialysisanalysis/bloodPhosphorus/phosphorusalone.vue View File

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

+ 102 - 0
src/xt_pages/Dialysisanalysis/bloodPotassium/index.vue View File

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

+ 249 - 0
src/xt_pages/Dialysisanalysis/bloodPotassium/potassiumall.vue View File

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

+ 217 - 0
src/xt_pages/Dialysisanalysis/bloodPotassium/potassiumalone.vue View File

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

+ 249 - 0
src/xt_pages/Dialysisanalysis/calcium/calciumall.vue View File

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

+ 217 - 0
src/xt_pages/Dialysisanalysis/calcium/calciumalone.vue View File

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

src/xt_pages/qcd/hemoglobin/index.vue → src/xt_pages/Dialysisanalysis/calcium/index.vue View File

@@ -1,4 +1,4 @@
1
-<!-- 血红蛋白 -->
1
+<!-- -->
2 2
 <template>
3 3
     <div class="main-contain">
4 4
       <div class="position">
@@ -8,11 +8,15 @@
8 8
         <div class="page_patientControlAnalysis">
9 9
             <el-tabs v-model="activeName" @tab-click="handleClick" >
10 10
                 <el-tab-pane label="统计全部" name="first">
11
-                    <!-- <totalSstatistics></totalSstatistics> -->
11
+                  <keep-alive>
12
+                    <calciumall v-if="activeName == 'first'"></calciumall>
13
+                  </keep-alive>
12 14
                 </el-tab-pane>
13 15
                 
14 16
                 <el-tab-pane label="统计个人" name="second">
15
-                    <!-- <individual></individual> -->
17
+                  <keep-alive>
18
+                    <calciumalone v-if="activeName == 'second'"></calciumalone>
19
+                  </keep-alive>
16 20
                 </el-tab-pane>
17 21
             
18 22
             </el-tabs>
@@ -24,14 +28,14 @@
24 28
 <script>
25 29
 import echarts from 'echarts'
26 30
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
27
-// import totalSstatistics from './totalSstatistics.vue'
28
-// import individual from './individual.vue'
31
+import calciumall from './calciumall'
32
+import calciumalone from './calciumalone.vue'
29 33
 export default {
30 34
     name:'thyroidGland',
31 35
     components: {
32 36
         BreadCrumb,
33
-        // totalSstatistics,
34
-        // individual
37
+        calciumall,
38
+        calciumalone
35 39
     },
36 40
     data() {
37 41
         return {

+ 167 - 0
src/xt_pages/Dialysisanalysis/dialysis_index.vue View File

@@ -0,0 +1,167 @@
1
+<template>
2
+
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
+          <div class="content_top">
10
+            <div>
11
+                <span>查询时间:</span>
12
+                <el-date-picker
13
+                v-model="stat_time"
14
+                type="date"
15
+                placeholder="选择日期">
16
+                </el-date-picker>
17
+                <span>-</span>
18
+                <el-date-picker
19
+                v-model="end_time"
20
+                type="date"
21
+                placeholder="选择日期">
22
+                </el-date-picker>
23
+                <el-select v-model="value" placeholder="请选择">
24
+                    <el-option
25
+                    v-for="item in options"
26
+                    :key="item.value"
27
+                    :label="item.label"
28
+                    :value="item.value">
29
+                    </el-option>
30
+                </el-select>
31
+                <el-select v-model="value" placeholder="请选择">
32
+                    <el-option
33
+                    v-for="item in options"
34
+                    :key="item.value"
35
+                    :label="item.label"
36
+                    :value="item.value">
37
+                    </el-option>
38
+                </el-select>
39
+                <el-button type="primary">查询</el-button>
40
+            </div>
41
+            <div>
42
+                <el-button type="primary">设置</el-button>
43
+                <el-button type="primary">打印</el-button>
44
+                <el-button type="primary">导出</el-button>
45
+            </div>
46
+          </div>
47
+       <div >
48
+        <el-row :gutter="20">
49
+            <!-- <el-col :span="4">
50
+              <div class="grid-content bg-purple">
51
+                
52
+                <el-table
53
+                :data="tableData"
54
+                border
55
+                style="width: 100%">
56
+                    <el-table-column
57
+                        align="center"
58
+                        prop="date"
59
+                        label="透析号"
60
+                       >
61
+                    </el-table-column>
62
+                    <el-table-column
63
+                        align="center"
64
+                        prop="name"
65
+                        label="姓名"
66
+                        >
67
+                    </el-table-column>
68
+                </el-table>
69
+              </div>
70
+            </el-col> -->
71
+            <el-col :span="24">
72
+               <div class="grid-content bg-purple">
73
+                <el-table
74
+                    :data="tableData"
75
+                    style="width: 100%"
76
+                    border
77
+                    align="center"
78
+                    max-height="450">
79
+                    <el-table-column
80
+                    fixed
81
+                    prop="date"
82
+                    label="序号"
83
+                   >
84
+                    </el-table-column>
85
+                    <el-table-column
86
+                    prop="name"
87
+                    label="透析号"
88
+                    >
89
+                    </el-table-column>
90
+                    <el-table-column
91
+                    prop="province"
92
+                    label="姓名"
93
+                    >
94
+                    </el-table-column>
95
+                    <el-table-column
96
+                    prop="province"
97
+                    label="白蛋白(g/L)"
98
+                    >
99
+                    </el-table-column>
100
+                    <el-table-column
101
+                    fixed
102
+                    prop="date"
103
+                    label="血红蛋白(g/L)"
104
+                   >
105
+                    </el-table-column>
106
+                    <el-table-column
107
+                    prop="name"
108
+                    label="血钾(mmol/L)"
109
+                    >
110
+                    </el-table-column>
111
+                    <el-table-column
112
+                    prop="province"
113
+                    label="钙(mmol/L)"
114
+                    >
115
+                    </el-table-column>
116
+                    <el-table-column
117
+                    prop="province"
118
+                    label="无机磷(mmol/L)"
119
+                    >
120
+                    </el-table-column>
121
+                    <el-table-column
122
+                    prop="province"
123
+                    label="甲状旁腺激素(pmol/L)"
124
+                    >
125
+                    </el-table-column>
126
+                </el-table>
127
+               </div>
128
+           </el-col>
129
+        </el-row>
130
+       </div>
131
+        </div>
132
+      </div>
133
+    </div>
134
+</template>
135
+<script>
136
+export default{
137
+    data() {
138
+        return {
139
+            inputValue:'',
140
+            stat_time:'',
141
+            end_time:'',
142
+            value:'',
143
+            tableData:[],
144
+        }
145
+    },
146
+    created(){
147
+        
148
+    },
149
+    mounted() {
150
+        
151
+    },
152
+    methods:{
153
+        handleSubmit(){
154
+            console.log('asdfa');
155
+        },
156
+       
157
+    },
158
+    
159
+}
160
+</script>
161
+<style lang="scss" scoped>
162
+.content_top{
163
+    display: flex;
164
+    justify-content: space-around;
165
+    margin: 20px;
166
+}
167
+</style>

+ 248 - 0
src/xt_pages/Dialysisanalysis/hemoglobin/hemoglobinall.vue View File

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

+ 217 - 0
src/xt_pages/Dialysisanalysis/hemoglobin/hemoglobinalone.vue View File

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

+ 102 - 0
src/xt_pages/Dialysisanalysis/hemoglobin/index.vue View File

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

+ 209 - 0
src/xt_pages/Dialysisanalysis/nonnumerical.vue View File

@@ -0,0 +1,209 @@
1
+<template>
2
+
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
+          <div class="content_top">
10
+            <el-autocomplete
11
+            class="inline-input"
12
+            v-model="inputValue"
13
+            :fetch-suggestions="querySearch"
14
+            :trigger-on-focus="false"
15
+            placeholder="请输入患者名字或透析号"
16
+            @select="handleSubmit"
17
+            ></el-autocomplete>
18
+            <div>
19
+                <span>查询时间:</span>
20
+                <el-date-picker
21
+                v-model="stat_time"
22
+                type="date"
23
+                placeholder="选择日期">
24
+                </el-date-picker>
25
+                <span>-</span>
26
+                <el-date-picker
27
+                v-model="end_time"
28
+                type="date"
29
+                placeholder="选择日期">
30
+                </el-date-picker>
31
+                <el-select v-model="value" placeholder="请选择">
32
+                    <el-option
33
+                    v-for="item in options"
34
+                    :key="item.value"
35
+                    :label="item.label"
36
+                    :value="item.value">
37
+                    </el-option>
38
+                </el-select>
39
+                <el-select v-model="value" placeholder="请选择">
40
+                    <el-option
41
+                    v-for="item in options"
42
+                    :key="item.value"
43
+                    :label="item.label"
44
+                    :value="item.value">
45
+                    </el-option>
46
+                </el-select>
47
+                <el-button type="primary">查询</el-button>
48
+            </div>
49
+            <div>
50
+                <el-button type="primary">打印</el-button>
51
+                <el-button type="primary">导出</el-button>
52
+            </div>
53
+          </div>
54
+       <div style="margin-bottom:20px;"> <h2>患者列表</h2></div>
55
+       <div >
56
+        <el-row :gutter="20">
57
+            <el-col :span="4">
58
+              <div class="grid-content bg-purple">
59
+                
60
+                <el-table
61
+                :data="tableData"
62
+                border
63
+                style="width: 100%">
64
+                    <el-table-column
65
+                        align="center"
66
+                        prop="date"
67
+                        label="透析号"
68
+                       >
69
+                    </el-table-column>
70
+                    <el-table-column
71
+                        align="center"
72
+                        prop="name"
73
+                        label="姓名"
74
+                        >
75
+                    </el-table-column>
76
+                </el-table>
77
+              </div>
78
+            </el-col>
79
+            <el-col :span="19">
80
+               <div class="grid-content bg-purple">
81
+                <el-table
82
+                    :data="tableData"
83
+                    style="width: 100%"
84
+                    border
85
+                    align="center"
86
+                    max-height="250">
87
+                    <el-table-column
88
+                    fixed
89
+                    prop="date"
90
+                    label="名字"
91
+                   >
92
+                    </el-table-column>
93
+                    <el-table-column
94
+                    prop="name"
95
+                    label="检查日期"
96
+                    >
97
+                    </el-table-column>
98
+                    <el-table-column
99
+                    prop="province"
100
+                    label="乙型肝炎病毒表面抗体(AntiHBs)"
101
+                    >
102
+                    </el-table-column>
103
+                    <el-table-column
104
+                    prop="province"
105
+                    label="参考值"
106
+                    >
107
+                    </el-table-column>
108
+                </el-table>
109
+               </div>
110
+           </el-col>
111
+        </el-row>
112
+       </div>
113
+        </div>
114
+      </div>
115
+    </div>
116
+</template>
117
+<script>
118
+export default{
119
+    data() {
120
+        return {
121
+            inputValue:'',
122
+            stat_time:'',
123
+            end_time:'',
124
+            value:'',
125
+            // myChartStyle: { float: "left", width: "100%", height: "400px" },//图表样式
126
+            tableData:[],
127
+        }
128
+    },
129
+    created(){
130
+        
131
+    },
132
+    mounted() {
133
+        // this.$nextTick(function() {
134
+            // this.initEcharts();
135
+		// })  
136
+        // this.myChart = echarts.init(document.getElementById("germychart"));
137
+        //     this.myChart.setOption(option);
138
+            //随着屏幕大小调节图表
139
+            // window.addEventListener("resize", () => {
140
+            //     this.myChart.resize();
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:'血红蛋白g/L'}]
171
+        //         },
172
+        //         series: [
173
+        //         {
174
+        //             data: this.opinionData,
175
+        //             name:'血红蛋白g/L',
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
+}
202
+</script>
203
+<style lang="scss" scoped>
204
+.content_top{
205
+    display: flex;
206
+    justify-content: space-around;
207
+    margin: 20px;
208
+}
209
+</style>

+ 102 - 0
src/xt_pages/Dialysisanalysis/otherIndicators/index.vue View File

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

+ 249 - 0
src/xt_pages/Dialysisanalysis/otherIndicators/otherall.vue View File

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

+ 217 - 0
src/xt_pages/Dialysisanalysis/otherIndicators/otheralone.vue View File

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

+ 102 - 0
src/xt_pages/Dialysisanalysis/platelets/index.vue View File

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

+ 249 - 0
src/xt_pages/Dialysisanalysis/platelets/plateletsall.vue View File

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

+ 217 - 0
src/xt_pages/Dialysisanalysis/platelets/plateletsalone.vue View File

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

+ 243 - 0
src/xt_pages/Dialysisanalysis/qualitycontrol/individual.vue View File

@@ -0,0 +1,243 @@
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 style="margin: 20px 0px;">
49
+        <h2 >患者列表</h2>
50
+       </div>
51
+       <div >
52
+        <el-row :gutter="20">
53
+            <el-col :span="4">
54
+              <div class="grid-content bg-purple">
55
+                <!-- <span style="font-size: 18px;font-weight: bold;display: block;">患者列表</span> -->
56
+                <!-- <h2>患者列表</h2> -->
57
+                <el-table
58
+                :data="tableData"
59
+                border
60
+                style="width: 100%">
61
+                    <el-table-column
62
+                        align="center"
63
+                        prop="date"
64
+                        label="透析号"
65
+                       >
66
+                    </el-table-column>
67
+                    <el-table-column
68
+                        align="center"
69
+                        prop="name"
70
+                        label="姓名"
71
+                        >
72
+                    </el-table-column>
73
+                </el-table>
74
+              </div>
75
+            </el-col>
76
+            <el-col :span="19">
77
+               <div class="grid-content bg-purple">
78
+                <div class="echart" id="germychart" style="width:100%;height:400px"></div>
79
+                <el-table
80
+                    :data="tableData"
81
+                    style="width: 100%"
82
+                    border
83
+                    align="center"
84
+                    max-height="250">
85
+                    <el-table-column
86
+                    fixed
87
+                    prop="date"
88
+                    label="姓名"
89
+                   >
90
+                    </el-table-column>
91
+                    <el-table-column
92
+                    prop="name"
93
+                    label="检查日期"
94
+                    >
95
+                    </el-table-column>
96
+                    <el-table-column
97
+                    prop="province"
98
+                    label="甲状旁腺激素(pg/ml)"
99
+                    >
100
+                    </el-table-column>
101
+                    
102
+                </el-table>
103
+               </div>
104
+           </el-col>
105
+        </el-row>
106
+       </div>
107
+
108
+    </div>
109
+</template>
110
+<script>
111
+  import * as echarts from 'echarts'
112
+export default{
113
+    // props: {
114
+    //     width: {
115
+    //         type: String,
116
+    //         default: "100%"
117
+    //     },
118
+    //     height: {
119
+    //         type: String,
120
+    //         default: "400px"
121
+    //     },
122
+    
123
+    // },
124
+    data() {
125
+        return {
126
+            inputValue:'',
127
+            stat_time:'',
128
+            end_time:'',
129
+            value:'',
130
+            querySearch:'',
131
+            tableData:[],
132
+            options:[],
133
+            myChartTwo: {},
134
+            xData: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], //横坐标
135
+            opinionData: [23, 24, 18, 25, 27, 28, 25], //人数数据
136
+            // myChartStyle: { float: "left", width: "100%", height: "400px" },//图表样式
137
+            
138
+        }
139
+    },
140
+    created(){
141
+        
142
+       
143
+    },
144
+    mounted() {
145
+        // this.$nextTick(function() {
146
+            this.initEcharts();
147
+            // this.myChartTwo = echarts.init(document.getElementById("germychart"));
148
+            // this.myChartTwo.setOption(option);
149
+            // // //随着屏幕大小调节图表
150
+            // window.addEventListener("resize", () => {
151
+            //     console.log('asdfgfdhdgfdghdffgasda');
152
+            //     this.myChartTwo.resize();
153
+            // });
154
+            
155
+            // window.onresize = this.myChartTwo.resize;
156
+		// })  
157
+    },
158
+    // beforeDestroy(){
159
+    //     window.addEventListener("resize", () => {
160
+    //         this.myChartTwo.resize();
161
+    //     });
162
+    //     const quality = document.getElementById("germychart");
163
+    //     quality.addEventListener("transitionend", this.__resizeHanlder);
164
+    // },
165
+    methods:{
166
+        handleSubmit(){
167
+            console.log('asdfa');
168
+            this.querySearch
169
+        },
170
+        initEcharts() {
171
+            this.myChartTwo = echarts.init(document.getElementById("germychart"));
172
+            console.log('zxczvbbnm,m');
173
+            const option = {
174
+                xAxis: {
175
+                    type: 'category',
176
+                        boundaryGap:true,
177
+                        axisTick:{
178
+                            alignWithLabel:true //保证刻度线和标签对齐
179
+                        },
180
+                    data: this.xData,
181
+                    splitNumber:this.xData.length, //纵坐标数
182
+                    interval:this.xData //强制设置坐标轴分割间隔
183
+                },
184
+                yAxis: {
185
+                    type: 'value',
186
+                    boundaryGap: true,
187
+                    splitNumber:4, //纵坐标数
188
+                    interval:10 //强制设置坐标轴分割间隔
189
+                },
190
+                legend: {
191
+                    // show: true,
192
+                    align:'left',//文字在前图标在后
193
+                    left:'15%',
194
+                    top:'5%',
195
+                    data: [{name:'甲状旁腺激素 pg/ml'}]
196
+                },
197
+                grid:{
198
+                    show:true,
199
+                    left: "5%",
200
+                    right: "5%",
201
+                    bottom: "5%"
202
+                },
203
+                series: [
204
+                {
205
+                    data: this.opinionData,
206
+                    name:'甲状旁腺激素 pg/ml',
207
+                    type: "line",// 类型设置为折线图
208
+                    symbol: 'circle',
209
+                    itemStyle: {
210
+                        normal: {
211
+                            color: '#409eff', //改变折线点的颜色#a80000
212
+                            lineStyle: {
213
+                                color: '#409eff' //改变折线颜色
214
+                            }
215
+                        }
216
+                    },
217
+
218
+                },
219
+                
220
+                ],
221
+                
222
+            };
223
+            
224
+            this.myChartTwo.setOption(option);
225
+            // //随着屏幕大小调节图表
226
+            window.addEventListener("resize", () => {
227
+                console.log('123456788');
228
+                this.myChartTwo.resize();
229
+            });
230
+            
231
+            // window.onresize = this.myChartTwo.resize;
232
+        },
233
+    },
234
+    
235
+}
236
+</script>
237
+<style lang="scss" scoped>
238
+.content_top{
239
+    display: flex;
240
+    justify-content: space-around;
241
+    margin-bottom: 20px;
242
+}
243
+</style>

+ 103 - 0
src/xt_pages/Dialysisanalysis/qualitycontrol/thyroidGland.vue View File

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

+ 255 - 0
src/xt_pages/Dialysisanalysis/qualitycontrol/totalSstatistics.vue View File

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

+ 167 - 0
src/xt_pages/qcd/dialysis_index.vue View File

@@ -0,0 +1,167 @@
1
+<template>
2
+
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
+          <div class="content_top">
10
+            <div>
11
+                <span>查询时间:</span>
12
+                <el-date-picker
13
+                v-model="stat_time"
14
+                type="date"
15
+                placeholder="选择日期">
16
+                </el-date-picker>
17
+                <span>-</span>
18
+                <el-date-picker
19
+                v-model="end_time"
20
+                type="date"
21
+                placeholder="选择日期">
22
+                </el-date-picker>
23
+                <el-select v-model="value" placeholder="请选择">
24
+                    <el-option
25
+                    v-for="item in options"
26
+                    :key="item.value"
27
+                    :label="item.label"
28
+                    :value="item.value">
29
+                    </el-option>
30
+                </el-select>
31
+                <el-select v-model="value" placeholder="请选择">
32
+                    <el-option
33
+                    v-for="item in options"
34
+                    :key="item.value"
35
+                    :label="item.label"
36
+                    :value="item.value">
37
+                    </el-option>
38
+                </el-select>
39
+                <el-button type="primary">查询</el-button>
40
+            </div>
41
+            <div>
42
+                <el-button type="primary">设置</el-button>
43
+                <el-button type="primary">打印</el-button>
44
+                <el-button type="primary">导出</el-button>
45
+            </div>
46
+          </div>
47
+       <div >
48
+        <el-row :gutter="20">
49
+            <!-- <el-col :span="4">
50
+              <div class="grid-content bg-purple">
51
+                
52
+                <el-table
53
+                :data="tableData"
54
+                border
55
+                style="width: 100%">
56
+                    <el-table-column
57
+                        align="center"
58
+                        prop="date"
59
+                        label="透析号"
60
+                       >
61
+                    </el-table-column>
62
+                    <el-table-column
63
+                        align="center"
64
+                        prop="name"
65
+                        label="姓名"
66
+                        >
67
+                    </el-table-column>
68
+                </el-table>
69
+              </div>
70
+            </el-col> -->
71
+            <el-col :span="24">
72
+               <div class="grid-content bg-purple">
73
+                <el-table
74
+                    :data="tableData"
75
+                    style="width: 100%"
76
+                    border
77
+                    align="center"
78
+                    max-height="450">
79
+                    <el-table-column
80
+                    fixed
81
+                    prop="date"
82
+                    label="序号"
83
+                   >
84
+                    </el-table-column>
85
+                    <el-table-column
86
+                    prop="name"
87
+                    label="透析号"
88
+                    >
89
+                    </el-table-column>
90
+                    <el-table-column
91
+                    prop="province"
92
+                    label="姓名"
93
+                    >
94
+                    </el-table-column>
95
+                    <el-table-column
96
+                    prop="province"
97
+                    label="白蛋白(g/L)"
98
+                    >
99
+                    </el-table-column>
100
+                    <el-table-column
101
+                    fixed
102
+                    prop="date"
103
+                    label="血红蛋白(g/L)"
104
+                   >
105
+                    </el-table-column>
106
+                    <el-table-column
107
+                    prop="name"
108
+                    label="血钾(mmol/L)"
109
+                    >
110
+                    </el-table-column>
111
+                    <el-table-column
112
+                    prop="province"
113
+                    label="钙(mmol/L)"
114
+                    >
115
+                    </el-table-column>
116
+                    <el-table-column
117
+                    prop="province"
118
+                    label="无机磷(mmol/L)"
119
+                    >
120
+                    </el-table-column>
121
+                    <el-table-column
122
+                    prop="province"
123
+                    label="甲状旁腺激素(pmol/L)"
124
+                    >
125
+                    </el-table-column>
126
+                </el-table>
127
+               </div>
128
+           </el-col>
129
+        </el-row>
130
+       </div>
131
+        </div>
132
+      </div>
133
+    </div>
134
+</template>
135
+<script>
136
+export default{
137
+    data() {
138
+        return {
139
+            inputValue:'',
140
+            stat_time:'',
141
+            end_time:'',
142
+            value:'',
143
+            tableData:[],
144
+        }
145
+    },
146
+    created(){
147
+        
148
+    },
149
+    mounted() {
150
+        
151
+    },
152
+    methods:{
153
+        handleSubmit(){
154
+            console.log('asdfa');
155
+        },
156
+       
157
+    },
158
+    
159
+}
160
+</script>
161
+<style lang="scss" scoped>
162
+.content_top{
163
+    display: flex;
164
+    justify-content: space-around;
165
+    margin: 20px;
166
+}
167
+</style>

+ 58 - 23
src/xt_pages/qcd/qualitycontrol/individual.vue View File

@@ -45,12 +45,15 @@
45 45
                 <el-button type="primary">导出</el-button>
46 46
             </div>
47 47
        </div>
48
+       <div style="margin: 20px 0px;">
49
+        <h2 >患者列表</h2>
50
+       </div>
48 51
        <div >
49 52
         <el-row :gutter="20">
50 53
             <el-col :span="4">
51 54
               <div class="grid-content bg-purple">
52 55
                 <!-- <span style="font-size: 18px;font-weight: bold;display: block;">患者列表</span> -->
53
-                <h2>患者列表</h2>
56
+                <!-- <h2>患者列表</h2> -->
54 57
                 <el-table
55 58
                 :data="tableData"
56 59
                 border
@@ -72,7 +75,7 @@
72 75
             </el-col>
73 76
             <el-col :span="19">
74 77
                <div class="grid-content bg-purple">
75
-                <div class="echart" id="germychart" :style={width:width,height:height}></div>
78
+                <div class="echart" id="germychart" style="width:100%;height:400px"></div>
76 79
                 <el-table
77 80
                     :data="tableData"
78 81
                     style="width: 100%"
@@ -107,44 +110,66 @@
107 110
 <script>
108 111
   import * as echarts from 'echarts'
109 112
 export default{
110
-    props: {
111
-   
112
-        width: {
113
-            type: String,
114
-            default: "100%"
115
-        },
116
-        height: {
117
-            type: String,
118
-            default: "400px"
119
-        },
113
+    // props: {
114
+    //     width: {
115
+    //         type: String,
116
+    //         default: "100%"
117
+    //     },
118
+    //     height: {
119
+    //         type: String,
120
+    //         default: "400px"
121
+    //     },
120 122
     
121
-    },
123
+    // },
122 124
     data() {
123 125
         return {
124 126
             inputValue:'',
125 127
             stat_time:'',
126 128
             end_time:'',
127 129
             value:'',
128
-            myChart: {},
130
+            querySearch:'',
131
+            tableData:[],
132
+            options:[],
133
+            myChartTwo: {},
129 134
             xData: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], //横坐标
130 135
             opinionData: [23, 24, 18, 25, 27, 28, 25], //人数数据
131 136
             // myChartStyle: { float: "left", width: "100%", height: "400px" },//图表样式
132
-            tableData:[],
137
+            
133 138
         }
134 139
     },
135 140
     created(){
136 141
         
142
+       
137 143
     },
138 144
     mounted() {
139 145
         // this.$nextTick(function() {
140 146
             this.initEcharts();
147
+            // this.myChartTwo = echarts.init(document.getElementById("germychart"));
148
+            // this.myChartTwo.setOption(option);
149
+            // // //随着屏幕大小调节图表
150
+            // window.addEventListener("resize", () => {
151
+            //     console.log('asdfgfdhdgfdghdffgasda');
152
+            //     this.myChartTwo.resize();
153
+            // });
154
+            
155
+            // window.onresize = this.myChartTwo.resize;
141 156
 		// })  
142 157
     },
158
+    // beforeDestroy(){
159
+    //     window.addEventListener("resize", () => {
160
+    //         this.myChartTwo.resize();
161
+    //     });
162
+    //     const quality = document.getElementById("germychart");
163
+    //     quality.addEventListener("transitionend", this.__resizeHanlder);
164
+    // },
143 165
     methods:{
144 166
         handleSubmit(){
145 167
             console.log('asdfa');
168
+            this.querySearch
146 169
         },
147 170
         initEcharts() {
171
+            this.myChartTwo = echarts.init(document.getElementById("germychart"));
172
+            console.log('zxczvbbnm,m');
148 173
             const option = {
149 174
                 xAxis: {
150 175
                     type: 'category',
@@ -163,12 +188,18 @@ export default{
163 188
                     interval:10 //强制设置坐标轴分割间隔
164 189
                 },
165 190
                 legend: {
166
-                    show: true,
191
+                    // show: true,
167 192
                     align:'left',//文字在前图标在后
168 193
                     left:'15%',
169 194
                     top:'5%',
170 195
                     data: [{name:'甲状旁腺激素 pg/ml'}]
171 196
                 },
197
+                grid:{
198
+                    show:true,
199
+                    left: "5%",
200
+                    right: "5%",
201
+                    bottom: "5%"
202
+                },
172 203
                 series: [
173 204
                 {
174 205
                     data: this.opinionData,
@@ -189,14 +220,18 @@ export default{
189 220
                 ],
190 221
                 
191 222
             };
192
-            this.myChart = echarts.init(document.getElementById("germychart"));
193
-            this.myChart.setOption(option);
194
-            //随着屏幕大小调节图表
195
-            // window.addEventListener("resize", () => {
196
-            //     this.myChart.resize();
197
-            // });
223
+            
224
+            this.myChartTwo.setOption(option);
225
+            // //随着屏幕大小调节图表
226
+            window.addEventListener("resize", () => {
227
+                console.log('123456788');
228
+                this.myChartTwo.resize();
229
+            });
230
+            
231
+            // window.onresize = this.myChartTwo.resize;
198 232
         },
199
-    }
233
+    },
234
+    
200 235
 }
201 236
 </script>
202 237
 <style lang="scss" scoped>

+ 9 - 4
src/xt_pages/qcd/qualitycontrol/thyroidGland.vue View File

@@ -8,11 +8,15 @@
8 8
         <div class="page_patientControlAnalysis">
9 9
             <el-tabs v-model="activeName" @tab-click="handleClick" >
10 10
                 <el-tab-pane label="统计全部" name="first">
11
-                    <totalSstatistics style="width: 100%; height: 400px;"></totalSstatistics>
11
+                  <keep-alive>
12
+                    <totalSstatistics v-if="activeName == 'first'"></totalSstatistics>
13
+                  </keep-alive>
12 14
                 </el-tab-pane>
13 15
                 
14 16
                 <el-tab-pane label="统计个人" name="second">
15
-                    <individual></individual>
17
+                  <keep-alive>
18
+                    <individual v-if="activeName == 'second'"></individual>
19
+                  </keep-alive>
16 20
                 </el-tab-pane>
17 21
             
18 22
             </el-tabs>
@@ -22,7 +26,7 @@
22 26
   </template>
23 27
   
24 28
 <script>
25
-import echarts from 'echarts'
29
+// import echarts from 'echarts'
26 30
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
27 31
 import totalSstatistics from './totalSstatistics.vue'
28 32
 import individual from './individual.vue'
@@ -35,7 +39,8 @@ export default {
35 39
     },
36 40
     data() {
37 41
         return {
38
-            activeName: 'first'
42
+            activeName: 'first',
43
+          
39 44
         }
40 45
     },
41 46
     methods:{

+ 233 - 190
src/xt_pages/qcd/qualitycontrol/totalSstatistics.vue View File

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

+ 5 - 4
src/xt_pages/stock/stockInOrderDetailPrint.vue View File

@@ -10,10 +10,11 @@
10 10
         </div>
11 11
         <div class="app-container" style="background-color: white;">
12 12
             <div id="print_content">
13
-                <div class="print_main_content" v-for="(it,index) in warehousingInfo" :key="index">
14
-                    <div class="order_title_panl">
13
+                <div class="print_main_content" v-for="(it,index) in warehousingInfo" :key="index" >
14
+                  <div style="margin-bottom: 20px; page-break-after: always;">
15
+                    <div class="order_title_panl" style="text-align:center;">
15 16
                         <div style="font-size:22px;font-weight:bold;">{{ orgName }}</div>
16
-                        <span style="font-weight:500;font-size:18px;">耗材入库登记单</span>
17
+                        <span style="font-weight:500;font-size:18px; text-align: center;">耗材入库登记单</span>
17 18
                     </div>
18 19
                     <div style="display:flex;justify-content: space-between;">
19 20
                       <div style="text-align:left;margin-bottom:1px;font-size: 18px;">
@@ -80,6 +81,7 @@
80 81
                             <div style="width:70px;">制单人:</div><div style="width:100px;">{{ getXuserName(it.creater) }}</div>
81 82
                        </div>
82 83
                     </div>
84
+                  </div>
83 85
                 </div>
84 86
             </div>
85 87
         </div>
@@ -389,7 +391,6 @@ export default {
389 391
 
390 392
   .order_title_panl {
391 393
     text-align: center;
392
-
393 394
     .main_title {
394 395
       font-size: 18px;
395 396
       line-height: 40px;

+ 23 - 17
src/xt_pages/user/components/PatientDetail.vue View File

@@ -841,10 +841,10 @@
841 841
           <div class="order_title">{{ orgname }} 血液透析门诊病历</div>
842 842
           <div >
843 843
             <table >
844
-              <thead>
845
-                <!-- 用 thead 规定好宽度 -->
844
+              <!-- 用 thead 规定好宽度 -->
845
+              <!-- <thead>
846 846
                 <tr v-show="false">
847
-                  <td width="5%"></td>
847
+                  <td width="7%"></td>
848 848
                   <td width="10%"></td>
849 849
                   <td width="5%"></td>
850 850
                   <td width="10%"></td>
@@ -853,10 +853,10 @@
853 853
                   <td width="5%"></td>
854 854
                   <td width="30%"></td>
855 855
                 </tr>
856
-              </thead>
856
+              </thead> -->
857 857
               <tbody>
858 858
                 <tr>
859
-                  <td valign="top"><div class="td_proj_title">姓名</div></td>
859
+                  <td valign="top" style="width:8%"><div class="td_proj_title">姓名</div></td>
860 860
                   <td valign="top">
861 861
                     <div class="td_proj_content">{{ patientPrint.name }}</div>
862 862
                   </td>
@@ -932,12 +932,16 @@
932 932
                   </td>
933 933
                 </tr>
934 934
                 <tr>
935
-                  <td><div class="td_proj_title">主诉</div></td>
936
-                  <td colspan="7">
937
-                    <div
938
-                      class="td_proj_content td_align_left"
935
+                  <td style="padding: 0px 0px;">
936
+                    主诉
937
+                    <!-- <div class="td_proj_title">主诉</div> -->
938
+                  </td>
939
+                  <!-- class="td_proj_content td_align_left" -->
940
+                  <td colspan="7" style="text-align: left; padding: 2px 0px;"> 
941
+                    {{ patientPrint.patient_complains }}
942
+                    <!-- <div style="padding: 0px 0px;"
939 943
                       v-html="patientPrint.patient_complains"
940
-                    ></div>
944
+                    ></div> -->
941 945
                   </td>
942 946
                 </tr>
943 947
                 <tr >
@@ -1086,6 +1090,7 @@
1086 1090
 <script>
1087 1091
 import { getDataConfig } from "@/utils/data";
1088 1092
 import { getToken } from "@/api/qiniu";
1093
+// import print from "print-js";
1089 1094
 import {
1090 1095
   getFileExtension,
1091 1096
   isCardNo,
@@ -1558,7 +1563,7 @@ export default {
1558 1563
 
1559 1564
             var contagionsArr = response.data.data.contagions;
1560 1565
             var diseasesArr = response.data.data.diseases;
1561
-
1566
+              console.log('123456',response.data.data);
1562 1567
             this.patientPrint = patietInfo;
1563 1568
 
1564 1569
             var sourceLen = this.sourceOptions.length;
@@ -1609,9 +1614,10 @@ export default {
1609 1614
               "{y}-{m}-{d}"
1610 1615
             );
1611 1616
             this.patientPrint.age = jsGetAge(this.patientPrint.birthday, "-");
1612
-
1617
+            console.log('qwerewqrt',patietInfo.patient_complains);
1613 1618
             this.patientPrint.patient_complains =
1614 1619
               patietInfo.patient_complains.replace(/\n/g, "<br/>");
1620
+              
1615 1621
             this.patientPrint.present_history =
1616 1622
               patietInfo.present_history.replace(/\n/g, "<br/>");
1617 1623
             this.patientPrint.past_history = patietInfo.past_history.replace(
@@ -2140,8 +2146,8 @@ export default {
2140 2146
   background-color: white;
2141 2147
   width: 960px;
2142 2148
   margin: 0 auto;
2143
-  padding: 0 0 20px 0;
2144
-  /* page-break-after: always; */
2149
+  padding: 0 0 0 0;
2150
+  page-break-after: always;
2145 2151
 }
2146 2152
 .print_main_content .order_title {
2147 2153
   text-align: center;
@@ -2159,16 +2165,16 @@ export default {
2159 2165
   border: 1px solid;
2160 2166
   text-align: center;
2161 2167
   /* font-size: 17px; */
2162
-  padding: 10px 8px;
2168
+  /* padding: 10px 8px; */
2163 2169
 }
2164 2170
 .td_proj_title {
2165 2171
   font-size: 18px;
2166
-  line-height: 25px;
2172
+  line-height: 20px;
2167 2173
   font-weight: 500;
2168 2174
 }
2169 2175
 .td_proj_content {
2170 2176
   font-size: 18px;
2171
-  line-height: 25px;
2177
+  line-height: 20px;
2172 2178
 }
2173 2179
 .td_align_left {
2174 2180
   text-align: left;