血透系统pad前端

index.vue 7.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. <template>
  2. <div class="mainBox">
  3. <div class="newBox">
  4. <div class="mainContent">
  5. <record-page
  6. :un_read_wait_num="unReadWaitNum"
  7. :un_read_dialysis_num="unReadDialysisNum"
  8. ></record-page>
  9. </div>
  10. <side-bar :active_index="0" :total_read_dot="readNum"></side-bar>
  11. </div>
  12. </div>
  13. </template>
  14. <script>
  15. import RecordPage from "./RecordPage";
  16. import SideBar from "@/pages/layout/SideBar";
  17. import { getDialysisScheduals, getWaitingScheduals } from "@/api/dialysis";
  18. import { parseTime } from "@/utils/index";
  19. export default {
  20. name: "Main",
  21. data() {
  22. return {
  23. timer: null,
  24. scheduals: [],
  25. advice_groups: [],
  26. unReadWaitNum: 0,
  27. unReadDialysisNum: 0
  28. };
  29. },
  30. components: {
  31. RecordPage,
  32. SideBar
  33. },
  34. created() {
  35. this.requestScheduals();
  36. this.requestDialysisScheduals();
  37. },
  38. methods: {
  39. requestScheduals() {
  40. var storedata = this.$store.getters.waitscheduals;
  41. var scheduals = storedata.waitscheduals;
  42. if (Object.keys(storedata).length > 0) {
  43. this.scheduals = scheduals;
  44. console.log(this.scheduals);
  45. let doctorAdvice = [];
  46. for (let i = 0; i < this.scheduals.length; i++) {
  47. for (let y = 0; y < this.scheduals[i].doctor_advice.length; y++) {
  48. if (this.scheduals[i].dialysis_order == null) {
  49. if (this.scheduals[i].doctor_advice[y].execution_state == 2) {
  50. doctorAdvice.push(this.scheduals[i].doctor_advice[y]);
  51. }
  52. }
  53. }
  54. }
  55. const sorted = this.groupBy(doctorAdvice, function(item) {
  56. return [item.groupno];
  57. });
  58. this.unReadWaitNum = sorted.length;
  59. } else {
  60. var date = parseTime(Date.parse(new Date()), "{y}-{m}-{d}");
  61. getWaitingScheduals({ date: date }).then(rs => {
  62. var resp = rs.data;
  63. this.$store.dispatch("SetRequestScheduals", { resp });
  64. // console.log(resp);
  65. if (resp.state == 1) {
  66. var scheduals = resp.data.scheduals;
  67. this.scheduals = scheduals;
  68. console.log(this.scheduals);
  69. let doctorAdvice = [];
  70. for (let i = 0; i < this.scheduals.length; i++) {
  71. for (let y = 0; y < this.scheduals[i].doctor_advice.length; y++) {
  72. if (this.scheduals[i].dialysis_order == null) {
  73. if (this.scheduals[i].doctor_advice[y].execution_state == 2) {
  74. doctorAdvice.push(this.scheduals[i].doctor_advice[y]);
  75. }
  76. }
  77. }
  78. }
  79. const sorted = this.groupBy(doctorAdvice, function(item) {
  80. return [item.groupno];
  81. });
  82. this.unReadWaitNum = sorted.length;
  83. } else {
  84. this.$toast({
  85. message: resp.msg
  86. });
  87. }
  88. });
  89. }
  90. },
  91. requestDialysisScheduals() {
  92. var storedata = this.$store.getters.scheduals;
  93. var scheduals = storedata.scheduals;
  94. if (Object.keys(storedata).length > 0) {
  95. let doctorAdvice = [];
  96. for (let index = 0; index < scheduals.length; index++) {
  97. const schedual = scheduals[index];
  98. if (schedual.dialysis_order == null) {
  99. continue;
  100. }
  101. for (let y = 0; y < schedual.doctor_advice.length; y++) {
  102. if (schedual.doctor_advice[y].execution_state == 2) {
  103. doctorAdvice.push(schedual.doctor_advice[y]);
  104. }
  105. }
  106. }
  107. const sorted = this.groupBy(doctorAdvice, function(item) {
  108. return [item.groupno];
  109. });
  110. this.unReadDialysisNum = sorted.length;
  111. } else {
  112. var date = this.$store.getters.app.dialysis_area.schedule_date;
  113. var type = 0;
  114. getDialysisScheduals({
  115. type: type,
  116. date: parseTime(date, "{y}-{m}-{d}")
  117. })
  118. .then(rs => {
  119. var resp = rs.data;
  120. this.$store.dispatch("SetRequestDialysisScheduals", { resp });
  121. if (resp.state == 1) {
  122. var scheduals = resp.data.scheduals;
  123. let doctorAdvice = [];
  124. for (let index = 0; index < scheduals.length; index++) {
  125. const schedual = scheduals[index];
  126. if (schedual.dialysis_order == null) {
  127. continue;
  128. }
  129. for (let y = 0; y < schedual.doctor_advice.length; y++) {
  130. if (schedual.doctor_advice[y].execution_state == 2) {
  131. doctorAdvice.push(schedual.doctor_advice[y]);
  132. }
  133. }
  134. }
  135. const sorted = this.groupBy(doctorAdvice, function(item) {
  136. return [item.groupno];
  137. });
  138. this.unReadDialysisNum = sorted.length;
  139. } else {
  140. this.$toast({
  141. message: resp.msg
  142. });
  143. }
  144. })
  145. .catch(v => {});
  146. }
  147. },
  148. groupBy(array, f) {
  149. const groups = {};
  150. array.forEach(function(o) {
  151. const group = JSON.stringify(f(o));
  152. groups[group] = groups[group] || [];
  153. groups[group].push(o);
  154. });
  155. return Object.keys(groups).map(function(group) {
  156. return groups[group];
  157. });
  158. },
  159. getData() {
  160. console.log("111111");
  161. // this.requestScheduals()
  162. // this.requestDialysisScheduals()
  163. }
  164. },
  165. computed: {
  166. readNum: function() {
  167. return this.unReadWaitNum + this.unReadDialysisNum;
  168. }
  169. },
  170. mounted() {
  171. // this.timer = window.setInterval(() => {
  172. // setTimeout(this.getData(), 0);
  173. // }, 30000);
  174. },
  175. beforeDestroy() {
  176. clearInterval(this.timer);
  177. this.timer = null;
  178. }
  179. };
  180. </script>
  181. <style style="stylesheet/scss" lang="scss" scoped>
  182. html,
  183. body {
  184. height: 100%;
  185. }
  186. .mainBox {
  187. height: 100%;
  188. font-size: 0.3rem;
  189. .sideColumn {
  190. .column {
  191. .head {
  192. @include display-flex;
  193. @include align-items-center;
  194. @include flex-direction;
  195. @include text-align;
  196. @include justify-content-center;
  197. margin: 0.5rem 0 0.5rem 0;
  198. img {
  199. width: 100%;
  200. height: 100%;
  201. border-radius: 0.5rem;
  202. width: 0.7rem;
  203. height: 0.7rem;
  204. }
  205. }
  206. .sidebar {
  207. @include display-flex;
  208. @include align-items-center;
  209. @include flex-direction;
  210. @include text-align;
  211. padding: 0;
  212. li {
  213. padding: 0 0 0.8rem 0;
  214. a {
  215. color: #a8b3ba;
  216. display: inline-block;
  217. padding: 0;
  218. margin: 0;
  219. p {
  220. font-size: 0.24rem;
  221. margin-top: 0.2rem;
  222. }
  223. .iconfont {
  224. font-size: 0.5rem;
  225. display: inline-block;
  226. }
  227. }
  228. &.active {
  229. a {
  230. color: #409eff;
  231. }
  232. }
  233. }
  234. }
  235. }
  236. }
  237. }
  238. .mainContent {
  239. // margin: 0 0 0 1.58rem;
  240. }
  241. .newBox {
  242. display: flex;
  243. flex-direction: column;
  244. height: 100%;
  245. overflow: hidden;
  246. > :first-child {
  247. flex: 1;
  248. overflow: auto;
  249. }
  250. }
  251. </style>