|
|
@@ -1,2315 +1,130 @@
|
|
|
<template>
|
|
|
- <view class="content">
|
|
|
- <!-- 背景图片 -->
|
|
|
- <image class="bg" src="../../static/images/yuexuan_home_top_bg.png" mode=""></image>
|
|
|
- <view>
|
|
|
- <view class="top-inner">
|
|
|
- <view class="fixed-top-box" :style="{ background: bg }">
|
|
|
- <!-- 这里是状态栏 -->
|
|
|
- <view class="status_bar" :style="{height: statusBarHeight}"></view>
|
|
|
- <view class="shop-block">
|
|
|
- <view class="shop">
|
|
|
- <image class="w40 h40" src="/static/images/shopping_car_icon.png"></image>
|
|
|
- </view>
|
|
|
+ <view class="w-all h-all flex flex-column bg-F5F7FA">
|
|
|
+ <image src="/static/images/yuexuan_home_top_bg.png" class="absolute top-0 left-0 zi-1 w-all h-266"></image>
|
|
|
+ <uni-nav-bar fixed :statusBar="true" left-icon="back" backgroundColor="" :border="false" rightWidth="0"
|
|
|
+ leftWidth="0">
|
|
|
+ <template v-slot:default>
|
|
|
+ <view class="scs-headr-default flex items-center h-44">
|
|
|
+ <view class="flex-1">
|
|
|
+ <view class="fw-500 fs-18 text-000000">芳华悦选</view>
|
|
|
+ <view class="fw-400 fs-12 text-999999">让家人放心吃健康安全的食品</view>
|
|
|
+ </view>
|
|
|
+ <view class="img-car flex items-center justify-center w-32 h-32 bg-white rounded-32">
|
|
|
+ <image class="w-20 h-20" src="/static/images/shopping_car_icon.png"></image>
|
|
|
</view>
|
|
|
- <view class="top-title">
|
|
|
- <view class="name">芳华悦选</view>
|
|
|
- <view class="dot">让家人放心吃健康安全的食品</view>
|
|
|
- </view>
|
|
|
- <!-- 搜索框、购物车、客服 -->
|
|
|
- <view class="func-cont">
|
|
|
- <view class="search-cont">
|
|
|
- <image class="icon-search" src="../../static/images/search.png" mode=""></image>
|
|
|
- <input type="text" disabled value="" placeholder="搜索商品"
|
|
|
- placeholder-style="font-size:28rpx;color:#BBBBBB;font-family: PingFang SC;"
|
|
|
- @click="toSearch" />
|
|
|
- <view class="search-button">搜索</view>
|
|
|
- </view>
|
|
|
- <!-- 购物车 -->
|
|
|
- <!-- <uni-badge size="small" :text="cartCount" absolute="rightTop" type="error">
|
|
|
- <view class="img-item" @click="goAuthUrl('../shopping/cart')">
|
|
|
- <image src="../../static/images/cart_wihte.png" mode=""></image>
|
|
|
- </view>
|
|
|
- </uni-badge> -->
|
|
|
- <view class="img-item" style="position: relative;">
|
|
|
- <image src="../../static/images/share_icon.png" mode=""></image>
|
|
|
- <button class="contact-btn" open-type="contact"></button>
|
|
|
- </view>
|
|
|
-
|
|
|
- <view class="img-item" style="position: relative;">
|
|
|
- <image src="../../static/images/new_hall_icon.png" mode=""></image>
|
|
|
- <button class="contact-btn" open-type="contact"></button>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <!-- <view class="tips">
|
|
|
-
|
|
|
- <view class="left"></view>
|
|
|
- <view class="right" @click="navTo('./cert')">资质证明</view>
|
|
|
- </view> -->
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <!-- 头部间距 -->
|
|
|
- <view style="padding-bottom:220rpx">
|
|
|
- <view class="status_bar" :style="{height: statusBarHeight}"></view>
|
|
|
- </view>
|
|
|
- <!-- 轮播图 -->
|
|
|
- <view class="banner-box">
|
|
|
- <view class="inner">
|
|
|
- <swiper class="swiper" :indicator-dots="true" :circular="true" :autoplay="true" :interval="3000"
|
|
|
- :duration="1000" indicator-color="rgba(255, 255, 255, 0.6)" indicator-active-color="#ffffff">
|
|
|
- <swiper-item class="swiper-item" v-for="(item,index) in advList" :key="index"
|
|
|
- @click="handleAdvClick(item)">
|
|
|
- <image :src="item.imageUrl" mode=""></image>
|
|
|
- </swiper-item>
|
|
|
- </swiper>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-
|
|
|
- <!-- tab切换 -->
|
|
|
- <view class="pub-tab-box">
|
|
|
- <view class="tab-inner">
|
|
|
- <view v-for="(item,index) in orderStatus" :key="index"
|
|
|
- :class="status ==item.value?'item active':'item'" @click="orderStatusChange(item)">
|
|
|
- <view class="text">
|
|
|
- {{ item.name }}
|
|
|
- <view class="tab-bg" v-show="status ==item.value"></view>
|
|
|
- <!-- <image v-show="status ==item.value" class="tab-bg" src="/static/images/tab_bg.png" mode=""> -->
|
|
|
- </image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <image class="white-gradient" src="/static/images/white_gradient_bg.png"></image>
|
|
|
</view>
|
|
|
- <image class="icon mr24" src="/static/images/product_section_icon.png"></image>
|
|
|
- <image class="icon" src="/static/images/home_filter_icon.png"></image>
|
|
|
- </view>
|
|
|
- <!-- 菜单 -->
|
|
|
- <view class="menu-content">
|
|
|
- <view class="menu-box">
|
|
|
- <Menu :list="menus" @menuClick="menuClick" v-if="menus.length>0" style="width:100%;"></Menu>
|
|
|
+ </template>
|
|
|
+ </uni-nav-bar>
|
|
|
+ <!-- 搜索栏 -->
|
|
|
+ <HomeSearch @onSearch="onSearch" />
|
|
|
+ <!-- tab栏 -->
|
|
|
+ <view class="scs-nav-bar px-12 mt-11 rounded-8 zi-10">
|
|
|
+ <view class="flex items-center relative ">
|
|
|
+ <scsScrollNavbar :tabsData="tabsData" :tabCurrentIndex="tabCurrentIndex" nameKey="name"
|
|
|
+ key="tabCurrentIndex" @tabChange="tabChange" />
|
|
|
+ <image class="w-32 h-32 absolute bottom-2.5 right-40 zi-10" src="/static/images/white_gradient_bg.png">
|
|
|
+ </image>
|
|
|
+ <view class="flex items-center justify-center">
|
|
|
+ <image class="w-16 h-16 ml-5 mr-12" src="/static/images/product_section_icon.png"></image>
|
|
|
+ <image class="w-16 h-16 mr-7" src="/static/images/home_filter_icon.png"></image>
|
|
|
</view>
|
|
|
</view>
|
|
|
-
|
|
|
+ <homeMenu :autoplay="false" :swiperList="menusData" />
|
|
|
</view>
|
|
|
-
|
|
|
- <!-- 在线问诊、处方查询 -->
|
|
|
- <view class="online-inquiry">
|
|
|
- <view class="item" @click="navTo('/pages_shopping/shopping/productSalesList')">
|
|
|
- <!-- <image class="bg-img" src="../../static/images/banner1.png" mode=""></image> -->
|
|
|
- <image class="bg-img"
|
|
|
- src="https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20250320/f2d3ba32a9344dc79b4df7c228189243.png"
|
|
|
- mode=""></image>
|
|
|
- <!-- <view class="inner">
|
|
|
- <text class="title">用药榜</text>
|
|
|
- <text class="sub-title"></text>
|
|
|
- <image src="https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20250320/f2d3ba32a9344dc79b4df7c228189243.png" mode=""></image>
|
|
|
- </view> -->
|
|
|
- </view>
|
|
|
- <view class="item" @click="navTo('/pages_course/livingList')">
|
|
|
- <image class="bg-img" src="/static/images/banner2.png" mode=""></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="index-cont">
|
|
|
- <!-- 医生团队 -->
|
|
|
- <!-- <view class="pub-item">
|
|
|
- <view class="pub-title-box">
|
|
|
- <text class="left">医生团队</text>
|
|
|
- <view class="right" @click="navTo('../doctor/doctorList')">
|
|
|
- <text class="text">全部医生</text>
|
|
|
- <image src="../../static/images/arrow_gray.png" mode=""></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="doc-cont">
|
|
|
- <view class="inner">
|
|
|
- <view class="item" v-for="(item,index) in doctorList" :key="index" @click="shopDoctor(item)">
|
|
|
- <view class="head-box">
|
|
|
- <image :src="item.headImg" mode="aspectFill"></image>
|
|
|
- </view>
|
|
|
- <text class="name ellipsis">{{ item.doctorName }}</text>
|
|
|
- <text class="position ellipsis">
|
|
|
- {{utils.getDictLabelName("doctorPosition",item.position)}}
|
|
|
- </text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view> -->
|
|
|
- <!-- <view class="pub-item">
|
|
|
- <view class="tabs">
|
|
|
- <view class="tab" @click="docTabChange(1)">
|
|
|
- <image v-if="docTab==1" class="img" src="../../static/images/tab1.png" mode=""></image>
|
|
|
- <view class="inner">
|
|
|
- <text :class="docTab == 1?'title active':'title'" >推荐医生</text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="tab" @click="docTabChange(2)">
|
|
|
- <image v-if="docTab==2" class="img" src="../../static/images/tab2.png" mode=""></image>
|
|
|
- <view class="inner">
|
|
|
- <text :class="docTab == 2?'title active':'title'" >推荐药师</text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="tab" @click="docTabChange(3)">
|
|
|
- <image v-if="docTab==3" class="img" src="../../static/images/tab3.png" mode=""></image>
|
|
|
- <view class="inner">
|
|
|
- <text :class="docTab == 3?'title active':'title'" >推荐营养师</text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="doc-tab-box">
|
|
|
- <view class="tab-inner" >
|
|
|
- <view
|
|
|
- v-for="(item,index) in depts"
|
|
|
- :key="index"
|
|
|
- :class="item.departmentId == deptId?'item active':'item'"
|
|
|
- @click="deptChange(item)"
|
|
|
- >
|
|
|
- <view class="text">
|
|
|
- {{ item.departmentName }}
|
|
|
- <image v-show="item.departmentId == deptId" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <image class="right-mask" src="../../static/images/mask.png" mode=""></image>
|
|
|
- </view>
|
|
|
- <view class="doc-list">
|
|
|
- <view class="item" v-for="(item,index) in doctorList" :key="index" @click="shopDoctor(item)"> -->
|
|
|
- <!-- 头像 -->
|
|
|
- <!-- <view class="head-box">
|
|
|
- <image :src="item.headImg" mode="aspectFill"></image>
|
|
|
- </view> -->
|
|
|
- <!-- 详细信息 -->
|
|
|
- <!-- <view class="info"> -->
|
|
|
- <!-- 姓名等 -->
|
|
|
- <!-- <view class="top">
|
|
|
- <text class="name">{{ item.doctorName }}</text>
|
|
|
- <view class="line"></view>
|
|
|
- <text class="other">{{utils.getDictLabelName("doctorPosition",item.position)}}</text>
|
|
|
- <view class="line"></view>
|
|
|
- <text class="other">{{ item.departmentName }}</text>
|
|
|
- </view> -->
|
|
|
- <!-- 单位 -->
|
|
|
- <!-- <view class="unit-box"> -->
|
|
|
- <!-- <view class="level">三甲</view> -->
|
|
|
- <!-- <view class="name">{{ item.hospitalName }}</view>
|
|
|
- </view> -->
|
|
|
- <!-- 擅长 -->
|
|
|
- <!-- <view class="expertise ellipsis2">
|
|
|
- 擅长:{{ item.doctorDesc }}
|
|
|
- </view> -->
|
|
|
- <!-- 评分 -->
|
|
|
- <!-- <view class="rate-box">
|
|
|
- <view class="star">
|
|
|
- <image src="../../static/images/star.png" mode=""></image>
|
|
|
- <text>{{ item.pings }}</text>
|
|
|
- </view>
|
|
|
- <view class="line"></view>
|
|
|
- <view class="num-box">
|
|
|
- <text class="label">接诊数</text>
|
|
|
- <text class="num">{{ item.orders }}</text>
|
|
|
- </view>
|
|
|
- <view class="line"></view>
|
|
|
- <view class="num-box">
|
|
|
- <text class="label">响应速度</text>
|
|
|
- <text class="num">{{ item.speed }}分钟</text>
|
|
|
- </view>
|
|
|
- </view> -->
|
|
|
- <!-- 价格 -->
|
|
|
- <!-- <view class="price-box">
|
|
|
- <view class="btn-item" v-for="(subitme) in item.price">
|
|
|
- <text class="label" >{{subitme.priceType==1?'图文':'语音'}}</text>
|
|
|
- <text class="num">¥{{subitme.price.toFixed(2)}}</text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="bottom-title" @click="navTo('../doctor/doctorList?doctorType='+docTab)">
|
|
|
- <text >{{allDoctorTitle}}</text>
|
|
|
- <image src="../../static/images/arrow3.png" mode=""></image>
|
|
|
- </view>
|
|
|
-
|
|
|
- </view>
|
|
|
- -->
|
|
|
- <!-- <view class="doc-cont">
|
|
|
- <view class="inner">
|
|
|
- <view class="item" v-for="(item,index) in doctorList" :key="index" @click="shopDoctor(item)">
|
|
|
- <view class="head-box">
|
|
|
- <image :src="item.headImg" mode="aspectFill"></image>
|
|
|
- </view>
|
|
|
- <text class="name ellipsis">{{ item.doctorName }}</text>
|
|
|
- <text class="position ellipsis">
|
|
|
- {{utils.getDictLabelName("doctorPosition",item.position)}}
|
|
|
- </text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view> -->
|
|
|
- <!-- </view> -->
|
|
|
- <!-- 问诊案例 -->
|
|
|
- <!-- <view class="pub-item">
|
|
|
- <view class="pub-title-box">
|
|
|
- <text class="left">问诊案例</text>
|
|
|
- <view class="right" @click="viewAll('doctorCase')">
|
|
|
- <text class="text">全部案例</text>
|
|
|
- <image src="../../static/images/arrow_gray.png" mode=""></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="inner">
|
|
|
- <view class="pub-tab-box">
|
|
|
- <view class="tab-inner">
|
|
|
- <view
|
|
|
- v-for="(item,index) in orderTypes"
|
|
|
- :key="index"
|
|
|
- :class="item.id == orderType?'item cases active':'item cases'"
|
|
|
- @click="orderTypeChange(item)"
|
|
|
- >
|
|
|
- <view class="text">
|
|
|
- {{ item.name }}
|
|
|
- <image v-show="item.id == orderType" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <image class="right-mask" src="../../static/images/mask.png" mode=""></image>
|
|
|
- </view>
|
|
|
- <view class="cases-list">
|
|
|
- <view class="item" v-for="(item,index) in doctorOrderList" :key="index">
|
|
|
- <view class="dec-text ellipsis2">{{item.title}}</view>
|
|
|
- <view class="images-box" v-if="item.imgs!=null" >
|
|
|
- <view class="img-item" v-for="(subitem,j) in utils.photosToArr(item.imgs)" @click="showImg(item.imgs)" :key="j">
|
|
|
- <image :src="subitem" mode="aspectFill" ></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="doc-info">
|
|
|
- <view class="head">
|
|
|
- <image :src="item.doctorHeadImg" mode="aspectFill"></image>
|
|
|
- </view>
|
|
|
- <view class="name">{{item.doctorName}}</view>
|
|
|
- <view class="line"></view>
|
|
|
- <view class="posit">
|
|
|
- {{utils.getDictLabelName("doctorPosition",item.doctorPosition)}}
|
|
|
- </view>
|
|
|
- <view class="line"></view>
|
|
|
- <view class="address">{{item.hospitalName}}</view>
|
|
|
- </view>
|
|
|
- <view class="answer-box">
|
|
|
- <text class="text-inner" v-if="item.orderType == '1' ">{{item.replyContent}}</text>
|
|
|
- <view class="voice-inner" v-if="item.orderType == '2'">
|
|
|
- <free-audio
|
|
|
- startPic='/static/images/play.png'
|
|
|
- endPic='/static/images/pause.png'
|
|
|
- activeColor="#2BC7B9"
|
|
|
- :audioId="'audio'+index"
|
|
|
- :url='item.replyAudioUrl'
|
|
|
- ></free-audio>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="read-box">
|
|
|
- <image src="../../static/images/eye.png" mode=""></image>
|
|
|
- <text class="text">{{item.views}}人看过</text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view> -->
|
|
|
- <!-- 热门榜单 -->
|
|
|
- <!-- <NewProduct :detail="newProductList" /> -->
|
|
|
- <HotProduct :detail="hotProductList" />
|
|
|
- <!-- 健康百科 -->
|
|
|
- <!-- <view class="pub-item" style="margin-top: 20rpx;">
|
|
|
- <view class="pub-title-box">
|
|
|
- <text class="left">健康百科</text>
|
|
|
- <view class="right" @click="switchTo('../healthy/index')">
|
|
|
- <text class="text">更多</text>
|
|
|
- <image src="../../static/images/arrow_gray.png" mode=""></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="inner">
|
|
|
-
|
|
|
- <view class="pub-tab-box">
|
|
|
- <view class="tab-inner">
|
|
|
- <view
|
|
|
- v-for="(item,index) in articleCateList"
|
|
|
- :key="index"
|
|
|
- :class="item.cateId == cateId?'item active':'item'"
|
|
|
- @click="articleCateChange(item)"
|
|
|
- >
|
|
|
- <view class="text">
|
|
|
- {{ item.cateName }}
|
|
|
- <image v-show="item.cateId == cateId" class="tab-bg" src="../../static/images/tab_bg.png" mode=""></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <image class="right-mask" src="../../static/images/mask.png" mode=""></image>
|
|
|
- </view>
|
|
|
-
|
|
|
- <view class="know-list">
|
|
|
- <view class="item" v-for="(item,index) in articleList" :key="index" @click="showArticle(item)">
|
|
|
- <view class="left">
|
|
|
- <view class="title ellipsis2">{{ item.title }}</view>
|
|
|
- <view class="info-box">
|
|
|
- <view class="readers">
|
|
|
- <view class="head-box" v-if="item.viewsList!=null&&item.viewsList.length>0">
|
|
|
- <view class="head" v-for="(subitem,j) in item.viewsList" :key="j">
|
|
|
- <image v-if="subitem!=null" :src="subitem.avatar==null?'/static/images/detault_head.jpg':subitem.avatar" mode=""></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="readings">
|
|
|
- <image class="eye" src="../../static/images/eye.png" mode=""></image>
|
|
|
- <text class="num">{{item.views}}</text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="time">{{item.publishTime}}</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="right">
|
|
|
- <image :src="item.imageUrl" mode="aspectFill"></image>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view> -->
|
|
|
- <!-- 精选药品 -->
|
|
|
- <TuiProduct ref="tuiProduct" />
|
|
|
- <!-- <view class="feat-title">
|
|
|
- <image src="../../static/images/tui.png" mode=""></image>
|
|
|
- <text>精选药品</text>
|
|
|
- </view>
|
|
|
- <view class="drug-list">
|
|
|
- <view class="item" v-for="(item,index) in tuiProductList" :key="index" @click="showProduct(item)">
|
|
|
- <view class="img-box">
|
|
|
- <image :src="item.image" mode="aspectFit"></image>
|
|
|
- </view>
|
|
|
- <view class="info-box">
|
|
|
- <view class="title ellipsis2">{{ item.productName }}</view>
|
|
|
- <view class="price-box">
|
|
|
- <view class="now">
|
|
|
- <text class="unit">¥</text>
|
|
|
- <text class="num">{{item.price.toFixed(2)}}</text>
|
|
|
- </view>
|
|
|
- <view class="old">¥{{item.otPrice.toFixed(2)}}</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view> -->
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ <!-- 商品栏 -->
|
|
|
+ <homeProduct />
|
|
|
+ <!-- tab栏 -->
|
|
|
+ <view class="bg-white w-all flex-1 mt-10 rounded-t-8 px-28">
|
|
|
+ <scsScrollIconbar :tabsData="tabsProduct" :tabCurrentIndex="tabsProductIndex" nameKey="name"
|
|
|
+ key="tabsProductIndex" @tabChange="tabProductChange" />
|
|
|
</view>
|
|
|
|
|
|
|
|
|
- <!-- 限时消息 -->
|
|
|
- <!-- <view class="message-box" >
|
|
|
- <view class="left">
|
|
|
- <image src="../../static/images/close24.png" mode="" @click="closeMsg"></image>
|
|
|
- <view class="text ellipsis">关注公众号了解更新</view>
|
|
|
- </view>
|
|
|
- <view class="btn">查看</view>
|
|
|
-
|
|
|
- </view> -->
|
|
|
- <!-- #ifdef MP-WEIXIN -->
|
|
|
- <view class="official-account">
|
|
|
- <official-account @load="bindload" @error="binderror"></official-account>
|
|
|
- </view>
|
|
|
- <!-- #endif -->
|
|
|
- <view class="popup-box" v-if="activityShow">
|
|
|
- <view class="info-mask" @tap="closeActivity()"></view>
|
|
|
- <view class="info-form">
|
|
|
- <image :src="activity.logoUrl" @tap="showActivity()" />
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <z-modal :show="tuiModalControl" placeholderText="请输入邀请码" :btnGroup="btnGroup" :contentType="2"
|
|
|
- titleText="填写邀请码" @cancle="cancleTui" @sure="submitTui"></z-modal>
|
|
|
</view>
|
|
|
</template>
|
|
|
-
|
|
|
<script>
|
|
|
- import zModal from '@/components/z-modal/z-modal.vue'
|
|
|
- import {
|
|
|
- getStoreActivity
|
|
|
- } from '@/api/activity.js'
|
|
|
- import {
|
|
|
- getDepartmentList
|
|
|
- } from '@/api/doctorOrder.js'
|
|
|
- import {
|
|
|
- getMenu,
|
|
|
- getCanvas,
|
|
|
- getIndexData,
|
|
|
- getTuiDoctor,
|
|
|
- getTuiArticle,
|
|
|
- getTuiDoctorOrder,
|
|
|
- getCartCount
|
|
|
- } from '@/api/index'
|
|
|
- import {
|
|
|
- getStoreConfig
|
|
|
- } from '@/api/common'
|
|
|
- import tabBg from "@/static/images/tab_bg.png"
|
|
|
- import freeAudio from '@/components/chengpeng-audio/free-audio.vue'
|
|
|
- import Menu from '@/components/Menu.vue'
|
|
|
- import HotProduct from './components/HotProduct.vue'
|
|
|
- // import NewProduct from './components/NewProduct.vue'
|
|
|
- import TuiProduct from '@/components/tuiProduct.vue'
|
|
|
- import {
|
|
|
- getUserInfo,
|
|
|
- bindPromoter
|
|
|
- } from '@/api/user'
|
|
|
- export default {
|
|
|
- components: {
|
|
|
- zModal,
|
|
|
- freeAudio,
|
|
|
- Menu,
|
|
|
- HotProduct,
|
|
|
- TuiProduct
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- status: '',
|
|
|
- orderStatus: [{
|
|
|
- name: "精选",
|
|
|
- value: ""
|
|
|
- },
|
|
|
- {
|
|
|
- name: "健康新品",
|
|
|
- value: "0"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "营养保健",
|
|
|
- value: "1"
|
|
|
- },
|
|
|
- {
|
|
|
- name: "健康滋补",
|
|
|
- value: "2"
|
|
|
- },{
|
|
|
- name: "天",
|
|
|
- value: "3"
|
|
|
- }
|
|
|
- ],
|
|
|
- btnGroup: [{
|
|
|
- text: '取消',
|
|
|
- color: '#FFFFFF',
|
|
|
- bgColor: '#999999',
|
|
|
- width: '150rpx',
|
|
|
- height: '80rpx',
|
|
|
- shape: 'fillet',
|
|
|
- eventName: 'cancle'
|
|
|
- }, {
|
|
|
- text: '确定',
|
|
|
- color: '#FFFFFF',
|
|
|
- bgColor: '#2BC7B9',
|
|
|
- width: '150rpx',
|
|
|
- height: '80rpx',
|
|
|
- shape: 'fillet',
|
|
|
- eventName: 'sure'
|
|
|
- }],
|
|
|
- tuiModalControl: false,
|
|
|
- activity: null,
|
|
|
- activityShow: false,
|
|
|
- newProductList: [],
|
|
|
- hotProductList: [],
|
|
|
- tuiProductList: [],
|
|
|
- menus: [],
|
|
|
- canvas: [],
|
|
|
- allDoctorTitle: "全部医生",
|
|
|
- topLen: 0,
|
|
|
- deptId: 0,
|
|
|
- depts: [],
|
|
|
- docTab: 1,
|
|
|
- top: 0,
|
|
|
- cartCount: 0,
|
|
|
- doctorOrderList: [],
|
|
|
- orderType: 0,
|
|
|
- cateId: null,
|
|
|
- articleList: [],
|
|
|
- advList: [],
|
|
|
- doctorList: [],
|
|
|
- articleCateList: [],
|
|
|
+import scsScrollNavbar from '@/components/public/scs-scroll-navbar.vue'
|
|
|
+import scsScrollIconbar from '@/components/public/scs-scroll-iconbar.vue'
|
|
|
+import homeMenu from './components/home-menu.vue'
|
|
|
+import homeProduct from './components/home-product.vue'
|
|
|
+import HomeSearch from './components/home-search.vue'
|
|
|
+import {
|
|
|
+ getMenu,
|
|
|
+ getCanvas,
|
|
|
+ getIndexData,
|
|
|
+ getTuiDoctor,
|
|
|
+ getTuiArticle,
|
|
|
+ getTuiDoctorOrder,
|
|
|
+ getCartCount
|
|
|
+} from '@/api/index'
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ scsScrollNavbar,
|
|
|
+ homeMenu,
|
|
|
+ homeProduct,
|
|
|
+ HomeSearch,
|
|
|
+ scsScrollIconbar,
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ statusBarHeight: 0,
|
|
|
+ tabsData: [
|
|
|
+ { name: '精选' },
|
|
|
+ { name: '健康新品' },
|
|
|
+ { name: '营养保健' },
|
|
|
+ { name: '健康滋补' },
|
|
|
+ ],
|
|
|
+ tabCurrentIndex: 0,
|
|
|
+ menusData: [],
|
|
|
+ tabsProduct: [
|
|
|
+ { name: '今日主推' },
|
|
|
+ { name: '健康新品' },
|
|
|
+ { name: '营养保健' },
|
|
|
+ ],
|
|
|
+ tabsProductIndex: 0,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onLoad() {
|
|
|
+
|
|
|
+ },
|
|
|
+ onShow() {
|
|
|
+ this.getMenuData();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 搜索
|
|
|
+ onSearch(keyword) {
|
|
|
|
|
|
- // 状态栏的高度
|
|
|
- statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
|
|
|
- tabBg: tabBg, // tab切换背景
|
|
|
- // 问诊案例类型
|
|
|
- orderTypes: [{
|
|
|
- name: '全部',
|
|
|
- id: 0,
|
|
|
- }, {
|
|
|
- name: '图文',
|
|
|
- id: 1,
|
|
|
- }, {
|
|
|
- name: '语音',
|
|
|
- id: 2,
|
|
|
- }],
|
|
|
- // 限时消息是否显示
|
|
|
- messageShow: true,
|
|
|
- }
|
|
|
- this.getStoreActivity();
|
|
|
- },
|
|
|
- onLoad(option) {
|
|
|
- if (option.userCode != null) {
|
|
|
- uni.setStorageSync('userCode', option.userCode);
|
|
|
- if (this.utils.checkLoginState()) {
|
|
|
- this.getUserInfo();
|
|
|
- }
|
|
|
- }
|
|
|
- if (option.hasOwnProperty('q') && option.q) {
|
|
|
- // 通过下面这步解码,可以拿到url的值
|
|
|
- const url = decodeURIComponent(option.q)
|
|
|
- this.url = url;
|
|
|
- // // 对url中携带的参数提取处理
|
|
|
- const obj = this.utils.urlToObj(url)
|
|
|
- uni.setStorageSync('userCode', obj.userCode);
|
|
|
- if (this.utils.checkLoginState()) {
|
|
|
- this.getUserInfo();
|
|
|
- }
|
|
|
- }
|
|
|
- this.getStoreActivity()
|
|
|
- },
|
|
|
- // 暂停所有音频(一般用于页面切换时停止正在播放的音频)
|
|
|
- onUnload() { //普通页面在 onUnload 生命周期中执行
|
|
|
- uni.$emit('stop')
|
|
|
},
|
|
|
- onHide() { //tabBar页面在onHide生命周期中执行
|
|
|
- uni.$emit('stop')
|
|
|
+ // 分类tab切换
|
|
|
+ tabChange(index) {
|
|
|
+ this.tabCurrentIndex = index;
|
|
|
},
|
|
|
- onPageScroll(e) {
|
|
|
- //console.log(e)
|
|
|
- this.top = e.scrollTop;
|
|
|
+ // 商品tab切换
|
|
|
+ tabProductChange(index) {
|
|
|
+ this.tabsProductIndex = index;
|
|
|
},
|
|
|
- mounted() {
|
|
|
- //this.getDepartmentList();
|
|
|
- },
|
|
|
- onShareAppMessage(res) {
|
|
|
- return {
|
|
|
- title: '芳华悦选',
|
|
|
- path: `/pages/common/launch`,
|
|
|
- imageUrl: '/static/images/logo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
|
|
|
- }
|
|
|
- },
|
|
|
- onReachBottom() {
|
|
|
- console.log("onReachBottom")
|
|
|
- this.$refs.tuiProduct.getTuiProducts();
|
|
|
- },
|
|
|
- //分享到朋友圈
|
|
|
- onShareTimeline(res) {
|
|
|
- return {
|
|
|
- title: '芳华悦选互联网医院',
|
|
|
- query: '', //页面参数
|
|
|
- imageUrl: 'https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20250721/efce6c594de34caba6537992083a5e47.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
-
|
|
|
- // 计算属性的 getter
|
|
|
- bg: function() {
|
|
|
- var top = this.top / 30;
|
|
|
- // console.log(top)
|
|
|
- return 'rgba(43,199,185, ' + top + ')';
|
|
|
- },
|
|
|
- },
|
|
|
- onShow() {
|
|
|
- this.getMenu();
|
|
|
- this.getIndexData()
|
|
|
- //this.getTuiDoctorOrder();
|
|
|
- // console.log(uni.getStorageSync('isLocation'))
|
|
|
- // if(uni.getStorageSync('isLocation')==""){
|
|
|
- // this.getLocation();
|
|
|
- // }
|
|
|
- if (this.utils.checkLoginState()) {
|
|
|
- this.getCartCount();
|
|
|
- }
|
|
|
- this.getStoreConfig();
|
|
|
- //this.getTuiDoctor()
|
|
|
- this.getCanvas();
|
|
|
- },
|
|
|
- methods: { // tab切换
|
|
|
- orderStatusChange(item) {
|
|
|
- this.status = item.value
|
|
|
- },
|
|
|
- navToMiniProgram() {
|
|
|
- uni.navigateToMiniProgram({
|
|
|
- // appid 写你要跳转的小程序的 appid
|
|
|
- appId: 'wx503cf8ab31f83dd4',
|
|
|
- // 路径写 src下的路径,假如你跳转的是pages下的页面,就可以写pages/index
|
|
|
- path: '/pages/common/launch',
|
|
|
- extraData: {
|
|
|
- // 'type': 'out'
|
|
|
- },
|
|
|
- // 这个不写的话会显示开发环境,不能正常跳转,写上就能正常跳转了
|
|
|
- envVersion: 'develop',
|
|
|
- success(res) {
|
|
|
- // 打开成功
|
|
|
- // uni.showToast({
|
|
|
- // title: '跳转成功'
|
|
|
- // })
|
|
|
- },
|
|
|
- fail(err) {
|
|
|
- // 打开失败/取消
|
|
|
- // uni.showToast({
|
|
|
- // title: '跳转不成功'
|
|
|
- // })
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- getUserInfo() {
|
|
|
- getUserInfo().then(
|
|
|
- res => {
|
|
|
- if (res.code == 200) {
|
|
|
- if (res.user != null) {
|
|
|
- if (res.user.isPromoter == null || res.user.isPromoter == 0) {
|
|
|
- this.tuiModalControl = true
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: "请求失败",
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- rej => {}
|
|
|
- );
|
|
|
- },
|
|
|
- cancleTui(e) {
|
|
|
- this.tuiModalControl = false
|
|
|
- },
|
|
|
- submitTui(e) {
|
|
|
- console.log(e)
|
|
|
- if (e.inputText == null || e.inputText == "") {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: "请输入邀请码",
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- var data = {
|
|
|
- userCode: e.inputText
|
|
|
- };
|
|
|
- bindPromoter(data).then(
|
|
|
- res => {
|
|
|
- if (res.code == 200) {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: res.msg,
|
|
|
- });
|
|
|
- this.tuiModalControl = false
|
|
|
- } else {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: res.msg,
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- rej => {}
|
|
|
- );
|
|
|
-
|
|
|
- },
|
|
|
- bindload: function(detail) {},
|
|
|
- binderror: function(detail) {},
|
|
|
- closeActivity() {
|
|
|
- this.activityShow = false;
|
|
|
- // uni.setStorageSync(this.activity.activityId,null);
|
|
|
- },
|
|
|
- getStoreActivity() {
|
|
|
- let data = {}
|
|
|
- getStoreActivity(data).then(res => {
|
|
|
- this.activity = res.activity;
|
|
|
- if (this.activity != null) {
|
|
|
- // if(uni.getStorageSync(this.activity.activityId)!=null)
|
|
|
- // {
|
|
|
- // uni.setStorageSync(this.activity.activityId,1);
|
|
|
- // this.activityShow=true;
|
|
|
- // }
|
|
|
- // else{
|
|
|
- // this.activityShow=false;
|
|
|
- // }
|
|
|
- this.activityShow = true;
|
|
|
-
|
|
|
-
|
|
|
- } else {
|
|
|
- this.activityShow = false;
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- showActivity() {
|
|
|
- this.activityShow = false;
|
|
|
- uni.navigateTo({
|
|
|
- url: '/pages_shopping/shopping/activityDetails?activityId=' + this.activity.activityId
|
|
|
- })
|
|
|
- },
|
|
|
- menuClick(item) {
|
|
|
- if (item.linkType == 1) {
|
|
|
- if (item.linkUrl == "/pages/shopping/index") {
|
|
|
- uni.switchTab({
|
|
|
- url: item.linkUrl
|
|
|
- })
|
|
|
- } else if (item.linkUrl == "/pages/healthy/index") {
|
|
|
- uni.switchTab({
|
|
|
- url: item.linkUrl
|
|
|
- })
|
|
|
- } else {
|
|
|
- uni.navigateTo({
|
|
|
- url: item.linkUrl
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- } else if (item.linkType == 0) {
|
|
|
- // this.navToMiniProgram();
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: "开发中...",
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- goDev() {
|
|
|
+ // 获取分类数据
|
|
|
+ async getMenuData() {
|
|
|
+ const { code, data, msg } = await getMenu();
|
|
|
+ if (code == 200) {
|
|
|
+ this.menusData = this.$scsUtils.splitArrayIntoSubarrays(data, 5) || []
|
|
|
+ console.log("---------11111111-------", this.menusData)
|
|
|
+ } else {
|
|
|
uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: "开发中...",
|
|
|
- });
|
|
|
- },
|
|
|
- handleAdvClick(item) {
|
|
|
- console.log(item);
|
|
|
- if (item.showType == 1) {
|
|
|
- uni.setStorageSync('url', item.advUrl);
|
|
|
- uni.navigateTo({
|
|
|
- url: "h5"
|
|
|
- })
|
|
|
- } else if (item.showType == 2) {
|
|
|
- uni.navigateTo({
|
|
|
- url: item.advUrl
|
|
|
- })
|
|
|
- } else if (item.showType == 3) {
|
|
|
- uni.setStorageSync('content', item.content);
|
|
|
- uni.navigateTo({
|
|
|
- url: "content"
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- },
|
|
|
- deptChange(item) {
|
|
|
- this.deptId = item.departmentId;
|
|
|
- this.getTuiDoctor();
|
|
|
- },
|
|
|
- getMenu() {
|
|
|
- getMenu().then(res => {
|
|
|
- console.log(res)
|
|
|
- if (res.code == 200) {
|
|
|
- this.menus = res.data
|
|
|
- } else {
|
|
|
-
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- getCanvas() {
|
|
|
- getCanvas().then(res => {
|
|
|
- if (res.code == 200) {
|
|
|
- console.log(res.data)
|
|
|
- this.canvas = JSON.parse(res.data.json)
|
|
|
- } else {
|
|
|
-
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- getDepartmentList() {
|
|
|
- this.depts = [];
|
|
|
- getDepartmentList().then(res => {
|
|
|
- if (res.code == 200) {
|
|
|
- var allDept = {
|
|
|
- departmentId: 0,
|
|
|
- departmentName: "全部"
|
|
|
- }
|
|
|
- this.depts.push(allDept);
|
|
|
- this.depts = this.depts.concat(res.data);
|
|
|
- } else {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: "请求失败",
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- getTuiDoctor() {
|
|
|
- let data = {
|
|
|
- departmentId: this.deptId,
|
|
|
- doctorType: this.docTab
|
|
|
- };
|
|
|
- getTuiDoctor(data).then(
|
|
|
- res => {
|
|
|
- if (res.code == 200) {
|
|
|
- this.doctorList = res.data;
|
|
|
- } else {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: "请求失败",
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- rej => {}
|
|
|
- );
|
|
|
- },
|
|
|
- docTabChange(val) {
|
|
|
- if (val == 1) {
|
|
|
- this.allDoctorTitle = "全部医师"
|
|
|
- }
|
|
|
- if (val == 2) {
|
|
|
- this.allDoctorTitle = "全部药师"
|
|
|
- }
|
|
|
- if (val == 3) {
|
|
|
- this.allDoctorTitle = "全部营养师"
|
|
|
- }
|
|
|
- this.docTab = val;
|
|
|
- this.getTuiDoctor();
|
|
|
- },
|
|
|
- showImg(urls) {
|
|
|
- var imgArr = urls.split(',');
|
|
|
- //预览图片
|
|
|
- uni.previewImage({
|
|
|
- urls: imgArr,
|
|
|
- current: imgArr[0]
|
|
|
- });
|
|
|
- },
|
|
|
- getStoreConfig() {
|
|
|
- getStoreConfig().then(
|
|
|
- res => {
|
|
|
- if (res.code == 200) {
|
|
|
- uni.setStorageSync('config', JSON.stringify(res.data));
|
|
|
- }
|
|
|
- },
|
|
|
- rej => {}
|
|
|
- );
|
|
|
-
|
|
|
- },
|
|
|
- goAuthUrl(url) {
|
|
|
- this.utils.isLogin().then(res => {
|
|
|
- if (res) {
|
|
|
- uni.navigateTo({
|
|
|
- url: url
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- switchTo(url) {
|
|
|
- uni.switchTab({
|
|
|
- url: url
|
|
|
- })
|
|
|
- return
|
|
|
- },
|
|
|
- // 跳转页面
|
|
|
- navTo(url) {
|
|
|
- uni.navigateTo({
|
|
|
- url: url
|
|
|
- })
|
|
|
- },
|
|
|
- getLocation() {
|
|
|
- var that = this;
|
|
|
- uni.authorize({
|
|
|
- scope: 'scope.userLocation',
|
|
|
- success() {
|
|
|
- uni.getLocation({
|
|
|
- type: 'gcj02', //腾讯地图使用gcj02获取位置坐标
|
|
|
- success: function(res) {
|
|
|
- uni.setStorageSync('isLocation', 1);
|
|
|
- uni.setStorageSync('lng', res.longitude);
|
|
|
- uni.setStorageSync('lat', res.latitude);
|
|
|
- },
|
|
|
- })
|
|
|
- },
|
|
|
- fail(err) {
|
|
|
- console.log(err)
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- getIndexData() {
|
|
|
-
|
|
|
- let data = {};
|
|
|
- getIndexData(data).then(
|
|
|
- res => {
|
|
|
- if (res.code == 200) {
|
|
|
- this.advList = res.data.advList;
|
|
|
- this.articleCateList = res.data.articleCateList;
|
|
|
- if (this.articleCateList != null && this.articleCateList.length > 0) {
|
|
|
- this.cateId = this.articleCateList[0].cateId;
|
|
|
- this.getTuiArticle()
|
|
|
- }
|
|
|
- this.tuiProductList = res.data.tuiProductList
|
|
|
- this.newProductList = res.data.newProductList
|
|
|
- this.hotProductList = res.data.hotProductList
|
|
|
- } else {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: "请求失败",
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- rej => {}
|
|
|
- );
|
|
|
- },
|
|
|
- getCartCount() {
|
|
|
- this.utils.isLogin().then(res => {
|
|
|
- if (res) {
|
|
|
- getCartCount().then(
|
|
|
- cartRes => {
|
|
|
- if (cartRes.code == 200) {
|
|
|
- this.cartCount = cartRes.data;
|
|
|
- }
|
|
|
- },
|
|
|
- rej => {}
|
|
|
- );
|
|
|
- }
|
|
|
- })
|
|
|
-
|
|
|
- },
|
|
|
- getTuiArticle() {
|
|
|
- let data = {
|
|
|
- cateId: this.cateId
|
|
|
- };
|
|
|
- getTuiArticle(data).then(
|
|
|
- res => {
|
|
|
- if (res.code == 200) {
|
|
|
- this.articleList = res.data;
|
|
|
- } else {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: "请求失败",
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- rej => {}
|
|
|
- );
|
|
|
- },
|
|
|
- getTuiDoctorOrder() {
|
|
|
- let data = {
|
|
|
- orderType: this.orderType
|
|
|
- };
|
|
|
- getTuiDoctorOrder(data).then(
|
|
|
- res => {
|
|
|
- if (res.code == 200) {
|
|
|
- this.doctorOrderList = res.data;
|
|
|
- } else {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: "请求失败",
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- rej => {}
|
|
|
- );
|
|
|
- },
|
|
|
- showArticle(item) {
|
|
|
- uni.navigateTo({
|
|
|
- url: '../healthy/detail?articleId=' + item.articleId
|
|
|
- })
|
|
|
- },
|
|
|
- showProduct(item) {
|
|
|
- uni.navigateTo({
|
|
|
- url: '/pages_shopping/shopping/productDetails?productId=' + item.productId
|
|
|
- })
|
|
|
- },
|
|
|
- // 顶部搜索
|
|
|
- toSearch() {
|
|
|
- uni.navigateTo({
|
|
|
- url: './productSearch'
|
|
|
- })
|
|
|
- },
|
|
|
- // 健康知识选中
|
|
|
- articleCateChange(item) {
|
|
|
- this.cateId = item.cateId;
|
|
|
- this.getTuiArticle();
|
|
|
- },
|
|
|
- // 问诊案例选中
|
|
|
- orderTypeChange(item) {
|
|
|
- this.orderType = item.id;
|
|
|
- console.log(this.orderType)
|
|
|
- this.getTuiDoctorOrder();
|
|
|
- },
|
|
|
- // 关闭限时消息
|
|
|
- closeMsg() {
|
|
|
- this.messageShow = false
|
|
|
- },
|
|
|
- // 查看全部
|
|
|
- viewAll(url) {
|
|
|
- uni.navigateTo({
|
|
|
- url: '/pages/home/' + url,
|
|
|
- });
|
|
|
- },
|
|
|
- shopDoctor(item) {
|
|
|
- console.log(item);
|
|
|
- uni.navigateTo({
|
|
|
- url: "../doctor/doctorDetail?doctorId=" + item.doctorId
|
|
|
- })
|
|
|
- },
|
|
|
- // 跳转页面
|
|
|
- navgetTo(url) {
|
|
|
- uni.navigateTo({
|
|
|
- url: url
|
|
|
- })
|
|
|
- },
|
|
|
- switchTo(url) {
|
|
|
- uni.switchTab({
|
|
|
- url: url
|
|
|
- })
|
|
|
- return
|
|
|
- },
|
|
|
- // 在线问诊
|
|
|
- openIm() {
|
|
|
- uni.navigateTo({
|
|
|
- url: '../doctor/doctorOrderIM?orderId=10'
|
|
|
+ title: msg,
|
|
|
+ icon: 'none'
|
|
|
})
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
}
|
|
|
+}
|
|
|
</script>
|
|
|
-
|
|
|
-<style lang="scss">
|
|
|
- .fixed-top-box {
|
|
|
- width: 100%;
|
|
|
- position: fixed;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- z-index: 1000;
|
|
|
- transition: all 0.5s;
|
|
|
- background-color: #2bc7b9;
|
|
|
-
|
|
|
- &.show-back {
|
|
|
- // background: linear-gradient(135deg, #2BC7B9 0%, #60CDC3 100%);
|
|
|
- }
|
|
|
-
|
|
|
- .status_bar {
|
|
|
-
|
|
|
- width: 100%;
|
|
|
- }
|
|
|
-
|
|
|
- .shop-block {
|
|
|
- display: flex;
|
|
|
- transform: translateY();
|
|
|
- justify-content: flex-end;
|
|
|
-
|
|
|
- .shop {
|
|
|
- width: 64rpx;
|
|
|
- height: 64rpx;
|
|
|
- padding: 12rpx;
|
|
|
- margin-right: 210rpx;
|
|
|
- border-radius: 32rpx 32rpx 32rpx 32rpx;
|
|
|
- border: 1rpx solid #E9E9E9;
|
|
|
- box-sizing: border-box;
|
|
|
- background: #FFFFFF;
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .content {
|
|
|
- width: 100%;
|
|
|
- position: relative;
|
|
|
-
|
|
|
- .bg {
|
|
|
- width: 100%;
|
|
|
- height: 380rpx;
|
|
|
- position: absolute;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- }
|
|
|
-
|
|
|
- .top-inner {
|
|
|
- width: 100%;
|
|
|
- position: absolute;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- z-index: 5;
|
|
|
-
|
|
|
- .top-title {
|
|
|
- position: absolute;
|
|
|
- top: 88rpx;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- height: 88rpx;
|
|
|
- // line-height: 88rpx;
|
|
|
- font-size: 36rpx;
|
|
|
- color: #000000;
|
|
|
- justify-content: flex-start;
|
|
|
- padding-left: 24rpx;
|
|
|
-
|
|
|
- .name {
|
|
|
- font-weight: 500;
|
|
|
- width: 183rpx;
|
|
|
- height: 75rpx;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .dot {
|
|
|
- font-size: 24rpx;
|
|
|
- color: #999999;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- .func-cont {
|
|
|
- box-sizing: border-box;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- padding: 30rpx 20rpx 30rpx 20rpx;
|
|
|
-
|
|
|
- .search-cont {
|
|
|
- box-sizing: border-box;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- flex: 1;
|
|
|
- height: 72rpx;
|
|
|
- background: #FFFFFF;
|
|
|
- border-radius: 34rpx 34rpx 34rpx 34rpx;
|
|
|
- border: 2rpx solid #02B176;
|
|
|
- padding: 4rpx 4rpx 4rpx 24rpx;
|
|
|
-
|
|
|
- .icon-search {
|
|
|
- width: 28rpx;
|
|
|
- height: 28rpx;
|
|
|
- margin-right: 20rpx;
|
|
|
- }
|
|
|
-
|
|
|
- input {
|
|
|
- height: 60rpx;
|
|
|
- line-height: 60rpx;
|
|
|
- flex: 1;
|
|
|
- }
|
|
|
-
|
|
|
- .search-button {
|
|
|
- width: 120rpx;
|
|
|
- height: 60rpx;
|
|
|
- background: linear-gradient(90deg, #38D97D 0%, #02B176 100%);
|
|
|
- border-radius: 30rpx 30rpx 30rpx 30rpx;
|
|
|
- font-weight: 500;
|
|
|
- font-size: 28rpx;
|
|
|
- color: #FFFFFF;
|
|
|
- text-align: center;
|
|
|
- line-height: 60rpx;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- ::v-deep.uni-badge {
|
|
|
- border: none;
|
|
|
- background-color: #FF3636;
|
|
|
- font-family: Roboto;
|
|
|
- }
|
|
|
-
|
|
|
- .img-item {
|
|
|
- width: 44rpx;
|
|
|
- height: 44rpx;
|
|
|
- margin-left: 20rpx;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .tips {
|
|
|
- margin: 0rpx 20rpx 30rpx;
|
|
|
- height: 40rpx;
|
|
|
- line-height: 40rpx;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- .left {
|
|
|
- font-size: 30rpx;
|
|
|
- color: #FFFFFF;
|
|
|
- }
|
|
|
-
|
|
|
- .right {
|
|
|
- padding: 5rpx 20rpx;
|
|
|
- font-size: 24rpx;
|
|
|
- color: #FFFFFF;
|
|
|
- background-color: #2bc7b9;
|
|
|
- border-radius: 50rpx;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .banner-box {
|
|
|
- padding: 0 20rpx;
|
|
|
-
|
|
|
- .inner {
|
|
|
- width: 100%;
|
|
|
- height: 236rpx;
|
|
|
- border-radius: 10rpx;
|
|
|
- overflow: hidden;
|
|
|
-
|
|
|
- .swiper,
|
|
|
- .swiper-item,
|
|
|
- .swiper-item image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // tab栏切换
|
|
|
- .pub-tab-box {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- box-sizing: border-box;
|
|
|
- width: 100%;
|
|
|
- padding: 0 24upx;
|
|
|
- background-color: #FFFFFF;
|
|
|
- justify-content: space-between;
|
|
|
- .icon {
|
|
|
- width: 32rpx;
|
|
|
- height: 32rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .tab-inner {
|
|
|
- height: 88upx;
|
|
|
- line-height: 88upx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- overflow-x: auto;
|
|
|
- position: relative;
|
|
|
- margin-right: 12rpx;
|
|
|
- .white-gradient {
|
|
|
- position: absolute;
|
|
|
- right: 0;
|
|
|
- width: 64rpx;
|
|
|
- height: 64rpx;
|
|
|
- z-index: 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .item {
|
|
|
- font-size: 30upx;
|
|
|
- white-space: nowrap;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC, PingFang SC;
|
|
|
- color: #4D4D4D;
|
|
|
- margin-right: 32upx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
-
|
|
|
- &:last-child {
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
-
|
|
|
- &.active {
|
|
|
- font-weight: bold;
|
|
|
- color: #333333;
|
|
|
- }
|
|
|
-
|
|
|
- .text {
|
|
|
- position: relative;
|
|
|
- z-index: 1;
|
|
|
- }
|
|
|
-
|
|
|
- .tab-bg {
|
|
|
- width: 60rpx;
|
|
|
- height: 12rpx;
|
|
|
- background: linear-gradient(90deg, rgba(56, 217, 125, 0.5) 0%, rgba(56, 217, 125, 0) 100%);
|
|
|
- border-radius: 6rpx 6rpx 6rpx 6rpx;
|
|
|
- position: absolute;
|
|
|
- top: 26upx;
|
|
|
- left: 50%;
|
|
|
- transform: translateX(-36upx);
|
|
|
- z-index: -1;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .menu-content {
|
|
|
- // width: 100%;
|
|
|
- background-color: #fff;
|
|
|
- overflow: hidden;
|
|
|
- padding: 20rpx 20rpx 0;
|
|
|
- }
|
|
|
-
|
|
|
- .menu-box {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- background-color: #FFFFFF;
|
|
|
- }
|
|
|
-
|
|
|
- .online-inquiry {
|
|
|
- box-sizing: border-box;
|
|
|
- width: 100%;
|
|
|
- height: 170rpx;
|
|
|
- padding: 0 20rpx;
|
|
|
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.38) 62%, rgba(255, 255, 255, 0) 100%);
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
-
|
|
|
- .item {
|
|
|
- // width: 46.13%;
|
|
|
-
|
|
|
- width: 346rpx;
|
|
|
- height: 150rpx;
|
|
|
- position: relative;
|
|
|
-
|
|
|
- .bg-img,
|
|
|
- .inner {
|
|
|
- border-radius: 15rpx;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- position: absolute;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- z-index: 1;
|
|
|
- }
|
|
|
-
|
|
|
- .inner {
|
|
|
- box-sizing: border-box;
|
|
|
- z-index: 2;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: center;
|
|
|
- padding-left: 32rpx;
|
|
|
-
|
|
|
- .title {
|
|
|
- font-size: 30rpx;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #111111;
|
|
|
- margin-bottom: 20rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .sub-title {
|
|
|
- font-size: 24rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #666666;
|
|
|
- }
|
|
|
-
|
|
|
- image {
|
|
|
- width: 80rpx;
|
|
|
- height: 90rpx;
|
|
|
- position: absolute;
|
|
|
- right: 7rpx;
|
|
|
- bottom: 7rpx;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .index-cont {
|
|
|
- box-sizing: border-box;
|
|
|
- padding: 0 20rpx 120rpx;
|
|
|
-
|
|
|
- .pub-item {
|
|
|
- background: #FFFFFF;
|
|
|
- border-radius: 16rpx;
|
|
|
- margin-bottom: 20rpx;
|
|
|
-
|
|
|
- .tabs {
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: flex-start;
|
|
|
- height: 110rpx;
|
|
|
- background-color: #F0F3F4;
|
|
|
-
|
|
|
- .tab {
|
|
|
- height: 110rpx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- position: relative;
|
|
|
- flex: 1;
|
|
|
-
|
|
|
- .img {
|
|
|
- z-index: 1;
|
|
|
- position: absolute;
|
|
|
- top: 0rpx;
|
|
|
- left: 0rpx;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
-
|
|
|
- .inner {
|
|
|
- z-index: 2;
|
|
|
-
|
|
|
- .title {
|
|
|
- font-size: 32rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: bold;
|
|
|
- color: #666666;
|
|
|
- }
|
|
|
-
|
|
|
- .active {
|
|
|
- color: #2BC7B9;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- .pub-title-box {
|
|
|
- box-sizing: border-box;
|
|
|
- padding: 36rpx 30rpx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
-
|
|
|
- .left {
|
|
|
- font-size: 32rpx;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: bold;
|
|
|
- color: #111111;
|
|
|
- }
|
|
|
-
|
|
|
- .right {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
-
|
|
|
- .text {
|
|
|
- font-size: 24rpx;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #999999;
|
|
|
- margin-right: 10rpx;
|
|
|
- }
|
|
|
-
|
|
|
- image {
|
|
|
- width: 14rpx;
|
|
|
- height: 24rpx;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- .doc-tab-box {
|
|
|
- padding: 14rpx 30rpx 0rpx 30rpx;
|
|
|
- position: relative;
|
|
|
-
|
|
|
- .tab-inner {
|
|
|
- padding: 14rpx 0 30rpx;
|
|
|
- display: flex;
|
|
|
- overflow-x: auto;
|
|
|
- }
|
|
|
-
|
|
|
- .item {
|
|
|
- font-size: 28rpx;
|
|
|
- white-space: nowrap;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #666666;
|
|
|
- margin-right: 40rpx;
|
|
|
- position: relative;
|
|
|
-
|
|
|
- &:last-child {
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
-
|
|
|
- &.active {
|
|
|
- font-weight: bold;
|
|
|
- color: #333333;
|
|
|
- }
|
|
|
-
|
|
|
- &.cases {
|
|
|
- margin-right: 60rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .text {
|
|
|
- position: relative;
|
|
|
- z-index: 1;
|
|
|
- }
|
|
|
-
|
|
|
- .tab-bg {
|
|
|
- width: 72rpx;
|
|
|
- height: 28rpx;
|
|
|
- position: absolute;
|
|
|
- top: 17rpx;
|
|
|
- left: 50%;
|
|
|
- transform: translateX(-36rpx);
|
|
|
- z-index: -1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .right-mask {
|
|
|
- width: 56rpx;
|
|
|
- height: 34rpx;
|
|
|
- position: absolute;
|
|
|
- top: 25rpx;
|
|
|
- right: 0rpx;
|
|
|
- z-index: 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .doc-list {
|
|
|
- padding: 20rpx;
|
|
|
-
|
|
|
- .item {
|
|
|
- box-sizing: border-box;
|
|
|
- background: #FFFFFF;
|
|
|
- // border-radius: 16rpx;
|
|
|
- display: flex;
|
|
|
- border-bottom: 1px solid #F0F0F0;
|
|
|
- margin-bottom: 30rpx;
|
|
|
-
|
|
|
- .head-box {
|
|
|
- width: 120rpx;
|
|
|
- height: 120rpx;
|
|
|
- background: #EDF1F4;
|
|
|
- border-radius: 50%;
|
|
|
- overflow: hidden;
|
|
|
- margin-right: 30rpx;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .info {
|
|
|
- width: calc(100% - 150rpx);
|
|
|
-
|
|
|
- .top {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- font-family: PingFang SC;
|
|
|
- line-height: 1;
|
|
|
-
|
|
|
- .name {
|
|
|
- font-size: 34rpx;
|
|
|
- font-weight: bold;
|
|
|
- color: #111111;
|
|
|
- }
|
|
|
-
|
|
|
- .line {
|
|
|
- width: 1px;
|
|
|
- height: 26rpx;
|
|
|
- background: #DDDDDD;
|
|
|
- margin: 0 20rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .other {
|
|
|
- font-size: 28rpx;
|
|
|
- font-weight: 500;
|
|
|
- color: #333333;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .unit-box {
|
|
|
- display: flex;
|
|
|
- margin-top: 24rpx;
|
|
|
-
|
|
|
- .level {
|
|
|
- padding: 0 10rpx;
|
|
|
- height: 30rpx;
|
|
|
- line-height: 30rpx;
|
|
|
- font-size: 22rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #FFFFFF;
|
|
|
- background: #2BC7B9;
|
|
|
- border-radius: 10rpx 4rpx 10rpx 4rpx;
|
|
|
- margin-right: 12rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .name {
|
|
|
- font-size: 28rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #333333;
|
|
|
- line-height: 30rpx;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .expertise {
|
|
|
- font-size: 26rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #666666;
|
|
|
- line-height: 42rpx;
|
|
|
- margin: 22rpx 0 26rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .rate-box {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- .star {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 22rpx;
|
|
|
- height: 22rpx;
|
|
|
- margin-right: 10rpx;
|
|
|
- }
|
|
|
-
|
|
|
- text {
|
|
|
- font-size: 26rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: bold;
|
|
|
- color: #CEA764;
|
|
|
- line-height: 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .line {
|
|
|
- width: 1px;
|
|
|
- height: 20rpx;
|
|
|
- background: #DDDDDD;
|
|
|
- margin: 0 20rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .num-box {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- font-family: PingFang SC;
|
|
|
-
|
|
|
- .label {
|
|
|
- font-size: 24rpx;
|
|
|
- font-weight: 500;
|
|
|
- color: #999999;
|
|
|
- line-height: 1;
|
|
|
- margin-right: 7px;
|
|
|
- }
|
|
|
-
|
|
|
- .num {
|
|
|
- font-size: 26rpx;
|
|
|
- font-weight: bold;
|
|
|
- color: #CEA764;
|
|
|
- line-height: 1;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .price-box {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- margin-top: 38rpx;
|
|
|
-
|
|
|
- .btn-item {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- width: 164rpx;
|
|
|
- height: 56rpx;
|
|
|
- line-height: 56rpx;
|
|
|
- border: 1px solid rgba(43, 199, 185, 0.5);
|
|
|
- border-radius: 28rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- margin-right: 30rpx;
|
|
|
-
|
|
|
- &:last-child {
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
-
|
|
|
- .label {
|
|
|
- font-size: 26rpx;
|
|
|
- font-weight: 500;
|
|
|
- color: #2BC7B9;
|
|
|
- margin-right: 5rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .num {
|
|
|
- font-size: 28rpx;
|
|
|
- font-weight: bold;
|
|
|
- color: #2BC7B9;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .item:last-child {
|
|
|
- border-bottom: none;
|
|
|
- margin-bottom: 0rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .bottom-title {
|
|
|
- height: 50rpx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- font-size: 26rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: bold;
|
|
|
- color: #2BC7B9;
|
|
|
-
|
|
|
- image {
|
|
|
- margin-left: 8rpx;
|
|
|
- width: 14rpx;
|
|
|
- height: 24rpx;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 医师团队
|
|
|
- .doc-cont {
|
|
|
- box-sizing: border-box;
|
|
|
- padding: 0 30rpx;
|
|
|
-
|
|
|
- .inner {
|
|
|
- padding: 4rpx 0 40rpx;
|
|
|
- display: flex;
|
|
|
- overflow-x: auto;
|
|
|
- }
|
|
|
-
|
|
|
- .item {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- flex-direction: column;
|
|
|
- margin-right: 40rpx;
|
|
|
-
|
|
|
- &:last-child {
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
-
|
|
|
- .head-box {
|
|
|
- width: 120rpx;
|
|
|
- height: 120rpx;
|
|
|
- background: #F2F5F9;
|
|
|
- border-radius: 50%;
|
|
|
- margin-bottom: 20rpx;
|
|
|
- overflow: hidden;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .name {
|
|
|
- max-width: 120rpx;
|
|
|
- font-size: 28rpx;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #111111;
|
|
|
- margin-bottom: 16rpx;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
-
|
|
|
- .position {
|
|
|
- max-width: 120rpx;
|
|
|
- font-size: 24rpx;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #999999;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .inner {
|
|
|
- padding: 0 30rpx;
|
|
|
- }
|
|
|
-
|
|
|
- // 健康知识
|
|
|
- .pub-tab-box {
|
|
|
- position: relative;
|
|
|
-
|
|
|
- .tab-inner {
|
|
|
- padding: 14rpx 0 30rpx;
|
|
|
- display: flex;
|
|
|
- overflow-x: auto;
|
|
|
- }
|
|
|
-
|
|
|
- .item {
|
|
|
- font-size: 28rpx;
|
|
|
- white-space: nowrap;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #666666;
|
|
|
- margin-right: 40rpx;
|
|
|
- position: relative;
|
|
|
-
|
|
|
- &:last-child {
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
-
|
|
|
- &.active {
|
|
|
- font-weight: bold;
|
|
|
- color: #333333;
|
|
|
- }
|
|
|
-
|
|
|
- &.cases {
|
|
|
- margin-right: 60rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .text {
|
|
|
- position: relative;
|
|
|
- z-index: 1;
|
|
|
- }
|
|
|
-
|
|
|
- .tab-bg {
|
|
|
- width: 72rpx;
|
|
|
- height: 28rpx;
|
|
|
- position: absolute;
|
|
|
- top: 17rpx;
|
|
|
- left: 50%;
|
|
|
- transform: translateX(-36rpx);
|
|
|
- z-index: -1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .right-mask {
|
|
|
- width: 56rpx;
|
|
|
- height: 34rpx;
|
|
|
- position: absolute;
|
|
|
- top: 14rpx;
|
|
|
- right: -30rpx;
|
|
|
- z-index: 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .know-list {
|
|
|
- padding-right: 10rpx;
|
|
|
-
|
|
|
- .item {
|
|
|
- padding: 30rpx 0;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- border-bottom: 1px solid #F0F0F0;
|
|
|
-
|
|
|
- &:last-child {
|
|
|
- border-bottom: none;
|
|
|
- }
|
|
|
-
|
|
|
- .left {
|
|
|
- flex: 1;
|
|
|
- padding-right: 40rpx;
|
|
|
- height: 190rpx;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: space-between;
|
|
|
-
|
|
|
- .title {
|
|
|
- font-size: 32rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #111111;
|
|
|
- line-height: 48rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .info-box {
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
-
|
|
|
- .readers {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- .head-box {
|
|
|
- margin-right: 27rpx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- .head {
|
|
|
- width: 48rpx;
|
|
|
- height: 48rpx;
|
|
|
- border-radius: 50%;
|
|
|
- overflow: hidden;
|
|
|
- box-shadow: 0 0 0 1px #fff;
|
|
|
- margin-right: -10rpx;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .readings {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- .eye {
|
|
|
- width: 26rpx;
|
|
|
- height: 20rpx;
|
|
|
- margin-right: 9rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .num {
|
|
|
- font-size: 24rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #999999;
|
|
|
- line-height: 1;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .time {
|
|
|
- font-size: 24rpx;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #999999;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .right {
|
|
|
- width: 250rpx;
|
|
|
- height: 190rpx;
|
|
|
- border-radius: 8rpx;
|
|
|
- overflow: hidden;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 问诊案例
|
|
|
- .cases-list {
|
|
|
- padding-bottom: 10rpx;
|
|
|
-
|
|
|
- .item {
|
|
|
- padding: 30rpx 0;
|
|
|
- border-bottom: 1px solid #F0F0F0;
|
|
|
-
|
|
|
- &:last-child {
|
|
|
- border-bottom: none;
|
|
|
- }
|
|
|
-
|
|
|
- .dec-text {
|
|
|
- font-size: 32rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: bold;
|
|
|
- color: #111111;
|
|
|
- line-height: 48rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .images-box {
|
|
|
- margin-top: 10rpx;
|
|
|
- display: flex;
|
|
|
- flex-wrap: wrap;
|
|
|
-
|
|
|
- .img-item {
|
|
|
- width: 155rpx;
|
|
|
- height: 155rpx;
|
|
|
- background: #F5F5F5;
|
|
|
- border-radius: 8rpx;
|
|
|
- margin: 0 10rpx 10rpx 0;
|
|
|
- overflow: hidden;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
-
|
|
|
- &:nth-child(4n) {
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .doc-info {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- margin: 30rpx 0 20rpx;
|
|
|
-
|
|
|
- .head {
|
|
|
- width: 60rpx;
|
|
|
- height: 60rpx;
|
|
|
- background: #F2F5F9;
|
|
|
- border-radius: 50%;
|
|
|
- margin-right: 20rpx;
|
|
|
- overflow: hidden;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .name {
|
|
|
- font-size: 28rpx;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #111111;
|
|
|
- }
|
|
|
-
|
|
|
- .line {
|
|
|
- width: 1px;
|
|
|
- height: 22rpx;
|
|
|
- background: #DDDDDD;
|
|
|
- margin: 0 16rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .posit,
|
|
|
- .address {
|
|
|
- font-size: 26rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #999999;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .answer-box {
|
|
|
- width: 100%;
|
|
|
- // height: 117rpx;
|
|
|
- background: #F5F7F7;
|
|
|
- border-radius: 10rpx;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: center;
|
|
|
-
|
|
|
- .text-inner {
|
|
|
- // height: 84rpx;
|
|
|
- font-size: 28rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #666666;
|
|
|
- line-height: 42rpx;
|
|
|
- padding: 15rpx;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .read-box {
|
|
|
- margin-top: 30rpx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: flex-end;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 24rpx;
|
|
|
- height: 19rpx;
|
|
|
- margin-right: 10rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .text {
|
|
|
- font-size: 24rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #999999;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 精选药品
|
|
|
- .feat-title {
|
|
|
- margin-top: 30rpx;
|
|
|
- padding: 10rpx 0 33rpx;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 37rpx;
|
|
|
- height: 37rpx;
|
|
|
- margin: 0rpx 20rpx;
|
|
|
- }
|
|
|
-
|
|
|
- text {
|
|
|
- font-size: 36rpx;
|
|
|
- line-height: 1;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: bold;
|
|
|
- color: #111111;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .drug-list {
|
|
|
- display: flex;
|
|
|
- flex-wrap: wrap;
|
|
|
-
|
|
|
- // margin-bottom: 20rpx;
|
|
|
- .item {
|
|
|
- margin-right: 20rpx;
|
|
|
- margin-bottom: 20rpx;
|
|
|
- width: 345rpx;
|
|
|
- background: #FFFFFF;
|
|
|
- box-shadow: 0px 0px 10rpx 4rpx rgba(199, 199, 199, 0.22);
|
|
|
- border-radius: 20rpx;
|
|
|
- overflow: hidden;
|
|
|
-
|
|
|
- &:nth-child(2n) {
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
-
|
|
|
- .img-box {
|
|
|
- width: 100%;
|
|
|
- height: 334rpx;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .info-box {
|
|
|
- box-sizing: border-box;
|
|
|
- height: 182rpx;
|
|
|
- padding: 20rpx;
|
|
|
-
|
|
|
- .title {
|
|
|
- height: 80rpx;
|
|
|
- font-size: 26rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #111111;
|
|
|
- line-height: 40rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .price-box {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- margin-top: 20rpx;
|
|
|
-
|
|
|
- .now {
|
|
|
- color: #FF6633;
|
|
|
- display: flex;
|
|
|
- align-items: flex-end;
|
|
|
- margin-right: 20rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
-
|
|
|
- .unit {
|
|
|
- font-size: 24rpx;
|
|
|
- line-height: 1.4;
|
|
|
- margin-right: 4rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .num {
|
|
|
- font-size: 36rpx;
|
|
|
- font-weight: bold;
|
|
|
- line-height: 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .old {
|
|
|
- font-size: 26rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- text-decoration: line-through;
|
|
|
- color: #BBBBBB;
|
|
|
- line-height: 1;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- .official-account {
|
|
|
- box-sizing: border-box;
|
|
|
- width: 100%;
|
|
|
- height: 100rpx;
|
|
|
- position: fixed;
|
|
|
- bottom: 30rpx;
|
|
|
- z-index: 99;
|
|
|
- padding: 0 20rpx 180rpx 20rpx;
|
|
|
- }
|
|
|
-
|
|
|
- // 消息
|
|
|
- .message-box {
|
|
|
- box-sizing: border-box;
|
|
|
- width: 100%;
|
|
|
- height: 84rpx;
|
|
|
- background: #F3FFFD;
|
|
|
- border: 1px solid #C7E9E5;
|
|
|
- box-shadow: 0px 4rpx 12rpx 0px rgba(90, 203, 138, 0.16);
|
|
|
- border-radius: 16rpx;
|
|
|
- position: fixed;
|
|
|
- left: 50%;
|
|
|
- transform: translateX(-50%);
|
|
|
- bottom: 30rpx;
|
|
|
- z-index: 99;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- padding: 0 20rpx 0 30rpx;
|
|
|
-
|
|
|
- .left {
|
|
|
- flex: 1;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 24rpx;
|
|
|
- height: 24rpx;
|
|
|
- margin-right: 18rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .text {
|
|
|
- width: 90%;
|
|
|
- font-size: 28rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #2BC7B9;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .btn {
|
|
|
- width: 100rpx;
|
|
|
- height: 48rpx;
|
|
|
- line-height: 48rpx;
|
|
|
- text-align: center;
|
|
|
- font-size: 24rpx;
|
|
|
- font-family: PingFang SC;
|
|
|
- font-weight: 500;
|
|
|
- color: #FFFFFF;
|
|
|
- border: 1px solid #D2E6FF;
|
|
|
- background: linear-gradient(135deg, #2BC7B9 0%, #60CDC3 100%);
|
|
|
- border-radius: 24rpx;
|
|
|
- margin-left: 30rpx;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- .contact-btn {
|
|
|
- display: inline-block;
|
|
|
- position: absolute;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- opacity: 0;
|
|
|
- }
|
|
|
-
|
|
|
- .popup-box {
|
|
|
- position: fixed;
|
|
|
- top: 0;
|
|
|
- right: 0;
|
|
|
- left: 0;
|
|
|
- bottom: 0;
|
|
|
- z-index: 999;
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- .info-mask {
|
|
|
- position: fixed;
|
|
|
- top: 0;
|
|
|
- right: 0;
|
|
|
- bottom: 0;
|
|
|
- left: 0;
|
|
|
- background-color: rgba($color: #000000, $alpha: 0.5);
|
|
|
- z-index: 999;
|
|
|
- }
|
|
|
-
|
|
|
- .info-form {
|
|
|
- z-index: 1000;
|
|
|
- width: 450rpx;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
- position: relative;
|
|
|
-
|
|
|
- image {
|
|
|
- width: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+<style lang="scss" scoped>
|
|
|
+::v-deep .scs-scroll-navbar {
|
|
|
+ width: calc(100vw - 140rpx) !important;
|
|
|
+}
|
|
|
+
|
|
|
+.scs-nav-bar {
|
|
|
+ background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 49.52%, #F5F7FA 100%);
|
|
|
+}
|
|
|
</style>
|