Ver código fonte

Merge branch '20230223_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20230223_pc_vue_new_branch

28169 8 meses atrás
pai
commit
97d69ad32d

+ 30 - 0
src/api/fapiao.js Ver arquivo

35
     params:params
35
     params:params
36
   })
36
   })
37
 }
37
 }
38
+
39
+export function GetSMSCode(params){
40
+  return request({
41
+    url:"/api/fapiao/sms/code",
42
+    methods:"get",
43
+    params:params
44
+  })
45
+}
46
+
47
+
48
+
49
+export function SMSLogin(params){
50
+  return request({
51
+    url:"/api/fapiao/sms/login",
52
+    methods:"get",
53
+    params:params
54
+  })
55
+}
56
+
57
+
58
+export function GetQRCode(params){
59
+  return request({
60
+    url:"/api/fapiao/qrcode/get",
61
+    methods:"get",
62
+    params:params
63
+  })
64
+}
65
+
66
+
67
+

+ 32 - 0
src/api/qcd.js Ver arquivo

261
     params: params
261
     params: params
262
   })
262
   })
263
 }
263
 }
264
+// 体重分析趋势
265
+export function Getpatinetweight(params) {
266
+  return request({
267
+    url: '/api/commonqc/patinet/weight',
268
+    method: 'get',
269
+    params: params
270
+  })
271
+}
272
+// 体重分析详情
273
+export function Getweightdetail(params) {
274
+  return request({
275
+    url: '/api/commonqc/weight/detail',
276
+    method: 'get',
277
+    params: params
278
+  })
279
+}
280
+// 血压趋势/api/commonqc/patinet/bp
281
+export function Getpatinetbp(params) {
282
+  return request({
283
+    url: '/api/commonqc/patinet/bp',
284
+    method: 'get',
285
+    params: params
286
+  })
287
+}
288
+// 血压分析详情
289
+export function Getbpdetail(params) {
290
+  return request({
291
+    url: '/api/commonqc/bp/detail',
292
+    method: 'get',
293
+    params: params
294
+  })
295
+}

+ 52 - 68
src/xt_pages/Dialysisanalysis/weightblood/components/after_Blood.vue Ver arquivo

154
                 width="">
154
                 width="">
155
               </el-table-column>
155
               </el-table-column>
156
               <el-table-column
156
               <el-table-column
157
-                prop="dialysis_date"
157
+                prop="PostDialysisBP"
158
                 label="透后血压"
158
                 label="透后血压"
159
                 width="">
159
                 width="">
160
               </el-table-column>
160
               </el-table-column>
184
 import * as echarts from 'echarts';
184
 import * as echarts from 'echarts';
185
 import XLSX from 'xlsx';
185
 import XLSX from 'xlsx';
186
 import { uParseTime } from "@/utils/tools";
186
 import { uParseTime } from "@/utils/tools";
187
-import {Getdialysistreatfinish,Getdialysistreatdetail} from '../../../../api/qcd'
187
+import {Getpatinetbp,Getbpdetail} from '../../../../api/qcd'
188
 import {getAllNurseList} from '@/api/fallassement'
188
 import {getAllNurseList} from '@/api/fallassement'
189
 import { getAllDoctorList} from "@/api/device"
189
 import { getAllDoctorList} from "@/api/device"
190
 import html2canvas from "html2canvas"
190
 import html2canvas from "html2canvas"
205
         limit:50,
205
         limit:50,
206
         total:0,
206
         total:0,
207
         tableData:[],
207
         tableData:[],
208
-        // status_options:[],
209
         nurseList:[],
208
         nurseList:[],
210
         operators:[],
209
         operators:[],
211
         docList:[],
210
         docList:[],
212
-        status_options:[{value:1,label:'达到透析处方时间'},{value:2,label:'超出处方时间'},{value:3,label:'未到达处方时间'}],
213
-        // status_options:[{value:1,label:'待定卧床'},{value:2,label:'<40KG'},{value:3,label:'40-50KG'},
214
-        //                 {value:4,label:'50-60KG'},{value:5,label:'<60-70KG'},{value:6,label:'>70KG'}
215
-        //                 ],
211
+        status_options:[],
212
+
216
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
213
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
217
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
214
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
218
         ],
215
         ],
219
-        mode_options:[{ id: 1, name: 'HD' },{ id: 2, name: 'HDF' },{ id: 3, name: 'HD + HP' },{ id: 4, name: 'HP' },
220
-          { id: 5, name: 'HF' },{ id: 6, name: 'SCUF' },{ id: 7, name: 'IUF' },{ id: 8, name: 'HFHD' },{ id: 9, name: 'HFHD+HP' },
221
-          { id: 10, name: 'PHF' },{ id: 11, name: 'HFR' },{ id: 12, name: 'HDF+HP' },{ id: 13, name: 'CRRT' },{ id: 14, name: '腹水回输' },
222
-          { id: 15, name: 'HD前置换' },{ id: 16, name: 'HD后置换' },{ id: 17, name: 'HDF前置换' },{ id: 18, name: 'HDF后置换' },
223
-          { id:19, name:"IUF+HD"},{ id:20, name:"UF"},{ id:21, name:"HD+"},{ id:22, name:"血浆胆红素吸附+HDF"},{ id:23, name:"血浆胆红素吸附"},
224
-          { id:24, name:"I-HDF"},{ id:25, name:"HD高通"},{ id:26, name:"CVVH"},{ id:27, name:"CVVHD"},{ id:28, name:"CVVHDF"},{ id:29, name:"PE"},
225
-        ],
226
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
216
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
227
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
217
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
228
         status_id:"",
218
         status_id:"",
238
         var chartDom = document.getElementById('mychart')
228
         var chartDom = document.getElementById('mychart')
239
         var myChart = echarts.init(chartDom);
229
         var myChart = echarts.init(chartDom);
240
         const params={
230
         const params={
241
-          start_date:this.start_date,
242
-          end_date:this.end_date
231
+          start_time:this.start_date,
232
+          end_time:this.end_date,
233
+          statistics_type:1
243
         }
234
         }
