index.vue 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348
  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.storeId)"></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;">药品交易平台备案:{{qual.ypwljyfwdsfpt}}</view>
  260. <view class="text" style="margin-top: 6rpx;">医疗器械交易平台备案:{{qual.ylqxwljyfwdsfptbah}}</view>
  261. </view>
  262. </view>
  263. <view style="padding-left: 14rpx;">
  264. <text class="text" style="margin-right: 40rpx;">投诉举报邮箱:{{qual.jbyx}}</text>
  265. <text class="text">联系电话:{{qual.baxx}}</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,getCartCount}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. qual: {}
  317. }
  318. },
  319. onLoad() {
  320. this.getDictByKey("sys_hospital_level");
  321. uni.$on('refreshMsgCount', () => {
  322. try{
  323. let totalUnreadCount = uni.$TUIKit.getTotalUnreadMessageCount();
  324. if(totalUnreadCount>0){
  325. try{
  326. uni.setTabBarBadge({ //显示数字
  327. index: 1, //tabbar下标
  328. text: totalUnreadCount+"" //数字
  329. })
  330. }
  331. catch(e){
  332. }
  333. }
  334. else{
  335. try{
  336. uni.hideTabBarRedDot({ //隐藏红点
  337. index: 1 //tabbar下标
  338. })
  339. }
  340. catch(e){
  341. }
  342. }
  343. }catch(e){
  344. }
  345. });
  346. },
  347. onShow() {
  348. this.getDoctorList();
  349. this.getArticleList();
  350. this.getAdvList();
  351. // this.getDepartmentList();
  352. // this.getDoctorArticleList();
  353. // this.getPackageList();
  354. this.getConfigByKey("his.appShow");
  355. this.getQual()
  356. this.getStore()
  357. var that=this;
  358. uni.$emit('refreshMsgCount');
  359. this.$isLogin().then(
  360. res => {
  361. if(res){
  362. this.getCartCount();
  363. }
  364. }
  365. );
  366. },
  367. onPageScroll(e) {
  368. this.top=e.scrollTop;
  369. },
  370. //发送给朋友
  371. onShareAppMessage(res) {
  372. if(this.$isLogin()){
  373. return {
  374. title: "医健宝医药",
  375. path: '/pages/index/index',
  376. imageUrl: 'https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/sharelogo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  377. }
  378. }
  379. },
  380. //分享到朋友圈
  381. onShareTimeline(res) {
  382. if(this.$isLogin()){
  383. return {
  384. title: "医健宝医药",
  385. imageUrl: 'https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/sharelogo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  386. }
  387. }
  388. },
  389. computed: {
  390. bg: function() {
  391. var top=this.top/120;
  392. if(top>0){
  393. this.isTop=true;
  394. this.titleColor="#fff"
  395. this.descColor="#fff"
  396. }
  397. else{
  398. this.isTop=false;
  399. this.titleColor="#fff"
  400. this.descColor="#fff"
  401. }
  402. return 'rgba(37, 131, 235, ' + top + ')';
  403. },
  404. },
  405. methods: {
  406. dev(){
  407. uni.showToast({
  408. icon:"none",
  409. title: '敬请期待'
  410. })
  411. },
  412. getStore() {
  413. validList().then(res=>{
  414. if(res.code==200) {
  415. this.storeIndexList =res.rows
  416. }
  417. })
  418. },
  419. getCartCount(){
  420. let data = {};
  421. getCartCount(data).then(
  422. cartRes => {
  423. if(cartRes.code==200){
  424. this.cartCount=cartRes.data;
  425. }
  426. },
  427. rej => {}
  428. );
  429. },
  430. getQual(){
  431. let param = {key:"his.zzzs"};
  432. getConfigByKey(param).then(
  433. res => {
  434. if(res.code==200){
  435. this.qual = res.data ? JSON.parse(res.data) : {}
  436. }
  437. },
  438. rej => {}
  439. );
  440. },
  441. getConfigByKey(key){
  442. var that=this;
  443. var data={key:key}
  444. getConfigByKey(data).then(
  445. res => {
  446. if(res.code==200){
  447. this.layouts=JSON.parse(res.data);
  448. this.layouts.sort((a, b) => a.sort - b.sort)
  449. this.layouts.forEach(function(element) {
  450. if(element.id=="4"){
  451. if(!element.isShow){
  452. that.yangshengs.splice(6,1);
  453. }
  454. }
  455. if(element.id=="7"){
  456. // if(!element.isShow){
  457. // uni.setTabBarItem({
  458. // index:2, //从左到右 0开始
  459. // visible:false //默认true false隐藏
  460. // })
  461. // }
  462. // else{
  463. // uni.setTabBarItem({
  464. // index:2, //从左到右 0开始
  465. // visible:true //默认true false隐藏
  466. // })
  467. // }
  468. }
  469. });
  470. }
  471. },
  472. rej => {}
  473. );
  474. },
  475. yangshengClick(item){
  476. // uni.navigateTo({
  477. // url: '/pages/index/webview?url=' + encodeURIComponent('rtlive://course?courseId=1')
  478. // });
  479. // return;
  480. if(item.id==0){
  481. // this.$isLogin().then(
  482. // res => {
  483. // if(res){
  484. uni.navigateTo({
  485. url:item.page
  486. });
  487. // }
  488. // else{
  489. // uni.navigateTo({
  490. // url:'/pages/auth/login'
  491. // })
  492. // }
  493. // }
  494. // );
  495. }
  496. else{
  497. if(item.page==""){
  498. uni.showToast({
  499. icon:"none",
  500. title: '暂无更多'
  501. })
  502. return;
  503. }
  504. uni.navigateTo({
  505. url:item.page
  506. })
  507. }
  508. },
  509. switchTab(url){
  510. uni.switchTab({
  511. url:url
  512. })
  513. },
  514. navToMiniProgram(){
  515. uni.navigateToMiniProgram({
  516. // appid 写你要跳转的小程序的 appid
  517. appId: 'wx45cf09091aead547',
  518. // 路径写 src下的路径,假如你跳转的是pages下的页面,就可以写pages/index
  519. path: '/pages/common/launch',
  520. extraData: {
  521. // 'type': 'out'
  522. },
  523. // 这个不写的话会显示开发环境,不能正常跳转,写上就能正常跳转了
  524. envVersion: 'develop',
  525. success(res) {
  526. // 打开成功
  527. // uni.showToast({
  528. // title: '跳转成功'
  529. // })
  530. },
  531. fail(err) {
  532. // 打开失败/取消
  533. // uni.showToast({
  534. // title: '跳转不成功'
  535. // })
  536. }
  537. })
  538. },
  539. getDictByKey(key){
  540. var data={key:key}
  541. getDictByKey(data).then(
  542. res => {
  543. if(res.code==200){
  544. if(key=="sys_hospital_level"){
  545. this.hosLevelOptions=res.data;
  546. }
  547. }
  548. },
  549. err => {
  550. }
  551. );
  552. },
  553. getDoctorArticleList(page) {
  554. //联网加载数据
  555. var that = this;
  556. var data = {
  557. pageNum:1,
  558. pageSize:10,
  559. };
  560. getDoctorArticleList(data).then(res => {
  561. if(res.code==200){
  562. this.doctocArticles=res.data.list;
  563. }else{
  564. }
  565. });
  566. },
  567. getDepartmentList(page) {
  568. //联网加载数据
  569. var that = this;
  570. var data = {
  571. isTui:1
  572. };
  573. getDepartmentList(data).then(res => {
  574. if(res.code==200){
  575. this.depts=res.data;
  576. }
  577. });
  578. },
  579. handleAdvClick(index){
  580. var ad=this.advs[index];
  581. console.log(ad.advUrl);
  582. if(ad.showType==1){
  583. uni.setStorageSync('url',ad.advUrl);
  584. uni.navigateTo({
  585. url:"h5"
  586. })
  587. }
  588. else if(ad.showType==2){
  589. uni.navigateTo({
  590. url:ad.advUrl
  591. })
  592. }
  593. else if(ad.showType==3){
  594. uni.setStorageSync('content',ad.content);
  595. uni.navigateTo({
  596. url:"content"
  597. })
  598. }
  599. },
  600. getAdvList() {
  601. //联网加载数据
  602. var that = this;
  603. var data = {
  604. advType:1
  605. };
  606. getAdvList(data).then(res => {
  607. if(res.code==200){
  608. that.advImgs=[];
  609. that.advs=[];
  610. res.data.forEach(function(element) {
  611. if(element.imageUrl!=null&&element.imageUrl!=""){
  612. that.advs.push(element);
  613. that.advImgs.push(element.imageUrl);
  614. }
  615. });
  616. }else{
  617. uni.showToast({
  618. icon:'none',
  619. title: "请求失败",
  620. });
  621. }
  622. });
  623. },
  624. getArticleList() {
  625. //联网加载数据
  626. var that = this;
  627. var data = {
  628. isTui:1,
  629. pageNum:1,
  630. pageSize:10,
  631. };
  632. getArticleList(data).then(res => {
  633. if(res.code==200){
  634. this.articles=res.data.list;
  635. }else{
  636. uni.showToast({
  637. icon:'none',
  638. title: "请求失败",
  639. });
  640. }
  641. });
  642. },
  643. getDoctorList() {
  644. //联网加载数据
  645. var that = this;
  646. var data = {
  647. isTui:1,
  648. pageNum:1,
  649. pageSize:10,
  650. };
  651. getDoctorList(data).then(res => {
  652. if(res.code==200){
  653. this.doctors=res.data.list;
  654. this.doctors.forEach(function(value,index,array){
  655. value.prices=JSON.parse(value.priceJson)
  656. });
  657. }else{
  658. uni.showToast({
  659. icon:'none',
  660. title: "请求失败",
  661. });
  662. }
  663. });
  664. },
  665. getPackageList() {
  666. //联网加载数据
  667. var that = this;
  668. var data = {
  669. isShow:1,
  670. pageNum:1,
  671. pageSize:10,
  672. };
  673. getPackageList(data).then(res => {
  674. if(res.code==200){
  675. this.packages=res.data.list;
  676. }else{
  677. uni.showToast({
  678. icon:'none',
  679. title: "请求失败",
  680. });
  681. }
  682. });
  683. },
  684. loginNavTo(url){
  685. this.$isLogin().then(
  686. res => {
  687. if(res){
  688. console.log(res)
  689. uni.navigateTo({
  690. url: url
  691. })
  692. }
  693. else{
  694. uni.navigateTo({
  695. url:'/pages/auth/login'
  696. })
  697. }
  698. }
  699. );
  700. },
  701. navTo(url){
  702. if(url=="dev"){
  703. uni.showToast({
  704. icon:'none',
  705. title: "尽情期待...",
  706. });
  707. return;
  708. }
  709. console.log(url)
  710. uni.navigateTo({
  711. url: url
  712. })
  713. },
  714. navToTest() {
  715. const course = {"companyId":100,"companyUserId":6806,"corpId":"ww5a88c4f879f204c5","courseId":63,"link":"1899022782092541952","linkType":3,"qwExternalId":9914983,"qwUserId":"18931","videoId":409}
  716. uni.navigateTo({
  717. url: '/pages_course/video?course='+JSON.stringify(course)
  718. })
  719. }
  720. }
  721. }
  722. </script>
  723. <style scoped lang="scss">
  724. .img-item{
  725. position: relative;
  726. width: 44rpx;
  727. height: 44rpx;
  728. margin: 0 20rpx 0 10rpx;
  729. image{
  730. width: 100%;
  731. height: 100%;
  732. }
  733. }
  734. .qualifications {
  735. &-box {
  736. margin: 24rpx;
  737. padding: 24rpx 16rpx;
  738. box-sizing: border-box;
  739. overflow: hidden;
  740. background-image: url('https://cos.his.cdwjyyh.com/fs/20250826/54a29c58e06c431cbe3286335bb0da1b.png');
  741. background-repeat: no-repeat;
  742. background-size: 100% 100%;
  743. .text {
  744. font-family: PingFang SC, PingFang SC;
  745. font-weight: 400;
  746. font-size: 20rpx;
  747. color: #FFFFFF;
  748. }
  749. }
  750. &-con {
  751. display: flex;
  752. align-items: flex-start;
  753. }
  754. &-icon {
  755. height: 136rpx;
  756. width: 136rpx;
  757. margin-left: -10rpx;
  758. }
  759. &-r {
  760. flex: 1;
  761. font-family: PingFang SC, PingFang SC;
  762. font-weight: 600;
  763. font-size: 40rpx;
  764. color: #FFFFFF;
  765. .desc {
  766. font-family: PingFang SC, PingFang SC;
  767. font-weight: 400;
  768. font-size: 24rpx;
  769. color: #FFFFFF;
  770. image {
  771. height: 48rpx;
  772. width: 48rpx
  773. }
  774. }
  775. }
  776. }
  777. .content{
  778. height: 100%;
  779. .cont{
  780. position: relative;
  781. width: 100%;
  782. display: flex;
  783. flex-direction: column;
  784. .bg{
  785. width: 100%;
  786. height:450rpx;
  787. // background-color: #2583EB;
  788. // background: linear-gradient(#2583EB, #88e2da);
  789. position: fixed;
  790. image{
  791. border-radius: 0rpx 0rpx 50rpx 50rpx;
  792. width: 100%;
  793. height:100%;
  794. }
  795. }
  796. .top-box{
  797. width: 100%;
  798. position: fixed;
  799. top: 0;
  800. left: 0;
  801. z-index: 1001;
  802. .top-title{
  803. height: 88upx;
  804. // line-height: 88upx;
  805. display: flex;
  806. flex-direction: column;
  807. align-items: flex-start;
  808. justify-content: center;
  809. margin-left: 15rpx;
  810. .name{
  811. font-size: 32upx;
  812. font-family: Source Han Sans CN;
  813. font-weight: bold;
  814. color: #fff;
  815. }
  816. .desc-box{
  817. display: flex;
  818. align-items: center;
  819. justify-content: flex-start;
  820. margin-top: 10rpx;
  821. image{
  822. width:24rpx;
  823. height:24rpx;
  824. }
  825. .desc{
  826. margin-left: 5rpx;
  827. font-size: 20upx;
  828. font-family: Source Han Sans CN;
  829. color: #626468;
  830. }
  831. }
  832. }
  833. .search{
  834. box-sizing: border-box;
  835. z-index: 101;
  836. padding: 15rpx;
  837. width: 100%;
  838. display: flex;
  839. align-items: center;
  840. justify-content: center;
  841. .search-box{
  842. flex: 1;
  843. margin-right: 10rpx;
  844. height: 60upx;
  845. line-height: 60upx;
  846. border-radius: 30upx;
  847. background-color: #fff;
  848. padding: 0 30upx;
  849. display: flex;
  850. align-items: center;
  851. transition: all .5s;
  852. .img{
  853. width: 30upx;
  854. height: 30upx;
  855. margin-right: 10upx;
  856. }
  857. input{
  858. flex: 1;
  859. font-size: 24upx;
  860. color: #000;
  861. }
  862. .input-place{
  863. font-size: 24upx;
  864. color: #878787;
  865. }
  866. }
  867. .msg{
  868. position: relative;
  869. width:50rpx;
  870. height:50rpx;
  871. image{
  872. width: 100%;
  873. height:100%;
  874. }
  875. .contact-btn {
  876. top: 0;
  877. position: absolute;
  878. width:100%;
  879. height:100%;
  880. opacity: 0;
  881. }
  882. }
  883. }
  884. }
  885. .box {
  886. background: #FFFFFF;
  887. border-radius: 16rpx 16rpx 16rpx 16rpx;
  888. margin: 24rpx;
  889. box-sizing: border-box;
  890. .title-box{
  891. display: flex;
  892. flex-direction: row;
  893. align-items: center;
  894. justify-content: space-between;
  895. padding: 28rpx 0;
  896. box-sizing: border-box;
  897. .title{
  898. font-size: 32upx;
  899. font-family: PingFang SC;
  900. font-weight: bold;
  901. color: #111111;
  902. }
  903. .more{
  904. display: flex;
  905. align-items: center;
  906. justify-content: flex-end;
  907. .text{
  908. font-size: 24rpx;
  909. font-family: PingFang SC;
  910. color: #9B9B9B;
  911. }
  912. image{
  913. margin-left: 10rpx;
  914. width:15rpx;
  915. height:20rpx;
  916. }
  917. }
  918. }
  919. .price-box {
  920. font-family: Roboto, Roboto;
  921. font-weight: bold;
  922. font-size: 36rpx;
  923. color: #FF5C03;
  924. margin-top: 22rpx;
  925. &-unit {
  926. font-weight: 600;
  927. font-size: 26rpx;
  928. }
  929. &-decimal {
  930. font-weight: 600;
  931. font-size: 26rpx;
  932. }
  933. &-text {
  934. font-family: PingFang SC, PingFang SC;
  935. font-weight: 500;
  936. font-size: 26rpx;
  937. }
  938. }
  939. }
  940. .menu-box {
  941. display: flex;
  942. align-items: center;
  943. justify-content: space-evenly;
  944. padding: 26rpx 0 34rpx 0;
  945. .menu-item {
  946. width: 25%;
  947. font-family: PingFang SC, PingFang SC;
  948. font-weight: 400;
  949. font-size: 24rpx;
  950. color: #222222;
  951. display: flex;
  952. flex-direction: column;
  953. align-items: center;
  954. align-items: center;
  955. }
  956. image {
  957. width: 104rpx;
  958. height: 104rpx;
  959. margin-bottom: 26rpx;
  960. }
  961. }
  962. .pharmacy-box {
  963. padding: 8rpx 24rpx 32rpx 24rpx;
  964. .pharmacy {
  965. background: #FFFFFF;
  966. display: flex;
  967. align-items: center;
  968. flex-wrap: wrap;
  969. margin-right: -18rpx;
  970. image {
  971. flex-shrink: 0;
  972. width: 150rpx;
  973. height: 150rpx;
  974. border-radius: 16rpx 16rpx 16rpx 16rpx;
  975. border: 1rpx solid #F5F6F6;
  976. margin-right: 18rpx;
  977. margin-bottom: 18rpx;
  978. box-sizing: border-box;
  979. }
  980. }
  981. }
  982. .cont-box{
  983. z-index: 100;
  984. .banner{
  985. margin: 20rpx auto auto;
  986. width: 702rpx;
  987. }
  988. .modules{
  989. .module{
  990. .depts{
  991. z-index: 101;
  992. margin: 20rpx 15rpx 0rpx;
  993. padding: 20rpx;
  994. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  995. background-color: #fff;
  996. border-radius: 15rpx;
  997. .title{
  998. font-size: 32upx;
  999. font-family: PingFang SC;
  1000. font-weight: bold;
  1001. color: #2A2B2E;
  1002. }
  1003. .dept-box{
  1004. margin-top: 15rpx;
  1005. display: flex;
  1006. align-items: center;
  1007. justify-content: flex-start;
  1008. flex-wrap:wrap;
  1009. .dept{
  1010. padding: 15rpx 5rpx;
  1011. width:25%;
  1012. display: flex;
  1013. flex-direction: column;
  1014. align-items: center;
  1015. justify-content: center;
  1016. .icon{
  1017. width:58rpx;
  1018. height:58rpx;
  1019. }
  1020. .title{
  1021. margin-top: 10rpx;
  1022. font-size: 24upx;
  1023. font-family: PingFang SC;
  1024. font-weight: 500;
  1025. color: #111111;
  1026. }
  1027. }
  1028. }
  1029. }
  1030. .doctor-articles{
  1031. z-index: 101;
  1032. margin: 20rpx 15rpx 0rpx;
  1033. padding: 20rpx;
  1034. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  1035. background-color: #fff;
  1036. border-radius: 15rpx;
  1037. .title-box{
  1038. display: flex;
  1039. flex-direction: row;
  1040. align-items: center;
  1041. justify-content: space-between;
  1042. .title{
  1043. font-size: 32upx;
  1044. font-family: PingFang SC;
  1045. font-weight: bold;
  1046. color: #111111;
  1047. }
  1048. .more{
  1049. display: flex;
  1050. align-items: center;
  1051. justify-content: flex-end;
  1052. .text{
  1053. font-size: 24rpx;
  1054. font-family: PingFang SC;
  1055. color: #9B9B9B;
  1056. }
  1057. image{
  1058. margin-left: 10rpx;
  1059. width:15rpx;
  1060. height:20rpx;
  1061. }
  1062. }
  1063. }
  1064. .article-box{
  1065. overflow-x: auto;
  1066. box-sizing: border-box;
  1067. display: flex;
  1068. align-items: center;
  1069. justify-content: flex-start;
  1070. .article{
  1071. width: 300rpx;
  1072. margin-right: 20rpx;
  1073. background: #f9f8fe;
  1074. display: flex;
  1075. flex-direction: column;
  1076. align-items: flex-start;
  1077. justify-content: flex-start;
  1078. &:last-child{
  1079. margin-right: 0rpx;
  1080. }
  1081. .image-box{
  1082. width: 300rpx;
  1083. height:400rpx;
  1084. position: relative;
  1085. border-radius: 20rpx;
  1086. image{
  1087. border-radius: 20rpx;
  1088. width: 300rpx;
  1089. height:400rpx;
  1090. }
  1091. .views{
  1092. position: absolute;
  1093. top:0rpx;
  1094. left:0rpx;
  1095. padding: 5rpx 10rpx;
  1096. background: rgba(0,0,0,0.25);
  1097. border-radius: 12rpx 0px 12rpx 0px;
  1098. opacity: 1;
  1099. font-size: 20rpx;
  1100. font-family: PingFang SC-Bold, PingFang SC;
  1101. font-weight: bold;
  1102. color: #FFFFFF;
  1103. }
  1104. .doctor{
  1105. margin: 10rpx;
  1106. display: flex;
  1107. align-items: center;
  1108. justify-content: flex-start;
  1109. position: absolute;
  1110. bottom:0rpx;
  1111. left:0rpx;
  1112. image{
  1113. border-radius: 50%;
  1114. width: 64rpx;
  1115. height:64rpx;
  1116. }
  1117. .right{
  1118. width: 200rpx;
  1119. margin-left: 10rpx;
  1120. display: flex;
  1121. flex-direction: column;
  1122. align-items: flex-start;
  1123. justify-content: space-between;
  1124. .doc-name{
  1125. width: 200rpx;
  1126. font-size: 30rpx;
  1127. font-weight: bold;
  1128. font-family: PingFang SC;
  1129. color: #fff;
  1130. }
  1131. .doc-position{
  1132. width: 100%;
  1133. font-size: 28rpx;
  1134. font-family: PingFang SC;
  1135. color: #fff;
  1136. font-weight: bold;
  1137. opacity: 0.8;
  1138. }
  1139. }
  1140. }
  1141. }
  1142. .article-title-box{
  1143. width: 100%;
  1144. margin-top: 10rpx;
  1145. display: flex;
  1146. align-items: center;
  1147. justify-content: flex-start;
  1148. .article-title{
  1149. font-size: 30rpx;
  1150. font-weight: bold;
  1151. font-family: PingFang SC;
  1152. color: #2A2B2E;
  1153. }
  1154. }
  1155. }
  1156. }
  1157. }
  1158. .doctors {
  1159. padding: 0 24rpx 24rpx 24rpx;
  1160. }
  1161. .articles{
  1162. padding: 0 24rpx 24rpx 24rpx;
  1163. .article-box{
  1164. display: flex;
  1165. flex-direction: column;
  1166. align-items: flex-start;
  1167. justify-content: flex-start;
  1168. .item{
  1169. width: 100%;
  1170. margin-bottom: 20rpx;
  1171. display: flex;
  1172. align-items: flex-start;
  1173. justify-content: flex-start;
  1174. &:last-child{
  1175. margin-bottom: 0rpx;
  1176. }
  1177. .left{
  1178. flex:1;
  1179. height:160rpx;
  1180. margin-right: 15rpx;
  1181. display: flex;
  1182. flex-direction: column;
  1183. align-items: flex-start;
  1184. justify-content: space-between;
  1185. .title{
  1186. font-size: 28upx;
  1187. font-family: PingFang SC;
  1188. font-weight: bold;
  1189. color: #111111;
  1190. }
  1191. .views{
  1192. font-size: 24upx;
  1193. font-family: PingFang SC;
  1194. color: #9a9a9c;
  1195. }
  1196. }
  1197. .right{
  1198. image{
  1199. width: 180rpx;
  1200. height: 136rpx;
  1201. background: #F5F6F6;
  1202. border-radius: 10rpx 10rpx 10rpx 10rpx;
  1203. }
  1204. }
  1205. }
  1206. }
  1207. }
  1208. .packages{
  1209. z-index: 101;
  1210. margin: 20rpx 15rpx;
  1211. padding: 20rpx;
  1212. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  1213. background-color: #fff;
  1214. border-radius: 15rpx;
  1215. .title-box{
  1216. display: flex;
  1217. flex-direction: row;
  1218. align-items: center;
  1219. justify-content: space-between;
  1220. .title{
  1221. font-size: 32upx;
  1222. font-family: PingFang SC;
  1223. font-weight: bold;
  1224. color: #111111;
  1225. }
  1226. .more{
  1227. display: flex;
  1228. align-items: center;
  1229. justify-content: flex-end;
  1230. .text{
  1231. font-size: 24rpx;
  1232. font-family: PingFang SC;
  1233. color: #9B9B9B;
  1234. }
  1235. image{
  1236. margin-left: 10rpx;
  1237. width:15rpx;
  1238. height:20rpx;
  1239. }
  1240. }
  1241. }
  1242. .package-box{
  1243. padding: 20rpx 0rpx 0rpx;
  1244. display: flex;
  1245. align-items: flex-start;
  1246. justify-content: flex-start;
  1247. flex-wrap: wrap;
  1248. .item{
  1249. width: calc(50% - 20rpx);
  1250. border-radius: 15rpx;
  1251. margin: 10rpx;
  1252. display: flex;
  1253. flex-direction: column;
  1254. align-items: flex-start;
  1255. justify-content: flex-start;
  1256. &:last-child{
  1257. }
  1258. .top{
  1259. width:100%;
  1260. height:300rpx;
  1261. image{
  1262. border-radius: 15rpx 15rpx 0rpx 0rpx;
  1263. width:100%;
  1264. height:300rpx;
  1265. }
  1266. }
  1267. .bottom{
  1268. width: 100%;
  1269. margin-top: 15rpx;
  1270. .title{
  1271. font-weight: bold;
  1272. font-size: 28upx;
  1273. font-family: PingFang SC;
  1274. color: #111111;
  1275. }
  1276. .price-box{
  1277. margin-top: 10rpx;
  1278. display: flex;
  1279. align-items: center;
  1280. justify-content: space-between;
  1281. width: 100%;
  1282. .price{
  1283. padding: 5rpx 10rpx;
  1284. background-color: #2583EB;
  1285. border-radius: 30rpx;
  1286. font-size: 20upx;
  1287. font-family: PingFang SC;
  1288. color: #ffffff;
  1289. }
  1290. .count{
  1291. font-size: 24upx;
  1292. font-family: PingFang SC;
  1293. color: #333333;
  1294. }
  1295. }
  1296. }
  1297. }
  1298. }
  1299. }
  1300. }
  1301. }
  1302. }
  1303. }
  1304. }
  1305. </style>