Kaynağa Gözat

Merge branch 'master' of http://git.shengws.com/csx/Pad_New

csx 5 yıl önce
ebeveyn
işleme
9ba6099931
67 değiştirilmiş dosya ile 2418 ekleme ve 698 silme
  1. 3 3
      config/dev.env.js
  2. 2 1
      config/prod.env.js
  3. 4 2
      src/App.vue
  4. 22 0
      src/api/home.js
  5. 150 0
      src/api/patient/patient.js
  6. BIN
      src/assets/images/S1.png
  7. BIN
      src/assets/images/S10.png
  8. BIN
      src/assets/images/S11.png
  9. BIN
      src/assets/images/S12.png
  10. BIN
      src/assets/images/S13.png
  11. BIN
      src/assets/images/S14.png
  12. BIN
      src/assets/images/S15.png
  13. BIN
      src/assets/images/S16.png
  14. BIN
      src/assets/images/S17.png
  15. BIN
      src/assets/images/S2.png
  16. BIN
      src/assets/images/S3.png
  17. BIN
      src/assets/images/S4.png
  18. BIN
      src/assets/images/S5.png
  19. BIN
      src/assets/images/S6.png
  20. BIN
      src/assets/images/S7.png
  21. BIN
      src/assets/images/S8.png
  22. BIN
      src/assets/images/S9.png
  23. BIN
      src/assets/images/invite.png
  24. BIN
      src/assets/images/m01.png
  25. BIN
      src/assets/images/m02.png
  26. BIN
      src/assets/images/m03.png
  27. BIN
      src/assets/images/m04.png
  28. BIN
      src/assets/images/m05.png
  29. BIN
      src/assets/images/m06.png
  30. BIN
      src/assets/images/m07.png
  31. BIN
      src/assets/images/m08.png
  32. BIN
      src/assets/images/myBanner.png
  33. BIN
      src/assets/images/myIcon1.png
  34. BIN
      src/assets/images/myIcon2.png
  35. BIN
      src/assets/images/myIcon3.png
  36. BIN
      src/assets/images/myIcon4.png
  37. BIN
      src/assets/images/myIcon5.png
  38. BIN
      src/assets/images/myIcon6.png
  39. BIN
      src/assets/images/myIcon7.png
  40. BIN
      src/assets/images/myIcon8.png
  41. 14 0
      src/libs/clearStyle.js
  42. 131 0
      src/pages/allEducation/index.vue
  43. 75 0
      src/pages/allLongDialysis/index.vue
  44. 134 0
      src/pages/allRescue/index.vue
  45. 171 0
      src/pages/allScheduling/index.vue
  46. 14 2
      src/pages/doctorAdvice/components/CourseManagement.vue
  47. 12 3
      src/pages/doctorAdvice/components/DryWeight.vue
  48. 125 32
      src/pages/doctorAdvice/components/Education.vue
  49. 124 30
      src/pages/doctorAdvice/components/RescueRecord.vue
  50. 215 26
      src/pages/doctorAdvice/components/Scheduling.vue
  51. 41 17
      src/pages/doctorAdvice/index.vue
  52. 2 1
      src/pages/home/index.vue
  53. 233 178
      src/pages/homeIndex/index.vue
  54. 4 4
      src/pages/main/dialog/subMenu/MsgTip.vue
  55. 268 0
      src/pages/my/index.vue
  56. 24 22
      src/pages/patientManagement/components/Blood.vue
  57. 20 21
      src/pages/patientManagement/components/Member.vue
  58. 20 21
      src/pages/patientManagement/components/Slow.vue
  59. 0 191
      src/pages/patientManagement/index.vue
  60. 26 8
      src/pages/patientManagement/patientManagement.vue
  61. 154 104
      src/pages/patients/addPatient.vue
  62. 154 24
      src/pages/patients/editPatient.vue
  63. 187 0
      src/pages/search/index.vue
  64. 48 5
      src/router/index.js
  65. 7 1
      src/store/user/user.js
  66. 2 2
      src/styles/newStyle.scss
  67. 32 0
      src/utils/tools.js

+ 3 - 3
config/dev.env.js Dosyayı Görüntüle

@@ -5,10 +5,10 @@ const prodEnv = require('./prod.env')
5 5
 module.exports = merge(prodEnv, {
6 6
   NODE_ENV: '"development"',
7 7
   // BASE_API: '"https://api.xt.kuyicloud.com"'
8
-
9 8
   BASE_API: '"http://localhost:9529"'
10
-   //http://api.xt.test.sgjyun.com http://localhost:9529
11
-   // BASE_API: '"http://api.xt.test.sgjyun.com"'
9
+  //BASE_API: '"http://localhost:9529"'
10
+  //http://api.xt.test.sgjyun.com http://localhost:9529
11
+  // BASE_API: '"http://api.xt.test.sgjyun.com"'
12 12
   // BASE_API: '"https://api.xt.kuyicloud.com"'
13 13
 
14 14
 })

+ 2 - 1
config/prod.env.js Dosyayı Görüntüle

@@ -1,7 +1,8 @@
1 1
 "use strict";
2 2
 module.exports = {
3 3
   NODE_ENV: '"production"',
4
-  BASE_API: '"https://api.xt.kuyicloud.com"'
4
+  BASE_API: '"http://new_mobile.xt.api.sgjyun.com"'
5
+  // BASE_API: '"https://api.xt.kuyicloud.com"'
5 6
   // BASE_API:'"http://localhost:9529"',
6 7
   // BASE_API: '"http://api.xt.test.sgjyun.com"'
7 8
   // http://api.xt.test.sgjyun.com

+ 4 - 2
src/App.vue Dosyayı Görüntüle

@@ -31,9 +31,11 @@ export default {
31 31
       document.body.scrollTop = 0;
32 32
       document.documentElement.scrollTop = 0;
33 33
     }
34
-  },created(){
35
-    console.log("111111")
36 34
   },
35
+  created() {
36
+
37
+    console.log("111111");
38
+  }
37 39
 };
38 40
 </script>
39 41
 

+ 22 - 0
src/api/home.js Dosyayı Görüntüle

@@ -0,0 +1,22 @@
1
+
2
+import request from '@/utils/request'
3
+
4
+export function GetHomeData(){
5
+  return request({
6
+    url:'/m/api/home',
7
+    method:'get',
8
+  })
9
+}
10
+
11
+
12
+export function ChangeOrg(params){
13
+  return request({
14
+    url:'/m/api/changeorg',
15
+    method:'post',
16
+    params: params
17
+  })
18
+}
19
+
20
+
21
+
22
+

+ 150 - 0
src/api/patient/patient.js Dosyayı Görüntüle

@@ -76,6 +76,7 @@ export function GetPatientInfo(phone) {
76 76
 }
77 77
 
