@hlw-uni/mp-vue 1.0.17 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -299,42 +299,42 @@
299
299
  }
300
300
  });
301
301
  const index$3 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-14242381"]]);
302
- const _hoisted_1$2 = { class: "hlw-menu" };
303
- const _hoisted_2$2 = {
302
+ const _hoisted_1$2 = {
304
303
  key: 0,
305
304
  class: "hlw-menu-title"
306
305
  };
307
- const _hoisted_3$2 = {
306
+ const _hoisted_2$2 = {
308
307
  key: 1,
309
308
  class: "hlw-menu-title-divider"
310
309
  };
311
- const _hoisted_4$1 = { class: "hlw-menu-left" };
312
- const _hoisted_5$1 = { class: "hlw-menu-label" };
313
- const _hoisted_6$1 = { class: "hlw-menu-right" };
314
- const _hoisted_7$1 = ["onClick"];
315
- const _hoisted_8 = { class: "hlw-menu-left" };
316
- const _hoisted_9 = { class: "hlw-menu-label" };
317
- const _hoisted_10 = { class: "hlw-menu-right" };
318
- const _hoisted_11 = {
310
+ const _hoisted_3$2 = { class: "hlw-menu-left" };
311
+ const _hoisted_4$1 = { class: "hlw-menu-label" };
312
+ const _hoisted_5$1 = { class: "hlw-menu-right" };
313
+ const _hoisted_6$1 = ["onClick"];
314
+ const _hoisted_7$1 = { class: "hlw-menu-left" };
315
+ const _hoisted_8 = { class: "hlw-menu-label" };
316
+ const _hoisted_9 = { class: "hlw-menu-right" };
317
+ const _hoisted_10 = {
319
318
  key: 0,
320
319
  class: "i-fa6-solid-circle-notch hlw-menu-spin hlw-menu-muted"
321
320
  };
322
- const _hoisted_12 = {
321
+ const _hoisted_11 = {
323
322
  key: 2,
324
323
  class: "hlw-menu-divider"
325
324
  };
326
- const _hoisted_13 = { class: "hlw-menu-grid-icon-wrap" };
327
- const _hoisted_14 = { class: "hlw-menu-grid-label" };
328
- const _hoisted_15 = ["onClick"];
329
- const _hoisted_16 = { class: "hlw-menu-grid-icon-wrap" };
330
- const _hoisted_17 = { class: "hlw-menu-grid-label" };
325
+ const _hoisted_12 = { class: "hlw-menu-grid-icon-wrap" };
326
+ const _hoisted_13 = { class: "hlw-menu-grid-label" };
327
+ const _hoisted_14 = ["onClick"];
328
+ const _hoisted_15 = { class: "hlw-menu-grid-icon-wrap" };
329
+ const _hoisted_16 = { class: "hlw-menu-grid-label" };
331
330
  const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
332
331
  __name: "index",
333
332
  props: {
334
333
  items: {},
335
334
  title: { default: "" },
336
335
  mode: { default: "list" },
337
- columns: { default: 4 }
336
+ columns: { default: 4 },
337
+ border: { type: Boolean, default: true }
338
338
  },
339
339
  emits: ["click"],
340
340
  setup(__props, { emit: __emit }) {
@@ -346,11 +346,13 @@
346
346
  };
347
347
  return (_ctx, _cache) => {
348
348
  const _component_navigator = vue.resolveComponent("navigator");
349
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$2, [
350
- props.title ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$2, [
349
+ return vue.openBlock(), vue.createElementBlock("view", {
350
+ class: vue.normalizeClass(["hlw-menu", { "hlw-menu--no-border": !props.border }])
351
+ }, [
352
+ props.title ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$2, [
351
353
  vue.createElementVNode("text", null, vue.toDisplayString(props.title), 1)
352
354
  ])) : vue.createCommentVNode("", true),
353
- props.title ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_3$2)) : vue.createCommentVNode("", true),
355
+ props.title ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$2)) : vue.createCommentVNode("", true),
354
356
  props.mode === "list" ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 2 }, vue.renderList(visibleItems.value, (item, index2) => {
355
357
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: index2 }, [
356
358
  item.url ? (vue.openBlock(), vue.createBlock(_component_navigator, {
@@ -360,7 +362,7 @@
360
362
  "hover-class": "hlw-menu-item--active"
361
363
  }, {
362
364
  default: vue.withCtx(() => [
363
- vue.createElementVNode("view", _hoisted_4$1, [
365
+ vue.createElementVNode("view", _hoisted_3$2, [
364
366
  vue.createElementVNode("view", {
365
367
  class: vue.normalizeClass(["hlw-menu-icon", `hlw-menu-icon--${item.iconTheme || "slate"}`])
366
368
  }, [
@@ -368,9 +370,9 @@
368
370
  class: vue.normalizeClass(item.icon)
369
371
  }, null, 2)
370
372
  ], 2),
371
- vue.createElementVNode("text", _hoisted_5$1, vue.toDisplayString(item.label), 1)
373
+ vue.createElementVNode("text", _hoisted_4$1, vue.toDisplayString(item.label), 1)
372
374
  ]),
373
- vue.createElementVNode("view", _hoisted_6$1, [
375
+ vue.createElementVNode("view", _hoisted_5$1, [
374
376
  item.tag ? (vue.openBlock(), vue.createElementBlock("text", {
375
377
  key: 0,
376
378
  class: vue.normalizeClass(["hlw-menu-tag", [`hlw-menu-tag--${item.tagTheme || "rose"}`, item.tagPulse ? "hlw-menu-tag-pulse" : ""]])
@@ -385,7 +387,7 @@
385
387
  "hover-class": "hlw-menu-item--active",
386
388
  onClick: ($event) => handleClick(item)
387
389
  }, [
388
- vue.createElementVNode("view", _hoisted_8, [
390
+ vue.createElementVNode("view", _hoisted_7$1, [
389
391
  vue.createElementVNode("view", {
390
392
  class: vue.normalizeClass(["hlw-menu-icon", `hlw-menu-icon--${item.iconTheme || "slate"}`])
391
393
  }, [
@@ -393,18 +395,18 @@
393
395
  class: vue.normalizeClass(item.icon)
394
396
  }, null, 2)
395
397
  ], 2),
396
- vue.createElementVNode("text", _hoisted_9, vue.toDisplayString(item.label), 1)
398
+ vue.createElementVNode("text", _hoisted_8, vue.toDisplayString(item.label), 1)
397
399
  ]),
398
- vue.createElementVNode("view", _hoisted_10, [
399
- item.loading ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_11)) : vue.createCommentVNode("", true),
400
+ vue.createElementVNode("view", _hoisted_9, [
401
+ item.loading ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_10)) : vue.createCommentVNode("", true),
400
402
  item.tag ? (vue.openBlock(), vue.createElementBlock("text", {
401
403
  key: 1,
402
404
  class: vue.normalizeClass(["hlw-menu-tag", [`hlw-menu-tag--${item.tagTheme || "rose"}`, item.tagPulse ? "hlw-menu-tag-pulse" : ""]])
403
405
  }, vue.toDisplayString(item.tag), 3)) : vue.createCommentVNode("", true),
404
406
  _cache[1] || (_cache[1] = vue.createElementVNode("text", { class: "i-fa6-solid-chevron-right hlw-menu-arrow" }, null, -1))
405
407
  ])
406
- ], 8, _hoisted_7$1)),
407
- index2 < visibleItems.value.length - 1 ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_12)) : vue.createCommentVNode("", true)
408
+ ], 8, _hoisted_6$1)),
409
+ index2 < visibleItems.value.length - 1 ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_11)) : vue.createCommentVNode("", true)
408
410
  ], 64);
409
411
  }), 128)) : (vue.openBlock(), vue.createElementBlock("view", {
410
412
  key: 3,
@@ -420,7 +422,7 @@
420
422
  "hover-class": "hlw-menu-grid-item--active"
421
423
  }, {
422
424
  default: vue.withCtx(() => [
423
- vue.createElementVNode("view", _hoisted_13, [
425
+ vue.createElementVNode("view", _hoisted_12, [
424
426
  vue.createElementVNode("view", {
425
427
  class: vue.normalizeClass(["hlw-menu-icon hlw-menu-icon--grid", `hlw-menu-icon--${item.iconTheme || "slate"}`])
426
428
  }, [
@@ -433,7 +435,7 @@
433
435
  class: vue.normalizeClass(["hlw-menu-badge", [`hlw-menu-tag--${item.tagTheme || "rose"}`, item.tagPulse ? "hlw-menu-tag-pulse" : ""]])
434
436
  }, vue.toDisplayString(item.tag), 3)) : vue.createCommentVNode("", true)
435
437
  ]),
436
- vue.createElementVNode("text", _hoisted_14, vue.toDisplayString(item.label), 1)
438
+ vue.createElementVNode("text", _hoisted_13, vue.toDisplayString(item.label), 1)
437
439
  ]),
438
440
  _: 2
439
441
  }, 1032, ["url"])) : (vue.openBlock(), vue.createElementBlock("view", {
@@ -442,7 +444,7 @@
442
444
  "hover-class": "hlw-menu-grid-item--active",
443
445
  onClick: ($event) => handleClick(item)
444
446
  }, [
445
- vue.createElementVNode("view", _hoisted_16, [
447
+ vue.createElementVNode("view", _hoisted_15, [
446
448
  vue.createElementVNode("view", {
447
449
  class: vue.normalizeClass(["hlw-menu-icon hlw-menu-icon--grid", `hlw-menu-icon--${item.iconTheme || "slate"}`])
448
450
  }, [
@@ -455,16 +457,16 @@
455
457
  class: vue.normalizeClass(["hlw-menu-badge", [`hlw-menu-tag--${item.tagTheme || "rose"}`, item.tagPulse ? "hlw-menu-tag-pulse" : ""]])
456
458
  }, vue.toDisplayString(item.tag), 3)) : vue.createCommentVNode("", true)
457
459
  ]),
458
- vue.createElementVNode("text", _hoisted_17, vue.toDisplayString(item.label), 1)
459
- ], 8, _hoisted_15))
460
+ vue.createElementVNode("text", _hoisted_16, vue.toDisplayString(item.label), 1)
461
+ ], 8, _hoisted_14))
460
462
  ], 64);
