index.vue 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467
  1. <template>
  2. <view class="content">
  3. <!-- 背景图片 -->
  4. <image class="bg" src="../../static/images/home_top_bg.png" mode="widthFix"></image>
  5. <view>
  6. <view class="top-inner">
  7. <view class="fixed-top-box" :style="{ background: bgColor }">
  8. <!-- 这里是状态栏 -->
  9. <view class="status_bar" :style="{height: statusBarHeight}"></view>
  10. <view class="top-title">
  11. <view class="name">壹柒玖康养集团</view>
  12. <!-- <view class="dot">•</view><view class="sub-name">七彩互联网医院</view> -->
  13. </view>
  14. <!-- 搜索框、购物车、客服 -->
  15. <view class="func-cont" >
  16. <view class="search-cont">
  17. <image class="icon-search" src="../../static/images/search.png" mode=""></image>
  18. <input type="text" disabled value="" placeholder="搜索商品、症状、功能主治" placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;" @click="toSearch" />
  19. </view>
  20. <!-- 购物车 -->
  21. <uni-badge size="small" :text="cartCount" absolute="rightTop" type="error">
  22. <view class="img-item" @click="goAuthUrl('../shopping/cart')">
  23. <image src="../../static/images/cart_wihte.png" mode=""></image>
  24. </view>
  25. </uni-badge>
  26. <view class="img-item" style="position: relative;">
  27. <image src="../../static/images/customer.png" mode=""></image>
  28. <button class="contact-btn" open-type="contact"></button>
  29. </view>
  30. </view>
  31. <!-- <view class="tips">
  32. <view class="left"></view>
  33. <view class="right" @click="navTo('./cert')">资质证明</view>
  34. </view> -->
  35. </view>
  36. </view>
  37. <!-- 头部间距 -->
  38. <view style="padding-bottom:220rpx" >
  39. <view class="status_bar" :style="{height: statusBarHeight}"></view>
  40. </view>
  41. <!-- 轮播图 -->
  42. <view class="banner-box" >
  43. <view class="inner">
  44. <swiper
  45. class="swiper"
  46. :indicator-dots="true"
  47. :circular="true"
  48. :autoplay="true"
  49. :interval="3000"
  50. :duration="1000"
  51. indicator-color="rgba(255, 255, 255, 0.6)"
  52. indicator-active-color="#ffffff">
  53. <swiper-item class="swiper-item" v-for="(item,index) in advList" :key="index" @click="handleAdvClick(item)">
  54. <image :src="item.imageUrl" mode=""></image>
  55. </swiper-item>
  56. </swiper>
  57. </view>
  58. </view>
  59. <!-- 菜单 -->
  60. <view class="menu-content" >
  61. <view class="menu-box">
  62. <Menu :list="menus" @menuClick="menuClick" v-if="menus.length>0" style="width:100%;"></Menu>
  63. </view>
  64. </view>
  65. </view>
  66. <!-- 在线问诊、处方查询 -->
  67. <view class="online-inquiry">
  68. <view class="item" @click="navTo('/pages/doctor/doctorQr')">
  69. <image class="bg-img" src="../../static/images/online_treat.png" mode="aspectFill"></image>
  70. <view class="inner">
  71. <text class="title">健康<text class="color-pink">咨询</text></text>
  72. <text class="sub-title">三师在线服务</text>
  73. </view>
  74. </view>
  75. <view class="item" @click="goAuthUrl('/pages_user/user/prescribeOrder')">
  76. <image class="bg-img" src="../../static/images/chu_query.png" mode="aspectFill"></image>
  77. <view class="inner">
  78. <text class="title">健康<text class="color-yellow">专管</text></text>
  79. <text class="sub-title">糖尿病/体重</text>
  80. </view>
  81. </view>
  82. </view>
  83. <view class="modules">
  84. <view class="module">
  85. <!--养生有道-->
  86. <view class="depts">
  87. <view class="title">养生有道</view>
  88. <view class="dept-box">
  89. <view @click="yangshengClick(item)" class="dept" :key="index" v-for="(item,index) in yangshengs" >
  90. <image class="icon" :src="item.icon"></image>
  91. <view class="title" >{{item.title}} </view>
  92. </view>
  93. </view>
  94. </view>
  95. <view class="doctor-articles" >
  96. <view class="title-box">
  97. <view class="title">养生讲堂</view>
  98. <view class="more" @click="navTo('/pages_index/index/doctorArticleList')" >
  99. <view class="text">更多</view>
  100. <image src="/static/images/arrow_gray.png"></image>
  101. </view>
  102. </view>
  103. <scroll-view :scroll-x="true" style="white-space: nowrap;">
  104. <view class="article-box" >
  105. <view class="article" @click="navTo('/pages_index/index/doctorArticleDetails?articleId='+item.articleId)" v-for="(item,index) in doctocArticles" :key="index">
  106. <view class="image-box">
  107. <image mode="aspectFill" :src="item.imageUrl"></image>
  108. <view class="views">
  109. {{item.views}}人观看
  110. </view>
  111. <view class="doctor">
  112. <image mode="aspectFill" :src="item.avatar"></image>
  113. <!-- <view class="right">
  114. <view class="doc-name ellipsis">{{item.doctorName}}</view>
  115. <view class="doc-position ellipsis">{{item.position}}</view>
  116. </view> -->
  117. </view>
  118. </view>
  119. <view class="article-title-box">
  120. <view class="article-title ellipsis">{{item.title}}</view>
  121. </view>
  122. </view>
  123. </view>
  124. </scroll-view>
  125. </view>
  126. <!--养生干货-->
  127. <view class="articles">
  128. <view class="title-box">
  129. <view class="title">养生干货</view>
  130. <view class="more" @click="navTo('/pages_index/index/articleList')">
  131. <view class="text">更多</view>
  132. <image src="../../static/images/arrow_gray.png"></image>
  133. </view>
  134. </view>
  135. <view class="article-box" v-if="articles.length>0">
  136. <view class="item" :key="index" @click="navTo('/pages_index/index/articleDetails?articleId='+item.articleId)" v-for="(item,index) in articles">
  137. <view class="left">
  138. <view class="title">
  139. {{item.title}}
  140. </view>
  141. <view class="views">
  142. 浏览量 {{item.views}}
  143. </view>
  144. </view>
  145. <view class="right">
  146. <image :src="item.imageUrl"></image>
  147. </view>
  148. </view>
  149. </view>
  150. </view>
  151. </view>
  152. </view>
  153. <view class="index-cont">
  154. <!-- 医生团队 -->
  155. <!-- <view class="pub-item">
  156. <view class="pub-title-box">
  157. <text class="left">医生团队</text>
  158. <view class="right" @click="navTo('/pages_doctor/doctorList')">
  159. <text class="text">全部医生</text>
  160. <image src="../../static/images/arrow_gray.png" mode=""></image>
  161. </view>
  162. </view>
  163. <view class="doc-cont">
  164. <view class="inner">
  165. <view class="item" v-for="(item,index) in doctorList" :key="index" @click="shopDoctor(item)">
  166. <view class="head-box">
  167. <image :src="item.headImg" mode="aspectFill"></image>
  168. </view>
  169. <text class="name ellipsis">{{ item.doctorName }}</text>
  170. <text class="position ellipsis">
  171. {{utils.getDictLabelName("doctorPosition",item.position)}}
  172. </text>
  173. </view>
  174. </view>
  175. </view>
  176. </view> -->
  177. <!-- <view class="pub-item">
  178. <view class="tabs">
  179. <view class="tab" @click="docTabChange(1)">
  180. <image v-if="docTab==1" class="img" src="../../static/images/tab1.png" mode=""></image>
  181. <view class="inner">
  182. <text :class="docTab == 1?'title active':'title'" >推荐医生</text>
  183. </view>
  184. </view>
  185. <view class="tab" @click="docTabChange(2)">
  186. <image v-if="docTab==2" class="img" src="../../static/images/tab2.png" mode=""></image>
  187. <view class="inner">
  188. <text :class="docTab == 2?'title active':'title'" >推荐药师</text>
  189. </view>
  190. </view>
  191. <view class="tab" @click="docTabChange(3)">
  192. <image v-if="docTab==3" class="img" src="../../static/images/tab3.png" mode=""></image>
  193. <view class="inner">
  194. <text :class="docTab == 3?'title active':'title'" >推荐营养师</text>
  195. </view>
  196. </view>
  197. </view>
  198. <view class="doc-tab-box">
  199. <view class="tab-inner" >
  200. <view
  201. v-for="(item,index) in depts"
  202. :key="index"
  203. :class="item.departmentId == deptId?'item active':'item'"
  204. @click="deptChange(item)"
  205. >
  206. <view class="text">
  207. {{ item.departmentName }}
  208. <image v-show="item.departmentId == deptId" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
  209. </view>
  210. </view>
  211. </view>
  212. <image class="right-mask" src="../../static/images/mask.png" mode=""></image>
  213. </view>
  214. <view class="doc-list">
  215. <view class="item" v-for="(item,index) in doctorList" :key="index" @click="shopDoctor(item)"> -->
  216. <!-- 头像 -->
  217. <!-- <view class="head-box">
  218. <image :src="item.headImg" mode="aspectFill"></image>
  219. </view> -->
  220. <!-- 详细信息 -->
  221. <!-- <view class="info"> -->
  222. <!-- 姓名等 -->
  223. <!-- <view class="top">
  224. <text class="name">{{ item.doctorName }}</text>
  225. <view class="line"></view>
  226. <text class="other">{{utils.getDictLabelName("doctorPosition",item.position)}}</text>
  227. <view class="line"></view>
  228. <text class="other">{{ item.departmentName }}</text>
  229. </view> -->
  230. <!-- 单位 -->
  231. <!-- <view class="unit-box"> -->
  232. <!-- <view class="level">三甲</view> -->
  233. <!-- <view class="name">{{ item.hospitalName }}</view>
  234. </view> -->
  235. <!-- 擅长 -->
  236. <!-- <view class="expertise ellipsis2">
  237. 擅长:{{ item.doctorDesc }}
  238. </view> -->
  239. <!-- 评分 -->
  240. <!-- <view class="rate-box">
  241. <view class="star">
  242. <image src="../../static/images/star.png" mode=""></image>
  243. <text>{{ item.pings }}</text>
  244. </view>
  245. <view class="line"></view>
  246. <view class="num-box">
  247. <text class="label">接诊数</text>
  248. <text class="num">{{ item.orders }}</text>
  249. </view>
  250. <view class="line"></view>
  251. <view class="num-box">
  252. <text class="label">响应速度</text>
  253. <text class="num">{{ item.speed }}分钟</text>
  254. </view>
  255. </view> -->
  256. <!-- 价格 -->
  257. <!-- <view class="price-box">
  258. <view class="btn-item" v-for="(subitme) in item.price">
  259. <text class="label" >{{subitme.priceType==1?'图文':'语音'}}</text>
  260. <text class="num">¥{{subitme.price.toFixed(2)}}</text>
  261. </view>
  262. </view>
  263. </view>
  264. </view>
  265. <view class="bottom-title" @click="navTo('/pages_doctor/doctorList?doctorType='+docTab)">
  266. <text >{{allDoctorTitle}}</text>
  267. <image src="../../static/images/arrow3.png" mode=""></image>
  268. </view>
  269. </view>
  270. -->
  271. <!-- <view class="doc-cont">
  272. <view class="inner">
  273. <view class="item" v-for="(item,index) in doctorList" :key="index" @click="shopDoctor(item)">
  274. <view class="head-box">
  275. <image :src="item.headImg" mode="aspectFill"></image>
  276. </view>
  277. <text class="name ellipsis">{{ item.doctorName }}</text>
  278. <text class="position ellipsis">
  279. {{utils.getDictLabelName("doctorPosition",item.position)}}
  280. </text>
  281. </view>
  282. </view>
  283. </view> -->
  284. <!-- </view> -->
  285. <!-- 问诊案例 -->
  286. <!-- <view class="pub-item">
  287. <view class="pub-title-box">
  288. <text class="left">问诊案例</text>
  289. <view class="right" @click="viewAll('doctorCase')">
  290. <text class="text">全部案例</text>
  291. <image src="../../static/images/arrow_gray.png" mode=""></image>
  292. </view>
  293. </view>
  294. <view class="inner">
  295. <view class="pub-tab-box">
  296. <view class="tab-inner">
  297. <view
  298. v-for="(item,index) in orderTypes"
  299. :key="index"
  300. :class="item.id == orderType?'item cases active':'item cases'"
  301. @click="orderTypeChange(item)"
  302. >
  303. <view class="text">
  304. {{ item.name }}
  305. <image v-show="item.id == orderType" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
  306. </view>
  307. </view>
  308. </view>
  309. <image class="right-mask" src="../../static/images/mask.png" mode=""></image>
  310. </view>
  311. <view class="cases-list">
  312. <view class="item" v-for="(item,index) in doctorOrderList" :key="index">
  313. <view class="dec-text ellipsis2">{{item.title}}</view>
  314. <view class="images-box" v-if="item.imgs!=null" >
  315. <view class="img-item" v-for="(subitem,j) in utils.photosToArr(item.imgs)" @click="showImg(item.imgs)" :key="j">
  316. <image :src="subitem" mode="aspectFill" ></image>
  317. </view>
  318. </view>
  319. <view class="doc-info">
  320. <view class="head">
  321. <image :src="item.doctorHeadImg" mode="aspectFill"></image>
  322. </view>
  323. <view class="name">{{item.doctorName}}</view>
  324. <view class="line"></view>
  325. <view class="posit">
  326. {{utils.getDictLabelName("doctorPosition",item.doctorPosition)}}
  327. </view>
  328. <view class="line"></view>
  329. <view class="address">{{item.hospitalName}}</view>
  330. </view>
  331. <view class="answer-box">
  332. <text class="text-inner" v-if="item.orderType == '1' ">{{item.replyContent}}</text>
  333. <view class="voice-inner" v-if="item.orderType == '2'">
  334. <free-audio
  335. startPic='/static/images/play.png'
  336. endPic='/static/images/pause.png'
  337. activeColor="#0bb3f2"
  338. :audioId="'audio'+index"
  339. :url='item.replyAudioUrl'
  340. ></free-audio>
  341. </view>
  342. </view>
  343. <view class="read-box">
  344. <image src="../../static/images/eye.png" mode=""></image>
  345. <text class="text">{{item.views}}人看过</text>
  346. </view>
  347. </view>
  348. </view>
  349. </view>
  350. </view> -->
  351. <!-- 热门榜单 -->
  352. <NewProduct :detail="newProductList" />
  353. <HotProduct :detail="hotProductList" />
  354. <!-- 健康百科 -->
  355. <view class="pub-item" style="margin-top: 20rpx;">
  356. <view class="pub-title-box">
  357. <text class="left">健康百科</text>
  358. <view class="right" @click="switchTo('../healthy/index')">
  359. <text class="text">更多</text>
  360. <image src="../../static/images/arrow_gray.png" mode=""></image>
  361. </view>
  362. </view>
  363. <view class="inner">
  364. <view class="pub-tab-box">
  365. <view class="tab-inner">
  366. <view
  367. v-for="(item,index) in articleCateList"
  368. :key="index"
  369. :class="item.cateId == cateId?'item active':'item'"
  370. @click="articleCateChange(item)">
  371. <view class="text">
  372. {{ item.cateName }}
  373. <image v-show="item.cateId == cateId" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
  374. </view>
  375. </view>
  376. </view>
  377. <image class="right-mask" src="../../static/images/mask.png" mode=""></image>
  378. </view>
  379. <view class="know-list">
  380. <view class="item" v-for="(item,index) in articleList" :key="index" @click="showArticle(item)">
  381. <view class="left">
  382. <view class="title ellipsis2">{{ item.title }}</view>
  383. <view class="info-box">
  384. <view class="readers">
  385. <view class="head-box" v-if="item.viewsList!=null&&item.viewsList.length>0">
  386. <view class="head" v-for="(subitem,j) in item.viewsList" :key="j" v-if="subitem!=null" >
  387. <image :src="subitem.avatar==null?'/static/images/detault_head.jpg':subitem.avatar" mode=""></image>
  388. </view>
  389. </view>
  390. <view class="readings">
  391. <image class="eye" src="../../static/images/eye.png" mode=""></image>
  392. <text class="num">{{item.views}}</text>
  393. </view>
  394. </view>
  395. <view class="time">{{item.publishTime}}</view>
  396. </view>
  397. </view>
  398. <view class="right">
  399. <image :src="item.imageUrl" mode="aspectFill"></image>
  400. </view>
  401. </view>
  402. </view>
  403. </view>
  404. </view>
  405. <!-- 精选药品 -->
  406. <TuiProduct ref="tuiProduct" />
  407. <!-- <view class="feat-title">
  408. <image src="../../static/images/tui.png" mode=""></image>
  409. <text>精选药品</text>
  410. </view>
  411. <view class="drug-list">
  412. <view class="item" v-for="(item,index) in tuiProductList" :key="index" @click="showProduct(item)">
  413. <view class="img-box">
  414. <image :src="item.image" mode="aspectFit"></image>
  415. </view>
  416. <view class="info-box">
  417. <view class="title ellipsis2">{{ item.productName }}</view>
  418. <view class="price-box">
  419. <view class="now">
  420. <text class="unit">¥</text>
  421. <text class="num">{{item.price.toFixed(2)}}</text>
  422. </view>
  423. <view class="old">¥{{item.otPrice.toFixed(2)}}</view>
  424. </view>
  425. </view>
  426. </view>
  427. </view> -->
  428. </view>
  429. <!-- 限时消息 -->
  430. <!-- <view class="message-box" >
  431. <view class="left">
  432. <image src="../../static/images/close24.png" mode="" @click="closeMsg"></image>
  433. <view class="text ellipsis">关注公众号了解更新</view>
  434. </view>
  435. <view class="btn">查看</view>
  436. </view> -->
  437. <!-- #ifdef MP-WEIXIN -->
  438. <view class="official-account" >
  439. <official-account @load="bindload" @error="binderror"></official-account>
  440. </view>
  441. <!-- #endif -->
  442. <view class="popup-box" v-if="activityShow">
  443. <view class="info-mask" @tap="closeActivity()" ></view>
  444. <view class="info-form" >
  445. <image :src="activity.logoUrl" @tap="showActivity()" />
  446. </view>
  447. </view>
  448. <z-modal :show="tuiModalControl" placeholderText="请输入邀请码" :btnGroup="btnGroup" :contentType="2" titleText="填写邀请码" @cancle="cancleTui" @sure="submitTui" ></z-modal>
  449. </view>
  450. </template>
  451. <script>
  452. import zModal from '@/components/z-modal/z-modal.vue'
  453. import {getStoreActivity} from '@/api/activity.js'
  454. import {getDepartmentList} from '@/api/doctorOrder.js'
  455. import {getMenu,getCanvas,getIndexData,getTuiDoctor,getTuiArticle,getTuiDoctorOrder,getCartCount} from '@/api/index'
  456. import {getDoctorArticleList} from '@/api/doctorArticle.js'
  457. import {getArticleList} from '@/api/article.js'
  458. import {getStoreConfig} from '@/api/common'
  459. import tabBg from "@/static/images/tab_bg.png"
  460. import freeAudio from '@/components/chengpeng-audio/free-audio.vue'
  461. import Menu from '@/components/Menu.vue'
  462. import HotProduct from './components/HotProduct.vue'
  463. import NewProduct from './components/NewProduct.vue'
  464. import TuiProduct from '@/components/tuiProduct.vue'
  465. import {getUserInfo,bindPromoter} from '@/api/user'
  466. export default {
  467. components: {zModal,freeAudio,Menu,HotProduct,NewProduct,TuiProduct},
  468. data() {
  469. return {
  470. btnGroup: [{
  471. text: '取消',
  472. color: '#FFFFFF',
  473. bgColor: '#999999',
  474. width: '150rpx',
  475. height: '80rpx',
  476. shape: 'fillet',
  477. eventName: 'cancle'
  478. },{
  479. text: '确定',
  480. color: '#FFFFFF',
  481. bgColor: '#0bb3f2',
  482. width: '150rpx',
  483. height: '80rpx',
  484. shape: 'fillet',
  485. eventName: 'sure'
  486. }],
  487. tuiModalControl:false,
  488. activity:null,
  489. activityShow:false,
  490. newProductList: [],
  491. hotProductList: [],
  492. tuiProductList:[],
  493. menus:[],
  494. canvas:[],
  495. allDoctorTitle:"全部医生",
  496. topLen:0,
  497. deptId:0,
  498. depts:[],
  499. docTab:1,
  500. top:0,
  501. cartCount:0,
  502. doctorOrderList:[],
  503. orderType:0,
  504. cateId:null,
  505. articleList:[],
  506. advList:[],
  507. doctorList:[],
  508. articleCateList:[],
  509. doctocArticles:[],//养生讲堂
  510. articles:[],//养生干货
  511. // 状态栏的高度
  512. statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
  513. tabBg: tabBg, // tab切换背景
  514. // 问诊案例类型
  515. orderTypes: [{name:'全部',id:0,},{name:'图文',id:1,},{name:'语音',id:2,}],
  516. // 限时消息是否显示
  517. messageShow: true,
  518. yangshengs:[
  519. {id:"1",title:"药膳食疗",page:"/pages_index/index/medicatedFoodList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/3cfbd47911cf4753aa9497eac500728d.png"},
  520. {id:"2",title:"经络穴位",page:"/pages_index/index/vesselList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/e93536a9dc1a4f8ca09545097b12fdea.png"},
  521. {id:"3",title:"问答专区",page:"/pages_index/index/questionsList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/e896972bd56f4e358188af36f2c5af42.png"},
  522. {id:"4",title:"疾病",page:"/pages_index/index/diseaseList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/d6f1851cccae414b8baf2ba07782f91b.png"},
  523. {id:"5",title:"中药图解",page:"/pages_index/index/chineseMedicineList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/ff43572d0d004285b5a3b0ef2663c471.png"},
  524. {id:"6",title:"名方今用",page:"/pages_index/index/famousPrescribeList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/45db770e58c34963b0d2ba24a958b617.png"},
  525. {id:"7",title:"康复医案",page:"/pages_index/index/doctorArticleList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/e793942797b24035b51f94d894bdfa0b.png"},
  526. {id:"8",title:"更多",page:"",icon:"/static/images/ysyd_more_icon.png"}
  527. ],
  528. }
  529. this.getStoreActivity();
  530. },
  531. onLoad(option) {
  532. if(option.userCode!=null){
  533. uni.setStorageSync('userCode',option.userCode);
  534. if(this.utils.checkLoginState()){
  535. this.getUserInfo();
  536. }
  537. }
  538. if (option.hasOwnProperty('q') && option.q) {
  539. // 通过下面这步解码,可以拿到url的值
  540. const url = decodeURIComponent(option.q)
  541. this.url=url;
  542. // // 对url中携带的参数提取处理
  543. const obj = this.utils.urlToObj(url)
  544. uni.setStorageSync('userCode',obj.userCode);
  545. if(this.utils.checkLoginState()){
  546. this.getUserInfo();
  547. }
  548. }
  549. this.getStoreActivity()
  550. },
  551. // 暂停所有音频(一般用于页面切换时停止正在播放的音频)
  552. onUnload() { //普通页面在 onUnload 生命周期中执行
  553. uni.$emit('stop')
  554. },
  555. onHide() { //tabBar页面在onHide生命周期中执行
  556. uni.$emit('stop')
  557. },
  558. onPageScroll(e) {
  559. //console.log(e)
  560. this.top=e.scrollTop;
  561. },
  562. mounted() {
  563. //this.getDepartmentList();
  564. },
  565. onShareAppMessage(res) {
  566. return {
  567. title: '壹柒玖康养集团-您的专属健康解决方案',
  568. path: `/pages/common/launch`,
  569. imageUrl: '/static/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  570. }
  571. },
  572. onReachBottom() {
  573. console.log("onReachBottom")
  574. this.$refs.tuiProduct.getTuiProducts();
  575. },
  576. //分享到朋友圈
  577. onShareTimeline(res) {
  578. return {
  579. title: '壹柒玖康养集团-您的专属健康解决方案',
  580. query:'',//页面参数
  581. imageUrl: '/static/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  582. }
  583. },
  584. computed: {
  585. // 计算属性的 getter
  586. bgColor: function() {
  587. var top=this.top/30;
  588. return 'rgba(11,179,242, ' + top + ')';
  589. },
  590. },
  591. onShow() {
  592. this.getMenu();
  593. this.getIndexData()
  594. //this.getTuiDoctorOrder();
  595. // console.log(uni.getStorageSync('isLocation'))
  596. // if(uni.getStorageSync('isLocation')==""){
  597. // this.getLocation();
  598. // }
  599. if(this.utils.checkLoginState()){
  600. this.getCartCount();
  601. }
  602. this.getStoreConfig();
  603. //this.getTuiDoctor()
  604. this.getCanvas();
  605. this.getDoctorArticleList();
  606. this.getArticleList();
  607. },
  608. methods: {
  609. getUserInfo(){
  610. getUserInfo().then(
  611. res => {
  612. if(res.code==200){
  613. if(res.user!=null){
  614. if(res.user.isPromoter==null||res.user.isPromoter==0){
  615. this.tuiModalControl=true
  616. }
  617. }
  618. }else{
  619. uni.showToast({
  620. icon:'none',
  621. title: "请求失败",
  622. });
  623. }
  624. },
  625. rej => {}
  626. );
  627. },
  628. cancleTui(e){
  629. this.tuiModalControl=false
  630. },
  631. submitTui(e){
  632. console.log(e)
  633. if(e.inputText==null||e.inputText==""){
  634. uni.showToast({
  635. icon:'none',
  636. title: "请输入邀请码",
  637. });
  638. return;
  639. }
  640. var data={userCode:e.inputText};
  641. bindPromoter(data).then(
  642. res => {
  643. if(res.code==200){
  644. uni.showToast({
  645. icon:'none',
  646. title: res.msg,
  647. });
  648. this.tuiModalControl=false
  649. }else{
  650. uni.showToast({
  651. icon:'none',
  652. title: res.msg,
  653. });
  654. }
  655. },
  656. rej => {}
  657. );
  658. },
  659. bindload:function(detail){
  660. },
  661. binderror:function(detail){
  662. },
  663. closeActivity(){
  664. this.activityShow=false;
  665. // uni.setStorageSync(this.activity.activityId,null);
  666. },
  667. getStoreActivity() {
  668. let data = { }
  669. getStoreActivity(data).then(res => {
  670. this.activity=res.activity;
  671. if(this.activity!=null){
  672. // if(uni.getStorageSync(this.activity.activityId)!=null)
  673. // {
  674. // uni.setStorageSync(this.activity.activityId,1);
  675. // this.activityShow=true;
  676. // }
  677. // else{
  678. // this.activityShow=false;
  679. // }
  680. this.activityShow=true;
  681. }
  682. else{
  683. this.activityShow=false;
  684. }
  685. })
  686. },
  687. showActivity(){
  688. this.activityShow=false;
  689. uni.navigateTo({
  690. url: '/pages_shopping/shopping/activityDetails?activityId='+this.activity.activityId
  691. })
  692. },
  693. menuClick(item){
  694. if(item.linkType==1){
  695. if(item.linkUrl=="/pages/shopping/index"){
  696. uni.switchTab({
  697. url: item.linkUrl
  698. })
  699. }
  700. else if(item.linkUrl=="/pages/healthy/index"){
  701. uni.switchTab({
  702. url: item.linkUrl
  703. })
  704. }
  705. else{
  706. uni.navigateTo({
  707. url: item.linkUrl
  708. })
  709. }
  710. }
  711. else if(item.linkType==0){
  712. uni.showToast({
  713. icon:'none',
  714. title: "开发中...",
  715. });
  716. }
  717. },
  718. goDev(){
  719. uni.showToast({
  720. icon:'none',
  721. title: "开发中...",
  722. });
  723. },
  724. handleAdvClick(item){
  725. console.log(item);
  726. if(item.showType==1){
  727. uni.setStorageSync('url',item.advUrl);
  728. uni.navigateTo({
  729. url:"h5"
  730. })
  731. }
  732. else if(item.showType==2){
  733. uni.navigateTo({
  734. url:item.advUrl
  735. })
  736. }
  737. else if(item.showType==3){
  738. uni.setStorageSync('content',item.content);
  739. uni.navigateTo({
  740. url:"content"
  741. })
  742. }
  743. },
  744. deptChange(item){
  745. this.deptId=item.departmentId;
  746. this.getTuiDoctor();
  747. },
  748. getMenu(){
  749. getMenu().then(res => {
  750. console.log(res)
  751. if(res.code==200){
  752. this.menus= res.data
  753. }else{
  754. }
  755. });
  756. },
  757. getCanvas(){
  758. getCanvas().then(res => {
  759. if(res.code==200){
  760. console.log(res.data)
  761. this.canvas= JSON.parse(res.data.json)
  762. }
  763. });
  764. },
  765. getDepartmentList(){
  766. this.depts=[];
  767. getDepartmentList().then(res => {
  768. if(res.code==200){
  769. var allDept={departmentId:0,departmentName:"全部"}
  770. this.depts.push(allDept);
  771. this.depts=this.depts.concat(res.data);
  772. }else{
  773. uni.showToast({
  774. icon:'none',
  775. title: "请求失败",
  776. });
  777. }
  778. });
  779. },
  780. getTuiDoctor(){
  781. let data = {departmentId:this.deptId,doctorType:this.docTab};
  782. getTuiDoctor(data).then(
  783. res => {
  784. if(res.code==200){
  785. this.doctorList=res.data;
  786. }else{
  787. uni.showToast({
  788. icon:'none',
  789. title: "请求失败",
  790. });
  791. }
  792. },
  793. rej => {}
  794. );
  795. },
  796. docTabChange(val){
  797. if(val==1){
  798. this.allDoctorTitle="全部医师"
  799. }
  800. if(val==2){
  801. this.allDoctorTitle="全部药师"
  802. }
  803. if(val==3){
  804. this.allDoctorTitle="全部营养师"
  805. }
  806. this.docTab=val;
  807. this.getTuiDoctor();
  808. },
  809. showImg(urls) {
  810. var imgArr =urls.split(',');
  811. //预览图片
  812. uni.previewImage({
  813. urls: imgArr,
  814. current: imgArr[0]
  815. });
  816. },
  817. getStoreConfig(){
  818. getStoreConfig().then(
  819. res => {
  820. if(res.code==200){
  821. uni.setStorageSync('config',JSON.stringify(res.data));
  822. }
  823. },
  824. rej => {}
  825. );
  826. },
  827. goAuthUrl(url){
  828. this.utils.isLogin().then(res => {
  829. if(res){
  830. uni.navigateTo({
  831. url:url
  832. })
  833. }
  834. })
  835. },
  836. // 跳转页面
  837. navTo(url){
  838. uni.navigateTo({
  839. url: url
  840. })
  841. },
  842. getLocation(){
  843. var that=this;
  844. uni.authorize({
  845. scope:'scope.userLocation',
  846. success() {
  847. uni.getLocation({
  848. type: 'gcj02',//腾讯地图使用gcj02获取位置坐标
  849. success: function (res) {
  850. uni.setStorageSync('isLocation',1);
  851. uni.setStorageSync('lng',res.longitude);
  852. uni.setStorageSync('lat',res.latitude);
  853. },
  854. })
  855. },
  856. fail(err){
  857. console.log(err)
  858. }
  859. })
  860. },
  861. getIndexData(){
  862. let data = {};
  863. getIndexData(data).then(
  864. res => {
  865. if(res.code==200){
  866. this.advList=res.data.advList;
  867. this.articleCateList=res.data.articleCateList;
  868. if(this.articleCateList!=null&&this.articleCateList.length>0){
  869. this.cateId=this.articleCateList[0].cateId;
  870. this.getTuiArticle()
  871. }
  872. this.tuiProductList=res.data.tuiProductList
  873. this.newProductList = res.data.newProductList
  874. this.hotProductList = res.data.hotProductList
  875. }else{
  876. uni.showToast({
  877. icon:'none',
  878. title: "请求失败",
  879. });
  880. }
  881. },
  882. rej => {}
  883. );
  884. },
  885. getCartCount(){
  886. this.utils.isLogin().then(res => {
  887. if(res){
  888. getCartCount().then(
  889. cartRes => {
  890. if(cartRes.code==200){
  891. this.cartCount=cartRes.data;
  892. }
  893. },
  894. rej => {}
  895. );
  896. }
  897. })
  898. },
  899. getTuiArticle(){
  900. let data = {cateId:this.cateId};
  901. getTuiArticle(data).then(
  902. res => {
  903. if(res.code==200){
  904. this.articleList=res.data;
  905. }else{
  906. uni.showToast({
  907. icon:'none',
  908. title: "请求失败",
  909. });
  910. }
  911. },
  912. rej => {}
  913. );
  914. },
  915. getTuiDoctorOrder(){
  916. let data = {orderType:this.orderType};
  917. getTuiDoctorOrder(data).then(
  918. res => {
  919. if(res.code==200){
  920. this.doctorOrderList=res.data;
  921. }else{
  922. uni.showToast({
  923. icon:'none',
  924. title: "请求失败",
  925. });
  926. }
  927. },
  928. rej => {}
  929. );
  930. },
  931. showArticle(item){
  932. uni.navigateTo({
  933. url: '../healthy/detail?articleId='+item.articleId
  934. })
  935. },
  936. showProduct(item){
  937. uni.navigateTo({
  938. url: '../shopping/productDetails?productId='+item.productId
  939. })
  940. },
  941. // 顶部搜索
  942. toSearch() {
  943. uni.navigateTo({
  944. url: './productSearch'
  945. })
  946. },
  947. // 健康知识选中
  948. articleCateChange(item) {
  949. this.cateId = item.cateId;
  950. this.getTuiArticle();
  951. },
  952. // 问诊案例选中
  953. orderTypeChange(item) {
  954. this.orderType = item.id;
  955. console.log(this.orderType)
  956. this.getTuiDoctorOrder();
  957. },
  958. // 关闭限时消息
  959. closeMsg() {
  960. this.messageShow = false
  961. },
  962. // 查看全部
  963. viewAll(url) {
  964. uni.navigateTo({
  965. url: '/pages/home/' + url,
  966. });
  967. },
  968. shopDoctor(item){
  969. console.log(item);
  970. uni.navigateTo({
  971. url: "/pages_doctor/doctorDetail?doctorId="+item.doctorId
  972. })
  973. },
  974. switchTo(url){
  975. uni.switchTab({
  976. url: url
  977. })
  978. return
  979. },
  980. yangshengClick(item){
  981. if(item.page==""){
  982. uni.showToast({
  983. icon:"none",
  984. title: '暂无更多'
  985. })
  986. return;
  987. }
  988. uni.navigateTo({
  989. url:item.page
  990. })
  991. },
  992. // 在线问诊
  993. openIm() {
  994. uni.navigateTo({
  995. url: '/pages_doctor/doctorOrderIM?orderId=10'
  996. })
  997. },
  998. getDoctorArticleList() {
  999. //联网加载数据
  1000. var that = this;
  1001. var data = {
  1002. pageNum:1,
  1003. pageSize:10
  1004. };
  1005. getDoctorArticleList(data).then(res => {
  1006. if(res.code==200){
  1007. this.doctocArticles=res.data.list;
  1008. }
  1009. });
  1010. },
  1011. getArticleList() {
  1012. //联网加载数据
  1013. var that = this;
  1014. var data = {
  1015. isTui:1,
  1016. pageNum:1,
  1017. pageSize:10,
  1018. };
  1019. getArticleList(data).then(res => {
  1020. if(res.code==200){
  1021. this.articles=res.data.list;
  1022. }else{
  1023. uni.showToast({
  1024. icon:'none',
  1025. title: "请求失败",
  1026. });
  1027. }
  1028. });
  1029. },
  1030. }
  1031. }
  1032. </script>
  1033. <style lang="scss">
  1034. .fixed-top-box{
  1035. width: 100%;
  1036. position: fixed;
  1037. top: 0;
  1038. left: 0;
  1039. z-index: 1000;
  1040. transition: all 0.5s;
  1041. background-color: #0bb3f2;
  1042. &.show-back{
  1043. // background: linear-gradient(135deg, #66b2ef 0%, #0bb3f2 100%);
  1044. }
  1045. .status_bar {
  1046. width: 100%;
  1047. }
  1048. }
  1049. .content{
  1050. width: 100%;
  1051. position: relative;
  1052. .bg{
  1053. width: 100%;
  1054. height: 380rpx;
  1055. position: absolute;
  1056. top: 0;
  1057. left: 0;
  1058. }
  1059. .top-inner{
  1060. width: 100%;
  1061. position: absolute;
  1062. top: 0;
  1063. left: 0;
  1064. z-index: 5;
  1065. .top-title{
  1066. height: 88upx;
  1067. line-height: 88upx;
  1068. display: flex;
  1069. align-items: center;
  1070. justify-content: flex-start;
  1071. .name{
  1072. font-size: 42upx;
  1073. font-family: Source Han Sans CN;
  1074. font-weight: bold;
  1075. color: #FFFFFF;
  1076. padding-left: 41upx;
  1077. }
  1078. .dot{
  1079. margin: 0upx 10upx;
  1080. font-size: 28upx;
  1081. color: #FFFFFF;
  1082. opacity: 0.5;
  1083. }
  1084. .sub-name{
  1085. font-size: 30upx;
  1086. font-family: Source Han Sans CN;
  1087. color: #FFFFFF;
  1088. }
  1089. }
  1090. .func-cont{
  1091. box-sizing: border-box;
  1092. display: flex;
  1093. align-items: center;
  1094. padding: 30upx 20upx 30upx 20upx;
  1095. .search-cont{
  1096. box-sizing: border-box;
  1097. display: flex;
  1098. align-items: center;
  1099. width: 552upx;
  1100. height: 72upx;
  1101. background: #FFFFFF;
  1102. border-radius: 36upx;
  1103. padding: 0 30upx;
  1104. .icon-search{
  1105. width: 28upx;
  1106. height: 28upx;
  1107. margin-right: 20upx;
  1108. }
  1109. input{
  1110. height: 60upx;
  1111. line-height: 60upx;
  1112. flex: 1;
  1113. }
  1114. }
  1115. ;;v-deep.uni-badge{
  1116. border: none;
  1117. background-color: #FF3636;
  1118. font-family: Roboto;
  1119. }
  1120. .img-item{
  1121. width: 44upx;
  1122. height: 44upx;
  1123. margin-left: 30upx;
  1124. image{
  1125. width: 100%;
  1126. height: 100%;
  1127. }
  1128. }
  1129. }
  1130. .tips{
  1131. margin: 0upx 20rpx 30rpx ;
  1132. height: 40upx;
  1133. line-height: 40upx;
  1134. display: flex;
  1135. justify-content: space-between;
  1136. align-items: center;
  1137. .left{
  1138. font-size: 30upx;
  1139. color: #FFFFFF;
  1140. }
  1141. .right{
  1142. padding: 5upx 20rpx;
  1143. font-size: 24upx;
  1144. color: #FFFFFF;
  1145. background-color: #0bb3f2;
  1146. border-radius: 50rpx;
  1147. }
  1148. }
  1149. }
  1150. .banner-box{
  1151. display: flex;
  1152. align-items: center;
  1153. justify-content: center;
  1154. width: 100%;
  1155. .inner{
  1156. width: 702rpx;
  1157. height: 228rpx;
  1158. border-radius: 10upx;
  1159. overflow: hidden;
  1160. .swiper,
  1161. .swiper-item,
  1162. .swiper-item image{
  1163. width: 702rpx;
  1164. height: 228rpx;
  1165. }
  1166. }
  1167. }
  1168. .menu-content{
  1169. // width: 100%;
  1170. // background-color: #fff;
  1171. overflow: hidden;
  1172. padding: 20upx 20upx 0;
  1173. }
  1174. .menu-box{
  1175. display: flex;
  1176. align-items: center;
  1177. background-color: #FFFFFF;
  1178. padding-top: 20rpx;
  1179. border-radius: 12rpx;
  1180. }
  1181. .online-inquiry{
  1182. box-sizing: border-box;
  1183. width: 100%;
  1184. height: 170upx;
  1185. padding: 0 20upx;
  1186. margin-top: 20rpx;
  1187. // background: linear-gradient(180deg, rgba(255, 255, 255, 0.38) 62%, rgba(255, 255, 255, 0) 100%);
  1188. display: flex;
  1189. justify-content: space-between;
  1190. .item{
  1191. // width: 46.13%;
  1192. width: 346upx;
  1193. height: 190upx;
  1194. position: relative;
  1195. .bg-img,
  1196. .inner{
  1197. width: 100%;
  1198. height: 100%;
  1199. position: absolute;
  1200. top: 0;
  1201. left: 0;
  1202. z-index: 1;
  1203. border-radius: 12rpx;
  1204. }
  1205. .inner{
  1206. box-sizing: border-box;
  1207. z-index: 2;
  1208. display: flex;
  1209. flex-direction: column;
  1210. justify-content: center;
  1211. padding-left: 32upx;
  1212. .title{
  1213. font-size: 32upx;
  1214. line-height: 1;
  1215. font-family: PingFang SC;
  1216. font-weight: 500;
  1217. color: #111111;
  1218. margin-bottom: 20upx;
  1219. font-weight: bold;
  1220. }
  1221. .sub-title{
  1222. font-size: 24upx;
  1223. font-family: PingFang SC;
  1224. font-weight: 500;
  1225. color: #898E91;
  1226. }
  1227. image{
  1228. width: 80upx;
  1229. height: 90upx;
  1230. position: absolute;
  1231. right: 7upx;
  1232. bottom: 7upx;
  1233. }
  1234. }
  1235. }
  1236. }
  1237. .index-cont{
  1238. box-sizing: border-box;
  1239. padding: 0 20upx 120rpx;
  1240. .pub-item{
  1241. background: #FFFFFF;
  1242. border-radius: 16upx;
  1243. margin-bottom: 20upx;
  1244. .tabs{
  1245. width: 100%;
  1246. display: flex;
  1247. align-items: center;
  1248. justify-content: flex-start;
  1249. height: 110rpx;
  1250. background-color: #F0F3F4;
  1251. .tab{
  1252. height: 110rpx;
  1253. display: flex;
  1254. align-items: center;
  1255. justify-content: center;
  1256. position: relative;
  1257. flex: 1;
  1258. .img{
  1259. z-index: 1;
  1260. position: absolute;
  1261. top:0rpx;
  1262. left:0rpx;
  1263. width: 100%;
  1264. height: 100%;
  1265. }
  1266. .inner{
  1267. z-index: 2;
  1268. .title{
  1269. font-size: 32upx;
  1270. font-family: PingFang SC;
  1271. font-weight: bold;
  1272. color: #666666;
  1273. }
  1274. .active{
  1275. color: #0bb3f2;
  1276. }
  1277. }
  1278. }
  1279. }
  1280. .pub-title-box{
  1281. box-sizing: border-box;
  1282. padding: 36upx 30upx;
  1283. display: flex;
  1284. align-items: center;
  1285. justify-content: space-between;
  1286. .left{
  1287. font-size: 32upx;
  1288. line-height: 1;
  1289. font-family: PingFang SC;
  1290. font-weight: bold;
  1291. color: #111111;
  1292. }
  1293. .right{
  1294. display: flex;
  1295. align-items: center;
  1296. justify-content: center;
  1297. .text{
  1298. font-size: 24rpx;
  1299. line-height: 1;
  1300. font-family: PingFang SC;
  1301. font-weight: 500;
  1302. color: #999999;
  1303. margin-right: 10upx;
  1304. }
  1305. image{
  1306. width: 14upx;
  1307. height: 24upx;
  1308. }
  1309. }
  1310. }
  1311. .doc-tab-box{
  1312. padding: 14rpx 30rpx 0rpx 30rpx;
  1313. position: relative;
  1314. .tab-inner{
  1315. padding: 14upx 0 30upx;
  1316. display: flex;
  1317. overflow-x: auto;
  1318. }
  1319. .item{
  1320. font-size: 28upx;
  1321. white-space: nowrap;
  1322. line-height: 1;
  1323. font-family: PingFang SC;
  1324. font-weight: 500;
  1325. color: #666666;
  1326. margin-right: 40upx;
  1327. position: relative;
  1328. &:last-child{
  1329. margin-right: 0;
  1330. }
  1331. &.active{
  1332. font-weight: bold;
  1333. color: #333333;
  1334. }
  1335. &.cases{
  1336. margin-right: 60upx;
  1337. }
  1338. .text{
  1339. position: relative;
  1340. z-index: 1;
  1341. }
  1342. .tab-bg{
  1343. width: 72upx;
  1344. height: 28upx;
  1345. position: absolute;
  1346. top: 17upx;
  1347. left: 50%;
  1348. transform: translateX(-36upx);
  1349. z-index: -1;
  1350. }
  1351. }
  1352. .right-mask{
  1353. width: 56upx;
  1354. height: 34upx;
  1355. position: absolute;
  1356. top: 25upx;
  1357. right: 0upx;
  1358. z-index: 1;
  1359. }
  1360. }
  1361. .doc-list{
  1362. padding: 20upx;
  1363. .item{
  1364. box-sizing: border-box;
  1365. background: #FFFFFF;
  1366. // border-radius: 16upx;
  1367. display: flex;
  1368. border-bottom: 1px solid #F0F0F0;
  1369. margin-bottom: 30rpx;
  1370. .head-box{
  1371. width: 120upx;
  1372. height: 120upx;
  1373. background: #EDF1F4;
  1374. border-radius: 50%;
  1375. overflow: hidden;
  1376. margin-right: 30upx;
  1377. image{
  1378. width: 100%;
  1379. height: 100%;
  1380. }
  1381. }
  1382. .info{
  1383. width: calc(100% - 150upx);
  1384. .top{
  1385. display: flex;
  1386. align-items: center;
  1387. font-family: PingFang SC;
  1388. line-height: 1;
  1389. .name{
  1390. font-size: 34upx;
  1391. font-weight: bold;
  1392. color: #111111;
  1393. }
  1394. .line{
  1395. width: 1px;
  1396. height: 26upx;
  1397. background: #DDDDDD;
  1398. margin: 0 20upx;
  1399. }
  1400. .other{
  1401. font-size: 28upx;
  1402. font-weight: 500;
  1403. color: #333333;
  1404. }
  1405. }
  1406. .unit-box{
  1407. display: flex;
  1408. margin-top: 24upx;
  1409. .level{
  1410. padding: 0 10upx;
  1411. height: 30upx;
  1412. line-height: 30upx;
  1413. font-size: 22upx;
  1414. font-family: PingFang SC;
  1415. font-weight: 500;
  1416. color: #FFFFFF;
  1417. background: #0bb3f2;
  1418. border-radius: 10upx 4upx 10upx 4upx;
  1419. margin-right: 12upx;
  1420. }
  1421. .name{
  1422. font-size: 28upx;
  1423. font-family: PingFang SC;
  1424. font-weight: 500;
  1425. color: #333333;
  1426. line-height: 30upx;
  1427. }
  1428. }
  1429. .expertise{
  1430. font-size: 26upx;
  1431. font-family: PingFang SC;
  1432. font-weight: 500;
  1433. color: #666666;
  1434. line-height: 42upx;
  1435. margin: 22upx 0 26upx;
  1436. }
  1437. .rate-box{
  1438. display: flex;
  1439. align-items: center;
  1440. .star{
  1441. display: flex;
  1442. align-items: center;
  1443. image{
  1444. width: 22upx;
  1445. height: 22upx;
  1446. margin-right: 10upx;
  1447. }
  1448. text{
  1449. font-size: 26upx;
  1450. font-family: PingFang SC;
  1451. font-weight: bold;
  1452. color: #CEA764;
  1453. line-height: 1;
  1454. }
  1455. }
  1456. .line{
  1457. width: 1px;
  1458. height: 20upx;
  1459. background: #DDDDDD;
  1460. margin: 0 20upx;
  1461. }
  1462. .num-box{
  1463. display: flex;
  1464. align-items: center;
  1465. font-family: PingFang SC;
  1466. .label{
  1467. font-size: 24upx;
  1468. font-weight: 500;
  1469. color: #999999;
  1470. line-height: 1;
  1471. margin-right: 7px;
  1472. }
  1473. .num{
  1474. font-size: 26upx;
  1475. font-weight: bold;
  1476. color: #CEA764;
  1477. line-height: 1;
  1478. }
  1479. }
  1480. }
  1481. .price-box{
  1482. display: flex;
  1483. align-items: center;
  1484. margin-top: 38upx;
  1485. .btn-item{
  1486. display: flex;
  1487. align-items: center;
  1488. justify-content: center;
  1489. width: 164upx;
  1490. height: 56upx;
  1491. line-height: 56upx;
  1492. border: 1px solid rgba(43, 199, 185, 0.5);
  1493. border-radius: 28upx;
  1494. font-family: PingFang SC;
  1495. margin-right: 30upx;
  1496. &:last-child{
  1497. margin-right: 0;
  1498. }
  1499. .label{
  1500. font-size: 26upx;
  1501. font-weight: 500;
  1502. color: #0bb3f2;
  1503. margin-right: 5upx;
  1504. }
  1505. .num{
  1506. font-size: 28upx;
  1507. font-weight: bold;
  1508. color: #0bb3f2;
  1509. }
  1510. }
  1511. }
  1512. }
  1513. }
  1514. .item:last-child{
  1515. border-bottom: none;
  1516. margin-bottom: 0rpx;
  1517. }
  1518. .bottom-title{
  1519. height: 50rpx;
  1520. display: flex;
  1521. align-items: center;
  1522. justify-content: center;
  1523. font-size: 26rpx;
  1524. font-family: PingFang SC;
  1525. font-weight: bold;
  1526. color: #0bb3f2;
  1527. image{
  1528. margin-left: 8rpx;
  1529. width: 14rpx;
  1530. height: 24rpx;
  1531. }
  1532. }
  1533. }
  1534. // 医师团队
  1535. .doc-cont{
  1536. box-sizing: border-box;
  1537. padding: 0 30upx;
  1538. .inner{
  1539. padding: 4upx 0 40upx;
  1540. display: flex;
  1541. overflow-x: auto;
  1542. }
  1543. .item{
  1544. display: flex;
  1545. align-items: center;
  1546. flex-direction: column;
  1547. margin-right: 40upx;
  1548. &:last-child{
  1549. margin-right: 0;
  1550. }
  1551. .head-box{
  1552. width: 120upx;
  1553. height: 120upx;
  1554. background: #F2F5F9;
  1555. border-radius: 50%;
  1556. margin-bottom: 20upx;
  1557. overflow: hidden;
  1558. image{
  1559. width: 100%;
  1560. height: 100%;
  1561. }
  1562. }
  1563. .name{
  1564. max-width: 120upx;
  1565. font-size: 28upx;
  1566. line-height: 1;
  1567. font-family: PingFang SC;
  1568. font-weight: 500;
  1569. color: #111111;
  1570. margin-bottom: 16upx;
  1571. text-align: center;
  1572. }
  1573. .position{
  1574. max-width: 120upx;
  1575. font-size: 24upx;
  1576. line-height: 1;
  1577. font-family: PingFang SC;
  1578. font-weight: 500;
  1579. color: #999999;
  1580. text-align: center;
  1581. }
  1582. }
  1583. }
  1584. .inner{
  1585. padding: 0 30upx;
  1586. }
  1587. // 健康知识
  1588. .pub-tab-box{
  1589. position: relative;
  1590. .tab-inner{
  1591. padding: 14upx 0 30upx;
  1592. display: flex;
  1593. overflow-x: auto;
  1594. }
  1595. .item{
  1596. font-size: 28upx;
  1597. white-space: nowrap;
  1598. line-height: 1;
  1599. font-family: PingFang SC;
  1600. font-weight: 500;
  1601. color: #666666;
  1602. margin-right: 40upx;
  1603. position: relative;
  1604. &:last-child{
  1605. margin-right: 0;
  1606. }
  1607. &.active{
  1608. font-weight: bold;
  1609. color: #333333;
  1610. }
  1611. &.cases{
  1612. margin-right: 60upx;
  1613. }
  1614. .text{
  1615. position: relative;
  1616. z-index: 1;
  1617. }
  1618. .tab-bg{
  1619. width: 72upx;
  1620. height: 28upx;
  1621. position: absolute;
  1622. top: 17upx;
  1623. left: 50%;
  1624. transform: translateX(-36upx);
  1625. z-index: -1;
  1626. }
  1627. }
  1628. .right-mask{
  1629. width: 56upx;
  1630. height: 34upx;
  1631. position: absolute;
  1632. top: 14upx;
  1633. right: -30upx;
  1634. z-index: 1;
  1635. }
  1636. }
  1637. .know-list{
  1638. padding-right: 10upx;
  1639. .item{
  1640. padding: 30upx 0;
  1641. display: flex;
  1642. align-items: center;
  1643. justify-content: space-between;
  1644. border-bottom: 1px solid #F0F0F0;
  1645. &:last-child{
  1646. border-bottom: none;
  1647. }
  1648. .left{
  1649. flex: 1;
  1650. padding-right: 40upx;
  1651. height: 190upx;
  1652. display: flex;
  1653. flex-direction: column;
  1654. justify-content: space-between;
  1655. .title{
  1656. font-size: 32upx;
  1657. font-family: PingFang SC;
  1658. font-weight: 500;
  1659. color: #111111;
  1660. line-height: 48upx;
  1661. }
  1662. .info-box{
  1663. width: 100%;
  1664. display: flex;
  1665. align-items: center;
  1666. justify-content: space-between;
  1667. .readers{
  1668. display: flex;
  1669. align-items: center;
  1670. .head-box{
  1671. margin-right: 27upx;
  1672. display: flex;
  1673. align-items: center;
  1674. .head{
  1675. width: 48upx;
  1676. height: 48upx;
  1677. border-radius: 50%;
  1678. overflow: hidden;
  1679. box-shadow: 0 0 0 1px #fff;
  1680. margin-right: -10upx;
  1681. image{
  1682. width: 100%;
  1683. height: 100%;
  1684. }
  1685. }
  1686. }
  1687. .readings{
  1688. display: flex;
  1689. align-items: center;
  1690. .eye{
  1691. width: 26upx;
  1692. height: 20upx;
  1693. margin-right: 9upx;
  1694. }
  1695. .num{
  1696. font-size: 24upx;
  1697. font-family: PingFang SC;
  1698. font-weight: 500;
  1699. color: #999999;
  1700. line-height: 1;
  1701. }
  1702. }
  1703. }
  1704. .time{
  1705. font-size: 24upx;
  1706. line-height: 1;
  1707. font-family: PingFang SC;
  1708. font-weight: 500;
  1709. color: #999999;
  1710. }
  1711. }
  1712. }
  1713. .right{
  1714. width: 250upx;
  1715. height: 190upx;
  1716. border-radius: 8upx;
  1717. overflow: hidden;
  1718. image{
  1719. width: 100%;
  1720. height: 100%;
  1721. }
  1722. }
  1723. }
  1724. }
  1725. // 问诊案例
  1726. .cases-list{
  1727. padding-bottom: 10upx;
  1728. .item{
  1729. padding: 30upx 0;
  1730. border-bottom: 1px solid #F0F0F0;
  1731. &:last-child{
  1732. border-bottom: none;
  1733. }
  1734. .dec-text{
  1735. font-size: 32upx;
  1736. font-family: PingFang SC;
  1737. font-weight: bold;
  1738. color: #111111;
  1739. line-height: 48upx;
  1740. }
  1741. .images-box{
  1742. margin-top: 10upx;
  1743. display: flex;
  1744. flex-wrap: wrap;
  1745. .img-item{
  1746. width: 155upx;
  1747. height: 155upx;
  1748. background: #F5F5F5;
  1749. border-radius: 8upx;
  1750. margin: 0 10upx 10upx 0;
  1751. overflow: hidden;
  1752. image{
  1753. width: 48rpx;
  1754. height: 48rpx;
  1755. }
  1756. &:nth-child(4n){
  1757. margin-right: 0;
  1758. }
  1759. }
  1760. }
  1761. .doc-info{
  1762. display: flex;
  1763. align-items: center;
  1764. margin: 30upx 0 20upx;
  1765. .head{
  1766. width: 60upx;
  1767. height: 60upx;
  1768. background: #F2F5F9;
  1769. border-radius: 50%;
  1770. margin-right: 20upx;
  1771. overflow: hidden;
  1772. image{
  1773. width: 100%;
  1774. height: 100%;
  1775. }
  1776. }
  1777. .name{
  1778. font-size: 28upx;
  1779. line-height: 1;
  1780. font-family: PingFang SC;
  1781. font-weight: 500;
  1782. color: #111111;
  1783. }
  1784. .line{
  1785. width: 1px;
  1786. height: 22upx;
  1787. background: #DDDDDD;
  1788. margin: 0 16upx;
  1789. }
  1790. .posit,
  1791. .address{
  1792. font-size: 26upx;
  1793. font-family: PingFang SC;
  1794. font-weight: 500;
  1795. color: #999999;
  1796. }
  1797. }
  1798. .answer-box{
  1799. width: 100%;
  1800. // height: 117upx;
  1801. background: #F5F7F7;
  1802. border-radius: 10upx;
  1803. display: flex;
  1804. flex-direction: column;
  1805. justify-content: center;
  1806. .text-inner{
  1807. // height: 84upx;
  1808. font-size: 28upx;
  1809. font-family: PingFang SC;
  1810. font-weight: 500;
  1811. color: #666666;
  1812. line-height: 42upx;
  1813. padding: 15upx;
  1814. }
  1815. }
  1816. .read-box{
  1817. margin-top: 30upx;
  1818. display: flex;
  1819. align-items: center;
  1820. justify-content: flex-end;
  1821. image{
  1822. width: 24upx;
  1823. height: 19upx;
  1824. margin-right: 10upx;
  1825. }
  1826. .text{
  1827. font-size: 24upx;
  1828. font-family: PingFang SC;
  1829. font-weight: 500;
  1830. color: #999999;
  1831. }
  1832. }
  1833. }
  1834. }
  1835. }
  1836. // 精选药品
  1837. .feat-title{
  1838. margin-top: 30upx;
  1839. padding: 10upx 0 33upx;
  1840. display: flex;
  1841. align-items: center;
  1842. justify-content: center;
  1843. image{
  1844. width: 37upx;
  1845. height: 37upx;
  1846. margin: 0upx 20upx;
  1847. }
  1848. text{
  1849. font-size: 36upx;
  1850. line-height: 1;
  1851. font-family: PingFang SC;
  1852. font-weight: bold;
  1853. color: #111111;
  1854. }
  1855. }
  1856. .drug-list{
  1857. display: flex;
  1858. flex-wrap: wrap;
  1859. // margin-bottom: 20upx;
  1860. .item{
  1861. margin-right: 20rpx;
  1862. margin-bottom: 20rpx;
  1863. width: 345rpx;
  1864. background: #FFFFFF;
  1865. box-shadow: 0px 0px 10rpx 4rpx rgba(199, 199, 199, 0.22);
  1866. border-radius: 20rpx;
  1867. overflow: hidden;
  1868. &:nth-child(2n){
  1869. margin-right: 0;
  1870. }
  1871. .img-box{
  1872. width: 100%;
  1873. height: 334upx;
  1874. image{
  1875. width: 100%;
  1876. height: 100%;
  1877. }
  1878. }
  1879. .info-box{
  1880. box-sizing: border-box;
  1881. height: 182upx;
  1882. padding: 20upx;
  1883. .title{
  1884. height: 80upx;
  1885. font-size: 26upx;
  1886. font-family: PingFang SC;
  1887. font-weight: 500;
  1888. color: #111111;
  1889. line-height: 40upx;
  1890. }
  1891. .price-box{
  1892. display: flex;
  1893. align-items: center;
  1894. margin-top: 20upx;
  1895. .now{
  1896. color: #FF6633;
  1897. display: flex;
  1898. align-items: flex-end;
  1899. margin-right: 20upx;
  1900. font-family: PingFang SC;
  1901. .unit{
  1902. font-size: 24upx;
  1903. line-height: 1.4;
  1904. margin-right: 4upx;
  1905. }
  1906. .num{
  1907. font-size: 36upx;
  1908. font-weight: bold;
  1909. line-height: 1;
  1910. }
  1911. }
  1912. .old{
  1913. font-size: 26upx;
  1914. font-family: PingFang SC;
  1915. text-decoration: line-through;
  1916. color: #BBBBBB;
  1917. line-height: 1;
  1918. }
  1919. }
  1920. }
  1921. }
  1922. }
  1923. }
  1924. .modules{
  1925. .module{
  1926. .depts{
  1927. z-index: 101;
  1928. margin: 40rpx 15rpx 0rpx;
  1929. padding: 20rpx;
  1930. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  1931. background-color: #fff;
  1932. border-radius: 15rpx;
  1933. .title{
  1934. font-size: 32upx;
  1935. font-family: PingFang SC;
  1936. font-weight: bold;
  1937. color: #2A2B2E;
  1938. }
  1939. .dept-box{
  1940. margin-top: 15rpx;
  1941. display: flex;
  1942. align-items: center;
  1943. justify-content: flex-start;
  1944. flex-wrap:wrap;
  1945. .dept{
  1946. padding: 15rpx 5rpx;
  1947. width:25%;
  1948. display: flex;
  1949. flex-direction: column;
  1950. align-items: center;
  1951. justify-content: center;
  1952. padding:14rpx 0;
  1953. .icon{
  1954. width:58rpx;
  1955. height:58rpx;
  1956. }
  1957. .title{
  1958. margin-top: 10rpx;
  1959. font-size: 24upx;
  1960. font-family: PingFang SC;
  1961. font-weight: 500;
  1962. color: #111111;
  1963. }
  1964. }
  1965. }
  1966. }
  1967. .doctor-articles{
  1968. z-index: 101;
  1969. margin: 20rpx 15rpx 0rpx;
  1970. padding: 20rpx;
  1971. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  1972. background-color: #fff;
  1973. border-radius: 15rpx;
  1974. .title-box{
  1975. display: flex;
  1976. flex-direction: row;
  1977. align-items: center;
  1978. justify-content: space-between;
  1979. .title{
  1980. font-size: 32upx;
  1981. font-family: PingFang SC;
  1982. font-weight: bold;
  1983. color: #111111;
  1984. }
  1985. .more{
  1986. display: flex;
  1987. align-items: center;
  1988. justify-content: flex-end;
  1989. .text{
  1990. font-size: 24rpx;
  1991. font-family: PingFang SC;
  1992. color: #9B9B9B;
  1993. }
  1994. image{
  1995. margin-left: 10rpx;
  1996. width:15rpx;
  1997. height:20rpx;
  1998. }
  1999. }
  2000. }
  2001. .article-box{
  2002. padding: 20rpx 0rpx;
  2003. overflow-x: auto;
  2004. box-sizing: border-box;
  2005. display: flex;
  2006. align-items: center;
  2007. justify-content: flex-start;
  2008. .article{
  2009. width: 300rpx;
  2010. margin-right: 20rpx;
  2011. background: #f9f8fe;
  2012. display: flex;
  2013. flex-direction: column;
  2014. align-items: flex-start;
  2015. justify-content: flex-start;
  2016. &:last-child{
  2017. margin-right: 0rpx;
  2018. }
  2019. .image-box{
  2020. width: 300rpx;
  2021. height:400rpx;
  2022. position: relative;
  2023. border-radius: 20rpx;
  2024. image{
  2025. border-radius: 20rpx;
  2026. width: 300rpx;
  2027. height:400rpx;
  2028. }
  2029. .views{
  2030. position: absolute;
  2031. top:0rpx;
  2032. left:0rpx;
  2033. padding: 5rpx 10rpx;
  2034. background: rgba(0,0,0,0.25);
  2035. border-radius: 12rpx 0px 12rpx 0px;
  2036. opacity: 1;
  2037. font-size: 20rpx;
  2038. font-family: PingFang SC-Bold, PingFang SC;
  2039. font-weight: bold;
  2040. color: #FFFFFF;
  2041. }
  2042. .doctor{
  2043. margin: 10rpx;
  2044. display: flex;
  2045. align-items: center;
  2046. justify-content: flex-start;
  2047. position: absolute;
  2048. bottom:0rpx;
  2049. left:0rpx;
  2050. image{
  2051. border-radius: 50%;
  2052. width: 64rpx;
  2053. height:64rpx;
  2054. }
  2055. .right{
  2056. width: 200rpx;
  2057. margin-left: 10rpx;
  2058. display: flex;
  2059. flex-direction: column;
  2060. align-items: flex-start;
  2061. justify-content: space-between;
  2062. .doc-name{
  2063. width: 200rpx;
  2064. font-size: 30rpx;
  2065. font-weight: bold;
  2066. font-family: PingFang SC;
  2067. color: #fff;
  2068. }
  2069. .doc-position{
  2070. width: 100%;
  2071. font-size: 28rpx;
  2072. font-family: PingFang SC;
  2073. color: #fff;
  2074. font-weight: bold;
  2075. opacity: 0.8;
  2076. }
  2077. }
  2078. }
  2079. }
  2080. .article-title-box{
  2081. width: 100%;
  2082. margin-top: 10rpx;
  2083. display: flex;
  2084. align-items: center;
  2085. justify-content: flex-start;
  2086. .article-title{
  2087. font-size: 30rpx;
  2088. font-weight: bold;
  2089. font-family: PingFang SC;
  2090. color: #2A2B2E;
  2091. }
  2092. }
  2093. }
  2094. }
  2095. }
  2096. .doctors{
  2097. z-index: 101;
  2098. margin: 20rpx 15rpx;
  2099. padding: 20rpx;
  2100. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  2101. background-color: #fff;
  2102. border-radius: 15rpx;
  2103. .title-box{
  2104. display: flex;
  2105. flex-direction: row;
  2106. align-items: center;
  2107. justify-content: space-between;
  2108. .title{
  2109. font-size: 32upx;
  2110. font-family: PingFang SC;
  2111. font-weight: bold;
  2112. color: #111111;
  2113. }
  2114. .more{
  2115. display: flex;
  2116. align-items: center;
  2117. justify-content: flex-end;
  2118. .text{
  2119. font-size: 24rpx;
  2120. font-family: PingFang SC;
  2121. color: #9B9B9B;
  2122. }
  2123. image{
  2124. margin-left: 10rpx;
  2125. width:15rpx;
  2126. height:20rpx;
  2127. }
  2128. }
  2129. }
  2130. }
  2131. .articles{
  2132. z-index: 101;
  2133. margin: 20rpx 15rpx;
  2134. padding: 20rpx;
  2135. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  2136. background-color: #fff;
  2137. border-radius: 15rpx;
  2138. .title-box{
  2139. display: flex;
  2140. flex-direction: row;
  2141. align-items: center;
  2142. justify-content: space-between;
  2143. .title{
  2144. font-size: 32upx;
  2145. font-family: PingFang SC;
  2146. font-weight: bold;
  2147. color: #111111;
  2148. }
  2149. .more{
  2150. display: flex;
  2151. align-items: center;
  2152. justify-content: flex-end;
  2153. .text{
  2154. font-size: 24rpx;
  2155. font-family: PingFang SC;
  2156. color: #9B9B9B;
  2157. }
  2158. image{
  2159. margin-left: 10rpx;
  2160. width:15rpx;
  2161. height:20rpx;
  2162. }
  2163. }
  2164. }
  2165. .article-box{
  2166. margin-top: 15rpx;
  2167. padding: 20rpx 0rpx 0rpx;
  2168. display: flex;
  2169. flex-direction: column;
  2170. align-items: flex-start;
  2171. justify-content: flex-start;
  2172. .item{
  2173. width: 100%;
  2174. margin-bottom: 20rpx;
  2175. display: flex;
  2176. align-items: flex-start;
  2177. justify-content: flex-start;
  2178. &:last-child{
  2179. margin-bottom: 0rpx;
  2180. }
  2181. .left{
  2182. flex:1;
  2183. height:160rpx;
  2184. margin-right: 15rpx;
  2185. display: flex;
  2186. flex-direction: column;
  2187. align-items: flex-start;
  2188. justify-content: space-between;
  2189. .title{
  2190. font-size: 28upx;
  2191. font-family: PingFang SC;
  2192. font-weight: bold;
  2193. color: #111111;
  2194. }
  2195. .views{
  2196. font-size: 24upx;
  2197. font-family: PingFang SC;
  2198. color: #9a9a9c;
  2199. }
  2200. }
  2201. .right{
  2202. image{
  2203. border-radius: 10rpx;
  2204. width:220rpx;
  2205. height:160rpx;
  2206. border: 1px solid #eeeeee;
  2207. }
  2208. }
  2209. }
  2210. }
  2211. }
  2212. .packages{
  2213. z-index: 101;
  2214. margin: 20rpx 15rpx;
  2215. padding: 20rpx;
  2216. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  2217. background-color: #fff;
  2218. border-radius: 15rpx;
  2219. .title-box{
  2220. display: flex;
  2221. flex-direction: row;
  2222. align-items: center;
  2223. justify-content: space-between;
  2224. .title{
  2225. font-size: 32upx;
  2226. font-family: PingFang SC;
  2227. font-weight: bold;
  2228. color: #111111;
  2229. }
  2230. .more{
  2231. display: flex;
  2232. align-items: center;
  2233. justify-content: flex-end;
  2234. .text{
  2235. font-size: 24rpx;
  2236. font-family: PingFang SC;
  2237. color: #9B9B9B;
  2238. }
  2239. image{
  2240. margin-left: 10rpx;
  2241. width:15rpx;
  2242. height:20rpx;
  2243. }
  2244. }
  2245. }
  2246. .package-box{
  2247. padding: 20rpx 0rpx 0rpx;
  2248. display: flex;
  2249. align-items: flex-start;
  2250. justify-content: flex-start;
  2251. flex-wrap: wrap;
  2252. .item{
  2253. width: calc(50% - 20rpx);
  2254. border-radius: 15rpx;
  2255. margin: 10rpx;
  2256. display: flex;
  2257. flex-direction: column;
  2258. align-items: flex-start;
  2259. justify-content: flex-start;
  2260. &:last-child{
  2261. }
  2262. .top{
  2263. width:100%;
  2264. height:300rpx;
  2265. image{
  2266. border-radius: 15rpx 15rpx 0rpx 0rpx;
  2267. width:100%;
  2268. height:300rpx;
  2269. }
  2270. }
  2271. .bottom{
  2272. width: 100%;
  2273. margin-top: 15rpx;
  2274. .title{
  2275. font-weight: bold;
  2276. font-size: 28upx;
  2277. font-family: PingFang SC;
  2278. color: #111111;
  2279. }
  2280. .price-box{
  2281. margin-top: 10rpx;
  2282. display: flex;
  2283. align-items: center;
  2284. justify-content: space-between;
  2285. width: 100%;
  2286. .price{
  2287. padding: 5rpx 10rpx;
  2288. background-color: #0bb3f2;
  2289. border-radius: 30rpx;
  2290. font-size: 20upx;
  2291. font-family: PingFang SC;
  2292. color: #ffffff;
  2293. }
  2294. .count{
  2295. font-size: 24upx;
  2296. font-family: PingFang SC;
  2297. color: #333333;
  2298. }
  2299. }
  2300. }
  2301. }
  2302. }
  2303. }
  2304. }
  2305. }
  2306. }
  2307. .official-account{
  2308. box-sizing: border-box;
  2309. width: 100%;
  2310. height: 100upx;
  2311. position: fixed;
  2312. bottom: 30upx;
  2313. z-index: 99;
  2314. padding: 0 20upx 180rpx 20upx;
  2315. }
  2316. // 消息
  2317. .message-box{
  2318. box-sizing: border-box;
  2319. width: 100%;
  2320. height: 84upx;
  2321. background: #F3FFFD;
  2322. border: 1px solid #C7E9E5;
  2323. box-shadow: 0px 4upx 12upx 0px rgba(90, 203, 138, 0.16);
  2324. border-radius: 16upx;
  2325. position: fixed;
  2326. left: 50%;
  2327. transform: translateX(-50%);
  2328. bottom: 30upx;
  2329. z-index: 99;
  2330. display: flex;
  2331. align-items: center;
  2332. justify-content: space-between;
  2333. padding: 0 20upx 0 30upx;
  2334. .left{
  2335. flex:1;
  2336. display: flex;
  2337. align-items: center;
  2338. image{
  2339. width: 24upx;
  2340. height: 24upx;
  2341. margin-right: 18upx;
  2342. }
  2343. .text{
  2344. width: 90%;
  2345. font-size: 28upx;
  2346. font-family: PingFang SC;
  2347. font-weight: 500;
  2348. color: #0bb3f2;
  2349. }
  2350. }
  2351. .btn{
  2352. width: 100upx;
  2353. height: 48upx;
  2354. line-height: 48upx;
  2355. text-align: center;
  2356. font-size: 24upx;
  2357. font-family: PingFang SC;
  2358. font-weight: 500;
  2359. color: #FFFFFF;
  2360. border: 1px solid #D2E6FF;
  2361. background: linear-gradient(135deg, #66b2ef 0%, #0bb3f2 100%);
  2362. border-radius: 24upx;
  2363. margin-left: 30upx;
  2364. }
  2365. }
  2366. .contact-btn{
  2367. display: inline-block;
  2368. position: absolute;
  2369. top: 0;
  2370. left: 0;
  2371. width: 100%;
  2372. height: 100%;
  2373. opacity: 0;
  2374. }
  2375. .popup-box{
  2376. position: fixed;
  2377. top: 0;
  2378. right: 0;
  2379. left: 0;
  2380. bottom: 0;
  2381. z-index: 999;
  2382. display: flex;
  2383. justify-content: center;
  2384. align-items: center;
  2385. .info-mask {
  2386. position: fixed;
  2387. top: 0;
  2388. right: 0;
  2389. bottom: 0;
  2390. left: 0;
  2391. background-color: rgba($color: #000000, $alpha: 0.5);
  2392. z-index: 999;
  2393. }
  2394. .info-form {
  2395. z-index: 1000;
  2396. width: 450rpx;
  2397. display: flex;
  2398. flex-direction: column;
  2399. justify-content: center;
  2400. align-items: center;
  2401. position: relative;
  2402. image{
  2403. width:100%;
  2404. }
  2405. }
  2406. }
  2407. </style>