244
-        Getdialysistreatfinish(params).then(response =>{
235
+        Getpatinetbp(params).then(response =>{
245
           if(response.data.state ==1){
236
           if(response.data.state ==1){
246
-            const list = response.data.data.data
237
+            const list = response.data.data.list
247
             const xAxis = []
238
             const xAxis = []
248
             const yAxis = []
239
             const yAxis = []
249
-
250
-            const total = response.data.data.total
240
+            var option = []
241
+            var total =0
251
             for(let key in list){
242
             for(let key in list){
252
               const obj={
243
               const obj={
253
-                name:key,
254
-                value:list[key]
244
+                name:list[key].name,
245
+                value:list[key].total
255
               }
246
               }
256
               xAxis.push(obj)
247
               xAxis.push(obj)
257
-              yAxis.push(key)
248
+              yAxis.push(list[key].name)
249
+              total = total + list[key].total
250
+              const obj2 ={
251
+                value:(key*1)+1,
252
+                label:list[key].name
253
+              }
254
+              option.push(obj2)
258
             }
255
             }
259
-            const status = []
260
-            // for(let i in yAxis){
261
-            //   const obj ={
262
-            //     value:(i*1)+1,
263
-            //     label:yAxis[i]
264
-            //   }
265
-            //   status.push(obj)
266
-            // }
267
-            // this.status_options = status
268
-            console.log('this.status_options',this.status_options);
256
+            this.status_options = option
257
+            console.log('this.status_options',response.data.data);
269
             const option = {
258
             const option = {
270
                 title:{
259
                 title:{
271
                   text:'总数'+total,
260
                   text:'总数'+total,
327
             myChart.on('click',params =>{
316
             myChart.on('click',params =>{
328
               this.complete_dialog = true
317
               this.complete_dialog = true
329
               console.log('bbbb',params);
318
               console.log('bbbb',params);
330
-              var status_id =''
319
+
331
               for(let i in this.status_options){
320
               for(let i in this.status_options){
332
                 if(params.data.name == this.status_options[i].label){
321
                 if(params.data.name == this.status_options[i].label){
333
-                  status_id = this.status_options[i].value
322
+                  this.status_value = this.status_options[i].value
334
                 }
323
                 }
335
               }
324
               }
336
-              this.getdetail(status_id)
325
+              this.getdetail(this.status_value)
337
             })
326
             })
338
           }
327
           }
339
         })
328
         })
376
       // 导出excel
365
       // 导出excel
377
       derive_click(){
366
       derive_click(){
378
         let tableData = [
367
         let tableData = [
379
-          ['序号', '透析号', '患者姓名', '年龄','透析日期', '处方透析时长', '实际透析时长', '实际差(min)', '主治医生', '主治护士']//导出表头
368
+          ['序号', '透析号', '患者姓名', '年龄','透析日期', '透后血压']//导出表头
380
         ]
369
         ]
381
         this.tableData.forEach((item,index) =>{
370
         this.tableData.forEach((item,index) =>{
382
           let rowdata=[]
371
           let rowdata=[]
386
             item.patient_name,
375
             item.patient_name,
387
             item.age,
376
             item.age,
388
             item.dialysis_date,
377
             item.dialysis_date,
389
-            item.dialysis_duration,
390
-            item.actual_duration,
391
-            item.diff,
392
-            item.doctor,
393
-            item.nurse,
378
+            item.PostDialysisBP
379
+
394
           ]
380
           ]
395
           tableData.push(rowdata)
381
           tableData.push(rowdata)
396
         })
382
         })
397
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
383
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
398
         let bookNew = XLSX.utils.book_new();
384
         let bookNew = XLSX.utils.book_new();
399
-        XLSX.utils.book_append_sheet(bookNew, workSheet, '透析治疗完成率') // 工作簿名称
400
-        let name = '透析治疗完成率'+ '.xlsx'
385
+        XLSX.utils.book_append_sheet(bookNew, workSheet, '患者后血压分析') // 工作簿名称
386
+        let name = '患者后血压分析'+ '.xlsx'
401
         XLSX.writeFile(bookNew, name) // 保存的文件名
387
         XLSX.writeFile(bookNew, name) // 保存的文件名
402
       },
388
       },
403
       // 详情数据源
389
       // 详情数据源
404
-      getdetail(mode){
390
+      getdetail(value){
405
         const params ={
391
         const params ={
406
-          start_date:this.start_date,
407
-          end_date:this.end_date,
408
-          mode:mode,
392
+          start_time:this.start_date,
393
+          end_time:this.end_date,
394
+          status_type:value,
409
           page:this.currentPage,
395
           page:this.currentPage,
410
           limit:this.limit,
396
           limit:this.limit,
411
         }
397
         }
412
-        Getdialysistreatdetail(params).then(response =>{
413
-          if(response.data.state){
398
+        Getbpdetail(params).then(response =>{
399
+          if(response.data.state ==1){
414
             const list = response.data.data.list
400
             const list = response.data.data.list
415
             const xAxis = []
401
             const xAxis = []
416
             const table = []
402
             const table = []
417
-            list.forEach((item,index) =>{
418
-              const obj={
419
-                index:index+1,
420
-                dialysis_no:item.dialysis_no,
421
-                patient_name:item.patient_name,
422
-                age:this.analyzeIDCard(item.id_card_no),
423
-                dialysis_date:item.dialysis_date.split('T')[0],
424
-                dialysis_duration:item.dialysis_duration,
425
-                actual_duration:item.actual_duration,
426
-                diff:item.diff,
427
-                doctor:this.getdoctor(item.doctor),
428
-                nurse:this.getnurse(item.nurse)
429
-              }
430
-              table.push(obj)
431
-            })
432
-            this.tableData = table
433
-            this.total = response.data.data.total
403
+            if(list.length > 0){
404
+              list.forEach((item,index) =>{
405
+                const obj={
406
+                  index:index+1,
407
+                  dialysis_no:item.dialysis_no,
408
+                  patient_name:item.patient_name,
409
+                  age:item.age,
410
+                  dialysis_date:this.getTime(item.assessment_date),
411
+                  PostDialysisBP:item.post_dialysis_bp,
412
+                }
413
+                table.push(obj)
414
+              })
415
+              this.tableData = table
416
+              this.total = response.data.data.total
417
+            }
434
           }
418
           }
435
-          console.log('55555',response);
419
+          console.log('55555透后',response);
436
         })
420
         })
437
       },
421
       },
438
       // 选择日期
422
       // 选择日期

+ 72 - 76
src/xt_pages/Dialysisanalysis/weightblood/components/before_Blood.vue Ver arquivo

154
                 width="">
154
                 width="">
155
               </el-table-column>
155
               </el-table-column>
156
               <el-table-column
156
               <el-table-column
157
-                prop="dialysis_date"
157
+                prop="PreDialysisBP"
158
                 label="透前血压"
158
                 label="透前血压"
159
                 width="">
159
                 width="">
160
               </el-table-column>
160
               </el-table-column>
184
 import * as echarts from 'echarts';
184
 import * as echarts from 'echarts';
185
 import XLSX from 'xlsx';
185
 import XLSX from 'xlsx';
186
 import { uParseTime } from "@/utils/tools";
186
 import { uParseTime } from "@/utils/tools";
187
-import {Getdialysistreatfinish,Getdialysistreatdetail} from '../../../../api/qcd'
188
-import {getAllNurseList} from '@/api/fallassement'
187
+import {Getpatinetbp,Getbpdetail} from '../../../../api/qcd'
188
+// import {getAllNurseList} from '@/api/fallassement'
189
 import { getAllDoctorList} from "@/api/device"
189
 import { getAllDoctorList} from "@/api/device"
190
 import html2canvas from "html2canvas"
190
 import html2canvas from "html2canvas"
191
   export default {
191
   export default {
238
         var chartDom = document.getElementById('mychart')
238
         var chartDom = document.getElementById('mychart')
239
         var myChart = echarts.init(chartDom);
239
         var myChart = echarts.init(chartDom);
240
         const params={
240
         const params={
241
-          start_date:this.start_date,
242
-          end_date:this.end_date
241
+          start_time:this.start_date,
242
+          end_time:this.end_date,
243
+          statistics_type:1
243
         }
244
         }
244
-        Getdialysistreatfinish(params).then(response =>{
245
+        Getpatinetbp(params).then(response =>{
245
           if(response.data.state ==1){
246
           if(response.data.state ==1){
246
-            const list = response.data.data.data
247
+            const list = response.data.data.list
247
             const xAxis = []
248
             const xAxis = []
248
             const yAxis = []
249
             const yAxis = []
249
-
250
-            const total = response.data.data.total
250
+            var option = []
251
+            var total =0
251
             for(let key in list){
252
             for(let key in list){
252
               const obj={
253
               const obj={
253
-                name:key,
254
-                value:list[key]
254
+                name:list[key].name,
255
+                value:list[key].total
255
               }
256
               }
256
               xAxis.push(obj)
257
               xAxis.push(obj)
257
-              yAxis.push(key)
258
+              yAxis.push(list[key].name)
259
+              total = total + list[key].total
260
+              const obj2 ={
261
+                value:(key*1)+1,
262
+                label:list[key].name
263
+              }
264
+              option.push(obj2)
258
             }
265
             }
259
-            const status = []
260
-            // for(let i in yAxis){
261
-            //   const obj ={
262
-            //     value:(i*1)+1,
263
-            //     label:yAxis[i]
264
-            //   }
265
-            //   status.push(obj)
266
-            // }
267
-            // this.status_options = status
268
-            console.log('this.status_options',this.status_options);
266
+            this.status_options = option
267
+            console.log('this.status_options血1压1',response.data.data);
269
             const option = {
268
             const option = {
270
                 title:{
269
                 title:{
271
                   text:'总数'+total,
270
                   text:'总数'+total,
327
             myChart.on('click',params =>{
326
             myChart.on('click',params =>{
328
               this.complete_dialog = true
327
               this.complete_dialog = true
329
               console.log('bbbb',params);
328
               console.log('bbbb',params);
330
-              var status_id =''
331
               for(let i in this.status_options){
329
               for(let i in this.status_options){
332
                 if(params.data.name == this.status_options[i].label){
330
                 if(params.data.name == this.status_options[i].label){
333
-                  status_id = this.status_options[i].value
331
+                  this.status_value = this.status_options[i].value
334
                 }
332
                 }
335
               }
333
               }
336
-              this.getdetail(status_id)
334
+              this.getdetail(this.status_value)
337
             })
335
             })
338
           }
336
           }
339
         })
337
         })
376
       // 导出excel
374
       // 导出excel
377
       derive_click(){
375
       derive_click(){
378
         let tableData = [
376
         let tableData = [
379
-          ['序号', '透析号', '患者姓名', '年龄','透析日期', '处方透析时长', '实际透析时长', '实际差(min)', '主治医生', '主治护士']//导出表头
377
+          ['序号', '透析号', '患者姓名', '年龄','透析日期', '透前血压']//导出表头
380
         ]
378
         ]
381
         this.tableData.forEach((item,index) =>{
379
         this.tableData.forEach((item,index) =>{
382
           let rowdata=[]
380
           let rowdata=[]
386
             item.patient_name,
384
             item.patient_name,
387
             item.age,
385
             item.age,
388
             item.dialysis_date,
386
             item.dialysis_date,
389
-            item.dialysis_duration,
390
-            item.actual_duration,
391
-            item.diff,
392
-            item.doctor,
393
-            item.nurse,
387
+            item.PreDialysisBP
394
           ]
388
           ]
395
           tableData.push(rowdata)
389
           tableData.push(rowdata)
396
         })
390
         })
397
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
391
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
398
         let bookNew = XLSX.utils.book_new();
392
         let bookNew = XLSX.utils.book_new();
399
-        XLSX.utils.book_append_sheet(bookNew, workSheet, '透析治疗完成率') // 工作簿名称
400
-        let name = '透析治疗完成率'+ '.xlsx'
393
+        XLSX.utils.book_append_sheet(bookNew, workSheet, '患者前血压分析') // 工作簿名称
394
+        let name = '患者前血压分析'+ '.xlsx'
401
         XLSX.writeFile(bookNew, name) // 保存的文件名
395
         XLSX.writeFile(bookNew, name) // 保存的文件名
402
       },
396
       },
403
       // 详情数据源
397
       // 详情数据源
404
-      getdetail(mode){
398
+      getdetail(blood){
405
         const params ={
399
         const params ={
406
-          start_date:this.start_date,
407
-          end_date:this.end_date,
408
-          mode:mode,
400
+          start_time:this.start_date,
401
+          end_time:this.end_date,
402
+          status_type:blood,
409
           page:this.currentPage,
403
           page:this.currentPage,
410
           limit:this.limit,
404
           limit:this.limit,
411
         }
405
         }
412
-        Getdialysistreatdetail(params).then(response =>{
406
+        Getbpdetail(params).then(response =>{
407
+          console.log('Getbpdetail血压',response.data);
413
           if(response.data.state){
408
           if(response.data.state){
414
             const list = response.data.data.list
409
             const list = response.data.data.list
415
             const xAxis = []
410
             const xAxis = []
416
             const table = []
411
             const table = []
417
-            list.forEach((item,index) =>{
418
-              const obj={
419
-                index:index+1,
420
-                dialysis_no:item.dialysis_no,
421
-                patient_name:item.patient_name,
422
-                age:this.analyzeIDCard(item.id_card_no),
423
-                dialysis_date:item.dialysis_date.split('T')[0],
424
-                dialysis_duration:item.dialysis_duration,
425
-                actual_duration:item.actual_duration,
426
-                diff:item.diff,
427
-                doctor:this.getdoctor(item.doctor),
428
-                nurse:this.getnurse(item.nurse)
429
-              }
430
-              table.push(obj)
431
-            })
432
-            this.tableData = table
433
-            this.total = response.data.data.total
412
+            if(list.length >0){
413
+              list.forEach((item,index) =>{
414
+                const obj={
415
+                  index:index+1,
416
+                  dialysis_no:item.dialysis_no,
417
+                  patient_name:item.patient_name,
418
+                  age:item.age,
419
+                  dialysis_date:this.getTime(item.assessment_date),
420
+                  PreDialysisBP:item.pre_dialysis_bp,
421
+
422
+                }
423
+                table.push(obj)
424
+              })
425
+              this.tableData = table
426
+              this.total = response.data.data.total
427
+            }
434
           }
428
           }
435
           console.log('55555',response);
429
           console.log('55555',response);
436
         })
430
         })
665
 
659
 
666
       },
660
       },
667
       // 护士
661
       // 护士
668
-      getAllNurseList(){
669
-        getAllNurseList().then(response=>{
670
-           if(response.data.state ==1){
671
-             var nurseList  = response.data.data.nurseList
672
-            console.log('0000',nurseList);
673
-             this.nurseList =nurseList
674
-           }
675
-        })
676
-      },
662
+      // getAllNurseList(){
663
+      //   getAllNurseList().then(response=>{
664
+      //      if(response.data.state ==1){
665
+      //        var nurseList  = response.data.data.nurseList
666
+      //       console.log('0000',nurseList);
667
+      //        this.nurseList =nurseList
668
+      //      }
669
+      //   })
670
+      // },
677
       // 医生
671
       // 医生
678
-      getAllDoctorList(){
679
-        getAllDoctorList().then(response=>{
680
-          if(response.data.state == 1){
681
-              var list = response.data.data.list
682
-              console.log("list222222",list)
683
-              this.docList = list
684
-              this.operators = response.data.data.operators
685
-          }
686
-        })
687
-      },
672
+      // getAllDoctorList(){
673
+      //   getAllDoctorList().then(response=>{
674
+      //     if(response.data.state == 1){
675
+      //         var list = response.data.data.list
676
+      //         console.log("list222222",list)
677
+      //         this.docList = list
678
+      //         this.operators = response.data.data.operators
679
+      //     }
680
+      //   })
681
+      // },
688
       getnurse(ids){
682
       getnurse(ids){
689
         const nurse = this.nurseList
683
         const nurse = this.nurseList
690
         for(let i in nurse){
684
         for(let i in nurse){
704
     },
698
     },
705
     mounted(){
699
     mounted(){
706
       this.getecharts()
700
       this.getecharts()
701
+      // this.getdetail()
707
     },
702
     },
708
     created(){
703
     created(){
709
       this.start_date = this.getFirstDayOfMonth(new Date())
704
       this.start_date = this.getFirstDayOfMonth(new Date())
710
-      this.getAllNurseList()
711
-      this.getAllDoctorList()
705
+      // this.getAllNurseList()
706
+      // this.getAllDoctorList()
707
+      // this.getdetail()
712
     },
708
     },
713
 
709
 
714
   }
710
   }

+ 100 - 219
src/xt_pages/Dialysisanalysis/weightblood/components/blood_table.vue Ver arquivo

41
               </el-date-picker>
41
               </el-date-picker>
42
             </div>
42
             </div>
43
             <div>
43
             <div>
44
-              体重增长:
45
-              <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
44
+              状态:
45
+              <el-select v-model="status_value" placeholder="请选择" style="width: 100px;">
46
                 <el-option :key="0" label="不限" :value="0"></el-option>
46
                 <el-option :key="0" label="不限" :value="0"></el-option>
47
                 <el-option
47
                 <el-option
48
-                  v-for="item in dialyze_options"
49
-                  :key="item.id"
50
-                  :label="item.name"
51
-                  :value="item.id">
48
+                  v-for="item in status_options"
49
+                  :key="item.value"
50
+                  :label="item.label"
51
+                  :value="item.value">
52
                 </el-option>
52
                 </el-option>
53
               </el-select>
53
               </el-select>
54
             </div>
54
             </div>
55
-            
55
+
56
           </div>
56
           </div>
57
           <div style="flex: 1;">
57
           <div style="flex: 1;">
58
             <div>
58
             <div>
69
           <el-table-column
69
           <el-table-column
70
             prop="index"
70
             prop="index"
71
             label="序号"
71
             label="序号"
72
-            width="">
72
+            width="50">
73
           </el-table-column>
73
           </el-table-column>
74
           <el-table-column
74
           <el-table-column
75
             prop="dialysis_no"
75
             prop="dialysis_no"
76
             label="透析号"
76
             label="透析号"
77
-            width="">
77
+            width="70">
78
           </el-table-column>
78
           </el-table-column>
79
           <el-table-column
79
           <el-table-column
80
-            prop="name"
81
-            label="患者姓名">
80
+            prop="patient_name"
81
+            label="患者姓名"
82
+            width="80">
82
           </el-table-column>
83
           </el-table-column>
83
           <el-table-column
84
           <el-table-column
84
-            prop="name"
85
+            prop="gender"
85
             label="性别"
86
             label="性别"
86
-            width="">
87
+            width="50">
87
           </el-table-column>
88
           </el-table-column>
88
           <el-table-column
89
           <el-table-column
89
-            prop="name"
90
+            prop="age"
90
             label="年龄"
91
             label="年龄"
91
-            width="">
92
+            width="50">
92
           </el-table-column>
93
           </el-table-column>
93
           <el-table-column
94
           <el-table-column
94
-            prop="date"
95
+            prop="dialysis_date"
95
             label="透析日期"
96
             label="透析日期"
96
-            width="">
97
+            width="100">
97
           </el-table-column>
98
           </el-table-column>
98
           <el-table-column
99
           <el-table-column
99
-            prop="mode_name"
100
+            prop="dryweight"
100
             label="干体重"
101
             label="干体重"
101
-            width="">
102
+            width="70">
102
           </el-table-column>
103
           </el-table-column>
103
           <el-table-column
104
           <el-table-column
104
-            prop="dialyszers"
105
-            label="超滤总量(L)">
105
+            prop="UltrafiltrationVol"
106
+            label="超滤总量(L)"
107
+            width="90">
106
           </el-table-column>
108
           </el-table-column>
107
           <el-table-column
109
           <el-table-column
108
-            prop="date"
110
+            prop="actual_ultrafiltration"
109
             label="实际超滤量(ml)"
111
             label="实际超滤量(ml)"
110
-            width="">
112
+            width="100">
111
           </el-table-column>
113
           </el-table-column>
112
           <el-table-column
114
           <el-table-column
113
-            prop="mode_name"
114
-            label="超滤"
115
-            width="">
115
+            prop="ultrafiltration_rate"
116
+            label="超滤"
117
+            width="70">
116
           </el-table-column>
118
           </el-table-column>
117
           <el-table-column
119
           <el-table-column
118
-            prop="dialyszers"
119
-            label="透前血压">
120
+            prop="preDialysisBP"
121
+            label="透前血压"
122
+            width="90">
120
           </el-table-column>
123
           </el-table-column>
121
           <el-table-column
124
           <el-table-column
122
-            prop="dialyszers"
125
+            prop="monitoringbp"
123
             label="监测记录血压">
126
             label="监测记录血压">
124
           </el-table-column>
127
           </el-table-column>
125
           <el-table-column
128
           <el-table-column
126
-            prop="dialyszers"
127
-            label="透后血压">
129
+            prop="PostDialysisBP"
130
+            label="透后血压"
131
+            width="90">
128
           </el-table-column>
132
           </el-table-column>
129
         </el-table>
133
         </el-table>
130
         <div style="text-align: right;margin-top: 10px;">
134
         <div style="text-align: right;margin-top: 10px;">
142
     </div>
146
     </div>
143
 
147
 
144
     <!-- 弹窗 -->
148
     <!-- 弹窗 -->
145
-   
149
+
146
   </div>
150
   </div>
147
 </template>
151
 </template>
148
 <script>
152
 <script>
149
 import * as echarts from 'echarts';
153
 import * as echarts from 'echarts';
150
 import XLSX from 'xlsx';
154
 import XLSX from 'xlsx';
151
 import { uParseTime } from "@/utils/tools";
155
 import { uParseTime } from "@/utils/tools";
152
-import {Getdialyzer,Getdialyzerdetail,Getdialyzerconfig} from '../../../../api/qcd'
156
+import {Getbpdetail} from '../../../../api/qcd'
153
 import { forEach } from 'jszip';
157
 import { forEach } from 'jszip';
154
 import html2canvas from "html2canvas"
158
 import html2canvas from "html2canvas"
155
   export default {
159
   export default {
169
         limit:50,
173
         limit:50,
170
         total:0,
174
         total:0,
171
         tableData:[],
175
         tableData:[],
172
-        dialyze_options:[],
176
+        status_value:1,
177
+        status_options:[{value:1,label:'达标'},{value:2,label:'不达标'}],
173
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
178
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
174
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
179
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
175
         ],
180
         ],
176
-        modearr:[{ id: 1, name: 'HD' },{ id: 2, name: 'HDF' },{ id: 3, name: 'HD + HP' },{ id: 4, name: 'HP' },
177
-          { id: 5, name: 'HF' },{ id: 6, name: 'SCUF' },{ id: 7, name: 'IUF' },{ id: 8, name: 'HFHD' },{ id: 9, name: 'HFHD+HP' },
178
-          { id: 10, name: 'PHF' },{ id: 11, name: 'HFR' },{ id: 12, name: 'HDF+HP' },{ id: 13, name: 'CRRT' },{ id: 14, name: '腹水回输' },
179
-          { id:19, name:"IUF+HD"},{ id:20, name:"UF"},{ id:21, name:"HD+"},{ id:22, name:"血浆胆红素吸附+HDF"},{ id:23, name:"血浆胆红素吸附"},
180
-          { id:24, name:"I-HDF"},{ id:25, name:"HD高通"},{ id:26, name:"CVVH"},{ id:27, name:"CVVHD"},{ id:28, name:"CVVHDF"},{ id:29, name:"PE"},
181
-          { id:30, name:"血浆胆红素吸附+HP"},{ id:31, name:"HPD"},{ id:32, name:"HDP"},{ id:33, name:"HFD"},{ id:34, name:"HDF100"},
182
-          { id:35, name:"HDF600"},{ id:36, name:"HDF800"},{ id:37, name:"HDF1000"},
183
-        ],
181
+
184
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
182
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
185
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
183
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
186
 
184
 
193
       return_click(){
191
       return_click(){
194
         this.$router.push('/Dialysisanalysis/qualitycontrol/weightblood')
192
         this.$router.push('/Dialysisanalysis/qualitycontrol/weightblood')
195
       },
193
       },
196
-      // 数据源
197
-      getecharts(){
198
-        var chartDom = document.getElementById('mychart')
199
-        var myChart = echarts.init(chartDom);
200
-        const params ={
201
-          start_date:this.start_date,
202
-          end_date:this.end_date,
203
-        }
204
-        Getdialyzer(params).then(response =>{
205
-          console.log('ressponse',response.data.data);
206
-          if(response.data.state ==1){
207
-            console.log('bbbbbbbbb',response.data.data);
208
-            const list = response.data.data.data
209
-            const xAxis =[]
210
-            const yAxis = []
211
-            list.forEach(item =>{
212
-
213
-              xAxis.push(item.name)
214
-              yAxis.push(item.count)
215
-            })
216
-            this.bar_xAxis = xAxis
217
-            const options = []
218
-            for(let i in xAxis){
219
-              const arr ={
220
-                id:i+1,
221
-                name:xAxis[i]
222
-              }
223
-              options.push(arr)
224
-            }
225
-            this.dialyze_options = options
226
-            const option = {
227
-              xAxis: {
228
-                type: 'category',
229
-                data: xAxis,
230
-                axisLabel:{
231
-                  interval:0,
232
-                }
233
-              },
234
-              yAxis: {
235
-                type: 'value'
236
-              },
237
-              series: [
238
-                {
239
-                  data:yAxis ,
240
-                  type: 'bar',
241
-                  barWidth: '25%',
242
-                  label: {
243
-                    normal: {
244
-                      show: true,
245
-                      position: 'top',
246
-                      formatter: '{c}',
247
-                      textStyle:{
248
-                        color: 'black',//字体颜色
249
-                        fontSize: 13//字体大小
250
-                      }
251
-                    },
252
-                  },
253
-                  itemStyle:{
254
-                    normal:{
255
-                      color:function (params){
256
-                        // const colorarr=['#FFA333','#A155E8','#6D91FF','#A233A2'];
257
-                        var colorarr = [["#A9E0F3", "#9FBDFC"],["#FFD7C0", "#FF9994"]]
258
-                        var index = params.dataIndex;
259
-                        if (params.dataIndex >= colorarr.length) {
260
-                          index = params.dataIndex % colorarr.length;
261
-                        }
262
-                        return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
263
-                          { offset: 0, color: colorarr[index][0] },
264
-                          // { offset: 0.5, color: colorList[index][1] },
265
-                          { offset: 1, color: colorarr[index][1] }
266
-                        ]);
267
-                      }
268
-                    }
269
-                  }
270
-                }
271
-              ]
272
-            }
273
-            myChart.setOption(option);
274
-            myChart.on('click',params =>{
275
-              this.dialyze_dialog = true
276
-              console.log('vvvvv',params);
277
-              this.Getdialyzerdetail(params.name)
278
-            })
279
-          }
280
-
281
-        })
282
-
283
-      },
284
       // 导出excel
194
       // 导出excel
285
       exportExcel(){
195
       exportExcel(){
286
         let tableData = [
196
         let tableData = [
287
-          ['序号', '透析号', '患者姓名', '透析日期','透析模式', '透析器']//导出表头
197
+          ['序号', '透析号', '患者姓名','性别','年龄', '透析日期','干体重', '超滤总量','实际超滤量','超滤率','透前血压','监测记录血压','透后血压']//导出表头
288
         ]
198
         ]
289
         this.tableData.forEach((item,index) =>{
199
         this.tableData.forEach((item,index) =>{
290
           let rowdata=[]
200
           let rowdata=[]
291
           rowdata=[
201
           rowdata=[
292
             item.index,
202
             item.index,
293
             item.dialysis_no,
203
             item.dialysis_no,
294
-            item.name,
295
-            item.date,
296
-            item.mode_name,
297
-            item.dialyszers,
204
+            item.patient_name,
205
+            item.gender,
206
+            item.age,
207
+            item.dialysis_date,
208
+            item.dryweight,
209
+            item.UltrafiltrationVol,
210
+            item.actual_ultrafiltration,
211
+            item.ultrafiltration_rate,
212
+            item.preDialysisBP,
213
+            item.monitoringbp,
214
+            item.PostDialysisBP,
298
           ]
215
           ]
299
           tableData.push(rowdata)
216
           tableData.push(rowdata)
300
         })
217
         })
301
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
218
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
302
         let bookNew = XLSX.utils.book_new();
219
         let bookNew = XLSX.utils.book_new();
303
-        XLSX.utils.book_append_sheet(bookNew, workSheet, '透析器使用统计') // 工作簿名称
304
-        let name = '透析器使用统计'+ '.xlsx'
220
+        XLSX.utils.book_append_sheet(bookNew, workSheet, '患者血压详情') // 工作簿名称
221
+        let name = '患者血压详情'+ '.xlsx'
305
         XLSX.writeFile(bookNew, name) // 保存的文件名
222
         XLSX.writeFile(bookNew, name) // 保存的文件名
306
       },
223
       },
307
-      // 查询
308
-      sete_click(){
309
-        this.getecharts()
310
-      },
311
       // 详情查询
224
       // 详情查询
312
       deil_click(){
225
       deil_click(){
313
-        this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
226
+        this.Getdialyzerdetail(this.status_value)
314
       },
227
       },
315
-       // 下载
316
-      Download_click(){
317
-        const options ={
318
-          allowTaint: true,
319
-          useCORS: true
320
-        }
321
-        html2canvas(this.$refs.mychart,options).then(canvas =>{
322
-          // const imageSrc = canvas.toDataURL();
323
-          const imageUrl = canvas.toDataURL("image/png");
324
-          // console.log('5555',imageUrl);
325
-        //   // const base = this.url.split(',')[1]
326
-        //   // console.log('2222',base);
327
-          const blob = this.dataURLtoBlob(imageUrl)
328
-          // console.log('4444',blob);
329
-          const url = URL.createObjectURL(blob);
330
-          // const file = (this.url).blob();
331
-          // console.log('1111',url);
332
-          var link= document.createElement("a");
333
-        //   //将生成的图片url赋值给a标签的href属性
334
-          link.href = url;
335
-        //   //设置下载的文件名
336
-          link.download = "透析器使用统计.jpg";
337
-          // // 将a标签插入dom中
338
-          console.log('link',link);
339
-          document.body.appendChild(link);
340
-          //模拟点击事件触发下载
341
-          link.click();
342
-          // 完成之后销毁创建的a标签
343
-          document.body.removeChild(link);
344
 
228
 
345
-        })
346
-      },
347
       // 选择日期
229
       // 选择日期
348
       datachange(eve){
230
       datachange(eve){
349
         if(eve ==1){
231
         if(eve ==1){
404
         console.log('eve',eve);
286
         console.log('eve',eve);
405
       },
287
       },
406
       // 详情数据源
288
       // 详情数据源
407
-      Getdialyzerdetail(name){
289
+      Getdialyzerdetail(value){
408
         const params={
290
         const params={
409
-          dialyzer:name,
410
-          start_date:this.start_date,
411
-          end_date:this.end_date,
291
+          status_type:value,
292
+          start_time:this.start_date,
293
+          end_time:this.end_date,
412
           page:this.currentPage,
294
           page:this.currentPage,
413
           limit:this.limit,
295
           limit:this.limit,
414
         }
296
         }
415
-        Getdialyzerdetail(params).then(response =>{
297
+        Getbpdetail(params).then(response =>{
416
           if(response.data.state == 1){
298
           if(response.data.state == 1){
417
-            const list = response.data.data.prescriptions
299
+            const list = response.data.data.list
418
             const table=[]
300
             const table=[]
419
-            list.forEach((item,index)=>{
420
-              const obj ={
421
-                index:index+1,
422
-                dialysis_no:item.patient.dialysis_no,
423
-                name:item.patient.name,
424
-                date:this.getTime(item.record_date),
425
-                mode_name:this.getmode(item.mode_id),
426
-                dialyszers:item.dialysis_dialyszers +'  '+ item.dialysis_irrigation+'  '+item.dialysis_strainer
427
-                // dialyszers:item.dialysis_dialyszers || item.dialysis_irrigation || item.dialysis_strainer
428
-              }
429
-              table.push(obj)
430
-            })
431
-            this.tableData = table
432
-            this.total = response.data.data.total
301
+            if(list.length > 0){
302
+              list.forEach((item,index)=>{
303
+                const obj ={
304
+                  index:index+1,
305
+                  dialysis_no:item.dialysis_no,
306
+                  patient_name:item.patient_name,
307
+                  gender:this.getgender(item.gender),
308
+                  age:item.age,
309
+                  dialysis_date:this.getTime(item.assessment_date),
310
+                  dryweight:item.dry_weight,
311
+                  UltrafiltrationVol:item.ultrafiltration_vol/1000,
312
+                  actual_ultrafiltration:item.actual_ultrafiltration,
313
+                  ultrafiltration_rate:item.ultrafiltration_rate,
314
+                  preDialysisBP:item.pre_dialysis_bp,
315
+                  monitoringbp:item.monitoring_bp,
316
+                  PostDialysisBP:item.post_dialysis_bp,
317
+                }
318
+                table.push(obj)
319
+              })
320
+              this.tableData = table
321
+              this.total = response.data.data.total
322
+            }
433
           }
323
           }
434
-          console.log('77777',response);
324
+          console.log('77777血压表格',response);
435
         })
325
         })
436
       },
326
       },
437
        // 首先定义一个getPreviousDate函数,方便调用
327
        // 首先定义一个getPreviousDate函数,方便调用
536
       },
426
       },
537
       handleCurrentChange(val){
427
       handleCurrentChange(val){
538
         this.currentPage = val
428
         this.currentPage = val
539
-        this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
429
+        this.Getdialyzerdetail(this.status_value)
540
       },
430
       },
541
       handleSizeChange(val){
431
       handleSizeChange(val){
542
         this.limit = val
432
         this.limit = val
543
-        this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
433
+        this.Getdialyzerdetail(this.status_value)
544
       },
434
       },
545
-      // 透析模式
546
-      getmode(ids){
547
-        const modes=this.modearr
548
-        for(let i in modes){
549
-          if(ids == modes[i].id){
550
-            return modes[i].name
551
-          }
435
+       // 性别
436
+       getgender(ids){
437
+        if(ids ==1){
438
+          return "男"
439
+        }else{
440
+          return "女"
552
         }
441
         }
553
       },
442
       },
443
+      // getVol(value){
444
+      //   if(value >1000){
445
+
446
+      //   }
447
+      // },
554
        // 转换时间
448
        // 转换时间
555
       getTime(val) {
449
       getTime(val) {
556
         if(val < 0){
450
         if(val < 0){
573
         }
467
         }
574
         return new Blob([u8arr], { type: mime });
468
         return new Blob([u8arr], { type: mime });
575
       },
469
       },
576
-      // 全部透析器
577
-      Getdialyzerconfig(){
578
-        Getdialyzerconfig().then(response =>{
579
-          console.log('666666',response);
580
-        })
581
-      },
582
-      getdialyze(val){
583
-        const option = this.dialyze_options
584
-        for(let i in option){
585
-          if(val == option[i].id){
586
-            return option[i].name
587
-          }
588
-        }
589
-      }
470
+
590
     },
471
     },
591
     mounted(){
472
     mounted(){
592
-      this.getecharts()
473
+
593
     },
474
     },
594
     created(){
475
     created(){
595
       this.start_date = this.getFirstDayOfMonth(new Date())
476
       this.start_date = this.getFirstDayOfMonth(new Date())
596
-      this.Getdialyzerconfig()
477
+      this.Getdialyzerdetail(this.status_value)
597
     },
478
     },
598
 
479
 
599
   }
480
   }

