Browse Source

first commit

See999 4 years ago
parent
commit
5cee54ab31
100 changed files with 9297 additions and 991 deletions
  1. 2 2
      config/dev.env.js
  2. 1 0
      config/index.js
  3. 2 2
      config/sit.env.js
  4. 17 17
      index.html
  5. 45 53
      package-lock.json
  6. 1 2
      package.json
  7. 74 17
      src/api/login/login.js
  8. 12 12
      src/api/micro/micro.js
  9. 244 0
      src/api/patient/patient.js
  10. 3 2
      src/api/qiniu.js
  11. BIN
      src/assets/images/icon9 (1)/._10搜索样式.psd
  12. BIN
      src/assets/images/icon9 (1)/._10搜索样式_1.psd
  13. BIN
      src/assets/images/icon9 (1)/._11搜索结果.psd
  14. BIN
      src/assets/images/icon9 (1)/._11搜索结果_1.psd
  15. BIN
      src/assets/images/icon9 (1)/._12病人管理.psd
  16. BIN
      src/assets/images/icon9 (1)/._12病人管理_1.psd
  17. BIN
      src/assets/images/icon9 (1)/._13新增病人.psd
  18. BIN
      src/assets/images/icon9 (1)/._13新增病人_1.psd
  19. BIN
      src/assets/images/icon9 (1)/._14病人详情.psd
  20. BIN
      src/assets/images/icon9 (1)/._14病人详情_1.psd
  21. BIN
      src/assets/images/icon9 (1)/._15医嘱管理.psd
  22. BIN
      src/assets/images/icon9 (1)/._15医嘱管理_1.psd
  23. BIN
      src/assets/images/icon9 (1)/._16病程管理.psd
  24. BIN
      src/assets/images/icon9 (1)/._16病程管理_1.psd
  25. BIN
      src/assets/images/icon9 (1)/._17检验检查.psd
  26. BIN
      src/assets/images/icon9 (1)/._17检验检查_1.psd
  27. BIN
      src/assets/images/icon9 (1)/._1启动页.psd
  28. BIN
      src/assets/images/icon9 (1)/._1启动页_1.psd
  29. BIN
      src/assets/images/icon9 (1)/._1首页.psd
  30. BIN
      src/assets/images/icon9 (1)/._2医院介绍-查看更多.psd
  31. BIN
      src/assets/images/icon9 (1)/._2登录页.psd
  32. BIN
      src/assets/images/icon9 (1)/._2登录页_1.psd
  33. BIN
      src/assets/images/icon9 (1)/._3免密码登录.psd
  34. BIN
      src/assets/images/icon9 (1)/._3免密码登录_1.psd
  35. BIN
      src/assets/images/icon9 (1)/._3名医介绍-查看更多 .psd
  36. BIN
      src/assets/images/icon9 (1)/._4名医介绍-医生详情.psd
  37. BIN
      src/assets/images/icon9 (1)/._4忘记密码.psd
  38. BIN
      src/assets/images/icon9 (1)/._4忘记密码_1.psd
  39. BIN
      src/assets/images/icon9 (1)/._5新闻动态.psd
  40. BIN
      src/assets/images/icon9 (1)/._5注册.psd
  41. BIN
      src/assets/images/icon9 (1)/._5注册_1.psd
  42. BIN
      src/assets/images/icon9 (1)/._6新闻详情.psd
  43. BIN
      src/assets/images/icon9 (1)/._6注册-机构信息.psd
  44. BIN
      src/assets/images/icon9 (1)/._6注册-机构信息_1.psd
  45. BIN
      src/assets/images/icon9 (1)/._6活动动态.psd
  46. BIN
      src/assets/images/icon9 (1)/._7拨打客服.psd
  47. BIN
      src/assets/images/icon9 (1)/._7拨打客服_1.psd
  48. BIN
      src/assets/images/icon9 (1)/._7活动详情.psd
  49. BIN
      src/assets/images/icon9 (1)/._8报名.psd
  50. BIN
      src/assets/images/icon9 (1)/._8首页-第一步.psd
  51. BIN
      src/assets/images/icon9 (1)/._8首页-第一步_1.psd
  52. BIN
      src/assets/images/icon9 (1)/._8首页-第三步.psd
  53. BIN
      src/assets/images/icon9 (1)/._8首页-第三步_1.psd
  54. BIN
      src/assets/images/icon9 (1)/._8首页-第二步.psd
  55. BIN
      src/assets/images/icon9 (1)/._8首页-第二步_1.psd
  56. BIN
      src/assets/images/icon9 (1)/._8首页.psd
  57. BIN
      src/assets/images/icon9 (1)/._8首页_1.psd
  58. BIN
      src/assets/images/icon9 (1)/._9下拉机构弹窗.psd
  59. BIN
      src/assets/images/icon9 (1)/._9下拉机构弹窗_1.psd
  60. BIN
      src/assets/images/icon9 (1)/._医嘱.png
  61. BIN
      src/assets/images/icon9 (1)/._宣教.png
  62. BIN
      src/assets/images/icon9 (1)/._抢救.png
  63. BIN
      src/assets/images/icon9 (1)/._排班.png
  64. BIN
      src/assets/images/icon9 (1)/._检查.png
  65. BIN
      src/assets/images/icon9 (1)/._病程.png
  66. BIN
      src/assets/images/icon9 (1)/._耗材.png
  67. BIN
      src/assets/images/icon9 (1)/._血管通路.png
  68. BIN
      src/assets/images/icon9 (1)/._透析记录.png
  69. BIN
      src/assets/images/icon9 (1)/._长期.png
  70. BIN
      src/assets/images/loginLogo.png
  71. BIN
      src/assets/images/m01.png
  72. BIN
      src/assets/images/m02.png
  73. BIN
      src/assets/images/m03.png
  74. BIN
      src/assets/images/m04.png
  75. BIN
      src/assets/images/m05.png
  76. BIN
      src/assets/images/m06.png
  77. BIN
      src/assets/images/m07.png
  78. BIN
      src/assets/images/m08.png
  79. BIN
      src/assets/images/m09.png
  80. BIN
      src/assets/images/nojoin.png
  81. BIN
      src/assets/images/start.png
  82. 1 0
      src/assets/styles/common.css
  83. 471 133
      src/kpa_pages/addPatient/index.vue
  84. 4244 93
      src/kpa_pages/agecyInformation/index.vue
  85. 135 0
      src/kpa_pages/allCheck/index.vue
  86. 476 0
      src/kpa_pages/check/index.vue
  87. 498 0
      src/kpa_pages/courseManagement/index.vue
  88. 196 0
      src/kpa_pages/createOrganization/index.vue
  89. 452 0
      src/kpa_pages/dialysisRecord/index.vue
  90. 467 0
      src/kpa_pages/doctorAdvice/index.vue
  91. 57 63
      src/kpa_pages/forgetPassword/forget.vue
  92. 277 167
      src/kpa_pages/forgetPassword/index.vue
  93. 261 195
      src/kpa_pages/home/index.vue
  94. 69 0
      src/kpa_pages/homeIndex/index.vue
  95. 44 134
      src/kpa_pages/index/index.vue
  96. 99 0
      src/kpa_pages/joinedGroup/index.vue
  97. 150 99
      src/kpa_pages/login/login.vue
  98. 513 0
      src/kpa_pages/longDialysis/index.vue
  99. 486 0
      src/kpa_pages/missionInformation/index.vue
  100. 0 0
      src/kpa_pages/my/index.vue

+ 2 - 2
config/dev.env.js View File

@@ -2,9 +2,9 @@ module.exports = {
2 2
   NODE_ENV: '"development"',
3 3
   ENV_CONFIG: '"dev"',
4 4
   // BASE_API: '"http://api.test1.sgjyun.com"'
5
-  BASE_API: '"http://localhost:9536"'
5
+   BASE_API: '"http://localhost:9536"'
6 6
   //  BASE_API:'"http://api.scrm.kuyicloud.com"',//'"http://localhost:9534"'
7
-
7
+    // BASE_API: '"http://mt.api.sgjyun.com"'
8 8
   //  SSO_HOST: '"https://testsso.sgjyun.com"',
9 9
   //  SRCM_HOST: '"http://test1.sgjyun.com"',
10 10
   //  XT_HOST: '"http://xt.test.sgjyun.com"',

+ 1 - 0
config/index.js View File

@@ -21,6 +21,7 @@ module.exports = {
21 21
     // host: 'microweb.kuyicloud.com',
22 22
     host: 'localhost',
23 23
     // host: 'jk.kuyicloud.com',
24
+    //  host: 'mt.sgjyun.com',
24 25
     // port: 8091, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
25 26
     port: 8090, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
26 27
     // host: 'test1.sgjyun.com',

+ 2 - 2
config/sit.env.js View File

@@ -1,8 +1,8 @@
1 1
 module.exports = {
2 2
   NODE_ENV: '"production"',
3 3
   ENV_CONFIG: '"sit"',
4
-  BASE_API: '"http://api.jk.test.sgjyun.com"',
5
-
4
+  // BASE_API: '"http://api.jk.test.sgjyun.com"',
5
+  BASE_API: '"http://mt.api.sgjyun.com"',
6 6
   SSO_HOST: '"https://testsso.sgjyun.com"',
7 7
   SRCM_HOST: '"http://test1.sgjyun.com"',
8 8
   XT_HOST: '"http://xt.test.sgjyun.com"',

+ 17 - 17
index.html View File

@@ -1,18 +1,16 @@
1
-
2 1
 <!DOCTYPE html>
3 2
 <html>
4 3
   <head>
5
-    <meta charset="utf-8">
6
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7
-    <meta name="renderer" content="webkit">
8
-    <meta name=”referrer” content=”never”>
9
-    <meta name="referrer" content="no-referrer"/>
10
-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
11
-    <link
12
-      rel="stylesheet"
13
-      href="//at.alicdn.com/t/font_1480998_rnn2332fqo.css"
14
-    />
15
-    <title>kpa</title>
4
+    <meta charset="utf-8" />
5
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
6
+    <meta name="renderer" content="webkit" />
7
+    <meta name="”referrer”" content="”never”" />
8
+    <meta name="referrer" content="no-referrer" />
9
+    <meta
10
+      name="viewport"
11
+      content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
12
+    />
13
+    <title>酷医云</title>
16 14
   </head>
17 15
   <body>
18 16
     <script src="<%= htmlWebpackPlugin.options.path %>/tinymce4.7.5/tinymce.min.js"></script>
@@ -22,13 +20,15 @@
22 20
     <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.service.js"></script>
23 21
     <script src="<%= htmlWebpackPlugin.options.path %>/neditor/i18n/zh-cn/zh-cn.js"></script>
24 22
     <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.parse.min.js"></script>
25
-  
23
+
26 24
     <div id="app"></div>
27 25
     <!-- built files will be auto injected -->
28
-    <script src='http://api.map.baidu.com/api?v=2.0&ak=?&callback=init'></script>
29
-   
30
-    <link href="//vjs.zencdn.net/4.9/video-js.css" rel="stylesheet">
26
+    <script src="http://api.map.baidu.com/api?v=2.0&ak=?&callback=init"></script>
27
+    <link
28
+      rel="stylesheet"
29
+      href="//at.alicdn.com/t/font_1480998_bf2iq8rd9p9.css"
30
+    />
31
+    <link href="//vjs.zencdn.net/4.9/video-js.css" rel="stylesheet" />
31 32
     <script src="//vjs.zencdn.net/4.9/video.js"></script>
32 33
   </body>
33 34
 </html>
34
-

+ 45 - 53
package-lock.json View File

@@ -738,9 +738,9 @@
738 738
       "dev": true
739 739
     },
740 740
     "aws4": {
741
-      "version": "1.8.0",
742
-      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
743
-      "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
741
+      "version": "1.9.1",
742
+      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
743
+      "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==",
744 744
       "dev": true
745 745
     },
746 746
     "axios": {
@@ -2508,9 +2508,9 @@
2508 2508
       "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM="
2509 2509
     },
2510 2510
     "combined-stream": {
2511
-      "version": "1.0.7",
2512
-      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
2513
-      "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
2511
+      "version": "1.0.8",
2512
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
2513
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
2514 2514
       "dev": true,
2515 2515
       "requires": {
2516 2516
         "delayed-stream": "~1.0.0"
@@ -5429,14 +5429,22 @@
5429 5429
       }
5430 5430
     },
5431 5431
     "globule": {
5432
-      "version": "1.2.1",
5433
-      "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
5434
-      "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
5432
+      "version": "1.3.1",
5433
+      "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz",
5434
+      "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==",
5435 5435
       "dev": true,
5436 5436
       "requires": {
5437 5437
         "glob": "~7.1.1",
5438
-        "lodash": "~4.17.10",
5438
+        "lodash": "~4.17.12",
5439 5439
         "minimatch": "~3.0.2"
5440
+      },
5441
+      "dependencies": {
5442
+        "lodash": {
5443
+          "version": "4.17.15",
5444
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
5445
+          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
5446
+          "dev": true
5447
+        }
5440 5448
       }
5441 5449
     },
5442 5450
     "good-listener": {
@@ -6992,12 +7000,6 @@
6992 7000
       "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
6993 7001
       "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
6994 7002
     },
6995
-    "lodash.clonedeep": {
6996
-      "version": "4.5.0",
6997
-      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
6998
-      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
6999
-      "dev": true
7000
-    },
7001 7003
     "lodash.defaults": {
7002 7004
       "version": "4.2.0",
7003 7005
       "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
@@ -7028,12 +7030,6 @@
7028 7030
       "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
7029 7031
       "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
7030 7032
     },
7031
-    "lodash.mergewith": {
7032
-      "version": "4.6.1",
7033
-      "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
7034
-      "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
7035
-      "dev": true
7036
-    },
7037 7033
     "lodash.restparam": {
7038 7034
       "version": "3.6.1",
7039 7035
       "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
@@ -7645,9 +7641,9 @@
7645 7641
       }
7646 7642
     },
7647 7643
     "node-sass": {
7648
-      "version": "4.11.0",
7649
-      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz",
7650
-      "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==",
7644
+      "version": "4.13.1",
7645
+      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz",
7646
+      "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==",
7651 7647
       "dev": true,
7652 7648
       "requires": {
7653 7649
         "async-foreach": "^0.1.3",
@@ -7657,12 +7653,10 @@
7657 7653
         "get-stdin": "^4.0.1",
7658 7654
         "glob": "^7.0.3",
7659 7655
         "in-publish": "^2.0.0",
7660
-        "lodash.assign": "^4.2.0",
7661
-        "lodash.clonedeep": "^4.3.2",
7662
-        "lodash.mergewith": "^4.6.0",
7656
+        "lodash": "^4.17.15",
7663 7657
         "meow": "^3.7.0",
7664 7658
         "mkdirp": "^0.5.1",
7665
-        "nan": "^2.10.0",
7659
+        "nan": "^2.13.2",
7666 7660
         "node-gyp": "^3.8.0",
7667 7661
         "npmlog": "^4.0.0",
7668 7662
         "request": "^2.88.0",
@@ -7706,6 +7700,12 @@
7706 7700
             "which": "^1.2.9"
7707 7701
           }
7708 7702
         },
7703
+        "lodash": {
7704
+          "version": "4.17.15",
7705
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
7706
+          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
7707
+          "dev": true
7708
+        },
7709 7709
         "strip-ansi": {
7710 7710
           "version": "3.0.1",
7711 7711
           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -11003,9 +11003,9 @@
11003 11003
       "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
11004 11004
     },
11005 11005
     "psl": {
11006
-      "version": "1.1.31",
11007
-      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
11008
-      "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
11006
+      "version": "1.7.0",
11007
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
11008
+      "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==",
11009 11009
       "dev": true
11010 11010
     },
11011 11011
     "public-encrypt": {
@@ -11644,9 +11644,9 @@
11644 11644
       }
11645 11645
     },
11646 11646
     "request": {
11647
-      "version": "2.88.0",
11648
-      "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
11649
-      "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
11647
+      "version": "2.88.2",
11648
+      "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
11649
+      "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
11650 11650
       "dev": true,
11651 11651
       "requires": {
11652 11652
         "aws-sign2": "~0.7.0",
@@ -11656,7 +11656,7 @@
11656 11656
         "extend": "~3.0.2",
11657 11657
         "forever-agent": "~0.6.1",
11658 11658
         "form-data": "~2.3.2",
11659
-        "har-validator": "~5.1.0",
11659
+        "har-validator": "~5.1.3",
11660 11660
         "http-signature": "~1.2.0",
11661 11661
         "is-typedarray": "~1.0.0",
11662 11662
         "isstream": "~0.1.2",
@@ -11666,7 +11666,7 @@
11666 11666
         "performance-now": "^2.1.0",
11667 11667
         "qs": "~6.5.2",
11668 11668
         "safe-buffer": "^5.1.2",
11669
-        "tough-cookie": "~2.4.3",
11669
+        "tough-cookie": "~2.5.0",
11670 11670
         "tunnel-agent": "^0.6.0",
11671 11671
         "uuid": "^3.3.2"
11672 11672
       }
@@ -13482,21 +13482,13 @@
13482 13482
       "dev": true
13483 13483
     },
13484 13484
     "tough-cookie": {
13485
-      "version": "2.4.3",
13486
-      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
13487
-      "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
13485
+      "version": "2.5.0",
13486
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
13487
+      "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
13488 13488
       "dev": true,
13489 13489
       "requires": {
13490
-        "psl": "^1.1.24",
13491
-        "punycode": "^1.4.1"
13492
-      },
13493
-      "dependencies": {
13494
-        "punycode": {
13495
-          "version": "1.4.1",
13496
-          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
13497
-          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
13498
-          "dev": true
13499
-        }
13490
+        "psl": "^1.1.28",
13491
+        "punycode": "^2.1.1"
13500 13492
       }
13501 13493
     },
13502 13494
     "traverse": {
@@ -13859,9 +13851,9 @@
13859 13851
       "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
13860 13852
     },
13861 13853
     "uuid": {
13862
-      "version": "3.3.2",
13863
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
13864
-      "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
13854
+      "version": "3.4.0",
13855
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
13856
+      "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
13865 13857
       "dev": true
13866 13858
     },
13867 13859
     "v-viewer": {

+ 1 - 2
package.json View File

@@ -118,7 +118,7 @@
118 118
     "koa2-cors": "^2.0.6",
119 119
     "lint-staged": "7.2.0",
120 120
     "node-notifier": "5.1.2",
121
-    "node-sass": "^4.7.2",
121
+    "node-sass": "^4.13.1",
122 122
     "optimize-css-assets-webpack-plugin": "3.2.0",
123 123
     "ora": "1.3.0",
124 124
     "portfinder": "1.0.13",
@@ -141,7 +141,6 @@
141 141
     "vue-template-compiler": "2.5.16",
142 142
     "webpack": "3.10.0",
143 143
     "webpack-bundle-analyzer": "2.9.1",
144
-    "webpack-dev-server": "2.9.7",
145 144
     "webpack-merge": "4.1.1"
146 145
   },
