Department.vue 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <template>
  2. <div class="department">
  3. <div class="departmentView">
  4. <div class="content">
  5. <div class="list" v-for="(item,index) in departmentLis" @click="goStart(index,item.recordTime)" :key="item.hospitalDeptName">
  6. <div class="top">
  7. <p>挂号科室:{{item.hospitalDeptName}} <img src="../images/right.png" alt=""></p>
  8. </div>
  9. <div class="main">
  10. <p>预约医院:{{item.sonHospitalName?item.sonHospitalName:item.hospitalName}}</p>
  11. <p>预约时间:{{item.recordTime}}</p>
  12. <p>姓名:{{item.patientName}}</p>
  13. <p>病历号:{{item.recordId}}</p>
  14. <p>挂号信息:{{item.registerNum}}</p>
  15. <p v-if="item.dided">您已完成过一次预问诊,是否再次录入</p>
  16. </div>
  17. </div>
  18. </div>
  19. </div>
  20. <Submit v-if="submit" :showType="showType" :fail="failMsg" @showSubmit="showSubmit"></Submit>
  21. <Tiptoast
  22. :show="showTip"
  23. @close="close"
  24. :data="message"/>
  25. </div>
  26. </template>
  27. <script>
  28. import {setScroll,compare} from '@utils/tools.js';
  29. import BScroll from 'better-scroll';
  30. import Submit from "../common/Submit";
  31. import Tiptoast from "../common/Tiptoast";
  32. import api from "@utils/api.js";
  33. export default {
  34. name: "Department",
  35. data(){
  36. return {
  37. scroll:null,
  38. departmentLis:[],
  39. showTip: false,
  40. showType: "fail",
  41. failMsg: "",
  42. message:{
  43. title: "",
  44. text: ""
  45. },
  46. submit: false,
  47. show: false,
  48. son:false,//有无子医院
  49. hospitalNum:'',
  50. hospitalName:''
  51. }
  52. },
  53. created(){
  54. let query = this.$route.query;
  55. let type = query.patientInfoType,name = query.patientName,value = query.patientInfo,code=query.hospitalCode,sonHospitalCode=query.sonHospitalCode,sonHospitalName=query.sonHospitalName;
  56. if(value&&name&&type&&code){
  57. const param = {
  58. patientInfo: value,
  59. patientInfoType: type,
  60. hospitalCode: code,
  61. patientName:name,
  62. sonHospitalCode: sonHospitalCode||'',
  63. sonHospitalName: sonHospitalName||''
  64. };
  65. api.signIn(param).then(res => {
  66. let result = res.data;
  67. if (result.code == 0) {
  68. // result.data.splice(0,1);//测试只有一条数据
  69. localStorage.setItem('loginData',JSON.stringify(result.data))//保存登陆信息,扫码进入徐删除该参数
  70. if (result.data.length > 1) {
  71. this.departmentLis = this.sortPart();
  72. } else if (result.data.length == 1) {
  73. let msg = result.data[0];
  74. let params = {
  75. hospitalCode: msg.hospitalCode,
  76. hospitalDeptCode: msg.hospitalDeptCode,
  77. doctorCode: msg.doctorCode,
  78. patientCode: msg.patientCode,
  79. recordId: msg.recordId,
  80. sonHospitalCode:msg.sonHospitalCode||'',
  81. time:msg.recordTime&&(new Date((msg.recordTime).replace(/\-/g, "/"))).getTime()
  82. };
  83. localStorage.setItem('loginParam',JSON.stringify(params))//保存登陆信息,扫码进入删除该参数
  84. this.$router.push({
  85. path: "/home",
  86. query: params
  87. });
  88. } else {
  89. this.message.title = '温馨提示'
  90. this.message.text = '暂无今日挂号信息,可更换登录方式再次尝试。'
  91. this.showTip = true
  92. }
  93. } else {
  94. this.defaultWaring(res.data.msg);
  95. }
  96. }).catch(() => {
  97. this.defaultWaring("网络异常请稍后重试");
  98. });
  99. }else{
  100. this.departmentLis = this.sortPart();
  101. }
  102. },
  103. mounted(){
  104. this.$nextTick(()=>{
  105. let scroll = setScroll(BScroll,true,'.departmentView')
  106. this.scroll = scroll
  107. })
  108. },
  109. methods:{
  110. sortPart(){
  111. let tmpList = JSON.parse(localStorage.getItem('loginData'));
  112. let tmpTime = JSON.parse(localStorage.getItem('recordTime'));
  113. let sortArr = tmpList.sort(compare("recordTime"));
  114. if(tmpTime){
  115. for(let j = 0;j < tmpTime.length;j++){
  116. for(let i = 0;i < sortArr.length;i++){
  117. if(tmpTime[j] == (new Date((sortArr[i].recordTime).replace(/\-/g, "/"))).getTime()){
  118. sortArr[i].dided = 1
  119. }
  120. }
  121. }
  122. }
  123. return sortArr;
  124. },
  125. showSubmit(flg){
  126. this.submit = flg;
  127. },
  128. close() {
  129. this.showTip = false;
  130. },
  131. defaultWaring(msg) {
  132. this.$store.commit("handleToggleShow", false);
  133. this.showType = "fail";
  134. this.failMsg = msg;
  135. this.submit = true;
  136. let timer = setTimeout(() => {
  137. this.submit = false;
  138. clearTimeout(timer);
  139. }, 2000);
  140. },
  141. goStart(num,time){
  142. this.show = !this.show
  143. let msg = this.departmentLis[num]
  144. let params = {
  145. hospitalCode:msg.hospitalCode,
  146. hospitalDeptCode:msg.hospitalDeptCode,
  147. doctorCode:msg.doctorCode,
  148. patientCode:msg.patientCode,
  149. recordId:msg.recordId,
  150. time:(new Date(time.replace(/\-/g, "/"))).getTime()
  151. }
  152. localStorage.setItem('loginParam',JSON.stringify(params))//保存登陆信息,扫码进入徐删除该参数
  153. this.$router.push({
  154. path:'/home',
  155. query:params
  156. })
  157. }
  158. },
  159. components:{
  160. Submit,
  161. Tiptoast
  162. }
  163. }
  164. </script>
  165. <style lang="less" scoped>
  166. @import '../less/base.less';
  167. .department {
  168. font-size: .3rem;
  169. padding: .3rem 0 1rem 0;
  170. background-color: #fff;
  171. .departmentView {
  172. position: absolute;
  173. width: 100%;
  174. height: 100%;
  175. overflow: hidden;
  176. padding: 0 .3rem 1rem .3rem;
  177. box-sizing: border-box;
  178. .content {
  179. padding-bottom: 1rem;
  180. }
  181. .list {
  182. background:rgba(255,255,255,1);
  183. box-shadow:0px 3px 20px 0px rgba(192,187,224,0.23);
  184. border-radius:.1rem;
  185. overflow: hidden;
  186. margin-bottom: .3rem;
  187. }
  188. .top {
  189. height: 1rem;
  190. line-height: 1rem;
  191. background: url('../images/bg-title.png') 100% 100% no-repeat;
  192. padding: 0 .3rem;
  193. box-sizing: border-box;
  194. p {
  195. position: relative;
  196. color: #fff;
  197. img {
  198. position: absolute;
  199. right: 0;
  200. top: 50%;
  201. width: .4rem;
  202. height: .4rem;
  203. margin-top: -0.2rem;
  204. }
  205. }
  206. }
  207. .main {
  208. font-size: .28rem;
  209. padding: .3rem;
  210. p {
  211. line-height: .5rem;
  212. }
  213. }
  214. }
  215. }
  216. </style>