homeIndex.vue 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446
  1. <template>
  2. <view :class="source=='course'?'home-content home-contentTop':'home-content'">
  3. <mescroll-body ref="mescrollRef" @init="mescrollInit" top="0" bottom="20" :down="downOption" :up="upOption"
  4. @down="downCallback" @up="upCallback">
  5. <!-- 搜索 -->
  6. <view class="search-box" v-if="false">
  7. <view class="left">
  8. <image src="@/static/image/home1/search_icon.png" mode=""></image>
  9. <input class="input-text" disabled="true" type="text" placeholder-class="place-hold"
  10. value="输入疾病 | 科室 | 医生 | 知识" placeholder="" />
  11. </view>
  12. <view class="right">
  13. <button class="button" @click="showQidai()">搜索</button>
  14. </view>
  15. </view>
  16. <!-- banner -->
  17. <view class="swiper-box" :style="{paddingTop:source=='course'?'0':'22rpx'}">
  18. <swiper class="swiper" style="height: 233rpx;" circular :indicator-dots="true" :autoplay="true"
  19. :interval="3000" :duration="1000">
  20. <swiper-item v-for="(url,index) in advImgs" :key="index" class="swiper-item"
  21. @click="handleAdvClick(index)">
  22. <image style="width: 100%;height: 100%;" :src="url" mode="aspectFill"></image>
  23. </swiper-item>
  24. </swiper>
  25. </view>
  26. <!-- 医生智能体 -->
  27. <!-- <view class="box-nav es-mt-32">
  28. <view class="u-f">
  29. <view class="title es-mr-10">医生智能体</view>
  30. <view class="es-fs-22 u-f-ajc doctorAgentTip">
  31. 7x24小时咨询
  32. </view>
  33. </view>
  34. <view class="box-nav-right" @tap="navTo('/pages/agent/doctorList')">
  35. <text>全部医生</text>
  36. <image class="right-arrow" src="@/static/image/home1/my_right_arrow.png" mode="aspectFill"></image>
  37. </view>
  38. </view>
  39. <scroll-view scroll-x="true" class="scroll-X">
  40. <view class="doctorIntelligentAgent" v-for="(item,index) in dataList" :key="index"
  41. @tap="navTo('/pages/agent/doctorDetail?doctorId='+item.doctorId)"
  42. :style="{ backgroundImage: 'url(/static/image/agent/ai_doctor_bg' + (index+1) + '.png)' }">
  43. <view class="es-mt-40 u-f-ajc u-f-fc">
  44. <image class="doctorIntelligentAgent-image"
  45. :src="item.avatar || '/static/image/hall/my_heads_icon.png'" mode=""></image>
  46. <view class="es-c-22 es-mt-10 es-fs-32 es-fw-600">
  47. {{item.doctorName}}
  48. </view>
  49. <view class="es-c-99 es-fs-22 es-mt-8 u-f">
  50. <view class="es-mr-14 textOne es-w-106 es-tc">{{item.introduction}}</view>
  51. <view class="line es-mr-14"></view>
  52. <view class="textOne">{{item.position}}</view>
  53. </view>
  54. <view class="es-fs-24 es-c-white es-mt-14 doctorIntelligentAgent-btn u-f-ajc">
  55. <text class="es-mr-10">去问诊</text>
  56. <u-icon name="arrow-right" size="24rpx" color="#FFFFFF"></u-icon>
  57. </view>
  58. </view>
  59. </view>
  60. </scroll-view> -->
  61. <!-- 菜单(ai舌诊) -->
  62. <view class="nav" id="indexguide1">
  63. <view class="grid-item" v-for="(item ,index) in navList" :key="index">
  64. <view class="grid-item-box" @tap="topNavTo(item.pageUrl,index)">
  65. <image class="image" :src="item.img" mode="aspectFill" />
  66. <text class="text">{{item.name}}</text>
  67. </view>
  68. </view>
  69. </view>
  70. <!-- 横向banner 生活馆 -->
  71. <scroll-view scroll-x="true" class="scroll-X">
  72. <view class="scroll-item zyss_bg" v-for="(item,index) in midAdvs" :key="index"
  73. @tap="midAvTap(item,index)">
  74. <image class="bg_img" :src="item.imageUrl" mode="widthFix"></image>
  75. </view>
  76. </scroll-view>
  77. <!-- 快速问诊 -->
  78. <view class="banner-nav" id="indexguide2">
  79. <view class="banner-nav-item kswz-bg" @tap="loginNavTo('/pages/doctor/doctorList')">
  80. <view class="title">快速问诊</view>
  81. <view>专业医师快速</view>
  82. </view>
  83. <view class="banner-nav-item jkhz-bg" @tap="loginNavTo('/pages/store/inquirySelectType?isShare=1')">
  84. <view class="title">健康会诊</view>
  85. <view>权威专家为您</view>
  86. <view class="jkhz">答疑解惑</view>
  87. </view>
  88. <view class="banner-nav-item yyzx-bg"
  89. @click="loginNavTo('/pages/store/inquirySelect?inquiryType=3&isShare=1')">
  90. <view class="title">用药咨询</view>
  91. <view>执业药师提供</view>
  92. <view class="yyzx">用药指导</view>
  93. </view>
  94. <view class="banner-nav-item zjyz-bg" @tap="loginNavTo('/pages/doctor/doctorList')">
  95. <view class="title">专家约诊</view>
  96. <view>在线预约专家</view>
  97. <view class="zjyz">诊疗服务</view>
  98. </view>
  99. </view>
  100. <!-- 河山恒康百事通 -->
  101. <template v-if='ailist&&ailist.length>0'>
  102. <view class="box-nav">
  103. <view class="title">河山恒康百事通</view>
  104. <view class="box-nav-right" v-if="!$isIos()" @click="loginNavTo('/pages/ai/list')">
  105. <text>更多</text>
  106. <image class="right-arrow" src="@/static/image/home1/my_right_arrow.png" mode="aspectFill">
  107. </image>
  108. </view>
  109. </view>
  110. <view class="ai-banner">
  111. <swiper class="ai-banner-swiper" :current="current" :style="{height: swHeight + 'rpx'}"
  112. :autoplay="true" circular interval="3000" duration="1000" @animationfinish="animationfinish">
  113. <swiper-item class="ai-banner-swiper-item" v-for="(group, index) in ailist" :key="index">
  114. <image class="ai-banner-img" v-for="(item,idx) in group" :key="idx"
  115. :src="item.recommendImgUrl" mode="aspectFill"
  116. @click="loginNavTo('/pages/ai/chat?roleId='+item.roleId+'&roleName='+item.roleName+'&sessionId='+item.sessionId || '')">
  117. </image>
  118. </swiper-item>
  119. </swiper>
  120. </view>
  121. </template>
  122. <!-- 健康自测 -->
  123. <view id="indexguide3">
  124. <view class="box-nav">
  125. <view class="title">健康自测</view>
  126. <view class="box-nav-right" @click="navTo('/pages/article/testList')">
  127. <text>更多自测</text>
  128. <image class="right-arrow" src="@/static/image/home1/my_right_arrow.png" mode="aspectFill"></image>
  129. </view>
  130. </view>
  131. <view class="selfrated-health">
  132. <view class="selfrated-health-item" @click="navTo('/pages/article/testDetails?tempId=5')">
  133. <image src="@/static/image/home1/icon/zytz_icon.png" mode="aspectFill"></image>
  134. <view>中医体质</view>
  135. </view>
  136. <view class="selfrated-health-item" @click="navTo('/pages/article/testDetails?tempId=8')">
  137. <image src="@/static/image/home1/icon/xnxg_icon.png" mode="aspectFill"></image>
  138. <view>心脑血管</view>
  139. </view>
  140. <view class="selfrated-health-item" @click="navTo('/pages/article/testDetails?tempId=14')">
  141. <image src="@/static/image/home1/icon/nxjk_icon.png" mode="aspectFill"></image>
  142. <view>男性健康</view>
  143. </view>
  144. <view class="selfrated-health-item" @click="navTo('/pages/article/testDetails?tempId=18')">
  145. <image src="@/static/image/home1/icon/nvxjk_icon.png" mode="aspectFill"></image>
  146. <view>女性健康</view>
  147. </view>
  148. </view>
  149. </view>
  150. <!-- 推荐医生 -->
  151. <view class="box-nav">
  152. <view class="title">推荐医生</view>
  153. <view class="box-nav-right" @tap="navTo('/pages/doctor/doctorList')">
  154. <text>更多医生</text>
  155. <image class="right-arrow" src="@/static/image/home1/my_right_arrow.png" mode="aspectFill"></image>
  156. </view>
  157. </view>
  158. <!-- <scroll-view class="scroll-container " scroll-x="true" scroll-with-animation="true" overflow-anchor="none">
  159. <view class="box-doctor" v-for="(item,index) in doctors" :key="index">
  160. <docterItem class="gapitem" :item="item" @tap.native="navTo('/pages/doctor/doctorDetails?doctorId='+item.doctorId)"></docterItem>
  161. </view>
  162. </scroll-view> -->
  163. <swiper class="swiper-doctor" circular :autoplay="true" interval="3000" duration="1000"
  164. display-multiple-items='2' next-margin="20px">
  165. <swiper-item v-for="(item,index) in doctors" :key="index">
  166. <docterItem class="gapitem" :item="item"
  167. @click.native="navTo('/pages/doctor/doctorDetails?doctorId='+item.doctorId)"></docterItem>
  168. </swiper-item>
  169. </swiper>
  170. <!-- 养生干货 -->
  171. <!-- <template v-if="articles.length>0">
  172. <view class="box-nav">
  173. <view class="title">养生干货</view>
  174. <view class="box-nav-right" @click="navTo('/pages/article/articleList')">
  175. <text>更多</text>
  176. <image class="right-arrow" src="@/static/image/home1/my_right_arrow.png" mode="aspectFill">
  177. </image>
  178. </view>
  179. </view>
  180. <view style="padding: 0 24rpx;">
  181. <view class="article-box">
  182. <view class="item" @click="navTo('/pages/article/articleDetails?articleId='+item.articleId)"
  183. v-for="(item,index) in articles" :key="index">
  184. <view class="left">
  185. <view class="title textTwo">
  186. {{item.title}}
  187. </view>
  188. <view class="views">
  189. 浏览量 {{item.views}}
  190. </view>
  191. </view>
  192. <view class="right">
  193. <image :src="item.imageUrl"></image>
  194. </view>
  195. </view>
  196. </view>
  197. </view>
  198. </template> -->
  199. <!-- 健康疗法 -->
  200. <view class="box-nav" id="indexguide4">
  201. <view class="title">健康疗法</view>
  202. <view class="box-nav-right" @click="navTo('/pages/store/packageList')">
  203. <text>更多疗法</text>
  204. <image class="right-arrow" src="@/static/image/home1/my_right_arrow.png" mode="aspectFill"></image>
  205. </view>
  206. </view>
  207. <view class="box-goods">
  208. <goodsItem v-if="packages.length>0" class="gapitem indexguide4-child" v-for="(item,index) in packages"
  209. :key="index" :item=item
  210. @click.native="navTo('/pages/store/packageDetails?packageId='+item.packageId)"></goodsItem>
  211. <view v-else class="es x-c es-h-200 indexguide4-child" style="width: 100%;">
  212. <view class="y-bc flex">
  213. <image src="../../../static/image/nodata.png" class="es-w-148 es-h-96 es-mt-20"></image>
  214. <view class="es-c-33 es-fs-26 x-c es-mt-20 es-mb-40">暂无疗法</view>
  215. </view>
  216. </view>
  217. </view>
  218. <!-- 签到弹窗 -->
  219. <signPop ref="signPop" :userSign="userSign" />
  220. <!-- <healthButlerPop :show="showMask" @close="closeAct" /> -->
  221. </mescroll-body>
  222. </view>
  223. </template>
  224. <script>
  225. import {getAiDoctorList} from '@/api/agent.js'
  226. import {
  227. getArticleList
  228. } from "@/api/article.js"
  229. import {
  230. getDoctorList
  231. } from '@/api/doctor.js'
  232. import {
  233. getPackageList
  234. } from '@/api/package.js'
  235. import docterItem from "../components/docterItem.vue";
  236. import goodsItem from "../components/goodsItem.vue"
  237. import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
  238. import mescrollBody from "@/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body.vue";
  239. // import permision from "@/js_sdk/wa-permission/permission.js"
  240. import {
  241. getAdvList,
  242. getAppAdvList
  243. } from '@/api/adv.js'
  244. import {
  245. getUserSign
  246. } from '@/api/integral';
  247. import {
  248. getLocation
  249. } from '@/api/index.js'
  250. import {
  251. getRecommendRoleList
  252. } from "@/api/ai.js"
  253. // #ifdef APP-PLUS
  254. const idCode = uni.requireNativePlugin('Ba-IdCode')
  255. // #endif
  256. // const idCode = uni.requireNativePlugin('Ba-IdCode')
  257. export default {
  258. mixins: [MescrollMixin], // 使用mixin
  259. components: {
  260. mescrollBody,
  261. docterItem,
  262. goodsItem
  263. },
  264. props: ['source'],
  265. data() {
  266. return {
  267. keyword: "",
  268. advImgs: [],
  269. advs: [],
  270. midAdvs: [],
  271. doctors: [],
  272. packages: [],
  273. company: null,
  274. newCustomerCounts: 0,
  275. fullCustomerCounts: 0,
  276. myCustomerCounts: 0,
  277. dayOrderCounts: 0,
  278. doBuyOrderCounts: 0,
  279. mescroll: null,
  280. downOption: { //下拉刷新
  281. use: true,
  282. auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)
  283. },
  284. upOption: { //上拉加载
  285. auto: false, // 不自动加载
  286. page: {
  287. num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
  288. size: 10 // 每页数据的数量
  289. },
  290. noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看; 默认5
  291. empty: {
  292. tip: '~ 暂无疗法 ~' // 提示
  293. // btnText: '去看看'
  294. },
  295. use: false
  296. },
  297. tdlist: [],
  298. show: false,
  299. user: {
  300. avatar: "",
  301. userName: this.$qconfig.appName,
  302. mobile: ""
  303. },
  304. userScrollTop: 0,
  305. fixedTop: false, // 是否固定头部
  306. connectStatus: '未链接',
  307. deviceToken: '',
  308. udid: '',
  309. registrationID: '',
  310. appkey: '',
  311. imageList: ["../../../static/image/home/banner.png"],
  312. userBenefits: {},
  313. userSign: {},
  314. navList: [{
  315. img: "/static/image/home1/icon/yssl_icon.png",
  316. // img: "/static/newYear/yssl_icon52.png",
  317. name: "药膳食疗",
  318. pageUrl: "/pages/article/medicatedFoodList"
  319. },
  320. {
  321. img: "/static/image/home1/icon/jlxw_icon.png",
  322. // img: "/static/newYear/jlxw_icon52.png",
  323. name: "经络穴位",
  324. pageUrl: "/pages/article/vesselList"
  325. },
  326. // {
  327. // img: "/static/image/home1/icon/wdzq_icon.png",
  328. // name: "问答专区",
  329. // pageUrl:"/pages/article/questionsList"
  330. // },
  331. // {
  332. // img: "/static/image/home1/icon/jkzc_icon.png",
  333. // name: "健康自测",
  334. // pageUrl:"/pages/article/testList"
  335. // },
  336. {
  337. img: "/static/image/home1/icon/jb_icon.png",
  338. // img: "/static/newYear/jb_icon52.png",
  339. name: "疾病",
  340. pageUrl: "/pages/article/diseaseList"
  341. }, {
  342. img: "/static/image/home1/icon/zytj_icon1.png",
  343. // img: "/static/newYear/zytj_icon52.png",
  344. name: "中药图解",
  345. pageUrl: "/pages/article/chineseMedicineList"
  346. },
  347. {
  348. img: "/static/image/home1/icon/mfjy_icon.png",
  349. // img: "/static/newYear/mfjy_icon52.png",
  350. name: "名方今用",
  351. pageUrl: "/pages/article/famousPrescribeList"
  352. }, {
  353. img: "/static/image/home1/icon/yssp_icon.png",
  354. // img: "/static/newYear/ysjt_icon52.png",
  355. name: "养生讲堂",
  356. pageUrl: "/pages/doctor/doctorArticleList"
  357. }
  358. // , {
  359. // img:"/static/image/home1/icon/ys_icon.png",
  360. // name: "医书",
  361. // pageUrl:"/pages/doctor/doctorArticleList"
  362. // }
  363. ],
  364. step: {
  365. name: 'indexguide',
  366. guideList: [{
  367. el: '',
  368. tips: '上下滑动,了解河山恒康',
  369. next: '',
  370. }, {
  371. el: '#indexguide1',
  372. tips: '药膳、经络、疾病医学百科知识快速查询',
  373. next: '下一步',
  374. }, {
  375. el: '#indexguide2',
  376. tips: '权威医生、药师实时在线咨询',
  377. next: '下一步',
  378. }, {
  379. el: '#indexguide3',
  380. tips: '免费健康自测,了解自身健康情况',
  381. next: '下一步',
  382. }, {
  383. el: '#indexguide4',
  384. childEl: ".indexguide4-child",
  385. tips: '购买健康疗法享健康',
  386. next: '完成',
  387. }]
  388. },
  389. guideIndex: null,
  390. showMask: true,
  391. ailist: [],
  392. current: 0,
  393. swHeight: 0,
  394. articles: [],
  395. dataList: [], //智能体医生
  396. }
  397. },
  398. // onShow() {
  399. // this.getAdvList();
  400. // this.getAppAdvList();
  401. // this.getDoctorList();
  402. // this.getPackageList(1);
  403. // },
  404. // onLoad() {
  405. // // #ifdef APP-PLUS
  406. // if(plus.runtime.isAgreePrivacy()) {
  407. // // 用户同意隐私政策,可以调用限制API
  408. // //this.doGetLocation();
  409. // //uni.showToast({icon:'none',title: "已同意隐私政策"});
  410. // this.registerIdCode();
  411. // }else{
  412. // //uni.showToast({icon:'none',title: "未同意隐私政策"});
  413. // }
  414. // // #endif
  415. // let that=this;
  416. // uni.setNavigationBarTitle({
  417. // title: that.$qconfig.appName
  418. // });
  419. // this.guideIndex=uni.getStorageSync("indexguide");
  420. // if(this.$isLogin()){
  421. // this.getUserSign();
  422. // }else{
  423. // let signStr="[{\"signNum\":10,\"sort\":1,\"day\":\"第1天\"},{\"signNum\":20,\"sort\":2,\"day\":\"第2天\"},{\"signNum\":30,\"sort\":3,\"day\":\"第3天\"},{\"signNum\":40,\"sort\":4,\"day\":\"第4天\"},{\"signNum\":50,\"sort\":5,\"day\":\"第5天\"},{\"signNum\":50,\"sort\":6,\"day\":\"第6天\"},{\"signNum\":50,\"sort\":7,\"day\":\"第7天\"}]";
  424. // this.$nextTick(()=>{
  425. // this.userSign={"signNum":0,"isDaySign":0,"integral":0,"sign":JSON.parse(signStr) };
  426. // if(this.guideIndex){
  427. // this.$refs.signPop.open();
  428. // }
  429. // });
  430. // }
  431. // },
  432. created() {
  433. this.guideIndex = uni.getStorageSync("indexguide");
  434. if (this.$isLogin() && this.source != 'course') {
  435. this.getUserSign();
  436. } else {
  437. let signStr =
  438. "[{\"signNum\":10,\"sort\":1,\"day\":\"第1天\"},{\"signNum\":20,\"sort\":2,\"day\":\"第2天\"},{\"signNum\":30,\"sort\":3,\"day\":\"第3天\"},{\"signNum\":40,\"sort\":4,\"day\":\"第4天\"},{\"signNum\":50,\"sort\":5,\"day\":\"第5天\"},{\"signNum\":50,\"sort\":6,\"day\":\"第6天\"},{\"signNum\":50,\"sort\":7,\"day\":\"第7天\"}]";
  439. this.$nextTick(() => {
  440. this.userSign = {
  441. "signNum": 0,
  442. "isDaySign": 0,
  443. "integral": 0,
  444. "sign": JSON.parse(signStr)
  445. };
  446. if (this.guideIndex && this.source != 'course') {
  447. this.$refs.signPop.open();
  448. }
  449. });
  450. }
  451. uni.$on('getIndexScanCode', (data) => {
  452. this.$handleBindCompanyFsUser(data)
  453. });
  454. if(!this.$isIos()){
  455. let item= {
  456. img: "/static/image/home1/icon/aiTongue.png",
  457. name: "AI舌诊",
  458. pageUrl:"/pages/user/tongue/index"
  459. };
  460. let item1= {
  461. img: "/static/image/home1/icon/jkzc_icon.png",
  462. name: "健康自测",
  463. pageUrl:"/pages/article/testList"
  464. };
  465. this.navList.splice(2, 0, item1);
  466. this.navList.unshift(item);
  467. }
  468. this.getData()
  469. },
  470. beforeDestroy() {
  471. uni.$off("getIndexScanCode")
  472. },
  473. methods: {
  474. getData() {
  475. let that = this;
  476. let data = {
  477. pageNum: 1,
  478. pageSize: 5
  479. };
  480. getAiDoctorList(data).then(res => {
  481. if (res.code == 200) {
  482. that.dataList = res.data.list;
  483. } else {
  484. uni.showToast({
  485. icon: 'none',
  486. title: "请求失败",
  487. });
  488. that.dataList = [];
  489. }
  490. });
  491. },
  492. closeAct() {
  493. this.showMask = false;
  494. },
  495. initReady() {
  496. },
  497. initShow() {
  498. this.getAdvList();
  499. this.getAppAdvList();
  500. this.getDoctorList();
  501. this.getArticleList();
  502. this.getPackageList(1);
  503. this.getAiTui()
  504. },
  505. mescrollInit(mescroll) {
  506. this.mescroll = mescroll;
  507. },
  508. /*下拉刷新的回调 */
  509. downCallback(mescroll) {
  510. this.getAiTui()
  511. setTimeout(() => {
  512. this.mescroll.endSuccess();
  513. }, 500)
  514. },
  515. getAiTui() {
  516. getRecommendRoleList().then((res => {
  517. if (res.code == 200) {
  518. const result = [];
  519. while (res.list && res.list.length) {
  520. result.push(res.list.splice(0, 4)); // 提取前 groupSize 个元素并存储
  521. }
  522. this.ailist = result
  523. this.updateSwiperHeight()
  524. }
  525. }))
  526. },
  527. animationfinish(event) {
  528. this.current = event.detail.current
  529. this.updateSwiperHeight()
  530. },
  531. updateSwiperHeight() {
  532. if (this.ailist[this.current].length > 2) {
  533. this.swHeight = 340;
  534. } else {
  535. this.swHeight = 160;
  536. }
  537. },
  538. groupArray(arr, groupSize) {
  539. const result = [];
  540. for (let i = 0; i < arr.length; i += groupSize) {
  541. const group = arr.slice(i, i + groupSize);
  542. const groupName = `arry${Math.floor(i / groupSize) + 1}`; // 生成动态键名
  543. const groupObject = {};
  544. groupObject[groupName] = group;
  545. result.push(groupObject);
  546. }
  547. return result;
  548. },
  549. getAdvList() {
  550. //联网加载数据
  551. var that = this;
  552. var data = {
  553. advType: 1
  554. };
  555. getAdvList(data).then(res => {
  556. if (res.code == 200) {
  557. that.advImgs = [];
  558. that.advs = [];
  559. res.data.forEach(function(element) {
  560. if (element.imageUrl != null && element.imageUrl != "") {
  561. that.advs.push(element);
  562. that.advImgs.push(element.imageUrl);
  563. }
  564. });
  565. } else {
  566. uni.showToast({
  567. icon: 'none',
  568. title: "请求失败",
  569. });
  570. }
  571. });
  572. },
  573. getAppAdvList() {
  574. getAppAdvList().then(res => {
  575. if (res.code == 200) {
  576. this.midAdvs = res.data;
  577. } else {
  578. uni.showToast({
  579. icon: 'none',
  580. title: "请求失败"
  581. });
  582. }
  583. });
  584. },
  585. getDoctorList() {
  586. //联网加载数据
  587. var that = this;
  588. var data = {
  589. isTui: 1,
  590. pageNum: 1,
  591. pageSize: 10,
  592. };
  593. getDoctorList(data).then(res => {
  594. if (res.code == 200) {
  595. this.doctors = res.data.list;
  596. this.doctors.forEach(function(value, index, array) {
  597. value.prices = JSON.parse(value.priceJson)
  598. });
  599. } else {
  600. uni.showToast({
  601. icon: 'none',
  602. title: "请求失败",
  603. });
  604. }
  605. });
  606. },
  607. getArticleList() {
  608. let param = {
  609. isTui: 1,
  610. pageNum: 1,
  611. pageSize: 10,
  612. };
  613. getArticleList(param).then(res => {
  614. if (res.code == 200) {
  615. this.articles = res.data.list;
  616. } else {
  617. uni.showToast({
  618. icon: 'none',
  619. title: "请求失败",
  620. });
  621. }
  622. });
  623. },
  624. getPackageList(pageNum) {
  625. //联网加载数据
  626. var that = this;
  627. var data = {
  628. isShow: 1,
  629. pageNum: pageNum,
  630. pageSize: 10
  631. };
  632. getPackageList(data).then(res => {
  633. if (res.code == 200) {
  634. this.packages = res.data.list;
  635. } else {
  636. uni.showToast({
  637. icon: 'none',
  638. title: "请求失败"
  639. });
  640. }
  641. });
  642. },
  643. getUserSign() {
  644. getUserSign().then(res => {
  645. if (res.code == 200) {
  646. this.userSign = {
  647. "signNum": res.signNum,
  648. "isDaySign": res.isDaySign,
  649. "integral": res.integral,
  650. "sign": JSON.parse(res.sign)
  651. };
  652. this.$nextTick(() => {
  653. if (this.guideIndex && !res.isDaySign) {
  654. this.$refs.signPop.open();
  655. }
  656. });
  657. }
  658. },
  659. rej => {}
  660. );
  661. },
  662. midAvTap(item, index) {
  663. if (index == 0) {
  664. this.navToMinProgram();
  665. return;
  666. }
  667. // #ifndef MP-WEIXIN
  668. if (!this.$isEmpty(item.appAdvUrl)) {
  669. this.navTo(item.appAdvUrl);
  670. }
  671. // #endif
  672. // #ifdef MP-WEIXIN
  673. if (!this.$isEmpty(item.advUrl)) {
  674. this.navTo(item.advUrl);
  675. }
  676. // #endif
  677. },
  678. // 页面跳转
  679. navTo(url) {
  680. console.log("qxj navTo url:" + url);
  681. uni.navigateTo({
  682. url: url
  683. })
  684. },
  685. loginNavTo(url) {
  686. if (!this.$isLogin()) {
  687. this.$showLoginPage();
  688. return;
  689. }
  690. uni.navigateTo({
  691. url: url
  692. });
  693. },
  694. navVideo() {
  695. console.log("navVideo");
  696. uni.navigateTo({
  697. url: "/pages/course/video/living-app"
  698. });
  699. },
  700. showQidai() {
  701. //uni.showToast({title: "功能完善中,敬请期待...",icon:"none"});
  702. },
  703. handleAdvClick(index) {
  704. var ad = this.advs[index];
  705. console.log(ad.appAdvUrl);
  706. if (ad.showType == 1) {
  707. uni.setStorageSync('url', ad.appAdvUrl);
  708. uni.navigateTo({
  709. url: "h5"
  710. })
  711. } else if (ad.showType == 3) {
  712. uni.setStorageSync('content', ad.content);
  713. uni.navigateTo({
  714. url: "content"
  715. })
  716. } else {
  717. uni.navigateTo({
  718. url: ad.appAdvUrl
  719. })
  720. }
  721. },
  722. search() {
  723. },
  724. topNavTo(url, index) {
  725. if (index == 0) {
  726. //this.navTo(url);
  727. this.loginNavTo(url);
  728. } else {
  729. this.navTo(url);
  730. }
  731. },
  732. navToMinProgram() {
  733. // #ifdef APP-PLUS
  734. plus.share.getServices(res => {
  735. let sweixin = null;
  736. sweixin = res.find(i => i.id === 'weixin')
  737. if (sweixin) { // 分享跳转到微信小程序
  738. sweixin.launchMiniProgram({
  739. id: "gh_fd0ff58d3f4d", //河山恒康甄选生活馆小程序原生id
  740. path: "", // 打开小程序的页面路径,不传默认跳转首页
  741. type: 0 //微信小程序版本类型,可取值: 0-正式版; 1-测试版; 2-体验版。 默认值为0。
  742. });
  743. } else {
  744. uni.showToast({
  745. title: '请安装微信',
  746. icon: 'none'
  747. })
  748. }
  749. }, err => {
  750. console.log("分享失败"); // 获取分享服务列表失败
  751. });
  752. // #endif
  753. }
  754. }
  755. }
  756. </script>
  757. <style scoped lang="scss">
  758. @mixin u-flex($flexD, $alignI, $justifyC) {
  759. display: flex;
  760. flex-direction: $flexD;
  761. align-items: $alignI;
  762. justify-content: $justifyC;
  763. }
  764. .bg-img {
  765. position: fixed;
  766. width: 100%;
  767. height: 524rpx;
  768. top: 0;
  769. left: 0;
  770. right: 0;
  771. bottom: 0;
  772. z-index: 0;
  773. }
  774. .bgConent {
  775. background-image: url("@/static/image/home/home_top_bg.png");
  776. background-repeat: no-repeat;
  777. background-size: 100%;
  778. background-color: #F4F7FA;
  779. position: absolute;
  780. width: 100%;
  781. height: 524rpx;
  782. top: 0;
  783. left: 0;
  784. right: 0;
  785. bottom: 0;
  786. z-index: 0;
  787. }
  788. .grace-page-header {
  789. position: fixed;
  790. width: 100%;
  791. left: 0;
  792. top: 0;
  793. z-index: 98;
  794. border-bottom: 0px solid #FFFFFF;
  795. .grace-page-status-bar {
  796. width: 100%;
  797. height: var(--status-bar-height);
  798. }
  799. .grace-page-header-nav {
  800. width: 100%;
  801. display: flex;
  802. flex-direction: row;
  803. flex-wrap: nowrap;
  804. align-items: center;
  805. justify-content: space-between;
  806. }
  807. }
  808. .nav_box {
  809. width: 100%;
  810. .status_bar {
  811. height: var(--status-bar-height);
  812. width: 100%;
  813. }
  814. .nav_bar {
  815. height: 44px;
  816. width: 100%;
  817. }
  818. }
  819. .title {
  820. font-family: PingFang SC, PingFang SC;
  821. font-weight: 500;
  822. font-size: 32rpx;
  823. color: #222222;
  824. line-height: 44rpx;
  825. }
  826. .home-contentTop {
  827. padding-top: 0 !important;
  828. }
  829. .home-content {
  830. width: 100%;
  831. box-sizing: border-box;
  832. // overflow: hidden;
  833. // margin-top: var(--status-bar-height);
  834. // padding-top: 24rpx;
  835. font-family: PingFang SC, PingFang SC;
  836. font-weight: 400;
  837. font-size: 24rpx;
  838. color: #999999;
  839. // background-image: url("@/static/image/home/home_top_bg.png");
  840. background-repeat: no-repeat;
  841. background-size: 100%;
  842. // box-sizing: border-box;
  843. padding-top: calc(var(--status-bar-height) + 44px);
  844. // padding-bottom: var(--window-bottom);
  845. // font-family: PingFang SC, PingFang SC;
  846. // font-weight: 400;
  847. // font-size: 24rpx;
  848. // color: #999999;
  849. position: relative;
  850. // z-index: 2;
  851. }
  852. .content-header {
  853. height: 80rpx;
  854. padding: 0 24rpx;
  855. @include u-flex(row, center, space-between);
  856. &-l {
  857. font-family: PingFang SC, PingFang SC;
  858. font-weight: 500;
  859. font-size: 26rpx;
  860. color: #FFFFFF;
  861. line-height: 28rpx;
  862. @include u-flex(row, center, flex-start);
  863. .address {
  864. width: 38rpx;
  865. height: 38rpx;
  866. margin-right: 6rpx;
  867. }
  868. .arrow_down {
  869. width: 24rpx;
  870. height: 24rpx;
  871. margin-left: 8rpx;
  872. }
  873. }
  874. &-r {
  875. @include u-flex(row, center, flex-start);
  876. view {
  877. font-family: PingFang SC, PingFang SC;
  878. font-weight: 400;
  879. font-size: 22rpx;
  880. color: #FFFFFF;
  881. line-height: 24rpx;
  882. @include u-flex(column, center, space-between);
  883. width: 80rpx;
  884. height: 80rpx;
  885. padding-top: 2rpx;
  886. padding-bottom: 6rpx;
  887. }
  888. image {
  889. width: 40rpx;
  890. height: 40rpx;
  891. }
  892. }
  893. }
  894. .search-box {
  895. width: calc(100% - 60rpx);
  896. height: 70rpx;
  897. display: flex;
  898. flex-direction: row;
  899. align-items: center;
  900. justify-content: space-between;
  901. background: rgba(255, 255, 255, 0.3);
  902. border-radius: 34rpx;
  903. border: 2rpx solid #FFFFFF;
  904. border-right: none;
  905. margin: 30rpx;
  906. margin-top: 10rpx;
  907. margin-bottom: 10rpx;
  908. padding-left: 30rpx;
  909. position: relative;
  910. z-index: 10;
  911. .left {
  912. display: flex;
  913. flex-direction: row;
  914. align-items: center;
  915. justify-content: flex-start;
  916. flex: 1;
  917. }
  918. image {
  919. width: 28upx;
  920. height: 28upx;
  921. margin-right: 16upx;
  922. }
  923. .input-text {
  924. color: #fff;
  925. font-size: 24rpx;
  926. height: 70rpx;
  927. line-height: 70rpx;
  928. width: 100%;
  929. }
  930. .button {
  931. background: #FF5030;
  932. border-radius: 29rpx;
  933. width: 108rpx;
  934. height: 54rpx;
  935. line-height: 54rpx;
  936. color: #fff;
  937. font-size: 26rpx;
  938. margin-right: 10rpx;
  939. }
  940. }
  941. ::v-deep .uni-searchbar__text-placeholder,
  942. .uni-input-placeholder {
  943. color: #fff;
  944. font-weight: 400;
  945. font-size: 24rpx;
  946. }
  947. .place-hold {
  948. color: #ffffff;
  949. font-weight: 400;
  950. font-size: 24rpx;
  951. }
  952. .search-box1 {
  953. height: 68rpx;
  954. margin: 26rpx 24rpx 10rpx 24rpx;
  955. background: rgba(255, 255, 255, 0.3);
  956. border-radius: 34rpx;
  957. border: 2rpx solid #FFFFFF;
  958. border-right: none;
  959. background-color: blue;
  960. overflow: hidden;
  961. @include u-flex(row, center, space-between);
  962. .search {
  963. flex: 1;
  964. padding: 0 0 0 12rpx;
  965. background-color: transparent;
  966. font-weight: 400;
  967. font-size: 24rpx;
  968. }
  969. image {
  970. width: 24rpx;
  971. height: 24rpx;
  972. }
  973. ::v-deep .uni-searchbar__text-placeholder,
  974. .uni-input-placeholder {
  975. color: #fff;
  976. font-weight: 400;
  977. font-size: 24rpx;
  978. }
  979. .search-text {
  980. flex-shrink: 0;
  981. width: 144rpx;
  982. height: 68rpx;
  983. background: #FFFFFF;
  984. border-radius: 34rpx 34rpx 34rpx 34rpx;
  985. font-family: PingFang SC, PingFang SC;
  986. font-weight: 600;
  987. font-size: 24rpx;
  988. color: #FF5030;
  989. line-height: 68rpx;
  990. text-align: center;
  991. }
  992. }
  993. .swiper-box {
  994. padding: 22rpx 0;
  995. padding-bottom: 0;
  996. .swiper {
  997. width: 702rpx;
  998. height: 228rpx;
  999. margin: 0 auto;
  1000. // background: #E75848;
  1001. border-radius: 20rpx;
  1002. .swiper-item {
  1003. width: 702rpx;
  1004. height: 228rpx;
  1005. image {
  1006. border-radius: 20rpx;
  1007. }
  1008. }
  1009. }
  1010. ::v-deep {
  1011. .uni-swiper-dot {
  1012. width: 10rpx;
  1013. height: 10rpx;
  1014. background: rgba(255, 255, 255, 0.5);
  1015. }
  1016. .uni-swiper-dot-active {
  1017. width: 24rpx;
  1018. height: 10rpx;
  1019. background-color: #FFFFFF;
  1020. border-radius: 5rpx 5rpx 5rpx 5rpx;
  1021. }
  1022. }
  1023. }
  1024. .nav {
  1025. background: #FFFFFF;
  1026. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1027. padding-top: 24rpx;
  1028. margin: 24rpx 24rpx 0 24rpx;
  1029. position: relative;
  1030. z-index: 2;
  1031. @include u-flex(row, center, flex-start);
  1032. flex-wrap: wrap;
  1033. .grid-item {
  1034. width: 25%;
  1035. }
  1036. .grid-item-box {
  1037. @include u-flex(column, center, flex-start);
  1038. font-family: PingFang SC, PingFang SC;
  1039. font-weight: 400;
  1040. font-size: 24rpx;
  1041. color: #222222;
  1042. line-height: 28rpx;
  1043. margin-bottom: 24rpx;
  1044. .image {
  1045. height: 104rpx;
  1046. width: 104rpx;
  1047. }
  1048. .image1 {
  1049. height: 85rpx;
  1050. width: 85rpx;
  1051. margin-top: 6rpx;
  1052. margin-bottom: 12rpx;
  1053. }
  1054. }
  1055. }
  1056. .scroll-X {
  1057. white-space: nowrap;
  1058. width: 100%;
  1059. padding-left: 24rpx;
  1060. box-sizing: border-box;
  1061. margin-top: 24rpx;
  1062. font-family: PingFang SC, PingFang SC;
  1063. font-weight: 400;
  1064. font-size: 24rpx;
  1065. color: #757575;
  1066. line-height: 28rpx;
  1067. .scroll-item {
  1068. display: inline-block;
  1069. width: 216rpx;
  1070. height: 132rpx;
  1071. padding: 20rpx 24rpx 20rpx 20rpx;
  1072. box-sizing: border-box;
  1073. margin-right: 16rpx;
  1074. border-radius: 16rpx 16rpx 16rpx 16rpx;
  1075. border: 2rpx solid #FFFFFF;
  1076. position: relative;
  1077. .bg_img {
  1078. position: absolute;
  1079. width: calc(100% - 2rpx);
  1080. height: 132rpx;
  1081. left: 0;
  1082. right: 0;
  1083. top: 0;
  1084. bottom: 0;
  1085. z-index: 0;
  1086. }
  1087. &-title {
  1088. margin-bottom: 6rpx;
  1089. }
  1090. &-desc {
  1091. width: 100%;
  1092. @include u-flex(row, center, space-between)
  1093. }
  1094. .arrow_icon {
  1095. height: 24rpx;
  1096. width: 24rpx;
  1097. }
  1098. }
  1099. .zyss_bg {
  1100. background: url("@/static/image/home1/index_zyss_bg.png") no-repeat right top / 132rpx 132rpx, linear-gradient(270deg, #FFF9F8 0%, #FFF3EF 100%);
  1101. }
  1102. .gjmz_bg {
  1103. background: url("@/static/image/home1/index_gjmz_bg.png") no-repeat right top / 132rpx 132rpx, linear-gradient(270deg, #FFFCF3 0%, #FFF9E8 100%);
  1104. }
  1105. .pfgl_bg {
  1106. background: url("@/static/image/home1/index_pfgl_bg.png") no-repeat right top / 132rpx 132rpx, linear-gradient(270deg, #F0F7FF 0%, #E0EEFF 100%);
  1107. }
  1108. .zytl_bg {
  1109. background: url("@/static/image/home1/index_zytl_bg.png") no-repeat right top / 132rpx 132rpx, linear-gradient(270deg, #EFFAF9 0%, #E7FFFD 100%);
  1110. }
  1111. }
  1112. .banner-nav {
  1113. padding: 20rpx 24rpx;
  1114. display: flex;
  1115. flex-wrap: wrap;
  1116. margin-right: -16rpx;
  1117. margin-bottom: -16rpx;
  1118. &-item {
  1119. width: 343rpx;
  1120. height: 200rpx;
  1121. box-sizing: border-box;
  1122. background: #fff;
  1123. border-radius: 16rpx 16rpx 16rpx 16rpx;
  1124. padding: 26rpx 0 0 24rpx;
  1125. margin-right: 16rpx;
  1126. margin-bottom: 16rpx;
  1127. font-family: PingFang SC, PingFang SC;
  1128. font-weight: 400;
  1129. font-size: 24rpx;
  1130. color: #757575;
  1131. line-height: 32rpx;
  1132. background-repeat: no-repeat;
  1133. background-size: 208rpx 148rpx;
  1134. background-position: right bottom;
  1135. .kswz {
  1136. color: #4FA59C;
  1137. }
  1138. .jkhz {
  1139. color: #FF5030;
  1140. }
  1141. .yyzx {
  1142. color: #E69A22;
  1143. }
  1144. .zjyz {
  1145. color: #3A76D0;
  1146. }
  1147. }
  1148. .kswz-bg {
  1149. background-image: url("@/static/image/home1/index_kswz_bg.png");
  1150. }
  1151. .jkhz-bg {
  1152. background-image: url("@/static/image/home1/index_jkhz_bg.png");
  1153. }
  1154. .yyzx-bg {
  1155. background-image: url("@/static/image/home1/index_yyzx_bg.png");
  1156. }
  1157. .zjyz-bg {
  1158. background-image: url("@/static/image/home1/index_zjyz_bg.png");
  1159. }
  1160. }
  1161. .box-nav {
  1162. width: 100%;
  1163. padding: 16rpx 24rpx;
  1164. box-sizing: border-box;
  1165. display: flex;
  1166. justify-content: space-between;
  1167. &-right {
  1168. @include u-flex(row, center, flex-start);
  1169. }
  1170. .right-arrow {
  1171. height: 48rpx;
  1172. width: 48rpx;
  1173. }
  1174. }
  1175. .selfrated-health {
  1176. @include u-flex(row, center, space-around);
  1177. padding: 34rpx 0;
  1178. background-color: #fff;
  1179. border-radius: 16rpx 16rpx 16rpx 16rpx;
  1180. margin: 0 24rpx 20rpx 24rpx;
  1181. &-item {
  1182. width: 144rpx;
  1183. height: 144rpx;
  1184. @include u-flex(column, center, center);
  1185. flex-wrap: wrap;
  1186. image {
  1187. width: 72rpx;
  1188. height: 72rpx;
  1189. margin-bottom: 28rpx;
  1190. }
  1191. }
  1192. }
  1193. .scroll-container {
  1194. white-space: nowrap;
  1195. /* 确保子元素不换行 */
  1196. display: flex;
  1197. /* 使用flex布局 */
  1198. padding-left: 24rpx;
  1199. }
  1200. .box-goods {
  1201. @include u-flex(row, center, flex-start);
  1202. flex-wrap: wrap;
  1203. margin-right: -18rpx;
  1204. margin-bottom: -18rpx;
  1205. padding: 8rpx 24rpx 20rpx 24rpx;
  1206. }
  1207. .box-doctor {
  1208. @include u-flex(row, center, flex-start);
  1209. flex-wrap: wrap;
  1210. margin-right: -18rpx;
  1211. margin-bottom: -18rpx;
  1212. padding: 8rpx 24rpx 20rpx 0rpx;
  1213. display: inline-flex;
  1214. /* 确保子元素水平排列 */
  1215. }
  1216. .gapitem {
  1217. margin: 0 18rpx 18rpx 0;
  1218. }
  1219. .swiper-doctor {
  1220. min-height: 410rpx;
  1221. padding-left: 24rpx;
  1222. }
  1223. .ai-banner {
  1224. // box-sizing: border-box;
  1225. // padding: 12rpx 17rpx;
  1226. &-swiper-item {
  1227. @include u-flex(row, flex-start, flex-start);
  1228. flex-wrap: wrap;
  1229. margin: 0 22rpx;
  1230. margin-right: -20rpx;
  1231. margin-bottom: -20rpx;
  1232. }
  1233. .ai-banner-img {
  1234. width: 343rpx;
  1235. height: 160rpx;
  1236. overflow: hidden;
  1237. border-radius: 16rpx 16rpx 16rpx 16rpx;
  1238. margin-right: 20rpx;
  1239. margin-bottom: 20rpx;
  1240. }
  1241. }
  1242. .article-box {
  1243. background-color: #fff;
  1244. padding: 24rpx;
  1245. margin-bottom: 20rpx;
  1246. border-radius: 16rpx;
  1247. display: flex;
  1248. flex-direction: column;
  1249. align-items: flex-start;
  1250. justify-content: flex-start;
  1251. .item {
  1252. width: 100%;
  1253. margin-bottom: 20rpx;
  1254. display: flex;
  1255. align-items: flex-start;
  1256. justify-content: flex-start;
  1257. &:last-child {
  1258. margin-bottom: 0rpx;
  1259. }
  1260. .left {
  1261. flex: 1;
  1262. height: 160rpx;
  1263. margin-right: 15rpx;
  1264. display: flex;
  1265. flex-direction: column;
  1266. align-items: flex-start;
  1267. justify-content: space-between;
  1268. .title {
  1269. font-size: 28upx;
  1270. font-family: PingFang SC;
  1271. font-weight: bold;
  1272. color: #111111;
  1273. }
  1274. .views {
  1275. font-size: 24upx;
  1276. font-family: PingFang SC;
  1277. color: #9a9a9c;
  1278. }
  1279. }
  1280. .right {
  1281. image {
  1282. border-radius: 10rpx;
  1283. width: 220rpx;
  1284. height: 160rpx;
  1285. border: 1px solid #eeeeee;
  1286. }
  1287. }
  1288. }
  1289. }
  1290. // 医生智能体
  1291. .doctorAgentTip {
  1292. border-radius: 48rpx 48rpx 48rpx 4rpx;
  1293. border: 1rpx solid #FFA599;
  1294. color: #FF5030;
  1295. padding: 2rpx 12rpx;
  1296. }
  1297. .doctorIntelligentAgent {
  1298. display: inline-block;
  1299. width: 268rpx;
  1300. height: 444rpx;
  1301. margin-right: 18rpx;
  1302. box-sizing: border-box;
  1303. background-size: 100% 100%;
  1304. background-repeat: no-repeat;
  1305. .doctorIntelligentAgent-image {
  1306. width: 268rpx;
  1307. height: 234rpx;
  1308. }
  1309. .line {
  1310. display: inline-block;
  1311. width: 2rpx;
  1312. height: 22rpx;
  1313. background: #999999;
  1314. border-radius: 1rpx;
  1315. }
  1316. .doctorIntelligentAgent-btn {
  1317. width: 132rpx;
  1318. height: 48rpx;
  1319. background: linear-gradient(136deg, #EE7D4E 0%, #E86235 100%);
  1320. border-radius: 86rpx;
  1321. }
  1322. }
  1323. </style>