index.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. import { createRouter, createWebHistory } from 'vue-router'
  2. export const constantRoutes = [
  3. {
  4. path: '/',
  5. redirect: {
  6. path: '/wxService',
  7. },
  8. },
  9. {
  10. path: '/wxService/:code?/:to?',
  11. component: () => import('../views/Home.vue'),
  12. meta: { title: '医疗服务' },
  13. children: [
  14. {
  15. path: '/hospitalService/:code?/:to?',
  16. component: () => import('../views/hospital-service/HospitalServiceHome.vue'),
  17. meta: {
  18. title: '医疗服务',
  19. },
  20. },
  21. {
  22. path: '/hospitalIntroduction/:code?/:to?',
  23. component: () => import('../views/hospital-info/HospitalIntroduction.vue'),
  24. meta: {
  25. title: '医院信息',
  26. },
  27. },
  28. {
  29. path: '/mine/:code?/:to?',
  30. component: () => import('../views/mine/MineHome.vue'),
  31. meta: {
  32. title: '个人中心',
  33. },
  34. },
  35. ],
  36. },
  37. {
  38. path: '/myPatientIdCards',
  39. component: () => import('../views/mine/patient-id-cards/MyPatientIdCards.vue'),
  40. meta: { title: '我的就诊人' },
  41. },
  42. {
  43. path: '/bindPatientCard',
  44. component: () => import('../views/mine/patient-id-cards/BindPatientCard.vue'),
  45. meta: { title: '添加就诊人' },
  46. },
  47. {
  48. path: '/createPatientCard',
  49. component: () => import('../views/mine/patient-id-cards/CreatePatientCard.vue'),
  50. meta: { title: '新建就诊人' },
  51. },
  52. {
  53. path: '/appointment',
  54. component: () => import('../views/hospital-service/appointment/Appointment.vue'),
  55. meta: { title: '预约挂号' },
  56. },
  57. {
  58. path: '/nightClinic',
  59. component: () => import('../views/hospital-service/appointment/night-clinic/ChooseDepartment.vue'),
  60. meta: { title: '夜间门诊' },
  61. },
  62. {
  63. path: '/selectDoctorAndDate/:deptCode/:deptName/:nightClinic',
  64. component: () => import('../views/hospital-service/appointment/SelectDoctorAndDate.vue'),
  65. meta: { title: '' },
  66. },
  67. {
  68. path: '/doctorArrangement/:date/:dept/:doctor',
  69. component: () => import('../views/hospital-service/appointment/DoctorArrangement.vue'),
  70. meta: {
  71. title: '医生排班',
  72. },
  73. },
  74. {
  75. path: '/appointmentConfirm',
  76. component: () => import('../views/hospital-service/appointment/AppointmentConfirm.vue'),
  77. meta: { title: '挂号确认' },
  78. },
  79. {
  80. path: '/payClinicAppointmentOrder/:patientId/:times',
  81. component: () => import('../views/hospital-service/appointment/PayClinicAppointmentOrder.vue'),
  82. meta: { title: '挂号支付' },
  83. },
  84. {
  85. path: '/selectTargetPatient',
  86. component: () => import('../views/hospital-service/appointment/management/SelectTargetPatient.vue'),
  87. meta: { title: '选择就诊人' },
  88. },
  89. {
  90. path: '/appointmentManagement/:patientId',
  91. component: () => import('../views/hospital-service/appointment/management/AppointmentManagement.vue'),
  92. meta: { title: '挂号管理' },
  93. },
  94. {
  95. path: '/refundAppointment/:patientId/:times',
  96. component: () => import('../views/hospital-service/appointment/management/RefundAppointment.vue'),
  97. meta: { title: '退号退费' },
  98. },
  99. {
  100. path: '/selectPayPatient',
  101. component: () => import('../views/hospital-service/pay-mz-fee/SelectPayPatient.vue'),
  102. meta: { title: '选择就诊人' },
  103. },
  104. {
  105. path: '/unPaidList/:patientId',
  106. component: () => import('../views/hospital-service/pay-mz-fee/UnPaidList.vue'),
  107. meta: { title: '待缴费列表' },
  108. },
  109. {
  110. path: '/fromGuideBillQrScan/:patientId',
  111. component: () => import('../views/hospital-service/pay-mz-fee/FromGuideBillQrScan.vue'),
  112. meta: { title: '待缴费列表' },
  113. },
  114. {
  115. path: '/medinsSettle/:patientId/:hisOrdNum/:patientName/:deptName/:doctorName/:mdtrtId',
  116. name: 'medinsSettle',
  117. component: () => import('../views/hospital-service/pay-mz-fee/MedInsSettle.vue'),
  118. meta: { title: '医保结算' },
  119. },
  120. {
  121. path: '/unPaidDetail/:patientId/:hisOrdNum/:patientName/:deptName/:doctorCode/:doctorName/:totalAmt/:selfAmt/:fundPay?/:acctPay?',
  122. name: 'unPaidDetail',
  123. component: () => import('../views/hospital-service/pay-mz-fee/UnPaidDetail.vue'),
  124. meta: { title: '待缴费详情' },
  125. },
  126. {
  127. path: '/selectExamPatient',
  128. component: () => import('../views/hospital-service/check-exam/SelectExamPatient.vue'),
  129. meta: { title: '选择就诊人' },
  130. },
  131. {
  132. path: '/selectExamBranch/:patientId',
  133. component: () => import('../views/hospital-service/check-exam/SelectExamBranch.vue'),
  134. meta: { title: '报告类别' },
  135. },
  136. {
  137. path: '/checkExamIndex/:patientId',
  138. component: () => import('../views/hospital-service/check-exam/exam/CheckExamIndex.vue'),
  139. meta: { title: '检验报告查询' },
  140. },
  141. {
  142. path: '/checkExamDetail/:patientId',
  143. component: () => import('../views/hospital-service/check-exam/exam/CheckExamDetail.vue'),
  144. meta: { title: '检验报告详情' },
  145. },
  146. {
  147. path: '/checkTestIndex/:patientId',
  148. component: () => import('../views/hospital-service/check-exam/test/CheckTestIndex.vue'),
  149. meta: { title: '检查报告查询' },
  150. },
  151. {
  152. path: '/checkTestDetail/:patientUid/:patientId',
  153. component: () => import('../views/hospital-service/check-exam/test/CheckTestDetail.vue'),
  154. meta: { title: '检查报告详情' },
  155. },
  156. {
  157. path: '/checkPathologyIndex/:patientId',
  158. component: () => import('../views/hospital-service/check-exam/pathology/CheckPathologyIndex.vue'),
  159. meta: { title: '病理报告查询' },
  160. },
  161. {
  162. path: '/checkPathologyDetail/:patientId',
  163. component: () => import('../views/hospital-service/check-exam/pathology/CheckPathologyDetail.vue'),
  164. meta: { title: '病理报告详情' },
  165. },
  166. {
  167. path: '/selectPhysicalExamPatient',
  168. component: () => import('../views/hospital-service/physical-exam/PhysicalExamPatient.vue'),
  169. meta: { title: '选择就诊人' },
  170. },
  171. {
  172. path: '/physicalExamIndex/:patientId',
  173. component: () => import('../views/hospital-service/physical-exam/PhysicalExamIndex.vue'),
  174. meta: { title: '体检报告' },
  175. },
  176. {
  177. path: '/selectInpatientCard',
  178. component: () => import('../views/hospital-service/inpatient-service/SelectInpatientCard.vue'),
  179. meta: { title: '住院查询' },
  180. },
  181. {
  182. path: '/inPatientService/:patientId',
  183. component: () => import('../views/hospital-service/inpatient-service/InPatientService.vue'),
  184. meta: { title: '住院服务' },
  185. },
  186. {
  187. path: '/zyFeeDetail/:inpatientNo/:admissTimes/:admissDate',
  188. name: 'zyFeeDetail',
  189. component: () => import('../views/hospital-service/inpatient-service/ZyFeeDetail.vue'),
  190. meta: { title: '住院费用明细' },
  191. },
  192. {
  193. path: '/displayPrepaid/:patientId/:name/:inpatientNo/:admissTimes/:deptName/:lastBalance',
  194. name: 'displayPrepaid',
  195. component: () => import('../views/hospital-service/inpatient-service/DisplayPrepaid.vue'),
  196. meta: { title: '预交金' },
  197. },
  198. {
  199. path: '/selectHealthCartPatient',
  200. component: () => import('../views/hospital-service/health-cart/SelectPatientCard.vue'),
  201. meta: { title: '选择就诊人' },
  202. },
  203. {
  204. path: '/healthCartCategory/:patientId',
  205. component: () => import('../views/hospital-service/health-cart/ExaminationCategory.vue'),
  206. meta: { title: '类别选择' },
  207. },
  208. {
  209. path: '/bookableExaminations/:flag/:patientId',
  210. component: () => import('../views/hospital-service/health-cart/BookableExaminations.vue'),
  211. meta: { title: '可预约项目' },
  212. },
  213. {
  214. path: '/selectBookDate',
  215. component: () => import('../views/hospital-service/health-cart/SelectBookDate.vue'),
  216. meta: { title: '可预约时间' },
  217. },
  218. {
  219. path: '/bookExam',
  220. component: () => import('../views/hospital-service/health-cart/BookExam.vue'),
  221. meta: { title: '预约详情' },
  222. },
  223. {
  224. path: '/resignOrRefund/:reqNo',
  225. component: () => import('../views/hospital-service/health-cart/ResignOrRefund.vue'),
  226. meta: { title: '未成功的预约' },
  227. },
  228. {
  229. path: '/selectAppointmentRecordPatient',
  230. component: () => import('../views/mine/appointment-record/SelectPatientCard.vue'),
  231. meta: { title: '选择就诊人' },
  232. },
  233. {
  234. path: '/appiontmentRecords/:patientId',
  235. component: () => import('../views/mine/appointment-record/AppointmentRecords.vue'),
  236. meta: { title: '挂号记录' },
  237. },
  238. {
  239. path: '/selectMzFeePaymentRecordPatient',
  240. component: () => import('../views/mine/mz-pay-record/SelectPatientCard.vue'),
  241. meta: { title: '选择就诊人' },
  242. },
  243. {
  244. path: '/mzFeePaymentRecords/:patientId',
  245. component: () => import('../views/mine/mz-pay-record/MzFeePaymentRecords.vue'),
  246. meta: { title: '门诊缴费记录' },
  247. },
  248. {
  249. path: '/mzFeePaymentDetail/:deptName/:doctorName/:datetime/:hisOrdNum/:totalAmt',
  250. name: 'mzFeePaymentDetail',
  251. component: () => import('../views/mine/mz-pay-record/MzFeePaymentDetail.vue'),
  252. meta: { title: '门诊缴费详细' },
  253. },
  254. {
  255. path: '/selectZyYjjPatient',
  256. component: () => import('../views/mine/zy-prepaid-record/SelectPatientCard.vue'),
  257. meta: { title: '选择就诊人' },
  258. },
  259. {
  260. path: '/prepaidRecord/:patientId',
  261. component: () => import('../views/mine/zy-prepaid-record/PrepaidRecord.vue'),
  262. meta: { title: '住院预交金记录' },
  263. },
  264. {
  265. path: '/myCollection',
  266. component: () => import('../views/mine/my-collection/MyCollection.vue'),
  267. meta: { title: '我的收藏' },
  268. },
  269. {
  270. path: '/myCoupons',
  271. component: () => import('../views/mine/my-coupons/MyCoupons.vue'),
  272. meta: { title: '我的卡券' },
  273. },
  274. {
  275. path: '/patientCardInfo/:patientId',
  276. component: () => import('../views/mine/patient-id-cards/PatientCardInfo.vue'),
  277. meta: { title: '就诊人信息' },
  278. },
  279. {
  280. path: '/selectAssessmentPatient',
  281. component: () => import('../views/hospital-service/assessments/SelectAssessmentPatient.vue'),
  282. meta: { title: '选择问卷填写人' },
  283. },
  284. {
  285. path: '/assessments/:patientId',
  286. component: () => import('../views/hospital-service/assessments/AssessmentsEntrance.vue'),
  287. meta: {
  288. title: '问卷选择',
  289. },
  290. },
  291. {
  292. path: '/assessments/depression/:patientId',
  293. component: () => import('../views/hospital-service/assessments/DepressionAssessment.vue'),
  294. meta: {
  295. title: 'SDS抑郁自评量',
  296. },
  297. },
  298. {
  299. path: '/assessments/clinicSatisfied/:patientId',
  300. component: () => import('../views/hospital-service/assessments/ClinicSatisfiedAssessment.vue'),
  301. meta: {
  302. title: '门诊服务满意度调查',
  303. },
  304. },
  305. {
  306. path: '/clinicSatisfiedByPush/:patientId',
  307. component: () => import('../views/hospital-service/assessments/ClinicSatisfiedAssessment.vue'),
  308. meta: {
  309. title: '门诊服务满意度调查',
  310. },
  311. },
  312. {
  313. path: '/assessments/inpatientSatisfied/:visitId',
  314. component: () => import('../views/hospital-service/assessments/InpatientSatisfiedAssessment.vue'),
  315. meta: {
  316. title: '住院服务满意度调查',
  317. },
  318. },
  319. {
  320. path: '/inpatientSatisfiedByPush/:visitId',
  321. component: () => import('../views/hospital-service/assessments/InpatientSatisfiedAssessment.vue'),
  322. meta: {
  323. title: '住院服务满意度调查',
  324. },
  325. },
  326. {
  327. path: '/assessments/covid/:patientId?/:from?',
  328. component: () => import('../views/hospital-service/assessments/Covid19Assessment.vue'),
  329. meta: {
  330. title: '新型冠状病毒感染流行病学史问卷',
  331. },
  332. },
  333. {
  334. path: '/onlineConsult',
  335. component: () => import('../views/hospital-service/online-consult/OnlineConsult.vue'),
  336. meta: {
  337. title: '在线咨询',
  338. },
  339. },
  340. {
  341. path: '/studentInspection',
  342. component: () => import('../views/isolations/StudentInspection.vue'),
  343. meta: {
  344. title: '学生体检',
  345. },
  346. },
  347. {
  348. path: '/healthEducation',
  349. component: () => import('../views/isolations/HealthEducation.vue'),
  350. meta: {
  351. title: '健康宣教',
  352. },
  353. },
  354. {
  355. path: '/receiveCoupon/:key',
  356. component: () => import('../views/isolations/ReceiveCoupon.vue'),
  357. meta: {
  358. title: '领取优惠券',
  359. },
  360. },
  361. {
  362. path: '/selectPriceQueryBranch',
  363. component: () => import('../views/hospital-service/query-price/SelectPriceQueryBranch.vue'),
  364. meta: {
  365. title: '价格查询',
  366. },
  367. },
  368. {
  369. path: '/queryMedicinePrice',
  370. component: () => import('../views/hospital-service/query-price/QueryMedicinePrice.vue'),
  371. meta: {
  372. title: '药品价格查询',
  373. },
  374. },
  375. {
  376. path: '/queryItemPrice',
  377. component: () => import('../views/hospital-service/query-price/QueryItemPrice.vue'),
  378. meta: {
  379. title: '项目价格查询',
  380. },
  381. },
  382. {
  383. path: '/electronicHealthCardHome',
  384. component: () => import('../views/hospital-service/electronic-health-card/ElectronicHealthCardHome.vue'),
  385. meta: {
  386. title: '电子健康卡',
  387. },
  388. },
  389. {
  390. path: '/addElectronicHealthCard',
  391. component: () => import('../views/hospital-service/electronic-health-card/AddElectronicHealthCard.vue'),
  392. meta: {
  393. title: '添加健康卡',
  394. },
  395. },
  396. {
  397. path: '/linkHealthCardResult',
  398. component: () => import('../views/hospital-service/electronic-health-card/LinkHealthCardResult.vue'),
  399. meta: {
  400. title: '结果页',
  401. },
  402. },
  403. {
  404. path: '/activeHealthCard',
  405. component: () => import('../views/hospital-service/electronic-health-card/ActiveHealthCard.vue'),
  406. meta: {
  407. title: '激活健康卡',
  408. },
  409. },
  410. {
  411. path: '/showCardQrCode',
  412. name: 'showCardQrCode',
  413. component: () => import('../views/hospital-service/electronic-health-card/ShowCardQrCode.vue'),
  414. meta: {
  415. title: '我的健康卡',
  416. },
  417. },
  418. {
  419. path: '/newUserRegForElectronicHealthCard',
  420. component: () => import('../views/hospital-service/electronic-health-card/NewUserReg.vue'),
  421. meta: {
  422. title: '新用户注册',
  423. },
  424. },
  425. {
  426. path: '/shareholdersEquity',
  427. component: () => import('../views/hospital-service/shareholder/ShareholdersEquity.vue'),
  428. meta: {
  429. title: '股东权益',
  430. },
  431. },
  432. {
  433. path: '/chronicDisease',
  434. component: () => import('../views/isolations/ChronicDisease.vue'),
  435. meta: {
  436. title: '慢病患者登记表',
  437. },
  438. },
  439. {
  440. path: '/cashier',
  441. name: 'cashier',
  442. component: () => import('../views/public-pages/Cashier.vue'),
  443. meta: {
  444. title: '收银台'
  445. }
  446. },
  447. {
  448. path: '/resultSuccess/:title?/:subtitle?',
  449. name: 'resultSuccess',
  450. component: () => import('../views/public-pages/ResultSuccess.vue'),
  451. meta: {
  452. title: '',
  453. },
  454. },
  455. {
  456. path: '/paymentSuccess',
  457. name: 'paymentSuccess',
  458. component: () => import('../views/public-pages/PaymentSuccess.vue'),
  459. meta: {
  460. title: '支付完成'
  461. }
  462. },
  463. {
  464. path: '/500',
  465. component: () => import('../views/500.vue'),
  466. meta: {
  467. title: '服务器错误',
  468. },
  469. },
  470. {
  471. path: '/404',
  472. component: () => import('../views/404.vue'),
  473. meta: {
  474. title: '网页未找到',
  475. },
  476. },
  477. {
  478. // 找不到路由重定向到404页面
  479. path: '/:pathMatch(.*)',
  480. redirect: '/404',
  481. },
  482. ]
  483. const router = createRouter({
  484. history: createWebHistory(),
  485. routes: constantRoutes,
  486. })
  487. router.beforeEach((to, from, next) => {
  488. if (to.fullPath.startsWith('/selectDoctorAndDate')) {
  489. to.meta.title = to.params.deptName
  490. }
  491. document.title = to.meta.title
  492. next()
  493. })
  494. export default router