461
463
  }), 128))
462
464
  ], 4))
463
- ]);
465
+ ], 2);
464
466
  };
465
467
  }
466
468
  });
467
- const index$2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-0275c21a"]]);
469
+ const index$2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-728f18f4"]]);
468
470
  const _hoisted_1$1 = { class: "hlw-menu-list" };
469
471
  const _hoisted_2$1 = ["onTap"];
470
472
  const _hoisted_3$1 = { class: "hlw-menu-list__left" };
package/dist/index.mjs CHANGED
@@ -296,42 +296,42 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
296
296
  }
297
297
  });
298
298
  const index$3 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-14242381"]]);
299
- const _hoisted_1$2 = { class: "hlw-menu" };
300
- const _hoisted_2$2 = {
299
+ const _hoisted_1$2 = {
301
300
  key: 0,
302
301
  class: "hlw-menu-title"
303
302
  };
304
- const _hoisted_3$2 = {
303
+ const _hoisted_2$2 = {
305
304
  key: 1,
306
305
  class: "hlw-menu-title-divider"
307
306
  };
308
- const _hoisted_4$1 = { class: "hlw-menu-left" };
309
- const _hoisted_5$1 = { class: "hlw-menu-label" };
310
- const _hoisted_6$1 = { class: "hlw-menu-right" };
311
- const _hoisted_7$1 = ["onClick"];
312
- const _hoisted_8 = { class: "hlw-menu-left" };
313
- const _hoisted_9 = { class: "hlw-menu-label" };
314
- const _hoisted_10 = { class: "hlw-menu-right" };
315
- const _hoisted_11 = {
307
+ const _hoisted_3$2 = { class: "hlw-menu-left" };
308
+ const _hoisted_4$1 = { class: "hlw-menu-label" };
309
+ const _hoisted_5$1 = { class: "hlw-menu-right" };
310
+ const _hoisted_6$1 = ["onClick"];
311
+ const _hoisted_7$1 = { class: "hlw-menu-left" };
312
+ const _hoisted_8 = { class: "hlw-menu-label" };
313
+ const _hoisted_9 = { class: "hlw-menu-right" };
314
+ const _hoisted_10 = {
316
315
  key: 0,
317
316
  class: "i-fa6-solid-circle-notch hlw-menu-spin hlw-menu-muted"
318
317
  };
319
- const _hoisted_12 = {
318
+ const _hoisted_11 = {
320
319
  key: 2,
321
320
  class: "hlw-menu-divider"
322
321
  };
323
- const _hoisted_13 = { class: "hlw-menu-grid-icon-wrap" };
324
- const _hoisted_14 = { class: "hlw-menu-grid-label" };
325
- const _hoisted_15 = ["onClick"];
326
- const _hoisted_16 = { class: "hlw-menu-grid-icon-wrap" };
327
- const _hoisted_17 = { class: "hlw-menu-grid-label" };
322
+ const _hoisted_12 = { class: "hlw-menu-grid-icon-wrap" };
323
+ const _hoisted_13 = { class: "hlw-menu-grid-label" };
324
+ const _hoisted_14 = ["onClick"];
325
+ const _hoisted_15 = { class: "hlw-menu-grid-icon-wrap" };
326
+ const _hoisted_16 = { class: "hlw-menu-grid-label" };
328
327
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
329
328
  __name: "index",
330
329
  props: {
331
330
  items: {},
332
331
  title: { default: "" },
333
332
  mode: { default: "list" },
334
- columns: { default: 4 }
333
+ columns: { default: 4 },
334
+ border: { type: Boolean, default: true }
335
335
  },
336
336
  emits: ["click"],
337
337
  setup(__props, { emit: __emit }) {
@@ -343,11 +343,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
343
343
  };
344
344
  return (_ctx, _cache) => {
345
345
  const _component_navigator = resolveComponent("navigator");
346
- return openBlock(), createElementBlock("view", _hoisted_1$2, [
347
- props.title ? (openBlock(), createElementBlock("view", _hoisted_2$2, [
346
+ return openBlock(), createElementBlock("view", {
347
+ class: normalizeClass(["hlw-menu", { "hlw-menu--no-border": !props.border }])
348
+ }, [
349
+ props.title ? (openBlock(), createElementBlock("view", _hoisted_1$2, [
348
350
  createElementVNode("text", null, toDisplayString(props.title), 1)
349
351
  ])) : createCommentVNode("", true),
350
- props.title ? (openBlock(), createElementBlock("view", _hoisted_3$2)) : createCommentVNode("", true),
352
+ props.title ? (openBlock(), createElementBlock("view", _hoisted_2$2)) : createCommentVNode("", true),
351
353
  props.mode === "list" ? (openBlock(true), createElementBlock(Fragment, { key: 2 }, renderList(visibleItems.value, (item, index2) => {
352
354
  return openBlock(), createElementBlock(Fragment, { key: index2 }, [
353
355
  item.url ? (openBlock(), createBlock(_component_navigator, {
@@ -357,7 +359,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
357
359
  "hover-class": "hlw-menu-item--active"
358
360
  }, {
359
361
  default: withCtx(() => [
360
- createElementVNode("view", _hoisted_4$1, [
362
+ createElementVNode("view", _hoisted_3$2, [
361
363
  createElementVNode("view", {
362
364
  class: normalizeClass(["hlw-menu-icon", `hlw-menu-icon--${item.iconTheme || "slate"}`])
363
365
  }, [
@@ -365,9 +367,9 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
365
367
  class: normalizeClass(item.icon)
366
368
  }, null, 2)
367
369
  ], 2),
368
- createElementVNode("text", _hoisted_5$1, toDisplayString(item.label), 1)
370
+ createElementVNode("text", _hoisted_4$1, toDisplayString(item.label), 1)
369
371
  ]),
370
- createElementVNode("view", _hoisted_6$1, [
372
+ createElementVNode("view", _hoisted_5$1, [
371
373
  item.tag ? (openBlock(), createElementBlock("text", {
372
374
  key: 0,
373
375
  class: normalizeClass(["hlw-menu-tag", [`hlw-menu-tag--${item.tagTheme || "rose"}`, item.tagPulse ? "hlw-menu-tag-pulse" : ""]])
@@ -382,7 +384,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
382
384
  "hover-class": "hlw-menu-item--active",
383
385
  onClick: ($event) => handleClick(item)
384
386
  }, [
385
- createElementVNode("view", _hoisted_8, [
387
+ createElementVNode("view", _hoisted_7$1, [
386
388
  createElementVNode("view", {
387
389
  class: normalizeClass(["hlw-menu-icon", `hlw-menu-icon--${item.iconTheme || "slate"}`])
388
390
  }, [
@@ -390,18 +392,18 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
390
392
  class: normalizeClass(item.icon)
391
393
  }, null, 2)
392
394
  ], 2),
393
- createElementVNode("text", _hoisted_9, toDisplayString(item.label), 1)
395
+ createElementVNode("text", _hoisted_8, toDisplayString(item.label), 1)
394
396
  ]),
395
- createElementVNode("view", _hoisted_10, [
396
- item.loading ? (openBlock(), createElementBlock("text", _hoisted_11)) : createCommentVNode("", true),
397
+ createElementVNode("view", _hoisted_9, [
398
+ item.loading ? (openBlock(), createElementBlock("text", _hoisted_10)) : createCommentVNode("", true),
397
399
  item.tag ? (openBlock(), createElementBlock("text", {
398
400
  key: 1,
399
401
  class: normalizeClass(["hlw-menu-tag", [`hlw-menu-tag--${item.tagTheme || "rose"}`, item.tagPulse ? "hlw-menu-tag-pulse" : ""]])
400
402
  }, toDisplayString(item.tag), 3)) : createCommentVNode("", true),
401
403
  _cache[1] || (_cache[1] = createElementVNode("text", { class: "i-fa6-solid-chevron-right hlw-menu-arrow" }, null, -1))
402
404
  ])
403
- ], 8, _hoisted_7$1)),
404
- index2 < visibleItems.value.length - 1 ? (openBlock(), createElementBlock("view", _hoisted_12)) : createCommentVNode("", true)
405
+ ], 8, _hoisted_6$1)),
406
+ index2 < visibleItems.value.length - 1 ? (openBlock(), createElementBlock("view", _hoisted_11)) : createCommentVNode("", true)
405
407
  ], 64);
406
408
  }), 128)) : (openBlock(), createElementBlock("view", {
407
409
  key: 3,
@@ -417,7 +419,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
417
419
  "hover-class": "hlw-menu-grid-item--active"
418
420
  }, {
419
421
  default: withCtx(() => [
420
- createElementVNode("view", _hoisted_13, [
422
+ createElementVNode("view", _hoisted_12, [
421
423
  createElementVNode("view", {
422
424
  class: normalizeClass(["hlw-menu-icon hlw-menu-icon--grid", `hlw-menu-icon--${item.iconTheme || "slate"}`])
423
425
  }, [
@@ -430,7 +432,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
430
432
  class: normalizeClass(["hlw-menu-badge", [`hlw-menu-tag--${item.tagTheme || "rose"}`, item.tagPulse ? "hlw-menu-tag-pulse" : ""]])
431
433
  }, toDisplayString(item.tag), 3)) : createCommentVNode("", true)
432
434
  ]),
433
- createElementVNode("text", _hoisted_14, toDisplayString(item.label), 1)
435
+ createElementVNode("text", _hoisted_13, toDisplayString(item.label), 1)
434
436
  ]),
435
437
  _: 2
436
438
  }, 1032, ["url"])) : (openBlock(), createElementBlock("view", {
@@ -439,7 +441,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
439
441
  "hover-class": "hlw-menu-grid-item--active",
440
442
  onClick: ($event) => handleClick(item)
441
443
  }, [
442
- createElementVNode("view", _hoisted_16, [
444
+ createElementVNode("view", _hoisted_15, [
443
445
  createElementVNode("view", {
444
446
  class: normalizeClass(["hlw-menu-icon hlw-menu-icon--grid", `hlw-menu-icon--${item.iconTheme || "slate"}`])
445
447
  }, [
@@ -452,16 +454,16 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
452
454
  class: normalizeClass(["hlw-menu-badge", [`hlw-menu-tag--${item.tagTheme || "rose"}`, item.tagPulse ? "hlw-menu-tag-pulse" : ""]])
453
455
  }, toDisplayString(item.tag), 3)) : createCommentVNode("", true)
454
456
  ]),
455
- createElementVNode("text", _hoisted_17, toDisplayString(item.label), 1)
456
- ], 8, _hoisted_15))
457
+ createElementVNode("text", _hoisted_16, toDisplayString(item.label), 1)
458
+ ], 8, _hoisted_14))
457
459
  ], 64);
458
460
  }), 128))
459
461
  ], 4))
460
- ]);
462
+ ], 2);
461
463
  };
462
464
  }
463
465
  });
464
- const index$2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-0275c21a"]]);
466
+ const index$2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-728f18f4"]]);
465
467
  const _hoisted_1$1 = { class: "hlw-menu-list" };
466
468
  const _hoisted_2$1 = ["onTap"];
467
469
  const _hoisted_3$1 = { class: "hlw-menu-list__left" };
package/dist/style.css CHANGED
@@ -145,76 +145,79 @@ to { transform: rotate(360deg);
145
145
  color: #999;
146
146
  }
147
147
 
148
- .hlw-menu[data-v-0275c21a] {
148
+ .hlw-menu[data-v-728f18f4] {
149
149
  background: #fff;
150
150
  border-radius: var(--radius-lg, 24rpx);
151
151
  border: 1rpx solid var(--border-color, #e2e8f0);
152
152
  overflow: hidden;
153
153
  width: 100%;
154
154
  }
155
+ .hlw-menu--no-border[data-v-728f18f4] {
156
+ border: none;
157
+ }
155
158
 
156
159
  /* 标题 */
157
- .hlw-menu-title[data-v-0275c21a] {
160
+ .hlw-menu-title[data-v-728f18f4] {
158
161
  padding: 24rpx 32rpx 0;
159
162
  }
160
- .hlw-menu-title text[data-v-0275c21a] {
163
+ .hlw-menu-title text[data-v-728f18f4] {
161
164
  font-size: 24rpx;
162
165
  font-weight: 600;
163
166
  color: #94a3b8;
164
167
  letter-spacing: 1rpx;
165
168
  }
166
- .hlw-menu-title-divider[data-v-0275c21a] {
169
+ .hlw-menu-title-divider[data-v-728f18f4] {
167
170
  margin: 16rpx 32rpx 0;
168
171
  height: 0;
169
172
  border-bottom: 1rpx dashed var(--border-color, #e2e8f0);
170
173
  }
171
174
 
172
175
  /* ========== 列表模式 ========== */
173
- .hlw-menu-item[data-v-0275c21a] {
176
+ .hlw-menu-item[data-v-728f18f4] {
174
177
  display: flex;
175
178
  align-items: center;
176
179
  justify-content: space-between;
177
180
  padding: 24rpx 32rpx;
178
181
  }
179
- .hlw-menu-item--active[data-v-0275c21a] {
182
+ .hlw-menu-item--active[data-v-728f18f4] {
180
183
  background: #f8fafc;
181
184
  }
182
- .hlw-menu-divider[data-v-0275c21a] {
185
+ .hlw-menu-divider[data-v-728f18f4] {
183
186
  margin: 0 32rpx;
184
187
  height: 0;
185
188
  border-bottom: 1rpx dashed var(--border-color, #e2e8f0);
186
189
  }
187
- .hlw-menu-left[data-v-0275c21a] {
190
+ .hlw-menu-left[data-v-728f18f4] {
188
191
  display: flex;
189
192
  align-items: center;
190
193
  gap: 24rpx;
191
194
  }
192
- .hlw-menu-right[data-v-0275c21a] {
195
+ .hlw-menu-right[data-v-728f18f4] {
193
196
  display: flex;
194
197
  align-items: center;
195
198
  gap: 16rpx;
196
199
  }
197
200
 
198
201
  /* ========== 宫格模式 ========== */
199
- .hlw-menu-grid[data-v-0275c21a] {
202
+ .hlw-menu-grid[data-v-728f18f4] {
200
203
  display: grid;
201
204
  padding: 16rpx 0 24rpx;
202
205
  }
203
- .hlw-menu-grid-item[data-v-0275c21a] {
206
+ .hlw-menu-grid-item[data-v-728f18f4] {
204
207
  display: flex;
205
208
  flex-direction: column;
206
209
  align-items: center;
207
210
  gap: 12rpx;
208
211
  padding: 16rpx 8rpx;
209
212
  }
210
- .hlw-menu-grid-item--active[data-v-0275c21a] {
213
+ .hlw-menu-grid-item--active[data-v-728f18f4] {
211
214
  background: #f8fafc;
212
215
  }
213
- .hlw-menu-grid-icon-wrap[data-v-0275c21a] {
216
+ .hlw-menu-grid-icon-wrap[data-v-728f18f4] {
214
217
  position: relative;
215
218
  padding-top: 20rpx; /* 预留徽标空间,保证所有格子图标水平对齐 */
216
219
  }
217
- .hlw-menu-badge[data-v-0275c21a] {
220
+ .hlw-menu-badge[data-v-728f18f4] {
218
221
  position: absolute;
219
222
  top: 0;
220
223
  right: -8rpx;
@@ -227,14 +230,14 @@ to { transform: rotate(360deg);
227
230
  line-height: 28rpx;
228
231
  height: 28rpx;
229
232
  }
230
- .hlw-menu-grid-label[data-v-0275c21a] {
233
+ .hlw-menu-grid-label[data-v-728f18f4] {
231
234
  font-size: 24rpx;
232
235
  color: #334155;
233
236
  text-align: center;
234
237
  }
235
238
 
236
239
  /* ========== 图标 ========== */
237
- .hlw-menu-icon[data-v-0275c21a] {
240
+ .hlw-menu-icon[data-v-728f18f4] {
238
241
  width: 64rpx;
239
242
  height: 64rpx;
240
243
  border-radius: var(--radius-md, 16rpx);
@@ -243,86 +246,86 @@ to { transform: rotate(360deg);
243
246
  justify-content: center;
244
247
  flex-shrink: 0;
245
248
  }
246
- .hlw-menu-icon text[data-v-0275c21a] {
249
+ .hlw-menu-icon text[data-v-728f18f4] {
247
250
  font-size: 20rpx;
248
251
  }
249
- .hlw-menu-icon--grid[data-v-0275c21a] {
252
+ .hlw-menu-icon--grid[data-v-728f18f4] {
250
253
  width: 88rpx;
251
254
  height: 88rpx;
252
255
  border-radius: var(--radius-lg, 24rpx);
253
256
  }
254
- .hlw-menu-icon--grid text[data-v-0275c21a] {
257
+ .hlw-menu-icon--grid text[data-v-728f18f4] {
255
258
  font-size: 32rpx;
256
259
  }
257
- .hlw-menu-icon--orange[data-v-0275c21a] {
260
+ .hlw-menu-icon--orange[data-v-728f18f4] {
258
261
  background: #fff7ed;
259
262
  color: #f97316;
260
263
  }
261
- .hlw-menu-icon--purple[data-v-0275c21a] {
264
+ .hlw-menu-icon--purple[data-v-728f18f4] {
262
265
  background: #faf5ff;
263
266
  color: #a855f7;
264
267
  }
265
- .hlw-menu-icon--wechat[data-v-0275c21a] {
268
+ .hlw-menu-icon--wechat[data-v-728f18f4] {
266
269
  background: #f0fdf4;
267
270
  color: #07c160;
268
271
  }
269
- .hlw-menu-icon--cyan[data-v-0275c21a] {
272
+ .hlw-menu-icon--cyan[data-v-728f18f4] {
270
273
  background: #ecfeff;
271
274
  color: #06b6d4;
272
275
  }
273
- .hlw-menu-icon--emerald[data-v-0275c21a] {
276
+ .hlw-menu-icon--emerald[data-v-728f18f4] {
274
277
  background: #ecfdf5;
275
278
  color: #10b981;
276
279
  }
277
- .hlw-menu-icon--slate[data-v-0275c21a] {
280
+ .hlw-menu-icon--slate[data-v-728f18f4] {
278
281
  background: #f1f5f9;
279
282
  color: #64748b;
280
283
  }
281
- .hlw-menu-icon--rose[data-v-0275c21a] {
284
+ .hlw-menu-icon--rose[data-v-728f18f4] {
282
285
  background: #fff1f2;
283
286
  color: #f43f5e;
284
287
  }
285
- .hlw-menu-icon--blue[data-v-0275c21a] {
288
+ .hlw-menu-icon--blue[data-v-728f18f4] {
286
289
  background: #eff6ff;
287
290
  color: #3b82f6;
288
291
  }
289
- .hlw-menu-icon--red[data-v-0275c21a] {
292
+ .hlw-menu-icon--red[data-v-728f18f4] {
290
293
  background: #fef2f2;
291
294
  color: #ef4444;
292
295
  }
293
296
 
294
297
  /* ========== 标签 / 角标 ========== */
295
- .hlw-menu-label[data-v-0275c21a] {
298
+ .hlw-menu-label[data-v-728f18f4] {
296
299
  font-size: 28rpx;
297
300
  font-weight: 500;
298
301
  color: #334155;
299
302
  }
300
- .hlw-menu-tag[data-v-0275c21a] {
303
+ .hlw-menu-tag[data-v-728f18f4] {
301
304
  font-size: 20rpx;
302
305
  color: #fff;
303
306
  padding: 2rpx 12rpx;
304
307
  border-radius: 9999rpx;
305
308
  box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
306
309
  }
307
- .hlw-menu-tag--orange[data-v-0275c21a] {
310
+ .hlw-menu-tag--orange[data-v-728f18f4] {
308
311
  background: #fb923c;
309
312
  }
310
- .hlw-menu-tag--red[data-v-0275c21a] {
313
+ .hlw-menu-tag--red[data-v-728f18f4] {
311
314
  background: #ef4444;
312
315
  }
313
- .hlw-menu-tag--wechat[data-v-0275c21a] {
316
+ .hlw-menu-tag--wechat[data-v-728f18f4] {
314
317
  background: #07c160;
315
318
  }
316
- .hlw-menu-tag--rose[data-v-0275c21a] {
319
+ .hlw-menu-tag--rose[data-v-728f18f4] {
317
320
  background: #f43f5e;
318
321
  }
319
- .hlw-menu-tag--blue[data-v-0275c21a] {
322
+ .hlw-menu-tag--blue[data-v-728f18f4] {
320
323
  background: #3b82f6;
321
324
  }
322
- .hlw-menu-tag-pulse[data-v-0275c21a] {
323
- animation: tag-pulse-0275c21a 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
325
+ .hlw-menu-tag-pulse[data-v-728f18f4] {
326
+ animation: tag-pulse-728f18f4 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
324
327
  }
325
- @keyframes tag-pulse-0275c21a {
328
+ @keyframes tag-pulse-728f18f4 {
326
329
  0%, 100% {
327
330
  opacity: 1;
328
331
  }
@@ -330,18 +333,18 @@ to { transform: rotate(360deg);
330
333
  opacity: 0.5;
331
334
  }
332
335
  }
333
- .hlw-menu-arrow[data-v-0275c21a] {
336
+ .hlw-menu-arrow[data-v-728f18f4] {
334
337
  color: #d1d5db;
335
338
  font-size: 20rpx;
336
339
  }
337
- .hlw-menu-spin[data-v-0275c21a] {
338
- animation: icon-spin-0275c21a 1s linear infinite;
340
+ .hlw-menu-spin[data-v-728f18f4] {
341
+ animation: icon-spin-728f18f4 1s linear infinite;
339
342
  }
340
- .hlw-menu-muted[data-v-0275c21a] {
343
+ .hlw-menu-muted[data-v-728f18f4] {
341
344
  color: #94a3b8;
342
345
  font-size: 20rpx;
343
346
  }
344
- @keyframes icon-spin-0275c21a {
347
+ @keyframes icon-spin-728f18f4 {
345
348
  from {
346
349
  transform: rotate(0deg);
347
350
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hlw-uni/mp-vue",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "description": "hlw-uni Vue 组件库 — 供小程序业务方使用的 UI 组件集合",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <view class="hlw-menu">
2
+ <view class="hlw-menu" :class="{ 'hlw-menu--no-border': !props.border }">
3
3
  <!-- 标题 -->
4
4
  <view v-if="props.title" class="hlw-menu-title">
5
5
  <text>{{ props.title }}</text>
@@ -80,12 +80,15 @@ interface Props {
80
80
  mode?: "list" | "grid";
81
81
  /** 宫格列数,默认 4 */
82
82
  columns?: number;
83
+ /** 是否显示外边框,默认 true */
84
+ border?: boolean;
83
85
  }
84
86
 
85
87
  const props = withDefaults(defineProps<Props>(), {
86
88
  title: "",
87
89
  mode: "list",
88
90
  columns: 4,
91
+ border: true,
89
92
  });
90
93
 
91
94
  const emit = defineEmits<{
@@ -106,6 +109,10 @@ const handleClick = (item: HlwMenuItem) => {
106
109
  border: 1rpx solid var(--border-color, #e2e8f0);
107
110
  overflow: hidden;
108
111
  width: 100%;
112
+
113
+ &--no-border {
114
+ border: none;
115
+ }
109
116
  }
110
117
 
111
118
  /* 标题 */