Department.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  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="index">
  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. <StartPage v-if="showStart" :showStart="showStart"/>
  26. </div>
  27. </template>
  28. <script>
  29. import {setScroll,compare} from '@utils/tools.js';
  30. import BScroll from 'better-scroll';
  31. import Submit from "../common/Submit";
  32. import Tiptoast from "../common/Tiptoast";
  33. import StartPage from "../common/HomePage";
  34. import api from "@utils/api.js";
  35. export default {
  36. name: "Department",
  37. data(){
  38. return {
  39. scroll:null,
  40. departmentLis:[],
  41. showTip: false,
  42. showType: "fail",
  43. failMsg: "",
  44. message:{
  45. title: "",
  46. text: ""
  47. },
  48. submit: false,
  49. show: false,
  50. son:false,//有无子医院
  51. hospitalNum:'',
  52. hospitalName:'',
  53. showStart:false,//显示启动页
  54. }
  55. },
  56. created(){
  57. let query = this.$route.query;
  58. let type = query.patientInfoType,name = query.patientName,value = query.patientInfo,code=query.hospitalCode,sonHospitalCode=query.sonHospitalCode,sonHospitalName=query.sonHospitalName;
  59. if(value&&name&&type&&code){//带信息直接跳转列表页面
  60. this.getSysConfig(code)
  61. const param = {
  62. patientInfo: value,
  63. patientInfoType: type,
  64. hospitalCode: code,
  65. patientName:name,
  66. sonHospitalCode: sonHospitalCode||'',
  67. sonHospitalName: sonHospitalName||''
  68. };
  69. this.signInStr(param);
  70. }else{
  71. if(localStorage.getItem("startPage") !== null&&localStorage.getItem("startPage")==1){
  72. this.showStart = true
  73. }
  74. this.departmentLis = this.sortPart();
  75. }
  76. },
  77. mounted(){
  78. document.title = '挂号信息';console.log(11)
  79. this.$nextTick(()=>{
  80. let scroll = setScroll(BScroll,true,'.departmentView')
  81. this.scroll = scroll
  82. })
  83. },
  84. methods:{
  85. getSysConfig(code){
  86. api.getSysConfig({'hospitalCode':code}).then((res)=>{
  87. const result = res.data;
  88. if(result.code==0){
  89. const datas = result.data;
  90. this.$store.commit('saveSysConfig',datas)
  91. for(let i = 0;i < datas.length;i++){
  92. if(datas[i].code == 'homepage_show' && localStorage.getItem("startPage") === null){
  93. if(+datas[i].value==1){
  94. localStorage.setItem('startPage',1)
  95. //显示启动页
  96. this.showStart = true
  97. }else{
  98. localStorage.setItem('startPage',0)
  99. }
  100. }
  101. }
  102. }else{
  103. this.defaultWaring(res.data.msg);
  104. }
  105. })
  106. },
  107. signInStr(param){
  108. api.signIn(param).then(res => {
  109. let result = res.data;
  110. if (result.code == 0) {
  111. // result.data.splice(0,1);//测试只有一条数据
  112. localStorage.setItem('loginData',JSON.stringify(result.data))//保存登陆信息,扫码进入徐删除该参数
  113. if (result.data.length > 1) {
  114. this.departmentLis = this.sortPart();
  115. } else if (result.data.length == 1) {
  116. let msg = result.data[0];
  117. let params = {
  118. hospitalCode: msg.hospitalCode,
  119. hospitalDeptCode: msg.hospitalDeptCode,
  120. doctorCode: msg.doctorCode,
  121. patientCode: msg.patientCode,
  122. recordId: msg.recordId,
  123. sonHospitalCode:msg.sonHospitalCode||'',
  124. time:msg.recordTime&&(new Date((msg.recordTime).replace(/\-/g, "/"))).getTime()
  125. };
  126. localStorage.setItem('loginParam',JSON.stringify(params))//保存登陆信息,扫码进入删除该参数
  127. this.$router.push({
  128. path: "/home",
  129. query: params
  130. });
  131. } else {
  132. this.message.title = '温馨提示'
  133. this.message.text = '暂无今日挂号信息,可更换登录方式再次尝试。'
  134. this.showTip = true
  135. }
  136. } else {
  137. this.defaultWaring(res.data.msg);
  138. }
  139. }).catch(() => {
  140. this.defaultWaring("网络异常请稍后重试");
  141. });
  142. },
  143. sortPart(){//按日期排序
  144. let tmpList = JSON.parse(localStorage.getItem('loginData'));
  145. let tmpTime = JSON.parse(localStorage.getItem('recordTime'));
  146. let sortArr = tmpList.sort(compare("recordTime"));
  147. if(tmpTime){
  148. for(let j = 0;j < tmpTime.length;j++){
  149. for(let i = 0;i < sortArr.length;i++){
  150. if(sortArr[i].recordTime&&tmpTime[j] == (new Date((sortArr[i].recordTime).replace(/\-/g, "/"))).getTime()){
  151. sortArr[i].dided = 1
  152. }
  153. }
  154. }
  155. }
  156. return sortArr;
  157. },
  158. showSubmit(flg){
  159. this.submit = flg;
  160. },
  161. close() {
  162. this.showTip = false;
  163. },
  164. defaultWaring(msg) {
  165. this.$store.commit("handleToggleShow", false);
  166. this.showType = "fail";
  167. this.failMsg = msg;
  168. this.submit = true;
  169. let timer = setTimeout(() => {
  170. this.submit = false;
  171. clearTimeout(timer);
  172. }, 2000);
  173. },
  174. goStart(num,time){
  175. this.show = !this.show
  176. let msg = this.departmentLis[num]
  177. let params = {
  178. hospitalCode:msg.hospitalCode,
  179. hospitalDeptCode:msg.hospitalDeptCode,
  180. doctorCode:msg.doctorCode,
  181. patientCode:msg.patientCode,
  182. recordId:msg.recordId,
  183. sonHospitalCode:msg.sonHospitalCode||'',
  184. time:time&&(new Date(time.replace(/\-/g, "/"))).getTime()
  185. }
  186. localStorage.setItem('loginParam',JSON.stringify(params))//保存登陆信息,扫码进入删除该参数
  187. this.$router.push({
  188. path:'/home',
  189. query:params
  190. })
  191. }
  192. },
  193. components:{
  194. Submit,
  195. Tiptoast,
  196. StartPage
  197. }
  198. }
  199. </script>
  200. <style lang="less" scoped>
  201. @import '../less/base.less';
  202. .department {
  203. font-size: .3rem;
  204. padding: .3rem 0 1rem 0;
  205. background-color: #fff;
  206. .departmentView {
  207. position: absolute;
  208. width: 100%;
  209. height: 100%;
  210. overflow: hidden;
  211. padding: 0 .3rem 1rem .3rem;
  212. box-sizing: border-box;
  213. .content {
  214. padding-bottom: 1rem;
  215. }
  216. .list {
  217. background:rgba(255,255,255,1);
  218. box-shadow:0px 3px 20px 0px rgba(192,187,224,0.23);
  219. border-radius:.1rem;
  220. overflow: hidden;
  221. margin-bottom: .3rem;
  222. }
  223. .top {
  224. height: 1rem;
  225. line-height: 1rem;
  226. background: url('../images/bg-title.png') 100% 100% no-repeat;
  227. padding: 0 .3rem;
  228. box-sizing: border-box;
  229. p {
  230. position: relative;
  231. color: #fff;
  232. font-size: #font[title];
  233. img {
  234. position: absolute;
  235. right: 0;
  236. top: 50%;
  237. width: .4rem;
  238. height: .4rem;
  239. margin-top: -0.2rem;
  240. }
  241. }
  242. }
  243. .main {
  244. font-size: .28rem;
  245. padding: .3rem;
  246. p {
  247. line-height: .5rem;
  248. }
  249. }
  250. }
  251. }
  252. </style>