+ 105 - 95
src/xt_pages/Dialysisanalysis/weightblood/components/dialyze_after.vue Ver arquivo

68
       <el-dialog
68
       <el-dialog
69
         title="详情"
69
         title="详情"
70
         :visible.sync="dialyze_dialog"
70
         :visible.sync="dialyze_dialog"
71
-        width="80%">
71
+        width="90%">
72
         <div>
72
         <div>
73
           <div style="display: flex;margin-bottom: 20px;">
73
           <div style="display: flex;margin-bottom: 20px;">
74
-            <div style="flex: 2;display: flex;flex-wrap:wrap">
74
+            <div style="flex: 5;display: flex;flex-wrap:wrap">
75
               <div>
75
               <div>
76
                 日期:
76
                 日期:
77
                 <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
77
                 <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
100
                   style="width: 150px;">
100
                   style="width: 150px;">
101
                 </el-date-picker>
101
                 </el-date-picker>
102
               </div>
102
               </div>
103
+
103
               <div>
104
               <div>
104
                 体重增长:
105
                 体重增长:
105
-                <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
106
+                <el-select v-model="weight_value" placeholder="请选择" style="width: 100px;">
106
                   <el-option :key="0" label="不限" :value="0"></el-option>
107
                   <el-option :key="0" label="不限" :value="0"></el-option>
107
                   <el-option
108
                   <el-option
108
-                    v-for="item in dialyze_options"
109
-                    :key="item.id"
110
-                    :label="item.name"
111
-                    :value="item.id">
109
+                    v-for="item in weight_gain"
110
+                    :key="item.value"
111
+                    :label="item.label"
112
+                    :value="item.value">
112
                   </el-option>
113
                   </el-option>
113
                 </el-select>
114
                 </el-select>
114
               </div>
115
               </div>
115
               <div>
116
               <div>
116
                 干体重:
117
                 干体重:
117
-                <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
118
+                <el-select v-model="dry_value" placeholder="请选择" style="width: 100px;">
118
                   <el-option :key="0" label="不限" :value="0"></el-option>
119
                   <el-option :key="0" label="不限" :value="0"></el-option>
119
                   <el-option
120
                   <el-option
120
-                    v-for="item in dialyze_options"
121
-                    :key="item.id"
122
-                    :label="item.name"
123
-                    :value="item.id">
121
+                    v-for="item in status_options"
122
+                    :key="item.value"
123
+                    :label="item.label"
124
+                    :value="item.value">
124
                   </el-option>
125
                   </el-option>
125
                 </el-select>
126
                 </el-select>
126
               </div>
127
               </div>
127
               <div>
128
               <div>
128
                 透后体重:
129
                 透后体重:
129
-                <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
130
+                <el-select v-model="after_value" placeholder="请选择" style="width: 100px;">
130
                   <el-option :key="0" label="不限" :value="0"></el-option>
131
                   <el-option :key="0" label="不限" :value="0"></el-option>
131
                   <el-option
132
                   <el-option
132
-                    v-for="item in dialyze_options"
133
-                    :key="item.id"
134
-                    :label="item.name"
135
-                    :value="item.id">
133
+                    v-for="item in after_options"
134
+                    :key="item.value"
135
+                    :label="item.label"
136
+                    :value="item.value">
136
                   </el-option>
137
                   </el-option>
137
                 </el-select>
138
                 </el-select>
138
               </div>
139
               </div>
139
               <div >
140
               <div >
140
-                <el-input v-model="input" placeholder="搜索患者姓名"></el-input>
141
+                <el-input v-model="Patient_name" placeholder="搜索患者姓名" style="width: 120px;"></el-input>
141
               </div>
142
               </div>
142
             </div>
143
             </div>
143
             <div style="flex: 1;">
144
             <div style="flex: 1;">
167
               label="患者姓名">
168
               label="患者姓名">
168
             </el-table-column>
169
             </el-table-column>
169
             <el-table-column
170
             <el-table-column
170
-              prop="name"
171
+              prop="sex"
171
               label="性别"
172
               label="性别"
172
               width="">
173
               width="">
173
             </el-table-column>
174
             </el-table-column>
174
             <el-table-column
175
             <el-table-column
175
-              prop="name"
176
+              prop="age"
176
               label="年龄"
177
               label="年龄"
177
               width="">
178
               width="">
178
             </el-table-column>
179
             </el-table-column>
182
               width="">
183
               width="">
183
             </el-table-column>
184
             </el-table-column>
184
             <el-table-column
185
             <el-table-column
185
-              prop="mode_name"
186
+              prop="dry_weight"
186
               label="干体重"
187
               label="干体重"
187
               width="">
188
               width="">
188
             </el-table-column>
189
             </el-table-column>
189
             <el-table-column
190
             <el-table-column
190
-              prop="dialyszers"
191
+              prop="last_weight_after"
191
               label="前次透后体重">
192
               label="前次透后体重">
192
             </el-table-column>
193
             </el-table-column>
193
             <el-table-column
194
             <el-table-column
194
-              prop="date"
195
+              prop="weight_before"
195
               label="透前体重"
196
               label="透前体重"
196
               width="">
197
               width="">
197
             </el-table-column>
198
             </el-table-column>
198
             <el-table-column
199
             <el-table-column
199
-              prop="mode_name"
200
+              prop="weight_add"
200
               label="体重增加"
201
               label="体重增加"
201
               width="">
202
               width="">
202
             </el-table-column>
203
             </el-table-column>
203
             <el-table-column
204
             <el-table-column
204
-              prop="dialyszers"
205
+              prop="weight_after"
205
               label="透后体重">
206
               label="透后体重">
206
             </el-table-column>
207
             </el-table-column>
207
           </el-table>
208
           </el-table>
230
 import * as echarts from 'echarts';
231
 import * as echarts from 'echarts';
231
 import XLSX from 'xlsx';
232
 import XLSX from 'xlsx';
232
 import { uParseTime } from "@/utils/tools";
233
 import { uParseTime } from "@/utils/tools";
233
-import {Getdialyzer,Getdialyzerdetail,Getdialyzerconfig} from '../../../../api/qcd'
234
+import {Getpatinetweight,Getweightdetail} from '../../../../api/qcd'
234
 import { forEach } from 'jszip';
235
 import { forEach } from 'jszip';
235
 import html2canvas from "html2canvas"
236
 import html2canvas from "html2canvas"
236
   export default {
237
   export default {
250
         limit:50,
251
         limit:50,
251
         total:0,
252
         total:0,
252
         tableData:[],
253
         tableData:[],
253
-        dialyze_options:[],
254
+        weight_gain:[{value:1,label:'体重增长<=3%'},{value:2,label:'3%<体重增长<5%'},{value:3,label:'体重增长>=5%'}],
255
+        weight_value:0,
256
+        dry_value:0,
257
+        after_value:0,
258
+        after_options:[],
259
+        Patient_name:'',
254
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
260
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
255
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
261
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
256
         ],
262
         ],
257
-        modearr:[{ id: 1, name: 'HD' },{ id: 2, name: 'HDF' },{ id: 3, name: 'HD + HP' },{ id: 4, name: 'HP' },
258
-          { id: 5, name: 'HF' },{ id: 6, name: 'SCUF' },{ id: 7, name: 'IUF' },{ id: 8, name: 'HFHD' },{ id: 9, name: 'HFHD+HP' },
259
-          { id: 10, name: 'PHF' },{ id: 11, name: 'HFR' },{ id: 12, name: 'HDF+HP' },{ id: 13, name: 'CRRT' },{ id: 14, name: '腹水回输' },
260
-          { id:19, name:"IUF+HD"},{ id:20, name:"UF"},{ id:21, name:"HD+"},{ id:22, name:"血浆胆红素吸附+HDF"},{ id:23, name:"血浆胆红素吸附"},
261
-          { id:24, name:"I-HDF"},{ id:25, name:"HD高通"},{ id:26, name:"CVVH"},{ id:27, name:"CVVHD"},{ id:28, name:"CVVHDF"},{ id:29, name:"PE"},
262
-          { id:30, name:"血浆胆红素吸附+HP"},{ id:31, name:"HPD"},{ id:32, name:"HDP"},{ id:33, name:"HFD"},{ id:34, name:"HDF100"},
263
-          { id:35, name:"HDF600"},{ id:36, name:"HDF800"},{ id:37, name:"HDF1000"},
264
-        ],
263
+        status_options:[{value:1,label:'小于40kg'},{value:2,label:'40~50kg'},{value:3,label:'60~70kg'},
264
+                        {value:4,label:'大于70kg'},{value:5,label:'未知'}],
265
+
265
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
266
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
266
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
267
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
267
 
268
 
268
-
269
-        input:'',
269
+        Patient_name:'',
270
       }
270
       }
271
     },
271
     },