147 146
   "engines": {

+ 74 - 17
src/api/login/login.js View File

@@ -1,4 +1,5 @@
1 1
 import request from '@/utils/request'
2
+import org from '../../router/modules/org'
2 3
 
3 4
 export function verifyToken(token) {
4 5
   return request({
@@ -39,9 +40,6 @@ export function modifyPassword(new_pwd, code) {
39 40
 }
40 41
 
41 42
 export function submitModifyPwdAction(phone, password, code) {
42
-  console.log('phone', phone)
43
-  console.log('password', password)
44
-  console.log('code', code)
45 43
   const params = {
46 44
     phone: phone,
47 45
     password: password,
@@ -102,7 +100,8 @@ export function NextStep(phone, code) {
102 100
 export function Accomplish(phone, newpassword, confirmpassword) {
103 101
   const params = {
104 102
     // eslint-disable-next-line no-dupe-keys
105
-    phone, phone,
103
+    phone,
104
+    phone,
106 105
     newpassword: newpassword,
107 106
     confirmpassword: confirmpassword
108 107
   }
@@ -113,20 +112,12 @@ export function Accomplish(phone, newpassword, confirmpassword) {
113 112
   })
114 113
 }
115 114
 
116
-export function getAllOrgName(params) {
117
-  return request({
118
-    url: '/api/login/getallorgname',
119
-    method: 'Get',
120
-    params: params
121
-  })
122
-}
123
-
124
-export function getNowOrgName(phone) {
115
+export function getAllOrgName(id) {
125 116
   const params = {
126
-    phone: phone
117
+    id: id
127 118
   }
128 119
   return request({
129
-    url: '/api/login/getnoworgname',
120
+    url: '/api/login/getallorgname',
130 121
     method: 'Get',
131 122
     params: params
132 123
   })
@@ -148,11 +139,77 @@ export function getAllOrgType(params) {
148 139
   })
149 140
 }
150 141
 
151
-export function SaveOrgInformation(data) {
142
+export function SaveOrgInformation(data, id) {
152 143
   console.log('data是什么', data)
153 144
   return request({
154
-    url: '/api/login/saveorginformation',
145
+    url: '/api/login/saveorginformation?id=' + id,
155 146
     method: 'Post',
156 147
     data: data
157 148
   })
158 149
 }
150
+
151
+export function getBloodDialysisPatient(page, limit, id) {
152
+  const params = {
153
+    page: page,
154
+    limit: limit,
155
+    id: id
156
+  }
157
+  return request({
158
+    url: '/api/login/getblooddialysispatient',
159
+    method: 'Get',
160
+    params: params
161
+  })
162
+}
163
+
164
+export function GetDoctroAdvice(patientid, orgid, starttime, endtime, searchval) {
165
+  console.log('patientid', patientid)
166
+  console.log('starttime', starttime)
167
+  console.log('orgid', orgid)
168
+  console.log('endtime', endtime)
169
+
170
+  const params = {
171
+    patientid: patientid,
172
+    starttime: starttime,
173
+    orgid: orgid,
174
+    endtime: endtime,
175
+    searchval: searchval
176
+  }
177
+
178
+  return request({
179
+    url: '/api/site/getdoctoradvice',
180
+    method: 'Get',
181
+    params: params
182
+  })
183
+}
184
+
185
+export function SaveSearch(searchval) {
186
+  const params = {
187
+    searchval: searchval
188
+  }
189
+  return request({
190
+    url: '/api/site/savesearch',
191
+    method: 'Get',
192
+    params: params
193
+  })
194
+}
195
+
196
+export function toSeacherDoctorAdvice(patientid, orgid, searchval) {
197
+  const params = {
198
+    patientid: patientid,
199
+    orgid: orgid,
200
+    searchval: searchval
201
+  }
202
+  return request({
203
+    url: '/api/site/toseacherdoctoradvice',
204
+    method: 'Get',
205
+    params: params
206
+  })
207
+}
208
+
209
+export function deleteDoctorAdvice(id, params) {
210
+  return request({
211
+    url: '/api/site/deleteDoctorAdvice?id=' + id,
212
+    method: 'Get',
213
+    params: params
214
+  })
215
+}

+ 12 - 12
src/api/micro/micro.js View File

@@ -1,15 +1,15 @@
1
-import request from "@/utils/request";
2
-import org from "../../router/modules/org";
3
-import { link } from "fs";
1
+import request from '@/utils/request';
2
+import org from '../../router/modules/org';
3
+import { link } from 'fs';
4 4
 
5
-export function ToLogin(tel,psd){
5
+export function ToLogin(tel, psd) {
6 6
   const params = {
7
-    tel:tel,
8
-    psd:psd,
7
+    tel: tel,
8
+    psd: psd
9 9
   }
10
-   return request({
11
-     url:"/api/site/gettologin",
12
-     method:"Post",
13
-     params:params,
14
-   })
15
-}
10
+  return request({
11
+    url: '/api/site/gettologin',
12
+    method: 'Post',
13
+    params: params
14
+  })
15
+}

+ 244 - 0
src/api/patient/patient.js View File

@@ -0,0 +1,244 @@
1
+import request from '@/utils/request'
2
+import org from '../../router/modules/org'
3
+
4
+export function GenerateDialysisNo(phone) {
5
+  console.log('phone是什么', phone)
6
+  return request({
7
+    url: '/api/patient/getneratedialysisno?phone=' + phone,
8
+    method: 'Get'
9
+  })
10
+}
11
+
12
+export function savePatient(data, telephone) {
13
+  console.log('data是什么', data)
14
+  return request({
15
+    url: '/api/patient/savepatient?telephone=' + telephone,
16
+    method: 'Post',
17
+    data: data
18
+  })
19
+}
20
+
21
+export function getCourseManagement(patientid, orgid, startime, endtime) {
22
+  console.log('startime', startime)
23
+  console.log('endtime', endtime)
24
+  const params = {
25
+    patientid: patientid,
26
+    orgid: orgid,
27
+    startime: startime,
28
+    endtime: endtime
29
+  }
30
+  return request({
31
+    url: '/api/patient/getcoursemanagement',
32
+    method: 'Post',
33
+    params: params
34
+  })
35
+}
36
+
37
+export function toDeleteCouseManage(id, orgid) {
38
+  const params = {
39
+    id: id,
40
+    orgid: orgid
41
+  }
42
+
43
+  return request({
44
+    url: '/api/patient/todeletecousemanage',
45
+    method: 'Get',
46
+    params: params
47
+  })
48
+}
49
+
50
+export function getMissionInformation(patientid, orgid, startime, endtime) {
51
+  const params = {
52
+    patientid: patientid,
53
+    orgid: orgid,
54
+    startime: startime,
55
+    endtime: endtime
56
+  }
57
+
58
+  return request({
59
+    url: '/api/patient/getmissioninformation',
60
+    method: 'Get',
61
+    params: params
62
+  })
63
+}
64
+
65
+export function getRecordSave(patientid, orgid, startime, endtime) {
66
+  const params = {
67
+    patientid: patientid,
68
+    orgid: orgid,
69
+    startime: startime,
70
+    endtime: endtime
71
+  }
72
+
73
+  return request({
74
+    url: '/api/patient/getrecordsave',
75
+    method: 'Get',
76
+    params: params
77
+  })
78
+}
79
+
80
+export function getcheckPatientData(patientid, orgid, startime, endtime) {
81
+  const params = {
82
+    patientid: patientid,
83
+    orgid: orgid,
84
+    startime: startime,
85
+    endtime: endtime
86
+  }
87
+
88
+  return request({
89
+    url: '/api/patient/getcheckpatientdata',
90
+    method: 'Get',
91
+    params: params
92
+  })
93
+}
94
+
95
+export function getlongDialysis(patientid, orgid, startime, endtime) {
96
+  const params = {
97
+    patientid: patientid,
98
+    orgid: orgid,
99
+    startime: startime,
100
+    endtime: endtime
101
+  }
102
+
103
+  return request({
104
+    url: '/api/patient/getlongdialysis',
105
+    method: 'Get',
106
+    params: params
107
+  })
108
+}
109
+
110
+export function getDialysRecord(patientid, orgid, startime, endtime) {
111
+  const params = {
112
+    patientid: patientid,
113
+    orgid: orgid,
114
+    startime: startime,
115
+    endtime: endtime
116
+  }
117
+  return request({
118
+    url: '/api/patient/getdialysrecord',
119
+    method: 'Get',
120
+    params: params
121
+  })
122
+}
123
+
124
+export function toSeacherCourseManagement(patientid, orgid, seacherVal) {
125
+  const params = {
126
+    patientid: patientid,
127
+    orgid: orgid,
128
+    seacherVal: seacherVal
129
+  }
130
+
131
+  return request({
132
+    url: '/api/site/toseacherCourseManagement',
133
+    method: 'Get',
134
+    params: params
135
+  })
136
+}
137
+
138
+export function toDeleteSaveRecord(id, params) {
139
+  return request({
140
+    url: '/api/site/todeletesaverecord?id=' + id,
141
+    method: 'Get',
142
+    params: params
143
+  })
144
+}
145
+
146
+export function toSeacherRecord(patientid, orgid, seacherVal) {
147
+  const params = {
148
+    patientid: patientid,
149
+    orgid: orgid,
150
+    seacherVal: seacherVal
151
+  }
152
+  return request({
153
+    url: '/api/site/toSeacherRecord',
154
+    method: 'Get',
155
+    params: params
156
+  })
157
+}
158
+
159
+export function deleteMissionInformation(id, orgid) {
160
+  const params = {
161
+    id: id,
162
+    orgid: orgid
163
+  }
164
+  return request({
165
+    url: '/api/site/deletemissioninformation',
166
+    method: 'Get',
167
+    params: params
168
+  })
169
+}
170
+
171
+export function toSeacherMissionInformation(patientid, orgid, seacherVal) {
172
+  const params = {
173
+    patientid: patientid,
174
+    orgid: orgid,
175
+    seacherVal: seacherVal
176
+  }
177
+  return request({
178
+    url: '/api/patient/toseachermissioninformation',
179
+    method: 'Get',
180
+    params: params
181
+  })
182
+}
183
+
184
+export function GetPatientSchedules(patientid, orgid, startime, endtime) {
185
+  const params = {
186
+    patientid: patientid,
187
+    orgid: orgid,
188
+    startime: startime,
189
+    endtime: endtime
190
+  }
191
+
192
+  return request({
193
+    url: '/api/patient/getpatientschedules',
194
+    method: 'Get',
195
+    params: params
196
+  })
197
+}
198
+
199
+export function deleteScheduleInformation(id, params) {
200
+  return request({
201
+    url: '/api/patient/deletescheduleinformation?id=' + id,
202
+    method: 'Get',
203
+    params: params
204
+  })
205
+}
206
+
207
+export function toSeacherScheduleInformation(patientid, orgid, seacherVal) {
208
+  const params = {
209
+    patientid: patientid,
210
+    orgid: orgid,
211
+    seacherVal: seacherVal
212
+  }
213
+
214
+  return request({
215
+    url: '/api/patient/toseacherscheduleinformation',
216
+    method: 'Get',
217
+    params: params
218
+  })
219
+}
220
+
221
+export function getPatientType(patientid, orgid) {
222
+  const params = {
223
+    patientid: patientid,
224
+    orgid: orgid
225
+  }
226
+  return request({
227
+    url: '/api/patient/getpatienttype',
228
+    method: 'Get',
229
+    params: params
230
+  })
231
+}
232
+
233
+export function checkAll(checkdate, patientid, orgid) {
234
+  const params = {
235
+    checkdate: checkdate,
236
+    patientid: patientid,
237
+    orgid: orgid
238
+  }
239
+  return request({
240
+    url: '/api/patient/checkall',
241
+    method: 'Get',
242
+    params: params
243
+  })
244
+}

+ 3 - 2
src/api/qiniu.js View File

@@ -1,9 +1,10 @@
1 1
 import request from '@/utils/request'
2 2
 
3
-export function getToken() {
4
-  console.log("加地址")
3
+export function getToken(params) {
4
+  console.log('qiniu是什么===================')
5 5
   return request({
6 6
     url: '/api/qiniu/uptoken', // 假地址 自行替换
7
+    params: params,
7 8
     method: 'get'
8 9
   })
9 10
 }

BIN
src/assets/images/icon9 (1)/._10搜索样式.psd View File


BIN
src/assets/images/icon9 (1)/._10搜索样式_1.psd View File


BIN
src/assets/images/icon9 (1)/._11搜索结果.psd View File


BIN
src/assets/images/icon9 (1)/._11搜索结果_1.psd View File


BIN
src/assets/images/icon9 (1)/._12病人管理.psd View File


BIN
src/assets/images/icon9 (1)/._12病人管理_1.psd View File


BIN
src/assets/images/icon9 (1)/._13新增病人.psd View File


BIN
src/assets/images/icon9 (1)/._13新增病人_1.psd View File


BIN
src/assets/images/icon9 (1)/._14病人详情.psd View File


BIN
src/assets/images/icon9 (1)/._14病人详情_1.psd View File


BIN
src/assets/images/icon9 (1)/._15医嘱管理.psd View File


BIN
src/assets/images/icon9 (1)/._15医嘱管理_1.psd View File


BIN
src/assets/images/icon9 (1)/._16病程管理.psd View File


BIN
src/assets/images/icon9 (1)/._16病程管理_1.psd View File


BIN
src/assets/images/icon9 (1)/._17检验检查.psd View File


BIN
src/assets/images/icon9 (1)/._17检验检查_1.psd View File


BIN
src/assets/images/icon9 (1)/._1启动页.psd View File


BIN
src/assets/images/icon9 (1)/._1启动页_1.psd View File


BIN
src/assets/images/icon9 (1)/._1首页.psd View File


BIN
src/assets/images/icon9 (1)/._2医院介绍-查看更多.psd View File


BIN
src/assets/images/icon9 (1)/._2登录页.psd View File


BIN
src/assets/images/icon9 (1)/._2登录页_1.psd View File


BIN
src/assets/images/icon9 (1)/._3免密码登录.psd View File


BIN
src/assets/images/icon9 (1)/._3免密码登录_1.psd View File


BIN
src/assets/images/icon9 (1)/._3名医介绍-查看更多 .psd View File


BIN
src/assets/images/icon9 (1)/._4名医介绍-医生详情.psd View File


BIN
src/assets/images/icon9 (1)/._4忘记密码.psd View File


BIN
src/assets/images/icon9 (1)/._4忘记密码_1.psd View File


BIN
src/assets/images/icon9 (1)/._5新闻动态.psd View File


BIN
src/assets/images/icon9 (1)/._5注册.psd View File


BIN
src/assets/images/icon9 (1)/._5注册_1.psd View File


BIN
src/assets/images/icon9 (1)/._6新闻详情.psd View File


BIN
src/assets/images/icon9 (1)/._6注册-机构信息.psd View File


BIN
src/assets/images/icon9 (1)/._6注册-机构信息_1.psd View File


BIN
src/assets/images/icon9 (1)/._6活动动态.psd View File


BIN
src/assets/images/icon9 (1)/._7拨打客服.psd View File


BIN
src/assets/images/icon9 (1)/._7拨打客服_1.psd View File


BIN
src/assets/images/icon9 (1)/._7活动详情.psd View File


BIN
src/assets/images/icon9 (1)/._8报名.psd View File


BIN
src/assets/images/icon9 (1)/._8首页-第一步.psd View File


BIN
src/assets/images/icon9 (1)/._8首页-第一步_1.psd View File


BIN
src/assets/images/icon9 (1)/._8首页-第三步.psd View File


BIN
src/assets/images/icon9 (1)/._8首页-第三步_1.psd View File


BIN
src/assets/images/icon9 (1)/._8首页-第二步.psd View File


BIN
src/assets/images/icon9 (1)/._8首页-第二步_1.psd View File


BIN
src/assets/images/icon9 (1)/._8首页.psd View File


BIN
src/assets/images/icon9 (1)/._8首页_1.psd View File


BIN
src/assets/images/icon9 (1)/._9下拉机构弹窗.psd View File


BIN
src/assets/images/icon9 (1)/._9下拉机构弹窗_1.psd View File


BIN
src/assets/images/icon9 (1)/._医嘱.png View File


BIN
src/assets/images/icon9 (1)/._宣教.png View File


BIN
src/assets/images/icon9 (1)/._抢救.png View File


BIN
src/assets/images/icon9 (1)/._排班.png View File


BIN
src/assets/images/icon9 (1)/._检查.png View File


BIN
src/assets/images/icon9 (1)/._病程.png View File


BIN
src/assets/images/icon9 (1)/._耗材.png View File


BIN
src/assets/images/icon9 (1)/._血管通路.png View File


BIN
src/assets/images/icon9 (1)/._透析记录.png View File


BIN
src/assets/images/icon9 (1)/._长期.png View File


BIN
src/assets/images/loginLogo.png View File


BIN
src/assets/images/m01.png View File


BIN
src/assets/images/m02.png View File


BIN
src/assets/images/m03.png View File


BIN
src/assets/images/m04.png View File


BIN
src/assets/images/m05.png View File


BIN
src/assets/images/m06.png View File


BIN
src/assets/images/m07.png View File


BIN
src/assets/images/m08.png View File


BIN
src/assets/images/m09.png View File


BIN
src/assets/images/nojoin.png View File


BIN
src/assets/images/start.png View File


+ 1 - 0
src/assets/styles/common.css View File

@@ -122,3 +122,4 @@ table {
122 122
   border-collapse: collapse;
123 123
   border-spacing: 0;
124 124
 }
125
+

+ 471 - 133
src/kpa_pages/addPatient/index.vue View File

@@ -1,8 +1,9 @@
1 1
 <template>
2 2
   <div class="page_addPatients">
3 3
     <div>
4
-    <el-form ref="patientForm" :model="patientForm" :rules="rules">
4
+    <el-form ref="patientForm" :model="patientForm" :rules="rules"  @submit.native.prevent>
5 5
       <div class="basicInformation">
6
+
6 7
         <h2>基本信息</h2>
7 8
         <div class="basic">
8 9
              <el-form-item  required prop="name">
@@ -14,8 +15,8 @@
14 15
              <el-form-item required prop="sex">
15 16
                     <div class="row">
16 17
                       <p><span class="xing">*</span>性别</p>
17
-                      <van-cell is-link @click="showPopup(1)">{{ ruleForm.sex }}</van-cell>
18
-                      <van-popup v-model="patientForm.sex" position="bottom" :style="{ height: '50%' }">
18
+                      <van-cell is-link @click="showPopup(1)">{{ patientForm.sex }}</van-cell>
19
+                      <van-popup v-model="show1" position="bottom" :style="{ height: '50%' }">
19 20
                          <van-picker
20 21
                            show-toolbar
21 22
                            :columns="columns1"
@@ -28,7 +29,7 @@
28 29
              <el-form-item required prop="idCard">
29 30
                      <div class="row">
30 31
                        <p><span class="xing">*</span>身份证号</p>
31
-                        <el-input v-model="patientForm.idCard" placeholder="请输入"></el-input>
32
+                        <el-input v-model="patientForm.idCard" placeholder="请输入" @blur="checkIdCardNo"></el-input>
32 33
                      </div>
33 34
              </el-form-item>
34 35
              <el-form-item required prop="birthday">
@@ -38,56 +39,51 @@
38 39
                        v-model="patientForm.birthday"
39 40
                        prefix-icon="none"
40 41
                        type="date"
41
-                       placeholder="请选择">
42
+                       placeholder="请选择"
43
+                       format="yyyy-MM-dd"
44
+                       value-format="yyyy-MM-dd">
42 45
                   </el-date-picker>
43 46
                       </div>
44 47
              </el-form-item>
45 48
              <el-form-item required prop="phone">
49
+
50
+        
46 51
                  <div class="row">
47 52
                     <p><span class="xing">*</span>手机号</p>
48
-                   <el-input v-model="patientForm.phone" placeholder="请输入"></el-input>
53
+                   <el-input v-model="patientForm.phone" placeholder="请输入" :maxlength="11"></el-input>
49 54
                   </div>
50 55
              </el-form-item>
51
-             <el-form-item required prop="patientType">
56
+             <el-form-item required prop="patient_type">
52 57
                  <div class="row none">
53 58
                      <p><span class="xing">*</span>病人类型</p>
54
-                     <ul class="typelist">
55
-                       <li class="active">血透病人</li>
56
-                       <li>慢病病人</li>
57
-                       <li>会员病人</li>
58
-                     </ul>
59
+                 <el-checkbox-group v-model="patientForm.patient_type" @change="handleChangePatientType">
60
+                    <el-checkbox-button v-for="item in patientType" :label="item.id" :key="item.id">{{item.name}}</el-checkbox-button>
61
+                  </el-checkbox-group>
59 62
                </div>
60 63
              </el-form-item>
61 64
         </div>
65
+
62 66
       </div>
63
-      <div class="basicInformation">
67
+      <div class="basicInformation" v-show="bloodshow">
64 68
         <h2>血透信息</h2>
65 69
         <div class="basic">
66 70
           <el-form-item required prop="dialysis">
67 71
              <div class="row">
68 72
                <p><span class="xing">*</span>透析号</p>
69 73
                <el-input v-model="patientForm.dialysis" class="dialysis" placeholder="请输入"></el-input>
70
-               <p class="automatic">自动生成</p>
74
+               <p class="automatic" @click="generatedialysisno">自动生成</p>
71 75
             </div>
72 76
           </el-form-item>
73
-           <el-form-item>
77
+           <el-form-item required prop="admissionNumber">
74 78
              <div class="row another">
75 79
               <p><span class="xing">*</span>住院(门诊)号</p>
76
-             <van-cell is-link @click="showPopup(2)">{{ patientNumber }}</van-cell>
77
-             <van-popup v-model="show2" position="bottom" :style="{ height: '50%' }">
78
-              <van-picker
79
-                show-toolbar
80
-                :columns="columns2"
81
-                @cancel="show2=false"
82
-                @confirm="choosePatientNumber"
83
-              />
84
-             </van-popup>
80
+              <el-input class="dialysis" placeholder="请输入" v-model="patientForm.admissionNumber"></el-input>          
85 81
              </div>
86 82
            </el-form-item>
87
-           <el-form-item>
83
+           <el-form-item required prop="patientsoure">
88 84
               <div class="row">
89 85
                <p><span class="xing">*</span>患者来源</p>
90
-               <van-cell is-link @click="showPopup(3)">{{ source }}</van-cell>
86
+               <van-cell is-link @click="showPopup(3)">{{ patientForm.patientsoure }}</van-cell>
91 87
                <van-popup v-model="show3" position="bottom" :style="{ height: '50%' }">
92 88
                  <van-picker
93 89
                   show-toolbar
@@ -101,7 +97,7 @@
101 97
            <el-form-item>
102 98
               <div class="row">
103 99
               <p>留治状态</p>
104
-              <van-cell is-link @click="showPopup(4)">{{ state }}</van-cell>
100
+              <van-cell is-link @click="showPopup(4)">{{ patientForm.lapseto }}</van-cell>
105 101
               <van-popup v-model="show4" position="bottom" :style="{ height: '50%' }">
106 102
                <van-picker
107 103
                  show-toolbar
@@ -113,9 +109,9 @@
113 109
              </div>
114 110
            </el-form-item>
115 111
           <el-form-item>
116
-          <div class="row special">
112
+          <div class="row" id="special">
117 113
             <p>传染病</p>
118
-            <el-checkbox-group v-model="hemodialysisList">
114
+            <el-checkbox-group v-model="patientForm.contagions">
119 115
               <el-checkbox v-for="item in contagionList" v-if="item.type==2" :label="item.id" :key="item.id"
120 116
                       :value="item.id">{{item.name}}
121 117
                </el-checkbox>
@@ -125,7 +121,7 @@
125 121
          <el-form-item>
126 122
             <div class="row another">
127 123
             <p>首次透析日期</p>
128
-            <van-cell is-link @click="showPopup(5)">{{ date }}</van-cell>
124
+            <van-cell is-link @click="showPopup(5)">{{ patientForm.fistDate }}</van-cell>
129 125
             <van-popup v-model="show5" position="bottom" :style="{ height: '50%' }">
130 126
               <van-datetime-picker
131 127
                 v-model="currentDate1"
@@ -136,32 +132,33 @@
136 132
             </van-popup>
137 133
            </div>
138 134
          </el-form-item>
139
-         <el--form-item>
135
+         <el-form-item>
140 136
           <div class="row none">
141 137
             <p>诊断</p>
142 138
             <el-input
143 139
               type="textarea"
144 140
               :autosize="{ minRows: 2, maxRows: 10}"
145 141
               placeholder="请输入内容"
146
-              v-model="diagnose"
142
+              v-model="patientForm.diagnose"
147 143
             ></el-input>
148 144
           </div>
149
-          </el--form-item>
145
+          </el-form-item>
150 146
         </div>
151 147
       </div>
152
-      <div class="basicInformation">
148
+
149
+      <div class="basicInformation" v-show="slowDiseaseShow">
153 150
         <h2>慢病资料</h2>
154 151
         <div class="basic">
155 152
           <el-form-item>
156 153
             <div class="row">
157 154
               <p>设备ID</p>
158
-              <el-input v-model="requipment" placeholder="请输入"></el-input>
155
+              <el-input v-model="patientForm.requipmentId" placeholder="请输入"></el-input>
159 156
             </div>
160 157
           </el-form-item>
161 158
           <el-form-item>
162
-          <div class="row special">
159
+          <div class="row" id="special">
163 160
             <p>传染病</p>
164
-            <el-checkbox-group v-model="slowList">
161
+            <el-checkbox-group v-model="patientForm.slowcontagions">
165 162
                <el-checkbox v-for="item in contagionList" v-if="item.type==2" :label="item.id" :key="item.id"
166 163
                       :value="item.id">{{item.name}}
167 164
                </el-checkbox>
@@ -169,9 +166,9 @@
169 166
           </div>
170 167
           </el-form-item>
171 168
           <el-form-item>
172
-           <div class="row special minHeight">
169
+           <div class="row minHeight" id="special1">
173 170
             <p>慢性病</p>
174
-            <el-checkbox-group v-model="slowList">
171
+            <el-checkbox-group v-model="patientForm.slowPatients">
175 172
                 <el-checkbox v-for="item in checkDisease" :label="item.id" :key="item.id" :value="item.id">
176 173
                   {{item.name}}
177 174
                 </el-checkbox>
@@ -180,7 +177,7 @@
180 177
           </el-form-item>
181 178
         </div>
182 179
       </div>
183
-      <div class="basicInformation">
180
+      <div class="basicInformation" v-show="memberShow">
184 181
         <h2>会员资料</h2>
185 182
         <div class="basic">
186 183
           <el-form-item>
@@ -189,7 +186,7 @@
189 186
             <van-cell is-link @click="showPopup(6)">{{ sickTime }}</van-cell>
190 187
             <van-popup v-model="show6" position="bottom" :style="{ height: '50%' }">
191 188
               <van-datetime-picker
192
-                v-model="currentDate2"
189
+                v-model="patientForm.memberIllnessTime"
193 190
                 type="date"
194 191
                 @cancel="show6=false"
195 192
                 @confirm="chooseTime"
@@ -200,7 +197,7 @@
200 197
          <el-form-item>
201 198
           <div class="row">
202 199
             <p>留治状态</p>
203
-            <van-cell is-link @click="showPopup(7)">{{ state2 }}</van-cell>
200
+            <van-cell is-link @click="showPopup(7)">{{ patientForm.memberlapseto }}</van-cell>
204 201
             <van-popup v-model="show7" position="bottom" :style="{ height: '50%' }">
205 202
               <van-picker
206 203
                 show-toolbar
@@ -214,7 +211,7 @@
214 211
           <el-form-item>
215 212
           <div class="row">
216 213
             <p>治疗方式</p>
217
-            <van-cell is-link @click="showPopup(8)">{{ way }}</van-cell>
214
+            <van-cell is-link @click="showPopup(8)">{{ patientForm.TreatmentMethod }}</van-cell>
218 215
             <van-popup v-model="show8" position="bottom" :style="{ height: '50%' }">
219 216
               <van-picker
220 217
                 show-toolbar
@@ -232,18 +229,22 @@
232 229
         <p class="photoText">患者头像</p>
233 230
         <el-upload
234 231
           class="avatar-uploader"
235
-          action="https://jsonplaceholder.typicode.com/posts/"
232
+          action="https://upload.qiniup.com"
236 233
           :show-file-list="false"
237 234
           :on-success="handleAvatarSuccess"
238 235
           :before-upload="beforeAvatarUpload"
236
+           :data="uploadData"
239 237
         >
240
-          <img v-if="imageUrl" :src="imageUrl" class="avatar" />
238
+          <img v-if="patientForm.patientHead" :src="patientForm.patientHead" class="avatar" />
241 239
           <i v-else class="el-icon-plus avatar-uploader-icon"></i>
242 240
         </el-upload>
243 241
         <!-- <el-button type="primary">上传头像</el-button> -->
244 242
         <el-upload
245 243
            class="upload-demo"
246
-           action="https://jsonplaceholder.typicode.com/posts/"
244
+           action="https://upload.qiniup.com"
245
+           :on-success="handleAvatarSuccess"
246
+           :before-upload="beforeAvatarUpload"
247
+           :data="uploadData"
247 248
             multiple
248 249
             :limit="3">
249 250
             <el-button size="small" type="primary">点击上传</el-button>
@@ -258,19 +259,32 @@
258 259
 
259 260
 
260 261
 <script>
261
-let moment = require("moment");
262
+const moment = require('moment')
263
+import { GenerateDialysisNo, savePatient } from '@/api/patient/patient'
264
+import { isCardNo, checkMobile, getFileExtension } from '@/utils/tools'
265
+import { getToken } from '@/api/qiniu'
262 266
 export default {
263 267
   data() {
268
+    var checkMobileRule = (rule, value, callback) => {
269
+      if (!checkMobile(value)) {
270
+        callback(new Error('请填写正确的手机号'))
271
+      } else {
272
+        callback()
273
+      }
274
+    }
275
+
264 276
     return {
265 277
       ruleForm: {
266
-        name: "",
267
-        sex: "请选择性别",
268
-        idCard: "",
269
-        birthday: "",
270
-        phone: "",
271
-        patientNumber: ""
278
+        name: '',
279
+        sex: '请选择性别',
280
+        idCard: '',
281
+        birthday: '',
282
+        phone: '',
283
+        patientNumber: ''
272 284
       },
273
-      dialysis: "",
285
+      qiniuDomain: 'https://images.shengws.com/',
286
+      uploadData: { token: '', key: '' },
287
+      dialysis: '',
274 288
       show1: false,
275 289
       show2: false,
276 290
       show3: false,
@@ -279,141 +293,390 @@ export default {
279 293
       show6: false,
280 294
       show7: false,
281 295
       show8: false,
282
-      columns1: ["男", "女"],
283
-      columns2: ["123", "456"],
284
-      columns3: ["门诊", "123"],
285
-      columns4: ["在院", "出院"],
286
-      columns5: ["在", "不在"],
287
-      columns6: ["方式一", "方式二"],
296
+      columns1: ['男', '女'],
297
+      columns2: ['123', '456'],
298
+      columns3: ['门诊', '住院'],
299
+      columns4: ['留治', '转出'],
300
+      columns5: ['留治', '转出'],
301
+      columns6: [
302
+        '西医治疗',
303
+        '中医治疗',
304
+        '血液透析',
305
+        '腹膜透析',
306
+        '肾移植',
307
+        '其他'
308
+      ],
288 309
       currentDate1: new Date(),
289 310
       currentDate2: new Date(),
290 311
       hemodialysisList: [],
291 312
       slowList: [],
292
-      patientNumber: "",
293
-      source: "",
294
-      state: "",
295
-      date: "",
296
-      diagnose: "",
297
-      requipment: "",
298
-      sickTime: "",
299
-      state2: "",
300
-      way: "",
301
-      imageUrl: "",
313
+      patientNumber: '',
314
+      source: '',
315
+      state: '',
316
+      date: '',
317
+      diagnose: '',
318
+      requipment: '',
319
+      sickTime: '',
320
+      state2: '',
321
+      way: '',
322
+      patientHead: '',
302 323
       contagionList: [// 传染病
303
-       { id: 1, name: '乙肝', type: 2 },
304
-       { id: 2, name: '丙肝', type: 2 },
305
-       { id: 3, name: '艾滋病', type: 2 },
306
-       { id: 4, name: '肺结核', type: 2 },
307
-       { id: 5, name: '梅毒', type: 2 }
324
+        { id: 2, name: '乙肝', type: 2 },
325
+        { id: 3, name: '丙肝', type: 2 },
326
+        { id: 4, name: '艾滋病', type: 2 },
327
+        { id: 5, name: '肺结核', type: 2 },
328
+        { id: 6, name: '梅毒', type: 2 }
308 329
       ],
309 330
       checkDisease: [// 慢性病
310 331
         { id: 1, name: '慢性病' },
311 332
         { id: 2, name: '神经病' },
312 333
         { id: 3, name: '抑郁症' }
313 334
       ],
314
-      patientForm:{
315
-         name:"",
316
-         sex:"",
317
-         idCard:"",
318
-         birthday:"",
319
-         phone:"",
320
-         dialysis:"",
335
+      // patientType: ['血透病人', '慢病病人', '会员病人'],
336
+      patientType: [
337
+        { id: 1, name: '血透病人' },
338
+        { id: 2, name: '慢病病人' },
339
+        { id: 3, name: '会员病人' }
340
+      ],
341
+      checkboxGroup1: ['北京'],
342
+      patientForm: {
343
+        name: '',
344
+        sex: '',
345
+        idCard: '',
346
+        birthday: '',
347
+        phone: '',
348
+        dialysis: '',
349
+        patient_type: [1],
350
+        admissionNumber: '',
351
+        patientsoure: '',
352
+        lapseto: '',
353
+        contagions: [],
354
+        fistDate: '',
355
+        diagnose: '',
356
+        requipmentId: '',
357
+        slowcontagions: [],
358
+        slowPatients: [],
359
+        memberIllnessTime: '',
360
+        memberlapseto: '',
361
+        patientHead: '',
362
+        TreatmentMethod: ''
321 363
       },
322
-       rules:{
323
-        name:[{required:true,message: "请输入密码"}],
324
-        confirmpassword:[{required:true,message:"请输入确认密码"}],
364
+      rules: {
365
+        name: [{ required: true, message: '请输入姓名' }],
366
+        sex: [{ required: true, message: '请选择性别' }],
367
+        idCard: [{ required: true, message: '请输入身份证号' }],
368
+        birthday: [{ required: true, message: '请填写出生日期' }],
369
+        phone: [{ required: true, message: '请输入手机号' }, { validator: checkMobileRule }],
370
+        dialysis: [{ required: true, message: '请输入透析号' }],
371
+        patient_type: [{ required: true, message: '请选择病人类型' }],
372
+        admissionNumber: [{ required: true, message: '请填写住院号' }],
373
+        patientsoure: [{ required: true, message: '请选择患者来源' }]
325 374
       },
326
-    };
375
+      slowDiseaseShow: false,
376
+      memberShow: false,
377
+      bloodshow: true
378
+    }
327 379
   },
328 380
   methods: {
329 381
     showPopup(index) {
330
-      if (index == 1) {
331
-        this.show1 = true;
332
-      } else if (index == 2) {
333
-        this.show2 = true;
334
-      } else if (index == 3) {
335
-        this.show3 = true;
336
-      } else if (index == 4) {
337
-        this.show4 = true;
338
-      } else if (index == 5) {
339
-        this.show5 = true;
340
-      } else if (index == 6) {
341
-        this.show6 = true;
342
-      } else if (index == 7) {
343
-        this.show7 = true;
344
-      } else if (index == 8) {
345
-        this.show8 = true;
382
+      if (index === 1) {
383
+        this.show1 = true
384
+      } else if (index === 2) {
385
+        this.show2 = true
386
+      } else if (index === 3) {
387
+        this.show3 = true
388
+      } else if (index === 4) {
389
+        this.show4 = true
390
+      } else if (index === 5) {
391
+        this.show5 = true
392
+      } else if (index === 6) {
393
+        this.show6 = true
394
+      } else if (index === 7) {
395
+        this.show7 = true
396
+      } else if (index === 8) {
397
+        this.show8 = true
346 398
       }
347 399
     },
348 400
     // 性别
349 401
     chooseSex(value) {
350 402
       // console.log(value);
351
-      this.ruleForm.sex = value;
352
-      this.show1 = false;
403
+      this.patientForm.sex = value
404
+      this.show1 = false
353 405
     },
354 406
     // 门诊号
355 407
     choosePatientNumber(value) {
356
-      this.patientNumber = value;
357
-      this.show2 = false;
408
+      this.patientNumber = value
409
+      this.show2 = false
358 410
     },
359 411
     // 来源
360 412
     chooseSource(value) {
361
-      this.source = value;
362
-      this.show3 = false;
413
+      this.patientForm.patientsoure = value
414
+      this.show3 = false
363 415
     },
364 416
     // 状态
365 417
     chooseState(value) {
366
-      this.state = value;
367
-      this.show4 = false;
418
+      this.patientForm.lapseto = value
419
+      this.show4 = false
368 420
     },
369 421
     // 首次透析日期
370 422
     chooseDate(value) {
371 423
       // console.log(moment(value).format("YYYY-MM-DD"));
372
-      this.date = moment(value).format("YYYY-MM-DD");
373
-      this.show5 = false;
424
+      this.patientForm.fistDate = moment(value).format('YYYY-MM-DD')
425
+      this.show5 = false
374 426
     },
375 427
     // 患病时间
376 428
     chooseTime(value) {
377
-      this.sickTime = moment(value).format("YYYY-MM-DD");
378
-      this.show6 = false;
429
+      this.sickTime = moment(value).format('YYYY-MM-DD')
430
+      this.show6 = false
379 431
     },
380 432
     // 会员资料留治状态
381 433
     chooseState2(value) {
382
-      this.state2 = value;
383
-      this.show7 = false;
434
+      this.patientForm.memberlapseto = value
435
+      this.show7 = false
384 436
     },
385
-    //治疗方式
437
+    // 治疗方式
386 438
     chooseWay(value) {
387
-      this.way = value;
388
-      this.show8 = false;
439
+      this.patientForm.TreatmentMethod = value
440
+      this.show8 = false
389 441
     },
390
-    // 上传头像
442
+    savePatient(formName) {
443
+      var telephone = this.$route.query.phone
444
+      console.log('telephone', telephone)
445
+      var sex = this.patientForm.sex
446
+      console.log('sex是什么', sex)
447
+      if (sex === '男') {
448
+        this.patientForm.sex = 1
449
+      }
450
+
451
+      if (sex === '女') {
452
+        this.patientForm.sex = 2
453
+      }
454
+      var patientsour = this.patientForm.patientsoure
455
+      if (patientsour === '') {
456
+        this.patientForm.patientsoure = 0
457
+      }
458
+      if (patientsour === '门诊') {
459
+        this.patientForm.patientsoure = 1
460
+      }
461
+
462
+      if (patientsour === '住院') {
463
+        this.patientForm.patientsour = 2
464
+      }
465
+      var lapseto = this.patientForm.lapseto
466
+      console.log('lapseto是什么', lapseto)
467
+      if (lapseto === '留治') {
468
+        this.patientForm.lapseto = 1
469
+      }
470
+      if (lapseto === '转出') {
471
+        this.patientForm.lapseto = 2
472
+      }
473
+
474
+      var memberlapseto = this.patientForm.memberlapseto
475
+      console.log('会员患病时间', memberlapseto)
476
+      if (memberlapseto === '留治') {
477
+        this.patientForm.memberlapseto = 1
478
+      }
479
+      if (memberlapseto === '转出') {
480
+        this.patientForm.memberlapseto = 2
481
+      }
482
+
483
+      var TreatmentMethod = this.patientForm.TreatmentMethod
484
+      if (TreatmentMethod === '西医治疗') {
485
+        this.patientForm.TreatmentMethod = 1
486
+      }
487
+      if (TreatmentMethod === '中医治疗') {
488
+        this.patientForm.TreatmentMethod = 2
489
+      }
490
+
491
+      if (TreatmentMethod === '血液透析') {
492
+        this.patientForm.TreatmentMethod = 3
493
+      }
494
+
495
+      if (TreatmentMethod === '腹膜透析') {
496
+        this.patientForm.TreatmentMethod = 4
497
+      }
498
+
499
+      if (TreatmentMethod === '肾移植') {
500
+        this.patientForm.TreatmentMethod = 5
501
+      }
502
+
503
+      if (TreatmentMethod === '其他') {
504
+        this.patientForm.TreatmentMethod = 6
505
+      }
506
+
507
+      if (this.patientForm.dialysis === '') {
508
+        this.patientForm.dialysis = 0
509
+      }
510
+
511
+      if (this.patientForm.admissionNumber === '') {
512
+        this.patientForm.admissionNumber = 0
513
+      }
514
+      if (this.patientForm.memberlapseto === '') {
515
+        this.patientForm.memberlapseto = 1
516
+      }
517
+
518
+      if (this.patientForm.TreatmentMethod === '') {
519
+        this.patientForm.TreatmentMethod = 1
520
+      }
521
+
522
+      this.$refs[formName].validate((valid) => {
523
+        if (valid) {
524
+          savePatient(this.patientForm, telephone).then(response => {
525
+            if (response.data.state === 1) {
526
+              var patients = response.data.data.bloodPatients
527
+              // console.log('patients', patients)
528
+              var patientss = response.data.data.patientss
529
+              console.log('paitentss', patientss)
530
+              var phone = this.$route.query.phone
531
+              this.$router.push('/patientmanagement?phone=' + phone)
532
+            } else {
533
+              this.$message.error('身份证号码或者手机号码重复')
534
+            }
535
+          })
536
+        }
537
+      })
538
+    },
539
+    generatedialysisno() {
540
+      var phone = this.$route.query.phone
541
+      console.log('phone的是什么', phone)
542
+      GenerateDialysisNo(phone).then(response => {
543
+        // eslint-disable-next-line eqeqeq
544
+        if (response.data.state == 1) {
545
+          var no = response.data.data.no + ''
546
+          console.log('no', no)
547
+          console.log('no是设么', response.data.data.no)
548
+          this.patientForm.dialysis = no
549
+        }
550
+      })
551
+    },
552
+    checkIdCardNo() {
553
+      if (!isCardNo(this.patientForm.idCard)) {
554
+        this.$message.error('身份证号码信息有误!')
555
+        this.patientForm.birthday = ''
556
+        return false
557
+      }
558
+      var thisLen = this.patientForm.idCard.length
559
+      var birth = ''
560
+      if (thisLen === 15) {
561
+        birth = '19' + this.patientForm.idCard.substr(6, 6)
562
+      } else {
563
+        birth = this.patientForm.idCard.substr(6, 8)
564
+      }
565
+      this.patientForm.birthday = birth.substr(0, 4) + '-' + birth.substr(4, 2) + '-' + birth.substr(6, 2)
566
+      console.log('出生日期', this.patientForm.birthday)
567
+    },
568
+
569
+    handleChangePatientType(values) {
570
+      console.log('values是设么', values)
571
+      console.log('values', values[1])
572
+      for (let index = 0; index < values.length; index++) {
573
+        if (values[0] === 1) {
574
+          this.bloodshow = true
575
+          this.slowDiseaseShow = false
576
+          this.memberShow = false
577
+        }
578
+        if (values[0] === 1 && values[1] === 2) {
579
+          this.slowDiseaseShow = true
580
+          this.bloodshow = true
581
+          this.memberShow = false
582
+        }
583
+        if (values[0] === 1 && values[2] === 2) {
584
+          this.bloodshow = true
585
+          this.slowDiseaseShow = false
586
+          this.memberShow = true
587
+        }
588
+
589
+        if (values[0] === 1 && values[1] === 2 && values[2] === 3) {
590
+          this.bloodshow = true
591
+          this.slowDiseaseShow = true
592
+          this.memberShow = true
593
+        }
594
+
595
+        if (values[0] === 1 && values[1] === 3) {
596
+          this.slowDiseaseShow = true
597
+          this.memberShow = true
598
+          this.bloodshow = false
599
+        }
600
+
601
+        if (values[0] === 2) {
602
+          this.slowDiseaseShow = true
603
+          this.bloodshow = false
604
+          this.memberShow = false
605
+        }
606
+
607
+        if (values[0] === 3) {
608
+          this.memberShow = true
609
+          this.slowDiseaseShow = false
610
+          this.bloodshow = false
611
+        }
612
+      }
613
+    },
614
+    changeSex(value) {
615
+      console.log('value是什么', value)
616
+    },
617
+    // eslint-disable-next-line no-dupe-keys
391 618
     handleAvatarSuccess(res, file) {
392
-      this.imageUrl = URL.createObjectURL(file.raw);
619
+      this.patientForm.patientHead = this.qiniuDomain + res.url
620
+      this.uploading = false
393 621
     },
622
+
623
+    // eslint-disable-next-line no-dupe-keys
394 624
     beforeAvatarUpload(file) {
395
-      const isJPG = file.type === "image/jpeg";
396
-      const isLt2M = file.size / 1024 / 1024 < 2;
625
+      var fileType = file.type
626
+      const isJPG = fileType.indexOf('image') > -1
627
+      const isLt2M = file.size / 1024 / 1024 < 2
397 628
 
398 629
       if (!isJPG) {
399
-        this.$message.error("上传头像图片只能是 JPG 格式!");
630
+        this.$message.error('只能上传图片')
631
+        return false
400 632
       }
401 633
       if (!isLt2M) {
402
-        this.$message.error("上传头像图片大小不能超过 2MB!");
634
+        this.$message.error('上传头像图片大小不能超过 2MB!')
635
+        return false
403 636
       }
404
-      return isJPG && isLt2M;
405
-    },
406
-    savePatient(formName){
407
-      this.$refs[formName].validate((valid)=>{
408
-        if(valid){
409
-          savePatient().then(response=>{
410 637
 
638
+      var date = new Date()
639
+      // eslint-disable-next-line no-undef
640
+      var ext = getFileExtension(file.name)
641
+      var key =
642
+        '' +
643
+        date.getFullYear() +
644
+        (date.getMonth() + 1) +
645
+        date.getDate() +
646
+        date.getHours() +
647
+        date.getMinutes() +
648
+        date.getSeconds() +
649
+        '_o_' +
650
+        file.uid +
651
+        '.' +
652
+        ext
653
+      this.uploading = true
654
+      this.loadingText = '机构头像上传中'
655
+
656
+      const _self = this
657
+      return new Promise((resolve, reject) => {
658
+        getToken()
659
+          .then(response => {
660
+            const token = response.data.data.uptoken
661
+            console.log('token是什么', token)
662
+            _self._data.uploadData.token = token
663
+            _self._data.uploadData.key = key
664
+            resolve(true)
665
+          })
666
+          // eslint-disable-next-line handle-callback-err
667
+          .catch(err => {
668
+            reject(false)
669
+            this.uploading = false
411 670
           })
412
-        }
413 671
       })
414 672
     }
673
+
674
+  },
675
+  created() {
676
+    var phone = this.$route.query.phone
677
+    console.log('phones是什么', phone)
415 678
   }
416
-};
679
+}
417 680
 </script>
418 681
 
419 682
 
@@ -465,6 +728,44 @@ export default {
465 728
         font-weight: 600;
466 729
         color: #000;
467 730
       }
731
+
732
+   .el-checkbox-group {
733
+        float: left;
734
+        width: 15.125rem;
735
+        height: 1.875rem;
736
+        margin: 0.9375rem 0;
737
+        display: flex;
738
+        justify-content: space-between;
739
+        align-self: center;
740
+        align-items: center;
741
+      }
742
+
743
+     .el-checkbox-button {
744
+        width: 4.5625rem;
745
+        height: 1.875rem;
746
+        display: block;
747
+        float: left;
748
+        border-radius: 0.9375rem;
749
+      }
750
+
751
+       .el-checkbox-button__inner {
752
+        display: block;
753
+        border: none;
754
+        width: 4.5625rem;
755
+        height: 1.875rem;
756
+        border-radius: 0.9375rem;
757
+        color: #9b9b9b;
758
+        line-height: 1.875rem;
759
+        font-size: 0.8125rem;
760
+        padding: 0;
761
+        background: rgba(244, 244, 244, 1);
762
+      }
763
+
764
+     .el-checkbox-button.is-checked .el-checkbox-button__inner {
765
+        background: rgba(81, 119, 238, 0.2);
766
+        color: #5177ee;
767
+        box-shadow: none;
768
+      }
468 769
       .xing{
469 770
         color: red;
470 771
         margin-right: 6px;
@@ -653,4 +954,41 @@ export default {
653 954
 .el-form-item{
654 955
   margin-bottom: 0px;
655 956
 }
957
+
958
+#special {
959
+  min-height: 5.375rem;
960
+  .el-checkbox-group {
961
+    width: 15.125rem;
962
+    min-height: 5.375rem;
963
+    display: block;
964
+    float: right;
965
+    line-height: 2.6rem;
966
+    margin: 0;
967
+  }
968
+  .el-checkbox {
969
+    margin-right: 0.75rem;
970
+  }
971
+  .el-checkbox__label {
972
+    padding-left: 6px;
973
+    font-size: 0.875rem;
974
+  }
975
+}
976
+#special1 {
977
+  .el-checkbox-group {
978
+    width: 15.125rem;
979
+    // min-height: 5.375rem;
980
+    display: block;
981
+    float: right;
982
+    line-height: 2.6rem;
983
+    margin: 0;
984
+  }
985
+  .el-checkbox {
986
+    margin-right: 0.75rem;
987
+    margin-top: 0.5rem;
988
+  }
989
+  .el-checkbox__label {
990
+    padding-left: 6px;
991
+    font-size: 0.875rem;
992
+  }
993
+}
656 994
 </style>

File diff suppressed because it is too large
+ 4244 - 93
src/kpa_pages/agecyInformation/index.vue


+ 135 - 0
src/kpa_pages/allCheck/index.vue View File

@@ -0,0 +1,135 @@
1
+<template>
2
+  <div class="page_allCheck">
3
+    <div class="searchList">
4
+      <van-tabs
5
+        v-model="active"
6
+        title-active-color="#000000"
7
+        title-inactive-color="#3C3C3C"
8
+        v-for="item in checkdata"
9
+        :key="item.id"
10
+      >
11
+        <van-tab :title="item.id">
12
+          <div class="all">
13
+            <ul class="headline">
14
+              <li>检查项目</li>
15
+              <li>结果</li>
16
+              <li>参考值</li>
17
+            </ul>
18
+
19
+            <ul class="itemList">
20
+              <li v-for="(item, index) in 8" :key="index">
21
+                <span>白细胞(WBS)</span>
22
+                <span>
23
+                  30
24
+                  <i class="el-icon-top"></i>
25
+                  <i class="el-icon-bottom"></i>
26
+                </span>
27
+                <span>4.00~10.00</span>
28
+              </li>
29
+            </ul>
30
+          </div>
31
+        </van-tab>
32
+      </van-tabs>
33
+    </div>
34
+  </div>
35
+</template>
36
+
37
+<script>
38
+import { checkAll } from "@/api/patient/patient";
39
+export default {
40
+  data() {
41
+    return {
42
+      searchVal: "",
43
+      active: 0,
44
+      checkdata: []
45
+    };
46
+  },
47
+  methods: {
48
+    checkAll(inspectdate, patientid, orgid) {
49
+      // eslint-disable-next-line no-undef
50
+      checkAll(inspectdate, patientid, orgid).then(response => {
51
+        if (response.data.state === 1) {
52
+          var checkdata = response.data.data.checkdata;
53
+          this.checkdata = checkdata;
54
+          console.log("checkdata", checkdata);
55
+        }
56
+      });
57
+    }
58
+  },
59
+  created() {
60
+    var inspect_date = this.$route.query.inspect_date;
61
+    var patientid = this.$route.query.patientid;
62
+    var orgid = this.$route.query.orgid;
63
+    this.checkAll(inspect_date, patientid, orgid);
64
+  }
65
+};
66
+</script>
67
+
68
+<style lang="scss">
69
+.page_allCheck {
70
+  overflow: hidden;
71
+  height: 100%;
72
+
73
+  .searchList {
74
+    height: 100%;
75
+    .van-tabs {
76
+      display: flex;
77
+      flex-direction: column;
78
+      height: 100%;
79
+      > div:last-child {
80
+        flex: 1;
81
+        overflow: auto;
82
+        background: #f4f4f4;
83
+      }
84
+    }
85
+    .van-tab {
86
+      font-weight: 600;
87
+    }
88
+    .van-tab--active {
89
+      font-size: 1.25rem;
90
+      font-weight: 600;
91
+    }
92
+    .van-tabs__line {
93
+      height: 0.25rem;
94
+      background: linear-gradient(
95
+        -90deg,
96
+        rgba(129, 159, 246, 1),
97
+        rgba(81, 119, 238, 1),
98
+        rgba(75, 102, 234, 1)
99
+      );
100
+    }
101
+    .van-tabs__content {
102
+      background: #f8f8f8;
103
+    }
104
+    .all {
105
+      background: #fff;
106
+      margin-top: 1.25rem;
107
+      padding-top: 0.625rem;
108
+    }
109
+    .headline {
110
+      display: flex;
111
+      height: 2.5rem;
112
+      align-items: center;
113
+      background: #f7f7fa;
114
+
115
+      li {
116
+        width: 33.3%;
117
+        text-align: center;
118
+        font-size: 0.75rem;
119
+      }
120
+    }
121
+    .itemList {
122
+      li {
123
+        display: flex;
124
+        align-items: center;
125
+        height: 2.5rem;
126
+        span {
127
+          width: 33.3%;
128
+          text-align: center;
129
+          font-size: 0.75rem;
130
+        }
131
+      }
132
+    }
133
+  }
134
+}
135
+</style>

+ 476 - 0
src/kpa_pages/check/index.vue View File

@@ -0,0 +1,476 @@
1
+<template>
2
+  <div class="page_doctorAdvice">
3
+    <div class="box">
4
+      <div class="info">
5
+        <div class="photo">
6
+          <img src="../../assets/images/one.jpg" alt />
7
+        </div>
8
+        <div class="infoRight">
9
+          <div class="rightTop">
10
+            <span class="name">小小包</span>
11
+            <span>男</span>&ensp;|
12
+            <span>34岁</span>
13
+          </div>
14
+          <div class="rightBottom">
15
+            <p class="num">
16
+              [透析号:
17
+              <span>001</span>]
18
+            </p>
19
+            <div class="imgList">
20
+              <img src="../../assets/images/b1.png" alt />
21
+              <img src="../../assets/images/b2.png" alt />
22
+              <img src="../../assets/images/b3.png" alt />
23
+              <img src="../../assets/images/b4.png" alt />
24
+            </div>
25
+          </div>
26
+        </div>
27
+      </div>
28
+    </div>
29
+    <div class="search">
30
+      <el-input
31
+        placeholder="输入医嘱内容"
32
+        prefix-icon="el-icon-search"
33
+        v-model="searchVal"
34
+      ></el-input>
35
+    </div>
36
+    <div class="time">
37
+      <van-cell @click="showPopup(1)">
38
+        {{ startTime }}
39
+        <van-icon name="arrow-down" />
40
+      </van-cell>
41
+      <van-popup v-model="show1" position="bottom" :style="{ height: '50%' }">
42
+        <van-datetime-picker
43
+          v-model="currentDate1"
44
+          type="date"
45
+          @cancel="show1 = false"
46
+          @confirm="chooseStartTime"
47
+        />
48
+      </van-popup>
49
+      <div class="line">-</div>
50
+      <van-cell @click="showPopup(2)">
51
+        {{ endTime }}
52
+        <van-icon name="arrow-down" />
53
+      </van-cell>
54
+      <van-popup v-model="show2" position="bottom" :style="{ height: '50%' }">
55
+        <van-datetime-picker
56
+          v-model="currentDate2"
57
+          type="date"
58
+          @cancel="show2 = false"
59
+          @confirm="chooseEndTime"
60
+        />
61
+      </van-popup>
62
+      <van-cell @click="showPopup(3)">
63
+        {{ projectVal }}
64
+        <van-icon name="arrow-down" />
65
+      </van-cell>
66
+
67
+      <van-popup v-model="show3" position="bottom" :style="{ height: '50%' }">
68
+        <van-picker
69
+          :columns="columns"
70
+          show-toolbar
71
+          @cancel="onCancel"
72
+          @confirm="onConfirm"
73
+        />
74
+      </van-popup>
75
+    </div>
76
+    <div class="statOrder">
77
+      <el-collapse accordion @change="change">
78
+        <div v-for="item in this.checkRecord" :key="item.id">
79
+          <van-swipe-cell>
80
+            <van-cell :border="false">
81
+              <template>
82
+                <div class="custom-title">
83
+                  {{ RecordTime(item.inspect_date) }}
84
+                </div>
85
+              </template>
86
+              <!-- 使用 right-icon 插槽来自定义右侧图标 -->
87
+              <van-icon
88
+                slot="right-icon"
89
+                name="ellipsis"
90
+                style="line-height: inherit;"
91
+                @click="
92
+                  onClick(1, item.inspect_date, item.patient_id, item.org_id)
93
+                "
94
+              />
95
+            </van-cell>
96
+            <template slot="right">
97
+              <van-button square type="danger" text="删除" />
98
+            </template>
99
+          </van-swipe-cell>
100
+
101
+          <van-action-sheet
102
+            v-model="show4"
103
+            :actions="actions"
104
+            cancel-text="取消"
105
+            @select="ckeckAll"
106
+          ></van-action-sheet>
107
+
108
+          <div class="msg">
109
+            <div class="msgTitle">
110
+              <ul>
111
+                <li></li>
112
+                <li></li>
113
+              </ul>
114
+            </div>
115
+          </div>
116
+        </div>
117
+      </el-collapse>
118
+    </div>
119
+    <div class="add">
120
+      <img src="../../assets/images/add3.png" alt />
121
+    </div>
122
+  </div>
123
+</template>
124
+
125
+<script>
126
+const moment = require("moment");
127
+import { getcheckPatientData } from '@/api/patient/patient';
128
+import { uParseTime } from '@/utils/tools';
129
+export default {
130
+  data() {
131
+    return {
132
+      searchVal: "",
133
+      startTime: moment(new Date()).format("YYYY-MM-DD"),
134
+      endTime: moment(new Date()).format("YYYY-MM-DD"),
135
+      show1: false,
136
+      show2: false,
137
+      show3: false,
138
+      currentDate1: new Date(),
139
+      currentDate2: new Date(),
140
+      projectVal: "检查项目",
141
+      columns: ["杭州", "宁波", "温州", "嘉兴", "湖州"],
142
+      show4: false,
143
+      actions: [{ name: "查看所有检查" }, { name: "删除" }],
144
+      checkRecord: [],
145
+      inspect_date: "",
146
+      patientid: "",
147
+      orgid: ""
148
+    };
149
+  },
150
+  methods: {
151
+    change() {
152
+      this.isShow = !this.isShow;
153
+    },
154
+    showPopup(index) {
155
+      if (index === 1) {
156
+        this.show1 = true;
157
+      } else if (index === 2) {
158
+        this.show2 = true;
159
+      } else if (index === 3) {
160
+        this.show3 = true;
161
+      }
162
+    },
163
+    chooseStartTime(value) {
164
+      this.startTime = moment(value).format("YYYY-MM-DD");
165
+      this.show1 = false;
166
+      var patientid = this.$route.query.patientid;
167
+      var orgid = this.$route.query.orgid;
168
+      this.getcheckPatientData(patientid, orgid, this.startTime);
169
+    },
170
+    chooseEndTime(value) {
171
+      this.endTime = moment(value).format("YYYY-MM-DD");
172
+      this.show2 = false;
173
+      var patientid = this.$route.query.patientid;
174
+      var orgid = this.$route.query.orgid;
175
+      this.getcheckPatientData(patientid, orgid, this.endTime);
176
+    },
177
+    onCancel() {
178
+      this.show3 = false;
179
+    },
180
+    onConfirm(value) {
181
+      this.projectVal = value;
182
+      this.show3 = false;
183
+    },
184
+    onClick(index, date, patientid, orgid) {
185
+      this.inspect_date = date;
186
+      this.patientid = patientid;
187
+      this.orgid = orgid;
188
+      if (index === 1) {
189
+        this.show4 = true;
190
+      } else if (index === 2) {
191
+        this.show4 = true;
192
+      }
193
+    },
194
+    ckeckAll(item, index) {
195
+      if (index === 0) {
196
+        this.$router.push(
197
+          "/allCheck?inspect_date=" +
198
+            this.inspect_date +
199
+            "&patientid=" +
200
+            this.patientid +
201
+            "&orgid=" +
202
+            this.orgid
203
+        );
204
+      }
205
+    },
206
+    RecordTime(time) {
207
+      // return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
208
+      return uParseTime(time, "{y}-{m}-{d}");
209
+    },
210
+    getcheckPatientData(patientid, orgid, startTime, endTime) {
211
+      getcheckPatientData(patientid, orgid, this.startTime, this.endTime).then(
212
+        response => {
213
+          if (response.data.state === 1) {
214
+            var checkpatientdata = response.data.data.checkpatientdata;
215
+            this.checkRecord = checkpatientdata;
216
+            console.log("checkpatientdata", checkpatientdata);
217
+            // var checkdata = response.data.data.checkdata;
218
+            //  console.log("checkdata", checkdata);
219
+          }
220
+        }
221
+      );
222
+    }
223
+  },
224
+  created() {
225
+    var patientid = this.$route.query.patientid;
226
+    console.log("patientid", patientid);
227
+    var orgid = this.$route.query.orgid;
228
+    console.log("机构id", orgid);
229
+    this.getcheckPatientData(patientid, orgid);
230
+  }
231
+};
232
+</script>
233
+
234
+<style lang="scss">
235
+.page_doctorAdvice {
236
+  overflow: hidden;
237
+  height: 100%;
238
+  overflow-y: auto;
239
+  .box {
240
+    width: 100%;
241
+    height: 9.1875rem;
242
+    background: #fcfcfc;
243
+    padding-top: 1.25rem;
244
+    box-sizing: border-box;
245
+  }
246
+  .info {
247
+    width: 21.375rem;
248
+    height: 6.1875rem;
249
+    background: rgba(255, 255, 255, 1);
250
+    border-radius: 10px;
251
+    margin: 0 auto;
252
+    box-shadow: 0px 2px 12px 0px #f5f5f5;
253
+    .photo {
254
+      float: left;
255
+      width: 3.75rem;
256
+      height: 3.75rem;
257
+      margin: 1.125rem 1rem 0 1.125rem;
258
+      img {
259
+        width: 100%;
260
+      }
261
+    }
262
+    .infoRight {
263
+      float: left;
264
+      padding-top: 1.625rem;
265
+      box-sizing: border-box;
266
+      .rightTop {
267
+        margin-bottom: 0.75rem;
268
+      }
269
+      .name {
270
+        font-size: 1.0625rem;
271
+        font-weight: 600;
272
+        color: rgba(0, 0, 0, 1);
273
+        margin-right: 1rem;
274
+      }
275
+      span {
276
+        font-size: 0.875rem;
277
+        color: rgba(60, 60, 60, 1);
278
+      }
279
+      .rightBottom {
280
+        height: 1.4375rem;
281
+        line-height: 1.4375rem;
282
+        .num {
283
+          float: left;
284
+          font-size: 0.875rem;
285
+          color: rgba(60, 60, 60, 1);
286
+        }
287
+        .imgList {
288
+          float: left;
289
+          margin-left: 0.875rem;
290
+          img {
291
+            width: 1.4375rem;
292
+            height: 1.4375rem;
293
+            margin: 0 0.125rem;
294
+          }
295
+        }
296
+      }
297
+    }
298
+  }
299
+  .search {
300
+    width: 21.375rem;
301
+    height: 2.125rem;
302
+    background: rgba(244, 244, 244, 1);
303
+    border-radius: 17px;
304
+    margin: 0 auto;
305
+    .el-input__inner {
306
+      height: 2.125rem;
307
+      line-height: 2.125rem;
308
+      border: none;
309
+      background: rgba(244, 244, 244, 1);
310
+      border-radius: 17px;
311
+      padding-left: 2.5rem;
312
+      color: rgba(155, 155, 155, 1);
313
+      font-size: 0.9375rem;
314
+    }
315
+    .el-input__prefix {
316
+      margin-top: 0.0625rem;
317
+      font-size: 1.25rem;
318
+    }
319
+    .el-input__icon {
320
+      line-height: 2.125rem;
321
+    }
322
+  }
323
+  .time {
324
+    color: #9b9b9b;
325
+    margin-left: 1rem;
326
+    margin-top: 0.75rem;
327
+    width: 342px;
328
+    // height:2.125rem;
329
+    overflow: hidden;
330
+    .van-cell {
331
+      width: 8.5rem;
332
+      height: 2.125rem;
333
+      line-height: 2.125rem;
334
+      background: #f4f4f4;
335
+      border-radius: 17px;
336
+      margin-bottom: 0.75rem;
337
+      padding: 0 1rem;
338
+      font-size: 0.875rem;
339
+      float: left;
340
+      .van-icon-arrow-down {
341
+        float: right;
342
+        line-height: 2.125rem;
343
+      }
344
+    }
345
+    .line {
346
+      float: left;
347
+      line-height: 2.125rem;
348
+    }
349
+  }
350
+  .statOrder {
351
+    width: 21.5625rem;
352
+    margin: 0 auto;
353
+    border-bottom: 1px dashed #e6e6e6;
354
+    border-top: 1px dashed #e6e6e6;
355
+    .van-cell {
356
+      padding: 10px 6px;
357
+    }
358
+    .msgTitle {
359
+      height: 1.875rem;
360
+      line-height: 1.875rem;
361
+      padding-left: 1.25rem;
362
+      font-weight: bold;
363
+      // margin-top: 0.625rem;
364
+      // border-bottom: 1px solid #e6e6e6;
365
+      // border-top: 1px solid #e6e6e6;
366
+    }
367
+    .msgDetail {
368
+      padding-bottom: 0.625rem;
369
+    }
370
+    // .date {
371
+    //   font-size: 0.9375rem;
372
+    //   font-weight: 600;
373
+    //   color: rgba(0, 0, 0, 1);
374
+    //   margin-top: 1.25rem;
375
+    // }
376
+    // .packUp {
377
+    //   width: 1.875rem;
378
+    //   height: 3rem;
379
+    //   font-size: 0.9375rem;
380
+    //   color: rgba(155, 155, 155, 1);
381
+    // }
382
+    // .packUp1 {
383
+    //   width: 1.875rem;
384
+    //   height: 3rem;
385
+    //   font-size: 0.9375rem;
386
+    //   color: rgba(155, 155, 155, 1);
387
+    //   visibility: hidden;
388
+    // }
389
+    // .tendency {
390
+    //   width: 4.5625rem;
391
+    //   height: 1.875rem;
392
+    //   background: rgba(255, 95, 24, 0.2);
393
+    //   border-radius: 15px;
394
+    //   font-size: 0.875rem;
395
+    //   line-height: 1.875rem;
396
+    //   text-align: center;
397
+    //   color: rgba(255, 95, 24, 1);
398
+    //   margin-left: 1.875rem;
399
+    // }
400
+    // .edit {
401
+    //   float: right;
402
+    //   width: 4.5625rem;
403
+    //   height: 1.875rem;
404
+    //   background: rgba(81, 119, 238, 0.2);
405
+    //   border-radius: 15px;
406
+    //   color: #5177ee;
407
+    //   text-align: center;
408
+    //   line-height: 1.875rem;
409
+    //   margin-left: 0.625rem;
410
+    // }
411
+    // .el-icon-arrow-right {
412
+    //   display: none;
413
+    // }
414
+    // .el-icon-arrow-down {
415
+    //   margin-left: 0.5rem;
416
+    // }
417
+    // .el-icon-arrow-up {
418
+    //   margin-left: 0.5rem;
419
+    // }
420
+    // .year {
421
+    //   margin-left: 0.625rem;
422
+    //   font-size: 0.9375rem;
423
+    //   font-weight: 600;
424
+    //   color: rgba(0, 0, 0, 1);
425
+    // }
426
+    .msg {
427
+      font-size: 0.875rem;
428
+      color: rgba(0, 0, 0, 1);
429
+      padding-bottom: 1rem;
430
+      p {
431
+        padding-top: 0.625rem;
432
+        line-height: 1rem;
433
+        span {
434
+          color: #9e9e9e;
435
+        }
436
+        i {
437
+          float: right;
438
+          font-size: 1.25rem;
439
+        }
440
+        .el-icon-top {
441
+          color: #ef4a4a;
442
+        }
443
+        .el-icon-bottom {
444
+          color: #59abfe;
445
+        }
446
+      }
447
+    }
448
+
449
+    .el-collapse-item__content {
450
+      padding-bottom: 1rem;
451
+    }
452
+    .el-collapse {
453
+      border-top: none;
454
+    }
455
+    .none {
456
+      padding-bottom: 0;
457
+    }
458
+    .el-divider--horizontal {
459
+      margin: 0;
460
+    }
461
+  }
462
+  .add {
463
+    width: 4.5rem;
464
+    height: 4.5rem;
465
+    background: rgba(255, 255, 255, 1);
466
+    box-shadow: 0px 3px 9px 0px rgba(7, 30, 102, 0.15);
467
+    border-radius: 50%;
468
+    position: fixed;
469
+    right: 1.125rem;
470
+    bottom: 4.25rem;
471
+    img {
472
+      width: 100%;
473
+    }
474
+  }
475
+}
476
+</style>

+ 498 - 0
src/kpa_pages/courseManagement/index.vue View File

@@ -0,0 +1,498 @@
1
+<template>
2
+  <div class="page_doctorAdvice">
3
+    <div class="box">
4
+      <div class="info">
5
+        <div class="photo">
6
+          <img :src="patient.avatar" alt />
7
+        </div>
8
+        <div class="infoRight">
9
+          <div class="rightTop">
10
+            <span class="name">{{ patient.name }}</span>
11
+            <span>{{ patient.sex }}</span
12
+            >&ensp;|
13
+            <span>{{ patient.age }}岁</span>
14
+          </div>
15
+          <div class="rightBottom">
16
+            <p class="num">
17
+              [透析号:
18
+              <span>{{ patient.dialysis_no }}</span
19
+              >]
20
+            </p>
21
+            <div class="imgList">
22
+              <img src="../../assets/images/b1.png" alt v-show="yiShow" />
23
+              <img src="../../assets/images/b2.png" alt v-show="meiShow" />
24
+              <img src="../../assets/images/b3.png" alt v-show="bingShow" />
25
+              <img src="../../assets/images/b4.png" alt v-show="aiShow" />
26
+            </div>
27
+          </div>
28
+        </div>
29
+      </div>
30
+    </div>
31
+    <div class="search">
32
+      <el-input
33
+        placeholder="请输入标题"
34
+        prefix-icon="el-icon-search"
35
+        v-model="searchVal"
36
+        v-on:input="watchNum"
37
+      ></el-input>
38
+    </div>
39
+    <div class="time">
40
+      <van-cell @click="showPopup(1)">
41
+        {{ startTime }}
42
+        <van-icon name="arrow-down" />
43
+      </van-cell>
44
+      <van-popup v-model="show1" position="bottom" :style="{ height: '50%' }">
45
+        <van-datetime-picker
46
+          v-model="currentDate1"
47
+          type="date"
48
+          @cancel="show1 = false"
49
+          @confirm="chooseStartTime"
50
+        />
51
+      </van-popup>
52
+      <div class="line">-</div>
53
+      <van-cell @click="showPopup(2)">
54
+        {{ endTime }}
55
+        <van-icon name="arrow-down" />
56
+      </van-cell>
57
+      <van-popup v-model="show2" position="bottom" :style="{ height: '50%' }">
58
+        <van-datetime-picker
59
+          v-model="currentDate2"
60
+          type="date"
61
+          @cancel="show2 = false"
62
+          @confirm="chooseEndTime"
63
+        />
64
+      </van-popup>
65
+    </div>
66
+    <div class="statOrder">
67
+      <div
68
+        class="statOrderOne"
69
+        v-for="(item, index) in this.doctorContent"
70
+        :key="item.id"
71
+      >
72
+        <van-swipe-cell>
73
+          <van-cell :border="false" icon="arrow-down">
74
+            <template>
75
+              <div class="custom-title">{{ RecordTime(item.record_time) }}</div>
76
+            </template>
77
+            <van-icon
78
+              slot="right-icon"
79
+              name="ellipsis"
80
+              style="line-height: inherit;"
81
+              @click="onClick(2)"
82
+            />
83
+          </van-cell>
84
+          <template slot="right">
85
+            <van-button
86
+              square
87
+              type="danger"
88
+              text="删除"
89
+              @click="toDeleteCouseManage(item.id, item.org_id, index)"
90
+            />
91
+          </template>
92
+        </van-swipe-cell>
93
+        <van-action-sheet
94
+          v-model="show3"
95
+          :actions="actions"
96
+          cancel-text="取消"
97
+          @select="toDeleteCouseManagetwo(item.id)"
98
+        ></van-action-sheet>
99
+        <div class="msg">
100
+          <span>{{ item.title }}</span>
101
+          <p>
102
+            <span v-html="item.content"></span>
103
+          </p>
104
+          <div class="doctorAll">
105
+            <div class="doctor">
106
+              <span>开嘱医生:</span>
107
+              <span class="marginLeft">{{ item.user_name }}</span>
108
+            </div>
109
+          </div>
110
+        </div>
111
+      </div>
112
+    </div>
113
+    <div class="add">
114
+      <img src="../../assets/images/add4.png" alt />
115
+    </div>
116
+  </div>
117
+</template>
118
+
119
+<script>
120
+const moment = require("moment");
121
+import {
122
+  getCourseManagement,
123
+  toDeleteCouseManage,
124
+  toSeacherCourseManagement
125
+} from "@/api/patient/patient";
126
+import { uParseTime } from "@/utils/tools";
127
+export default {
128
+  data() {
129
+    return {
130
+      searchVal: "",
131
+      startTime: moment(new Date()).format("YYYY-MM-DD"),
132
+      endTime: moment(new Date()).format("YYYY-MM-DD"),
133
+      show1: false,
134
+      show2: false,
135
+      currentDate1: new Date(),
136
+      currentDate2: new Date(),
137
+      show3: false,
138
+      actions: [{ name: "编辑" }, { name: "删除" }],
139
+      patient: {
140
+        name: "",
141
+        age: "",
142
+        dialysis_no: "",
143
+        sex: "",
144
+        avatar: ""
145
+      },
146
+      doctorContent: [],
147
+      yiShow: false,
148
+      meiShow: false,
149
+      bingShow: false,
150
+      aiShow: false
151
+    };
152
+  },
153
+  methods: {
154
+    showPopup(index) {
155
+      if (index === 1) {
156
+        this.show1 = true;
157
+      } else if (index === 2) {
158
+        this.show2 = true;
159
+      }
160
+    },
161
+    chooseStartTime(value) {
162
+      this.startTime = moment(value).format("YYYY-MM-DD");
163
+      var patientid = this.$route.query.patientid;
164
+
165
+      var orgid = this.$route.query.orgid;
166
+
167
+      this.getCourseManagement(patientid, orgid, this.startTime);
168
+      this.show1 = false;
169
+    },
170
+    chooseEndTime(value) {
171
+      this.endTime = moment(value).format("YYYY-MM-DD");
172
+      var patientid = this.$route.query.patientid;
173
+
174
+      var orgid = this.$route.query.orgid;
175
+
176
+      this.getCourseManagement(patientid, orgid, this.endTime);
177
+      this.show2 = false;
178
+    },
179
+    onClick(index) {
180
+      if (index === 1) {
181
+        this.show3 = true;
182
+      } else if (index === 2) {
183
+        this.show3 = true;
184
+      }
185
+    },
186
+    getCourseManagement(patientid, orgid) {
187
+      getCourseManagement(patientid, orgid, this.startTime, this.endTime).then(
188
+        response => {
189
+          if (response.data.state === 1) {
190
+            var patientCourse = response.data.data.patientCourse;
191
+
192
+            this.doctorContent = patientCourse;
193
+            var patients = response.data.data.patients;
194
+
195
+            this.patient.name = patients.name;
196
+            this.patient.age = patients.age;
197
+            this.patient.dialysis_no = patients.dialysis_no;
198
+            this.patient.avatar = patients.avatar;
199
+            var infectious = response.data.data.infectious;
200
+            for (let index = 0; index < infectious.length; index++) {
201
+              if (infectious[index].disease_id === 2) {
202
+                this.yiShow = true;
203
+              }
204
+
205
+              if (infectious[index].disease_id === 3) {
206
+                this.bingShow = true;
207
+              }
208
+
209
+              if (infectious[index].disease_id === 4) {
210
+                this.aiShow = true;
211
+              }
212
+
213
+              if (infectious[index].disease_id === 6) {
214
+                this.meiShow = true;
215
+              }
216
+            }
217
+
218
+            if (patients.gender === 1) {
219
+              this.patient.sex === "男";
220
+            }
221
+            if (patients.gender === 2) {
222
+              this.patient.sex === "女";
223
+            }
224
+          }
225
+        }
226
+      );
227
+    },
228
+    RecordTime(time) {
229
+      // return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
230
+      return uParseTime(time, "{y}-{m}-{d}");
231
+    },
232
+    toDeleteCouseManage(id, orgid, index) {
233
+      this.$confirm("确认要删除吗?删除后信息将无法恢复", "删除提示!", {
234
+        dangerouslyUseHTMLString: true,
235
+        confirmButtonText: "确定",
236
+        cancelButtonText: "取消",
237
+        type: "warning"
238
+      }).then(() => {
239
+        toDeleteCouseManage(id, orgid).then(response => {
240
+          if (response.data.state === 1) {
241
+            var msg = response.data.data.msg;
242
+
243
+            this.doctorContent.splice(index, 1);
244
+          }
245
+        });
246
+      });
247
+    },
248
+    toDeleteCouseManagetwo(id) {
249
+      console.log("id", id);
250
+    },
251
+    watchNum() {
252
+      var patientid = this.$route.query.patientid;
253
+
254
+      var orgid = this.$route.query.orgid;
255
+      toSeacherCourseManagement(patientid, orgid, this.searchVal).then(
256
+        response => {
257
+          if (response.data.state === 1) {
258
+            var patientCourse = response.data.data.patientCourse;
259
+
260
+            this.doctorContent = patientCourse;
261
+          }
262
+        }
263
+      );
264
+    }
265
+  },
266
+  created() {
267
+    var patientid = this.$route.query.patientid;
268
+    var orgid = this.$route.query.orgid;
269
+    this.getCourseManagement(patientid, orgid);
270
+  }
271
+};
272
+</script>
273
+
274
+<style lang="scss">
275
+.page_doctorAdvice {
276
+  overflow: hidden;
277
+  height: 100%;
278
+  overflow-y: auto;
279
+  .box {
280
+    width: 100%;
281
+    height: 9.1875rem;
282
+    background: #fcfcfc;
283
+    padding-top: 1.25rem;
284
+    box-sizing: border-box;
285
+  }
286
+  .info {
287
+    width: 21.375rem;
288
+    height: 6.1875rem;
289
+    background: rgba(255, 255, 255, 1);
290
+    border-radius: 10px;
291
+    margin: 0 auto;
292
+    box-shadow: 0px 2px 12px 0px #f5f5f5;
293
+    .photo {
294
+      float: left;
295
+      width: 3.75rem;
296
+      height: 3.75rem;
297
+      margin: 1.125rem 1rem 0 1.125rem;
298
+      img {
299
+        width: 100%;
300
+      }
301
+    }
302
+    .infoRight {
303
+      float: left;
304
+      padding-top: 1.625rem;
305
+      box-sizing: border-box;
306
+      .rightTop {
307
+        margin-bottom: 0.75rem;
308
+      }
309
+      .name {
310
+        font-size: 1.0625rem;
311
+        font-weight: 600;
312
+        color: rgba(0, 0, 0, 1);
313
+        margin-right: 1rem;
314
+      }
315
+      span {
316
+        font-size: 0.875rem;
317
+        color: rgba(60, 60, 60, 1);
318
+      }
319
+      .rightBottom {
320
+        height: 1.4375rem;
321
+        line-height: 1.4375rem;
322
+        .num {
323
+          float: left;
324
+          font-size: 0.875rem;
325
+          color: rgba(60, 60, 60, 1);
326
+        }
327
+        .imgList {
328
+          float: left;
329
+          margin-left: 0.875rem;
330
+          img {
331
+            width: 1.4375rem;
332
+            height: 1.4375rem;
333
+            margin: 0 0.125rem;
334
+          }
335
+        }
336
+      }
337
+    }
338
+  }
339
+  .search {
340
+    width: 21.375rem;
341
+    height: 2.125rem;
342
+    background: rgba(244, 244, 244, 1);
343
+    border-radius: 17px;
344
+    margin: 0 auto;
345
+    .el-input__inner {
346
+      height: 2.125rem;
347
+      line-height: 2.125rem;
348
+      border: none;
349
+      background: rgba(244, 244, 244, 1);
350
+      border-radius: 17px;
351
+      padding-left: 2.5rem;
352
+      color: rgba(155, 155, 155, 1);
353
+      font-size: 0.9375rem;
354
+    }
355
+    .el-input__prefix {
356
+      margin-top: 0.0625rem;
357
+      font-size: 1.25rem;
358
+    }
359
+    .el-input__icon {
360
+      line-height: 2.125rem;
361
+    }
362
+  }
363
+  .time {
364
+    color: #9b9b9b;
365
+    margin-left: 1rem;
366
+    margin-top: 0.75rem;
367
+    width: 342px;
368
+    // height:2.125rem;
369
+    overflow: hidden;
370
+    .van-cell {
371
+      width: 8.5rem;
372
+      height: 2.125rem;
373
+      line-height: 2.125rem;
374
+      background: #f4f4f4;
375
+      border-radius: 17px;
376
+      margin-bottom: 0.75rem;
377
+      padding: 0 1rem;
378
+      font-size: 0.875rem;
379
+      float: left;
380
+      .van-icon-arrow-down {
381
+        float: right;
382
+        line-height: 2.125rem;
383
+      }
384
+    }
385
+    .line {
386
+      float: left;
387
+      line-height: 2.125rem;
388
+    }
389
+  }
390
+  .statOrder {
391
+    width: 21.5625rem;
392
+    margin: 0 auto;
393
+    .statOrderOne {
394
+      // margin-bottom: 1.25rem;
395
+      border-top: 1px dashed #e6e6e6;
396
+      border-bottom: 1px dashed #e6e6e6;
397
+    }
398
+    .van-cell {
399
+      padding: 0.625rem 0.375rem;
400
+    }
401
+    .van-cell__value {
402
+      span {
403
+        float: right;
404
+        width: 4.5625rem;
405
+        height: 1.875rem;
406
+        background: rgba(81, 119, 238, 0.2);
407
+        border-radius: 15px;
408
+        color: #5177ee;
409
+        text-align: center;
410
+        line-height: 1.875rem;
411
+        margin-left: 8.75rem;
412
+      }
413
+    }
414
+    // .edit {
415
+    //   float: right;
416
+    //   width: 4.5625rem;
417
+    //   height: 1.875rem;
418
+    //   background: rgba(81, 119, 238, 0.2);
419
+    //   border-radius: 15px;
420
+    //   color: #5177ee;
421
+    //   text-align: center;
422
+    //   line-height: 1.875rem;
423
+    //   margin-left: 8.75rem;
424
+    // }
425
+    // .title {
426
+    //   border-top: 1px solid #e6e6e6;
427
+    //   display: flex;
428
+    //   height: 3.125rem;
429
+    //   align-items: center;
430
+    // }
431
+    // .el-icon-arrow-down {
432
+    //   margin-left: 0.5rem;
433
+    // }
434
+    // .year {
435
+    //   margin-left: 0.625rem;
436
+    //   font-size: 0.9375rem;
437
+    //   font-weight: 600;
438
+    //   color: rgba(0, 0, 0, 1);
439
+    // }
440
+    .msg {
441
+      font-size: 0.75rem;
442
+      color: rgba(60, 60, 60, 1);
443
+      font-weight: 600;
444
+      // padding-top: 0.75rem;
445
+      padding-bottom: 1rem;
446
+      // border-top: 1px dashed #e6e6e6;
447
+      span {
448
+        margin-left: 0.375rem;
449
+      }
450
+      p {
451
+        font-size: 0.875rem;
452
+        margin: 0.625rem 0;
453
+        line-height: 1rem;
454
+        color: rgba(0, 0, 0, 1);
455
+      }
456
+    }
457
+    .doctorAll {
458
+      display: flex;
459
+      justify-content: space-between;
460
+      margin-top: 0.25rem;
461
+      font-size: 0.75rem;
462
+      font-weight: 400;
463
+      .doctor {
464
+        float: left;
465
+      }
466
+      span {
467
+        color: rgba(155, 155, 155, 1);
468
+      }
469
+      .marginLeft {
470
+        margin-left: 0.375rem;
471
+      }
472
+    }
473
+
474
+    .el-collapse-item__content {
475
+      padding-bottom: 1rem;
476
+    }
477
+    .el-collapse {
478
+      border-top: none;
479
+    }
480
+    .none {
481
+      padding-bottom: 0;
482
+    }
483
+  }
484
+  .add {
485
+    width: 4.5rem;
486
+    height: 4.5rem;
487
+    background: rgba(255, 255, 255, 1);
488
+    box-shadow: 0px 3px 9px 0px rgba(7, 30, 102, 0.15);
489
+    border-radius: 50%;
490
+    position: fixed;
491
+    right: 1.125rem;
492
+    bottom: 4.25rem;
493
+    img {
494
+      width: 100%;
495
+    }
496
+  }
497
+}
498
+</style>

+ 196 - 0
src/kpa_pages/createOrganization/index.vue View File

@@ -0,0 +1,196 @@
1
+<template>
2
+  <div class="page_createOrganization">
3
+    <div class="createOrganizationTitle">
4
+      <i class="iconfont icon-zuojiantou jiantou"></i>
5
+      <span class="titleName">创建医院/组织/团队</span>
6
+    </div>
7
+    <div class="tips">填写真实信息,获取更精准服务</div>
8
+    <div class="infoBox">
9
+      <div class="infoOne">
10
+        <p class="infoTitle">机构名称</p>
11
+        <van-field v-model="value" placeholder="请填写机构名称" />
12
+      </div>
13
+      <div class="infoOne">
14
+        <p class="infoTitle">机构名称</p>
15
+        <van-cell is-link @click="show = true">请选择机构类型</van-cell>
16
+        <van-popup v-model="show" position="bottom" :style="{ height: '40%' }">
17
+          <van-picker :columns="columns" @change="onChange" />
18
+        </van-popup>
19
+      </div>
20
+      <div class="infoOne">
21
+        <p class="infoTitle">机构地区</p>
22
+        <van-cell is-link @click="show = true">请选择地区</van-cell>
23
+        <van-popup v-model="show" position="bottom" :style="{ height: '40%' }">
24
+          <van-picker :columns="columns" @change="onChange" />
25
+        </van-popup>
26
+      </div>
27
+      <div class="infoOne">
28
+        <p class="infoTitle">详细地址</p>
29
+        <van-field v-model="value" placeholder="请填写" />
30
+      </div>
31
+      <div class="infoOne">
32
+        <p class="infoTitle">联系人</p>
33
+        <van-field v-model="value" placeholder="请填写" />
34
+      </div>
35
+      <div class="infoOne">
36
+        <p class="infoTitle">联系电话</p>
37
+        <van-field v-model="value" placeholder="请填写" />
38
+      </div>
39
+    </div>
40
+    <div class="create">创建</div>
41
+    <div class="problem">
42
+      遇到问题?点击
43
+      <span @click="contact = true">联系客服</span>
44
+    </div>
45
+    <!-- 弹窗 -->
46
+    <el-dialog
47
+      title="客服电话"
48
+      :visible.sync="contact"
49
+      width="19.1875rem"
50
+      top="12.5rem"
51
+      center
52
+      class="myDialog"
53
+    >
54
+      <span class="telephone">0755-86526342</span>
55
+      <span slot="footer" class="dialog-footer">
56
+        <span @click="contact = false">取消</span>
57
+        <span>|</span>
58
+        <span type="primary" @click="callPhone()">拨打</span>
59
+      </span>
60
+    </el-dialog>
61
+  </div>
62
+</template>
63
+
64
+<script>
65
+export default {
66
+  data() {
67
+    return {
68
+      contact: false,
69
+      show: false,
70
+      columns: ["杭州", "宁波", "温州", "嘉兴", "湖州"]
71
+    };
72
+  },
73
+  methods: {
74
+    callPhone() {
75
+      window.location.href = "tel://075586526342";
76
+    }
77
+  }
78
+};
79
+</script>
80
+
81
+<style lang="scss" scoped>
82
+.page_createOrganization {
83
+  height: 100%;
84
+  overflow: hidden;
85
+  .createOrganizationTitle {
86
+    height: 3.125rem;
87
+    line-height: 3.125rem;
88
+    display: flex;
89
+    align-items: center;
90
+  }
91
+  .jiantou {
92
+    margin-left: 1.25rem;
93
+    font-size: 1.5rem;
94
+    font-weight: 600;
95
+    margin-right: 4.5rem;
96
+  }
97
+  .titleName {
98
+    font-size: 1.125rem;
99
+    font-weight: 600;
100
+  }
101
+  .tips {
102
+    color: #338afb;
103
+    font-size: 0.8125rem;
104
+    padding-left: 2.375rem;
105
+    margin: 1.5rem 0 1.25rem;
106
+  }
107
+  .infoBox {
108
+    width: 80%;
109
+    margin: 0 auto;
110
+  }
111
+  .infoOne {
112
+    height: 4.25rem;
113
+    border-bottom: 1px solid #e8e8e8;
114
+  }
115
+  .infoTitle {
116
+    padding-top: 0.75rem;
117
+    color: #111111;
118
+  }
119
+  .create {
120
+    width: 80%;
121
+    height: 2.875rem;
122
+    text-align: center;
123
+    line-height: 2.875rem;
124
+    font-weight: bold;
125
+    background: #338afb;
126
+    box-shadow: 0px 1px 12px 0px rgba(51, 138, 251, 1);
127
+    border-radius: 1.5rem;
128
+    margin: 1.875rem auto 0;
129
+    color: #fff;
130
+    font-size: 1.0625rem;
131
+  }
132
+  .problem {
133
+    width: 84%;
134
+    font-size: 0.8125rem;
135
+    margin: 1.5rem auto 0;
136
+    text-align: center;
137
+    span {
138
+      color: #338afb;
139
+    }
140
+  }
141
+
142
+  .van-cell {
143
+    padding: 0;
144
+    font-size: 1rem;
145
+    margin-top: 0.375rem;
146
+    position: static;
147
+  }
148
+  .van-cell__value--alone {
149
+    color: #9b9b9b;
150
+  }
151
+  .van-field__control {
152
+    line-height: 24px;
153
+  }
154
+  ::-webkit-scrollbar {
155
+    width: 0;
156
+  }
157
+}
158
+</style>
159
+<style lang="scss">
160
+.myDialog {
161
+  line-height: 50%;
162
+  height: 100%;
163
+  .el-dialog {
164
+    border-radius: 10px;
165
+  }
166
+  .el-dialog__title {
167
+    color: #000000;
168
+  }
169
+  .telephone {
170
+    width: 12.5rem;
171
+    height: 1.125rem;
172
+    font-size: 1.5rem;
173
+    font-weight: 500;
174
+    color: #338afb;
175
+    margin-left: 2.5rem;
176
+  }
177
+  .dialog-footer {
178
+    //   display: flex;
179
+    //   justify-content: space-around;
180
+    //   align-items: center;
181
+    > span:nth-of-type(1) {
182
+      color: #9b9b9b;
183
+    }
184
+    > span:nth-of-type(2) {
185
+      // width: 0.125rem;
186
+      // height: 1.75rem;
187
+      // line-height: 1.75rem;
188
+      padding: 0 3.125rem;
189
+      color: #e6e6e6;
190
+    }
191
+    > span:nth-of-type(3) {
192
+      color: #000000;
193
+    }
194
+  }
195
+}
196
+</style>

+ 452 - 0
src/kpa_pages/dialysisRecord/index.vue View File

@@ -0,0 +1,452 @@
1
+<template>
2
+  <div class="page_longDialysis">
3
+    <div class="box">
4
+      <div class="info">
5
+        <div class="photo">
6
+          <img :src="patientform.avatar" alt />
7
+        </div>
8
+        <div class="infoRight">
9
+          <div class="rightTop">
10
+            <span class="name">{{patientform.name}}</span>
11
+            <span>{{patientform.sex}}</span>&ensp;|
12
+            <span>{{patientform.age}}岁</span>
13
+          </div>
14
+          <div class="rightBottom">
15
+            <p class="num">
16
+              [透析号:
17
+              <span>{{patientform.dialysis_no}}</span>]
18
+            </p>
19
+            <div class="imgList">
20
+              <img src="../../assets/images/b1.png" alt />
21
+              <img src="../../assets/images/b2.png" alt />
22
+              <img src="../../assets/images/b3.png" alt />
23
+              <img src="../../assets/images/b4.png" alt />
24
+            </div>
25
+          </div>
26
+        </div>
27
+      </div>
28
+    </div>
29
+    <div class="search">
30
+      <el-input
31
+        placeholder="输入医嘱内容"
32
+        prefix-icon="el-icon-search"
33
+        v-model="searchVal"
34
+      ></el-input>
35
+    </div>
36
+    <div class="time">
37
+      <van-cell @click="showPopup(1)">
38
+        {{ startTime }}
39
+        <van-icon name="arrow-down" />
40
+      </van-cell>
41
+      <van-popup v-model="show1" position="bottom" :style="{ height: '50%' }">
42
+        <van-datetime-picker
43
+          v-model="currentDate1"
44
+          type="date"
45
+          @cancel="show1 = false"
46
+          @confirm="chooseStartTime"
47
+        />
48
+      </van-popup>
49
+      <div class="line">-</div>
50
+      <van-cell @click="showPopup(2)">
51
+        {{ endTime }}
52
+        <van-icon name="arrow-down" />
53
+      </van-cell>
54
+      <van-popup v-model="show2" position="bottom" :style="{ height: '50%' }">
55
+        <van-datetime-picker
56
+          v-model="currentDate2"
57
+          type="date"
58
+          @cancel="show2 = false"
59
+          @confirm="chooseEndTime"
60
+        />
61
+      </van-popup>
62
+    </div>
63
+    <div class="statOrder">
64
+      <div class="statOrderOne" v-for="item in this.dialysisOrder" :key="item.id">
65
+        <van-swipe-cell>
66
+          <van-cell :border="false">
67
+           <template>
68
+               <div class="custom-title">{{RecordTime(item.dialysis_date)}}</div>
69
+            </template>
70
+            <van-icon
71
+              slot="right-icon"
72
+              name="ellipsis"
73
+              style="line-height: inherit;"
74
+              @click="onClick(2)"
75
+            />
76
+          </van-cell>
77
+          <template slot="right">
78
+            <van-button square type="danger" text="删除" />
79
+          </template>
80
+        </van-swipe-cell>
81
+
82
+        <van-action-sheet
83
+          v-model="show3"
84
+          :actions="actions"
85
+          cancel-text="取消"
86
+        ></van-action-sheet>
87
+        <!-- <div class="title">
88
+          <i class="header-icon el-icon-arrow-down"></i>
89
+          <p class="year">2019.10.17</p>
90
+          <p class="edit">编辑</p>
91
+        </div>-->
92
+        <div class="msg">
93
+          <ul class="msglist">
94
+            <li>透析模式: <span>HD</span></li>
95
+            <li>透析时长(h/min): <span>2h30min</span></li>
96
+            <li>血流量(ml/min): <span>2h30min</span></li>
97
+            <li>目标超滤量(ml): <span>10ml</span></li>
98
+            <li>透析液配方: <span>HD</span></li>
99
+            <li>抗凝剂: <span>HD</span></li>
100
+            <li>首剂(mg): <span>HD</span></li>
101
+            <li>维持(mg/h): <span>2h30min</span></li>
102
+          </ul>
103
+        </div>
104
+      </div>
105
+      <div class="statOrderOne">
106
+        <van-swipe-cell>
107
+          <van-cell :border="false" title="2019.10.17">
108
+            <van-icon
109
+              slot="right-icon"
110
+              name="ellipsis"
111
+              style="line-height: inherit;"
112
+              @click="onClick(2)"
113
+            />
114
+          </van-cell>
115
+          <template slot="right">
116
+            <van-button square type="danger" text="删除" />
117
+          </template>
118
+        </van-swipe-cell>
119
+
120
+        <van-action-sheet
121
+          v-model="show3"
122
+          :actions="actions"
123
+          cancel-text="取消"
124
+        ></van-action-sheet>
125
+        <!-- <div class="title">
126
+          <i class="header-icon el-icon-arrow-down"></i>
127
+          <p class="year">2019.10.17</p>
128
+          <p class="edit">编辑</p>
129
+        </div> -->
130
+        <div class="msg">
131
+          <ul class="msglist">
132
+            <li>透析模式: <span>HD</span></li>
133
+            <li>透析时长(h/min): <span>2h30min</span></li>
134
+            <li>血流量(ml/min): <span>2h30min</span></li>
135
+            <li>目标超滤量(ml): <span>10ml</span></li>
136
+            <li>透析液配方: <span>HD</span></li>
137
+            <li>抗凝剂: <span>HD</span></li>
138
+            <li>首剂(mg): <span>HD</span></li>
139
+            <li>维持(mg/h): <span>2h30min</span></li>
140
+          </ul>
141
+        </div>
142
+      </div>
143
+    </div>
144
+    <div class="add">
145
+      <img src="../../assets/images/add4.png" alt />
146
+    </div>
147
+  </div>
148
+</template>
149
+
150
+<script>
151
+const moment = require('moment')
152
+import { getDialysRecord } from '@/api/patient/patient'
153
+import { uParseTime } from '@/utils/tools'
154
+export default {
155
+  data() {
156
+    return {
157
+      searchVal: '',
158
+      startTime: moment(new Date()).format('YYYY-MM-DD'),
159
+      endTime: moment(new Date()).format('YYYY-MM-DD'),
160
+      show1: false,
161
+      show2: false,
162
+      currentDate1: new Date(),
163
+      currentDate2: new Date(),
164
+      show3: false,
165
+      actions: [
166
+        { name: '编辑' },
167
+        { name: '删除' },
168
+        { name: '选项', subname: '描述信息' }
169
+      ],
170
+      patientform: {
171
+        name: '',
172
+        sex: '',
173
+        age: '',
174
+        dialysis_no: '',
175
+        avatar: ''
176
+      },
177
+      dialysisOrder: []
178
+    }
179
+  },
180
+  methods: {
181
+    showPopup(index) {
182
+      if (index == 1) {
183
+        this.show1 = true
184
+      } else if (index == 2) {
185
+        this.show2 = true
186
+      }
187
+    },
188
+    chooseStartTime(value) {
189
+      this.startTime = moment(value).format('YYYY-MM-DD')
190
+      this.show1 = false
191
+      var patientid = this.$route.query.patientid
192
+      console.log('patientid', patientid)
193
+      var orgid = this.$route.query.orgid
194
+      console.log('orgid', orgid)
195
+      this.getDialysRecord(patientid, orgid, this.startTime)
196
+    },
197
+    chooseEndTime(value) {
198
+      this.endTime = moment(value).format('YYYY-MM-DD')
199
+      this.show2 = false
200
+      var patientid = this.$route.query.patientid
201
+      console.log('patientid', patientid)
202
+      var orgid = this.$route.query.orgid
203
+      this.getDialysRecord(patientid, orgid, this.endTime)
204
+    },
205
+    onClick(index) {
206
+      if (index == 1) {
207
+        this.show3 = true
208
+      } else if (index == 2) {
209
+        this.show3 = true
210
+      }
211
+    },
212
+    RecordTime(time) {
213
+      // return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
214
+      return uParseTime(time, '{y}-{m}-{d}')
215
+    },
216
+    getDialysRecord(patientid, orgid, startTime, endTime) {
217
+      getDialysRecord(patientid, orgid, this.startTime, this.endTime).then(response => {
218
+        if (response.data.state === 1) {
219
+          var dialysisOrder = response.data.data.dialysisOrder
220
+          this.dialysisOrder = dialysisOrder
221
+          var patients = response.data.data.patients
222
+          this.patientform = patients
223
+          if (patients.gender === 1) {
224
+            this.patientform.sex = '男'
225
+          }
226
+          if (patients.gender === 2) {
227
+            this.patientform.sex = '女'
228
+          }
229
+          console.log('patients', patients)
230
+          console.log('dialysisorder', dialysisOrder)
231
+        }
232
+      })
233
+    }
234
+  },
235
+  created() {
236
+    var patientid = this.$route.query.patientid
237
+    console.log('patientid', patientid)
238
+    var orgid = this.$route.query.orgid
239
+    console.log('orgid', orgid)
240
+    this.getDialysRecord(patientid, orgid)
241
+  }
242
+}
243
+</script>
244
+
245
+<style lang="scss">
246
+.page_longDialysis {
247
+  overflow: hidden;
248
+  height: 100%;
249
+  overflow-y: auto;
250
+  .box {
251
+    width: 100%;
252
+    height: 9.1875rem;
253
+    background: #fcfcfc;
254
+    padding-top: 1.25rem;
255
+    box-sizing: border-box;
256
+  }
257
+  .info {
258
+    width: 21.375rem;
259
+    height: 6.1875rem;
260
+    background: rgba(255, 255, 255, 1);
261
+    border-radius: 10px;
262
+    margin: 0 auto;
263
+    box-shadow: 0px 2px 12px 0px #f5f5f5;
264
+    .photo {
265
+      float: left;
266
+      width: 3.75rem;
267
+      height: 3.75rem;
268
+      margin: 1.125rem 1rem 0 1.125rem;
269
+      img {
270
+        width: 100%;
271
+      }
272
+    }
273
+    .infoRight {
274
+      float: left;
275
+      padding-top: 1.625rem;
276
+      box-sizing: border-box;
277
+      .rightTop {
278
+        margin-bottom: 0.75rem;
279
+      }
280
+      .name {
281
+        font-size: 1.0625rem;
282
+        font-weight: 600;
283
+        color: rgba(0, 0, 0, 1);
284
+        margin-right: 1rem;
285
+      }
286
+      span {
287
+        font-size: 0.875rem;
288
+        color: rgba(60, 60, 60, 1);
289
+      }
290
+      .rightBottom {
291
+        height: 1.4375rem;
292
+        line-height: 1.4375rem;
293
+        .num {
294
+          float: left;
295
+          font-size: 0.875rem;
296
+          color: rgba(60, 60, 60, 1);
297
+        }
298
+        .imgList {
299
+          float: left;
300
+          margin-left: 0.875rem;
301
+          img {
302
+            width: 1.4375rem;
303
+            height: 1.4375rem;
304
+            margin: 0 0.125rem;
305
+          }
306
+        }
307
+      }
308
+    }
309
+  }
310
+  .search {
311
+    width: 21.375rem;
312
+    height: 2.125rem;
313
+    background: rgba(244, 244, 244, 1);
314
+    border-radius: 17px;
315
+    margin: 0 auto;
316
+    .el-input__inner {
317
+      height: 2.125rem;
318
+      line-height: 2.125rem;
319
+      border: none;
320
+      background: rgba(244, 244, 244, 1);
321
+      border-radius: 17px;
322
+      padding-left: 2.5rem;
323
+      color: rgba(155, 155, 155, 1);
324
+      font-size: 0.9375rem;
325
+    }
326
+    .el-input__prefix {
327
+      margin-top: 0.0625rem;
328
+      font-size: 1.25rem;
329
+    }
330
+    .el-input__icon {
331
+      line-height: 2.125rem;
332
+    }
333
+  }
334
+  .time {
335
+    color: #9b9b9b;
336
+    margin-left: 1rem;
337
+    margin-top: 0.75rem;
338
+    width: 342px;
339
+    // height:2.125rem;
340
+    overflow: hidden;
341
+    .van-cell {
342
+      width: 8.5rem;
343
+      height: 2.125rem;
344
+      line-height: 2.125rem;
345
+      background: #f4f4f4;
346
+      border-radius: 17px;
347
+      margin-bottom: 0.75rem;
348
+      padding: 0 1rem;
349
+      font-size: 0.875rem;
350
+      float: left;
351
+      .van-icon-arrow-down {
352
+        float: right;
353
+        line-height: 2.125rem;
354
+      }
355
+    }
356
+    .line {
357
+      float: left;
358
+      line-height: 2.125rem;
359
+    }
360
+  }
361
+  .statOrder {
362
+    width: 21.5625rem;
363
+    margin: 0 auto;
364
+    .statOrderOne {
365
+      // margin-bottom: 1.25rem;
366
+      border-top: 1px dashed #e6e6e6;
367
+      border-bottom: 1px dashed #e6e6e6;
368
+    }
369
+    .van-cell {
370
+      padding: 0.625rem 0.375rem;
371
+    }
372
+    .van-cell__value {
373
+      span {
374
+        float: right;
375
+        width: 4.5625rem;
376
+        height: 1.875rem;
377
+        background: rgba(81, 119, 238, 0.2);
378
+        border-radius: 15px;
379
+        color: #5177ee;
380
+        text-align: center;
381
+        line-height: 1.875rem;
382
+        margin-left: 8.75rem;
383
+      }
384
+    }
385
+    // .edit {
386
+    //   float: right;
387
+    //   width: 4.5625rem;
388
+    //   height: 1.875rem;
389
+    //   background: rgba(81, 119, 238, 0.2);
390
+    //   border-radius: 15px;
391
+    //   color: #5177ee;
392
+    //   text-align: center;
393
+    //   line-height: 1.875rem;
394
+    //   margin-left: 8.75rem;
395
+    // }
396
+    // .title {
397
+    //   border-top: 1px solid #e6e6e6;
398
+    //   display: flex;
399
+    //   height: 3.125rem;
400
+    //   align-items: center;
401
+    // }
402
+    // .el-icon-arrow-down {
403
+    //   margin-left: 0.5rem;
404
+    // }
405
+    // .year {
406
+    //   margin-left: 0.625rem;
407
+    //   font-size: 0.9375rem;
408
+    //   font-weight: 600;
409
+    //   color: rgba(0, 0, 0, 1);
410
+    // }
411
+    .msg {
412
+      font-size: 0.75rem;
413
+      color: rgba(60, 60, 60, 1);
414
+      font-weight: 600;
415
+      // padding-top: 0.75rem;
416
+      padding-bottom: 1rem;
417
+      // border-top: 1px dashed #e6e6e6;
418
+      .msglist {
419
+        overflow: hidden;
420
+        li {
421
+          width: 50%;
422
+          float: left;
423
+          line-height: 16px;
424
+        }
425
+      }
426
+    }
427
+
428
+    .el-collapse-item__content {
429
+      padding-bottom: 1rem;
430
+    }
431
+    .el-collapse {
432
+      border-top: none;
433
+    }
434
+    .none {
435
+      padding-bottom: 0;
436
+    }
437
+  }
438
+  .add {
439
+    width: 4.5rem;
440
+    height: 4.5rem;
441
+    background: rgba(255, 255, 255, 1);
442
+    box-shadow: 0px 3px 9px 0px rgba(7, 30, 102, 0.15);
443
+    border-radius: 50%;
444
+    position: fixed;
445
+    right: 1.125rem;
446
+    bottom: 4.25rem;
447
+    img {
448
+      width: 100%;
449
+    }
450
+  }
451
+}
452
+</style>

+ 467 - 0
src/kpa_pages/doctorAdvice/index.vue View File

@@ -0,0 +1,467 @@
1
+<template>
2
+  <div class="page_doctorAdvice">
3
+    <div class="box">
4
+      <div class="info">
5
+        <div class="photo">
6
+          <img :src="patientForm.avatar" alt/>
7
+        </div>
8
+        <div class="infoRight">
9
+          <div class="rightTop">
10
+            <span class="name">{{patientForm.name}}</span>
11
+            <span>{{patientForm.sex}}</span>&ensp;|
12
+            <span>{{patientForm.age}}岁</span>
13
+          </div>
14
+          <div class="rightBottom">
15
+            <p class="num">
16
+              [透析号:
17
+              <span>{{patientForm.dialysis_no}}</span>]
18
+            </p>
19
+            <div class="imgList">
20
+              <img src="../../assets/images/b1.png" alt v-show="yiShow" />
21
+              <img src="../../assets/images/b2.png" alt v-show="meiShow" />
22
+              <img src="../../assets/images/b3.png" alt v-show="bingShow" />
23
+              <img src="../../assets/images/b4.png" alt  v-show="aiShow"/>
24
+            </div>
25
+          </div>
26
+        </div>
27
+      </div>
28
+    </div>
29
+    <div class="search">
30
+      <el-input placeholder="输入医嘱内容" prefix-icon="el-icon-search" v-model="searchVal" v-on:input="watchNum"></el-input>
31
+    </div>
32
+    <div class="time">
33
+      <van-cell @click="showPopup(1)">
34
+        {{ startTime }}
35
+        <van-icon name="arrow-down" />
36
+      </van-cell>
37
+      <van-popup v-model="show1" position="bottom" :style="{ height: '50%' }">
38
+        <van-datetime-picker
39
+          v-model="currentDate1"
40
+          type="date"
41
+          @cancel="show1=false"
42
+          @confirm="chooseStartTime"
43
+        />
44
+      </van-popup>
45
+      <div class="line">-</div>
46
+      <van-cell @click="showPopup(2)">
47
+        {{ endTime }}
48
+        <van-icon name="arrow-down" />
49
+      </van-cell>
50
+      <van-popup v-model="show2" position="bottom" :style="{ height: '50%' }">
51
+        <van-datetime-picker
52
+          v-model="currentDate2"
53
+          type="date"
54
+          @cancel="show2=false"
55
+          @confirm="chooseEndTime"
56
+        />
57
+      </van-popup>
58
+    </div>
59
+    <div class="statOrder">
60
+
61
+      <div class="statOrderOne" v-for="(item,index) in this.doctorAdvice" :key="item.id">
62
+        <van-swipe-cell>
63
+          <van-cell :border="false">
64
+               <template>
65
+               <div class="custom-title">{{RecordTime(item.advice_date)}}</div>
66
+            </template>
67
+            <!-- 使用 right-icon 插槽来自定义右侧图标 -->
68
+            <van-icon
69
+              slot="right-icon"
70
+              name="ellipsis"
71
+              style="line-height: inherit;"
72
+              @click="onClick(1)"
73
+            />
74
+          </van-cell>
75
+          <template slot="right">
76
+            <van-button square type="danger" text="删除" @click="deleteDoctorAdvice(item.id)"/>
77
+          </template>
78
+        </van-swipe-cell>
79
+        <van-action-sheet v-model="show3" :actions="actions" cancel-text="取消"></van-action-sheet>
80
+        <div class="msg">
81
+            <span v-if="item.advice_type==1">长嘱</span>
82
+            <span v-else-if="item.advice_type==3">临嘱</span>
83
+            <span v-else></span>
84
+          <!-- <span>18:00</span> -->
85
+          <div v-if="item.parent_id==0">
86
+          <p>医嘱内容:{{item.advice_name}}&nbsp;药品规格:{{item.advice_desc}}{{item.drug_spec_unit}}</p>
87
+          <p>开药数量:{{item.prescribing_number}}{{item.prescribing_number_unit}}&nbsp;单次用量: <span v-if="item.single_dose!=0">{{item.single_dose}}{{item.single_dose_unit}}</span></p>
88
+           <p>频率:<span v-if="item.parent_id==0">{{item.execution_frequency}}</span>&nbsp;用法:<span v-if="item.parent_id==0">{{item.delivery_way}}</span></p>
89
+           <p>执行时间:  <span  v-if="item.execution_state==1"> {{item.execution_time | parseTime('{y}-{m}-{d} {h}:{i}')}}</span>&nbsp;终止时间: <span v-if="item.stop_state==1"> {{item.stop_time | parseTime('{y}-{m}-{d} {h}:{i}')}}</span></p>
90
+           <p>执行护士:  <span v-if="item.parent_id==0">{{item.execution_staff}}</span></p>
91
+           </div>
92
+         <div v-if="item.parent_id!=0">
93
+           <p>▲ {{item.advice_name}}</p>
94
+         </div> 
95
+      
96
+          <div class="doctorAll">
97
+            <div class="doctor">
98
+              <span>开嘱医生:</span>
99
+              <span>{{doctor_name}}</span>
100
+              <span>开嘱时间:</span>
101
+              <span>{{RecordTime(item.created_time)}}</span>
102
+              <span>核对护士:</span>
103
+              <span v-if="item.parent_id==0">{{item.checker}}</span>
104
+              <span>校对时间:</span>
105
+               <span v-if="item.check_state==1">{{item.created_time | parseTime('{y}-{m}-{d} {h}:{i}')}}</span>
106
+            </div>
107
+          </div>
108
+        </div>
109
+  
110
+      </div>
111
+
112
+    </div>
113
+    <div class="add">
114
+      <img src="../../assets/images/add2.png" alt />
115
+    </div>
116
+  </div>
117
+</template>
118
+
119
+
120
+<script>
121
+const moment = require('moment')
122
+import { GetDoctroAdvice, toSeacherDoctorAdvice, deleteDoctorAdvice } from '@/api/login/login'
123
+import { uParseTime } from '@/utils/tools'
124
+export default {
125
+  data() {
126
+    return {
127
+      searchVal: '',
128
+      startTime: moment(new Date()).format('YYYY-MM-DD'),
129
+      endTime: moment(new Date()).format('YYYY-MM-DD'),
130
+      show1: false,
131
+      show2: false,
132
+      currentDate1: new Date(),
133
+      currentDate2: new Date(),
134
+      show3: false,
135
+      actions: [
136
+        { name: '编辑' },
137
+        { name: '删除' }
138
+      ],
139
+      time: '2016-10-2',
140
+      patientForm: {
141
+        name: '',
142
+        sex: '',
143
+        age: '',
144
+        dialysis_no: '',
145
+        avatar: ''
146
+      },
147
+      doctorAdvice: [],
148
+      yiShow: false,
149
+      meiShow: false,
150
+      bingShow: false,
151
+      aiShow: false,
152
+      doctor_name: ''
153
+    }
154
+  },
155
+  methods: {
156
+    showPopup(index) {
157
+      if (index === 1) {
158
+        this.show1 = true
159
+      } else if (index === 2) {
160
+        this.show2 = true
161
+      }
162
+    },
163
+    chooseStartTime(value) {
164
+      this.startTime = moment(value).format('YYYY-MM-DD')
165
+      console.log('starttime', this.startTime)
166
+      var patientid = this.$route.query.patientid
167
+      var orgid = this.$route.query.orgid
168
+      this.GetDoctroAdvice(patientid, orgid, this.startTime)
169
+      this.show1 = false
170
+    },
171
+    chooseEndTime(value) {
172
+      this.endTime = moment(value).format('YYYY-MM-DD')
173
+      var patientid = this.$route.query.patientid
174
+      var orgid = this.$route.query.orgid
175
+      this.GetDoctroAdvice(patientid, orgid, this.endTime)
176
+      this.show2 = false
177
+    },
178
+    onClick(index) {
179
+      if (index === 1) {
180
+        this.show3 = true
181
+      } else if (index === 2) {
182
+        this.show3 = true
183
+      }
184
+    },
185
+    RecordTime(time) {
186
+      // return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
187
+      return uParseTime(time, '{y}-{m}-{d}')
188
+    },
189
+    GetDoctroAdvice(patientid, orgid) {
190
+      GetDoctroAdvice(patientid, orgid, this.startTime, this.endTime, this.searchVal).then(response => {
191
+        if (response.data.state === 1) {
192
+          var doctoradvice = response.data.data.doctoradvice
193
+          this.doctorAdvice = doctoradvice
194
+          var patients = response.data.data.patients
195
+          this.patientForm.name = patients.name
196
+          this.patientForm.age = patients.age
197
+          this.patientForm.avatar = patients.avatar
198
+          var diseases = response.data.data.diseases
199
+          console.log('diseases', diseases)
200
+          for (let index = 0; index < diseases.length; index++) {
201
+            if (diseases[index].disease_id === 2) {
202
+              this.yiShow = true
203
+            }
204
+            if (diseases[index].disease_id === 3) {
205
+              this.bingShow = true
206
+            }
207
+            if (diseases[index].disease_id === 4) {
208
+              this.aiShow = true
209
+            }
210
+
211
+            if (diseases[index].disease_id === 6) {
212
+              this.meiShow = true
213
+            }
214
+          }
215
+          if (patients.gender === 1) {
216
+            this.patientForm.sex = '男'
217
+          }
218
+          if (patients.gender === 2) {
219
+            this.patientForm.sex = '女'
220
+          }
221
+          this.patientForm.dialysis_no = patients.dialysis_no
222
+          console.log('doctoradvice', doctoradvice)
223
+          console.log('patients', patients)
224
+          var role = response.data.data.role
225
+          console.log('role', role)
226
+          this.doctor_name = role.user_name
227
+        }
228
+      })
229
+    },
230
+    watchNum() {
231
+      var patientid = this.$route.query.patientid
232
+      var orgid = this.$route.query.orgid
233
+      toSeacherDoctorAdvice(patientid, orgid, this.searchVal).then(response => {
234
+        if (response.data.state === 1) {
235
+          var doctorAdvice = response.data.data.doctoradvice
236
+          console.log('doctoradvice', doctorAdvice)
237
+          this.doctorAdvice = doctoradvice
238
+        }
239
+      })
240
+    },
241
+    deleteDoctorAdvice(id, index) {
242
+      deleteDoctorAdvice(id, index).then(response => {
243
+        if (response.data.state === 1) {
244
+          var msg = response.data.data.msg
245
+          console.log('msg', msg)
246
+          this.doctorAdvice.splice(index, 1)
247
+        }
248
+      })
249
+    }
250
+  },
251
+  created() {
252
+    var patientid = this.$route.query.patientid
253
+    var orgid = this.$route.query.orgid
254
+    console.log('paitientid是什么', patientid)
255
+    console.log('orgid是什么', orgid)
256
+    this.GetDoctroAdvice(patientid, orgid)
257
+  }
258
+}
259
+</script>
260
+
261
+<style lang="scss">
262
+.page_doctorAdvice {
263
+  overflow: hidden;
264
+  height: 100%;
265
+  overflow-y: auto;
266
+  .box {
267
+    width: 100%;
268
+    height: 9.1875rem;
269
+    background: #fcfcfc;
270
+    padding-top: 1.25rem;
271
+    box-sizing: border-box;
272
+  }
273
+  .info {
274
+    width: 21.375rem;
275
+    height: 6.1875rem;
276
+    background: rgba(255, 255, 255, 1);
277
+    border-radius: 10px;
278
+    margin: 0 auto;
279
+    box-shadow: 0px 2px 12px 0px #f5f5f5;
280
+    .photo {
281
+      float: left;
282
+      width: 3.75rem;
283
+      height: 3.75rem;
284
+      margin: 1.125rem 1rem 0 1.125rem;
285
+      img {
286
+        width: 100%;
287
+        height: 100%;
288
+      }
289
+    }
290
+    .infoRight {
291
+      float: left;
292
+      padding-top: 1.625rem;
293
+      box-sizing: border-box;
294
+      .rightTop {
295
+        margin-bottom: 0.75rem;
296
+      }
297
+      .name {
298
+        font-size: 1.0625rem;
299
+        font-weight: 600;
300
+        color: rgba(0, 0, 0, 1);
301
+        margin-right: 1rem;
302
+      }
303
+      span {
304
+        font-size: 0.875rem;
305
+        color: rgba(60, 60, 60, 1);
306
+      }
307
+      .rightBottom {
308
+        height: 1.4375rem;
309
+        line-height: 1.4375rem;
310
+        .num {
311
+          float: left;
312
+          font-size: 0.875rem;
313
+          color: rgba(60, 60, 60, 1);
314
+        }
315
+        .imgList {
316
+          float: left;
317
+          margin-left: 0.875rem;
318
+          img {
319
+            width: 1.4375rem;
320
+            height: 1.4375rem;
321
+            margin: 0 0.125rem;
322
+          }
323
+        }
324
+      }
325
+    }
326
+  }
327
+  .search {
328
+    width: 21.375rem;
329
+    height: 2.125rem;
330
+    background: rgba(244, 244, 244, 1);
331
+    border-radius: 17px;
332
+    margin: 0 auto;
333
+    .el-input__inner {
334
+      height: 2.125rem;
335
+      line-height: 2.125rem;
336
+      border: none;
337
+      background: rgba(244, 244, 244, 1);
338
+      border-radius: 17px;
339
+      padding-left: 2.5rem;
340
+      color: rgba(155, 155, 155, 1);
341
+      font-size: 0.9375rem;
342
+    }
343
+    .el-input__prefix {
344
+      margin-top: 0.0625rem;
345
+      font-size: 1.25rem;
346
+    }
347
+    .el-input__icon {
348
+      line-height: 2.125rem;
349
+    }
350
+  }
351
+  .time {
352
+    color: #9b9b9b;
353
+    margin-left: 1rem;
354
+    margin-top: 0.75rem;
355
+    width: 342px;
356
+    // height:2.125rem;
357
+    overflow: hidden;
358
+    .van-cell {
359
+      width: 8.5rem;
360
+      height: 2.125rem;
361
+      line-height: 2.125rem;
362
+      background: #f4f4f4;
363
+      border-radius: 17px;
364
+      margin-bottom: 0.75rem;
365
+      padding: 0 1rem;
366
+      font-size: 0.875rem;
367
+      float: left;
368
+      .van-icon-arrow-down {
369
+        float: right;
370
+        line-height: 2.125rem;
371
+      }
372
+    }
373
+    .line {
374
+      float: left;
375
+      line-height: 2.125rem;
376
+    }
377
+  }
378
+  .statOrder {
379
+    width: 21.5625rem;
380
+    margin: 0 auto;
381
+    .statOrderOne {
382
+      padding-bottom: 1.25rem;
383
+      border-top: 1px dashed #e6e6e6;
384
+      border-bottom: 1px dashed #e6e6e6;
385
+    }
386
+    .van-cell {
387
+      padding: 10px 6px;
388
+    }
389
+    // .edit {
390
+    //   float: right;
391
+    //   width: 4.5625rem;
392
+    //   height: 1.875rem;
393
+    //   background: rgba(81, 119, 238, 0.2);
394
+    //   border-radius: 15px;
395
+    //   color: #5177ee;
396
+    //   text-align: center;
397
+    //   line-height: 1.875rem;
398
+    //   margin-left: 8.75rem;
399
+    // }
400
+    // .title {
401
+    //   border-top: 1px solid #e6e6e6;
402
+    //   display: flex;
403
+    //   height: 3.125rem;
404
+    //   align-items: center;
405
+    // }
406
+    // .el-icon-arrow-down {
407
+    //   margin-left: 0.5rem;
408
+    // }
409
+    // .year {
410
+    //   margin-left: 0.625rem;
411
+    //   font-size: 0.9375rem;
412
+    //   font-weight: 600;
413
+    //   color: rgba(0, 0, 0, 1);
414
+    // }
415
+    .msg {
416
+      font-size: 0.75rem;
417
+      color: rgba(60, 60, 60, 1);
418
+      font-weight: 600;
419
+      padding-top: 0.75rem;
420
+      padding-bottom: 1rem;
421
+      // border-top: 1px dashed #e6e6e6;
422
+      span {
423
+        margin-left: 0.375rem;
424
+      }
425
+      p {
426
+        font-size: 0.875rem;
427
+        margin: 0.625rem 0;
428
+        color: rgba(0, 0, 0, 1);
429
+      }
430
+    }
431
+    .doctorAll {
432
+      display: flex;
433
+      justify-content: space-between;
434
+      margin-top: 0.25rem;
435
+      font-size: 0.75rem;
436
+      font-weight: 400;
437
+      color: rgba(155, 155, 155, 1);
438
+      .doctor {
439
+        float: left;
440
+      }
441
+    }
442
+    .el-collapse-item__content {
443
+      padding-bottom: 1rem;
444
+    }
445
+    .el-collapse {
446
+      border-top: none;
447
+    }
448
+    .none {
449
+      padding-bottom: 0;
450
+    }
451
+  }
452
+  .add {
453
+    width: 4.5rem;
454
+    height: 4.5rem;
455
+    background: rgba(255, 255, 255, 1);
456
+    box-shadow: 0px 3px 9px 0px rgba(7, 30, 102, 0.15);
457
+    border-radius: 50%;
458
+    position: fixed;
459
+    right: 1.125rem;
460
+    bottom: 4.25rem;
461
+    img {
462
+      width: 100%;
463
+    }
464
+  }
465
+}
466
+</style>
467
+

+ 57 - 63
src/kpa_pages/forgetPassword/forget.vue View File

@@ -43,73 +43,72 @@
43 43
 
44 44
 
45 45
 <script>
46
- import {checkPassWord} from "@/utils/tools"
47
- import { Accomplish } from "@/api/login/login"
46
+ import { checkPassWordTwo } from '@/utils/tools'
47
+ import { Accomplish } from '@/api/login/login'
48 48
  import { hex_md5 } from '@/utils/md5'
49 49
 import { RSA_PKCS1_PADDING } from 'constants'
50 50
 export default {
51
-  data() {
52
-     var checkPasswordRule = (rule,value,callback) =>{
53
-       if(!checkPassWord(value)){
54
-          callback(new Error('密码需在6-20位之间,且必须包含字母和数字'));
55
-       }else{
56
-         callback();
51
+   data() {
52
+     var checkPasswordRule = (rule, value, callback) => {
53
+       if (!checkPassWordTwo(value)) {
54
+         callback(new Error('密码长度不能小于6位数'))
55
+       } else {
56
+         callback()
57 57
        }
58 58
      }
59 59
 
60
-    return {
61
-      phone: "",
62
-      code: "",
63
-      psd: "",
64
-      contact: false,
65
-      pwdForm:{
66
-          newpassword:"",
67
-         confirmpassword:"",
68
-      },
69
-      loginshow:false,
70
-      loginshowone:true,
71
-      rules:{
72
-        newpassword:[{required:true,message: "请输入密码"},{validator:checkPasswordRule}],
73
-        confirmpassword:[{required:true,message:"请输入确认密码"},{validator:checkPasswordRule}],
74
-      },
75
-    };
76
-  },
77
-  methods:{
78
-   watchNum(){
79
-       if(this.pwdForm.newpassword == "" || this.pwdForm.confirmpassword == ""){
80
-            this.loginshow = false;
81
-            this.loginshowone = true;
82
-       }else{
83
-           this.loginshow = true;
84
-           this.loginshowone = false;
60
+     return {
61
+       phone: '',
62
+       code: '',
63
+       psd: '',
64
+       contact: false,
65
+       pwdForm: {
66
+         newpassword: '',
67
+         confirmpassword: ''
68
+       },
69
+       loginshow: false,
70
+       loginshowone: true,
71
+       rules: {
72
+         newpassword: [{ required: true, message: '请输入密码' }, { validator: checkPasswordRule }],
73
+         confirmpassword: [{ required: true, message: '请输入确认密码' }, { validator: checkPasswordRule }]
85 74
        }
75
+     }
86 76
    },
87
-   Accomplish(formName){
88
-        //    if(this.pwdForm.newpassword != this.pwdForm.confirmpassword){
89
-        //      this.$message.error("两次密码输入一致,请重新输入")
90
-        //      return false
91
-        //    }
92
-          const phone = this.$route.query.phone;
93
-          console.log("phone",phone)
94
-       this.$refs[formName].validate((valid)=>{
95
-           if(valid){
96
-              Accomplish(phone,hex_md5(this.pwdForm.newpassword),hex_md5(this.pwdForm.confirmpassword)).then(response=>{
97
-                    if(response.data.state == 1){
98
-                      var admin  =   response.data.data.admin;  
99
-                      this.$router.push("/login")                   
100
-                    }else{
101
-                        this.$message.error("两次输入密码不一致,请重新输入");
102
-                        
103
-                    }
104
-              })
105
-           }
77
+   methods: {
78
+     watchNum() {
79
+       if (this.pwdForm.newpassword == '' || this.pwdForm.confirmpassword == '') {
80
+         this.loginshow = false
81
+         this.loginshowone = true
82
+       } else {
83
+         this.loginshow = true
84
+         this.loginshowone = false
85
+       }
86
+     },
87
+     Accomplish(formName) {
88
+       //    if(this.pwdForm.newpassword != this.pwdForm.confirmpassword){
89
+       //      this.$message.error("两次密码输入一致,请重新输入")
90
+       //      return false
91
+       //    }
92
+       const phone = this.$route.query.phone
93
+       console.log('phone', phone)
94
+       this.$refs[formName].validate((valid) => {
95
+         if (valid) {
96
+           Accomplish(phone, hex_md5(this.pwdForm.newpassword), hex_md5(this.pwdForm.confirmpassword)).then(response => {
97
+             if (response.data.state == 1) {
98
+               var admin = response.data.data.admin
99
+               this.$router.push('/login')
100
+             } else {
101
+               this.$message.error('两次输入密码不一致,请重新输入')
102
+             }
103
+           })
104
+         }
106 105
        })
106
+     }
107
+   },
108
+   created() {
109
+ 
107 110
    }
108
-  },
109
-  created(){
110
-     
111
-  }
112
-};
111
+}
113 112
 </script>
114 113
 
115 114
 <style lang="scss">
@@ -219,12 +218,7 @@ export default {
219 218
   .logintwo{
220 219
      width: 19.25rem;
221 220
     height: 2.875rem;
222
-    background: linear-gradient(
223
-      -90deg,
224
-      rgb(66, 66, 66),
225
-      rgb(66, 66, 66),
226
-      rgba(66, 66, 66, 1)
227
-    );
221
+     background: #e5e5e5;
228 222
     border-radius: 1.4375rem;
229 223
     margin: 0 auto;
230 224
     line-height: 2.875rem;

+ 277 - 167
src/kpa_pages/forgetPassword/index.vue View File

@@ -1,28 +1,64 @@
1 1
 <template>
2 2
   <div class="page_noPassword">
3
-    <div class="myInput">
4
-      <!-- <el-input placeholder="请输入手机号码" prefix-icon="el-icon-mobile" v-model="phone"></el-input>
5
-      <div class="code">
6
-        <i class="iconfont icon-dunpai dunpai"></i>
7
-        <el-input v-model="code" placeholder="请输入验证码"></el-input>
8
-        <div class="getCode">获取验证码</div>
9
-      </div> -->
3
+    <div class="nopasswordTitle">
4
+      <i class="iconfont icon-zuojiantou jiantou"></i>
5
+      <span class="titleName">忘记密码</span>
6
+    </div>
7
+    <div class="forgetmyInput">
10 8
       <el-form ref="forgetForm" :model="forgetForm" :rules="rules">
11
-          <el-form-item required prop="phone">
12
-              <el-input placeholder="请输入手机号码" prefix-icon="el-icon-mobile" v-model="forgetForm.phone" v-on:input="watchNum"></el-input>
13
-          </el-form-item>
14
-          <el-form-item required prop="code">
15
-               <div class="code">
16
-                <i class="iconfont icon-dunpai dunpai"></i>
17
-                <el-input v-model="forgetForm.code" placeholder="请输入验证码" v-on:input="watchNum"></el-input>
18
-                <!-- <div class="getCode">获取验证码</div> -->
19
-                <el-button class="getCode" :type="count_downing ? 'info' : 'primary'" :disabled="count_downing" @click="getCodeAction">{{ code_btn_title }}</el-button>
20
-            </div>
21
-          </el-form-item>
9
+        <el-form-item required prop="phone">
10
+          <div class="phoneLine">
11
+            <i class="el-icon-mobile mobile"></i>
12
+            <el-input
13
+              class="phoneInput"
14
+              placeholder="请输入手机号码"
15
+              v-model="forgetForm.phone"
16
+              v-on:input="watchNum"
17
+              maxlength="11"
18
+              @input="change(forgetForm.phone)"
19
+            ></el-input>
20
+          </div>
21
+        </el-form-item>
22
+        <el-form-item required prop="code">
23
+          <div class="code">
24
+            <i class="iconfont icon-dunpai dunpai"></i>
25
+            <el-input
26
+              v-model="forgetForm.code"
27
+              placeholder="请输入验证码"
28
+              v-on:input="watchNum"
29
+            ></el-input>
30
+            <div class="getCode">获取验证码</div>
31
+            <!-- <el-button
32
+              class="getCode"
33
+              :type="count_downing ? 'info' : 'primary'"
34
+              :disabled="count_downing"
35
+              @click="getCodeAction"
36
+              v-show="codeshow"
37
+            >{{ code_btn_title }}</el-button>
38
+            <el-button
39
+              class="getCodetwo"
40
+              :type="count_downing ? 'info' : 'primary'"
41
+              :disabled="count_downing"
42
+              v-show="codeshowtwo"
43
+            >{{ code_btn_title }}</el-button>-->
44
+          </div>
45
+        </el-form-item>
46
+        <el-form-item>
47
+          <div class="phoneLine">
48
+            <i class="el-icon-lock lock"></i>
49
+            <el-input
50
+              class="phoneInput"
51
+              v-model="psd"
52
+              placeholder="请输入密码"
53
+              show-password
54
+              clearable
55
+            ></el-input>
56
+          </div>
57
+        </el-form-item>
22 58
       </el-form>
23 59
     </div>
24
-    <div class="login" @click="NextStep()" v-show="loginshow">下一步</div> 
25
-    <div class="logintwo"  v-show="loginshowtwo">下一步</div>
60
+    <div class="login" @click="NextStep()" v-show="loginshow">登录</div>
61
+    <div class="logintwo" v-show="loginshowtwo">登录</div>
26 62
     <div class="problem">
27 63
       遇到问题?点击
28 64
       <span @click="contact = true">联系客服</span>
@@ -47,19 +83,18 @@
47 83
   </div>
48 84
 </template>
49 85
 
50
-
51 86
 <script>
52
-  import {getCode,NextStep} from "@/api/login/login" 
53
-  import {checkMobile} from "@/utils/tools"
54
-export default { 
87
+import { getCode, NextStep } from "@/api/login/login";
88
+import { checkMobile } from "@/utils/tools";
89
+export default {
55 90
   data() {
56
-       var checkMobileRule = (rule, value, callback) => {
57
-        if (!checkMobile(value)) {
58
-           callback(new Error('请填写正确的手机号'));
59
-           }else {
60
-           callback();
61
-         }
62
-       };
91
+    var checkMobileRule = (rule, value, callback) => {
92
+      if (!checkMobile(value)) {
93
+        callback(new Error("请填写正确的手机号"));
94
+      } else {
95
+        callback();
96
+      }
97
+    };
63 98
     return {
64 99
       phone: "",
65 100
       code: "",
@@ -67,110 +102,149 @@ export default {
67 102
       contact: false,
68 103
       count_downing: false,
69 104
       count_down: 0,
70
-      forgetForm:{
71
-         phone:"",
72
-         code:"",
105
+      forgetForm: {
106
+        phone: "",
107
+        code: ""
73 108
       },
74
-      rules:{
75
-        phone:[{required:true,message: "手机号码不能为空"},{validator:checkMobileRule}],
76
-        code:[{required:true,message:"验证码不能为空"}],
109
+      rules: {
110
+        phone: [
111
+          { required: true, message: "手机号码不能为空" },
112
+          { validator: checkMobileRule }
113
+        ],
114
+        code: [{ required: true, message: "验证码不能为空" }]
77 115
       },
78
-      loginshow:false,
79
-      loginshowtwo:true,
116
+      loginshow: false,
117
+      loginshowtwo: true,
118
+      codeshow: false,
119
+      codeshowtwo: true
80 120
     };
81 121
   },
82
-  methods:{
122
+  methods: {
83 123
     //   NextStep(){
84 124
     //       this.$router.push("/forgetpasswordnext")
85 125
     //   },
86
-      callPhone(){
87
-           window.location.href = 'tel://075586526342'  
88
-      },
89
-      getCodeAction(){
90
-        this.count_downing = true
91
-        this.count_down = 61
92
-        this.countDown()
93
-        getCode(this.forgetForm.phone).then(response=>{
94
-
95
-        })
126
+    callPhone() {
127
+      window.location.href = "tel://075586526342";
96 128
     },
97
-     countDown: function() {
98
-      this.count_down = this.count_down - 1
99
-      if (this.count_down == 0) {
100
-        this.count_downing = false
101
-        return
129
+    getCodeAction() {
130
+      this.count_downing = true;
131
+      this.count_down = 61;
132
+      this.countDown();
133
+      getCode(this.forgetForm.phone).then(response => {});
134
+    },
135
+    countDown: function() {
136
+      this.count_down = this.count_down - 1;
137
+      if (this.count_down === 0) {
138
+        this.count_downing = false;
139
+        return;
102 140
       }
103
-      var t = this
141
+      var t = this;
104 142
       setTimeout(() => {
105
-        this.countDown()
106
-      }, 1000)
143
+        this.countDown();
144
+      }, 1000);
145
+    },
146
+    watchNum() {
147
+      if (this.forgetForm.phone.length === 11) {
148
+        this.codeshow = true;
149
+        this.codeshowtwo = false;
150
+      } else {
151
+        this.codeshow = false;
152
+        this.codeshowtwo = true;
153
+      }
154
+
155
+      if (this.forgetForm.phone === "" || this.forgetForm.code === "") {
156
+        this.loginshow = false;
157
+        this.loginshowtwo = true;
158
+      } else {
159
+        this.loginshow = true;
160
+        this.loginshowtwo = false;
161
+      }
162
+    },
163
+    NextStep() {
164
+      NextStep(this.forgetForm.phone, this.forgetForm.code).then(response => {
165
+        if (response.data.state === 1) {
166
+          // eslint-disable-next-line no-unused-vars
167
+          var msg = response.data.data.msg;
168
+          this.$router.push(
169
+            "/forgetpasswordnext?phone=" + this.forgetForm.phone
170
+          );
171
+        } else {
172
+          this.$message.error("账号或验证码错误");
173
+        }
174
+      });
107 175
     },
108
-       watchNum(){ 
109
-        if(this.forgetForm.phone == "" || this.forgetForm.code == ""){
110
-           this.loginshow = false;
111
-            this.loginshowtwo = true;
112
-           }else{
113
-             this.loginshow = true;
114
-             this.loginshowtwo = false;
115
-         }
116
-       },
117
-       NextStep(){
118
-         NextStep(this.forgetForm.phone,this.forgetForm.code).then(response=>{
119
-              if(response.data.state == 1){
120
-                 var msg =  response.data.data.msg
121
-                 this.$router.push("/forgetpasswordnext?phone="+this.forgetForm.phone)
122
-              }else{
123
-                 this.$message.error("验证码不正确")
124
-              }
125
-         })
126
-       }
176
+    change(value) {
177
+      this.forgetForm.phone = value.replace(/[^0-9]+/g, "");
178
+    }
127 179
   },
128
-    computed:{
129
-       code_btn_title: function() {
180
+  computed: {
181
+    code_btn_title: function() {
130 182
       if (this.count_down == 0) {
131
-        return '获取验证码'
183
+        return "获取验证码";
132 184
       } else {
133
-        return '重新发送('+ this.count_down + ')'
185
+        return "重新发送(" + this.count_down + ")";
134 186
       }
135
-    },
187
+    }
136 188
   }
137 189
 };
138 190
 </script>
139 191
 
140
-<style lang="scss">
192
+<style lang="scss" scoped>
141 193
 .page_noPassword {
142 194
   overflow: hidden;
143
-  .myInput {
195
+  height: 100%;
196
+  .nopasswordTitle {
197
+    height: 3.125rem;
198
+    line-height: 3.125rem;
199
+    display: flex;
200
+    align-items: center;
201
+  }
202
+  .jiantou {
203
+    margin-left: 1.25rem;
204
+    font-size: 1.5rem;
205
+    font-weight: 600;
206
+    margin-right: 6.625rem;
207
+  }
208
+  .titleName {
209
+    font-size: 1.125rem;
210
+    font-weight: 600;
211
+  }
212
+  .forgetmyInput {
144 213
     margin-top: 4rem;
145
-    .el-input {
146
-      display: block;
214
+    .phoneLine {
215
+      width: 84%;
147 216
       margin: 0 auto;
148
-      width: 19.0625rem;
217
+      display: flex;
149 218
       border-bottom: 1px solid #e6e6e6;
150
-      color: rgba(155, 155, 155, 1);
151
-      padding-left: 0.75rem;
152
-      box-sizing: border-box;
153
-      height: 3.875rem;
154
-      line-height: 3.875rem;
155
-      padding-top: 0.125rem;
156
-    }
157
-    .el-input__inner {
158
-      border: none;
219
+      .mobile {
220
+        float: left;
221
+        color: #acacac;
222
+        font-size: 1.5rem;
223
+        margin-left: 0.375rem;
224
+        line-height: 3.375rem;
225
+        width: 1.5rem;
226
+      }
227
+      .phoneInput {
228
+        width: 95%;
229
+      }
159 230
     }
160
-    .el-input__prefix {
161
-      font-size: 1.5rem;
231
+
232
+    .lock {
233
+      float: left;
162 234
       color: #acacac;
163
-    }
164
-    .el-input__icon {
165 235
       font-size: 1.5rem;
166
-      line-height: 4.25rem;
236
+      margin-left: 0.375rem;
237
+      line-height: 3.375rem;
238
+      width: 1.5rem;
167 239
     }
168 240
     .code {
169
-      line-height: 3.875rem;
170
-      width: 19.0625rem;
171
-      height: 3.875rem;
241
+      line-height: 3.375rem;
242
+      width: 84%;
243
+      height: 3.375rem;
172 244
       margin: 0 auto;
173 245
       border-bottom: 1px solid #e6e6e6;
246
+      display: flex;
247
+      align-items: center;
174 248
 
175 249
       .dunpai {
176 250
         float: left;
@@ -180,7 +254,7 @@ export default {
180 254
       }
181 255
       .el-input {
182 256
         float: left;
183
-        width: 11.25rem;
257
+        width: 10.6rem;
184 258
         border: none;
185 259
         padding: 0;
186 260
       }
@@ -190,20 +264,28 @@ export default {
190 264
       }
191 265
       .getCode {
192 266
         // float: left;
267
+        width: 5.75rem;
268
+        height: 2rem;
269
+        line-height: 2rem;
270
+        text-align: center;
271
+        color: #fff;
272
+        background: #338afb;
273
+        border-radius: 1.4375rem;
274
+        font-size: 0.8125rem;
275
+      }
276
+      .getCodetwo {
193 277
         width: 5.75rem;
194 278
         height: 2rem;
195 279
         // line-height: 2rem;
196 280
         text-align: center;
197 281
         color: #fff;
198
-        background: linear-gradient(
199
-          -90deg,
200
-          rgba(129, 159, 246, 1),
201
-          rgba(81, 119, 238, 1),
202
-          rgba(75, 102, 234, 1)
203
-        );
282
+        background: #e5e5e5;
204 283
         border-radius: 1.4375rem;
205 284
         font-size: 0.8125rem;
206
-        margin-top: 0.9375rem;
285
+      }
286
+
287
+      .el-button--primary {
288
+        border-color: transparent;
207 289
       }
208 290
     }
209 291
   }
@@ -224,70 +306,98 @@ export default {
224 306
     margin-top: 2.875rem;
225 307
   }
226 308
   .problem {
227
-    margin-top: 1.75rem;
228
-    width: 9.625rem;
309
+    width: 84%;
229 310
     font-size: 0.8125rem;
230
-    margin-left: 3.5625rem;
311
+    margin: 15rem auto 0;
312
+    text-align: center;
231 313
     span {
232
-      color: #5177ee;
233
-    }
234
-  }
235
-  .myDialog {
236
-    line-height: 50%;
237
-    height: 100%;
238
-    .el-dialog {
239
-      border-radius: 10px;
240
-    }
241
-    .el-dialog__title {
242
-      color: #000000;
243
-    }
244
-    .telephone {
245
-      width: 12.5rem;
246
-      height: 1.125rem;
247
-      font-size: 1.5rem;
248
-      font-weight: 500;
249
-      color: rgba(81, 119, 238, 1);
250
-      margin-left: 2.5rem;
251
-    }
252
-    .dialog-footer {
253
-      //   display: flex;
254
-      //   justify-content: space-around;
255
-      //   align-items: center;
256
-      > span:nth-of-type(1) {
257
-        color: #9b9b9b;
258
-      }
259
-      > span:nth-of-type(2) {
260
-        // width: 0.125rem;
261
-        // height: 1.75rem;
262
-        // line-height: 1.75rem;
263
-        padding: 0 3.125rem;
264
-        color: #e6e6e6;
265
-      }
266
-      > span:nth-of-type(3) {
267
-        color: #000000;
268
-      }
314
+      color: #338afb;
269 315
     }
270 316
   }
271 317
 }
272 318
 
273
-.el-form-item__error{
319
+.el-form-item__error {
274 320
   margin-left: 2.5rem;
275 321
 }
276 322
 
277
- .logintwo{
278
-     width: 19.25rem;
279
-    height: 2.875rem;
280
-    background: linear-gradient(
281
-      -90deg,
282
-      rgb(66, 66, 66),
283
-      rgb(66, 66, 66),
284
-      rgba(66, 66, 66, 1)
285
-    );
286
-    border-radius: 1.4375rem;
323
+.logintwo {
324
+  width: 19.25rem;
325
+  height: 2.875rem;
326
+  background: #e5e5e5;
327
+  border-radius: 1.4375rem;
328
+  margin: 0 auto;
329
+  line-height: 2.875rem;
330
+  text-align: center;
331
+  color: #fff;
332
+  margin-top: 2.875rem;
333
+}
334
+.el-button--medium {
335
+  padding: 0;
336
+}
337
+</style>
338
+<style lang="scss">
339
+.forgetmyInput {
340
+  .el-form-item {
341
+    margin-bottom: 0;
342
+  }
343
+  .el-input {
344
+    display: flex;
345
+    align-items: center;
287 346
     margin: 0 auto;
288
-    line-height: 2.875rem;
289
-    text-align: center;
290
-    color: #fff;
291
-    margin-top: 2.875rem;
347
+    color: rgba(155, 155, 155, 1);
348
+    padding-left: 0.75rem;
349
+    box-sizing: border-box;
350
+    height: 3.375rem;
351
+    line-height: 3.375rem;
352
+  }
353
+  .el-input__inner {
354
+    border: none;
355
+    font-size: 1rem;
356
+    padding-left: 0;
357
+  }
358
+  .el-input__prefix {
359
+    font-size: 1.5rem;
360
+    color: #acacac;
361
+  }
362
+
363
+  .phoneLine {
364
+    .el-input__clear {
365
+      margin-right: 0.625rem;
366
+    }
367
+    .el-input__icon {
368
+      line-height: 3.375rem;
369
+      font-size: 1.5rem;
370
+    }
292 371
   }
372
+}
373
+.myDialog {
374
+  line-height: 50%;
375
+  height: 100%;
376
+  .el-dialog {
377
+    border-radius: 10px;
378
+  }
379
+  .el-dialog__title {
380
+    color: #000000;
381
+  }
382
+  .telephone {
383
+    width: 12.5rem;
384
+    height: 1.125rem;
385
+    font-size: 1.5rem;
386
+    font-weight: 500;
387
+    color: #338afb;
388
+    margin-left: 2.5rem;
389
+  }
390
+  .dialog-footer {
391
+    > span:nth-of-type(1) {
392
+      color: #9b9b9b;
393
+    }
394
+    > span:nth-of-type(2) {
395
+      padding: 0 3.125rem;
396
+      color: #e6e6e6;
397
+    }
398
+    > span:nth-of-type(3) {
399
+      color: #000000;
400
+    }
401
+  }
402
+}
293 403
 </style>

+ 261 - 195
src/kpa_pages/home/index.vue View File

@@ -1,14 +1,18 @@
1 1
 <template>
2 2
   <div class="page_home">
3
-    <div class="top">
3
+    <!-- <div class="top">
4 4
       <div class="header">
5 5
         <img src="../../assets/images/hospital.png" alt />
6 6
         <van-dropdown-menu>
7
-          <van-dropdown-item v-model="value1" :options="hospitals" />
7
+          <van-dropdown-item v-model="value" :options="hospitals" />
8 8
         </van-dropdown-menu>
9 9
       </div>
10
-      <div class="search">
11
-        <el-input placeholder=" 姓名 / 首拼 / 透析号" prefix-icon="el-icon-search" v-model="searchVal"></el-input>
10
+      <div class="search" @click="ToSearch()">
11
+        <el-input
12
+          placeholder=" 姓名 / 首拼 / 透析号"
13
+          prefix-icon="el-icon-search"
14
+          v-model="searchVal"
15
+        ></el-input>
12 16
       </div>
13 17
       <div class="banner">
14 18
         <img src="../../assets/images/homebanner.jpg" alt />
@@ -18,35 +22,35 @@
18 22
         <div class="list">
19 23
           <ul class="all">
20 24
             <li class="one">
21
-              <img src="../../assets/images/one.jpg" alt />
25
+              <img src="../../assets/images/m09.png" alt />
22 26
               <p @click="patientManagement()">病人管理</p>
23 27
             </li>
24 28
             <li class="one">
25
-              <img src="../../assets/images/one.jpg" alt />
29
+              <img src="../../assets/images/m02.png" alt />
26 30
               <p>透析记录</p>
27 31
             </li>
28 32
             <li class="one">
29
-              <img src="../../assets/images/one.jpg" alt />
33
+              <img src="../../assets/images/m04.png" alt />
30 34
               <p>质控分析</p>
31 35
             </li>
32 36
             <li class="one">
33
-              <img src="../../assets/images/one.jpg" alt />
37
+              <img src="../../assets/images/m05.png" alt />
34 38
               <p>院感管理</p>
35 39
             </li>
36
-                 <li class="one">
37
-              <img src="../../assets/images/one.jpg" alt />
40
+            <li class="one">
41
+              <img src="../../assets/images/m06.png" alt />
38 42
               <p>微商城</p>
39 43
             </li>
40 44
             <li class="one">
41
-              <img src="../../assets/images/one.jpg" alt />
45
+              <img src="../../assets/images/m07.png" alt />
42 46
               <p>微官网</p>
43 47
             </li>
44 48
             <li class="one">
45
-              <img src="../../assets/images/one.jpg" alt />
49
+              <img src="../../assets/images/m08.png" alt />
46 50
               <p>医院二维码</p>
47 51
             </li>
48 52
             <li class="one">
49
-              <img src="../../assets/images/one.jpg" alt />
53
+              <img src="../../assets/images/m03.png" alt />
50 54
               <p>基础配置</p>
51 55
             </li>
52 56
           </ul>
@@ -56,68 +60,105 @@
56 60
 
57 61
     <div class="tab">
58 62
       <div class="btn">
59
-        <i class="iconfont icon-tianchongxing-"></i>
63
+        <i class="iconfont icon-zhuye"></i>
60 64
         <span>首页</span>
61 65
       </div>
62 66
       <div class="btn">
63 67
         <i class="iconfont icon-wode"></i>
64 68
         <span>我的</span>
65 69
       </div>
70
+    </div> -->
71
+    <div class="page-home">
72
+      <router-view />
73
+
74
+      <van-tabbar class="tab" v-model="active">
75
+        <router-link to="/homeIndex" class="link">
76
+          <van-tabbar-item>
77
+            <i class="iconfont icon-zhuye iconOne"></i>
78
+            <div>首页</div>
79
+          </van-tabbar-item>
80
+        </router-link>
81
+        <router-link to="/study">
82
+          <van-tabbar-item>
83
+            <i class="iconfont icon-jishiben iconOne"></i>
84
+            <div>学习</div>
85
+          </van-tabbar-item>
86
+        </router-link>
87
+        <router-link to="/service">
88
+          <van-tabbar-item>
89
+            <i class="iconfont icon-fuwu2 iconOne"></i>
90
+            <div>服务</div>
91
+          </van-tabbar-item>
92
+        </router-link>
93
+        <router-link to="/shop">
94
+          <van-tabbar-item>
95
+            <i class="iconfont icon-shangcheng iconOne"></i>
96
+            <div>商城</div>
97
+          </van-tabbar-item>
98
+        </router-link>
99
+        <router-link to="/my">
100
+          <van-tabbar-item>
101
+            <i class="iconfont icon-wode iconOne"></i>
102
+            <div>我的</div>
103
+          </van-tabbar-item>
104
+        </router-link>
105
+      </van-tabbar>
66 106
     </div>
67 107
   </div>
68 108
 </template>
69 109
 
70
-
110
+//
71 111
 <script>
72
- import { getAllOrgName,getNowOrgName } from "@/api/login/login"
112
+import { getAllOrgName } from "@/api/login/login";
73 113
 export default {
74 114
   data() {
75 115
     return {
76
-      value1: "",
77
-      hospitals: [],
116
+      active: 0,
117
+      value: "",
118
+      hospitals: [
119
+        {
120
+          text: "",
121
+          value: 0
122
+        }
123
+      ],
78 124
       searchVal: ""
79 125
     };
80
-  },
81
-  methods:{
82
-    getAllOrgName(){
83
-      getAllOrgName().then(response=>{
84
-          if(response.data.state == 1){
85
-            var org = response.data.data.org;
86
-            let arr = []
87
-            org.map(item => {
88
-              let obj = {}
89
-              obj.text = item.org_name
90
-              obj.value = item.id
91
-              arr.push(obj)
92
-            })
93
-            console.log(arr)
94
-             this.hospitals = arr
95
-            // console.log("org是什么",org)
96
-          } 
97
-      })
98
-    },
99
-    getNowOrgName(phone){
100
-        getNowOrgName(phone).then(response=>{
101
-          if(response.data.state == 1){
102
-             var org =  response.data.data.org;
103
-             this.value1 = org.id
104
-             console.log("org是什么",org)
105
-          }
106
-        })
107
-    },
108
-    patientManagement(){
109
-      this.$router.push("/patientmanagement")
110
-    }
111
-  },
112
-  created(){
113
-    const phone = this.$route.query.phone;
114
-    this.getAllOrgName()
115
-    this.getNowOrgName(phone)
116 126
   }
127
+  // methods: {
128
+  //   getAllOrgName(id) {
129
+  //     getAllOrgName(id).then(response => {
130
+  //       if (response.data.state === 1) {
131
+  //         var org = response.data.data.org;
132
+  //         const arr = [];
133
+  //         org.map(item => {
134
+  //           const obj = {};
135
+  //           obj.text = item.org_name;
136
+  //           obj.value = item.id;
137
+  //           arr.push(obj);
138
+  //         });
139
+  //         this.hospitals = arr;
140
+  //         for (let index = 0; index < this.hospitals.length; index++) {
141
+  //           this.value = this.hospitals[index].value;
142
+  //         }
143
+  //         console.log("this.hospitals是什么", this.hospitals);
144
+  //       }
145
+  //     });
146
+  //   },
147
+  //   patientManagement() {
148
+  //     var id = this.$route.query.id;
149
+  //     this.$router.push("/patientmanagement?id=" + id);
150
+  //   },
151
+  //   ToSearch() {
152
+  //     this.$router.push("/search");
153
+  //   }
154
+  // },
155
+  // created() {
156
+  //   const id = this.$route.query.id;
157
+  //   this.getAllOrgName(id);
158
+  // }
117 159
 };
118 160
 </script>
119 161
 
120
-
121 162
 <style lang="scss">
122 163
 .page_home {
123 164
   overflow: hidden;
@@ -125,156 +166,181 @@ export default {
125 166
   display: flex;
126 167
   flex-direction: column;
127 168
   height: 100%;
169
+  width: 100%;
170
+  position: fixed;
171
+    top: 0;
172
+    bottom: 0;
173
+    left: 0;
174
+    right: 0;
128 175
   // background: rgba(188, 188, 188, 0.1);
129 176
   > div:first-child {
130 177
     flex: 1;
131 178
     overflow: auto;
132 179
   }
133
-  .header {
134
-    padding: 0 15px;
135
-    box-sizing: border-box;
136
-    height: 3.125rem;
137
-    width: 100%;
138
-    line-height: 3.125rem;
139
-    img {
140
-      float: left;
141
-      width: 1.375rem;
142
-      height: 1.375rem;
143
-      margin-top: 0.625rem;
144
-    }
145
-    .van-dropdown-menu {
146
-      width: 8.5rem;
147
-      height: 3.125rem;
148
-    }
149
-    .van-dropdown-menu__item {
150
-      flex: none;
151
-    }
152
-    .van-ellipsis {
153
-      width: 6.25rem;
154
-      height: 3.125rem;
155
-      line-height: 3.125rem;
156
-      font-size: 0.875rem;
157
-      white-space: nowrap;
158
-      text-overflow: ellipsis;
159
-      overflow: hidden;
160
-    }
161
-  }
162
-  .search {
163
-    width: 21.5625rem;
164
-    height: 2.125rem;
165
-    padding: 0 15px;
166
-    box-sizing: border-box;
167
-    .el-input__inner {
168
-      width: 21.5625rem;
169
-      height: 2.125rem;
170
-      border: none;
171
-      background: rgba(244, 244, 244, 1);
172
-      border-radius: 17px;
173
-      color: #999999;
174
-    }
175
-    .el-input__prefix {
176
-      margin-top: -0.125rem;
177
-      color: #999999;
178
-    }
180
+  .van-tabbar-item {
181
+    height: 100%;
179 182
   }
180
-  .banner {
181
-    overflow: hidden;
182
-    margin-top: 1.25rem;
183
-    // width: 21.4375rem;
184
-    // height: 8.3125rem;
185
-    // border-radius: 10px;
186
-    width: 23.4375rem;
187
-    height: 8.3125rem;
188
-    // background: rgba(188, 188, 188, 0.1);
189
-    // opacity: 0.2;
190
-    img {
191
-      margin: 0 15px;
192
-      width: 21.4375rem;
193
-      height: 8.3125rem;
194
-      box-sizing: border-box;
195
-    }
196
-  }
197
-  .myDesk {
198
-    padding: 0 15px;
199
-    box-sizing: border-box;
200
-    padding-top: 1.5625rem;
201
-    width: 23.4375rem;
202
-    height: 17.0625rem;
203
-    // background: rgba(188, 188, 188, 0.1);
204
-    h2 {
205
-      height: 1.1875rem;
206
-      font-size: 1.25rem;
207
-      font-weight: 600;
208
-      color: rgba(0, 0, 0, 1);
209
-      line-height: 0.9375rem;
210
-    }
211
-    .list {
212
-      margin-top: 0.9375rem;
213
-      width: 21.4375rem;
214
-      height: 14rem;
215
-      background: rgba(255, 255, 255, 1);
216
-      border-radius: 10px;
217
-      box-shadow: 0px 3px 12px 0px rgba(188, 188, 188, 0.2);
218
-      display: flex;
219
-      align-items: center;
220
-      .all {
221
-        display: flex;
222
-        justify-content: space-around;
223
-        flex-wrap: wrap;
224
-      }
225
-      .one {
226
-        width: 25%;
227
-        display: flex;
228
-        flex-direction: column;
229
-        align-items: center;
230
-        justify-content: space-around;
231
-        height: 6.25rem;
232
-        img {
233
-          width: 2.8125rem;
234
-          height: 2.8125rem;
235
-        }
236
-        p {
237
-          margin-top: -0.625rem;
238
-          height: 0.8125rem;
239
-          font-size: 0.8125rem;
240
-          color: rgba(60, 60, 60, 1);
241
-          line-height: 0.9375rem;
242
-        }
243
-      }
244
-    }
183
+  .van-tabbar-item__text {
184
+    height: 100%;
185
+    display: flex;
186
+    flex-direction: column;
187
+    align-items: center;
188
+    justify-content: space-around;
245 189
   }
246
-  .tab {
190
+  .van-tabbar {
247 191
     display: flex;
248
-    width: 23.4375rem;
249
-    height: 3.0625rem;
250
-    background: rgba(255, 255, 255, 1);
251 192
     justify-content: space-around;
252
-    box-shadow: 3px 0px 12px 3px rgba(188, 188, 188, 0.2);
193
+    border-top: 1px solid #c5c5c5;
194
+  }
195
+  .iconOne {
196
+    font-size: 1.25rem;
197
+  }
253 198
 
254
-    > div:last-child {
255
-      span {
256
-        color: #bfbfbf;
257
-      }
258
-    }
259
-    .btn {
260
-      display: flex;
261
-      flex-direction: column;
262
-      align-items: center;
263
-      align-self: center;
264
-      i {
265
-        font-size: 1.5rem;
266
-        color: rgba(79, 115, 254, 1);
267
-      }
268
-      .icon-wode {
269
-        color: #bfbfbf;
270
-      }
199
+  // .header {
200
+  //   padding: 0 15px;
201
+  //   box-sizing: border-box;
202
+  //   height: 3.125rem;
203
+  //   width: 100%;
204
+  //   line-height: 3.125rem;
205
+  //   img {
206
+  //     float: left;
207
+  //     width: 1.375rem;
208
+  //     height: 1.375rem;
209
+  //     margin-top: 0.625rem;
210
+  //   }
211
+  //   .van-dropdown-menu {
212
+  //     width: 8.5rem;
213
+  //     height: 3.125rem;
214
+  //   }
215
+  //   .van-dropdown-menu__item {
216
+  //     flex: none;
217
+  //   }
218
+  //   .van-ellipsis {
219
+  //     width: 6.25rem;
220
+  //     height: 3.125rem;
221
+  //     line-height: 3.125rem;
222
+  //     font-size: 0.875rem;
223
+  //     white-space: nowrap;
224
+  //     text-overflow: ellipsis;
225
+  //     overflow: hidden;
226
+  //   }
227
+  // }
228
+  // .search {
229
+  //   width: 21.5625rem;
230
+  //   height: 2.125rem;
231
+  //   padding: 0 15px;
232
+  //   box-sizing: border-box;
233
+  //   .el-input__inner {
234
+  //     width: 21.5625rem;
235
+  //     height: 2.125rem;
236
+  //     border: none;
237
+  //     background: rgba(244, 244, 244, 1);
238
+  //     border-radius: 17px;
239
+  //     color: #999999;
240
+  //   }
241
+  //   .el-input__prefix {
242
+  //     margin-top: -0.125rem;
243
+  //     color: #999999;
244
+  //   }
245
+  // }
246
+  // .banner {
247
+  //   overflow: hidden;
248
+  //   margin-top: 1.25rem;
249
+  //   // width: 21.4375rem;
250
+  //   // height: 8.3125rem;
251
+  //   // border-radius: 10px;
252
+  //   width: 23.4375rem;
253
+  //   height: 8.3125rem;
254
+  //   // background: rgba(188, 188, 188, 0.1);
255
+  //   // opacity: 0.2;
256
+  //   img {
257
+  //     margin: 0 15px;
258
+  //     width: 21.4375rem;
259
+  //     height: 8.3125rem;
260
+  //     box-sizing: border-box;
261
+  //   }
262
+  // }
263
+  // .myDesk {
264
+  //   padding: 0 15px;
265
+  //   box-sizing: border-box;
266
+  //   padding-top: 1.5625rem;
267
+  //   width: 23.4375rem;
268
+  //   height: 17.0625rem;
269
+  //   // background: rgba(188, 188, 188, 0.1);
270
+  //   h2 {
271
+  //     height: 1.1875rem;
272
+  //     font-size: 1.25rem;
273
+  //     font-weight: 600;
274
+  //     color: rgba(0, 0, 0, 1);
275
+  //     line-height: 0.9375rem;
276
+  //   }
277
+  //   .list {
278
+  //     margin-top: 0.9375rem;
279
+  //     width: 21.4375rem;
280
+  //     height: 14rem;
281
+  //     background: rgba(255, 255, 255, 1);
282
+  //     border-radius: 10px;
283
+  //     box-shadow: 0px 3px 12px 0px rgba(188, 188, 188, 0.2);
284
+  //     display: flex;
285
+  //     align-items: center;
286
+  //     .all {
287
+  //       display: flex;
288
+  //       justify-content: space-around;
289
+  //       flex-wrap: wrap;
290
+  //     }
291
+  //     .one {
292
+  //       width: 25%;
293
+  //       display: flex;
294
+  //       flex-direction: column;
295
+  //       align-items: center;
296
+  //       justify-content: space-around;
297
+  //       height: 6.25rem;
298
+  //       img {
299
+  //         width: 2.8125rem;
300
+  //         height: 2.8125rem;
301
+  //       }
302
+  //       p {
303
+  //         margin-top: -0.625rem;
304
+  //         height: 0.8125rem;
305
+  //         font-size: 0.8125rem;
306
+  //         color: rgba(60, 60, 60, 1);
307
+  //         line-height: 0.9375rem;
308
+  //       }
309
+  //     }
310
+  //   }
311
+  // }
312
+  // .tab {
313
+  //   display: flex;
314
+  //   width: 23.4375rem;
315
+  //   height: 3.0625rem;
316
+  //   background: rgba(255, 255, 255, 1);
317
+  //   justify-content: space-around;
318
+  //   box-shadow: 3px 0px 12px 3px rgba(188, 188, 188, 0.2);
271 319
 
272
-      span {
273
-        font-size: 0.75rem;
274
-        color: rgba(79, 115, 254, 1);
275
-        margin-top: 0.25rem;
276
-      }
277
-    }
278
-  }
320
+  //   > div:last-child {
321
+  //     span {
322
+  //       color: #bfbfbf;
323
+  //     }
324
+  //   }
325
+  //   .btn {
326
+  //     display: flex;
327
+  //     flex-direction: column;
328
+  //     align-items: center;
329
+  //     align-self: center;
330
+  //     i {
331
+  //       font-size: 1.5rem;
332
+  //       color: rgba(79, 115, 254, 1);
333
+  //     }
334
+  //     .icon-wode {
335
+  //       color: #bfbfbf;
336
+  //     }
337
+
338
+  //     span {
339
+  //       font-size: 0.75rem;
340
+  //       color: rgba(79, 115, 254, 1);
341
+  //       margin-top: 0.25rem;
342
+  //     }
343
+  //   }
344
+  // }
279 345
 }
280 346
 </style>

+ 69 - 0
src/kpa_pages/homeIndex/index.vue View File

@@ -0,0 +1,69 @@
1
+<template>
2
+  <div class="page_homeIndex">
3
+    <div class="homeTitle">
4
+      <div class="homeTitleLeft">
5
+        <van-dropdown-menu>
6
+          <van-dropdown-item v-model="value1" :options="option1" />
7
+        </van-dropdown-menu>
8
+      </div>
9
+      <div class="homeTitleRight">
10
+        <van-icon class="iconOne" name="search" />
11
+        <van-icon class="iconOne" name="comment-o" />
12
+        <van-icon class="iconOne" name="add-o" />
13
+      </div>
14
+    </div>
15
+    <div class="banner">
16
+      <img src="../../assets/images/homebanner.jpg" alt="" />
17
+    </div>
18
+  </div>
19
+</template>
20
+<script>
21
+export default {
22
+  data() {
23
+    return {
24
+      value1: 0,
25
+      option1: [
26
+        { text: "新款商品", value: 0 },
27
+        { text: "全部商品全部商品全部商品全部商品全部商品全部商品", value: 1 },
28
+        { text: "活动商品", value: 2 }
29
+      ]
30
+    };
31
+  }
32
+};
33
+</script>
34
+
35
+<style lang="scss" scoped>
36
+.page_homeIndex {
37
+  .homeTitle {
38
+    height: 3.125rem;
39
+    padding: 0 1.125rem;
40
+    display: flex;
41
+    justify-content: space-between;
42
+  }
43
+  .homeTitleLeft {
44
+    width: 60%;
45
+  }
46
+  .homeTitleRight {
47
+    width: 30%;
48
+    display: flex;
49
+    justify-content: space-between;
50
+    align-items: center;
51
+  }
52
+  /deep/ .van-dropdown-menu__item {
53
+    justify-content: left;
54
+  }
55
+  .van-hairline--top-bottom {
56
+    position: static;
57
+  }
58
+  .iconOne {
59
+    font-size: 1.5rem;
60
+  }
61
+  .banner {
62
+    padding: 0 1.125rem;
63
+    img {
64
+      height: 6.75rem;
65
+      width: 100%;
66
+    }
67
+  }
68
+}
69
+</style>

+ 44 - 134
src/kpa_pages/index/index.vue View File

@@ -1,152 +1,62 @@
1 1
 <template>
2 2
   <div class="page_startPage">
3
-    <div class="top">
4
-      <div class="pass" @click="JumpSet()">跳过</div>
5
-      <div class="icons">
6
-        <img src="../../assets/images/icon.png" alt />
7
-      </div>
8
-      <div class="topBorder"></div>
9
-      <div class="logo">
10
-        <img src="../../assets/images/logo.png" alt />
11
-        <div class="bg"></div>
12
-      </div>
13
-    </div>
14
-    <div class="bottom">
15
-      <h2>酷医云</h2>
16
-      <p>血液透析中心数字化平台</p>
17
-    </div>
3
+    <img class="startImg" src="../../assets/images/start.png" alt />
4
+    <div class="jump">跳过</div>
18 5
   </div>
19 6
 </template>
20 7
 
21 8
 <script>
22 9
 export default {
23
-   data(){
24
-     return{
25
-       count:"",
26
-     }
27
-   },
28
-   methods:{
29
-     JumpSet(){
30
-        
31
-        this.$router.push({path:"/login"})
32
-     },
33
-     getJumpPage(){
10
+  data() {
11
+    return {
12
+      count: ""
13
+    };
14
+  },
15
+  methods: {
16
+    JumpSet() {
17
+      this.$router.push({ path: "/login" });
18
+    },
19
+    getJumpPage() {
34 20
       const TIME_COUNT = 2;
35
-       if(!this.timer){
36
-         this.count = TIME_COUNT;
37
-         this.timer = setInterval(()=>{
38
-        if(this.count > 0 && this.count <= TIME_COUNT){
39
-          this.count--;
40
-        }else{
41
-          clearInterval(this.timer);
42
-          this.timer = null;
43
-          this.$router.push({path:"/login"})
44
-         }
45
-        },1000)
21
+      if (!this.timer) {
22
+        this.count = TIME_COUNT;
23
+        this.timer = setInterval(() => {
24
+          if (this.count > 0 && this.count <= TIME_COUNT) {
25
+            this.count--;
26
+          } else {
27
+            clearInterval(this.timer);
28
+            this.timer = null;
29
+            this.$router.push({ path: "/login" });
30
+          }
31
+        }, 1000);
46 32
       }
47
-     }
48
-   },
49
-   created(){
50
-     this.getJumpPage()
51
-   }
52
-}
33
+    }
34
+  },
35
+  created() {
36
+    this.getJumpPage();
37
+  }
38
+};
53 39
 </script>
54 40
 
55 41
 <style lang="scss" scoped>
56 42
 .page_startPage {
57 43
   overflow: hidden;
44
+  height: 100%;
58 45
 }
59
-.top {
60
-  width: 23.4375rem;
61
-  height: 21.125rem;
62
-  position: relative;
63
-  background: linear-gradient(
64
-    0deg,
65
-    rgba(158, 207, 255, 1),
66
-    rgba(81, 119, 238, 1),
67
-    rgba(66, 91, 234, 1)
68
-  );
69
-  border: none;
70
-  overflow: hidden;
71
-  .pass {
72
-    width: 4.1875rem;
73
-    height: 1.625rem;
74
-    border: 1px solid rgba(255, 255, 255, 1);
75
-    border-radius: 0.8125rem;
76
-    text-align: center;
77
-    color: #fff;
78
-    line-height: 1.625rem;
79
-    margin-top: 2rem;
80
-    margin-left: 18.125rem;
81
-  }
82
-  .icons {
83
-    width: 23.4375rem;
84
-    padding: 8.75rem 3rem 0 1.875rem;
85
-    box-sizing: border-box;
86
-    img {
87
-      width: 100%;
88
-    }
89
-  }
90
-  .topBorder {
91
-    width: 23.4375rem;
92
-    height: 3.1875rem;
93
-    overflow: hidden;
94
-    background: rgba(249, 251, 255, 1);
95
-    border-radius: 50% 50% 0 0;
96
-    position: absolute;
97
-    left: 0;
98
-    bottom: 0;
99
-  }
100
-  .logo {
101
-    width: 8.5rem;
102
-    height: 6.875rem;
103
-    position: absolute;
104
-    left: 8.375rem;
105
-    top: 12rem;
106
-
107
-    img {
108
-      width: 6.75rem;
109
-      height: 6.75rem;
110
-      position: absolute;
111
-      z-index: 99;
112
-    }
113
-    .bg {
114
-      width: 8.5rem;
115
-      height: 1.1875rem;
116
-      background: rgba(233, 236, 248, 1);
117
-      border-radius: 50%;
118
-      position: absolute;
119
-      left: -0.9rem;
120
-      top: 6.2rem;
121
-      z-index: 22;
122
-    }
123
-  }
46
+.startImg {
47
+  width: 100%;
48
+  height: 100%;
124 49
 }
125
-.bottom {
126
-  width: 23.4375rem;
127
-  height: 18.375rem;
128
-  background: rgba(249, 251, 255, 1);
129
-  h2 {
130
-    font-size: 1.5625rem;
131
-    font-weight: 500;
132
-    color: rgba(81, 119, 238, 1);
133
-    line-height: 1.125rem;
134
-    height: 1.5rem;
135
-    width: 5.625rem;
136
-    text-align: center;
137
-    margin: 0 auto;
138
-    padding-top: 2.5rem;
139
-    box-sizing: border-box;
140
-  }
141
-  p {
142
-    width: 11.25rem;
143
-    height: 1rem;
144
-    font-size: 1rem;
145
-    font-weight: 400;
146
-    color: rgba(60, 60, 60, 1);
147
-    line-height: 1.375rem;
148
-    margin: 0 auto;
149
-    margin-top: 10.5rem;
150
-  }
50
+.jump {
51
+  position: fixed;
52
+  color: #338afb;
53
+  top: 5%;
54
+  right: 10%;
55
+  border-radius: 30px;
56
+  border: 1px solid #338afb;
57
+  text-align: center;
58
+  line-height: 1.875rem;
59
+  height: 1.875rem;
60
+  width: 3.75rem;
151 61
 }
152 62
 </style>

+ 99 - 0
src/kpa_pages/joinedGroup/index.vue View File

@@ -0,0 +1,99 @@
1
+<template>
2
+  <div class="page_joinedGroup">
3
+    <div class="joinedGroupTitle">
4
+      <i class="iconfont icon-zuojiantou jiantou"></i>
5
+    </div>
6
+    <div class="joinedGroupTxt">
7
+      你已经被邀请加入以下医院/组织/团队
8
+    </div>
9
+    <div class="joinBox">
10
+      <div class="joinOne" v-for="item in 8">
11
+        <img class="joinImg" src="../../assets/images/m05.png" alt="" />
12
+        <div class="joinName">
13
+          酷医云演示中心机构酷医云演示中心机构酷医云演示中心机构
14
+        </div>
15
+      </div>
16
+    </div>
17
+    <div class="know">我已了解,进入酷医云</div>
18
+    <div class="wantCreate">我想创建医院/组织/团队></div>
19
+  </div>
20
+</template>
21
+
22
+<style lang="scss" scoped>
23
+.page_joinedGroup {
24
+  height: 100%;
25
+  overflow: hidden;
26
+  .joinedGroupTitle {
27
+    height: 3.125rem;
28
+    line-height: 3.125rem;
29
+    display: flex;
30
+    align-items: center;
31
+  }
32
+  .jiantou {
33
+    margin-left: 1rem;
34
+    font-size: 1.5rem;
35
+    font-weight: 600;
36
+  }
37
+  .joinedGroupTxt {
38
+    font-size: 1.0625rem;
39
+    font-family: PingFangSC;
40
+    font-weight: bold;
41
+    color: rgba(0, 0, 0, 1);
42
+    line-height: 0.9375rem;
43
+  }
44
+  .joinedGroupTxt {
45
+    padding: 1.25rem;
46
+    font-size: 17px;
47
+    font-family: PingFangSC;
48
+    font-weight: bold;
49
+    color: rgba(0, 0, 0, 1);
50
+    line-height: 15px;
51
+  }
52
+  .joinBox {
53
+    width: 21.125rem;
54
+    height: 22.75rem;
55
+    background: rgba(255, 255, 255, 1);
56
+    box-shadow: 0px 1px 15px 0px rgba(91, 91, 91, 0.3);
57
+    border-radius: 3px;
58
+    margin: 0 auto;
59
+    overflow-y: auto;
60
+    .joinImg {
61
+      width: 3rem;
62
+      height: 3rem;
63
+    }
64
+    .joinOne {
65
+      display: flex;
66
+      height: 3.125rem;
67
+      align-items: center;
68
+      margin: 1rem 1rem 0;
69
+    }
70
+    .joinName {
71
+      margin-left: 0.625rem;
72
+      width: 18.75rem;
73
+      white-space: nowrap;
74
+      text-overflow: ellipsis;
75
+      overflow: hidden;
76
+    }
77
+  }
78
+  ::-webkit-scrollbar {
79
+    width: 0;
80
+  }
81
+  .know {
82
+    width: 19.25rem;
83
+    height: 2.875rem;
84
+    line-height: 2.875rem;
85
+    background: rgba(51, 138, 251, 1);
86
+    box-shadow: 0px 1px 12px 0px rgba(51, 138, 251, 1);
87
+    border-radius: 23px;
88
+    color: #fff;
89
+    text-align: center;
90
+    margin: 1.875rem auto 1.625rem;
91
+  }
92
+  .wantCreate {
93
+    text-align: center;
94
+    text-decoration: underline;
95
+    color: #338afb;
96
+    font-size: 0.8125rem;
97
+  }
98
+}
99
+</style>

+ 150 - 99
src/kpa_pages/login/login.vue View File

@@ -1,14 +1,33 @@
1 1
 <template>
2 2
   <div class="page_login">
3 3
     <div class="loginTop">
4
-      <img src="../../assets/images/banner.png" alt />
4
+      <img src="../../assets/images/loginLogo.png" alt />
5 5
     </div>
6 6
     <div class="loginBottom">
7 7
       <div class="ipts">
8
-        <el-input placeholder="请输入手机号码" prefix-icon="el-icon-mobile"
9
-        v-model="LoginForm.tel" clearable v-on:input="watchNum"></el-input>
10
-        <el-input placeholder="请输入密码" prefix-icon="el-icon-lock"
11
-         v-model="LoginForm.psd" show-password clearable v-on:input="watchNum"></el-input>
8
+        <el-form ref="LoginForm" :model="LoginForm" :rules="rules">
9
+          <el-form-item required prop="tel">
10
+            <el-input
11
+              placeholder="请输入手机号码"
12
+              prefix-icon="el-icon-mobile"
13
+              v-model="LoginForm.tel"
14
+              clearable
15
+              v-on:input="watchNum"
16
+              maxlength="11"
17
+              @input="change(LoginForm.tel)"
18
+            ></el-input>
19
+          </el-form-item>
20
+          <el-form-item>
21
+            <el-input
22
+              placeholder="请输入密码"
23
+              prefix-icon="el-icon-lock"
24
+              v-model="LoginForm.psd"
25
+              show-password
26
+              clearable
27
+              v-on:input="watchNum"
28
+            ></el-input>
29
+          </el-form-item>
30
+        </el-form>
12 31
       </div>
13 32
       <p class="forget" @click="toForgetPassword()">忘记密码?</p>
14 33
       <div class="login" @click="ToLogin()" v-show="loginshow">登录</div>
@@ -22,85 +41,103 @@
22 41
 </template>
23 42
 
24 43
 <script>
25
- import { ToLogin } from "@/api/micro/micro"
26
-  import { hex_md5 } from '@/utils/md5'
44
+import { ToLogin } from "@/api/micro/micro";
45
+import { hex_md5 } from "@/utils/md5";
46
+import { checkMobile } from "@/utils/tools";
27 47
 export default {
28 48
   data() {
49
+    var checkMobileRule = (rule, value, callback) => {
50
+      if (!checkMobile(value)) {
51
+        callback(new Error("请填写正确的手机号"));
52
+      } else {
53
+        callback();
54
+      }
55
+    };
29 56
     return {
30 57
       tel: "",
31 58
       psd: "",
32
-      LoginForm:{
59
+      LoginForm: {
33 60
         tel: "",
34
-        psd: "",
61
+        psd: ""
35 62
       },
36
-      loginshow:true,
37
-      loginshowtwo:false,
63
+      loginshow: false,
64
+      loginshowtwo: true,
65
+      rules: {
66
+        tel: [
67
+          { required: true, message: "手机号码不能为空" },
68
+          { validator: checkMobileRule }
69
+        ]
70
+      }
38 71
     };
39 72
   },
40
-  methods:{
41
-      ToLogin(){
42
-        var tel = this.LoginForm.tel;
43
-        console.log("tel是什么",tel)
44
-        var psd =  this.LoginForm.psd;
45
-        console.log("psd是设么",psd)
46
-        ToLogin(tel,hex_md5(psd)).then(response=>{
47
-           if(response.data.state == 1){
48
-             var admin  =  response.data.data.admin; 
49
-             if(admin.mobile == ""|| admin.password == ""){
50
-                 this.$message.error("账号或密码错误");       
51
-             }else{
52
-               this.$router.push("/home?phone="+this.LoginForm.tel)
53
-             }    
54
-             console.log("admin是什么",admin)
55
-           }  
56
-        })
57
-      },
58
-      watchNum(){
59
-        if(this.LoginForm.tel == "" || this.LoginForm.psd == ""){
60
-             this.loginshow = false;
61
-             this.loginshowtwo = true;
62
-        }else{
63
-          this.loginshow = true;
64
-          this.loginshowtwo = false;
73
+  methods: {
74
+    ToLogin() {
75
+      var tel = this.LoginForm.tel;
76
+      console.log("tel是什么", tel);
77
+      var psd = this.LoginForm.psd;
78
+      console.log("psd是设么", psd);
79
+      ToLogin(tel, hex_md5(psd)).then(response => {
80
+        if (response.data.state === 1) {
81
+          var admin = response.data.data.admin;
82
+          console.log("admin是什么", admin);
83
+          this.$router.push({ path: "/home?id=" + admin.id });
84
+          var org = response.data.data.org;
85
+          console.log("org", org);
86
+          var info = response.data.data.info;
87
+          console.log("info", info);
88
+          this.$router.push({ path: "/orginfomation?id=" + info.id });
89
+        } else {
90
+          this.$message.error("账号或密码错误");
65 91
         }
66
-      
67
-      },
68
-      ToRegister(){
69
-        this.$router.push("/register")
70
-      },
71
-      toForgetPassword(){
72
-        this.$router.push("/forgetpassword")
73
-      },
74
-      noPassword(){
75
-        this.$router.push("/nopassword")
92
+      });
93
+    },
94
+    watchNum() {
95
+      if (this.LoginForm.tel === "" || this.LoginForm.psd === "") {
96
+        this.loginshow = false;
97
+        this.loginshowtwo = true;
98
+      } else {
99
+        this.loginshow = true;
100
+        this.loginshowtwo = false;
101
+      }
102
+      if (this.LoginForm.psd.length < 6) {
103
+        this.loginshow = false;
104
+        this.loginshowtwo = true;
76 105
       }
106
+      if (this.LoginForm.psd.length > 6) {
107
+        this.loginshow = true;
108
+        this.loginshowtwo = false;
109
+      }
110
+    },
111
+    ToRegister() {
112
+      this.$router.push("/register");
113
+    },
114
+    toForgetPassword() {
115
+      this.$router.push("/forgetpassword");
116
+    },
117
+    noPassword() {
118
+      this.$router.push("/nopassword");
119
+    },
77 120
 
121
+    change(val) {
122
+      this.LoginForm.tel = val.replace(/[^0-9]+/g, "");
123
+    }
78 124
   },
79
-  created(){
80
-   
81
-  },
82
-
83
-
125
+  created() {}
84 126
 };
85 127
 </script>
86 128
 
87
-
88
-<style lang="scss">
129
+<style lang="scss" scoped>
89 130
 .page_login {
90 131
   overflow: hidden;
132
+  height: 100%;
91 133
   .loginTop {
92
-    width: 23.4375rem;
93
-    height: 14.0625rem;
94
-    background: linear-gradient(
95
-      0deg,
96
-      rgba(158, 207, 255, 1),
97
-      rgba(81, 119, 238, 1),
98
-      rgba(66, 91, 234, 1)
99
-    );
100
-
134
+    width: 100%;
101 135
     img {
102
-      width: 100%;
136
+      width: 7.75rem;
137
+      height: 2.5rem;
103 138
       border: none;
139
+      margin: 6.25rem auto 3.75rem;
140
+      display: block;
104 141
     }
105 142
   }
106 143
   .loginBottom {
@@ -108,44 +145,16 @@ export default {
108 145
     height: 27.625rem;
109 146
     padding-top: 1rem;
110 147
     box-sizing: border-box;
111
-    .ipts {
112
-      .el-input {
113
-        display: block;
114
-        margin: 0 auto;
115
-        width: 19.0625rem;
116
-        border-bottom: 1px solid #e6e6e6;
117
-        color: rgba(155, 155, 155, 1);
118
-        padding-left: 0.75rem;
119
-        box-sizing: border-box;
120
-        height: 4.25rem;
121
-        line-height: 4.25rem;
122
-      }
123
-      .el-input__inner {
124
-        border: none;
125
-      }
126
-      .el-input__prefix {
127
-        font-size: 1.5rem;
128
-      }
129
-      .el-input__icon {
130
-        font-size: 1.5rem;
131
-        line-height: 4.25rem;
132
-      }
133
-    }
134 148
   }
135 149
   .forget {
136 150
     font-size: 0.8125rem;
137
-    color: rgba(81, 119, 238, 1);
151
+    color: #1a8cff;
138 152
     margin: 0.5625rem 0 1.5rem 17.4375rem;
139 153
   }
140 154
   .login {
141 155
     width: 19.25rem;
142 156
     height: 2.875rem;
143
-    background: linear-gradient(
144
-      -90deg,
145
-      rgba(129, 159, 246, 1),
146
-      rgba(81, 119, 238, 1),
147
-      rgba(75, 102, 234, 1)
148
-    );
157
+    background: #338afb;
149 158
     border-radius: 1.4375rem;
150 159
     margin: 0 auto;
151 160
     line-height: 2.875rem;
@@ -162,17 +171,13 @@ export default {
162 171
     }
163 172
     .register {
164 173
       margin-left: 17.4375rem;
174
+      color: #1a8cff;
165 175
     }
166 176
   }
167 177
   .login3 {
168 178
     width: 19.25rem;
169 179
     height: 2.875rem;
170
-    background: linear-gradient(
171
-      -90deg,
172
-      rgb(66, 66, 66),
173
-      rgb(66, 66, 66),
174
-      rgba(66, 66, 66, 1)
175
-    );
180
+    background: #e5e5e5;
176 181
     border-radius: 1.4375rem;
177 182
     margin: 0 auto;
178 183
     line-height: 2.875rem;
@@ -180,4 +185,50 @@ export default {
180 185
     text-align: center;
181 186
   }
182 187
 }
188
+
189
+.el-form-item__error {
190
+  margin-left: 2.5rem;
191
+}
192
+.el-button--medium {
193
+  padding: 0;
194
+}
195
+
196
+.el-message {
197
+  min-width: 20rem;
198
+}
199
+</style>
200
+<style lang="scss">
201
+.loginBottom {
202
+  .el-form-item {
203
+    margin-bottom: 0;
204
+  }
205
+  .ipts {
206
+    .el-icon-circle-close {
207
+      margin-right: 0.625rem;
208
+    }
209
+    .el-input {
210
+      display: block;
211
+      margin: 0 auto;
212
+      width: 19.0625rem;
213
+      border-bottom: 1px solid #e6e6e6;
214
+      color: rgba(155, 155, 155, 1);
215
+      padding-left: 0.75rem;
216
+      box-sizing: border-box;
217
+      height: 3.375rem;
218
+      line-height: 3.375rem;
219
+      font-size: 1rem;
220
+    }
221
+    .el-input__inner {
222
+      border: none;
223
+      font-size: 1rem;
224
+    }
225
+    .el-input__prefix {
226
+      font-size: 1.5rem;
227
+    }
228
+    .el-input__icon {
229
+      font-size: 1.5rem;
230
+      line-height: 3.375rem;
231
+    }
232
+  }
233
+}
183 234
 </style>

+ 513 - 0
src/kpa_pages/longDialysis/index.vue View File

@@ -0,0 +1,513 @@
1
+<template>
2
+  <div class="page_longDialysis">
3
+    <div class="box">
4
+      <div class="info">
5
+        <div class="photo">
6
+          <img src="../../assets/images/one.jpg" alt />
7
+        </div>
8
+        <div class="infoRight">
9
+          <div class="rightTop">
10
+            <span class="name">{{patientform.name}}</span>
11
+            <span>{{patientform.sex}}</span>&ensp;|
12
+            <span>{{patientform.age}}岁</span>
13
+          </div>
14
+          <div class="rightBottom">
15
+            <p class="num">
16
+              [透析号:
17
+              <span>{{patientform.dialysis_no}}</span>]
18
+            </p>
19
+            <div class="imgList">
20
+              <img src="../../assets/images/b1.png" alt />
21
+              <img src="../../assets/images/b2.png" alt />
22
+              <img src="../../assets/images/b3.png" alt />
23
+              <img src="../../assets/images/b4.png" alt />
24
+            </div>
25
+          </div>
26
+        </div>
27
+      </div>
28
+    </div>
29
+    <div class="search">
30
+      <el-input
31
+        placeholder="输入医嘱内容"
32
+        prefix-icon="el-icon-search"
33
+        v-model="searchVal"
34
+      ></el-input>
35
+    </div>
36
+    <div class="time">
37
+      <van-cell @click="showPopup(1)">
38
+        {{ startTime }}
39
+        <van-icon name="arrow-down" />
40
+      </van-cell>
41
+      <van-popup v-model="show1" position="bottom" :style="{ height: '50%' }">
42
+        <van-datetime-picker
43
+          v-model="currentDate1"
44
+          type="date"
45
+          @cancel="show1 = false"
46
+          @confirm="chooseStartTime"
47
+        />
48
+      </van-popup>
49
+      <div class="line">-</div>
50
+      <van-cell @click="showPopup(2)">
51
+        {{ endTime }}
52
+        <van-icon name="arrow-down" />
53
+      </van-cell>
54
+      <van-popup v-model="show2" position="bottom" :style="{ height: '50%' }">
55
+        <van-datetime-picker
56
+          v-model="currentDate2"
57
+          type="date"
58
+          @cancel="show2 = false"
59
+          @confirm="chooseEndTime"
60
+        />
61
+      </van-popup>
62
+    </div>
63
+
64
+    <div class="statOrder">
65
+      <div class="statOrderOne" v-for="item in this.longDialysis" :key="item.id">
66
+        <van-swipe-cell>
67
+          <van-cell :border="false">
68
+              <template>
69
+               <div class="custom-title">{{RecordTime(item.record_date)}}</div>
70
+            </template>
71
+            <van-icon
72
+              slot="right-icon"
73
+              name="ellipsis"
74
+              style="line-height: inherit;"
75
+              @click="onClick(2)"
76
+            />
77
+          </van-cell>
78
+          <template slot="right">
79
+            <van-button square type="danger" text="删除" />
80
+          </template>
81
+        </van-swipe-cell>
82
+
83
+        <van-action-sheet
84
+          v-model="show3"
85
+          :actions="actions"
86
+          cancel-text="取消"
87
+        ></van-action-sheet>
88
+        <!-- <div class="title">
89
+          <i class="header-icon el-icon-arrow-down"></i>
90
+          <p class="year">2019.10.17</p>
91
+          <p class="edit">编辑</p>
92
+        </div>-->
93
+        <div class="msg">
94
+          <ul class="msglist">
95
+            <li>透析模式: <span>{{item.mode_id}}</span></li>
96
+            <li>透析时长(h): <span>{{item.dialysis_duration_hour}}:{{item.dialysis_duration_minute}}</span></li>
97
+            <li>血流量(ml/min): <span>{{item.blood_flow_volume}}</span></li>
98
+            <li>目标超滤量(ml): <span>{{item.target_ultrafiltration}}</span></li>
99
+            <li>透析液配方: <span>{{item.dialysate_formulation}}</span></li>
100
+            <li>抗凝剂: <span>{{item.anticoagulant}}</span></li>
101
+            <li>首剂(mg): <span>{{item.anticoagulant_shouji}}</span></li>
102
+            <li>维持(mg/h): <span>{{item.anticoagulant_weichi}}</span></li>
103
+            <li>总量(mg): <span>{{item.anticoagulant_zongliang}}</span></li>
104
+            <li>置换量(L): <span>{{item.replacement_total}}</span></li>
105
+            <li>钾(mmol/L): <span>{{item.kalium}}</span></li>
106
+            <li>钠(mmol/L): <span>{{item.sodium}}</span></li>
107
+            <li>钙(mmol/L): <span>{{item.anticoagulant_gaimingcheng}}</span></li>
108
+            <li>碳酸氢根(mmol/L): <span>{{item.bicarbonate}}</span></li>
109
+            <li>葡萄糖(mmol/L): <span>{{item.glucose}}</span></li>
110
+            <li>透析液流量(ml/min): <span>{{item.dialysate_flow}}</span></li>
111
+            <li>透析液温度(℃): <span>{{item.dialysate_temperature}}</span></li>
112
+            <li>电导率(mS/cm): <span>{{item.conductivity}}</span></li>
113
+          </ul>
114
+        </div>
115
+      </div>
116
+
117
+    </div>
118
+
119
+    <div class="add">
120
+      <img src="../../assets/images/add4.png" alt />
121
+    </div>
122
+  </div>
123
+</template>
124
+
125
+<script>
126
+const moment = require('moment')
127
+import { getlongDialysis } from '@/api/patient/patient'
128
+import { uParseTime } from '@/utils/tools'
129
+export default {
130
+  data() {
131
+    return {
132
+      searchVal: '',
133
+      startTime: moment(new Date()).format('YYYY-MM-DD'),
134
+      endTime: moment(new Date()).format('YYYY-MM-DD'),
135
+      show1: false,
136
+      show2: false,
137
+      currentDate1: new Date(),
138
+      currentDate2: new Date(),
139
+      show3: false,
140
+      actions: [
141
+        { name: '编辑' },
142
+        { name: '删除' },
143
+        { name: '选项', subname: '描述信息' }
144
+      ],
145
+      longDialysis: [],
146
+      patientform: {
147
+        name: '',
148
+        sex: '',
149
+        age: '',
150
+        dialysis_no: '',
151
+        avatar: ''
152
+      }
153
+    }
154
+  },
155
+  methods: {
156
+    showPopup(index) {
157
+      if (index == 1) {
158
+        this.show1 = true
159
+      } else if (index == 2) {
160
+        this.show2 = true
161
+      }
162
+    },
163
+    chooseStartTime(value) {
164
+      this.startTime = moment(value).format('YYYY-MM-DD')
165
+      this.show1 = false
166
+      var patientid = this.$route.query.patientid
167
+      var orgid = this.$route.query.orgid
168
+      this.getlongDialysis(patientid, orgid, this.startTime)
169
+    },
170
+    chooseEndTime(value) {
171
+      this.endTime = moment(value).format('YYYY-MM-DD')
172
+      this.show2 = false
173
+      var patientid = this.$route.query.patientid
174
+      var orgid = this.$route.query.orgid
175
+      this.getlongDialysis(patientid, orgid, this.end)
176
+    },
177
+    onClick(index) {
178
+      if (index === 1) {
179
+        this.show3 = true
180
+      } else if (index === 2) {
181
+        this.show3 = true
182
+      }
183
+    },
184
+    getlongDialysis(patientid, orgid, startTime, endTime) {
185
+      getlongDialysis(patientid, orgid, this.startTime, this.endTime).then(response => {
186
+        if (response.data.state === 1) {
187
+          var dialysis = response.data.data.dialysis
188
+          for (let index = 0; index < dialysis.length; index++) {
189
+            console.log('hhh', dialysis[index].mode_id)
190
+            if (dialysis[index].mode_id === 1) {
191
+              dialysis[index].mode_id = 'HD'
192
+            }
193
+            if (dialysis[index].mode_id === 2) {
194
+              dialysis[index].mode_id = 'HDF'
195
+            }
196
+            if (dialysis[index].mode_id === 3) {
197
+              dialysis[index].mode_id = 'HD+HP'
198
+            }
199
+            if (dialysis[index].mode_id === 4) {
200
+              dialysis[index].mode_id = 'HP'
201
+            }
202
+            if (dialysis[index].mode_id === 5) {
203
+              dialysis[index].mode_id = 'HF'
204
+            }
205
+            if (dialysis[index].mode_id === 6) {
206
+              dialysis[index].mode_id = 'SCUF'
207
+            }
208
+            if (dialysis[index].mode_id === 7) {
209
+              dialysis[index].mode_id = 'IUF'
210
+            }
211
+            if (dialysis[index].mode_id === 8) {
212
+              dialysis[index].mode_id = 'HFHD'
213
+            }
214
+            if (dialysis[index].mode_id === 9) {
215
+              dialysis[index].mode_id = 'HFHD+HP'
216
+            }
217
+            if (dialysis[index].mode_id === 10) {
218
+              dialysis[index].mode_id = 'PHF'
219
+            }
220
+            if (dialysis[index].mode_id === 11) {
221
+              dialysis[index].mode_id = 'HFR'
222
+            }
223
+            if (dialysis[index].mode_id === 12) {
224
+              dialysis[index].mode_id = 'HDF+HP'
225
+            }
226
+            if (dialysis[index].mode_id === 13) {
227
+              dialysis[index].mode_id = 'CRRT'
228
+            }
229
+            if (dialysis[index].mode_id === 14) {
230
+              dialysis[index].mode_id = '腹水回输'
231
+            }
232
+            if (dialysis[index].mode_id === 15) {
233
+              dialysis[index].mode_id = 'HD前置换'
234
+            }
235
+            if (dialysis[index].mode_id === 16) {
236
+              dialysis[index].mode_id = 'HD后置换'
237
+            }
238
+            if (dialysis[index].mode_id === 16) {
239
+              dialysis[index].mode_id = 'HDF前置换'
240
+            }
241
+            if (dialysis[index].mode_id === 16) {
242
+              dialysis[index].mode_id = 'HDF后置换'
243
+            }
244
+
245
+            if (dialysis[index].dialysate_formulation === 1) {
246
+              dialysis[index].dialysate_formulation = '常规'
247
+            }
248
+            if (dialysis[index].dialysate_formulation === 2) {
249
+              dialysis[index].dialysate_formulation = '低钙'
250
+            }
251
+            if (dialysis[index].dialysate_formulation === 1) {
252
+              dialysis[index].dialysate_formulation = '高钙'
253
+            }
254
+            if (dialysis[index].dialysate_formulation === 1) {
255
+              dialysis[index].dialysate_formulation = '低钠'
256
+            }
257
+            if (dialysis[index].dialysate_formulation === 1) {
258
+              dialysis[index].dialysate_formulation = '高钠'
259
+            }
260
+
261
+            if (dialysis[index].anticoagulant === 1) {
262
+              dialysis[index].anticoagulant = '无肝素'
263
+            }
264
+            if (dialysis[index].anticoagulant === 2) {
265
+              dialysis[index].anticoagulant = '普通肝素'
266
+            }
267
+            if (dialysis[index].anticoagulant === 3) {
268
+              dialysis[index].anticoagulant = '低分子肝素'
269
+            }
270
+            if (dialysis[index].anticoagulant === 4) {
271
+              dialysis[index].anticoagulant = '阿加曲班'
272
+            }
273
+            if (dialysis[index].anticoagulant === 5) {
274
+              dialysis[index].anticoagulant = '枸橼酸钠'
275
+            }
276
+          }
277
+          var patients = response.data.data.patients
278
+          if (patients.gender === 1) {
279
+            this.patientform.sex = '男'
280
+          }
281
+          if (patients.gender === 2) {
282
+            this.patientform.sex = '女'
283
+          }
284
+          this.patientform = patients
285
+          console.log('patients', patients)
286
+          console.log('dialysis', dialysis)
287
+          this.longDialysis = dialysis
288
+        }
289
+      })
290
+    },
291
+    RecordTime(time) {
292
+      // return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
293
+      return uParseTime(time, '{y}-{m}-{d}')
294
+    }
295
+  },
296
+  created() {
297
+    var patientid = this.$route.query.patientid
298
+    console.log('patientid', patientid)
299
+    var orgid = this.$route.query.orgid
300
+    console.log('orgid', orgid)
301
+    this.getlongDialysis(patientid, orgid)
302
+  }
303
+}
304
+</script>
305
+
306
+<style lang="scss">
307
+.page_longDialysis {
308
+  overflow: hidden;
309
+  height: 100%;
310
+  overflow-y: auto;
311
+  .box {
312
+    width: 100%;
313
+    height: 9.1875rem;
314
+    background: #fcfcfc;
315
+    padding-top: 1.25rem;
316
+    box-sizing: border-box;
317
+  }
318
+  .info {
319
+    width: 21.375rem;
320
+    height: 6.1875rem;
321
+    background: rgba(255, 255, 255, 1);
322
+    border-radius: 10px;
323
+    margin: 0 auto;
324
+    box-shadow: 0px 2px 12px 0px #f5f5f5;
325
+    .photo {
326
+      float: left;
327
+      width: 3.75rem;
328
+      height: 3.75rem;
329
+      margin: 1.125rem 1rem 0 1.125rem;
330
+      img {
331
+        width: 100%;
332
+      }
333
+    }
334
+    .infoRight {
335
+      float: left;
336
+      padding-top: 1.625rem;
337
+      box-sizing: border-box;
338
+      .rightTop {
339
+        margin-bottom: 0.75rem;
340
+      }
341
+      .name {
342
+        font-size: 1.0625rem;
343
+        font-weight: 600;
344
+        color: rgba(0, 0, 0, 1);
345
+        margin-right: 1rem;
346
+      }
347
+      span {
348
+        font-size: 0.875rem;
349
+        color: rgba(60, 60, 60, 1);
350
+      }
351
+      .rightBottom {
352
+        height: 1.4375rem;
353
+        line-height: 1.4375rem;
354
+        .num {
355
+          float: left;
356
+          font-size: 0.875rem;
357
+          color: rgba(60, 60, 60, 1);
358
+        }
359
+        .imgList {
360
+          float: left;
361
+          margin-left: 0.875rem;
362
+          img {
363
+            width: 1.4375rem;
364
+            height: 1.4375rem;
365
+            margin: 0 0.125rem;
366
+          }
367
+        }
368
+      }
369
+    }
370
+  }
371
+  .search {
372
+    width: 21.375rem;
373
+    height: 2.125rem;
374
+    background: rgba(244, 244, 244, 1);
375
+    border-radius: 17px;
376
+    margin: 0 auto;
377
+    .el-input__inner {
378
+      height: 2.125rem;
379
+      line-height: 2.125rem;
380
+      border: none;
381
+      background: rgba(244, 244, 244, 1);
382
+      border-radius: 17px;
383
+      padding-left: 2.5rem;
384
+      color: rgba(155, 155, 155, 1);
385
+      font-size: 0.9375rem;
386
+    }
387
+    .el-input__prefix {
388
+      margin-top: 0.0625rem;
389
+      font-size: 1.25rem;
390
+    }
391
+    .el-input__icon {
392
+      line-height: 2.125rem;
393
+    }
394
+  }
395
+  .time {
396
+    color: #9b9b9b;
397
+    margin-left: 1rem;
398
+    margin-top: 0.75rem;
399
+    width: 342px;
400
+    // height:2.125rem;
401
+    overflow: hidden;
402
+    .van-cell {
403
+      width: 8.5rem;
404
+      height: 2.125rem;
405
+      line-height: 2.125rem;
406
+      background: #f4f4f4;
407
+      border-radius: 17px;
408
+      margin-bottom: 0.75rem;
409
+      padding: 0 1rem;
410
+      font-size: 0.875rem;
411
+      float: left;
412
+      .van-icon-arrow-down {
413
+        float: right;
414
+        line-height: 2.125rem;
415
+      }
416
+    }
417
+    .line {
418
+      float: left;
419
+      line-height: 2.125rem;
420
+    }
421
+  }
422
+  .statOrder {
423
+    width: 21.5625rem;
424
+    margin: 0 auto;
425
+    .statOrderOne {
426
+      // margin-bottom: 1.25rem;
427
+      border-top: 1px dashed #e6e6e6;
428
+      border-bottom: 1px dashed #e6e6e6;
429
+    }
430
+    .van-cell {
431
+      padding: 0.625rem 0.375rem;
432
+    }
433
+    .van-cell__value {
434
+      span {
435
+        float: right;
436
+        width: 4.5625rem;
437
+        height: 1.875rem;
438
+        background: rgba(81, 119, 238, 0.2);
439
+        border-radius: 15px;
440
+        color: #5177ee;
441
+        text-align: center;
442
+        line-height: 1.875rem;
443
+        margin-left: 8.75rem;
444
+      }
445
+    }
446
+    // .edit {
447
+    //   float: right;
448
+    //   width: 4.5625rem;
449
+    //   height: 1.875rem;
450
+    //   background: rgba(81, 119, 238, 0.2);
451
+    //   border-radius: 15px;
452
+    //   color: #5177ee;
453
+    //   text-align: center;
454
+    //   line-height: 1.875rem;
455
+    //   margin-left: 8.75rem;
456
+    // }
457
+    // .title {
458
+    //   border-top: 1px solid #e6e6e6;
459
+    //   display: flex;
460
+    //   height: 3.125rem;
461
+    //   align-items: center;
462
+    // }
463
+    // .el-icon-arrow-down {
464
+    //   margin-left: 0.5rem;
465
+    // }
466
+    // .year {
467
+    //   margin-left: 0.625rem;
468
+    //   font-size: 0.9375rem;
469
+    //   font-weight: 600;
470
+    //   color: rgba(0, 0, 0, 1);
471
+    // }
472
+    .msg {
473
+      font-size: 0.75rem;
474
+      color: rgba(60, 60, 60, 1);
475
+      font-weight: 600;
476
+      // padding-top: 0.75rem;
477
+      padding-bottom: 1rem;
478
+      // border-top: 1px dashed #e6e6e6;
479
+      .msglist {
480
+        overflow: hidden;
481
+        li {
482
+          width: 50%;
483
+          float: left;
484
+          line-height: 16px;
485
+        }
486
+      }
487
+    }
488
+
489
+    .el-collapse-item__content {
490
+      padding-bottom: 1rem;
491
+    }
492
+    .el-collapse {
493
+      border-top: none;
494
+    }
495
+    .none {
496
+      padding-bottom: 0;
497
+    }
498
+  }
499
+  .add {
500
+    width: 4.5rem;
501
+    height: 4.5rem;
502
+    background: rgba(255, 255, 255, 1);
503
+    box-shadow: 0px 3px 9px 0px rgba(7, 30, 102, 0.15);
504
+    border-radius: 50%;
505
+    position: fixed;
506
+    right: 1.125rem;
507
+    bottom: 4.25rem;
508
+    img {
509
+      width: 100%;
510
+    }
511
+  }
512
+}
513
+</style>

+ 486 - 0
src/kpa_pages/missionInformation/index.vue View File

@@ -0,0 +1,486 @@
1
+<template>
2
+  <div class="page_missionInformation">
3
+    <div class="box">
4
+      <div class="info">
5
+        <div class="photo">
6
+          <img :src="patient.avatar" alt />
7
+        </div>
8
+        <div class="infoRight">
9
+          <div class="rightTop">
10
+            <span class="name">{{patient.name}}</span>
11
+            <span>{{patient.sex}}</span>&ensp;|
12
+            <span>{{patient.age}}岁</span>
13
+          </div>
14
+          <div class="rightBottom">
15
+            <p class="num">
16
+              [透析号:
17
+              <span>{{patient.dialysis_no}}</span>]
18
+            </p>
19
+             <div class="imgList">
20
+              <img src="../../assets/images/b1.png" alt v-show="yiShow" />
21
+              <img src="../../assets/images/b2.png" alt  v-show="meiShow"/>
22
+              <img src="../../assets/images/b3.png" alt v-show="bingShow" />
23
+              <img src="../../assets/images/b4.png" alt v-show="aiShow" />
24
+            </div>
25
+          </div>
26
+        </div>
27
+      </div>
28
+    </div>
29
+    <div class="search">
30
+      <el-input
31
+        placeholder="输入医嘱内容"
32
+        prefix-icon="el-icon-search"
33
+        v-model="searchVal" v-on:input="watchNum"></el-input>
34
+    </div>
35
+    <div class="time">
36
+      <van-cell @click="showPopup(1)">
37
+        {{ startTime }}
38
+        <van-icon name="arrow-down" />
39
+      </van-cell>
40
+      <van-popup v-model="show1" position="bottom" :style="{ height: '50%' }">
41
+        <van-datetime-picker
42
+          v-model="currentDate1"
43
+          type="date"
44
+          title="清除"
45
+          @cancel="show1 = false"
46
+          @confirm="chooseStartTime"
47
+        />
48
+      </van-popup>
49
+      <div class="line">-</div>
50
+      <van-cell @click="showPopup(2)">
51
+        {{ endTime }}
52
+        <van-icon name="arrow-down" />
53
+      </van-cell>
54
+      <van-popup v-model="show2" position="bottom" :style="{ height: '50%' }">
55
+        <van-datetime-picker
56
+          v-model="currentDate2"
57
+          type="date"
58
+          @cancel="show2 = false"
59
+          @confirm="chooseEndTime"
60
+        />
61
+      </van-popup>
62
+    </div>
63
+    <div class="statOrder">
64
+      <div class="statOrderOne" v-for="(item,index) in this.treatment" :key="item.id">
65
+        <van-swipe-cell>
66
+          <van-cell :border="false">
67
+             <template>
68
+               <div class="custom-title">{{RecordTime(item.assessment_date)}}</div>
69
+            </template>
70
+            <van-icon
71
+              slot="right-icon"
72
+              name="ellipsis"
73
+              style="line-height: inherit;"
74
+              @click="onClick(2)"
75
+            />
76
+          </van-cell>
77
+          <template slot="right">
78
+            <van-button square type="danger" text="删除" @click="deleteMissionInformation(item.id,item.user_org_id,index)" />
79
+          </template>
80
+        </van-swipe-cell>
81
+
82
+        <van-action-sheet
83
+          v-model="show3"
84
+          :actions="actions"
85
+          cancel-text="取消"
86
+        ></van-action-sheet>
87
+        <!-- <div class="title">
88
+          <i class="header-icon el-icon-arrow-down"></i>
89
+          <p class="year">2019.10.17</p>
90
+          <p class="edit">编辑</p>
91
+        </div>-->
92
+        <div class="msg">
93
+          <p>
94
+           {{item.mission}}
95
+          </p>
96
+        </div>
97
+      </div>
98
+    </div>
99
+    <div class="add">
100
+      <img src="../../assets/images/add4.png" alt />
101
+    </div>
102
+  </div>
103
+</template>
104
+
105
+<script>
106
+import { getMissionInformation, deleteMissionInformation, toSeacherMissionInformation } from '@/api/patient/patient'
107
+import $ from 'jquery'
108
+const moment = require('moment')
109
+import { uParseTime } from '@/utils/tools'
110
+export default {
111
+  data() {
112
+    return {
113
+      searchVal: '',
114
+      startTime: moment(new Date()).format('YYYY-MM-DD'),
115
+      endTime: moment(new Date()).format('YYYY-MM-DD'),
116
+      show1: false,
117
+      show2: false,
118
+      currentDate1: new Date(),
119
+      currentDate2: new Date(),
120
+      show3: false,
121
+      actions: [{ name: '编辑' }, { name: '删除' }],
122
+      treatment: [],
123
+      patient: {
124
+        name: '',
125
+        age: '',
126
+        dialysis_no: '',
127
+        sex: ''
128
+      },
129
+      yiShow: false,
130
+      meiShow: false,
131
+      bingShow: false,
132
+      aiShow: false
133
+    }
134
+  },
135
+  methods: {
136
+    showPopup(index) {
137
+      if (index === 1) {
138
+        this.show1 = true
139
+        // $(".box").css("background", "red");
140
+        this.$nextTick(() => {
141
+          $('.van-picker__title').css('color', 'red')
142
+          $('.van-picker__title').on('click', function() {
143
+            console.log('清除')
144
+          })
145
+        })
146
+      } else if (index === 2) {
147
+        this.show2 = true
148
+      } else if (index === 3) {
149
+        this.show4 = true
150
+      }
151
+    },
152
+    chooseStartTime(value) {
153
+      this.startTime = moment(value).format('YYYY-MM-DD')
154
+      this.show1 = false
155
+      var patientid = this.$route.query.patientid
156
+      console.log('patientid', patientid)
157
+      var orgid = this.$route.query.orgid
158
+      console.log('orgid', orgid)
159
+      this.getMissionInformation(patientid, orgid, this.startTime)
160
+    },
161
+    chooseEndTime(value) {
162
+      this.endTime = moment(value).format('YYYY-MM-DD')
163
+      this.show2 = false
164
+      var patientid = this.$route.query.patientid
165
+      console.log('patientid', patientid)
166
+      var orgid = this.$route.query.orgid
167
+      console.log('orgid', orgid)
168
+      this.getMissionInformation(patientid, orgid, this.endTime)
169
+    },
170
+    onClick(index) {
171
+      if (index === 1) {
172
+        this.show3 = true
173
+      } else if (index === 2) {
174
+        this.show3 = true
175
+      }
176
+    },
177
+    hello() {
178
+      $('.van-picker__title').on('click', function() {
179
+        console.log(123)
180
+      })
181
+    },
182
+    RecordTime(time) {
183
+      // return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
184
+      return uParseTime(time, '{y}-{m}-{d}')
185
+    },
186
+    getMissionInformation(patientid, orgid, startTime, endTime) {
187
+      getMissionInformation(patientid, orgid, this.startTime, this.endTime).then(response => {
188
+        if (response.data.state === 1) {
189
+          var treatment = response.data.data.treatment
190
+          console.log('treatment', treatment)
191
+          this.treatment = treatment
192
+          var patient = response.data.data.patients
193
+
194
+          console.log('patient', patient)
195
+          if (patient.gender === 1) {
196
+            this.patient.sex === '男'
197
+          }
198
+          if (patient.gender === 2) {
199
+            this.patient.sex === '女'
200
+          }
201
+          this.patient = patient
202
+          var infectious = response.data.data.infectious
203
+          console.log('infectious', infectious)
204
+
205
+          for (let index = 0; index < infectious.length; index++) {
206
+            if (infectious[index].disease_id === 2) {
207
+              this.yiShow = true
208
+            }
209
+
210
+            if (infectious[index].disease_id === 3) {
211
+              this.bingShow = true
212
+            }
213
+
214
+            if (infectious[index].disease_id === 4) {
215
+              this.aiShow = true
216
+            }
217
+
218
+            if (infectious[index].disease_id === 6) {
219
+              this.meiShow = true
220
+            }
221
+          }
222
+        }
223
+      })
224
+    },
225
+    deleteMissionInformation(id, orgid, index) {
226
+      this.$confirm('确认要删除吗?删除后信息将无法恢复', '删除提示!', {
227
+        dangerouslyUseHTMLString: true,
228
+        confirmButtonText: '确定',
229
+        cancelButtonText: '取消',
230
+        type: 'warning'
231
+      }).then(() => {
232
+        deleteMissionInformation(id, orgid, index).then(response => {
233
+          if (response.data.state === 1) {
234
+            var msg = response.data.data.msg
235
+            console.log('msg', msg)
236
+            this.treatment.splice(index, 1)
237
+          }
238
+        })
239
+      })
240
+    },
241
+    watchNum() {
242
+      var patientid = this.$route.query.patientid
243
+      console.log('patientid', patientid)
244
+      var orgid = this.$route.query.orgid
245
+      toSeacherMissionInformation(patientid, orgid, this.searchVal).then(response => {
246
+        if (response.data.state === 1) {
247
+          var treat = response.data.data.treat
248
+          if (treat.length === '') {
249
+            this.treatment = []
250
+          } else {
251
+            this.treatment = treat
252
+            console.log('treat', treat)
253
+          }
254
+        }
255
+      })
256
+    }
257
+  },
258
+  mounted() {
259
+    this.hello()
260
+  },
261
+  created() {
262
+    var patientid = this.$route.query.patientid
263
+    console.log('patientid', patientid)
264
+    var orgid = this.$route.query.orgid
265
+    console.log('orgid', orgid)
266
+    this.getMissionInformation(patientid, orgid)
267
+  }
268
+}
269
+</script>
270
+
271
+<style lang="scss">
272
+.page_missionInformation {
273
+  overflow: hidden;
274
+  height: 100%;
275
+  overflow-y: auto;
276
+  .box {
277
+    width: 100%;
278
+    height: 9.1875rem;
279
+    background: #fcfcfc;
280
+    padding-top: 1.25rem;
281
+    box-sizing: border-box;
282
+  }
283
+  .info {
284
+    width: 21.375rem;
285
+    height: 6.1875rem;
286
+    background: rgba(255, 255, 255, 1);
287
+    border-radius: 10px;
288
+    margin: 0 auto;
289
+    box-shadow: 0px 2px 12px 0px #f5f5f5;
290
+    .photo {
291
+      float: left;
292
+      width: 3.75rem;
293
+      height: 3.75rem;
294
+      margin: 1.125rem 1rem 0 1.125rem;
295
+      img {
296
+        width: 100%;
297
+      }
298
+    }
299
+    .infoRight {
300
+      float: left;
301
+      padding-top: 1.625rem;
302
+      box-sizing: border-box;
303
+      .rightTop {
304
+        margin-bottom: 0.75rem;
305
+      }
306
+      .name {
307
+        font-size: 1.0625rem;
308
+        font-weight: 600;
309
+        color: rgba(0, 0, 0, 1);
310
+        margin-right: 1rem;
311
+      }
312
+      span {
313
+        font-size: 0.875rem;
314
+        color: rgba(60, 60, 60, 1);
315
+      }
316
+      .rightBottom {
317
+        height: 1.4375rem;
318
+        line-height: 1.4375rem;
319
+        .num {
320
+          float: left;
321
+          font-size: 0.875rem;
322
+          color: rgba(60, 60, 60, 1);
323
+        }
324
+        .imgList {
325
+          float: left;
326
+          margin-left: 0.875rem;
327
+          img {
328
+            width: 1.4375rem;
329
+            height: 1.4375rem;
330
+            margin: 0 0.125rem;
331
+          }
332
+        }
333
+      }
334
+    }
335
+  }
336
+  .search {
337
+    width: 21.375rem;
338
+    height: 2.125rem;
339
+    background: rgba(244, 244, 244, 1);
340
+    border-radius: 17px;
341
+    margin: 0 auto;
342
+    .el-input__inner {
343
+      height: 2.125rem;
344
+      line-height: 2.125rem;
345
+      border: none;
346
+      background: rgba(244, 244, 244, 1);
347
+      border-radius: 17px;
348
+      padding-left: 2.5rem;
349
+      color: rgba(155, 155, 155, 1);
350
+      font-size: 0.9375rem;
351
+    }
352
+    .el-input__prefix {
353
+      margin-top: 0.0625rem;
354
+      font-size: 1.25rem;
355
+    }
356
+    .el-input__icon {
357
+      line-height: 2.125rem;
358
+    }
359
+  }
360
+  .time {
361
+    color: #9b9b9b;
362
+    margin-left: 1rem;
363
+    margin-top: 0.75rem;
364
+    width: 342px;
365
+    // height:2.125rem;
366
+    overflow: hidden;
367
+    .van-picker__title {
368
+      margin-left: 12.5rem;
369
+      color: #1989fa;
370
+      font-size: 14px;
371
+    }
372
+    .van-cell {
373
+      width: 8.5rem;
374
+      height: 2.125rem;
375
+      line-height: 2.125rem;
376
+      background: #f4f4f4;
377
+      border-radius: 17px;
378
+      margin-bottom: 0.75rem;
379
+      padding: 0 1rem;
380
+      font-size: 0.875rem;
381
+      float: left;
382
+      .van-icon-arrow-down {
383
+        float: right;
384
+        line-height: 2.125rem;
385
+      }
386
+    }
387
+    .line {
388
+      float: left;
389
+      line-height: 2.125rem;
390
+    }
391
+  }
392
+  .statOrder {
393
+    width: 21.5625rem;
394
+    margin: 0 auto;
395
+    .statOrderOne {
396
+      // margin-bottom: 1.25rem;
397
+      border-top: 1px dashed #e6e6e6;
398
+      border-bottom: 1px dashed #e6e6e6;
399
+    }
400
+    .van-cell__title {
401
+      span {
402
+        font-weight: 600;
403
+      }
404
+    }
405
+    .van-cell {
406
+      padding: 0.625rem 0.375rem;
407
+    }
408
+    .van-cell__value {
409
+      span {
410
+        float: right;
411
+        width: 4.5625rem;
412
+        height: 1.875rem;
413
+        background: rgba(81, 119, 238, 0.2);
414
+        border-radius: 15px;
415
+        color: #5177ee;
416
+        text-align: center;
417
+        line-height: 1.875rem;
418
+        margin-left: 8.75rem;
419
+      }
420
+    }
421
+    // .edit {
422
+    //   float: right;
423
+    //   width: 4.5625rem;
424
+    //   height: 1.875rem;
425
+    //   background: rgba(81, 119, 238, 0.2);
426
+    //   border-radius: 15px;
427
+    //   color: #5177ee;
428
+    //   text-align: center;
429
+    //   line-height: 1.875rem;
430
+    //   margin-left: 8.75rem;
431
+    // }
432
+    // .title {
433
+    //   border-top: 1px solid #e6e6e6;
434
+    //   display: flex;
435
+    //   height: 3.125rem;
436
+    //   align-items: center;
437
+    // }
438
+    // .el-icon-arrow-down {
439
+    //   margin-left: 0.5rem;
440
+    // }
441
+    // .year {
442
+    //   margin-left: 0.625rem;
443
+    //   font-size: 0.9375rem;
444
+    //   font-weight: 600;
445
+    //   color: rgba(0, 0, 0, 1);
446
+    // }
447
+    .msg {
448
+      font-size: 0.75rem;
449
+      color: rgba(60, 60, 60, 1);
450
+      font-weight: 600;
451
+      // padding-top: 0.75rem;
452
+      padding-bottom: 0.6rem;
453
+      // border-top: 1px dashed #e6e6e6;
454
+      p {
455
+        font-size: 0.875rem;
456
+        margin-bottom: 0.625rem;
457
+        line-height: 1rem;
458
+        color: rgba(0, 0, 0, 1);
459
+      }
460
+    }
461
+
462
+    .el-collapse-item__content {
463
+      padding-bottom: 1rem;
464
+    }
465
+    .el-collapse {
466
+      border-top: none;
467
+    }
468
+    .none {
469
+      padding-bottom: 0;
470
+    }
471
+  }
472
+  .add {
473
+    width: 4.5rem;
474
+    height: 4.5rem;
475
+    background: rgba(255, 255, 255, 1);
476
+    box-shadow: 0px 3px 9px 0px rgba(7, 30, 102, 0.15);
477
+    border-radius: 50%;
478
+    position: fixed;
479
+    right: 1.125rem;
480
+    bottom: 4.25rem;
481
+    img {
482
+      width: 100%;
483
+    }
484
+  }
485
+}
486
+</style>

+ 0 - 0
src/kpa_pages/my/index.vue View File


Some files were not shown because too many files changed in this diff