shopdetail.vue 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625
  1. <template>
  2. <view>
  3. <view class="detail-header">
  4. <!-- <image :src="shop.imgUrl"></image>-->
  5. <view class="head">
  6. <view class="info">
  7. <view class="title">{{shop.storeName|truncate(10)}}</view>
  8. <view class="address">{{shop.address.address|truncate(15)}}</view>
  9. </view>
  10. <image class="shopIcon" :src="shop.storePicUrl"></image>
  11. <!-- <view class="card">-->
  12. <!-- </view>-->
  13. </view>
  14. <van-tabs :active="active" @change="onChange" sticky>
  15. <van-tab title="点 单">
  16. <view class="container">
  17. <scroll-view class="left-menu" scroll-y="true">
  18. <block v-for="(type, index) in types" :key="index">
  19. <view class="menu-item" :class="{ active: index === activeIndex }" @tap="scrollToElement('type_'+ (index+1))" >{{ type.productTypeName }}</view>
  20. </block>
  21. </scroll-view>
  22. <scroll-view class="right-content" scroll-y="true" style="height: calc(100vh - 100rpx);" @scroll="onScroll" :scroll-into-view="scrollIntoView">
  23. <block v-for="(type, index) in types" :key="index">
  24. <view style="font-weight: bolder;font-size: 30rpx;margin-left: 10rpx;margin-top: 2px" :id='"type_"+ (index+1)'>{{type.productTypeName}}</view>
  25. <block v-for="(product, idx) in getProjectsByType(index)" :key="idx">
  26. <!-- <van-card ></van-card>-->
  27. <my-card :product="product" card-height="200rpx" card-width="210px"></my-card>
  28. </block>
  29. </block>
  30. <view style="height: 60px; width: 100%;"></view>
  31. <!-- <block v-for="(product, index) in products" :key="index">-->
  32. <!-- <view class="product-item">{{ product.name }}</view>-->
  33. <!-- </block>-->
  34. </scroll-view>
  35. </view>
  36. </van-tab>
  37. <van-tab title="评 价">
  38. <view class="review-container">
  39. <!-- <view class="header">-->
  40. <!-- <view class="title">商品评论</view>-->
  41. <!-- <view class="filter">-->
  42. <!-- <text>默认时间排序</text>-->
  43. <!-- </view>-->
  44. <!-- </view>-->
  45. <view class="review-list">
  46. <view class="review-item" v-for="(review, index) in sortedReviews" :key="index">
  47. <view class="item-header">
  48. <view class="user-info">
  49. <image class="avatar" :src="review.avatar" mode="aspectFill"></image>
  50. <text class="username">{{ review.username }}</text>
  51. </view>
  52. <view class="rating">
  53. <van-rate :value="review.rating" readonly />
  54. </view>
  55. </view>
  56. <view class="review-content">{{ review.content }}</view>
  57. <view class="item-footer">
  58. <text class="date">{{ formatDate(review.date) }}</text>
  59. <view class="actions">
  60. <van-icon name="like-o" @click="like(index)" :class="{ liked: review.liked }" />
  61. <van-icon name="warning-o" @click="showActionSheet(index)" />
  62. </view>
  63. </view>
  64. </view>
  65. <view class="add-review-btn" @click="showReviewModal = true">我要评论</view>
  66. <van-popup :show="showReviewModal" position="bottom" round :close-on-click-overlay="true" @close="closeReviewModal">
  67. <view class="review-modal">
  68. <view class="modal-header">发表评论</view>
  69. <view class="modal-content">
  70. <van-rate :value="newReview.rating" size="25" allow-half void-color="#eee" @change="onRate"/>
  71. <van-field :value="contentValue" rows="4" autosize type="textarea" @change="onContentChange" maxlength="200" placeholder="请输入评论内容" show-word-limit />
  72. </view>
  73. <view class="modal-footer" >
  74. <van-button type="primary" size="small" @click="submitReview">发表</van-button>
  75. </view>
  76. </view>
  77. </van-popup>
  78. </view>
  79. <van-action-sheet :show="showSheet" :actions="actions" @select="onSelect" />
  80. </view>
  81. </van-tab>
  82. <van-tab title="监 控">
  83. <view v-if="active === 2" class="monitor-view">
  84. <video class="monitor-video" :src="videoSrc" :autoplay="true" :loop="true" :muted="true" :show-play-btn="false" :controls="false" :objectFit="fill" ></video>
  85. <view class="monitor-info">
  86. <image class="monitor-img" src="../..//static/vedio/1.jpg" mode="aspectFit"></image>
  87. <text class="monitor-text">请去PC端查看更多内容</text>
  88. </view>
  89. <video
  90. id="myVideo"
  91. :src="videoSrc"
  92. :controls="controls"
  93. :autoplay="autoplay"
  94. style="width: 100%; height: 300px;"
  95. ></video>
  96. <!-- <video></video>-->
  97. </view>
  98. </van-tab>
  99. <!-- <van-tab title="标签 4">内容 4</van-tab>-->
  100. </van-tabs>
  101. </view>
  102. <view v-show="active === 0">
  103. <view class="order">
  104. <view class="order-footer">
  105. <view class="discount-info" @click="showPop">
  106. <div class="icon-container">
  107. <van-icon name="balance-o" size="30"></van-icon>
  108. <div class="badge" v-show="total()>0">{{ total() }}</div>
  109. </div>^
  110. </view>
  111. <view class="order-action">
  112. <view class="order-detail" @click="showOrderDetail">
  113. <text>¥0</text>
  114. <text>免配送费</text>
  115. </view>
  116. <view class="pay-button" @click="navigateToPayment">
  117. <text v-show="checkedGoodsAmount()<0">¥{{ 20 }}起送</text>
  118. <text v-show="checkedGoodsAmount()>=
  119. 0">¥{{ checkedGoodsAmount()}}</text>
  120. </view>
  121. </view>
  122. </view>
  123. </view>
  124. </view>
  125. <!-- <view class="shop-container">-->
  126. <!-- <van-tabs :active="active " @change="onChange" swipeable sticky :ellipsis="false">-->
  127. <!-- <van-tab title="全部饮品" name='all' sticky>-->
  128. <!-- </van-tab>-->
  129. <!-- <van-tab v-for="(item,index) in types " :key="index" :title="item.name" :name='item.id' >-->
  130. <!--&lt;!&ndash; <my-menu-index :projects='projects'></my-menu-index>&ndash;&gt;-->
  131. <!-- </van-tab>-->
  132. <!-- </van-tabs>-->
  133. <!-- </view>-->
  134. </view>
  135. </template>
  136. <script>
  137. import {mapState,mapMutations,mapGetters} from'vuex'
  138. export default {
  139. onLoad(args) {
  140. console.log(args.shopID, 'shopdetail')
  141. this.shop=this.getShopById()(args.shopID)
  142. console.log(args,"啊啊啊")
  143. console.log(this.shop.address.address)
  144. this.distance=this.getDistance()(10)
  145. this.products=this.shop.products
  146. let types=this.shop.productTypes
  147. this.types=types
  148. // for (let i=0;i<types.length;i++){
  149. // this.types.push( { id: i+1, name: types[i] } )
  150. // }
  151. // console.log(this.getDistance()(10))
  152. // console.log(this.shop,"是吗")
  153. // console.log(this.projects)
  154. console.log(this.types)
  155. console.log(this.products)
  156. // console.log(this.getShopById(args.shopID)())
  157. },
  158. data() {
  159. return {
  160. videoSrc: '../../static/vedio/1.mp4',
  161. showReviewModal: false,
  162. newReview: {
  163. avatar: this.getAvatarUrl(), // 默认头像
  164. username: this.getUserName(),
  165. rating: 5,
  166. content: '',
  167. date: new Date().toISOString().slice(0, 10),
  168. liked: false
  169. },
  170. contentValue: '',
  171. reviews: [
  172. {
  173. avatar: '../../static/avator/1.jpg',
  174. username: '张三',
  175. rating: 5,
  176. content: '这家水果店的苹果真是太好吃了,甜度刚刚好,口感也很脆甜。',
  177. date: '2024-05-01',
  178. liked: false
  179. },
  180. {
  181. avatar: '../../static/avator/2.jpg',
  182. username: '李斯',
  183. rating: 4,
  184. content: '香蕉的品质一般,个头较小,但口感还可以。',
  185. date: '2024-04-28',
  186. liked: false
  187. },
  188. {
  189. avatar: '../../static/avator/3.jpg',
  190. username: '辛雨东',
  191. rating: 3,
  192. content: '橘子的甜度不够,希望下次能够更甜一些。',
  193. date: '2024-04-25',
  194. liked: false
  195. },
  196. {
  197. avatar: '../../static/avator/4.jpg',
  198. username: '默认名称200151024',
  199. rating: 5,
  200. content: '这家店的樱桃真是太棒了,个头大颗颗饱满,甜度也刚刚好,非常满意!',
  201. date: '2024-04-20',
  202. liked: false
  203. },{
  204. avatar: '../../static/avator/5.jpg',
  205. username: '李晓',
  206. rating: 4,
  207. content: '草莓新鲜可口,个头也很大,值得推荐。',
  208. date: '2024-04-20',
  209. liked: false
  210. },
  211. {
  212. avatar: '../../static/avator/6.jpg',
  213. username: '钱齐星',
  214. rating: 5,
  215. content: '西瓜非常甜脆,吃起来非常解渴,很满意。',
  216. date: '2024-04-20',
  217. liked: false
  218. },
  219. {
  220. avatar: '../../static/avator/7.jpg',
  221. username: '刘王雪',
  222. rating: 3,
  223. content: '柚子的味道不错,但个头偏小,希望可以选到更大的。',
  224. date: '2024-04-20',
  225. liked: false
  226. }
  227. ],
  228. showSheet: false,
  229. actions: [{ name: '我要举报' }, { name: '取消' }],
  230. currentIndex: -1,
  231. shop: {},
  232. projects: [],
  233. distance:0,
  234. active: 0,
  235. //
  236. types: [
  237. { id: '1', productName: '类型1' },
  238. { id: '2', productName: '类型2' },
  239. { id: '3', productName: '类型3' },
  240. // 其他类型...
  241. ],
  242. products: [
  243. { type: '1', name: '商品1' },
  244. { type: '1', name: '商品1' },
  245. { type: '1', name: '商品1' },
  246. { type: '1', name: '商品1' },
  247. { type: '1', name: '商品1' },
  248. { type: '1', name: '商品1' },
  249. { type: '1', name: '商品1' },
  250. { type: '1', name: '商品1' },
  251. { type: '1', name: '商品2' },
  252. { type: '1', name: '商品2' },
  253. { type: '1', name: '商品2' },
  254. { type: '1', name: '商品2' },
  255. { type: '1', name: '商品2' },
  256. { type: '2', name: '商品3' },
  257. { type: '2', name: '商品3' },
  258. { type: '2', name: '商品3' },
  259. { type: '2', name: '商品3' },
  260. { type: '2', name: '商品4' },
  261. { type: '2', name: '商品4' },
  262. { type: '2', name: '商品4' },
  263. { type: '2', name: '商品4' },
  264. { type: '3', name: '商品5' },
  265. // 其他商品...
  266. ],
  267. scrollIntoView: ''
  268. };
  269. },
  270. computed: {
  271. sortedReviews() {
  272. return this.reviews.sort((a, b) => new Date(b.date) - new Date(a.date))
  273. },
  274. newReviewContent() {
  275. return this.newReview.content.toString();
  276. },
  277. }, watch: {
  278. newReviewContent(newVal) {
  279. this.contentValue = newVal;
  280. }
  281. },
  282. methods: {
  283. ...mapGetters('m_shop',['getTypeById','getProductById']),
  284. ...mapGetters('m_user',['getUserName','getAvatarUrl']),
  285. onContentChange(event) {
  286. console.log(event)
  287. this.newReview.content = event.detail;
  288. },
  289. onRate(event) {
  290. console.log(event)
  291. this.newReview.rating = event.detail;
  292. },
  293. scrollToElement: function(target) {
  294. console.log('滚不滚')
  295. this.scrollIntoView = target; // 滚动到指定元素
  296. },submitReview() {
  297. console.log(this.newReview)
  298. // return
  299. if (this.newReview.content.trim() !== '') {
  300. console.log('来了')
  301. this.reviews.unshift(this.newReview);
  302. this.newReview = {
  303. avatar: this.getAvatarUrl(),
  304. username: this.getUserName(),
  305. rating: 5,
  306. content: '',
  307. date: new Date().toISOString().slice(0, 10),
  308. liked: false
  309. };
  310. this.showReviewModal = false;
  311. }
  312. console.log(this.reviews,"reviews")
  313. },
  314. closeReviewModal() {
  315. this.showReviewModal = false;
  316. this.newReview.content = '';
  317. },
  318. showPop() {
  319. },
  320. ...mapGetters('m_shop', {'getShopById':'getShopById', 'getDistance':'getDistance'}),
  321. ...mapGetters('m_proj',{'getProjects':'getProjects','getTypes':'getTypes'}),
  322. ...mapGetters('m_cart', {'total':'total','checkedGoodsAmount':'checkedGoodsAmount'}),//total:计算数量,checkedGoodsAmount:计算总价
  323. //
  324. getProjectsByType(idx){
  325. // console.log(idx)
  326. // console.log(this.products)
  327. let mp={
  328. 0:[1,2,4,5],
  329. 1:[3,2,4,6],
  330. 2:[8,9,7,6],
  331. 3:[10,11,12,13],
  332. 4:[14,15,16,10],
  333. 5:[10,3,13,2],
  334. }
  335. let ret=[]
  336. if (!mp[idx]) return
  337. for (let i=0;i<mp[idx].length;i++){
  338. ret.push(this.products[mp[idx][i]-1])
  339. }
  340. console.log(ret)
  341. return ret
  342. },
  343. onChange(event) {
  344. console.log(event)
  345. console.log(this.active)
  346. this.active = event.detail.index;
  347. console.log(this.active)
  348. },
  349. scrollToView(index) {
  350. const typeId = this.types[index].id;
  351. this.activeIndex = index;
  352. this.$nextTick(() => {
  353. uni.pageScrollTo({
  354. selector: `#type_${typeId}`,
  355. duration: 300
  356. });
  357. });
  358. },
  359. onScroll(event) {
  360. const scrollTop = event.detail.scrollTop;
  361. const types = this.types;
  362. let currentTypeIndex = 0;
  363. for (let i = 0; i < types.length; i++) {
  364. const typeId = types[i].id;
  365. const query = uni.createSelectorQuery();
  366. query.select('#type_' + typeId).boundingClientRect();
  367. query.exec((res) => {
  368. if (res && res[0] && res[0].top <= 0) {
  369. currentTypeIndex = i;
  370. }
  371. });
  372. }
  373. this.activeIndex = currentTypeIndex;
  374. },
  375. showOrderDetail() {
  376. // 显示订单详情界面的逻辑
  377. },
  378. pay() {
  379. // 付款逻辑
  380. },
  381. formatDate(dateStr) {
  382. const date = new Date(dateStr)
  383. const year = date.getFullYear()
  384. const month = String(date.getMonth() + 1).padStart(2, '0')
  385. const day = String(date.getDate()).padStart(2, '0')
  386. return `${year}-${month}-${day}`
  387. },
  388. like(index) {
  389. this.reviews[index].liked = !this.reviews[index].liked
  390. },
  391. showActionSheet(index) {
  392. this.currentIndex = index
  393. this.showSheet = true
  394. },
  395. onSelect(event) {
  396. if (event.detail.name === '我要举报') {
  397. // 执行举报操作
  398. console.log(`举报第${this.currentIndex + 1}条评论`)
  399. uni.showToast({
  400. title: '举报成功',
  401. icon: 'success',
  402. duration: 3000
  403. });
  404. }
  405. this.showSheet = false
  406. },
  407. navigateToPayment() {
  408. uni.navigateTo({
  409. url: '/subpkg/payment/payment?shopTitle=' + this.shop.storeName+'&shopId=' + this.shop.id
  410. });
  411. }
  412. },
  413. filters: {
  414. formatPrice(price) {
  415. return '¥' + price.toFixed(2);
  416. },
  417. // 字数过长用...限制
  418. truncate(value, length = 10) {
  419. if (!value) return '';
  420. if (value.length > length) {
  421. return value.slice(0, length) + '...';
  422. }
  423. return value;
  424. }
  425. }
  426. }
  427. </script>
  428. <style lang="scss">
  429. .icon-container {
  430. position: relative;
  431. display: inline-block;
  432. }
  433. .badge {
  434. position: absolute;
  435. top: -5px;
  436. right: -5px;
  437. background-color: red;
  438. color: white;
  439. border-radius: 50%;
  440. padding: 2px 6px;
  441. font-size: 12px;
  442. }
  443. page {
  444. background-color: #f5f5f5;
  445. //overflow: hidden;
  446. }
  447. .head{
  448. display: flex;
  449. align-items: center;
  450. justify-content: center;
  451. .info{
  452. //上下布局
  453. display: flex;
  454. flex-direction: column;
  455. align-items: center;
  456. .title{
  457. font-weight: bold;
  458. font-size: 40rpx;
  459. margin-bottom: 20rpx;
  460. }
  461. .address{
  462. font-size: 30rpx;
  463. color: #999;
  464. margin-bottom: 20rpx;
  465. }
  466. }
  467. image{
  468. width: 130rpx;
  469. height: 130rpx;
  470. border-radius: 2%;
  471. margin-right: 20rpx;
  472. margin-left: 20rpx;
  473. }
  474. }
  475. .header {
  476. display: flex;
  477. align-items: center;
  478. justify-content: center;
  479. width: 100%;
  480. height: 130rpx;
  481. position: fixed;
  482. top: 0;
  483. z-index: 900;
  484. background-color: #fff;
  485. box-shadow: 0 0 10rpx rgba(0, 0, 0, .05);
  486. .left {
  487. flex: 0 0 60%;
  488. display: flex;
  489. flex-direction: column;
  490. justify-content: center;
  491. .title {
  492. width: 90%;
  493. color: #343434;
  494. font-size: 30rpx;
  495. font-weight: bold;
  496. text-overflow: ellipsis;
  497. white-space: nowrap;
  498. overflow: hidden;
  499. }
  500. .address {
  501. width: 90%;
  502. color: #999;
  503. font-size: 26rpx;
  504. padding-top: 6rpx;
  505. text-overflow: ellipsis;
  506. white-space: nowrap;
  507. overflow: hidden;
  508. }
  509. }
  510. .right {
  511. flex: 0 0 35%;
  512. display: flex;
  513. flex-direction: column;
  514. align-items: flex-end;
  515. .type {
  516. display: flex;
  517. width: 180rpx;
  518. height: 60rpx;
  519. border-radius: 100rpx;
  520. align-items: center;
  521. justify-content: center;
  522. font-size: 26rpx;
  523. .name {
  524. background-color: #343434;
  525. color: #fff;
  526. width: 86rpx;
  527. border-radius: 100rpx;
  528. display: flex;
  529. align-items: center;
  530. justify-content: center;
  531. height: 54rpx;
  532. transition: all .3s;
  533. }
  534. .text {
  535. width: 86rpx;
  536. display: flex;
  537. align-items: center;
  538. justify-content: center;
  539. color: #fff;
  540. }
  541. }
  542. .more {
  543. color: #999;
  544. font-size: 24rpx;
  545. display: flex;
  546. align-items: center;
  547. padding-top: 6rpx;
  548. icon {
  549. padding-left: 4rpx;
  550. }
  551. }
  552. }
  553. }
  554. .goodsBox {
  555. width: 100%;
  556. display: flex;
  557. .left {
  558. flex: 0 0 28%;
  559. .menuList {
  560. overflow-y: scroll;
  561. padding-bottom: 20rpx;
  562. .menu {
  563. color: #999999;
  564. font-size: 26rpx;
  565. padding: 30rpx 10rpx;
  566. text-align: center;
  567. background-color: transparent;
  568. border-left: 6rpx solid transparent;
  569. transition: all 0.6s;
  570. }
  571. .active {
  572. font-weight: bold;
  573. background-color: #FFFFFF;
  574. }
  575. }
  576. }
  577. .right {
  578. flex: 0 0 72%;
  579. background-color: #FFFFFF;
  580. .swiperBpx {
  581. width: 95%;
  582. margin: 0 auto;
  583. padding-top: 14rpx;
  584. position: relative;
  585. swiper {
  586. height: 220rpx;
  587. .swiper-item {
  588. width: 100%;
  589. height: 100%;
  590. display: flex;
  591. align-items: center;
  592. justify-content: center;
  593. color: #FFFFFF;
  594. font-size: 56rpx;
  595. }
  596. }
  597. .swiperDots {
  598. position: absolute;
  599. left: 0;
  600. right: 0;
  601. bottom: 12rpx;
  602. display: flex;
  603. justify-content: center;
  604. height: 10rpx;
  605. .dot {
  606. margin: 0 5rpx;
  607. width: 25rpx;
  608. height: 4rpx;
  609. background: #fff;
  610. border-radius: 20rpx;
  611. transition: all 0.6s;
  612. opacity: 0.5;
  613. }
  614. .active {
  615. opacity: 1;
  616. }
  617. }
  618. }
  619. .goodsList{
  620. width: 95%;
  621. margin: 0 auto;
  622. .gheader{
  623. font-weight: bold;
  624. font-size: 26rpx;
  625. display: flex;
  626. height: 100rpx;
  627. align-items: center;
  628. }
  629. .goods{
  630. display: flex;
  631. position: relative;
  632. padding-bottom: 20rpx;
  633. margin-bottom: 20rpx;
  634. .left{
  635. flex: 0 0 30%;
  636. display: flex;
  637. .image{
  638. width: 140rpx;
  639. height: 140rpx;
  640. background-color: #f5f5f5;
  641. border-radius: 6rpx;
  642. overflow: hidden;
  643. position: relative;
  644. .icon{
  645. position: absolute;
  646. top: 0;
  647. left: 0;
  648. }
  649. .none{
  650. position: absolute;
  651. top: 0;
  652. left: 0;
  653. width: 100%;
  654. height: 100%;
  655. background-color: rgba(255,255,255,.6);
  656. display: flex;
  657. align-items: center;
  658. justify-content: center;
  659. font-size: 26rpx;
  660. color: #999;
  661. }
  662. }
  663. }
  664. .right{
  665. flex: 0 0 70%;
  666. .title{
  667. color:#343434;
  668. font-size:26rpx;
  669. font-weight:bold;
  670. }
  671. .intro{
  672. color:#999;
  673. font-size:24rpx;
  674. overflow: hidden;
  675. text-overflow: ellipsis;
  676. display: -webkit-box;
  677. -webkit-line-clamp: 2;
  678. -webkit-box-orient: vertical;
  679. padding-top: 4rpx;
  680. }
  681. .box{
  682. display:flex;
  683. align-items:center;
  684. padding-top: 10rpx;
  685. position: relative;
  686. .price{
  687. color:#343434;
  688. font-size:28rpx;
  689. font-weight:bold;
  690. flex: 0 0 50%
  691. }
  692. .button{
  693. flex: 0 0 50%;
  694. display: flex;
  695. justify-content: flex-end;
  696. .text{
  697. background-color: #d3aa79;
  698. color: #fff;
  699. font-size: 24rpx;
  700. padding: 4rpx 16rpx;
  701. border-radius: 100rpx;
  702. }
  703. }
  704. }
  705. }
  706. }
  707. }
  708. }
  709. }
  710. .footer{
  711. position:fixed;
  712. bottom: 140rpx;
  713. width:92%;
  714. left:0;
  715. right: 0;
  716. height:80rpx;
  717. margin: 0 auto;
  718. border-radius: 100rpx;
  719. background-color:#fff;
  720. display:flex;
  721. align-items:center;
  722. z-index:899;
  723. box-shadow: 0 0 20rpx rgba(0,0,0,.05);
  724. .label{
  725. color: #fff;
  726. width: 100%;
  727. height: 100%;
  728. display: flex;
  729. align-items: center;
  730. justify-content: center;
  731. }
  732. .left{
  733. flex: 0 0 70%;
  734. display: flex;
  735. align-items: center;
  736. justify-content: flex-end;
  737. height: 100%;
  738. .cart{
  739. position: absolute;
  740. width: 180rpx;
  741. height: 100%;
  742. left: 0;
  743. color: #343434;
  744. font-size: 26rpx;
  745. display: flex;
  746. align-items: center;
  747. justify-content: center;
  748. icon{
  749. padding-right: 8rpx;
  750. }
  751. text{
  752. position: absolute;
  753. top: -8rpx;
  754. right: -12rpx;
  755. background-color: #d3aa79;
  756. border-radius: 100%;
  757. width: 36rpx;
  758. height: 36rpx;
  759. display: flex;
  760. align-items: center;
  761. justify-content: center;
  762. color: #fff;
  763. font-size: 24rpx;
  764. }
  765. }
  766. .price{
  767. color:#343434;
  768. font-size:30rpx;
  769. padding-right: 30rpx;
  770. font-weight: bold;
  771. }
  772. }
  773. .right{
  774. flex: 0 0 30%;
  775. height: 100%;
  776. border-top-right-radius: 100rpx;
  777. border-bottom-right-radius: 100rpx;
  778. overflow: hidden;
  779. .button{
  780. width: 100%;
  781. height: 100%;
  782. color: #FFFFFF;
  783. display: flex;
  784. align-items: center;
  785. justify-content: center;
  786. background-color:#d3aa79;
  787. }
  788. .none{
  789. background-color:#bbbbbb;
  790. }
  791. }
  792. }
  793. .footerX{
  794. bottom: 166rpx;
  795. }
  796. .showPopBox{
  797. position: fixed;
  798. top: 0;
  799. left: 0;
  800. width: 100%;
  801. height: 100%;
  802. background-color: rgba(0,0,0,.5);
  803. z-index: 970;
  804. transition: all 0.3s;
  805. .bg{
  806. position: absolute;
  807. top: 0;
  808. left: 0;
  809. width: 100%;
  810. height: 100%;
  811. z-index: 971;
  812. }
  813. .showContent{
  814. position: absolute;
  815. z-index: 972;
  816. width: 100%;
  817. max-height: 600rpx;
  818. bottom: 120rpx;
  819. background-color: #fff;
  820. left: 0;
  821. .sheade{
  822. width: 100%;
  823. background-color: #f2f2f2;
  824. font-size: 24rpx;
  825. height: 56rpx;
  826. display: flex;
  827. align-items: center;
  828. .left{
  829. flex: 0 0 50%;
  830. .text{
  831. color: #999;
  832. padding-left: 20rpx;
  833. }
  834. }
  835. .right{
  836. flex: 0 0 50%;
  837. .text{
  838. color: #999;
  839. display: flex;
  840. align-items: center;
  841. justify-content: flex-end;
  842. padding-right: 20rpx;
  843. icon{
  844. padding-right: 6rpx;
  845. }
  846. }
  847. }
  848. }
  849. .sconten{
  850. max-height: 544rpx;
  851. overflow-y: scroll;
  852. .goods{
  853. width: 95%;
  854. margin: 0 auto;
  855. display: flex;
  856. align-items: center;
  857. border-bottom: 1px dashed #f5f5f5;
  858. height: 110rpx;
  859. .left{
  860. flex: 0 0 60%;
  861. .title{
  862. color:#343434;
  863. }
  864. .label{
  865. color:#999;
  866. font-size: 24rpx;
  867. }
  868. }
  869. .right{
  870. flex: 0 0 40%;
  871. display: flex;
  872. align-items: center;
  873. justify-content: flex-end;
  874. .price{
  875. flex: 0 0 40%;
  876. color:#343434;
  877. }
  878. .buy{
  879. display: flex;
  880. align-items: center;
  881. justify-content: center;
  882. flex: 0 0 60%;
  883. input{
  884. text-align: center;
  885. color:#343434;
  886. }
  887. text{
  888. color: #999;
  889. font-size: 24rpx;
  890. }
  891. }
  892. }
  893. }
  894. }
  895. }
  896. .infoContent{
  897. position: absolute;
  898. z-index: 972;
  899. width: 100%;
  900. max-height: 55vh;
  901. top: 130rpx;
  902. background-color: #fff;
  903. left: 0;
  904. overflow-y: scroll;
  905. padding-bottom: 20rpx;
  906. padding-top: 10rpx;
  907. .label{
  908. width: 95%;
  909. margin: 0 auto;
  910. padding: 12rpx 0;
  911. .title{
  912. color: #343434;
  913. font-size: 26rpx;
  914. }
  915. .text{
  916. color: #999;
  917. font-size: 24rpx;
  918. padding-top: 4rpx;
  919. }
  920. }
  921. .images{
  922. display: flex;
  923. align-items: center;
  924. flex-wrap: wrap;
  925. padding-top: 6rpx;
  926. .image{
  927. width: 200rpx;
  928. height: 200rpx;
  929. border: 2rpx solid #f5f5f5;
  930. background-color: #f5f5f5;
  931. margin-right: 20rpx;
  932. position: relative;
  933. .text{
  934. position: absolute;
  935. bottom: 0;
  936. left: 0;
  937. width: 100%;
  938. background-color: rgba(255,255,255,.6);
  939. height: 50rpx;
  940. display: flex;
  941. align-items: center;
  942. justify-content: center;
  943. color: #666;
  944. font-size: 26rpx;
  945. }
  946. }
  947. }
  948. }
  949. .goodsConten{
  950. position: absolute;
  951. z-index: 972;
  952. width: 80%;
  953. background-color: #fff;
  954. border-radius: 10rpx;
  955. padding-bottom: 20rpx;
  956. margin-top: -5vh;
  957. box-shadow: 0 10rpx 20rpx rgba(0,0,0,.06);
  958. .image{
  959. width: 100%;
  960. height: 320rpx;
  961. display: flex;
  962. align-items: center;
  963. justify-content: center;
  964. position: relative;
  965. icon{
  966. position: absolute;
  967. }
  968. }
  969. .title{
  970. width: 90%;
  971. margin: 0 auto;
  972. padding-top: 10rpx;
  973. padding-bottom: 10rpx;
  974. color: #343434;
  975. font-weight: bold;
  976. }
  977. .moreBox{
  978. width: 90%;
  979. margin: 0 auto;
  980. .label{
  981. padding-bottom: 10rpx;
  982. .stitle{
  983. padding-bottom: 10rpx;
  984. text{
  985. color: #999;
  986. font-size: 26rpx;
  987. }
  988. }
  989. .specBox{
  990. display: flex;
  991. flex-wrap: wrap;
  992. .spec{
  993. border: 1px solid #eee;
  994. padding: 8rpx 20rpx;
  995. margin-right: 12rpx;
  996. font-size: 24rpx;
  997. color: #999999;
  998. }
  999. .active{
  1000. color: #FFFFFF;
  1001. }
  1002. }
  1003. }
  1004. .more{
  1005. padding-bottom: 20rpx;
  1006. .labtit{
  1007. color: #999;
  1008. font-size: 26rpx;
  1009. padding-top: 10rpx;
  1010. }
  1011. .intro{
  1012. color: #999;
  1013. font-size: 24rpx;
  1014. }
  1015. }
  1016. }
  1017. .gfooter{
  1018. border-top: 1px solid #f5f5f5;
  1019. padding-top: 20rpx;
  1020. .price{
  1021. width: 90%;
  1022. margin: 0 auto;
  1023. display: flex;
  1024. padding: 10rpx 0;
  1025. align-items: center;
  1026. justify-content: center;
  1027. .left{
  1028. flex: 0 0 65%;
  1029. .text{
  1030. color: #d3aa79;
  1031. font-size: 32rpx;
  1032. font-weight: bold;
  1033. display: flex;
  1034. align-items: center;
  1035. text{
  1036. text-decoration: line-through;
  1037. color: #999;
  1038. font-size: 26rpx;
  1039. margin-left: 10rpx;
  1040. font-weight: normal;
  1041. }
  1042. }
  1043. .label{
  1044. color: #999;
  1045. font-size: 24rpx;
  1046. }
  1047. }
  1048. .right{
  1049. flex: 0 0 35%;
  1050. display: flex;
  1051. justify-content: flex-end;
  1052. .buy{
  1053. display: flex;
  1054. align-items: center;
  1055. input{
  1056. text-align: center;
  1057. color:#343434;
  1058. }
  1059. }
  1060. }
  1061. }
  1062. .button{
  1063. width: 90%;
  1064. margin: 0 auto;
  1065. margin-top: 20rpx;
  1066. background-color: #d3aa79;
  1067. color: #fff;
  1068. height: 66rpx;
  1069. display: flex;
  1070. align-items: center;
  1071. justify-content: center;
  1072. border-radius: 100rpx;
  1073. font-size: 26rpx;
  1074. }
  1075. .none{
  1076. background-color: #cccccc;
  1077. }
  1078. }
  1079. }
  1080. }
  1081. .couponsIcon{
  1082. position: fixed;
  1083. bottom: 230rpx;
  1084. width: 100rpx;
  1085. height: 100rpx;
  1086. left: 60rpx;
  1087. }
  1088. .showCoupons{
  1089. position: fixed;
  1090. width: 100%;
  1091. height: 100%;
  1092. top: 0;
  1093. left: 0;
  1094. background-color: rgba(0,0,0,.5);
  1095. z-index: 999;
  1096. display: flex;
  1097. align-items: center;
  1098. justify-content: center;
  1099. .bg{
  1100. position: absolute;
  1101. width: 100%;
  1102. height: 100%;
  1103. top: 0;
  1104. left: 0;
  1105. z-index: 1000;
  1106. }
  1107. .coupons{
  1108. position: absolute;
  1109. width: 600rpx;
  1110. height: 568rpx;
  1111. border-radius: 10rpx;
  1112. z-index: 1001;
  1113. transition: all 0.6s;
  1114. margin-top: -10%;
  1115. .headerTitle{
  1116. position: absolute;
  1117. top: 76rpx;
  1118. width: 100%;
  1119. text-align: center;
  1120. color: #af8859;
  1121. font-size: 26rpx;
  1122. }
  1123. .listBox{
  1124. width: 72%;
  1125. margin: 0 auto;
  1126. margin-top: 50rpx;
  1127. position: absolute;
  1128. left: 0;
  1129. right: 0;
  1130. top: 100rpx;
  1131. height: 260rpx;
  1132. border-bottom-left-radius: 20%;
  1133. border-bottom-right-radius: 20%;
  1134. overflow: hidden;
  1135. .list{
  1136. display:flex;
  1137. align-items:center;
  1138. width:99%;
  1139. height:120rpx;
  1140. justify-content:center;
  1141. border-radius:4rpx;
  1142. position: relative;
  1143. overflow:hidden;
  1144. padding: 2rpx;
  1145. margin: 0 auto;
  1146. margin-bottom: 20rpx;
  1147. .left{
  1148. width:35%;
  1149. display:flex;
  1150. flex-direction:column;
  1151. align-items:center;
  1152. justify-content:center;
  1153. height:120rpx;
  1154. border:2rpx solid #f5f5f5;
  1155. border-right:none;
  1156. .price{
  1157. color:#d3aa79;
  1158. font-size:42rpx;
  1159. font-weight:500;
  1160. display:flex;
  1161. text{
  1162. font-size:26rpx;
  1163. padding-top:6rpx;
  1164. padding-right:2rpx;
  1165. }
  1166. }
  1167. .text{
  1168. color:#999;
  1169. font-size:22rpx;
  1170. }
  1171. }
  1172. .active{
  1173. position:absolute;
  1174. width:2rpx;
  1175. height:80rpx;
  1176. left:34%;
  1177. border-right:2rpx dashed #eee;
  1178. display:flex;
  1179. align-items:center;
  1180. justify-content:center;
  1181. .top{
  1182. width:20rpx;
  1183. height:20rpx;
  1184. background-color:#fff;
  1185. border-radius:100%;
  1186. position:absolute;
  1187. top:-30rpx;
  1188. border:2rpx solid #f5f5f5;
  1189. }
  1190. .buttom{
  1191. width:20rpx;
  1192. height:20rpx;
  1193. background-color:#fff;
  1194. border-radius:100%;
  1195. position:absolute;
  1196. bottom:-30rpx;
  1197. border:2rpx solid #f5f5f5;;
  1198. }
  1199. }
  1200. .right{
  1201. width:65%;
  1202. height:120rpx;
  1203. display:flex;
  1204. flex-direction:column;
  1205. justify-content:center;
  1206. border:2rpx solid #f5f5f5;
  1207. border-left:none;
  1208. .title{
  1209. color:#343434;
  1210. font-weight:500;
  1211. font-size:26rpx;
  1212. width:90%;
  1213. margin:0 auto;
  1214. overflow:hidden;
  1215. text-overflow:ellipsis;
  1216. white-space:nowrap;
  1217. }
  1218. .times{
  1219. color:#999;
  1220. font-size:24rpx;
  1221. padding-top:10rpx;
  1222. width:90%;
  1223. margin:0 auto;
  1224. overflow:hidden;
  1225. text-overflow:ellipsis;
  1226. white-space:nowrap;
  1227. }
  1228. }
  1229. }
  1230. }
  1231. .buttonBox{
  1232. width: 80%;
  1233. margin: 0 auto;
  1234. height: 70rpx;
  1235. display:flex;
  1236. align-items:flex-end;
  1237. justify-content:center;
  1238. position: absolute;
  1239. bottom: 36rpx;
  1240. left: 0;
  1241. right: 0;
  1242. .button{
  1243. background-color:#af8859;
  1244. width:100%;
  1245. height:100%;
  1246. display:flex;
  1247. align-items:center;
  1248. justify-content:center;
  1249. color:#fff;
  1250. border-radius:4rpx;
  1251. font-size: 26rpx;
  1252. }
  1253. }
  1254. .close{
  1255. position: absolute;
  1256. left: 0;
  1257. right: 0;
  1258. margin: 0 auto;
  1259. width: 100rpx;
  1260. display: flex;
  1261. align-items: center;
  1262. justify-content: center;
  1263. height: 100rpx;
  1264. }
  1265. }
  1266. }
  1267. .showShare{
  1268. position: fixed;
  1269. width: 100%;
  1270. height: 100%;
  1271. top: 0;
  1272. left: 0;
  1273. background-color: rgba(0,0,0,.5);
  1274. z-index: 999;
  1275. display: flex;
  1276. align-items: center;
  1277. justify-content: center;
  1278. .bg{
  1279. position: absolute;
  1280. width: 100%;
  1281. height: 100%;
  1282. top: 0;
  1283. left: 0;
  1284. z-index: 1000;
  1285. }
  1286. .share{
  1287. position: absolute;
  1288. width: 500rpx;
  1289. background-color: #FFFFFF;
  1290. border-radius: 10rpx;
  1291. z-index: 1001;
  1292. transition: all 0.6s;
  1293. .title{
  1294. font-weight: bold;
  1295. display: flex;
  1296. align-items: center;
  1297. justify-content: center;
  1298. padding: 38rpx 0 30rpx;
  1299. }
  1300. .box{
  1301. display: flex;
  1302. align-items: center;
  1303. justify-content: center;
  1304. padding-bottom: 38rpx;
  1305. .label{
  1306. flex: 0 0 45%;
  1307. display: flex;
  1308. align-items: center;
  1309. flex-direction: column;
  1310. justify-content: center;
  1311. position: relative;
  1312. .text{
  1313. font-size: 24rpx;
  1314. }
  1315. button{
  1316. position: absolute;
  1317. top: 0;
  1318. left: 0;
  1319. width: 100%;
  1320. height: 100%;
  1321. opacity: 0;
  1322. }
  1323. }
  1324. }
  1325. .haibao{
  1326. width: 90%;
  1327. margin: 0 auto;
  1328. display: flex;
  1329. flex-direction: column;
  1330. align-items: center;
  1331. image{
  1332. width: 400rpx;
  1333. height: 600rpx;
  1334. border: 1px solid #f5f5f5;
  1335. border-radius: 6rpx;
  1336. }
  1337. .save{
  1338. color: #FFFFFF;
  1339. width: 280rpx;
  1340. height: 60rpx;
  1341. border-radius: 100rpx;
  1342. font-size: 24rpx;
  1343. display: flex;
  1344. align-items: center;
  1345. justify-content: center;
  1346. margin: 30rpx 0;
  1347. }
  1348. }
  1349. }
  1350. }
  1351. .container {
  1352. display: flex;
  1353. }
  1354. .left-menu {
  1355. flex: 1;
  1356. }
  1357. .right-content {
  1358. flex: 2;
  1359. }
  1360. .menu-item {
  1361. padding: 10px;
  1362. border-bottom: 1px solid #ccc;
  1363. color: #333;
  1364. }
  1365. .menu-item.active {
  1366. color: red; /* 激活状态的颜色 */
  1367. }
  1368. .product-item {
  1369. padding: 10px;
  1370. border-bottom: 1px solid #ccc;
  1371. }
  1372. .order-footer {
  1373. position: fixed;
  1374. bottom: 0;
  1375. left: 0;
  1376. right: 0;
  1377. display: flex;
  1378. justify-content: space-between;
  1379. align-items: center;
  1380. background-color: #333;
  1381. color: #fff;
  1382. padding: 10px;
  1383. }
  1384. .discount-info {
  1385. font-size: 14px;
  1386. }
  1387. .order-action {
  1388. display: flex;
  1389. }
  1390. .order-detail {
  1391. background-color: #666;
  1392. padding: 15px 20px; /* 增加了padding */
  1393. border-radius: 20px 0 0 20px; /* 增加了圆角半径 */
  1394. font-size: 16px; /* 增加了字体大小 */
  1395. }
  1396. .pay-button {
  1397. background-color: #ff6700;
  1398. padding: 15px 20px; /* 增加了padding */
  1399. border-radius: 0 20px 20px 0; /* 增加了圆角半径 */
  1400. font-size: 18px; /* 增加了字体大小 */
  1401. }
  1402. .review-container {
  1403. padding: 20rpx;
  1404. background-color: #f7f7f7;
  1405. .add-review-btn {
  1406. margin-top: 20rpx;
  1407. background-color: #07c160;
  1408. color: #fff;
  1409. font-size: 28rpx;
  1410. text-align: center;
  1411. padding: 20rpx;
  1412. border-radius: 10rpx;
  1413. }
  1414. .review-modal {
  1415. background-color: #fff;
  1416. padding: 30rpx;
  1417. .modal-header {
  1418. font-size: 36rpx;
  1419. font-weight: bold;
  1420. text-align: center;
  1421. margin-bottom: 30rpx;
  1422. }
  1423. .modal-content {
  1424. margin-bottom: 30rpx;
  1425. }
  1426. .modal-footer {
  1427. text-align: right;
  1428. }
  1429. }
  1430. }
  1431. .header {
  1432. display: flex;
  1433. justify-content: space-between;
  1434. align-items: center;
  1435. margin-bottom: 20rpx;
  1436. .title {
  1437. font-size: 32rpx;
  1438. font-weight: bold;
  1439. }
  1440. .filter {
  1441. font-size: 26rpx;
  1442. color: #666;
  1443. }
  1444. }
  1445. .review-list {
  1446. background-color: #fff;
  1447. border-radius: 10rpx;
  1448. box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
  1449. padding: 20rpx;
  1450. }
  1451. .review-item {
  1452. padding: 20rpx 0;
  1453. border-bottom: 1px solid #eee;
  1454. &:last-child {
  1455. border-bottom: none;
  1456. }
  1457. .item-header {
  1458. display: flex;
  1459. justify-content: space-between;
  1460. align-items: center;
  1461. margin-bottom: 10rpx;
  1462. .user-info {
  1463. display: flex;
  1464. align-items: center;
  1465. .avatar {
  1466. width: 60rpx;
  1467. height: 60rpx;
  1468. border-radius: 50%;
  1469. margin-right: 10rpx;
  1470. }
  1471. .username {
  1472. font-size: 28rpx;
  1473. color: #333;
  1474. }
  1475. }
  1476. .rating {
  1477. font-size: 24rpx;
  1478. color: #ffd21e;
  1479. }
  1480. }
  1481. .review-content {
  1482. font-size: 26rpx;
  1483. color: #666;
  1484. line-height: 1.5;
  1485. margin-bottom: 10rpx;
  1486. }
  1487. .item-footer {
  1488. display: flex;
  1489. justify-content: space-between;
  1490. align-items: center;
  1491. .date {
  1492. font-size: 24rpx;
  1493. color: #999;
  1494. }
  1495. .actions {
  1496. .van-icon-like-o,
  1497. .van-icon-warning-o {
  1498. font-size: 24rpx;
  1499. margin-left: 10rpx;
  1500. color: #999;
  1501. }
  1502. .liked {
  1503. color: #ff6600;
  1504. }
  1505. }
  1506. }
  1507. }
  1508. .monitor-view {
  1509. display: flex;
  1510. flex-direction: column;
  1511. align-items: center;
  1512. justify-content: center;
  1513. height: 500rpx;
  1514. }
  1515. .monitor-video {
  1516. width: 100%;
  1517. height: 300rpx;
  1518. }
  1519. .monitor-info {
  1520. display: flex;
  1521. flex-direction: column;
  1522. align-items: center;
  1523. margin-top: 20rpx;
  1524. }
  1525. .monitor-img {
  1526. width: 200rpx;
  1527. height: 200rpx;
  1528. }
  1529. .monitor-text {
  1530. margin-top: 30rpx;
  1531. font-size: 50rpx;
  1532. color: #666;
  1533. }
  1534. </style>