272
     methods:{
272
     methods:{
279
         var chartDom = document.getElementById('mychart')
279
         var chartDom = document.getElementById('mychart')
280
         var myChart = echarts.init(chartDom);
280
         var myChart = echarts.init(chartDom);
281
         const params ={
281
         const params ={
282
-          start_date:this.start_date,
283
-          end_date:this.end_date,
282
+          start_time:this.start_date,
283
+          end_time:this.end_date,
284
+          statistics_type:4,
284
         }
285
         }
285
-        Getdialyzer(params).then(response =>{
286
+        Getpatinetweight(params).then(response =>{
286
           console.log('ressponse',response.data.data);
287
           console.log('ressponse',response.data.data);
287
           if(response.data.state ==1){
288
           if(response.data.state ==1){
288
             console.log('bbbbbbbbb',response.data.data);
289
             console.log('bbbbbbbbb',response.data.data);
289
-            const list = response.data.data.data
290
+            const list = response.data.data.list
290
             const xAxis =[]
291
             const xAxis =[]
291
             const yAxis = []
292
             const yAxis = []
292
-            list.forEach(item =>{
293
-
294
-              xAxis.push(item.name)
295
-              yAxis.push(item.count)
296
-            })
297
-            this.bar_xAxis = xAxis
298
-            const options = []
299
-            for(let i in xAxis){
300
-              const arr ={
301
-                id:i+1,
302
-                name:xAxis[i]
293
+            var weight = []
294
+            for(let i in list){
295
+              xAxis.push(list[i].name)
296
+              yAxis.push(list[i].total)
297
+               const obj ={
298
+                value:i+1,
299
+                label:list[i].name
303
               }
300
               }
304
-              options.push(arr)
301
+              weight.push(obj)
305
             }
302
             }
306
-            this.dialyze_options = options
303
+            this.after_options = weight
307
             const option = {
304
             const option = {
308
               xAxis: {
305
               xAxis: {
309
                 type: 'category',
306
                 type: 'category',
355
             myChart.on('click',params =>{
352
             myChart.on('click',params =>{
356
               this.dialyze_dialog = true
353
               this.dialyze_dialog = true
357
               console.log('vvvvv',params);
354
               console.log('vvvvv',params);
358
-              this.Getdialyzerdetail(params.name)
355
+              for(let i in this.after_options){
356
+                if(params.name = this.after_options[i].label){
357
+                  this.after_value = this.after_options[i].value
358
+                }
359
+              }
360
+              this.Getdialyzerdetail(this.after_value)
359
             })
361
             })
360
           }
362
           }
361
 
363
 
365
       // 导出excel
367
       // 导出excel
366
       exportExcel(){
368
       exportExcel(){
367
         let tableData = [
369
         let tableData = [
368
-          ['序号', '透析号', '患者姓名', '透析日期','透析模式', '透析器']//导出表头
370
+          ['序号', '透析号', '患者姓名','性别','年龄','透析日期','干体重','前次透后体重','透前体重','体重增加','透后体重',]//导出表头
369
         ]
371
         ]
370
         this.tableData.forEach((item,index) =>{
372
         this.tableData.forEach((item,index) =>{
371
           let rowdata=[]
373
           let rowdata=[]
373
             item.index,
375
             item.index,
374
             item.dialysis_no,
376
             item.dialysis_no,
375
             item.name,
377
             item.name,
378
+            item.sex,
379
+            item.age,
376
             item.date,
380
             item.date,
377
-            item.mode_name,
378
-            item.dialyszers,
381
+
382
+            item.dry_weight,
383
+            item.last_weight_after,
384
+            item.weight_before,
385
+            item.weight_add,
386
+            item.weight_after
387
+
379
           ]
388
           ]
380
           tableData.push(rowdata)
389
           tableData.push(rowdata)
381
         })
390
         })
382
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
391
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
383
         let bookNew = XLSX.utils.book_new();
392
         let bookNew = XLSX.utils.book_new();
384
-        XLSX.utils.book_append_sheet(bookNew, workSheet, '透析器使用统计') // 工作簿名称
385
-        let name = '透析器使用统计'+ '.xlsx'
393
+        XLSX.utils.book_append_sheet(bookNew, workSheet, '患者后体重分析') // 工作簿名称
394
+        let name = '患者后体重分析'+ '.xlsx'
386
         XLSX.writeFile(bookNew, name) // 保存的文件名
395
         XLSX.writeFile(bookNew, name) // 保存的文件名
387
       },
396
       },
388
       // 查询
397
       // 查询
485
         console.log('eve',eve);
494
         console.log('eve',eve);
486
       },
495
       },
487
       // 详情数据源
496
       // 详情数据源
488
-      Getdialyzerdetail(name){
489
-        const params={
490
-          dialyzer:name,
491
-          start_date:this.start_date,
492
-          end_date:this.end_date,
497
+      Getdialyzerdetail(after){
498
+        const params ={
499
+          start_time:this.start_date,
500
+          end_time:this.end_date,
501
+          add_type:this.weight_value,
502
+          dry_type:this.dry_value,
503
+          after_type:after,
504
+          keyword:this.Patient_name,
493
           page:this.currentPage,
505
           page:this.currentPage,
494
           limit:this.limit,
506
           limit:this.limit,
495
         }
507
         }
496
-        Getdialyzerdetail(params).then(response =>{
508
+        Getweightdetail(params).then(response =>{
497
           if(response.data.state == 1){
509
           if(response.data.state == 1){
498
-            const list = response.data.data.prescriptions
510
+            const list = response.data.data.list
499
             const table=[]
511
             const table=[]
500
-            list.forEach((item,index)=>{
501
-              const obj ={
502
-                index:index+1,
503
-                dialysis_no:item.patient.dialysis_no,
504
-                name:item.patient.name,
505
-                date:this.getTime(item.record_date),
506
-                mode_name:this.getmode(item.mode_id),
507
-                dialyszers:item.dialysis_dialyszers +'  '+ item.dialysis_irrigation+'  '+item.dialysis_strainer
508
-                // dialyszers:item.dialysis_dialyszers || item.dialysis_irrigation || item.dialysis_strainer
509
-              }
510
-              table.push(obj)
511
-            })
512
-            this.tableData = table
513
-            this.total = response.data.data.total
512
+            if(list.length>0){
513
+              list.forEach((item,index)=>{
514
+                const obj ={
515
+                  index:index+1,
516
+                  dialysis_no:item.dialysis_no,
517
+                  name:item.patient_name,
518
+                  sex:this.getgender(item.gender),
519
+                  age:item.age,
520
+                  date:this.getTime(item.assessment_date),
521
+                  dry_weight:item.dry_weight,
522
+                  last_weight_after:item.last_weight_after,
523
+                  weight_before:item.weight_before,
524
+                  weight_add:item.weight_add,
525
+                  weight_after:item.weight_after
526
+                }
527
+                table.push(obj)
528
+              })
529
+              this.tableData = table
530
+              this.total = response.data.data.total
531
+            }
514
           }
532
           }
515
           console.log('77777',response);
533
           console.log('77777',response);
516
         })
534
         })
623
         this.limit = val
641
         this.limit = val
624
         this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
642
         this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
625
       },
643
       },
626
-      // 透析模式
627
-      getmode(ids){
628
-        const modes=this.modearr
629
-        for(let i in modes){
630
-          if(ids == modes[i].id){
631
-            return modes[i].name
632
-          }
644
+      // 性别
645
+      getgender(ids){
646
+        if(ids ==1){
647
+          return "男"
648
+        }else{
649
+          return "女"
633
         }
650
         }
634
       },
651
       },
635
        // 转换时间
652
        // 转换时间
654
         }
671
         }
655
         return new Blob([u8arr], { type: mime });
672
         return new Blob([u8arr], { type: mime });
656
       },
673
       },
657
-      // 全部透析器
658
-      Getdialyzerconfig(){
659
-        Getdialyzerconfig().then(response =>{
660
-          console.log('666666',response);
661
-        })
662
-      },
663
       getdialyze(val){
674
       getdialyze(val){
664
         const option = this.dialyze_options
675
         const option = this.dialyze_options
665
         for(let i in option){
676
         for(let i in option){
674
     },
685
     },
675
     created(){
686
     created(){
676
       this.start_date = this.getFirstDayOfMonth(new Date())
687
       this.start_date = this.getFirstDayOfMonth(new Date())
677
-      this.Getdialyzerconfig()
678
     },
688
     },
679
 
689
 
680
   }
690
   }

+ 105 - 94
src/xt_pages/Dialysisanalysis/weightblood/components/dry_denominator.vue Ver arquivo

69
       <el-dialog
69
       <el-dialog
70
         title="详情"
70
         title="详情"
71
         :visible.sync="dialyze_dialog"
71
         :visible.sync="dialyze_dialog"
72
-        width="80%">
72
+        width="90%">
73
         <div>
73
         <div>
74
           <div style="display: flex;margin-bottom: 20px;">
74
           <div style="display: flex;margin-bottom: 20px;">
75
-            <div style="flex: 2;display: flex;flex-wrap:wrap">
75
+            <div style="flex: 5;display: flex;flex-wrap:wrap">
76
               <div>
76
               <div>
77
                 日期:
77
                 日期:
78
                 <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
78
                 <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
101
                   style="width: 150px;">
101
                   style="width: 150px;">
102
                 </el-date-picker>
102
                 </el-date-picker>
103
               </div>
103
               </div>
104
-              <div>
104
+
105
+               <div>
105
                 体重增长:
106
                 体重增长:
106
-                <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
107
+                <el-select v-model="weight_value" placeholder="请选择" style="width: 100px;">
107
                   <el-option :key="0" label="不限" :value="0"></el-option>
108
                   <el-option :key="0" label="不限" :value="0"></el-option>
108
                   <el-option
109
                   <el-option
109
-                    v-for="item in dialyze_options"
110
-                    :key="item.id"
111
-                    :label="item.name"
112
-                    :value="item.id">
110
+                    v-for="item in weight_gain"
111
+                    :key="item.value"
112
+                    :label="item.label"
113
+                    :value="item.value">
113
                   </el-option>
114
                   </el-option>
114
                 </el-select>
115
                 </el-select>
115
               </div>
116
               </div>
116
               <div>
117
               <div>
117
                 干体重:
118
                 干体重:
118
-                <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
119
+                <el-select v-model="dry_value" placeholder="请选择" style="width: 100px;">
119
                   <el-option :key="0" label="不限" :value="0"></el-option>
120
                   <el-option :key="0" label="不限" :value="0"></el-option>
120
                   <el-option
121
                   <el-option
121
-                    v-for="item in dialyze_options"
122
-                    :key="item.id"
123
-                    :label="item.name"
124
-                    :value="item.id">
122
+                    v-for="item in status_options"
123
+                    :key="item.value"
124
+                    :label="item.label"
125
+                    :value="item.value">
125
                   </el-option>
126
                   </el-option>
126
                 </el-select>
127
                 </el-select>
127
               </div>
128
               </div>
128
               <div>
129
               <div>
129
                 透后体重:
130
                 透后体重:
130
-                <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
131
+                <el-select v-model="after_value" placeholder="请选择" style="width: 100px;">
131
                   <el-option :key="0" label="不限" :value="0"></el-option>
132
                   <el-option :key="0" label="不限" :value="0"></el-option>
132
                   <el-option
133
                   <el-option
133
-                    v-for="item in dialyze_options"
134
-                    :key="item.id"
135
-                    :label="item.name"
136
-                    :value="item.id">
134
+                    v-for="item in after_options"
135
+                    :key="item.value"
136
+                    :label="item.label"
137
+                    :value="item.value">
137
                   </el-option>
138
                   </el-option>
138
                 </el-select>
139
                 </el-select>
139
               </div>
140
               </div>
140
               <div >
141
               <div >
141
-                <el-input v-model="input" placeholder="搜索患者姓名"></el-input>
142
+                <el-input v-model="Patient_name" placeholder="搜索患者姓名" style="width: 120px;"></el-input>
142
               </div>
143
               </div>
143
             </div>
144
             </div>
144
             <div style="flex: 1;">
145
             <div style="flex: 1;">
168
               label="患者姓名">
169
               label="患者姓名">
169
             </el-table-column>
170
             </el-table-column>
170
             <el-table-column
171
             <el-table-column
171
-              prop="name"
172
+              prop="sex"
172
               label="性别"
173
               label="性别"
173
               width="">
174
               width="">
174
             </el-table-column>
175
             </el-table-column>
175
             <el-table-column
176
             <el-table-column
176
-              prop="name"
177
+              prop="age"
177
               label="年龄"
178
               label="年龄"
178
               width="">
179
               width="">
179
             </el-table-column>
180
             </el-table-column>
183
               width="">
184
               width="">
184
             </el-table-column>
185
             </el-table-column>
185
             <el-table-column
186
             <el-table-column
186
-              prop="mode_name"
187
+              prop="dry_weight"
187
               label="干体重"
188
               label="干体重"
188
               width="">
189
               width="">
189
             </el-table-column>
190
             </el-table-column>
190
             <el-table-column
191
             <el-table-column
191
-              prop="dialyszers"
192
+              prop="last_weight_after"
192
               label="前次透后体重">
193
               label="前次透后体重">
193
             </el-table-column>
194
             </el-table-column>
194
             <el-table-column
195
             <el-table-column
195
-              prop="date"
196
+              prop="weight_before"
196
               label="透前体重"
197
               label="透前体重"
197
               width="">
198
               width="">
198
             </el-table-column>
199
             </el-table-column>
199
             <el-table-column
200
             <el-table-column
200
-              prop="mode_name"
201
+              prop="weight_add"
201
               label="体重增加"
202
               label="体重增加"
202
               width="">
203
               width="">
203
             </el-table-column>
204
             </el-table-column>
204
             <el-table-column
205
             <el-table-column
205
-              prop="dialyszers"
206
+              prop="weight_after"
206
               label="透后体重">
207
               label="透后体重">
207
             </el-table-column>
208
             </el-table-column>
208
           </el-table>
209
           </el-table>
231
 import * as echarts from 'echarts';
232
 import * as echarts from 'echarts';
232
 import XLSX from 'xlsx';
233
 import XLSX from 'xlsx';
233
 import { uParseTime } from "@/utils/tools";
234
 import { uParseTime } from "@/utils/tools";
234
-import {Getdialyzer,Getdialyzerdetail,Getdialyzerconfig} from '../../../../api/qcd'
235
+import {Getpatinetweight,Getweightdetail} from '../../../../api/qcd'
235
 import { forEach } from 'jszip';
236
 import { forEach } from 'jszip';
236
 import html2canvas from "html2canvas"
237
 import html2canvas from "html2canvas"
237
   export default {
238
   export default {
251
         limit:50,
252
         limit:50,
252
         total:0,
253
         total:0,
253
         tableData:[],
254
         tableData:[],
254
-        dialyze_options:[],
255
+        weight_gain:[],
256
+        weight_value:0,
257
+        dry_value:0,
258
+        after_value:0,
259
+        after_options:[{value:1,label:'达到干体重'},{value:2,label:'未达到干体重'},{value:3,label:'其他或卧床'}],
260
+        Patient_name:'',
255
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
261
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
256
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
262
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
257
         ],
263
         ],
258
-        modearr:[{ id: 1, name: 'HD' },{ id: 2, name: 'HDF' },{ id: 3, name: 'HD + HP' },{ id: 4, name: 'HP' },
259
-          { id: 5, name: 'HF' },{ id: 6, name: 'SCUF' },{ id: 7, name: 'IUF' },{ id: 8, name: 'HFHD' },{ id: 9, name: 'HFHD+HP' },
260
-          { id: 10, name: 'PHF' },{ id: 11, name: 'HFR' },{ id: 12, name: 'HDF+HP' },{ id: 13, name: 'CRRT' },{ id: 14, name: '腹水回输' },
261
-          { id:19, name:"IUF+HD"},{ id:20, name:"UF"},{ id:21, name:"HD+"},{ id:22, name:"血浆胆红素吸附+HDF"},{ id:23, name:"血浆胆红素吸附"},
262
-          { id:24, name:"I-HDF"},{ id:25, name:"HD高通"},{ id:26, name:"CVVH"},{ id:27, name:"CVVHD"},{ id:28, name:"CVVHDF"},{ id:29, name:"PE"},
263
-          { id:30, name:"血浆胆红素吸附+HP"},{ id:31, name:"HPD"},{ id:32, name:"HDP"},{ id:33, name:"HFD"},{ id:34, name:"HDF100"},
264
-          { id:35, name:"HDF600"},{ id:36, name:"HDF800"},{ id:37, name:"HDF1000"},
265
-        ],
264
+        status_options:[{value:1,label:'小于40kg'},{value:2,label:'40~50kg'},{value:3,label:'60~70kg'},
265
+                        {value:4,label:'大于70kg'},{value:5,label:'未知'}],
266
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
266
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
267
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
267
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
268
 
268
 
280
         var chartDom = document.getElementById('mychart')
280
         var chartDom = document.getElementById('mychart')
281
         var myChart = echarts.init(chartDom);
281
         var myChart = echarts.init(chartDom);
282
         const params ={
282
         const params ={
283
-          start_date:this.start_date,
284
-          end_date:this.end_date,
283
+          start_time:this.start_date,
284
+          end_time:this.end_date,
285
+          statistics_type:3,
285
         }
286
         }
286
-        Getdialyzer(params).then(response =>{
287
+        Getpatinetweight(params).then(response =>{
287
           console.log('ressponse',response.data.data);
288
           console.log('ressponse',response.data.data);
288
           if(response.data.state ==1){
289
           if(response.data.state ==1){
289
             console.log('bbbbbbbbb',response.data.data);
290
             console.log('bbbbbbbbb',response.data.data);
290
-            const list = response.data.data.data
291
+            const list = response.data.data.list
291
             const xAxis =[]
292
             const xAxis =[]
292
             const yAxis = []
293
             const yAxis = []
293
-            list.forEach(item =>{
294
-
295
-              xAxis.push(item.name)
296
-              yAxis.push(item.count)
297
-            })
298
-            this.bar_xAxis = xAxis
299
-            const options = []
300
-            for(let i in xAxis){
301
-              const arr ={
302
-                id:i+1,
303
-                name:xAxis[i]
294
+            const weight = []
295
+            for(let i in list){
296
+              xAxis.push(list[i].name)
297
+              yAxis.push(list[i].total)
298
+               const obj ={
299
+                value:i+1,
300
+                label:list[i].name
304
               }
301
               }
305
-              options.push(arr)
302
+              weight.push(obj)
306
             }
303
             }
307
-            this.dialyze_options = options
304
+            this.weight_gain = weight
308
             const option = {
305
             const option = {
309
               xAxis: {
306
               xAxis: {
310
                 type: 'category',
307
                 type: 'category',
356
             myChart.on('click',params =>{
353
             myChart.on('click',params =>{
357
               this.dialyze_dialog = true
354
               this.dialyze_dialog = true
358
               console.log('vvvvv',params);
355
               console.log('vvvvv',params);
359
-              this.Getdialyzerdetail(params.name)
356
+              for(let i in this.weight_gain){
357
+                if(params.name = this.weight_gain[i].label){
358
+                  this.weight_value = this.weight_gain[i].value
359
+                }
360
+              }
361
+              this.Getdialyzerdetail(this.weight_value)
360
             })
362
             })
361
           }
363
           }
362
 
364
 
366
       // 导出excel
368
       // 导出excel
367
       exportExcel(){
369
       exportExcel(){
368
         let tableData = [
370
         let tableData = [
369
-          ['序号', '透析号', '患者姓名', '透析日期','透析模式', '透析器']//导出表头
371
+          ['序号', '透析号', '患者姓名','性别','年龄','透析日期','干体重','前次透后体重','透前体重','体重增加','透后体重',]//导出表头
370
         ]
372
         ]
371
         this.tableData.forEach((item,index) =>{
373
         this.tableData.forEach((item,index) =>{
372
           let rowdata=[]
374
           let rowdata=[]
374
             item.index,
376
             item.index,
375
             item.dialysis_no,
377
             item.dialysis_no,
376
             item.name,
378
             item.name,
379
+            item.sex,
380
+            item.age,
377
             item.date,
381
             item.date,
378
-            item.mode_name,
379
-            item.dialyszers,
382
+
383
+            item.dry_weight,
384
+            item.last_weight_after,
385
+            item.weight_before,
386
+            item.weight_add,
387
+            item.weight_after
388
+
380
           ]
389
           ]
381
           tableData.push(rowdata)
390
           tableData.push(rowdata)
382
         })
391
         })
383
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
392
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
384
         let bookNew = XLSX.utils.book_new();
393
         let bookNew = XLSX.utils.book_new();
385
-        XLSX.utils.book_append_sheet(bookNew, workSheet, '透析器使用统计') // 工作簿名称
386
-        let name = '透析器使用统计'+ '.xlsx'
394
+        XLSX.utils.book_append_sheet(bookNew, workSheet, '患者体重增长分析(以干体重为分母)') // 工作簿名称
395
+        let name = '患者体重增长分析(以干体重为分母)'+ '.xlsx'
387
         XLSX.writeFile(bookNew, name) // 保存的文件名
396
         XLSX.writeFile(bookNew, name) // 保存的文件名
388
       },
397
       },
389
       // 查询
398
       // 查询
486
         console.log('eve',eve);
495
         console.log('eve',eve);
487
       },
496
       },
488
       // 详情数据源
497
       // 详情数据源
489
-      Getdialyzerdetail(name){
490
-        const params={
491
-          dialyzer:name,
492
-          start_date:this.start_date,
493
-          end_date:this.end_date,
498
+      Getdialyzerdetail(add){
499
+        const params ={
500
+          start_time:this.start_date,
501
+          end_time:this.end_date,
502
+          add_type:add,
503
+          dry_type:this.dry_value,
504
+          after_type:this.after_value,
505
+          keyword:this.Patient_name,
494
           page:this.currentPage,
506
           page:this.currentPage,
495
           limit:this.limit,
507
           limit:this.limit,
496
         }
508
         }
497
-        Getdialyzerdetail(params).then(response =>{
509
+        Getweightdetail(params).then(response =>{
498
           if(response.data.state == 1){
510
           if(response.data.state == 1){
499
-            const list = response.data.data.prescriptions
511
+            const list = response.data.data.list
500
             const table=[]
512
             const table=[]
501
-            list.forEach((item,index)=>{
502
-              const obj ={
503
-                index:index+1,
504
-                dialysis_no:item.patient.dialysis_no,
505
-                name:item.patient.name,
506
-                date:this.getTime(item.record_date),
507
-                mode_name:this.getmode(item.mode_id),
508
-                dialyszers:item.dialysis_dialyszers +'  '+ item.dialysis_irrigation+'  '+item.dialysis_strainer
509
-                // dialyszers:item.dialysis_dialyszers || item.dialysis_irrigation || item.dialysis_strainer
510
-              }
511
-              table.push(obj)
512
-            })
513
-            this.tableData = table
514
-            this.total = response.data.data.total
513
+            if(list.length>0){
514
+              list.forEach((item,index)=>{
515
+                const obj ={
516
+                  index:index+1,
517
+                  dialysis_no:item.dialysis_no,
518
+                  name:item.patient_name,
519
+                  sex:this.getgender(item.gender),
520
+                  age:item.age,
521
+                  date:this.getTime(item.assessment_date),
522
+                  dry_weight:item.dry_weight,
523
+                  last_weight_after:item.last_weight_after,
524
+                  weight_before:item.weight_before,
525
+                  weight_add:item.weight_add,
526
+                  weight_after:item.weight_after
527
+                }
528
+                table.push(obj)
529
+              })
530
+              this.tableData = table
531
+              this.total = response.data.data.total
532
+            }
515
           }
533
           }
516
           console.log('77777',response);
534
           console.log('77777',response);
517
         })
535
         })
624
         this.limit = val
642
         this.limit = val
625
         this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
643
         this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
626
       },
644
       },
627
-      // 透析模式
628
-      getmode(ids){
629
-        const modes=this.modearr
630
-        for(let i in modes){
631
-          if(ids == modes[i].id){
632
-            return modes[i].name
633
-          }
645
+      // 性别
646
+      getgender(ids){
647
+        if(ids ==1){
648
+          return "男"
649
+        }else{
650
+          return "女"
634
         }
651
         }
635
       },
652
       },
636
        // 转换时间
653
        // 转换时间
655
         }
672
         }
656
         return new Blob([u8arr], { type: mime });
673
         return new Blob([u8arr], { type: mime });
657
       },
674
       },
658
-      // 全部透析器
659
-      Getdialyzerconfig(){
660
-        Getdialyzerconfig().then(response =>{
661
-          console.log('666666',response);
662
-        })
663
-      },
664
       getdialyze(val){
675
       getdialyze(val){
665
         const option = this.dialyze_options
676
         const option = this.dialyze_options
666
         for(let i in option){
677
         for(let i in option){
675
     },
686
     },
676
     created(){
687
     created(){
677
       this.start_date = this.getFirstDayOfMonth(new Date())
688
       this.start_date = this.getFirstDayOfMonth(new Date())
678
-      this.Getdialyzerconfig()
689
+
679
     },
690
     },
680
 
691
 
681
   }
692
   }

+ 64 - 104
src/xt_pages/Dialysisanalysis/weightblood/components/dry_weight.vue Ver arquivo

149
                 label="年龄">
149
                 label="年龄">
150
               </el-table-column>
150
               </el-table-column>
151
               <el-table-column
151
               <el-table-column
152
-                prop="dialysis_date"
152
+                prop="dry"
153
                 label="干体重"
153
                 label="干体重"
154
                 width="">
154
                 width="">
155
               </el-table-column>
155
               </el-table-column>
156
-             
156
+
157
             </el-table>
157
             </el-table>
158
           </div>
158
           </div>
159
           <div style="text-align:right;margin-top: 10px;">
159
           <div style="text-align:right;margin-top: 10px;">
180
 import * as echarts from 'echarts';
180
 import * as echarts from 'echarts';
181
 import XLSX from 'xlsx';
181
 import XLSX from 'xlsx';
182
 import { uParseTime } from "@/utils/tools";
182
 import { uParseTime } from "@/utils/tools";
183
-import {Getdialysistreatfinish,Getdialysistreatdetail} from '../../../../api/qcd'
183
+import {Getpatinetweight,Getweightdetail} from '../../../../api/qcd'
184
 import {getAllNurseList} from '@/api/fallassement'
184
 import {getAllNurseList} from '@/api/fallassement'
185
 import { getAllDoctorList} from "@/api/device"
185
 import { getAllDoctorList} from "@/api/device"
186
 import html2canvas from "html2canvas"
186
 import html2canvas from "html2canvas"
201
         limit:50,
201
         limit:50,
202
         total:0,
202
         total:0,
203
         tableData:[],
203
         tableData:[],
204
-        // status_options:[],
204
+        status_options:[],
205
         nurseList:[],
205
         nurseList:[],
206
         operators:[],
206
         operators:[],
207
         docList:[],
207
         docList:[],
208
-        status_options:[{value:1,label:'达到透析处方时间'},{value:2,label:'超出处方时间'},{value:3,label:'未到达处方时间'}],
209
-        // status_options:[{value:1,label:'待定卧床'},{value:2,label:'<40KG'},{value:3,label:'40-50KG'},
210
-        //                 {value:4,label:'50-60KG'},{value:5,label:'<60-70KG'},{value:6,label:'>70KG'}
211
-        //                 ],
208
+        // status_options:[{value:1,label:'小于40kg'},{value:2,label:'40~50kg'},{value:3,label:'60~70kg'},
209
+        //                 {value:4,label:'大于70kg'},{value:5,label:'未知'}],
210
+
212
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
211
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
213
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
212
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
214
         ],
213
         ],
234
         var chartDom = document.getElementById('mychart')
233
         var chartDom = document.getElementById('mychart')
235
         var myChart = echarts.init(chartDom);
234
         var myChart = echarts.init(chartDom);
236
         const params={
235
         const params={
237
-          start_date:this.start_date,
238
-          end_date:this.end_date
236
+          start_time:this.start_date,
237
+          end_time:this.end_date,
238
+          statistics_type:1,
239
         }
239
         }
