Commit 6283a76fca5f6d1fd317daacad27adb9e625325e
1 parent
b2f9850f
2026-02-09更新喵~
Showing
24 changed files
with
689 additions
and
3322 deletions
garbage-removal/src/apis/company.js
| @@ -28,3 +28,15 @@ export async function queryEnterpriseById(id) { | @@ -28,3 +28,15 @@ export async function queryEnterpriseById(id) { | ||
| 28 | `/unit/enterprise/${id}` | 28 | `/unit/enterprise/${id}` |
| 29 | ); | 29 | ); |
| 30 | } | 30 | } |
| 31 | + | ||
| 32 | +/** | ||
| 33 | + * @method 根据能源类型获取公司名称列表 | ||
| 34 | + */ | ||
| 35 | +export async function queryCompaniesByEnergyType(energyType) { | ||
| 36 | + return await request.get( | ||
| 37 | + `/gar/car/requestStrByEnergyType`, | ||
| 38 | + { | ||
| 39 | + params: {energyType} | ||
| 40 | + } | ||
| 41 | + ); | ||
| 42 | +} |
garbage-removal/src/apis/order.js
| @@ -220,3 +220,33 @@ export async function deleteDriverByOrderNo(orderNo, carCode) { | @@ -220,3 +220,33 @@ export async function deleteDriverByOrderNo(orderNo, carCode) { | ||
| 220 | } | 220 | } |
| 221 | }); | 221 | }); |
| 222 | } | 222 | } |
| 223 | + | ||
| 224 | + | ||
| 225 | +/** | ||
| 226 | + * 查询车辆位置信息 | ||
| 227 | + * @param {*} carNo 车牌号 | ||
| 228 | + */ | ||
| 229 | +export async function queryLatitudeLongitude(carNo) { | ||
| 230 | + return await request.get(`/gar/car/queryLatitudeLongitude`, { | ||
| 231 | + params: { | ||
| 232 | + carNo | ||
| 233 | + } | ||
| 234 | + }); | ||
| 235 | +} | ||
| 236 | + | ||
| 237 | + | ||
| 238 | +/** | ||
| 239 | + * 查询运距 | ||
| 240 | + * @param {*} carNo 车牌号 | ||
| 241 | + * @param startTime | ||
| 242 | + * @param endTime | ||
| 243 | + */ | ||
| 244 | +export async function queryMileage(carNo,startTime,endTime) { | ||
| 245 | + return await request.get(`/gar/car/queryMileage`, { | ||
| 246 | + params: { | ||
| 247 | + carNo, | ||
| 248 | + startTime, | ||
| 249 | + endTime | ||
| 250 | + } | ||
| 251 | + }); | ||
| 252 | +} |
garbage-removal/src/common/classify.data.js deleted
100644 → 0
| 1 | -export default[ | ||
| 2 | - { | ||
| 3 | - "name": "女装", | ||
| 4 | - "foods": [ | ||
| 5 | - { | ||
| 6 | - "name": "A字裙", | ||
| 7 | - "key": "A字裙", | ||
| 8 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/1.jpg", | ||
| 9 | - "cat": 10 | ||
| 10 | - }, | ||
| 11 | - { | ||
| 12 | - "name": "T恤", | ||
| 13 | - "key": "T恤", | ||
| 14 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/2.jpg", | ||
| 15 | - "cat": 10 | ||
| 16 | - }, | ||
| 17 | - { | ||
| 18 | - "name": "半身裙", | ||
| 19 | - "key": "半身裙", | ||
| 20 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/3.jpg", | ||
| 21 | - "cat": 10 | ||
| 22 | - }, | ||
| 23 | - { | ||
| 24 | - "name": "衬衫", | ||
| 25 | - "key": "衬衫", | ||
| 26 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/4.jpg", | ||
| 27 | - "cat": 10 | ||
| 28 | - }, | ||
| 29 | - { | ||
| 30 | - "name": "短裙", | ||
| 31 | - "key": "短裙", | ||
| 32 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/5.jpg", | ||
| 33 | - "cat": 10 | ||
| 34 | - }, | ||
| 35 | - { | ||
| 36 | - "name": "阔腿裤", | ||
| 37 | - "key": "阔腿裤", | ||
| 38 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/6.jpg", | ||
| 39 | - "cat": 10 | ||
| 40 | - }, | ||
| 41 | - { | ||
| 42 | - "name": "连衣裙", | ||
| 43 | - "key": "连衣裙", | ||
| 44 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/7.jpg", | ||
| 45 | - "cat": 10 | ||
| 46 | - }, | ||
| 47 | - { | ||
| 48 | - "name": "妈妈装", | ||
| 49 | - "key": "妈妈装", | ||
| 50 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/8.jpg", | ||
| 51 | - "cat": 10 | ||
| 52 | - }, | ||
| 53 | - { | ||
| 54 | - "name": "牛仔裤", | ||
| 55 | - "key": "牛仔裤", | ||
| 56 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/9.jpg", | ||
| 57 | - "cat": 10 | ||
| 58 | - }, | ||
| 59 | - { | ||
| 60 | - "name": "情侣装", | ||
| 61 | - "key": "情侣装", | ||
| 62 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/10.jpg", | ||
| 63 | - "cat": 10 | ||
| 64 | - }, | ||
| 65 | - { | ||
| 66 | - "name": "休闲裤", | ||
| 67 | - "key": "休闲裤", | ||
| 68 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/11.jpg", | ||
| 69 | - "cat": 10 | ||
| 70 | - }, | ||
| 71 | - { | ||
| 72 | - "name": "雪纺衫", | ||
| 73 | - "key": "雪纺衫", | ||
| 74 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/12.jpg", | ||
| 75 | - "cat": 10 | ||
| 76 | - }, | ||
| 77 | - { | ||
| 78 | - "name": "防晒衣", | ||
| 79 | - "key": "防晒衣", | ||
| 80 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/13.jpg", | ||
| 81 | - "cat": 10 | ||
| 82 | - }, | ||
| 83 | - { | ||
| 84 | - "name": "礼服/婚纱", | ||
| 85 | - "key": "礼服婚纱", | ||
| 86 | - "icon": "https://cdn.uviewui.com/uview/common/classify/1/14.jpg", | ||
| 87 | - "cat": 10 | ||
| 88 | - } | ||
| 89 | - ] | ||
| 90 | - }, | ||
| 91 | - { | ||
| 92 | - "name": "美食", | ||
| 93 | - "foods": [ | ||
| 94 | - { | ||
| 95 | - "name": "火锅", | ||
| 96 | - "key": "火锅", | ||
| 97 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/1.jpg", | ||
| 98 | - "cat": 6 | ||
| 99 | - }, | ||
| 100 | - { | ||
| 101 | - "name": "糕点饼干", | ||
| 102 | - "key": "糕点饼干", | ||
| 103 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/2.jpg", | ||
| 104 | - "cat": 6 | ||
| 105 | - }, | ||
| 106 | - { | ||
| 107 | - "name": "坚果果干", | ||
| 108 | - "key": "坚果果干", | ||
| 109 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/3.jpg", | ||
| 110 | - "cat": 6 | ||
| 111 | - }, | ||
| 112 | - { | ||
| 113 | - "name": "酒类", | ||
| 114 | - "key": "酒类", | ||
| 115 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/4.jpg", | ||
| 116 | - "cat": 6 | ||
| 117 | - }, | ||
| 118 | - { | ||
| 119 | - "name": "辣条", | ||
| 120 | - "key": "辣条", | ||
| 121 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/5.jpg", | ||
| 122 | - "cat": 6 | ||
| 123 | - }, | ||
| 124 | - { | ||
| 125 | - "name": "大礼包", | ||
| 126 | - "key": "大礼包", | ||
| 127 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/6.jpg", | ||
| 128 | - "cat": 6 | ||
| 129 | - }, | ||
| 130 | - { | ||
| 131 | - "name": "精品茗茶", | ||
| 132 | - "key": "茶", | ||
| 133 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/7.jpg", | ||
| 134 | - "cat": 6 | ||
| 135 | - }, | ||
| 136 | - { | ||
| 137 | - "name": "休闲食品", | ||
| 138 | - "key": "休闲食品", | ||
| 139 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/8.jpg", | ||
| 140 | - "cat": 6 | ||
| 141 | - }, | ||
| 142 | - { | ||
| 143 | - "name": "糖果巧克力", | ||
| 144 | - "key": "糖果巧克力", | ||
| 145 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/9.jpg", | ||
| 146 | - "cat": 6 | ||
| 147 | - }, | ||
| 148 | - { | ||
| 149 | - "name": "方便速食", | ||
| 150 | - "key": "方便速食", | ||
| 151 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/10.jpg", | ||
| 152 | - "cat": 6 | ||
| 153 | - }, | ||
| 154 | - { | ||
| 155 | - "name": "营养代餐", | ||
| 156 | - "key": "营养代餐", | ||
| 157 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/11.jpg", | ||
| 158 | - "cat": 6 | ||
| 159 | - }, | ||
| 160 | - { | ||
| 161 | - "name": "粮油副食", | ||
| 162 | - "key": "粮油", | ||
| 163 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/12.jpg", | ||
| 164 | - "cat": 6 | ||
| 165 | - }, | ||
| 166 | - { | ||
| 167 | - "name": "生鲜水果", | ||
| 168 | - "key": "水果", | ||
| 169 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/13.jpg", | ||
| 170 | - "cat": 6 | ||
| 171 | - }, | ||
| 172 | - { | ||
| 173 | - "name": "饮品", | ||
| 174 | - "key": "饮品", | ||
| 175 | - "icon": "https://cdn.uviewui.com/uview/common/classify/2/14.jpg", | ||
| 176 | - "cat": 6 | ||
| 177 | - } | ||
| 178 | - ] | ||
| 179 | - }, | ||
| 180 | - { | ||
| 181 | - "name": "美妆", | ||
| 182 | - "foods": [ | ||
| 183 | - { | ||
| 184 | - "name": "化妆刷", | ||
| 185 | - "key": "化妆刷", | ||
| 186 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/1.jpg", | ||
| 187 | - "cat": 3 | ||
| 188 | - }, | ||
| 189 | - { | ||
| 190 | - "name": "粉底", | ||
| 191 | - "key": "粉底", | ||
| 192 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/2.jpg", | ||
| 193 | - "cat": 3 | ||
| 194 | - }, | ||
| 195 | - { | ||
| 196 | - "name": "洗发护发", | ||
| 197 | - "key": "洗发护发", | ||
| 198 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/3.jpg", | ||
| 199 | - "cat": 3 | ||
| 200 | - }, | ||
| 201 | - { | ||
| 202 | - "name": "美容工具", | ||
| 203 | - "key": "美容工具", | ||
| 204 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/4.jpg", | ||
| 205 | - "cat": 3 | ||
| 206 | - }, | ||
| 207 | - { | ||
| 208 | - "name": "眼部护理", | ||
| 209 | - "key": "眼部护理", | ||
| 210 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/5.jpg", | ||
| 211 | - "cat": 3 | ||
| 212 | - }, | ||
| 213 | - { | ||
| 214 | - "name": "眉妆", | ||
| 215 | - "key": "眉妆", | ||
| 216 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/6.jpg", | ||
| 217 | - "cat": 3 | ||
| 218 | - }, | ||
| 219 | - { | ||
| 220 | - "name": "卸妆品", | ||
| 221 | - "key": "卸妆品", | ||
| 222 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/7.jpg", | ||
| 223 | - "cat": 3 | ||
| 224 | - }, | ||
| 225 | - { | ||
| 226 | - "name": "基础护肤", | ||
| 227 | - "key": "基础护肤", | ||
| 228 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/8.jpg", | ||
| 229 | - "cat": 3 | ||
| 230 | - }, | ||
| 231 | - { | ||
| 232 | - "name": "眼妆", | ||
| 233 | - "key": "眼妆", | ||
| 234 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/9.jpg", | ||
| 235 | - "cat": 3 | ||
| 236 | - }, | ||
| 237 | - { | ||
| 238 | - "name": "唇妆", | ||
| 239 | - "key": "唇妆", | ||
| 240 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/10.jpg", | ||
| 241 | - "cat": 3 | ||
| 242 | - }, | ||
| 243 | - { | ||
| 244 | - "name": "面膜", | ||
| 245 | - "key": "面膜", | ||
| 246 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/11.jpg", | ||
| 247 | - "cat": 3 | ||
| 248 | - }, | ||
| 249 | - { | ||
| 250 | - "name": "沐浴用品", | ||
| 251 | - "key": "沐浴用品", | ||
| 252 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/12.jpg", | ||
| 253 | - "cat": 3 | ||
| 254 | - }, | ||
| 255 | - { | ||
| 256 | - "name": "护肤套装", | ||
| 257 | - "key": "护肤套装", | ||
| 258 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/13.jpg", | ||
| 259 | - "cat": 3 | ||
| 260 | - }, | ||
| 261 | - { | ||
| 262 | - "name": "防晒品", | ||
| 263 | - "key": "防晒品", | ||
| 264 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/14.jpg", | ||
| 265 | - "cat": 3 | ||
| 266 | - }, | ||
| 267 | - { | ||
| 268 | - "name": "美甲", | ||
| 269 | - "key": "美甲", | ||
| 270 | - "icon": "https://cdn.uviewui.com/uview/common/classify/3/15.jpg", | ||
| 271 | - "cat": 3 | ||
| 272 | - } | ||
| 273 | - | ||
| 274 | - ] | ||
| 275 | - }, | ||
| 276 | - { | ||
| 277 | - "name": "居家日用", | ||
| 278 | - "foods": [ | ||
| 279 | - { | ||
| 280 | - "name": "垃圾袋", | ||
| 281 | - "key": "垃圾袋", | ||
| 282 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/1.jpg", | ||
| 283 | - "cat": 4 | ||
| 284 | - }, | ||
| 285 | - { | ||
| 286 | - "name": "纸巾", | ||
| 287 | - "key": "纸巾", | ||
| 288 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/2.jpg", | ||
| 289 | - "cat": 4 | ||
| 290 | - }, | ||
| 291 | - { | ||
| 292 | - "name": "驱蚊用品", | ||
| 293 | - "key": "驱蚊用品", | ||
| 294 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/3.jpg", | ||
| 295 | - "cat": 4 | ||
| 296 | - }, | ||
| 297 | - { | ||
| 298 | - "name": "收纳神器", | ||
| 299 | - "key": "收纳神器", | ||
| 300 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/4.jpg", | ||
| 301 | - "cat": 4 | ||
| 302 | - }, | ||
| 303 | - { | ||
| 304 | - "name": "厨房用品", | ||
| 305 | - "key": "厨房用品", | ||
| 306 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/5.jpg", | ||
| 307 | - "cat": 4 | ||
| 308 | - }, | ||
| 309 | - { | ||
| 310 | - "name": "厨房烹饪", | ||
| 311 | - "key": "烹饪", | ||
| 312 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/6.jpg", | ||
| 313 | - "cat": 4 | ||
| 314 | - }, | ||
| 315 | - { | ||
| 316 | - "name": "衣物晾晒", | ||
| 317 | - "key": "衣物晾晒", | ||
| 318 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/7.jpg", | ||
| 319 | - "cat": 4 | ||
| 320 | - }, | ||
| 321 | - { | ||
| 322 | - "name": "衣物护理", | ||
| 323 | - "key": "衣物护理", | ||
| 324 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/8.jpg", | ||
| 325 | - "cat": 4 | ||
| 326 | - }, | ||
| 327 | - { | ||
| 328 | - "name": "宠物用品", | ||
| 329 | - "key": "宠物用品", | ||
| 330 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/9.jpg", | ||
| 331 | - "cat": 4 | ||
| 332 | - }, | ||
| 333 | - { | ||
| 334 | - "name": "医药保健", | ||
| 335 | - "key": "医药", | ||
| 336 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/10.jpg", | ||
| 337 | - "cat": 4 | ||
| 338 | - }, | ||
| 339 | - { | ||
| 340 | - "name": "日用百货", | ||
| 341 | - "key": "百货", | ||
| 342 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/11.jpg", | ||
| 343 | - "cat": 4 | ||
| 344 | - }, | ||
| 345 | - { | ||
| 346 | - "name": "清洁用品", | ||
| 347 | - "key": "清洁", | ||
| 348 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/12.jpg", | ||
| 349 | - "cat": 4 | ||
| 350 | - }, | ||
| 351 | - { | ||
| 352 | - "name": "绿植园艺", | ||
| 353 | - "key": "绿植", | ||
| 354 | - "icon": "https://cdn.uviewui.com/uview/common/classify/4/13.jpg", | ||
| 355 | - "cat": 4 | ||
| 356 | - } | ||
| 357 | - ] | ||
| 358 | - }, | ||
| 359 | - { | ||
| 360 | - "name": "男装", | ||
| 361 | - "foods": [ | ||
| 362 | - { | ||
| 363 | - "name": "爸爸装", | ||
| 364 | - "key": "爸爸装", | ||
| 365 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/1.jpg", | ||
| 366 | - "cat": 12 | ||
| 367 | - }, | ||
| 368 | - { | ||
| 369 | - "name": "牛仔裤", | ||
| 370 | - "key": "牛仔裤", | ||
| 371 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/2.jpg", | ||
| 372 | - "cat": 12 | ||
| 373 | - }, | ||
| 374 | - { | ||
| 375 | - "name": "衬衫", | ||
| 376 | - "key": "衬衫", | ||
| 377 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/3.jpg", | ||
| 378 | - "cat": 12 | ||
| 379 | - }, | ||
| 380 | - { | ||
| 381 | - "name": "休闲裤", | ||
| 382 | - "key": "休闲裤", | ||
| 383 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/4.jpg", | ||
| 384 | - "cat": 12 | ||
| 385 | - }, | ||
| 386 | - { | ||
| 387 | - "name": "外套", | ||
| 388 | - "key": "外套", | ||
| 389 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/5.jpg", | ||
| 390 | - "cat": 12 | ||
| 391 | - }, | ||
| 392 | - { | ||
| 393 | - "name": "T恤", | ||
| 394 | - "key": "T恤", | ||
| 395 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/6.jpg", | ||
| 396 | - "cat": 12 | ||
| 397 | - }, | ||
| 398 | - { | ||
| 399 | - "name": "套装", | ||
| 400 | - "key": "套装", | ||
| 401 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/7.jpg", | ||
| 402 | - "cat": 12 | ||
| 403 | - }, | ||
| 404 | - { | ||
| 405 | - "name": "运动裤", | ||
| 406 | - "key": "运动裤", | ||
| 407 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/8.jpg", | ||
| 408 | - "cat": 12 | ||
| 409 | - }, | ||
| 410 | - { | ||
| 411 | - "name": "马甲/背心", | ||
| 412 | - "key": "马甲背心", | ||
| 413 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/9.jpg", | ||
| 414 | - "cat": 12 | ||
| 415 | - }, | ||
| 416 | - { | ||
| 417 | - "name": "POLO衫", | ||
| 418 | - "key": "POLO衫", | ||
| 419 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/10.jpg", | ||
| 420 | - "cat": 12 | ||
| 421 | - }, | ||
| 422 | - { | ||
| 423 | - "name": "商务装", | ||
| 424 | - "key": "商务装", | ||
| 425 | - "icon": "https://cdn.uviewui.com/uview/common/classify/5/11.jpg", | ||
| 426 | - "cat": 12 | ||
| 427 | - } | ||
| 428 | - ] | ||
| 429 | - }, | ||
| 430 | - { | ||
| 431 | - "name": "鞋品", | ||
| 432 | - "foods": [ | ||
| 433 | - { | ||
| 434 | - "name": "单鞋", | ||
| 435 | - "key": "单鞋", | ||
| 436 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/1.jpg", | ||
| 437 | - "cat": 5 | ||
| 438 | - }, | ||
| 439 | - { | ||
| 440 | - "name": "皮鞋", | ||
| 441 | - "key": "皮鞋", | ||
| 442 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/2.jpg", | ||
| 443 | - "cat": 5 | ||
| 444 | - }, | ||
| 445 | - { | ||
| 446 | - "name": "帆布鞋", | ||
| 447 | - "key": "帆布鞋", | ||
| 448 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/3.jpg", | ||
| 449 | - "cat": 5 | ||
| 450 | - }, | ||
| 451 | - { | ||
| 452 | - "name": "北京老布鞋", | ||
| 453 | - "key": "北京老布鞋", | ||
| 454 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/4.jpg", | ||
| 455 | - "cat": 5 | ||
| 456 | - }, | ||
| 457 | - { | ||
| 458 | - "name": "运动鞋", | ||
| 459 | - "key": "运动鞋", | ||
| 460 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/5.jpg", | ||
| 461 | - "cat": 5 | ||
| 462 | - }, | ||
| 463 | - { | ||
| 464 | - "name": "拖鞋", | ||
| 465 | - "key": "拖鞋", | ||
| 466 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/6.jpg", | ||
| 467 | - "cat": 5 | ||
| 468 | - }, | ||
| 469 | - { | ||
| 470 | - "name": "凉鞋", | ||
| 471 | - "key": "凉鞋", | ||
| 472 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/7.jpg", | ||
| 473 | - "cat": 5 | ||
| 474 | - }, | ||
| 475 | - { | ||
| 476 | - "name": "休闲鞋", | ||
| 477 | - "key": "休闲鞋", | ||
| 478 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/8.jpg", | ||
| 479 | - "cat": 5 | ||
| 480 | - }, | ||
| 481 | - { | ||
| 482 | - "name": "高跟鞋", | ||
| 483 | - "key": "高跟鞋", | ||
| 484 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/9.jpg", | ||
| 485 | - "cat": 5 | ||
| 486 | - }, | ||
| 487 | - { | ||
| 488 | - "name": "老人鞋", | ||
| 489 | - "key": "老人鞋", | ||
| 490 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/10.jpg", | ||
| 491 | - "cat": 5 | ||
| 492 | - }, | ||
| 493 | - { | ||
| 494 | - "name": "懒人鞋", | ||
| 495 | - "key": "懒人鞋", | ||
| 496 | - "icon": "https://cdn.uviewui.com/uview/common/classify/6/11.jpg", | ||
| 497 | - "cat": 5 | ||
| 498 | - } | ||
| 499 | - ] | ||
| 500 | - }, | ||
| 501 | - { | ||
| 502 | - "name": "数码家电", | ||
| 503 | - "foods": [ | ||
| 504 | - { | ||
| 505 | - "name": "数据线", | ||
| 506 | - "key": "数据线", | ||
| 507 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/1.jpg", | ||
| 508 | - "cat": 8 | ||
| 509 | - }, | ||
| 510 | - { | ||
| 511 | - "name": "耳机", | ||
| 512 | - "key": "耳机", | ||
| 513 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/2.jpg", | ||
| 514 | - "cat": 8 | ||
| 515 | - }, | ||
| 516 | - { | ||
| 517 | - "name": "生活家电", | ||
| 518 | - "key": "家电", | ||
| 519 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/3.jpg", | ||
| 520 | - "cat": 8 | ||
| 521 | - }, | ||
| 522 | - { | ||
| 523 | - "name": "电风扇", | ||
| 524 | - "key": "电风扇", | ||
| 525 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/4.jpg", | ||
| 526 | - "cat": 8 | ||
| 527 | - }, | ||
| 528 | - { | ||
| 529 | - "name": "电吹风", | ||
| 530 | - "key": "电吹风", | ||
| 531 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/5.jpg", | ||
| 532 | - "cat": 8 | ||
| 533 | - }, | ||
| 534 | - { | ||
| 535 | - "name": "手机壳", | ||
| 536 | - "key": "手机壳", | ||
| 537 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/6.jpg", | ||
| 538 | - "cat": 8 | ||
| 539 | - }, | ||
| 540 | - { | ||
| 541 | - "name": "榨汁机", | ||
| 542 | - "key": "榨汁机", | ||
| 543 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/7.jpg", | ||
| 544 | - "cat": 8 | ||
| 545 | - }, | ||
| 546 | - { | ||
| 547 | - "name": "小家电", | ||
| 548 | - "key": "小家电", | ||
| 549 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/8.jpg", | ||
| 550 | - "cat": 8 | ||
| 551 | - }, | ||
| 552 | - { | ||
| 553 | - "name": "数码电子", | ||
| 554 | - "key": "数码", | ||
| 555 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/9.jpg", | ||
| 556 | - "cat": 8 | ||
| 557 | - }, | ||
| 558 | - { | ||
| 559 | - "name": "电饭锅", | ||
| 560 | - "key": "电饭锅", | ||
| 561 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/10.jpg", | ||
| 562 | - "cat": 8 | ||
| 563 | - }, | ||
| 564 | - { | ||
| 565 | - "name": "手机支架", | ||
| 566 | - "key": "手机支架", | ||
| 567 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/11.jpg", | ||
| 568 | - "cat": 8 | ||
| 569 | - }, | ||
| 570 | - { | ||
| 571 | - "name": "剃须刀", | ||
| 572 | - "key": "剃须刀", | ||
| 573 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/12.jpg", | ||
| 574 | - "cat": 8 | ||
| 575 | - }, | ||
| 576 | - { | ||
| 577 | - "name": "充电宝", | ||
| 578 | - "key": "充电宝", | ||
| 579 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/13.jpg", | ||
| 580 | - "cat": 8 | ||
| 581 | - }, | ||
| 582 | - { | ||
| 583 | - "name": "手机配件", | ||
| 584 | - "key": "手机配件", | ||
| 585 | - "icon": "https://cdn.uviewui.com/uview/common/classify/7/14.jpg", | ||
| 586 | - "cat": 8 | ||
| 587 | - } | ||
| 588 | - ] | ||
| 589 | - }, | ||
| 590 | - { | ||
| 591 | - "name": "母婴", | ||
| 592 | - "foods": [ | ||
| 593 | - { | ||
| 594 | - "name": "婴童服饰", | ||
| 595 | - "key": "衣服", | ||
| 596 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/1.jpg", | ||
| 597 | - "cat": 2 | ||
| 598 | - }, | ||
| 599 | - { | ||
| 600 | - "name": "玩具乐器", | ||
| 601 | - "key": "玩具乐器", | ||
| 602 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/2.jpg", | ||
| 603 | - "cat": 2 | ||
| 604 | - }, | ||
| 605 | - { | ||
| 606 | - "name": "尿不湿", | ||
| 607 | - "key": "尿不湿", | ||
| 608 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/3.jpg", | ||
| 609 | - "cat": 2 | ||
| 610 | - }, | ||
| 611 | - { | ||
| 612 | - "name": "安抚牙胶", | ||
| 613 | - "key": "安抚牙胶", | ||
| 614 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/4.jpg", | ||
| 615 | - "cat": 2 | ||
| 616 | - }, | ||
| 617 | - { | ||
| 618 | - "name": "奶瓶奶嘴", | ||
| 619 | - "key": "奶瓶奶嘴", | ||
| 620 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/5.jpg", | ||
| 621 | - "cat": 2 | ||
| 622 | - }, | ||
| 623 | - { | ||
| 624 | - "name": "孕妈用品", | ||
| 625 | - "key": "孕妈用品", | ||
| 626 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/6.jpg", | ||
| 627 | - "cat": 2 | ||
| 628 | - }, | ||
| 629 | - { | ||
| 630 | - "name": "宝宝用品", | ||
| 631 | - "key": "宝宝用品", | ||
| 632 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/7.jpg", | ||
| 633 | - "cat": 2 | ||
| 634 | - }, | ||
| 635 | - { | ||
| 636 | - "name": "婴童湿巾", | ||
| 637 | - "key": "湿巾", | ||
| 638 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/8.jpg", | ||
| 639 | - "cat": 2 | ||
| 640 | - }, | ||
| 641 | - { | ||
| 642 | - "name": "喂养洗护", | ||
| 643 | - "key": "洗护", | ||
| 644 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/9.jpg", | ||
| 645 | - "cat": 2 | ||
| 646 | - }, | ||
| 647 | - { | ||
| 648 | - "name": "婴童鞋靴", | ||
| 649 | - "key": "童鞋", | ||
| 650 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/10.jpg", | ||
| 651 | - "cat": 2 | ||
| 652 | - }, | ||
| 653 | - { | ||
| 654 | - "name": "口水巾", | ||
| 655 | - "key": "口水巾", | ||
| 656 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/11.jpg", | ||
| 657 | - "cat": 2 | ||
| 658 | - }, | ||
| 659 | - { | ||
| 660 | - "name": "营养辅食", | ||
| 661 | - "key": "营养", | ||
| 662 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/12.jpg", | ||
| 663 | - "cat": 2 | ||
| 664 | - }, | ||
| 665 | - { | ||
| 666 | - "name": "婴幼书籍", | ||
| 667 | - "key": "书籍", | ||
| 668 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/13.jpg", | ||
| 669 | - "cat": 2 | ||
| 670 | - }, | ||
| 671 | - { | ||
| 672 | - "name": "婴儿车", | ||
| 673 | - "key": "婴儿车", | ||
| 674 | - "icon": "https://cdn.uviewui.com/uview/common/classify/8/14.jpg", | ||
| 675 | - "cat": 2 | ||
| 676 | - } | ||
| 677 | - ] | ||
| 678 | - }, | ||
| 679 | - { | ||
| 680 | - "name": "箱包", | ||
| 681 | - "foods": [ | ||
| 682 | - { | ||
| 683 | - "name": "单肩包", | ||
| 684 | - "key": "单肩包", | ||
| 685 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/1.jpg", | ||
| 686 | - "cat": 0 | ||
| 687 | - }, | ||
| 688 | - { | ||
| 689 | - "name": "斜挎包", | ||
| 690 | - "key": "斜挎包", | ||
| 691 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/2.jpg", | ||
| 692 | - "cat": 0 | ||
| 693 | - }, | ||
| 694 | - { | ||
| 695 | - "name": "女包", | ||
| 696 | - "key": "女包", | ||
| 697 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/3.jpg", | ||
| 698 | - "cat": 0 | ||
| 699 | - }, | ||
| 700 | - { | ||
| 701 | - "name": "男包", | ||
| 702 | - "key": "男包", | ||
| 703 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/4.jpg", | ||
| 704 | - "cat": 0 | ||
| 705 | - }, | ||
| 706 | - { | ||
| 707 | - "name": "双肩包", | ||
| 708 | - "key": "双肩包", | ||
| 709 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/5.jpg", | ||
| 710 | - "cat": 0 | ||
| 711 | - }, | ||
| 712 | - { | ||
| 713 | - "name": "小方包", | ||
| 714 | - "key": "小方包", | ||
| 715 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/6.jpg", | ||
| 716 | - "cat": 0 | ||
| 717 | - }, | ||
| 718 | - { | ||
| 719 | - "name": "钱包", | ||
| 720 | - "key": "钱包", | ||
| 721 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/7.jpg", | ||
| 722 | - "cat": 0 | ||
| 723 | - }, | ||
| 724 | - { | ||
| 725 | - "name": "旅行箱包", | ||
| 726 | - "key": "旅行箱包", | ||
| 727 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/8.jpg", | ||
| 728 | - "cat": 0 | ||
| 729 | - }, | ||
| 730 | - { | ||
| 731 | - "name": "零钱包", | ||
| 732 | - "key": "零钱包", | ||
| 733 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/9.jpg", | ||
| 734 | - "cat": 0 | ||
| 735 | - }, | ||
| 736 | - { | ||
| 737 | - "name": "手提包", | ||
| 738 | - "key": "手提包", | ||
| 739 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/10.jpg", | ||
| 740 | - "cat": 0 | ||
| 741 | - }, | ||
| 742 | - { | ||
| 743 | - "name": "胸包", | ||
| 744 | - "key": "胸包", | ||
| 745 | - "icon": "https://cdn.uviewui.com/uview/common/classify/9/11.jpg", | ||
| 746 | - "cat": 0 | ||
| 747 | - } | ||
| 748 | - ] | ||
| 749 | - }, | ||
| 750 | - { | ||
| 751 | - "name": "内衣", | ||
| 752 | - "foods": [ | ||
| 753 | - { | ||
| 754 | - "name": "袜子", | ||
| 755 | - "key": "袜子", | ||
| 756 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/1.jpg", | ||
| 757 | - "cat": 11 | ||
| 758 | - }, | ||
| 759 | - { | ||
| 760 | - "name": "吊带背心", | ||
| 761 | - "key": "吊带背心", | ||
| 762 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/2.jpg", | ||
| 763 | - "cat": 11 | ||
| 764 | - }, | ||
| 765 | - { | ||
| 766 | - "name": "抹胸", | ||
| 767 | - "key": "抹胸", | ||
| 768 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/3.jpg", | ||
| 769 | - "cat": 11 | ||
| 770 | - }, | ||
| 771 | - { | ||
| 772 | - "name": "内裤", | ||
| 773 | - "key": "内裤", | ||
| 774 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/4.jpg", | ||
| 775 | - "cat": 11 | ||
| 776 | - }, | ||
| 777 | - { | ||
| 778 | - "name": "文胸", | ||
| 779 | - "key": "文胸", | ||
| 780 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/5.jpg", | ||
| 781 | - "cat": 11 | ||
| 782 | - }, | ||
| 783 | - { | ||
| 784 | - "name": "文胸套装", | ||
| 785 | - "key": "文胸套装", | ||
| 786 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/6.jpg", | ||
| 787 | - "cat": 11 | ||
| 788 | - }, | ||
| 789 | - { | ||
| 790 | - "name": "打底塑身", | ||
| 791 | - "key": "打底塑身", | ||
| 792 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/7.jpg", | ||
| 793 | - "cat": 11 | ||
| 794 | - }, | ||
| 795 | - { | ||
| 796 | - "name": "家居服", | ||
| 797 | - "key": "家居服", | ||
| 798 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/8.jpg", | ||
| 799 | - "cat": 11 | ||
| 800 | - }, | ||
| 801 | - { | ||
| 802 | - "name": "船袜", | ||
| 803 | - "key": "船袜", | ||
| 804 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/9.jpg", | ||
| 805 | - "cat": 11 | ||
| 806 | - }, | ||
| 807 | - { | ||
| 808 | - "name": "情侣睡衣", | ||
| 809 | - "key": "情侣睡衣", | ||
| 810 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/10.jpg", | ||
| 811 | - "cat": 11 | ||
| 812 | - }, | ||
| 813 | - { | ||
| 814 | - "name": "丝袜", | ||
| 815 | - "key": "丝袜", | ||
| 816 | - "icon": "https://cdn.uviewui.com/uview/common/classify/10/11.jpg", | ||
| 817 | - "cat": 11 | ||
| 818 | - } | ||
| 819 | - ] | ||
| 820 | - }, | ||
| 821 | - { | ||
| 822 | - "name": "文娱车品", | ||
| 823 | - "foods": [ | ||
| 824 | - { | ||
| 825 | - "name": "车市车品", | ||
| 826 | - "key": "车市车品", | ||
| 827 | - "icon": "https://cdn.uviewui.com/uview/common/classify/11/1.jpg", | ||
| 828 | - "cat": 7 | ||
| 829 | - }, | ||
| 830 | - { | ||
| 831 | - "name": "办公文具", | ||
| 832 | - "key": "办公文具", | ||
| 833 | - "icon": "https://cdn.uviewui.com/uview/common/classify/11/2.jpg", | ||
| 834 | - "cat": 7 | ||
| 835 | - }, | ||
| 836 | - { | ||
| 837 | - "name": "考试必备", | ||
| 838 | - "key": "考试必备", | ||
| 839 | - "icon": "https://cdn.uviewui.com/uview/common/classify/11/3.jpg", | ||
| 840 | - "cat": 7 | ||
| 841 | - }, | ||
| 842 | - { | ||
| 843 | - "name": "笔记本", | ||
| 844 | - "key": "笔记本", | ||
| 845 | - "icon": "https://cdn.uviewui.com/uview/common/classify/11/4.jpg", | ||
| 846 | - "cat": 7 | ||
| 847 | - }, | ||
| 848 | - { | ||
| 849 | - "name": "艺术礼品", | ||
| 850 | - "key": "礼品", | ||
| 851 | - "icon": "https://cdn.uviewui.com/uview/common/classify/11/5.jpg", | ||
| 852 | - "cat": 7 | ||
| 853 | - }, | ||
| 854 | - { | ||
| 855 | - "name": "书写工具", | ||
| 856 | - "key": "书写工具", | ||
| 857 | - "icon": "https://cdn.uviewui.com/uview/common/classify/11/6.jpg", | ||
| 858 | - "cat": 7 | ||
| 859 | - }, | ||
| 860 | - { | ||
| 861 | - "name": "车载电器", | ||
| 862 | - "key": "车载电器", | ||
| 863 | - "icon": "https://cdn.uviewui.com/uview/common/classify/11/7.jpg", | ||
| 864 | - "cat": 7 | ||
| 865 | - }, | ||
| 866 | - { | ||
| 867 | - "name": "图书音像", | ||
| 868 | - "key": "图书音像", | ||
| 869 | - "icon": "https://cdn.uviewui.com/uview/common/classify/11/8.jpg", | ||
| 870 | - "cat": 7 | ||
| 871 | - }, | ||
| 872 | - { | ||
| 873 | - "name": "画具画材", | ||
| 874 | - "key": "画具画材", | ||
| 875 | - "icon": "https://cdn.uviewui.com/uview/common/classify/11/9.jpg", | ||
| 876 | - "cat": 7 | ||
| 877 | - } | ||
| 878 | - ] | ||
| 879 | - }, | ||
| 880 | - { | ||
| 881 | - "name": "配饰", | ||
| 882 | - "foods": [ | ||
| 883 | - { | ||
| 884 | - "name": "太阳镜", | ||
| 885 | - "key": "太阳镜", | ||
| 886 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/1.jpg", | ||
| 887 | - "cat": 0 | ||
| 888 | - }, | ||
| 889 | - { | ||
| 890 | - "name": "皮带", | ||
| 891 | - "key": "皮带", | ||
| 892 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/2.jpg", | ||
| 893 | - "cat": 0 | ||
| 894 | - }, | ||
| 895 | - { | ||
| 896 | - "name": "棒球帽", | ||
| 897 | - "key": "棒球帽", | ||
| 898 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/3.jpg", | ||
| 899 | - "cat": 0 | ||
| 900 | - }, | ||
| 901 | - { | ||
| 902 | - "name": "手表", | ||
| 903 | - "key": "手表", | ||
| 904 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/4.jpg", | ||
| 905 | - "cat": 0 | ||
| 906 | - }, | ||
| 907 | - { | ||
| 908 | - "name": "发饰", | ||
| 909 | - "key": "发饰", | ||
| 910 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/5.jpg", | ||
| 911 | - "cat": 0 | ||
| 912 | - }, | ||
| 913 | - { | ||
| 914 | - "name": "项链", | ||
| 915 | - "key": "项链", | ||
| 916 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/6.jpg", | ||
| 917 | - "cat": 0 | ||
| 918 | - }, | ||
| 919 | - { | ||
| 920 | - "name": "手饰", | ||
| 921 | - "key": "手饰", | ||
| 922 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/7.jpg", | ||
| 923 | - "cat": 0 | ||
| 924 | - }, | ||
| 925 | - { | ||
| 926 | - "name": "耳环", | ||
| 927 | - "key": "耳环", | ||
| 928 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/8.jpg", | ||
| 929 | - "cat": 0 | ||
| 930 | - }, | ||
| 931 | - { | ||
| 932 | - "name": "帽子丝巾", | ||
| 933 | - "key": "帽子丝巾", | ||
| 934 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/9.jpg", | ||
| 935 | - "cat": 0 | ||
| 936 | - }, | ||
| 937 | - { | ||
| 938 | - "name": "眼镜墨镜", | ||
| 939 | - "key": "眼镜墨镜", | ||
| 940 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/10.jpg", | ||
| 941 | - "cat": 0 | ||
| 942 | - }, | ||
| 943 | - { | ||
| 944 | - "name": "发带发箍", | ||
| 945 | - "key": "发带发箍", | ||
| 946 | - "icon": "https://cdn.uviewui.com/uview/common/classify/12/11.jpg", | ||
| 947 | - "cat": 0 | ||
| 948 | - } | ||
| 949 | - ] | ||
| 950 | - }, | ||
| 951 | - { | ||
| 952 | - "name": "家装家纺", | ||
| 953 | - "foods": [ | ||
| 954 | - { | ||
| 955 | - "name": "家居饰品", | ||
| 956 | - "key": "家居饰品", | ||
| 957 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/1.jpg", | ||
| 958 | - "cat": 0 | ||
| 959 | - }, | ||
| 960 | - { | ||
| 961 | - "name": "凉席", | ||
| 962 | - "key": "凉席", | ||
| 963 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/2.jpg", | ||
| 964 | - "cat": 0 | ||
| 965 | - }, | ||
| 966 | - { | ||
| 967 | - "name": "背枕靠枕", | ||
| 968 | - "key": "靠枕", | ||
| 969 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/3.jpg", | ||
| 970 | - "cat": 0 | ||
| 971 | - }, | ||
| 972 | - { | ||
| 973 | - "name": "床上用品", | ||
| 974 | - "key": "床上用品", | ||
| 975 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/4.jpg", | ||
| 976 | - "cat": 0 | ||
| 977 | - }, | ||
| 978 | - { | ||
| 979 | - "name": "摆件", | ||
| 980 | - "key": "摆件", | ||
| 981 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/5.jpg", | ||
| 982 | - "cat": 0 | ||
| 983 | - }, | ||
| 984 | - { | ||
| 985 | - "name": "四件套", | ||
| 986 | - "key": "四件套", | ||
| 987 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/6.jpg", | ||
| 988 | - "cat": 0 | ||
| 989 | - }, | ||
| 990 | - { | ||
| 991 | - "name": "装饰品", | ||
| 992 | - "key": "装饰品", | ||
| 993 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/7.jpg", | ||
| 994 | - "cat": 0 | ||
| 995 | - }, | ||
| 996 | - { | ||
| 997 | - "name": "卫浴用品", | ||
| 998 | - "key": "卫浴", | ||
| 999 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/8.jpg", | ||
| 1000 | - "cat": 0 | ||
| 1001 | - }, | ||
| 1002 | - { | ||
| 1003 | - "name": "家居家装", | ||
| 1004 | - "key": "家具", | ||
| 1005 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/9.jpg", | ||
| 1006 | - "cat": 0 | ||
| 1007 | - }, | ||
| 1008 | - { | ||
| 1009 | - "name": "蚊帐", | ||
| 1010 | - "key": "蚊帐", | ||
| 1011 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/10.jpg", | ||
| 1012 | - "cat": 0 | ||
| 1013 | - }, | ||
| 1014 | - { | ||
| 1015 | - "name": "墙纸贴纸", | ||
| 1016 | - "key": "墙纸", | ||
| 1017 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/11.jpg", | ||
| 1018 | - "cat": 0 | ||
| 1019 | - }, | ||
| 1020 | - { | ||
| 1021 | - "name": "空调被", | ||
| 1022 | - "key": "空调被", | ||
| 1023 | - "icon": "https://cdn.uviewui.com/uview/common/classify/13/12.jpg", | ||
| 1024 | - "cat": 0 | ||
| 1025 | - } | ||
| 1026 | - ] | ||
| 1027 | - }, | ||
| 1028 | - { | ||
| 1029 | - "name": "户外运动", | ||
| 1030 | - "foods": [ | ||
| 1031 | - { | ||
| 1032 | - "name": "游泳装备", | ||
| 1033 | - "key": "游泳", | ||
| 1034 | - "icon": "https://cdn.uviewui.com/uview/common/classify/14/1.jpg", | ||
| 1035 | - "cat": 0 | ||
| 1036 | - }, | ||
| 1037 | - { | ||
| 1038 | - "name": "泳镜", | ||
| 1039 | - "key": "泳镜", | ||
| 1040 | - "icon": "https://cdn.uviewui.com/uview/common/classify/14/2.jpg", | ||
| 1041 | - "cat": 0 | ||
| 1042 | - }, | ||
| 1043 | - { | ||
| 1044 | - "name": "户外装备", | ||
| 1045 | - "key": "户外", | ||
| 1046 | - "icon": "https://cdn.uviewui.com/uview/common/classify/14/3.jpg", | ||
| 1047 | - "cat": 0 | ||
| 1048 | - }, | ||
| 1049 | - { | ||
| 1050 | - "name": "健身服饰", | ||
| 1051 | - "key": "健身", | ||
| 1052 | - "icon": "https://cdn.uviewui.com/uview/common/classify/14/4.jpg", | ||
| 1053 | - "cat": 0 | ||
| 1054 | - }, | ||
| 1055 | - { | ||
| 1056 | - "name": "泳衣", | ||
| 1057 | - "key": "泳衣", | ||
| 1058 | - "icon": "https://cdn.uviewui.com/uview/common/classify/14/5.jpg", | ||
| 1059 | - "cat": 0 | ||
| 1060 | - }, | ||
| 1061 | - { | ||
| 1062 | - "name": "瑜伽垫", | ||
| 1063 | - "key": "瑜伽垫", | ||
| 1064 | - "icon": "https://cdn.uviewui.com/uview/common/classify/14/6.jpg", | ||
| 1065 | - "cat": 0 | ||
| 1066 | - }, | ||
| 1067 | - { | ||
| 1068 | - "name": "瑜伽用品", | ||
| 1069 | - "key": "瑜伽", | ||
| 1070 | - "icon": "https://cdn.uviewui.com/uview/common/classify/14/7.jpg", | ||
| 1071 | - "cat": 0 | ||
| 1072 | - }, | ||
| 1073 | - { | ||
| 1074 | - "name": "健身装备", | ||
| 1075 | - "key": "健身", | ||
| 1076 | - "icon": "https://cdn.uviewui.com/uview/common/classify/14/8.jpg", | ||
| 1077 | - "cat": 0 | ||
| 1078 | - }, | ||
| 1079 | - { | ||
| 1080 | - "name": "球迷用品", | ||
| 1081 | - "key": "球迷", | ||
| 1082 | - "icon": "https://cdn.uviewui.com/uview/common/classify/14/9.jpg", | ||
| 1083 | - "cat": 0 | ||
| 1084 | - } | ||
| 1085 | - ] | ||
| 1086 | - } | ||
| 1087 | -] | ||
| 1088 | \ No newline at end of file | 0 | \ No newline at end of file |
garbage-removal/src/components/next-tree/style.css
| @@ -15,15 +15,14 @@ | @@ -15,15 +15,14 @@ | ||
| 15 | opacity: 1; | 15 | opacity: 1; |
| 16 | } | 16 | } |
| 17 | .next-tree-cnt { | 17 | .next-tree-cnt { |
| 18 | - position: fixed; | ||
| 19 | - top: 0rpx; | ||
| 20 | - right: 0rpx; | ||
| 21 | - bottom: 0rpx; | ||
| 22 | - left: 0rpx; | ||
| 23 | - z-index: 997; | ||
| 24 | - top: 360rpx; | ||
| 25 | - transition: all 0.3s ease; | ||
| 26 | - transform: translateY(100%); | 18 | + position: fixed; |
| 19 | + top: 360rpx; | ||
| 20 | + right: 0rpx; | ||
| 21 | + bottom: 0rpx; /* 添加这一行,确保容器到底部 */ | ||
| 22 | + left: 0rpx; | ||
| 23 | + z-index: 997; | ||
| 24 | + transition: all 0.3s ease; | ||
| 25 | + transform: translateY(100%); | ||
| 27 | } | 26 | } |
| 28 | .next-tree-cnt.next-tree-cnt-page { | 27 | .next-tree-cnt.next-tree-cnt-page { |
| 29 | transition: none; | 28 | transition: none; |
| @@ -62,21 +61,17 @@ | @@ -62,21 +61,17 @@ | ||
| 62 | color: #f9ae3d; | 61 | color: #f9ae3d; |
| 63 | } | 62 | } |
| 64 | .next-tree-view { | 63 | .next-tree-view { |
| 65 | - position: absolute; | ||
| 66 | - top: 0rpx; | ||
| 67 | - right: 0rpx; | ||
| 68 | - bottom: 0rpx; | ||
| 69 | - left: 0rpx; | ||
| 70 | - top: 72rpx; | ||
| 71 | - background-color: #fff; | ||
| 72 | - padding-top: 20rpx; | ||
| 73 | - padding-right: 20rpx; | ||
| 74 | - padding-bottom: 20rpx; | ||
| 75 | - padding-left: 20rpx; | 64 | + position: absolute; |
| 65 | + top: 72rpx; | ||
| 66 | + right: 0rpx; | ||
| 67 | + bottom: 0rpx; /* 添加这一行,确保内容区域到底部 */ | ||
| 68 | + left: 0rpx; | ||
| 69 | + background-color: #fff; | ||
| 70 | + padding: 20rpx; | ||
| 76 | } | 71 | } |
| 77 | .next-tree-view-sc { | 72 | .next-tree-view-sc { |
| 78 | - height: 100%; | ||
| 79 | - overflow: hidden; | 73 | + height: calc(100% - 40rpx); /* 减去内边距 */ |
| 74 | + overflow-y: auto; /* 确保垂直滚动 */ | ||
| 80 | } | 75 | } |
| 81 | .next-tree-view-sc .empty { | 76 | .next-tree-view-sc .empty { |
| 82 | text-align: center; | 77 | text-align: center; |
garbage-removal/src/pages/home-info/address/addSite.vue
| @@ -170,7 +170,7 @@ const chooseAddressDetail = () => { | @@ -170,7 +170,7 @@ const chooseAddressDetail = () => { | ||
| 170 | 170 | ||
| 171 | // 先获取当前位置的经纬度 | 171 | // 先获取当前位置的经纬度 |
| 172 | uni.getLocation({ | 172 | uni.getLocation({ |
| 173 | - type: 'gcj02', // 使用国测局坐标系,与地图选择器的坐标系一致 | 173 | + type: 'gcj02', |
| 174 | altitude: false, | 174 | altitude: false, |
| 175 | success: (locationRes) => { | 175 | success: (locationRes) => { |
| 176 | console.log('获取当前位置成功', locationRes); | 176 | console.log('获取当前位置成功', locationRes); |
garbage-removal/src/pages/home-info/address/citySelect/u-city-select.vue
| 1 | + | ||
| 1 | <template> | 2 | <template> |
| 2 | - <u-popup :show="modelValue" mode="bottom" :popup="false" :mask="true" :closeable="true" :safe-area-inset-bottom="true" | ||
| 3 | - close-icon-color="#ffffff" :z-index="uZIndex" :maskCloseAble="maskCloseAble" @close="close"> | ||
| 4 | - <u-tabs v-if="modelValue" :list="genTabsList" :scrollable="true" :current="tabsIndex" @change="tabsChange" | ||
| 5 | - ref="tabs"></u-tabs> | ||
| 6 | - <view class="area-box"> | ||
| 7 | - <view class="u-flex" :class="{ 'change': isChange }"> | ||
| 8 | - <view class="area-item"> | ||
| 9 | - <view class="u-padding-10 u-bg-gray" style="height: 100%;"> | ||
| 10 | - <scroll-view :scroll-y="true" style="height: 100%"> | ||
| 11 | - <u-cell-group> | ||
| 12 | - <u-cell v-for="(item, index) in provinces" :title="item.label" :arrow="false" :index="index" :key="index" | ||
| 13 | - @click="provinceChange(index)"> | ||
| 14 | - <template v-slot:right-icon> | ||
| 15 | - <u-icon v-if="isChooseP && province === index" size="17" name="checkbox-mark"></u-icon> | ||
| 16 | - </template> | ||
| 17 | - </u-cell> | ||
| 18 | - </u-cell-group> | ||
| 19 | - </scroll-view> | ||
| 20 | - </view> | ||
| 21 | - </view> | ||
| 22 | - <view class="area-item"> | ||
| 23 | - <view class="u-padding-10 u-bg-gray" style="height: 100%;"> | ||
| 24 | - <scroll-view :scroll-y="true" style="height: 100%"> | ||
| 25 | - <u-cell-group v-if="isChooseP"> | ||
| 26 | - <u-cell v-for="(item, index) in citys" :title="item.label" :arrow="false" :index="index" :key="index" | ||
| 27 | - @click="cityChange(index)"> | ||
| 28 | - <template v-slot:right-icon> | ||
| 29 | - <u-icon v-if="isChooseC && city === index" size="17" name="checkbox-mark"></u-icon> | ||
| 30 | - </template> | ||
| 31 | - </u-cell> | ||
| 32 | - </u-cell-group> | ||
| 33 | - </scroll-view> | ||
| 34 | - </view> | ||
| 35 | - </view> | ||
| 36 | - <view class="area-item"> | ||
| 37 | - <view class="u-padding-10 u-bg-gray" style="height: 100%;"> | ||
| 38 | - <scroll-view :scroll-y="true" style="height: 100%"> | ||
| 39 | - <u-cell-group v-if="isChooseC"> | ||
| 40 | - <u-cell v-for="(item, index) in areas" :title="item.label" :arrow="false" :index="index" :key="index" | ||
| 41 | - @click="areaChange(index)"> | ||
| 42 | - <template v-slot:right-icon> | ||
| 43 | - <u-icon v-if="isChooseA && area === index" size="17" name="checkbox-mark"></u-icon> | ||
| 44 | - </template> | ||
| 45 | - </u-cell> | ||
| 46 | - </u-cell-group> | ||
| 47 | - </scroll-view> | ||
| 48 | - </view> | ||
| 49 | - </view> | ||
| 50 | - </view> | ||
| 51 | - </view> | ||
| 52 | - </u-popup> | 3 | + <u-popup :show="modelValue" mode="bottom" :popup="false" :mask="true" :closeable="true" :safe-area-inset-bottom="true" |
| 4 | + close-icon-color="#ffffff" :z-index="uZIndex" :maskCloseAble="maskCloseAble" @close="close"> | ||
| 5 | + <u-tabs v-if="modelValue" :list="genTabsList" :scrollable="true" :current="tabsIndex" @change="tabsChange" | ||
| 6 | + ref="tabs"></u-tabs> | ||
| 7 | + <view class="area-box"> | ||
| 8 | + <view class="u-flex" :class="{ 'change': isChange }"> | ||
| 9 | + <!-- 删除省份选择部分 --> | ||
| 10 | + <!-- | ||
| 11 | + <view class="area-item"> | ||
| 12 | + <view class="u-padding-10 u-bg-gray" style="height: 100%;"> | ||
| 13 | + <scroll-view :scroll-y="true" style="height: 100%"> | ||
| 14 | + <u-cell-group> | ||
| 15 | + <u-cell v-for="(item, index) in provinces" :title="item.label" :arrow="false" :index="index" :key="index" | ||
| 16 | + @click="provinceChange(index)"> | ||
| 17 | + <template v-slot:right-icon> | ||
| 18 | + <u-icon v-if="isChooseP && province === index" size="17" name="checkbox-mark"></u-icon> | ||
| 19 | + </template> | ||
| 20 | + </u-cell> | ||
| 21 | + </u-cell-group> | ||
| 22 | + </scroll-view> | ||
| 23 | + </view> | ||
| 24 | + </view> | ||
| 25 | + --> | ||
| 26 | + <!-- 修改为直接显示长沙市 --> | ||
| 27 | + <view class="area-item"> | ||
| 28 | + <view class="u-padding-10 u-bg-gray" style="height: 100%;"> | ||
| 29 | + <scroll-view :scroll-y="true" style="height: 100%"> | ||
| 30 | + <u-cell-group> | ||
| 31 | + <u-cell title="长沙市" :arrow="false" index="0" key="0"> | ||
| 32 | + <template v-slot:right-icon> | ||
| 33 | + <u-icon size="17" name="checkbox-mark"></u-icon> | ||
| 34 | + </template> | ||
| 35 | + </u-cell> | ||
| 36 | + </u-cell-group> | ||
| 37 | + </scroll-view> | ||
| 38 | + </view> | ||
| 39 | + </view> | ||
| 40 | + <view class="area-item"> | ||
| 41 | + <view class="u-padding-10 u-bg-gray" style="height: 100%;"> | ||
| 42 | + <scroll-view :scroll-y="true" style="height: 100%"> | ||
| 43 | + <u-cell-group> | ||
| 44 | + <u-cell v-for="(item, index) in areas" :title="item.label" :arrow="false" :index="index" :key="index" | ||
| 45 | + @click="areaChange(index)"> | ||
| 46 | + <template v-slot:right-icon> | ||
| 47 | + <u-icon v-if="isChooseA && area === index" size="17" name="checkbox-mark"></u-icon> | ||
| 48 | + </template> | ||
| 49 | + </u-cell> | ||
| 50 | + </u-cell-group> | ||
| 51 | + </scroll-view> | ||
| 52 | + </view> | ||
| 53 | + </view> | ||
| 54 | + </view> | ||
| 55 | + </view> | ||
| 56 | + </u-popup> | ||
| 53 | </template> | 57 | </template> |
| 54 | 58 | ||
| 55 | -<script> | ||
| 56 | -import areas from "@/common/area.js"; | 59 | +<script>import areas from "@/common/area.js"; |
| 57 | import citys from "@/common/city.js"; | 60 | import citys from "@/common/city.js"; |
| 58 | import provinces from "@/common/province.js"; | 61 | import provinces from "@/common/province.js"; |
| 59 | /** | 62 | /** |
| @@ -64,176 +67,138 @@ import provinces from "@/common/province.js"; | @@ -64,176 +67,138 @@ import provinces from "@/common/province.js"; | ||
| 64 | * @property {String} default-code 默认选中的地区,编号形式 | 67 | * @property {String} default-code 默认选中的地区,编号形式 |
| 65 | */ | 68 | */ |
| 66 | export default { | 69 | export default { |
| 67 | - name: 'u-city-select', | ||
| 68 | - props: { | ||
| 69 | - // 通过双向绑定控制组件的弹出与收起 | ||
| 70 | - modelValue: { | ||
| 71 | - type: Boolean, | ||
| 72 | - default: false | ||
| 73 | - }, | ||
| 74 | - // 默认显示的地区,可传类似["河北省", "秦皇岛市", "北戴河区"] | ||
| 75 | - defaultRegion: { | ||
| 76 | - type: Array, | ||
| 77 | - default() { | ||
| 78 | - return []; | ||
| 79 | - } | ||
| 80 | - }, | ||
| 81 | - // 默认显示地区的编码,defaultRegion和areaCode同时存在,areaCode优先,可传类似["13", "1303", "130304"] | ||
| 82 | - areaCode: { | ||
| 83 | - type: Array, | ||
| 84 | - default() { | ||
| 85 | - return []; | ||
| 86 | - } | ||
| 87 | - }, | ||
| 88 | - // 是否允许通过点击遮罩关闭Picker | ||
| 89 | - maskCloseAble: { | ||
| 90 | - type: Boolean, | ||
| 91 | - default: true | ||
| 92 | - }, | ||
| 93 | - // 弹出的z-index值 | ||
| 94 | - zIndex: { | ||
| 95 | - type: [String, Number], | ||
| 96 | - default: 0 | ||
| 97 | - } | ||
| 98 | - }, | ||
| 99 | - data() { | ||
| 100 | - return { | ||
| 101 | - cityValue: "", | ||
| 102 | - isChooseP: false, //是否已经选择了省 | ||
| 103 | - province: 0, //省级下标 | ||
| 104 | - provinces: provinces, | ||
| 105 | - isChooseC: false, //是否已经选择了市 | ||
| 106 | - city: 0, //市级下标 | ||
| 107 | - citys: citys[0], | ||
| 108 | - isChooseA: false, //是否已经选择了区 | ||
| 109 | - area: 0, //区级下标 | ||
| 110 | - areas: areas[0][0], | ||
| 111 | - tabsIndex: 0, | ||
| 112 | - } | ||
| 113 | - }, | ||
| 114 | - mounted() { | ||
| 115 | - this.init(); | ||
| 116 | - }, | ||
| 117 | - computed: { | ||
| 118 | - isChange() { | ||
| 119 | - return this.tabsIndex > 1; | ||
| 120 | - }, | ||
| 121 | - genTabsList() { | ||
| 122 | - let tabsList = [{ | ||
| 123 | - name: "请选择" | ||
| 124 | - }]; | ||
| 125 | - if (this.isChooseP) { | ||
| 126 | - console.log(this.province) | ||
| 127 | - tabsList[0]['name'] = this.provinces[this.province]['label']; | ||
| 128 | - tabsList[1] = { | ||
| 129 | - name: "请选择" | ||
| 130 | - }; | ||
| 131 | - } | ||
| 132 | - if (this.isChooseC) { | ||
| 133 | - tabsList[1]['name'] = this.citys[this.city]['label']; | ||
| 134 | - tabsList[2] = { | ||
| 135 | - name: "请选择" | ||
| 136 | - }; | ||
| 137 | - } | ||
| 138 | - if (this.isChooseA) { | ||
| 139 | - tabsList[2]['name'] = this.areas[this.area]['label']; | ||
| 140 | - } | ||
| 141 | - return tabsList; | ||
| 142 | - }, | ||
| 143 | - uZIndex() { | ||
| 144 | - // 如果用户有传递z-index值,优先使用 | ||
| 145 | - return this.zIndex ? this.zIndex : this.$u.zIndex.popup; | ||
| 146 | - } | ||
| 147 | - }, | ||
| 148 | - emits: ['city-change'], | ||
| 149 | - methods: { | ||
| 150 | - init() { | ||
| 151 | - if (this.areaCode.length == 3) { | ||
| 152 | - this.setProvince("", this.areaCode[0]); | ||
| 153 | - this.setCity("", this.areaCode[1]); | ||
| 154 | - this.setArea("", this.areaCode[2]); | ||
| 155 | - } else if (this.defaultRegion.length == 3) { | ||
| 156 | - this.setProvince(this.defaultRegion[0], ""); | ||
| 157 | - this.setCity(this.defaultRegion[1], ""); | ||
| 158 | - this.setArea(this.defaultRegion[2], ""); | ||
| 159 | - }; | ||
| 160 | - }, | ||
| 161 | - setProvince(label = "", value = "") { | ||
| 162 | - this.provinces.map((v, k) => { | ||
| 163 | - if (value ? v.value == value : v.label == label) { | ||
| 164 | - this.provinceChange(k); | ||
| 165 | - } | ||
| 166 | - }) | ||
| 167 | - }, | ||
| 168 | - setCity(label = "", value = "") { | ||
| 169 | - this.citys.map((v, k) => { | ||
| 170 | - if (value ? v.value == value : v.label == label) { | ||
| 171 | - this.cityChange(k); | ||
| 172 | - } | ||
| 173 | - }) | ||
| 174 | - }, | ||
| 175 | - setArea(label = "", value = "") { | ||
| 176 | - this.areas.map((v, k) => { | ||
| 177 | - if (value ? v.value == value : v.label == label) { | ||
| 178 | - this.isChooseA = true; | ||
| 179 | - this.area = k; | ||
| 180 | - } | ||
| 181 | - }) | ||
| 182 | - }, | ||
| 183 | - close() { | ||
| 184 | - this.$emit('update:modelValue', false); | ||
| 185 | - }, | ||
| 186 | - tabsChange(index) { | ||
| 187 | - this.tabsIndex = index; | ||
| 188 | - }, | ||
| 189 | - provinceChange(index) { | ||
| 190 | - this.isChooseP = true; | ||
| 191 | - this.isChooseC = false; | ||
| 192 | - this.isChooseA = false; | ||
| 193 | - this.province = index; | ||
| 194 | - this.citys = citys[index]; | ||
| 195 | - this.tabsIndex = 1; | ||
| 196 | - }, | ||
| 197 | - cityChange(index) { | ||
| 198 | - this.isChooseC = true; | ||
| 199 | - this.isChooseA = false; | ||
| 200 | - this.city = index; | ||
| 201 | - this.areas = areas[this.province][index]; | ||
| 202 | - this.tabsIndex = 2; | ||
| 203 | - }, | ||
| 204 | - areaChange(index) { | ||
| 205 | - this.isChooseA = true; | ||
| 206 | - this.area = index; | ||
| 207 | - let result = {}; | ||
| 208 | - result.province = this.provinces[this.province]; | ||
| 209 | - result.city = this.citys[this.city]; | ||
| 210 | - result.area = this.areas[this.area]; | ||
| 211 | - this.$emit('city-change', result); | ||
| 212 | - this.close(); | ||
| 213 | - } | ||
| 214 | - } | 70 | + name: 'u-city-select', |
| 71 | + props: { | ||
| 72 | + // 通过双向绑定控制组件的弹出与收起 | ||
| 73 | + modelValue: { | ||
| 74 | + type: Boolean, | ||
| 75 | + default: false | ||
| 76 | + }, | ||
| 77 | + // 默认显示的地区,可传类似["河北省", "秦皇岛市", "北戴河区"] | ||
| 78 | + defaultRegion: { | ||
| 79 | + type: Array, | ||
| 80 | + default() { | ||
| 81 | + return []; | ||
| 82 | + } | ||
| 83 | + }, | ||
| 84 | + // 默认显示地区的编码,defaultRegion和areaCode同时存在,areaCode优先,可传类似["13", "1303", "130304"] | ||
| 85 | + areaCode: { | ||
| 86 | + type: Array, | ||
| 87 | + default() { | ||
| 88 | + return []; | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | + // 是否允许通过点击遮罩关闭Picker | ||
| 92 | + maskCloseAble: { | ||
| 93 | + type: Boolean, | ||
| 94 | + default: true | ||
| 95 | + }, | ||
| 96 | + // 弹出的z-index值 | ||
| 97 | + zIndex: { | ||
| 98 | + type: [String, Number], | ||
| 99 | + default: 0 | ||
| 100 | + } | ||
| 101 | + }, | ||
| 102 | + data() { | ||
| 103 | + return { | ||
| 104 | + cityValue: "", | ||
| 105 | + isChooseP: true, //默认已选择省份 | ||
| 106 | + province: 0, //湖南省的索引 | ||
| 107 | + provinces: provinces, | ||
| 108 | + isChooseC: true, //默认已选择城市 | ||
| 109 | + city: 0, //长沙市的索引 | ||
| 110 | + citys: citys[0], //湖南省的城市列表 | ||
| 111 | + isChooseA: false, //是否已经选择了区 | ||
| 112 | + area: 0, //区级下标 | ||
| 113 | + areas: areas[0][0], //长沙市的区域列表 | ||
| 114 | + tabsIndex: 1, //默认从城市开始 | ||
| 115 | + } | ||
| 116 | + }, | ||
| 117 | + mounted() { | ||
| 118 | + this.init(); | ||
| 119 | + }, | ||
| 120 | + computed: { | ||
| 121 | + // 过滤城市列表,只保留长沙市 | ||
| 122 | + filteredCitys() { | ||
| 123 | + // 只保留"长沙市",value为"4301" | ||
| 124 | + return this.citys.filter(city => city.label === "长沙市" || city.value === "4301"); | ||
| 125 | + }, | ||
| 126 | + isChange() { | ||
| 127 | + return this.tabsIndex > 1; | ||
| 128 | + }, | ||
| 129 | + genTabsList() { | ||
| 130 | + let tabsList = [{ | ||
| 131 | + name: "长沙市" | ||
| 132 | + }, { | ||
| 133 | + name: "请选择" | ||
| 134 | + }]; | ||
| 135 | + if (this.isChooseA) { | ||
| 136 | + tabsList[1]['name'] = this.areas[this.area]['label']; | ||
| 137 | + } | ||
| 138 | + return tabsList; | ||
| 139 | + }, | ||
| 140 | + uZIndex() { | ||
| 141 | + // 如果用户有传递z-index值,优先使用 | ||
| 142 | + return this.zIndex ? this.zIndex : this.$u.zIndex.popup; | ||
| 143 | + } | ||
| 144 | + }, | ||
| 145 | + emits: ['city-change'], | ||
| 146 | + methods: { | ||
| 147 | + init() { | ||
| 148 | + if (this.areaCode.length >= 2) { | ||
| 149 | + // 跳过省份设置,直接设置区域 | ||
| 150 | + this.setArea("", this.areaCode[2]); | ||
| 151 | + } else if (this.defaultRegion.length >= 2) { | ||
| 152 | + // 跳过省份和城市设置,直接设置区域 | ||
| 153 | + this.setArea(this.defaultRegion[2], ""); | ||
| 154 | + }; | ||
| 155 | + }, | ||
| 156 | + setArea(label = "", value = "") { | ||
| 157 | + this.areas.map((v, k) => { | ||
| 158 | + if (value ? v.value == value : v.label == label) { | ||
| 159 | + this.isChooseA = true; | ||
| 160 | + this.area = k; | ||
| 161 | + } | ||
| 162 | + }) | ||
| 163 | + }, | ||
| 164 | + close() { | ||
| 165 | + this.$emit('update:modelValue', false); | ||
| 166 | + }, | ||
| 167 | + tabsChange(index) { | ||
| 168 | + this.tabsIndex = index; | ||
| 169 | + }, | ||
| 170 | + areaChange(index) { | ||
| 171 | + this.isChooseA = true; | ||
| 172 | + this.area = index; | ||
| 173 | + let result = {}; | ||
| 174 | + result.province = this.provinces[this.province]; | ||
| 175 | + result.city = this.filteredCitys[this.city]; | ||
| 176 | + result.area = this.areas[this.area]; | ||
| 177 | + this.$emit('city-change', result); | ||
| 178 | + this.close(); | ||
| 179 | + } | ||
| 180 | + } | ||
| 215 | 181 | ||
| 216 | } | 182 | } |
| 217 | </script> | 183 | </script> |
| 218 | -<style lang="scss"> | ||
| 219 | -.area-box { | ||
| 220 | - width: 100%; | ||
| 221 | - overflow: hidden; | ||
| 222 | - height: 800rpx; | 184 | +<style lang="scss">.area-box { |
| 185 | + width: 100%; | ||
| 186 | + overflow: hidden; | ||
| 187 | + height: 800rpx; | ||
| 223 | 188 | ||
| 224 | - >view { | ||
| 225 | - width: 150%; | ||
| 226 | - transition: transform 0.3s ease-in-out 0s; | ||
| 227 | - transform: translateX(0); | 189 | + >view { |
| 190 | + width: 100%; /* 修改宽度以适应两列布局 */ | ||
| 191 | + transition: transform 0.3s ease-in-out 0s; | ||
| 192 | + transform: translateX(0); | ||
| 228 | 193 | ||
| 229 | - &.change { | ||
| 230 | - transform: translateX(-33.3333333%); | ||
| 231 | - } | ||
| 232 | - } | 194 | + &.change { |
| 195 | + transform: translateX(-50%); /* 修改为50%偏移量 */ | ||
| 196 | + } | ||
| 197 | + } | ||
| 233 | 198 | ||
| 234 | - .area-item { | ||
| 235 | - width: 33.3333333%; | ||
| 236 | - height: 800rpx; | ||
| 237 | - } | 199 | + .area-item { |
| 200 | + width: 50%; /* 每项占50%宽度 */ | ||
| 201 | + height: 800rpx; | ||
| 202 | + } | ||
| 238 | } | 203 | } |
| 239 | </style> | 204 | </style> |
garbage-removal/src/pages/home-info/clean/company-detail/index.vue
| @@ -133,25 +133,43 @@ const handleContactClick = (val) => { | @@ -133,25 +133,43 @@ const handleContactClick = (val) => { | ||
| 133 | } | 133 | } |
| 134 | onLoad((options) => { | 134 | onLoad((options) => { |
| 135 | let companyId; | 135 | let companyId; |
| 136 | - if (options.companyObj && options.userAddress && options.tel) { | ||
| 137 | - companyInfo.value = JSON.parse(options.companyObj); | ||
| 138 | - userAddress.value = JSON.parse(options.userAddress); | 136 | + // 首先处理companyObj,确保公司信息能够显示 |
| 137 | + if (options.companyObj) { | ||
| 138 | + try { | ||
| 139 | + companyInfo.value = JSON.parse(options.companyObj); | ||
| 140 | + initData(companyInfo.value); | ||
| 141 | + companyId = companyInfo.value.id; | ||
| 142 | + } catch (e) { | ||
| 143 | + console.error('解析companyObj失败:', e); | ||
| 144 | + } | ||
| 145 | + } | ||
| 146 | + | ||
| 147 | + // 然后处理其他参数,即使失败也不影响公司信息显示 | ||
| 148 | + if (options.tel) { | ||
| 139 | tel.value = options.tel; | 149 | tel.value = options.tel; |
| 140 | - initData(companyInfo.value); | ||
| 141 | - companyId = companyInfo.value.id | ||
| 142 | } | 150 | } |
| 151 | + | ||
| 152 | + if (options.userAddress) { | ||
| 153 | + try { | ||
| 154 | + userAddress.value = JSON.parse(options.userAddress); | ||
| 155 | + } catch (e) { | ||
| 156 | + console.error('解析userAddress失败:', e); | ||
| 157 | + // 可以设置默认值或空对象 | ||
| 158 | + userAddress.value = {}; | ||
| 159 | + } | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + // 如果有companyId参数,从服务器获取公司信息 | ||
| 143 | if (options.companyId) { | 163 | if (options.companyId) { |
| 144 | - companyId = options.companyId | 164 | + companyId = options.companyId; |
| 145 | queryEnterpriseById(companyId).then(res => { | 165 | queryEnterpriseById(companyId).then(res => { |
| 146 | - companyInfo.value = res.data.data | 166 | + companyInfo.value = res.data.data; |
| 147 | initData(companyInfo.value); | 167 | initData(companyInfo.value); |
| 148 | - }) | 168 | + }).catch(err => { |
| 169 | + console.error('获取公司信息失败:', err); | ||
| 170 | + }); | ||
| 149 | } | 171 | } |
| 150 | - | ||
| 151 | - // queryCarList({ companyId: companyId }).then(res => { | ||
| 152 | - // carList.value = res.data.rows | ||
| 153 | - // }) | ||
| 154 | -}) | 172 | +}); |
| 155 | 173 | ||
| 156 | const handleCleanGarbage = (companyObj, tel, userAddress) => { | 174 | const handleCleanGarbage = (companyObj, tel, userAddress) => { |
| 157 | uni.$u.route({ | 175 | uni.$u.route({ |
garbage-removal/src/pages/home-info/clean/index.vue
| @@ -50,7 +50,7 @@ | @@ -50,7 +50,7 @@ | ||
| 50 | <view> | 50 | <view> |
| 51 | <image :src="combinationImagePath(car)" mode="widthFix"></image> | 51 | <image :src="combinationImagePath(car)" mode="widthFix"></image> |
| 52 | </view> | 52 | </view> |
| 53 | - <view><text style="color:#909399;font-size: 14px;">{{car.remark}}</text></view> | 53 | + <view><text style="color:#909399;font-size: 12px;">{{car.remark}}</text></view> |
| 54 | </swiper-item> | 54 | </swiper-item> |
| 55 | </swiper> | 55 | </swiper> |
| 56 | </view> | 56 | </view> |
| @@ -59,13 +59,14 @@ | @@ -59,13 +59,14 @@ | ||
| 59 | <view class="company-clean-container-car-main-content-type-price-area"> | 59 | <view class="company-clean-container-car-main-content-type-price-area"> |
| 60 | <text style="color: red;">*</text>车辆容积: | 60 | <text style="color: red;">*</text>车辆容积: |
| 61 | </view> | 61 | </view> |
| 62 | - <view style="width:100%;display:flex; color:#909399; align-items: center; gap: 2rpx;"> | 62 | + <view style="display:flex; color:#909399; align-items: center; gap: 2rpx; width: auto;"> |
| 63 | <myPiker | 63 | <myPiker |
| 64 | :parentValue="containerVolume" | 64 | :parentValue="containerVolume" |
| 65 | :title="'车辆容积'" | 65 | :title="'车辆容积'" |
| 66 | @change="handleContainerVolumeChange" | 66 | @change="handleContainerVolumeChange" |
| 67 | :array="containerVolumeList"> | 67 | :array="containerVolumeList"> |
| 68 | </myPiker> | 68 | </myPiker> |
| 69 | + 方 | ||
| 69 | </view> | 70 | </view> |
| 70 | </view> | 71 | </view> |
| 71 | 72 | ||
| @@ -134,7 +135,7 @@ | @@ -134,7 +135,7 @@ | ||
| 134 | <!-- </view>--> | 135 | <!-- </view>--> |
| 135 | <!-- </view>--> | 136 | <!-- </view>--> |
| 136 | 137 | ||
| 137 | - | 138 | + |
| 138 | <view v-if="paramFrom.garInCarStore" class="company-in-car-store-box-info"> | 139 | <view v-if="paramFrom.garInCarStore" class="company-in-car-store-box-info"> |
| 139 | <view class="company-clean-container-site-image-info-input-remark-box"> | 140 | <view class="company-clean-container-site-image-info-input-remark-box"> |
| 140 | <u--textarea v-model="paramFrom.remark" placeholder="请填写限制高度(米)"></u--textarea> | 141 | <u--textarea v-model="paramFrom.remark" placeholder="请填写限制高度(米)"></u--textarea> |
| @@ -145,6 +146,7 @@ | @@ -145,6 +146,7 @@ | ||
| 145 | </view> | 146 | </view> |
| 146 | <view class="company-clean-container-car-main-content-prompt"> | 147 | <view class="company-clean-container-car-main-content-prompt"> |
| 147 | 温馨提示:垃圾类型不符合,企业有权拒绝清运。 | 148 | 温馨提示:垃圾类型不符合,企业有权拒绝清运。 |
| 149 | + 车辆能否进入地下车库请与运输企业确认。 | ||
| 148 | </view> | 150 | </view> |
| 149 | </view> | 151 | </view> |
| 150 | </view> | 152 | </view> |
| @@ -368,6 +370,7 @@ | @@ -368,6 +370,7 @@ | ||
| 368 | 370 | ||
| 369 | garCarNumberCount.value = va; | 371 | garCarNumberCount.value = va; |
| 370 | } | 372 | } |
| 373 | + | ||
| 371 | /** | 374 | /** |
| 372 | * 初始化信息 | 375 | * 初始化信息 |
| 373 | */ | 376 | */ |
| @@ -409,13 +412,13 @@ | @@ -409,13 +412,13 @@ | ||
| 409 | garCarInfoList.value = res.data.rows; | 412 | garCarInfoList.value = res.data.rows; |
| 410 | if (garCarInfoList.value[0]) { | 413 | if (garCarInfoList.value[0]) { |
| 411 | carName.value = garCarInfoList.value[0].carType; | 414 | carName.value = garCarInfoList.value[0].carType; |
| 412 | - containerVolume.value = garCarInfoList.value[0].containerVolume +"方"; | 415 | + containerVolume.value = garCarInfoList.value[0].containerVolume; |
| 413 | } | 416 | } |
| 414 | 417 | ||
| 415 | const volumeSet = new Set(); | 418 | const volumeSet = new Set(); |
| 416 | garCarInfoList.value.forEach(car => { | 419 | garCarInfoList.value.forEach(car => { |
| 417 | if (car.containerVolume) { | 420 | if (car.containerVolume) { |
| 418 | - volumeSet.add(car.containerVolume +"方"); | 421 | + volumeSet.add(car.containerVolume); |
| 419 | } | 422 | } |
| 420 | }); | 423 | }); |
| 421 | containerVolumeList.value = Array.from(volumeSet); | 424 | containerVolumeList.value = Array.from(volumeSet); |
| @@ -454,7 +457,7 @@ | @@ -454,7 +457,7 @@ | ||
| 454 | fileList.value = []; | 457 | fileList.value = []; |
| 455 | } | 458 | } |
| 456 | 459 | ||
| 457 | - | 460 | + |
| 458 | console.log("1",fileList.value); | 461 | console.log("1",fileList.value); |
| 459 | let fileListLen = fileList.value.length; | 462 | let fileListLen = fileList.value.length; |
| 460 | 463 | ||
| @@ -466,8 +469,8 @@ | @@ -466,8 +469,8 @@ | ||
| 466 | }); | 469 | }); |
| 467 | }); | 470 | }); |
| 468 | 471 | ||
| 469 | - | ||
| 470 | - | 472 | + |
| 473 | + | ||
| 471 | // 将blob转为file对象的方法 | 474 | // 将blob转为file对象的方法 |
| 472 | function blobToFile(blob, fileName) { | 475 | function blobToFile(blob, fileName) { |
| 473 | return new File([blob], fileName, { | 476 | return new File([blob], fileName, { |
| @@ -484,6 +487,7 @@ | @@ -484,6 +487,7 @@ | ||
| 484 | // 上传file对象 | 487 | // 上传file对象 |
| 485 | let requestPath = import.meta.env.VITE_BASE_URL + import.meta.env | 488 | let requestPath = import.meta.env.VITE_BASE_URL + import.meta.env |
| 486 | .VITE_BASE_FILE_UPLOAD_PREFIX; | 489 | .VITE_BASE_FILE_UPLOAD_PREFIX; |
| 490 | + console.log(requestPath+"原神"); | ||
| 487 | uploadFilePromise(requestPath, fileN).then(result => { | 491 | uploadFilePromise(requestPath, fileN).then(result => { |
| 488 | let item = fileList.value[fileListLen]; | 492 | let item = fileList.value[fileListLen]; |
| 489 | fileList.value.splice(fileListLen, 1, { | 493 | fileList.value.splice(fileListLen, 1, { |
| @@ -779,7 +783,7 @@ | @@ -779,7 +783,7 @@ | ||
| 779 | } | 783 | } |
| 780 | 784 | ||
| 781 | .swiperHeight1 { | 785 | .swiperHeight1 { |
| 782 | - height: 280px; | 786 | + height: 300px; |
| 783 | text-align: center; | 787 | text-align: center; |
| 784 | justify-content: center; | 788 | justify-content: center; |
| 785 | } | 789 | } |
| @@ -791,7 +795,7 @@ | @@ -791,7 +795,7 @@ | ||
| 791 | } | 795 | } |
| 792 | 796 | ||
| 793 | .swiperHeight3 { | 797 | .swiperHeight3 { |
| 794 | - height: 310px; | 798 | + height: 300px; |
| 795 | text-align: center; | 799 | text-align: center; |
| 796 | justify-content: center; | 800 | justify-content: center; |
| 797 | } | 801 | } |
| @@ -918,24 +922,26 @@ | @@ -918,24 +922,26 @@ | ||
| 918 | word-break: break-all; | 922 | word-break: break-all; |
| 919 | } | 923 | } |
| 920 | 924 | ||
| 921 | - .company-clean-container-car-main-content-type { | ||
| 922 | - margin-top: $custom-marin-bottom; | ||
| 923 | - margin-bottom: $custom-marin-bottom; | ||
| 924 | - display: flex; | ||
| 925 | - justify-content: space-between; | ||
| 926 | - border-radius: $custom-border-radio; | ||
| 927 | - // background-color: $u-info-light; | ||
| 928 | - box-sizing: border-box; | ||
| 929 | - | ||
| 930 | - .company-clean-container-car-main-content-type-price-area { | ||
| 931 | - display: flex; | ||
| 932 | - justify-content: flex-start; | ||
| 933 | - align-items: center; | ||
| 934 | - color: $u-info; | ||
| 935 | - white-space: nowrap; | ||
| 936 | - width: 100%; | ||
| 937 | - } | ||
| 938 | - } | 925 | + .company-clean-container-car-main-content-type { |
| 926 | + margin-top: $custom-marin-bottom; | ||
| 927 | + margin-bottom: $custom-marin-bottom; | ||
| 928 | + display: flex; | ||
| 929 | + justify-content: flex-start; /* 将space-between改为flex-start */ | ||
| 930 | + border-radius: $custom-border-radio; | ||
| 931 | + // background-color: $u-info-light; | ||
| 932 | + box-sizing: border-box; | ||
| 933 | + | ||
| 934 | + .company-clean-container-car-main-content-type-price-area { | ||
| 935 | + display: flex; | ||
| 936 | + justify-content: flex-start; | ||
| 937 | + align-items: center; | ||
| 938 | + color: $u-info; | ||
| 939 | + white-space: nowrap; | ||
| 940 | + // width: 100%; /* 已经移除 */ | ||
| 941 | + flex-shrink: 0; /* 确保标签不会被压缩 */ | ||
| 942 | + margin-right: 20rpx; /* 保持右边距 */ | ||
| 943 | + } | ||
| 944 | + } | ||
| 939 | 945 | ||
| 940 | .company-clean-container-car-main-content-number { | 946 | .company-clean-container-car-main-content-number { |
| 941 | display: flex; | 947 | display: flex; |
garbage-removal/src/pages/home/index.vue
| @@ -131,7 +131,7 @@ | @@ -131,7 +131,7 @@ | ||
| 131 | 131 | ||
| 132 | <script setup> | 132 | <script setup> |
| 133 | import { queryAddress } from '@/apis/address.js'; | 133 | import { queryAddress } from '@/apis/address.js'; |
| 134 | -import { queryEnterpriseList } from '@/apis/company.js'; | 134 | +import { queryEnterpriseList ,queryCompaniesByEnergyType } from '@/apis/company.js'; |
| 135 | import { queryRole } from "@/apis/user"; | 135 | import { queryRole } from "@/apis/user"; |
| 136 | import { useMainStore } from "@/stores/index.js"; | 136 | import { useMainStore } from "@/stores/index.js"; |
| 137 | import { onLoad, onShow } from '@dcloudio/uni-app'; | 137 | import { onLoad, onShow } from '@dcloudio/uni-app'; |
| @@ -163,7 +163,7 @@ const addressInfo = ref() | @@ -163,7 +163,7 @@ const addressInfo = ref() | ||
| 163 | const sortValue = ref(0) | 163 | const sortValue = ref(0) |
| 164 | const registrationAreaValue = ref('') | 164 | const registrationAreaValue = ref('') |
| 165 | const registrationAreaLabel = ref('所属区域') | 165 | const registrationAreaLabel = ref('所属区域') |
| 166 | -const sortLabel = ref('排序') | 166 | +const sortLabel = ref('距离优先') |
| 167 | const carTypeValue = ref('') | 167 | const carTypeValue = ref('') |
| 168 | const carTypeRealValue = ref('') | 168 | const carTypeRealValue = ref('') |
| 169 | const dropdownOptions = ref([ | 169 | const dropdownOptions = ref([ |
| @@ -208,9 +208,15 @@ const dropdownOptions = ref([ | @@ -208,9 +208,15 @@ const dropdownOptions = ref([ | ||
| 208 | value: '宁乡市' | 208 | value: '宁乡市' |
| 209 | } | 209 | } |
| 210 | ], [{ | 210 | ], [{ |
| 211 | - label: '暂未开放', | ||
| 212 | - value: '暂未开放', | ||
| 213 | - },] | 211 | + label: '轻型车辆', |
| 212 | + value: '11', | ||
| 213 | + },{ | ||
| 214 | + label: '中型车辆', | ||
| 215 | + value: '12', | ||
| 216 | + },{ | ||
| 217 | + label: '重型车辆', | ||
| 218 | + value: '13', | ||
| 219 | + }] | ||
| 214 | , [{ | 220 | , [{ |
| 215 | label: '距离优先', | 221 | label: '距离优先', |
| 216 | value: 0, | 222 | value: 0, |
| @@ -279,7 +285,7 @@ const handleDropdownSortChange = (val) => { | @@ -279,7 +285,7 @@ const handleDropdownSortChange = (val) => { | ||
| 279 | if (selectedItem) { | 285 | if (selectedItem) { |
| 280 | sortLabel.value = selectedItem.label; | 286 | sortLabel.value = selectedItem.label; |
| 281 | } else { | 287 | } else { |
| 282 | - sortLabel.value = '排序'; // 默认标签 | 288 | + sortLabel.value = '距离优先'; // 默认标签 |
| 283 | } | 289 | } |
| 284 | 290 | ||
| 285 | sortValue.value = val; | 291 | sortValue.value = val; |
| @@ -313,6 +319,11 @@ const handleDropdownCarChange = (val) => { | @@ -313,6 +319,11 @@ const handleDropdownCarChange = (val) => { | ||
| 313 | loadCompanyList() | 319 | loadCompanyList() |
| 314 | return | 320 | return |
| 315 | } | 321 | } |
| 322 | + // 查找选中项的完整对象 | ||
| 323 | + const selectedItem = dropdownOptions.value[1].find(item => item.value === val); | ||
| 324 | + if (selectedItem) { | ||
| 325 | + carTypeValue.value = selectedItem.label; | ||
| 326 | + } | ||
| 316 | carTypeRealValue.value = val; | 327 | carTypeRealValue.value = val; |
| 317 | // 清除缓存 | 328 | // 清除缓存 |
| 318 | companyListCache.value.clear(); | 329 | companyListCache.value.clear(); |
| @@ -520,9 +531,9 @@ const initData = () => { | @@ -520,9 +531,9 @@ const initData = () => { | ||
| 520 | } | 531 | } |
| 521 | 532 | ||
| 522 | // 新增方法:一次性加载所有公司数据(带缓存) | 533 | // 新增方法:一次性加载所有公司数据(带缓存) |
| 523 | -const loadCompanyList = () => { | ||
| 524 | - // 生成缓存键 | ||
| 525 | - const cacheKey = `${sortValue.value}-${registrationAreaValue.value}-${carTypeValue.value}-${userType.value}-${searchKeyword.value}`; | 534 | +const loadCompanyList = async () => { |
| 535 | + // 生成缓存键 - 添加carTypeRealValue.value确保不同车辆类型选择能正确缓存 | ||
| 536 | + const cacheKey = `${sortValue.value}-${registrationAreaValue.value}-${carTypeValue.value}-${carTypeRealValue.value}-${userType.value}-${searchKeyword.value}`; | ||
| 526 | 537 | ||
| 527 | // 检查是否有缓存 | 538 | // 检查是否有缓存 |
| 528 | if (companyListCache.value.has(cacheKey)) { | 539 | if (companyListCache.value.has(cacheKey)) { |
| @@ -532,13 +543,14 @@ const loadCompanyList = () => { | @@ -532,13 +543,14 @@ const loadCompanyList = () => { | ||
| 532 | } | 543 | } |
| 533 | 544 | ||
| 534 | let userTypeValue=0; | 545 | let userTypeValue=0; |
| 535 | - if(userType == '用户'){ | 546 | + if(userType.value == '用户') { // 修复:使用userType.value而不是userType |
| 536 | userTypeValue=1; | 547 | userTypeValue=1; |
| 537 | - }else if(userType.value == '清运车辆驾驶员'){ | 548 | + } else if(userType.value == '清运车辆驾驶员') { |
| 538 | userTypeValue=2; | 549 | userTypeValue=2; |
| 539 | - }else if(userType.value == '运输企业负责人'){ | 550 | + } else if(userType.value == '运输企业负责人') { |
| 540 | userTypeValue=3; | 551 | userTypeValue=3; |
| 541 | } | 552 | } |
| 553 | + | ||
| 542 | let query = { | 554 | let query = { |
| 543 | companyType: 1, | 555 | companyType: 1, |
| 544 | pageNum: 1, | 556 | pageNum: 1, |
| @@ -546,25 +558,45 @@ const loadCompanyList = () => { | @@ -546,25 +558,45 @@ const loadCompanyList = () => { | ||
| 546 | orderByColumn: sortValue.value, | 558 | orderByColumn: sortValue.value, |
| 547 | registrationArea: registrationAreaValue.value, | 559 | registrationArea: registrationAreaValue.value, |
| 548 | searchValue: carTypeValue.value, | 560 | searchValue: carTypeValue.value, |
| 549 | - userTypeValue:userTypeValue, | ||
| 550 | - userType:userType.value, | 561 | + userTypeValue: userTypeValue, |
| 562 | + userType: userType.value, | ||
| 551 | name: searchKeyword.value | 563 | name: searchKeyword.value |
| 552 | } | 564 | } |
| 553 | - // 查询公司信息 | ||
| 554 | - queryEnterpriseList(query).then(res => { | ||
| 555 | - console.log('获取到的公司列表数据:', res); | 565 | + |
| 566 | + try { | ||
| 567 | + // 获取所有公司列表 - 返回List<对象>,公司名是name | ||
| 568 | + const enterpriseRes = await queryEnterpriseList(query); | ||
| 569 | + console.log('获取到的公司列表数据:', enterpriseRes); | ||
| 556 | 570 | ||
| 557 | // 直接设置公司列表数据 | 571 | // 直接设置公司列表数据 |
| 558 | - const pageData = res.data.data; | ||
| 559 | - const list = pageData.list || []; | ||
| 560 | - companyList.value = list; | 572 | + const pageData = enterpriseRes.data.data; |
| 573 | + let allCompanies = pageData.list || []; | ||
| 574 | + | ||
| 575 | + // 如果选择了车辆类型,则根据能源类型筛选公司 | ||
| 576 | + if (carTypeRealValue.value) { | ||
| 577 | + // 根据当前选择的车辆类型获取可筛选公司列表 - 返回List<String> | ||
| 578 | + const energyTypeRes = await queryCompaniesByEnergyType(carTypeRealValue.value); | ||
| 579 | + console.log('获取到的可筛选公司名称列表:', energyTypeRes); | ||
| 580 | + | ||
| 581 | + // 获取可筛选的公司名称列表 | ||
| 582 | + const filterCompanyNames = energyTypeRes.data.data || []; | ||
| 583 | + console.log('可筛选的公司名称:', filterCompanyNames); | ||
| 584 | + | ||
| 585 | + // 筛选出同时存在于两个列表中的公司 | ||
| 586 | + allCompanies = allCompanies.filter(company => { | ||
| 587 | + return filterCompanyNames.includes(company.name); | ||
| 588 | + }); | ||
| 589 | + } | ||
| 590 | + | ||
| 591 | + companyList.value = allCompanies; | ||
| 592 | + console.log('最终筛选后的公司列表:', allCompanies); | ||
| 561 | 593 | ||
| 562 | // 缓存数据 | 594 | // 缓存数据 |
| 563 | - companyListCache.value.set(cacheKey, list); | ||
| 564 | - }).catch(err => { | 595 | + companyListCache.value.set(cacheKey, allCompanies); |
| 596 | + } catch (err) { | ||
| 565 | console.error('查询公司列表失败:', err); | 597 | console.error('查询公司列表失败:', err); |
| 566 | companyList.value = []; | 598 | companyList.value = []; |
| 567 | - }) | 599 | + } |
| 568 | } | 600 | } |
| 569 | 601 | ||
| 570 | // 删除原有的queryList方法 | 602 | // 删除原有的queryList方法 |
| @@ -812,6 +844,9 @@ const loadCompanyList = () => { | @@ -812,6 +844,9 @@ const loadCompanyList = () => { | ||
| 812 | .company-list-header-left { | 844 | .company-list-header-left { |
| 813 | text-align: center; | 845 | text-align: center; |
| 814 | margin-bottom: 15rpx; | 846 | margin-bottom: 15rpx; |
| 847 | + .sort-default-text { | ||
| 848 | + text-align: left; | ||
| 849 | + } | ||
| 815 | } | 850 | } |
| 816 | 851 | ||
| 817 | .company-list-header-right { | 852 | .company-list-header-right { |
garbage-removal/src/pages/login/code.vue
| 1 | - | ||
| 2 | <template> | 1 | <template> |
| 3 | <view class="wrap"> | 2 | <view class="wrap"> |
| 4 | <view class="key-input"> | 3 | <view class="key-input"> |
| @@ -6,28 +5,17 @@ | @@ -6,28 +5,17 @@ | ||
| 6 | 5 | ||
| 7 | <!-- 登录方式切换 --> | 6 | <!-- 登录方式切换 --> |
| 8 | <view class="login-type-switch"> | 7 | <view class="login-type-switch"> |
| 9 | - <text | ||
| 10 | - :class="{ active: loginType === 'code' }" | ||
| 11 | - @click="switchLoginType('code')" | ||
| 12 | - > | ||
| 13 | - 验证码登录 | ||
| 14 | - </text> | 8 | + <!-- 隐藏验证码登录选项 --> |
| 15 | <text | 9 | <text |
| 16 | :class="{ active: loginType === 'password' }" | 10 | :class="{ active: loginType === 'password' }" |
| 17 | @click="switchLoginType('password')" | 11 | @click="switchLoginType('password')" |
| 18 | > | 12 | > |
| 19 | 账号密码登录 | 13 | 账号密码登录 |
| 20 | </text> | 14 | </text> |
| 21 | -<!-- <text--> | ||
| 22 | -<!-- :class="{ active: loginType === 'nickname' }"--> | ||
| 23 | -<!-- @click="switchLoginType('nickname')"--> | ||
| 24 | -<!-- >--> | ||
| 25 | -<!-- 账号密码登录--> | ||
| 26 | -<!-- </text>--> | ||
| 27 | </view> | 15 | </view> |
| 28 | 16 | ||
| 29 | <!-- 手机号输入 --> | 17 | <!-- 手机号输入 --> |
| 30 | - <view class="input-wrapper" v-if="loginType !== 'nickname'"> | 18 | + <view class="input-wrapper"> |
| 31 | <u-icon name="account" size="36" color="#909399" class="input-icon"></u-icon> | 19 | <u-icon name="account" size="36" color="#909399" class="input-icon"></u-icon> |
| 32 | <input | 20 | <input |
| 33 | class="login-input" | 21 | class="login-input" |
| @@ -38,24 +26,22 @@ | @@ -38,24 +26,22 @@ | ||
| 38 | /> | 26 | /> |
| 39 | </view> | 27 | </view> |
| 40 | 28 | ||
| 41 | - <!-- 验证码登录 --> | ||
| 42 | - <view v-if="loginType === 'code'"> | ||
| 43 | - <view class="tips">验证码已发送至 +{{ startIphoneNumber || iphoneNumber }}</view> | ||
| 44 | - <u-message-input | ||
| 45 | - :value="codeValue" | ||
| 46 | - :focus="true" | ||
| 47 | - @change="handleCodeChange" | ||
| 48 | - @finish="finish" | ||
| 49 | - mode="bottomLine" | ||
| 50 | - :maxlength="maxlength" | ||
| 51 | - ></u-message-input> | ||
| 52 | - <text v-if="verifyFlag" class="error">验证码错误,请重新输入</text> | ||
| 53 | - <view class="captcha"> | ||
| 54 | - <text :class="{ noCaptcha: show }" @tap="getCaptcha">获取验证码</text> | ||
| 55 | - <text :class="{ regain: !show }" v-if="!show">{{ second }}秒后重新获取</text> | 29 | + <!-- 密码登录 --> |
| 30 | + <view v-if="loginType === 'password'"> | ||
| 31 | + <view class="input-wrapper"> | ||
| 32 | + <u-icon name="lock" size="36" color="#909399" class="input-icon"></u-icon> | ||
| 33 | + <input | ||
| 34 | + class="login-input" | ||
| 35 | + type="password" | ||
| 36 | + v-model="password" | ||
| 37 | + placeholder="请输入密码" | ||
| 38 | + placeholder-class="placeholder-style" | ||
| 39 | + /> | ||
| 56 | </view> | 40 | </view> |
| 41 | + <button @tap="loginWithPassword" class="login-btn">登录</button> | ||
| 57 | </view> | 42 | </view> |
| 58 | 43 | ||
| 44 | + <!-- 昵称登录(如果需要保留) --> | ||
| 59 | <view v-else-if="loginType === 'nickname'"> | 45 | <view v-else-if="loginType === 'nickname'"> |
| 60 | <view class="input-wrapper"> | 46 | <view class="input-wrapper"> |
| 61 | <u-icon name="account" size="36" color="#909399" class="input-icon"></u-icon> | 47 | <u-icon name="account" size="36" color="#909399" class="input-icon"></u-icon> |
| @@ -80,23 +66,8 @@ | @@ -80,23 +66,8 @@ | ||
| 80 | <button @tap="loginWithUsername" class="login-btn">登录</button> | 66 | <button @tap="loginWithUsername" class="login-btn">登录</button> |
| 81 | </view> | 67 | </view> |
| 82 | 68 | ||
| 83 | - <!-- 密码登录 --> | ||
| 84 | - <view v-else> | ||
| 85 | - <view class="input-wrapper"> | ||
| 86 | - <u-icon name="lock" size="36" color="#909399" class="input-icon"></u-icon> | ||
| 87 | - <input | ||
| 88 | - class="login-input" | ||
| 89 | - type="password" | ||
| 90 | - v-model="password" | ||
| 91 | - placeholder="请输入密码" | ||
| 92 | - placeholder-class="placeholder-style" | ||
| 93 | - /> | ||
| 94 | - </view> | ||
| 95 | - <button @tap="loginWithPassword" class="login-btn">登录</button> | ||
| 96 | - </view> | ||
| 97 | - | ||
| 98 | <view class="alternative"> | 69 | <view class="alternative"> |
| 99 | -<!-- <text class="link" @click="toRegister">立即注册</text>--> | 70 | + <!-- <text class="link" @click="toRegister">立即注册</text>--> |
| 100 | </view> | 71 | </view> |
| 101 | </view> | 72 | </view> |
| 102 | </view> | 73 | </view> |
| @@ -112,7 +83,8 @@ const { proxy } = getCurrentInstance(); | @@ -112,7 +83,8 @@ const { proxy } = getCurrentInstance(); | ||
| 112 | const store = useMainStore(); | 83 | const store = useMainStore(); |
| 113 | 84 | ||
| 114 | // 登录方式:code-验证码登录,password-密码登录 | 85 | // 登录方式:code-验证码登录,password-密码登录 |
| 115 | -const loginType = ref('code'); | 86 | +// 将默认登录方式改为密码登录 |
| 87 | +const loginType = ref('password'); | ||
| 116 | 88 | ||
| 117 | // 验证码登录相关 | 89 | // 验证码登录相关 |
| 118 | const verifyFlag = ref(false); | 90 | const verifyFlag = ref(false); |
garbage-removal/src/pages/order-info/order-disposal/scan-detail/index.vue
| @@ -63,7 +63,7 @@ | @@ -63,7 +63,7 @@ | ||
| 63 | 运距 | 63 | 运距 |
| 64 | </view> | 64 | </view> |
| 65 | <view class="scan-car-num-content"> | 65 | <view class="scan-car-num-content"> |
| 66 | - {{ details.transportDistance }} | 66 | + {{ details.transportDistance || "0 公里" }} |
| 67 | </view> | 67 | </view> |
| 68 | </view> | 68 | </view> |
| 69 | <!-- <view class="scan-upload-fill-image-box"> | 69 | <!-- <view class="scan-upload-fill-image-box"> |
| @@ -96,7 +96,8 @@ | @@ -96,7 +96,8 @@ | ||
| 96 | } from '@/apis/common.js'; | 96 | } from '@/apis/common.js'; |
| 97 | import { | 97 | import { |
| 98 | askTransport, | 98 | askTransport, |
| 99 | - scanDetail | 99 | + scanDetail, |
| 100 | + queryMileage | ||
| 100 | } from '@/apis/order.js'; | 101 | } from '@/apis/order.js'; |
| 101 | import { | 102 | import { |
| 102 | onLoad | 103 | onLoad |
| @@ -127,59 +128,90 @@ | @@ -127,59 +128,90 @@ | ||
| 127 | longitude: ll[0], | 128 | longitude: ll[0], |
| 128 | latitude: ll[1] | 129 | latitude: ll[1] |
| 129 | }; | 130 | }; |
| 130 | - // 获取定位后计算运距 | ||
| 131 | - calculateDistance(); | ||
| 132 | } | 131 | } |
| 133 | - | 132 | + |
| 134 | // 生命周期处理 | 133 | // 生命周期处理 |
| 135 | onMounted(() => { | 134 | onMounted(() => { |
| 136 | - // 挂载全局回调 | ||
| 137 | - window.takeLocationCallBack = takeLocalCallBack | 135 | + // 页面加载完成后直接计算运距 |
| 136 | + setTimeout(() => { | ||
| 137 | + calculateDistance(); | ||
| 138 | + }, 500); | ||
| 138 | }) | 139 | }) |
| 139 | - | ||
| 140 | - onLoad((options) => { | ||
| 141 | - // 获取定位信息 | ||
| 142 | - takeLocation(); | ||
| 143 | - }); | ||
| 144 | - | ||
| 145 | - // 计算运距函数 | ||
| 146 | - const calculateDistance = () => { | ||
| 147 | - // 检查是否有起点经纬度信息 | ||
| 148 | - if (!details.value.garLatitude || !details.value.garLongitude) { | ||
| 149 | - return; | ||
| 150 | - } | ||
| 151 | - | ||
| 152 | - const startLat= details.value.garLatitude; | ||
| 153 | - const startLng = details.value.garLongitude; | ||
| 154 | - | ||
| 155 | - | ||
| 156 | - | ||
| 157 | - const endLat = location.value.latitude; // 终点纬度(当前定位) | ||
| 158 | - const endLng = location.value.longitude; // 终点经度(当前定位) | ||
| 159 | 140 | ||
| 160 | - // 检查是否有终点经纬度 | ||
| 161 | - if (!endLat || !endLng) { | ||
| 162 | - return; | ||
| 163 | - } | ||
| 164 | - | ||
| 165 | - // 使用Haversine公式计算两点之间的距离(公里) | ||
| 166 | - const R = 6371; // 地球半径(公里) | ||
| 167 | - const dLat = (endLat - startLat) * Math.PI / 180; | ||
| 168 | - const dLng = (endLng - startLng) * Math.PI / 180; | ||
| 169 | - const a = | ||
| 170 | - Math.sin(dLat/2) * Math.sin(dLat/2) + | ||
| 171 | - Math.cos(startLat * Math.PI / 180) * Math.cos(endLat * Math.PI / 180) * | ||
| 172 | - Math.sin(dLng/2) * Math.sin(dLng/2); | ||
| 173 | - const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); | ||
| 174 | - const distance = R * c; // 距离(公里) | ||
| 175 | - | ||
| 176 | - // 更新运距信息,保留两位小数 | ||
| 177 | - details.value.transportDistance = distance.toFixed(2) + ' 公里'; | ||
| 178 | - } | 141 | + // 计算运距函数 - 使用queryMileage接口 |
| 142 | + const calculateDistance = async () => { | ||
| 143 | + // 检查是否有车牌号、分发时间和当前时间 | ||
| 144 | + if (!details.value.garHandlerCarCode || !details.value.garCreateTime) { | ||
| 145 | + console.log("缺少必要信息:车牌号或分发时间"); | ||
| 146 | + return; | ||
| 147 | + } | ||
| 179 | 148 | ||
| 180 | - const takeLocation = () => { | ||
| 181 | - window.JsInterface.takeLocation(); | ||
| 182 | - } | 149 | + const startTime = details.value.garCreateTime; // 分发时间作为开始时间 |
| 150 | + const endTime = new Date().toISOString(); // 当前时间作为结束时间 | ||
| 151 | + | ||
| 152 | + try { | ||
| 153 | + // 调用queryMileage接口查询运距 | ||
| 154 | + const res = await queryMileage(details.value.garHandlerCarCode, startTime, endTime); | ||
| 155 | + | ||
| 156 | + if (res.data.code == 200) { | ||
| 157 | + // 从接口返回的数据中提取运距信息 | ||
| 158 | + const mileageData = JSON.parse(res.data.data); | ||
| 159 | + details.value.transportDistance = mileageData.mileage+ ' 公里'; // 米转公里 | ||
| 160 | + | ||
| 161 | + // 使用接口返回的定位信息 | ||
| 162 | + if (mileageData.endLatitude && mileageData.endLongitude) { | ||
| 163 | + location.value = { | ||
| 164 | + latitude: mileageData.endLatitude, | ||
| 165 | + longitude: mileageData.endLongitude | ||
| 166 | + }; | ||
| 167 | + } else { | ||
| 168 | + // 当接口返回的定位信息为空时,调用手机定位 | ||
| 169 | + console.log("接口返回的定位信息为空,尝试获取手机定位"); | ||
| 170 | + details.value.transportDistance = "1 公里"; | ||
| 171 | + getPhoneLocation(); | ||
| 172 | + } | ||
| 173 | + } else { | ||
| 174 | + console.log("获取运距失败:" + res.data.msg); | ||
| 175 | + // 运距获取失败时,尝试获取手机定位 | ||
| 176 | + details.value.transportDistance = "1 公里"; | ||
| 177 | + getPhoneLocation(); | ||
| 178 | + } | ||
| 179 | + } catch (error) { | ||
| 180 | + console.error("调用运距接口出错:", error); | ||
| 181 | + details.value.transportDistance = "1 公里"; | ||
| 182 | + // 接口调用异常时,尝试获取手机定位 | ||
| 183 | + getPhoneLocation(); | ||
| 184 | + } | ||
| 185 | + }; | ||
| 186 | + | ||
| 187 | + const getPhoneLocation = () => { | ||
| 188 | + // 设置5秒超时 | ||
| 189 | + const timeout = setTimeout(() => { | ||
| 190 | + uni.$u.toast('获取手机定位超时,请检查定位权限'); | ||
| 191 | + }, 5000); | ||
| 192 | + | ||
| 193 | + // 调用uni.getLocation获取手机GPS定位 | ||
| 194 | + uni.getLocation({ | ||
| 195 | + type: 'gcj02', | ||
| 196 | + success: (res) => { | ||
| 197 | + clearTimeout(timeout); | ||
| 198 | + console.log('手机定位获取成功', res); | ||
| 199 | + location.value = { | ||
| 200 | + latitude: res.latitude, | ||
| 201 | + longitude: res.longitude | ||
| 202 | + }; | ||
| 203 | + uni.$u.toast('手机定位获取成功'); | ||
| 204 | + }, | ||
| 205 | + fail: (err) => { | ||
| 206 | + clearTimeout(timeout); | ||
| 207 | + console.error('手机定位获取失败', err); | ||
| 208 | + uni.$u.toast('获取手机定位失败,请检查定位权限'); | ||
| 209 | + }, | ||
| 210 | + complete: () => { | ||
| 211 | + clearTimeout(timeout); | ||
| 212 | + } | ||
| 213 | + }); | ||
| 214 | + }; | ||
| 183 | 215 | ||
| 184 | 216 | ||
| 185 | const isNew = ref(false) | 217 | const isNew = ref(false) |
| @@ -289,8 +321,7 @@ | @@ -289,8 +321,7 @@ | ||
| 289 | // } | 321 | // } |
| 290 | 322 | ||
| 291 | if (typeof(location.value.latitude) === 'undefined') { | 323 | if (typeof(location.value.latitude) === 'undefined') { |
| 292 | - console.log('定位获取失败', ); | ||
| 293 | - uni.$u.toast("需要位置权限才能提交"); | 324 | + uni.$u.toast("没有获取到车辆定位信息!"); |
| 294 | return; | 325 | return; |
| 295 | } | 326 | } |
| 296 | 327 |
garbage-removal/src/pages/order-info/order-disposal/transport-detail/index.vue
| @@ -47,7 +47,7 @@ | @@ -47,7 +47,7 @@ | ||
| 47 | 收运清单 | 47 | 收运清单 |
| 48 | </view> | 48 | </view> |
| 49 | <view v-if="dataGram.transportDetails" style="width: 100%;"> | 49 | <view v-if="dataGram.transportDetails" style="width: 100%;"> |
| 50 | - <view v-for="(item, index) in dataGram.transportDetails" style="width: 100%; box-sizing: border-box;"> | 50 | + <view v-for="(item, index) in dataGram.transportDetails" style="width: 100%; box-sizing: border-box;" v-if="item.garHandlerCarCode != null"> |
| 51 | <view class="transport-process-item" style="display: flex; width: 100%; margin: 20rpx 0; flex-wrap: nowrap; align-items: center;"> | 51 | <view class="transport-process-item" style="display: flex; width: 100%; margin: 20rpx 0; flex-wrap: nowrap; align-items: center;"> |
| 52 | <view style="width: 80rpx; flex-shrink: 0; margin-right: 10rpx;"> | 52 | <view style="width: 80rpx; flex-shrink: 0; margin-right: 10rpx;"> |
| 53 | <up-image :show-loading="true" :src="item.fillImage" width="80rpx" height="80rpx"></up-image> | 53 | <up-image :show-loading="true" :src="item.fillImage" width="80rpx" height="80rpx"></up-image> |
garbage-removal/src/pages/order-info/order-driver/detail/index.vue
| @@ -473,16 +473,16 @@ const handleOrder = (orderId) => { | @@ -473,16 +473,16 @@ const handleOrder = (orderId) => { | ||
| 473 | 473 | ||
| 474 | const driverHandleOrder = (orderId) => { | 474 | const driverHandleOrder = (orderId) => { |
| 475 | queryErrType().then(res => { | 475 | queryErrType().then(res => { |
| 476 | - if (res.data.data >= 3 ) { | ||
| 477 | - uni.$u.toast('异常趟次过多,已被限制接单!'); | ||
| 478 | - }else { | 476 | + // if (res.data.data >= 3 ) { |
| 477 | + // uni.$u.toast('异常趟次过多,已被限制接单!'); | ||
| 478 | + // }else { | ||
| 479 | updateOrder({ garOrderId: orderId, handleType: 0 }).then(res => { | 479 | updateOrder({ garOrderId: orderId, handleType: 0 }).then(res => { |
| 480 | if (res.data.success) { | 480 | if (res.data.success) { |
| 481 | uni.$u.toast(res.data.data) | 481 | uni.$u.toast(res.data.data) |
| 482 | handleOrderDetail(orderId) | 482 | handleOrderDetail(orderId) |
| 483 | } | 483 | } |
| 484 | }) | 484 | }) |
| 485 | - } | 485 | + // } |
| 486 | }) | 486 | }) |
| 487 | } | 487 | } |
| 488 | 488 |
garbage-removal/src/pages/order-info/order-driver/upload/index.vue
| @@ -32,9 +32,10 @@ | @@ -32,9 +32,10 @@ | ||
| 32 | import { | 32 | import { |
| 33 | uploadFilePromise | 33 | uploadFilePromise |
| 34 | } from '@/apis/common.js'; | 34 | } from '@/apis/common.js'; |
| 35 | - import { | ||
| 36 | - uploadImageUrlByType | ||
| 37 | - } from '@/apis/order.js'; | 35 | + import { |
| 36 | + uploadImageUrlByType, | ||
| 37 | + queryLatitudeLongitude | ||
| 38 | + } from '@/apis/order.js'; | ||
| 38 | import { | 39 | import { |
| 39 | onLoad | 40 | onLoad |
| 40 | } from '@dcloudio/uni-app'; | 41 | } from '@dcloudio/uni-app'; |
| @@ -90,13 +91,24 @@ | @@ -90,13 +91,24 @@ | ||
| 90 | } | 91 | } |
| 91 | }, 5000); | 92 | }, 5000); |
| 92 | 93 | ||
| 93 | - // 获取定位信息 | ||
| 94 | - if (window.JsInterface && typeof window.JsInterface.takeLocation === 'function') { | ||
| 95 | - window.JsInterface.takeLocation(); | ||
| 96 | - } else { | 94 | + // 获取车辆位置信息 |
| 95 | + queryLatitudeLongitude(carPlate.value).then(res => { | ||
| 96 | + if (res.data.success) { | ||
| 97 | + const data = res.data.data; | ||
| 98 | + location.value = { | ||
| 99 | + longitude: data.longitude, | ||
| 100 | + latitude: data.latitude | ||
| 101 | + }; | ||
| 102 | + uni.$u.toast("车辆位置获取成功"); | ||
| 103 | + } else { | ||
| 104 | + uni.$u.toast("车辆位置获取失败"); | ||
| 105 | + } | ||
| 106 | + }).catch(err => { | ||
| 107 | + uni.$u.toast("车辆位置获取异常"+err); | ||
| 108 | + console.error("获取车辆位置失败:", err); | ||
| 109 | + }).finally(() => { | ||
| 97 | clearTimeout(timer); | 110 | clearTimeout(timer); |
| 98 | - uni.$u.toast("当前环境不支持定位功能"); | ||
| 99 | - } | 111 | + }); |
| 100 | } | 112 | } |
| 101 | // 新增图片 | 113 | // 新增图片 |
| 102 | const afterRead = async (event) => { | 114 | const afterRead = async (event) => { |
| @@ -189,11 +201,6 @@ | @@ -189,11 +201,6 @@ | ||
| 189 | return | 201 | return |
| 190 | } | 202 | } |
| 191 | 203 | ||
| 192 | - if(typeof(location.value.latitude) === 'undefined'){ | ||
| 193 | - uni.$u.toast("需要位置权限才能提交"); | ||
| 194 | - return; | ||
| 195 | - } | ||
| 196 | - | ||
| 197 | const userPhone = store.userPhone; | 204 | const userPhone = store.userPhone; |
| 198 | let params = { | 205 | let params = { |
| 199 | garOrderId: id, | 206 | garOrderId: id, |
garbage-removal/src/pages/order-info/order-other/detail/index.vue
| @@ -220,7 +220,7 @@ | @@ -220,7 +220,7 @@ | ||
| 220 | size="mini" | 220 | size="mini" |
| 221 | class="assign-button" | 221 | class="assign-button" |
| 222 | @click="assignTripToHandler(item)"> | 222 | @click="assignTripToHandler(item)"> |
| 223 | - {{ item.garCarCount && item.garCarCount > 0 ? '修改' : '分配' }} | 223 | + {{ item.garCarCount && item.garCarCount > 0 ? '保存' : '分配' }} |
| 224 | </u-button> | 224 | </u-button> |
| 225 | <u-button | 225 | <u-button |
| 226 | type="error" | 226 | type="error" |
| @@ -525,6 +525,7 @@ const disposalAssigned = ref(false); // 添加这行,跟踪处置场所是否 | @@ -525,6 +525,7 @@ const disposalAssigned = ref(false); // 添加这行,跟踪处置场所是否 | ||
| 525 | const selectedDisposalSites = ref([]); | 525 | const selectedDisposalSites = ref([]); |
| 526 | // 新增:用于存储待分配的驾驶员列表 | 526 | // 新增:用于存储待分配的驾驶员列表 |
| 527 | const pendingDriverAssignments = ref({}) | 527 | const pendingDriverAssignments = ref({}) |
| 528 | +const pendingDisposalAssignments = ref({}) | ||
| 528 | 529 | ||
| 529 | 530 | ||
| 530 | const isInTransit = (index) => { | 531 | const isInTransit = (index) => { |
| @@ -633,7 +634,7 @@ const isDriverAssigned = computed(() => { | @@ -633,7 +634,7 @@ const isDriverAssigned = computed(() => { | ||
| 633 | const isDriverAndDisposalAssigned = () => { | 634 | const isDriverAndDisposalAssigned = () => { |
| 634 | // 直接使用已有的响应式变量来判断分配状态 | 635 | // 直接使用已有的响应式变量来判断分配状态 |
| 635 | const hasDrivers = driverAssigned.value || (pendingDriverAssignments.value && Object.keys(pendingDriverAssignments.value).length > 0); | 636 | const hasDrivers = driverAssigned.value || (pendingDriverAssignments.value && Object.keys(pendingDriverAssignments.value).length > 0); |
| 636 | - const hasDisposalSites = disposalAssigned.value; | 637 | + const hasDisposalSites = disposalAssigned.value || (pendingDisposalAssignments.value && Object.keys(pendingDisposalAssignments.value).length > 0); |
| 637 | 638 | ||
| 638 | return hasDrivers && hasDisposalSites; | 639 | return hasDrivers && hasDisposalSites; |
| 639 | }; | 640 | }; |
| @@ -1113,7 +1114,7 @@ const handlerJumpOtherApp = (latitude, longitude, garCoordinate) => { | @@ -1113,7 +1114,7 @@ const handlerJumpOtherApp = (latitude, longitude, garCoordinate) => { | ||
| 1113 | 1114 | ||
| 1114 | /** | 1115 | /** |
| 1115 | * 取消订单 | 1116 | * 取消订单 |
| 1116 | - * @param {*} orderId | 1117 | + * @param {*} orderId 订单id |
| 1117 | */ | 1118 | */ |
| 1118 | const handleOderCancelClick = () => { | 1119 | const handleOderCancelClick = () => { |
| 1119 | cancelShow.value = true; | 1120 | cancelShow.value = true; |
| @@ -1172,72 +1173,162 @@ const handleEvaluate = (orderId, userType) => { | @@ -1172,72 +1173,162 @@ const handleEvaluate = (orderId, userType) => { | ||
| 1172 | } | 1173 | } |
| 1173 | 1174 | ||
| 1174 | // 接收订单 | 1175 | // 接收订单 |
| 1176 | +// 接收订单 | ||
| 1175 | const handleOrder = (orderId) => { | 1177 | const handleOrder = (orderId) => { |
| 1176 | // 在开始运输前先分配驾驶员(如果有待分配的驾驶员) | 1178 | // 在开始运输前先分配驾驶员(如果有待分配的驾驶员) |
| 1177 | if (pendingDriverAssignments.value && Object.keys(pendingDriverAssignments.value).length > 0) { | 1179 | if (pendingDriverAssignments.value && Object.keys(pendingDriverAssignments.value).length > 0) { |
| 1178 | - let data = { | 1180 | + let driverData = { |
| 1179 | garOrderId: orderId, | 1181 | garOrderId: orderId, |
| 1180 | dispatchList: [] | 1182 | dispatchList: [] |
| 1181 | } | 1183 | } |
| 1182 | for (const key in pendingDriverAssignments.value) { | 1184 | for (const key in pendingDriverAssignments.value) { |
| 1183 | - data.dispatchList.push({ | 1185 | + driverData.dispatchList.push({ |
| 1184 | ...pendingDriverAssignments.value[key] | 1186 | ...pendingDriverAssignments.value[key] |
| 1185 | }); | 1187 | }); |
| 1186 | } | 1188 | } |
| 1187 | 1189 | ||
| 1188 | - dispatchOrders(data).then(res => { | ||
| 1189 | - if (res.data.success) { | 1190 | + dispatchOrders(driverData).then(driverRes => { |
| 1191 | + if (driverRes.data.success) { | ||
| 1190 | // 清空待分配列表 | 1192 | // 清空待分配列表 |
| 1191 | pendingDriverAssignments.value = {}; | 1193 | pendingDriverAssignments.value = {}; |
| 1192 | // 标记驾驶员已分配 | 1194 | // 标记驾驶员已分配 |
| 1193 | driverAssigned.value = true; | 1195 | driverAssigned.value = true; |
| 1194 | 1196 | ||
| 1195 | - // 然后更新订单状态为开始运输 | ||
| 1196 | - updateOrder({ | ||
| 1197 | - garOrderId: orderId, | ||
| 1198 | - handleType: 0 | ||
| 1199 | - }).then(res => { | ||
| 1200 | - if (res.data.success) { | ||
| 1201 | - if (res.data.data === "订单已经被别人接受啦") { | ||
| 1202 | - uni.$u.toast(res.data.data) | ||
| 1203 | - uni.$u.route({ | ||
| 1204 | - type: "reLaunch", | ||
| 1205 | - url: `pages/order/index`, | 1197 | + // 然后分配处置场所(如果有待分配的处置场所) |
| 1198 | + if (pendingDisposalAssignments.value && Object.keys(pendingDisposalAssignments.value).length > 0) { | ||
| 1199 | + let disposalData = { | ||
| 1200 | + garOrderId: orderId, | ||
| 1201 | + dispatchList: [] | ||
| 1202 | + } | ||
| 1203 | + for (const key in pendingDisposalAssignments.value) { | ||
| 1204 | + disposalData.dispatchList.push({ | ||
| 1205 | + ...pendingDisposalAssignments.value[key] | ||
| 1206 | + }); | ||
| 1207 | + } | ||
| 1208 | + | ||
| 1209 | + dispatchDisposalOrders(disposalData).then(disposalRes => { | ||
| 1210 | + if (disposalRes.data.success) { | ||
| 1211 | + // 清空待分配列表 | ||
| 1212 | + pendingDisposalAssignments.value = {}; | ||
| 1213 | + // 标记处置场所已分配 | ||
| 1214 | + disposalAssigned.value = true; | ||
| 1215 | + | ||
| 1216 | + // 然后更新订单状态为开始运输 | ||
| 1217 | + updateOrder({ | ||
| 1218 | + garOrderId: orderId, | ||
| 1219 | + handleType: 0 | ||
| 1220 | + }).then(res => { | ||
| 1221 | + if (res.data.success) { | ||
| 1222 | + if (res.data.data === "订单已经被别人接受啦") { | ||
| 1223 | + uni.$u.toast(res.data.data) | ||
| 1224 | + uni.$u.route({ | ||
| 1225 | + type: "reLaunch", | ||
| 1226 | + url: `pages/order/index`, | ||
| 1227 | + }) | ||
| 1228 | + } else { | ||
| 1229 | + uni.$u.toast(res.data.data) | ||
| 1230 | + handleOrderDetail(orderId) | ||
| 1231 | + refreshOrderData() | ||
| 1232 | + } | ||
| 1233 | + } | ||
| 1206 | }) | 1234 | }) |
| 1207 | } else { | 1235 | } else { |
| 1208 | - uni.$u.toast(res.data.data) | ||
| 1209 | - handleOrderDetail(orderId) | ||
| 1210 | - refreshOrderData() | 1236 | + uni.$u.toast("指定处置场所失败,请重试"); |
| 1211 | } | 1237 | } |
| 1212 | - } | ||
| 1213 | - }) | 1238 | + }) |
| 1239 | + } else { | ||
| 1240 | + // 没有待分配的处置场所,直接更新订单状态为开始运输 | ||
| 1241 | + updateOrder({ | ||
| 1242 | + garOrderId: orderId, | ||
| 1243 | + handleType: 0 | ||
| 1244 | + }).then(res => { | ||
| 1245 | + if (res.data.success) { | ||
| 1246 | + if (res.data.data === "订单已经被别人接受啦") { | ||
| 1247 | + uni.$u.toast(res.data.data) | ||
| 1248 | + uni.$u.route({ | ||
| 1249 | + type: "reLaunch", | ||
| 1250 | + url: `pages/order/index`, | ||
| 1251 | + }) | ||
| 1252 | + } else { | ||
| 1253 | + uni.$u.toast(res.data.data) | ||
| 1254 | + handleOrderDetail(orderId) | ||
| 1255 | + refreshOrderData() | ||
| 1256 | + } | ||
| 1257 | + } | ||
| 1258 | + }) | ||
| 1259 | + } | ||
| 1214 | } else { | 1260 | } else { |
| 1215 | uni.$u.toast("指定人员失败,请重试"); | 1261 | uni.$u.toast("指定人员失败,请重试"); |
| 1216 | } | 1262 | } |
| 1217 | }) | 1263 | }) |
| 1218 | } else { | 1264 | } else { |
| 1219 | - // 没有待分配的驾驶员,直接开始运输 | ||
| 1220 | - updateOrder({ | ||
| 1221 | - garOrderId: orderId, | ||
| 1222 | - handleType: 0 | ||
| 1223 | - }).then(res => { | ||
| 1224 | - if (res.data.success) { | ||
| 1225 | - if (res.data.data === "订单已经被别人接受啦") { | ||
| 1226 | - uni.$u.toast(res.data.data) | ||
| 1227 | - uni.$u.route({ | ||
| 1228 | - type: "reLaunch", | ||
| 1229 | - url: `pages/order/index`, | 1265 | + // 没有待分配的驾驶员,检查是否有待分配的处置场所 |
| 1266 | + if (pendingDisposalAssignments.value && Object.keys(pendingDisposalAssignments.value).length > 0) { | ||
| 1267 | + let disposalData = { | ||
| 1268 | + garOrderId: orderId, | ||
| 1269 | + dispatchList: [] | ||
| 1270 | + } | ||
| 1271 | + for (const key in pendingDisposalAssignments.value) { | ||
| 1272 | + disposalData.dispatchList.push({ | ||
| 1273 | + ...pendingDisposalAssignments.value[key] | ||
| 1274 | + }); | ||
| 1275 | + } | ||
| 1276 | + | ||
| 1277 | + dispatchDisposalOrders(disposalData).then(disposalRes => { | ||
| 1278 | + if (disposalRes.data.success) { | ||
| 1279 | + // 清空待分配列表 | ||
| 1280 | + pendingDisposalAssignments.value = {}; | ||
| 1281 | + // 标记处置场所已分配 | ||
| 1282 | + disposalAssigned.value = true; | ||
| 1283 | + | ||
| 1284 | + // 然后更新订单状态为开始运输 | ||
| 1285 | + updateOrder({ | ||
| 1286 | + garOrderId: orderId, | ||
| 1287 | + handleType: 0 | ||
| 1288 | + }).then(res => { | ||
| 1289 | + if (res.data.success) { | ||
| 1290 | + if (res.data.data === "订单已经被别人接受啦") { | ||
| 1291 | + uni.$u.toast(res.data.data) | ||
| 1292 | + uni.$u.route({ | ||
| 1293 | + type: "reLaunch", | ||
| 1294 | + url: `pages/order/index`, | ||
| 1295 | + }) | ||
| 1296 | + } else { | ||
| 1297 | + uni.$u.toast(res.data.data) | ||
| 1298 | + handleOrderDetail(orderId) | ||
| 1299 | + refreshOrderData() | ||
| 1300 | + } | ||
| 1301 | + } | ||
| 1230 | }) | 1302 | }) |
| 1231 | } else { | 1303 | } else { |
| 1232 | - uni.$u.toast(res.data.data) | ||
| 1233 | - handleOrderDetail(orderId) | ||
| 1234 | - refreshOrderData() | 1304 | + uni.$u.toast("指定处置场所失败,请重试"); |
| 1235 | } | 1305 | } |
| 1236 | - } | ||
| 1237 | - }) | 1306 | + }) |
| 1307 | + } else { | ||
| 1308 | + // 没有待分配的驾驶员和处置场所,直接开始运输 | ||
| 1309 | + updateOrder({ | ||
| 1310 | + garOrderId: orderId, | ||
| 1311 | + handleType: 0 | ||
| 1312 | + }).then(res => { | ||
| 1313 | + if (res.data.success) { | ||
| 1314 | + if (res.data.data === "订单已经被别人接受啦") { | ||
| 1315 | + uni.$u.toast(res.data.data) | ||
| 1316 | + uni.$u.route({ | ||
| 1317 | + type: "reLaunch", | ||
| 1318 | + url: `pages/order/index`, | ||
| 1319 | + }) | ||
| 1320 | + } else { | ||
| 1321 | + uni.$u.toast(res.data.data) | ||
| 1322 | + handleOrderDetail(orderId) | ||
| 1323 | + refreshOrderData() | ||
| 1324 | + } | ||
| 1325 | + } | ||
| 1326 | + }) | ||
| 1327 | + } | ||
| 1238 | } | 1328 | } |
| 1239 | } | 1329 | } |
| 1240 | 1330 | ||
| 1331 | + | ||
| 1241 | const currentStep = (step) => { | 1332 | const currentStep = (step) => { |
| 1242 | if (step > 2) { | 1333 | if (step > 2) { |
| 1243 | return step - 1; | 1334 | return step - 1; |
| @@ -1266,42 +1357,70 @@ const cleanStatus = (status) => { | @@ -1266,42 +1357,70 @@ const cleanStatus = (status) => { | ||
| 1266 | const handleDisposalDispatchConfirm = (val) => { | 1357 | const handleDisposalDispatchConfirm = (val) => { |
| 1267 | console.log(val); | 1358 | console.log(val); |
| 1268 | if (!val) { | 1359 | if (!val) { |
| 1269 | - return | ||
| 1270 | - } | ||
| 1271 | - let data = { | ||
| 1272 | - garOrderId: orderId.value, | ||
| 1273 | - dispatchList: [] | 1360 | + return; |
| 1274 | } | 1361 | } |
| 1275 | 1362 | ||
| 1276 | - // 新增:存储选中的处理场所信息 | ||
| 1277 | - selectedDisposalSites.value = []; | 1363 | + // 判断是否是重新分配(订单状态为1) |
| 1364 | + const isReassigning = dataGram.value?.garOrderHandlerStatus === 1; | ||
| 1278 | 1365 | ||
| 1279 | - for (const key in val) { | ||
| 1280 | - data.dispatchList.push({ | ||
| 1281 | - ...val[key] | ||
| 1282 | - }); | 1366 | + if (isReassigning) { |
| 1367 | + // 如果是重新分配,直接调用接口分配处置场所 | ||
| 1368 | + let data = { | ||
| 1369 | + garOrderId: orderId.value, | ||
| 1370 | + dispatchList: [] | ||
| 1371 | + } | ||
| 1283 | 1372 | ||
| 1284 | - // 新增:提取处理场所信息 | ||
| 1285 | - selectedDisposalSites.value.push({ | ||
| 1286 | - companyName: val[key].companyName, | ||
| 1287 | - contactName: val[key].personName, | ||
| 1288 | - contactPhone: val[key].tel | ||
| 1289 | - }); | ||
| 1290 | - } | ||
| 1291 | - console.log(data); | ||
| 1292 | - dispatchDisposalOrders(data).then(res => { | ||
| 1293 | - if (res.data.success) { | ||
| 1294 | - uni.$u.toast(res.data.msg) | ||
| 1295 | - // 标记处置场所已分配 | ||
| 1296 | - disposalAssigned.value = true; | ||
| 1297 | - // 检查是否两个任务都已完成 | ||
| 1298 | - // 立即刷新订单详情以确保分配信息得到保存 | ||
| 1299 | - handleOrderDetail(orderId.value); | ||
| 1300 | - } else { | ||
| 1301 | - uni.$u.toast("指定人员失败,请重试") | 1373 | + // 新增:存储选中的处理场所信息 |
| 1374 | + selectedDisposalSites.value = []; | ||
| 1375 | + | ||
| 1376 | + for (const key in val) { | ||
| 1377 | + data.dispatchList.push({ | ||
| 1378 | + ...val[key] | ||
| 1379 | + }); | ||
| 1380 | + | ||
| 1381 | + // 新增:提取处理场所信息 | ||
| 1382 | + selectedDisposalSites.value.push({ | ||
| 1383 | + companyName: val[key].companyName, | ||
| 1384 | + contactName: val[key].personName, | ||
| 1385 | + contactPhone: val[key].tel | ||
| 1386 | + }); | ||
| 1302 | } | 1387 | } |
| 1303 | - clashDriverDispatchRef.value.close() | ||
| 1304 | - }) | 1388 | + console.log(data); |
| 1389 | + dispatchDisposalOrders(data).then(res => { | ||
| 1390 | + if (res.data.success) { | ||
| 1391 | + uni.$u.toast(res.data.msg) | ||
| 1392 | + // 标记处置场所已分配 | ||
| 1393 | + disposalAssigned.value = true; | ||
| 1394 | + // 检查是否两个任务都已完成 | ||
| 1395 | + // 立即刷新订单详情以确保分配信息得到保存 | ||
| 1396 | + handleOrderDetail(orderId.value); | ||
| 1397 | + } else { | ||
| 1398 | + uni.$u.toast("指定人员失败,请重试") | ||
| 1399 | + } | ||
| 1400 | + clashDisposalDispatchRef.value.close() | ||
| 1401 | + }) | ||
| 1402 | + } else { | ||
| 1403 | + // 初次分配,将待分配的处置场所存储起来,但不立即调用后端接口 | ||
| 1404 | + pendingDisposalAssignments.value = { ...val }; | ||
| 1405 | + | ||
| 1406 | + // 新增:存储选中的处理场所信息 | ||
| 1407 | + selectedDisposalSites.value = []; | ||
| 1408 | + | ||
| 1409 | + for (const key in val) { | ||
| 1410 | + // 新增:提取处理场所信息 | ||
| 1411 | + selectedDisposalSites.value.push({ | ||
| 1412 | + companyName: val[key].companyName, | ||
| 1413 | + contactName: val[key].personName, | ||
| 1414 | + contactPhone: val[key].tel | ||
| 1415 | + }); | ||
| 1416 | + } | ||
| 1417 | + | ||
| 1418 | + // 显示提示信息 | ||
| 1419 | + uni.$u.toast("处置场所已选择,将在开始运输时分配"); | ||
| 1420 | + | ||
| 1421 | + // 关闭弹窗 | ||
| 1422 | + clashDisposalDispatchRef.value.close(); | ||
| 1423 | + } | ||
| 1305 | } | 1424 | } |
| 1306 | 1425 | ||
| 1307 | 1426 |
garbage-removal/src/pages/wode-info/wode-info-choose/index.vue
| @@ -159,9 +159,6 @@ onLoad((options) => { | @@ -159,9 +159,6 @@ onLoad((options) => { | ||
| 159 | const element = loginInfo[index]; | 159 | const element = loginInfo[index]; |
| 160 | element.userName = userName; | 160 | element.userName = userName; |
| 161 | unitInfo.value[element.userType] = element | 161 | unitInfo.value[element.userType] = element |
| 162 | - console.log(unitInfo.value); | ||
| 163 | - | ||
| 164 | - | ||
| 165 | } | 162 | } |
| 166 | let order = 999; | 163 | let order = 999; |
| 167 | let index = 0; | 164 | let index = 0; |
garbage-removal/src/static/fonts/font_2225171_8kdcwk4po24.ttf
0 → 100644
No preview for this file type
garbage-removal/src/static/icon/font_4327805_dv0tbbt7hp7/demo.css deleted
100644 → 0
| 1 | -/* Logo 字体 */ | ||
| 2 | -@font-face { | ||
| 3 | - font-family: "iconfont logo"; | ||
| 4 | - src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); | ||
| 5 | - src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), | ||
| 6 | - url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), | ||
| 7 | - url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), | ||
| 8 | - url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); | ||
| 9 | -} | ||
| 10 | - | ||
| 11 | -.logo { | ||
| 12 | - font-family: "iconfont logo"; | ||
| 13 | - font-size: 160px; | ||
| 14 | - font-style: normal; | ||
| 15 | - -webkit-font-smoothing: antialiased; | ||
| 16 | - -moz-osx-font-smoothing: grayscale; | ||
| 17 | -} | ||
| 18 | - | ||
| 19 | -/* tabs */ | ||
| 20 | -.nav-tabs { | ||
| 21 | - position: relative; | ||
| 22 | -} | ||
| 23 | - | ||
| 24 | -.nav-tabs .nav-more { | ||
| 25 | - position: absolute; | ||
| 26 | - right: 0; | ||
| 27 | - bottom: 0; | ||
| 28 | - height: 42px; | ||
| 29 | - line-height: 42px; | ||
| 30 | - color: #666; | ||
| 31 | -} | ||
| 32 | - | ||
| 33 | -#tabs { | ||
| 34 | - border-bottom: 1px solid #eee; | ||
| 35 | -} | ||
| 36 | - | ||
| 37 | -#tabs li { | ||
| 38 | - cursor: pointer; | ||
| 39 | - width: 100px; | ||
| 40 | - height: 40px; | ||
| 41 | - line-height: 40px; | ||
| 42 | - text-align: center; | ||
| 43 | - font-size: 16px; | ||
| 44 | - border-bottom: 2px solid transparent; | ||
| 45 | - position: relative; | ||
| 46 | - z-index: 1; | ||
| 47 | - margin-bottom: -1px; | ||
| 48 | - color: #666; | ||
| 49 | -} | ||
| 50 | - | ||
| 51 | - | ||
| 52 | -#tabs .active { | ||
| 53 | - border-bottom-color: #f00; | ||
| 54 | - color: #222; | ||
| 55 | -} | ||
| 56 | - | ||
| 57 | -.tab-container .content { | ||
| 58 | - display: none; | ||
| 59 | -} | ||
| 60 | - | ||
| 61 | -/* 页面布局 */ | ||
| 62 | -.main { | ||
| 63 | - padding: 30px 100px; | ||
| 64 | - width: 960px; | ||
| 65 | - margin: 0 auto; | ||
| 66 | -} | ||
| 67 | - | ||
| 68 | -.main .logo { | ||
| 69 | - color: #333; | ||
| 70 | - text-align: left; | ||
| 71 | - margin-bottom: 30px; | ||
| 72 | - line-height: 1; | ||
| 73 | - height: 110px; | ||
| 74 | - margin-top: -50px; | ||
| 75 | - overflow: hidden; | ||
| 76 | - *zoom: 1; | ||
| 77 | -} | ||
| 78 | - | ||
| 79 | -.main .logo a { | ||
| 80 | - font-size: 160px; | ||
| 81 | - color: #333; | ||
| 82 | -} | ||
| 83 | - | ||
| 84 | -.helps { | ||
| 85 | - margin-top: 40px; | ||
| 86 | -} | ||
| 87 | - | ||
| 88 | -.helps pre { | ||
| 89 | - padding: 20px; | ||
| 90 | - margin: 10px 0; | ||
| 91 | - border: solid 1px #e7e1cd; | ||
| 92 | - background-color: #fffdef; | ||
| 93 | - overflow: auto; | ||
| 94 | -} | ||
| 95 | - | ||
| 96 | -.icon_lists { | ||
| 97 | - width: 100% !important; | ||
| 98 | - overflow: hidden; | ||
| 99 | - *zoom: 1; | ||
| 100 | -} | ||
| 101 | - | ||
| 102 | -.icon_lists li { | ||
| 103 | - width: 100px; | ||
| 104 | - margin-bottom: 10px; | ||
| 105 | - margin-right: 20px; | ||
| 106 | - text-align: center; | ||
| 107 | - list-style: none !important; | ||
| 108 | - cursor: default; | ||
| 109 | -} | ||
| 110 | - | ||
| 111 | -.icon_lists li .code-name { | ||
| 112 | - line-height: 1.2; | ||
| 113 | -} | ||
| 114 | - | ||
| 115 | -.icon_lists .icon { | ||
| 116 | - display: block; | ||
| 117 | - height: 100px; | ||
| 118 | - line-height: 100px; | ||
| 119 | - font-size: 42px; | ||
| 120 | - margin: 10px auto; | ||
| 121 | - color: #333; | ||
| 122 | - -webkit-transition: font-size 0.25s linear, width 0.25s linear; | ||
| 123 | - -moz-transition: font-size 0.25s linear, width 0.25s linear; | ||
| 124 | - transition: font-size 0.25s linear, width 0.25s linear; | ||
| 125 | -} | ||
| 126 | - | ||
| 127 | -.icon_lists .icon:hover { | ||
| 128 | - font-size: 100px; | ||
| 129 | -} | ||
| 130 | - | ||
| 131 | -.icon_lists .svg-icon { | ||
| 132 | - /* 通过设置 font-size 来改变图标大小 */ | ||
| 133 | - width: 1em; | ||
| 134 | - /* 图标和文字相邻时,垂直对齐 */ | ||
| 135 | - vertical-align: -0.15em; | ||
| 136 | - /* 通过设置 color 来改变 SVG 的颜色/fill */ | ||
| 137 | - fill: currentColor; | ||
| 138 | - /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 | ||
| 139 | - normalize.css 中也包含这行 */ | ||
| 140 | - overflow: hidden; | ||
| 141 | -} | ||
| 142 | - | ||
| 143 | -.icon_lists li .name, | ||
| 144 | -.icon_lists li .code-name { | ||
| 145 | - color: #666; | ||
| 146 | -} | ||
| 147 | - | ||
| 148 | -/* markdown 样式 */ | ||
| 149 | -.markdown { | ||
| 150 | - color: #666; | ||
| 151 | - font-size: 14px; | ||
| 152 | - line-height: 1.8; | ||
| 153 | -} | ||
| 154 | - | ||
| 155 | -.highlight { | ||
| 156 | - line-height: 1.5; | ||
| 157 | -} | ||
| 158 | - | ||
| 159 | -.markdown img { | ||
| 160 | - vertical-align: middle; | ||
| 161 | - max-width: 100%; | ||
| 162 | -} | ||
| 163 | - | ||
| 164 | -.markdown h1 { | ||
| 165 | - color: #404040; | ||
| 166 | - font-weight: 500; | ||
| 167 | - line-height: 40px; | ||
| 168 | - margin-bottom: 24px; | ||
| 169 | -} | ||
| 170 | - | ||
| 171 | -.markdown h2, | ||
| 172 | -.markdown h3, | ||
| 173 | -.markdown h4, | ||
| 174 | -.markdown h5, | ||
| 175 | -.markdown h6 { | ||
| 176 | - color: #404040; | ||
| 177 | - margin: 1.6em 0 0.6em 0; | ||
| 178 | - font-weight: 500; | ||
| 179 | - clear: both; | ||
| 180 | -} | ||
| 181 | - | ||
| 182 | -.markdown h1 { | ||
| 183 | - font-size: 28px; | ||
| 184 | -} | ||
| 185 | - | ||
| 186 | -.markdown h2 { | ||
| 187 | - font-size: 22px; | ||
| 188 | -} | ||
| 189 | - | ||
| 190 | -.markdown h3 { | ||
| 191 | - font-size: 16px; | ||
| 192 | -} | ||
| 193 | - | ||
| 194 | -.markdown h4 { | ||
| 195 | - font-size: 14px; | ||
| 196 | -} | ||
| 197 | - | ||
| 198 | -.markdown h5 { | ||
| 199 | - font-size: 12px; | ||
| 200 | -} | ||
| 201 | - | ||
| 202 | -.markdown h6 { | ||
| 203 | - font-size: 12px; | ||
| 204 | -} | ||
| 205 | - | ||
| 206 | -.markdown hr { | ||
| 207 | - height: 1px; | ||
| 208 | - border: 0; | ||
| 209 | - background: #e9e9e9; | ||
| 210 | - margin: 16px 0; | ||
| 211 | - clear: both; | ||
| 212 | -} | ||
| 213 | - | ||
| 214 | -.markdown p { | ||
| 215 | - margin: 1em 0; | ||
| 216 | -} | ||
| 217 | - | ||
| 218 | -.markdown>p, | ||
| 219 | -.markdown>blockquote, | ||
| 220 | -.markdown>.highlight, | ||
| 221 | -.markdown>ol, | ||
| 222 | -.markdown>ul { | ||
| 223 | - width: 80%; | ||
| 224 | -} | ||
| 225 | - | ||
| 226 | -.markdown ul>li { | ||
| 227 | - list-style: circle; | ||
| 228 | -} | ||
| 229 | - | ||
| 230 | -.markdown>ul li, | ||
| 231 | -.markdown blockquote ul>li { | ||
| 232 | - margin-left: 20px; | ||
| 233 | - padding-left: 4px; | ||
| 234 | -} | ||
| 235 | - | ||
| 236 | -.markdown>ul li p, | ||
| 237 | -.markdown>ol li p { | ||
| 238 | - margin: 0.6em 0; | ||
| 239 | -} | ||
| 240 | - | ||
| 241 | -.markdown ol>li { | ||
| 242 | - list-style: decimal; | ||
| 243 | -} | ||
| 244 | - | ||
| 245 | -.markdown>ol li, | ||
| 246 | -.markdown blockquote ol>li { | ||
| 247 | - margin-left: 20px; | ||
| 248 | - padding-left: 4px; | ||
| 249 | -} | ||
| 250 | - | ||
| 251 | -.markdown code { | ||
| 252 | - margin: 0 3px; | ||
| 253 | - padding: 0 5px; | ||
| 254 | - background: #eee; | ||
| 255 | - border-radius: 3px; | ||
| 256 | -} | ||
| 257 | - | ||
| 258 | -.markdown strong, | ||
| 259 | -.markdown b { | ||
| 260 | - font-weight: 600; | ||
| 261 | -} | ||
| 262 | - | ||
| 263 | -.markdown>table { | ||
| 264 | - border-collapse: collapse; | ||
| 265 | - border-spacing: 0px; | ||
| 266 | - empty-cells: show; | ||
| 267 | - border: 1px solid #e9e9e9; | ||
| 268 | - width: 95%; | ||
| 269 | - margin-bottom: 24px; | ||
| 270 | -} | ||
| 271 | - | ||
| 272 | -.markdown>table th { | ||
| 273 | - white-space: nowrap; | ||
| 274 | - color: #333; | ||
| 275 | - font-weight: 600; | ||
| 276 | -} | ||
| 277 | - | ||
| 278 | -.markdown>table th, | ||
| 279 | -.markdown>table td { | ||
| 280 | - border: 1px solid #e9e9e9; | ||
| 281 | - padding: 8px 16px; | ||
| 282 | - text-align: left; | ||
| 283 | -} | ||
| 284 | - | ||
| 285 | -.markdown>table th { | ||
| 286 | - background: #F7F7F7; | ||
| 287 | -} | ||
| 288 | - | ||
| 289 | -.markdown blockquote { | ||
| 290 | - font-size: 90%; | ||
| 291 | - color: #999; | ||
| 292 | - border-left: 4px solid #e9e9e9; | ||
| 293 | - padding-left: 0.8em; | ||
| 294 | - margin: 1em 0; | ||
| 295 | -} | ||
| 296 | - | ||
| 297 | -.markdown blockquote p { | ||
| 298 | - margin: 0; | ||
| 299 | -} | ||
| 300 | - | ||
| 301 | -.markdown .anchor { | ||
| 302 | - opacity: 0; | ||
| 303 | - transition: opacity 0.3s ease; | ||
| 304 | - margin-left: 8px; | ||
| 305 | -} | ||
| 306 | - | ||
| 307 | -.markdown .waiting { | ||
| 308 | - color: #ccc; | ||
| 309 | -} | ||
| 310 | - | ||
| 311 | -.markdown h1:hover .anchor, | ||
| 312 | -.markdown h2:hover .anchor, | ||
| 313 | -.markdown h3:hover .anchor, | ||
| 314 | -.markdown h4:hover .anchor, | ||
| 315 | -.markdown h5:hover .anchor, | ||
| 316 | -.markdown h6:hover .anchor { | ||
| 317 | - opacity: 1; | ||
| 318 | - display: inline-block; | ||
| 319 | -} | ||
| 320 | - | ||
| 321 | -.markdown>br, | ||
| 322 | -.markdown>p>br { | ||
| 323 | - clear: both; | ||
| 324 | -} | ||
| 325 | - | ||
| 326 | - | ||
| 327 | -.hljs { | ||
| 328 | - display: block; | ||
| 329 | - background: white; | ||
| 330 | - padding: 0.5em; | ||
| 331 | - color: #333333; | ||
| 332 | - overflow-x: auto; | ||
| 333 | -} | ||
| 334 | - | ||
| 335 | -.hljs-comment, | ||
| 336 | -.hljs-meta { | ||
| 337 | - color: #969896; | ||
| 338 | -} | ||
| 339 | - | ||
| 340 | -.hljs-string, | ||
| 341 | -.hljs-variable, | ||
| 342 | -.hljs-template-variable, | ||
| 343 | -.hljs-strong, | ||
| 344 | -.hljs-emphasis, | ||
| 345 | -.hljs-quote { | ||
| 346 | - color: #df5000; | ||
| 347 | -} | ||
| 348 | - | ||
| 349 | -.hljs-keyword, | ||
| 350 | -.hljs-selector-tag, | ||
| 351 | -.hljs-type { | ||
| 352 | - color: #a71d5d; | ||
| 353 | -} | ||
| 354 | - | ||
| 355 | -.hljs-literal, | ||
| 356 | -.hljs-symbol, | ||
| 357 | -.hljs-bullet, | ||
| 358 | -.hljs-attribute { | ||
| 359 | - color: #0086b3; | ||
| 360 | -} | ||
| 361 | - | ||
| 362 | -.hljs-section, | ||
| 363 | -.hljs-name { | ||
| 364 | - color: #63a35c; | ||
| 365 | -} | ||
| 366 | - | ||
| 367 | -.hljs-tag { | ||
| 368 | - color: #333333; | ||
| 369 | -} | ||
| 370 | - | ||
| 371 | -.hljs-title, | ||
| 372 | -.hljs-attr, | ||
| 373 | -.hljs-selector-id, | ||
| 374 | -.hljs-selector-class, | ||
| 375 | -.hljs-selector-attr, | ||
| 376 | -.hljs-selector-pseudo { | ||
| 377 | - color: #795da3; | ||
| 378 | -} | ||
| 379 | - | ||
| 380 | -.hljs-addition { | ||
| 381 | - color: #55a532; | ||
| 382 | - background-color: #eaffea; | ||
| 383 | -} | ||
| 384 | - | ||
| 385 | -.hljs-deletion { | ||
| 386 | - color: #bd2c00; | ||
| 387 | - background-color: #ffecec; | ||
| 388 | -} | ||
| 389 | - | ||
| 390 | -.hljs-link { | ||
| 391 | - text-decoration: underline; | ||
| 392 | -} | ||
| 393 | - | ||
| 394 | -/* 代码高亮 */ | ||
| 395 | -/* PrismJS 1.15.0 | ||
| 396 | -https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ | ||
| 397 | -/** | ||
| 398 | - * prism.js default theme for JavaScript, CSS and HTML | ||
| 399 | - * Based on dabblet (http://dabblet.com) | ||
| 400 | - * @author Lea Verou | ||
| 401 | - */ | ||
| 402 | -code[class*="language-"], | ||
| 403 | -pre[class*="language-"] { | ||
| 404 | - color: black; | ||
| 405 | - background: none; | ||
| 406 | - text-shadow: 0 1px white; | ||
| 407 | - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; | ||
| 408 | - text-align: left; | ||
| 409 | - white-space: pre; | ||
| 410 | - word-spacing: normal; | ||
| 411 | - word-break: normal; | ||
| 412 | - word-wrap: normal; | ||
| 413 | - line-height: 1.5; | ||
| 414 | - | ||
| 415 | - -moz-tab-size: 4; | ||
| 416 | - -o-tab-size: 4; | ||
| 417 | - tab-size: 4; | ||
| 418 | - | ||
| 419 | - -webkit-hyphens: none; | ||
| 420 | - -moz-hyphens: none; | ||
| 421 | - -ms-hyphens: none; | ||
| 422 | - hyphens: none; | ||
| 423 | -} | ||
| 424 | - | ||
| 425 | -pre[class*="language-"]::-moz-selection, | ||
| 426 | -pre[class*="language-"] ::-moz-selection, | ||
| 427 | -code[class*="language-"]::-moz-selection, | ||
| 428 | -code[class*="language-"] ::-moz-selection { | ||
| 429 | - text-shadow: none; | ||
| 430 | - background: #b3d4fc; | ||
| 431 | -} | ||
| 432 | - | ||
| 433 | -pre[class*="language-"]::selection, | ||
| 434 | -pre[class*="language-"] ::selection, | ||
| 435 | -code[class*="language-"]::selection, | ||
| 436 | -code[class*="language-"] ::selection { | ||
| 437 | - text-shadow: none; | ||
| 438 | - background: #b3d4fc; | ||
| 439 | -} | ||
| 440 | - | ||
| 441 | -@media print { | ||
| 442 | - | ||
| 443 | - code[class*="language-"], | ||
| 444 | - pre[class*="language-"] { | ||
| 445 | - text-shadow: none; | ||
| 446 | - } | ||
| 447 | -} | ||
| 448 | - | ||
| 449 | -/* Code blocks */ | ||
| 450 | -pre[class*="language-"] { | ||
| 451 | - padding: 1em; | ||
| 452 | - margin: .5em 0; | ||
| 453 | - overflow: auto; | ||
| 454 | -} | ||
| 455 | - | ||
| 456 | -:not(pre)>code[class*="language-"], | ||
| 457 | -pre[class*="language-"] { | ||
| 458 | - background: #f5f2f0; | ||
| 459 | -} | ||
| 460 | - | ||
| 461 | -/* Inline code */ | ||
| 462 | -:not(pre)>code[class*="language-"] { | ||
| 463 | - padding: .1em; | ||
| 464 | - border-radius: .3em; | ||
| 465 | - white-space: normal; | ||
| 466 | -} | ||
| 467 | - | ||
| 468 | -.token.comment, | ||
| 469 | -.token.prolog, | ||
| 470 | -.token.doctype, | ||
| 471 | -.token.cdata { | ||
| 472 | - color: slategray; | ||
| 473 | -} | ||
| 474 | - | ||
| 475 | -.token.punctuation { | ||
| 476 | - color: #999; | ||
| 477 | -} | ||
| 478 | - | ||
| 479 | -.namespace { | ||
| 480 | - opacity: .7; | ||
| 481 | -} | ||
| 482 | - | ||
| 483 | -.token.property, | ||
| 484 | -.token.tag, | ||
| 485 | -.token.boolean, | ||
| 486 | -.token.number, | ||
| 487 | -.token.constant, | ||
| 488 | -.token.symbol, | ||
| 489 | -.token.deleted { | ||
| 490 | - color: #905; | ||
| 491 | -} | ||
| 492 | - | ||
| 493 | -.token.selector, | ||
| 494 | -.token.attr-name, | ||
| 495 | -.token.string, | ||
| 496 | -.token.char, | ||
| 497 | -.token.builtin, | ||
| 498 | -.token.inserted { | ||
| 499 | - color: #690; | ||
| 500 | -} | ||
| 501 | - | ||
| 502 | -.token.operator, | ||
| 503 | -.token.entity, | ||
| 504 | -.token.url, | ||
| 505 | -.language-css .token.string, | ||
| 506 | -.style .token.string { | ||
| 507 | - color: #9a6e3a; | ||
| 508 | - background: hsla(0, 0%, 100%, .5); | ||
| 509 | -} | ||
| 510 | - | ||
| 511 | -.token.atrule, | ||
| 512 | -.token.attr-value, | ||
| 513 | -.token.keyword { | ||
| 514 | - color: #07a; | ||
| 515 | -} | ||
| 516 | - | ||
| 517 | -.token.function, | ||
| 518 | -.token.class-name { | ||
| 519 | - color: #DD4A68; | ||
| 520 | -} | ||
| 521 | - | ||
| 522 | -.token.regex, | ||
| 523 | -.token.important, | ||
| 524 | -.token.variable { | ||
| 525 | - color: #e90; | ||
| 526 | -} | ||
| 527 | - | ||
| 528 | -.token.important, | ||
| 529 | -.token.bold { | ||
| 530 | - font-weight: bold; | ||
| 531 | -} | ||
| 532 | - | ||
| 533 | -.token.italic { | ||
| 534 | - font-style: italic; | ||
| 535 | -} | ||
| 536 | - | ||
| 537 | -.token.entity { | ||
| 538 | - cursor: help; | ||
| 539 | -} |
garbage-removal/src/static/icon/font_4327805_dv0tbbt7hp7/demo_index.html deleted
100644 → 0
| 1 | -<!DOCTYPE html> | ||
| 2 | -<html> | ||
| 3 | -<head> | ||
| 4 | - <meta charset="utf-8"/> | ||
| 5 | - <title>iconfont Demo</title> | ||
| 6 | - <link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/> | ||
| 7 | - <link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/> | ||
| 8 | - <link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css"> | ||
| 9 | - <link rel="stylesheet" href="demo.css"> | ||
| 10 | - <link rel="stylesheet" href="iconfont.css"> | ||
| 11 | - <script src="iconfont.js"></script> | ||
| 12 | - <!-- jQuery --> | ||
| 13 | - <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script> | ||
| 14 | - <!-- 代码高亮 --> | ||
| 15 | - <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script> | ||
| 16 | - <style> | ||
| 17 | - .main .logo { | ||
| 18 | - margin-top: 0; | ||
| 19 | - height: auto; | ||
| 20 | - } | ||
| 21 | - | ||
| 22 | - .main .logo a { | ||
| 23 | - display: flex; | ||
| 24 | - align-items: center; | ||
| 25 | - } | ||
| 26 | - | ||
| 27 | - .main .logo .sub-title { | ||
| 28 | - margin-left: 0.5em; | ||
| 29 | - font-size: 22px; | ||
| 30 | - color: #fff; | ||
| 31 | - background: linear-gradient(-45deg, #3967FF, #B500FE); | ||
| 32 | - -webkit-background-clip: text; | ||
| 33 | - -webkit-text-fill-color: transparent; | ||
| 34 | - } | ||
| 35 | - </style> | ||
| 36 | -</head> | ||
| 37 | -<body> | ||
| 38 | - <div class="main"> | ||
| 39 | - <h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank"> | ||
| 40 | - <img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg"> | ||
| 41 | - | ||
| 42 | - <span class="sub-title">彩色字体</span> | ||
| 43 | - | ||
| 44 | - </a></h1> | ||
| 45 | - <div class="nav-tabs"> | ||
| 46 | - <ul id="tabs" class="dib-box"> | ||
| 47 | - <li class="dib active"><span>Unicode</span></li> | ||
| 48 | - <li class="dib"><span>Font class</span></li> | ||
| 49 | - <li class="dib"><span>Symbol</span></li> | ||
| 50 | - </ul> | ||
| 51 | - | ||
| 52 | - <a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=4327805" target="_blank" class="nav-more">查看项目</a> | ||
| 53 | - | ||
| 54 | - </div> | ||
| 55 | - <div class="tab-container"> | ||
| 56 | - <div class="content unicode" style="display: block;"> | ||
| 57 | - <ul class="icon_lists dib-box"> | ||
| 58 | - | ||
| 59 | - <li class="dib"> | ||
| 60 | - <span class="icon iconfont"></span> | ||
| 61 | - <div class="name">二维码-线</div> | ||
| 62 | - <div class="code-name">&#xe634;</div> | ||
| 63 | - </li> | ||
| 64 | - | ||
| 65 | - <li class="dib"> | ||
| 66 | - <span class="icon iconfont"></span> | ||
| 67 | - <div class="name">垃圾桶</div> | ||
| 68 | - <div class="code-name">&#xe601;</div> | ||
| 69 | - </li> | ||
| 70 | - | ||
| 71 | - <li class="dib"> | ||
| 72 | - <span class="icon iconfont"></span> | ||
| 73 | - <div class="name">政策</div> | ||
| 74 | - <div class="code-name">&#xe673;</div> | ||
| 75 | - </li> | ||
| 76 | - | ||
| 77 | - <li class="dib"> | ||
| 78 | - <span class="icon iconfont"></span> | ||
| 79 | - <div class="name">货车</div> | ||
| 80 | - <div class="code-name">&#xeca7;</div> | ||
| 81 | - </li> | ||
| 82 | - | ||
| 83 | - <li class="dib"> | ||
| 84 | - <span class="icon iconfont"></span> | ||
| 85 | - <div class="name">卸料平台</div> | ||
| 86 | - <div class="code-name">&#xe67d;</div> | ||
| 87 | - </li> | ||
| 88 | - | ||
| 89 | - <li class="dib"> | ||
| 90 | - <span class="icon iconfont"></span> | ||
| 91 | - <div class="name">文件资料</div> | ||
| 92 | - <div class="code-name">&#xe625;</div> | ||
| 93 | - </li> | ||
| 94 | - | ||
| 95 | - </ul> | ||
| 96 | - <div class="article markdown"> | ||
| 97 | - <h2 id="unicode-">Unicode 引用</h2> | ||
| 98 | - <hr> | ||
| 99 | - | ||
| 100 | - <p>Unicode 是字体在网页端最原始的应用方式,特点是:</p> | ||
| 101 | - <ul> | ||
| 102 | - <li>支持按字体的方式去动态调整图标大小,颜色等等。</li> | ||
| 103 | - <li>默认情况下不支持多色,直接添加多色图标会自动去色。</li> | ||
| 104 | - </ul> | ||
| 105 | - <blockquote> | ||
| 106 | - <p>注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p> | ||
| 107 | - </blockquote> | ||
| 108 | - <p>Unicode 使用步骤如下:</p> | ||
| 109 | - <h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3> | ||
| 110 | -<pre><code class="language-css" | ||
| 111 | ->@font-face { | ||
| 112 | - font-family: 'iconfont'; | ||
| 113 | - src: | ||
| 114 | - url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAa4AAwAAAAADRwAAAZnAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoEGI0IGYABkCpEsjBEBNgIkAz4LPAAEIAWBfAcgG3AJyEYhnJrOdgp2gF3AFIhSHkEyAnQ2bv45UBhwaYzs/3+/WRGLRDj9p0KqlPLF7nuY2YMm07SzFAlpol7aQl6bhXj28h2cePrCI80AXJTyaiJ0oAjT2I6BOwgkYMEA5IPtXKECAzcA7orNAy4opSBzbOn1FJBACSlUoKCGKzRwgTYCXb+shxt4o/TY3hMEXmDhDQ4+KAMyEHAn8ZXfZ2nEkOAAOiExSdxxKUf8sa+j+PztKrHZ2Idi87+ei2E1n0Tznt9i0VgR3jpR3gEMA/IPJGCoSqoPgKZhEdIHSSQJ2EiUW9dp1rxZMfYi4GU1LYgCQAtwZ4EAAAXqFIAAoB2gAWiBSWhn0AKAUiG6xh88Jo9DHic/Hvl48stqUUydId7zIp63Pc96/uc5V9Nt59MJ+woyE0AcQFmMXcxdxZz6bGWnnVNKmBLCDFNSodyekfn5eqpcFQq51oeJPFqtI/RyabivWqFkbrVSuCeOU3gU0TjOrrWx8jK9g2/r5GRWHb9JJxsrLdN3cfBOTmGdaLUDQrHJQYiFnAgZGVhGCBcQl9k21Fmts9v1tgj2stm0NRcvRzr5xI6brsTZbPo2jjq9oz5m8rffdCyidrFPqKXKa8F5dnGUafWVC2meG3cumq9zWnhef5fOXq61rdDzg61nDhBJG2nZyb1ghH2nuIlmsGV1ZCSx1hNL3bEtUAOhluu+besYa9in9ZVqbTWgYK/lZJyzntB6R52MBUuIYwUrt7SVg+JoDjr7ci4inFXExIJra8p9wBJzSHaVsm11PJ/W6xSk3A0sURArlD3dE5XFXlh0u1CrUznr+cV1ujKCrrudI1a+p5NIhloJsRyzAmPcWAdbpjXZRNqma2kPbp39Mbh0ZgfOa+fiWwMcoayfSNrsvqxr20AJdo6r9l54hbNe8q0IsToJbTHpHoKdvT//hLPmmO0Trds8KxaF1xwMXbHeu2rPEMK3GyqHoLPrLFfStnTAVP8O3kmGDO3gcGi7LfMo9zQHmu12fmi1l6ubxr0rJeziVNY9HYe92tS9BHhnSikL05bd59Cxs79l/2n2TrEx89hO7l52ej+xHDjDWU/tg7D35MgZcBAezTNSenpHabKQNt0/rjAX6TREEUZaMDLwBQ9jUAr7kURDLm8udgtzKzbzgadj5A/kMUi4T4pcC5lYxXyFXxHDm4oIJLdq4lrhWmzsf4djoA/y7pvWFy3+UanHGVYew/ic399o/fkxl3ryHvoIV8rY5o8+20vUpaoTDTev+PlpSDOf/GEFPRqVjyyWcs6CJENySlKysRmdfqJ9b3VqwXBbREhgiLW2i9w8eW5ao8EbB1doCB0McsF7x6zeX0bH4oefweJqkOzZudUguBlKDG6CAVHT/ffsZByq2WpUlkA1VqVtzfwmTa9x3871sWbX1tgzQGd811apk/iPVll6RUNmcPxy4yLjaMbbXyow695JjcYAZuD82iTr7klHmaV7qolCFyNfwFiXN9BnmtqM64DrioFzJpzK7t3b86qDYNCzJm7bAHsF5AYJB9eqpDRICQglVa9lVwDXggM6rd4h2/9vDyUFSulH98t24GkJz8dpfN59IeQtBsplA0MatF9sZvc2ya64OsZb3lxaXb25SYhtWeOQzdVbfOTNvWddrcj/jrMmdl1D5L4rw6QZqamD3E+4H3M/6R6hDGhSmBUTU5DVKQCcdPMoDZG77XRfV4Zs+GBycrt2O5By9m/PSkfNxnxj6yFDAgf0X9Qa8KxzlPe+evwi2J4UTlXW1b2Nyy26f6FB5uBAzXvVzh2qookNFnSb4vF0+OeJxUvWm7wG3o3bHz48Xj0jJBECAAQOue0z1ifZHPOdP1f7oJFhrs9YBH42C2gDr9k3jJoOh2ZfDA292ASoKcI5FT3s6tAMAnMe9ZEnyYvI20dB4leeE3tE7jVldFVkf3Kjf/+Fe+vPlNCE+FMUGNDCX9tBteD/YxkG4k83/T/D1eF2k16OGZi1ib8BXFG7Lyc9iJEMwgxqKwk+w/HOBKSQcqCcumCAgZq7q6YvxkF6glPleS5oBhqEcQeBEthEKcj/lCwoGqnwoxgEwERJ4IVRp7kgAH+hP3piKIagj7vdKLRCb/TFaAxCd4xAAmIRr8pZaIbmBopXU+uvFzOYWmYpANqw6giMRH+sDjjAknbqpSGtiRuQBAAAAA==') format('woff2'), | ||
| 115 | - url('iconfont.woff?t=1703747271369') format('woff'), | ||
| 116 | - url('iconfont.ttf?t=1703747271369') format('truetype'); | ||
| 117 | -} | ||
| 118 | -</code></pre> | ||
| 119 | - <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3> | ||
| 120 | -<pre><code class="language-css" | ||
| 121 | ->.iconfont { | ||
| 122 | - font-family: "iconfont" !important; | ||
| 123 | - font-size: 16px; | ||
| 124 | - font-style: normal; | ||
| 125 | - -webkit-font-smoothing: antialiased; | ||
| 126 | - -moz-osx-font-smoothing: grayscale; | ||
| 127 | -} | ||
| 128 | -</code></pre> | ||
| 129 | - <h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3> | ||
| 130 | -<pre> | ||
| 131 | -<code class="language-html" | ||
| 132 | -><span class="iconfont">&#x33;</span> | ||
| 133 | -</code></pre> | ||
| 134 | - <blockquote> | ||
| 135 | - <p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p> | ||
| 136 | - </blockquote> | ||
| 137 | - </div> | ||
| 138 | - </div> | ||
| 139 | - <div class="content font-class"> | ||
| 140 | - <ul class="icon_lists dib-box"> | ||
| 141 | - | ||
| 142 | - <li class="dib"> | ||
| 143 | - <span class="icon iconfont icon-erweima-xian"></span> | ||
| 144 | - <div class="name"> | ||
| 145 | - 二维码-线 | ||
| 146 | - </div> | ||
| 147 | - <div class="code-name">.icon-erweima-xian | ||
| 148 | - </div> | ||
| 149 | - </li> | ||
| 150 | - | ||
| 151 | - <li class="dib"> | ||
| 152 | - <span class="icon iconfont icon-lajitong"></span> | ||
| 153 | - <div class="name"> | ||
| 154 | - 垃圾桶 | ||
| 155 | - </div> | ||
| 156 | - <div class="code-name">.icon-lajitong | ||
| 157 | - </div> | ||
| 158 | - </li> | ||
| 159 | - | ||
| 160 | - <li class="dib"> | ||
| 161 | - <span class="icon iconfont icon-zhengce"></span> | ||
| 162 | - <div class="name"> | ||
| 163 | - 政策 | ||
| 164 | - </div> | ||
| 165 | - <div class="code-name">.icon-zhengce | ||
| 166 | - </div> | ||
| 167 | - </li> | ||
| 168 | - | ||
| 169 | - <li class="dib"> | ||
| 170 | - <span class="icon iconfont icon-huoche"></span> | ||
| 171 | - <div class="name"> | ||
| 172 | - 货车 | ||
| 173 | - </div> | ||
| 174 | - <div class="code-name">.icon-huoche | ||
| 175 | - </div> | ||
| 176 | - </li> | ||
| 177 | - | ||
| 178 | - <li class="dib"> | ||
| 179 | - <span class="icon iconfont icon-a-zu5030"></span> | ||
| 180 | - <div class="name"> | ||
| 181 | - 卸料平台 | ||
| 182 | - </div> | ||
| 183 | - <div class="code-name">.icon-a-zu5030 | ||
| 184 | - </div> | ||
| 185 | - </li> | ||
| 186 | - | ||
| 187 | - <li class="dib"> | ||
| 188 | - <span class="icon iconfont icon-wenjianziliao"></span> | ||
| 189 | - <div class="name"> | ||
| 190 | - 文件资料 | ||
| 191 | - </div> | ||
| 192 | - <div class="code-name">.icon-wenjianziliao | ||
| 193 | - </div> | ||
| 194 | - </li> | ||
| 195 | - | ||
| 196 | - </ul> | ||
| 197 | - <div class="article markdown"> | ||
| 198 | - <h2 id="font-class-">font-class 引用</h2> | ||
| 199 | - <hr> | ||
| 200 | - | ||
| 201 | - <p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p> | ||
| 202 | - <p>与 Unicode 使用方式相比,具有如下特点:</p> | ||
| 203 | - <ul> | ||
| 204 | - <li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li> | ||
| 205 | - <li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li> | ||
| 206 | - </ul> | ||
| 207 | - <p>使用步骤如下:</p> | ||
| 208 | - <h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3> | ||
| 209 | -<pre><code class="language-html"><link rel="stylesheet" href="./iconfont.css"> | ||
| 210 | -</code></pre> | ||
| 211 | - <h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3> | ||
| 212 | -<pre><code class="language-html"><span class="iconfont icon-xxx"></span> | ||
| 213 | -</code></pre> | ||
| 214 | - <blockquote> | ||
| 215 | - <p>" | ||
| 216 | - iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p> | ||
| 217 | - </blockquote> | ||
| 218 | - </div> | ||
| 219 | - </div> | ||
| 220 | - <div class="content symbol"> | ||
| 221 | - <ul class="icon_lists dib-box"> | ||
| 222 | - | ||
| 223 | - <li class="dib"> | ||
| 224 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 225 | - <use xlink:href="#icon-erweima-xian"></use> | ||
| 226 | - </svg> | ||
| 227 | - <div class="name">二维码-线</div> | ||
| 228 | - <div class="code-name">#icon-erweima-xian</div> | ||
| 229 | - </li> | ||
| 230 | - | ||
| 231 | - <li class="dib"> | ||
| 232 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 233 | - <use xlink:href="#icon-lajitong"></use> | ||
| 234 | - </svg> | ||
| 235 | - <div class="name">垃圾桶</div> | ||
| 236 | - <div class="code-name">#icon-lajitong</div> | ||
| 237 | - </li> | ||
| 238 | - | ||
| 239 | - <li class="dib"> | ||
| 240 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 241 | - <use xlink:href="#icon-zhengce"></use> | ||
| 242 | - </svg> | ||
| 243 | - <div class="name">政策</div> | ||
| 244 | - <div class="code-name">#icon-zhengce</div> | ||
| 245 | - </li> | ||
| 246 | - | ||
| 247 | - <li class="dib"> | ||
| 248 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 249 | - <use xlink:href="#icon-huoche"></use> | ||
| 250 | - </svg> | ||
| 251 | - <div class="name">货车</div> | ||
| 252 | - <div class="code-name">#icon-huoche</div> | ||
| 253 | - </li> | ||
| 254 | - | ||
| 255 | - <li class="dib"> | ||
| 256 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 257 | - <use xlink:href="#icon-a-zu5030"></use> | ||
| 258 | - </svg> | ||
| 259 | - <div class="name">卸料平台</div> | ||
| 260 | - <div class="code-name">#icon-a-zu5030</div> | ||
| 261 | - </li> | ||
| 262 | - | ||
| 263 | - <li class="dib"> | ||
| 264 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 265 | - <use xlink:href="#icon-wenjianziliao"></use> | ||
| 266 | - </svg> | ||
| 267 | - <div class="name">文件资料</div> | ||
| 268 | - <div class="code-name">#icon-wenjianziliao</div> | ||
| 269 | - </li> | ||
| 270 | - | ||
| 271 | - </ul> | ||
| 272 | - <div class="article markdown"> | ||
| 273 | - <h2 id="symbol-">Symbol 引用</h2> | ||
| 274 | - <hr> | ||
| 275 | - | ||
| 276 | - <p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a> | ||
| 277 | - 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p> | ||
| 278 | - <ul> | ||
| 279 | - <li>支持多色图标了,不再受单色限制。</li> | ||
| 280 | - <li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li> | ||
| 281 | - <li>兼容性较差,支持 IE9+,及现代浏览器。</li> | ||
| 282 | - <li>浏览器渲染 SVG 的性能一般,还不如 png。</li> | ||
| 283 | - </ul> | ||
| 284 | - <p>使用步骤如下:</p> | ||
| 285 | - <h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3> | ||
| 286 | -<pre><code class="language-html"><script src="./iconfont.js"></script> | ||
| 287 | -</code></pre> | ||
| 288 | - <h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3> | ||
| 289 | -<pre><code class="language-html"><style> | ||
| 290 | -.icon { | ||
| 291 | - width: 1em; | ||
| 292 | - height: 1em; | ||
| 293 | - vertical-align: -0.15em; | ||
| 294 | - fill: currentColor; | ||
| 295 | - overflow: hidden; | ||
| 296 | -} | ||
| 297 | -</style> | ||
| 298 | -</code></pre> | ||
| 299 | - <h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3> | ||
| 300 | -<pre><code class="language-html"><svg class="icon" aria-hidden="true"> | ||
| 301 | - <use xlink:href="#icon-xxx"></use> | ||
| 302 | -</svg> | ||
| 303 | -</code></pre> | ||
| 304 | - </div> | ||
| 305 | - </div> | ||
| 306 | - | ||
| 307 | - </div> | ||
| 308 | - </div> | ||
| 309 | - <script> | ||
| 310 | - $(document).ready(function () { | ||
| 311 | - $('.tab-container .content:first').show() | ||
| 312 | - | ||
| 313 | - $('#tabs li').click(function (e) { | ||
| 314 | - var tabContent = $('.tab-container .content') | ||
| 315 | - var index = $(this).index() | ||
| 316 | - | ||
| 317 | - if ($(this).hasClass('active')) { | ||
| 318 | - return | ||
| 319 | - } else { | ||
| 320 | - $('#tabs li').removeClass('active') | ||
| 321 | - $(this).addClass('active') | ||
| 322 | - | ||
| 323 | - tabContent.hide().eq(index).fadeIn() | ||
| 324 | - } | ||
| 325 | - }) | ||
| 326 | - }) | ||
| 327 | - </script> | ||
| 328 | -</body> | ||
| 329 | -</html> |
garbage-removal/src/static/icon/iconfont/demo.css deleted
100644 → 0
| 1 | -/* Logo 字体 */ | ||
| 2 | -@font-face { | ||
| 3 | - font-family: "iconfont logo"; | ||
| 4 | - src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); | ||
| 5 | - src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), | ||
| 6 | - url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), | ||
| 7 | - url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), | ||
| 8 | - url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); | ||
| 9 | -} | ||
| 10 | - | ||
| 11 | -.logo { | ||
| 12 | - font-family: "iconfont logo"; | ||
| 13 | - font-size: 160px; | ||
| 14 | - font-style: normal; | ||
| 15 | - -webkit-font-smoothing: antialiased; | ||
| 16 | - -moz-osx-font-smoothing: grayscale; | ||
| 17 | -} | ||
| 18 | - | ||
| 19 | -/* tabs */ | ||
| 20 | -.nav-tabs { | ||
| 21 | - position: relative; | ||
| 22 | -} | ||
| 23 | - | ||
| 24 | -.nav-tabs .nav-more { | ||
| 25 | - position: absolute; | ||
| 26 | - right: 0; | ||
| 27 | - bottom: 0; | ||
| 28 | - height: 42px; | ||
| 29 | - line-height: 42px; | ||
| 30 | - color: #666; | ||
| 31 | -} | ||
| 32 | - | ||
| 33 | -#tabs { | ||
| 34 | - border-bottom: 1px solid #eee; | ||
| 35 | -} | ||
| 36 | - | ||
| 37 | -#tabs li { | ||
| 38 | - cursor: pointer; | ||
| 39 | - width: 100px; | ||
| 40 | - height: 40px; | ||
| 41 | - line-height: 40px; | ||
| 42 | - text-align: center; | ||
| 43 | - font-size: 16px; | ||
| 44 | - border-bottom: 2px solid transparent; | ||
| 45 | - position: relative; | ||
| 46 | - z-index: 1; | ||
| 47 | - margin-bottom: -1px; | ||
| 48 | - color: #666; | ||
| 49 | -} | ||
| 50 | - | ||
| 51 | - | ||
| 52 | -#tabs .active { | ||
| 53 | - border-bottom-color: #f00; | ||
| 54 | - color: #222; | ||
| 55 | -} | ||
| 56 | - | ||
| 57 | -.tab-container .content { | ||
| 58 | - display: none; | ||
| 59 | -} | ||
| 60 | - | ||
| 61 | -/* 页面布局 */ | ||
| 62 | -.main { | ||
| 63 | - padding: 30px 100px; | ||
| 64 | - width: 960px; | ||
| 65 | - margin: 0 auto; | ||
| 66 | -} | ||
| 67 | - | ||
| 68 | -.main .logo { | ||
| 69 | - color: #333; | ||
| 70 | - text-align: left; | ||
| 71 | - margin-bottom: 30px; | ||
| 72 | - line-height: 1; | ||
| 73 | - height: 110px; | ||
| 74 | - margin-top: -50px; | ||
| 75 | - overflow: hidden; | ||
| 76 | - *zoom: 1; | ||
| 77 | -} | ||
| 78 | - | ||
| 79 | -.main .logo a { | ||
| 80 | - font-size: 160px; | ||
| 81 | - color: #333; | ||
| 82 | -} | ||
| 83 | - | ||
| 84 | -.helps { | ||
| 85 | - margin-top: 40px; | ||
| 86 | -} | ||
| 87 | - | ||
| 88 | -.helps pre { | ||
| 89 | - padding: 20px; | ||
| 90 | - margin: 10px 0; | ||
| 91 | - border: solid 1px #e7e1cd; | ||
| 92 | - background-color: #fffdef; | ||
| 93 | - overflow: auto; | ||
| 94 | -} | ||
| 95 | - | ||
| 96 | -.icon_lists { | ||
| 97 | - width: 100% !important; | ||
| 98 | - overflow: hidden; | ||
| 99 | - *zoom: 1; | ||
| 100 | -} | ||
| 101 | - | ||
| 102 | -.icon_lists li { | ||
| 103 | - width: 100px; | ||
| 104 | - margin-bottom: 10px; | ||
| 105 | - margin-right: 20px; | ||
| 106 | - text-align: center; | ||
| 107 | - list-style: none !important; | ||
| 108 | - cursor: default; | ||
| 109 | -} | ||
| 110 | - | ||
| 111 | -.icon_lists li .code-name { | ||
| 112 | - line-height: 1.2; | ||
| 113 | -} | ||
| 114 | - | ||
| 115 | -.icon_lists .icon { | ||
| 116 | - display: block; | ||
| 117 | - height: 100px; | ||
| 118 | - line-height: 100px; | ||
| 119 | - font-size: 42px; | ||
| 120 | - margin: 10px auto; | ||
| 121 | - color: #333; | ||
| 122 | - -webkit-transition: font-size 0.25s linear, width 0.25s linear; | ||
| 123 | - -moz-transition: font-size 0.25s linear, width 0.25s linear; | ||
| 124 | - transition: font-size 0.25s linear, width 0.25s linear; | ||
| 125 | -} | ||
| 126 | - | ||
| 127 | -.icon_lists .icon:hover { | ||
| 128 | - font-size: 100px; | ||
| 129 | -} | ||
| 130 | - | ||
| 131 | -.icon_lists .svg-icon { | ||
| 132 | - /* 通过设置 font-size 来改变图标大小 */ | ||
| 133 | - width: 1em; | ||
| 134 | - /* 图标和文字相邻时,垂直对齐 */ | ||
| 135 | - vertical-align: -0.15em; | ||
| 136 | - /* 通过设置 color 来改变 SVG 的颜色/fill */ | ||
| 137 | - fill: currentColor; | ||
| 138 | - /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 | ||
| 139 | - normalize.css 中也包含这行 */ | ||
| 140 | - overflow: hidden; | ||
| 141 | -} | ||
| 142 | - | ||
| 143 | -.icon_lists li .name, | ||
| 144 | -.icon_lists li .code-name { | ||
| 145 | - color: #666; | ||
| 146 | -} | ||
| 147 | - | ||
| 148 | -/* markdown 样式 */ | ||
| 149 | -.markdown { | ||
| 150 | - color: #666; | ||
| 151 | - font-size: 14px; | ||
| 152 | - line-height: 1.8; | ||
| 153 | -} | ||
| 154 | - | ||
| 155 | -.highlight { | ||
| 156 | - line-height: 1.5; | ||
| 157 | -} | ||
| 158 | - | ||
| 159 | -.markdown img { | ||
| 160 | - vertical-align: middle; | ||
| 161 | - max-width: 100%; | ||
| 162 | -} | ||
| 163 | - | ||
| 164 | -.markdown h1 { | ||
| 165 | - color: #404040; | ||
| 166 | - font-weight: 500; | ||
| 167 | - line-height: 40px; | ||
| 168 | - margin-bottom: 24px; | ||
| 169 | -} | ||
| 170 | - | ||
| 171 | -.markdown h2, | ||
| 172 | -.markdown h3, | ||
| 173 | -.markdown h4, | ||
| 174 | -.markdown h5, | ||
| 175 | -.markdown h6 { | ||
| 176 | - color: #404040; | ||
| 177 | - margin: 1.6em 0 0.6em 0; | ||
| 178 | - font-weight: 500; | ||
| 179 | - clear: both; | ||
| 180 | -} | ||
| 181 | - | ||
| 182 | -.markdown h1 { | ||
| 183 | - font-size: 28px; | ||
| 184 | -} | ||
| 185 | - | ||
| 186 | -.markdown h2 { | ||
| 187 | - font-size: 22px; | ||
| 188 | -} | ||
| 189 | - | ||
| 190 | -.markdown h3 { | ||
| 191 | - font-size: 16px; | ||
| 192 | -} | ||
| 193 | - | ||
| 194 | -.markdown h4 { | ||
| 195 | - font-size: 14px; | ||
| 196 | -} | ||
| 197 | - | ||
| 198 | -.markdown h5 { | ||
| 199 | - font-size: 12px; | ||
| 200 | -} | ||
| 201 | - | ||
| 202 | -.markdown h6 { | ||
| 203 | - font-size: 12px; | ||
| 204 | -} | ||
| 205 | - | ||
| 206 | -.markdown hr { | ||
| 207 | - height: 1px; | ||
| 208 | - border: 0; | ||
| 209 | - background: #e9e9e9; | ||
| 210 | - margin: 16px 0; | ||
| 211 | - clear: both; | ||
| 212 | -} | ||
| 213 | - | ||
| 214 | -.markdown p { | ||
| 215 | - margin: 1em 0; | ||
| 216 | -} | ||
| 217 | - | ||
| 218 | -.markdown>p, | ||
| 219 | -.markdown>blockquote, | ||
| 220 | -.markdown>.highlight, | ||
| 221 | -.markdown>ol, | ||
| 222 | -.markdown>ul { | ||
| 223 | - width: 80%; | ||
| 224 | -} | ||
| 225 | - | ||
| 226 | -.markdown ul>li { | ||
| 227 | - list-style: circle; | ||
| 228 | -} | ||
| 229 | - | ||
| 230 | -.markdown>ul li, | ||
| 231 | -.markdown blockquote ul>li { | ||
| 232 | - margin-left: 20px; | ||
| 233 | - padding-left: 4px; | ||
| 234 | -} | ||
| 235 | - | ||
| 236 | -.markdown>ul li p, | ||
| 237 | -.markdown>ol li p { | ||
| 238 | - margin: 0.6em 0; | ||
| 239 | -} | ||
| 240 | - | ||
| 241 | -.markdown ol>li { | ||
| 242 | - list-style: decimal; | ||
| 243 | -} | ||
| 244 | - | ||
| 245 | -.markdown>ol li, | ||
| 246 | -.markdown blockquote ol>li { | ||
| 247 | - margin-left: 20px; | ||
| 248 | - padding-left: 4px; | ||
| 249 | -} | ||
| 250 | - | ||
| 251 | -.markdown code { | ||
| 252 | - margin: 0 3px; | ||
| 253 | - padding: 0 5px; | ||
| 254 | - background: #eee; | ||
| 255 | - border-radius: 3px; | ||
| 256 | -} | ||
| 257 | - | ||
| 258 | -.markdown strong, | ||
| 259 | -.markdown b { | ||
| 260 | - font-weight: 600; | ||
| 261 | -} | ||
| 262 | - | ||
| 263 | -.markdown>table { | ||
| 264 | - border-collapse: collapse; | ||
| 265 | - border-spacing: 0px; | ||
| 266 | - empty-cells: show; | ||
| 267 | - border: 1px solid #e9e9e9; | ||
| 268 | - width: 95%; | ||
| 269 | - margin-bottom: 24px; | ||
| 270 | -} | ||
| 271 | - | ||
| 272 | -.markdown>table th { | ||
| 273 | - white-space: nowrap; | ||
| 274 | - color: #333; | ||
| 275 | - font-weight: 600; | ||
| 276 | -} | ||
| 277 | - | ||
| 278 | -.markdown>table th, | ||
| 279 | -.markdown>table td { | ||
| 280 | - border: 1px solid #e9e9e9; | ||
| 281 | - padding: 8px 16px; | ||
| 282 | - text-align: left; | ||
| 283 | -} | ||
| 284 | - | ||
| 285 | -.markdown>table th { | ||
| 286 | - background: #F7F7F7; | ||
| 287 | -} | ||
| 288 | - | ||
| 289 | -.markdown blockquote { | ||
| 290 | - font-size: 90%; | ||
| 291 | - color: #999; | ||
| 292 | - border-left: 4px solid #e9e9e9; | ||
| 293 | - padding-left: 0.8em; | ||
| 294 | - margin: 1em 0; | ||
| 295 | -} | ||
| 296 | - | ||
| 297 | -.markdown blockquote p { | ||
| 298 | - margin: 0; | ||
| 299 | -} | ||
| 300 | - | ||
| 301 | -.markdown .anchor { | ||
| 302 | - opacity: 0; | ||
| 303 | - transition: opacity 0.3s ease; | ||
| 304 | - margin-left: 8px; | ||
| 305 | -} | ||
| 306 | - | ||
| 307 | -.markdown .waiting { | ||
| 308 | - color: #ccc; | ||
| 309 | -} | ||
| 310 | - | ||
| 311 | -.markdown h1:hover .anchor, | ||
| 312 | -.markdown h2:hover .anchor, | ||
| 313 | -.markdown h3:hover .anchor, | ||
| 314 | -.markdown h4:hover .anchor, | ||
| 315 | -.markdown h5:hover .anchor, | ||
| 316 | -.markdown h6:hover .anchor { | ||
| 317 | - opacity: 1; | ||
| 318 | - display: inline-block; | ||
| 319 | -} | ||
| 320 | - | ||
| 321 | -.markdown>br, | ||
| 322 | -.markdown>p>br { | ||
| 323 | - clear: both; | ||
| 324 | -} | ||
| 325 | - | ||
| 326 | - | ||
| 327 | -.hljs { | ||
| 328 | - display: block; | ||
| 329 | - background: white; | ||
| 330 | - padding: 0.5em; | ||
| 331 | - color: #333333; | ||
| 332 | - overflow-x: auto; | ||
| 333 | -} | ||
| 334 | - | ||
| 335 | -.hljs-comment, | ||
| 336 | -.hljs-meta { | ||
| 337 | - color: #969896; | ||
| 338 | -} | ||
| 339 | - | ||
| 340 | -.hljs-string, | ||
| 341 | -.hljs-variable, | ||
| 342 | -.hljs-template-variable, | ||
| 343 | -.hljs-strong, | ||
| 344 | -.hljs-emphasis, | ||
| 345 | -.hljs-quote { | ||
| 346 | - color: #df5000; | ||
| 347 | -} | ||
| 348 | - | ||
| 349 | -.hljs-keyword, | ||
| 350 | -.hljs-selector-tag, | ||
| 351 | -.hljs-type { | ||
| 352 | - color: #a71d5d; | ||
| 353 | -} | ||
| 354 | - | ||
| 355 | -.hljs-literal, | ||
| 356 | -.hljs-symbol, | ||
| 357 | -.hljs-bullet, | ||
| 358 | -.hljs-attribute { | ||
| 359 | - color: #0086b3; | ||
| 360 | -} | ||
| 361 | - | ||
| 362 | -.hljs-section, | ||
| 363 | -.hljs-name { | ||
| 364 | - color: #63a35c; | ||
| 365 | -} | ||
| 366 | - | ||
| 367 | -.hljs-tag { | ||
| 368 | - color: #333333; | ||
| 369 | -} | ||
| 370 | - | ||
| 371 | -.hljs-title, | ||
| 372 | -.hljs-attr, | ||
| 373 | -.hljs-selector-id, | ||
| 374 | -.hljs-selector-class, | ||
| 375 | -.hljs-selector-attr, | ||
| 376 | -.hljs-selector-pseudo { | ||
| 377 | - color: #795da3; | ||
| 378 | -} | ||
| 379 | - | ||
| 380 | -.hljs-addition { | ||
| 381 | - color: #55a532; | ||
| 382 | - background-color: #eaffea; | ||
| 383 | -} | ||
| 384 | - | ||
| 385 | -.hljs-deletion { | ||
| 386 | - color: #bd2c00; | ||
| 387 | - background-color: #ffecec; | ||
| 388 | -} | ||
| 389 | - | ||
| 390 | -.hljs-link { | ||
| 391 | - text-decoration: underline; | ||
| 392 | -} | ||
| 393 | - | ||
| 394 | -/* 代码高亮 */ | ||
| 395 | -/* PrismJS 1.15.0 | ||
| 396 | -https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ | ||
| 397 | -/** | ||
| 398 | - * prism.js default theme for JavaScript, CSS and HTML | ||
| 399 | - * Based on dabblet (http://dabblet.com) | ||
| 400 | - * @author Lea Verou | ||
| 401 | - */ | ||
| 402 | -code[class*="language-"], | ||
| 403 | -pre[class*="language-"] { | ||
| 404 | - color: black; | ||
| 405 | - background: none; | ||
| 406 | - text-shadow: 0 1px white; | ||
| 407 | - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; | ||
| 408 | - text-align: left; | ||
| 409 | - white-space: pre; | ||
| 410 | - word-spacing: normal; | ||
| 411 | - word-break: normal; | ||
| 412 | - word-wrap: normal; | ||
| 413 | - line-height: 1.5; | ||
| 414 | - | ||
| 415 | - -moz-tab-size: 4; | ||
| 416 | - -o-tab-size: 4; | ||
| 417 | - tab-size: 4; | ||
| 418 | - | ||
| 419 | - -webkit-hyphens: none; | ||
| 420 | - -moz-hyphens: none; | ||
| 421 | - -ms-hyphens: none; | ||
| 422 | - hyphens: none; | ||
| 423 | -} | ||
| 424 | - | ||
| 425 | -pre[class*="language-"]::-moz-selection, | ||
| 426 | -pre[class*="language-"] ::-moz-selection, | ||
| 427 | -code[class*="language-"]::-moz-selection, | ||
| 428 | -code[class*="language-"] ::-moz-selection { | ||
| 429 | - text-shadow: none; | ||
| 430 | - background: #b3d4fc; | ||
| 431 | -} | ||
| 432 | - | ||
| 433 | -pre[class*="language-"]::selection, | ||
| 434 | -pre[class*="language-"] ::selection, | ||
| 435 | -code[class*="language-"]::selection, | ||
| 436 | -code[class*="language-"] ::selection { | ||
| 437 | - text-shadow: none; | ||
| 438 | - background: #b3d4fc; | ||
| 439 | -} | ||
| 440 | - | ||
| 441 | -@media print { | ||
| 442 | - | ||
| 443 | - code[class*="language-"], | ||
| 444 | - pre[class*="language-"] { | ||
| 445 | - text-shadow: none; | ||
| 446 | - } | ||
| 447 | -} | ||
| 448 | - | ||
| 449 | -/* Code blocks */ | ||
| 450 | -pre[class*="language-"] { | ||
| 451 | - padding: 1em; | ||
| 452 | - margin: .5em 0; | ||
| 453 | - overflow: auto; | ||
| 454 | -} | ||
| 455 | - | ||
| 456 | -:not(pre)>code[class*="language-"], | ||
| 457 | -pre[class*="language-"] { | ||
| 458 | - background: #f5f2f0; | ||
| 459 | -} | ||
| 460 | - | ||
| 461 | -/* Inline code */ | ||
| 462 | -:not(pre)>code[class*="language-"] { | ||
| 463 | - padding: .1em; | ||
| 464 | - border-radius: .3em; | ||
| 465 | - white-space: normal; | ||
| 466 | -} | ||
| 467 | - | ||
| 468 | -.token.comment, | ||
| 469 | -.token.prolog, | ||
| 470 | -.token.doctype, | ||
| 471 | -.token.cdata { | ||
| 472 | - color: slategray; | ||
| 473 | -} | ||
| 474 | - | ||
| 475 | -.token.punctuation { | ||
| 476 | - color: #999; | ||
| 477 | -} | ||
| 478 | - | ||
| 479 | -.namespace { | ||
| 480 | - opacity: .7; | ||
| 481 | -} | ||
| 482 | - | ||
| 483 | -.token.property, | ||
| 484 | -.token.tag, | ||
| 485 | -.token.boolean, | ||
| 486 | -.token.number, | ||
| 487 | -.token.constant, | ||
| 488 | -.token.symbol, | ||
| 489 | -.token.deleted { | ||
| 490 | - color: #905; | ||
| 491 | -} | ||
| 492 | - | ||
| 493 | -.token.selector, | ||
| 494 | -.token.attr-name, | ||
| 495 | -.token.string, | ||
| 496 | -.token.char, | ||
| 497 | -.token.builtin, | ||
| 498 | -.token.inserted { | ||
| 499 | - color: #690; | ||
| 500 | -} | ||
| 501 | - | ||
| 502 | -.token.operator, | ||
| 503 | -.token.entity, | ||
| 504 | -.token.url, | ||
| 505 | -.language-css .token.string, | ||
| 506 | -.style .token.string { | ||
| 507 | - color: #9a6e3a; | ||
| 508 | - background: hsla(0, 0%, 100%, .5); | ||
| 509 | -} | ||
| 510 | - | ||
| 511 | -.token.atrule, | ||
| 512 | -.token.attr-value, | ||
| 513 | -.token.keyword { | ||
| 514 | - color: #07a; | ||
| 515 | -} | ||
| 516 | - | ||
| 517 | -.token.function, | ||
| 518 | -.token.class-name { | ||
| 519 | - color: #DD4A68; | ||
| 520 | -} | ||
| 521 | - | ||
| 522 | -.token.regex, | ||
| 523 | -.token.important, | ||
| 524 | -.token.variable { | ||
| 525 | - color: #e90; | ||
| 526 | -} | ||
| 527 | - | ||
| 528 | -.token.important, | ||
| 529 | -.token.bold { | ||
| 530 | - font-weight: bold; | ||
| 531 | -} | ||
| 532 | - | ||
| 533 | -.token.italic { | ||
| 534 | - font-style: italic; | ||
| 535 | -} | ||
| 536 | - | ||
| 537 | -.token.entity { | ||
| 538 | - cursor: help; | ||
| 539 | -} |
garbage-removal/src/static/icon/iconfont/demo_index.html deleted
100644 → 0
| 1 | -<!DOCTYPE html> | ||
| 2 | -<html> | ||
| 3 | -<head> | ||
| 4 | - <meta charset="utf-8"/> | ||
| 5 | - <title>iconfont Demo</title> | ||
| 6 | - <link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/> | ||
| 7 | - <link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/> | ||
| 8 | - <link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css"> | ||
| 9 | - <link rel="stylesheet" href="demo.css"> | ||
| 10 | - <link rel="stylesheet" href="iconfont.css"> | ||
| 11 | - <script src="iconfont.js"></script> | ||
| 12 | - <!-- jQuery --> | ||
| 13 | - <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script> | ||
| 14 | - <!-- 代码高亮 --> | ||
| 15 | - <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script> | ||
| 16 | - <style> | ||
| 17 | - .main .logo { | ||
| 18 | - margin-top: 0; | ||
| 19 | - height: auto; | ||
| 20 | - } | ||
| 21 | - | ||
| 22 | - .main .logo a { | ||
| 23 | - display: flex; | ||
| 24 | - align-items: center; | ||
| 25 | - } | ||
| 26 | - | ||
| 27 | - .main .logo .sub-title { | ||
| 28 | - margin-left: 0.5em; | ||
| 29 | - font-size: 22px; | ||
| 30 | - color: #fff; | ||
| 31 | - background: linear-gradient(-45deg, #3967FF, #B500FE); | ||
| 32 | - -webkit-background-clip: text; | ||
| 33 | - -webkit-text-fill-color: transparent; | ||
| 34 | - } | ||
| 35 | - </style> | ||
| 36 | -</head> | ||
| 37 | -<body> | ||
| 38 | - <div class="main"> | ||
| 39 | - <h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank"> | ||
| 40 | - <img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg"> | ||
| 41 | - | ||
| 42 | - <span class="sub-title">彩色字体</span> | ||
| 43 | - | ||
| 44 | - </a></h1> | ||
| 45 | - <div class="nav-tabs"> | ||
| 46 | - <ul id="tabs" class="dib-box"> | ||
| 47 | - <li class="dib active"><span>Unicode</span></li> | ||
| 48 | - <li class="dib"><span>Font class</span></li> | ||
| 49 | - <li class="dib"><span>Symbol</span></li> | ||
| 50 | - </ul> | ||
| 51 | - | ||
| 52 | - <a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=4327805" target="_blank" class="nav-more">查看项目</a> | ||
| 53 | - | ||
| 54 | - </div> | ||
| 55 | - <div class="tab-container"> | ||
| 56 | - <div class="content unicode" style="display: block;"> | ||
| 57 | - <ul class="icon_lists dib-box"> | ||
| 58 | - | ||
| 59 | - <li class="dib"> | ||
| 60 | - <span class="icon iconfont"></span> | ||
| 61 | - <div class="name">二维码-线</div> | ||
| 62 | - <div class="code-name">&#xe634;</div> | ||
| 63 | - </li> | ||
| 64 | - | ||
| 65 | - <li class="dib"> | ||
| 66 | - <span class="icon iconfont"></span> | ||
| 67 | - <div class="name">垃圾桶</div> | ||
| 68 | - <div class="code-name">&#xe601;</div> | ||
| 69 | - </li> | ||
| 70 | - | ||
| 71 | - <li class="dib"> | ||
| 72 | - <span class="icon iconfont"></span> | ||
| 73 | - <div class="name">政策</div> | ||
| 74 | - <div class="code-name">&#xe673;</div> | ||
| 75 | - </li> | ||
| 76 | - | ||
| 77 | - <li class="dib"> | ||
| 78 | - <span class="icon iconfont"></span> | ||
| 79 | - <div class="name">货车</div> | ||
| 80 | - <div class="code-name">&#xeca7;</div> | ||
| 81 | - </li> | ||
| 82 | - | ||
| 83 | - <li class="dib"> | ||
| 84 | - <span class="icon iconfont"></span> | ||
| 85 | - <div class="name">卸料平台</div> | ||
| 86 | - <div class="code-name">&#xe67d;</div> | ||
| 87 | - </li> | ||
| 88 | - | ||
| 89 | - <li class="dib"> | ||
| 90 | - <span class="icon iconfont"></span> | ||
| 91 | - <div class="name">文件资料</div> | ||
| 92 | - <div class="code-name">&#xe625;</div> | ||
| 93 | - </li> | ||
| 94 | - | ||
| 95 | - </ul> | ||
| 96 | - <div class="article markdown"> | ||
| 97 | - <h2 id="unicode-">Unicode 引用</h2> | ||
| 98 | - <hr> | ||
| 99 | - | ||
| 100 | - <p>Unicode 是字体在网页端最原始的应用方式,特点是:</p> | ||
| 101 | - <ul> | ||
| 102 | - <li>支持按字体的方式去动态调整图标大小,颜色等等。</li> | ||
| 103 | - <li>默认情况下不支持多色,直接添加多色图标会自动去色。</li> | ||
| 104 | - </ul> | ||
| 105 | - <blockquote> | ||
| 106 | - <p>注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p> | ||
| 107 | - </blockquote> | ||
| 108 | - <p>Unicode 使用步骤如下:</p> | ||
| 109 | - <h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3> | ||
| 110 | -<pre><code class="language-css" | ||
| 111 | ->@font-face { | ||
| 112 | - font-family: 'iconfont'; | ||
| 113 | - src: | ||
| 114 | - url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAa4AAwAAAAADRwAAAZnAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoEGI0IGYABkCpEsjBEBNgIkAz4LPAAEIAWBfAcgG3AJyEYhnJrOdgp2gF3AFIhSHkEyAnQ2bv45UBhwaYzs/3+/WRGLRDj9p0KqlPLF7nuY2YMm07SzFAlpol7aQl6bhXj28h2cePrCI80AXJTyaiJ0oAjT2I6BOwgkYMEA5IPtXKECAzcA7orNAy4opSBzbOn1FJBACSlUoKCGKzRwgTYCXb+shxt4o/TY3hMEXmDhDQ4+KAMyEHAn8ZXfZ2nEkOAAOiExSdxxKUf8sa+j+PztKrHZ2Idi87+ei2E1n0Tznt9i0VgR3jpR3gEMA/IPJGCoSqoPgKZhEdIHSSQJ2EiUW9dp1rxZMfYi4GU1LYgCQAtwZ4EAAAXqFIAAoB2gAWiBSWhn0AKAUiG6xh88Jo9DHic/Hvl48stqUUydId7zIp63Pc96/uc5V9Nt59MJ+woyE0AcQFmMXcxdxZz6bGWnnVNKmBLCDFNSodyekfn5eqpcFQq51oeJPFqtI/RyabivWqFkbrVSuCeOU3gU0TjOrrWx8jK9g2/r5GRWHb9JJxsrLdN3cfBOTmGdaLUDQrHJQYiFnAgZGVhGCBcQl9k21Fmts9v1tgj2stm0NRcvRzr5xI6brsTZbPo2jjq9oz5m8rffdCyidrFPqKXKa8F5dnGUafWVC2meG3cumq9zWnhef5fOXq61rdDzg61nDhBJG2nZyb1ghH2nuIlmsGV1ZCSx1hNL3bEtUAOhluu+besYa9in9ZVqbTWgYK/lZJyzntB6R52MBUuIYwUrt7SVg+JoDjr7ci4inFXExIJra8p9wBJzSHaVsm11PJ/W6xSk3A0sURArlD3dE5XFXlh0u1CrUznr+cV1ujKCrrudI1a+p5NIhloJsRyzAmPcWAdbpjXZRNqma2kPbp39Mbh0ZgfOa+fiWwMcoayfSNrsvqxr20AJdo6r9l54hbNe8q0IsToJbTHpHoKdvT//hLPmmO0Trds8KxaF1xwMXbHeu2rPEMK3GyqHoLPrLFfStnTAVP8O3kmGDO3gcGi7LfMo9zQHmu12fmi1l6ubxr0rJeziVNY9HYe92tS9BHhnSikL05bd59Cxs79l/2n2TrEx89hO7l52ej+xHDjDWU/tg7D35MgZcBAezTNSenpHabKQNt0/rjAX6TREEUZaMDLwBQ9jUAr7kURDLm8udgtzKzbzgadj5A/kMUi4T4pcC5lYxXyFXxHDm4oIJLdq4lrhWmzsf4djoA/y7pvWFy3+UanHGVYew/ic399o/fkxl3ryHvoIV8rY5o8+20vUpaoTDTev+PlpSDOf/GEFPRqVjyyWcs6CJENySlKysRmdfqJ9b3VqwXBbREhgiLW2i9w8eW5ao8EbB1doCB0McsF7x6zeX0bH4oefweJqkOzZudUguBlKDG6CAVHT/ffsZByq2WpUlkA1VqVtzfwmTa9x3871sWbX1tgzQGd811apk/iPVll6RUNmcPxy4yLjaMbbXyow695JjcYAZuD82iTr7klHmaV7qolCFyNfwFiXN9BnmtqM64DrioFzJpzK7t3b86qDYNCzJm7bAHsF5AYJB9eqpDRICQglVa9lVwDXggM6rd4h2/9vDyUFSulH98t24GkJz8dpfN59IeQtBsplA0MatF9sZvc2ya64OsZb3lxaXb25SYhtWeOQzdVbfOTNvWddrcj/jrMmdl1D5L4rw6QZqamD3E+4H3M/6R6hDGhSmBUTU5DVKQCcdPMoDZG77XRfV4Zs+GBycrt2O5By9m/PSkfNxnxj6yFDAgf0X9Qa8KxzlPe+evwi2J4UTlXW1b2Nyy26f6FB5uBAzXvVzh2qookNFnSb4vF0+OeJxUvWm7wG3o3bHz48Xj0jJBECAAQOue0z1ifZHPOdP1f7oJFhrs9YBH42C2gDr9k3jJoOh2ZfDA292ASoKcI5FT3s6tAMAnMe9ZEnyYvI20dB4leeE3tE7jVldFVkf3Kjf/+Fe+vPlNCE+FMUGNDCX9tBteD/YxkG4k83/T/D1eF2k16OGZi1ib8BXFG7Lyc9iJEMwgxqKwk+w/HOBKSQcqCcumCAgZq7q6YvxkF6glPleS5oBhqEcQeBEthEKcj/lCwoGqnwoxgEwERJ4IVRp7kgAH+hP3piKIagj7vdKLRCb/TFaAxCd4xAAmIRr8pZaIbmBopXU+uvFzOYWmYpANqw6giMRH+sDjjAknbqpSGtiRuQBAAAAA==') format('woff2'), | ||
| 115 | - url('iconfont.woff?t=1703747271369') format('woff'), | ||
| 116 | - url('iconfont.ttf?t=1703747271369') format('truetype'); | ||
| 117 | -} | ||
| 118 | -</code></pre> | ||
| 119 | - <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3> | ||
| 120 | -<pre><code class="language-css" | ||
| 121 | ->.iconfont { | ||
| 122 | - font-family: "iconfont" !important; | ||
| 123 | - font-size: 16px; | ||
| 124 | - font-style: normal; | ||
| 125 | - -webkit-font-smoothing: antialiased; | ||
| 126 | - -moz-osx-font-smoothing: grayscale; | ||
| 127 | -} | ||
| 128 | -</code></pre> | ||
| 129 | - <h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3> | ||
| 130 | -<pre> | ||
| 131 | -<code class="language-html" | ||
| 132 | -><span class="iconfont">&#x33;</span> | ||
| 133 | -</code></pre> | ||
| 134 | - <blockquote> | ||
| 135 | - <p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p> | ||
| 136 | - </blockquote> | ||
| 137 | - </div> | ||
| 138 | - </div> | ||
| 139 | - <div class="content font-class"> | ||
| 140 | - <ul class="icon_lists dib-box"> | ||
| 141 | - | ||
| 142 | - <li class="dib"> | ||
| 143 | - <span class="icon iconfont icon-erweima-xian"></span> | ||
| 144 | - <div class="name"> | ||
| 145 | - 二维码-线 | ||
| 146 | - </div> | ||
| 147 | - <div class="code-name">.icon-erweima-xian | ||
| 148 | - </div> | ||
| 149 | - </li> | ||
| 150 | - | ||
| 151 | - <li class="dib"> | ||
| 152 | - <span class="icon iconfont icon-lajitong"></span> | ||
| 153 | - <div class="name"> | ||
| 154 | - 垃圾桶 | ||
| 155 | - </div> | ||
| 156 | - <div class="code-name">.icon-lajitong | ||
| 157 | - </div> | ||
| 158 | - </li> | ||
| 159 | - | ||
| 160 | - <li class="dib"> | ||
| 161 | - <span class="icon iconfont icon-zhengce"></span> | ||
| 162 | - <div class="name"> | ||
| 163 | - 政策 | ||
| 164 | - </div> | ||
| 165 | - <div class="code-name">.icon-zhengce | ||
| 166 | - </div> | ||
| 167 | - </li> | ||
| 168 | - | ||
| 169 | - <li class="dib"> | ||
| 170 | - <span class="icon iconfont icon-huoche"></span> | ||
| 171 | - <div class="name"> | ||
| 172 | - 货车 | ||
| 173 | - </div> | ||
| 174 | - <div class="code-name">.icon-huoche | ||
| 175 | - </div> | ||
| 176 | - </li> | ||
| 177 | - | ||
| 178 | - <li class="dib"> | ||
| 179 | - <span class="icon iconfont icon-a-zu5030"></span> | ||
| 180 | - <div class="name"> | ||
| 181 | - 卸料平台 | ||
| 182 | - </div> | ||
| 183 | - <div class="code-name">.icon-a-zu5030 | ||
| 184 | - </div> | ||
| 185 | - </li> | ||
| 186 | - | ||
| 187 | - <li class="dib"> | ||
| 188 | - <span class="icon iconfont icon-wenjianziliao"></span> | ||
| 189 | - <div class="name"> | ||
| 190 | - 文件资料 | ||
| 191 | - </div> | ||
| 192 | - <div class="code-name">.icon-wenjianziliao | ||
| 193 | - </div> | ||
| 194 | - </li> | ||
| 195 | - | ||
| 196 | - </ul> | ||
| 197 | - <div class="article markdown"> | ||
| 198 | - <h2 id="font-class-">font-class 引用</h2> | ||
| 199 | - <hr> | ||
| 200 | - | ||
| 201 | - <p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p> | ||
| 202 | - <p>与 Unicode 使用方式相比,具有如下特点:</p> | ||
| 203 | - <ul> | ||
| 204 | - <li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li> | ||
| 205 | - <li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li> | ||
| 206 | - </ul> | ||
| 207 | - <p>使用步骤如下:</p> | ||
| 208 | - <h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3> | ||
| 209 | -<pre><code class="language-html"><link rel="stylesheet" href="./iconfont.css"> | ||
| 210 | -</code></pre> | ||
| 211 | - <h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3> | ||
| 212 | -<pre><code class="language-html"><span class="iconfont icon-xxx"></span> | ||
| 213 | -</code></pre> | ||
| 214 | - <blockquote> | ||
| 215 | - <p>" | ||
| 216 | - iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p> | ||
| 217 | - </blockquote> | ||
| 218 | - </div> | ||
| 219 | - </div> | ||
| 220 | - <div class="content symbol"> | ||
| 221 | - <ul class="icon_lists dib-box"> | ||
| 222 | - | ||
| 223 | - <li class="dib"> | ||
| 224 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 225 | - <use xlink:href="#icon-erweima-xian"></use> | ||
| 226 | - </svg> | ||
| 227 | - <div class="name">二维码-线</div> | ||
| 228 | - <div class="code-name">#icon-erweima-xian</div> | ||
| 229 | - </li> | ||
| 230 | - | ||
| 231 | - <li class="dib"> | ||
| 232 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 233 | - <use xlink:href="#icon-lajitong"></use> | ||
| 234 | - </svg> | ||
| 235 | - <div class="name">垃圾桶</div> | ||
| 236 | - <div class="code-name">#icon-lajitong</div> | ||
| 237 | - </li> | ||
| 238 | - | ||
| 239 | - <li class="dib"> | ||
| 240 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 241 | - <use xlink:href="#icon-zhengce"></use> | ||
| 242 | - </svg> | ||
| 243 | - <div class="name">政策</div> | ||
| 244 | - <div class="code-name">#icon-zhengce</div> | ||
| 245 | - </li> | ||
| 246 | - | ||
| 247 | - <li class="dib"> | ||
| 248 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 249 | - <use xlink:href="#icon-huoche"></use> | ||
| 250 | - </svg> | ||
| 251 | - <div class="name">货车</div> | ||
| 252 | - <div class="code-name">#icon-huoche</div> | ||
| 253 | - </li> | ||
| 254 | - | ||
| 255 | - <li class="dib"> | ||
| 256 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 257 | - <use xlink:href="#icon-a-zu5030"></use> | ||
| 258 | - </svg> | ||
| 259 | - <div class="name">卸料平台</div> | ||
| 260 | - <div class="code-name">#icon-a-zu5030</div> | ||
| 261 | - </li> | ||
| 262 | - | ||
| 263 | - <li class="dib"> | ||
| 264 | - <svg class="icon svg-icon" aria-hidden="true"> | ||
| 265 | - <use xlink:href="#icon-wenjianziliao"></use> | ||
| 266 | - </svg> | ||
| 267 | - <div class="name">文件资料</div> | ||
| 268 | - <div class="code-name">#icon-wenjianziliao</div> | ||
| 269 | - </li> | ||
| 270 | - | ||
| 271 | - </ul> | ||
| 272 | - <div class="article markdown"> | ||
| 273 | - <h2 id="symbol-">Symbol 引用</h2> | ||
| 274 | - <hr> | ||
| 275 | - | ||
| 276 | - <p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a> | ||
| 277 | - 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p> | ||
| 278 | - <ul> | ||
| 279 | - <li>支持多色图标了,不再受单色限制。</li> | ||
| 280 | - <li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li> | ||
| 281 | - <li>兼容性较差,支持 IE9+,及现代浏览器。</li> | ||
| 282 | - <li>浏览器渲染 SVG 的性能一般,还不如 png。</li> | ||
| 283 | - </ul> | ||
| 284 | - <p>使用步骤如下:</p> | ||
| 285 | - <h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3> | ||
| 286 | -<pre><code class="language-html"><script src="./iconfont.js"></script> | ||
| 287 | -</code></pre> | ||
| 288 | - <h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3> | ||
| 289 | -<pre><code class="language-html"><style> | ||
| 290 | -.icon { | ||
| 291 | - width: 1em; | ||
| 292 | - height: 1em; | ||
| 293 | - vertical-align: -0.15em; | ||
| 294 | - fill: currentColor; | ||
| 295 | - overflow: hidden; | ||
| 296 | -} | ||
| 297 | -</style> | ||
| 298 | -</code></pre> | ||
| 299 | - <h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3> | ||
| 300 | -<pre><code class="language-html"><svg class="icon" aria-hidden="true"> | ||
| 301 | - <use xlink:href="#icon-xxx"></use> | ||
| 302 | -</svg> | ||
| 303 | -</code></pre> | ||
| 304 | - </div> | ||
| 305 | - </div> | ||
| 306 | - | ||
| 307 | - </div> | ||
| 308 | - </div> | ||
| 309 | - <script> | ||
| 310 | - $(document).ready(function () { | ||
| 311 | - $('.tab-container .content:first').show() | ||
| 312 | - | ||
| 313 | - $('#tabs li').click(function (e) { | ||
| 314 | - var tabContent = $('.tab-container .content') | ||
| 315 | - var index = $(this).index() | ||
| 316 | - | ||
| 317 | - if ($(this).hasClass('active')) { | ||
| 318 | - return | ||
| 319 | - } else { | ||
| 320 | - $('#tabs li').removeClass('active') | ||
| 321 | - $(this).addClass('active') | ||
| 322 | - | ||
| 323 | - tabContent.hide().eq(index).fadeIn() | ||
| 324 | - } | ||
| 325 | - }) | ||
| 326 | - }) | ||
| 327 | - </script> | ||
| 328 | -</body> | ||
| 329 | -</html> |
garbage-removal/src/static/image/garbage.png
garbage-removal/src/utils/request/request.js
| @@ -71,7 +71,8 @@ instance.interceptors.response.use((response) => { | @@ -71,7 +71,8 @@ instance.interceptors.response.use((response) => { | ||
| 71 | // 对于匿名访问的页面,不处理401和403错误 | 71 | // 对于匿名访问的页面,不处理401和403错误 |
| 72 | const url = response.config?.url || ''; | 72 | const url = response.config?.url || ''; |
| 73 | const isGuestAccess = url.startsWith("/order-info/order-other/webDetail/") || | 73 | const isGuestAccess = url.startsWith("/order-info/order-other/webDetail/") || |
| 74 | - url.startsWith("/order-info/order-driver/detail/guest/"); | 74 | + url.startsWith("/order-info/order-driver/detail/guest/")|| |
| 75 | + url.startsWith("/gar/car/requestStrByEnergyType"); | ||
| 75 | 76 | ||
| 76 | if (response.data.code == 401 || response.data.code == 403) { | 77 | if (response.data.code == 401 || response.data.code == 403) { |
| 77 | if (!isGuestAccess) { | 78 | if (!isGuestAccess) { |
| @@ -89,7 +90,8 @@ instance.interceptors.response.use((response) => { | @@ -89,7 +90,8 @@ instance.interceptors.response.use((response) => { | ||
| 89 | // 对于匿名访问的页面,不处理401和403错误 | 90 | // 对于匿名访问的页面,不处理401和403错误 |
| 90 | const url = error.config?.url || ''; | 91 | const url = error.config?.url || ''; |
| 91 | const isGuestAccess = url.startsWith("/order-info/order-other/webDetail/") || | 92 | const isGuestAccess = url.startsWith("/order-info/order-other/webDetail/") || |
| 92 | - url.startsWith("/order-info/order-driver/detail/guest/"); | 93 | + url.startsWith("/order-info/order-driver/detail/guest/")|| |
| 94 | + url.startsWith("/gar/car/requestStrByEnergyType"); | ||
| 93 | 95 | ||
| 94 | if (error.response.status) { | 96 | if (error.response.status) { |
| 95 | switch (error.response.status) { | 97 | switch (error.response.status) { |
| @@ -167,7 +169,8 @@ const handleGet = (config) => { | @@ -167,7 +169,8 @@ const handleGet = (config) => { | ||
| 167 | config.params = ""; | 169 | config.params = ""; |
| 168 | // 对于匿名访问的页面,移除Authorization头 | 170 | // 对于匿名访问的页面,移除Authorization头 |
| 169 | if (config.url.startsWith("/order-info/order-other/webDetail/") || | 171 | if (config.url.startsWith("/order-info/order-other/webDetail/") || |
| 170 | - config.url.startsWith("/order-info/order-driver/detail/guest/")) { | 172 | + config.url.startsWith("/order-info/order-driver/detail/guest/")|| |
| 173 | + config.url.startsWith("/gar/car/requestStrByEnergyType")) { | ||
| 171 | config.headers["Authorization"] = ""; | 174 | config.headers["Authorization"] = ""; |
| 172 | } | 175 | } |
| 173 | } | 176 | } |
garbage-removal/src/uview-plus/components/u-icon/u-icon.vue
| @@ -38,7 +38,7 @@ | @@ -38,7 +38,7 @@ | ||
| 38 | // #ifdef APP-NVUE | 38 | // #ifdef APP-NVUE |
| 39 | // nvue通过weex的dom模块引入字体,相关文档地址如下: | 39 | // nvue通过weex的dom模块引入字体,相关文档地址如下: |
| 40 | // https://weex.apache.org/zh/docs/modules/dom.html#addrule | 40 | // https://weex.apache.org/zh/docs/modules/dom.html#addrule |
| 41 | - const fontUrl = 'https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf' | 41 | + const fontUrl = '/static/fonts/font_2225171_8kdcwk4po24.ttf' |
| 42 | const domModule = weex.requireModule('dom') | 42 | const domModule = weex.requireModule('dom') |
| 43 | domModule.addRule('fontFace', { | 43 | domModule.addRule('fontFace', { |
| 44 | 'fontFamily': "uicon-iconfont", | 44 | 'fontFamily': "uicon-iconfont", |
| @@ -163,7 +163,7 @@ | @@ -163,7 +163,7 @@ | ||
| 163 | // 非nvue下加载字体 | 163 | // 非nvue下加载字体 |
| 164 | @font-face { | 164 | @font-face { |
| 165 | font-family: 'uicon-iconfont'; | 165 | font-family: 'uicon-iconfont'; |
| 166 | - src: url('https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf') format('truetype'); | 166 | + src: url('../../../static/fonts/font_2225171_8kdcwk4po24.ttf') format('truetype'); |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | /* #endif */ | 169 | /* #endif */ |