Compare commits

...

3 Commits

Author SHA1 Message Date
chenkainan bc198dfeee 打包 4 weeks ago
chenkainan 48fd5681c8 Merge branch 'master' of http://123.60.98.226:3000/jiazhipeng/flavorOfTimeSzMall 4 weeks ago
chenkainan 790510b4f1 1 4 weeks ago
  1. 1
      dist/css/135.643ed51b.css
  2. 1
      dist/css/143.ecb72621.css
  3. 1
      dist/css/208.268eb302.css
  4. 1
      dist/css/241.47c7ac13.css
  5. 1
      dist/css/286.84b91fbd.css
  6. 1
      dist/css/322.f144348b.css
  7. 1
      dist/css/4.0070063a.css
  8. 1
      dist/css/40.614e9a44.css
  9. 1
      dist/css/411.e4757598.css
  10. 1
      dist/css/446.4288d89e.css
  11. 1
      dist/css/624.f7a540d4.css
  12. 1
      dist/css/639.c184e302.css
  13. 1
      dist/css/64.c294a0d0.css
  14. 2
      dist/css/828.3ffea4ab.css
  15. 1
      dist/css/86.3b46bb21.css
  16. 1
      dist/css/882.f420d2be.css
  17. 1
      dist/css/896.f1192b9d.css
  18. 1
      dist/css/900.57bae3a8.css
  19. 1
      dist/css/926.a9594400.css
  20. 1
      dist/css/955.7f61bedf.css
  21. 2
      dist/css/app.78312ffd.css
  22. 2
      dist/index.html
  23. 2
      dist/js/135.08e8073a.js
  24. 1
      dist/js/135.08e8073a.js.map
  25. 2
      dist/js/143.9d51e2ee.js
  26. 1
      dist/js/143.9d51e2ee.js.map
  27. 2
      dist/js/208.a0feba87.js
  28. 1
      dist/js/208.a0feba87.js.map
  29. 2
      dist/js/241.231f8707.js
  30. 1
      dist/js/241.231f8707.js.map
  31. 2
      dist/js/286.8f0d1d9c.js
  32. 1
      dist/js/286.8f0d1d9c.js.map
  33. 2
      dist/js/322.693252a2.js
  34. 1
      dist/js/322.693252a2.js.map
  35. 2
      dist/js/4.e0df9c1a.js
  36. 1
      dist/js/4.e0df9c1a.js.map
  37. 2
      dist/js/40.e5eed29a.js
  38. 1
      dist/js/40.e5eed29a.js.map
  39. 2
      dist/js/411.e9addbc3.js
  40. 1
      dist/js/411.e9addbc3.js.map
  41. 2
      dist/js/446.3d8319df.js
  42. 1
      dist/js/446.3d8319df.js.map
  43. 2
      dist/js/624.1742d542.js
  44. 1
      dist/js/624.1742d542.js.map
  45. 2
      dist/js/639.edae0537.js
  46. 1
      dist/js/639.edae0537.js.map
  47. 2
      dist/js/64.57193698.js
  48. 1
      dist/js/64.57193698.js.map
  49. 2
      dist/js/700.6882c630.js
  50. 1
      dist/js/700.6882c630.js.map
  51. 2
      dist/js/828.3c50f0ff.js
  52. 1
      dist/js/828.3c50f0ff.js.map
  53. 2
      dist/js/828.dc20517d.js
  54. 1
      dist/js/828.dc20517d.js.map
  55. 2
      dist/js/86.471ac328.js
  56. 1
      dist/js/86.471ac328.js.map
  57. 2
      dist/js/882.62bac42e.js
  58. 1
      dist/js/882.62bac42e.js.map
  59. 2
      dist/js/896.996819fe.js
  60. 1
      dist/js/896.996819fe.js.map
  61. 2
      dist/js/900.6b17b6f1.js
  62. 1
      dist/js/900.6b17b6f1.js.map
  63. 2
      dist/js/926.d303aa93.js
  64. 1
      dist/js/926.d303aa93.js.map
  65. 2
      dist/js/955.1d798592.js
  66. 1
      dist/js/955.1d798592.js.map
  67. 2
      dist/js/app.523c1b3b.js
  68. 1
      dist/js/app.523c1b3b.js.map
  69. 2
      dist/js/app.a3998a8a.js
  70. 1
      dist/js/app.a3998a8a.js.map
  71. 4
      dist/js/chunk-vendors.cab40109.js
  72. 2
      dist/js/chunk-vendors.cab40109.js.map
  73. 40
      src/views/Order/Index.vue
  74. 235
      src/views/Order/OrderDetail.vue
  75. 207
      src/views/User/OrderList.vue
  76. 263
      src/views/User/ShoppingCart.vue

1
dist/css/135.643ed51b.css

