-
+
歆羽贸易
diff --git a/package-lock.json b/package-lock.json
index 51155e8..a477218 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -25,6 +25,7 @@
},
"devDependencies": {
"@vitejs/plugin-vue": "^6.0.5",
+ "autoprefixer": "^10.5.0",
"less": "^4.6.4",
"vite": "^8.0.4"
}
@@ -666,6 +667,43 @@
"node": ">=0.4.0"
}
},
+ "node_modules/autoprefixer": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.5.0.tgz",
+ "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.2",
+ "caniuse-lite": "^1.0.30001787",
+ "fraction.js": "^5.3.4",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
"node_modules/base64-arraybuffer": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
@@ -675,6 +713,19 @@
"node": ">= 0.6.0"
}
},
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.10.36",
+ "resolved": "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.36.tgz",
+ "integrity": "sha512-lVq/Df7LXlO79MVaaUHztSwWiG9oXoWHlgvNS51v8Dpd4+G4/VIy6qYePTw31nAVls33nUtnfezYeLkYAak9dg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/birpc": {
"version": "2.9.0",
"resolved": "https://registry.npmmirror.com/birpc/-/birpc-2.9.0.tgz",
@@ -684,6 +735,61 @@
"url": "https://github.com/sponsors/antfu"
}
},
+ "node_modules/browserslist": {
+ "version": "4.28.2",
+ "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.2.tgz",
+ "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.10.12",
+ "caniuse-lite": "^1.0.30001782",
+ "electron-to-chromium": "^1.5.328",
+ "node-releases": "^2.0.36",
+ "update-browserslist-db": "^1.2.3"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001799",
+ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz",
+ "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
"node_modules/chokidar": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-5.0.0.tgz",
@@ -746,6 +852,13 @@
"node": ">=8"
}
},
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.371",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.371.tgz",
+ "integrity": "sha512-e9htk9mAYL6AzmkEhSvVVw7IWGSBJ/Bqdn2eRyRLrj1g6sncN4WbFt5qnILYoCktktr45pyjIrOiRvBThQ808w==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/entities": {
"version": "7.0.1",
"resolved": "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz",
@@ -772,6 +885,16 @@
"errno": "cli.js"
}
},
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/escape-string-regexp": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
@@ -813,6 +936,20 @@
}
}
},
+ "node_modules/fraction.js": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
@@ -1327,6 +1464,16 @@
"node": ">= 4.4.x"
}
},
+ "node_modules/node-releases": {
+ "version": "2.0.47",
+ "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.47.tgz",
+ "integrity": "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
@@ -1475,6 +1622,13 @@
"object-assign": "^4.1.1"
}
},
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/prr": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
@@ -1866,6 +2020,37 @@
"node": "^20.19.0 || >=22.12.0"
}
},
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
"node_modules/utrie": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz",
diff --git a/package.json b/package.json
index 1e505ff..7d4e987 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,17 @@
},
"devDependencies": {
"@vitejs/plugin-vue": "^6.0.5",
+ "autoprefixer": "^10.5.0",
"less": "^4.6.4",
"vite": "^8.0.4"
- }
+ },
+ "browserslist": [
+ "iOS >= 8",
+ "Safari >= 8",
+ "Android >= 4.4",
+ "Chrome >= 49",
+ "> 0.5%",
+ "last 2 versions",
+ "not dead"
+ ]
}
diff --git a/postcss.config.cjs b/postcss.config.cjs
index 86433ad..df85574 100644
--- a/postcss.config.cjs
+++ b/postcss.config.cjs
@@ -8,5 +8,6 @@ module.exports = {
minPixelValue: 1,
mediaQuery: false,
},
+ autoprefixer: {},
},
}
diff --git a/public/img/vb-home.png b/public/img/icon-actionbar-home.png
similarity index 100%
rename from public/img/vb-home.png
rename to public/img/icon-actionbar-home.png
diff --git a/public/img/vb-service.png b/public/img/icon-actionbar-service.png
similarity index 100%
rename from public/img/vb-service.png
rename to public/img/icon-actionbar-service.png
diff --git a/public/img/vb-share.png b/public/img/icon-actionbar-share.png
similarity index 100%
rename from public/img/vb-share.png
rename to public/img/icon-actionbar-share.png
diff --git a/public/img/address.png b/public/img/icon-address-outline.png
similarity index 100%
rename from public/img/address.png
rename to public/img/icon-address-outline.png
diff --git a/public/img/addr_r.png b/public/img/icon-address-red.png
similarity index 100%
rename from public/img/addr_r.png
rename to public/img/icon-address-red.png
diff --git a/public/img/addr.png b/public/img/icon-address.png
similarity index 100%
rename from public/img/addr.png
rename to public/img/icon-address.png
diff --git a/public/img/co_icon.png b/public/img/icon-balance-co.png
similarity index 100%
rename from public/img/co_icon.png
rename to public/img/icon-balance-co.png
diff --git a/public/img/bs-icon.png b/public/img/icon-business-school.png
similarity index 100%
rename from public/img/bs-icon.png
rename to public/img/icon-business-school.png
diff --git a/public/img/nocart.png b/public/img/icon-cart-empty.png
similarity index 100%
rename from public/img/nocart.png
rename to public/img/icon-cart-empty.png
diff --git a/public/img/cart.png b/public/img/icon-cart.png
similarity index 100%
rename from public/img/cart.png
rename to public/img/icon-cart.png
diff --git a/public/img/cashout_record.svg b/public/img/icon-cashout-record.svg
similarity index 100%
rename from public/img/cashout_record.svg
rename to public/img/icon-cashout-record.svg
diff --git a/public/img/cate_all.png b/public/img/icon-category-all.png
similarity index 100%
rename from public/img/cate_all.png
rename to public/img/icon-category-all.png
diff --git a/public/img/copy_b.png b/public/img/icon-copy-black.png
similarity index 100%
rename from public/img/copy_b.png
rename to public/img/icon-copy-black.png
diff --git a/public/img/copy.png b/public/img/icon-copy.png
similarity index 100%
rename from public/img/copy.png
rename to public/img/icon-copy.png
diff --git a/public/img/i-date.png b/public/img/icon-date.png
similarity index 100%
rename from public/img/i-date.png
rename to public/img/icon-date.png
diff --git a/public/img/down.png b/public/img/icon-down.png
similarity index 100%
rename from public/img/down.png
rename to public/img/icon-down.png
diff --git a/public/img/filter.png b/public/img/icon-filter.png
similarity index 100%
rename from public/img/filter.png
rename to public/img/icon-filter.png
diff --git a/public/img/fire.png b/public/img/icon-fire.png
similarity index 100%
rename from public/img/fire.png
rename to public/img/icon-fire.png
diff --git a/public/img/gift_i3.png b/public/img/icon-gift-name.png
similarity index 100%
rename from public/img/gift_i3.png
rename to public/img/icon-gift-name.png
diff --git a/public/img/gift_i4.png b/public/img/icon-gift-phone.png
similarity index 100%
rename from public/img/gift_i4.png
rename to public/img/icon-gift-phone.png
diff --git a/public/img/gift_i5.png b/public/img/icon-gift-region.png
similarity index 100%
rename from public/img/gift_i5.png
rename to public/img/icon-gift-region.png
diff --git a/public/img/gift_i6.png b/public/img/icon-gift-remark.png
similarity index 100%
rename from public/img/gift_i6.png
rename to public/img/icon-gift-remark.png
diff --git a/public/img/s_select-cart.png b/public/img/icon-gift-select-cart.png
similarity index 100%
rename from public/img/s_select-cart.png
rename to public/img/icon-gift-select-cart.png
diff --git a/public/img/de-i1.png b/public/img/icon-goods-detail-service-1.png
similarity index 100%
rename from public/img/de-i1.png
rename to public/img/icon-goods-detail-service-1.png
diff --git a/public/img/de-i2.png b/public/img/icon-goods-detail-service-2.png
similarity index 100%
rename from public/img/de-i2.png
rename to public/img/icon-goods-detail-service-2.png
diff --git a/public/img/gt-i1.png b/public/img/icon-goods-tag.png
similarity index 100%
rename from public/img/gt-i1.png
rename to public/img/icon-goods-tag.png
diff --git a/public/img/index-column-i1.png b/public/img/icon-home-column-1.png
similarity index 100%
rename from public/img/index-column-i1.png
rename to public/img/icon-home-column-1.png
diff --git a/public/img/index-column-i2.png b/public/img/icon-home-column-2.png
similarity index 100%
rename from public/img/index-column-i2.png
rename to public/img/icon-home-column-2.png
diff --git a/public/img/index-column-i3.png b/public/img/icon-home-column-3.png
similarity index 100%
rename from public/img/index-column-i3.png
rename to public/img/icon-home-column-3.png
diff --git a/public/img/hot.png b/public/img/icon-hot.png
similarity index 100%
rename from public/img/hot.png
rename to public/img/icon-hot.png
diff --git a/public/img/login-i1.png b/public/img/icon-login-1.png
similarity index 100%
rename from public/img/login-i1.png
rename to public/img/icon-login-1.png
diff --git a/public/img/login-i2.png b/public/img/icon-login-2.png
similarity index 100%
rename from public/img/login-i2.png
rename to public/img/icon-login-2.png
diff --git a/public/img/login-i3.png b/public/img/icon-login-3.png
similarity index 100%
rename from public/img/login-i3.png
rename to public/img/icon-login-3.png
diff --git a/public/img/login-i4.png b/public/img/icon-login-4.png
similarity index 100%
rename from public/img/login-i4.png
rename to public/img/icon-login-4.png
diff --git a/public/img/login-i5.png b/public/img/icon-login-5.png
similarity index 100%
rename from public/img/login-i5.png
rename to public/img/icon-login-5.png
diff --git a/public/img/mall-hot-i.png b/public/img/icon-mall-hot.png
similarity index 100%
rename from public/img/mall-hot-i.png
rename to public/img/icon-mall-hot.png
diff --git a/public/img/safity.png b/public/img/icon-mall-safety.png
similarity index 100%
rename from public/img/safity.png
rename to public/img/icon-mall-safety.png
diff --git a/public/img/my_u5.png b/public/img/icon-manager-gift.png
similarity index 100%
rename from public/img/my_u5.png
rename to public/img/icon-manager-gift.png
diff --git a/public/img/my_u4.png b/public/img/icon-manager-home.png
similarity index 100%
rename from public/img/my_u4.png
rename to public/img/icon-manager-home.png
diff --git a/public/img/my_u6.png b/public/img/icon-manager-mall.png
similarity index 100%
rename from public/img/my_u6.png
rename to public/img/icon-manager-mall.png
diff --git a/public/img/my_u2.png b/public/img/icon-manager-merchant.png
similarity index 100%
rename from public/img/my_u2.png
rename to public/img/icon-manager-merchant.png
diff --git a/public/img/my_u3.png b/public/img/icon-manager-operation.png
similarity index 100%
rename from public/img/my_u3.png
rename to public/img/icon-manager-operation.png
diff --git a/public/img/my_u1.png b/public/img/icon-manager-personal.png
similarity index 100%
rename from public/img/my_u1.png
rename to public/img/icon-manager-personal.png
diff --git a/public/img/my_u7.png b/public/img/icon-manager-social.png
similarity index 100%
rename from public/img/my_u7.png
rename to public/img/icon-manager-social.png
diff --git a/public/img/my_o1.png b/public/img/icon-my-order-1.png
similarity index 100%
rename from public/img/my_o1.png
rename to public/img/icon-my-order-1.png
diff --git a/public/img/my_o2.png b/public/img/icon-my-order-2.png
similarity index 100%
rename from public/img/my_o2.png
rename to public/img/icon-my-order-2.png
diff --git a/public/img/my_o3.png b/public/img/icon-my-order-3.png
similarity index 100%
rename from public/img/my_o3.png
rename to public/img/icon-my-order-3.png
diff --git a/public/img/my_o4.png b/public/img/icon-my-order-4.png
similarity index 100%
rename from public/img/my_o4.png
rename to public/img/icon-my-order-4.png
diff --git a/public/img/my-i1.png b/public/img/icon-my-phone.png
similarity index 100%
rename from public/img/my-i1.png
rename to public/img/icon-my-phone.png
diff --git a/public/img/my_s1.png b/public/img/icon-my-service-1.png
similarity index 100%
rename from public/img/my_s1.png
rename to public/img/icon-my-service-1.png
diff --git a/public/img/my_s2.png b/public/img/icon-my-service-2.png
similarity index 100%
rename from public/img/my_s2.png
rename to public/img/icon-my-service-2.png
diff --git a/public/img/my_s3.png b/public/img/icon-my-service-3.png
similarity index 100%
rename from public/img/my_s3.png
rename to public/img/icon-my-service-3.png
diff --git a/public/img/my_s4.png b/public/img/icon-my-service-4.png
similarity index 100%
rename from public/img/my_s4.png
rename to public/img/icon-my-service-4.png
diff --git a/public/img/my_w1.png b/public/img/icon-my-wallet-1.png
similarity index 100%
rename from public/img/my_w1.png
rename to public/img/icon-my-wallet-1.png
diff --git a/public/img/my_w2.png b/public/img/icon-my-wallet-2.png
similarity index 100%
rename from public/img/my_w2.png
rename to public/img/icon-my-wallet-2.png
diff --git a/public/img/my_w3.png b/public/img/icon-my-wallet-3.png
similarity index 100%
rename from public/img/my_w3.png
rename to public/img/icon-my-wallet-3.png
diff --git a/public/img/aliicon.png b/public/img/icon-pay-alipay-method.png
similarity index 100%
rename from public/img/aliicon.png
rename to public/img/icon-pay-alipay-method.png
diff --git a/public/img/pay_balance.png b/public/img/icon-pay-balance.png
similarity index 100%
rename from public/img/pay_balance.png
rename to public/img/icon-pay-balance.png
diff --git a/public/img/bankcardicon.png b/public/img/icon-pay-bankcard.png
similarity index 100%
rename from public/img/bankcardicon.png
rename to public/img/icon-pay-bankcard.png
diff --git a/public/img/pay_point.png b/public/img/icon-pay-point.png
similarity index 100%
rename from public/img/pay_point.png
rename to public/img/icon-pay-point.png
diff --git a/public/img/pay_weixin.png b/public/img/icon-pay-weixin.png
similarity index 100%
rename from public/img/pay_weixin.png
rename to public/img/icon-pay-weixin.png
diff --git a/public/img/point_icon.png b/public/img/icon-point.png
similarity index 100%
rename from public/img/point_icon.png
rename to public/img/icon-point.png
diff --git a/public/img/pro-list-px-0.png b/public/img/icon-product-sort-0.png
similarity index 100%
rename from public/img/pro-list-px-0.png
rename to public/img/icon-product-sort-0.png
diff --git a/public/img/pro-list-px-1.png b/public/img/icon-product-sort-1.png
similarity index 100%
rename from public/img/pro-list-px-1.png
rename to public/img/icon-product-sort-1.png
diff --git a/public/img/pro-list-px-2.png b/public/img/icon-product-sort-2.png
similarity index 100%
rename from public/img/pro-list-px-2.png
rename to public/img/icon-product-sort-2.png
diff --git a/public/img/pro.png b/public/img/icon-product.png
similarity index 100%
rename from public/img/pro.png
rename to public/img/icon-product.png
diff --git a/public/img/search.png b/public/img/icon-search.png
similarity index 100%
rename from public/img/search.png
rename to public/img/icon-search.png
diff --git a/public/img/service-i1.png b/public/img/icon-service-1.png
similarity index 100%
rename from public/img/service-i1.png
rename to public/img/icon-service-1.png
diff --git a/public/img/service-i2.png b/public/img/icon-service-2.png
similarity index 100%
rename from public/img/service-i2.png
rename to public/img/icon-service-2.png
diff --git a/public/img/set-i3.png b/public/img/icon-settings-cashout.png
similarity index 100%
rename from public/img/set-i3.png
rename to public/img/icon-settings-cashout.png
diff --git a/public/img/set-i4.png b/public/img/icon-settings-logout.png
similarity index 100%
rename from public/img/set-i4.png
rename to public/img/icon-settings-logout.png
diff --git a/public/img/set-i2.png b/public/img/icon-settings-password.png
similarity index 100%
rename from public/img/set-i2.png
rename to public/img/icon-settings-password.png
diff --git a/public/img/set-i1.png b/public/img/icon-settings-profile.png
similarity index 100%
rename from public/img/set-i1.png
rename to public/img/icon-settings-profile.png
diff --git a/public/img/share.png b/public/img/icon-share.png
similarity index 100%
rename from public/img/share.png
rename to public/img/icon-share.png
diff --git a/public/img/icon_canpay.png b/public/img/icon-social-canpay.png
similarity index 100%
rename from public/img/icon_canpay.png
rename to public/img/icon-social-canpay.png
diff --git a/public/img/icon_disc.png b/public/img/icon-social-discount.png
similarity index 100%
rename from public/img/icon_disc.png
rename to public/img/icon-social-discount.png
diff --git a/public/img/sort-search.png b/public/img/icon-sort-search.png
similarity index 100%
rename from public/img/sort-search.png
rename to public/img/icon-sort-search.png
diff --git a/public/img/spec.png b/public/img/icon-spec.png
similarity index 100%
rename from public/img/spec.png
rename to public/img/icon-spec.png
diff --git a/public/img/Home_Active.png b/public/img/icon-tabbar-home-active.png
similarity index 100%
rename from public/img/Home_Active.png
rename to public/img/icon-tabbar-home-active.png
diff --git a/public/img/Home_Inactive.png b/public/img/icon-tabbar-home-inactive.png
similarity index 100%
rename from public/img/Home_Inactive.png
rename to public/img/icon-tabbar-home-inactive.png
diff --git a/public/img/Mall_Active.png b/public/img/icon-tabbar-mall-active.png
similarity index 100%
rename from public/img/Mall_Active.png
rename to public/img/icon-tabbar-mall-active.png
diff --git a/public/img/Mall_Inactive.png b/public/img/icon-tabbar-mall-inactive.png
similarity index 100%
rename from public/img/Mall_Inactive.png
rename to public/img/icon-tabbar-mall-inactive.png
diff --git a/public/img/My_Active.png b/public/img/icon-tabbar-my-active.png
similarity index 100%
rename from public/img/My_Active.png
rename to public/img/icon-tabbar-my-active.png
diff --git a/public/img/My_Inactive.png b/public/img/icon-tabbar-my-inactive.png
similarity index 100%
rename from public/img/My_Inactive.png
rename to public/img/icon-tabbar-my-inactive.png
diff --git a/public/img/team-i1.png b/public/img/icon-team-user.png
similarity index 100%
rename from public/img/team-i1.png
rename to public/img/icon-team-user.png
diff --git a/public/img/mallDetail-i0.png b/public/img/icon-trade-detail-state-0.png
similarity index 100%
rename from public/img/mallDetail-i0.png
rename to public/img/icon-trade-detail-state-0.png
diff --git a/public/img/vip_icon.png b/public/img/icon-vip.png
similarity index 100%
rename from public/img/vip_icon.png
rename to public/img/icon-vip.png
diff --git a/public/img/pay_alipay.png b/public/img/icon-wallet-alipay.png
similarity index 100%
rename from public/img/pay_alipay.png
rename to public/img/icon-wallet-alipay.png
diff --git a/public/img/asset-i1.png b/public/img/icon-wallet-asset.png
similarity index 100%
rename from public/img/asset-i1.png
rename to public/img/icon-wallet-asset.png
diff --git a/public/img/pay_bankcard.png b/public/img/icon-wallet-bankcard.png
similarity index 100%
rename from public/img/pay_bankcard.png
rename to public/img/icon-wallet-bankcard.png
diff --git a/public/img/allow_bg.jpg b/public/img/img-allow-bg.jpg
similarity index 100%
rename from public/img/allow_bg.jpg
rename to public/img/img-allow-bg.jpg
diff --git a/public/img/avatar.png b/public/img/img-avatar-default.png
similarity index 100%
rename from public/img/avatar.png
rename to public/img/img-avatar-default.png
diff --git a/public/img/bs-banner.jpg b/public/img/img-business-school-banner.jpg
similarity index 100%
rename from public/img/bs-banner.jpg
rename to public/img/img-business-school-banner.jpg
diff --git a/public/img/Business_School_bg.jpg b/public/img/img-business-school-bg.jpg
similarity index 100%
rename from public/img/Business_School_bg.jpg
rename to public/img/img-business-school-bg.jpg
diff --git a/public/img/bs-bg.png b/public/img/img-business-school-bg.png
similarity index 100%
rename from public/img/bs-bg.png
rename to public/img/img-business-school-bg.png
diff --git a/public/img/cv-i1.png b/public/img/img-certificate-view-1.png
similarity index 100%
rename from public/img/cv-i1.png
rename to public/img/img-certificate-view-1.png
diff --git a/public/img/no.png b/public/img/img-empty.png
similarity index 100%
rename from public/img/no.png
rename to public/img/img-empty.png
diff --git a/public/img/gift_bg.png b/public/img/img-gift-bg.png
similarity index 100%
rename from public/img/gift_bg.png
rename to public/img/img-gift-bg.png
diff --git a/public/img/gift_i1.png b/public/img/img-gift-default.png
similarity index 100%
rename from public/img/gift_i1.png
rename to public/img/img-gift-default.png
diff --git a/public/img/gift_qy.png b/public/img/img-gift-rights.png
similarity index 100%
rename from public/img/gift_qy.png
rename to public/img/img-gift-rights.png
diff --git a/public/img/gift_bg1.png b/public/img/img-gift-section-bg-1.png
similarity index 100%
rename from public/img/gift_bg1.png
rename to public/img/img-gift-section-bg-1.png
diff --git a/public/img/gift_bg2.png b/public/img/img-gift-section-bg-2.png
similarity index 100%
rename from public/img/gift_bg2.png
rename to public/img/img-gift-section-bg-2.png
diff --git a/public/img/gift_bg3.png b/public/img/img-gift-section-bg-3.png
similarity index 100%
rename from public/img/gift_bg3.png
rename to public/img/img-gift-section-bg-3.png
diff --git a/public/img/gift_title.png b/public/img/img-gift-title.png
similarity index 100%
rename from public/img/gift_title.png
rename to public/img/img-gift-title.png
diff --git a/public/img/banner_bg.png b/public/img/img-home-banner-bg.png
similarity index 100%
rename from public/img/banner_bg.png
rename to public/img/img-home-banner-bg.png
diff --git a/public/img/tomall_i1.png b/public/img/img-home-to-mall-1.png
similarity index 100%
rename from public/img/tomall_i1.png
rename to public/img/img-home-to-mall-1.png
diff --git a/public/img/tomall_i2.png b/public/img/img-home-to-mall-2.png
similarity index 100%
rename from public/img/tomall_i2.png
rename to public/img/img-home-to-mall-2.png
diff --git a/public/img/invite_bg.jpg b/public/img/img-invite-bg.jpg
similarity index 100%
rename from public/img/invite_bg.jpg
rename to public/img/img-invite-bg.jpg
diff --git a/public/img/label-1.png b/public/img/img-label-1.png
similarity index 100%
rename from public/img/label-1.png
rename to public/img/img-label-1.png
diff --git a/public/img/label-2.png b/public/img/img-label-2.png
similarity index 100%
rename from public/img/label-2.png
rename to public/img/img-label-2.png
diff --git a/public/img/label-3.png b/public/img/img-label-3.png
similarity index 100%
rename from public/img/label-3.png
rename to public/img/img-label-3.png
diff --git a/public/img/login-bg.jpg b/public/img/img-login-bg.jpg
similarity index 100%
rename from public/img/login-bg.jpg
rename to public/img/img-login-bg.jpg
diff --git a/public/img/img-logo-app-transparent.png b/public/img/img-logo-app-transparent.png
new file mode 100644
index 0000000..98cfe49
Binary files /dev/null and b/public/img/img-logo-app-transparent.png differ
diff --git a/public/img/img-logo-app.png b/public/img/img-logo-app.png
new file mode 100644
index 0000000..b9a64bb
Binary files /dev/null and b/public/img/img-logo-app.png differ
diff --git a/public/img/b_logo.png b/public/img/img-logo-business.png
similarity index 100%
rename from public/img/b_logo.png
rename to public/img/img-logo-business.png
diff --git a/public/img/login-logo.png b/public/img/img-logo-login.png
similarity index 100%
rename from public/img/login-logo.png
rename to public/img/img-logo-login.png
diff --git a/public/img/maisui.png b/public/img/img-maisui.png
similarity index 100%
rename from public/img/maisui.png
rename to public/img/img-maisui.png
diff --git a/public/img/rexiao.png b/public/img/img-mall-hot-title.png
similarity index 100%
rename from public/img/rexiao.png
rename to public/img/img-mall-hot-title.png
diff --git a/public/img/mall_i15.png b/public/img/img-mall-section-15.png
similarity index 100%
rename from public/img/mall_i15.png
rename to public/img/img-mall-section-15.png
diff --git a/public/img/mall_i35.png b/public/img/img-mall-section-35.png
similarity index 100%
rename from public/img/mall_i35.png
rename to public/img/img-mall-section-35.png
diff --git a/public/img/merchant_bg.jpg b/public/img/img-merchant-bg.jpg
similarity index 100%
rename from public/img/merchant_bg.jpg
rename to public/img/img-merchant-bg.jpg
diff --git a/public/img/my-bg.jpg b/public/img/img-my-bg.jpg
similarity index 100%
rename from public/img/my-bg.jpg
rename to public/img/img-my-bg.jpg
diff --git a/public/img/my_f1.jpg b/public/img/img-my-feature-1.jpg
similarity index 100%
rename from public/img/my_f1.jpg
rename to public/img/img-my-feature-1.jpg
diff --git a/public/img/my_f2.jpg b/public/img/img-my-feature-2.jpg
similarity index 100%
rename from public/img/my_f2.jpg
rename to public/img/img-my-feature-2.jpg
diff --git a/public/img/point_bg.jpg b/public/img/img-point-bg.jpg
similarity index 100%
rename from public/img/point_bg.jpg
rename to public/img/img-point-bg.jpg
diff --git a/public/img/service-bg.png b/public/img/img-service-bg.png
similarity index 100%
rename from public/img/service-bg.png
rename to public/img/img-service-bg.png
diff --git a/public/img/cart_shdzbg.png b/public/img/img-trade-address-bg.png
similarity index 100%
rename from public/img/cart_shdzbg.png
rename to public/img/img-trade-address-bg.png
diff --git a/public/img/mallDetail-bg.jpg b/public/img/img-trade-detail-bg.jpg
similarity index 100%
rename from public/img/mallDetail-bg.jpg
rename to public/img/img-trade-detail-bg.jpg
diff --git a/public/img/asset-bg1.png b/public/img/img-wallet-balance-bg.png
similarity index 100%
rename from public/img/asset-bg1.png
rename to public/img/img-wallet-balance-bg.png
diff --git a/public/img/asset-c-bg.png b/public/img/img-wallet-card-bg.png
similarity index 100%
rename from public/img/asset-c-bg.png
rename to public/img/img-wallet-card-bg.png
diff --git a/public/img/logo.png b/public/img/logo.png
deleted file mode 100644
index 35c3988..0000000
Binary files a/public/img/logo.png and /dev/null differ
diff --git a/public/img/my_f3.jpg b/public/img/my_f3.jpg
deleted file mode 100644
index cbffb83..0000000
Binary files a/public/img/my_f3.jpg and /dev/null differ
diff --git a/public/img/my_f4.jpg b/public/img/my_f4.jpg
deleted file mode 100644
index 371bf91..0000000
Binary files a/public/img/my_f4.jpg and /dev/null differ
diff --git a/src/api/http.js b/src/api/http.js
index bbadb9f..de90c0f 100644
--- a/src/api/http.js
+++ b/src/api/http.js
@@ -8,11 +8,34 @@ const BASE_URL = import.meta.env.VITE_API_URL || 'http://127.0.0.1:3001';
const DEFAULT_TIMEOUT = 30000;
const pendingControllers = new Set();
+const persistentControllers = new Set(); // 不会被 abortAll 取消的控制器
let loadingCount = 0;
+// 记录是否已经在当前页面显示过骨架屏
+let hasShownSkeletonInPage = false;
+// 记录上次显示骨架屏时的页面路径
+let lastSkeletonPath = '';
+/**
+ * 显示骨架屏 - 只在页面切换且首次请求时显示
+ */
function showSkeleton() {
loadingCount++;
- window.dispatchEvent(new Event('showSkeleton'));
+
+ // 检查是否正在页面切换或首次进入页面
+ const isChanging = window.__isPageChanging ? window.__isPageChanging() : false;
+ const currentPath = window.__currentPath ? window.__currentPath() : '';
+
+ // 当页面路径变化时,重置标志
+ if (lastSkeletonPath !== currentPath) {
+ hasShownSkeletonInPage = false;
+ lastSkeletonPath = currentPath;
+ }
+
+ // 只有在页面切换期间或当前页面尚未显示过骨架屏时,才显示骨架屏
+ if (isChanging || !hasShownSkeletonInPage) {
+ window.dispatchEvent(new Event('showSkeleton'));
+ hasShownSkeletonInPage = true;
+ }
}
function closeSkeleton() {
@@ -109,8 +132,12 @@ function handleError(err, requestToken) {
/**
* 带超时的 fetch
+ * @param {string} url - 请求地址
+ * @param {object} options - 请求选项
+ * @param {number} timeout - 超时时间
+ * @param {boolean} persistent - 是否为持久请求(不被 abortAll 取消)
*/
-function fetchWithTimeout(url, options, timeout = DEFAULT_TIMEOUT) {
+function fetchWithTimeout(url, options, timeout = DEFAULT_TIMEOUT, persistent = false) {
const controller = new AbortController();
const externalSignal = options.signal;
@@ -122,8 +149,16 @@ function fetchWithTimeout(url, options, timeout = DEFAULT_TIMEOUT) {
}
}
- pendingControllers.add(controller);
- showSkeleton();
+ // 根据 persistent 标志决定放入哪个集合
+ if (persistent) {
+ persistentControllers.add(controller);
+ } else {
+ pendingControllers.add(controller);
+ }
+ // 持久请求不显示骨架屏
+ if (!persistent) {
+ showSkeleton();
+ }
return new Promise((resolve, reject) => {
const timer = setTimeout(() => {
@@ -145,8 +180,13 @@ function fetchWithTimeout(url, options, timeout = DEFAULT_TIMEOUT) {
reject({ status: 0, message: '网络连接失败', data: null });
})
.finally(() => {
+ // 从对应的集合中删除控制器
pendingControllers.delete(controller);
- closeSkeleton();
+ persistentControllers.delete(controller);
+ // 只有非持久请求才关闭骨架屏
+ if (!persistent) {
+ closeSkeleton();
+ }
});
});
}
@@ -157,19 +197,21 @@ function fetchWithTimeout(url, options, timeout = DEFAULT_TIMEOUT) {
* @param {object} data - 请求数据
* @param {string} method - 请求方法,默认 POST
* @param {number} timeout - 超时时间 ms
+ * @param {AbortSignal} signal - 外部信号
+ * @param {boolean} persistent - 是否为持久请求
* @returns {Promise}
*/
-export function request(url, data, method = 'POST', timeout = DEFAULT_TIMEOUT, signal) {
+export function request(url, data, method = 'POST', timeout = DEFAULT_TIMEOUT, signal, persistent = false) {
const requestToken = localStorage.getItem('member_token');
return fetchWithTimeout(BASE_URL + url, {
method,
headers: getHeaders(),
body: JSON.stringify(data),
signal,
- }, timeout).then(handleResponse).catch(err => handleError(err, requestToken));
+ }, timeout, persistent).then(handleResponse).catch(err => handleError(err, requestToken));
}
-export const get = (url, params, timeout = DEFAULT_TIMEOUT, signal) => {
+export const get = (url, params, timeout = DEFAULT_TIMEOUT, signal, persistent = false) => {
const requestToken = localStorage.getItem('member_token');
let query = '';
if (params) {
@@ -179,21 +221,23 @@ export const get = (url, params, timeout = DEFAULT_TIMEOUT, signal) => {
method: 'GET',
headers: getHeaders(),
signal,
- }, timeout).then(handleResponse).catch(err => handleError(err, requestToken));
+ }, timeout, persistent).then(handleResponse).catch(err => handleError(err, requestToken));
};
-export const post = (url, data, timeout = DEFAULT_TIMEOUT, signal) => request(url, data, 'POST', timeout, signal);
-export const put = (url, data, timeout = DEFAULT_TIMEOUT, signal) => request(url, data, 'PUT', timeout, signal);
-export const del = (url, data, timeout = DEFAULT_TIMEOUT, signal) => request(url, data, 'DELETE', timeout, signal);
+export const post = (url, data, timeout = DEFAULT_TIMEOUT, signal, persistent = false) => request(url, data, 'POST', timeout, signal, persistent);
+export const put = (url, data, timeout = DEFAULT_TIMEOUT, signal, persistent = false) => request(url, data, 'PUT', timeout, signal, persistent);
+export const del = (url, data, timeout = DEFAULT_TIMEOUT, signal, persistent = false) => request(url, data, 'DELETE', timeout, signal, persistent);
/**
* POST FormData 请求
* @param {string} url - 请求路径
* @param {FormData} formData - FormData 对象
* @param {number} timeout - 超时时间 ms
+ * @param {AbortSignal} signal - 外部信号
+ * @param {boolean} persistent - 是否为持久请求
* @returns {Promise}
*/
-export function postForm(url, formData, timeout = DEFAULT_TIMEOUT, signal) {
+export function postForm(url, formData, timeout = DEFAULT_TIMEOUT, signal, persistent = false) {
const headers = {};
const token = localStorage.getItem('member_token');
if (token) {
@@ -204,7 +248,7 @@ export function postForm(url, formData, timeout = DEFAULT_TIMEOUT, signal) {
headers,
body: formData,
signal,
- }, timeout).then(handleResponse).catch(err => handleError(err, token));
+ }, timeout, persistent).then(handleResponse).catch(err => handleError(err, token));
}
/**
@@ -212,9 +256,11 @@ export function postForm(url, formData, timeout = DEFAULT_TIMEOUT, signal) {
* @param {string} url - 请求路径
* @param {File[]} files - 文件数组
* @param {number} timeout - 超时时间 ms(默认 30 秒上传较长)
+ * @param {AbortSignal} signal - 外部信号
+ * @param {boolean} persistent - 是否为持久请求
* @returns {Promise}
*/
-export function upload(url, files, timeout = 30000, signal) {
+export function upload(url, files, timeout = 30000, signal, persistent = false) {
const formData = new FormData();
files.forEach(file => {
formData.append('file', file);
@@ -231,7 +277,7 @@ export function upload(url, files, timeout = 30000, signal) {
headers,
body: formData,
signal,
- }, timeout)
+ }, timeout, persistent)
.then(res => res.text().then(text => {
try {
const data = JSON.parse(text);
@@ -246,10 +292,16 @@ export function upload(url, files, timeout = 30000, signal) {
.catch(handleError);
}
+/**
+ * 取消所有请求并关闭骨架屏
+ * 注意:持久请求不会被取消
+ */
export function abortAll() {
pendingControllers.forEach(controller => controller.abort());
pendingControllers.clear();
loadingCount = 0;
+ // 重置页面骨架屏标志,为下一次页面切换做准备
+ hasShownSkeletonInPage = false;
window.dispatchEvent(new Event('closeSkeleton'));
}
diff --git a/src/components/AddressSelector.vue b/src/components/AddressSelector.vue
index 005bad7..0c87925 100644
--- a/src/components/AddressSelector.vue
+++ b/src/components/AddressSelector.vue
@@ -1,17 +1,17 @@
-
+
-
-
- {{ item.name }}
- {{ item.tel }}
+
+
+ {{ item.name }}
+ {{ item.tel }}默认
-
{{ item.address }}
+
{{ item.address }}
@@ -23,11 +23,11 @@
-
暂无地址
+
暂无地址
-
+
+
\ No newline at end of file
diff --git a/src/views/Goods/GoodsDetail.vue b/src/views/Goods/GoodsDetail.vue
index 8dcc905..50e50fe 100644
--- a/src/views/Goods/GoodsDetail.vue
+++ b/src/views/Goods/GoodsDetail.vue
@@ -1,68 +1,68 @@
-