240
-        Getdialysistreatfinish(params).then(response =>{
240
+        Getpatinetweight(params).then(response =>{
241
           if(response.data.state ==1){
241
           if(response.data.state ==1){
242
-            const list = response.data.data.data
242
+            const list = response.data.data.list
243
             const xAxis = []
243
             const xAxis = []
244
             const yAxis = []
244
             const yAxis = []
245
-
246
-            const total = response.data.data.total
245
+            var option =[]
246
+            var total = 0
247
             for(let key in list){
247
             for(let key in list){
248
               const obj={
248
               const obj={
249
-                name:key,
250
-                value:list[key]
249
+                name:list[key].name,
250
+                value:list[key].total
251
               }
251
               }
252
+              total = total + list[key].total
252
               xAxis.push(obj)
253
               xAxis.push(obj)
253
-              yAxis.push(key)
254
+              yAxis.push(list[key].name)
255
+              const objs = {
256
+                value:(key*1)+1,
257
+                label:list[key].name
258
+              }
259
+              option.push(objs)
254
             }
260
             }
261
+            this.status_options = option
255
             const status = []
262
             const status = []
256
-            // for(let i in yAxis){
257
-            //   const obj ={
258
-            //     value:(i*1)+1,
259
-            //     label:yAxis[i]
260
-            //   }
261
-            //   status.push(obj)
262
-            // }
263
-            // this.status_options = status
264
-            console.log('this.status_options',this.status_options);
263
+            console.log('this.status_options',response.data.data);
265
             const option = {
264
             const option = {
266
                 title:{
265
                 title:{
267
-                  text:'总数'+total,
266
+                  text:'总数'+total+'人',
268
                   left:'5%',
267
                   left:'5%',
269
                   bottom:'5%',
268
                   bottom:'5%',
270
                   textStyle:{
269
                   textStyle:{
322
             myChart.setOption(option);
321
             myChart.setOption(option);
323
             myChart.on('click',params =>{
322
             myChart.on('click',params =>{
324
               this.complete_dialog = true
323
               this.complete_dialog = true
325
-              console.log('bbbb',params);
326
-              var status_id =''
324
+              console.log('bbbb',params,this.status_options);
325
+              // var status_val = ''
327
               for(let i in this.status_options){
326
               for(let i in this.status_options){
328
                 if(params.data.name == this.status_options[i].label){
327
                 if(params.data.name == this.status_options[i].label){
329
-                  status_id = this.status_options[i].value
328
+                  this.status_value = this.status_options[i].value
330
                 }
329
                 }
331
               }
330
               }
332
-              this.getdetail(status_id)
331
+              console.log(' this.status_value', this.status_value);
332
+
333
+              this.getdetail(this.status_value)
333
             })
334
             })
334
           }
335
           }
335
         })
336
         })
372
       // 导出excel
373
       // 导出excel
373
       derive_click(){
374
       derive_click(){
374
         let tableData = [
375
         let tableData = [
375
-          ['序号', '透析号', '患者姓名', '年龄','透析日期', '处方透析时长', '实际透析时长', '实际差(min)', '主治医生', '主治护士']//导出表头
376
+          ['序号', '透析号', '患者姓名', '年龄','干体重']//导出表头
376
         ]
377
         ]
377
         this.tableData.forEach((item,index) =>{
378
         this.tableData.forEach((item,index) =>{
378
           let rowdata=[]
379
           let rowdata=[]
381
             item.dialysis_no,
382
             item.dialysis_no,
382
             item.patient_name,
383
             item.patient_name,
383
             item.age,
384
             item.age,
384
-            item.dialysis_date,
385
-            item.dialysis_duration,
386
-            item.actual_duration,
387
-            item.diff,
388
-            item.doctor,
389
-            item.nurse,
385
+            item.dry,
390
           ]
386
           ]
391
           tableData.push(rowdata)
387
           tableData.push(rowdata)
392
         })
388
         })
393
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
389
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
394
         let bookNew = XLSX.utils.book_new();
390
         let bookNew = XLSX.utils.book_new();
395
-        XLSX.utils.book_append_sheet(bookNew, workSheet, '透析治疗完成率') // 工作簿名称
396
-        let name = '透析治疗完成率'+ '.xlsx'
391
+        XLSX.utils.book_append_sheet(bookNew, workSheet, '患者干体重分析') // 工作簿名称
392
+        let name = '患者干体重分析'+ '.xlsx'
397
         XLSX.writeFile(bookNew, name) // 保存的文件名
393
         XLSX.writeFile(bookNew, name) // 保存的文件名
398
       },
394
       },
399
       // 详情数据源
395
       // 详情数据源
400
-      getdetail(mode){
396
+      getdetail(dry){
401
         const params ={
397
         const params ={
402
-          start_date:this.start_date,
403
-          end_date:this.end_date,
404
-          mode:mode,
398
+          start_time:this.start_date,
399
+          end_time:this.end_date,
400
+          add_type:0,
401
+          dry_type:dry,
402
+          after_type:0,
403
+          keyword:'',
405
           page:this.currentPage,
404
           page:this.currentPage,
406
           limit:this.limit,
405
           limit:this.limit,
407
         }
406
         }
408
-        Getdialysistreatdetail(params).then(response =>{
409
-          if(response.data.state){
407
+        Getweightdetail(params).then(response =>{
408
+          if(response.data.state ==1){
410
             const list = response.data.data.list
409
             const list = response.data.data.list
411
-            const xAxis = []
410
+            // const xAxis = []
412
             const table = []
411
             const table = []
413
-            list.forEach((item,index) =>{
414
-              const obj={
415
-                index:index+1,
416
-                dialysis_no:item.dialysis_no,
417
-                patient_name:item.patient_name,
418
-                age:this.analyzeIDCard(item.id_card_no),
419
-                dialysis_date:item.dialysis_date.split('T')[0],
420
-                dialysis_duration:item.dialysis_duration,
421
-                actual_duration:item.actual_duration,
422
-                diff:item.diff,
423
-                doctor:this.getdoctor(item.doctor),
424
-                nurse:this.getnurse(item.nurse)
425
-              }
426
-              table.push(obj)
427
-            })
428
-            this.tableData = table
429
-            this.total = response.data.data.total
412
+            if(list.length >0){
413
+              list.forEach((item,index) =>{
414
+                const obj={
415
+                  index:index+1,
416
+                  dialysis_no:item.dialysis_no,
417
+                  patient_name:item.patient_name,
418
+                  age:item.age,
419
+                  dry:item.dry_weight,
420
+                }
421
+                table.push(obj)
422
+              })
423
+              this.tableData = table
424
+              this.total = response.data.data.total
425
+            }
430
           }
426
           }
431
-          console.log('55555',response);
427
+          console.log('555553333干体重',response);
432
         })
428
         })
433
       },
429
       },
434
       // 选择日期
430
       // 选择日期
660
         }
656
         }
661
 
657
 
662
       },
658
       },
663
-      // 护士
664
-      getAllNurseList(){
665
-        getAllNurseList().then(response=>{
666
-           if(response.data.state ==1){
667
-             var nurseList  = response.data.data.nurseList
668
-            console.log('0000',nurseList);
669
-             this.nurseList =nurseList
670
-           }
671
-        })
672
-      },
673
-      // 医生
674
-      getAllDoctorList(){
675
-        getAllDoctorList().then(response=>{
676
-          if(response.data.state == 1){
677
-              var list = response.data.data.list
678
-              console.log("list222222",list)
679
-              this.docList = list
680
-              this.operators = response.data.data.operators
681
-          }
682
-        })
683
-      },
684
-      getnurse(ids){
685
-        const nurse = this.nurseList
686
-        for(let i in nurse){
687
-          if(ids==nurse[i].admin_user_id){
688
-            return nurse[i].user_name
689
-          }
690
-        }
691
-      },
692
-      getdoctor(ids){
693
-        const doctor = this.docList
694
-        for(let i in doctor){
695
-          if(ids == doctor[i].admin_user_id){
696
-            return doctor[i].user_name
697
-          }
698
-        }
699
-      }
659
+
700
     },
660
     },
701
     mounted(){
661
     mounted(){
702
       this.getecharts()
662
       this.getecharts()
703
     },
663
     },
704
     created(){
664
     created(){
705
       this.start_date = this.getFirstDayOfMonth(new Date())
665
       this.start_date = this.getFirstDayOfMonth(new Date())
706
-      this.getAllNurseList()
707
-      this.getAllDoctorList()
666
+      // this.getAllNurseList()
667
+      // this.getAllDoctorList()
708
     },
668
     },
709
 
669
 
710
   }
670
   }

+ 109 - 105
src/xt_pages/Dialysisanalysis/weightblood/components/list_denominator.vue Ver arquivo

69
       <el-dialog
69
       <el-dialog
70
         title="详情"
70
         title="详情"
71
         :visible.sync="dialyze_dialog"
71
         :visible.sync="dialyze_dialog"
72
-        width="80%">
72
+        width="90%">
73
         <div>
73
         <div>
74
           <div style="display: flex;margin-bottom: 20px;">
74
           <div style="display: flex;margin-bottom: 20px;">
75
-            <div style="flex: 2;display: flex;flex-wrap:wrap">
75
+            <div style="flex: 5;display: flex;flex-wrap:wrap">
76
               <div>
76
               <div>
77
                 日期:
77
                 日期:
78
                 <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
78
                 <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
103
               </div>
103
               </div>
104
               <div>
104
               <div>
105
                 体重增长:
105
                 体重增长:
106
-                <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
106
+                <el-select v-model="weight_value" placeholder="请选择" style="width: 100px;">
107
                   <el-option :key="0" label="不限" :value="0"></el-option>
107
                   <el-option :key="0" label="不限" :value="0"></el-option>
108
                   <el-option
108
                   <el-option
109
-                    v-for="item in dialyze_options"
110
-                    :key="item.id"
111
-                    :label="item.name"
112
-                    :value="item.id">
109
+                    v-for="item in weight_gain"
110
+                    :key="item.value"
111
+                    :label="item.label"
112
+                    :value="item.value">
113
                   </el-option>
113
                   </el-option>
114
                 </el-select>
114
                 </el-select>
115
               </div>
115
               </div>
116
               <div>
116
               <div>
117
                 干体重:
117
                 干体重:
118
-                <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
118
+                <el-select v-model="dry_value" placeholder="请选择" style="width: 100px;">
119
                   <el-option :key="0" label="不限" :value="0"></el-option>
119
                   <el-option :key="0" label="不限" :value="0"></el-option>
120
                   <el-option
120
                   <el-option
121
-                    v-for="item in dialyze_options"
122
-                    :key="item.id"
123
-                    :label="item.name"
124
-                    :value="item.id">
121
+                    v-for="item in status_options"
122
+                    :key="item.value"
123
+                    :label="item.label"
124
+                    :value="item.value">
125
                   </el-option>
125
                   </el-option>
126
                 </el-select>
126
                 </el-select>
127
               </div>
127
               </div>
128
               <div>
128
               <div>
129
                 透后体重:
129
                 透后体重:
130
-                <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
130
+                <el-select v-model="after_value" placeholder="请选择" style="width: 100px;">
131
                   <el-option :key="0" label="不限" :value="0"></el-option>
131
                   <el-option :key="0" label="不限" :value="0"></el-option>
132
                   <el-option
132
                   <el-option
133
-                    v-for="item in dialyze_options"
134
-                    :key="item.id"
135
-                    :label="item.name"
136
-                    :value="item.id">
133
+                    v-for="item in after_options"
134
+                    :key="item.value"
135
+                    :label="item.label"
136
+                    :value="item.value">
137
                   </el-option>
137
                   </el-option>
138
                 </el-select>
138
                 </el-select>
139
               </div>
139
               </div>
140
               <div >
140
               <div >
141
-                <el-input v-model="input" placeholder="搜索患者姓名"></el-input>
141
+                <el-input v-model="Patient_name" placeholder="搜索患者姓名" style="width: 120px;"></el-input>
142
               </div>
142
               </div>
143
             </div>
143
             </div>
144
             <div style="flex: 1;">
144
             <div style="flex: 1;">
168
               label="患者姓名">
168
               label="患者姓名">
169
             </el-table-column>
169
             </el-table-column>
170
             <el-table-column
170
             <el-table-column
171
-              prop="name"
171
+              prop="sex"
172
               label="性别"
172
               label="性别"
173
               width="">
173
               width="">
174
             </el-table-column>
174
             </el-table-column>
175
             <el-table-column
175
             <el-table-column
176
-              prop="name"
176
+              prop="age"
177
               label="年龄"
177
               label="年龄"
178
               width="">
178
               width="">
179
             </el-table-column>
179
             </el-table-column>
183
               width="">
183
               width="">
184
             </el-table-column>
184
             </el-table-column>
185
             <el-table-column
185
             <el-table-column
186
-              prop="mode_name"
186
+              prop="dry_weight"
187
               label="干体重"
187
               label="干体重"
188
               width="">
188
               width="">
189
             </el-table-column>
189
             </el-table-column>
190
             <el-table-column
190
             <el-table-column
191
-              prop="dialyszers"
191
+              prop="last_weight_after"
192
               label="前次透后体重">
192
               label="前次透后体重">
193
             </el-table-column>
193
             </el-table-column>
194
             <el-table-column
194
             <el-table-column
195
-              prop="date"
195
+              prop="weight_before"
196
               label="透前体重"
196
               label="透前体重"
197
               width="">
197
               width="">
198
             </el-table-column>
198
             </el-table-column>
199
             <el-table-column
199
             <el-table-column
200
-              prop="mode_name"
200
+              prop="weight_add"
201
               label="体重增加"
201
               label="体重增加"
202
               width="">
202
               width="">
203
             </el-table-column>
203
             </el-table-column>
204
             <el-table-column
204
             <el-table-column
205
-              prop="dialyszers"
205
+              prop="weight_after"
206
               label="透后体重">
206
               label="透后体重">
207
             </el-table-column>
207
             </el-table-column>
208
           </el-table>
208
           </el-table>
231
 import * as echarts from 'echarts';
231
 import * as echarts from 'echarts';
232
 import XLSX from 'xlsx';
232
 import XLSX from 'xlsx';
233
 import { uParseTime } from "@/utils/tools";
233
 import { uParseTime } from "@/utils/tools";
234
-import {Getdialyzer,Getdialyzerdetail,Getdialyzerconfig} from '../../../../api/qcd'
234
+import {Getpatinetweight,Getweightdetail} from '../../../../api/qcd'
235
 import { forEach } from 'jszip';
235
 import { forEach } from 'jszip';
236
 import html2canvas from "html2canvas"
236
 import html2canvas from "html2canvas"
237
   export default {
237
   export default {
251
         limit:50,
251
         limit:50,
252
         total:0,
252
         total:0,
253
         tableData:[],
253
         tableData:[],
254
-        dialyze_options:[],
254
+        weight_gain:[],
255
+        weight_value:0,
256
+        dry_value:0,
257
+        after_value:0,
258
+        after_options:[{value:1,label:'达到干体重'},{value:2,label:'未达到干体重'},{value:3,label:'其他或卧床'}],
259
+        Patient_name:'',
255
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
260
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
256
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
261
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
257
         ],
262
         ],
258
-        modearr:[{ id: 1, name: 'HD' },{ id: 2, name: 'HDF' },{ id: 3, name: 'HD + HP' },{ id: 4, name: 'HP' },
259
-          { id: 5, name: 'HF' },{ id: 6, name: 'SCUF' },{ id: 7, name: 'IUF' },{ id: 8, name: 'HFHD' },{ id: 9, name: 'HFHD+HP' },
260
-          { id: 10, name: 'PHF' },{ id: 11, name: 'HFR' },{ id: 12, name: 'HDF+HP' },{ id: 13, name: 'CRRT' },{ id: 14, name: '腹水回输' },
261
-          { id:19, name:"IUF+HD"},{ id:20, name:"UF"},{ id:21, name:"HD+"},{ id:22, name:"血浆胆红素吸附+HDF"},{ id:23, name:"血浆胆红素吸附"},
262
-          { id:24, name:"I-HDF"},{ id:25, name:"HD高通"},{ id:26, name:"CVVH"},{ id:27, name:"CVVHD"},{ id:28, name:"CVVHDF"},{ id:29, name:"PE"},
263
-          { id:30, name:"血浆胆红素吸附+HP"},{ id:31, name:"HPD"},{ id:32, name:"HDP"},{ id:33, name:"HFD"},{ id:34, name:"HDF100"},
264
-          { id:35, name:"HDF600"},{ id:36, name:"HDF800"},{ id:37, name:"HDF1000"},
265
-        ],
263
+        status_options:[{value:1,label:'小于40kg'},{value:2,label:'40~50kg'},{value:3,label:'60~70kg'},
264
+                        {value:4,label:'大于70kg'},{value:5,label:'未知'}],
266
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
265
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
267
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
266
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
268
 
267
 
280
         var chartDom = document.getElementById('mychart')
279
         var chartDom = document.getElementById('mychart')
281
         var myChart = echarts.init(chartDom);
280
         var myChart = echarts.init(chartDom);
282
         const params ={
281
         const params ={
283
-          start_date:this.start_date,
284
-          end_date:this.end_date,
282
+          start_time:this.start_date,
283
+          end_time:this.end_date,
284
+          statistics_type:2,
285
         }
285
         }
286
-        Getdialyzer(params).then(response =>{
286
+        Getpatinetweight(params).then(response =>{
287
           console.log('ressponse',response.data.data);
287
           console.log('ressponse',response.data.data);
288
           if(response.data.state ==1){
288
           if(response.data.state ==1){
289
             console.log('bbbbbbbbb',response.data.data);
289
             console.log('bbbbbbbbb',response.data.data);
290
-            const list = response.data.data.data
290
+            const list = response.data.data.list
291
             const xAxis =[]
291
             const xAxis =[]
292
             const yAxis = []
292
             const yAxis = []
293
-            list.forEach(item =>{
294
-
295
-              xAxis.push(item.name)
296
-              yAxis.push(item.count)
297
-            })
298
-            this.bar_xAxis = xAxis
299
-            const options = []
300
-            for(let i in xAxis){
301
-              const arr ={
302
-                id:i+1,
303
-                name:xAxis[i]
293
+            const weight = []
294
+            for(let i in list){
295
+              xAxis.push(list[i].name)
296
+              yAxis.push(list[i].total)
297
+               const obj ={
298
+                value:i+1,
299
+                label:list[i].name
304
               }
300
               }
305
-              options.push(arr)
301
+              weight.push(obj)
306
             }
302
             }
307
-            this.dialyze_options = options
303
+            this.weight_gain = weight
304
+            this.bar_xAxis = xAxis
305
+
308
             const option = {
306
             const option = {
309
               xAxis: {
307
               xAxis: {
310
                 type: 'category',
308
                 type: 'category',
356
             myChart.on('click',params =>{
354
             myChart.on('click',params =>{
357
               this.dialyze_dialog = true
355
               this.dialyze_dialog = true
358
               console.log('vvvvv',params);
356
               console.log('vvvvv',params);
359
-              this.Getdialyzerdetail(params.name)
357
+              for(let i in this.weight_gain){
358
+                if(params.name = this.weight_gain[i].label){
359
+                  this.weight_value = this.weight_gain[i].value
360
+                }
361
+              }
362
+              this.Getdialyzerdetail(this.weight_value)
360
             })
363
             })
361
           }
364
           }
362
 
365
 
366
       // 导出excel
369
       // 导出excel
367
       exportExcel(){
370
       exportExcel(){
368
         let tableData = [
371
         let tableData = [
369
-          ['序号', '透析号', '患者姓名', '透析日期','透析模式', '透析器']//导出表头
372
+          ['序号', '透析号', '患者姓名','性别','年龄','透析日期','干体重','前次透后体重','透前体重','体重增加','透后体重',]//导出表头
370
         ]
373
         ]
371
         this.tableData.forEach((item,index) =>{
374
         this.tableData.forEach((item,index) =>{
372
           let rowdata=[]
375
           let rowdata=[]
374
             item.index,
377
             item.index,
375
             item.dialysis_no,
378
             item.dialysis_no,
376
             item.name,
379
             item.name,
380
+            item.sex,
381
+            item.age,
377
             item.date,
382
             item.date,
378
-            item.mode_name,
379
-            item.dialyszers,
383
+
384
+            item.dry_weight,
385
+            item.last_weight_after,
386
+            item.weight_before,
387
+            item.weight_add,
388
+            item.weight_after
389
+
380
           ]
390
           ]
381
           tableData.push(rowdata)
391
           tableData.push(rowdata)
382
         })
392
         })
383
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
393
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
384
         let bookNew = XLSX.utils.book_new();
394
         let bookNew = XLSX.utils.book_new();
385
-        XLSX.utils.book_append_sheet(bookNew, workSheet, '透析器使用统计') // 工作簿名称
386
-        let name = '透析器使用统计'+ '.xlsx'
395
+        XLSX.utils.book_append_sheet(bookNew, workSheet, '患者体重增长分析(以上次透后体重为分母)') // 工作簿名称
396
+        let name = '患者体重增长分析(以上次透后体重为分母)'+ '.xlsx'
387
         XLSX.writeFile(bookNew, name) // 保存的文件名
397
         XLSX.writeFile(bookNew, name) // 保存的文件名
388
       },
398
       },
389
       // 查询
399
       // 查询
392
       },
402
       },
393
       // 详情查询
403
       // 详情查询
394
       deil_click(){
404
       deil_click(){
395
-        this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
405
+        this.Getdialyzerdetail(this.weight_value)
396
       },
406
       },
397
        // 下载
407
        // 下载
398
       Download_click(){
408
       Download_click(){
486
         console.log('eve',eve);
496
         console.log('eve',eve);
487
       },
497
       },
488
       // 详情数据源
498
       // 详情数据源
489
-      Getdialyzerdetail(name){
490
-        const params={
491
-          dialyzer:name,
492
-          start_date:this.start_date,
493
-          end_date:this.end_date,
499
+      Getdialyzerdetail(add){
500
+        const params ={
501
+          start_time:this.start_date,
502
+          end_time:this.end_date,
503
+          add_type:add,
504
+          dry_type:this.dry_value,
505
+          after_type:this.after_value,
506
+          keyword:this.Patient_name,
494
           page:this.currentPage,
507
           page:this.currentPage,
495
           limit:this.limit,
508
           limit:this.limit,
496
         }
509
         }
497
-        Getdialyzerdetail(params).then(response =>{
510
+        Getweightdetail(params).then(response =>{
511
+          console.log('77777',response);
498
           if(response.data.state == 1){
512
           if(response.data.state == 1){
499
-            const list = response.data.data.prescriptions
513
+            const list = response.data.data.list
500
             const table=[]
514
             const table=[]
501
-            list.forEach((item,index)=>{
502
-              const obj ={
503
-                index:index+1,
504
-                dialysis_no:item.patient.dialysis_no,
505
-                name:item.patient.name,
506
-                date:this.getTime(item.record_date),
507
-                mode_name:this.getmode(item.mode_id),
508
-                dialyszers:item.dialysis_dialyszers +'  '+ item.dialysis_irrigation+'  '+item.dialysis_strainer
509
-                // dialyszers:item.dialysis_dialyszers || item.dialysis_irrigation || item.dialysis_strainer
510
-              }
511
-              table.push(obj)
512
-            })
513
-            this.tableData = table
514
-            this.total = response.data.data.total
515
+            if(list.length>0){
516
+              list.forEach((item,index)=>{
517
+                const obj ={
518
+                  index:index+1,
519
+                  dialysis_no:item.dialysis_no,
520
+                  name:item.patient_name,
521
+                  sex:this.getgender(item.gender),
522
+                  age:item.age,
523
+                  date:this.getTime(item.assessment_date),
524
+                  dry_weight:item.dry_weight,
525
+                  last_weight_after:item.last_weight_after,
526
+                  weight_before:item.weight_before,
527
+                  weight_add:item.weight_add,
528
+                  weight_after:item.weight_after
529
+                }
530
+                table.push(obj)
531
+              })
532
+              this.tableData = table
533
+              this.total = response.data.data.total
534
+            }
515
           }
535
           }
516
-          console.log('77777',response);
536
+
517
         })
537
         })
518
       },
538
       },
519
        // 首先定义一个getPreviousDate函数,方便调用
539
        // 首先定义一个getPreviousDate函数,方便调用
618
       },
638
       },
619
       handleCurrentChange(val){
639
       handleCurrentChange(val){
620
         this.currentPage = val
640
         this.currentPage = val
621
-        this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
641
+        this.Getdialyzerdetail(this.weight_value)
622
       },
642
       },
623
       handleSizeChange(val){
643
       handleSizeChange(val){
624
         this.limit = val
644
         this.limit = val
625
-        this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
645
+        this.Getdialyzerdetail(this.weight_value)
626
       },
646
       },
627
-      // 透析模式
628
-      getmode(ids){
629
-        const modes=this.modearr
630
-        for(let i in modes){
631
-          if(ids == modes[i].id){
632
-            return modes[i].name
633
-          }
647
+      // 性别
648
+      getgender(ids){
649
+        if(ids ==1){
650
+          return "男"
651
+        }else{
652
+          return "女"
634
         }
653
         }
635
       },
654
       },
636
        // 转换时间
655
        // 转换时间
655
         }
674
         }
