index.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935
  1. <template>
  2. <view class="shopDetail" :style="{marginTop:statusBarHeight}">
  3. <view class="header">
  4. <view class="hdbefore">
  5. <image :src="baseImagePath+shopData.logoUrl" alt="" style="width: 100%;height: 100%;">
  6. </view>
  7. <!-- 手机状态栏占位 -->
  8. <view class="statusBar" :style="{height:statusBarHeight+'rpx'}"></view>
  9. <!-- 导航栏 -->
  10. <view class="navigationBar" :style="{height:navigationBarHeight,paddingTop:statusBarHeight+'rpx'}">
  11. <view @click="goBack">
  12. <image class="back" :src="require('../../../static/back.png')" alt="">
  13. </view>
  14. </view>
  15. <!-- 顶部搜索 -->
  16. <view class="search">
  17. <view class="icon-search">
  18. <image :src="require('../../../static/search.png')" alt="">
  19. </view>
  20. <input class="input" type="text" confirm-type="search" @confirm="toSearch()" placeholder="输入关键字搜索"
  21. v-model="search" placeholder-class="co" />
  22. </view>
  23. <!-- 视频播放 -->
  24. <view class="video" v-if="shopData.video">
  25. <image :src="require('../../../static/video.png')" alt="">
  26. <view class="title">
  27. 视频
  28. </view>
  29. </view>
  30. <!-- 查看图片 -->
  31. <view class="image" v-if="shopData.photo" @click="toShopPhotoAlbum">
  32. <image :src="require('../../../static/pic.png')" alt="">
  33. <view class="title">
  34. 图片
  35. </view>
  36. </view>
  37. </view>
  38. <view class="body">
  39. <!-- 门店基本信息 -->
  40. <view class="header-view">
  41. <view class="headPortrait">
  42. <image :src="baseImagePath+shopData.logoUrl" alt="">
  43. </view>
  44. <view class="middle">
  45. <view class="">
  46. <view class="title">
  47. {{shopData.name}}
  48. </view>
  49. <view class="buttom">
  50. <view v-if="shopData.attribute==1" class="manage">
  51. 自营
  52. </view>
  53. <view class="stars">
  54. <view class="unit">
  55. 评分:
  56. </view>
  57. <view class="star" v-for="(item, index) in starList" :key="index">
  58. <image :src="(index+1)<=shopData.ealuationScore?item.stary:item.starsg" alt="">
  59. </view>
  60. </view>
  61. <view class="num">
  62. 收藏数{{shopData.collectionNum}}
  63. </view>
  64. </view>
  65. </view>
  66. <view :class="shopData.isCollection==1?'collect':'uncollect'" @click="toSave(shopData.id)">
  67. <image v-if="shopData.isCollection==2" :src="require('../../../static/guanzhu.png')" alt="">
  68. {{shopData.isCollection==1?'已收藏':'收藏'}}
  69. </view>
  70. </view>
  71. </view>
  72. <!-- 营业时间地址等信息 -->
  73. <view class="introduce">
  74. <view class="businessHours">
  75. 营业时间:{{shopData.satrtTime}}-{{shopData.overTime}}
  76. </view>
  77. <view class="content">
  78. <view class="locations">
  79. <view class="location">
  80. {{shopData.address}}
  81. </view>
  82. <view class="km">
  83. 距您{{shopData.distance}}km
  84. </view>
  85. </view>
  86. <view class="btn">
  87. <view class="navigation" @click="toGps()">
  88. <image :src="require('../../../static/daohang.png')" alt="">
  89. <view class="unit">
  90. 导航
  91. </view>
  92. </view>
  93. <view class="phone" @click="toCall(shopData.phone)">
  94. <image :src="require('../../../static/dianhua.png')" alt="">
  95. <view class="unit">
  96. 电话
  97. </view>
  98. </view>
  99. </view>
  100. </view>
  101. </view>
  102. <!-- 门店服务 门店评价 门店介绍 -->
  103. <view class="shopFunction">
  104. <view class="shopHeader">
  105. <view :class="shopType == 0?'action':'title'" @click="shopType = 0">
  106. 门店服务
  107. <view class="border"></view>
  108. </view>
  109. <view :class="shopType == 1?'action':'title'" @click="shopType = 1">
  110. 门店评价
  111. <view class="border"></view>
  112. </view>
  113. <view :class="shopType == 2?'action':'title'" @click="toInclude(2)">
  114. 门店介绍
  115. <view class="border"></view>
  116. </view>
  117. </view>
  118. <shopGoods v-if="shopType == 0" :set-meal-list="setMealList"></shopGoods>
  119. <view v-if="shopType == 1" class="evaluateBody" v-for="(item, index) in pingjia" :key="index">
  120. <view class="evaluateHead">
  121. <view class="titleBody">
  122. <view class="titleImg">
  123. <image :src="baseImagePath+item.userImg" alt="">
  124. </view>
  125. <view class="classTitle">
  126. <view class="title">
  127. {{item.title}}
  128. </view>
  129. <view class="star">
  130. <image v-for="(subItem, indexs) in starList" :key="indexs"
  131. :src="(indexs+1)<=item.sumScore?subItem.stary:subItem.starsg" alt="">
  132. </view>
  133. </view>
  134. </view>
  135. <view class="time">
  136. {{item.createTime}}
  137. </view>
  138. </view>
  139. <view class="evaluateButtom">
  140. <view :style="item.imgContent?'width: 75%;':''" class="evaluateContent">
  141. {{item.content}}
  142. </view>
  143. <view style="position: relative;" @click="previewImage(item.imgContent.split(','))">
  144. <image v-if="item.imgContent" :src="baseImagePath+item.imgContent.split(',')[0]" alt="">
  145. <view v-if="item.imgContent" class="phoneNum">
  146. {{item.imgContent.split(',').length}}张
  147. </view>
  148. </view>
  149. </view>
  150. </view>
  151. <view class="webView" v-if="shopType == 2">
  152. <view v-html="shopData.introduce" style="padding: 0rpx 30rpx 30rpx ;"></view>
  153. </view>
  154. </view>
  155. <view style="height: 200rpx;">
  156. </view>
  157. </view>
  158. <view class="buttomBtn">
  159. <view class="preCarWash" @click="carWash">
  160. 预约洗车
  161. </view>
  162. <view class="preMaintain" @click="routerTo">
  163. 预约维修
  164. </view>
  165. </view>
  166. </view>
  167. </template>
  168. <script>
  169. import shopGoods from '@/components/SetMeal/shopGoods.vue'
  170. import {
  171. getShopGoods,
  172. shopDetail,
  173. orderEvaluate,
  174. getInclude
  175. } from "@/api/shop.js"
  176. import {
  177. saveShop
  178. } from "../../../api/myApi.js"
  179. const app = getApp();
  180. export default {
  181. components: {
  182. shopGoods,
  183. },
  184. data: function() {
  185. return {
  186. baseImagePath: this.baseImagePath,
  187. shopType: 0, //0:门店服务 1:门店评价 2:门店介绍
  188. pingjia: [],
  189. setMealList: [],
  190. starList: [{
  191. starsg: require('../../../static/star-s-g.png'),
  192. stary: require('../../../static/star-y.png'),
  193. },
  194. {
  195. starsg: require('../../../static/star-s-g.png'),
  196. stary: require('../../../static/star-y.png'),
  197. },
  198. {
  199. starsg: require('../../../static/star-s-g.png'),
  200. stary: require('../../../static/star-y.png'),
  201. },
  202. {
  203. starsg: require('../../../static/star-s-g.png'),
  204. stary: require('../../../static/star-y.png'),
  205. },
  206. {
  207. starsg: require('../../../static/star-s-g.png'),
  208. stary: require('../../../static/star-y.png'),
  209. }
  210. ],
  211. shopData: {
  212. headerData: {
  213. url: require('../../../static/u1u5bg.png'),
  214. name: "优1优5华南广场快修店",
  215. manageType: 1,
  216. xingxing: 4,
  217. type: false,
  218. shoucangshu: "35678"
  219. }
  220. },
  221. longitude: app.globalData.longitude,
  222. latitude: app.globalData.latitude,
  223. statusBarHeight: "",
  224. navigationBarHeight: "",
  225. navHeight: "",
  226. id: "",
  227. search: "",
  228. pageNo: 1,
  229. pageSize: 10,
  230. url: ''
  231. }
  232. },
  233. onReachBottom() {
  234. switch (this.shopType) {
  235. case 0:
  236. this.pageNo += 1
  237. this.getGoods()
  238. break;
  239. case 1:
  240. this.pageNo += 1
  241. this.getEvaluate()
  242. break;
  243. case 2:
  244. break;
  245. }
  246. },
  247. onLoad(options) {
  248. // 状态栏高度
  249. this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight
  250. // #ifdef MP-WEIXIN
  251. // 获取微信胶囊的位置信息 width,height,top,right,left,bottom
  252. const custom = wx.getMenuButtonBoundingClientRect()
  253. // console.log(custom)
  254. // 导航栏高度(标题栏高度) = 胶囊高度 + (顶部距离 - 状态栏高度) * 2
  255. this.navigationBarHeight = custom.height + (custom.top - this.statusBarHeight) * 2
  256. // console.log("导航栏高度:"+this.globalData.navigationBarHeight)
  257. // 总体高度 = 状态栏高度 + 导航栏高度
  258. this.navHeight = (this.navigationBarHeight + this.statusBarHeight)
  259. this.navigationBarHeight = this.navigationBarHeight + 'px'
  260. this.statusBarHeight = this.statusBarHeight + 'px'
  261. this.navHeight = this.navHeight + 'px'
  262. // #endif
  263. this.id = options.id
  264. shopDetail({
  265. id: this.id,
  266. longitude: this.longitude,
  267. latitude: this.latitude
  268. }).then(res => {
  269. this.shopData = res.data;
  270. console.log('店铺详情=====》', this.shopData);
  271. })
  272. this.getGoods()
  273. },
  274. watch: {
  275. shopType(val) {
  276. console.log(val, '评价');
  277. this.pageNo = 1
  278. switch (val) {
  279. case 0:
  280. this.setMealList = []
  281. this.getGoods()
  282. break;
  283. case 1:
  284. this.pingjia = []
  285. this.getEvaluate()
  286. break;
  287. case 2:
  288. getInclude({
  289. id: this.id
  290. }).then(res => {
  291. for (let item in res.data) {
  292. if (res.data[item].type === "15") {
  293. // this.url = res.data[item].url+ '?id='+this.id+'&token=eyJ1c2VySWQiOjE1OTcxNTUzMDAwOTAwODUzNzgsImFjY291bnQiOiIxNTE0MTE1NTQ3NyIsInV1aWQiOiIyMGRiNGE3Ny00OTg5LTRmOWUtYWMxNi1mZDc3OGMyMjFmMWQiLCJyZW1lbWJlck1lIjp0cnVlLCJleHBpcmF0aW9uRGF0ZSI6MTY3MTk4NDU1MTUxOCwiY2FUb2tlbiI6bnVsbCwib3RoZXJzIjpudWxsLCJzdWIiOiIxNTk3MTU1MzAwMDkwMDg1Mzc4IiwiaWF0IjoxNjcwMjMxNTE4LCJleHAiOjE2NzE5ODQ1NTF9'
  294. this.url = res.data[item].url + '?id=' + this.id
  295. console.log(this.url, 'asdfasdfa');
  296. }
  297. }
  298. })
  299. break;
  300. }
  301. }
  302. },
  303. methods: {
  304. toSave(id) {
  305. let data = {
  306. detailId: id,
  307. type: 2
  308. }
  309. saveShop(data).then(res => {
  310. console.log(res);
  311. if (res.code === '00000') {
  312. shopDetail({
  313. id: this.id,
  314. longitude: this.longitude,
  315. latitude: this.latitude
  316. }).then(res => {
  317. this.shopData = res.data;
  318. console.log('店铺详情=====》', this.shopData);
  319. })
  320. }
  321. })
  322. },
  323. previewImage(item) {
  324. let imgArr = []
  325. item.forEach(data => {
  326. console.log(data, 'data');
  327. imgArr.push(this.baseImagePath + data)
  328. })
  329. uni.previewImage({
  330. urls: imgArr,
  331. fail: (res) => {
  332. console.log(res);
  333. }
  334. })
  335. },
  336. toGps() {
  337. console.log(this.shopData);
  338. uni.navigateTo({
  339. url: '/pages/shop/navigation/navigation?latitude=' + this.shopData.latitude + '&longitude=' +
  340. this.shopData.longitude + '&shopTitle=' + this.shopData.name + '&address=' + this.shopData
  341. .address + '&distance=' + this.shopData.distance + '&phone=' + this.shopData.phone,
  342. fail: (res) => {
  343. console.log(res);
  344. }
  345. })
  346. },
  347. toCall(tel) {
  348. uni.makePhoneCall({
  349. phoneNumber: tel,
  350. fail: (res) => {
  351. uni.showToast({
  352. icon: 'none',
  353. title: '呼叫拉起失败:' + res
  354. })
  355. }
  356. })
  357. },
  358. toInclude(item) {
  359. this.shopType = 2
  360. },
  361. toSearch() {
  362. this.pageNo = 1
  363. this.setMealList = []
  364. this.getGoods()
  365. },
  366. toShopPhotoAlbum() {
  367. // this.$yrouter.push({ path: "/pages/shop/shopDetail/shopPhotoAlbum/index" });
  368. uni.navigateTo({
  369. url: '/pages/shop/shopDetail/shopPhotoAlbum/index?photo=' + this.shopData.photo
  370. })
  371. },
  372. routerTo() {
  373. // uni.$emit('chooseShop', this.shopData)
  374. uni.setStorageSync('shopData', this.shopData)
  375. console.log('1', this.shopData);
  376. uni.navigateTo({
  377. url: "/pages/maintenance/onlineReservation/index?type=maintenance&page=index"
  378. })
  379. },
  380. goBack() {
  381. uni.navigateBack({
  382. delta: 1
  383. })
  384. },
  385. carWash() {
  386. // uni.$emit('chooseShop', this.shopData)
  387. uni.setStorageSync('shopData', this.shopData)
  388. uni.navigateTo({
  389. url: "/pages/preCarWash/index?type=washCar&token=" + uni.getStorageSync('token')
  390. })
  391. },
  392. getGoods() {
  393. let data = {
  394. pageNo: this.pageNo,
  395. pageSize: this.pageSize,
  396. shopId: this.id,
  397. name: this.search
  398. }
  399. getShopGoods(data).then(res => {
  400. console.log('服务', res.data);
  401. this.setMealList = [...this.setMealList, ...res.data.rows]
  402. })
  403. },
  404. getEvaluate() {
  405. let data = {
  406. pageNo: this.pageNo,
  407. pageSize: this.pageSize,
  408. shopId: this.id
  409. }
  410. orderEvaluate(data).then(res => {
  411. // console.log('评论',res.data.rows);
  412. this.pingjia = [...this.pingjia, ...res.data.rows]
  413. })
  414. }
  415. }
  416. }
  417. </script>
  418. <style lang="less">
  419. page {
  420. background: #F5F5F5;
  421. width: 96vw;
  422. }
  423. .buttomBtn {
  424. position: fixed;
  425. bottom: 0;
  426. width: 100%;
  427. height: 150rpx;
  428. background: #FFFFFF;
  429. display: flex;
  430. justify-content: space-around;
  431. align-items: center;
  432. .preCarWash {
  433. width: 330rpx;
  434. height: 90rpx;
  435. background: linear-gradient(180deg, #F98324 0%, #FF5325 100%);
  436. border-radius: 45rpx;
  437. text-align: center;
  438. font-size: 32rpx;
  439. font-family: PingFang SC;
  440. font-weight: bold;
  441. color: #FFFFFF;
  442. line-height: 90rpx;
  443. }
  444. .preMaintain {
  445. width: 330rpx;
  446. height: 90rpx;
  447. background: linear-gradient(0deg, #005AFF 0%, #0078FF 100%);
  448. border-radius: 45rpx;
  449. text-align: center;
  450. font-size: 32rpx;
  451. font-family: PingFang SC;
  452. font-weight: bold;
  453. color: #FFFFFF;
  454. line-height: 90rpx;
  455. }
  456. }
  457. .evaluateBody {
  458. padding: 20rpx 39rpx 20rpx 29rpx;
  459. .evaluateHead {
  460. display: flex;
  461. align-items: center;
  462. justify-content: space-between;
  463. .titleBody {
  464. display: flex;
  465. .titleImg {
  466. image {
  467. width: 70rpx;
  468. height: 70rpx;
  469. border: 1px solid #EEEEEE;
  470. background: linear-gradient(135deg, #D10498 0%, #D21728 100%);
  471. border-radius: 50%;
  472. }
  473. }
  474. .classTitle {
  475. margin-left: 24rpx;
  476. .title {
  477. font-size: 24rpx;
  478. font-family: PingFang SC;
  479. font-weight: 500;
  480. color: #333333;
  481. line-height: 31rpx;
  482. }
  483. .star {
  484. display: flex;
  485. margin-top: 12rpx;
  486. image {
  487. width: 22rpx;
  488. height: 22rpx;
  489. }
  490. }
  491. }
  492. }
  493. .time {
  494. font-size: 22rpx;
  495. font-family: PingFang SC;
  496. font-weight: 500;
  497. color: #999999;
  498. line-height: 31rpx;
  499. }
  500. }
  501. .evaluateButtom {
  502. display: flex;
  503. .evaluateContent {
  504. font-size: 24rpx;
  505. font-family: PingFang SC;
  506. font-weight: 500;
  507. color: #333333;
  508. line-height: 34rpx;
  509. }
  510. image {
  511. width: 130rpx;
  512. height: 130rpx;
  513. background: #C97E7E;
  514. border-radius: 10rpx;
  515. margin-left: 33rpx;
  516. }
  517. .phoneNum {
  518. width: 66rpx;
  519. height: 32rpx;
  520. background: rgba(0, 0, 0, 0.3);
  521. border: 1px solid rgba(255, 255, 255, 0.3);
  522. border-radius: 16rpx;
  523. font-size: 22rpx;
  524. font-family: PingFang SC;
  525. font-weight: 500;
  526. color: #FFFFFF;
  527. line-height: 32rpx;
  528. text-align: center;
  529. position: absolute;
  530. right: 8rpx;
  531. top: 89rpx;
  532. z-index: 2;
  533. }
  534. }
  535. }
  536. .body {
  537. position: relative;
  538. top: -66rpx;
  539. }
  540. .shopFunction {
  541. width: 710rpx;
  542. background: #FFFFFF;
  543. border-radius: 16rpx;
  544. margin: 20rpx;
  545. .shopHeader {
  546. display: flex;
  547. .title {
  548. font-size: 28rpx;
  549. font-family: PingFang SC;
  550. font-weight: 500;
  551. color: #333333;
  552. line-height: 40rpx;
  553. padding: 32rpx;
  554. .border {
  555. display: none;
  556. }
  557. }
  558. .action {
  559. padding: 32rpx;
  560. font-size: 32rpx;
  561. font-family: PingFang SC;
  562. font-weight: bold;
  563. color: #333333;
  564. line-height: 40rpx;
  565. .border {
  566. width: 126rpx;
  567. height: 8rpx;
  568. background: linear-gradient(-90deg, #005BFF 0%, #00A8FF 100%);
  569. box-shadow: 0px 3rpx 10rpx 0px rgba(0, 94, 255, 0.24);
  570. }
  571. }
  572. }
  573. }
  574. .introduce {
  575. width: 710rpx;
  576. height: 210rpx;
  577. background: #FFFFFF;
  578. border-radius: 10rpx;
  579. margin: 20rpx;
  580. .businessHours {
  581. font-size: 24rpx;
  582. font-family: PingFang SC;
  583. font-weight: 500;
  584. color: #333333;
  585. line-height: 36rpx;
  586. padding: 34rpx 0 0 32rpx;
  587. }
  588. .content {
  589. display: flex;
  590. padding: 24rpx 32rpx 0 32rpx;
  591. justify-content: space-between;
  592. .locations {
  593. margin-top: 20rpx;
  594. .location {
  595. font-size: 24rpx;
  596. font-family: PingFang SC;
  597. font-weight: 500;
  598. color: #333333;
  599. line-height: 36rpx;
  600. }
  601. .km {
  602. font-size: 20rpx;
  603. font-family: PingFang SC;
  604. font-weight: 500;
  605. color: #777777;
  606. line-height: 40rpx;
  607. }
  608. }
  609. .btn {
  610. display: flex;
  611. .navigation {
  612. text-align: center;
  613. image {
  614. width: 54rpx;
  615. height: 54rpx;
  616. }
  617. .unit {
  618. font-size: 22rpx;
  619. font-family: PingFang SC;
  620. font-weight: 500;
  621. color: #333333;
  622. line-height: 20rpx;
  623. }
  624. }
  625. .phone {
  626. text-align: center;
  627. padding-left: 45rpx;
  628. image {
  629. width: 54rpx;
  630. height: 54rpx;
  631. }
  632. .unit {
  633. font-size: 22rpx;
  634. font-family: PingFang SC;
  635. font-weight: 500;
  636. color: #333333;
  637. line-height: 20rpx;
  638. }
  639. }
  640. }
  641. }
  642. }
  643. .buttom {
  644. display: flex;
  645. align-items: center;
  646. margin-top: 22rpx;
  647. .manage {
  648. width: 70rpx;
  649. height: 32rpx;
  650. background: #FF7200;
  651. border-radius: 16rpx;
  652. font-size: 20rpx;
  653. font-family: PingFang SC;
  654. font-weight: 500;
  655. color: #FFFFFF;
  656. line-height: 32rpx;
  657. text-align: center;
  658. margin-right: 20rpx;
  659. }
  660. .stars {
  661. display: flex;
  662. align-items: center;
  663. .unit {
  664. font-size: 22rpx;
  665. font-family: PingFang SC;
  666. font-weight: 500;
  667. color: #666666;
  668. line-height: 32rpx;
  669. }
  670. .star {
  671. image {
  672. width: 22rpx;
  673. height: 22rpx;
  674. }
  675. }
  676. }
  677. .num {
  678. font-size: 22rpx;
  679. font-family: PingFang SC;
  680. font-weight: 500;
  681. color: #666666;
  682. line-height: 40rpx;
  683. padding-left: 25rpx;
  684. }
  685. }
  686. .header {
  687. width: 100%;
  688. height: 605rpx;
  689. position: relative;
  690. .navigationBar {
  691. display: flex;
  692. align-items: center;
  693. max-width: 200rpx;
  694. padding-left: 29rpx;
  695. .back {
  696. width: 62rpx;
  697. height: 62rpx;
  698. }
  699. }
  700. .search {
  701. width: 690rpx;
  702. height: 64rpx;
  703. background: rgba(10, 10, 10, 0.3);
  704. border: 1px solid rgba(255, 255, 255, 0.3);
  705. border-radius: 31rpx;
  706. display: flex;
  707. margin: 30rpx;
  708. .icon-search {
  709. padding-left: 35rpx;
  710. display: flex;
  711. align-items: center;
  712. image {
  713. width: 26rpx;
  714. height: 26rpx;
  715. }
  716. }
  717. .input {
  718. padding-left: 14rpx;
  719. height: 64rpx;
  720. }
  721. }
  722. .video {
  723. width: 110rpx;
  724. height: 50rpx;
  725. background: rgba(0, 0, 0, 0.3);
  726. border: 1rpx solid rgba(255, 255, 255, 0.3);
  727. border-radius: 25rpx;
  728. position: absolute;
  729. bottom: 72rpx;
  730. right: 158rpx;
  731. font-size: 22rpx;
  732. font-family: PingFang SC;
  733. font-weight: 500;
  734. color: #FFFFFF;
  735. line-height: 50rpx;
  736. display: flex;
  737. align-items: center;
  738. justify-content: space-evenly;
  739. image {
  740. width: 24rpx;
  741. height: 24rpx;
  742. }
  743. }
  744. .image {
  745. width: 110rpx;
  746. height: 50rpx;
  747. background: rgba(0, 0, 0, 0.3);
  748. border: 1rpx solid rgba(255, 255, 255, 0.3);
  749. border-radius: 25rpx;
  750. position: absolute;
  751. bottom: 72rpx;
  752. right: 30rpx;
  753. font-size: 22rpx;
  754. font-family: PingFang SC;
  755. font-weight: 500;
  756. color: #FFFFFF;
  757. line-height: 50rpx;
  758. display: flex;
  759. align-items: center;
  760. justify-content: space-evenly;
  761. image {
  762. width: 24rpx;
  763. height: 24rpx;
  764. }
  765. }
  766. }
  767. .hdbefore {
  768. content: '';
  769. width: 100%;
  770. height: 100%;
  771. position: absolute;
  772. z-index: -1;
  773. background-size: 100% 100%;
  774. -webkit-filter: blur(5rpx);
  775. filter: blur(5rpx) brightness(100%);
  776. -webkit-transform: scale(1.1);
  777. transform: scale(1.1);
  778. }
  779. .header-view {
  780. width: 710rpx;
  781. height: 210rpx;
  782. background: #FFFFFF;
  783. border-radius: 10rpx;
  784. margin: 20rpx;
  785. position: relative;
  786. .headPortrait {
  787. position: absolute;
  788. bottom: 158rpx;
  789. left: 40rpx;
  790. image {
  791. width: 120rpx;
  792. height: 120rpx;
  793. background: #FF542E;
  794. border: 1px solid #FFFFFF;
  795. border-radius: 60rpx;
  796. }
  797. }
  798. .middle {
  799. display: flex;
  800. align-items: baseline;
  801. justify-content: space-around;
  802. padding-top: 64rpx;
  803. .title {
  804. font-size: 34rpx;
  805. font-family: PingFang SC;
  806. font-weight: bold;
  807. color: #333333;
  808. line-height: 40rpx;
  809. }
  810. .collect {
  811. width: 144rpx;
  812. height: 58rpx;
  813. background: #E6E6E6;
  814. border-radius: 29rpx;
  815. font-size: 26rpx;
  816. font-family: PingFang SC;
  817. font-weight: 500;
  818. color: #999999;
  819. line-height: 54rpx;
  820. text-align: center;
  821. }
  822. .uncollect {
  823. width: 144rpx;
  824. height: 58rpx;
  825. background: #005BFF;
  826. border-radius: 29rpx;
  827. font-size: 26rpx;
  828. font-family: PingFang SC;
  829. font-weight: 500;
  830. color: #FFFFFF;
  831. line-height: 54rpx;
  832. display: flex;
  833. justify-content: center;
  834. align-items: center;
  835. image {
  836. width: 32rpx;
  837. height: 27rpx;
  838. padding-right: 12rpx;
  839. }
  840. }
  841. }
  842. }
  843. .co {
  844. font-size: 26rpx;
  845. font-family: PingFang SC;
  846. font-weight: 500;
  847. line-height: 64rpx;
  848. color: #C4C4C4;
  849. }
  850. .webView {
  851. width: 710rpx;
  852. border-radius: 0rpx 0rpx 16rpx 16rpx;
  853. background-color: #FFFFFF;
  854. margin: auto;
  855. position: relative;
  856. }
  857. </style>