index.vue 57 KB

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