78 78
 export function savePatient(data) {
79
+  console.log('data', data)
79 80
   return request({
80 81
     url: '/m/api/patient/savepatient',
81 82
     method: 'post',
@@ -250,3 +251,152 @@ export function GetPatientDetail(id, params) {
250 251
     params: params
251 252
   })
252 253
 }
254
+
255
+export function getRescueRecord(id, limit, page, startime, endtime) {
256
+  const params = {
257
+    id: id,
258
+    limit: limit,
259
+    page: page,
260
+    startime: startime,
261
+    endtime: endtime
262
+  }
263
+  return request({
264
+    url: '/m/api/patient/getrescuerecord',
265
+    method: 'get',
266
+    params: params
267
+  })
268
+}
269
+
270
+export function getScheduling(id, limit, page, startime, endtime, mode_types) {
271
+  const params = {
272
+    id: id,
273
+    limit: limit,
274
+    page: page,
275
+    startime: startime,
276
+    endtime: endtime,
277
+    mode_types: mode_types
278
+  }
279
+  return request({
280
+    url: '/m/api/patient/getscheduling',
281
+    method: 'get',
282
+    params: params
283
+  })
284
+}
285
+
286
+export function getEducation(id, limit, page, startime, endtime) {
287
+  const params = {
288
+    id: id,
289
+    limit: limit,
290
+    page: page,
291
+    startime: startime,
292
+    endtime: endtime
293
+  }
294
+  return request({
295
+    url: '/m/api/patient/geteducation',
296
+    method: 'get',
297
+    params: params
298
+  })
299
+}
300
+
301
+export function getSchedulingDetail(id, params) {
302
+  return request({
303
+    url: '/m/api/patient/getschedulingdetail?id=' + id,
304
+    method: 'get',
305
+    params: params
306
+  })
307
+}
308
+
309
+export function DeleteScheduling(id, params) {
310
+  return request({
311
+    url: '/m/api/patient/deletescheduling?id=' + id,
312
+    method: 'delete',
313
+    params: params
314
+  })
315
+}
316
+
317
+export function getEducationDetail(id, params) {
318
+  return request({
319
+    url: '/m/api/patient/geteducationdetail?id=' + id,
320
+    method: 'get',
321
+    params: params
322
+  })
323
+}
324
+
325
+export function DeleteEducationOne(id, params) {
326
+  return request({
327
+    url: '/m/api/patient/deleteeductionone?id=' + id,
328
+    method: 'delete',
329
+    params: params
330
+  })
331
+}
332
+
333
+export function getRescueRecordDetail(id, params) {
334
+  return request({
335
+    url: '/m/api/patient/getrescuerecorddetail?id=' + id,
336
+    method: 'get',
337
+    params: params
338
+  })
339
+}
340
+
341
+export function DeleteRescueRecord(id, params) {
342
+  return request({
343
+    url: '/m/api/patient/deleterescuerecord?id=' + id,
344
+    method: 'delete',
345
+    params: params
346
+  })
347
+}
348
+
349
+export function toSearchPatient(keyword) {
350
+  const params = {
351
+    keyword: keyword
352
+  }
353
+  return request({
354
+    url: '/m/api/patient/tosearchepatient',
355
+    method: 'get',
356
+    params: params
357
+  })
358
+}
359
+
360
+export function SearchAllPatient(keyword) {
361
+  const params = {
362
+    keyword: keyword
363
+  }
364
+  return request({
365
+    url: '/m/api/patient/searchallpatient',
366
+    method: 'get',
367
+    params: params
368
+  })
369
+}
370
+
371
+export function SearchAllBlood(keyword) {
372
+  const params = {
373
+    keyword: keyword
374
+  }
375
+  return request({
376
+    url: '/m/api/patient/searchallblood',
377
+    method: 'get',
378
+    params: params
379
+  })
380
+}
381
+
382
+export function getSlowSearchPatient(keyword) {
383
+  const params = {
384
+    keyword: keyword
385
+  }
386
+  return request({
387
+    url: '/m/api/patient/getslowsearchepatient',
388
+    method: 'get',
389
+    params: params
390
+  })
391
+}
392
+
393
+export function getMemberSearchPatient(keyword) {
394
+  const params = {
395
+    keyword: keyword
396
+  }
397
+  return request({
398
+    url: '/m/api/patient/getmembersearchpatient',
399
+    method: 'get',
400
+    params: params
401
+  })
402
+}

BIN
src/assets/images/S1.png Dosyayı Görüntüle


BIN
src/assets/images/S10.png Dosyayı Görüntüle


BIN
src/assets/images/S11.png Dosyayı Görüntüle


BIN
src/assets/images/S12.png Dosyayı Görüntüle


BIN
src/assets/images/S13.png Dosyayı Görüntüle


BIN
src/assets/images/S14.png Dosyayı Görüntüle


BIN
src/assets/images/S15.png Dosyayı Görüntüle


BIN
src/assets/images/S16.png Dosyayı Görüntüle


BIN
src/assets/images/S17.png Dosyayı Görüntüle


BIN
src/assets/images/S2.png Dosyayı Görüntüle


BIN
src/assets/images/S3.png Dosyayı Görüntüle


BIN
src/assets/images/S4.png Dosyayı Görüntüle


BIN
src/assets/images/S5.png Dosyayı Görüntüle


BIN
src/assets/images/S6.png Dosyayı Görüntüle


BIN
src/assets/images/S7.png Dosyayı Görüntüle


BIN
src/assets/images/S8.png Dosyayı Görüntüle


BIN
src/assets/images/S9.png Dosyayı Görüntüle


BIN
src/assets/images/invite.png Dosyayı Görüntüle


BIN
src/assets/images/m01.png Dosyayı Görüntüle


BIN
src/assets/images/m02.png Dosyayı Görüntüle


BIN
src/assets/images/m03.png Dosyayı Görüntüle


BIN
src/assets/images/m04.png Dosyayı Görüntüle


BIN
src/assets/images/m05.png Dosyayı Görüntüle


BIN
src/assets/images/m06.png Dosyayı Görüntüle


BIN
src/assets/images/m07.png Dosyayı Görüntüle


BIN
src/assets/images/m08.png Dosyayı Görüntüle


BIN
src/assets/images/myBanner.png Dosyayı Görüntüle


BIN
src/assets/images/myIcon1.png Dosyayı Görüntüle


BIN
src/assets/images/myIcon2.png Dosyayı Görüntüle


BIN
src/assets/images/myIcon3.png Dosyayı Görüntüle


BIN
src/assets/images/myIcon4.png Dosyayı Görüntüle


BIN
src/assets/images/myIcon5.png Dosyayı Görüntüle


BIN
src/assets/images/myIcon6.png Dosyayı Görüntüle


BIN
src/assets/images/myIcon7.png Dosyayı Görüntüle


BIN
src/assets/images/myIcon8.png Dosyayı Görüntüle


+ 14 - 0
src/libs/clearStyle.js Dosyayı Görüntüle

@@ -0,0 +1,14 @@
1
+export function clearStyle(value) {
2
+  value.map(item => {
3
+    let content = item.content.replace(/<.+?>/g, "");
4
+    // console.log(content);
5
+    /* 去除  */
6
+    content = content.replace(/ /gi, "");
7
+    // console.log(content);
8
+    /* 去除空格 */
9
+    content = content.replace(/\s/gi, "");
10
+    // console.log(content);
11
+    item.content = content;
12
+  });
13
+  return value;
14
+}

+ 131 - 0
src/pages/allEducation/index.vue Dosyayı Görüntüle

@@ -0,0 +1,131 @@
1
+<template>
2
+  <div class="page_allEducation">
3
+    <van-sticky>
4
+      <div class="allEducationTitle">
5
+        <i class="iconfont icon-zuojiantou jiantou" @click="toReturn"></i>
6
+        <span class="titleName">{{ education.name }}的宣教信息</span>
7
+      </div>
8
+    </van-sticky>
9
+    <div class="courseBox">
10
+      <div class="courseOne">
11
+        <div class="statOrder">
12
+          <p class="time">{{ getTime(education.assessment_date) }}</p>
13
+          <div class="orderContent">
14
+            <p>
15
+              {{ education.mission }}
16
+            </p>
17
+          </div>
18
+        </div>
19
+      </div>
20
+    </div>
21
+  </div>
22
+</template>
23
+<script>
24
+import { getEducationDetail } from "@/api/patient/patient";
25
+import { uParseTime } from "@/utils/tools";
26
+import { setRem, setHeight } from "@/libs/functionRem";
27
+import "../../styles/resetStyle.scss";
28
+export default {
29
+  props: {
30
+    active: Number
31
+  },
32
+  data() {
33
+    return {
34
+      patientid: 0,
35
+      active: 0,
36
+      education: {}
37
+    };
38
+  },
39
+  methods: {
40
+    toReturn() {
41
+      this.$router.push(
42
+        "/patientdetail?patientid=" + this.patientid + "&active=" + this.active
43
+      );
44
+    },
45
+    getEducationDetail(id) {
46
+      getEducationDetail(id).then(response => {
47
+        if (response.data.state === 1) {
48
+          var education = response.data.data.education;
49
+          console.log("宣教详情", education);
50
+          this.education = education;
51
+        }
52
+      });
53
+    },
54
+    getTime(time) {
55
+      // return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
56
+      return uParseTime(time, "{y}-{m}-{d}");
57
+    }
58
+  },
59
+  created() {
60
+    this.active = parseInt(this.$route.query.active);
61
+    setRem();
62
+    setHeight();
63
+    var id = this.$route.query.id;
64
+    console.log("id", id);
65
+    var patientid = this.$route.query.patientid;
66
+    this.patientid = patientid;
67
+    console.log("patientid", patientid);
68
+    this.getEducationDetail(id);
69
+  }
70
+};
71
+</script>
72
+<style lang="scss" scoped>
73
+.page_allEducation {
74
+  height: 100%;
75
+  overflow-y: auto;
76
+  .allEducationTitle {
77
+    background: #fff;
78
+    padding: 0 1.125rem;
79
+    height: 3.125rem;
80
+    display: flex;
81
+    align-items: center;
82
+  }
83
+  .jiantou {
84
+    font-size: 1.5rem;
85
+    font-weight: 600;
86
+    margin-right: 5.5rem;
87
+  }
88
+  .titleName {
89
+    font-size: 1.125rem;
90
+    font-weight: 600;
91
+  }
92
+  .courseBox {
93
+    padding: 0 1.125rem;
94
+    margin-bottom: 3.125rem;
95
+  }
96
+  .courseOne {
97
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
98
+    padding-bottom: 1.25rem;
99
+    .time {
100
+      font-size: 1.125rem;
101
+      margin-top: 0.625rem;
102
+      font-weight: bold;
103
+    }
104
+  }
105
+  .statOrderTitle {
106
+    color: #5b98ff;
107
+    font-size: 0.8125rem;
108
+    font-weight: bold;
109
+    margin: 0.625rem 0;
110
+  }
111
+  .orderContent {
112
+    font-size: 0.875rem;
113
+    color: rgba(49, 50, 52, 1);
114
+    p {
115
+      line-height: 1.125rem;
116
+    }
117
+  }
118
+  .doctorBox {
119
+    font-size: 0.75rem;
120
+    color: rgba(152, 152, 152, 1);
121
+    line-height: 1.125rem;
122
+    display: flex;
123
+    align-items: center;
124
+    justify-content: space-between;
125
+    margin-top: 0.625rem;
126
+  }
127
+}
128
+::-webkit-scrollbar {
129
+  width: 0;
130
+}
131
+</style>

+ 75 - 0
src/pages/allLongDialysis/index.vue Dosyayı Görüntüle

@@ -0,0 +1,75 @@
1
+<template>
2
+  <div class="page_allLongDialysis">
3
+    <van-sticky>
4
+      <div class="allLongDialysisTitle">
5
+        <i class="iconfont icon-zuojiantou jiantou"></i>
6
+        <span class="titleName">张三的长期透析处方</span>
7
+      </div>
8
+    </van-sticky>
9
+    <div class="dialysisBox">
10
+      <div class="dialysisBoxOne">
11
+        <p class="time">2019.01.01</p>
12
+        <div class="orderContent">
13
+          <p>透析模式:HD</p>
14
+          <p>透析时长(h/min):2h30min</p>
15
+          <p>血流量(ml/min):12</p>
16
+          <p>目标超滤量(ml):1200ml</p>
17
+          <p>透析配方:1200ml</p>
18
+          <p>抗凝剂:1200ml</p>
19
+          <p>首剂(mg):1200ml</p>
20
+          <p>维持(mg/h):1200ml</p>
21
+        </div>
22
+      </div>
23
+    </div>
24
+  </div>
25
+</template>
26
+
27
+<style lang="scss" scoped>
28
+.page_allLongDialysis {
29
+  height: 100%;
30
+  overflow-y: auto;
31
+  .allLongDialysisTitle {
32
+    background: #fff;
33
+    padding: 0 1.125rem;
34
+    height: 3.125rem;
35
+    display: flex;
36
+    align-items: center;
37
+  }
38
+  .jiantou {
39
+    font-size: 1.5rem;
40
+    font-weight: 600;
41
+    margin-right: 4.5rem;
42
+  }
43
+  .titleName {
44
+    font-size: 1.125rem;
45
+    font-weight: 600;
46
+  }
47
+  .dialysisBox {
48
+    padding: 0 1.125rem;
49
+    margin-bottom: 3.125rem;
50
+  }
51
+  .dialysisBoxOne {
52
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
53
+    padding-bottom: 1.25rem;
54
+    .time {
55
+      font-size: 1.125rem;
56
+      margin-top: 0.625rem;
57
+      font-weight: bold;
58
+    }
59
+  }
60
+  .orderContent {
61
+    font-size: 0.875rem;
62
+    color: rgba(49, 50, 52, 1);
63
+    margin-top: 0.625rem;
64
+    display: flex;
65
+    flex-wrap: wrap;
66
+    p {
67
+      line-height: 1.5rem;
68
+      width: 50%;
69
+    }
70
+  }
71
+}
72
+::-webkit-scrollbar {
73
+  width: 0;
74
+}
75
+</style>

+ 134 - 0
src/pages/allRescue/index.vue Dosyayı Görüntüle

@@ -0,0 +1,134 @@
1
+<template>
2
+  <div class="page_allRescue">
3
+    <van-sticky>
4
+      <div class="allRescueTitle">
5
+        <i class="iconfont icon-zuojiantou jiantou" @click="toReturn"></i>
6
+        <span class="titleName">{{ recorddetail.name }}的抢救记录</span>
7
+      </div>
8
+    </van-sticky>
9
+    <div class="courseBox">
10
+      <div class="courseOne">
11
+        <div class="statOrder">
12
+          <p class="time">{{ getTime(recorddetail.record_time) }}</p>
13
+          <div class="orderContent">
14
+            <p>
15
+              {{ recorddetail.content }}
16
+            </p>
17
+          </div>
18
+          <div class="doctorBox">
19
+            <p>记录医生:{{ recorddetail.user_name }}</p>
20
+          </div>
21
+        </div>
22
+      </div>
23
+    </div>
24
+  </div>
25
+</template>
26
+<script>
27
+import { getRescueRecordDetail } from "@/api/patient/patient";
28
+import { uParseTime } from "@/utils/tools";
29
+import { setRem, setHeight } from "@/libs/functionRem";
30
+import "../../styles/resetStyle.scss";
31
+export default {
32
+  props: {
33
+    active: Number
34
+  },
35
+  data() {
36
+    return {
37
+      patientid: 0,
38
+      active: 0,
39
+      recorddetail: {}
40
+    };
41
+  },
42
+  methods: {
43
+    getRescueRecordDetail(id) {
44
+      getRescueRecordDetail(id).then(response => {
45
+        if (response.data.state === 1) {
46
+          var recorddetail = response.data.data.recordDetail;
47
+          this.recorddetail = recorddetail;
48
+          console.log("记录详情", recorddetail);
49
+        }
50
+      });
51
+    },
52
+    toReturn() {
53
+      this.$router.push(
54
+        "/patientdetail?patientid=" + this.patientid + "&active=" + this.active
55
+      );
56
+    },
57
+    getTime(time) {
58
+      // return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
59
+      return uParseTime(time, "{y}-{m}-{d}");
60
+    }
61
+  },
62
+  created() {
63
+    this.active = parseInt(this.$route.query.active);
64
+    setRem();
65
+    setHeight();
66
+    var id = this.$route.query.id;
67
+    console.log("id", id);
68
+    var patientid = this.$route.query.patientid;
69
+    this.patientid = patientid;
70
+    console.log("patientid", patientid);
71
+    this.getRescueRecordDetail(id);
72
+  }
73
+};
74
+</script>
75
+<style lang="scss" scoped>
76
+.page_allRescue {
77
+  height: 100%;
78
+  overflow-y: auto;
79
+  .allRescueTitle {
80
+    background: #fff;
81
+    padding: 0 1.125rem;
82
+    height: 3.125rem;
83
+    display: flex;
84
+    align-items: center;
85
+  }
86
+  .jiantou {
87
+    font-size: 1.5rem;
88
+    font-weight: 600;
89
+    margin-right: 5.5rem;
90
+  }
91
+  .titleName {
92
+    font-size: 1.125rem;
93
+    font-weight: 600;
94
+  }
95
+  .courseBox {
96
+    padding: 0 1.125rem;
97
+    margin-bottom: 3.125rem;
98
+  }
99
+  .courseOne {
100
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
101
+    padding-bottom: 1.25rem;
102
+    .time {
103
+      font-size: 1.125rem;
104
+      margin-top: 0.625rem;
105
+      font-weight: bold;
106
+    }
107
+  }
108
+  .statOrderTitle {
109
+    color: #5b98ff;
110
+    font-size: 0.8125rem;
111
+    font-weight: bold;
112
+    margin: 0.625rem 0;
113
+  }
114
+  .orderContent {
115
+    font-size: 0.875rem;
116
+    color: rgba(49, 50, 52, 1);
117
+    p {
118
+      line-height: 1.125rem;
119
+    }
120
+  }
121
+  .doctorBox {
122
+    font-size: 0.75rem;
123
+    color: rgba(152, 152, 152, 1);
124
+    line-height: 1.125rem;
125
+    display: flex;
126
+    align-items: center;
127
+    justify-content: space-between;
128
+    margin-top: 0.625rem;
129
+  }
130
+}
131
+::-webkit-scrollbar {
132
+  width: 0;
133
+}
134
+</style>

+ 171 - 0
src/pages/allScheduling/index.vue Dosyayı Görüntüle

@@ -0,0 +1,171 @@
1
+<template>
2
+  <div class="page_allScheduling">
3
+    <van-sticky>
4
+      <div class="allSchedulingTitle">
5
+        <i class="iconfont icon-zuojiantou jiantou" @click="toReturn"></i>
6
+        <span class="titleName">{{ name }}的排班信息</span>
7
+      </div>
8
+    </van-sticky>
9
+    <div class="dialysisBox">
10
+      <div class="dialysisBoxOne">
11
+        <p class="time">{{ getTime(schedulingDetail.schedule_date) }}</p>
12
+        <div class="orderContent">
13
+          <p>班次:{{ schedulingDetail.schedule_type }}</p>
14
+          <p>分区:{{ schedulingDetail.name }}</p>
15
+          <p>机号:{{ schedulingDetail.number }}</p>
16
+          <p>治疗模式:{{ schedulingDetail.mode_id }}</p>
17
+        </div>
18
+      </div>
19
+    </div>
20
+  </div>
21
+</template>
22
+<script>
23
+import { getSchedulingDetail } from "@/api/patient/patient";
24
+import { uParseTime } from "@/utils/tools";
25
+import { setRem, setHeight } from "@/libs/functionRem";
26
+import "../../styles/resetStyle.scss";
27
+export default {
28
+  data() {
29
+    return {
30
+      name: "",
31
+      schedulingDetail: {},
32
+      patientid: 0,
33
+      active: 0
34
+    };
35
+  },
36
+  methods: {
37
+    getSchedulingDetail(id) {
38
+      getSchedulingDetail(id).then(response => {
39
+        if (response.data.state === 1) {
40
+          var schedulingDetail = response.data.data.schedulingDetail;
41
+          if (schedulingDetail.mode_id == 1) {
42
+            schedulingDetail.mode_id = "HD";
43
+          }
44
+          if (schedulingDetail.mode_id == 2) {
45
+            schedulingDetail.mode_id = "HDF";
46
+          }
47
+          if (schedulingDetail.mode_id == 3) {
48
+            schedulingDetail.mode_id = "HD+HP";
49
+          }
50
+          if (schedulingDetail.mode_id == 4) {
51
+            schedulingDetail.mode_id = "HP";
52
+          }
53
+          if (schedulingDetail.mode_id == 5) {
54
+            schedulingDetail.mode_id = "HF";
55
+          }
56
+          if (schedulingDetail.mode_id == 6) {
57
+            schedulingDetail.mode_id = "SCUF";
58
+          }
59
+          if (schedulingDetail.mode_id == 7) {
60
+            schedulingDetail.mode_id = "IUF";
61
+          }
62
+          if (schedulingDetail.mode_id == 8) {
63
+            schedulingDetail.mode_id = "HFHD";
64
+          }
65
+          if (schedulingDetail.mode_id == 9) {
66
+            schedulingDetail.mode_id = "HFHD+HP";
67
+          }
68
+          if (schedulingDetail.mode_id == 10) {
69
+            schedulingDetail.mode_id = "PHF";
70
+          }
71
+          if (schedulingDetail.mode_id == 11) {
72
+            schedulingDetail.mode_id = "HFR";
73
+          }
74
+          if (schedulingDetail.mode_id == 12) {
75
+            schedulingDetail.mode_id = "HDF+HP";
76
+          }
77
+          if (schedulingDetail.mode_id == 13) {
78
+            schedulingDetail.mode_id = "CRRT";
79
+          }
80
+          if (schedulingDetail.mode_id == 14) {
81
+            schedulingDetail.mode_id = "腹水回输";
82
+          }
83
+          if (schedulingDetail.schedule_type == 1) {
84
+            schedulingDetail.schedule_type = "上午";
85
+          }
86
+          if (schedulingDetail.schedule_type == 2) {
87
+            schedulingDetail.schedule_type = "中午";
88
+          }
89
+          if (schedulingDetail.schedule_type == 3) {
90
+            schedulingDetail.schedule_type = "下午";
91
+          }
92
+          this.schedulingDetail = schedulingDetail;
93
+          console.log("排班详情", schedulingDetail);
94
+          var patient = response.data.data.patient;
95
+          this.name = patient.name;
96
+          console.log("patient", patient);
97
+        }
98
+      });
99
+    },
100
+    getTime(time) {
101
+      // return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
102
+      return uParseTime(time, "{y}-{m}-{d}");
103
+    },
104
+    toReturn() {
105
+      this.$router.push(
106
+        "/patientdetail?patientid=" + this.patientid + "&active=" + this.active
107
+      );
108
+    }
109
+  },
110
+  created() {
111
+    this.active = parseInt(this.$route.query.active);
112
+    setRem();
113
+    setHeight();
114
+    var id = this.$route.query.id;
115
+    console.log("id", id);
116
+    var patientid = this.$route.query.patientid;
117
+    console.log("patientid", patientid);
118
+    this.patientid = patientid;
119
+    this.getSchedulingDetail(id);
120
+  }
121
+};
122
+</script>
123
+<style lang="scss" scoped>
124
+.page_allScheduling {
125
+  height: 100%;
126
+  overflow-y: auto;
127
+  .allSchedulingTitle {
128
+    background: #fff;
129
+    padding: 0 1.125rem;
130
+    height: 3.125rem;
131
+    display: flex;
132
+    align-items: center;
133
+  }
134
+  .jiantou {
135
+    font-size: 1.5rem;
136
+    font-weight: 600;
137
+    margin-right: 5.5rem;
138
+  }
139
+  .titleName {
140
+    font-size: 1.125rem;
141
+    font-weight: 600;
142
+  }
143
+  .dialysisBox {
144
+    padding: 0 1.125rem;
145
+    margin-bottom: 3.125rem;
146
+  }
147
+  .dialysisBoxOne {
148
+    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
149
+    padding-bottom: 1.25rem;
150
+    .time {
151
+      font-size: 1.125rem;
152
+      margin-top: 0.625rem;
153
+      font-weight: bold;
154
+    }
155
+  }
156
+  .orderContent {
157
+    font-size: 0.875rem;
158
+    color: rgba(49, 50, 52, 1);
159
+    margin-top: 0.625rem;
160
+    display: flex;
161
+    flex-wrap: wrap;
162
+    p {
163
+      line-height: 1.5rem;
164
+      width: 50%;
165
+    }
166
+  }
167
+}
168
+::-webkit-scrollbar {
169
+  width: 0;
170
+}
171
+</style>

+ 14 - 2
src/pages/doctorAdvice/components/CourseManagement.vue Dosyayı Görüntüle

@@ -119,10 +119,14 @@ import {
119 119
   getPatientDetail
120 120
 } from "@/api/patient/patient";
121 121
 import { uParseTime } from "@/utils/tools";
122
+import { clearStyle } from "@/libs/clearStyle";
122 123
 import Vue from "vue";
123 124
 import { Dialog } from "vant";
124 125
 const moment = require("moment");
125 126
 export default {
127
+  props: {
128
+    active: Number
129
+  },
126 130
   data() {
127 131
     return {
128 132
       newShow: false,
@@ -205,7 +209,7 @@ export default {
205 209
         if (response.data.state == 1) {
206 210
           var coursemanagement = response.data.data.coursemanagement;
207 211
           console.log("病程管理", coursemanagement);
208
-          this.courseManagement = coursemanagement;
212
+          this.courseManagement = clearStyle(coursemanagement);
209 213
           var total = response.data.data.total;
210 214
           this.total = total;
211 215
           console.log("总共", total);
@@ -256,7 +260,15 @@ export default {
256 260
       });
257 261
     },
258 262
     toCourseDetail(id) {
259
-      this.$router.push("/coursedetail?id=" + id);
263
+      var patientid = this.$route.query.patientid;
264
+      this.$router.push(
265
+        "/coursedetail?id=" +
266
+          id +
267
+          "&patientid=" +
268
+          patientid +
269
+          "&active=" +
270
+          this.active
271
+      );
260 272
     },
261 273
     getPatientDetail(patientid) {
262 274
       getPatientDetail(patientid).then(response => {

+ 12 - 3
src/pages/doctorAdvice/components/DryWeight.vue Dosyayı Görüntüle

@@ -83,6 +83,9 @@ import { uParseTime } from "@/utils/tools";
83 83
 import { Dialog } from "vant";
84 84
 const moment = require("moment");
85 85
 export default {
86
+  props: {
87
+    active: Number
88
+  },
86 89
   data() {
87 90
     return {
88 91
       newShow: false,
@@ -173,7 +176,6 @@ export default {
173 176
       });
174 177
     },
175 178
     onLoad() {
176
-      console.log("触发没有");
177 179
       setTimeout(() => {
178 180
         for (let i = 0; i < this.limit; i++) {
179 181
           this.list.push(this.list.length + 1);
@@ -196,7 +198,7 @@ export default {
196 198
         if (this.list.length >= this.total) {
197 199
           this.finished = true;
198 200
         }
199
-      }, 1000);
201
+      }, 1);
200 202
     },
201 203
     getTime(time) {
202 204
       // return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
@@ -230,7 +232,14 @@ export default {
230 232
     },
231 233
     getDryWeightDetail(id) {
232 234
       var patientid = this.$route.query.patientid;
233
-      this.$router.push("/dryweight?id=" + id + "&patientid=" + patientid);
235
+      this.$router.push(
236
+        "/dryweight?id=" +
237
+          id +
238
+          "&patientid=" +
239
+          patientid +
240
+          "&active=" +
241
+          this.active
242
+      );
234 243
     },
235 244
     getPatientDetail(patientid) {
236 245
       getPatientDetail(patientid).then(response => {

+ 125 - 32
src/pages/doctorAdvice/components/Education.vue Dosyayı Görüntüle

@@ -22,33 +22,27 @@
22 22
           finished-text="没有更多了"
23 23
           @load="onLoad"
24 24
         >
25
-          <div class="adviceOne" v-for="item in 3" :key="index">
25
+          <div
26
+            class="adviceOne"
27
+            v-for="(item, index) in Education"
28
+            :key="index"
29
+          >
26 30
             <div class="adviceTitle">
27
-              <p>2019.09.01</p>
31
+              <p>{{ getTime(item.assessment_date) }}</p>
28 32
               <van-icon
29 33
                 class="ellipsis"
30 34
                 name="ellipsis"
31
-                @click="newShow = true"
35
+                @click="toDeleteEducation(item.id, item.index)"
32 36
               />
33 37
             </div>
34 38
             <div class="statOrder">
35
-              <div class="statOrderTitle">
36
-                <span>宣教标题</span>
37
-              </div>
38 39
               <div class="orderContent">
39 40
                 <p>
40
-                  病历书写基本规范2010》第二十二条规定:“病程记录
41
-                  是指继入院记录之后,对患者病情和诊疗过程所进行的
42
-                  连续性记录。内容包括患病历书写基本规范2010》第二十二条规定:“病程记录
43
-                  是指继入院记录之后,对患者病情和诊疗过程所进行的
44
-                  连续性记录。内容包括患
41
+                  {{ item.mission }}
45 42
                 </p>
46 43
               </div>
47
-              <div class="doctorBox">
48
-                <p>记录医生:钱蛮子</p>
49
-              </div>
50 44
             </div>
51
-            <div class="all">全部</div>
45
+            <div class="all" @click="toEducationDetail(item.id)">全部</div>
52 46
           </div>
53 47
         </van-list>
54 48
       </div>
@@ -65,18 +59,6 @@
65 59
 
66 60
     <!-- 弹出层 -->
67 61
     <div>
68
-      <van-popup
69
-        v-model="typeShow"
70
-        position="bottom"
71
-        :style="{ height: '40%' }"
72
-      >
73
-        <van-picker
74
-          show-toolbar
75
-          :columns="columns"
76
-          @cancel="onCancel"
77
-          @confirm="onConfirm"
78
-        />
79
-      </van-popup>
80 62
       <van-popup
81 63
         v-model="startShow"
82 64
         position="bottom"
@@ -105,28 +87,51 @@
105 87
         v-model="newShow"
106 88
         :actions="actions"
107 89
         cancel-text="取消"
108
-        @cancel="onCancel"
90
+        @select="DeleteEducation"
109 91
       />
110 92
     </div>
111 93
   </div>
112 94
 </template>
113 95
 
114 96
 <script>
115
-import { getPatientDetail } from "@/api/patient/patient";
97
+import {
98
+  getPatientDetail,
99
+  getEducation,
100
+  DeleteEducationOne
101
+} from "@/api/patient/patient";
102
+import { uParseTime } from "@/utils/tools";
103
+import Vue from "vue";
104
+import { Dialog } from "vant";
105
+const moment = require("moment");
116 106
 export default {
107
+  props: {
108
+    active: Number
109
+  },
117 110
   data() {
118 111
     return {
119 112
       newShow: false,
120 113
       startShow: false,
121 114
       endShow: false,
122
-      startTime: "请选择",
123
-      endTime: "请选择",
115
+      startTime: moment()
116
+        .subtract(30, "days")
117
+        .format("YYYY-MM-DD"),
118
+      endTime: moment(new Date()).format("YYYY-MM-DD"),
124 119
       minDate: new Date(1970, 0, 1),
125 120
       maxDate: new Date(2025, 10, 1),
126 121
       currentDate: new Date(),
127 122
       actions: [{ name: "编辑" }, { name: "删除" }],
128 123
       showOne: true,
129
-      showTwo: false
124
+      showTwo: false,
125
+      limit: 10,
126
+      page: 1,
127
+      total: 0,
128
+      loading: false,
129
+      finished: false,
130
+      list: [],
131
+      Education: [],
132
+      patient_id: "",
133
+      id: 0,
134
+      index: 0
130 135
     };
131 136
   },
132 137
   methods: {
@@ -183,11 +188,99 @@ export default {
183 188
           this.patientName = patientDetail.name;
184 189
         }
185 190
       });
191
+    },
192
+    getEducation(id) {
193
+      getEducation(
194
+        id,
195
+        this.limit,
196
+        this.page,
197
+        this.startTime,
198
+        this.endTime
199
+      ).then(response => {
200
+        if (response.data.state === 1) {
201
+          var education = response.data.data.education;
202
+          console.log("透后宣教", education);
203
+          let arr = this.Education;
204
+          arr.push(...education);
205
+          this.Education = arr;
206
+          var total = response.data.data.total;
207
+          console.log("total", total);
208
+          this.total = total;
209
+        }
210
+      });
211
+    },
212
+    onLoad() {
213
+      setTimeout(() => {
214
+        for (let i = 0; i < this.limit; i++) {
215
+          this.list.push(this.list.length + 1);
216
+        }
217
+        // 加载状态结束
218
+        this.loading = false;
219
+        console.log("长度", this.Education.length);
220
+        if (this.Education.length > 10) {
221
+          this.page++;
222
+        }
223
+        console.log("page是什么", this.page);
224
+        this.getEducation(
225
+          this.patient_id,
226
+          this.limit,
227
+          this.page,
228
+          this.startTime,
229
+          this.endTime
230
+        );
231
+        // 数据全部加载完成
232
+        if (this.list.length >= this.total) {
233
+          this.finished = true;
234
+        }
235
+      }, 1);
236
+    },
237
+    getTime(time) {
238
+      // return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
239
+      return uParseTime(time, "{y}-{m}-{d}");
240
+    },
241
+    toEducationDetail(id) {
242
+      var patientid = this.$route.query.patientid;
243
+      this.$router.push(
244
+        "/editEducation?id=" +
245
+          id +
246
+          "&patientid=" +
247
+          patientid +
248
+          "&active=" +
249
+          this.active
250
+      );
251
+    },
252
+    toDeleteEducation(id, index) {
253
+      this.id = id;
254
+      this.index = index;
255
+      this.newShow = true;
256
+    },
257
+    DeleteEducation(value) {
258
+      console.log("value", value);
259
+      if (value.name == "删除") {
260
+        this.DeleteEducationOne(this.id, this.index);
261
+      }
262
+    },
263
+    DeleteEducationOne(id, index) {
264
+      Dialog.confirm({
265
+        title: "删除提示!",
266
+        message: "确认删除该条信息吗?,删除后将无法恢复!"
267
+      }).then(() => {
268
+        DeleteEducationOne(id).then(response => {
269
+          if (response.data.state === 1) {
270
+            var msg = response.data.data.msg;
271
+            console.log("msg", msg);
272
+            this.Education.splice(index, 1);
273
+            this.newShow = false;
274
+          }
275
+        });
276
+      });
186 277
     }
187 278
   },
188 279
   created() {
189 280
     var patientid = this.$route.query.patientid;
190 281
     this.getPatientDetail(patientid);
282
+    this.getEducation(patientid);
283
+    this.patient_id = patientid;
191 284
   }
192 285
 };
193 286
 </script>

+ 124 - 30
src/pages/doctorAdvice/components/RescueRecord.vue Dosyayı Görüntüle

@@ -22,33 +22,30 @@
22 22
           finished-text="没有更多了"
23 23
           @load="onLoad"
24 24
         >
25
-          <div class="adviceOne" v-for="item in 3" :key="index">
25
+          <div
26
+            class="adviceOne"
27
+            v-for="(item, index) in this.rescueRecords"
28
+            :key="index"
29
+          >
26 30
             <div class="adviceTitle">
27
-              <p>2019.09.01</p>
31
+              <p>{{ getTime(item.record_time) }}</p>
28 32
               <van-icon
29 33
                 class="ellipsis"
30 34
                 name="ellipsis"
31
-                @click="newShow = true"
35
+                @click="toDeleteRescueRecord(item.id, item.index)"
32 36
               />
33 37
             </div>
34 38
             <div class="statOrder">
35
-              <div class="statOrderTitle">
36
-                <span>抢救标题</span>
37
-              </div>
38 39
               <div class="orderContent">
39 40
                 <p>
40
-                  病历书写基本规范2010》第二十二条规定:“病程记录
41
-                  是指继入院记录之后,对患者病情和诊疗过程所进行的
42
-                  连续性记录。内容包括患病历书写基本规范2010》第二十二条规定:“病程记录
43
-                  是指继入院记录之后,对患者病情和诊疗过程所进行的
44
-                  连续性记录。内容包括患
41
+                  <span v-html="item.content"></span>
45 42
                 </p>
46 43
               </div>
47 44
               <div class="doctorBox">
48
-                <p>记录医生:钱蛮子</p>
45
+                <p>记录医生:{{ item.user_name }}</p>
49 46
               </div>
50 47
             </div>
51
-            <div class="all">全部</div>
48
+            <div class="all" @click="toRescueRecord(item.id)">全部</div>
52 49
           </div>
53 50
         </van-list>
54 51
       </div>
@@ -64,18 +61,6 @@
64 61
 
65 62
     <!-- 弹出层 -->
66 63
     <div>
67
-      <van-popup
68
-        v-model="typeShow"
69
-        position="bottom"
70
-        :style="{ height: '40%' }"
71
-      >
72
-        <van-picker
73
-          show-toolbar
74
-          :columns="columns"
75
-          @cancel="onCancel"
76
-          @confirm="onConfirm"
77
-        />
78
-      </van-popup>
79 64
       <van-popup
80 65
         v-model="startShow"
81 66
         position="bottom"
@@ -104,28 +89,51 @@
104 89
         v-model="newShow"
105 90
         :actions="actions"
106 91
         cancel-text="取消"
107
-        @cancel="onCancel"
92
+        @select="Delete"
108 93
       />
109 94
     </div>
110 95
   </div>
111 96
 </template>
112 97
 
113 98
 <script>
114
-import { getPatientDetail } from "@/api/patient/patient";
99
+import {
100
+  getPatientDetail,
101
+  getRescueRecord,
102
+  DeleteRescueRecord
103
+} from "@/api/patient/patient";
104
+import { uParseTime } from "@/utils/tools";
105
+import Vue from "vue";
106
+import { Dialog } from "vant";
107
+const moment = require("moment");
115 108
 export default {
109
+  props: {
110
+    active: Number
111
+  },
116 112
   data() {
117 113
     return {
118 114
       newShow: false,
119 115
       startShow: false,
120 116
       endShow: false,
121
-      startTime: "请选择",
122
-      endTime: "请选择",
117
+      startTime: moment()
118
+        .subtract(30, "days")
119
+        .format("YYYY-MM-DD"),
120
+      endTime: moment(new Date()).format("YYYY-MM-DD"),
123 121
       minDate: new Date(1970, 0, 1),
124 122
       maxDate: new Date(2025, 10, 1),
125 123
       currentDate: new Date(),
126 124
       actions: [{ name: "编辑" }, { name: "删除" }],
127 125
       showOne: true,
128
-      showTwo: false
126
+      showTwo: false,
127
+      limit: 10,
128
+      page: 1,
129
+      total: 0,
130
+      loading: false,
131
+      finished: false,
132
+      rescueRecords: [],
133
+      patient_id: 0,
134
+      list: [],
135
+      id: 0,
136
+      index: 0
129 137
     };
130 138
   },
131 139
   methods: {
@@ -182,12 +190,98 @@ export default {
182 190
           this.patientName = patientDetail.name;
183 191
         }
184 192
       });
193
+    },
194
+    getRescueRecord(id) {
195
+      getRescueRecord(
196
+        id,
197
+        this.limit,
198
+        this.page,
199
+        this.startTime,
200
+        this.endTime
201
+      ).then(response => {
202
+        if (response.data.state === 1) {
203
+          var rescuerecord = response.data.data.rescuerecord;
204
+          console.log("抢救记录", rescuerecord);
205
+          let arr = this.rescueRecords;
206
+          arr.push(...rescuerecord);
207
+          this.rescueRecords = arr;
208
+          var total = response.data.data.total;
209
+          console.log("总计", total);
210
+        }
211
+      });
212
+    },
213
+    onLoad() {
214
+      setTimeout(() => {
215
+        for (let i = 0; i < this.limit; i++) {
216
+          this.list.push(this.list.length + 1);
217
+        }
218
+        // 加载状态结束
219
+        this.loading = false;
220
+        console.log("长度", this.rescueRecords.length);
221
+        if (this.rescueRecords.length > 10) {
222
+          this.page++;
223
+        }
224
+        console.log("page是什么", this.page);
225
+        this.getRescueRecord(
226
+          this.patient_id,
227
+          this.startTime,
228
+          this.endTimes,
229
+          this.limit,
230
+          this.page
231
+        );
232
+        // 数据全部加载完成
233
+        if (this.list.length >= this.total) {
234
+          this.finished = true;
235
+        }
236
+      }, 1000);
237
+    },
238
+    getTime(time) {
239
+      // return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
240
+      return uParseTime(time, "{y}-{m}-{d}");
241
+    },
242
+    toRescueRecord(id) {
243
+      var patientid = this.$route.query.patientid;
244
+      this.$router.push(
245
+        "/rescuerecord?id=" +
246
+          id +
247
+          "&patientid=" +
248
+          patientid +
249
+          "&active=" +
250
+          this.active
251
+      );
252
+    },
253
+    toDeleteRescueRecord(id, index) {
254
+      this.id = id;
255
+      this.index = index;
256
+      this.newShow = true;
257
+    },
258
+    Delete(value) {
259
+      if (value.name == "删除") {
260
+        this.DeleteRescueRecord(this.id, this.index);
261
+      }
262
+    },
263
+    DeleteRescueRecord(id, index) {
264
+      Dialog.confirm({
265
+        title: "删除提示!",
266
+        message: "确认删除该条信息吗?,删除后将无法恢复!"
267
+      }).then(() => {
268
+        DeleteRescueRecord(id).then(response => {
269
+          if (response.data.state === 1) {
270
+            var msg = response.data.data.msg;
271
+            console.log("msg", msg);
272
+            this.rescueRecords.splice(index, 1);
273
+            this.newShow = false;
274
+          }
275
+        });
276
+      });
185 277
     }
186 278
   },
187 279
   created() {
188 280
     var patientid = this.$route.query.patientid;
189 281
     console.log("病人id能否获取", patientid);
282
+    this.patient_id = patientid;
190 283
     this.getPatientDetail(patientid);
284
+    this.getRescueRecord(patientid);
191 285
   }
192 286
 };
193 287
 </script>

+ 215 - 26
src/pages/doctorAdvice/components/Scheduling.vue Dosyayı Görüntüle

@@ -28,22 +28,24 @@
28 28
           finished-text="没有更多了"
29 29
           @load="onLoad"
30 30
         >
31
-          <div class="adviceOne" v-for="item in 3" :key="index">
31
+          <div class="adviceOne" v-for="(item,index) in scheduLing" :key="index">
32 32
             <div class="adviceTitle">
33
-              <p>2019.09.01</p>
33
+              <p>{{getTime(item.schedule_date)}}</p>
34 34
               <van-icon
35 35
                 class="ellipsis"
36 36
                 name="ellipsis"
37
-                @click="newShow = true"
37
+                @click="toDelete(item.id,index)"
38 38
               />
39 39
             </div>
40 40
             <div class="orderContent">
41
-              <p>班次:HD</p>
42
-              <p>分区:2h30min</p>
43
-              <p>机号:12</p>
44
-              <p>治疗模式:1200ml</p>
41
+              <p>班次:
42
+                <span>{{item.schedule_type}}</span>
43
+              </p>
44
+              <p>分区:{{item.name}}</p>
45
+              <p>机号:{{item.number}}</p>
46
+              <p>治疗模式:{{item.mode_id}}</p>
45 47
             </div>
46
-            <div class="all">全部</div>
48
+            <div class="all" @click="toEditSchduling(item.id)">全部</div>
47 49
           </div>
48 50
         </van-list>
49 51
       </div>
@@ -99,7 +101,7 @@
99 101
         v-model="newShow"
100 102
         :actions="actions"
101 103
         cancel-text="取消"
102
-        @cancel="onCancel"
104
+        @select="onCancelOne"
103 105
       />
104 106
       </div>
105 107
     </div>
@@ -107,35 +109,46 @@
107 109
 </template>
108 110
 
109 111
 <script>
110
-import { getPatientDetail } from '@/api/patient/patient'
112
+import { getPatientDetail, getScheduling, DeleteScheduling } from '@/api/patient/patient'
113
+import { uParseTime } from '@/utils/tools'
114
+import Vue from 'vue'
115
+import { Dialog } from 'vant'
116
+const moment = require('moment')
111 117
 export default {
118
+  props: {
119
+    active: Number
120
+  },
112 121
   data () {
113 122
     return {
114 123
       newShow: false,
115 124
       typeShow: false,
116 125
       startShow: false,
117 126
       endShow: false,
118
-      type: '请选择',
119
-      columns: [
120
-        '杭州',
121
-        '宁波',
122
-        '温州',
123
-        '嘉兴',
124
-        '湖州',
125
-        '杭州',
126
-        '宁波',
127
-        '温州',
128
-        '嘉兴',
129
-        '湖州'
130
-      ],
131
-      startTime: '请选择',
132
-      endTime: '请选择',
127
+      type: '全部',
128
+      types: 0,
129
+      columns: ['HD', 'HDF', 'HD+HP', 'HP', 'HF', 'SCUF', 'IUF', 'HFHD', 'HFHD+HP', 'PHF', 'HFR', 'HDF+HP', 'CRRT', '腹水回输'],
130
+      startTime: moment()
131
+        .subtract(30, 'days')
132
+        .format('YYYY-MM-DD'),
133
+      endTime: moment(new Date()).format('YYYY-MM-DD'),
133 134
       minDate: new Date(1970, 0, 1),
134 135
       maxDate: new Date(2025, 10, 1),
135 136
       currentDate: new Date(),
136 137
       actions: [{ name: '编辑' }, { name: '删除' }],
137 138
       showOne: true,
138
-      showTwo: false
139
+      showTwo: false,
140
+      limit: 10,
141
+      page: 1,
142
+      total: 0,
143
+      loading: false,
144
+      finished: false,
145
+      list: [],
146
+      patient_id: '',
147
+      scheduLing: [],
148
+      list: [],
149
+      id: 0,
150
+      index: 0
151
+
139 152
     }
140 153
   },
141 154
   methods: {
@@ -143,8 +156,55 @@ export default {
143 156
       this.typeShow = false
144 157
     },
145 158
     onConfirm (value) {
159
+      if (value === '全部') {
160
+        this.types = 0
161
+      }
162
+      if (value === 'HD') {
163
+        this.types = 1
164
+      }
165
+      if (value === 'HDF') {
166
+        this.types = 2
167
+      }
168
+      if (value === 'HD+HP') {
169
+        this.types = 3
170
+      }
171
+      if (value === 'HP') {
172
+        this.types = 4
173
+      }
174
+      if (value === 'HF') {
175
+        this.types = 5
176
+      }
177
+      if (value === 'SCUF') {
178
+        this.types = 6
179
+      }
180
+      if (value === 'IUF') {
181
+        this.types = 7
182
+      }
183
+      if (value === 'HFHD') {
184
+        this.types = 8
185
+      }
186
+      if (value === 'HFHD+HP') {
187
+        this.types = 9
188
+      }
189
+      if (value === 'PHF') {
190
+        this.types = 10
191
+      }
192
+      if (value === 'HFR') {
193
+        this.types = 11
194
+      }
195
+
196
+      if (value === 'HDF+HP') {
197
+        this.types = 12
198
+      }
199
+      if (value === 'CRRT') {
200
+        this.types = 13
201
+      }
202
+      if (value === '腹水回输') {
203
+        this.types = 14
204
+      }
146 205
       this.type = value
147 206
       this.typeShow = false
207
+      this.getScheduling(this.patient_id, this.limit, this.page, this.startTime, this.endTime, this.types)
148 208
     },
149 209
     getstartTime (value) {
150 210
       console.log(value)
@@ -192,11 +252,140 @@ export default {
192 252
           this.patientName = patientDetail.name
193 253
         }
194 254
       })
255
+    },
256
+    getScheduling (id) {
257
+      getScheduling(id, this.limit, this.page, this.startTime, this.endTime, this.types).then(response => {
258
+        if (response.data.state === 1) {
259
+          var scheduling = response.data.data.scheduling
260
+          for (let i = 0; i < scheduling.length; i++) {
261
+            if (scheduling[i].schedule_type === 1) {
262
+              scheduling[i].schedule_type = '上午'
263
+            }
264
+            if (scheduling[i].schedule_type === 2) {
265
+              scheduling[i].schedule_type = '中午'
266
+            }
267
+            if (scheduling[i].schedule_type === 3) {
268
+              scheduling[i].schedule_type = '下午'
269
+            }
270
+
271
+            if (scheduling[i].mode_id === 1) {
272
+              scheduling[i].mode_id = 'HD'
273
+            }
274
+            if (scheduling[i].mode_id === 2) {
275
+              scheduling[i].mode_id = 'HDF'
276
+            }
277
+            if (scheduling[i].mode_id === 3) {
278
+              scheduling[i].mode_id = 'HD+HP'
279
+            }
280
+            if (scheduling[i].mode_id === 4) {
281
+              scheduling[i].mode_id = 'HP'
282
+            }
283
+            if (scheduling[i].mode_id === 5) {
284
+              scheduling[i].mode_id = 'HF'
285
+            }
286
+            if (scheduling[i].mode_id === 6) {
287
+              scheduling[i].mode_id = 'SCUF'
288
+            }
289
+            if (scheduling[i].mode_id === 7) {
290
+              scheduling[i].mode_id = 'IUF'
291
+            }
292
+            if (scheduling[i].mode_id === 8) {
293
+              scheduling[i].mode_id = 'HFHD'
294
+            }
295
+            if (scheduling[i].mode_id === 9) {
296
+              scheduling[i].mode_id = 'HFHD+HP'
297
+            }
298
+            if (scheduling[i].mode_id === 10) {
299
+              scheduling[i].mode_id = 'PHF'
300
+            }
301
+            if (scheduling[i].mode_id === 11) {
302
+              scheduling[i].mode_id = 'HFR'
303
+            }
304
+            if (scheduling[i].mode_id === 12) {
305
+              scheduling[i].mode_id = 'HDF+HP'
306
+            }
307
+            if (scheduling[i].mode_id === 13) {
308
+              scheduling[i].mode_id = 'CRRT'
309
+            }
310
+            if (scheduling[i].mode_id === 14) {
311
+              scheduling[i].mode_id = '腹水回输'
312
+            }
313
+          }
314
+          let arr = this.scheduLing
315
+          arr.push(...scheduling)
316
+          console.log('班次', scheduling)
317
+          this.scheduLing = arr
318
+          var total = response.data.data.total
319
+          console.log('total', total)
320
+          this.total = total
321
+        }
322
+      })
323
+    },
324
+    getTime (time) {
325
+      // return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
326
+      return uParseTime(time, '{y}-{m}-{d}')
327
+    },
328
+    onLoad () {
329
+      setTimeout(() => {
330
+        for (let i = 0; i < this.limit; i++) {
331
+          this.list.push(this.list.length + 1)
332
+        }
333
+        // 加载状态结束
334
+        this.loading = false
335
+        console.log('长度', this.scheduLing.length)
336
+        if (this.scheduLing.length > 10) {
337
+          this.page++
338
+        }
339
+        console.log('page是什么', this.page)
340
+        this.getScheduling(
341
+          this.patient_id,
342
+          this.startTime,
343
+          this.endTimes,
344
+          this.limit,
345
+          this.page,
346
+          this.types
347
+        )
348
+        // 数据全部加载完成
349
+        if (this.list.length >= this.total) {
350
+          this.finished = true
351
+        }
352
+      }, 1000)
353
+    },
354
+    toEditSchduling (id) {
355
+      var patientid = this.$route.query.patientid
356
+      this.$router.push('/editScheduling?id=' + id + '&patientid=' + patientid + '&active=' + this.active)
357
+    },
358
+    toDelete (id, index) {
359
+      this.id = id
360
+      this.index = index
361
+      this.newShow = true
362
+    },
363
+    onCancelOne (value) {
364
+      if (value.name == '删除') {
365
+        this.DeleteScheduling(this.id, this.index)
366
+      }
367
+    },
368
+    DeleteScheduling (id, index) {
369
+      Dialog.confirm({
370
+        title: '删除提示!',
371
+        message: '确认删除该条信息吗?,删除后将无法恢复!'
372
+      }).then(() => {
373
+        DeleteScheduling(id).then(response => {
374
+          if (response.data.state === 1) {
375
+            var msg = response.data.data.msg
376
+            console.log('msg', msg)
377
+            this.scheduLing.splice(index, 1)
378
+            this.newShow = false
379
+          }
380
+        })
381
+      })
195 382
     }
196 383
   },
197 384
   created () {
198 385
     var patientid = this.$route.query.patientid
199 386
     this.getPatientDetail(patientid)
387
+    this.getScheduling(patientid)
388
+    this.patient_id = patientid
200 389
   }
201 390
 }
202 391
 </script>

+ 41 - 17
src/pages/doctorAdvice/index.vue Dosyayı Görüntüle

@@ -18,16 +18,22 @@
18 18
         <doctor-management v-if="active == 0"></doctor-management>
19 19
         <long-dialysis v-if="active == 1"></long-dialysis>
20 20
         <dialysis-record v-if="active == 2"></dialysis-record>
21
-        <dry-weight v-if="active == 3"></dry-weight>
21
+        <dry-weight v-if="active == 3" :active="active"></dry-weight>
22 22
         <inspection v-if="active == 4"></inspection>
23
-        <course-management v-if="active == 5"></course-management>
24
-        <rescue-record v-if="active == 6"></rescue-record>
25
-        <scheduling v-if="active == 7"></scheduling>
26
-        <education v-if="active == 8"></education>
27
-        <signs-record v-if="active == 9"></signs-record>
28
-        <recover-notes v-if="active == 10"></recover-notes>
29
-        <medication-plan v-if="active == 11"></medication-plan>
30
-        <device-management v-if="active == 12"></device-management>
23
+        <course-management
24
+          v-if="active == 5"
25
+          :active="active"
26
+        ></course-management>
27
+        <rescue-record v-if="active == 6" :active="active"></rescue-record>
28
+        <scheduling v-if="active == 7" :active="active"></scheduling>
29
+        <education v-if="active == 8" :active="active"></education>
30
+        <signs-record v-if="active == 9" :active="active"></signs-record>
31
+        <recover-notes v-if="active == 10" :active="active"></recover-notes>
32
+        <medication-plan v-if="active == 11" :active="active"></medication-plan>
33
+        <device-management
34
+          v-if="active == 12"
35
+          :active="active"
36
+        ></device-management>
31 37
       </van-tab>
32 38
     </van-tabs>
33 39
     <van-popup v-model="show" position="top" :style="{ height: '100%' }">
@@ -38,26 +44,25 @@
38 44
         <van-icon name="cross" />
39 45
       </div>
40 46
       <van-search
47
+        class="doctorAdviceSearch"
41 48
         v-model="value"
42 49
         placeholder="请输入病人名字"
43 50
         @cancel="onCancel"
44 51
         @search="onSearch"
45 52
       />
46 53
 
47
-      <van-index-bar class="indexBar" :sticky="false" highlight-color="#fb6463">
48
-        <van-index-anchor
49
-          v-for="(item, index) in firstNameTwo"
50
-          :key="index"
51
-          :index="index"
52
-        >
53
-          <span class="indexWord">{{ index }}</span>
54
+      <van-index-bar class="indexBar" sticky highlight-color="#fb6463">
55
+        <div v-for="(item, index) in firstNameTwo" :key="index" :index="index">
56
+          <van-index-anchor :index="index">
57
+            <!-- <span class="indexWord">{{ index }}</span> -->
58
+          </van-index-anchor>
54 59
           <van-cell
55 60
             @click="chooseCity(citem)"
56 61
             v-for="(citem, cindex) in item"
57 62
             :key="cindex"
58 63
             :title="citem"
59 64
           />
60
-        </van-index-anchor>
65
+        </div>
61 66
       </van-index-bar>
62 67
     </van-popup>
63 68
 
@@ -408,6 +413,9 @@ export default {
408 413
     }
409 414
   },
410 415
   created() {
416
+    if (this.$route.query.active) {
417
+      this.active = parseInt(this.$route.query.active);
418
+    }
411 419
     var patientid = this.$route.query.patientid;
412 420
     console.log("patientid", patientid);
413 421
     this.patient_id = patientid;
@@ -481,5 +489,21 @@ export default {
481 489
     display: flex;
482 490
     align-items: center;
483 491
   }
492
+  .van-tabs__line {
493
+    background: #5b98ff;
494
+  }
495
+  .van-tabs__nav {
496
+    > div:nth-of-type(2) {
497
+      flex-basis: 28% !important;
498
+    }
499
+  }
500
+  .doctorAdviceSearch {
501
+    .van-field__body {
502
+      width: 100%;
503
+    }
504
+  }
505
+  .van-popup {
506
+    transform: none;
507
+  }
484 508
 }
485 509
 </style>

+ 2 - 1
src/pages/home/index.vue Dosyayı Görüntüle

@@ -100,7 +100,7 @@
100 100
             <div>商城</div>
101 101
           </van-tabbar-item>
102 102
         </router-link>
103
-        <router-link to="/my">
103
+        <router-link to="/newMy">
104 104
           <van-tabbar-item>
105 105
             <i class="iconfont icon-wode iconOne"></i>
106 106
             <div>我的</div>
@@ -156,6 +156,7 @@ export default {
156 156
   }
157 157
   .homeBottom {
158 158
     height: 3.125rem;
159
+    padding-bottom: env(safe-area-inset-bottom);
159 160
   }
160 161
   ::-webkit-scrollbar {
161 162
     width: 0;

+ 233 - 178
src/pages/homeIndex/index.vue Dosyayı Görüntüle

@@ -4,160 +4,185 @@
4 4
       <div class="homeTitle">
5 5
         <div class="homeTitleLeft">
6 6
           <van-dropdown-menu>
7
-            <van-dropdown-item v-model="value1" :options="option1" />
7
+            <van-dropdown-item @change="changeOrg" v-model="value1" :options="org_arr"/>
8 8
           </van-dropdown-menu>
9 9
         </div>
10 10
         <div class="homeTitleRight">
11
-          <i class="iconfont icon-sousuo search1"></i>
12
-          <van-icon class="iconOne" name="comment-o" />
13
-          <van-icon class="iconOne" name="add-o" />
11
+          <i class="iconfont icon-sousuo search1" @click="toSearch"></i>
12
+          <van-icon class="iconOne" name="comment-o"/>
13
+          <van-icon class="iconOne" name="add-o"/>
14 14
         </div>
15 15
       </div>
16 16
     </van-sticky>
17 17
     <div class="banner">
18
-      <!-- <img src="../../assets/images/homebanner.jpg" alt /> -->
19 18
       <van-swipe class="my-swipe" :autoplay="3000" indicator-color="white">
20
-        <van-swipe-item>
21
-          <img src="../../assets/images/banner_03.png" alt />
19
+        <van-swipe-item v-for="(banner, index) in this.banners" @click="jump(banner.url)" :key="index">
20
+          <img :src="banner.thumb" alt />
22 21
         </van-swipe-item>
23
-        <!-- <van-swipe-item>
24
-          <img src="../../assets/images/homebanner.jpg" alt />
25
-        </van-swipe-item>
26
-        <van-swipe-item>
27
-          <img src="../../assets/images/homebanner.jpg" alt />
28
-        </van-swipe-item>
29
-        <van-swipe-item>
30
-          <img src="../../assets/images/homebanner.jpg" alt />
31
-        </van-swipe-item>-->
32 22
       </van-swipe>
33 23
     </div>
34
-    <div class="noticeBox">
35
-      <i class="iconfont icon-public-notice notice"></i>
36
-      <!--<div class="noticeNews">-->
37
-        <!--<div>-->
38
-          <!--今日上机:-->
39
-          <!--<span>6&ensp;人</span>-->
40
-        <!--</div>-->
41
-        <!--<div>-->
42
-          <!--今日透析:-->
43
-          <!--<span>6&ensp;人</span>-->
44
-        <!--</div>-->
45
-        <!--<div>-->
46
-          <!--今日生日:-->
47
-          <!--<span>6&ensp;人</span>-->
48
-        <!--</div>-->
49
-      <!--</div>-->
50
-    </div>
24
+    <!--<div class="noticeBox">-->
25
+    <!--<i class="iconfont icon-public-notice notice"></i>-->
26
+    <!--<div class="noticeNews">-->
27
+    <!--<div>-->
28
+    <!--今日上机:-->
29
+    <!--<span>6&ensp;人</span>-->
30
+    <!--</div>-->
31
+    <!--<div>-->
32
+    <!--今日透析:-->
33
+    <!--<span>6&ensp;人</span>-->
34
+    <!--</div>-->
35
+    <!--<div>-->
36
+    <!--今日生日:-->
37
+    <!--<span>6&ensp;人</span>-->
38
+    <!--</div>-->
39
+    <!--</div>-->
40
+    <!--</div>-->
51 41
     <div class="background1"></div>
52
-    <div class="management">
42
+    <div class="management" v-if="this.$store.getters.user.admin.id ==  this.$store.getters.user.org.creator">
53 43
       <div class="managementTitle">
54 44
         <div class="managementName">
55 45
           管理控制台
56 46
           <span>(仅管理员可见)</span>
57 47
         </div>
58
-        <div class="setting"><van-icon name="setting-o" />管理</div>
48
+        <div class="setting">
49
+          <van-icon name="setting-o"/>
50
+          管理
51
+        </div>
59 52
       </div>
60 53
       <div class="managementBox">
61 54
         <div class="managementOne">
62
-          <img src="../../assets/images/M1.png" alt />员工管理
55
+          <img src="../../assets/images/M1.png" alt/>员工管理
63 56
         </div>
64 57
         <div class="managementOne">
65
-          <img src="../../assets/images/M2.png" alt />权限管理
66
-        </div>
67
-        <div class="managementOne">
68
-          <img src="../../assets/images/M3.png" alt />应用管理
58
+          <img src="../../assets/images/M2.png" alt/>权限管理
69 59
         </div>
60
+        <!--<div class="managementOne">-->
61
+          <!--<img src="../../assets/images/M3.png" alt/>应用管理-->
62
+        <!--</div>-->
70 63
         <div class="managementOne">
71
-          <img src="../../assets/images/M4.png" alt />机构管理
64
+          <img src="../../assets/images/M4.png" alt/>机构管理
72 65
         </div>
73 66
       </div>
74 67
     </div>
75 68
     <div class="application">
76 69
       <div class="applicationTitle">
77 70
         <div class="applicationName">应用工作台</div>
78
-        <div class="applicationService">+ 更多应用</div>
71
+        <!--<div class="applicationService">+ 更多应用</div>-->
79 72
       </div>
80 73
       <div class="applicationBox">
81
-        <div class="applicationOne" @click="toPatients">
82
-          <img src="../../assets/images/S1.png" alt />患者中心
83
-        </div>
84
-        <div class="applicationOne">
85
-          <img src="../../assets/images/S2.png" alt />排班管理
86
-        </div>
87
-        <div class="applicationOne">
88
-          <img src="../../assets/images/S3.png" alt />签到称重
89
-        </div>
90
-        <div class="applicationOne">
91
-          <img src="../../assets/images/S4.png" alt />透析记录
92
-        </div>
93
-        <div class="applicationOne">
94
-          <img src="../../assets/images/S5.png" alt />质控管理
95
-        </div>
96
-        <div class="applicationOne">
97
-          <img src="../../assets/images/S6.png" alt />院感管理
98
-        </div>
99
-        <div class="applicationOne">
100
-          <img src="../../assets/images/S7.png" alt />血管通路
101
-        </div>
102
-        <div class="applicationOne">
103
-          <img src="../../assets/images/S8.png" alt />慢病管理
104
-        </div>
105
-        <div class="applicationOne">
106
-          <img src="../../assets/images/S9.png" alt />SCRM
107
-        </div>
108
-        <div class="applicationOne">
109
-          <img src="../../assets/images/S10.png" alt />分销商城
110
-        </div>
111
-        <div class="applicationOne">
112
-          <img src="../../assets/images/S11.png" alt />设备管理
113
-        </div>
114
-        <div class="applicationOne">
115
-          <img src="../../assets/images/S12.png" alt />库存管理
116
-        </div>
117
-        <div class="applicationOne">
118
-          <img src="../../assets/images/S13.png" alt />客服中心
119
-        </div>
120
-        <div class="applicationOne">
121
-          <img src="../../assets/images/S16.png" alt />质控上报
122
-        </div>
123
-        <div class="applicationOne">
124
-          <img src="../../assets/images/S17.png" alt />经营中心
74
+        <div v-for="(item, index) in this.apps" :key="index" class="applicationOne" @click="toPatients">
75
+          <img :src="item.url" alt/>{{item.name}}
125 76
         </div>
77
+
126 78
       </div>
127 79
     </div>
128 80
   </div>
129 81
 </template>
130 82
 <script>
131
-// import "../libs/rem.js";
132
-import "../../libs/rem.js";
133
-import "../../styles/newStyle.scss";
134
-import { setRem } from "@/libs/functionRem";
135
-export default {
136
-  data() {
137
-    return {
138
-      value1: 0,
139
-      option1: [
140
-        { text: "新款商品", value: 0 },
141
-        { text: "全部商品全部商品全部商品全部商品全部商品全部商品", value: 1 },
142
-        { text: "活动商品", value: 2 }
143
-      ]
144
-    };
145
-  },
146
-  methods: {
147
-    toPatients() {
148
-      this.$router.push({ path: "/patients" });
149
-    }
150
-  },
151
-  created() {
152
-    Toast("请同意隐私服务协议");
83
+  // import "../libs/rem.js";
84
+  import { Toast } from "vant";
153 85
 
154
-    setRem();
155
-  }
156
-};
86
+  import {GetHomeData,ChangeOrg} from "@/api/home";
87
+  import "../../libs/rem.js";
88
+  import "../../styles/newStyle.scss";
89
+  import {setRem} from "@/libs/functionRem";
90
+
91
+  export default {
92
+    data() {
93
+      return {
94
+        value1: 0,
95
+        isCreateOrg: false,
96
+        org_arr: [],
97
+        banners: [],
98
+        apps: [],
99
+        option1: [
100
+          {text: "新款商品", value: 0},
101
+          {text: "全部商品全部商品全部商品全部商品全部商品全部商品", value: 1},
102
+          {text: "活动商品", value: 2}
103
+        ]
104
+      };
105
+    },
106
+    methods: {
107
+      changeOrg(value){
108
+        Toast.loading({forbidClick: true, duration: 0})
109
+        let params={
110
+          org_id : value
111
+
112
+        }
113
+        ChangeOrg(params).then(response => {
114
+          if (response.data.state === 1) {
115
+            var user = response.data.data.user;
116
+            var admin = response.data.data.admin;
117
+            var org = response.data.data.org;
118
+            var subscibe = response.data.data.subscibe;
119
+            var config_list = response.data.data.config_list;
120
+            var template_info = response.data.data.template_info;
121
+            var filed_list = response.data.data.filed_list;
122
+            this.$store.dispatch("InitUserInfo", {
123
+              admin: admin,
124
+              user: user,
125
+              org: org,
126
+              subscibe: subscibe,
127
+              template_info: template_info,
128
+              filed_list: filed_list
129
+            });
130
+            this.$store.dispatch("SetConfigList", config_list);
131
+            this.GetHomeData()
132
+            Toast.success('切换机构成功')
133
+          } else {
134
+            Toast.fail(response.data.msg)
135
+          }
136
+        });
137
+
138
+
139
+      },
140
+      jump(url){
141
+        window.location.href = url
142
+      },
143
+      toPatients() {
144
+        this.$router.push({path: "/patients"});
145
+      },
146
+      toSearch() {
147
+        this.$router.push({path: "/search"});
148
+      }, GetHomeData() {
149
+        GetHomeData().then(response => {
150
+          if (response.data.state === 1) {
151
+            this.isCreateOrg = response.data.data.isCreateOrg
152
+            if(this.isCreateOrg){
153
+              this.orgs = response.data.data.orgs
154
+              this.apps = response.data.data.apps
155
+              this.banners = response.data.data.banners
156
+              this.org_arr = []
157
+              for (let i = 0; i < this.orgs.length; i++){
158
+                let obj= {
159
+                  text: this.orgs[i].org_name,
160
+                  value: this.orgs[i].id
161
+
162
+                }
163
+                this.org_arr.push(obj)
164
+              }
165
+              this.value1 = this.$store.getters.user.org.id
166
+            }
167
+          } else {
168
+            this.$toast({
169
+              message: response.data.msg
170
+            });
171
+          }
172
+        });
173
+
174
+      },
175
+    },
176
+    created() {
177
+      this.GetHomeData()
178
+      setRem();
179
+    }
180
+  };
157 181
 </script>
158 182
 
159 183
 <style lang="scss" scoped>
160
-.page_homeIndex {
184
+  .page_homeIndex {
185
+
161 186
   .homeTitle {
162 187
     height: 3.125rem;
163 188
     padding: 0 1.125rem;
@@ -165,9 +190,11 @@ export default {
165 190
     justify-content: space-between;
166 191
     background: #fff;
167 192
   }
193
+
168 194
   .homeTitleLeft {
169 195
     width: 60%;
170 196
   }
197
+
171 198
   .homeTitleRight {
172 199
     width: 30%;
173 200
     display: flex;
@@ -175,15 +202,19 @@ export default {
175 202
     align-items: center;
176 203
     color: #232323;
177 204
   }
205
+
178 206
   /deep/ .van-dropdown-menu__item {
179 207
     justify-content: left;
180 208
   }
209
+
181 210
   .van-hairline--top-bottom {
182 211
     position: static;
183 212
   }
213
+
184 214
   .iconOne {
185 215
     font-size: 1.5rem;
186 216
   }
217
+
187 218
   .iconfont {
188 219
     clear: both;
189 220
   }
@@ -192,12 +223,15 @@ export default {
192 223
     font-size: 1.5rem;
193 224
     color: #232323;
194 225
   }
226
+
195 227
   .banner {
196
-    padding: 0 1.125rem;
197
-    img {
198
-      height: 6.75rem;
199
-      width: 100%;
200
-    }
228
+    padding: 1px 1.125rem 0;
229
+
230
+  img {
231
+    height: 6.75rem;
232
+    width: 100%;
233
+  }
234
+
201 235
   }
202 236
   .noticeBox {
203 237
     padding: 0 1.125rem;
@@ -205,106 +239,127 @@ export default {
205 239
     display: flex;
206 240
     align-items: center;
207 241
     color: #cccccc;
208
-    .notice {
209
-      font-size: 1.25rem;
210
-      margin-right: 0.375rem;
211
-    }
212
-    .noticeNews {
213
-      width: 90%;
214
-      display: flex;
215
-      justify-content: space-between;
216
-      color: #666666;
217
-      font-size: 0.8125rem;
218
-    }
242
+
243
+  .notice {
244
+    font-size: 1.25rem;
245
+    margin-right: 0.375rem;
246
+  }
247
+
248
+  .noticeNews {
249
+    width: 90%;
250
+    display: flex;
251
+    justify-content: space-between;
252
+    color: #666666;
253
+    font-size: 0.8125rem;
254
+  }
255
+
219 256
   }
220 257
   .background1 {
221 258
     background: #f6f6f6;
222 259
     width: 100%;
223 260
     height: 0.8125rem;
224 261
   }
262
+
225 263
   .management {
226 264
     padding: 1.25rem 1.125rem 0;
227 265
   }
266
+
228 267
   .managementTitle {
229 268
     display: flex;
230 269
     justify-content: space-between;
231 270
     align-items: center;
232 271
   }
272
+
233 273
   .managementName {
234 274
     font-weight: bold;
235 275
     font-size: 1rem;
236 276
     color: #000;
237
-    span {
238
-      font-size: 0.8125rem;
239
-      color: #989898;
240
-      font-weight: 400;
241
-    }
277
+
278
+  span {
279
+    font-size: 0.8125rem;
280
+    color: #989898;
281
+    font-weight: 400;
282
+  }
283
+
242 284
   }
243 285
   .setting {
244 286
     display: flex;
245 287
     align-items: center;
246 288
     color: #989898;
247 289
     font-size: 0.8125rem;
248
-    .van-icon-setting-o {
249
-      margin-right: 0.25rem;
250
-    }
290
+
291
+  .van-icon-setting-o {
292
+    margin-right: 0.25rem;
293
+  }
294
+
251 295
   }
252 296
   .managementBox {
253 297
     display: flex;
254 298
     justify-content: space-between;
255
-    .managementOne {
256
-      display: flex;
257
-      align-items: center;
258
-      flex-direction: column;
259
-      font-size: 0.8125rem;
260
-      color: #666666;
261
-      img {
262
-        width: 1.375rem;
263
-        height: 1.375rem;
264
-        margin: 1rem 0 0.2rem;
265
-      }
266
-    }
299
+
300
+  .managementOne {
301
+    display: flex;
302
+    align-items: center;
303
+    flex-direction: column;
304
+    font-size: 0.8125rem;
305
+    color: #666666;
306
+
307
+  img {
308
+    width: 1.375rem;
309
+    height: 1.375rem;
310
+    margin: 1rem 0 0.2rem;
311
+  }
312
+
313
+  }
267 314
   }
268 315
   .application {
269
-    .applicationTitle {
270
-      display: flex;
271
-      justify-content: space-between;
272
-      align-items: center;
273
-      padding: 1.25rem 1.125rem 0.625rem;
274
-    }
275
-    .applicationName {
276
-      font-weight: bold;
277
-      font-size: 1rem;
278
-      color: #000;
279
-    }
280
-    .applicationService {
281
-      font-size: 0.8125rem;
282
-      color: #666666;
283
-    }
316
+
317
+  .applicationTitle {
318
+    display: flex;
319
+    justify-content: space-between;
320
+    align-items: center;
321
+    padding: 1.25rem 1.125rem 0.625rem;
322
+  }
323
+
324
+  .applicationName {
325
+    font-weight: bold;
326
+    font-size: 1rem;
327
+    color: #000;
328
+  }
329
+
330
+  .applicationService {
331
+    font-size: 0.8125rem;
332
+    color: #666666;
333
+  }
334
+
284 335
   }
285 336
   .applicationBox {
286 337
     display: flex;
287 338
     flex-wrap: wrap;
288
-    .applicationOne {
289
-      width: 25%;
290
-      display: flex;
291
-      align-items: center;
292
-      flex-direction: column;
293
-      padding: 0.625rem 0;
294
-      font-size: 0.8125rem;
295
-      color: #666666;
296
-      img {
297
-        width: 3.25rem;
298
-        height: 3.25rem;
299
-        margin-bottom: 0.375rem;
300
-      }
301
-    }
339
+
340
+  .applicationOne {
341
+    width: 25%;
342
+    display: flex;
343
+    align-items: center;
344
+    flex-direction: column;
345
+    padding: 0.625rem 0;
346
+    font-size: 0.8125rem;
347
+    color: #666666;
348
+
349
+  img {
350
+    width: 3.25rem;
351
+    height: 3.25rem;
352
+    margin-bottom: 0.375rem;
353
+  }
354
+
355
+  }
302 356
   }
303 357
   .van-popup {
304 358
     border-radius: 0 !important;
305 359
     top: 0 !important;
306 360
     transform: translate3d(0, 0, 0) !important;
307 361
   }
308
-}
362
+
363
+  }
309 364
 </style>
310 365
 <style lang="scss"></style>

+ 4 - 4
src/pages/main/dialog/subMenu/MsgTip.vue Dosyayı Görüntüle

@@ -63,7 +63,7 @@
63 63
         <div class="content" style="margin-top:5px;margin-left:0;">
64 64
           <span class="text" style="text-align:left;display:block;height:0.4rem;" id="txms">透后称重:<span style="color:#ec6618;display:inline-block;text-align:center;margin:0 2px;">{{getAfterWeight(record)}}</span>kg=
65 65
           透后总重:<span style="color:#ec6618;display:inline-block;text-align:center;center;margin:0 2px;">{{record.weight_after}}</span>kg-
66
-          衣服重:<span style="color:#ec6618;display:inline-block;text-align:center;center;margin:0 2px;">{{predialysis.additional_weight}}</span>kg
66
+          衣服重:<span style="color:#ec6618;display:inline-block;text-align:center;center;margin:0 2px;">{{record.additional_weight}}</span>kg
67 67
            </span>
68 68
         </div>
69 69
         <br>
@@ -85,7 +85,7 @@
85 85
         <div class="content" style="margin-top:5px;margin-left:0;">
86 86
           <span class="text" style="text-align:left;display:block;height:0.4rem;" id="txms">上次透后称重:<span style="color:#ec6618;display:inline-block;text-align:center;margin:0 2px;">{{getLastAfterWeight(last_record)}}</span>kg=
87 87
           上次透后总重:<span style="color:#ec6618;display:inline-block;text-align:center;center;margin:0 2px;">{{last_record.weight_after}}</span>kg-
88
-          上次衣服重:<span style="color:#ec6618;display:inline-block;text-align:center;center;margin:0 2px;">{{last_predialysis.additional_weight}}</span>kg
88
+          上次衣服重:<span style="color:#ec6618;display:inline-block;text-align:center;center;margin:0 2px;">{{last_record.additional_weight}}</span>kg
89 89
            </span>
90 90
         </div>
91 91
         <br>
@@ -197,8 +197,8 @@ export default {
197 197
       if (last_record.id > 0) {
198 198
         if (last_record.weight_after > 0) {
199 199
           let additional_weight = 0
200
-          if (this.last_predialysis.additional_weight != undefined) {
201
-            additional_weight = this.last_predialysis.additional_weight
200
+          if (this.last_record.additional_weight != undefined) {
201
+            additional_weight = this.last_record.additional_weight
202 202
           }
203 203
           return parseFloat(last_record.weight_after - additional_weight).toFixed(1)
204 204
         } else {

+ 268 - 0
src/pages/my/index.vue Dosyayı Görüntüle

@@ -0,0 +1,268 @@
1
+<template>
2
+  <div class="page_my">
3
+    <div class="myTop">
4
+      <img src="../../assets/images/myBanner.png" alt />
5
+      <div class="avatar">
6
+        <img src="../../assets/images/m01.png" alt />
7
+      </div>
8
+      <div class="userMain">
9
+        <div class="userBox">
10
+          <div class="userTxt">
11
+            <p class="userName">小可耐</p>
12
+            <p class="signature">一个无法用言语表达的好人</p>
13
+          </div>
14
+          <van-icon name="arrow" />
15
+        </div>
16
+      </div>
17
+      <div class="invitebox">
18
+        <img src="../../assets/images/invite.png" alt />
19
+      </div>
20
+      <div class="myInfo">
21
+        <div class="myInfoLeft">
22
+          <img src="../../assets/images/myIcon1.png" alt />
23
+          <p>我的信息</p>
24
+        </div>
25
+        <van-icon class="arrow" name="arrow" />
26
+      </div>
27
+    </div>
28
+    <div class="myBox">
29
+      <div class="myBoxOne">
30
+        <div class="myInfoLeft">
31
+          <img src="../../assets/images/myIcon2.png" alt />
32
+          <p>我的医院/组织/团队</p>
33
+        </div>
34
+        <van-icon class="arrow" name="arrow" />
35
+      </div>
36
+      <div class="myBoxTwo">
37
+        <div class="myInfoLeft">
38
+          <img src="../../assets/images/m01.png" alt />
39
+          <p>我的医院/组织/团队</p>
40
+        </div>
41
+        <div class="myInfoRight">
42
+          <van-icon class="arrow" name="arrow" />
43
+        </div>
44
+      </div>
45
+      <div class="myBoxTwo noBorder">
46
+        <div class="myInfoLeft">
47
+          <img src="../../assets/images/m01.png" alt />
48
+          <p>我的医院/组织/团队</p>
49
+        </div>
50
+        <div class="myInfoRight">
51
+          <div class="myInfoRightBtn">管理</div>
52
+          <van-icon class="arrow" name="arrow" />
53
+        </div>
54
+      </div>
55
+    </div>
56
+    <div class="myBox">
57
+      <div class="myBoxOne">
58
+        <div class="myInfoLeft">
59
+          <img src="../../assets/images/myIcon3.png" alt />
60
+          <p>创建医院/组织/团队</p>
61
+        </div>
62
+        <van-icon class="arrow" name="arrow" />
63
+      </div>
64
+      <div class="myBoxOne">
65
+        <div class="myInfoLeft">
66
+          <img src="../../assets/images/myIcon4.png" alt />
67
+          <p>修改密码</p>
68
+        </div>
69
+        <van-icon class="arrow" name="arrow" />
70
+      </div>
71
+    </div>
72
+    <div class="myBox">
73
+      <div class="myBoxOne">
74
+        <div class="myInfoLeft">
75
+          <img src="../../assets/images/myIcon5.png" alt />
76
+          <p>常见问题</p>
77
+        </div>
78
+        <van-icon class="arrow" name="arrow" />
79
+      </div>
80
+      <div class="myBoxOne">
81
+        <div class="myInfoLeft">
82
+          <img src="../../assets/images/myIcon6.png" alt />
83
+          <p>意见反馈</p>
84
+        </div>
85
+        <van-icon class="arrow" name="arrow" />
86
+      </div>
87
+      <div class="myBoxOne">
88
+        <div class="myInfoLeft">
89
+          <img src="../../assets/images/myIcon7.png" alt />
90
+          <p>关于我们</p>
91
+        </div>
92
+        <van-icon class="arrow" name="arrow" />
93
+      </div>
94
+    </div>
95
+    <div class="myBox">
96
+      <div class="myBoxOne">
97
+        <div class="myInfoLeft">
98
+          <img src="../../assets/images/myIcon8.png" alt />
99
+          <p>退出登录</p>
100
+        </div>
101
+        <van-icon class="arrow" name="arrow" />
102
+      </div>
103
+    </div>
104
+  </div>
105
+</template>
106
+
107
+<style lang="scss" scoped>
108
+.page_my {
109
+  height: 100%;
110
+  overflow-x: hidden;
111
+  overflow-y: auto;
112
+  background: #fafafa;
113
+  .myTop {
114
+    position: relative;
115
+    height: 16.875rem;
116
+    img {
117
+      width: 100%;
118
+      height: 11.25rem;
119
+    }
120
+    .avatar {
121
+      position: absolute;
122
+      left: 1rem;
123
+      top: 2.5rem;
124
+      width: 4.375rem;
125
+      height: 4.375rem;
126
+      background: rgba(50, 50, 50, 1);
127
+      border: 2px solid rgba(255, 255, 255, 1);
128
+      border-radius: 50%;
129
+      img {
130
+        border-radius: 50%;
131
+        width: 100%;
132
+        height: 100%;
133
+      }
134
+    }
135
+    .userMain {
136
+      position: absolute;
137
+      left: 6.25rem;
138
+      top: 3.375rem;
139
+      width: 70%;
140
+      color: #fff;
141
+    }
142
+    .userBox {
143
+      display: flex;
144
+      justify-content: space-between;
145
+      align-items: center;
146
+    }
147
+    .userName {
148
+      font-size: 1.25rem;
149
+      margin-bottom: 0.625rem;
150
+    }
151
+    .signature {
152
+      font-size: 0.75rem;
153
+    }
154
+    .invitebox {
155
+      width: 21.5625rem;
156
+      height: 4.75rem;
157
+      position: absolute;
158
+      top: 8.75rem;
159
+      left: 0.9375rem;
160
+      box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.16);
161
+      img {
162
+        height: 100%;
163
+        width: 100%;
164
+      }
165
+    }
166
+    .myInfo {
167
+      width: 100%;
168
+      height: 3.125rem;
169
+      display: flex;
170
+      align-items: center;
171
+      justify-content: space-between;
172
+      margin-top: 2.25rem;
173
+      padding: 0 0.875rem;
174
+      background: #fff;
175
+      .myInfoLeft {
176
+        display: flex;
177
+        align-items: center;
178
+        height: 100%;
179
+        img {
180
+          width: 1.125rem;
181
+          height: 1.125rem;
182
+          margin-right: 0.5rem;
183
+        }
184
+        p {
185
+          margin-top: 0.125rem;
186
+        }
187
+      }
188
+      .arrow {
189
+        color: #9f9f9f;
190
+      }
191
+    }
192
+  }
193
+  .myBox {
194
+    margin: 0.8125rem 0;
195
+    background: #fff;
196
+    > div:last-child {
197
+      border: none;
198
+    }
199
+    .myBoxOne {
200
+      width: 100%;
201
+      height: 3.125rem;
202
+      display: flex;
203
+      align-items: center;
204
+      justify-content: space-between;
205
+      padding: 0 0.875rem;
206
+      border-bottom: 1px solid #e5e5e5;
207
+      .myInfoLeft {
208
+        display: flex;
209
+        align-items: center;
210
+        height: 100%;
211
+        img {
212
+          width: 1.125rem;
213
+          height: 1.125rem;
214
+          margin-right: 0.5rem;
215
+        }
216
+        // p {
217
+        //   margin-top: 0.125rem;
218
+        // }
219
+      }
220
+      .arrow {
221
+        color: #9f9f9f;
222
+      }
223
+    }
224
+    .myBoxTwo {
225
+      height: 3.125rem;
226
+      display: flex;
227
+      align-items: center;
228
+      justify-content: space-between;
229
+      padding-right: 0.875rem;
230
+      background: #fff;
231
+      margin-left: 2.5rem;
232
+      border-bottom: 1px solid #e5e5e5;
233
+      .myInfoLeft {
234
+        display: flex;
235
+        align-items: center;
236
+        height: 100%;
237
+        img {
238
+          width: 1.875rem;
239
+          height: 1.875rem;
240
+          margin-right: 0.5rem;
241
+        }
242
+        // p {
243
+        //   margin-top: 0.125rem;
244
+        // }
245
+      }
246
+      .myInfoRight {
247
+        display: flex;
248
+        align-items: center;
249
+        .myInfoRightBtn {
250
+          width: 3.625rem;
251
+          height: 1.875rem;
252
+          background: rgba(255, 255, 255, 1);
253
+          border: 1px solid rgba(51, 138, 251, 1);
254
+          border-radius: 0.3125rem;
255
+          text-align: center;
256
+          line-height: 1.875rem;
257
+          color: #338afb;
258
+          font-size: 0.9375rem;
259
+          margin-right: 0.625rem;
260
+        }
261
+      }
262
+      .arrow {
263
+        color: #9f9f9f;
264
+      }
265
+    }
266
+  }
267
+}
268
+</style>

+ 24 - 22
src/pages/patientManagement/components/Blood.vue Dosyayı Görüntüle

@@ -63,8 +63,14 @@
63 63
 </template>
64 64
 
65 65
 <script>
66
-import { getAllBloodDialysisPatient } from "@/api/patient/patient";
66
+import {
67
+  getAllBloodDialysisPatient,
68
+  SearchAllBlood
69
+} from "@/api/patient/patient";
67 70
 export default {
71
+  props: {
72
+    searchValue: String
73
+  },
68 74
   data() {
69 75
     return {
70 76
       value: "",
@@ -146,9 +152,9 @@ export default {
146 152
         console.log("长度", this.patients.length);
147 153
         if (this.patients.length >= 10) {
148 154
           this.page++;
155
+          this.getAllBloodDialysisPatient(this.page, this.limit);
149 156
         }
150 157
         console.log("页数", this.page);
151
-        this.getAllBloodDialysisPatient(this.page, this.limit);
152 158
         // 数据全部加载完成
153 159
         if (this.list.length >= this.total) {
154 160
           this.finished = true;
@@ -157,30 +163,25 @@ export default {
157 163
     },
158 164
     toPatientDetail(id) {
159 165
       this.$router.push("/patientdetail?patientid=" + id);
166
+    },
167
+    SearchAllBlood(val) {
168
+      SearchAllBlood(val).then(response => {
169
+        if (response.data.state === 1) {
170
+          var bloodpatient = response.data.data.bloodPatient;
171
+          console.log("血透病人", bloodpatient);
172
+        }
173
+      });
160 174
     }
161 175
   },
162 176
   created() {
163
-    const baseSize = 32;
164
-    // 设置 rem 函数
165
-    function setRem() {
166
-      const scale = document.documentElement.clientWidth / 750;
167
-      document.documentElement.style.fontSize =
168
-        baseSize * Math.min(scale, 2) + "px";
169
-      //   // 320 默认大小16px; 320px = 20rem ;每个元素px基础上/16
170
-      //   let htmlWidth =
171
-      //     document.documentElement.clientWidth || document.body.clientWidth;
172
-      //   //得到html的Dom元素
173
-      //   let htmlDom = document.getElementsByTagName("html")[0];
174
-      //   //设置根元素字体大小
175
-      //   htmlDom.style.fontSize = htmlWidth / 23.4375 + "px";
176
-    }
177
-    // 初始化
178
-    setRem();
179
-    // 改变窗口大小时重新设置 rem
180
-    window.onresize = function() {
181
-      setRem();
182
-    };
177
+    console.log(this.searchValue);
183 178
     this.getAllBloodDialysisPatient();
179
+  },
180
+  watch: {
181
+    searchValue(newVal) {
182
+      console.log("监听", newVal);
183
+      this.SearchAllBlood(newVal);
184
+    }
184 185
   }
185 186
 };
186 187
 </script>
@@ -189,6 +190,7 @@ export default {
189 190
 .page_patientManagement {
190 191
   overflow-y: auto;
191 192
   height: 100%;
193
+  background: #fff;
192 194
   .patientManagementTitle {
193 195
     background: #fff;
194 196
     padding: 0 1.125rem;

+ 20 - 21
src/pages/patientManagement/components/Member.vue Dosyayı Görüntüle

@@ -20,8 +20,11 @@
20 20
 </template>
21 21
 
22 22
 <script>
23
-import { getAllMemberPatient } from '@/api/patient/patient'
23
+import { getAllMemberPatient, getMemberSearchPatient } from '@/api/patient/patient'
24 24
 export default {
25
+  props: {
26
+    searchValue: String
27
+  },
25 28
   data () {
26 29
     return {
27 30
       loading: false,
@@ -67,30 +70,25 @@ export default {
67 70
     },
68 71
     toPatientDetail (id) {
69 72
       this.$router.push('/patientdetail?patientid=' + id)
73
+    },
74
+    getMemberSearchPatient (value) {
75
+      getMemberSearchPatient(value).then(response => {
76
+        if (response.data.state === 1) {
77
+          var memberpatient = response.data.data.memberPatient
78
+          console.log('会员病人', memberpatient)
79
+        }
80
+      })
70 81
     }
71 82
   },
72 83
   created () {
73
-    const baseSize = 32
74
-    // 设置 rem 函数
75
-    function setRem () {
76
-      const scale = document.documentElement.clientWidth / 750
77
-      document.documentElement.style.fontSize =
78
-        baseSize * Math.min(scale, 2) + 'px'
79
-      //   // 320 默认大小16px; 320px = 20rem ;每个元素px基础上/16
80
-      //   let htmlWidth =
81
-      //     document.documentElement.clientWidth || document.body.clientWidth;
82
-      //   //得到html的Dom元素
83
-      //   let htmlDom = document.getElementsByTagName("html")[0];
84
-      //   //设置根元素字体大小
85
-      //   htmlDom.style.fontSize = htmlWidth / 23.4375 + "px";
86
-    }
87
-    // 初始化
88
-    setRem()
89
-    // 改变窗口大小时重新设置 rem
90
-    window.onresize = function () {
91
-      setRem()
92
-    }
84
+    console.log(this.searchValue)
93 85
     this.getAllMemberPatient()
86
+  },
87
+  watch: {
88
+    searchValue (newVal) {
89
+      console.log(newVal)
90
+      this.getMemberSearchPatient(newVal)
91
+    }
94 92
   }
95 93
 }
96 94
 </script>
@@ -99,6 +97,7 @@ export default {
99 97
 .page_patientManagement {
100 98
   overflow-y: auto;
101 99
   height: 100%;
100
+  background: #fff;
102 101
   .patientManagementTitle {
103 102
     background: #fff;
104 103
     padding: 0 1.125rem;

+ 20 - 21
src/pages/patientManagement/components/Slow.vue Dosyayı Görüntüle

@@ -20,9 +20,13 @@
20 20
 
21 21
 <script>
22 22
 import {
23
-  getAllSlowPatient
23
+  getAllSlowPatient,
24
+  getSlowSearchPatient
24 25
 } from '@/api/patient/patient'
25 26
 export default {
27
+  props: {
28
+    searchValue: String
29
+  },
26 30
   data () {
27 31
     return {
28 32
       loading: false,
@@ -68,30 +72,24 @@ export default {
68 72
     },
69 73
     toPatientDetail (id) {
70 74
       this.$router.push('/patientdetail?patientid=' + id)
75
+    },
76
+    getSlowSearchPatient (val) {
77
+      getSlowSearchPatient(val).then(response => {
78
+        if (response.data.state === 1) {
79
+          var slowpatient = response.data.data.slowPatient
80
+          console.log('慢病病人', slowpatient)
81
+        }
82
+      })
71 83
     }
72 84
   },
73 85
   created () {
74
-    const baseSize = 32
75
-    // 设置 rem 函数
76
-    function setRem () {
77
-      const scale = document.documentElement.clientWidth / 750
78
-      document.documentElement.style.fontSize =
79
-        baseSize * Math.min(scale, 2) + 'px'
80
-      //   // 320 默认大小16px; 320px = 20rem ;每个元素px基础上/16
81
-      //   let htmlWidth =
82
-      //     document.documentElement.clientWidth || document.body.clientWidth;
83
-      //   //得到html的Dom元素
84
-      //   let htmlDom = document.getElementsByTagName("html")[0];
85
-      //   //设置根元素字体大小
86
-      //   htmlDom.style.fontSize = htmlWidth / 23.4375 + "px";
87
-    }
88
-    // 初始化
89
-    setRem()
90
-    // 改变窗口大小时重新设置 rem
91
-    window.onresize = function () {
92
-      setRem()
93
-    }
94 86
     this.getAllSlowPatient()
87
+  },
88
+  watch: {
89
+    searchValue (newVal) {
90
+      console.log(newVal)
91
+      this.getSlowSearchPatient(newVal)
92
+    }
95 93
   }
96 94
 }
97 95
 </script>
@@ -100,6 +98,7 @@ export default {
100 98
 .page_patientManagement {
101 99
   overflow-y: auto;
102 100
   height: 100%;
101
+  background: #fff;
103 102
   .patientManagementTitle {
104 103
     background: #fff;
105 104
     padding: 0 1.125rem;

+ 0 - 191
src/pages/patientManagement/index.vue Dosyayı Görüntüle

@@ -1,191 +0,0 @@
1
-<template>
2
-  <div class="page_patientManagement">
3
-    <van-sticky>
4
-      <div class="patientManagementTitle">
5
-        <i class="iconfont icon-zuojiantou jiantou" @click="toReturn"></i>
6
-        <span class="titleName">患者中心</span>
7
-        <div class="iconBox" @click="addPatient">
8
-          <i class="iconfont icon-sousuo iconOne"></i>
9
-          <van-icon class="iconOne add" name="add-o" />
10
-        </div>
11
-      </div>
12
-      <div class="chooseBox">
13
-        <van-dropdown-menu>
14
-          <van-dropdown-item v-model="value1" :options="option1" />
15
-          <van-dropdown-item v-model="value2" :options="option2" />
16
-          <van-dropdown-item v-model="value3" :options="option3" />
17
-        </van-dropdown-menu>
18
-      </div>
19
-    </van-sticky>
20
-    <div class="patientBox">
21
-      <van-list
22
-        v-model="loading"
23
-        :finished="finished"
24
-        finished-text="没有更多了"
25
-        @load="onLoad"
26
-      >
27
-        <div
28
-          class="patientOne"
29
-          v-for="item in patients"
30
-          :key="item.id"
31
-          @click="toPatientDetail(item.id)"
32
-        >
33
-          <img :src="item.avatar" alt />
34
-          <p>{{ item.name }}</p>
35
-        </div>
36
-      </van-list>
37
-    </div>
38
-  </div>
39
-</template>
40
-
41
-<script>
42
-import "../../styles/resetStyle.scss";
43
-import { getBloodDialysisPatient } from "@/api/patient/patient";
44
-import { setRem, setHeight } from "@/libs/functionRem";
45
-export default {
46
-  data() {
47
-    return {
48
-      searchVal: "",
49
-      active: 0,
50
-      list: [],
51
-      loading: false,
52
-      finished: false,
53
-      page: 1,
54
-      limit: 10,
55
-      total: 0,
56
-      //
57
-      value1: 0,
58
-      value2: 0,
59
-      value3: 0,
60
-      option1: [
61
-        { text: "全部患者", value: 0 },
62
-        { text: "透析患者", value: 1 },
63
-        { text: "慢病患者", value: 2 },
64
-        { text: "会员患者", value: 3 }
65
-      ],
66
-      option2: [
67
-        { text: "全部状态", value: 0 },
68
-        { text: "留治", value: 1 },
69
-        { text: "转出", value: 2 }
70
-      ],
71
-      option3: [
72
-        { text: "全部来源", value: 0 },
73
-        { text: "门诊", value: 1 },
74
-        { text: "住院", value: 2 }
75
-      ],
76
-      patients: []
77
-    };
78
-  },
79
-  methods: {
80
-    getBloodDialysisPatient() {
81
-      getBloodDialysisPatient(this.page, this.limit).then(response => {
82
-        if (response.data.state == 1) {
83
-          var patient = response.data.data.patient;
84
-          console.log("病人信息", patient);
85
-          this.patients = patient;
86
-          var total = response.data.data.total;
87
-          this.total = total;
88
-          // console.log("总计", total);
89
-        }
90
-      });
91
-    },
92
-    onLoad() {
93
-      setTimeout(() => {
94
-        for (let i = 0; i < this.limit; i++) {
95
-          this.list.push(this.list.length + 1);
96
-        }
97
-        // 加载状态结束
98
-        this.loading = false;
99
-        this.page++;
100
-        this.getBloodDialysisPatient(this.page, this.limit);
101
-        // 数据全部加载完成
102
-        if (this.list.length >= this.total) {
103
-          this.finished = true;
104
-        }
105
-      }, 1000);
106
-    },
107
-    addPatient() {
108
-      this.$router.push("/addPatints");
109
-    },
110
-    toPatientDetail(id) {
111
-      this.$router.push("/patientdetail?patientid=" + id);
112
-    },
113
-    toReturn() {
114
-      this.$router.push("/homeIndex");
115
-    }
116
-  },
117
-  created() {
118
-    setRem();
119
-    setHeight();
120
-    this.getBloodDialysisPatient();
121
-  }
122
-};
123
-</script>
124
-
125
-<style lang="scss" scoped>
126
-.page_patientManagement {
127
-  overflow-y: auto;
128
-  height: 100%;
129
-  .patientManagementTitle {
130
-    background: #fff;
131
-    padding: 0 1.125rem;
132
-    height: 3.125rem;
133
-    display: flex;
134
-    align-items: center;
135
-    justify-content: space-between;
136
-  }
137
-  .jiantou {
138
-    font-size: 1.5rem;
139
-    font-weight: 600;
140
-    margin-right: 2rem;
141
-  }
142
-  .titleName {
143
-    font-size: 1.125rem;
144
-    font-weight: 600;
145
-  }
146
-  .iconBox {
147
-    display: flex;
148
-    align-items: center;
149
-    float: right;
150
-  }
151
-  .iconOne {
152
-    font-size: 1.5rem;
153
-  }
154
-  .add {
155
-    margin-left: 1.25rem;
156
-  }
157
-  .van-dropdown-menu__title {
158
-    width: 5.625rem;
159
-    height: 1.875rem;
160
-    line-height: 1.875rem;
161
-    background: rgba(246, 246, 246, 1);
162
-    border-radius: 5px;
163
-    color: #8d8d8d;
164
-    font-size: 0.875rem;
165
-  }
166
-  .van-dropdown-menu__title::after {
167
-    right: 0.5rem;
168
-  }
169
-  .patientBox {
170
-    padding: 0 0.875rem;
171
-    .patientOne {
172
-      display: flex;
173
-      align-items: center;
174
-      height: 3.75rem;
175
-      img {
176
-        width: 2.5rem;
177
-        height: 2.5rem;
178
-        margin-right: 0.875rem;
179
-      }
180
-    }
181
-  }
182
-  .van-popup {
183
-    border-radius: 0 !important;
184
-    top: 0 !important;
185
-    transform: translate3d(0, 0, 0) !important;
186
-  }
187
-}
188
-::-webkit-scrollbar {
189
-  width: 0;
190
-}
191
-</style>

+ 26 - 8
src/pages/patientManagement/patientManagement.vue Dosyayı Görüntüle

@@ -2,7 +2,7 @@
2 2
   <div class="page_patientManagement">
3 3
     <van-sticky>
4 4
       <div class="patientManagementTitle">
5
-        <i class="iconfont icon-zuojiantou jiantou"></i>
5
+        <i class="iconfont icon-zuojiantou jiantou" @click="toback"></i>
6 6
         <span class="titleName">患者管理</span>
7 7
         <div class="iconBox" @click="addPatient">
8 8
           <van-icon class="iconOne add" name="add-o" />
@@ -10,7 +10,11 @@
10 10
       </div>
11 11
     </van-sticky>
12 12
     <div class="searchBox">
13
-      <van-search v-model="value" placeholder="搜索患者透析号/姓名/首拼" />
13
+      <van-search
14
+        v-model="value"
15
+        placeholder="搜索患者透析号/姓名/首拼"
16
+        @search="SearchAllPatient"
17
+      />
14 18
     </div>
15 19
     <div class="chooseBox">
16 20
       <van-tabs v-model="active" sticky>
@@ -35,13 +39,13 @@
35 39
           </div>
36 40
         </van-tab>
37 41
         <van-tab title="血透患者">
38
-          <Blood></Blood>
42
+          <Blood :searchValue="value"></Blood>
39 43
         </van-tab>
40 44
         <van-tab title="慢病患者">
41
-          <Slow></Slow>
45
+          <Slow :searchValue="value"></Slow>
42 46
         </van-tab>
43 47
         <van-tab title="会员患者">
44
-          <Member></Member>
48
+          <Member :searchValue="value"></Member>
45 49
         </van-tab>
46 50
       </van-tabs>
47 51
     </div>
@@ -65,7 +69,10 @@
65 69
 
66 70
 <script>
67 71
 import "../../styles/resetStyle.scss";
68
-import { getBloodDialysisPatient } from "@/api/patient/patient";
72
+import {
73
+  getBloodDialysisPatient,
74
+  SearchAllPatient
75
+} from "@/api/patient/patient";
69 76
 import Slow from "@/pages/patientManagement/components/Slow";
70 77
 import Member from "@/pages/patientManagement/components/Member";
71 78
 import Blood from "@/pages/patientManagement/components/Blood";
@@ -123,8 +130,8 @@ export default {
123 130
         this.loading = false;
124 131
         if (this.patients.length >= 10) {
125 132
           this.page++;
133
+          this.getBloodDialysisPatient(this.page, this.limit);
126 134
         }
127
-        this.getBloodDialysisPatient(this.page, this.limit);
128 135
         // 数据全部加载完成
129 136
         if (this.list.length >= this.total) {
130 137
           this.finished = true;
@@ -141,7 +148,7 @@ export default {
141 148
           this.patients = arr;
142 149
           var total = response.data.data.total;
143 150
           this.total = total;
144
-          console.log("总计", total);
151
+          // console.log("总计", total);
145 152
         }
146 153
       });
147 154
     },
@@ -151,6 +158,17 @@ export default {
151 158
     },
152 159
     toPatientDetail(id) {
153 160
       this.$router.push("/patientdetail?patientid=" + id);
161
+    },
162
+    toback() {
163
+      this.$router.push("/homeIndex");
164
+    },
165
+    SearchAllPatient(val) {
166
+      SearchAllPatient(val).then(response => {
167
+        if (response.data.state === 1) {
168
+          var patient = response.data.data.patient;
169
+          console.log("patient", patient);
170
+        }
171
+      });
154 172
     }
155 173
   },
156 174
   created() {

+ 154 - 104
src/pages/patients/addPatient.vue Dosyayı Görüntüle

@@ -3,13 +3,18 @@
3 3
     <van-sticky>
4 4
       <div class="addPatientsTitle">
5 5
         <i class="iconfont icon-zuojiantou jiantou" @click="toReturn"></i>
6
-        <span class="titleName">新增患者</span>
6
+        <span class="titleName">患者中心</span>
7 7
         <p @click="savePatient">保存</p>
8 8
       </div>
9 9
     </van-sticky>
10 10
     <div class="basicTitle">基本信息</div>
11 11
     <div class="basicBox">
12
-      <van-field v-model="patientForm.name" required label="姓名" placeholder="请填写" />
12
+      <van-field
13
+        v-model="patientForm.name"
14
+        required
15
+        label="姓名"
16
+        placeholder="请输入"
17
+      />
13 18
       <van-field
14 19
         label="性别"
15 20
         v-model="patientForm.sex"
@@ -27,22 +32,28 @@
27 32
         required
28 33
         label="身份证号"
29 34
         @blur="checkIdCardNo"
30
-        placeholder="请填写"
35
+        placeholder="请输入"
36
+      />
37
+      <van-field
38
+        v-model="patientForm.birthday"
39
+        required
40
+        label="出生日期"
41
+        readonly
42
+        placeholder="请输入"
31 43
       />
32
-      <van-field v-model="patientForm.birthday" required label="出生日期" readonly placeholder="请填写" />
33 44
       <van-field
34 45
         v-model="patientForm.phone"
35 46
         type="tel"
36 47
         required
37 48
         label="手机号"
38
-        placeholder="请填写"
49
+        placeholder="请输入"
39 50
         @blur="checkMobile"
40 51
       />
41 52
       <van-cell>
42 53
         <!-- 使用 title 插槽来自定义标题 -->
43 54
         <template slot="title">
44 55
           <span class="custom-title">患者类型</span>
45
-          <div style="width:60%;margin-left:2rem">
56
+          <div style="width:60%;margin-left:2.2rem">
46 57
             <van-checkbox-group v-model="result" @change="changeMode">
47 58
               <van-checkbox name="1" shape="square">血透患者</van-checkbox>
48 59
               <van-checkbox name="2" shape="square">慢病患者</van-checkbox>
@@ -56,8 +67,20 @@
56 67
     <div v-show="bloodShow">
57 68
       <div class="basicTitle">血透信息</div>
58 69
       <div class="xtBox">
59
-        <van-field v-model="patientForm.dialysis" center clearable required label="透析号">
60
-          <van-button slot="button" size="small" type="info" @click="generatedialysisno">自动生成</van-button>
70
+        <van-field
71
+          v-model="patientForm.dialysis"
72
+          center
73
+          clearable
74
+          required
75
+          label="透析号"
76
+        >
77
+          <van-button
78
+            slot="button"
79
+            size="small"
80
+            type="info"
81
+            @click="generatedialysisno"
82
+            >自动生成</van-button
83
+          >
61 84
         </van-field>
62 85
 
63 86
         <van-field
@@ -65,10 +88,15 @@
65 88
           v-model="patientForm.patientsoure"
66 89
           right-icon="arrow"
67 90
           required
91
+          readonly
68 92
           placeholder="请选择"
69 93
           @click="show10 = true"
70 94
         />
71
-        <van-popup v-model="show10" position="bottom" :style="{ height: '30%' }">
95
+        <van-popup
96
+          v-model="show10"
97
+          position="bottom"
98
+          :style="{ height: '30%' }"
99
+        >
72 100
           <van-picker :columns="columns3" @change="onChangeOne" />
73 101
         </van-popup>
74 102
 
@@ -77,6 +105,7 @@
77 105
           v-model="patientForm.lapseto"
78 106
           right-icon="arrow"
79 107
           required
108
+          readonly
80 109
           placeholder="请选择"
81 110
           @click="show9 = true"
82 111
         />
@@ -88,7 +117,7 @@
88 117
           <!-- 使用 title 插槽来自定义标题 -->
89 118
           <template slot="title">
90 119
             <span class="custom-title">传染病</span>
91
-            <div style="width:60%;margin-left:2rem">
120
+            <div style="width:60%;margin-left:3rem">
92 121
               <van-checkbox-group v-model="resultTwo">
93 122
                 <van-checkbox name="1" shape="square">乙肝</van-checkbox>
94 123
                 <van-checkbox name="2" shape="square">丙肝</van-checkbox>
@@ -101,7 +130,6 @@
101 130
         </van-cell>
102 131
 
103 132
         <van-field
104
-          class="smallsize"
105 133
           v-model="patientForm.admissionNumber"
106 134
           type="text"
107 135
           label="住院(门诊)号"
@@ -109,11 +137,11 @@
109 137
         />
110 138
 
111 139
         <van-field
112
-          class="smallsize"
113 140
           label="首次透析日期"
114 141
           v-model="patientForm.fistDate"
115 142
           right-icon="arrow"
116 143
           placeholder="请选择"
144
+          readonly
117 145
           @click="show7 = true"
118 146
         />
119 147
 
@@ -134,8 +162,8 @@
134 162
           autosize
135 163
           label="诊断"
136 164
           type="textarea"
137
-          placeholder="请填写主要诊断信息"
138 165
           maxlength="50"
166
+          placeholder="请输入主要诊断信息"
139 167
         />
140 168
       </div>
141 169
     </div>
@@ -143,24 +171,17 @@
143 171
     <div v-show="slowShow">
144 172
       <div class="basicTitle">慢病信息</div>
145 173
       <div class="xtBox">
146
-        <!--      <van-field-->
147
-        <!--        label="设备ID"-->
148
-        <!--        v-model="source"-->
149
-        <!--        right-icon="arrow"-->
150
-        <!--        readonly-->
151
-        <!--        placeholder="请选择"-->
152
-        <!--        @click="show1 = true"-->
153
-        <!--      />-->
154
-        <!--      <van-popup v-model="show1" position="bottom" :style="{ height: '30%' }">-->
155
-        <!--        <van-picker :columns="columns1" @change="onChange1" />-->
156
-        <!--      </van-popup>-->
157
-        <van-field v-model="patientForm.requipmentId" label="设备ID" placeholder="请填写" />
174
+        <van-field
175
+          v-model="patientForm.requipmentId"
176
+          label="设备ID"
177
+          placeholder="请输入"
178
+        />
158 179
 
159 180
         <van-cell>
160 181
           <!-- 使用 title 插槽来自定义标题 -->
161 182
           <template slot="title">
162 183
             <span class="custom-title2">传染病</span>
163
-            <div style="width:60%;margin-left:2rem">
184
+            <div style="width:60%;margin-left:3rem">
164 185
               <van-checkbox-group v-model="resultThree">
165 186
                 <van-checkbox name="1" shape="square">乙肝</van-checkbox>
166 187
                 <van-checkbox name="2" shape="square">丙肝</van-checkbox>
@@ -176,7 +197,7 @@
176 197
           <!-- 使用 title 插槽来自定义标题 -->
177 198
           <template slot="title">
178 199
             <span class="custom-title2">慢性病</span>
179
-            <div style="width:60%;margin-left:2rem">
200
+            <div style="width:60%;margin-left:3rem">
180 201
               <van-checkbox-group v-model="resultFour">
181 202
                 <van-checkbox name="1" shape="square">血透</van-checkbox>
182 203
                 <van-checkbox name="2" shape="square">腹透</van-checkbox>
@@ -189,22 +210,6 @@
189 210
             </div>
190 211
           </template>
191 212
         </van-cell>
192
-
193
-        <!--        <van-field-->
194
-        <!--          label="慢性病"-->
195
-        <!--          v-model="patientForm.slowDisease"-->
196
-        <!--          right-icon="arrow"-->
197
-        <!--          readonly-->
198
-        <!--          placeholder="请选择"-->
199
-        <!--          @click="show12 = true"-->
200
-        <!--        />-->
201
-        <!--        <van-popup-->
202
-        <!--          v-model="show12"-->
203
-        <!--          position="bottom"-->
204
-        <!--          :style="{ height: '30%' }"-->
205
-        <!--        >-->
206
-        <!--          <van-picker :columns="checkDisease" @change="onChangeFive" />-->
207
-        <!--        </van-popup>-->
208 213
       </div>
209 214
     </div>
210 215
 
@@ -237,7 +242,11 @@
237 242
           placeholder="请选择"
238 243
           @click="show14 = true"
239 244
         />
240
-        <van-popup v-model="show14" position="bottom" :style="{ height: '30%' }">
245
+        <van-popup
246
+          v-model="show14"
247
+          position="bottom"
248
+          :style="{ height: '30%' }"
249
+        >
241 250
           <van-picker :columns="patientType" @change="onChangeSix" />
242 251
         </van-popup>
243 252
         <van-field
@@ -248,7 +257,11 @@
248 257
           placeholder="请选择"
249 258
           @click="show13 = true"
250 259
         />
251
-        <van-popup v-model="show13" position="bottom" :style="{ height: '30%' }">
260
+        <van-popup
261
+          v-model="show13"
262
+          position="bottom"
263
+          :style="{ height: '30%' }"
264
+        >
252 265
           <van-picker :columns="treatmentMethod" @change="onChangeSeven" />
253 266
         </van-popup>
254 267
       </div>
@@ -258,6 +271,7 @@
258 271
 </template>
259 272
 
260 273
 <script>
274
+import "../../styles/resetStyle.scss";
261 275
 import {
262 276
   GenerateDialysisNo,
263 277
   GetIllnessList,
@@ -269,6 +283,7 @@ import {
269 283
 } from "@/api/patient/patient";
270 284
 import { isCardNo, checkMobile, getFileExtension } from "@/utils/tools";
271 285
 import { getToken } from "@/api/qiniu";
286
+import { setRem, setHeight } from "@/libs/functionRem";
272 287
 const moment = require("moment");
273 288
 export default {
274 289
   data() {
@@ -351,7 +366,8 @@ export default {
351 366
         slowPatient: 0,
352 367
         memberPatient: 0,
353 368
         avatar: "",
354
-        memberFistDate: ""
369
+        memberFistDate: "",
370
+        is_infectious: 0 // 是否患有传染病
355 371
       },
356 372
       illnesslist: []
357 373
     };
@@ -568,18 +584,6 @@ export default {
568 584
         this.$toast(" 性别不能为空");
569 585
         return false;
570 586
       }
571
-      if (this.patientForm.sex !== "") {
572
-        if (this.patientForm.sex === "男") {
573
-          this.patientForm.sex = 1;
574
-          this.patientForm.avatar =
575
-            "https://images.shengws.com/201809182128111.png";
576
-        }
577
-        if (this.patientForm.sex === "女") {
578
-          this.patientForm.sex = 2;
579
-          this.patientForm.avatar =
580
-            "https://images.shengws.com/201809182128222.png";
581
-        }
582
-      }
583 587
       if (this.patientForm.idCard === "") {
584 588
         this.$toast("身份证不能为空");
585 589
         return false;
@@ -592,8 +596,9 @@ export default {
592 596
         this.$toast("手机号码不能为空");
593 597
         return false;
594 598
       }
599
+
595 600
       if (this.result.length === 0) {
596
-        this.$toast("患者标签不能为空");
601
+        this.$toast("患者类型不能为空");
597 602
         return false;
598 603
       }
599 604
       if (this.patientForm.dialysis === "" && this.result.indexOf("1") != -1) {
@@ -608,29 +613,6 @@ export default {
608 613
         return false;
609 614
       }
610 615
 
611
-      for (let i = 0; i < this.result.length; i++) {
612
-        if (this.result[i] == 1) {
613
-          this.patientForm.bloodPatient = 1;
614
-        }
615
-        if (this.result[i] == 2) {
616
-          this.patientForm.slowPatient = 1;
617
-        }
618
-        if (this.result[i] == 3) {
619
-          this.patientForm.memberPatient = 1;
620
-        }
621
-      }
622
-
623
-      if (this.patientForm.patientsoure === "") {
624
-        this.patientForm.patientsoure = 0;
625
-      }
626
-      if (this.patientForm.patientsoure !== "") {
627
-        if (this.patientForm.patientsoure === "门诊") {
628
-          this.patientForm.patientsoure = 1;
629
-        }
630
-        if (this.patientForm.patientsoure === "住院") {
631
-          this.patientForm.patientsoure = 2;
632
-        }
633
-      }
634 616
       if (this.patientForm.lapseto === "" && this.result.indexOf("1") != -1) {
635 617
         this.$toast("留置状态不能为空");
636 618
         return false;
@@ -640,19 +622,19 @@ export default {
640 622
         this.patientForm.lapseto = 0;
641 623
       }
642 624
 
643
-      if (this.patientForm.lapseto !== "") {
644
-        if (this.patientForm.lapseto === "留治") {
645
-          this.patientForm.lapseto = 1;
646
-        }
647
-        if (this.patientForm.lapseto === "转出") {
648
-          this.patientForm.lapseto = 2;
649
-        }
650
-      }
651 625
       if (this.resultTwo.length === 0 && this.result.indexOf("1") != -1) {
652 626
         this.$toast("传染病不能为空");
653 627
         return false;
654 628
       }
655 629
 
630
+      if (this.resultTwo.length === 0) {
631
+        this.patientForm.is_infectious = 1;
632
+      }
633
+
634
+      if (this.resultTwo.length > 0) {
635
+        this.patientForm.is_infectious = 2;
636
+      }
637
+
656 638
       console.log("治疗方式", this.patientForm.treatmentMethod);
657 639
 
658 640
       if (this.patientForm.treatmentMethod === undefined) {
@@ -678,7 +660,55 @@ export default {
678 660
       if (this.patientForm.patient_type === "") {
679 661
         this.patientForm.patient_type = 0;
680 662
       }
681
-      console.log("this.illnesslist");
663
+
664
+      for (let i = 0; i < this.result.length; i++) {
665
+        if (this.result[i] == 1) {
666
+          this.patientForm.bloodPatient = 1;
667
+        }
668
+        if (this.result[i] == 2) {
669
+          this.patientForm.slowPatient = 1;
670
+        }
671
+        if (this.result[i] == 3) {
672
+          this.patientForm.memberPatient = 1;
673
+        }
674
+      }
675
+
676
+      if (!checkMobile(this.patientForm.phone)) {
677
+        this.$toast("请填写正确的手机号");
678
+        return false;
679
+      }
680
+
681
+      if (this.patientForm.sex !== "") {
682
+        if (this.patientForm.sex === "男") {
683
+          this.patientForm.sex = 1;
684
+          this.patientForm.avatar =
685
+            "https://images.shengws.com/201809182128111.png";
686
+        }
687
+        if (this.patientForm.sex === "女") {
688
+          this.patientForm.sex = 2;
689
+          this.patientForm.avatar =
690
+            "https://images.shengws.com/201809182128222.png";
691
+        }
692
+      }
693
+      if (this.patientForm.patientsoure === "") {
694
+        this.patientForm.patientsoure = 0;
695
+      }
696
+      if (this.patientForm.patientsoure !== "") {
697
+        if (this.patientForm.patientsoure === "门诊") {
698
+          this.patientForm.patientsoure = 1;
699
+        }
700
+        if (this.patientForm.patientsoure === "住院") {
701
+          this.patientForm.patientsoure = 2;
702
+        }
703
+      }
704
+      if (this.patientForm.lapseto !== "") {
705
+        if (this.patientForm.lapseto === "留治") {
706
+          this.patientForm.lapseto = 1;
707
+        }
708
+        if (this.patientForm.lapseto === "转出") {
709
+          this.patientForm.lapseto = 2;
710
+        }
711
+      }
682 712
       for (let i = 0; i < this.illnesslist.length; i++) {
683 713
         if (
684 714
           this.illnesslist[i].illness_name === this.patientForm.patient_type
@@ -710,7 +740,8 @@ export default {
710 740
         resultFour: this.resultFour,
711 741
         patientType: this.patientForm.patient_type,
712 742
         memberFistDate: this.patientForm.memberFistDate,
713
-        treatmentMethod: this.patientForm.treatmentMethod
743
+        treatmentMethod: this.patientForm.treatmentMethod,
744
+        is_infectious: this.patientForm.is_infectious
714 745
       };
715 746
       savePatient(params).then(response => {
716 747
         if (response.data.state === 1) {
@@ -719,6 +750,25 @@ export default {
719 750
           this.$router.push({ path: "/patients" });
720 751
         } else {
721 752
           this.$toast("手机号码已存在");
753
+          console.log("性别", this.patientForm.sex);
754
+          if (this.patientForm.sex === 1) {
755
+            this.patientForm.sex = "男";
756
+          }
757
+          if (this.patientForm.sex === 2) {
758
+            this.patientForm.sex = "女";
759
+          }
760
+          if (this.patientForm.patientsoure === 1) {
761
+            this.patientForm.patientsoure = "门诊";
762
+          }
763
+          if (this.patientForm.patientsoure === 2) {
764
+            this.patientForm.patientsoure = "住院";
765
+          }
766
+          if (this.patientForm.lapseto === 1) {
767
+            this.patientForm.lapseto = "留治";
768
+          }
769
+          if (this.patientForm.lapseto === 2) {
770
+            this.patientForm.lapseto = "转出";
771
+          }
722 772
         }
723 773
       });
724 774
     },
@@ -726,6 +776,7 @@ export default {
726 776
     checkMobile() {
727 777
       if (!checkMobile(this.patientForm.phone)) {
728 778
         this.$toast("请填写正确的手机号");
779
+        return false;
729 780
       }
730 781
     },
731 782
     checkIdCardNo() {
@@ -754,12 +805,14 @@ export default {
754 805
     }
755 806
   },
756 807
   created() {
808
+    setRem();
809
+    setHeight();
757 810
     this.GetIllnessList();
758 811
   }
759 812
 };
760 813
 </script>
761 814
 
762
-<style lang="scss">
815
+<style lang="scss" scoped>
763 816
 .page_addPatients {
764 817
   overflow-y: auto;
765 818
   height: 100%;
@@ -823,6 +876,13 @@ export default {
823 876
     border-radius: 0.9375rem;
824 877
     text-align: center;
825 878
   }
879
+  .van-button--small {
880
+    min-width: 60px !important;
881
+    height: 30px;
882
+    padding: 0 8px;
883
+    font-size: 12px !important;
884
+    line-height: 28px;
885
+  }
826 886
   .van-button--info {
827 887
     border-radius: 0.9375rem;
828 888
   }
@@ -834,20 +894,10 @@ export default {
834 894
   }
835 895
   .van-cell {
836 896
     align-items: center;
837
-    font-size: 1rem;
838
-  }
839
-  .smallsize {
840
-    font-size: 0.8125rem;
841
-    .van-cell__title {
842
-    }
897
+    // font-size: 1rem;
843 898
   }
844 899
 }
845 900
 ::-webkit-scrollbar {
846 901
   width: 0;
847 902
 }
848
-.van-popup {
849
-  border-radius: 0 !important;
850
-  top: 0 !important;
851
-  transform: translate3d(0, 0, 0) !important;
852
-}
853 903
 </style>

+ 154 - 24
src/pages/patients/editPatient.vue Dosyayı Görüntüle

@@ -88,7 +88,7 @@
88 88
         </van-field>
89 89
         <van-field
90 90
           label="患者来源"
91
-          v-model="source"
91
+          v-model="patientForm.patientsoure"
92 92
           right-icon="arrow"
93 93
           required
94 94
           readonly
@@ -100,7 +100,7 @@
100 100
         </van-popup>
101 101
         <van-field
102 102
           label="留治状态"
103
-          v-model="source2"
103
+          v-model="patientForm.lapseto"
104 104
           right-icon="arrow"
105 105
           required
106 106
           readonly
@@ -115,7 +115,7 @@
115 115
           <!-- 使用 title 插槽来自定义标题 -->
116 116
           <template slot="title">
117 117
             <span class="custom-title">传染病</span>
118
-            <div style="width:60%;margin-left:2rem">
118
+            <div style="width:60%;margin-left:3rem">
119 119
               <van-checkbox-group v-model="resultTwo">
120 120
                 <van-checkbox name="1" shape="square">乙肝</van-checkbox>
121 121
                 <van-checkbox name="2" shape="square">丙肝</van-checkbox>
@@ -130,7 +130,7 @@
130 130
         <van-field v-model="hospitalNum" type="text" label="住院(门诊)号" />
131 131
         <van-field
132 132
           label="首次透析日期"
133
-          v-model="time"
133
+          v-model="patientForm.fistDate"
134 134
           right-icon="arrow"
135 135
           readonly
136 136
           placeholder="请选择"
@@ -148,13 +148,12 @@
148 148
         </van-popup>
149 149
         <van-field
150 150
           v-model="message"
151
-          rows="2"
151
+          rows="1"
152 152
           autosize
153 153
           label="诊断"
154 154
           type="textarea"
155 155
           maxlength="50"
156 156
           placeholder="请输入主要诊断信息"
157
-          show-word-limit
158 157
         />
159 158
       </div>
160 159
     </div>
@@ -171,7 +170,7 @@
171 170
           <!-- 使用 title 插槽来自定义标题 -->
172 171
           <template slot="title">
173 172
             <span class="custom-title2">传染病</span>
174
-            <div style="width:60%;margin-left:2rem">
173
+            <div style="width:60%;margin-left:3rem">
175 174
               <van-checkbox-group v-model="resultThree">
176 175
                 <van-checkbox name="1" shape="square">乙肝</van-checkbox>
177 176
                 <van-checkbox name="2" shape="square">丙肝</van-checkbox>
@@ -187,7 +186,7 @@
187 186
           <!-- 使用 title 插槽来自定义标题 -->
188 187
           <template slot="title">
189 188
             <span class="custom-title2">慢性病</span>
190
-            <div style="width:60%;margin-left:2rem">
189
+            <div style="width:60%;margin-left:3rem">
191 190
               <van-checkbox-group v-model="resultFour">
192 191
                 <van-checkbox name="1" shape="square">血透</van-checkbox>
193 192
                 <van-checkbox name="2" shape="square">腹透</van-checkbox>
@@ -211,16 +210,20 @@
211 210
           right-icon="arrow"
212 211
           readonly
213 212
           placeholder="请选择"
214
-          @click="show2 = true"
213
+          @click="show12 = true"
215 214
         />
216
-        <van-popup v-model="show2" position="bottom" :style="{ height: '40%' }">
215
+        <van-popup
216
+          v-model="show12"
217
+          position="bottom"
218
+          :style="{ height: '40%' }"
219
+        >
217 220
           <van-datetime-picker
218 221
             v-model="currentDate"
219 222
             type="date"
220 223
             :min-date="minDate"
221 224
             :max-date="maxDate"
222 225
             @cancel="onCancel"
223
-            @confirm="onConfirm"
226
+            @confirm="onConfirmOne"
224 227
           />
225 228
         </van-popup>
226 229
         <van-field
@@ -255,7 +258,6 @@
255 258
         </van-popup>
256 259
       </div>
257 260
     </div>
258
-    <div class="turnOut">转出</div>
259 261
     <div class="moreInfo">如需要完善更多病人信息,请在电脑端完善</div>
260 262
   </div>
261 263
 </template>
@@ -275,9 +277,11 @@ import {
275 277
   isCardNo,
276 278
   checkMobile,
277 279
   getFileExtension,
278
-  uParseTime
280
+  uParseTime,
281
+  uParseTimeOne
279 282
 } from "@/utils/tools";
280 283
 import { getToken } from "@/api/qiniu";
284
+import { setRem, setHeight } from "@/libs/functionRem";
281 285
 const moment = require("moment");
282 286
 export default {
283 287
   data() {
@@ -364,21 +368,21 @@ export default {
364 368
         "血液透析",
365 369
         "腹膜透析",
366 370
         "肾移植"
367
-      ]
371
+      ],
372
+      illnesslist: []
368 373
     };
369 374
   },
370 375
   methods: {
371 376
     onChange(picker, value, index) {
372
-      console.log(value);
373
-      this.sex = value;
377
+      this.patientForm.sex = value;
374 378
       this.show = false;
375 379
     },
376 380
     onChange1(picker, value, index) {
377
-      this.source = value;
381
+      this.patientForm.patientsoure = value;
378 382
       this.show3 = false;
379 383
     },
380 384
     onChange2(picker, value, index) {
381
-      this.source2 = value;
385
+      this.patientForm.lapseto = value;
382 386
       this.show4 = false;
383 387
     },
384 388
     onChange3(picker, value, index) {
@@ -403,15 +407,29 @@ export default {
403 407
         day = `0${day}`;
404 408
       }
405 409
 
406
-      this.time = `${year}-${month}-${day}`;
410
+      this.patientForm.fistDate = `${year}-${month}-${day}`;
407 411
       console.log(this.currentDate);
408 412
       this.show2 = false;
409 413
     },
414
+    onConfirmOne(value) {
415
+      let year = value.getFullYear();
416
+      let month = value.getMonth() + 1;
417
+      let day = value.getDate();
418
+      if (month >= 1 && month <= 9) {
419
+        month = `0${month}`;
420
+      }
421
+      if (day >= 1 && day <= 9) {
422
+        day = `0${day}`;
423
+      }
424
+
425
+      this.patientForm.memberFistDate = `${year}-${month}-${day}`;
426
+      console.log(this.currentDate);
427
+      this.show12 = false;
428
+    },
410 429
     toReturn() {
411 430
       this.$router.push("/patientdetail?patientid=" + this.patient_id);
412 431
     },
413 432
     changeMode(val) {
414
-      alert(val);
415 433
       if (val == 1) {
416 434
         getBloodPatientInfo(this.patientForm.phone).then(response => {
417 435
           if (response.data.state === 1) {
@@ -536,12 +554,39 @@ export default {
536 554
       GetPatientDetail(patientid).then(response => {
537 555
         if (response.data.state === 1) {
538 556
           var patientdetail = response.data.data.patientDetail;
557
+          var diseases = response.data.data.diseases;
558
+          var slowDisease = response.data.data.slowDiseases;
559
+          console.log("慢病传染病", slowDisease);
560
+          for (let i = 0; i < diseases.length; i++) {
561
+            this.resultTwo.push(String(diseases[i]));
562
+          }
563
+          for (let i = 0; i < slowDisease.length; i++) {
564
+            this.resultThree.push(String(slowDisease[i].disease_id));
565
+          }
566
+          console.log("传染病", diseases);
567
+          var cronicdisease = response.data.data.cronicDiseases;
568
+          for (let i = 0; i < cronicdisease.length; i++) {
569
+            this.resultFour.push(String(cronicdisease[i].disease_id));
570
+          }
571
+          console.log("慢性慢性病", cronicdisease);
539 572
           if (patientdetail.gender === 1) {
540 573
             patientdetail.gender = "男";
541 574
           }
542 575
           if (patientdetail.gender === 2) {
543 576
             patientdetail.gender = "女";
544 577
           }
578
+          if (patientdetail.source === 1) {
579
+            patientdetail.source = "门诊";
580
+          }
581
+          if (patientdetail.source === 2) {
582
+            patientdetail.source = "住院";
583
+          }
584
+          if (patientdetail.lapseto === 1) {
585
+            patientdetail.lapseto = "留治";
586
+          }
587
+          if (patientdetail.lapseto === 2) {
588
+            patientdetail.lapseto = "转出";
589
+          }
545 590
           console.log("病人详情", patientdetail);
546 591
           this.patientForm.name = patientdetail.name;
547 592
           this.patientForm.sex = patientdetail.gender;
@@ -562,6 +607,84 @@ export default {
562 607
             this.result.push(String(3));
563 608
           }
564 609
           this.patientForm.dialysis = patientdetail.dialysis_no;
610
+          this.patientForm.patientsoure = patientdetail.source;
611
+          this.patientForm.lapseto = patientdetail.lapseto;
612
+          this.patientForm.admissionNumber = patientdetail.admission_number;
613
+          this.patientForm.requipmentId = patientdetail.equitment_id;
614
+
615
+          this.patientForm.memberFistDate = uParseTimeOne(
616
+            patientdetail.member_fistdate,
617
+            "{y}-{m}-{d}"
618
+          );
619
+          this.patientForm.fistDate = uParseTimeOne(
620
+            patientdetail.first_dialysis_date
621
+          );
622
+          this.patientForm.diagnose = patientdetail.diagnose;
623
+          if (patientdetail.member_treatement === 1) {
624
+            this.patientForm.treatmentMethod = "西医治疗";
625
+          }
626
+          if (patientdetail.member_treatement === 2) {
627
+            this.patientForm.treatmentMethod = "中医治疗";
628
+          }
629
+          if (patientdetail.member_treatement === 3) {
630
+            this.patientForm.treatmentMethod = "血液透析";
631
+          }
632
+          if (patientdetail.member_treatement === 4) {
633
+            this.patientForm.treatmentMethod = "腹膜透析";
634
+          }
635
+          if (patientdetail.member_treatement === 5) {
636
+            this.patientForm.treatmentMethod = "肾移植";
637
+          }
638
+
639
+          for (let i = 0; i < this.illnesslist.length; i++) {
640
+            if (patientdetail.member_patienttype === this.illnesslist[i].id) {
641
+              this.patientForm.patient_type = this.illnesslist[i].illness_name;
642
+            }
643
+          }
644
+
645
+          if (patientdetail.member_patients === 1) {
646
+            this.bloodShow = false;
647
+            this.slowShow = false;
648
+            this.memberShow = true;
649
+          }
650
+          if (patientdetail.slow_patients === 1) {
651
+            this.bloodShow = false;
652
+            this.memberShow = false;
653
+            this.slowShow = true;
654
+          }
655
+          if (
656
+            patientdetail.blood_patients === 1 &&
657
+            patientdetail.slow_patients === 1
658
+          ) {
659
+            this.bloodShow = true;
660
+            this.slowShow = true;
661
+            this.memberShow = false;
662
+          }
663
+          if (
664
+            patientdetail.blood_patients === 1 &&
665
+            patientdetail.member_patients === 1
666
+          ) {
667
+            this.bloodShow = true;
668
+            this.memberShow = true;
669
+            this.slowShow = false;
670
+          }
671
+          if (
672
+            patientdetail.member_patients === 1 &&
673
+            patientdetail.slow_patients === 1
674
+          ) {
675
+            this.memberShow = true;
676
+            this.slowShow = true;
677
+            this.bloodShow = false;
678
+          }
679
+          if (
680
+            patientdetail.blood_patients === 1 &&
681
+            patientdetail.slow_patients === 1 &&
682
+            patientdetail.member_patients === 1
683
+          ) {
684
+            this.bloodShow = 1;
685
+            this.slowShow = 1;
686
+            this.memberShow = 1;
687
+          }
565 688
         }
566 689
       });
567 690
     },
@@ -569,14 +692,13 @@ export default {
569 692
       GetIllnessList().then(response => {
570 693
         if (response.data.state === 1) {
571 694
           var illnesslist = response.data.data.illnesslist;
695
+          console.log("illnesslist", illnesslist);
572 696
           this.illnesslist = illnesslist;
573 697
           var arr = [];
574 698
           for (let i = 0; i < illnesslist.length; i++) {
575 699
             arr.push(illnesslist[i].illness_name);
576 700
           }
577
-
578 701
           this.patientType = arr;
579
-          console.log("病种", illnesslist);
580 702
         }
581 703
       });
582 704
     },
@@ -599,10 +721,11 @@ export default {
599 721
         birth.substr(4, 2) +
600 722
         "-" +
601 723
         birth.substr(6, 2);
602
-      console.log("出生日期", this.patientForm.birthday);
603 724
     }
604 725
   },
605 726
   created() {
727
+    setRem();
728
+    setHeight();
606 729
     var patientid = this.$route.query.patientid;
607 730
     this.patient_id = patientid;
608 731
     console.log("phones是什么", patientid);
@@ -612,7 +735,7 @@ export default {
612 735
 };
613 736
 </script>
614 737
 
615
-<style lang="scss">
738
+<style lang="scss" scoped>
616 739
 .page_editPatients {
617 740
   overflow-y: auto;
618 741
   height: 100%;
@@ -679,6 +802,13 @@ export default {
679 802
   .van-button--info {
680 803
     border-radius: 0.9375rem;
681 804
   }
805
+  .van-button--small {
806
+    min-width: 60px !important;
807
+    height: 30px;
808
+    padding: 0 8px;
809
+    font-size: 12px !important;
810
+    line-height: 28px;
811
+  }
682 812
   .moreInfo {
683 813
     text-align: center;
684 814
     font-size: 0.75rem;

+ 187 - 0
src/pages/search/index.vue Dosyayı Görüntüle

@@ -0,0 +1,187 @@
1
+<template>
2
+  <div class="page_search">
3
+    <van-sticky>
4
+      <div class="header">
5
+        <i class="iconfont icon-zuojiantou" @click="toHomeIndex"></i>
6
+        <van-search v-model="value" placeholder=" 姓名 / 透析号" @search="toSearchPatient" />
7
+      </div>
8
+    </van-sticky>
9
+    <div class="searchList">
10
+      <div
11
+        class="patientOne"
12
+        v-for="(item,index) in patientList"
13
+        :key="index"
14
+        @click="toPatient(item.id)"
15
+      >
16
+        <img :src="item.avatar" alt />
17
+        <p>{{ item.name }}</p>
18
+      </div>
19
+    </div>
20
+    <div class="history">
21
+      <div class="historyTitle">
22
+        <span>历史搜索</span>
23
+        <i class="iconfont icon-lajixiang" @click="deteleHistory"></i>
24
+      </div>
25
+      <div class="record">
26
+        <ul class="recordList">
27
+          <li
28
+            class="recordOne"
29
+            v-for="(item,index) in historyWord"
30
+            :key="index"
31
+            @click="toSearchPatient(item)"
32
+          >{{item}}</li>
33
+        </ul>
34
+      </div>
35
+    </div>
36
+  </div>
37
+</template>
38
+
39
+<script>
40
+import { toSearchPatient } from "@/api/patient/patient";
41
+export default {
42
+  data() {
43
+    return {
44
+      searchVal: "",
45
+      active: 0,
46
+      keyword: "",
47
+      value: "",
48
+      patientList: [],
49
+      historyWord: []
50
+    };
51
+  },
52
+  methods: {
53
+    toHomeIndex() {
54
+      this.$router.push({ path: "/homeIndex" });
55
+    },
56
+    toSearchPatient(val) {
57
+      let searchWord = localStorage.getItem("searchWord");
58
+      if (searchWord == null) {
59
+        localStorage.setItem("searchWord", val);
60
+      } else {
61
+        let arr = localStorage.getItem("searchWord");
62
+        arr = arr.split(",");
63
+        if (arr.indexOf(val) != -1) {
64
+          arr = arr;
65
+        } else {
66
+          arr.unshift(val);
67
+        }
68
+        self.historyWord = arr;
69
+        localStorage.setItem("searchWord", self.historyWord);
70
+      }
71
+
72
+      toSearchPatient(val).then(response => {
73
+        if (response.data.state === 1) {
74
+          var patient = response.data.data.patient;
75
+          console.log("patient", patient);
76
+          this.patientList = patient;
77
+          this.historyWord = localStorage.getItem("searchWord");
78
+          this.historyWord = this.historyWord.split(",");
79
+        }
80
+      });
81
+    },
82
+    toPatient(id) {
83
+      this.$router.push({ path: "/patientdetail?patientid=" + id });
84
+    },
85
+    deteleHistory() {
86
+      this.historyWord = [];
87
+      localStorage.removeItem("searchWord");
88
+    }
89
+  },
90
+  created() {
91
+    this.historyWord = localStorage.getItem("searchWord");
92
+    this.historyWord = this.historyWord.split(","); //将字符串转成数组
93
+    console.log();
94
+  }
95
+};
96
+</script>
97
+
98
+<style lang="scss" scoped>
99
+.page_search {
100
+  overflow: hidden;
101
+  overflow-y: auto;
102
+  height: 100%;
103
+  .header {
104
+    height: 2.5rem;
105
+    width: 100%;
106
+    line-height: 2.5rem;
107
+    border-bottom: 1px solid #f4f4f4;
108
+    display: flex;
109
+    align-items: center;
110
+    background: #fff;
111
+    .icon-zuojiantou {
112
+      float: left;
113
+      width: 2.5rem;
114
+      height: 2.5rem;
115
+      text-align: center;
116
+    }
117
+    .van-search {
118
+      padding: 0;
119
+      width: 80%;
120
+    }
121
+    .van-search__content {
122
+      border-radius: 0.9375rem;
123
+    }
124
+    .van-search .van-cell {
125
+      display: flex;
126
+      align-items: center;
127
+    }
128
+  }
129
+  .history {
130
+    padding: 1.25rem 0.75rem 0 0.875rem;
131
+    .historyTitle {
132
+      height: 1.25rem;
133
+      line-height: 1.25rem;
134
+      i {
135
+        float: right;
136
+        font-size: 1.625rem;
137
+        color: #9b9b9b;
138
+      }
139
+      span {
140
+        float: left;
141
+        font-size: 0.9375rem;
142
+        color: rgba(60, 60, 60, 1);
143
+      }
144
+    }
145
+  }
146
+  .record {
147
+    margin-top: 1.25rem;
148
+    .recordList {
149
+      display: flex;
150
+      flex-wrap: wrap;
151
+    }
152
+    .recordOne {
153
+      min-width: 0.0625rem;
154
+      background: rgba(244, 244, 244, 1);
155
+      border-radius: 14px;
156
+      color: rgba(155, 155, 155, 1);
157
+      font-size: 0.875rem;
158
+      padding: 0.4375rem 0.875rem;
159
+      margin-right: 0.625rem;
160
+      box-sizing: border-box;
161
+      margin-bottom: 0.625rem;
162
+    }
163
+  }
164
+  .searchList {
165
+    padding: 0 0.875rem;
166
+    .patientOne {
167
+      display: flex;
168
+      align-items: center;
169
+      height: 3.75rem;
170
+      img {
171
+        width: 2.5rem;
172
+        height: 2.5rem;
173
+        margin-right: 0.875rem;
174
+      }
175
+      p {
176
+        flex: 1;
177
+        height: 100%;
178
+        line-height: 3.75rem;
179
+        box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
180
+      }
181
+    }
182
+  }
183
+}
184
+::-webkit-scrollbar {
185
+  width: 0;
186
+}
187
+</style>

+ 48 - 5
src/router/index.js Dosyayı Görüntüle

@@ -46,16 +46,32 @@ export default new Router({
46 46
     },
47 47
     // 首页
48 48
     {
49
-      path: '/homeIndex',
50
-      name: 'Home',
51
-      component: () => import('@/pages/homeIndex/index')
52
-
49
+      path: '/myIndex',
50
+      name: 'myIndex',
51
+      component: () => import('@/pages/home/index'),
52
+      children: [{
53
+          path: '/homeIndex',
54
+          component: () => import('@/pages/homeIndex/index.vue'),
55
+          meta: {
56
+            noCache: true // 不会被 <keep-alive> 缓存
57
+          }
58
+        },
59
+        // 我的
60
+        {
61
+          path: '/newMy',
62
+          name: 'newMy',
63
+          component: () => import('@/pages/my/index')
64
+        }
65
+      ]
53 66
     },
54 67
     // 患者中心
55 68
     {
56 69
       path: '/patients',
57 70
       name: 'patients',
58
-      component: () => import('@/pages/patientManagement/patientManagement')
71
+      component: () => import('@/pages/patientManagement/patientManagement'),
72
+      meta: {
73
+        noCache: true // 不会被 <keep-alive> 缓存
74
+      }
59 75
     },
60 76
     // 新增病人
61 77
     {
@@ -81,12 +97,39 @@ export default new Router({
81 97
       name: 'editPatient',
82 98
       component: () => import('@/pages/patients/editPatient')
83 99
     },
100
+    // 全部排班
101
+    {
102
+      path: '/editScheduling',
103
+      name: 'editscheduling',
104
+      component: () => import('@/pages/allScheduling/index')
105
+
106
+    },
107
+    // 全部透后宣教
108
+    {
109
+      path: '/editEducation',
110
+      name: 'editeducation',
111
+      component: () => import('@/pages/allEducation/index')
112
+
113
+    },
114
+    // 全部抢救记录
115
+    {
116
+      path: '/rescuerecord',
117
+      name: 'rescuerecord',
118
+      component: () => import('@/pages/allRescue/index')
119
+
120
+    },
84 121
     //
85 122
     {
86 123
       path: '/patientdetail',
87 124
       name: 'patientdetail',
88 125
       component: () => import('@/pages/doctorAdvice/index')
89 126
     },
127
+    // 搜索
128
+    {
129
+      path: '/search',
130
+      name: 'search',
131
+      component: () => import('@/pages/search/index')
132
+    },
90 133
     {
91 134
       path: '/product',
92 135
       name: 'Product',

+ 7 - 1
src/store/user/user.js Dosyayı Görüntüle

@@ -23,6 +23,7 @@ const user = {
23 23
     admin:null,
24 24
     org: {
25 25
       id: 0,
26
+      creator:0,
26 27
       org_short_name: '',
27 28
       org_name: '',
28 29
       org_intro: '',
@@ -30,7 +31,7 @@ const user = {
30 31
       address: '',
31 32
       province: 0,
32 33
       city: 0,
33
-      district: 0
34
+      district: 0,
34 35
     },
35 36
     serve: {
36 37
       state: 0,
@@ -93,6 +94,9 @@ const user = {
93 94
         state.org.province = 0
94 95
         state.org.city = 0
95 96
         state.org.district = 0
97
+        state.org.creator = 0
98
+
99
+
96 100
 
97 101
       }else{
98 102
         state.org.id = org.id
@@ -104,6 +108,8 @@ const user = {
104 108
         state.org.province = org.province
105 109
         state.org.city = org.city
106 110
         state.org.district = org.district
111
+        state.org.creator = org.creator
112
+
107 113
       }
108 114
 
109 115
     },

+ 2 - 2
src/styles/newStyle.scss Dosyayı Görüntüle

@@ -1,6 +1,6 @@
1 1
 html,
2 2
 body {
3 3
   height: 100%;
4
-  background: #fff;
5
-  color: #000;
4
+  background: #fff !important;
5
+  color: #000 !important;
6 6
 }

+ 32 - 0
src/utils/tools.js Dosyayı Görüntüle

@@ -144,6 +144,38 @@ export function uParseTime(time, cFormat) {
144 144
   return time_str
145 145
 }
146 146
 
147
+export function uParseTimeOne(time, cFormat) {
148
+  if (arguments.length === 0) {
149
+    return null
150
+  }
151
+  const format = cFormat || '{y}-{m}-{d}'
152
+  let date
153
+  if (typeof time === 'object') {
154
+    date = time
155
+  } else {
156
+    if (('' + time).length !== 13) time = parseInt(time) * 1000
157
+    date = new Date(time)
158
+  }
159
+  const formatObj = {
160
+    y: date.getFullYear(),
161
+    m: date.getMonth() + 1,
162
+    d: date.getDate(),
163
+    h: date.getHours(),
164
+    i: date.getMinutes(),
165
+    s: date.getSeconds(),
166
+    a: date.getDay()
167
+  }
168
+  const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
169
+    let value = formatObj[key]
170
+    if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
171
+    if (result.length > 0 && value < 10) {
172
+      value = '0' + value
173
+    }
174
+    return value || 0
175
+  })
176
+  return time_str
177
+}
178
+
147 179
 export function calculateAnticoagulantZL(type, shouji, shichang, weichi) {
148 180
   var t = 0.5
149 181
   if (type == 1) {