index.vue 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335
  1. <template>
  2. <view class="content">
  3. <view class="cont">
  4. <view class="bg">
  5. <image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/4e7d59d18291491a81c67ed2cfd95a4c.png"></image>
  6. </view>
  7. <view class="top-box" :style="{ background: bg }" >
  8. <view class="status_bar" :style="{height: statusBarHeight}"></view>
  9. <view class="top-title">
  10. <view class="name" :style="{ color: titleColor }">御君方互联网医院</view>
  11. <view class="desc-box" >
  12. <image v-if="!isTop" src="../../static/images/dui.png"></image>
  13. <image v-if="isTop" src="../../static/images/dui1.png"></image>
  14. <view class="desc" :style="{ color: descColor }">卫健部门权威认证机构,世界各地千万用户健康选择</view>
  15. </view>
  16. </view>
  17. <view class="search">
  18. <view class="search-box" @click="navTo('/pages_index/search')">
  19. <image class="img" src="/static/images/icon_search.png" mode=""></image>
  20. <input disabled type="text" placeholder="搜索医生/疾病/知识" placeholder-class="input-place">
  21. </view>
  22. <view class="msg">
  23. <image v-if="!isTop" class="msg" src="/static/images/msg.png"></image>
  24. <image v-if="isTop" class="msg" src="/static/images/msg1.png"></image>
  25. <button class='contact-btn' open-type="contact">
  26. </button>
  27. </view>
  28. </view>
  29. </view>
  30. <view class="cont-box">
  31. <view class="status_bar" :style="{height: statusBarHeight}"></view>
  32. <view style="padding-bottom:178rpx" >
  33. </view>
  34. <view class="banner" v-if="advImgs.length>0">
  35. <u-swiper
  36. :list="advImgs"
  37. indicator
  38. indicatorMode="line"
  39. circular
  40. @click="handleAdvClick"
  41. ></u-swiper>
  42. </view>
  43. <view class="btns">
  44. <view class="btn1" @click="navTo('/pages_doctor/doctorList')">
  45. <view class="title-box">
  46. <view class="title">专家问诊</view>
  47. <view class="desc">名医问诊处方</view>
  48. </view>
  49. <image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/4c28bef97d714e569e672e006ee471e2.png"></image>
  50. <image class="mask" src="../../static/images/mask.png"></image>
  51. </view>
  52. <view class="btn2" @click="navTo('/pages_order/inquirySelectType')">
  53. <view class="title-box">
  54. <view class="title">健康咨询</view>
  55. <view class="desc">快速健康咨询</view>
  56. </view>
  57. <image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/86e6f39efbc54d2dadf058dde269e573.png"></image>
  58. <image class="mask" src="../../static/images/mask.png"></image>
  59. </view>
  60. </view>
  61. <view class="modules">
  62. <view class="module" v-for="(item,index) in layouts">
  63. <view class="menus" v-if="item.id==1&&item.isShow">
  64. <view class="title">{{item.name}}</view>
  65. <view class="menu-box">
  66. <view class="menu" @click="navTo('/pages_index/testList')">
  67. <image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/6104b270481040dd8340859c9d901c09.png"></image>
  68. </view>
  69. <view class="menu" @click="loginNavTo('/pages_user/integralGoodsList')">
  70. <image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/f9f2f6c6b4d24f1ba9a637dfed74f8c3.png"></image>
  71. </view>
  72. <view class="menu" @click="navTo('/pages_order/inquirySelect?inquiryType=3')">
  73. <image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/76f15105ebe442398da1fe57e080bcd4.png"></image>
  74. </view>
  75. <view class="menu" @click="switchTab('/pages/store/index')">
  76. <image src="https://cos.his.cdwjyyh.com/fs/20240509/908255a8d8134a5482f0314bfbb42c02.png"></image>
  77. </view>
  78. </view>
  79. </view>
  80. <view class="depts" v-if="item.id==2&&item.isShow">
  81. <view class="title">
  82. {{item.name}}
  83. </view>
  84. <view class="dept-box">
  85. <view @click="navTo('/pages_doctor/doctorList?deptId='+item.deptId)" class="dept" v-for="(item,index) in depts">
  86. <image class="icon" :src="item.iconUrl"></image>
  87. <view class="title">{{item.deptName}}</view>
  88. </view>
  89. <view @click="navTo('/pages_doctor/doctorList?deptId=0')" class="dept">
  90. <image class="icon" src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/acbb520df8284c6aaff601cb06411c2a.png"></image>
  91. <view class="title">更多科室</view>
  92. </view>
  93. </view>
  94. </view>
  95. <view class="depts" v-if="item.id==3&&item.isShow">
  96. <view class="title">
  97. {{item.name}}
  98. </view>
  99. <view class="dept-box">
  100. <view @click="yangshengClick(item)" class="dept" v-for="(item,index) in yangshengs" >
  101. <image class="icon" :src="item.icon"></image>
  102. <view class="title" >{{item.title}}{{item.isShow}} </view>
  103. </view>
  104. </view>
  105. </view>
  106. <view class="doctor-articles" v-if="item.id==4&&item.isShow" >
  107. <view class="title-box">
  108. <view class="title">{{item.name}}</view>
  109. <view class="more" @click="navTo('/pages_doctor/doctorArticleList')" >
  110. <view class="text">更多</view>
  111. <image src="/static/images/arrow_gray.png"></image>
  112. </view>
  113. </view>
  114. <scroll-view :scroll-x="true" style="white-space: nowrap;">
  115. <view class="article-box" >
  116. <view class="article" @click="navTo('/pages_doctor/doctorArticleDetails?articleId='+item.articleId)" v-for="(item,index) in doctocArticles">
  117. <view class="image-box">
  118. <image mode="aspectFill" :src="item.imageUrl"></image>
  119. <view class="views">
  120. {{item.views}}人观看
  121. </view>
  122. <view class="doctor">
  123. <image mode="aspectFill" :src="item.avatar"></image>
  124. <view class="right">
  125. <view class="doc-name ellipsis">{{item.doctorName}}</view>
  126. <view class="doc-position ellipsis">{{item.position}}</view>
  127. </view>
  128. </view>
  129. </view>
  130. <view class="article-title-box">
  131. <view class="article-title ellipsis">{{item.title}}</view>
  132. </view>
  133. </view>
  134. </view>
  135. </scroll-view>
  136. </view>
  137. <view class="doctors" v-if="item.id==5&&item.isShow">
  138. <view class="title-box">
  139. <view class="title">{{item.name}}</view>
  140. <view class="more" @click="navTo('/pages_doctor/doctorList')">
  141. <view class="text">更多</view>
  142. <image src="../../static/images/arrow_gray.png"></image>
  143. </view>
  144. </view>
  145. <view class="doctor-box" v-if="doctors.length>0">
  146. <view class="doctor" @click="navTo('/pages_doctor/doctorDetails?doctorId='+item.doctorId)" v-for="(item,index) in doctors">
  147. <view class="item">
  148. <view class="left">
  149. <view class="head-box">
  150. <image mode="aspectFill" class="doc-img" :src="item.avatar"></image>
  151. <view class="isline" v-if="item.workStatus==1">
  152. <view class="img">
  153. <image src="../../static/images/isline.png"></image>
  154. <view class="name">在线</view>
  155. </view>
  156. </view>
  157. </view>
  158. </view>
  159. <view class="right">
  160. <view class="doc-box">
  161. <view class="doc-name">
  162. {{item.doctorName}}
  163. </view>
  164. <view class="doc-position">{{item.position}}</view>
  165. <view class="doc-dept">{{item.deptName}}</view>
  166. </view>
  167. <view class="hospital-box">
  168. <!-- <view class="tag" v-if="item.hospitalLevel!=null">
  169. <text>{{$getDictLabelName(hosLevelOptions,item.hospitalLevel)}}</text>
  170. </view> -->
  171. <view class="name">{{item.hospitalName}} </view>
  172. </view>
  173. <view class="doc-spec">
  174. <view class="spec ellipsis2">{{item.speciality}}</view>
  175. </view>
  176. <view class="doc-count">
  177. <view class="name">好评:</view>
  178. <view class="count">{{item.pingStar}}分</view>
  179. <view class="name">接诊量:</view>
  180. <view class="count">{{item.orderNumber}}</view>
  181. <view class="name">平均响应:</view>
  182. <view class="count"></view>
  183. </view>
  184. <view class="doc-price" >
  185. <view class="btn">
  186. 咨询医生¥
  187. <text v-for="(price,index) in item.prices">
  188. {{price.price.toFixed(2)}} <text v-if="index==0">/</text>
  189. </text>
  190. </view>
  191. </view>
  192. </view>
  193. </view>
  194. </view>
  195. </view>
  196. </view>
  197. <view class="articles" v-if="item.id==6&&item.isShow">
  198. <view class="title-box">
  199. <view class="title">{{item.name}}</view>
  200. <view class="more" @click="navTo('/pages_index/articleList')">
  201. <view class="text">更多</view>
  202. <image src="../../static/images/arrow_gray.png"></image>
  203. </view>
  204. </view>
  205. <view class="article-box" v-if="articles.length>0">
  206. <view class="item" @click="navTo('/pages_index/articleDetails?articleId='+item.articleId)" v-for="(item,index) in articles">
  207. <view class="left">
  208. <view class="title">
  209. {{item.title}}
  210. </view>
  211. <view class="views">
  212. 浏览量 {{item.views}}
  213. </view>
  214. </view>
  215. <view class="right">
  216. <image :src="item.imageUrl"></image>
  217. </view>
  218. </view>
  219. </view>
  220. </view>
  221. <view class="packages" v-if="item.id==7&&item.isShow">
  222. <view class="title-box">
  223. <view class="title">{{item.name}}</view>
  224. <view class="more" @click="navTo('/pages_index/packageList')">
  225. <view class="text">更多</view>
  226. <image src="../../static/images/arrow_gray.png"></image>
  227. </view>
  228. </view>
  229. <view class="package-box" >
  230. <view class="item" @click="navTo('/pages_index/packageDetails?packageId='+item.packageId)" v-for="(item,index) in packages">
  231. <view class="top">
  232. <image :src="item.imgUrl"></image>
  233. </view>
  234. <view class="bottom">
  235. <view class="title ellipsis2">
  236. {{item.packageName}}
  237. </view>
  238. <view class="price-box">
  239. <view class="price">¥{{item.price.toFixed(2)}}元/日</view>
  240. <view class="count">{{item.sales}}人已购</view>
  241. </view>
  242. </view>
  243. </view>
  244. </view>
  245. </view>
  246. </view>
  247. </view>
  248. </view>
  249. </view>
  250. </view>
  251. </template>
  252. <script>
  253. import {getConfigByKey} from '@/api/common'
  254. import {getPackageList} from '@/api/package.js'
  255. import {getDoctorArticleList} from '@/api/doctorArticle.js'
  256. import {getDoctorList} from '@/api/doctor.js'
  257. import {getArticleList} from '@/api/article.js'
  258. import {getAdvList} from '@/api/adv.js'
  259. import {getDepartmentList} from '@/api/department.js'
  260. import {getDictByKey} from '@/api/common.js'
  261. export default {
  262. data() {
  263. return {
  264. layouts:[],
  265. yangshengs:[
  266. {id:"0",title:"AI舌诊",page:"/pages_user/tongue/index",icon:"https://cos.his.cdwjyyh.com/fs/20240919/647fb42de0ab4e96a6c3097f3c3d9cf5.png"},
  267. {id:"1",title:"药膳食疗",page:"/pages_index/medicatedFoodList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/3cfbd47911cf4753aa9497eac500728d.png"},
  268. {id:"2",title:"经络穴位",page:"/pages_index/vesselList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/e93536a9dc1a4f8ca09545097b12fdea.png"},
  269. {id:"3",title:"问答专区",page:"/pages_index/questionsList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/e896972bd56f4e358188af36f2c5af42.png"},
  270. {id:"4",title:"疾病",page:"/pages_index/diseaseList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/d6f1851cccae414b8baf2ba07782f91b.png"},
  271. {id:"5",title:"中药图解",page:"/pages_index/chineseMedicineList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/ff43572d0d004285b5a3b0ef2663c471.png"},
  272. {id:"6",title:"名方今用",page:"/pages_index/famousPrescribeList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/45db770e58c34963b0d2ba24a958b617.png"},
  273. {id:"7",title:"康复医案",page:"/pages_doctor/doctorArticleList",icon:"https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/e793942797b24035b51f94d894bdfa0b.png"}
  274. ],
  275. isTop:false,
  276. titleColor:"#2A2B2E",
  277. descColor:"#626468",
  278. top:0,
  279. // 状态栏的高度
  280. statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
  281. advImgs:[],
  282. doctors:[],
  283. advs:[],
  284. articles:[],
  285. depts:[],
  286. doctocArticles:[],
  287. hosLevelOptions:[],
  288. packages:[]
  289. }
  290. },
  291. onLoad() {
  292. this.getDictByKey("sys_hospital_level");
  293. uni.$on('refreshMsgCount', () => {
  294. try{
  295. let totalUnreadCount = uni.$TUIKit.getTotalUnreadMessageCount();
  296. if(totalUnreadCount>0){
  297. try{
  298. uni.setTabBarBadge({ //显示数字
  299. index: 1, //tabbar下标
  300. text: totalUnreadCount+"" //数字
  301. })
  302. }
  303. catch(e){
  304. }
  305. }
  306. else{
  307. try{
  308. uni.hideTabBarRedDot({ //隐藏红点
  309. index: 1 //tabbar下标
  310. })
  311. }
  312. catch(e){
  313. }
  314. }
  315. }catch(e){
  316. }
  317. })
  318. },
  319. onShow() {
  320. this.getDoctorList();
  321. this.getArticleList();
  322. this.getAdvList();
  323. this.getDepartmentList();
  324. this.getDoctorArticleList();
  325. this.getPackageList();
  326. this.getConfigByKey("his.appShow");
  327. var that=this;
  328. uni.$emit('refreshMsgCount');
  329. },
  330. onPageScroll(e) {
  331. this.top=e.scrollTop;
  332. },
  333. //发送给朋友
  334. onShareAppMessage(res) {
  335. if(this.$isLogin()){
  336. return {
  337. title: "御君方互联网医院",
  338. path: '/pages/index/index',
  339. imageUrl: 'https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20230106/6b459adfb1004c1a96219bcdf07e337c.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  340. }
  341. }
  342. },
  343. //分享到朋友圈
  344. onShareTimeline(res) {
  345. if(this.utils.isLogin()){
  346. return {
  347. title: "御君方互联网医院",
  348. imageUrl: 'https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20230106/6b459adfb1004c1a96219bcdf07e337c.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4
  349. }
  350. }
  351. },
  352. computed: {
  353. bg: function() {
  354. var top=this.top/120;
  355. console.log(top)
  356. if(top>0){
  357. this.isTop=true;
  358. this.titleColor="#fff"
  359. this.descColor="#fff"
  360. }
  361. else{
  362. this.isTop=false;
  363. this.titleColor="#2A2B2E"
  364. this.descColor="#626468"
  365. }
  366. return 'rgba(195,154,88, ' + top + ')';
  367. },
  368. },
  369. methods: {
  370. dev(){
  371. uni.showToast({
  372. icon:"none",
  373. title: '敬请期待'
  374. })
  375. },
  376. getConfigByKey(key){
  377. var that=this;
  378. var data={key:key}
  379. getConfigByKey(data).then(
  380. res => {
  381. if(res.code==200){
  382. this.layouts=JSON.parse(res.data);
  383. this.layouts.sort((a, b) => a.sort - b.sort)
  384. console.log(this.layouts)
  385. this.layouts.forEach(function(element) {
  386. if(element.id=="4"){
  387. if(!element.isShow){
  388. that.yangshengs.splice(6,1);
  389. }
  390. }
  391. if(element.id=="7"){
  392. // if(!element.isShow){
  393. // uni.setTabBarItem({
  394. // index:2, //从左到右 0开始
  395. // visible:false //默认true false隐藏
  396. // })
  397. // }
  398. // else{
  399. // uni.setTabBarItem({
  400. // index:2, //从左到右 0开始
  401. // visible:true //默认true false隐藏
  402. // })
  403. // }
  404. }
  405. });
  406. }
  407. },
  408. rej => {}
  409. );
  410. },
  411. yangshengClick(item){
  412. if(item.id==0){
  413. this.$isLogin().then(
  414. res => {
  415. if(res){
  416. uni.navigateTo({
  417. url:item.page
  418. })
  419. }
  420. else{
  421. uni.navigateTo({
  422. url:'/pages/auth/login'
  423. })
  424. }
  425. }
  426. );
  427. }
  428. else{
  429. if(item.page==""){
  430. uni.showToast({
  431. icon:"none",
  432. title: '暂无更多'
  433. })
  434. return;
  435. }
  436. uni.navigateTo({
  437. url:item.page
  438. })
  439. }
  440. },
  441. switchTab(url){
  442. uni.switchTab({
  443. url:url
  444. })
  445. },
  446. navToMiniProgram(){
  447. uni.navigateToMiniProgram({
  448. // appid 写你要跳转的小程序的 appid
  449. appId: 'wx45cf09091aead547',
  450. // 路径写 src下的路径,假如你跳转的是pages下的页面,就可以写pages/index
  451. path: '/pages/common/launch',
  452. extraData: {
  453. // 'type': 'out'
  454. },
  455. // 这个不写的话会显示开发环境,不能正常跳转,写上就能正常跳转了
  456. envVersion: 'develop',
  457. success(res) {
  458. // 打开成功
  459. // uni.showToast({
  460. // title: '跳转成功'
  461. // })
  462. },
  463. fail(err) {
  464. // 打开失败/取消
  465. // uni.showToast({
  466. // title: '跳转不成功'
  467. // })
  468. }
  469. })
  470. },
  471. getDictByKey(key){
  472. var data={key:key}
  473. getDictByKey(data).then(
  474. res => {
  475. if(res.code==200){
  476. if(key=="sys_hospital_level"){
  477. this.hosLevelOptions=res.data;
  478. }
  479. }
  480. },
  481. err => {
  482. }
  483. );
  484. },
  485. getDoctorArticleList(page) {
  486. //联网加载数据
  487. var that = this;
  488. var data = {
  489. pageNum:1,
  490. pageSize:10,
  491. };
  492. getDoctorArticleList(data).then(res => {
  493. if(res.code==200){
  494. this.doctocArticles=res.data.list;
  495. }else{
  496. }
  497. });
  498. },
  499. getDepartmentList(page) {
  500. //联网加载数据
  501. var that = this;
  502. var data = {
  503. isTui:1
  504. };
  505. getDepartmentList(data).then(res => {
  506. if(res.code==200){
  507. this.depts=res.data;
  508. }
  509. });
  510. },
  511. handleAdvClick(index){
  512. var ad=this.advs[index];
  513. console.log(ad.advUrl);
  514. if(ad.showType==1){
  515. uni.setStorageSync('url',ad.advUrl);
  516. uni.navigateTo({
  517. url:"h5"
  518. })
  519. }
  520. else if(ad.showType==2){
  521. uni.navigateTo({
  522. url:ad.advUrl
  523. })
  524. }
  525. else if(ad.showType==3){
  526. uni.setStorageSync('content',ad.content);
  527. uni.navigateTo({
  528. url:"content"
  529. })
  530. }
  531. },
  532. getAdvList() {
  533. //联网加载数据
  534. var that = this;
  535. var data = {
  536. advType:1
  537. };
  538. getAdvList(data).then(res => {
  539. if(res.code==200){
  540. that.advImgs=[];
  541. that.advs=[];
  542. res.data.forEach(function(element) {
  543. if(element.imageUrl!=null&&element.imageUrl!=""){
  544. that.advs.push(element);
  545. that.advImgs.push(element.imageUrl);
  546. }
  547. });
  548. }else{
  549. uni.showToast({
  550. icon:'none',
  551. title: "请求失败",
  552. });
  553. }
  554. });
  555. },
  556. getArticleList() {
  557. //联网加载数据
  558. var that = this;
  559. var data = {
  560. isTui:1,
  561. pageNum:1,
  562. pageSize:10,
  563. };
  564. getArticleList(data).then(res => {
  565. if(res.code==200){
  566. this.articles=res.data.list;
  567. }else{
  568. uni.showToast({
  569. icon:'none',
  570. title: "请求失败",
  571. });
  572. }
  573. });
  574. },
  575. getDoctorList() {
  576. //联网加载数据
  577. var that = this;
  578. var data = {
  579. isTui:1,
  580. pageNum:1,
  581. pageSize:10,
  582. };
  583. getDoctorList(data).then(res => {
  584. if(res.code==200){
  585. this.doctors=res.data.list;
  586. this.doctors.forEach(function(value,index,array){
  587. value.prices=JSON.parse(value.priceJson)
  588. });
  589. }else{
  590. uni.showToast({
  591. icon:'none',
  592. title: "请求失败",
  593. });
  594. }
  595. });
  596. },
  597. getPackageList() {
  598. //联网加载数据
  599. var that = this;
  600. var data = {
  601. isShow:1,
  602. pageNum:1,
  603. pageSize:10,
  604. };
  605. getPackageList(data).then(res => {
  606. if(res.code==200){
  607. this.packages=res.data.list;
  608. }else{
  609. uni.showToast({
  610. icon:'none',
  611. title: "请求失败",
  612. });
  613. }
  614. });
  615. },
  616. loginNavTo(url){
  617. this.$isLogin().then(
  618. res => {
  619. if(res){
  620. console.log(res)
  621. uni.navigateTo({
  622. url: url
  623. })
  624. }
  625. else{
  626. uni.navigateTo({
  627. url:'/pages/auth/login'
  628. })
  629. }
  630. }
  631. );
  632. },
  633. navTo(url){
  634. if(url=="dev"){
  635. uni.showToast({
  636. icon:'none',
  637. title: "尽情期待...",
  638. });
  639. return;
  640. }
  641. console.log(url)
  642. uni.navigateTo({
  643. url: url
  644. })
  645. },
  646. navToTest() {
  647. const course = {"companyId":100,"companyUserId":6806,"corpId":"ww5a88c4f879f204c5","courseId":63,"link":"1899022782092541952","linkType":3,"qwExternalId":9914983,"qwUserId":"18931","videoId":409}
  648. uni.navigateTo({
  649. url: '/pages_course/video?course='+JSON.stringify(course)
  650. })
  651. }
  652. }
  653. }
  654. </script>
  655. <style scoped lang="scss">
  656. .content{
  657. height: 100%;
  658. .cont{
  659. position: relative;
  660. width: 100%;
  661. display: flex;
  662. flex-direction: column;
  663. .bg{
  664. width: 100%;
  665. height:450rpx;
  666. // background-color: #2BC7B9;
  667. // background: linear-gradient(#2BC7B9, #88e2da);
  668. position: fixed;
  669. image{
  670. border-radius: 0rpx 0rpx 50rpx 50rpx;
  671. width: 100%;
  672. height:100%;
  673. }
  674. }
  675. .top-box{
  676. width: 100%;
  677. position: fixed;
  678. top: 0;
  679. left: 0;
  680. z-index: 1001;
  681. .top-title{
  682. height: 88upx;
  683. // line-height: 88upx;
  684. display: flex;
  685. flex-direction: column;
  686. align-items: flex-start;
  687. justify-content: center;
  688. margin-left: 15rpx;
  689. .name{
  690. font-size: 32upx;
  691. font-family: Source Han Sans CN;
  692. font-weight: bold;
  693. color: #2A2B2E;
  694. }
  695. .desc-box{
  696. display: flex;
  697. align-items: center;
  698. justify-content: flex-start;
  699. margin-top: 10rpx;
  700. image{
  701. width:24rpx;
  702. height:24rpx;
  703. }
  704. .desc{
  705. margin-left: 5rpx;
  706. font-size: 20upx;
  707. font-family: Source Han Sans CN;
  708. color: #626468;
  709. }
  710. }
  711. }
  712. .search{
  713. box-sizing: border-box;
  714. z-index: 101;
  715. padding: 15rpx;
  716. width: 100%;
  717. display: flex;
  718. align-items: center;
  719. justify-content: center;
  720. .search-box{
  721. flex: 1;
  722. margin-right: 10rpx;
  723. height: 60upx;
  724. line-height: 60upx;
  725. border-radius: 30upx;
  726. background-color: #fff;
  727. padding: 0 30upx;
  728. display: flex;
  729. align-items: center;
  730. transition: all .5s;
  731. .img{
  732. width: 30upx;
  733. height: 30upx;
  734. margin-right: 10upx;
  735. }
  736. input{
  737. flex: 1;
  738. font-size: 24upx;
  739. color: #000;
  740. }
  741. .input-place{
  742. font-size: 24upx;
  743. color: #878787;
  744. }
  745. }
  746. .msg{
  747. position: relative;
  748. width:50rpx;
  749. height:50rpx;
  750. image{
  751. width: 100%;
  752. height:100%;
  753. }
  754. .contact-btn {
  755. top: 0;
  756. position: absolute;
  757. width:100%;
  758. height:100%;
  759. opacity: 0;
  760. }
  761. }
  762. }
  763. }
  764. .cont-box{
  765. z-index: 1000;
  766. .banner{
  767. margin-top: 20rpx;
  768. width: 100%;
  769. padding: 0 20upx;
  770. }
  771. .btns{
  772. padding: 0 20upx;
  773. margin-top: 20rpx;
  774. width: 100%;
  775. display: flex;
  776. align-items: center;
  777. justify-content: center;
  778. .btn1{
  779. position: relative;
  780. background: linear-gradient(to bottom, #EEC992, #CDA569);
  781. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  782. margin-right: 30rpx;
  783. border-radius: 15rpx;
  784. height:180rpx;
  785. padding: 15rpx 30rpx;
  786. width:50%;
  787. display: flex;
  788. align-items: center;
  789. justify-content: space-between;
  790. &:last-child{
  791. margin-right: 0rpx;
  792. }
  793. image{
  794. width:104rpx;
  795. height:104rpx;
  796. }
  797. .mask{
  798. position: absolute;
  799. top:0rpx;
  800. right:0rpx;
  801. width: 100rpx;
  802. height:100rpx;
  803. }
  804. .title-box{
  805. display: flex;
  806. align-items: flex-start;
  807. justify-content: center;
  808. flex-direction: column;
  809. .title{
  810. font-size: 36upx;
  811. font-weight: bold;
  812. color: #ffffff;
  813. }
  814. .desc{
  815. margin-top: 6rpx;
  816. opacity: 0.8;
  817. font-size: 26upx;
  818. color: #ffffff;
  819. }
  820. }
  821. }
  822. .btn2{
  823. position: relative;
  824. background: linear-gradient(to bottom, #EE8C5F, #EA5733);
  825. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  826. margin-right: 30rpx;
  827. border-radius: 15rpx;
  828. height:180rpx;
  829. padding: 15rpx 30rpx;
  830. width:50%;
  831. display: flex;
  832. align-items: center;
  833. justify-content: space-between;
  834. &:last-child{
  835. margin-right: 0rpx;
  836. }
  837. image{
  838. width:104rpx;
  839. height:104rpx;
  840. }
  841. .mask{
  842. position: absolute;
  843. top:0rpx;
  844. right:0rpx;
  845. width: 100rpx;
  846. height:100rpx;
  847. }
  848. .title-box{
  849. display: flex;
  850. align-items: flex-start;
  851. justify-content: center;
  852. flex-direction: column;
  853. .title{
  854. font-size: 36upx;
  855. font-weight: bold;
  856. color: #ffffff;
  857. }
  858. .desc{
  859. margin-top: 6rpx;
  860. opacity: 0.8;
  861. font-size: 26upx;
  862. font-weight: bold;
  863. color: #ffffff;
  864. }
  865. }
  866. }
  867. }
  868. .modules{
  869. .module{
  870. .menus{
  871. z-index: 101;
  872. margin: 20rpx 15rpx 0rpx;
  873. padding: 20rpx;
  874. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  875. background-color: #fff;
  876. border-radius: 15rpx;
  877. .title{
  878. font-size: 32upx;
  879. font-family: PingFang SC;
  880. font-weight: bold;
  881. color: #2A2B2E;
  882. }
  883. .menu-box{
  884. display: flex;
  885. align-items: center;
  886. justify-content: flex-start;
  887. flex-wrap:wrap;
  888. .menu{
  889. padding: 15rpx;
  890. width:50%;
  891. display: flex;
  892. flex-direction: column;
  893. align-items: center;
  894. justify-content: center;
  895. flex-wrap: wrap;
  896. image{
  897. width:100%;
  898. height:180rpx;
  899. }
  900. }
  901. }
  902. }
  903. .depts{
  904. z-index: 101;
  905. margin: 20rpx 15rpx 0rpx;
  906. padding: 20rpx;
  907. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  908. background-color: #fff;
  909. border-radius: 15rpx;
  910. .title{
  911. font-size: 32upx;
  912. font-family: PingFang SC;
  913. font-weight: bold;
  914. color: #2A2B2E;
  915. }
  916. .dept-box{
  917. margin-top: 15rpx;
  918. display: flex;
  919. align-items: center;
  920. justify-content: flex-start;
  921. flex-wrap:wrap;
  922. .dept{
  923. padding: 15rpx 5rpx;
  924. width:25%;
  925. display: flex;
  926. flex-direction: column;
  927. align-items: center;
  928. justify-content: center;
  929. .icon{
  930. width:58rpx;
  931. height:58rpx;
  932. }
  933. .title{
  934. margin-top: 10rpx;
  935. font-size: 24upx;
  936. font-family: PingFang SC;
  937. font-weight: 500;
  938. color: #111111;
  939. }
  940. }
  941. }
  942. }
  943. .doctor-articles{
  944. z-index: 101;
  945. margin: 20rpx 15rpx 0rpx;
  946. padding: 20rpx;
  947. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  948. background-color: #fff;
  949. border-radius: 15rpx;
  950. .title-box{
  951. display: flex;
  952. flex-direction: row;
  953. align-items: center;
  954. justify-content: space-between;
  955. .title{
  956. font-size: 32upx;
  957. font-family: PingFang SC;
  958. font-weight: bold;
  959. color: #111111;
  960. }
  961. .more{
  962. display: flex;
  963. align-items: center;
  964. justify-content: flex-end;
  965. .text{
  966. font-size: 24rpx;
  967. font-family: PingFang SC;
  968. color: #9B9B9B;
  969. }
  970. image{
  971. margin-left: 10rpx;
  972. width:15rpx;
  973. height:20rpx;
  974. }
  975. }
  976. }
  977. .article-box{
  978. padding: 20rpx 0rpx;
  979. overflow-x: auto;
  980. box-sizing: border-box;
  981. display: flex;
  982. align-items: center;
  983. justify-content: flex-start;
  984. .article{
  985. width: 300rpx;
  986. margin-right: 20rpx;
  987. background: #f9f8fe;
  988. display: flex;
  989. flex-direction: column;
  990. align-items: flex-start;
  991. justify-content: flex-start;
  992. &:last-child{
  993. margin-right: 0rpx;
  994. }
  995. .image-box{
  996. width: 300rpx;
  997. height:400rpx;
  998. position: relative;
  999. border-radius: 20rpx;
  1000. image{
  1001. border-radius: 20rpx;
  1002. width: 300rpx;
  1003. height:400rpx;
  1004. }
  1005. .views{
  1006. position: absolute;
  1007. top:0rpx;
  1008. left:0rpx;
  1009. padding: 5rpx 10rpx;
  1010. background: rgba(0,0,0,0.25);
  1011. border-radius: 12rpx 0px 12rpx 0px;
  1012. opacity: 1;
  1013. font-size: 20rpx;
  1014. font-family: PingFang SC-Bold, PingFang SC;
  1015. font-weight: bold;
  1016. color: #FFFFFF;
  1017. }
  1018. .doctor{
  1019. margin: 10rpx;
  1020. display: flex;
  1021. align-items: center;
  1022. justify-content: flex-start;
  1023. position: absolute;
  1024. bottom:0rpx;
  1025. left:0rpx;
  1026. image{
  1027. border-radius: 50%;
  1028. width: 64rpx;
  1029. height:64rpx;
  1030. }
  1031. .right{
  1032. width: 200rpx;
  1033. margin-left: 10rpx;
  1034. display: flex;
  1035. flex-direction: column;
  1036. align-items: flex-start;
  1037. justify-content: space-between;
  1038. .doc-name{
  1039. width: 200rpx;
  1040. font-size: 30rpx;
  1041. font-weight: bold;
  1042. font-family: PingFang SC;
  1043. color: #fff;
  1044. }
  1045. .doc-position{
  1046. width: 100%;
  1047. font-size: 28rpx;
  1048. font-family: PingFang SC;
  1049. color: #fff;
  1050. font-weight: bold;
  1051. opacity: 0.8;
  1052. }
  1053. }
  1054. }
  1055. }
  1056. .article-title-box{
  1057. width: 100%;
  1058. margin-top: 10rpx;
  1059. display: flex;
  1060. align-items: center;
  1061. justify-content: flex-start;
  1062. .article-title{
  1063. font-size: 30rpx;
  1064. font-weight: bold;
  1065. font-family: PingFang SC;
  1066. color: #2A2B2E;
  1067. }
  1068. }
  1069. }
  1070. }
  1071. }
  1072. .doctors{
  1073. z-index: 101;
  1074. margin: 20rpx 15rpx;
  1075. padding: 20rpx;
  1076. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  1077. background-color: #fff;
  1078. border-radius: 15rpx;
  1079. .title-box{
  1080. display: flex;
  1081. flex-direction: row;
  1082. align-items: center;
  1083. justify-content: space-between;
  1084. .title{
  1085. font-size: 32upx;
  1086. font-family: PingFang SC;
  1087. font-weight: bold;
  1088. color: #111111;
  1089. }
  1090. .more{
  1091. display: flex;
  1092. align-items: center;
  1093. justify-content: flex-end;
  1094. .text{
  1095. font-size: 24rpx;
  1096. font-family: PingFang SC;
  1097. color: #9B9B9B;
  1098. }
  1099. image{
  1100. margin-left: 10rpx;
  1101. width:15rpx;
  1102. height:20rpx;
  1103. }
  1104. }
  1105. }
  1106. }
  1107. .articles{
  1108. z-index: 101;
  1109. margin: 20rpx 15rpx;
  1110. padding: 20rpx;
  1111. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  1112. background-color: #fff;
  1113. border-radius: 15rpx;
  1114. .title-box{
  1115. display: flex;
  1116. flex-direction: row;
  1117. align-items: center;
  1118. justify-content: space-between;
  1119. .title{
  1120. font-size: 32upx;
  1121. font-family: PingFang SC;
  1122. font-weight: bold;
  1123. color: #111111;
  1124. }
  1125. .more{
  1126. display: flex;
  1127. align-items: center;
  1128. justify-content: flex-end;
  1129. .text{
  1130. font-size: 24rpx;
  1131. font-family: PingFang SC;
  1132. color: #9B9B9B;
  1133. }
  1134. image{
  1135. margin-left: 10rpx;
  1136. width:15rpx;
  1137. height:20rpx;
  1138. }
  1139. }
  1140. }
  1141. .article-box{
  1142. margin-top: 15rpx;
  1143. padding: 20rpx 0rpx 0rpx;
  1144. display: flex;
  1145. flex-direction: column;
  1146. align-items: flex-start;
  1147. justify-content: flex-start;
  1148. .item{
  1149. width: 100%;
  1150. margin-bottom: 20rpx;
  1151. display: flex;
  1152. align-items: flex-start;
  1153. justify-content: flex-start;
  1154. &:last-child{
  1155. margin-bottom: 0rpx;
  1156. }
  1157. .left{
  1158. flex:1;
  1159. height:160rpx;
  1160. margin-right: 15rpx;
  1161. display: flex;
  1162. flex-direction: column;
  1163. align-items: flex-start;
  1164. justify-content: space-between;
  1165. .title{
  1166. font-size: 28upx;
  1167. font-family: PingFang SC;
  1168. font-weight: bold;
  1169. color: #111111;
  1170. }
  1171. .views{
  1172. font-size: 24upx;
  1173. font-family: PingFang SC;
  1174. color: #9a9a9c;
  1175. }
  1176. }
  1177. .right{
  1178. image{
  1179. border-radius: 10rpx;
  1180. width:220rpx;
  1181. height:160rpx;
  1182. border: 1px solid #eeeeee;
  1183. }
  1184. }
  1185. }
  1186. }
  1187. }
  1188. .packages{
  1189. z-index: 101;
  1190. margin: 20rpx 15rpx;
  1191. padding: 20rpx;
  1192. box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  1193. background-color: #fff;
  1194. border-radius: 15rpx;
  1195. .title-box{
  1196. display: flex;
  1197. flex-direction: row;
  1198. align-items: center;
  1199. justify-content: space-between;
  1200. .title{
  1201. font-size: 32upx;
  1202. font-family: PingFang SC;
  1203. font-weight: bold;
  1204. color: #111111;
  1205. }
  1206. .more{
  1207. display: flex;
  1208. align-items: center;
  1209. justify-content: flex-end;
  1210. .text{
  1211. font-size: 24rpx;
  1212. font-family: PingFang SC;
  1213. color: #9B9B9B;
  1214. }
  1215. image{
  1216. margin-left: 10rpx;
  1217. width:15rpx;
  1218. height:20rpx;
  1219. }
  1220. }
  1221. }
  1222. .package-box{
  1223. padding: 20rpx 0rpx 0rpx;
  1224. display: flex;
  1225. align-items: flex-start;
  1226. justify-content: flex-start;
  1227. flex-wrap: wrap;
  1228. .item{
  1229. width: calc(50% - 20rpx);
  1230. border-radius: 15rpx;
  1231. margin: 10rpx;
  1232. display: flex;
  1233. flex-direction: column;
  1234. align-items: flex-start;
  1235. justify-content: flex-start;
  1236. &:last-child{
  1237. }
  1238. .top{
  1239. width:100%;
  1240. height:300rpx;
  1241. image{
  1242. border-radius: 15rpx 15rpx 0rpx 0rpx;
  1243. width:100%;
  1244. height:300rpx;
  1245. }
  1246. }
  1247. .bottom{
  1248. width: 100%;
  1249. margin-top: 15rpx;
  1250. .title{
  1251. font-weight: bold;
  1252. font-size: 28upx;
  1253. font-family: PingFang SC;
  1254. color: #111111;
  1255. }
  1256. .price-box{
  1257. margin-top: 10rpx;
  1258. display: flex;
  1259. align-items: center;
  1260. justify-content: space-between;
  1261. width: 100%;
  1262. .price{
  1263. padding: 5rpx 10rpx;
  1264. background-color: #C39A58;
  1265. border-radius: 30rpx;
  1266. font-size: 20upx;
  1267. font-family: PingFang SC;
  1268. color: #ffffff;
  1269. }
  1270. .count{
  1271. font-size: 24upx;
  1272. font-family: PingFang SC;
  1273. color: #333333;
  1274. }
  1275. }
  1276. }
  1277. }
  1278. }
  1279. }
  1280. }
  1281. }
  1282. }
  1283. }
  1284. }
  1285. </style>