index.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. <template>
  2. <div class="page">
  3. <section class="shop-info">
  4. <div class="head-bg">
  5. <my-image
  6. src="/static/test/bg.jpg"
  7. :mode="'aspectFill'"
  8. class="bg"
  9. ></my-image>
  10. <div class="search">
  11. <i class="iconfont iconsearch search-icon"></i>
  12. <input
  13. type="text"
  14. class="input"
  15. placeholder="搜索店内商品"
  16. />
  17. </div>
  18. <div class="info">
  19. <div class="main">
  20. <div class="info-l">
  21. <div class="name">
  22. 永辉超市(苍溪县如已成店)永辉超市(苍溪县如已成店)
  23. </div>
  24. <ul class="tag-list">
  25. <li class="tag-item">
  26. <i
  27. class="iconfont icontime icon"
  28. style="color: #de9838"
  29. ></i>
  30. 配送45分钟
  31. </li>
  32. <li class="tag-item">
  33. <i
  34. class="iconfont iconwaimai icon"
  35. style="color: #e89b41"
  36. ></i>
  37. 美团专送
  38. </li>
  39. <li class="tag-item">
  40. <i
  41. class="iconfont icontag icon"
  42. style="color: #39ad96"
  43. ></i>
  44. 月售1952
  45. </li>
  46. </ul>
  47. </div>
  48. <div class="info-r">
  49. <my-image
  50. src="/static/test/avatar.jpg"
  51. class="img"
  52. ></my-image>
  53. </div>
  54. </div>
  55. <div class="notice">公告:欢迎光临,很高兴为您服务~</div>
  56. </div>
  57. </div>
  58. </section>
  59. <section class="shop-other">
  60. <div class="discount">
  61. <div class="l">
  62. <h3 class="name">优惠</h3>
  63. <span class="tag">3折起</span>
  64. <span class="tag">首单减20</span>
  65. </div>
  66. <i class="iconfont iconarrow r-icon"></i>
  67. </div>
  68. <scroll-view class="coupon-list" :scroll-x="true">
  69. <ul class="list-main">
  70. <li class="coupon-item">
  71. <div class="info">
  72. <div class="money">
  73. <span class="symbol">¥</span>
  74. 85
  75. </div>
  76. <div class="des">
  77. <div class="text">满89可用</div>
  78. <div class="type">店铺券</div>
  79. </div>
  80. </div>
  81. <div class="tool">领取</div>
  82. </li>
  83. <li class="coupon-item ghost">
  84. <div class="info">
  85. <div class="money">
  86. <span class="symbol">¥</span>
  87. 85
  88. </div>
  89. <div class="des">
  90. <div class="text">满89可用</div>
  91. <div class="type">店铺券</div>
  92. </div>
  93. </div>
  94. <div class="tool">已领取</div>
  95. </li>
  96. <li class="coupon-item ghost">
  97. <div class="info">
  98. <div class="money">
  99. <span class="symbol">¥</span>
  100. 85
  101. </div>
  102. <div class="des">
  103. <div class="text">满89可用</div>
  104. <div class="type">店铺券</div>
  105. </div>
  106. </div>
  107. <div class="tool">去使用</div>
  108. </li>
  109. </ul>
  110. </scroll-view>
  111. <div class="ranking">
  112. <span class="tag">榜单</span>
  113. 广元超市便利人气榜第3名
  114. </div>
  115. <div class="score">
  116. <div class="l">
  117. <div class="num">
  118. 4.6
  119. </div>
  120. <div class="info">
  121. <div class="text">“很棒不错,包装也好”</div>
  122. <div class="des">
  123. <span>好评 926</span>
  124. <span>满意 926</span>
  125. <span>服务号 926</span>
  126. <span>价格实惠 926</span>
  127. </div>
  128. </div>
  129. </div>
  130. <i class="iconfont iconarrow r-icon"></i>
  131. </div>
  132. </section>
  133. <category></category>
  134. </div>
  135. </template>
  136. <script>
  137. import MyImage from "../../components/image/index";
  138. import Category from "./category";
  139. export default {
  140. name: "",
  141. components: { MyImage,Category },
  142. // 数据
  143. data() {
  144. return {};
  145. },
  146. filters: {},
  147. onLoad() {},
  148. async onShow() {},
  149. // onPullDownRefresh() {
  150. // this.getList();
  151. // },
  152. // 函数
  153. methods: {},
  154. // 数据计算
  155. computed: {},
  156. // 数据监听
  157. watch: {},
  158. };
  159. </script>
  160. <style lang="scss" scoped>
  161. .page {
  162. background-color: #fff;
  163. }
  164. .shop-info {
  165. .head-bg {
  166. .bg {
  167. width: 100%;
  168. height: px(400);
  169. /deep/ {
  170. img {
  171. width: 100%;
  172. height: px(400);
  173. }
  174. }
  175. }
  176. .search {
  177. background: #fff;
  178. height: px(84);
  179. border-radius: px(42);
  180. display: flex;
  181. align-items: center;
  182. justify-content: space-between;
  183. margin: px(-340) px(30) 0;
  184. padding: 0 px(45);
  185. box-shadow: 0 1px 10px -5px #a7a7a7;
  186. .input {
  187. width: 100%;
  188. font-size: px(40);
  189. }
  190. .search-icon {
  191. font-size: px(50);
  192. color: #666;
  193. margin-right: px(20);
  194. }
  195. }
  196. .info {
  197. background: #fff;
  198. margin: px(60) px(30) 0;
  199. border-radius: px(30);
  200. padding: px(40);
  201. box-shadow: 0 1px 10px -5px #a7a7a7;
  202. .main {
  203. display: flex;
  204. justify-content: space-between;
  205. align-items: center;
  206. }
  207. .name {
  208. font-size: px(50);
  209. margin-bottom: px(30);
  210. @include omits(1);
  211. }
  212. .tag-list {
  213. display: flex;
  214. align-items: center;
  215. flex-wrap: wrap;
  216. margin: 0 px(-15);
  217. .tag-item {
  218. font-size: px(32);
  219. padding: px(0) px(15);
  220. display: flex;
  221. align-items: center;
  222. & ~ .tag-item {
  223. border-left: 1px solid #f1f1f1;
  224. }
  225. }
  226. .icon {
  227. font-size: px(36);
  228. margin-right: px(10);
  229. }
  230. }
  231. .info-r {
  232. width: px(180);
  233. flex-shrink: 0;
  234. margin-left: px(20);
  235. .img {
  236. display: block;
  237. border-radius: px(20);
  238. overflow: hidden;
  239. width: px(180);
  240. height: px(180);
  241. /deep/ img {
  242. width: px(180);
  243. height: px(180);
  244. }
  245. }
  246. }
  247. .notice {
  248. margin-top: px(25);
  249. font-size: px(36);
  250. color: #999;
  251. }
  252. }
  253. }
  254. }
  255. .shop-other {
  256. margin-top: px(60);
  257. .discount {
  258. display: flex;
  259. justify-content: space-between;
  260. align-items: center;
  261. padding: 0 px(70);
  262. padding-bottom: px(30);
  263. .r-icon {
  264. color: #666;
  265. font-size: px(44);
  266. margin-left: px(10);
  267. transform: rotate(180deg);
  268. }
  269. .l {
  270. display: flex;
  271. align-items: center;
  272. }
  273. .name {
  274. font-size: px(44);
  275. margin-right: px(30);
  276. }
  277. .tag {
  278. height: px(44);
  279. font-size: px(32);
  280. line-height: px(44);
  281. padding: 0 px(8);
  282. display: inline-block;
  283. margin-right: px(15);
  284. color: $color;
  285. border: 1px solid $color;
  286. border-radius: px(5);
  287. }
  288. }
  289. .coupon-list {
  290. width: 100%;
  291. padding-bottom: px(30);
  292. .list-main {
  293. padding-left: px(70);
  294. padding-right: px(1);
  295. display: flex;
  296. width: 100%;
  297. }
  298. .coupon-item {
  299. flex-shrink: 0;
  300. background: #fd6967;
  301. border-radius: px(10);
  302. display: inline-flex;
  303. justify-content: space-between;
  304. align-items: stretch;
  305. color: #fff;
  306. // border: 1px solid #fd6967;
  307. box-shadow: 0 0 1px #fd6967 inset;
  308. & ~ .coupon-item {
  309. margin-left: px(20);
  310. }
  311. &.ghost {
  312. background-color: #fef2f2;
  313. color: #fd6967;
  314. .info {
  315. &::after,
  316. &::before {
  317. box-shadow: 0 0 1px #fd6967 inset;
  318. }
  319. }
  320. }
  321. .tool {
  322. width: px(120);
  323. height: px(120);
  324. display: flex;
  325. align-items: center;
  326. justify-content: center;
  327. font-size: px(34);
  328. }
  329. .info {
  330. display: flex;
  331. align-items: center;
  332. justify-content: space-between;
  333. height: px(120);
  334. padding: px(10) px(45) px(10) px(30);
  335. overflow: hidden;
  336. position: relative;
  337. &::after,
  338. &::before {
  339. content: "";
  340. position: absolute;
  341. right: 0;
  342. z-index: 1;
  343. width: px(28);
  344. height: px(28);
  345. border-radius: px(50);
  346. background-color: #fff;
  347. }
  348. &::after {
  349. top: px(-15);
  350. }
  351. &::before {
  352. bottom: px(-15);
  353. }
  354. .money {
  355. font-size: px(44);
  356. margin-right: px(20);
  357. flex-shrink: 0;
  358. .symbol {
  359. font-size: px(34);
  360. margin-right: px(5);
  361. }
  362. }
  363. .des {
  364. .text {
  365. font-size: px(34);
  366. }
  367. .type {
  368. margin-top: px(10);
  369. font-size: px(32);
  370. }
  371. }
  372. }
  373. }
  374. }
  375. .ranking {
  376. padding: px(30) px(70);
  377. font-size: px(40);
  378. line-height: px(56);
  379. border-top: 1px solid #f1f1f1;
  380. .tag {
  381. display: inline-block;
  382. font-size: px(36);
  383. height: px(56);
  384. padding: 0 px(10);
  385. background-color: #f0d3b3;
  386. color: #976c49;
  387. margin-right: px(30);
  388. border-radius: px(5);
  389. }
  390. }
  391. .score{
  392. padding: px(30) px(70);
  393. font-size: px(40);
  394. line-height: px(56);
  395. border-top: 1px solid #f1f1f1;
  396. display: flex;
  397. align-items: center;
  398. justify-content: space-between;
  399. .r-icon {
  400. color: #666;
  401. font-size: px(44);
  402. margin-left: px(10);
  403. transform: rotate(180deg);
  404. }
  405. .l{
  406. display: flex;
  407. align-items: center;
  408. .num{
  409. width: px(88);
  410. height: px(88);
  411. display: flex;
  412. align-items: center;
  413. justify-content: center;
  414. font-size: px(40);
  415. background-color: #fff4e6;
  416. color: #666;
  417. flex-shrink: 0;
  418. margin-right: px(30);
  419. }
  420. .info{
  421. .text{
  422. font-size: px(40);
  423. @include omits(1);
  424. }
  425. .des{
  426. margin-top: px(10);
  427. color: #999;
  428. span{
  429. display: inline-block;
  430. padding: 0 px(8);
  431. font-size: px(34);
  432. line-height: 1;
  433. &~span{
  434. border-left: 1px solid #f1f1f1;
  435. }
  436. }
  437. }
  438. }
  439. }
  440. }
  441. }
  442. </style>