656
         return new Blob([u8arr], { type: mime });
675
         return new Blob([u8arr], { type: mime });
657
       },
676
       },
658
-      // 全部透析器
659
-      Getdialyzerconfig(){
660
-        Getdialyzerconfig().then(response =>{
661
-          console.log('666666',response);
662
-        })
663
-      },
664
-      getdialyze(val){
665
-        const option = this.dialyze_options
666
-        for(let i in option){
667
-          if(val == option[i].id){
668
-            return option[i].name
669
-          }
670
-        }
671
-      }
672
     },
677
     },
673
     mounted(){
678
     mounted(){
674
       this.getecharts()
679
       this.getecharts()
675
     },
680
     },
676
     created(){
681
     created(){
677
       this.start_date = this.getFirstDayOfMonth(new Date())
682
       this.start_date = this.getFirstDayOfMonth(new Date())
678
-      this.Getdialyzerconfig()
679
     },
683
     },
680
 
684
 
681
   }
685
   }

+ 146 - 217
src/xt_pages/Dialysisanalysis/weightblood/components/weight_table.vue Ver arquivo

11
     <div class="app-container">
11
     <div class="app-container">
12
       <div class="page_patientControlAnalysis">
12
       <div class="page_patientControlAnalysis">
13
         <div style="display: flex;margin-bottom: 20px;">
13
         <div style="display: flex;margin-bottom: 20px;">
14
-          <div style="flex: 2;display: flex;flex-wrap:wrap">
14
+          <div style="flex: 6;display: flex;flex-wrap:wrap">
15
             <div>
15
             <div>
16
               日期:
16
               日期:
17
               <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
17
               <el-select v-model="date_value" @change="datachange" placeholder="请选择" style="width: 100px;">
40
                 style="width: 150px;">
40
                 style="width: 150px;">
41
               </el-date-picker>
41
               </el-date-picker>
42
             </div>
42
             </div>
43
+
43
             <div>
44
             <div>
44
               体重增长:
45
               体重增长:
45
-              <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
46
+              <el-select v-model="weight_value" placeholder="请选择" style="width: 100px;">
46
                 <el-option :key="0" label="不限" :value="0"></el-option>
47
                 <el-option :key="0" label="不限" :value="0"></el-option>
47
                 <el-option
48
                 <el-option
48
-                  v-for="item in dialyze_options"
49
-                  :key="item.id"
50
-                  :label="item.name"
51
-                  :value="item.id">
49
+                  v-for="item in weight_gain"
50
+                  :key="item.value"
51
+                  :label="item.label"
52
+                  :value="item.value">
52
                 </el-option>
53
                 </el-option>
53
               </el-select>
54
               </el-select>
54
             </div>
55
             </div>
55
             <div>
56
             <div>
56
               干体重:
57
               干体重:
57
-              <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
58
+              <el-select v-model="dry_value" placeholder="请选择" style="width: 100px;">
58
                 <el-option :key="0" label="不限" :value="0"></el-option>
59
                 <el-option :key="0" label="不限" :value="0"></el-option>
59
                 <el-option
60
                 <el-option
60
-                  v-for="item in dialyze_options"
61
-                  :key="item.id"
62
-                  :label="item.name"
63
-                  :value="item.id">
61
+                  v-for="item in status_options"
62
+                  :key="item.value"
63
+                  :label="item.label"
64
+                  :value="item.value">
64
                 </el-option>
65
                 </el-option>
65
               </el-select>
66
               </el-select>
66
             </div>
67
             </div>
67
             <div>
68
             <div>
68
               透后体重:
69
               透后体重:
69
-              <el-select v-model="dialyze_value" placeholder="请选择" style="width: 100px;">
70
+              <el-select v-model="after_value" placeholder="请选择" style="width: 100px;">
70
                 <el-option :key="0" label="不限" :value="0"></el-option>
71
                 <el-option :key="0" label="不限" :value="0"></el-option>
71
                 <el-option
72
                 <el-option
72
-                  v-for="item in dialyze_options"
73
-                  :key="item.id"
74
-                  :label="item.name"
75
-                  :value="item.id">
73
+                  v-for="item in after_options"
74
+                  :key="item.value"
75
+                  :label="item.label"
76
+                  :value="item.value">
76
                 </el-option>
77
                 </el-option>
77
               </el-select>
78
               </el-select>
78
             </div>
79
             </div>
79
             <div >
80
             <div >
80
-              <el-input v-model="input" placeholder="搜索患者姓名"></el-input>
81
+              <el-input v-model="Patient_name" placeholder="搜索患者姓名"></el-input>
81
             </div>
82
             </div>
82
           </div>
83
           </div>
83
           <div style="flex: 1;">
84
           <div style="flex: 1;">
89
         </div>
90
         </div>
90
 
91
 
91
         <el-table :data="tableData" border style="width: 100%"
92
         <el-table :data="tableData" border style="width: 100%"
92
-        :header-cell-style="{textAlign: 'center'}"
93
-        :cell-style="{ textAlign: 'center' }"
94
-        height="380">
95
-          <el-table-column
96
-            prop="index"
97
-            label="序号"
98
-            width="">
99
-          </el-table-column>
100
-          <el-table-column
101
-            prop="dialysis_no"
102
-            label="透析号"
103
-            width="">
104
-          </el-table-column>
105
-          <el-table-column
106
-            prop="name"
107
-            label="患者姓名">
108
-          </el-table-column>
109
-          <el-table-column
110
-            prop="name"
111
-            label="性别"
112
-            width="">
113
-          </el-table-column>
114
-          <el-table-column
115
-            prop="name"
116
-            label="年龄"
117
-            width="">
118
-          </el-table-column>
119
-          <el-table-column
120
-            prop="date"
121
-            label="透析日期"
122
-            width="">
123
-          </el-table-column>
124
-          <el-table-column
125
-            prop="mode_name"
126
-            label="干体重"
127
-            width="">
128
-          </el-table-column>
129
-          <el-table-column
130
-            prop="dialyszers"
131
-            label="前次透后体重">
132
-          </el-table-column>
133
-          <el-table-column
134
-            prop="date"
135
-            label="透前体重"
136
-            width="">
137
-          </el-table-column>
138
-          <el-table-column
139
-            prop="mode_name"
140
-            label="体重增加"
141
-            width="">
142
-          </el-table-column>
143
-          <el-table-column
144
-            prop="dialyszers"
145
-            label="透后体重">
146
-          </el-table-column>
147
-        </el-table>
93
+          :header-cell-style="{textAlign: 'center'}"
94
+          :cell-style="{ textAlign: 'center' }"
95
+          height="380">
96
+            <el-table-column
97
+              prop="index"
98
+              label="序号"
99
+              width="">
100
+            </el-table-column>
101
+            <el-table-column
102
+              prop="dialysis_no"
103
+              label="透析号"
104
+              width="">
105
+            </el-table-column>
106
+            <el-table-column
107
+              prop="name"
108
+              label="患者姓名">
109
+            </el-table-column>
110
+            <el-table-column
111
+              prop="sex"
112
+              label="性别"
113
+              width="">
114
+            </el-table-column>
115
+            <el-table-column
116
+              prop="age"
117
+              label="年龄"
118
+              width="">
119
+            </el-table-column>
120
+            <el-table-column
121
+              prop="date"
122
+              label="透析日期"
123
+              width="">
124
+            </el-table-column>
125
+            <el-table-column
126
+              prop="dry_weight"
127
+              label="干体重"
128
+              width="">
129
+            </el-table-column>
130
+            <el-table-column
131
+              prop="last_weight_after"
132
+              label="前次透后体重">
133
+            </el-table-column>
134
+            <el-table-column
135
+              prop="weight_before"
136
+              label="透前体重"
137
+              width="">
138
+            </el-table-column>
139
+            <el-table-column
140
+              prop="weight_add"
141
+              label="体重增加"
142
+              width="">
143
+            </el-table-column>
144
+            <el-table-column
145
+              prop="weight_after"
146
+              label="透后体重">
147
+            </el-table-column>
148
+          </el-table>
148
         <div style="text-align: right;margin-top: 10px;">
149
         <div style="text-align: right;margin-top: 10px;">
149
           <el-pagination
150
           <el-pagination
150
             @size-change="handleSizeChange"
151
             @size-change="handleSizeChange"
160
     </div>
161
     </div>
161
 
162
 
162
     <!-- 弹窗 -->
163
     <!-- 弹窗 -->
163
-   
164
+
164
   </div>
165
   </div>
165
 </template>
166
 </template>
166
 <script>
167
 <script>
167
 import * as echarts from 'echarts';
168
 import * as echarts from 'echarts';
168
 import XLSX from 'xlsx';
169
 import XLSX from 'xlsx';
169
 import { uParseTime } from "@/utils/tools";
170
 import { uParseTime } from "@/utils/tools";
170
-import {Getdialyzer,Getdialyzerdetail,Getdialyzerconfig} from '../../../../api/qcd'
171
+import {Getweightdetail} from '../../../../api/qcd'
171
 import { forEach } from 'jszip';
172
 import { forEach } from 'jszip';
172
 import html2canvas from "html2canvas"
173
 import html2canvas from "html2canvas"
173
   export default {
174
   export default {
187
         limit:50,
188
         limit:50,
188
         total:0,
189
         total:0,
189
         tableData:[],
190
         tableData:[],
190
-        dialyze_options:[],
191
+
192
+        weight_gain:[{value:1,label:'体重增长<=3%'},{value:2,label:'3%<体重增长<5%'},{value:3,label:'体重增长>=5%'}],
193
+        weight_value:0,
194
+        dry_value:0,
195
+        after_value:0,
196
+        after_options:[{value:1,label:'达到干体重'},{value:2,label:'未达到干体重'},{value:3,label:'其他或卧床'}],
197
+        Patient_name:'',
191
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
198
         date_options:[{value:1,label:'最近七天'},{value:2,label:'本周'},{value:3,label:'上周'},{value:4,label:'本月'},
192
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
199
                       {value:5,label:'上月'},{value:6,label:'本年'},{value:7,label:'上一年'}
193
         ],
200
         ],
194
-        modearr:[{ id: 1, name: 'HD' },{ id: 2, name: 'HDF' },{ id: 3, name: 'HD + HP' },{ id: 4, name: 'HP' },
195
-          { id: 5, name: 'HF' },{ id: 6, name: 'SCUF' },{ id: 7, name: 'IUF' },{ id: 8, name: 'HFHD' },{ id: 9, name: 'HFHD+HP' },
196
-          { id: 10, name: 'PHF' },{ id: 11, name: 'HFR' },{ id: 12, name: 'HDF+HP' },{ id: 13, name: 'CRRT' },{ id: 14, name: '腹水回输' },
197
-          { id:19, name:"IUF+HD"},{ id:20, name:"UF"},{ id:21, name:"HD+"},{ id:22, name:"血浆胆红素吸附+HDF"},{ id:23, name:"血浆胆红素吸附"},
198
-          { id:24, name:"I-HDF"},{ id:25, name:"HD高通"},{ id:26, name:"CVVH"},{ id:27, name:"CVVHD"},{ id:28, name:"CVVHDF"},{ id:29, name:"PE"},
199
-          { id:30, name:"血浆胆红素吸附+HP"},{ id:31, name:"HPD"},{ id:32, name:"HDP"},{ id:33, name:"HFD"},{ id:34, name:"HDF100"},
200
-          { id:35, name:"HDF600"},{ id:36, name:"HDF800"},{ id:37, name:"HDF1000"},
201
-        ],
201
+        status_options:[{value:1,label:'小于40kg'},{value:2,label:'40~50kg'},{value:3,label:'60~70kg'},
202
+                        {value:4,label:'大于70kg'},{value:5,label:'未知'}],
202
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
203
         date_mode_options:[{value:1,label:'按周'},{value:2,label:'按天'},{value:3,label:'按月'},{value:4,label:'按年'}],
203
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
204
         source_options:[{value:1,label:'以开始透析为准'},{value:2,label:'以排班为准'}],
204
 
205
 
205
 
206
 
206
-        input:'',
207
+        // weight_gain:[],
208
+        weight_value:0,
209
+        dry_value:0,
210
+        after_value:0,
211
+        // after_options:[],
212
+        Patient_name:'',
207
       }
213
       }
208
     },
214
     },
209
     methods:{
215
     methods:{
211
       return_click(){
217
       return_click(){
212
         this.$router.push('/Dialysisanalysis/qualitycontrol/weightblood')
218
         this.$router.push('/Dialysisanalysis/qualitycontrol/weightblood')
213
       },
219
       },
214
-      // 数据源
215
-      getecharts(){
216
-        var chartDom = document.getElementById('mychart')
217
-        var myChart = echarts.init(chartDom);
218
-        const params ={
219
-          start_date:this.start_date,
220
-          end_date:this.end_date,
221
-        }
222
-        Getdialyzer(params).then(response =>{
223
-          console.log('ressponse',response.data.data);
224
-          if(response.data.state ==1){
225
-            console.log('bbbbbbbbb',response.data.data);
226
-            const list = response.data.data.data
227
-            const xAxis =[]
228
-            const yAxis = []
229
-            list.forEach(item =>{
230
-
231
-              xAxis.push(item.name)
232
-              yAxis.push(item.count)
233
-            })
234
-            this.bar_xAxis = xAxis
235
-            const options = []
236
-            for(let i in xAxis){
237
-              const arr ={
238
-                id:i+1,
239
-                name:xAxis[i]
240
-              }
241
-              options.push(arr)
242
-            }
243
-            this.dialyze_options = options
244
-            const option = {
245
-              xAxis: {
246
-                type: 'category',
247
-                data: xAxis,
248
-                axisLabel:{
249
-                  interval:0,
250
-                }
251
-              },
252
-              yAxis: {
253
-                type: 'value'
254
-              },
255
-              series: [
256
-                {
257
-                  data:yAxis ,
258
-                  type: 'bar',
259
-                  barWidth: '25%',
260
-                  label: {
261
-                    normal: {
262
-                      show: true,
263
-                      position: 'top',
264
-                      formatter: '{c}',
265
-                      textStyle:{
266
-                        color: 'black',//字体颜色
267
-                        fontSize: 13//字体大小
268
-                      }
269
-                    },
270
-                  },
271
-                  itemStyle:{
272
-                    normal:{
273
-                      color:function (params){
274
-                        // const colorarr=['#FFA333','#A155E8','#6D91FF','#A233A2'];
275
-                        var colorarr = [["#A9E0F3", "#9FBDFC"],["#FFD7C0", "#FF9994"]]
276
-                        var index = params.dataIndex;
277
-                        if (params.dataIndex >= colorarr.length) {
278
-                          index = params.dataIndex % colorarr.length;
279
-                        }
280
-                        return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
281
-                          { offset: 0, color: colorarr[index][0] },
282
-                          // { offset: 0.5, color: colorList[index][1] },
283
-                          { offset: 1, color: colorarr[index][1] }
284
-                        ]);
285
-                      }
286
-                    }
287
-                  }
288
-                }
289
-              ]
290
-            }
291
-            myChart.setOption(option);
292
-            myChart.on('click',params =>{
293
-              this.dialyze_dialog = true
294
-              console.log('vvvvv',params);
295
-              this.Getdialyzerdetail(params.name)
296
-            })
297
-          }
298
-
299
-        })
300
-
301
-      },
302
       // 导出excel
220
       // 导出excel
303
       exportExcel(){
221
       exportExcel(){
304
         let tableData = [
222
         let tableData = [
305
-          ['序号', '透析号', '患者姓名', '透析日期','透析模式', '透析器']//导出表头
223
+          ['序号', '透析号', '患者姓名','性别','年龄','透析日期','干体重','前次透后体重','透前体重','体重增加','透后体重',]//导出表头
306
         ]
224
         ]
307
         this.tableData.forEach((item,index) =>{
225
         this.tableData.forEach((item,index) =>{
308
           let rowdata=[]
226
           let rowdata=[]
310
             item.index,
228
             item.index,
311
             item.dialysis_no,
229
             item.dialysis_no,
312
             item.name,
230
             item.name,
231
+            item.sex,
232
+            item.age,
313
             item.date,
233
             item.date,
314
-            item.mode_name,
315
-            item.dialyszers,
234
+
235
+            item.dry_weight,
236
+            item.last_weight_after,
237
+            item.weight_before,
238
+            item.weight_add,
239
+            item.weight_after
240
+
316
           ]
241
           ]
317
           tableData.push(rowdata)
242
           tableData.push(rowdata)
318
         })
243
         })
319
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
244
         let workSheet = XLSX.utils.aoa_to_sheet(tableData);
320
         let bookNew = XLSX.utils.book_new();
245
         let bookNew = XLSX.utils.book_new();
321
-        XLSX.utils.book_append_sheet(bookNew, workSheet, '透析器使用统计') // 工作簿名称
322
-        let name = '透析器使用统计'+ '.xlsx'
246
+        XLSX.utils.book_append_sheet(bookNew, workSheet, '患者体重详情') // 工作簿名称
247
+        let name = '患者体重详情'+ '.xlsx'
323
         XLSX.writeFile(bookNew, name) // 保存的文件名
248
         XLSX.writeFile(bookNew, name) // 保存的文件名
324
       },
249
       },
325
       // 查询
250
       // 查询
328
       },
253
       },
329
       // 详情查询
254
       // 详情查询
330
       deil_click(){
255
       deil_click(){
331
-        this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
256
+        // this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
332
       },
257
       },
333
        // 下载
258
        // 下载
334
       Download_click(){
259
       Download_click(){
422
         console.log('eve',eve);
347
         console.log('eve',eve);
423
       },
348
       },
424
       // 详情数据源
349
       // 详情数据源
