Browse Source

打包

master
chenkainan 4 weeks ago
parent
commit
bc198dfeee
  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. 493
      src/views/Order/OrderDetail.vue
  74. 627
      src/views/User/OrderList.vue
  75. 19
      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

493
src/views/Order/OrderDetail.vue

@ -2,92 +2,157 @@
<div class="bg"> <div class="bg">
<!-- 订单状态时间线 --> <!-- 订单状态时间线 -->
<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> 订单详情</el-breadcrumb-item> >
</el-breadcrumb> <el-breadcrumb-item :to="{ path: '/User/OrderList' }"
>我的订单</el-breadcrumb-item
>
<el-breadcrumb-item> 订单详情</el-breadcrumb-item>
</el-breadcrumb>
</div> </div>
<div class="common-card normal-margin-bottom" style="padding: 20px 0;display: flex;"> <div
<div class="order-status"> class="common-card normal-margin-bottom"
<div class="order-no">订单号: 209907091214560078 <el-button style="color: #999;" type="text" icon="el-icon-document-copy"></el-button></div> style="padding: 20px 0; display: flex"
<div class="status-title"> >
<i class="el-icon-time" style="color: #ff9800;font-size: 32px;"></i> <div class="order-status">
<span style="height: 24px;line-height: 24px;padding-left: 5px;">订单状态: 待付款</span> <div class="order-no">
</div> 订单号: 209907091214560078
<el-button
<el-button type="primary" size="medium">在线付款</el-button> style="color: #999"
<el-button type="text" size="small" style="padding: 0;">打印订单</el-button> type="text"
icon="el-icon-document-copy"
></el-button>
</div> </div>
<div class="order-step"> <div class="status-title">
<el-steps :active="2" align-center style="width: 100%;"> <i class="el-icon-time" style="color: #ff9800; font-size: 32px"></i>
<el-step v-for="(item,i) in activities" :key="i"> <span style="height: 24px; line-height: 24px; padding-left: 5px"
<div class="process-title" slot="title">{{ item.status }}</div> >订单状态: {{ info.state_text }}</span
<div slot="icon"> >
<span v-if="i>=2">{{i+1}}</span>
<i v-else style="color: #fff;" class="el-icon-check"></i>
</div>
<div class="process-description" slot="description">{{ item.timestamp }}</div>
</el-step>
</el-steps>
</div> </div>
</div>
<el-button type="primary" size="medium">在线付款</el-button>
<el-button type="text" size="small" style="padding: 0"
>打印订单</el-button
>
</div>
<div class="order-step">
<el-steps :active="2" align-center style="width: 100%">
<el-step v-for="(item, i) in activities" :key="i">
<div class="process-title" slot="title">{{ item.remark }}</div>
<div slot="icon">
<span v-if="i >= 2">{{ i + 1 }}</span>
<i v-else style="color: #fff" class="el-icon-check"></i>
</div>
<div class="process-description" slot="description">
{{ item.create_time }}
</div>
</el-step>
</el-steps>
</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-column prop="name" label="商品名称" align="center">
<template slot-scope="{row}">
<div style="display: flex;align-items: center;">
<img :src="row.image" class="product-image" :alt="row.name"/>
<div>{{ row.name }}</div>
</div>
</template>
</el-table-column>
<el-table-column prop="spec" label="规格" 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}">
<div style="color: #ff1111;">{{ row.subtotal }}</div>
</template>
</el-table-column>
</el-table>
<el-table :data="productList" style="width: 100%">
<el-table-column prop="name" label="商品名称" align="center">
<template slot-scope="{ row }">
<div style="display: flex; align-items: center">
<img :src="row.image" class="product-image" :alt="row.name" />
<div>{{ row.name }}</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="spec"
label="规格"
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 }">
<div style="color: #ff1111">{{ row.subtotal }}</div>
</template>
</el-table-column>
</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,175 +161,203 @@
<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: {
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;
});
}, },
methods: { },
};
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.bg{ .bg {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
font-size: 14px; font-size: 14px;
} }
.common-card{ .common-card {
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;
width: 350px; width: 350px;
height: 220px; height: 220px;
flex-shrink: 0; flex-shrink: 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.order-no{ .order-no {
color: #999; color: #999;
.el-button{
width: fit-content;
margin: 0;
display: inline-block;
padding: 0;
}
}
.status-title {
display: flex;
align-items: center;
font-size: 16px;
font-weight: bold;
}
.status-title i {
font-size: 24px;
}
.el-button { .el-button {
width: 120px; width: fit-content;
display: block; margin: 0;
margin: 0 auto; display: inline-block;
padding: 0;
} }
} }
.order-step{ .status-title {
flex: 1;
width: 1px;
padding: 0 20px;
display: flex; display: flex;
align-items: center; align-items: center;
::v-deep .el-step__icon.is-text{ font-size: 16px;
border: none; font-weight: bold;
width: 30px; }
height: 30px;
border-radius: 50%; .status-title i {
background: #C0C4CC; font-size: 24px;
color: white; }
}
::v-deep .el-step__line{ .el-button {
top: 13px; width: 120px;
} display: block;
::v-deep .el-step__line-inner{ margin: 0 auto;
border-color: #C0C4CC; }
} }
.process-title{ .order-step {
color:#666; flex: 1;
font-weight: bold; width: 1px;
font-size:14px; padding: 0 20px;
margin-top: -70px; display: flex;
} align-items: center;
.process-description{ ::v-deep .el-step__icon.is-text {
color:#666; border: none;
font-size:12px; width: 30px;
margin-top: 45px; height: 30px;
} border-radius: 50%;
::v-deep .is-finish .el-step__icon{ background: #c0c4cc;
background: #67C23A; color: white;
} }
::v-deep .el-step__line {
top: 13px;
}
::v-deep .el-step__line-inner {
border-color: #c0c4cc;
}
.process-title {
color: #666;
font-weight: bold;
font-size: 14px;
margin-top: -70px;
}
.process-description {
color: #666;
font-size: 12px;
margin-top: 45px;
}
::v-deep .is-finish .el-step__icon {
background: #67c23a;
}
} }
.order-info-card{ .order-info-card {
display: flex; display: flex;
::v-deep .el-descriptions{ ::v-deep .el-descriptions {
flex: 1; flex: 1;
flex-shrink: 0; flex-shrink: 0;
border-right: 1px solid rgba(153,153,153, 0.1); border-right: 1px solid rgba(153, 153, 153, 0.1);
padding: 0 20px; padding: 0 20px;
.el-descriptions-item__label{ .el-descriptions-item__label {
width: 90px; width: 90px;
}
} }
}
} }
.product-image { .product-image {
width: 80px; width: 80px;
height: 80px; height: 80px;
object-fit: cover; object-fit: cover;
margin-right: 15px; margin-right: 15px;
border-radius: 4px; border-radius: 4px;
} }
.total-card{ .total-card {
margin-top: 20px; margin-top: 20px;
background: #fafafa; background: #fafafa;
box-shadow: none; box-shadow: none;
::v-deep .el-descriptions__body{ ::v-deep .el-descriptions__body {
background: none; background: none;
text-align: right; text-align: right;
.el-descriptions-item__label{ .el-descriptions-item__label {
width: 90%; width: 90%;
text-align: right; text-align: right;
justify-content: flex-end; justify-content: flex-end;
} }
.el-descriptions-item__content{ .el-descriptions-item__content {
justify-content: flex-end; justify-content: flex-end;
}
} }
}
} }
</style> </style>

627
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,48 +77,69 @@
</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
<div class="product-item" > class="order-products"
<div class="product-details"> style="
<div class="product-name">商品信息</div> padding: 0 20px;
</div> background: #f8f9fa;
<div class="product-price">单价()</div> border-top: 1px solid #eee;
<div class="product-quantity">数量</div> border-bottom: 1px solid #eee;
<div class="product-total">小计()</div> margin-bottom: 20px;
<!-- <div class="product-status"> "
>
<div class="product-item">
<div class="product-details">
<div class="product-name">商品信息</div>
</div>
<div class="product-price">单价()</div>
<div class="product-quantity">数量</div>
<div class="product-total">小计()</div>
<!-- <div class="product-status">
<el-tag :type="getStatusTagType(product.status)" size="small">{{ getStatusText(product.status) }}</el-tag> <el-tag :type="getStatusTagType(product.status)" size="small">{{ getStatusText(product.status) }}</el-tag>
</div> --> </div> -->
<div class="product-actions"></div> <div class="product-actions"></div>
</div>
</div> </div>
</div>
<!-- 订单卡片 - 按商家合并商品 --> <!-- 订单卡片 - 按商家合并商品 -->
<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">
</div> 下单时间{{ order.create_time }}
<div class="product-status">
<el-tag :type="getStatusTagType(order.state)" size="small">{{ order.state_text }}</el-tag>
</div> </div>
</div>
<div class="product-status">
<el-tag :type="getStatusTagType(order.state)" size="small">{{
order.state_text
}}</el-tag>
</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>
</div> </div>
</div> </div>
</div> </div>
@ -93,50 +148,56 @@
<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 }}件商品
</div> --> </div> -->
</div> </div>
<div class="order-actions"> <div class="order-actions">
<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 >
v-if="order.status === 'pendingPayment'" <el-button
type="primary" v-if="order.status === 'pendingPayment'"
type="primary"
size="mini" size="mini"
@click="payOrder(order.id)" @click="payOrder(order.id)"
>去付款</el-button> >去付款</el-button
<el-button >
v-if="order.status === 'pendingDelivery'" <el-button
type="text" v-if="order.status === 'pendingDelivery'"
type="text"
size="mini" size="mini"
@click="remindDelivery(order.id)" @click="remindDelivery(order.id)"
>提醒发货</el-button> >提醒发货</el-button
<el-button >
v-if="order.status === 'delivering'" <el-button
type="text" v-if="order.status === 'delivering'"
type="text"
size="mini" size="mini"
@click="checkLogistics(order.id)" @click="checkLogistics(order.id)"
>查看物流</el-button> >查看物流</el-button
<el-button >
v-if="order.status === 'completed' && !order.isReviewed" <el-button
type="text" v-if="order.status === 'completed' && !order.isReviewed"
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,285 +214,279 @@
<script> <script>
export default { export default {
name: 'OrderList', name: "OrderList",
data () { data() {
return { return {
activeTab: 'ALL', activeTab: "ALL",
filterForm: { filterForm: {
keywords: "", keywords: "",
currentPage: 1, currentPage: 1,
limit: 10, limit: 10,
order_id: "", order_id: "",
createTime: null, createTime: null,
start_date: "", start_date: "",
end_date: "", end_date: "",
total: 1, total: 1,
},
typeList: [
{ name: "全部", id: "ALL" },
{ name: "待付款", id: "WAIT_PAYMENT" },
{ name: "待发货", id: "WAIT_POST" },
{ name: "待使用/出行", id: "WAIT_USE" },
{ name: "待收货", id: "WAIT_DELIVERY" },
{ name: "退款/售后", id: "NEED_REFUND" },
],
// -
orders: [],
};
},
computed: {},
mounted() {
this.getList();
},
methods: {
getList() {
this.post(
{
...this.filterForm,
offset: (this.filterForm.currentPage - 1) * this.filterForm.limit,
customBaseURL: "/api",
}, },
typeList: [ "/api/order/list"
{ name: '全部', id: 'ALL' }, ).then((res) => {
{ name: '待付款', id: 'WAIT_PAYMENT' }, this.orders = res.data.list;
{ name: '待发货', id: 'WAIT_POST' }, this.filterForm.total = res.data.total;
{ name: '待使用/出行', id: 'WAIT_USE' }, });
{ name: '待收货', id: 'WAIT_DELIVERY' },
{ name: '退款/售后', id: 'NEED_REFUND' }
],
// -
orders: []
}
},
computed: {
}, },
mounted() {
this.getList();
},
methods: {
getList() {
this.post({
...this.filterForm,
offset:(this.filterForm.currentPage-1)*this.filterForm.limit,
customBaseURL:"/api",
},'/api/order/list').then(res=>{
this.orders = res.data.list
this.filterForm.total = res.data.total
})
},
// //
search() { search() {},
},
// //
reset() { reset() {},
},
// //
handleSizeChange(val) { handleSizeChange(val) {
this.filterForm.limit = val; this.filterForm.limit = val;
this.filterForm.currentPage = 1; this.filterForm.currentPage = 1;
this.getList(); this.getList();
}, },
// //
handleCurrentChange(val) { handleCurrentChange(val) {
this.filterForm.currentPage = val; this.filterForm.currentPage = val;
this.getList(); this.getList();
}, },
// //
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;
}, },
// //
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",
}); });
}, },
// //
remindDelivery(orderId) { remindDelivery(orderId) {
this.$message({ this.$message({
message: `已提醒订单 ${orderId} 发货`, message: `已提醒订单 ${orderId} 发货`,
type: 'success' type: "success",
}); });
}, },
// //
checkLogistics(orderId) { checkLogistics(orderId) {
this.$message({ this.$message({
message: `查看订单 ${orderId} 物流`, message: `查看订单 ${orderId} 物流`,
type: 'info' type: "info",
}); });
}, },
// //
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>
.bg{ .bg {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
::v-deep .el-button--text { ::v-deep .el-button--text {
color: #6a8a27; color: #6a8a27;
} }
::v-deep .el-tabs__item.is-active{ ::v-deep .el-tabs__item.is-active {
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;
} }
} }
.filter-bar { .filter-bar {
margin-bottom: 20px; margin-bottom: 20px;
} }
/* 订单卡片样式 */
/* 订单卡片样式 */ .order-card {
.order-card { border: 1px solid #eee;
border: 1px solid #eee; border-radius: 4px;
border-radius: 4px; margin-bottom: 20px;
margin-bottom: 20px; overflow: hidden;
overflow: hidden; }
}
/* 订单头部 - 包含商家信息 */
/* 订单头部 - 包含商家信息 */ .order-header {
.order-header { background-color: #f8f9fa;
background-color: #f8f9fa; padding: 12px 20px;
padding: 12px 20px; display: flex;
display: flex; align-items: center;
align-items: center; border-bottom: 1px solid #eee;
border-bottom: 1px solid #eee; color: #666;
color: #666; font-size: 14px;
font-size: 14px; }
}
/* 订单商品列表 */
.order-products {
padding: 10px 20px;
/* 订单商品列表 */ }
.order-products {
padding: 10px 20px; .product-item {
} display: flex;
align-items: center;
.product-item { padding: 15px 0;
display: flex; border-bottom: 1px dashed #eee;
align-items: center; font-size: 14px;
padding: 15px 0; }
border-bottom: 1px dashed #eee;
font-size: 14px; .product-item:last-child {
} border-bottom: none;
}
.product-item:last-child {
border-bottom: none; .product-image {
} width: 80px;
height: 80px;
.product-image { object-fit: cover;
width: 80px; margin-right: 15px;
height: 80px; border-radius: 4px;
object-fit: cover; }
margin-right: 15px;
border-radius: 4px; .product-details {
} flex: 1;
}
.product-details {
flex: 1; .product-name {
} color: #333;
margin-bottom: 5px;
.product-name { }
color: #333;
margin-bottom: 5px; .product-spec {
} color: #999;
font-size: 12px;
.product-spec { }
color: #999;
font-size: 12px; .product-price {
} width: 120px;
text-align: center;
.product-price { color: #333;
width: 120px; }
text-align: center;
color: #333; .product-quantity {
} width: 100px;
text-align: center;
.product-quantity { color: #666;
width: 100px; }
text-align: center;
color: #666; .product-total {
} width: 120px;
text-align: center;
.product-total { color: #333;
width: 120px; font-weight: 500;
text-align: center; }
color: #333;
font-weight: 500; .product-status {
} width: 150px;
text-align: center;
.product-status { }
width: 150px;
text-align: center; .product-actions {
} width: 150px;
text-align: center;
.product-actions { }
width: 150px;
text-align: center; /* 订单底部 - 金额和操作 */
} .order-footer {
background-color: #f8f9fa;
/* 订单底部 - 金额和操作 */ padding: 15px 20px;
.order-footer { display: flex;
background-color: #f8f9fa; justify-content: space-between;
padding: 15px 20px; align-items: center;
display: flex; border-top: 1px solid #eee;
justify-content: space-between; }
align-items: center;
border-top: 1px solid #eee; .order-summary {
} text-align: right;
}
.order-summary {
text-align: right; .order-amount {
} color: #333;
margin-bottom: 5px;
.order-amount { }
color: #333;
margin-bottom: 5px; .order-amount strong {
} color: #ff4d4f;
font-size: 16px;
.order-amount strong { }
color: #ff4d4f;
font-size: 16px; .order-tips {
} font-size: 12px;
color: #999;
.order-tips { }
font-size: 12px;
color: #999; .order-actions {
} display: flex;
gap: 10px;
.order-actions { }
display: flex;
gap: 10px;
}
</style> </style>

19
src/views/User/ShoppingCart.vue

@ -116,8 +116,8 @@
</div> </div>
<el-button <el-button
type="primary" type="primary"
:disabled="selectedRows.length === 0" :disabled="selectedRows.length === 0"
@click="handleCheckout"
>去结算</el-button >去结算</el-button
> >
</div> </div>
@ -169,20 +169,10 @@ export default {
// //
handleCheckout() { handleCheckout() {
// //
console.log(this.selectedRows);
const orderItems = this.selectedRows.map((goods) => ({ const orderItems = this.selectedRows.map((goods) => ({
product: { product: goods.product,
id: goods.product.id, sku: goods.sku,
title: goods.product.title,
headimg: goods.product.headimg,
supplier_name: goods.shop_name, // shop_name
supplier_address: goods.product.supplier_address, //
},
sku: {
id: goods.sku.id,
sku_name: goods.sku.sku_name,
price: goods.sku.price, //
start_number: goods.sku.start_number || 1,
},
quantity: goods.num, // num quantity: goods.num, // num
})); }));
@ -254,7 +244,6 @@ export default {
}, },
// //
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)) {

Loading…
Cancel
Save