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