425
-      Getdialyzerdetail(name){
426
-        const params={
427
-          dialyzer:name,
428
-          start_date:this.start_date,
429
-          end_date:this.end_date,
350
+      Getdialyzerdetail(){
351
+        const params ={
352
+          start_time:this.start_date,
353
+          end_time:this.end_date,
354
+          add_type:this.weight_value,
355
+          dry_type:this.dry_value,
356
+          after_type:this.after_value,
357
+          keyword:this.Patient_name,
430
           page:this.currentPage,
358
           page:this.currentPage,
431
           limit:this.limit,
359
           limit:this.limit,
432
         }
360
         }
433
-        Getdialyzerdetail(params).then(response =>{
361
+        Getweightdetail(params).then(response =>{
434
           if(response.data.state == 1){
362
           if(response.data.state == 1){
435
-            const list = response.data.data.prescriptions
363
+            console.log('体重详情分析',response.data.data);
364
+            const list = response.data.data.list
436
             const table=[]
365
             const table=[]
437
-            list.forEach((item,index)=>{
438
-              const obj ={
439
-                index:index+1,
440
-                dialysis_no:item.patient.dialysis_no,
441
-                name:item.patient.name,
442
-                date:this.getTime(item.record_date),
443
-                mode_name:this.getmode(item.mode_id),
444
-                dialyszers:item.dialysis_dialyszers +'  '+ item.dialysis_irrigation+'  '+item.dialysis_strainer
445
-                // dialyszers:item.dialysis_dialyszers || item.dialysis_irrigation || item.dialysis_strainer
446
-              }
447
-              table.push(obj)
448
-            })
449
-            this.tableData = table
450
-            this.total = response.data.data.total
366
+            if(list.length >0){
367
+              list.forEach((item,index)=>{
368
+                const obj ={
369
+                  index:index+1,
370
+                  dialysis_no:item.dialysis_no,
371
+                  name:item.patient_name,
372
+                  sex:this.getgender(item.gender),
373
+                  age:item.age,
374
+                  date:this.getTime(item.assessment_date),
375
+                  dry_weight:item.dry_weight,
376
+                  last_weight_after:item.last_weight_after,
377
+                  weight_before:item.weight_before,
378
+                  weight_add:item.weight_add,
379
+                  weight_after:item.weight_after
380
+                }
381
+                table.push(obj)
382
+              })
383
+              this.tableData = table
384
+              this.total = response.data.data.total
385
+            }
451
           }
386
           }
452
           console.log('77777',response);
387
           console.log('77777',response);
453
         })
388
         })
554
       },
489
       },
555
       handleCurrentChange(val){
490
       handleCurrentChange(val){
556
         this.currentPage = val
491
         this.currentPage = val
557
-        this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
492
+        this.Getdialyzerdetail()
558
       },
493
       },
559
       handleSizeChange(val){
494
       handleSizeChange(val){
560
         this.limit = val
495
         this.limit = val
561
-        this.Getdialyzerdetail(this.getdialyze(this.dialyze_value))
496
+        this.Getdialyzerdetail()
562
       },
497
       },
563
-      // 透析模式
564
-      getmode(ids){
565
-        const modes=this.modearr
566
-        for(let i in modes){
567
-          if(ids == modes[i].id){
568
-            return modes[i].name
569
-          }
498
+      // 性别
499
+      getgender(ids){
500
+        if(ids ==1){
501
+          return "男"
502
+        }else{
503
+          return "女"
570
         }
504
         }
571
       },
505
       },
572
        // 转换时间
506
        // 转换时间
591
         }
525
         }
592
         return new Blob([u8arr], { type: mime });
526
         return new Blob([u8arr], { type: mime });
593
       },
527
       },
594
-      // 全部透析器
595
-      Getdialyzerconfig(){
596
-        Getdialyzerconfig().then(response =>{
597
-          console.log('666666',response);
598
-        })
599
-      },
528
+
600
       getdialyze(val){
529
       getdialyze(val){
601
         const option = this.dialyze_options
530
         const option = this.dialyze_options
602
         for(let i in option){
531
         for(let i in option){
607
       }
536
       }
608
     },
537
     },
609
     mounted(){
538
     mounted(){
610
-      this.getecharts()
539
+
611
     },
540
     },
612
     created(){
541
     created(){
613
       this.start_date = this.getFirstDayOfMonth(new Date())
542
       this.start_date = this.getFirstDayOfMonth(new Date())
614
-      this.Getdialyzerconfig()
543
+      this.Getdialyzerdetail()
615
     },
544
     },
616
 
545
 
617
   }
546
   }

+ 8 - 7
src/xt_pages/dialysis/batch_print/batch_print_order_seventynine.vue Ver arquivo

76
                         上机前病情:
76
                         上机前病情:
77
                         <label-box :isChecked="record.assessment_before_dislysis.symptom_before_dialysis_other==''?true :false" showValue="无特殊"></label-box>&nbsp;
77
                         <label-box :isChecked="record.assessment_before_dislysis.symptom_before_dialysis_other==''?true :false" showValue="无特殊"></label-box>&nbsp;
78
                         <label-box :isChecked="record.assessment_before_dislysis.symptom_before_dialysis_other!=''?true :false" showValue="症状:"></label-box>
78
                         <label-box :isChecked="record.assessment_before_dislysis.symptom_before_dialysis_other!=''?true :false" showValue="症状:"></label-box>
79
-                        
79
+
80
                         <span>{{record.assessment_before_dislysis.symptom_before_dialysis_other}}</span>
80
                         <span>{{record.assessment_before_dislysis.symptom_before_dialysis_other}}</span>
81
                       </div>
81
                       </div>
82
                     </td>
82
                     </td>
87
                         {{ record.assessment_before_dislysis.diastolic_blood_pressure ? record.assessment_before_dislysis.diastolic_blood_pressure : ""}}
87
                         {{ record.assessment_before_dislysis.diastolic_blood_pressure ? record.assessment_before_dislysis.diastolic_blood_pressure : ""}}
88
                         mmHg
88
                         mmHg
89
                       </div>
89
                       </div>
90
-                      
90
+
91
                     </td>
91
                     </td>
92
                   </tr>
92
                   </tr>
93
 
93
 
148
                     <td colspan="3">
148
                     <td colspan="3">
149
                       <div style="display: flex;">
149
                       <div style="display: flex;">
150
                         <div style="flex: 1;">
150
                         <div style="flex: 1;">
151
-                          上次透后体重:{{ record.lastafterweight.weight_after ? 
151
+                          上次透后体重:{{ record.lastafterweight.weight_after ?
152
                           parseFloat( record.lastafterweight.weight_after).toFixed(1)
152
                           parseFloat( record.lastafterweight.weight_after).toFixed(1)
153
                           : '未称重'}}kg
153
                           : '未称重'}}kg
154
                         </div>
154
                         </div>
189
                       <div style="line-height:30px;">
189
                       <div style="line-height:30px;">
190
                       <span>目标脱水量: {{ record.prescription.target_ultrafiltration ? record.prescription.target_ultrafiltration : "" }} </span>L &nbsp;&nbsp;
190
                       <span>目标脱水量: {{ record.prescription.target_ultrafiltration ? record.prescription.target_ultrafiltration : "" }} </span>L &nbsp;&nbsp;
191
                       <span>处方脱水量: {{ record.prescription.prescription_water ? record.prescription.prescription_water : "" }} </span>L &nbsp;&nbsp;
191
                       <span>处方脱水量: {{ record.prescription.prescription_water ? record.prescription.prescription_water : "" }} </span>L &nbsp;&nbsp;
192
-                      <span>透析液流量: {{ record.prescription.dialysate_flow ? record.prescription.dialysate_flow : "" }} </span>ml/h
192
+                      <!-- <span>透析液流量: {{ record.prescription.dialysate_flow ? record.prescription.dialysate_flow : "" }} </span>ml/h -->
193
                       </div>
193
                       </div>
194
                     </td>
194
                     </td>
195
                     <td >
195
                     <td >
634
                 this.records[recordIndex].isShowZero = true
634
                 this.records[recordIndex].isShowZero = true
635
               }
635
               }
636
 
636
 
637
+
637
               var delghTwo = 0
638
               var delghTwo = 0
638
 
639
 
639
               if (
640
               if (
640
                 this.records[recordIndex].advices &&
641
                 this.records[recordIndex].advices &&
641
                 this.records[recordIndex].advices.length < 10
642
                 this.records[recordIndex].advices.length < 10
642
               ) {
643
               ) {
643
-                delghTwo = 10 - this.records[recordIndex].advices.length
644
+                delghTwo = 10 - (this.records[recordIndex].advices.length)
644
               } else {
645
               } else {
645
                 delghTwo = 0
646
                 delghTwo = 0
646
               }
647
               }
660
                 }
661
                 }
661
               }
662
               }
662
               console.log('his_advices',this.records[recordIndex].advices);
663
               console.log('his_advices',this.records[recordIndex].advices);
663
-              
664
+
664
               var childMap = {}
665
               var childMap = {}
