index.vue 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315
  1. <template>
  2. <view class="content">
  3. <view class="cont">
  4. <view class="bg">
  5. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/image/index_img/home_top_bg.png"></image>
  6. </view>
  7. <view class="top-box" :style="{ background: bg }" >
  8. <view class="status_bar" :style="{height: statusBarHeight}"></view>
  9. <view class="top-title">
  10. <view class="name" :style="{ color: titleColor }">医健宝医药</view>
  11. <view class="desc-box" >
  12. <image v-if="!isTop" src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/dui1.png"></image>
  13. <image v-if="isTop" src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/dui1.png"></image>
  14. <view class="desc" :style="{ color: descColor }">卫健部门权威认证机构,世界各地千万用户健康选择</view>
  15. </view>
  16. </view>
  17. <view class="search">
  18. <view class="search-box" @click="navTo('/pages_index/search')">
  19. <image class="img" src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/icon_search.png" mode=""></image>
  20. <input disabled type="text" placeholder="搜索医生、疾病、知识" placeholder-class="input-place">
  21. </view>
  22. <!-- 购物车 -->
  23. <view class="img-item" @click="loginNavTo('/pages_shopping/cart')">
  24. <u-badge type="error" max="99" :value="cartCount" :offset="[-10,-10]" :absolute="true"></u-badge>
  25. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/fs/20250925/9a8fa2e310704a8b9ed078e10a2ab6c5.png" mode=""></image>
  26. </view>
  27. </view>
  28. </view>
  29. <view class="cont-box">
  30. <view class="status_bar" :style="{height: statusBarHeight}"></view>
  31. <view style="padding-bottom:178rpx" >
  32. </view>
  33. <view class="banner" v-if="advImgs.length>0">
  34. <u-swiper
  35. :list="advImgs"
  36. indicator
  37. indicatorMode="line"
  38. circular
  39. height="233rpx"
  40. @click="handleAdvClick">
  41. </u-swiper>
  42. </view>
  43. <view class="menu-box box">
  44. <view class="menu-item" @click="navTo('/pages_index/healthy/index?cateId=2')">
  45. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/index/medical_news_icon.png" mode="aspectFill"></image>
  46. <view>医药资讯</view>
  47. </view>
  48. <view class="menu-item" @click="loginNavTo('/pages_user/complaint')">
  49. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/index/consultation_complaints_icon.png" mode="aspectFill"></image>
  50. <view>咨询投诉</view>
  51. </view>
  52. <view class="menu-item" @click="navTo('/pages_order/inquirySelect?inquiryType=3')">
  53. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/index/consultant_pharmacist_icon.png" mode="aspectFill"></image>
  54. <view>咨询药师</view>
  55. </view>
  56. <view class="menu-item" @click="navTo('/pages_shopping/registerMerchant')">
  57. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/index/merchants_settle_in_icon.png" mode="aspectFill"></image>
  58. <view>商家入驻</view>
  59. </view>
  60. </view>
  61. <view class="modules">
  62. <view class="module" v-for="(it,index) in layouts" :key="index">
  63. <!-- 推荐药品 -->
  64. <tuiProduct ref="tuiProduct" v-if="it.id==8&&it.isShow"></tuiProduct>
  65. <!-- 特色药店 -->
  66. <view class="pharmacy-box box" v-if="it.id==9&&it.isShow&&storeIndexList.length>0">
  67. <view class="title-box">
  68. <view class="title">{{it.name}}</view>
  69. <view class="more" @click="navTo('/pages_store/index')" >
  70. <view class="text">更多药店</view>
  71. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/arrow_gray.png"></image>
  72. </view>
  73. </view>
  74. <view class="pharmacy">
  75. <image :src="store.logoUrl" mode="aspectFill" v-for="(store,i) in storeIndexList" :key="i"
  76. @click="navTo('/pages_store/storeIndex?storeId='+store.id)"></image>
  77. </view>
  78. </view>
  79. <!-- <view class="depts" v-if="it.id==2&&it.isShow">
  80. <view class="title">
  81. {{it.name}}
  82. </view>
  83. <view class="dept-box">
  84. <view @click="navTo('/pages_doctor/doctorList?deptId='+item.deptId)" class="dept" v-for="(item,index) in depts" :key="index">
  85. <image class="icon" :src="item.iconUrl"></image>
  86. <view class="title">{{item.deptName}}</view>
  87. </view>
  88. <view @click="navTo('/pages_doctor/doctorList?deptId=0')" class="dept">
  89. <image class="icon" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/acbb520df8284c6aaff601cb06411c2a.png"></image>
  90. <view class="title">更多科室</view>
  91. </view>
  92. </view>
  93. </view>
  94. <view class="depts" v-if="it.id==3&&it.isShow">
  95. <view class="title">
  96. {{it.name}}
  97. </view>
  98. <view class="dept-box">
  99. <view @click="yangshengClick(item)" class="dept" v-for="(item,index) in yangshengs" :key="index">
  100. <image class="icon" :src="item.icon"></image>
  101. <view class="title" >{{item.title}}</view>
  102. </view>
  103. </view>
  104. </view>
  105. <view class="doctor-articles" v-if="it.id==4&&it.isShow" >
  106. <view class="title-box">
  107. <view class="title">{{it.name}}</view>
  108. <view class="more" @click="navTo('/pages_doctor/doctorArticleList')" >
  109. <view class="text">更多</view>
  110. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/arrow_gray.png"></image>
  111. </view>
  112. </view>
  113. <scroll-view :scroll-x="true" style="white-space: nowrap;">
  114. <view class="article-box" >
  115. <view class="article" @click="navTo('/pages_doctor/doctorArticleDetails?articleId='+item.articleId)" v-for="(item,index) in doctocArticles" :key="index">
  116. <view class="image-box">
  117. <image mode="aspectFill" :src="item.imageUrl"></image>
  118. <view class="views">
  119. {{item.views}}人观看
  120. </view>
  121. <view class="doctor">
  122. <image mode="aspectFill" :src="item.avatar"></image>
  123. <view class="right">
  124. <view class="doc-name ellipsis">{{item.doctorName}}</view>
  125. <view class="doc-position ellipsis">{{item.position}}</view>
  126. </view>
  127. </view>
  128. </view>
  129. <view class="article-title-box">
  130. <view class="article-title ellipsis">{{item.title}}</view>
  131. </view>
  132. </view>
  133. </view>
  134. </scroll-view>
  135. </view> -->
  136. <view class="doctors box" v-if="it.id==5&&it.isShow&&doctors.length>0">
  137. <view class="title-box">
  138. <view class="title">{{it.name}}</view>
  139. <view class="more" @click="navTo('/pages_doctor/doctorList')">
  140. <view class="text">更多</view>
  141. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/arrow_gray.png"></image>
  142. </view>
  143. </view>
  144. <view class="doctor-box" v-if="doctors.length>0" style="padding: 0;margin: 0;">
  145. <view class="doctor" @click="navTo('/pages_doctor/doctorDetails?doctorId='+item.doctorId)" v-for="(item,index) in doctors" :key="index">
  146. <view class="item">
  147. <view class="left">
  148. <view class="head-box">
  149. <image mode="aspectFill" class="doc-img" :src="item.avatar"></image>
  150. <view class="isline" v-if="item.workStatus==1">
  151. <view class="img">
  152. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/index/isline.png"></image>
  153. <view class="name">在线</view>
  154. </view>
  155. </view>
  156. </view>
  157. </view>
  158. <view class="right">
  159. <view class="doc-box">
  160. <view class="doc-name">
  161. {{item.doctorName}}
  162. </view>
  163. <view class="doc-position">{{item.position}}</view>
  164. <view class="doc-dept">{{item.deptName}}</view>
  165. </view>
  166. <view class="hospital-box">
  167. <!-- <view class="tag" v-if="item.hospitalLevel!=null">
  168. <text>{{$getDictLabelName(hosLevelOptions,item.hospitalLevel)}}</text>
  169. </view> -->
  170. <view class="name">{{item.hospitalName||''}} </view>
  171. </view>
  172. <view class="doc-spec">
  173. <view class="spec ellipsis2">{{item.speciality}}</view>
  174. </view>
  175. <view class="doc-count">
  176. <view class="name">好评:</view>
  177. <view class="count">{{item.pingStar}}分</view>
  178. <view class="name">接诊量:</view>
  179. <view class="count">{{item.orderNumber}}</view>
  180. <view class="name">平均响应:</view>
  181. <view class="count"></view>
  182. </view>
  183. <view class="doc-price" >
  184. <view class="btn">
  185. 咨询医生¥
  186. <text v-for="(price,index) in item.prices" :key="index">
  187. {{price.price.toFixed(2)}} <text v-if="index==0">/</text>
  188. </text>
  189. </view>
  190. </view>
  191. </view>
  192. </view>
  193. </view>
  194. </view>
  195. </view>
  196. <view class="articles box" v-if="it.id==6&&it.isShow&&articles.length>0">
  197. <view class="title-box">
  198. <view class="title">{{it.name}}</view>
  199. <view class="more" @click="navTo('/pages_index/healthy/index')">
  200. <view class="text">更多</view>
  201. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/arrow_gray.png"></image>
  202. </view>
  203. </view>
  204. <view class="article-box" v-if="articles.length>0">
  205. <view class="item" @click="navTo('/pages_index/healthy/detail?articleId='+item.articleId)" v-for="(item,index) in articles" :key="index">
  206. <view class="left">
  207. <view class="title ellipsis2">
  208. {{item.title}}
  209. </view>
  210. <view class="views">
  211. 浏览量 {{item.views}}
  212. </view>
  213. </view>
  214. <view class="right">
  215. <image :src="item.imageUrl" mode="aspectFill"></image>
  216. </view>
  217. </view>
  218. </view>
  219. </view>
  220. <!-- <view class="packages" v-if="it.id==7&&it.isShow">
  221. <view class="title-box">
  222. <view class="title">{{it.name}}</view>
  223. <view class="more" @click="navTo('/pages_index/packageList')">
  224. <view class="text">更多</view>
  225. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/arrow_gray.png"></image>
  226. </view>
  227. </view>
  228. <view class="package-box" >
  229. <view class="item" @click="navTo('/pages_index/packageDetails?packageId='+item.packageId)" v-for="(item,index) in packages" :key="index">
  230. <view class="top">
  231. <image :src="item.imgUrl"></image>
  232. </view>
  233. <view class="bottom">
  234. <view class="title ellipsis2">
  235. {{item.packageName}}
  236. </view>
  237. <view class="price-box">
  238. <view class="price">¥{{item.price.toFixed(2)}}元/日</view>
  239. <view class="count">{{item.sales}}人已购</view>
  240. </view>
  241. </view>
  242. </view>
  243. </view>
  244. </view> -->
  245. </view>
  246. </view>
  247. <!-- 资质 -->
  248. <view class="qualifications-box">
  249. <view class="qualifications-con">
  250. <image class="qualifications-icon" src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/index/certificate_icon68.svg" mode=""></image>
  251. <view class="qualifications-r">
  252. <view class="x-bc">
  253. <text>资质证书展示</text>
  254. <view class="desc x-f" @click="navTo('/pages_user/cert')">
  255. <text>查看详情</text>
  256. <image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/index/white_right_arrow_right_icon.png" mode="aspectFill"></image>
  257. </view>
  258. </view>
  259. <view class="text" style="margin-top: 6rpx;">药品交易平台备案:XXXXX</view>
  260. <view class="text" style="margin-top: 6rpx;">医疗器械交易平台备案:XXXXX</view>
  261. </view>
  262. </view>
  263. <view>
  264. <text class="text" style="margin-right: 40rpx;">投诉举报邮箱:Yijabao@163.com</text>
  265. <text class="text">联系电话:13466304507</text>
  266. </view>
  267. </view>
  268. </view>
  269. </view>
  270. </view>
  271. </template>
  272. <script>
  273. import tuiProduct from "@/components/tuiProduct.vue"
  274. import {getConfigByKey} from '@/api/common'
  275. import {getPackageList} from '@/api/package.js'
  276. import {getDoctorArticleList} from '@/api/doctorArticle.js'
  277. import {getDoctorList} from '@/api/doctor.js'
  278. import {getArticleList} from '@/api/article.js'
  279. import {getAdvList} from '@/api/adv.js'
  280. import {getDepartmentList} from '@/api/department.js'
  281. import {getDictByKey} from '@/api/common.js'
  282. import {validList}from '@/api/index.js'
  283. export default {
  284. components: {
  285. tuiProduct
  286. },
  287. data() {
  288. return {
  289. cartCount: 0,
  290. layouts:[],
  291. yangshengs:[
  292. {id:"0",title:"AI舌诊",page:"/pages_user/tongue/index",icon:"https://cos.his.cdwjyyh.com/fs/20240919/647fb42de0ab4e96a6c3097f3c3d9cf5.png"},
  293. {id:"1",title:"药膳食疗",page:"/pages_index/medicatedFoodList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/3cfbd47911cf4753aa9497eac500728d.png"},
  294. {id:"2",title:"经络穴位",page:"/pages_index/vesselList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/e93536a9dc1a4f8ca09545097b12fdea.png"},
  295. {id:"3",title:"问答专区",page:"/pages_index/questionsList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/e896972bd56f4e358188af36f2c5af42.png"},
  296. {id:"4",title:"疾病",page:"/pages_index/diseaseList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/d6f1851cccae414b8baf2ba07782f91b.png"},
  297. {id:"5",title:"中药图解",page:"/pages_index/chineseMedicineList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/ff43572d0d004285b5a3b0ef2663c471.png"},
  298. {id:"6",title:"名方今用",page:"/pages_index/famousPrescribeList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/45db770e58c34963b0d2ba24a958b617.png"},
  299. {id:"7",title:"康复医案",page:"/pages_doctor/doctorArticleList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/e793942797b24035b51f94d894bdfa0b.png"}
  300. ],
  301. isTop:false,
  302. titleColor:"#ffffff",
  303. descColor:"#ffffff",
  304. top:0,
  305. // 状态栏的高度
  306. statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
  307. advImgs:[],
  308. doctors:[],
  309. advs:[],
  310. articles:[],
  311. depts:[],
  312. doctocArticles:[],
  313. hosLevelOptions:[],
  314. packages:[],
  315. storeIndexList: []
  316. }
  317. },
  318. onLoad() {
  319. this.getDictByKey("sys_hospital_level");
  320. uni.$on('refreshMsgCount', () => {
  321. try{
  322. let totalUnreadCount = uni.$TUIKit.getTotalUnreadMessageCount();
  323. if(totalUnreadCount>0){
  324. try{
  325. uni.setTabBarBadge({ //显示数字
  326. index: 1, //tabbar下标
  327. text: totalUnreadCount+"" //数字
  328. })
  329. }
  330. catch(e){
  331. }
  332. }
  333. else{
  334. try{
  335. uni.hideTabBarRedDot({ //隐藏红点
  336. index: 1 //tabbar下标
  337. })
  338. }
  339. catch(e){
  340. }
  341. }
  342. }catch(e){
  343. }
  344. });
  345. },
  346. onShow() {
  347. this.getDoctorList();
  348. this.getArticleList();
  349. this.getAdvList();
  350. // this.getDepartmentList();
  351. // this.getDoctorArticleList();
  352. // this.getPackageList();
  353. this.getConfigByKey("his.appShow");
  354. this.getStore()
  355. var that=this;
  356. uni.$emit('refreshMsgCount');
  357. },
  358. onPageScroll(e) {
  359. this.top=e.scrollTop;
  360. },
  361. //发送给朋友
  362. onShareAppMessage(res) {
  363. if(this.$isLogin()){
  364. return {
  365. title: "医健宝医药",
  366. path: '/pages/index/index',
  367. imageUrl: 'https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/sharelogo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  368. }
  369. }
  370. },
  371. //分享到朋友圈
  372. onShareTimeline(res) {
  373. if(this.$isLogin()){
  374. return {
  375. title: "医健宝医药",
  376. imageUrl: 'https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/sharelogo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  377. }
  378. }
  379. },
  380. computed: {
  381. bg: function() {
  382. var top=this.top/120;
  383. if(top>0){
  384. this.isTop=true;
  385. this.titleColor="#fff"
  386. this.descColor="#fff"
  387. }
  388. else{
  389. this.isTop=false;
  390. this.titleColor="#fff"
  391. this.descColor="#fff"
  392. }
  393. return 'rgba(37, 131, 235, ' + top + ')';
  394. },
  395. },
  396. methods: {
  397. dev(){
  398. uni.showToast({
  399. icon:"none",
  400. title: '敬请期待'
  401. })
  402. },
  403. getStore() {
  404. validList().then(res=>{
  405. if(res.code==200) {
  406. this.storeIndexList =res.rows
  407. }
  408. })
  409. },
  410. getConfigByKey(key){
  411. var that=this;
  412. var data={key:key}
  413. getConfigByKey(data).then(
  414. res => {
  415. if(res.code==200){
  416. this.layouts=JSON.parse(res.data);
  417. this.layouts.sort((a, b) => a.sort - b.sort)
  418. this.layouts.forEach(function(element) {
  419. if(element.id=="4"){
  420. if(!element.isShow){
  421. that.yangshengs.splice(6,1);
  422. }
  423. }
  424. if(element.id=="7"){
  425. // if(!element.isShow){
  426. // uni.setTabBarItem({
  427. // index:2, //从左到右 0开始
  428. // visible:false //默认true false隐藏
  429. // })
  430. // }
  431. // else{
  432. // uni.setTabBarItem({
  433. // index:2, //从左到右 0开始
  434. // visible:true //默认true false隐藏
  435. // })
  436. // }
  437. }
  438. });
  439. }
  440. },
  441. rej => {}
  442. );
  443. },
  444. yangshengClick(item){
  445. // uni.navigateTo({
  446. // url: '/pages/index/webview?url=' + encodeURIComponent('rtlive://course?courseId=1')
  447. // });
  448. // return;
  449. if(item.id==0){
  450. // this.$isLogin().then(
  451. // res => {
  452. // if(res){
  453. uni.navigateTo({
  454. url:item.page
  455. });
  456. // }
  457. // else{
  458. // uni.navigateTo({
  459. // url:'/pages/auth/login'
  460. // })
  461. // }
  462. // }
  463. // );
  464. }
  465. else{
  466. if(item.page==""){
  467. uni.showToast({
  468. icon:"none",
  469. title: '暂无更多'
  470. })
  471. return;
  472. }
  473. uni.navigateTo({
  474. url:item.page
  475. })
  476. }
  477. },
  478. switchTab(url){
  479. uni.switchTab({
  480. url:url
  481. })
  482. },
  483. navToMiniProgram(){
  484. uni.navigateToMiniProgram({
  485. // appid 写你要跳转的小程序的 appid
  486. appId: 'wx45cf09091aead547',
  487. // 路径写 src下的路径,假如你跳转的是pages下的页面,就可以写pages/index
  488. path: '/pages/common/launch',
  489. extraData: {
  490. // 'type': 'out'
  491. },
  492. // 这个不写的话会显示开发环境,不能正常跳转,写上就能正常跳转了
  493. envVersion: 'develop',
  494. success(res) {
  495. // 打开成功
  496. // uni.showToast({
  497. // title: '跳转成功'
  498. // })
  499. },
  500. fail(err) {
  501. // 打开失败/取消
  502. // uni.showToast({
  503. // title: '跳转不成功'
  504. // })
  505. }
  506. })
  507. },
  508. getDictByKey(key){
  509. var data={key:key}
  510. getDictByKey(data).then(
  511. res => {
  512. if(res.code==200){
  513. if(key=="sys_hospital_level"){
  514. this.hosLevelOptions=res.data;
  515. }
  516. }
  517. },
  518. err => {
  519. }
  520. );
  521. },
  522. getDoctorArticleList(page) {
  523. //联网加载数据
  524. var that = this;
  525. var data = {
  526. pageNum:1,
  527. pageSize:10,
  528. };
  529. getDoctorArticleList(data).then(res => {
  530. if(res.code==200){
  531. this.doctocArticles=res.data.list;
  532. }else{
  533. }
  534. });
  535. },
  536. getDepartmentList(page) {
  537. //联网加载数据
  538. var that = this;
  539. var data = {
  540. isTui:1
  541. };
  542. getDepartmentList(data).then(res => {
  543. if(res.code==200){
  544. this.depts=res.data;
  545. }
  546. });
  547. },
  548. handleAdvClick(index){
  549. var ad=this.advs[index];
  550. console.log(ad.advUrl);
  551. if(ad.showType==1){
  552. uni.setStorageSync('url',ad.advUrl);
  553. uni.navigateTo({
  554. url:"h5"
  555. })
  556. }
  557. else if(ad.showType==2){
  558. uni.navigateTo({
  559. url:ad.advUrl
  560. })
  561. }
  562. else if(ad.showType==3){
  563. uni.setStorageSync('content',ad.content);
  564. uni.navigateTo({
  565. url:"content"
  566. })
  567. }
  568. },
  569. getAdvList() {
  570. //联网加载数据
  571. var that = this;
  572. var data = {
  573. advType:1
  574. };
  575. getAdvList(data).then(res => {
  576. if(res.code==200){
  577. that.advImgs=[];
  578. that.advs=[];
  579. res.data.forEach(function(element) {
  580. if(element.imageUrl!=null&&element.imageUrl!=""){
  581. that.advs.push(element);
  582. that.advImgs.push(element.imageUrl);
  583. }
  584. });
  585. }else{
  586. uni.showToast({
  587. icon:'none',
  588. title: "请求失败",
  589. });
  590. }
  591. });
  592. },
  593. getArticleList() {
  594. //联网加载数据
  595. var that = this;
  596. var data = {
  597. isTui:1,
  598. pageNum:1,
  599. pageSize:10,
  600. };
  601. getArticleList(data).then(res => {
  602. if(res.code==200){
  603. this.articles=res.data.list;
  604. }else{
  605. uni.showToast({
  606. icon:'none',
  607. title: "请求失败",
  608. });
  609. }
  610. });
  611. },
  612. getDoctorList() {
  613. //联网加载数据
  614. var that = this;
  615. var data = {
  616. isTui:1,
  617. pageNum:1,
  618. pageSize:10,
  619. };
  620. getDoctorList(data).then(res => {
  621. if(res.code==200){
  622. this.doctors=res.data.list;
  623. this.doctors.forEach(function(value,index,array){
  624. value.prices=JSON.parse(value.priceJson)
  625. });
  626. }else{
  627. uni.showToast({
  628. icon:'none',
  629. title: "请求失败",
  630. });
  631. }
  632. });
  633. },
  634. getPackageList() {
  635. //联网加载数据
  636. var that = this;
  637. var data = {
  638. isShow:1,
  639. pageNum:1,
  640. pageSize:10,
  641. };
  642. getPackageList(data).then(res => {
  643. if(res.code==200){
  644. this.packages=res.data.list;
  645. }else{
  646. uni.showToast({
  647. icon:'none',
  648. title: "请求失败",
  649. });
  650. }
  651. });
  652. },
  653. loginNavTo(url){
  654. this.$isLogin().then(
  655. res => {
  656. if(res){
  657. console.log(res)
  658. uni.navigateTo({
  659. url: url
  660. })
  661. }
  662. else{
  663. uni.navigateTo({
  664. url:'/pages/auth/login'
  665. })
  666. }
  667. }
  668. );
  669. },
  670. navTo(url){
  671. if(url=="dev"){
  672. uni.showToast({
  673. icon:'none',
  674. title: "尽情期待...",
  675. });
  676. return;
  677. }
  678. console.log(url)
  679. uni.navigateTo({
  680. url: url
  681. })
  682. },
  683. navToTest() {
  684. const course = {"companyId":100,"companyUserId":6806,"corpId":"ww5a88c4f879f204c5","courseId":63,"link":"1899022782092541952","linkType":3,"qwExternalId":9914983,"qwUserId":"18931","videoId":409}
  685. uni.navigateTo({
  686. url: '/pages_course/video?course='+JSON.stringify(course)
  687. })
  688. }
  689. }
  690. }
  691. </script>
  692. <style scoped lang="scss">
  693. .img-item{
  694. position: relative;
  695. width: 44rpx;
  696. height: 44rpx;
  697. margin: 0 20rpx 0 10rpx;
  698. image{
  699. width: 100%;
  700. height: 100%;
  701. }
  702. }
  703. .qualifications {
  704. &-box {
  705. margin: 24rpx;
  706. padding: 24rpx;
  707. box-sizing: border-box;
  708. overflow: hidden;
  709. background-image: url('https://cos.his.cdwjyyh.com/fs/20250826/54a29c58e06c431cbe3286335bb0da1b.png');
  710. background-repeat: no-repeat;
  711. background-size: 100% 100%;
  712. .text {
  713. font-family: PingFang SC, PingFang SC;
  714. font-weight: 400;
  715. font-size: 20rpx;
  716. color: #FFFFFF;
  717. }
  718. }
  719. &-con {
  720. display: flex;
  721. align-items: flex-start;
  722. }
  723. &-icon {
  724. height: 136rpx;
  725. width: 136rpx
  726. }
  727. &-r {
  728. flex: 1;
  729. font-family: PingFang SC, PingFang SC;
  730. font-weight: 600;
  731. font-size: 40rpx;
  732. color: #FFFFFF;
  733. .desc {
  734. font-family: PingFang SC, PingFang SC;
  735. font-weight: 400;
  736. font-size: 24rpx;
  737. color: #FFFFFF;
  738. image {
  739. height: 48rpx;
  740. width: 48rpx
  741. }
  742. }
  743. }
  744. }
  745. .content{
  746. height: 100%;
  747. .cont{
  748. position: relative;
  749. width: 100%;
  750. display: flex;
  751. flex-direction: column;
  752. .bg{
  753. width: 100%;
  754. height:450rpx;
  755. // background-color: #2583EB;
  756. // background: linear-gradient(#2583EB, #88e2da);
  757. position: fixed;
  758. image{
  759. border-radius: 0rpx 0rpx 50rpx 50rpx;
  760. width: 100%;
  761. height:100%;
  762. }
  763. }
  764. .top-box{
  765. width: 100%;
  766. position: fixed;
  767. top: 0;
  768. left: 0;
  769. z-index: 1001;
  770. .top-title{
  771. height: 88upx;
  772. // line-height: 88upx;
  773. display: flex;
  774. flex-direction: column;
  775. align-items: flex-start;
  776. justify-content: center;
  777. margin-left: 15rpx;
  778. .name{
  779. font-size: 32upx;
  780. font-family: Source Han Sans CN;
  781. font-weight: bold;
  782. color: #fff;
  783. }
  784. .desc-box{
  785. display: flex;
  786. align-items: center;
  787. justify-content: flex-start;
  788. margin-top: 10rpx;
  789. image{
  790. width:24rpx;
  791. height:24rpx;
  792. }
  793. .desc{
  794. margin-left: 5rpx;
  795. font-size: 20upx;
  796. font-family: Source Han Sans CN;
  797. color: #626468;
  798. }
  799. }
  800. }
  801. .search{
  802. box-sizing: border-box;
  803. z-index: 101;
  804. padding: 15rpx;
  805. width: 100%;
  806. display: flex;
  807. align-items: center;
  808. justify-content: center;
  809. .search-box{
  810. flex: 1;
  811. margin-right: 10rpx;
  812. height: 60upx;
  813. line-height: 60upx;
  814. border-radius: 30upx;
  815. background-color: #fff;
  816. padding: 0 30upx;
  817. display: flex;
  818. align-items: center;
  819. transition: all .5s;
  820. .img{
  821. width: 30upx;
  822. height: 30upx;
  823. margin-right: 10upx;
  824. }
  825. input{
  826. flex: 1;
  827. font-size: 24upx;
  828. color: #000;
  829. }
  830. .input-place{
  831. font-size: 24upx;
  832. color: #878787;
  833. }
  834. }
  835. .msg{
  836. position: relative;
  837. width:50rpx;
  838. height:50rpx;
  839. image{
  840. width: 100%;
  841. height:100%;
  842. }
  843. .contact-btn {
  844. top: 0;
  845. position: absolute;
  846. width:100%;
  847. height:100%;
  848. opacity: 0;
  849. }
  850. }
  851. }
  852. }
  853. .box {
  854. background: #FFFFFF;
  855. border-radius: 16rpx 16rpx 16rpx 16rpx;
  856. margin: 24rpx;
  857. box-sizing: border-box;
  858. .title-box{
  859. display: flex;
  860. flex-direction: row;
  861. align-items: center;
  862. justify-content: space-between;
  863. padding: 28rpx 0;
  864. box-sizing: border-box;
  865. .title{
  866. font-size: 32upx;
  867. font-family: PingFang SC;
  868. font-weight: bold;
  869. color: #111111;
  870. }
  871. .more{
  872. display: flex;
  873. align-items: center;
  874. justify-content: flex-end;
  875. .text{
  876. font-size: 24rpx;
  877. font-family: PingFang SC;
  878. color: #9B9B9B;
  879. }
  880. image{
  881. margin-left: 10rpx;
  882. width:15rpx;
  883. height:20rpx;
  884. }
  885. }
  886. }
  887. .price-box {
  888. font-family: Roboto, Roboto;
  889. font-weight: bold;
  890. font-size: 36rpx;
  891. color: #FF5C03;
  892. margin-top: 22rpx;
  893. &-unit {
  894. font-weight: 600;
  895. font-size: 26rpx;
  896. }
  897. &-decimal {
  898. font-weight: 600;
  899. font-size: 26rpx;
  900. }
  901. &-text {
  902. font-family: PingFang SC, PingFang SC;
  903. font-weight: 500;
  904. font-size: 26rpx;
  905. }
  906. }
  907. }
  908. .menu-box {
  909. display: flex;
  910. align-items: center;
  911. justify-content: space-evenly;
  912. padding: 26rpx 0 34rpx 0;
  913. .menu-item {
  914. width: 25%;
  915. font-family: PingFang SC, PingFang SC;
  916. font-weight: 400;
  917. font-size: 24rpx;
  918. color: #222222;
  919. display: flex;
  920. flex-direction: column;
  921. align-items: center;
  922. align-items: center;
  923. }
  924. image {
  925. width: 104rpx;
  926. height: 104rpx;
  927. margin-bottom: 26rpx;
  928. }
  929. }
  930. .pharmacy-box {
  931. padding: 8rpx 24rpx 32rpx 24rpx;
  932. .pharmacy {
  933. background: #FFFFFF;
  934. display: flex;
  935. align-items: center;
  936. flex-wrap: wrap;
  937. margin-right: -18rpx;
  938. image {
  939. flex-shrink: 0;
  940. width: 150rpx;
  941. height: 150rpx;
  942. border-radius: 16rpx 16rpx 16rpx 16rpx;
  943. border: 1rpx solid #F5F6F6;
  944. margin-right: 18rpx;
  945. margin-bottom: 18rpx;
  946. box-sizing: border-box;
  947. }
  948. }
  949. }
  950. .cont-box{
  951. z-index: 100;
  952. .banner{
  953. margin: 20rpx auto auto;
  954. width: 702rpx;
  955. }
  956. .modules{
  957. .module{
  958. .depts{
  959. z-index: 101;
  960. margin: 20rpx 15rpx 0rpx;
  961. padding: 20rpx;
  962. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  963. background-color: #fff;
  964. border-radius: 15rpx;
  965. .title{
  966. font-size: 32upx;
  967. font-family: PingFang SC;
  968. font-weight: bold;
  969. color: #2A2B2E;
  970. }
  971. .dept-box{
  972. margin-top: 15rpx;
  973. display: flex;
  974. align-items: center;
  975. justify-content: flex-start;
  976. flex-wrap:wrap;
  977. .dept{
  978. padding: 15rpx 5rpx;
  979. width:25%;
  980. display: flex;
  981. flex-direction: column;
  982. align-items: center;
  983. justify-content: center;
  984. .icon{
  985. width:58rpx;
  986. height:58rpx;
  987. }
  988. .title{
  989. margin-top: 10rpx;
  990. font-size: 24upx;
  991. font-family: PingFang SC;
  992. font-weight: 500;
  993. color: #111111;
  994. }
  995. }
  996. }
  997. }
  998. .doctor-articles{
  999. z-index: 101;
  1000. margin: 20rpx 15rpx 0rpx;
  1001. padding: 20rpx;
  1002. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  1003. background-color: #fff;
  1004. border-radius: 15rpx;
  1005. .title-box{
  1006. display: flex;
  1007. flex-direction: row;
  1008. align-items: center;
  1009. justify-content: space-between;
  1010. .title{
  1011. font-size: 32upx;
  1012. font-family: PingFang SC;
  1013. font-weight: bold;
  1014. color: #111111;
  1015. }
  1016. .more{
  1017. display: flex;
  1018. align-items: center;
  1019. justify-content: flex-end;
  1020. .text{
  1021. font-size: 24rpx;
  1022. font-family: PingFang SC;
  1023. color: #9B9B9B;
  1024. }
  1025. image{
  1026. margin-left: 10rpx;
  1027. width:15rpx;
  1028. height:20rpx;
  1029. }
  1030. }
  1031. }
  1032. .article-box{
  1033. overflow-x: auto;
  1034. box-sizing: border-box;
  1035. display: flex;
  1036. align-items: center;
  1037. justify-content: flex-start;
  1038. .article{
  1039. width: 300rpx;
  1040. margin-right: 20rpx;
  1041. background: #f9f8fe;
  1042. display: flex;
  1043. flex-direction: column;
  1044. align-items: flex-start;
  1045. justify-content: flex-start;
  1046. &:last-child{
  1047. margin-right: 0rpx;
  1048. }
  1049. .image-box{
  1050. width: 300rpx;
  1051. height:400rpx;
  1052. position: relative;
  1053. border-radius: 20rpx;
  1054. image{
  1055. border-radius: 20rpx;
  1056. width: 300rpx;
  1057. height:400rpx;
  1058. }
  1059. .views{
  1060. position: absolute;
  1061. top:0rpx;
  1062. left:0rpx;
  1063. padding: 5rpx 10rpx;
  1064. background: rgba(0,0,0,0.25);
  1065. border-radius: 12rpx 0px 12rpx 0px;
  1066. opacity: 1;
  1067. font-size: 20rpx;
  1068. font-family: PingFang SC-Bold, PingFang SC;
  1069. font-weight: bold;
  1070. color: #FFFFFF;
  1071. }
  1072. .doctor{
  1073. margin: 10rpx;
  1074. display: flex;
  1075. align-items: center;
  1076. justify-content: flex-start;
  1077. position: absolute;
  1078. bottom:0rpx;
  1079. left:0rpx;
  1080. image{
  1081. border-radius: 50%;
  1082. width: 64rpx;
  1083. height:64rpx;
  1084. }
  1085. .right{
  1086. width: 200rpx;
  1087. margin-left: 10rpx;
  1088. display: flex;
  1089. flex-direction: column;
  1090. align-items: flex-start;
  1091. justify-content: space-between;
  1092. .doc-name{
  1093. width: 200rpx;
  1094. font-size: 30rpx;
  1095. font-weight: bold;
  1096. font-family: PingFang SC;
  1097. color: #fff;
  1098. }
  1099. .doc-position{
  1100. width: 100%;
  1101. font-size: 28rpx;
  1102. font-family: PingFang SC;
  1103. color: #fff;
  1104. font-weight: bold;
  1105. opacity: 0.8;
  1106. }
  1107. }
  1108. }
  1109. }
  1110. .article-title-box{
  1111. width: 100%;
  1112. margin-top: 10rpx;
  1113. display: flex;
  1114. align-items: center;
  1115. justify-content: flex-start;
  1116. .article-title{
  1117. font-size: 30rpx;
  1118. font-weight: bold;
  1119. font-family: PingFang SC;
  1120. color: #2A2B2E;
  1121. }
  1122. }
  1123. }
  1124. }
  1125. }
  1126. .doctors {
  1127. padding: 0 24rpx 24rpx 24rpx;
  1128. }
  1129. .articles{
  1130. padding: 0 24rpx 24rpx 24rpx;
  1131. .article-box{
  1132. display: flex;
  1133. flex-direction: column;
  1134. align-items: flex-start;
  1135. justify-content: flex-start;
  1136. .item{
  1137. width: 100%;
  1138. margin-bottom: 20rpx;
  1139. display: flex;
  1140. align-items: flex-start;
  1141. justify-content: flex-start;
  1142. &:last-child{
  1143. margin-bottom: 0rpx;
  1144. }
  1145. .left{
  1146. flex:1;
  1147. height:160rpx;
  1148. margin-right: 15rpx;
  1149. display: flex;
  1150. flex-direction: column;
  1151. align-items: flex-start;
  1152. justify-content: space-between;
  1153. .title{
  1154. font-size: 28upx;
  1155. font-family: PingFang SC;
  1156. font-weight: bold;
  1157. color: #111111;
  1158. }
  1159. .views{
  1160. font-size: 24upx;
  1161. font-family: PingFang SC;
  1162. color: #9a9a9c;
  1163. }
  1164. }
  1165. .right{
  1166. image{
  1167. width: 180rpx;
  1168. height: 136rpx;
  1169. background: #F5F6F6;
  1170. border-radius: 10rpx 10rpx 10rpx 10rpx;
  1171. }
  1172. }
  1173. }
  1174. }
  1175. }
  1176. .packages{
  1177. z-index: 101;
  1178. margin: 20rpx 15rpx;
  1179. padding: 20rpx;
  1180. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  1181. background-color: #fff;
  1182. border-radius: 15rpx;
  1183. .title-box{
  1184. display: flex;
  1185. flex-direction: row;
  1186. align-items: center;
  1187. justify-content: space-between;
  1188. .title{
  1189. font-size: 32upx;
  1190. font-family: PingFang SC;
  1191. font-weight: bold;
  1192. color: #111111;
  1193. }
  1194. .more{
  1195. display: flex;
  1196. align-items: center;
  1197. justify-content: flex-end;
  1198. .text{
  1199. font-size: 24rpx;
  1200. font-family: PingFang SC;
  1201. color: #9B9B9B;
  1202. }
  1203. image{
  1204. margin-left: 10rpx;
  1205. width:15rpx;
  1206. height:20rpx;
  1207. }
  1208. }
  1209. }
  1210. .package-box{
  1211. padding: 20rpx 0rpx 0rpx;
  1212. display: flex;
  1213. align-items: flex-start;
  1214. justify-content: flex-start;
  1215. flex-wrap: wrap;
  1216. .item{
  1217. width: calc(50% - 20rpx);
  1218. border-radius: 15rpx;
  1219. margin: 10rpx;
  1220. display: flex;
  1221. flex-direction: column;
  1222. align-items: flex-start;
  1223. justify-content: flex-start;
  1224. &:last-child{
  1225. }
  1226. .top{
  1227. width:100%;
  1228. height:300rpx;
  1229. image{
  1230. border-radius: 15rpx 15rpx 0rpx 0rpx;
  1231. width:100%;
  1232. height:300rpx;
  1233. }
  1234. }
  1235. .bottom{
  1236. width: 100%;
  1237. margin-top: 15rpx;
  1238. .title{
  1239. font-weight: bold;
  1240. font-size: 28upx;
  1241. font-family: PingFang SC;
  1242. color: #111111;
  1243. }
  1244. .price-box{
  1245. margin-top: 10rpx;
  1246. display: flex;
  1247. align-items: center;
  1248. justify-content: space-between;
  1249. width: 100%;
  1250. .price{
  1251. padding: 5rpx 10rpx;
  1252. background-color: #2583EB;
  1253. border-radius: 30rpx;
  1254. font-size: 20upx;
  1255. font-family: PingFang SC;
  1256. color: #ffffff;
  1257. }
  1258. .count{
  1259. font-size: 24upx;
  1260. font-family: PingFang SC;
  1261. color: #333333;
  1262. }
  1263. }
  1264. }
  1265. }
  1266. }
  1267. }
  1268. }
  1269. }
  1270. }
  1271. }
  1272. }
  1273. </style>