@ -1 +0,0 @@
.bg[data-v-2bf96cfd]{display:flex;flex-direction:column}.bg[data-v-2bf96cfd] .el-button--text,.bg[data-v-2bf96cfd] .el-tabs__item.is-active{color:#6a8a27}.bg[data-v-2bf96cfd] .el-tabs__active-bar{background-color:#6a8a27}.bg[data-v-2bf96cfd] .el-tabs__item:hover{color:#6a8a27}.order-card[data-v-2bf96cfd]{border-radius:4px;overflow:hidden}.order-header[data-v-2bf96cfd]{padding:12px 20px;display:flex;align-items:center;background:#f8f9fa;border-bottom:1px solid #999;color:#666;font-size:14px}.order-products[data-v-2bf96cfd]{padding:10px 20px}.product-item[data-v-2bf96cfd]{display:flex;align-items:center;padding:15px 0;border-bottom:1px dashed #eee;font-size:14px}.product-item[data-v-2bf96cfd]:last-child{border-bottom:none}.product-image[data-v-2bf96cfd]{width:80px;height:80px;-o-object-fit:cover;object-fit:cover;margin-right:15px;border-radius:4px}.product-details[data-v-2bf96cfd]{flex:1}.product-name[data-v-2bf96cfd]{color:#333}.product-spec[data-v-2bf96cfd]{color:#999;font-size:12px}.product-box[data-v-2bf96cfd]{width:100px;text-align:center;color:#333}.product-quantity[data-v-2bf96cfd]{width:160px;text-align:center;color:#333}.product-select[data-v-2bf96cfd]{width:80px;color:#333}.product-price[data-v-2bf96cfd]{color:#ff5252}.cart-footer[data-v-2bf96cfd]{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:15px;background-color:#f5f7fa;border-radius:4px}.selected-info[data-v-2bf96cfd]{color:#666;font-size:14px;padding-right:50px}.import-text[data-v-2bf96cfd]{color:#c7020b;font-size:20px;font-weight:700}.total-price[data-v-2bf96cfd]:before{content:"¥";margin-right:5px;font-size:12px}

1
dist/css/143.ecb72621.css

File diff suppressed because one or more lines are too long

1
dist/css/208.268eb302.css

@ -0,0 +1 @@
.region-selector[data-v-7d3ebefd]{display:flex;gap:10px;flex-wrap:wrap}.region-select[data-v-7d3ebefd]{min-width:180px;flex:1;max-width:30%}.flex-between[data-v-b49931c8]{display:flex;justify-content:space-between;align-items:center}

1
dist/css/241.47c7ac13.css

@ -1 +0,0 @@
.bg[data-v-56d6bf2e]{display:flex;flex-direction:column;font-size:14px}.common-card[data-v-56d6bf2e]{width:100%;background-color:#fff;padding:20px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.order-status[data-v-56d6bf2e]{border-right:1px solid #eee;width:350px;height:220px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.order-status .order-no[data-v-56d6bf2e]{color:#999}.order-status .order-no .el-button[data-v-56d6bf2e]{width:-moz-fit-content;width:fit-content;margin:0;display:inline-block;padding:0}.order-status .status-title[data-v-56d6bf2e]{display:flex;align-items:center;font-size:16px;font-weight:700}.order-status .status-title i[data-v-56d6bf2e]{font-size:24px}.order-status .el-button[data-v-56d6bf2e]{width:120px;display:block;margin:0 auto}.order-step[data-v-56d6bf2e]{flex:1;width:1px;padding:0 20px;display:flex;align-items:center}.order-step[data-v-56d6bf2e] .el-step__icon.is-text{border:none;width:30px;height:30px;border-radius:50%;background:#c0c4cc;color:#fff}.order-step[data-v-56d6bf2e] .el-step__line{top:13px}.order-step[data-v-56d6bf2e] .el-step__line-inner{border-color:#c0c4cc}.order-step .process-title[data-v-56d6bf2e]{color:#666;font-weight:700;font-size:14px;margin-top:-70px}.order-step .process-description[data-v-56d6bf2e]{color:#666;font-size:12px;margin-top:45px}.order-step[data-v-56d6bf2e] .is-finish .el-step__icon{background:#67c23a}.order-info-card[data-v-56d6bf2e]{display:flex}.order-info-card[data-v-56d6bf2e] .el-descriptions{flex:1;flex-shrink:0;border-right:1px solid hsla(0,0%,60%,.1);padding:0 20px}.order-info-card[data-v-56d6bf2e] .el-descriptions .el-descriptions-item__label{width:90px}.product-image[data-v-56d6bf2e]{width:80px;height:80px;-o-object-fit:cover;object-fit:cover;margin-right:15px;border-radius:4px}.total-card[data-v-56d6bf2e]{margin-top:20px;background:#fafafa;box-shadow:none}.total-card[data-v-56d6bf2e] .el-descriptions__body{background:none;text-align:right}.total-card[data-v-56d6bf2e] .el-descriptions__body .el-descriptions-item__label{width:90%;text-align:right;justify-content:flex-end}.total-card[data-v-56d6bf2e] .el-descriptions__body .el-descriptions-item__content{justify-content:flex-end}

1
dist/css/286.84b91fbd.css

@ -0,0 +1 @@
.bg[data-v-425bad3e]{display:flex;flex-direction:column}.bg[data-v-425bad3e] .el-button--text,.bg[data-v-425bad3e] .el-tabs__item.is-active{color:#6a8a27}.bg[data-v-425bad3e] .el-tabs__active-bar{background-color:#6a8a27}.bg[data-v-425bad3e] .el-tabs__item:hover{color:#6a8a27}.order-card[data-v-425bad3e]{border-radius:4px;overflow:hidden}.order-header[data-v-425bad3e]{padding:12px 20px;display:flex;align-items:center;background:#f8f9fa;border-bottom:1px solid #999;color:#666;font-size:14px}.order-products[data-v-425bad3e]{padding:10px 20px}.product-item[data-v-425bad3e]{display:flex;align-items:center;padding:15px 0;border-bottom:1px dashed #eee;font-size:14px}.product-item[data-v-425bad3e]:last-child{border-bottom:none}.product-image[data-v-425bad3e]{width:80px;height:80px;-o-object-fit:cover;object-fit:cover;margin-right:15px;border-radius:4px}.product-details[data-v-425bad3e]{flex:1}.product-name[data-v-425bad3e]{color:#333}.product-spec[data-v-425bad3e]{color:#999;font-size:12px}.product-box[data-v-425bad3e]{width:100px;text-align:center;color:#333}.product-quantity[data-v-425bad3e]{width:160px;text-align:center;color:#333}.product-select[data-v-425bad3e]{width:80px;color:#333}.product-price[data-v-425bad3e]{color:#ff5252}.cart-footer[data-v-425bad3e]{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:15px;background-color:#f5f7fa;border-radius:4px}.selected-info[data-v-425bad3e]{color:#666;font-size:14px;padding-right:50px}.import-text[data-v-425bad3e]{color:#c7020b;font-size:20px;font-weight:700}.total-price[data-v-425bad3e]:before{content:"¥";margin-right:5px;font-size:12px}

1
dist/css/322.f144348b.css

@ -0,0 +1 @@
.home-layout-container[data-v-c27a7e04]{display:flex;width:100%;height:auto}.left-nav[data-v-c27a7e04]{width:200px;background-color:#f8f9fa;padding:20px 0;box-sizing:border-box}.nav-list[data-v-c27a7e04]{list-style:none;margin:0;padding:0}.nav-item[data-v-c27a7e04]{padding:12px 20px;cursor:pointer;color:#333;transition:all .3s ease;display:flex}.nav-item img[data-v-c27a7e04]{width:20px;margin-right:5px}.nav-item[data-v-c27a7e04]:hover{background-color:#e9ecef;padding-left:25px}.main-content[data-v-c27a7e04]{flex:1;height:auto;overflow:hidden}.carousel-img[data-v-c27a7e04]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.main-content[data-v-c27a7e04] .el-carousel__container{height:100%!important}.right-info[data-v-c27a7e04]{width:280px;background-color:#fff;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;border-left:1px solid #eee}.avatar-container[data-v-c27a7e04]{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.user-avatar[data-v-c27a7e04]{width:60px;height:60px;border-radius:50%;margin-bottom:10px;border:2px solid #f0f0f0}.welcome-text[data-v-c27a7e04]{font-size:14px;color:#333}.btn-group[data-v-c27a7e04]{display:flex;gap:10px;margin-bottom:30px;width:100%}.func-icons[data-v-c27a7e04]{display:flex;justify-content:space-around;width:100%;margin-bottom:30px;padding:10px 0;border-top:1px dashed #eee;border-bottom:1px dashed #eee}.icon-item[data-v-c27a7e04]{display:flex;flex-direction:column;align-items:center;cursor:pointer;color:#666;transition:color .3s ease;width:50px}.icon-item[data-v-c27a7e04]:hover{color:#1890ff}.icon[data-v-c27a7e04]{font-size:24px;margin-bottom:5px}.icon-item span[data-v-c27a7e04]{font-size:12px}.announcement[data-v-c27a7e04]{display:flex;align-items:center;font-size:12px;color:#666;width:100%;padding-top:10px}.announcement span[data-v-c27a7e04]{margin-left:10px}.product-list .product-grid[data-v-0968dad7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.product-list .product-card[data-v-0968dad7]{border:1px solid #eaeaea;border-radius:8px;overflow:hidden;transition:all .3s ease;padding:10px}.product-list .product-card[data-v-0968dad7]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1)}.product-list .product-card .product-img[data-v-0968dad7]{height:250px;overflow:hidden}.product-list .product-card .product-img .product-pic[data-v-0968dad7]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.product-list .product-card .product-img .product-pic[data-v-0968dad7]:hover{transform:scale(1.05)}.product-list .product-card .product-info[data-v-0968dad7]{padding:10px}.product-list .product-card .product-info .product-name[data-v-0968dad7]{font-size:14px;line-height:20px;min-height:40px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px}.product-list .product-card .product-info .product-name a[data-v-0968dad7]{color:#333}.product-list .product-card .product-info .product-name a[data-v-0968dad7]:hover{color:#409eff}.product-list .product-card .product-info .product-price[data-v-0968dad7]{margin-bottom:15px}.product-list .product-card .product-info .product-price .current-price[data-v-0968dad7]{color:#f40;font-size:16px;font-weight:700}.product-list .product-card .product-info .product-price .original-price[data-v-0968dad7]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-list .product-card .product-info .product-actions[data-v-0968dad7]{margin-bottom:10px}.product-list .product-card .product-info .product-sales[data-v-0968dad7]{font-size:12px;color:#999;margin-bottom:15px}.product-list .no-products[data-v-0968dad7]{padding:50px 0;text-align:center}.product-box[data-v-c53f5724]{margin:30px 0}.product-box h2[data-v-c53f5724]{margin-bottom:20px}

1
dist/css/4.0070063a.css

@ -1 +0,0 @@
.product-grid-page[data-v-16ce8d0c]{padding:20px;background-color:#f5f7fa;max-width:1400px;margin:0 auto}.product-grid-page .filter-bar[data-v-16ce8d0c]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center;padding:15px;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05)}.product-grid-page .filter-bar .search-input[data-v-16ce8d0c]{flex:1;min-width:200px}.product-grid-page .filter-bar .filter-select[data-v-16ce8d0c]{min-width:140px}.product-grid-page .result-stats[data-v-16ce8d0c]{margin:0 0 15px 5px;color:#666;font-size:14px;padding:5px 0}.product-grid-page .result-stats .category[data-v-16ce8d0c],.product-grid-page .result-stats .keyword[data-v-16ce8d0c]{color:#ff4d4f;font-weight:500;margin:0 5px}.product-grid-page .product-grid[data-v-16ce8d0c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-bottom:30px}.product-grid-page .product-card[data-v-16ce8d0c]{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);overflow:hidden;transition:transform .3s,box-shadow .3s;cursor:pointer;position:relative}.product-grid-page .product-card[data-v-16ce8d0c]:hover{transform:translateY(-5px);box-shadow:0 8px 16px rgba(0,0,0,.1)}.product-grid-page .product-card .product-img[data-v-16ce8d0c]{width:100%;height:200px;background-color:#f5f5f5}.product-grid-page .product-card .image-placeholder[data-v-16ce8d0c]{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5}.product-grid-page .product-card .tag[data-v-16ce8d0c]{position:absolute;top:10px;left:10px;padding:3px 8px;font-size:12px;color:#fff;border-radius:4px;z-index:1}.product-grid-page .product-card .product-info[data-v-16ce8d0c]{padding:15px}.product-grid-page .product-card .product-info .product-name[data-v-16ce8d0c]{font-size:14px;color:#333;margin-bottom:10px;height:40px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-grid-page .product-card .product-info .price-row[data-v-16ce8d0c]{display:flex;align-items:center;margin-bottom:8px}.product-grid-page .product-card .product-info .price-row .current-price[data-v-16ce8d0c]{color:#ff4d4f;font-weight:700;font-size:16px}.product-grid-page .product-card .product-info .price-row .original-price[data-v-16ce8d0c]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-grid-page .product-card .product-info .sales-volume[data-v-16ce8d0c]{font-size:12px;color:#666;margin-bottom:10px;display:flex;align-items:center}.product-grid-page .product-card .product-info .sales-volume i[data-v-16ce8d0c]{font-size:12px;margin-right:4px}.product-grid-page .product-card .product-info .cart-btn[data-v-16ce8d0c]{width:100%}.product-grid-page .empty-state[data-v-16ce8d0c]{grid-column:1/-1;padding:60px 0;text-align:center}.product-grid-page .pagination-container[data-v-16ce8d0c]{display:flex;justify-content:center;margin-top:20px;padding:10px}@media(max-width:768px){.product-grid-page[data-v-16ce8d0c]{padding:10px}.product-grid-page .filter-bar[data-v-16ce8d0c]{padding:10px;gap:10px}.product-grid-page .product-grid[data-v-16ce8d0c]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.product-grid-page .product-card .image-placeholder[data-v-16ce8d0c],.product-grid-page .product-card .product-img[data-v-16ce8d0c]{height:140px}}

1
dist/css/40.614e9a44.css

@ -1 +0,0 @@
.home-layout-container[data-v-340df0cc]{display:flex;width:100%;height:auto}.left-nav[data-v-340df0cc]{width:200px;background-color:#f8f9fa;padding:20px 0;box-sizing:border-box}.nav-list[data-v-340df0cc]{list-style:none;margin:0;padding:0}.nav-item[data-v-340df0cc]{padding:12px 20px;cursor:pointer;color:#333;transition:all .3s ease;display:flex}.nav-item img[data-v-340df0cc]{width:20px;margin-right:5px}.nav-item[data-v-340df0cc]:hover{background-color:#e9ecef;padding-left:25px}.main-content[data-v-340df0cc]{flex:1;height:auto;overflow:hidden}.carousel-img[data-v-340df0cc]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.main-content[data-v-340df0cc] .el-carousel__container{height:100%!important}.right-info[data-v-340df0cc]{width:280px;background-color:#fff;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;border-left:1px solid #eee}.avatar-container[data-v-340df0cc]{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.user-avatar[data-v-340df0cc]{width:60px;height:60px;border-radius:50%;margin-bottom:10px;border:2px solid #f0f0f0}.welcome-text[data-v-340df0cc]{font-size:14px;color:#333}.btn-group[data-v-340df0cc]{display:flex;gap:10px;margin-bottom:30px;width:100%}.func-icons[data-v-340df0cc]{display:flex;justify-content:space-around;width:100%;margin-bottom:30px;padding:10px 0;border-top:1px dashed #eee;border-bottom:1px dashed #eee}.icon-item[data-v-340df0cc]{display:flex;flex-direction:column;align-items:center;cursor:pointer;color:#666;transition:color .3s ease;width:50px}.icon-item[data-v-340df0cc]:hover{color:#1890ff}.icon[data-v-340df0cc]{font-size:24px;margin-bottom:5px}.icon-item span[data-v-340df0cc]{font-size:12px}.announcement[data-v-340df0cc]{display:flex;align-items:center;font-size:12px;color:#666;width:100%;padding-top:10px}.announcement span[data-v-340df0cc]{margin-left:10px}.product-list .product-grid[data-v-6ecfbe40]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.product-list .product-card[data-v-6ecfbe40]{border:1px solid #eaeaea;border-radius:8px;overflow:hidden;transition:all .3s ease;padding:10px}.product-list .product-card[data-v-6ecfbe40]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1)}.product-list .product-card .product-img[data-v-6ecfbe40]{height:250px;overflow:hidden}.product-list .product-card .product-img .product-pic[data-v-6ecfbe40]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.product-list .product-card .product-img .product-pic[data-v-6ecfbe40]:hover{transform:scale(1.05)}.product-list .product-card .product-info[data-v-6ecfbe40]{padding:10px}.product-list .product-card .product-info .product-name[data-v-6ecfbe40]{font-size:14px;line-height:20px;min-height:40px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px}.product-list .product-card .product-info .product-name a[data-v-6ecfbe40]{color:#333}.product-list .product-card .product-info .product-name a[data-v-6ecfbe40]:hover{color:#409eff}.product-list .product-card .product-info .product-price[data-v-6ecfbe40]{margin-bottom:15px}.product-list .product-card .product-info .product-price .current-price[data-v-6ecfbe40]{color:#f40;font-size:16px;font-weight:700}.product-list .product-card .product-info .product-price .original-price[data-v-6ecfbe40]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-list .product-card .product-info .product-actions[data-v-6ecfbe40]{margin-bottom:10px}.product-list .product-card .product-info .product-sales[data-v-6ecfbe40]{font-size:12px;color:#999;margin-bottom:15px}.product-list .no-products[data-v-6ecfbe40]{padding:50px 0;text-align:center}.product-box[data-v-17e3f187]{margin:30px 0}.product-box h2[data-v-17e3f187]{margin-bottom:20px}

1
dist/css/411.e4757598.css

@ -0,0 +1 @@
.login-page[data-v-6c83dcbd]{position:relative;left:0;width:100%;height:100%;overflow:hidden}.login-page .bg-container[data-v-6c83dcbd]{width:100vw;height:100%;left:0;top:0;z-index:1}.login-page .bg-container .bg-img[data-v-6c83dcbd]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.login-page .form-card[data-v-6c83dcbd]{position:absolute;right:8%;top:50%;transform:translateY(-50%);width:360px;background:#fff;border-radius:8px;box-shadow:0 2px 16px rgba(0,0,0,.1);z-index:2;padding:30px 25px}.login-page .form-card .tab-bar[data-v-6c83dcbd]{display:flex;justify-content:center;margin-bottom:25px}.login-page .form-card .tab-bar .tab-item[data-v-6c83dcbd]{width:50%;text-align:center;padding:10px 0;color:#666;cursor:pointer;border-bottom:2px solid transparent}.login-page .form-card .tab-bar .tab-item.active[data-v-6c83dcbd]{color:#6a8a27;border-bottom-color:#6a8a27}.login-page .form-card .login-form .el-form-item[data-v-6c83dcbd]{margin-bottom:20px}.login-page .form-card .login-form .el-input[data-v-6c83dcbd]{height:40px;line-height:40px}.login-page .form-card .login-form .captcha-img[data-v-6c83dcbd]{display:inline-block;width:30%;height:40px;margin-left:8px;cursor:pointer;vertical-align:middle}.login-page .form-card .login-form .captcha-img .captcha-pic[data-v-6c83dcbd]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:4px}.login-page .form-card .login-form .code-btn[data-v-6c83dcbd]{padding:0 5px;height:40px;background-color:#6a8a27;border:none;margin-left:5px}.login-page .form-card .login-form .remember-item[data-v-6c83dcbd]{padding-left:0;margin-bottom:10px}.login-page .form-card .login-form .login-btn[data-v-6c83dcbd]{width:100%;background:#6a8a27;border:none}.login-page .form-card .login-form .login-btn[data-v-6c83dcbd]:hover{background:#e03e40}.login-page .form-card .login-form .register-guide[data-v-6c83dcbd]{text-align:center;margin-top:15px;color:#999}.login-page .form-card .login-form .register-guide .register-link[data-v-6c83dcbd]{color:#6a8a27;text-decoration:underline;margin-left:5px}@media(max-width:992px){.login-page .form-card[data-v-6c83dcbd]{right:5%;width:320px}}@media(max-width:576px){.login-page .form-card[data-v-6c83dcbd]{right:50%;transform:translate(50%,-50%);width:90%}}

1
dist/css/446.4288d89e.css

@ -0,0 +1 @@
.bg[data-v-0653f094]{display:flex;flex-direction:column}.bg[data-v-0653f094] .el-button--text,.bg[data-v-0653f094] .el-tabs__item.is-active{color:#6a8a27}.bg[data-v-0653f094] .el-tabs__active-bar{background-color:#6a8a27}.bg[data-v-0653f094] .el-tabs__item:hover{color:#6a8a27}.filter-bar[data-v-0653f094]{margin-bottom:20px}.order-card[data-v-0653f094]{border:1px solid #eee;border-radius:4px;margin-bottom:20px;overflow:hidden}.order-header[data-v-0653f094]{background-color:#f8f9fa;padding:12px 20px;display:flex;align-items:center;border-bottom:1px solid #eee;color:#666;font-size:14px}.order-products[data-v-0653f094]{padding:10px 20px}.product-item[data-v-0653f094]{display:flex;align-items:center;padding:15px 0;border-bottom:1px dashed #eee;font-size:14px}.product-item[data-v-0653f094]:last-child{border-bottom:none}.product-image[data-v-0653f094]{width:80px;height:80px;-o-object-fit:cover;object-fit:cover;margin-right:15px;border-radius:4px}.product-details[data-v-0653f094]{flex:1}.product-name[data-v-0653f094]{color:#333;margin-bottom:5px}.product-spec[data-v-0653f094]{color:#999;font-size:12px}.product-price[data-v-0653f094]{width:120px;text-align:center;color:#333}.product-quantity[data-v-0653f094]{width:100px;text-align:center;color:#666}.product-total[data-v-0653f094]{width:120px;text-align:center;color:#333;font-weight:500}.product-actions[data-v-0653f094],.product-status[data-v-0653f094]{width:150px;text-align:center}.order-footer[data-v-0653f094]{background-color:#f8f9fa;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eee}.order-summary[data-v-0653f094]{text-align:right}.order-amount[data-v-0653f094]{color:#333;margin-bottom:5px}.order-amount strong[data-v-0653f094]{color:#ff4d4f;font-size:16px}.order-tips[data-v-0653f094]{font-size:12px;color:#999}.order-actions[data-v-0653f094]{display:flex;gap:10px}

1
dist/css/624.f7a540d4.css

@ -0,0 +1 @@
.bg[data-v-e57efb46]{display:flex;flex-direction:column}.bg[data-v-e57efb46] .el-button--text{color:#6a8a27}.el-card[data-v-e57efb46]{margin-bottom:20px;border-radius:6px;box-shadow:0 2px 12px 0 rgba(0,0,0,.05);border:none}.el-card__header[data-v-e57efb46]{padding:16px 20px;border-bottom:1px solid #f0f0f0;background-color:#fff;font-size:16px;font-weight:500}.el-card__body[data-v-e57efb46]{padding:20px}.notice-bar[data-v-e57efb46]{background-color:#fffbe6;border:1px solid #ffe58f;padding:12px 16px;border-radius:4px;margin-bottom:20px;justify-content:space-between;color:#fa8c16;font-size:14px}.notice-bar[data-v-e57efb46],.notice-bar__content[data-v-e57efb46]{display:flex;align-items:center}.notice-bar__content i[data-v-e57efb46]{margin-right:8px}.notice-bar__close[data-v-e57efb46]{cursor:pointer;transition:color .2s}.notice-bar__close[data-v-e57efb46]:hover{color:#fa8c16}.user-info[data-v-e57efb46]{display:flex;align-items:flex-start;padding:10px 0}.user-avatar[data-v-e57efb46]{width:100px;height:100px;border-radius:50%;margin-right:20px;border:4px solid #f5f7fa;-o-object-fit:cover;object-fit:cover}.user-details[data-v-e57efb46]{flex:1}.user-name[data-v-e57efb46]{font-size:20px;font-weight:500;margin-bottom:10px;color:#1f2329}.user-other-info[data-v-e57efb46]{color:#4e5969;margin-bottom:6px;font-size:14px}.login-info[data-v-e57efb46]{display:flex;padding-top:20px}.login-section[data-v-e57efb46]{flex:1}.login-section-title[data-v-e57efb46]{font-weight:500;margin-bottom:10px;color:#1f2329;font-size:15px}.login-detail[data-v-e57efb46]{color:#4e5969;font-size:14px;margin-bottom:6px}.feature-grid[data-v-e57efb46]{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:15px}.feature-item[data-v-e57efb46]{display:flex;flex-direction:column;align-items:center;padding:15px 10px;border-radius:6px;transition:all .2s;cursor:pointer}.feature-item[data-v-e57efb46]:hover{background-color:#f5f7fa}.feature-icon[data-v-e57efb46]{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:10px;font-size:20px;color:#6a8a27;background-color:rgba(106,138,39,.1)}.feature-name[data-v-e57efb46]{font-size:14px;color:#4e5969}

1
dist/css/639.c184e302.css

File diff suppressed because one or more lines are too long

1
dist/css/64.c294a0d0.css

@ -1 +0,0 @@
.bg[data-v-281b462a]{display:flex;flex-direction:column}.bg[data-v-281b462a] .el-button--text{color:#6a8a27}.el-card[data-v-281b462a]{margin-bottom:20px;border-radius:6px;box-shadow:0 2px 12px 0 rgba(0,0,0,.05);border:none}.el-card__header[data-v-281b462a]{padding:16px 20px;border-bottom:1px solid #f0f0f0;background-color:#fff;font-size:16px;font-weight:500}.el-card__body[data-v-281b462a]{padding:20px}.notice-bar[data-v-281b462a]{background-color:#fffbe6;border:1px solid #ffe58f;padding:12px 16px;border-radius:4px;margin-bottom:20px;justify-content:space-between;color:#fa8c16;font-size:14px}.notice-bar[data-v-281b462a],.notice-bar__content[data-v-281b462a]{display:flex;align-items:center}.notice-bar__content i[data-v-281b462a]{margin-right:8px}.notice-bar__close[data-v-281b462a]{cursor:pointer;transition:color .2s}.notice-bar__close[data-v-281b462a]:hover{color:#fa8c16}.user-info[data-v-281b462a]{display:flex;align-items:flex-start;padding:10px 0}.user-avatar[data-v-281b462a]{width:100px;height:100px;border-radius:50%;margin-right:20px;border:4px solid #f5f7fa;-o-object-fit:cover;object-fit:cover}.user-details[data-v-281b462a]{flex:1}.user-name[data-v-281b462a]{font-size:20px;font-weight:500;margin-bottom:10px;color:#1f2329}.user-other-info[data-v-281b462a]{color:#4e5969;margin-bottom:6px;font-size:14px}.login-info[data-v-281b462a]{display:flex;padding-top:20px}.login-section[data-v-281b462a]{flex:1}.login-section-title[data-v-281b462a]{font-weight:500;margin-bottom:10px;color:#1f2329;font-size:15px}.login-detail[data-v-281b462a]{color:#4e5969;font-size:14px;margin-bottom:6px}.feature-grid[data-v-281b462a]{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:15px}.feature-item[data-v-281b462a]{display:flex;flex-direction:column;align-items:center;padding:15px 10px;border-radius:6px;transition:all .2s;cursor:pointer}.feature-item[data-v-281b462a]:hover{background-color:#f5f7fa}.feature-icon[data-v-281b462a]{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:10px;font-size:20px;color:#6a8a27;background-color:rgba(106,138,39,.1)}.feature-name[data-v-281b462a]{font-size:14px;color:#4e5969}

2
dist/css/828.96d8e95b.css → dist/css/828.3ffea4ab.css

@ -1 +1 @@
.product-list .product-grid[data-v-6ecfbe40]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.product-list .product-card[data-v-6ecfbe40]{border:1px solid #eaeaea;border-radius:8px;overflow:hidden;transition:all .3s ease;padding:10px}.product-list .product-card[data-v-6ecfbe40]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1)}.product-list .product-card .product-img[data-v-6ecfbe40]{height:250px;overflow:hidden}.product-list .product-card .product-img .product-pic[data-v-6ecfbe40]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.product-list .product-card .product-img .product-pic[data-v-6ecfbe40]:hover{transform:scale(1.05)}.product-list .product-card .product-info[data-v-6ecfbe40]{padding:10px}.product-list .product-card .product-info .product-name[data-v-6ecfbe40]{font-size:14px;line-height:20px;min-height:40px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px}.product-list .product-card .product-info .product-name a[data-v-6ecfbe40]{color:#333}.product-list .product-card .product-info .product-name a[data-v-6ecfbe40]:hover{color:#409eff}.product-list .product-card .product-info .product-price[data-v-6ecfbe40]{margin-bottom:15px}.product-list .product-card .product-info .product-price .current-price[data-v-6ecfbe40]{color:#f40;font-size:16px;font-weight:700}.product-list .product-card .product-info .product-price .original-price[data-v-6ecfbe40]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-list .product-card .product-info .product-actions[data-v-6ecfbe40]{margin-bottom:10px}.product-list .product-card .product-info .product-sales[data-v-6ecfbe40]{font-size:12px;color:#999;margin-bottom:15px}.product-list .no-products[data-v-6ecfbe40]{padding:50px 0;text-align:center}.home-page .home-carousel[data-v-34d6a3aa]{margin-bottom:30px}.home-page .home-carousel .carousel-img[data-v-34d6a3aa]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.home-page .category-nav[data-v-34d6a3aa]{margin-bottom:40px}.home-page .category-nav .category-list[data-v-34d6a3aa]{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-top:20px}.home-page .category-nav .category-item[data-v-34d6a3aa]{flex:1;min-width:120px;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #eaeaea;border-radius:8px;cursor:pointer;transition:all .3s ease}.home-page .category-nav .category-item[data-v-34d6a3aa]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1);border-color:#409eff}.home-page .category-nav .category-item .category-icon[data-v-34d6a3aa]{font-size:36px;color:#409eff;margin-bottom:15px}.home-page .category-nav .category-item .category-name[data-v-34d6a3aa]{font-size:16px;font-weight:500}.home-page .section-title[data-v-34d6a3aa]{font-size:24px;color:#333;padding-bottom:10px;border-bottom:2px solid #409eff;display:inline-block;margin-bottom:20px}.home-page .section-header[data-v-34d6a3aa]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.home-page .section-header .more-link[data-v-34d6a3aa]{color:#409eff;font-size:14px;display:flex;align-items:center}.home-page .section-header .more-link[data-v-34d6a3aa]:hover{text-decoration:underline}.home-page .section-header .more-link i[data-v-34d6a3aa]{margin-left:5px;font-size:16px}.home-page .hot-products[data-v-34d6a3aa],.home-page .new-products[data-v-34d6a3aa]{margin-bottom:40px}.home-page .promotion-section[data-v-34d6a3aa]{margin:40px 0}.home-page .promotion-section .promotion-container[data-v-34d6a3aa]{display:flex;gap:20px;margin-top:20px}@media(max-width:768px){.home-page .promotion-section .promotion-container[data-v-34d6a3aa]{flex-direction:column}}.home-page .promotion-section .promotion-item[data-v-34d6a3aa]{flex:1;position:relative;height:300px;border-radius:8px;overflow:hidden}.home-page .promotion-section .promotion-item .promotion-img[data-v-34d6a3aa]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.home-page .promotion-section .promotion-item .promotion-img[data-v-34d6a3aa]:hover{transform:scale(1.05)}.home-page .promotion-section .promotion-item .promotion-info[data-v-34d6a3aa]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}.home-page .promotion-section .promotion-item .promotion-info h3[data-v-34d6a3aa]{font-size:24px;margin-bottom:10px}.home-page .promotion-section .promotion-item .promotion-info p[data-v-34d6a3aa]{font-size:16px;margin-bottom:20px} .product-list .product-grid[data-v-0968dad7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.product-list .product-card[data-v-0968dad7]{border:1px solid #eaeaea;border-radius:8px;overflow:hidden;transition:all .3s ease;padding:10px}.product-list .product-card[data-v-0968dad7]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1)}.product-list .product-card .product-img[data-v-0968dad7]{height:250px;overflow:hidden}.product-list .product-card .product-img .product-pic[data-v-0968dad7]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.product-list .product-card .product-img .product-pic[data-v-0968dad7]:hover{transform:scale(1.05)}.product-list .product-card .product-info[data-v-0968dad7]{padding:10px}.product-list .product-card .product-info .product-name[data-v-0968dad7]{font-size:14px;line-height:20px;min-height:40px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px}.product-list .product-card .product-info .product-name a[data-v-0968dad7]{color:#333}.product-list .product-card .product-info .product-name a[data-v-0968dad7]:hover{color:#409eff}.product-list .product-card .product-info .product-price[data-v-0968dad7]{margin-bottom:15px}.product-list .product-card .product-info .product-price .current-price[data-v-0968dad7]{color:#f40;font-size:16px;font-weight:700}.product-list .product-card .product-info .product-price .original-price[data-v-0968dad7]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-list .product-card .product-info .product-actions[data-v-0968dad7]{margin-bottom:10px}.product-list .product-card .product-info .product-sales[data-v-0968dad7]{font-size:12px;color:#999;margin-bottom:15px}.product-list .no-products[data-v-0968dad7]{padding:50px 0;text-align:center}.home-page .home-carousel[data-v-34d6a3aa]{margin-bottom:30px}.home-page .home-carousel .carousel-img[data-v-34d6a3aa]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.home-page .category-nav[data-v-34d6a3aa]{margin-bottom:40px}.home-page .category-nav .category-list[data-v-34d6a3aa]{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-top:20px}.home-page .category-nav .category-item[data-v-34d6a3aa]{flex:1;min-width:120px;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #eaeaea;border-radius:8px;cursor:pointer;transition:all .3s ease}.home-page .category-nav .category-item[data-v-34d6a3aa]:hover{transform:translateY(-5px);box-shadow:0 5px 15px rgba(0,0,0,.1);border-color:#409eff}.home-page .category-nav .category-item .category-icon[data-v-34d6a3aa]{font-size:36px;color:#409eff;margin-bottom:15px}.home-page .category-nav .category-item .category-name[data-v-34d6a3aa]{font-size:16px;font-weight:500}.home-page .section-title[data-v-34d6a3aa]{font-size:24px;color:#333;padding-bottom:10px;border-bottom:2px solid #409eff;display:inline-block;margin-bottom:20px}.home-page .section-header[data-v-34d6a3aa]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.home-page .section-header .more-link[data-v-34d6a3aa]{color:#409eff;font-size:14px;display:flex;align-items:center}.home-page .section-header .more-link[data-v-34d6a3aa]:hover{text-decoration:underline}.home-page .section-header .more-link i[data-v-34d6a3aa]{margin-left:5px;font-size:16px}.home-page .hot-products[data-v-34d6a3aa],.home-page .new-products[data-v-34d6a3aa]{margin-bottom:40px}.home-page .promotion-section[data-v-34d6a3aa]{margin:40px 0}.home-page .promotion-section .promotion-container[data-v-34d6a3aa]{display:flex;gap:20px;margin-top:20px}@media(max-width:768px){.home-page .promotion-section .promotion-container[data-v-34d6a3aa]{flex-direction:column}}.home-page .promotion-section .promotion-item[data-v-34d6a3aa]{flex:1;position:relative;height:300px;border-radius:8px;overflow:hidden}.home-page .promotion-section .promotion-item .promotion-img[data-v-34d6a3aa]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.home-page .promotion-section .promotion-item .promotion-img[data-v-34d6a3aa]:hover{transform:scale(1.05)}.home-page .promotion-section .promotion-item .promotion-info[data-v-34d6a3aa]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}.home-page .promotion-section .promotion-item .promotion-info h3[data-v-34d6a3aa]{font-size:24px;margin-bottom:10px}.home-page .promotion-section .promotion-item .promotion-info p[data-v-34d6a3aa]{font-size:16px;margin-bottom:20px}

1
dist/css/86.3b46bb21.css

@ -1 +0,0 @@
.bg[data-v-a18e9d96]{display:flex;flex-direction:column}.bg[data-v-a18e9d96] .el-button--text,.bg[data-v-a18e9d96] .el-tabs__item.is-active{color:#6a8a27}.bg[data-v-a18e9d96] .el-tabs__active-bar{background-color:#6a8a27}.bg[data-v-a18e9d96] .el-tabs__item:hover{color:#6a8a27}.filter-bar[data-v-a18e9d96]{margin-bottom:20px}.order-card[data-v-a18e9d96]{border:1px solid #eee;border-radius:4px;margin-bottom:20px;overflow:hidden}.order-header[data-v-a18e9d96]{background-color:#f8f9fa;padding:12px 20px;display:flex;align-items:center;border-bottom:1px solid #eee;color:#666;font-size:14px}.order-products[data-v-a18e9d96]{padding:10px 20px}.product-item[data-v-a18e9d96]{display:flex;align-items:center;padding:15px 0;border-bottom:1px dashed #eee;font-size:14px}.product-item[data-v-a18e9d96]:last-child{border-bottom:none}.product-image[data-v-a18e9d96]{width:80px;height:80px;-o-object-fit:cover;object-fit:cover;margin-right:15px;border-radius:4px}.product-details[data-v-a18e9d96]{flex:1}.product-name[data-v-a18e9d96]{color:#333;margin-bottom:5px}.product-spec[data-v-a18e9d96]{color:#999;font-size:12px}.product-price[data-v-a18e9d96]{width:120px;text-align:center;color:#333}.product-quantity[data-v-a18e9d96]{width:100px;text-align:center;color:#666}.product-total[data-v-a18e9d96]{width:120px;text-align:center;color:#333;font-weight:500}.product-actions[data-v-a18e9d96],.product-status[data-v-a18e9d96]{width:150px;text-align:center}.order-footer[data-v-a18e9d96]{background-color:#f8f9fa;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eee}.order-summary[data-v-a18e9d96]{text-align:right}.order-amount[data-v-a18e9d96]{color:#333;margin-bottom:5px}.order-amount strong[data-v-a18e9d96]{color:#ff4d4f;font-size:16px}.order-tips[data-v-a18e9d96]{font-size:12px;color:#999}.order-actions[data-v-a18e9d96]{display:flex;gap:10px}

1
dist/css/882.f420d2be.css

@ -0,0 +1 @@
.bg[data-v-1d95a9f7]{display:flex;flex-direction:column;font-size:14px}.common-card[data-v-1d95a9f7]{width:100%;background-color:#fff;padding:20px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.order-status[data-v-1d95a9f7]{border-right:1px solid #eee;width:350px;height:220px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.order-status .order-no[data-v-1d95a9f7]{color:#999}.order-status .order-no .el-button[data-v-1d95a9f7]{width:-moz-fit-content;width:fit-content;margin:0;display:inline-block;padding:0}.order-status .status-title[data-v-1d95a9f7]{display:flex;align-items:center;font-size:16px;font-weight:700}.order-status .status-title i[data-v-1d95a9f7]{font-size:24px}.order-status .el-button[data-v-1d95a9f7]{width:120px;display:block;margin:0 auto}.order-step[data-v-1d95a9f7]{flex:1;width:1px;padding:0 20px;display:flex;align-items:center}.order-step[data-v-1d95a9f7] .el-step__icon.is-text{border:none;width:30px;height:30px;border-radius:50%;background:#c0c4cc;color:#fff}.order-step[data-v-1d95a9f7] .el-step__line{top:13px}.order-step[data-v-1d95a9f7] .el-step__line-inner{border-color:#c0c4cc}.order-step .process-title[data-v-1d95a9f7]{color:#666;font-weight:700;font-size:14px;margin-top:-70px}.order-step .process-description[data-v-1d95a9f7]{color:#666;font-size:12px;margin-top:45px}.order-step[data-v-1d95a9f7] .is-finish .el-step__icon{background:#67c23a}.order-info-card[data-v-1d95a9f7]{display:flex}.order-info-card[data-v-1d95a9f7] .el-descriptions{flex:1;flex-shrink:0;border-right:1px solid hsla(0,0%,60%,.1);padding:0 20px}.order-info-card[data-v-1d95a9f7] .el-descriptions .el-descriptions-item__label{width:90px}.product-image[data-v-1d95a9f7]{width:80px;height:80px;-o-object-fit:cover;object-fit:cover;margin-right:15px;border-radius:4px}.total-card[data-v-1d95a9f7]{margin-top:20px;background:#fafafa;box-shadow:none}.total-card[data-v-1d95a9f7] .el-descriptions__body{background:none;text-align:right}.total-card[data-v-1d95a9f7] .el-descriptions__body .el-descriptions-item__label{width:90%;text-align:right;justify-content:flex-end}.total-card[data-v-1d95a9f7] .el-descriptions__body .el-descriptions-item__content{justify-content:flex-end}

1
dist/css/896.f1192b9d.css

@ -0,0 +1 @@
.product-grid-page[data-v-cf708dca]{padding:20px;background-color:#f5f7fa;max-width:1400px;margin:0 auto}.product-grid-page .filter-bar[data-v-cf708dca]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center;padding:15px;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05)}.product-grid-page .filter-bar .search-input[data-v-cf708dca]{flex:1;min-width:200px}.product-grid-page .filter-bar .filter-select[data-v-cf708dca]{min-width:140px}.product-grid-page .result-stats[data-v-cf708dca]{margin:0 0 15px 5px;color:#666;font-size:14px;padding:5px 0}.product-grid-page .result-stats .category[data-v-cf708dca],.product-grid-page .result-stats .keyword[data-v-cf708dca]{color:#ff4d4f;font-weight:500;margin:0 5px}.product-grid-page .product-grid[data-v-cf708dca]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-bottom:30px}.product-grid-page .product-card[data-v-cf708dca]{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);overflow:hidden;transition:transform .3s,box-shadow .3s;cursor:pointer;position:relative}.product-grid-page .product-card[data-v-cf708dca]:hover{transform:translateY(-5px);box-shadow:0 8px 16px rgba(0,0,0,.1)}.product-grid-page .product-card .product-img[data-v-cf708dca]{width:100%;height:200px;background-color:#f5f5f5}.product-grid-page .product-card .image-placeholder[data-v-cf708dca]{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5}.product-grid-page .product-card .tag[data-v-cf708dca]{position:absolute;top:10px;left:10px;padding:3px 8px;font-size:12px;color:#fff;border-radius:4px;z-index:1}.product-grid-page .product-card .product-info[data-v-cf708dca]{padding:15px}.product-grid-page .product-card .product-info .product-name[data-v-cf708dca]{font-size:14px;color:#333;margin-bottom:10px;height:40px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-grid-page .product-card .product-info .price-row[data-v-cf708dca]{display:flex;align-items:center;margin-bottom:8px}.product-grid-page .product-card .product-info .price-row .current-price[data-v-cf708dca]{color:#ff4d4f;font-weight:700;font-size:16px}.product-grid-page .product-card .product-info .price-row .original-price[data-v-cf708dca]{color:#999;font-size:12px;text-decoration:line-through;margin-left:8px}.product-grid-page .product-card .product-info .sales-volume[data-v-cf708dca]{font-size:12px;color:#666;margin-bottom:10px;display:flex;align-items:center}.product-grid-page .product-card .product-info .sales-volume i[data-v-cf708dca]{font-size:12px;margin-right:4px}.product-grid-page .product-card .product-info .cart-btn[data-v-cf708dca]{width:100%}.product-grid-page .empty-state[data-v-cf708dca]{grid-column:1/-1;padding:60px 0;text-align:center}.product-grid-page .pagination-container[data-v-cf708dca]{display:flex;justify-content:center;margin-top:20px;padding:10px}@media(max-width:768px){.product-grid-page[data-v-cf708dca]{padding:10px}.product-grid-page .filter-bar[data-v-cf708dca]{padding:10px;gap:10px}.product-grid-page .product-grid[data-v-cf708dca]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.product-grid-page .product-card .image-placeholder[data-v-cf708dca],.product-grid-page .product-card .product-img[data-v-cf708dca]{height:140px}}

1
dist/css/900.57bae3a8.css

@ -1 +0,0 @@
.login-page[data-v-0c4c6f6a]{position:relative;left:0;width:100%;height:100%;overflow:hidden}.login-page .bg-container[data-v-0c4c6f6a]{width:100vw;height:100%;left:0;top:0;z-index:1}.login-page .bg-container .bg-img[data-v-0c4c6f6a]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.login-page .form-card[data-v-0c4c6f6a]{position:absolute;right:8%;top:50%;transform:translateY(-50%);width:360px;background:#fff;border-radius:8px;box-shadow:0 2px 16px rgba(0,0,0,.1);z-index:2;padding:30px 25px}.login-page .form-card .tab-bar[data-v-0c4c6f6a]{display:flex;justify-content:center;margin-bottom:25px}.login-page .form-card .tab-bar .tab-item[data-v-0c4c6f6a]{width:50%;text-align:center;padding:10px 0;color:#666;cursor:pointer;border-bottom:2px solid transparent}.login-page .form-card .tab-bar .tab-item.active[data-v-0c4c6f6a]{color:#6a8a27;border-bottom-color:#6a8a27}.login-page .form-card .login-form .el-form-item[data-v-0c4c6f6a]{margin-bottom:20px}.login-page .form-card .login-form .el-input[data-v-0c4c6f6a]{height:40px;line-height:40px}.login-page .form-card .login-form .captcha-img[data-v-0c4c6f6a]{display:inline-block;width:30%;height:40px;margin-left:8px;cursor:pointer;vertical-align:middle}.login-page .form-card .login-form .captcha-img .captcha-pic[data-v-0c4c6f6a]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:4px}.login-page .form-card .login-form .code-btn[data-v-0c4c6f6a]{padding:0 5px;height:40px;background-color:#6a8a27;border:none;margin-left:5px}.login-page .form-card .login-form .remember-item[data-v-0c4c6f6a]{padding-left:0;margin-bottom:10px}.login-page .form-card .login-form .login-btn[data-v-0c4c6f6a]{width:100%;background:#6a8a27;border:none}.login-page .form-card .login-form .login-btn[data-v-0c4c6f6a]:hover{background:#e03e40}.login-page .form-card .login-form .register-guide[data-v-0c4c6f6a]{text-align:center;margin-top:15px;color:#999}.login-page .form-card .login-form .register-guide .register-link[data-v-0c4c6f6a]{color:#6a8a27;text-decoration:underline;margin-left:5px}@media(max-width:992px){.login-page .form-card[data-v-0c4c6f6a]{right:5%;width:320px}}@media(max-width:576px){.login-page .form-card[data-v-0c4c6f6a]{right:50%;transform:translate(50%,-50%);width:90%}}

1
dist/css/926.a9594400.css

File diff suppressed because one or more lines are too long

1
dist/css/955.7f61bedf.css

File diff suppressed because one or more lines are too long

2
dist/css/app.5178ac73.css → dist/css/app.78312ffd.css

File diff suppressed because one or more lines are too long

2
dist/index.html

@ -1 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>abcdf</title><script defer="defer" src="/js/chunk-vendors.88c8f662.js"></script><script defer="defer" src="/js/app.a3998a8a.js"></script><link href="/css/chunk-vendors.10dd4e95.css" rel="stylesheet"><link href="/css/app.5178ac73.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but abcdf doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html> <!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>abcdf</title><script defer="defer" src="/js/chunk-vendors.cab40109.js"></script><script defer="defer" src="/js/app.523c1b3b.js"></script><link href="/css/chunk-vendors.10dd4e95.css" rel="stylesheet"><link href="/css/app.78312ffd.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but abcdf doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

2
dist/js/135.08e8073a.js

File diff suppressed because one or more lines are too long

1
dist/js/135.08e8073a.js.map

File diff suppressed because one or more lines are too long

2
dist/js/143.9d51e2ee.js

File diff suppressed because one or more lines are too long

1
dist/js/143.9d51e2ee.js.map

File diff suppressed because one or more lines are too long

2
dist/js/208.a0feba87.js

File diff suppressed because one or more lines are too long

1
dist/js/208.a0feba87.js.map

File diff suppressed because one or more lines are too long

2
dist/js/241.231f8707.js

File diff suppressed because one or more lines are too long

1
dist/js/241.231f8707.js.map

File diff suppressed because one or more lines are too long

2
dist/js/286.8f0d1d9c.js

File diff suppressed because one or more lines are too long

1
dist/js/286.8f0d1d9c.js.map

File diff suppressed because one or more lines are too long

2
dist/js/322.693252a2.js

File diff suppressed because one or more lines are too long

1
dist/js/322.693252a2.js.map

File diff suppressed because one or more lines are too long

2
dist/js/4.e0df9c1a.js

File diff suppressed because one or more lines are too long

1
dist/js/4.e0df9c1a.js.map

File diff suppressed because one or more lines are too long

2
dist/js/40.e5eed29a.js

File diff suppressed because one or more lines are too long

1
dist/js/40.e5eed29a.js.map

File diff suppressed because one or more lines are too long

2
dist/js/411.e9addbc3.js

File diff suppressed because one or more lines are too long

1
dist/js/411.e9addbc3.js.map

File diff suppressed because one or more lines are too long

2
dist/js/446.3d8319df.js

File diff suppressed because one or more lines are too long

1
dist/js/446.3d8319df.js.map

File diff suppressed because one or more lines are too long

2
dist/js/624.1742d542.js

File diff suppressed because one or more lines are too long

1
dist/js/624.1742d542.js.map

File diff suppressed because one or more lines are too long

2
dist/js/639.edae0537.js

File diff suppressed because one or more lines are too long

1
dist/js/639.edae0537.js.map

File diff suppressed because one or more lines are too long

2
dist/js/64.57193698.js

@ -1,2 +0,0 @@
"use strict";(self["webpackChunkabcdf"]=self["webpackChunkabcdf"]||[]).push([[64],{1064:function(t,e,s){s.r(e),s.d(e,{default:function(){return r}});var i=function(){var t=this,e=t._self._c;return e("div",{staticClass:"bg"},[t.showNotice?e("div",{staticClass:"notice-bar"},[t._m(0),e("div",{staticClass:"notice-bar__close",on:{click:function(e){t.showNotice=!1}}},[e("i",{staticClass:"el-icon-close"})])]):t._e(),e("el-card",[e("el-row",{attrs:{gutter:20}},t._l(t.headFun,function(s,i){return e("el-col",{key:i,attrs:{xs:24,sm:8,md:8}},[e("router-link",{staticClass:"feature-item",attrs:{to:s.path}},[e("div",{staticClass:"feature-icon"},[e("i",{class:s.icon})]),e("span",{staticClass:"feature-name"},[t._v(t._s(s.title))]),e("el-button",{staticStyle:{"margin-top":"5px"},attrs:{type:"text",size:"mini"}},[t._v("去设置")])],1)],1)}),1)],1),t.userInfo?e("el-card",[e("div",{attrs:{slot:"header"},slot:"header"},[t._v("个人信息")]),e("div",{staticClass:"user-info"},[e("img",{staticClass:"user-avatar",attrs:{src:t.userInfo.avatar,alt:"用户头像"}}),e("div",{staticClass:"user-details"},[e("div",[e("div",{staticClass:"user-name"},[t._v(t._s(t.userInfo.nickname))]),e("div",{staticClass:"user-other-info"},[t._v(" ID: "+t._s(t.userInfo.user_id)+" "),e("el-button",{attrs:{type:"text",size:"mini"},on:{click:t.copyId}},[t._v("复制")])],1),e("div",{staticClass:"user-other-info"},[t._v("手机号: "+t._s(t.userInfo.mobile))])]),e("div",{staticClass:"login-info"},[e("div",{staticClass:"login-section"},[e("div",{staticClass:"login-section-title"},[t._v("当前登录信息")]),e("div",{staticClass:"login-detail"},[t._v("登录设备: Edge浏览器")]),e("div",{staticClass:"login-detail"},[t._v("登录地点: 中国广东深圳")]),e("div",{staticClass:"login-detail"},[t._v("登录时间: 2099-02-23 10:09:50")])]),e("div",{staticClass:"login-section"},[e("div",{staticClass:"login-section-title"},[t._v("上次登录信息")]),e("div",{staticClass:"login-detail"},[t._v("登录设备: 微信小程序")]),e("div",{staticClass:"login-detail"},[t._v("登录地点: 中国广东深圳")]),e("div",{staticClass:"login-detail"},[t._v("登录时间: 2099-02-05 10:46:45")])])])]),e("div",[e("el-button",{staticStyle:{"background-color":"#6a8a27",border:"none"},attrs:{type:"primary",size:"mini"},on:{click:function(e){return t.goPath("/User/UserInfo")}}},[e("i",{staticClass:"el-icon-edit"}),t._v(" 编辑个人信息 ")])],1)])]):t._e(),e("div",{staticClass:"flex-center"},[e("el-card",{staticStyle:{flex:"1"}},[e("div",{attrs:{slot:"header"},slot:"header"},[t._v("我的议价")]),e("div",{staticClass:"feature-grid"},t._l(t.bargaining,function(s,i){return e("div",{key:i,staticClass:"feature-item"},[s.value?e("el-badge",{attrs:{value:s.value,type:"danger"}},[e("div",{staticClass:"feature-icon"},[e("i",{class:s.icon})])]):e("div",{staticClass:"feature-icon"},[e("i",{class:s.icon})]),e("span",{staticClass:"feature-name"},[t._v(t._s(s.title))])],1)}),0)]),e("div",{staticStyle:{width:"20px","flex-shrink":"0"}}),e("el-card",{staticStyle:{flex:"1"}},[e("div",{attrs:{slot:"header"},slot:"header"},[t._v("我的订单")]),e("div",{staticClass:"feature-grid"},t._l(t.order,function(s,i){return e("div",{key:i,staticClass:"feature-item"},[s.value?e("el-badge",{attrs:{value:s.value,type:"danger"}},[e("div",{staticClass:"feature-icon"},[e("i",{class:s.icon})])]):e("div",{staticClass:"feature-icon"},[e("i",{class:s.icon})]),e("span",{staticClass:"feature-name"},[t._v(t._s(s.title))])],1)}),0)])],1)],1)},a=[function(){var t=this,e=t._self._c;return e("div",{staticClass:"notice-bar__content"},[e("i",{staticClass:"el-icon-lightbulb"}),t._v(" 尊敬的采购人,欢迎来到xxx平台!您可以先完成下方的基础设置,方便您更高效的采购。 ")])}],l=(s(4114),{name:"UserCenter",data(){return{showNotice:!0,userId:"200901071124",headFun:[{icon:"el-icon-location",title:"设置收货地址",path:"/User/UserAddress"},{icon:"el-icon-document",title:"设置发票抬头",path:"/User/UserInvoice"},{icon:"el-icon-user",title:"设置采购人信息",path:"/User/PurchaserAdd"}],bargaining:[{icon:"el-icon-time",title:"待回复",path:"",value:2},{icon:"el-icon-truck",title:"已取消",path:"",value:2},{icon:"el-icon-menu",title:"已成交",path:"",value:2}],order:[{icon:"el-icon-time",title:"待付款",path:"",value:2},{icon:"el-icon-truck",title:"未发货",path:"",value:2},{icon:"el-icon-menu",title:"全部订单",path:"",value:2}],userInfo:null}},computed:{},mounted(){this.getUserInfo()},methods:{getUserInfo(){this.post({customBaseURL:"/api"},"/api/uservice/user/getMyInfo").then(t=>{this.userInfo=t.data,console.log(this.userInfo)})},goPath(t){this.$router.push(t)},copyId(){const t=document.createElement("input");t.value=this.userId,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),this.$message({message:"ID已复制",type:"success"})}}}),n=l,c=s(1656),o=(0,c.A)(n,i,a,!1,null,"281b462a",null),r=o.exports}}]);
//# sourceMappingURL=64.57193698.js.map

1
dist/js/64.57193698.js.map

File diff suppressed because one or more lines are too long

2
dist/js/700.6882c630.js

File diff suppressed because one or more lines are too long

1
dist/js/700.6882c630.js.map

File diff suppressed because one or more lines are too long

2
dist/js/828.3c50f0ff.js

File diff suppressed because one or more lines are too long

1
dist/js/828.3c50f0ff.js.map

File diff suppressed because one or more lines are too long

2
dist/js/828.dc20517d.js

File diff suppressed because one or more lines are too long

1
dist/js/828.dc20517d.js.map

File diff suppressed because one or more lines are too long

2
dist/js/86.471ac328.js

File diff suppressed because one or more lines are too long

1
dist/js/86.471ac328.js.map

File diff suppressed because one or more lines are too long

2
dist/js/882.62bac42e.js

File diff suppressed because one or more lines are too long

1
dist/js/882.62bac42e.js.map

File diff suppressed because one or more lines are too long

2
dist/js/896.996819fe.js

@ -0,0 +1,2 @@
"use strict";(self["webpackChunkabcdf"]=self["webpackChunkabcdf"]||[]).push([[896],{3896:function(e,t,s){s.r(t),s.d(t,{default:function(){return n}});s(8111),s(116);var a=function(){var e=this,t=e._self._c;return t("div",{staticClass:"product-grid-page"},[e.showFilter?t("div",{staticClass:"filter-bar"},[t("el-select",{staticClass:"filter-select",attrs:{placeholder:"全部分类"},on:{change:e.handleCategoryChange},model:{value:e.selectedCategory,callback:function(t){e.selectedCategory=t},expression:"selectedCategory"}},e._l(e.categories,function(e){return t("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})}),1),t("el-select",{staticClass:"filter-select",attrs:{placeholder:"综合排序"},on:{change:e.handleSortChange},model:{value:e.selectedSort,callback:function(t){e.selectedSort=t},expression:"selectedSort"}},[t("el-option",{attrs:{label:"综合排序",value:"default"}}),t("el-option",{attrs:{label:"销量↑",value:"sales_asc"}}),t("el-option",{attrs:{label:"销量↓",value:"sales_desc"}}),t("el-option",{attrs:{label:"价格↑",value:"price_asc"}}),t("el-option",{attrs:{label:"价格↓",value:"price_desc"}})],1)],1):e._e(),"search"==e.type?t("div",{staticClass:"result-stats"},[t("span",[e._v("全部结果 >")]),e.searchKeyword?t("span",{staticClass:"keyword"},[e._v('"'+e._s(e.searchKeyword)+'"')]):e._e(),e.selectedCategory&&e.categories.find(t=>t.value===e.selectedCategory)?t("span",{staticClass:"category"},[e._v(' "'+e._s(e.categories.find(t=>t.value===e.selectedCategory).label)+'" ')]):e._e(),t("span",[e._v("共"+e._s(e.totalProducts)+"个结果")])]):e._e(),t("div",{staticClass:"product-grid"},[e._l(e.visibleProducts,function(s,a){return t("div",{key:a,staticClass:"product-card",on:{click:function(t){return e.goToDetail(s.id)}}},[t("img",{directives:[{name:"lazy",rawName:"v-lazy",value:s.headimg,expression:"product.headimg"}],staticClass:"product-img",attrs:{alt:s.title,fit:"cover"}}),t("div",{staticClass:"product-info"},[t("div",{staticClass:"product-name"},[e._v(e._s(s.title))]),t("div",{staticClass:"price-row"},[t("span",{staticClass:"current-price"},[e._v("¥"+e._s(s.price/100))]),s.market_price?t("span",{staticClass:"original-price"},[e._v("¥"+e._s(s.market_price/100))]):e._e()]),t("div",{staticClass:"sales-volume"},[t("i",{staticClass:"el-icon-shopping-cart"}),e._v(" 已售 "+e._s(s.sales_number)+" ")]),t("el-button",{staticClass:"cart-btn",attrs:{type:"primary",size:"mini"}},[e._v(" 立即购买 ")])],1)])}),0===e.visibleProducts.length?t("div",{staticClass:"empty-state"},[t("el-empty",{attrs:{description:"暂无符合条件的商品"}})],1):e._e()],2),e.totalProducts>0?t("div",{staticClass:"pagination-container"},[t("el-pagination",{attrs:{"current-page":e.currentPage,"page-sizes":[12,24,36],"page-size":e.pageSize,layout:"total, sizes, prev, pager, next, jumper",total:e.totalProducts},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1):e._e()])},r=[],i=(s(4114),s(3518)),c={name:"ProductGridPage",data(){return{type:"",searchKeyword:"",selectedCategory:"",selectedSort:"default",showFilter:!0,currentPage:1,pageSize:12,visibleProducts:[],totalProducts:0,categories:[],id:"",keyword:""}},computed:{...(0,i.L8)(["getSearchText"]),currentOffset(){return(this.currentPage-1)*this.pageSize}},watch:{getSearchText(e,t){e!==t&&(this.searchKeyword=e,this.fetchProducts())}},created(){this.type=this.$route.query?.type,this.searchKeyword=this.getSearchText,this.getTagList(),this.$bus.on("search-product",e=>{this.searchKeyword=e,this.currentPage=1,this.fetchProducts()})},beforeDestroy(){this.$bus.off("search-product"),this.searchKeyword="",this.$store.commit("setSearchText",""),this.currentPage=1,this.selectedCategory="",this.selectedSort="default"},methods:{getTagList(){this.post({pid:683},"/api/product/tag_list").then(e=>{this.categories=e.data,this.categories[0].id=662;const t=this.$route.query.id||662;if(t){this.id=t;const e=this.categories.find(e=>e.id==t);console.log(t,e),e&&(this.selectedCategory=e.name)}this.fetchProducts()})},async fetchProducts(){const e={tag_id:this.id||this.selectedCategory,offset:this.currentOffset,limit:this.pageSize,title:this.searchKeyword,...this.parseSortParams()};this.searchKeyword&&(e.keyword=this.searchKeyword);const t=await this.post(e,"/api/product/get_product_by_tag");this.visibleProducts=t.data.list||[],this.totalProducts=Number(t.data.total)||0},parseSortParams(){if("default"===this.selectedSort)return{};const[e,t]=this.selectedSort.split("_"),s={sales:"sales_number",price:"price"};return{sort:s[e],order:t}},handleCategoryChange(e){this.id=e,this.currentPage=1,this.fetchProducts()},handleSortChange(){this.currentPage=1,this.fetchProducts()},handleSizeChange(e){this.pageSize=e,this.currentPage=1,this.fetchProducts()},handleCurrentChange(e){this.currentPage=e,this.fetchProducts(),window.scrollTo(0,0)},goToDetail(e){this.$router.push(`/Detail/${e}`)}}},o=c,l=s(1656),d=(0,l.A)(o,a,r,!1,null,"cf708dca",null),n=d.exports}}]);
//# sourceMappingURL=896.996819fe.js.map

1
dist/js/896.996819fe.js.map

File diff suppressed because one or more lines are too long

2
dist/js/900.6b17b6f1.js

@ -1,2 +0,0 @@
"use strict";(self["webpackChunkabcdf"]=self["webpackChunkabcdf"]||[]).push([[900],{900:function(e,t,s){s.r(t),s.d(t,{default:function(){return n}});var o=function(){var e=this,t=e._self._c;return t("div",{staticClass:"login-page"},[e._m(0),t("div",{staticClass:"form-card"},[t("el-form",{ref:"loginForm",staticClass:"login-form",attrs:{model:e.form,rules:e.rules,"label-width":"0"}},[t("el-form-item",{attrs:{prop:"phone"}},[t("el-input",{attrs:{placeholder:"请输入手机号码",clearable:"","prefix-icon":"el-icon-phone",maxlength:"11"},model:{value:e.form.phone,callback:function(t){e.$set(e.form,"phone",t)},expression:"form.phone"}})],1),t("el-form-item",{attrs:{prop:"captcha"}},[t("el-input",{staticStyle:{width:"65%"},attrs:{placeholder:"请输入图形验证码",clearable:"","prefix-icon":"el-icon-picture"},model:{value:e.form.captcha,callback:function(t){e.$set(e.form,"captcha",t)},expression:"form.captcha"}}),t("div",{staticClass:"captcha-img",on:{click:e.refreshCaptcha}},[t("img",{staticClass:"captcha-pic",attrs:{src:e.captchaUrl,alt:"图形验证码"}})])],1),"sms"===e.loginType?t("el-form-item",{attrs:{prop:"code"}},[t("el-input",{staticStyle:{width:"65%"},attrs:{placeholder:"请输入验证码",clearable:"","prefix-icon":"el-icon-message"},model:{value:e.form.code,callback:function(t){e.$set(e.form,"code",t)},expression:"form.code"}}),t("el-button",{staticClass:"code-btn",attrs:{type:"primary",disabled:e.codeDisabled},on:{click:e.handleGetCode}},[e._v(" "+e._s(e.codeText)+" ")])],1):e._e(),"password"===e.loginType?t("el-form-item",{attrs:{prop:"password"}},[t("el-input",{attrs:{type:"password",placeholder:"请输入密码",clearable:"","prefix-icon":"el-icon-lock"},model:{value:e.form.password,callback:function(t){e.$set(e.form,"password",t)},expression:"form.password"}})],1):e._e(),t("el-form-item",{staticClass:"remember-item"},[t("el-checkbox",{attrs:{size:"mini"},model:{value:e.rememberPhone,callback:function(t){e.rememberPhone=t},expression:"rememberPhone"}},[e._v(" 记住用户名/手机号码 ")])],1),t("el-form-item",[t("el-button",{staticClass:"login-btn",attrs:{type:"primary",loading:e.submitting},on:{click:e.handleLogin}},[e._v(" 立即登录 ")])],1),e._e()],1)],1)])},r=[function(){var e=this,t=e._self._c;return t("div",{staticClass:"bg-container"},[t("img",{staticClass:"bg-img",attrs:{src:"https://static.ticket.sz-trip.com/shiweisuzhou/pc/login/loginBg.png",alt:"login background"}})])}],a=(s(4114),{name:"Login",data(){return{loginType:"sms",form:{phone:"",code:"",password:"",captcha:""},rules:{phone:[{required:!0,message:"请输入手机号码",trigger:"blur"},{pattern:/^1\d{10}$/,message:"手机号码格式错误",trigger:"blur"}],captcha:[{required:!0,message:"请输入图形验证码",trigger:"blur"},{min:4,max:4,message:"图形验证码为4位字符",trigger:"blur"}],code:[{required:!0,message:"请输入验证码",trigger:"blur"},{pattern:/^\d{6}$/,message:"验证码为6位数字",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,message:"密码至少6位",trigger:"blur"}]},codeText:"获取验证码",codeDisabled:!1,countdown:60,captchaUrl:"",captchaId:"",rememberPhone:!1,submitting:!1,smsCodeId:""}},mounted(){const e=localStorage.getItem("rememberedPhone");e&&(this.form.phone=e,this.rememberPhone=!0),this.refreshCaptcha()},methods:{refreshCaptcha(){this.post({},"/api/uservice/user/getCaptchaImg").then(e=>{e&&(this.captchaUrl=e.data.code,this.captchaId=e.data.id)})},switchLoginType(e){this.loginType=e,this.resetForm()},resetForm(){this.form.code="",this.form.password="",this.form.captcha="",this.$refs.loginForm.resetValidation(),this.refreshCaptcha()},handleGetCode(){this.form.phone?this.form.captcha?this.post({mobile:this.form.phone,captchaCode:this.form.captcha,captchaCodeId:this.captchaId},"/api/uservice/user/getMobileCodeForLogin").then(e=>{if(console.log(e),1==e.code){this.codeDisabled=!0,this.smsCodeId=e.data.id,this.codeText=`重新发送(${this.countdown}s)`;const t=setInterval(()=>{this.countdown--,this.codeText=`重新发送(${this.countdown}s)`,this.countdown<=0&&(clearInterval(t),this.codeText="获取验证码",this.codeDisabled=!1,this.countdown=60)},1e3)}}):this.$message.warning("请先输入图形验证码"):this.$message.warning("请先输入手机号码")},handleLogin(){this.$refs.loginForm.validate(e=>{e&&(this.submitting=!0,this.post({mobile:this.form.phone,smsCodeId:this.smsCodeId,smsCode:this.form.code,fromSource:"PC"},"/api/uservice/user/loginByMobileCode").then(e=>{this.submitting=!1,1==e.code&&(this.$message.success("登录成功!"),this.rememberPhone?localStorage.setItem("rememberedPhone",this.form.phone):localStorage.removeItem("rememberedPhone"),this.$store.commit("USER_LOGIN",{userInfo:e.data,token:e.data.token}),this.$router.push("/"))}),setTimeout(()=>{},1500))})},goToRegister(){this.$router.push("/Register")}}}),i=a,c=s(1656),l=(0,c.A)(i,o,r,!1,null,"0c4c6f6a",null),n=l.exports}}]);
//# sourceMappingURL=900.6b17b6f1.js.map

1
dist/js/900.6b17b6f1.js.map

File diff suppressed because one or more lines are too long

2
dist/js/926.d303aa93.js

File diff suppressed because one or more lines are too long

1
dist/js/926.d303aa93.js.map

File diff suppressed because one or more lines are too long

2
dist/js/955.1d798592.js

File diff suppressed because one or more lines are too long

1
dist/js/955.1d798592.js.map

File diff suppressed because one or more lines are too long

2
dist/js/app.523c1b3b.js

File diff suppressed because one or more lines are too long

1
dist/js/app.523c1b3b.js.map

File diff suppressed because one or more lines are too long

2
dist/js/app.a3998a8a.js

File diff suppressed because one or more lines are too long

1
dist/js/app.a3998a8a.js.map

File diff suppressed because one or more lines are too long

4
dist/js/chunk-vendors.88c8f662.js → dist/js/chunk-vendors.cab40109.js

File diff suppressed because one or more lines are too long

2
dist/js/chunk-vendors.88c8f662.js.map → dist/js/chunk-vendors.cab40109.js.map

File diff suppressed because one or more lines are too long

40
src/views/Order/Index.vue

@ -318,6 +318,7 @@ export default {
}, },
// //
formatItems(items) { formatItems(items) {
console.log(items, 13213);
return items.map((item) => ({ return items.map((item) => ({
id: item.sku.id, id: item.sku.id,
productId: item.product.id, productId: item.product.id,
@ -328,6 +329,7 @@ export default {
quantity: item.quantity, quantity: item.quantity,
freight: "0.00", // freight: "0.00", //
deliveryType: "邮寄", deliveryType: "邮寄",
type: item.product.type,
// //
// subtotal: ((item.sku.price / 100) * item.quantity).toFixed(2), // subtotal: ((item.sku.price / 100) * item.quantity).toFixed(2),
@ -401,7 +403,7 @@ export default {
let total = 0; let total = 0;
this.orderGroups.forEach((group) => { this.orderGroups.forEach((group) => {
group.items.forEach((item) => { group.items.forEach((item) => {
console.log(item) console.log(item);
total += parseFloat(item.freight); total += parseFloat(item.freight);
}); });
}); });
@ -421,10 +423,12 @@ export default {
this.totalGoodsCount = totalCount; this.totalGoodsCount = totalCount;
this.totalGoodsAmount = totalAmount.toFixed(2); this.totalGoodsAmount = totalAmount.toFixed(2);
this.totalPayAmount = totalAmount.toFixed(2);
// 使 // 使
this.totalPayAmount = ( // this.totalPayAmount = (
totalAmount + parseFloat(this.totalFreight) // totalAmount + parseFloat(this.totalFreight)
).toFixed(2); // ).toFixed(2);
}, },
// //
handleSaveAddress(formData) { handleSaveAddress(formData) {
@ -477,9 +481,33 @@ export default {
this.$message.warning("请先选择收货地址"); this.$message.warning("请先选择收货地址");
return; return;
} }
let goods = [];
this.orderGroups.forEach((group, groupIndex) => {
group.items.forEach((item, itemIndex) => {
console.log(item);
goods.push({
type: item.type,
product_id: item.productId,
sku_id: item.id,
product_num: item.quantity,
post: this.selectedAddress.id,
remark: group.remark || "",
});
});
});
console.log(goods);
this.post(
{
data: JSON.stringify({ product_list: goods }),
},
"/api/order/create"
).then((res) => {
if (res.code == 1) {
this.$message.success("订单提交成功!"); this.$message.success("订单提交成功!");
// this.$router.push("/User/OrderList");
// this.$router.push('/order/detail'); }
});
}, },
}, },
}; };

235
src/views/Order/OrderDetail.vue

@ -3,91 +3,156 @@
<!-- 订单状态时间线 --> <!-- 订单状态时间线 -->
<div class="normal-margin-bottom"> <div class="normal-margin-bottom">
<el-breadcrumb separator-class="el-icon-arrow-right"> <el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/User/UserCenter' }">个人中心</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/User/UserCenter' }"
<el-breadcrumb-item :to="{ path: '/User/OrderList' }">我的订单</el-breadcrumb-item> >个人中心</el-breadcrumb-item
>
<el-breadcrumb-item :to="{ path: '/User/OrderList' }"
>我的订单</el-breadcrumb-item
>
<el-breadcrumb-item> 订单详情</el-breadcrumb-item> <el-breadcrumb-item> 订单详情</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</div> </div>
<div class="common-card normal-margin-bottom" style="padding: 20px 0;display: flex;"> <div
class="common-card normal-margin-bottom"
style="padding: 20px 0; display: flex"
>
<div class="order-status"> <div class="order-status">
<div class="order-no">订单号: 209907091214560078 <el-button style="color: #999;" type="text" icon="el-icon-document-copy"></el-button></div> <div class="order-no">
订单号: 209907091214560078
<el-button
style="color: #999"
type="text"
icon="el-icon-document-copy"
></el-button>
</div>
<div class="status-title"> <div class="status-title">
<i class="el-icon-time" style="color: #ff9800;font-size: 32px;"></i> <i class="el-icon-time" style="color: #ff9800; font-size: 32px"></i>
<span style="height: 24px;line-height: 24px;padding-left: 5px;">订单状态: 待付款</span> <span style="height: 24px; line-height: 24px; padding-left: 5px"
>订单状态: {{ info.state_text }}</span
>
</div> </div>
<el-button type="primary" size="medium">在线付款</el-button> <el-button type="primary" size="medium">在线付款</el-button>
<el-button type="text" size="small" style="padding: 0;">打印订单</el-button> <el-button type="text" size="small" style="padding: 0"
>打印订单</el-button
>
</div> </div>
<div class="order-step"> <div class="order-step">
<el-steps :active="2" align-center style="width: 100%;"> <el-steps :active="2" align-center style="width: 100%">
<el-step v-for="(item, i) in activities" :key="i"> <el-step v-for="(item, i) in activities" :key="i">
<div class="process-title" slot="title">{{ item.status }}</div> <div class="process-title" slot="title">{{ item.remark }}</div>
<div slot="icon"> <div slot="icon">
<span v-if="i >= 2">{{ i + 1 }}</span> <span v-if="i >= 2">{{ i + 1 }}</span>
<i v-else style="color: #fff;" class="el-icon-check"></i> <i v-else style="color: #fff" class="el-icon-check"></i>
</div>
<div class="process-description" slot="description">
{{ item.create_time }}
</div> </div>
<div class="process-description" slot="description">{{ item.timestamp }}</div>
</el-step> </el-step>
</el-steps> </el-steps>
</div> </div>
</div> </div>
<!-- 订单信息卡片 --> <!-- 订单信息卡片 -->
<div class="common-card normal-margin-bottom order-info-card" style="display: flex;padding: 20px 0;"> <div
class="common-card normal-margin-bottom order-info-card"
style="display: flex; padding: 20px 0"
>
<el-descriptions title="订单信息" :column="1"> <el-descriptions title="订单信息" :column="1">
<el-descriptions-item label="订单号">{{ orderInfo.orderNumber }}</el-descriptions-item> <el-descriptions-item label="订单号">{{
<el-descriptions-item label="订单状态">{{ orderInfo.status }}</el-descriptions-item> orderInfo.orderNumber
<el-descriptions-item label="下单时间">{{ orderInfo.orderTime }}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="订单状态">{{
orderInfo.status
}}</el-descriptions-item>
<el-descriptions-item label="下单时间">{{
orderInfo.orderTime
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions title="配送信息" :column="1"> <el-descriptions title="配送信息" :column="1">
<el-descriptions-item label="收货人">{{ deliveryInfo.receiver }}</el-descriptions-item> <el-descriptions-item label="收货人">{{
<el-descriptions-item label="地址">{{ deliveryInfo.address }}</el-descriptions-item> deliveryInfo.receiver
<el-descriptions-item label="手机号码">{{ deliveryInfo.phone }}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="配送方式">{{ deliveryInfo.deliveryMethod }}</el-descriptions-item> <el-descriptions-item label="地址">{{
<el-descriptions-item label="期望送达时间">{{ deliveryInfo.expectedDeliveryTime }}</el-descriptions-item> deliveryInfo.address
}}</el-descriptions-item>
<el-descriptions-item label="手机号码">{{
deliveryInfo.phone
}}</el-descriptions-item>
<el-descriptions-item label="配送方式">{{
deliveryInfo.deliveryMethod
}}</el-descriptions-item>
<el-descriptions-item label="期望送达时间">{{
deliveryInfo.expectedDeliveryTime
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions title="支付信息" :column="1" style="border: none;"> <el-descriptions title="支付信息" :column="1" style="border: none">
<el-descriptions-item label="支付方式">{{ paymentInfo.paymentMethod }}</el-descriptions-item> <el-descriptions-item label="支付方式">{{
<el-descriptions-item label="支付状态">{{ paymentInfo.paymentStatus }}</el-descriptions-item> paymentInfo.paymentMethod
<el-descriptions-item label="支付时间">{{ paymentInfo.paymentTime }}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="支付状态">{{
paymentInfo.paymentStatus
}}</el-descriptions-item>
<el-descriptions-item label="支付时间">{{
paymentInfo.paymentTime
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
<!-- 商品列表 --> <!-- 商品列表 -->
<el-table :data="productList" style="width: 100%"> <el-table :data="productList" style="width: 100%">
<el-table-column prop="name" label="商品名称" align="center"> <el-table-column prop="name" label="商品名称" align="center">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div style="display: flex;align-items: center;"> <div style="display: flex; align-items: center">
<img :src="row.image" class="product-image" :alt="row.name" /> <img :src="row.image" class="product-image" :alt="row.name" />
<div>{{ row.name }}</div> <div>{{ row.name }}</div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="spec" label="规格" align="center"></el-table-column> <el-table-column
<el-table-column prop="price" label="单价(元)" align="center" width="200"></el-table-column> prop="spec"
<el-table-column prop="quantity" label="数量" align="center" width="100"></el-table-column> label="规格"
<el-table-column prop="subtotal" label="小计(元)" align="center" width="200"> align="center"
></el-table-column>
<el-table-column
prop="price"
label="单价(元)"
align="center"
width="200"
></el-table-column>
<el-table-column
prop="quantity"
label="数量"
align="center"
width="100"
></el-table-column>
<el-table-column
prop="subtotal"
label="小计(元)"
align="center"
width="200"
>
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div style="color: #ff1111;">{{ row.subtotal }}</div> <div style="color: #ff1111">{{ row.subtotal }}</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 订单总价 --> <!-- 订单总价 -->
<div class="common-card normal-margin-bottom total-card"> <div class="common-card normal-margin-bottom total-card">
<el-descriptions :column="1"> <el-descriptions :column="1">
<el-descriptions-item label="商品总价">{{ totalPrice.productTotal }}</el-descriptions-item> <el-descriptions-item label="商品总价"
<el-descriptions-item label="运费">{{ totalPrice.shippingFee }}</el-descriptions-item> >{{ totalPrice.productTotal }}</el-descriptions-item
>
<el-descriptions-item label="运费"
>{{ totalPrice.shippingFee }}</el-descriptions-item
>
<el-descriptions-item label="实付款"> <el-descriptions-item label="实付款">
<span style="font-size: 16px;font-weight: bold;color: #ff1111;">{{ totalPrice.actualPayment }}</span> <span style="font-size: 16px; font-weight: bold; color: #ff1111"
>{{ totalPrice.actualPayment }}</span
>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
@ -96,52 +161,81 @@
<script> <script>
export default { export default {
name: 'OrderDetail', name: "OrderDetail",
data() { data() {
return { return {
activities: [ info: {},
{ status: '提交订单', timestamp: '2025-08-01 15:30:00' }, activities: [],
{ status: '支付成功', timestamp: '2025-08-01 15:35:00' },
{ status: '商家接单', timestamp: '2025-08-01 15:40:00' },
{ status: '商品出库', timestamp: '2025-08-01 16:00:00' },
{ status: '配送中', timestamp: '2025-08-01 16:30:00' },
{ status: '已完成', timestamp: '2025-08-01 17:00:00' }
],
orderInfo: { orderInfo: {
orderNumber: '20250801123456', orderNumber: "20250801123456",
status: '已完成', status: "已完成",
orderTime: '2025-08-01 15:30:00' orderTime: "2025-08-01 15:30:00",
}, },
deliveryInfo: { deliveryInfo: {
receiver: '张三', receiver: "张三",
address: '北京市海淀区xxx街道xxx小区', address: "北京市海淀区xxx街道xxx小区",
phone: '13800138000', phone: "13800138000",
deliveryMethod: '快递', deliveryMethod: "快递",
expectedDeliveryTime: '2025-08-02' expectedDeliveryTime: "2025-08-02",
}, },
paymentInfo: { paymentInfo: {
paymentMethod: '支付宝', paymentMethod: "支付宝",
paymentStatus: '已支付', paymentStatus: "已支付",
paymentTime: '2025-08-01 15:35:00' paymentTime: "2025-08-01 15:35:00",
}, },
productList: [ productList: [
{ name: '商品1', spec: '规格1', price: 100, quantity: 1, subtotal: 100,image: 'https://picsum.photos/200/200?random=1', }, {
{ name: '商品2', spec: '规格2', price: 200, quantity: 2, subtotal: 400,image: 'https://picsum.photos/200/200?random=1', } name: "商品1",
spec: "规格1",
price: 100,
quantity: 1,
subtotal: 100,
image: "https://picsum.photos/200/200?random=1",
},
{
name: "商品2",
spec: "规格2",
price: 200,
quantity: 2,
subtotal: 400,
image: "https://picsum.photos/200/200?random=1",
},
], ],
totalPrice: { totalPrice: {
productTotal: 500, productTotal: 500,
shippingFee: 0, shippingFee: 0,
actualPayment: 500 actualPayment: 500,
} },
}; };
}, },
computed: { computed: {},
mounted() {
this.getDetail();
}, },
methods: { methods: {
getDetail() {
//
this.post(
{
order_id: this.$route.query.id,
},
"/api/order/query"
).then((res) => {
this.info = res.data;
});
} //
} this.post(
{
order_id: this.$route.query.id,
},
"/api/order/refund_detail"
).then((res) => {
this.activities = res.data.list;
});
},
},
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -154,7 +248,7 @@ export default {
width: 100%; width: 100%;
background-color: white; background-color: white;
padding: 20px; padding: 20px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
} }
.order-status { .order-status {
border-right: 1px solid #eee; border-right: 1px solid #eee;
@ -189,7 +283,6 @@ export default {
width: 120px; width: 120px;
display: block; display: block;
margin: 0 auto; margin: 0 auto;
} }
} }
.order-step { .order-step {
@ -203,14 +296,14 @@ export default {
width: 30px; width: 30px;
height: 30px; height: 30px;
border-radius: 50%; border-radius: 50%;
background: #C0C4CC; background: #c0c4cc;
color: white; color: white;
} }
::v-deep .el-step__line { ::v-deep .el-step__line {
top: 13px; top: 13px;
} }
::v-deep .el-step__line-inner { ::v-deep .el-step__line-inner {
border-color: #C0C4CC; border-color: #c0c4cc;
} }
.process-title { .process-title {
color: #666; color: #666;
@ -224,7 +317,7 @@ export default {
margin-top: 45px; margin-top: 45px;
} }
::v-deep .is-finish .el-step__icon { ::v-deep .is-finish .el-step__icon {
background: #67C23A; background: #67c23a;
} }
} }

207
src/views/User/OrderList.vue

@ -1,6 +1,5 @@
<template> <template>
<div class="bg"> <div class="bg">
<el-tabs v-model="activeTab"> <el-tabs v-model="activeTab">
<el-tab-pane label="所有订单" name="all"></el-tab-pane> <el-tab-pane label="所有订单" name="all"></el-tab-pane>
<el-tab-pane label="待付款" name="pendingPayment"></el-tab-pane> <el-tab-pane label="待付款" name="pendingPayment"></el-tab-pane>
@ -12,29 +11,64 @@
<div class="filter-bar"> <div class="filter-bar">
<el-form :inline="true" :model="filterForm" size="small"> <el-form :inline="true" :model="filterForm" size="small">
<el-form-item label="商品名称"> <el-form-item label="商品名称">
<el-input v-model="filterForm.keywords" placeholder="请输入商品名称"></el-input> <el-input
v-model="filterForm.keywords"
placeholder="请输入商品名称"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="订单编号"> <el-form-item label="订单编号">
<el-input v-model="filterForm.order_id" placeholder="请输入订单编号"></el-input> <el-input
v-model="filterForm.order_id"
placeholder="请输入订单编号"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="下单时间"> <el-form-item label="下单时间">
<el-date-picker v-model="filterForm.createTime" type="daterange" range-separator="" start-placeholder="开始日期" <el-date-picker
end-placeholder="结束日期" value-format="yyyy-MM-dd"></el-date-picker> v-model="filterForm.createTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="商家名称"> <el-form-item label="商家名称">
<el-input v-model="filterForm.merchantName" placeholder="请输入商家名称"></el-input> <el-input
v-model="filterForm.merchantName"
placeholder="请输入商家名称"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="交易状态"> <el-form-item label="交易状态">
<el-select v-model="filterForm.tradeStatus" placeholder="请选择" style="width: 200px;"> <el-select
<el-option v-for="(item,i) in typeList" :key="i" :label="item.name" :value="item.id"></el-option> v-model="filterForm.tradeStatus"
placeholder="请选择"
style="width: 200px"
>
<el-option
v-for="(item, i) in typeList"
:key="i"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="完成时间"> <el-form-item label="完成时间">
<el-date-picker v-model="filterForm.finishTime" type="daterange" range-separator="" start-placeholder="开始日期" <el-date-picker
end-placeholder="结束日期" value-format="yyyy-MM-dd"></el-date-picker> v-model="filterForm.finishTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button style="background:#6a8a27;border: none;" type="primary" @click="search">搜索</el-button> <el-button
style="background: #6a8a27; border: none"
type="primary"
@click="search"
>搜索</el-button
>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="reset">重置</el-button> <el-button @click="reset">重置</el-button>
@ -43,7 +77,16 @@
</div> </div>
<div> <div>
<div class="order-products" style="padding:0 20px;background: #f8f9fa; border-top: 1px solid #eee; border-bottom: 1px solid #eee;margin-bottom: 20px;"> <div
class="order-products"
style="
padding: 0 20px;
background: #f8f9fa;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
margin-bottom: 20px;
"
>
<div class="product-item"> <div class="product-item">
<div class="product-details"> <div class="product-details">
<div class="product-name">商品信息</div> <div class="product-name">商品信息</div>
@ -62,26 +105,38 @@
<div class="order-card" v-for="order in orders" :key="order.id"> <div class="order-card" v-for="order in orders" :key="order.id">
<!-- 订单头部 - 包含商家信息 --> <!-- 订单头部 - 包含商家信息 -->
<div class="order-header flex-between"> <div class="order-header flex-between">
<div style="display: flex;"> <div style="display: flex">
<div>订单号: {{ order.order_id }}</div> <div>订单号: {{ order.order_id }}</div>
<div style="padding-left: 60px;">下单时间{{ order.create_time }}</div> <div style="padding-left: 60px">
下单时间{{ order.create_time }}
</div>
</div> </div>
<div class="product-status"> <div class="product-status">
<el-tag :type="getStatusTagType(order.state)" size="small">{{ order.state_text }}</el-tag> <el-tag :type="getStatusTagType(order.state)" size="small">{{
order.state_text
}}</el-tag>
</div> </div>
</div> </div>
<!-- 订单商品列表 --> <!-- 订单商品列表 -->
<div class="order-products"> <div class="order-products">
<div class="product-item" v-for="product in order.order_product_list" :key="product.id"> <div
<img :src="product.product_img" class="product-image" > class="product-item"
v-for="product in order.order_product_list"
:key="product.id"
>
<img :src="product.product_img" class="product-image" />
<div class="product-details"> <div class="product-details">
<div class="product-name">{{ product.product_title }}</div> <div class="product-name">{{ product.product_title }}</div>
<div class="product-spec">{{ product.sku_name }}</div> <div class="product-spec">{{ product.sku_name }}</div>
</div> </div>
<div class="product-price">¥{{ (product.product_price/100).toFixed(2) }}</div> <div class="product-price">
¥{{ (product.product_price / 100).toFixed(2) }}
</div>
<div class="product-quantity">x{{ product.product_num }}</div> <div class="product-quantity">x{{ product.product_num }}</div>
<div class="product-total">¥{{ (product.paid_money/100).toFixed(2) }}</div> <div class="product-total">
¥{{ (product.paid_money / 100).toFixed(2) }}
</div>
<div class="product-actions"> <div class="product-actions">
<el-button type="text" size="mini"> 商品详情</el-button> <el-button type="text" size="mini"> 商品详情</el-button>
@ -93,7 +148,9 @@
<div class="order-footer"> <div class="order-footer">
<div class="order-summary"> <div class="order-summary">
<div class="order-amount"> <div class="order-amount">
合计: <strong>¥{{ (order.paid_money/100).toFixed(2) }}</strong> (含运费 ¥{{ (order.total_post_fee/100).toFixed(2) }}) 合计:
<strong>¥{{ (order.paid_money / 100).toFixed(2) }}</strong>
(含运费 ¥{{ (order.total_post_fee / 100).toFixed(2) }})
</div> </div>
<!-- <div class="order-tips"> <!-- <div class="order-tips">
{{ order.products.length }}件商品 {{ order.products.length }}件商品
@ -103,40 +160,44 @@
<el-button <el-button
type="text" type="text"
size="mini" size="mini"
@click="viewOrderDetail(order.id)" @click="viewOrderDetail(order.order_id)"
>订单详情</el-button> >订单详情</el-button
>
<el-button <el-button
v-if="order.status === 'pendingPayment'" v-if="order.status === 'pendingPayment'"
type="primary" type="primary"
size="mini" size="mini"
@click="payOrder(order.id)" @click="payOrder(order.id)"
>去付款</el-button> >去付款</el-button
>
<el-button <el-button
v-if="order.status === 'pendingDelivery'" v-if="order.status === 'pendingDelivery'"
type="text" type="text"
size="mini" size="mini"
@click="remindDelivery(order.id)" @click="remindDelivery(order.id)"
>提醒发货</el-button> >提醒发货</el-button
>
<el-button <el-button
v-if="order.status === 'delivering'" v-if="order.status === 'delivering'"
type="text" type="text"
size="mini" size="mini"
@click="checkLogistics(order.id)" @click="checkLogistics(order.id)"
>查看物流</el-button> >查看物流</el-button
>
<el-button <el-button
v-if="order.status === 'completed' && !order.isReviewed" v-if="order.status === 'completed' && !order.isReviewed"
type="text" type="text"
size="mini" size="mini"
@click="gotoReview(order.id)" @click="gotoReview(order.id)"
>去评价</el-button> >去评价</el-button
>
</div> </div>
</div> </div>
</div> </div>
<el-empty description="暂无订单" v-if="orders.length <= 0"></el-empty> <el-empty description="暂无订单" v-if="orders.length <= 0"></el-empty>
<!-- 分页 --> <!-- 分页 -->
<div style="text-align: right; margin-top: 20px;"> <div style="text-align: right; margin-top: 20px">
<el-pagination <el-pagination
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
@ -153,10 +214,10 @@
<script> <script>
export default { export default {
name: 'OrderList', name: "OrderList",
data() { data() {
return { return {
activeTab: 'ALL', activeTab: "ALL",
filterForm: { filterForm: {
keywords: "", keywords: "",
@ -169,44 +230,41 @@ export default {
total: 1, total: 1,
}, },
typeList: [ typeList: [
{ name: '全部', id: 'ALL' }, { name: "全部", id: "ALL" },
{ name: '待付款', id: 'WAIT_PAYMENT' }, { name: "待付款", id: "WAIT_PAYMENT" },
{ name: '待发货', id: 'WAIT_POST' }, { name: "待发货", id: "WAIT_POST" },
{ name: '待使用/出行', id: 'WAIT_USE' }, { name: "待使用/出行", id: "WAIT_USE" },
{ name: '待收货', id: 'WAIT_DELIVERY' }, { name: "待收货", id: "WAIT_DELIVERY" },
{ name: '退款/售后', id: 'NEED_REFUND' } { name: "退款/售后", id: "NEED_REFUND" },
], ],
// - // -
orders: [] orders: [],
} };
},
computed: {
}, },
computed: {},
mounted() { mounted() {
this.getList(); this.getList();
}, },
methods: { methods: {
getList() { getList() {
this.post({ this.post(
{
...this.filterForm, ...this.filterForm,
offset:this.filterForm.currentPage*this.filterForm.limit, offset: (this.filterForm.currentPage - 1) * this.filterForm.limit,
customBaseURL: "/api", customBaseURL: "/api",
},'/api/order/list').then(res=>{ },
this.orders = res.data.list "/api/order/list"
this.filterForm.total = res.data.total ).then((res) => {
}) this.orders = res.data.list;
this.filterForm.total = res.data.total;
});
}, },
// //
search() { search() {},
},
// //
reset() { reset() {},
},
// //
handleSizeChange(val) { handleSizeChange(val) {
@ -224,11 +282,11 @@ export default {
// //
getStatusText(status) { getStatusText(status) {
const statusMap = { const statusMap = {
pendingPayment: '待付款', pendingPayment: "待付款",
pendingDelivery: '待发货', pendingDelivery: "待发货",
delivering: '配送中', delivering: "配送中",
completed: '已完成', completed: "已完成",
cancelled: '已取消' cancelled: "已取消",
}; };
return statusMap[status] || status; return statusMap[status] || status;
}, },
@ -236,20 +294,20 @@ export default {
// //
getStatusTagType(status) { getStatusTagType(status) {
const typeMap = { const typeMap = {
pendingPayment: 'warning', pendingPayment: "warning",
pendingDelivery: 'info', pendingDelivery: "info",
delivering: 'primary', delivering: "primary",
completed: 'success', completed: "success",
cancelled: 'danger' cancelled: "danger",
}; };
return typeMap[status] || 'default'; return typeMap[status] || "default";
}, },
// //
payOrder(orderId) { payOrder(orderId) {
this.$message({ this.$message({
message: `订单 ${orderId} 去付款`, message: `订单 ${orderId} 去付款`,
type: 'info' type: "info",
}); });
}, },
@ -257,7 +315,7 @@ export default {
remindDelivery(orderId) { remindDelivery(orderId) {
this.$message({ this.$message({
message: `已提醒订单 ${orderId} 发货`, message: `已提醒订单 ${orderId} 发货`,
type: 'success' type: "success",
}); });
}, },
@ -265,7 +323,7 @@ export default {
checkLogistics(orderId) { checkLogistics(orderId) {
this.$message({ this.$message({
message: `查看订单 ${orderId} 物流`, message: `查看订单 ${orderId} 物流`,
type: 'info' type: "info",
}); });
}, },
@ -273,18 +331,18 @@ export default {
gotoReview(orderId) { gotoReview(orderId) {
this.$message({ this.$message({
message: `去评价订单 ${orderId}`, message: `去评价订单 ${orderId}`,
type: 'info' type: "info",
}); });
}, },
// //
viewOrderDetail(orderId) { viewOrderDetail(orderId) {
this.$router.push({ this.$router.push({
name: 'OrderDetail', path: "/OrderDetail?id=" + orderId,
}); });
} },
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -299,7 +357,7 @@ export default {
color: #6a8a27; color: #6a8a27;
} }
::v-deep .el-tabs__active-bar { ::v-deep .el-tabs__active-bar {
background-color: #6a8a27 background-color: #6a8a27;
} }
::v-deep .el-tabs__item:hover { ::v-deep .el-tabs__item:hover {
color: #6a8a27; color: #6a8a27;
@ -309,7 +367,6 @@ export default {
margin-bottom: 20px; margin-bottom: 20px;
} }
/* 订单卡片样式 */ /* 订单卡片样式 */
.order-card { .order-card {
border: 1px solid #eee; border: 1px solid #eee;
@ -329,8 +386,6 @@ export default {
font-size: 14px; font-size: 14px;
} }
/* 订单商品列表 */ /* 订单商品列表 */
.order-products { .order-products {
padding: 10px 20px; padding: 10px 20px;

263
src/views/User/ShoppingCart.vue

@ -1,12 +1,21 @@
<template> <template>
<div class="bg"> <div class="bg">
<div> <div>
<div class="order-products" style="padding:0 20px;background: #f8f9fa; border-top: 1px solid #eee; border-bottom: 1px solid #eee;margin-bottom: 20px;"> <div
class="order-products"
style="
padding: 0 20px;
background: #f8f9fa;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
margin-bottom: 20px;
"
>
<div class="product-item"> <div class="product-item">
<div class="product-select"> <div class="product-select">
<el-checkbox v-model="selectAll" @change="handleSelectAll">全选</el-checkbox> <el-checkbox v-model="selectAll" @change="handleSelectAll"
>全选</el-checkbox
>
</div> </div>
<div class="product-details"> <div class="product-details">
<div class="product-name">商品</div> <div class="product-name">商品</div>
@ -16,7 +25,6 @@
<div class="product-box">收货方式</div> <div class="product-box">收货方式</div>
<div class="product-box">小计()</div> <div class="product-box">小计()</div>
<div class="product-box">操作</div> <div class="product-box">操作</div>
</div> </div>
</div> </div>
@ -25,7 +33,11 @@
<!-- 订单头部 - 包含商家信息 --> <!-- 订单头部 - 包含商家信息 -->
<div class="order-header flex-between"> <div class="order-header flex-between">
<div class="product-select"> <div class="product-select">
<el-checkbox v-model="shop.selected" @change="handleSelectShop(shop)"><span style="opacity: 0;">全选</span></el-checkbox> <el-checkbox
v-model="shop.selected"
@change="handleSelectShop(shop)"
><span style="opacity: 0">全选</span></el-checkbox
>
</div> </div>
<div class="product-details"> <div class="product-details">
<div class="product-name">供应商名称{{ shop.shop_name }}</div> <div class="product-name">供应商名称{{ shop.shop_name }}</div>
@ -36,33 +48,43 @@
<div class="order-products"> <div class="order-products">
<div class="product-item" v-for="goods in shop.goods" :key="goods.id"> <div class="product-item" v-for="goods in shop.goods" :key="goods.id">
<div class="product-select"> <div class="product-select">
<el-checkbox v-model="goods.selected" @change="handleSelect"><span style="opacity: 0;">全选</span></el-checkbox> <el-checkbox v-model="goods.selected" @change="handleSelect"
><span style="opacity: 0">全选</span></el-checkbox
>
</div> </div>
<div class="product-details flex-between"> <div class="product-details flex-between">
<img :src="goods.product.headimg" class="product-image"> <img :src="goods.product.headimg" class="product-image" />
<div class="product-details"> <div class="product-details">
<div class="product-name">{{ goods.product.title }}</div> <div class="product-name">{{ goods.product.title }}</div>
<div class="product-spec">{{ goods.sku.sku_name }}</div> <div class="product-spec">{{ goods.sku.sku_name }}</div>
</div> </div>
</div> </div>
<div class="product-box ">¥{{ (goods.sku.price/100).toFixed(2) }}</div> <div class="product-box">
¥{{ (goods.sku.price / 100).toFixed(2) }}
</div>
<div class="product-quantity"> <div class="product-quantity">
<el-input-number size="small" v-model="goods.num" @change="handleNumChange(goods)" :min="1" :step="1"/> <el-input-number
size="small"
v-model="goods.num"
@change="handleNumChange(goods)"
:min="1"
:step="1"
/>
</div> </div>
<div class="product-box">邮寄</div> <div class="product-box">邮寄</div>
<div class="product-box product-price">¥{{ (goods.num * goods.sku.price/100).toFixed(2) }}</div> <div class="product-box product-price">
¥{{ ((goods.num * goods.sku.price) / 100).toFixed(2) }}
</div>
<div class="product-box"> <div class="product-box">
<el-button type="text" size="mini" @click="delItem(goods)">删除</el-button> <el-button type="text" size="mini" @click="delItem(goods)"
>删除</el-button
>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<el-empty description="暂无数据" v-if="list.length <= 0"></el-empty> <el-empty description="暂无数据" v-if="list.length <= 0"></el-empty>
<!-- 分页 --> <!-- 分页 -->
<!-- <div style="text-align: right; margin-top: 20px;"> <!-- <div style="text-align: right; margin-top: 20px;">
<el-pagination <el-pagination
@ -76,16 +98,28 @@
></el-pagination> ></el-pagination>
</div> --> </div> -->
<div class="cart-footer"> <div class="cart-footer">
<el-button :disabled="selectedRows.length === 0" type="text" size="mini" @click="deleteSelected"> <el-button
:disabled="selectedRows.length === 0"
type="text"
size="mini"
@click="deleteSelected"
>
删除选中商品 删除选中商品
</el-button> </el-button>
<div class="flex-between"> <div class="flex-between">
<div class="selected-info"> <div class="selected-info">
已选商品 <span class="import-text">{{ selectedRows.length }}</span> 已选商品
   <span class="import-text">{{ selectedRows.length }}</span>   
总价: <span class="import-text total-price">{{ totalPrice }}</span> (不含运费) 总价:
<span class="import-text total-price">{{ totalPrice }}</span>
(不含运费)
</div> </div>
<el-button type="primary" :disabled="selectedRows.length === 0">去结算</el-button> <el-button
type="primary"
:disabled="selectedRows.length === 0"
@click="handleCheckout"
>去结算</el-button
>
</div> </div>
</div> </div>
</div> </div>
@ -93,137 +127,167 @@
</template> </template>
<script> <script>
import { mapActions } from "vuex";
export default { export default {
name: 'OrderList', name: "OrderList",
data() { data() {
return { return {
activeTab: 'all', activeTab: "all",
currentPage: 1, currentPage: 1,
pageSize: 10, pageSize: 10,
// - // -
list: [], list: [],
selectAll: false, selectAll: false,
} };
}, },
mounted() { mounted() {
this.getList() this.getList();
}, },
computed: { computed: {
selectedRows() { selectedRows() {
let rows = [] let rows = [];
this.list.forEach(v=>{ this.list.forEach((v) => {
v.goods.forEach(goods=>{ v.goods.forEach((goods) => {
if (goods.selected) { if (goods.selected) {
rows.push(goods) rows.push(goods);
} }
}) });
}) });
return rows return rows;
}, },
totalPrice() { totalPrice() {
let price = 0 let price = 0;
this.selectedRows.forEach(v=>{ this.selectedRows.forEach((v) => {
price += v.num * v.sku.price/100 price += (v.num * v.sku.price) / 100;
}) });
return price.toFixed(2) return price.toFixed(2);
} },
}, },
methods: { methods: {
...mapActions(["submitOrderData"]),
//
handleCheckout() {
//
console.log(this.selectedRows);
const orderItems = this.selectedRows.map((goods) => ({
product: goods.product,
sku: goods.sku,
quantity: goods.num, // num
}));
//
const supplierGroups = {};
orderItems.forEach((item) => {
const supplier = item.product.supplier_name;
if (!supplierGroups[supplier]) {
supplierGroups[supplier] = [];
}
supplierGroups[supplier].push(item);
});
// Vuex
this.submitOrderData({
from: "cart",
groups: supplierGroups, //
});
this.$router.push("/Order");
},
getList() { getList() {
this.post({customBaseURL:"/api"},"/api/cart/get_list",true).then(res=>{ this.post({ customBaseURL: "/api" }, "/api/cart/get_list", true).then(
let resData = (res.data ||[]) (res) => {
let currentSelectGoodsIds = this.selectedRows.map(v=>v.id) let resData = res.data || [];
resData.forEach(item=>{ let currentSelectGoodsIds = this.selectedRows.map((v) => v.id);
item.selected = false resData.forEach((item) => {
item.goods.forEach(goods=>{ item.selected = false;
goods.selected = currentSelectGoodsIds.includes(goods.id) item.goods.forEach((goods) => {
}) goods.selected = currentSelectGoodsIds.includes(goods.id);
}) });
this.list = resData });
this.judgeSelectAll() this.list = resData;
}) this.judgeSelectAll();
}
);
}, },
handleSelectAll(val) { handleSelectAll(val) {
if (val) { if (val) {
this.list.forEach(t=>{ this.list.forEach((t) => {
t.goods.forEach(v=>{ t.goods.forEach((v) => {
if (v && v.product && v.sku && v.sku.flag == "off") { if (v && v.product && v.sku && v.sku.flag == "off") {
v.selected = false v.selected = false;
} else { } else {
v.selected = true v.selected = true;
} }
}) });
}) });
} else { } else {
this.list.forEach(t=>{ this.cartList.forEach((t) => {
t.selected = false t.selected = false;
t.goods.forEach(v=>{v.selected = false}) });
})
} }
this.judgeSelectAll() this.judgeSelectAll();
}, },
handleSelectShop(shop) { handleSelectShop(shop) {
if (shop.selected) { if (shop.selected) {
shop.goods.forEach(v=>{ shop.goods.forEach((v) => {
if (v && v.product && v.sku && v.sku.flag == "off") { if (v && v.product && v.sku && v.sku.flag == "off") {
v.selected = false v.selected = false;
} else { } else {
v.selected = true v.selected = true;
} }
}) });
} else {
shop.goods.forEach(v=>{v.selected = false})
} }
this.judgeSelectAll() this.judgeSelectAll();
}, },
handleSelect() { handleSelect() {
this.judgeSelectAll() this.judgeSelectAll();
}, },
// //
judgeSelectAll() { judgeSelectAll() {
// this.selectedRows = [] this.list.forEach((v) => {
this.list.forEach(v=>{ if (v.goods.some((x) => x.sku.flag == "on")) {
if (v.goods.some(x=>x.sku.flag=='on')) { if (v.goods.some((x) => x.sku.flag == "on" && !x.selected)) {
if(v.goods.some(x=>x.sku.flag=="on"&&!x.selected) ) {
v.selected = false; v.selected = false;
} else { } else {
v.selected = true; v.selected = true;
} }
} else { } else {
v.selected = false v.selected = false;
} }
}) });
if (this.list.every(v=>v.selected) && this.list.length>0) { if (this.list.every((v) => v.selected) && this.list.length > 0) {
this.selectAll = true this.selectAll = true;
} else { } else {
this.selectAll = false this.selectAll = false;
} }
}, },
// //
handleNumChange(goods) { handleNumChange(goods) {
this.post({id: goods.id, num: goods.num,customBaseURL:"/api"},'/api/cart/update_sku').then(res =>{ this.post(
{ id: goods.id, num: goods.num, customBaseURL: "/api" },
}) "/api/cart/update_sku"
).then((res) => {});
}, },
delItem(item) { delItem(item) {
this.post({id: item.id,customBaseURL:"/api"},'/api/cart/del_sku').then(res =>{ this.post(
this.getList() { id: item.id, customBaseURL: "/api" },
}) "/api/cart/del_sku"
).then((res) => {
this.getList();
});
}, },
deleteSelected() { deleteSelected() {
let ids = this.selectedRows.map(v=>v.id).join(',') let ids = this.selectedRows.map((v) => v.id).join(",");
this.post({ids: ids,customBaseURL:"/api"},'/api/cart/del_skus').then(res =>{ this.post({ ids: ids, customBaseURL: "/api" }, "/api/cart/del_skus").then(
this.getList() (res) => {
}) this.getList();
}
);
}, },
// //
handleSizeChange(val) { handleSizeChange(val) {
this.pageSize = val; this.pageSize = val;
@ -234,18 +298,15 @@ export default {
this.currentPage = val; this.currentPage = val;
}, },
// //
payOrder(orderId) { payOrder(orderId) {
this.$message({ this.$message({
message: `订单 ${orderId} 去付款`, message: `订单 ${orderId} 去付款`,
type: 'info' type: "info",
}); });
}, },
},
};
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -260,15 +321,13 @@ export default {
color: #6a8a27; color: #6a8a27;
} }
::v-deep .el-tabs__active-bar { ::v-deep .el-tabs__active-bar {
background-color: #6a8a27 background-color: #6a8a27;
} }
::v-deep .el-tabs__item:hover { ::v-deep .el-tabs__item:hover {
color: #6a8a27; color: #6a8a27;
} }
} }
/* 订单卡片样式 */ /* 订单卡片样式 */
.order-card { .order-card {
border-radius: 4px; border-radius: 4px;
@ -286,8 +345,6 @@ export default {
font-size: 14px; font-size: 14px;
} }
/* 订单商品列表 */ /* 订单商品列表 */
.order-products { .order-products {
padding: 10px 20px; padding: 10px 20px;
@ -326,8 +383,6 @@ export default {
font-size: 12px; font-size: 12px;
} }
.product-box { .product-box {
width: 100px; width: 100px;
text-align: center; text-align: center;

Loading…
Cancel
Save