665
               for (const index in this.records[recordIndex].advices) {
666
               for (const index in this.records[recordIndex].advices) {
666
                 if (this.records[recordIndex].advices[index].parent_id == 0) {
667
                 if (this.records[recordIndex].advices[index].parent_id == 0) {
695
               }
696
               }
696
               // advices = advices.concat(this.records[recordIndex].his_advices)
697
               // advices = advices.concat(this.records[recordIndex].his_advices)
697
               console.log('advices',advices);
698
               console.log('advices',advices);
698
-              
699
+
699
               var leftAdvice = []
700
               var leftAdvice = []
700
               var rightAdvice = []
701
               var rightAdvice = []
701
               var adlen = advices.length
702
               var adlen = advices.length

+ 8 - 4
src/xt_pages/dialysis/template/DialysisPrintOrderSeventynine.vue Ver arquivo

1179
           var projects = response.data.data.projects
1179
           var projects = response.data.data.projects
1180
           var newDocArr= []
1180
           var newDocArr= []
1181
           var projectarr = []
1181
           var projectarr = []
1182
+          var projectArrs = []
1182
           for(let i=0;i<advices.length;i++){
1183
           for(let i=0;i<advices.length;i++){
1183
-            console.log("hhahahahh",advices[i].advice_name.indexOf("0.9%氯化钠注射液"))
1184
-            console.log("jjjjjjjjj",advices[i].delivery_way.indexOf("管路预冲"))
1184
+            // console.log("hhahahahh",advices[i].advice_name.indexOf("0.9%氯化钠注射液"))
1185
+            // console.log("jjjjjjjjj",advices[i].delivery_way.indexOf("管路预冲"))
1185
            if(advices[i].advice_name.indexOf("0.9%氯化钠注射液") ==-1 && advices[i].delivery_way.indexOf("管路预冲")==-1){
1186
            if(advices[i].advice_name.indexOf("0.9%氯化钠注射液") ==-1 && advices[i].delivery_way.indexOf("管路预冲")==-1){
1186
               newDocArr.push(advices[i])
1187
               newDocArr.push(advices[i])
1187
            }
1188
            }
1188
           }
1189
           }
1189
           for(let i in projects){
1190
           for(let i in projects){
1190
             if(projects[i].type ==2){
1191
             if(projects[i].type ==2){
1191
-              projectarr.push(projects[i])
1192
+              if(projects[i].project.project_name == '血透监测'){
1193
+                console.log('血透监测',projects[i].advice_name);
1194
+                projectarr.push(projects[i])
1195
+              }
1192
             }
1196
             }
1193
           }
1197
           }
1194
 
1198
 
1195
-          console.log("newDocArr----------------------",projectarr)
1199
+          console.log("血透监测 != -1",projects)
1196
           var doctorAdevieInfo = response.data.data.doctorAdevieInfo
1200
           var doctorAdevieInfo = response.data.data.doctorAdevieInfo
1197
           var tableAdvice = newDocArr.concat(doctorAdevieInfo);
1201
           var tableAdvice = newDocArr.concat(doctorAdevieInfo);
1198
           if(projectarr.length>0){
1202
           if(projectarr.length>0){

+ 3 - 5
src/xt_pages/fapiao/fapiao.vue Ver arquivo

10
           justify-content: space-between;
10
           justify-content: space-between;
11
           margin-bottom: 10px;
11
           margin-bottom: 10px;
12
         ">
12
         ">
13
-        <div>
14
-          <el-button size="small" type="primary"
15
-                     @click="query">查询
16
-          </el-button>
17
-        </div>
18
       </div>
13
       </div>
19
       <div style="margin-bottom: 10px;">
14
       <div style="margin-bottom: 10px;">
20
         <el-date-picker
15
         <el-date-picker
46
           value-format="yyyy-MM-dd"
41
           value-format="yyyy-MM-dd"
47
           align="right"
42
           align="right"
48
         ></el-date-picker>
43
         ></el-date-picker>
44
+        <el-button size="small" type="primary"
45
+                   @click="query">查询
46
+        </el-button>
49
       </div>
47
       </div>
50
 
48
 
51
       <el-table
49
       <el-table

+ 131 - 23
src/xt_pages/fapiao/newSettleDetail.vue Ver arquivo

10
           justify-content: space-between;
10
           justify-content: space-between;
11
           margin-bottom: 10px;
11
           margin-bottom: 10px;
12
         ">
12
         ">
13
-        <div>
14
-          <el-button size="small" type="primary"
15
-                     @click="query">查询
16
-          </el-button>
17
-          <el-button size="small" type="primary"
18
-                     @click="auth">认证
19
-          </el-button>
20
-        </div>
21
       </div>
13
       </div>
22
       <div style="margin-bottom: 10px;">
14
       <div style="margin-bottom: 10px;">
23
         <el-date-picker
15
         <el-date-picker
49
           value-format="yyyy-MM-dd"
41
           value-format="yyyy-MM-dd"
50
           align="right"
42
           align="right"
51
         ></el-date-picker>
43
         ></el-date-picker>
44
+        <el-button size="small" type="primary"
45
+                   @click="query">查询
46
+        </el-button>
47
+        <el-button size="small" type="primary"
48
+                   @click="auth">认证
49
+        </el-button>
52
       </div>
50
       </div>
53
 
51
 
54
       <el-table
52
       <el-table
99
           </template>
97
           </template>
100
         </el-table-column>
98
         </el-table-column>
101
 
99
 
100
+
102
         <el-table-column align="center" width="90" prop="name" label="就诊凭证类型">
101
         <el-table-column align="center" width="90" prop="name" label="就诊凭证类型">
103
           <template slot-scope="scope">
102
           <template slot-scope="scope">
104
-            <div v-if="scope.row.mdtrt_cert_type =='01'">
105
-              医保电子凭证
103
+            <div v-if="scope.row.his_patient.id_card_type == 1">
104
+              社会保障卡
106
             </div>
105
             </div>
107
-            <div v-if="scope.row.mdtrt_cert_type =='02'">
106
+            <div v-if="scope.row.his_patient.id_card_type == 2">
108
               居民身份证
107
               居民身份证
109
             </div>
108
             </div>
110
-
111
-            <div v-if="scope.row.mdtrt_cert_type =='03'">
112
-              社会保障卡
109
+            <div v-if="scope.row.his_patient.id_card_type == 4">
110
+              医保电子凭证
113
             </div>
111
             </div>
114
           </template>
112
           </template>
115
         </el-table-column>
113
         </el-table-column>
202
 
200
 
203
 import { getDialysisRecordInitData } from '@/api/dialysis_record'
201
 import { getDialysisRecordInitData } from '@/api/dialysis_record'
204
 import { number } from 'echarts/lib/export'
202
 import { number } from 'echarts/lib/export'
203
+import QRCode from 'qrcodejs2'
205
 
204
 
206
 const moment = require('moment')
205
 const moment = require('moment')
207
 export default {
206
 export default {
286
         "id":id,
285
         "id":id,
287
         "admin_user_id":this.$store.getters.xt_user.user.id,
286
         "admin_user_id":this.$store.getters.xt_user.user.id,
288
       }
287
       }
289
-      OpenRedFapiao(params).then((response) => {
288
+      var that = this;
289
+      axios.get('http://127.0.0.1:9532/api/fapiao/red',{params:params}).then(function(response) {
290
         if (response.data.state == 0) {
290
         if (response.data.state == 0) {
291
-          this.$message.error(response.data.msg)
291
+          that.$message.error(response.data.data.msg);
292
           return false
292
           return false
293
         } else {
293
         } else {
294
-          this.$message.success(response.data.msg)
295
-          this.getHisOrderList()
294
+          if(response.data.data.failed_code == -10){
295
+            that.$confirm(response.data.data.msg, '错误信息', {
296
+              confirmButtonText: '确 定',
297
+              type: 'warning'
298
+            }).then(() => {
299
+
300
+            }).catch(() => {
301
+            })
302
+          }else{
303
+            that.$message.success(response.data.msg)
304
+            that.getHisOrderList()
305
+          }
306
+
296
         }
307
         }
308
+      }).catch(function(error) {
297
       })
309
       })
298
     },
310
     },
299
     blue(){
311
     blue(){
300
-      console.log(this.selecting_schs)
301
       var order_ids = ""
312
       var order_ids = ""
302
       for(let i = 0; i < this.selecting_schs.length;i++){
313
       for(let i = 0; i < this.selecting_schs.length;i++){
303
         if(order_ids.length == 0){
314
         if(order_ids.length == 0){
310
         "order_ids":order_ids,
321
         "order_ids":order_ids,
311
         "admin_user_id":this.$store.getters.xt_user.user.id,
322
         "admin_user_id":this.$store.getters.xt_user.user.id,
312
       }
323
       }
313
-      OpenBlueFapiao(params).then((response) => {
324
+      var that = this;
325
+      axios.get('http://127.0.0.1:9532/api/fapiao/blue',{params:params}).then(function(response) {
314
         if (response.data.state == 0) {
326
         if (response.data.state == 0) {
315
-          this.$message.error(response.data.msg)
327
+          that.$message.error(response.data.data.msg);
316
           return false
328
           return false
317
         } else {
329
         } else {
318
-          this.$message.success(response.data.msg)
319
-          this.getHisOrderList()
330
+          if(response.data.data.failed_code == -10){
331
+            that.$confirm(response.data.data.msg, '错误信息', {
332
+              confirmButtonText: '确 定',
333
+              type: 'warning'
334
+            }).then(() => {
335
+
336
+            }).catch(() => {
337
+            })
338
+          }else{
339
+            that.$message.success(response.data.data.msg)
340
+            that.getHisOrderList()
341
+          }
342
+
320
         }
343
         }
344
+      }).catch(function(error) {
321
       })
345
       })
322
     },
346
     },
323
     getData(patient_id){
347
     getData(patient_id){
327
     },
351
     },
328
     auth(){
352
     auth(){
329
 
353
 
354
+      var that = this;
355
+      let params = {
356
+        "admin_user_id":this.$store.getters.xt_user.user.id,
357
+      }
358
+      axios.get('http://127.0.0.1:9532/api/fapiao/qrcode/get',{params:params}).then(function(response) {
359
+        if (response.data.state == 0) {
360
+          that.$message.error(response.data.data.msg);
361
+          return false
362
+        } else {
363
+          if(response.data.data.failed_code == -10){
364
+            that.$confirm(response.data.data.msg, '错误信息', {
365
+              confirmButtonText: '确 定',
366
+              type: 'warning'
367
+            }).then(() => {
368
+
369
+            }).catch(() => {
370
+            })
371
+          }else{
372
+            if(response.data.data.cus_status == 1){
373
+              this.$nextTick(() =>{
374
+                var qrcode = new QRCode(that.$refs.qrCodeUrl, {
375
+                  text: response.data.data.qr_code, // 需要转换为二维码的内容
376
+                  width: 120,
377
+                  height: 120,
378
+                  colorDark: '#000000',
379
+                  colorLight: '#ffffff',
380
+                  correctLevel: QRCode.CorrectLevel.H
381
+                })
382
+              })
383
+              this.qr_dialogVisible =true
384
+            }else if(response.data.data.cus_status == -1){
385
+              // this.$message.error(response.data.msg)/*  */
386
+              that
387
+                .$confirm(response.data.data.msg, '信息', {
388
+                  confirmButtonText: '确 定',
389
+                  type: 'warning'
390
+                })
391
+                .then(() => {
392
+                })
393
+                .catch(() => {
394
+                })
395
+            }else if(response.data.data.cus_status == 2){
396
+              // this.$message.error(response.data.data.msg)
397
+              that
398
+                .$confirm(response.data.data.msg, '信息', {
399
+                  confirmButtonText: '确 定',
400
+                  type: 'warning'
401
+                })
402
+                .then(() => {
403
+                })
404
+                .catch(() => {
405
+                })
406
+
407
+            }else if(response.data.data.cus_status == -3){
408
+              // this.$message.error(response.data.data.msg)
409
+              that
410
+                .$confirm(response.data.data.msg, '信息', {
411
+                  confirmButtonText: '确 定',
412
+                  type: 'warning'
413
+                })
414
+                .then(() => {
415
+                })
416
+                .catch(() => {
417
+                })
418
+
419
+            }else if(response.data.data.cus_status == -4){
420
+              // this.$message.error(response.data.data.msg)
421
+              that
422
+                .$confirm(response.data.data.msg, '信息', {
423
+                  confirmButtonText: '确 定',
424
+                  type: 'warning'
425
+                })
426
+                .then(() => {
427
+                })
428
+                .catch(() => {
429
+                })
430
+            }
431
+
432
+          }
433
+
434
+        }
435
+      }).catch(function(error) {
436
+      })
437
+
330
     },
438
     },
331
     query(){
439
     query(){
332
 
440
 

+ 1 - 1
src/xt_pages/fapiao/patientSettleDetail.vue Ver arquivo

8
       class="app-container"
8
       class="app-container"
9
       style="display: flex; flex: 1; padding: 10px 20px 0px 20px"
9
       style="display: flex; flex: 1; padding: 10px 20px 0px 20px"
10
     >
10
     >
11
-      <div class="mainLeft">d
11
+      <div class="mainLeft">
12
         <div>
12
         <div>
13
           <div
13
           <div
14
             style="
14
             style="

+ 322 - 53
src/xt_pages/fapiao/settleDetail.vue Ver arquivo

10
           justify-content: space-between;
10
           justify-content: space-between;
11
           margin-bottom: 10px;
11
           margin-bottom: 10px;
12
         ">
12
         ">
13
-        <div>
14
-          <el-button size="small" type="primary"
15
-                     @click="login">登录
16
-          </el-button>
17
-          <el-button size="small" type="primary"
18
-                     @click="query">查询
19
-          </el-button>
20
-          <el-button size="small" type="primary"
21
-                     @click="login">短信登录税局
22
-          </el-button>
23
-          <el-button size="small" type="primary"
24
-                     @click="auth">认证
25
-          </el-button>
26
-        </div>
13
+
27
       </div>
14
       </div>
28
       <div style="margin-bottom: 10px;">
15
       <div style="margin-bottom: 10px;">
29
         <el-date-picker
16
         <el-date-picker
55
           value-format="yyyy-MM-dd"
42
           value-format="yyyy-MM-dd"
56
           align="right"
43
           align="right"
57
         ></el-date-picker>
44
         ></el-date-picker>
45
+        <el-button size="small" type="primary"
46
+                   @click="query">查询
47
+        </el-button>
48
+        <el-button size="small" type="primary"
49
+                   @click="login">短信登录税局
50
+        </el-button>
51
+        <el-button size="small" type="primary"
52
+                   @click="auth">认证
53
+        </el-button>
58
       </div>
54
       </div>
59
 
55
 
60
       <el-table
56
       <el-table
105
 
101
 
106
         <el-table-column align="center" width="90" prop="name" label="就诊凭证类型">
102
         <el-table-column align="center" width="90" prop="name" label="就诊凭证类型">
107
           <template slot-scope="scope">
103
           <template slot-scope="scope">
108
-            <div v-if="scope.row.mdtrt_cert_type =='01'">
109
-              医保电子凭证
104
+            <div v-if="scope.row.his_patient.id_card_type == 1">
105
+              社会保障卡
110
             </div>
106
             </div>
111
-            <div v-if="scope.row.mdtrt_cert_type =='02'">
107
+            <div v-if="scope.row.his_patient.id_card_type == 2">
112
               居民身份证
108
               居民身份证
113
             </div>
109
             </div>
114
-
115
-            <div v-if="scope.row.mdtrt_cert_type =='03'">
116
-              社会保障卡
110
+            <div v-if="scope.row.his_patient.id_card_type == 4">
111
+              医保电子凭证
117
             </div>
112
             </div>
118
           </template>
113
           </template>
119
         </el-table-column>
114
         </el-table-column>
193
     >
188
     >
194
       <div>
189
       <div>
195
         <el-form :rules="rules" :label-position="labelPosition" label-width="100px" :model="formLabelAlign">
190
         <el-form :rules="rules" :label-position="labelPosition" label-width="100px" :model="formLabelAlign">
196
-          <el-form-item label="税局账号">
197
-            <el-input v-model="formLabelAlign.name"></el-input>
198
-          </el-form-item>
199
-          <el-form-item label="税局密码">
200
-            <el-input v-model="formLabelAlign.region"></el-input>
201
-          </el-form-item>
202
-          <el-form-item label="手机号码">
203
-            <el-input v-model="formLabelAlign.type"></el-input>
204
-          </el-form-item>
191
+<!--          <el-form-item label="税局账号">-->
192
+<!--            <el-input v-model="formLabelAlign.name"></el-input>-->
193
+<!--          </el-form-item>-->
194
+<!--          <el-form-item label="税局密码">-->
195
+<!--            <el-input v-model="formLabelAlign.region"></el-input>-->
196
+<!--          </el-form-item>-->
197
+<!--          <el-form-item label="手机号码">-->
198
+<!--            <el-input v-model="formLabelAlign.type"></el-input>-->
199
+<!--          </el-form-item>-->
205
           <el-form-item label="短信验证码" prop="verify">
200
           <el-form-item label="短信验证码" prop="verify">
206
             <div style="display: inline-block;width: 50%;">
201
             <div style="display: inline-block;width: 50%;">
207
               <el-input v-model="formLabelAlign.verify"></el-input>
202
               <el-input v-model="formLabelAlign.verify"></el-input>
214
       </div>
209
       </div>
215
       <span slot="footer" class="dialog-footer">
210
       <span slot="footer" class="dialog-footer">
216
         <el-button @click="login_dialogVisible = false">取 消</el-button>
211
         <el-button @click="login_dialogVisible = false">取 消</el-button>
217
-        <el-button type="primary" @click="login_dialogVisible = false">确 定</el-button>
212
+        <el-button type="primary" @click="loginSJ()">确 定</el-button>
218
       </span>
213
       </span>
219
     </el-dialog>
214
     </el-dialog>
220
 
215
 
251
 import {
246
 import {
252
   getOrderFapiaoList,
247
   getOrderFapiaoList,
253
   OpenBlueFapiao,
248
   OpenBlueFapiao,
254
-  OpenRedFapiao
249
+  OpenRedFapiao,
250
+  GetSMSCode,
251
+  SMSLogin, GetQRCode
255
 } from '../../api/fapiao'
252
 } from '../../api/fapiao'
256
 
253
 
257
 import { getDialysisRecordInitData } from '@/api/dialysis_record'
254
 import { getDialysisRecordInitData } from '@/api/dialysis_record'
345
   },
342
   },
346
 
343
 
347
   methods: {
344
   methods: {
345
+    loginSJ(){
346
+      // let params = {
347
+      //   "code":this.formLabelAlign.verify,
348
+      // }
349
+      // SMSLogin(params).then((response) => {
350
+      //   if (response.data.state == 0) {
351
+      //     this.login_dialogVisible = false
352
+      //     this.$message.error(response.data.msg)
353
+      //     return false
354
+      //   } else {
355
+      //     this.login_dialogVisible = false
356
+      //     // this.$message.success(response.data.msg)
357
+      //     // this.$message.success(response.data.data.msg)
358
+      //     this
359
+      //       .$confirm(response.data.data.msg, '信息', {
360
+      //         confirmButtonText: '确 定',
361
+      //         type: 'warning'
362
+      //       })
363
+      //       .then(() => {
364
+      //       })
365
+      //       .catch(() => {
366
+      //       })
367
+      //
368
+      //   }
369
+      // })
370
+
371
+      var that = this;
372
+      let params = {
373
+        "code":this.formLabelAlign.verify,
374
+      }
375
+      axios.get('http://127.0.0.1:9532/api/fapiao/sms/login',{params:params}).then(function(response) {
376
+        if (response.data.state == 0) {
377
+          that.$message.error(response.data.data.msg);
378
+          return false
379
+        } else {
380
+          if(response.data.data.failed_code == -10){
381
+            that.$confirm(response.data.data.msg, '错误信息', {
382
+              confirmButtonText: '确 定',
383
+              type: 'warning'
384
+            }).then(() => {
385
+
386
+            }).catch(() => {
387
+            })
388
+          }else{
389
+            that.login_dialogVisible = false
390
+            // this.$message.success(response.data.msg)
391
+            // this.$message.success(response.data.data.msg)
392
+            that
393
+              .$confirm(response.data.data.msg, '信息', {
394
+                confirmButtonText: '确 定',
395
+                type: 'warning'
396
+              })
397
+              .then(() => {
398
+              })
399
+              .catch(() => {
400
+              })
401
+          }
402
+
403
+        }
404
+      }).catch(function(error) {
405
+      })
406
+
407
+    },
348
     login(){
408
     login(){
349
       this.login_dialogVisible = true
409
       this.login_dialogVisible = true
350
     },
410
     },
351
     verify_click(){
411
     verify_click(){
412
+      var that = this;
413
+      let params = {
414
+        "admin_user_id":this.$store.getters.xt_user.user.id,
415
+      }
416
+      axios.get('http://127.0.0.1:9532/api/fapiao/sms/code',{params:params}).then(function(response) {
417
+        if (response.data.state == 0) {
418
+          that.$message.error(response.data.data.msg);
419
+          return false
420
+        } else {
421
+          if(response.data.data.failed_code == -10){
422
+            that.$confirm(response.data.data.msg, '错误信息', {
423
+              confirmButtonText: '确 定',
424
+              type: 'warning'
425
+            }).then(() => {
426
+
427
+            }).catch(() => {
428
+            })
429
+          }else{
430
+            that.$message.success(response.data.data.msg)
431
+          }
432
+
433
+        }
434
+      }).catch(function(error) {
435
+      })
352
       this.countdown = 60
436
       this.countdown = 60
353
       this.time = setInterval(() => {
437
       this.time = setInterval(() => {
354
         if (this.countdown > 0) {
438
         if (this.countdown > 0) {
359
       }, 1000)
443
       }, 1000)
360
     },
444
     },
361
     auth(){
445
     auth(){
362
-        this.qr_dialogVisible =true
363
-        this.$nextTick(() =>{
364
-          var qrcode = new QRCode(this.$refs.qrCodeUrl, {
365
-            text: 'https://blog.csdn.net/weixin_42601136', // 需要转换为二维码的内容
366
-            width: 120,
367
-            height: 120,
368
-            
369
-            colorDark: '#000000',
370
-            colorLight: '#ffffff',
371
-            correctLevel: QRCode.CorrectLevel.H
372
-          })
373
-        })
446
+
447
+      // let params = {
448
+      // }
449
+      // GetQRCode(params).then((response) => {
450
+      //   if (response.data.state == 0) {
451
+      //     this.$message.error(response.data.msg)
452
+      //     return false
453
+      //   } else {
454
+      //     if(response.data.data.cus_status == 1){
455
+      //       this.$nextTick(() =>{
456
+      //         var qrcode = new QRCode(this.$refs.qrCodeUrl, {
457
+      //           text: response.data.data.qr_code, // 需要转换为二维码的内容
458
+      //           width: 120,
459
+      //           height: 120,
460
+      //           colorDark: '#000000',
461
+      //           colorLight: '#ffffff',
462
+      //           correctLevel: QRCode.CorrectLevel.H
463
+      //         })
464
+      //       })
465
+      //       this.qr_dialogVisible =true
466
+      //     }else if(response.data.data.cus_status == -1){
467
+      //       // this.$message.error(response.data.msg)/*  */
468
+      //       this
469
+      //         .$confirm(response.data.data.msg, '信息', {
470
+      //           confirmButtonText: '确 定',
471
+      //           type: 'warning'
472
+      //         })
473
+      //         .then(() => {
474
+      //         })
475
+      //         .catch(() => {
476
+      //         })
477
+      //     }else if(response.data.data.cus_status == 2){
478
+      //       // this.$message.error(response.data.data.msg)
479
+      //       this
480
+      //         .$confirm(response.data.data.msg, '信息', {
481
+      //           confirmButtonText: '确 定',
482
+      //           type: 'warning'
483
+      //         })
484
+      //         .then(() => {
485
+      //         })
486
+      //         .catch(() => {
487
+      //         })
488
+      //
489
+      //     }else if(response.data.data.cus_status == -3){
490
+      //       // this.$message.error(response.data.data.msg)
491
+      //       this
492
+      //         .$confirm(response.data.data.msg, '信息', {
493
+      //           confirmButtonText: '确 定',
494
+      //           type: 'warning'
495
+      //         })
496
+      //         .then(() => {
497
+      //         })
498
+      //         .catch(() => {
499
+      //         })
500
+      //
501
+      //     }else if(response.data.data.cus_status == -4){
502
+      //       // this.$message.error(response.data.data.msg)
503
+      //       this
504
+      //         .$confirm(response.data.data.msg, '信息', {
505
+      //           confirmButtonText: '确 定',
506
+      //           type: 'warning'
507
+      //         })
508
+      //         .then(() => {
509
+      //         })
510
+      //         .catch(() => {
511
+      //         })
512
+      //
513
+      //     }
514
+      //     // this.$message.success(response.data.msg)
515
+      //   }
516
+      // })
517
+
518
+
519
+      var that = this;
520
+      let params = {
521
+        "admin_user_id":this.$store.getters.xt_user.user.id,
522
+      }
523
+      axios.get('http://127.0.0.1:9532/api/fapiao/qrcode/get',{params:params}).then(function(response) {
524
+        if (response.data.state == 0) {
525
+          that.$message.error(response.data.data.msg);
526
+          return false
527
+        } else {
528
+          if(response.data.data.failed_code == -10){
529
+            that.$confirm(response.data.data.msg, '错误信息', {
530
+              confirmButtonText: '确 定',
531
+              type: 'warning'
532
+            }).then(() => {
533
+
534
+            }).catch(() => {
535
+            })
536
+          }else{
537
+            if(response.data.data.cus_status == 1){
538
+              this.$nextTick(() =>{
539
+                var qrcode = new QRCode(that.$refs.qrCodeUrl, {
540
+                  text: response.data.data.qr_code, // 需要转换为二维码的内容
541
+                  width: 120,
542
+                  height: 120,
543
+                  colorDark: '#000000',
544
+                  colorLight: '#ffffff',
545
+                  correctLevel: QRCode.CorrectLevel.H
546
+                })
547
+              })
548
+              this.qr_dialogVisible =true
549
+            }else if(response.data.data.cus_status == -1){
550
+              // this.$message.error(response.data.msg)/*  */
551
+              that
552
+                .$confirm(response.data.data.msg, '信息', {
553
+                  confirmButtonText: '确 定',
554
+                  type: 'warning'
555
+                })
556
+                .then(() => {
557
+                })
558
+                .catch(() => {
559
+                })
560
+            }else if(response.data.data.cus_status == 2){
561
+              // this.$message.error(response.data.data.msg)
562
+              that
563
+                .$confirm(response.data.data.msg, '信息', {
564
+                  confirmButtonText: '确 定',
565
+                  type: 'warning'
566
+                })
567
+                .then(() => {
568
+                })
569
+                .catch(() => {
570
+                })
571
+
572
+            }else if(response.data.data.cus_status == -3){
573
+              // this.$message.error(response.data.data.msg)
574
+              that
575
+                .$confirm(response.data.data.msg, '信息', {
576
+                  confirmButtonText: '确 定',
577
+                  type: 'warning'
578
+                })
579
+                .then(() => {
580
+                })
581
+                .catch(() => {
582
+                })
583
+
584
+            }else if(response.data.data.cus_status == -4){
585
+              // this.$message.error(response.data.data.msg)
586
+              that
587
+                .$confirm(response.data.data.msg, '信息', {
588
+                  confirmButtonText: '确 定',
589
+                  type: 'warning'
590
+                })
591
+                .then(() => {
592
+                })
593
+                .catch(() => {
594
+                })
595
+            }
596
+
597
+          }
598
+
599
+        }
600
+      }).catch(function(error) {
601
+      })
374
 
602
 
375
     },
603
     },
376
     query(){
604
     query(){
377
-
605
+      this.getHisOrderList()
378
     },download(){
606
     },download(){
379
 
607
 
380
 
608
 
385
         "order_ids":ids,
613
         "order_ids":ids,
386
         "admin_user_id":this.$store.getters.xt_user.user.id,
614
         "admin_user_id":this.$store.getters.xt_user.user.id,
387
       }
615
       }
388
-      OpenBlueFapiao(params).then((response) => {
616
+
617
+      var that = this;
618
+      axios.get('http://127.0.0.1:9532/api/fapiao/blue',{params:params}).then(function(response) {
389
         if (response.data.state == 0) {
619
         if (response.data.state == 0) {
390
-          this.$message.error(response.data.msg)
620
+          that.$message.error(response.data.data.msg);
391
           return false
621
           return false
392
         } else {
622
         } else {
393
-          this.$message.success(response.data.msg)
394
-          this.getHisOrderList()
623
+          if(response.data.data.failed_code == -10){
624
+            that.$confirm(response.data.data.msg, '错误信息', {
625
+              confirmButtonText: '确 定',
626
+              type: 'warning'
627
+            }).then(() => {
628
+
629
+            }).catch(() => {
630
+            })
631
+          }else{
632
+            that.$message.success(response.data.data.msg)
633
+            that.getHisOrderList()
634
+          }
635
+
395
         }
636
         }
637
+      }).catch(function(error) {
396
       })
638
       })
639
+      // OpenBlueFapiao(params).then((response) => {
640
+      //   if (response.data.state == 0) {
641
+      //     this.$message.error(response.data.msg)
642
+      //     return false
643
+      //   } else {
644
+      //     this.$message.success(response.data.msg)
645
+      //     this.getHisOrderList()
646
+      //   }
647
+      // })
648
+
649
+
397
     }, yulan(row){
650
     }, yulan(row){
398
 
651
 
399
 
652
 
400
 
653
 
401
     },hongchong(row){
654
     },hongchong(row){
402
       var  id = row.result.id
655
       var  id = row.result.id
656
+
403
       let params = {
657
       let params = {
404
         "id":id,
658
         "id":id,
405
         "admin_user_id":this.$store.getters.xt_user.user.id,
659
         "admin_user_id":this.$store.getters.xt_user.user.id,
406
       }
660
       }
407
-      OpenRedFapiao(params).then((response) => {
661
+
662
+      var that = this;
663
+      axios.get('http://127.0.0.1:9532/api/fapiao/red',{params:params}).then(function(response) {
408
         if (response.data.state == 0) {
664
         if (response.data.state == 0) {
409
-          this.$message.error(response.data.msg)
665
+          that.$message.error(response.data.data.msg);
410
           return false
666
           return false
411
         } else {
667
         } else {
412
-          this.$message.success(response.data.msg)
413
-          this.getHisOrderList()
668
+          if(response.data.data.failed_code == -10){
669
+            that.$confirm(response.data.data.msg, '错误信息', {
670
+              confirmButtonText: '确 定',
671
+              type: 'warning'
672
+            }).then(() => {
673
+
674
+            }).catch(() => {
675
+            })
676
+          }else{
677
+            that.$message.success(response.data.msg)
678
+            that.getHisOrderList()
679
+          }
680
+
414
         }
681
         }
682
+      }).catch(function(error) {
415
       })
683
       })
684
+
416
     },
685
     },
417
     getAllstaff(){
686
     getAllstaff(){
418
       adminMainView()
687
       adminMainView()
676
       if(this.countdown ==0){
945
       if(this.countdown ==0){
677
         clearInterval(this.time)
946
         clearInterval(this.time)
678
       }
947
       }
679
-      
948
+
680
     }
949
     }
681
 
950
 
682
   }
951
   }