@atooyu/uxto-ui 1.1.28 → 1.1.29

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
@@ -4,8 +4,8 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
6
  const vue = require("vue");
7
- const _hoisted_1$I = ["disabled", "hover-class"];
8
- const _hoisted_2$x = {
7
+ const _hoisted_1$H = ["disabled", "hover-class"];
8
+ const _hoisted_2$w = {
9
9
  key: 0,
10
10
  class: "u-button__loading"
11
11
  };
@@ -77,7 +77,7 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
77
77
  "hover-class": __props.disabled || __props.loading ? "" : "u-button--active",
78
78
  onClick: handleClick
79
79
  }, [
80
- __props.loading ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$x, [..._cache[0] || (_cache[0] = [
80
+ __props.loading ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$w, [..._cache[0] || (_cache[0] = [
81
81
  vue.createElementVNode("view", { class: "u-button__loading-icon" }, null, -1)
82
82
  ])])) : (vue.openBlock(), vue.createElementBlock("view", _hoisted_3$q, [
83
83
  __props.icon ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_4$h, vue.toDisplayString(__props.icon), 1)) : vue.createCommentVNode("", true),
@@ -85,7 +85,7 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
85
85
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
86
86
  ])
87
87
  ]))
88
- ], 14, _hoisted_1$I);
88
+ ], 14, _hoisted_1$H);
89
89
  };
90
90
  }
91
91
  });
@@ -97,11 +97,11 @@ const _export_sfc = (sfc, props) => {
97
97
  return target;
98
98
  };
99
99
  const uButton = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-a51cb0bf"]]);
100
- const _hoisted_1$H = {
100
+ const _hoisted_1$G = {
101
101
  key: 0,
102
102
  class: "u-input__prefix"
103
103
  };
104
- const _hoisted_2$w = { class: "u-input__icon" };
104
+ const _hoisted_2$v = { class: "u-input__icon" };
105
105
  const _hoisted_3$p = { class: "u-input__body" };
106
106
  const _hoisted_4$g = ["type", "value", "placeholder", "placeholder-style", "disabled", "maxlength", "focus", "confirm-type", "adjust-position"];
107
107
  const _hoisted_5$c = {
@@ -166,9 +166,9 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
166
166
  "u-input--focus": isFocus.value
167
167
  }])
168
168
  }, [
169
- _ctx.$slots.prefix || __props.prefixIcon ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$H, [
169
+ _ctx.$slots.prefix || __props.prefixIcon ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$G, [
170
170
  vue.renderSlot(_ctx.$slots, "prefix", {}, () => [
171
- vue.createElementVNode("text", _hoisted_2$w, vue.toDisplayString(__props.prefixIcon), 1)
171
+ vue.createElementVNode("text", _hoisted_2$v, vue.toDisplayString(__props.prefixIcon), 1)
172
172
  ], true)
173
173
  ])) : vue.createCommentVNode("", true),
174
174
  vue.createElementVNode("view", _hoisted_3$p, [
@@ -207,8 +207,8 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
207
207
  }
208
208
  });
209
209
  const uInput = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__scopeId", "data-v-2f635824"]]);
210
- const _hoisted_1$G = ["hover-class"];
211
- const _hoisted_2$v = {
210
+ const _hoisted_1$F = ["hover-class"];
211
+ const _hoisted_2$u = {
212
212
  key: 0,
213
213
  class: "u-cell__icon"
214
214
  };
@@ -271,7 +271,7 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
271
271
  "hover-class": isClickable.value && !__props.disabled ? "u-cell--active" : "",
272
272
  onClick: handleClick
273
273
  }, [
274
- _ctx.$slots.icon || __props.icon ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$v, [
274
+ _ctx.$slots.icon || __props.icon ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$u, [
275
275
  vue.renderSlot(_ctx.$slots, "icon", {}, () => [
276
276
  __props.icon ? (vue.openBlock(), vue.createElementBlock("image", {
277
277
  key: 0,
@@ -296,13 +296,13 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
296
296
  vue.createElementVNode("text", { class: "u-cell__arrow-icon" }, "›", -1)
297
297
  ])])) : vue.createCommentVNode("", true),
298
298
  vue.renderSlot(_ctx.$slots, "right-icon", {}, void 0, true)
299
- ], 10, _hoisted_1$G);
299
+ ], 10, _hoisted_1$F);
300
300
  };
301
301
  }
302
302
  });
303
303
  const uCell = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__scopeId", "data-v-c3a35a65"]]);
304
- const _hoisted_1$F = { class: "u-cell-group" };
305
- const _hoisted_2$u = {
304
+ const _hoisted_1$E = { class: "u-cell-group" };
305
+ const _hoisted_2$t = {
306
306
  key: 0,
307
307
  class: "u-cell-group__title"
308
308
  };
@@ -321,8 +321,8 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
321
321
  },
322
322
  setup(__props) {
323
323
  return (_ctx, _cache) => {
324
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$F, [
325
- __props.title || _ctx.$slots.title ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$u, [
324
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$E, [
325
+ __props.title || _ctx.$slots.title ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$t, [
326
326
  vue.renderSlot(_ctx.$slots, "title", {}, () => [
327
327
  vue.createTextVNode(vue.toDisplayString(__props.title), 1)
328
328
  ], true)
@@ -335,11 +335,11 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
335
335
  }
336
336
  });
337
337
  const uCellGroup = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__scopeId", "data-v-f529bc69"]]);
338
- const _hoisted_1$E = {
338
+ const _hoisted_1$D = {
339
339
  key: 0,
340
340
  class: "u-modal__header"
341
341
  };
342
- const _hoisted_2$t = { class: "u-modal__title" };
342
+ const _hoisted_2$s = { class: "u-modal__title" };
343
343
  const _hoisted_3$m = { class: "u-modal__body" };
344
344
  const _hoisted_4$e = { class: "u-modal__message" };
345
345
  const _hoisted_5$a = { class: "u-modal__footer" };
@@ -389,8 +389,8 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
389
389
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
390
390
  }, ["stop"]))
391
391
  }, [
392
- __props.title ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$E, [
393
- vue.createElementVNode("text", _hoisted_2$t, vue.toDisplayString(__props.title), 1)
392
+ __props.title ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$D, [
393
+ vue.createElementVNode("text", _hoisted_2$s, vue.toDisplayString(__props.title), 1)
394
394
  ])) : vue.createCommentVNode("", true),
395
395
  vue.createElementVNode("view", _hoisted_3$m, [
396
396
  vue.renderSlot(_ctx.$slots, "default", {}, () => [
@@ -631,8 +631,8 @@ function getIconNames() {
631
631
  function addIcon(name, svg) {
632
632
  icons[name] = svg;
633
633
  }
634
- const _hoisted_1$D = ["src"];
635
- const _hoisted_2$s = {
634
+ const _hoisted_1$C = ["src"];
635
+ const _hoisted_2$r = {
636
636
  key: 1,
637
637
  class: "u-icon__inner"
638
638
  };
@@ -722,7 +722,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
722
722
  src: iconSrc.value,
723
723
  style: vue.normalizeStyle(svgStyle.value),
724
724
  mode: "aspectFit"
725
- }, null, 12, _hoisted_1$D)) : (vue.openBlock(), vue.createElementBlock("text", _hoisted_2$s, vue.toDisplayString(__props.name), 1))
725
+ }, null, 12, _hoisted_1$C)) : (vue.openBlock(), vue.createElementBlock("text", _hoisted_2$r, vue.toDisplayString(__props.name), 1))
726
726
  ], 6);
727
727
  };
728
728
  }
@@ -774,7 +774,7 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
774
774
  }
775
775
  });
776
776
  const uLoading = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-ce769006"]]);
777
- const _hoisted_1$C = { class: "u-tag__text" };
777
+ const _hoisted_1$B = { class: "u-tag__text" };
778
778
  const __default__$G = {
779
779
  options: {
780
780
  virtualHost: true,
@@ -814,7 +814,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
814
814
  class: vue.normalizeClass(["u-tag", [`u-tag--${__props.type}`, `u-tag--${__props.size}`, { "u-tag--plain": __props.plain, "u-tag--round": __props.round }]]),
815
815
  style: vue.normalizeStyle(tagStyle.value)
816
816
  }, [
817
- vue.createElementVNode("text", _hoisted_1$C, [
817
+ vue.createElementVNode("text", _hoisted_1$B, [
818
818
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
819
819
  ]),
820
820
  __props.closable ? (vue.openBlock(), vue.createElementBlock("view", {
@@ -895,8 +895,8 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
895
895
  }
896
896
  });
897
897
  const uSwitch = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-8922fa66"]]);
898
- const _hoisted_1$B = ["src", "mode", "lazy-load", "fade"];
899
- const _hoisted_2$r = {
898
+ const _hoisted_1$A = ["src", "mode", "lazy-load", "fade"];
899
+ const _hoisted_2$q = {
900
900
  key: 0,
901
901
  class: "u-image__loading"
902
902
  };
@@ -949,8 +949,8 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
949
949
  fade: __props.fade,
950
950
  onLoad: handleLoad,
951
951
  onError: handleError
952
- }, null, 40, _hoisted_1$B),
953
- __props.loading && !loaded.value ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$r, [
952
+ }, null, 40, _hoisted_1$A),
953
+ __props.loading && !loaded.value ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$q, [
954
954
  vue.renderSlot(_ctx.$slots, "loading", {}, () => [
955
955
  vue.createVNode(_component_u_loading, { size: 20 })
956
956
  ], true)
@@ -965,7 +965,7 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
965
965
  }
966
966
  });
967
967
  const uImage = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__scopeId", "data-v-55a4498e"]]);
968
- const _hoisted_1$A = {
968
+ const _hoisted_1$z = {
969
969
  key: 0,
970
970
  class: "u-divider__text"
971
971
  };
@@ -988,7 +988,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
988
988
  return vue.openBlock(), vue.createElementBlock("view", {
989
989
  class: vue.normalizeClass(["u-divider", { "u-divider--hairline": __props.hairline, "u-divider--dashed": __props.dashed }])
990
990
  }, [
991
- _ctx.$slots.default || __props.content ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$A, [
991
+ _ctx.$slots.default || __props.content ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$z, [
992
992
  vue.renderSlot(_ctx.$slots, "default", {}, () => [
993
993
  vue.createTextVNode(vue.toDisplayString(__props.content), 1)
994
994
  ], true)
@@ -998,11 +998,11 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
998
998
  }
999
999
  });
1000
1000
  const uDivider = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-7f88d163"]]);
1001
- const _hoisted_1$z = {
1001
+ const _hoisted_1$y = {
1002
1002
  key: 0,
1003
1003
  class: "u-notice-bar__left-icon"
1004
1004
  };
1005
- const _hoisted_2$q = { class: "u-notice-bar__text-item" };
1005
+ const _hoisted_2$p = { class: "u-notice-bar__text-item" };
1006
1006
  const _hoisted_3$k = { class: "u-notice-bar__text-item" };
1007
1007
  const _hoisted_4$d = {
1008
1008
  key: 1,
@@ -1038,7 +1038,7 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
1038
1038
  class: vue.normalizeClass(["u-notice-bar", { "u-notice-bar--wrapable": __props.wrapable }]),
1039
1039
  style: vue.normalizeStyle({ color: __props.color, background: __props.background })
1040
1040
  }, [
1041
- _ctx.$slots.leftIcon || __props.leftIcon ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$z, [
1041
+ _ctx.$slots.leftIcon || __props.leftIcon ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$y, [
1042
1042
  vue.renderSlot(_ctx.$slots, "leftIcon", {}, () => [
1043
1043
  vue.createElementVNode("text", null, vue.toDisplayString(__props.leftIcon), 1)
1044
1044
  ], true)
@@ -1051,7 +1051,7 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
1051
1051
  class: "u-notice-bar__text",
1052
1052
  style: vue.normalizeStyle({ animationDuration: __props.speed + "s" })
1053
1053
  }, [
1054
- vue.createElementVNode("text", _hoisted_2$q, vue.toDisplayString(__props.text), 1),
1054
+ vue.createElementVNode("text", _hoisted_2$p, vue.toDisplayString(__props.text), 1),
1055
1055
  vue.createElementVNode("text", _hoisted_3$k, vue.toDisplayString(__props.text), 1)
1056
1056
  ], 4)) : (vue.openBlock(), vue.createElementBlock("text", _hoisted_4$d, vue.toDisplayString(__props.text), 1))
1057
1057
  ], 2),
@@ -1069,11 +1069,11 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
1069
1069
  }
1070
1070
  });
1071
1071
  const uNoticeBar = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-f80a744d"]]);
1072
- const _hoisted_1$y = {
1072
+ const _hoisted_1$x = {
1073
1073
  key: 0,
1074
1074
  class: "u-layout__header"
1075
1075
  };
1076
- const _hoisted_2$p = { class: "u-layout__content" };
1076
+ const _hoisted_2$o = { class: "u-layout__content" };
1077
1077
  const _hoisted_3$j = {
1078
1078
  key: 1,
1079
1079
  class: "u-layout__footer"
@@ -1094,10 +1094,10 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
1094
1094
  return vue.openBlock(), vue.createElementBlock("view", {
1095
1095
  class: vue.normalizeClass(["u-layout", { "u-layout--has-footer": hasFooter.value }])
1096
1096
  }, [
1097
- _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$y, [
1097
+ _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$x, [
1098
1098
  vue.renderSlot(_ctx.$slots, "header", {}, void 0, true)
1099
1099
  ])) : vue.createCommentVNode("", true),
1100
- vue.createElementVNode("view", _hoisted_2$p, [
1100
+ vue.createElementVNode("view", _hoisted_2$o, [
1101
1101
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
1102
1102
  ]),
1103
1103
  _ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_3$j, [
@@ -1108,7 +1108,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
1108
1108
  }
1109
1109
  });
1110
1110
  const uLayout = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-1682e77a"]]);
1111
- const _hoisted_1$x = {
1111
+ const _hoisted_1$w = {
1112
1112
  key: 0,
1113
1113
  class: "u-badge__text"
1114
1114
  };
@@ -1164,18 +1164,18 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
1164
1164
  class: vue.normalizeClass(["u-badge__content", [`u-badge__content--${__props.type}`, { "u-badge__content--dot": __props.dot, "u-badge__content--alone": !_ctx.$slots.default }]]),
1165
1165
  style: vue.normalizeStyle(badgeStyle.value)
1166
1166
  }, [
1167
- !__props.dot && displayValue.value ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_1$x, vue.toDisplayString(displayValue.value), 1)) : vue.createCommentVNode("", true)
1167
+ !__props.dot && displayValue.value ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_1$w, vue.toDisplayString(displayValue.value), 1)) : vue.createCommentVNode("", true)
1168
1168
  ], 6)) : vue.createCommentVNode("", true)
1169
1169
  ], 2);
1170
1170
  };
1171
1171
  }
1172
1172
  });
1173
1173
  const uBadge = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-56dd42ed"]]);
1174
- const _hoisted_1$w = {
1174
+ const _hoisted_1$v = {
1175
1175
  key: 0,
1176
1176
  class: "u-loading-page"
1177
1177
  };
1178
- const _hoisted_2$o = { class: "u-loading-page__content" };
1178
+ const _hoisted_2$n = { class: "u-loading-page__content" };
1179
1179
  const __default__$z = {
1180
1180
  options: {
1181
1181
  virtualHost: true,
@@ -1194,8 +1194,8 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
1194
1194
  },
1195
1195
  setup(__props) {
1196
1196
  return (_ctx, _cache) => {
1197
- return __props.visible ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$w, [
1198
- vue.createElementVNode("view", _hoisted_2$o, [
1197
+ return __props.visible ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$v, [
1198
+ vue.createElementVNode("view", _hoisted_2$n, [
1199
1199
  vue.createElementVNode("view", {
1200
1200
  class: "u-loading-page__spinner",
1201
1201
  style: vue.normalizeStyle({ width: __props.size + "px", height: __props.size + "px" })
@@ -1222,7 +1222,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
1222
1222
  }
1223
1223
  });
1224
1224
  const uLoadingPage = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-ddf92cf6"]]);
1225
- const _hoisted_1$v = { class: "u-parse" };
1225
+ const _hoisted_1$u = { class: "u-parse" };
1226
1226
  const __default__$y = {
1227
1227
  options: {
1228
1228
  virtualHost: true,
@@ -1328,7 +1328,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
1328
1328
  };
1329
1329
  return (_ctx, _cache) => {
1330
1330
  const _component_rich_text = vue.resolveComponent("rich-text");
1331
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$v, [
1331
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$u, [
1332
1332
  vue.createVNode(_component_rich_text, {
1333
1333
  nodes: parsedNodes.value,
1334
1334
  selectable: __props.selectable,
@@ -1340,8 +1340,8 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
1340
1340
  }
1341
1341
  });
1342
1342
  const uParse = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-5361245b"]]);
1343
- const _hoisted_1$u = { class: "u-keyboard__header" };
1344
- const _hoisted_2$n = { class: "u-keyboard__title" };
1343
+ const _hoisted_1$t = { class: "u-keyboard__header" };
1344
+ const _hoisted_2$m = { class: "u-keyboard__title" };
1345
1345
  const _hoisted_3$i = ["onClick"];
1346
1346
  const __default__$x = {
1347
1347
  options: {
@@ -1472,8 +1472,8 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
1472
1472
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
1473
1473
  }, ["stop"]))
1474
1474
  }, [
1475
- vue.createElementVNode("view", _hoisted_1$u, [
1476
- vue.createElementVNode("text", _hoisted_2$n, vue.toDisplayString(__props.title), 1),
1475
+ vue.createElementVNode("view", _hoisted_1$t, [
1476
+ vue.createElementVNode("text", _hoisted_2$m, vue.toDisplayString(__props.title), 1),
1477
1477
  vue.createElementVNode("text", {
1478
1478
  class: "u-keyboard__close",
1479
1479
  onClick: handleClose
@@ -1501,8 +1501,8 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
1501
1501
  }
1502
1502
  });
1503
1503
  const uKeyboard = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-b318be29"]]);
1504
- const _hoisted_1$t = { class: "u-picker__toolbar" };
1505
- const _hoisted_2$m = { class: "u-picker__title" };
1504
+ const _hoisted_1$s = { class: "u-picker__toolbar" };
1505
+ const _hoisted_2$l = { class: "u-picker__title" };
1506
1506
  const _hoisted_3$h = {
1507
1507
  key: 0,
1508
1508
  class: "u-picker__loading"
@@ -1599,12 +1599,12 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
1599
1599
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
1600
1600
  }, ["stop"]))
1601
1601
  }, [
1602
- vue.createElementVNode("view", _hoisted_1$t, [
1602
+ vue.createElementVNode("view", _hoisted_1$s, [
1603
1603
  vue.createElementVNode("text", {
1604
1604
  class: "u-picker__action",
1605
1605
  onClick: handleCancel
1606
1606
  }, "取消"),
1607
- vue.createElementVNode("text", _hoisted_2$m, vue.toDisplayString(__props.title), 1),
1607
+ vue.createElementVNode("text", _hoisted_2$l, vue.toDisplayString(__props.title), 1),
1608
1608
  vue.createElementVNode("text", {
1609
1609
  class: "u-picker__action u-picker__action--confirm",
1610
1610
  onClick: handleConfirm
@@ -1644,8 +1644,8 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
1644
1644
  }
1645
1645
  });
1646
1646
  const uPicker = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-54bd44d7"]]);
1647
- const _hoisted_1$s = { class: "u-datetime-picker__toolbar" };
1648
- const _hoisted_2$l = { class: "u-datetime-picker__title" };
1647
+ const _hoisted_1$r = { class: "u-datetime-picker__toolbar" };
1648
+ const _hoisted_2$k = { class: "u-datetime-picker__title" };
1649
1649
  const __default__$v = {
1650
1650
  options: {
1651
1651
  virtualHost: true,
@@ -1873,12 +1873,12 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
1873
1873
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
1874
1874
  }, ["stop"]))
1875
1875
  }, [
1876
- vue.createElementVNode("view", _hoisted_1$s, [
1876
+ vue.createElementVNode("view", _hoisted_1$r, [
1877
1877
  vue.createElementVNode("text", {
1878
1878
  class: "u-datetime-picker__action",
1879
1879
  onClick: handleCancel
1880
1880
  }, "取消"),
1881
- vue.createElementVNode("text", _hoisted_2$l, vue.toDisplayString(__props.title), 1),
1881
+ vue.createElementVNode("text", _hoisted_2$k, vue.toDisplayString(__props.title), 1),
1882
1882
  vue.createElementVNode("text", {
1883
1883
  class: "u-datetime-picker__action u-datetime-picker__action--confirm",
1884
1884
  onClick: handleConfirm
@@ -1915,7 +1915,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
1915
1915
  }
1916
1916
  });
1917
1917
  const uDatetimePicker = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-45acbf1d"]]);
1918
- const _hoisted_1$r = ["onClick"];
1918
+ const _hoisted_1$q = ["onClick"];
1919
1919
  const __default__$u = {
1920
1920
  options: {
1921
1921
  virtualHost: true,
@@ -2021,14 +2021,14 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
2021
2021
  style: vue.normalizeStyle(activeStyle.value)
2022
2022
  }, "★", 4)
2023
2023
  ], 4)
2024
- ], 12, _hoisted_1$r);
2024
+ ], 12, _hoisted_1$q);
2025
2025
  }), 128))
2026
2026
  ], 2);
2027
2027
  };
2028
2028
  }
2029
2029
  });
2030
2030
  const uRate = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-62d85215"]]);
2031
- const _hoisted_1$q = { class: "u-grid" };
2031
+ const _hoisted_1$p = { class: "u-grid" };
2032
2032
  const __default__$t = {
2033
2033
  options: {
2034
2034
  virtualHost: true,
@@ -2065,18 +2065,18 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
2065
2065
  onItemClick
2066
2066
  });
2067
2067
  return (_ctx, _cache) => {
2068
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$q, [
2068
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$p, [
2069
2069
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
2070
2070
  ]);
2071
2071
  };
2072
2072
  }
2073
2073
  });
2074
2074
  const uGrid = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-d005bea6"]]);
2075
- const _hoisted_1$p = {
2075
+ const _hoisted_1$o = {
2076
2076
  key: 0,
2077
2077
  class: "u-grid-item__icon"
2078
2078
  };
2079
- const _hoisted_2$k = ["src"];
2079
+ const _hoisted_2$j = ["src"];
2080
2080
  const _hoisted_3$g = {
2081
2081
  key: 1,
2082
2082
  class: "u-grid-item__icon-text"
@@ -2145,14 +2145,14 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
2145
2145
  style: vue.normalizeStyle(itemStyle.value),
2146
2146
  onClick: handleClick
2147
2147
  }, [
2148
- _ctx.$slots.icon || __props.icon || __props.iconUrl ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$p, [
2148
+ _ctx.$slots.icon || __props.icon || __props.iconUrl ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$o, [
2149
2149
  vue.renderSlot(_ctx.$slots, "icon", {}, () => [
2150
2150
  __props.iconUrl ? (vue.openBlock(), vue.createElementBlock("image", {
2151
2151
  key: 0,
2152
2152
  class: "u-grid-item__icon-image",
2153
2153
  src: __props.iconUrl,
2154
2154
  mode: "aspectFit"
2155
- }, null, 8, _hoisted_2$k)) : __props.icon ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_3$g, vue.toDisplayString(__props.icon), 1)) : vue.createCommentVNode("", true)
2155
+ }, null, 8, _hoisted_2$j)) : __props.icon ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_3$g, vue.toDisplayString(__props.icon), 1)) : vue.createCommentVNode("", true)
2156
2156
  ], true),
2157
2157
  __props.badge !== void 0 && __props.badge !== null && __props.badge !== "" ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_4$c, [
2158
2158
  vue.createElementVNode("text", _hoisted_5$9, vue.toDisplayString(__props.badge), 1)
@@ -2168,8 +2168,8 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
2168
2168
  }
2169
2169
  });
2170
2170
  const uGridItem = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-de6f40c1"]]);
2171
- const _hoisted_1$o = { class: "u-swiper" };
2172
- const _hoisted_2$j = {
2171
+ const _hoisted_1$n = { class: "u-swiper" };
2172
+ const _hoisted_2$i = {
2173
2173
  key: 0,
2174
2174
  class: "u-swiper__loading"
2175
2175
  };
@@ -2281,7 +2281,7 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
2281
2281
  });
2282
2282
  return (_ctx, _cache) => {
2283
2283
  const _component_swiper = vue.resolveComponent("swiper");
2284
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$o, [
2284
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$n, [
2285
2285
  vue.createVNode(_component_swiper, {
2286
2286
  class: "u-swiper__wrapper",
2287
2287
  style: vue.normalizeStyle({ height: swiperHeight.value }),
@@ -2300,7 +2300,7 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
2300
2300
  ]),
2301
2301
  _: 3
2302
2302
  }, 8, ["style", "autoplay", "interval", "duration", "circular", "vertical", "current"]),
2303
- __props.loading ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$j, [..._cache[0] || (_cache[0] = [
2303
+ __props.loading ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$i, [..._cache[0] || (_cache[0] = [
2304
2304
  vue.createElementVNode("view", { class: "u-swiper__loading-icon" }, null, -1)
2305
2305
  ])])) : vue.createCommentVNode("", true),
2306
2306
  __props.showTitle && currentTitle.value ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_3$f, [
@@ -2383,11 +2383,11 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
2383
2383
  }
2384
2384
  });
2385
2385
  const uSwiperItem = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-ef481687"]]);
2386
- const _hoisted_1$n = {
2386
+ const _hoisted_1$m = {
2387
2387
  key: 0,
2388
2388
  class: "u-search__icon"
2389
2389
  };
2390
- const _hoisted_2$i = { class: "u-search__body" };
2390
+ const _hoisted_2$h = { class: "u-search__body" };
2391
2391
  const _hoisted_3$e = ["type", "value", "placeholder", "placeholder-style", "disabled", "maxlength", "focus", "confirm-type", "adjust-position"];
2392
2392
  const _hoisted_4$a = { class: "u-search__action-text" };
2393
2393
  const __default__$p = {
@@ -2469,10 +2469,10 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
2469
2469
  class: "u-search__content",
2470
2470
  style: vue.normalizeStyle(contentStyle.value)
2471
2471
  }, [
2472
- __props.showSearchIcon ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$n, [..._cache[0] || (_cache[0] = [
2472
+ __props.showSearchIcon ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$m, [..._cache[0] || (_cache[0] = [
2473
2473
  vue.createElementVNode("text", { class: "u-search__icon-text" }, "🔍", -1)
2474
2474
  ])])) : vue.createCommentVNode("", true),
2475
- vue.createElementVNode("view", _hoisted_2$i, [
2475
+ vue.createElementVNode("view", _hoisted_2$h, [
2476
2476
  vue.createElementVNode("input", {
2477
2477
  class: "u-search__control",
2478
2478
  type: __props.type,
@@ -2513,7 +2513,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
2513
2513
  }
2514
2514
  });
2515
2515
  const uSearch = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-223b845c"]]);
2516
- const _hoisted_1$m = ["type", "value", "disabled"];
2516
+ const _hoisted_1$l = ["type", "value", "disabled"];
2517
2517
  const __default__$o = {
2518
2518
  options: {
2519
2519
  virtualHost: true,
@@ -2661,7 +2661,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
2661
2661
  onInput: handleInput,
2662
2662
  onBlur: handleBlur,
2663
2663
  onFocus: handleFocus
2664
- }, null, 46, _hoisted_1$m),
2664
+ }, null, 46, _hoisted_1$l),
2665
2665
  vue.createElementVNode("view", {
2666
2666
  class: vue.normalizeClass(["u-number-box__btn u-number-box__btn--plus", {
2667
2667
  "u-number-box__btn--disabled": plusDisabled.value
@@ -2679,8 +2679,8 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
2679
2679
  }
2680
2680
  });
2681
2681
  const uNumberBox = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-86153bb8"]]);
2682
- const _hoisted_1$l = { class: "u-upload" };
2683
- const _hoisted_2$h = { class: "u-upload__list" };
2682
+ const _hoisted_1$k = { class: "u-upload" };
2683
+ const _hoisted_2$g = { class: "u-upload__list" };
2684
2684
  const _hoisted_3$d = ["src", "onClick"];
2685
2685
  const _hoisted_4$9 = {
2686
2686
  key: 1,
@@ -2810,8 +2810,8 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
2810
2810
  fileList
2811
2811
  });
2812
2812
  return (_ctx, _cache) => {
2813
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$l, [
2814
- vue.createElementVNode("view", _hoisted_2$h, [
2813
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$k, [
2814
+ vue.createElementVNode("view", _hoisted_2$g, [
2815
2815
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(fileList.value, (file, index) => {
2816
2816
  return vue.openBlock(), vue.createElementBlock("view", {
2817
2817
  key: index,
@@ -2882,8 +2882,8 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
2882
2882
  }
2883
2883
  });
2884
2884
  const uUpload = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-172bcb23"]]);
2885
- const _hoisted_1$k = ["value", "placeholder", "placeholder-style", "disabled", "maxlength", "focus", "auto-height", "fixed", "cursor-spacing", "show-confirm-bar", "adjust-position"];
2886
- const _hoisted_2$g = {
2885
+ const _hoisted_1$j = ["value", "placeholder", "placeholder-style", "disabled", "maxlength", "focus", "auto-height", "fixed", "cursor-spacing", "show-confirm-bar", "adjust-position"];
2886
+ const _hoisted_2$f = {
2887
2887
  key: 0,
2888
2888
  class: "u-textarea__limit"
2889
2889
  };
@@ -2974,8 +2974,8 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
2974
2974
  onBlur: handleBlur,
2975
2975
  onConfirm: handleConfirm,
2976
2976
  onLinechange: handleLineChange
2977
- }, null, 44, _hoisted_1$k),
2978
- __props.showWordLimit && __props.maxlength ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$g, [
2977
+ }, null, 44, _hoisted_1$j),
2978
+ __props.showWordLimit && __props.maxlength ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$f, [
2979
2979
  vue.createElementVNode("text", _hoisted_3$c, vue.toDisplayString(currentLength.value) + "/" + vue.toDisplayString(__props.maxlength), 1)
2980
2980
  ])) : vue.createCommentVNode("", true)
2981
2981
  ], 2);
@@ -2983,11 +2983,11 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
2983
2983
  }
2984
2984
  });
2985
2985
  const uTextarea = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-82478b77"]]);
2986
- const _hoisted_1$j = {
2986
+ const _hoisted_1$i = {
2987
2987
  key: 0,
2988
2988
  class: "u-slider__min"
2989
2989
  };
2990
- const _hoisted_2$f = { class: "u-slider__label" };
2990
+ const _hoisted_2$e = { class: "u-slider__label" };
2991
2991
  const _hoisted_3$b = {
2992
2992
  key: 0,
2993
2993
  class: "u-slider__tooltip"
@@ -3232,8 +3232,8 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
3232
3232
  "u-slider--disabled": __props.disabled
3233
3233
  }])
3234
3234
  }, [
3235
- __props.showMinMax ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$j, [
3236
- vue.createElementVNode("text", _hoisted_2$f, vue.toDisplayString(__props.min), 1)
3235
+ __props.showMinMax ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$i, [
3236
+ vue.createElementVNode("text", _hoisted_2$e, vue.toDisplayString(__props.min), 1)
3237
3237
  ])) : vue.createCommentVNode("", true),
3238
3238
  vue.createElementVNode("view", {
3239
3239
  class: "u-slider__track",
@@ -3302,8 +3302,8 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
3302
3302
  }
3303
3303
  });
3304
3304
  const uSlider = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-c099c413"]]);
3305
- const _hoisted_1$i = { class: "u-list" };
3306
- const _hoisted_2$e = {
3305
+ const _hoisted_1$h = { class: "u-list" };
3306
+ const _hoisted_2$d = {
3307
3307
  key: 0,
3308
3308
  class: "u-list__header"
3309
3309
  };
@@ -3353,8 +3353,8 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
3353
3353
  emit("load");
3354
3354
  };
3355
3355
  return (_ctx, _cache) => {
3356
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$i, [
3357
- _ctx.$slots.header || __props.header ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$e, [
3356
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$h, [
3357
+ _ctx.$slots.header || __props.header ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$d, [
3358
3358
  vue.renderSlot(_ctx.$slots, "header", {}, () => [
3359
3359
  vue.createTextVNode(vue.toDisplayString(__props.header), 1)
3360
3360
  ], true)
@@ -3386,11 +3386,11 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
3386
3386
  }
3387
3387
  });
3388
3388
  const uList = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-6d331927"]]);
3389
- const _hoisted_1$h = {
3389
+ const _hoisted_1$g = {
3390
3390
  key: 0,
3391
3391
  class: "u-list-item__icon"
3392
3392
  };
3393
- const _hoisted_2$d = ["src"];
3393
+ const _hoisted_2$c = ["src"];
3394
3394
  const _hoisted_3$9 = {
3395
3395
  key: 1,
3396
3396
  class: "u-list-item__icon-text"
@@ -3460,14 +3460,14 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
3460
3460
  }]),
3461
3461
  onClick: handleClick
3462
3462
  }, [
3463
- _ctx.$slots.icon || __props.icon || __props.thumb ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$h, [
3463
+ _ctx.$slots.icon || __props.icon || __props.thumb ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$g, [
3464
3464
  vue.renderSlot(_ctx.$slots, "icon", {}, () => [
3465
3465
  __props.thumb ? (vue.openBlock(), vue.createElementBlock("image", {
3466
3466
  key: 0,
3467
3467
  class: "u-list-item__thumb",
3468
3468
  src: __props.thumb,
3469
3469
  mode: "aspectFill"
3470
- }, null, 8, _hoisted_2$d)) : __props.icon ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_3$9, vue.toDisplayString(__props.icon), 1)) : vue.createCommentVNode("", true)
3470
+ }, null, 8, _hoisted_2$c)) : __props.icon ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_3$9, vue.toDisplayString(__props.icon), 1)) : vue.createCommentVNode("", true)
3471
3471
  ], true)
3472
3472
  ])) : vue.createCommentVNode("", true),
3473
3473
  vue.createElementVNode("view", _hoisted_4$6, [
@@ -3499,11 +3499,11 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
3499
3499
  }
3500
3500
  });
3501
3501
  const uListItem = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-8c31b17c"]]);
3502
- const _hoisted_1$g = {
3502
+ const _hoisted_1$f = {
3503
3503
  key: 0,
3504
3504
  class: "u-line-progress__text u-line-progress__text--inside"
3505
3505
  };
3506
- const _hoisted_2$c = {
3506
+ const _hoisted_2$b = {
3507
3507
  key: 0,
3508
3508
  class: "u-line-progress__text"
3509
3509
  };
@@ -3572,16 +3572,16 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
3572
3572
  }]),
3573
3573
  style: vue.normalizeStyle(barStyle.value)
3574
3574
  }, [
3575
- __props.showText && __props.textInside && __props.percentage <= 100 ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_1$g, vue.toDisplayString(textContent.value), 1)) : vue.createCommentVNode("", true)
3575
+ __props.showText && __props.textInside && __props.percentage <= 100 ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_1$f, vue.toDisplayString(textContent.value), 1)) : vue.createCommentVNode("", true)
3576
3576
  ], 6)
3577
3577
  ], 4),
3578
- __props.showText && !__props.textInside ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_2$c, vue.toDisplayString(textContent.value), 1)) : vue.createCommentVNode("", true)
3578
+ __props.showText && !__props.textInside ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_2$b, vue.toDisplayString(textContent.value), 1)) : vue.createCommentVNode("", true)
3579
3579
  ], 4);
3580
3580
  };
3581
3581
  }
3582
3582
  });
3583
3583
  const uLineProgress = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-99121563"]]);
3584
- const _hoisted_1$f = { class: "u-count-down" };
3584
+ const _hoisted_1$e = { class: "u-count-down" };
3585
3585
  const __default__$h = {
3586
3586
  options: {
3587
3587
  virtualHost: true,
@@ -3704,7 +3704,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
3704
3704
  timeData
3705
3705
  });
3706
3706
  return (_ctx, _cache) => {
3707
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$f, [
3707
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$e, [
3708
3708
  vue.renderSlot(_ctx.$slots, "default", {
3709
3709
  time: timeData.value,
3710
3710
  current: current.value
@@ -3719,8 +3719,8 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
3719
3719
  }
3720
3720
  });
3721
3721
  const uCountDown = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-da70e500"]]);
3722
- const _hoisted_1$e = { class: "u-tooltip__content" };
3723
- const _hoisted_2$b = {
3722
+ const _hoisted_1$d = { class: "u-tooltip__content" };
3723
+ const _hoisted_2$a = {
3724
3724
  key: 0,
3725
3725
  class: "u-tooltip__actions"
3726
3726
  };
@@ -3897,8 +3897,8 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
3897
3897
  vue.createElementVNode("view", {
3898
3898
  class: vue.normalizeClass(["u-tooltip__arrow", `u-tooltip__arrow--${actualPlacement.value}`])
3899
3899
  }, null, 2),
3900
- vue.createElementVNode("view", _hoisted_1$e, [
3901
- __props.actions.length ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$b, [
3900
+ vue.createElementVNode("view", _hoisted_1$d, [
3901
+ __props.actions.length ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$a, [
3902
3902
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.actions, (action, index) => {
3903
3903
  return vue.openBlock(), vue.createElementBlock("view", {
3904
3904
  key: index,
@@ -3918,8 +3918,8 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
3918
3918
  }
3919
3919
  });
3920
3920
  const uTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-dd1bff02"]]);
3921
- const _hoisted_1$d = ["src"];
3922
- const _hoisted_2$a = {
3921
+ const _hoisted_1$c = ["src"];
3922
+ const _hoisted_2$9 = {
3923
3923
  key: 1,
3924
3924
  class: "u-avatar__text"
3925
3925
  };
@@ -4017,7 +4017,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
4017
4017
  src: __props.src,
4018
4018
  mode: "aspectFill",
4019
4019
  onError: handleError
4020
- }, null, 40, _hoisted_1$d)) : __props.text ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_2$a, vue.toDisplayString(displayText.value), 1)) : (vue.openBlock(), vue.createElementBlock("text", _hoisted_3$7, vue.toDisplayString(__props.icon || "👤"), 1))
4020
+ }, null, 40, _hoisted_1$c)) : __props.text ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_2$9, vue.toDisplayString(displayText.value), 1)) : (vue.openBlock(), vue.createElementBlock("text", _hoisted_3$7, vue.toDisplayString(__props.icon || "👤"), 1))
4021
4021
  ], true),
4022
4022
  __props.badge && !badgeSlot.value ? (vue.openBlock(), vue.createElementBlock("view", {
4023
4023
  key: 0,
@@ -4031,8 +4031,8 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
4031
4031
  }
4032
4032
  });
4033
4033
  const uAvatar = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-10f478fe"]]);
4034
- const _hoisted_1$c = { class: "u-empty__image" };
4035
- const _hoisted_2$9 = ["src"];
4034
+ const _hoisted_1$b = { class: "u-empty__image" };
4035
+ const _hoisted_2$8 = ["src"];
4036
4036
  const _hoisted_3$6 = {
4037
4037
  key: 1,
4038
4038
  class: "u-empty__image-default"
@@ -4064,14 +4064,14 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
4064
4064
  return vue.openBlock(), vue.createElementBlock("view", {
4065
4065
  class: vue.normalizeClass(["u-empty", { "u-empty--inline": __props.inline }])
4066
4066
  }, [
4067
- vue.createElementVNode("view", _hoisted_1$c, [
4067
+ vue.createElementVNode("view", _hoisted_1$b, [
4068
4068
  vue.renderSlot(_ctx.$slots, "image", {}, () => [
4069
4069
  __props.image ? (vue.openBlock(), vue.createElementBlock("image", {
4070
4070
  key: 0,
4071
4071
  class: "u-empty__image-src",
4072
4072
  src: __props.image,
4073
4073
  mode: "aspectFit"
4074
- }, null, 8, _hoisted_2$9)) : (vue.openBlock(), vue.createElementBlock("view", _hoisted_3$6, [..._cache[0] || (_cache[0] = [
4074
+ }, null, 8, _hoisted_2$8)) : (vue.openBlock(), vue.createElementBlock("view", _hoisted_3$6, [..._cache[0] || (_cache[0] = [
4075
4075
  vue.createElementVNode("text", { class: "u-empty__icon" }, "📭", -1)
4076
4076
  ])]))
4077
4077
  ], true)
@@ -4089,11 +4089,11 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
4089
4089
  }
4090
4090
  });
4091
4091
  const uEmpty = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-853e089d"]]);
4092
- const _hoisted_1$b = {
4092
+ const _hoisted_1$a = {
4093
4093
  key: 0,
4094
4094
  class: "u-checkbox__check"
4095
4095
  };
4096
- const _hoisted_2$8 = {
4096
+ const _hoisted_2$7 = {
4097
4097
  key: 0,
4098
4098
  class: "u-checkbox__label"
4099
4099
  };
@@ -4172,9 +4172,9 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
4172
4172
  class: vue.normalizeClass(["u-checkbox__icon", iconClass.value]),
4173
4173
  style: vue.normalizeStyle(iconStyle.value)
4174
4174
  }, [
4175
- checked.value ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_1$b, "✓")) : vue.createCommentVNode("", true)
4175
+ checked.value ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_1$a, "✓")) : vue.createCommentVNode("", true)
4176
4176
  ], 6),
4177
- __props.label || _ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$8, [
4177
+ __props.label || _ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$7, [
4178
4178
  vue.renderSlot(_ctx.$slots, "default", {}, () => [
4179
4179
  vue.createTextVNode(vue.toDisplayString(__props.label), 1)
4180
4180
  ], true)
@@ -4184,7 +4184,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
4184
4184
  }
4185
4185
  });
4186
4186
  const uCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-6f3ea0c6"]]);
4187
- const _hoisted_1$a = { class: "u-checkbox-group" };
4187
+ const _hoisted_1$9 = { class: "u-checkbox-group" };
4188
4188
  const __default__$c = {
4189
4189
  options: {
4190
4190
  virtualHost: true,
@@ -4227,18 +4227,18 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
4227
4227
  toggle
4228
4228
  });
4229
4229
  return (_ctx, _cache) => {
4230
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$a, [
4230
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$9, [
4231
4231
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
4232
4232
  ]);
4233
4233
  };
4234
4234
  }
4235
4235
  });
4236
4236
  const uCheckboxGroup = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-4e51c49e"]]);
4237
- const _hoisted_1$9 = {
4237
+ const _hoisted_1$8 = {
4238
4238
  key: 0,
4239
4239
  class: "u-radio__dot"
4240
4240
  };
4241
- const _hoisted_2$7 = {
4241
+ const _hoisted_2$6 = {
4242
4242
  key: 0,
4243
4243
  class: "u-radio__label"
4244
4244
  };
@@ -4314,9 +4314,9 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
4314
4314
  class: vue.normalizeClass(["u-radio__icon", iconClass.value]),
4315
4315
  style: vue.normalizeStyle(iconStyle.value)
4316
4316
  }, [
4317
- checked.value ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$9)) : vue.createCommentVNode("", true)
4317
+ checked.value ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$8)) : vue.createCommentVNode("", true)
4318
4318
  ], 6),
4319
- __props.label || _ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$7, [
4319
+ __props.label || _ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$6, [
4320
4320
  vue.renderSlot(_ctx.$slots, "default", {}, () => [
4321
4321
  vue.createTextVNode(vue.toDisplayString(__props.label), 1)
4322
4322
  ], true)
@@ -4326,7 +4326,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
4326
4326
  }
4327
4327
  });
4328
4328
  const uRadio = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-3b4f8627"]]);
4329
- const _hoisted_1$8 = { class: "u-radio-group" };
4329
+ const _hoisted_1$7 = { class: "u-radio-group" };
4330
4330
  const __default__$a = {
4331
4331
  options: {
4332
4332
  virtualHost: true,
@@ -4360,15 +4360,15 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
4360
4360
  select
4361
4361
  });
4362
4362
  return (_ctx, _cache) => {
4363
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$8, [
4363
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$7, [
4364
4364
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
4365
4365
  ]);
4366
4366
  };
4367
4367
  }
4368
4368
  });
4369
4369
  const uRadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-04ea4949"]]);
4370
- const _hoisted_1$7 = { class: "u-toast__content" };
4371
- const _hoisted_2$6 = {
4370
+ const _hoisted_1$6 = { class: "u-toast__content" };
4371
+ const _hoisted_2$5 = {
4372
4372
  key: 0,
4373
4373
  class: "u-toast__loading"
4374
4374
  };
@@ -4451,8 +4451,8 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
4451
4451
  class: vue.normalizeClass(["u-toast", toastClass.value]),
4452
4452
  style: vue.normalizeStyle(toastStyle.value)
4453
4453
  }, [
4454
- vue.createElementVNode("view", _hoisted_1$7, [
4455
- __props.type === "loading" ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$6, [..._cache[0] || (_cache[0] = [
4454
+ vue.createElementVNode("view", _hoisted_1$6, [
4455
+ __props.type === "loading" ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_2$5, [..._cache[0] || (_cache[0] = [
4456
4456
  vue.createElementVNode("view", { class: "u-toast__loading-icon" }, null, -1)
4457
4457
  ])])) : __props.icon ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_3$5, vue.toDisplayString(__props.icon), 1)) : vue.createCommentVNode("", true),
4458
4458
  __props.message ? (vue.openBlock(), vue.createElementBlock("text", _hoisted_4$2, vue.toDisplayString(__props.message), 1)) : vue.createCommentVNode("", true)
@@ -4462,7 +4462,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
4462
4462
  }
4463
4463
  });
4464
4464
  const uToast = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-ffefead4"]]);
4465
- const _hoisted_1$6 = {
4465
+ const _hoisted_1$5 = {
4466
4466
  key: 0,
4467
4467
  class: "u-popup"
4468
4468
  };
@@ -4497,7 +4497,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
4497
4497
  emit("close");
4498
4498
  };
4499
4499
  return (_ctx, _cache) => {
4500
- return __props.visible ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$6, [
4500
+ return __props.visible ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$5, [
4501
4501
  vue.createElementVNode("view", {
4502
4502
  class: "u-popup__overlay",
4503
4503
  onClick: handleOverlayClick
@@ -4519,8 +4519,8 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
4519
4519
  }
4520
4520
  });
4521
4521
  const uPopup = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-dc430e12"]]);
4522
- const _hoisted_1$5 = { class: "u-code-input" };
4523
- const _hoisted_2$5 = { class: "u-code-input__wrapper" };
4522
+ const _hoisted_1$4 = { class: "u-code-input" };
4523
+ const _hoisted_2$4 = { class: "u-code-input__wrapper" };
4524
4524
  const _hoisted_3$4 = {
4525
4525
  key: 0,
4526
4526
  class: "u-code-input__char"
@@ -4618,8 +4618,8 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
4618
4618
  emit("blur");
4619
4619
  };
4620
4620
  return (_ctx, _cache) => {
4621
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$5, [
4622
- vue.createElementVNode("view", _hoisted_2$5, [
4621
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$4, [
4622
+ vue.createElementVNode("view", _hoisted_2$4, [
4623
4623
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.length, (i) => {
4624
4624
  return vue.openBlock(), vue.createElementBlock("view", {
4625
4625
  key: i,
@@ -4648,11 +4648,11 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
4648
4648
  }
4649
4649
  });
4650
4650
  const uCodeInput = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-9fffa23f"]]);
4651
- const _hoisted_1$4 = {
4651
+ const _hoisted_1$3 = {
4652
4652
  key: 0,
4653
4653
  class: "u-skeleton__content"
4654
4654
  };
4655
- const _hoisted_2$4 = { class: "u-skeleton__content" };
4655
+ const _hoisted_2$3 = { class: "u-skeleton__content" };
4656
4656
  const _hoisted_3$3 = { class: "u-skeleton__paragraphs" };
4657
4657
  const __default__$6 = {
4658
4658
  options: {
@@ -4714,7 +4714,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
4714
4714
  return style;
4715
4715
  };
4716
4716
  return (_ctx, _cache) => {
4717
- return !__props.loading ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$4, [
4717
+ return !__props.loading ? (vue.openBlock(), vue.createElementBlock("view", _hoisted_1$3, [
4718
4718
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
4719
4719
  ])) : (vue.openBlock(), vue.createElementBlock("view", {
4720
4720
  key: 1,
@@ -4725,7 +4725,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
4725
4725
  class: vue.normalizeClass(["u-skeleton__avatar", `u-skeleton__avatar--${__props.avatarShape}`]),
4726
4726
  style: vue.normalizeStyle(avatarStyle.value)
4727
4727
  }, null, 6)) : vue.createCommentVNode("", true),
4728
- vue.createElementVNode("view", _hoisted_2$4, [
4728
+ vue.createElementVNode("view", _hoisted_2$3, [
4729
4729
  __props.title ? (vue.openBlock(), vue.createElementBlock("view", {
4730
4730
  key: 0,
4731
4731
  class: "u-skeleton__title",
@@ -4879,8 +4879,8 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
4879
4879
  }
4880
4880
  });
4881
4881
  const uLink = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-f60d6c27"]]);
4882
- const _hoisted_1$3 = { class: "u-read-more" };
4883
- const _hoisted_2$3 = { class: "u-read-more__toggle-text" };
4882
+ const _hoisted_1$2 = { class: "u-read-more" };
4883
+ const _hoisted_2$2 = { class: "u-read-more__toggle-text" };
4884
4884
  const _hoisted_3$2 = { class: "u-read-more__toggle-icon" };
4885
4885
  const __default__$3 = {
4886
4886
  options: {
@@ -4928,7 +4928,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
4928
4928
  }
4929
4929
  };
4930
4930
  return (_ctx, _cache) => {
4931
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$3, [
4931
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$2, [
4932
4932
  vue.createElementVNode("view", {
4933
4933
  class: "u-read-more__content",
4934
4934
  style: vue.normalizeStyle(contentStyle.value)
@@ -4940,7 +4940,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
4940
4940
  class: "u-read-more__toggle",
4941
4941
  onClick: handleToggle
4942
4942
  }, [
4943
- vue.createElementVNode("text", _hoisted_2$3, vue.toDisplayString(toggleText.value), 1),
4943
+ vue.createElementVNode("text", _hoisted_2$2, vue.toDisplayString(toggleText.value), 1),
4944
4944
  vue.createElementVNode("text", _hoisted_3$2, vue.toDisplayString(expanded.value ? "↑" : "↓"), 1)
4945
4945
  ])) : vue.createCommentVNode("", true)
4946
4946
  ]);
@@ -4948,8 +4948,8 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
4948
4948
  }
4949
4949
  });
4950
4950
  const uReadMore = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-b31720eb"]]);
4951
- const _hoisted_1$2 = { class: "u-tabbar" };
4952
- const _hoisted_2$2 = { class: "u-tabbar__nav-wrap" };
4951
+ const _hoisted_1$1 = { class: "u-tabbar" };
4952
+ const _hoisted_2$1 = { class: "u-tabbar__nav-wrap" };
4953
4953
  const _hoisted_3$1 = { class: "u-tabbar__center" };
4954
4954
  const _hoisted_4 = { class: "u-tabbar__center-brand" };
4955
4955
  const _hoisted_5 = { class: "u-tabbar__center-text" };
@@ -4980,8 +4980,8 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
4980
4980
  emit("tab-change", tab);
4981
4981
  };
4982
4982
  return (_ctx, _cache) => {
4983
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$2, [
4984
- vue.createElementVNode("view", _hoisted_2$2, [
4983
+ return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$1, [
4984
+ vue.createElementVNode("view", _hoisted_2$1, [
4985
4985
  vue.createElementVNode("view", {
4986
4986
  class: vue.normalizeClass(["u-tabbar__tab-btn", { "u-tabbar__tab-btn--active": __props.modelValue === __props.leftTab.value }]),
4987
4987
  onClick: _cache[0] || (_cache[0] = ($event) => switchTab(__props.leftTab.value))
@@ -5030,8 +5030,6 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
5030
5030
  }
5031
5031
  });
5032
5032
  const uTabbar = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-10cb84bc"]]);
5033
- const _hoisted_1$1 = { class: "u-qrcode" };
5034
- const _hoisted_2$1 = ["canvas-id", "id"];
5035
5033
  const __default__$1 = {
5036
5034
  options: {
5037
5035
  virtualHost: true,
@@ -5050,8 +5048,32 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5050
5048
  },
5051
5049
  setup(__props) {
5052
5050
  const props = __props;
5053
- const canvasId = vue.ref(`qrcode_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`);
5054
- class QRCode {
5051
+ const modules = vue.ref([]);
5052
+ const qrSize = vue.ref(0);
5053
+ const cellSize = vue.computed(() => {
5054
+ if (qrSize.value === 0) return 0;
5055
+ return props.size / qrSize.value;
5056
+ });
5057
+ class QRCodeGenerator {
5058
+ // 初始化 GF 表
5059
+ static initGF() {
5060
+ if (this.GF_EXP.length > 0) return;
5061
+ let x = 1;
5062
+ for (let i = 0; i < 255; i++) {
5063
+ this.GF_EXP[i] = x;
5064
+ this.GF_LOG[x] = i;
5065
+ x = x * 2;
5066
+ if (x >= 256) x ^= 285;
5067
+ }
5068
+ for (let i = 255; i < 512; i++) {
5069
+ this.GF_EXP[i] = this.GF_EXP[i - 255];
5070
+ }
5071
+ }
5072
+ // GF 乘法
5073
+ static gfMul(a, b) {
5074
+ if (a === 0 || b === 0) return 0;
5075
+ return this.GF_EXP[this.GF_LOG[a] + this.GF_LOG[b]];
5076
+ }
5055
5077
  // 获取版本
5056
5078
  static getVersion(dataLength) {
5057
5079
  for (let v = 1; v <= 40; v++) {
@@ -5059,68 +5081,85 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5059
5081
  }
5060
5082
  return 40;
5061
5083
  }
5062
- // 生成二维码数据
5063
- static generate(data, ecl) {
5084
+ // 生成二维码
5085
+ static generate(data) {
5086
+ this.initGF();
5064
5087
  const version = this.getVersion(data.length);
5065
5088
  const size = version * 4 + 17;
5066
- const modules = [];
5089
+ const matrix = [];
5067
5090
  for (let i = 0; i < size; i++) {
5068
- modules[i] = new Array(size).fill(0);
5091
+ matrix[i] = new Array(size).fill(-1);
5069
5092
  }
5070
- this.addFinderPatterns(modules, size);
5071
- this.addTimingPatterns(modules, size);
5093
+ this.addFinderPatterns(matrix, size);
5094
+ this.addTimingPatterns(matrix, size);
5095
+ this.addDarkModule(matrix, size);
5072
5096
  if (version >= 2) {
5073
- this.addAlignmentPatterns(modules, version, size);
5097
+ this.addAlignmentPatterns(matrix, version, size);
5074
5098
  }
5075
- this.addDarkModule(modules, size);
5076
- const codewords = this.encodeCodewords(data, version, ecl);
5077
- this.fillData(modules, codewords, size);
5078
- const bestMask = this.findBestMask(modules, size);
5079
- this.applyMask(modules, size, bestMask);
5080
- this.addFormatInfo(modules, size, ecl, bestMask);
5081
- return { version, size, modules };
5099
+ const codewords = this.encodeData(data, version);
5100
+ this.fillData(matrix, codewords, size);
5101
+ this.applyMask(matrix, size, 0);
5102
+ this.addFormatInfo(matrix, size, 0);
5103
+ for (let row = 0; row < size; row++) {
5104
+ for (let col = 0; col < size; col++) {
5105
+ if (matrix[row][col] === -1) matrix[row][col] = 0;
5106
+ }
5107
+ }
5108
+ return { size, modules: matrix };
5082
5109
  }
5083
5110
  // 添加定位图案
5084
- static addFinderPatterns(modules, size) {
5111
+ static addFinderPatterns(matrix, size) {
5085
5112
  const positions = [[0, 0], [size - 7, 0], [0, size - 7]];
5086
- for (const [row, col] of positions) {
5113
+ for (const [startRow, startCol] of positions) {
5087
5114
  for (let r = 0; r < 7; r++) {
5088
5115
  for (let c = 0; c < 7; c++) {
5089
- if (r === 0 || r === 6 || c === 0 || c === 6 || r >= 2 && r <= 4 && c >= 2 && c <= 4) {
5090
- modules[row + r][col + c] = 1;
5116
+ const row = startRow + r;
5117
+ const col = startCol + c;
5118
+ if (row >= 0 && row < size && col >= 0 && col < size) {
5119
+ if (r === 0 || r === 6 || c === 0 || c === 6 || r >= 2 && r <= 4 && c >= 2 && c <= 4) {
5120
+ matrix[row][col] = 1;
5121
+ } else {
5122
+ matrix[row][col] = 0;
5123
+ }
5091
5124
  }
5092
5125
  }
5093
5126
  }
5094
5127
  for (let i = 0; i < 8; i++) {
5095
- if (row === 0 && i < size && modules[7]) modules[7][i] = 0;
5096
- if (row === 0 && i < size && modules[i]) modules[i][7] = 0;
5097
- if (row === size - 7 && i < size && modules[7]) modules[7][size - 8 + i] = 0;
5098
- if (row === size - 7 && i < size && modules[i]) modules[i][size - 8] = 0;
5099
- if (row === 0 && col === size - 7 && i < size && modules[size - 8]) modules[size - 8][i] = 0;
5100
- if (row === 0 && col === size - 7 && i < size && modules[size - 1 - i]) modules[size - 1 - i][7] = 0;
5128
+ if (startCol + 7 < size && startRow + i < size && startRow + i >= 0) {
5129
+ matrix[startRow + i][startCol + 7] = 0;
5130
+ }
5131
+ if (startRow + 7 < size && startCol + i < size && startCol + i >= 0) {
5132
+ matrix[startRow + 7][startCol + i] = 0;
5133
+ }
5101
5134
  }
5102
5135
  }
5103
5136
  }
5104
5137
  // 添加时序图案
5105
- static addTimingPatterns(modules, size) {
5138
+ static addTimingPatterns(matrix, size) {
5106
5139
  for (let i = 8; i < size - 8; i++) {
5107
- modules[6][i] = i % 2 === 0 ? 1 : 0;
5108
- modules[i][6] = i % 2 === 0 ? 1 : 0;
5140
+ if (matrix[6][i] === -1) matrix[6][i] = i % 2 === 0 ? 1 : 0;
5141
+ if (matrix[i][6] === -1) matrix[i][6] = i % 2 === 0 ? 1 : 0;
5109
5142
  }
5110
5143
  }
5144
+ // 添加暗模块
5145
+ static addDarkModule(matrix, size) {
5146
+ matrix[size - 8][8] = 1;
5147
+ }
5111
5148
  // 添加定位图案
5112
- static addAlignmentPatterns(modules, version, size) {
5149
+ static addAlignmentPatterns(matrix, version, size) {
5113
5150
  const positions = this.getAlignmentPositions(version, size);
5114
5151
  for (const row of positions) {
5115
5152
  for (const col of positions) {
5116
- if (modules[row][col] !== 0) continue;
5153
+ if (matrix[row][col] !== -1) continue;
5117
5154
  for (let r = -2; r <= 2; r++) {
5118
5155
  for (let c = -2; c <= 2; c++) {
5119
- if (row + r >= 0 && row + r < size && col + c >= 0 && col + c < size) {
5156
+ const tr = row + r;
5157
+ const tc = col + c;
5158
+ if (tr >= 0 && tr < size && tc >= 0 && tc < size && matrix[tr][tc] === -1) {
5120
5159
  if (Math.abs(r) === 2 || Math.abs(c) === 2 || r === 0 && c === 0) {
5121
- modules[row + r][col + c] = 1;
5160
+ matrix[tr][tc] = 1;
5122
5161
  } else {
5123
- modules[row + r][col + c] = 0;
5162
+ matrix[tr][tc] = 0;
5124
5163
  }
5125
5164
  }
5126
5165
  }
@@ -5132,7 +5171,8 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5132
5171
  static getAlignmentPositions(version, size) {
5133
5172
  if (version === 1) return [];
5134
5173
  const positions = [6];
5135
- const step = version === 32 ? 26 : Math.ceil((size - 13) / (Math.floor(version / 7) + 1));
5174
+ const intervals = Math.floor(version / 7) + 1;
5175
+ const step = Math.ceil((size - 13) / intervals);
5136
5176
  let pos = size - 7;
5137
5177
  while (pos > 6) {
5138
5178
  positions.unshift(pos);
@@ -5140,12 +5180,8 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5140
5180
  }
5141
5181
  return positions;
5142
5182
  }
5143
- // 添加暗模块
5144
- static addDarkModule(modules, size) {
5145
- modules[size - 8][8] = 1;
5146
- }
5147
- // 编码码字
5148
- static encodeCodewords(data, version, ecl) {
5183
+ // 编码数据
5184
+ static encodeData(data, version) {
5149
5185
  const bits = [];
5150
5186
  bits.push(0, 1, 0, 0);
5151
5187
  const cciBits = version <= 9 ? 8 : 16;
@@ -5170,70 +5206,40 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5170
5206
  }
5171
5207
  padIdx = (padIdx + 1) % 2;
5172
5208
  }
5173
- const bytes = [];
5209
+ const dataBytes = [];
5174
5210
  for (let i = 0; i < bits.length; i += 8) {
5175
5211
  let b = 0;
5176
5212
  for (let j = 0; j < 8; j++) b = b << 1 | bits[i + j];
5177
- bytes.push(b);
5213
+ dataBytes.push(b);
5178
5214
  }
5179
- const eccBytes = this.generateECC(bytes, this.ECC_CODEWORDS[version]);
5180
- return [...bytes, ...eccBytes];
5215
+ const eccBytes = this.generateECC(dataBytes, this.ECC_CODEWORDS[version]);
5216
+ return [...dataBytes, ...eccBytes];
5181
5217
  }
5182
5218
  // Reed-Solomon 纠错码生成
5183
5219
  static generateECC(data, eccCount) {
5184
- const GF_EXP = new Array(512);
5185
- const GF_LOG = new Array(256);
5186
- let x = 1;
5187
- for (let i = 0; i < 255; i++) {
5188
- GF_EXP[i] = x;
5189
- GF_LOG[x] = i;
5190
- x = x * 2;
5191
- if (x >= 256) x ^= 285;
5192
- }
5193
- for (let i = 255; i < 512; i++) {
5194
- GF_EXP[i] = GF_EXP[i - 255];
5195
- }
5196
- const gfMul = (a, b) => {
5197
- if (a === 0 || b === 0) return 0;
5198
- return GF_EXP[GF_LOG[a] + GF_LOG[b]];
5199
- };
5200
5220
  const genPoly = [1];
5201
5221
  for (let i = 0; i < eccCount; i++) {
5202
- const newPoly = new Array(genPoly.length + 1).fill(0);
5222
+ const temp = new Array(genPoly.length + 1).fill(0);
5203
5223
  for (let j = 0; j < genPoly.length; j++) {
5204
- newPoly[j] ^= genPoly[j];
5205
- newPoly[j + 1] ^= gfMul(genPoly[j], GF_EXP[i]);
5224
+ temp[j] ^= genPoly[j];
5225
+ temp[j + 1] ^= this.gfMul(genPoly[j], this.GF_EXP[i]);
5206
5226
  }
5207
- genPoly = newPoly;
5227
+ genPoly.length = 0;
5228
+ genPoly.push(...temp);
5208
5229
  }
5209
5230
  const ecc = new Array(eccCount).fill(0);
5210
5231
  for (const byte of data) {
5211
5232
  const factor = byte ^ ecc[0];
5212
5233
  ecc.shift();
5213
5234
  ecc.push(0);
5214
- for (let i = 0; i < ecc.length; i++) {
5215
- ecc[i] ^= gfMul(genPoly[i], factor);
5235
+ for (let i = 0; i < eccCount; i++) {
5236
+ ecc[i] ^= this.gfMul(genPoly[i], factor);
5216
5237
  }
5217
5238
  }
5218
5239
  return ecc;
5219
5240
  }
5220
- // 填充数据到矩阵
5221
- static fillData(modules, codewords, size) {
5222
- for (let row = 0; row < size; row++) {
5223
- for (let col = 0; col < size; col++) {
5224
- if (modules[row][col] !== 0) {
5225
- modules[row][col] = -1;
5226
- }
5227
- }
5228
- }
5229
- for (let i = 0; i < 9; i++) {
5230
- if (modules[8][i] === 0) modules[8][i] = -1;
5231
- if (modules[i][8] === 0) modules[i][8] = -1;
5232
- }
5233
- for (let i = 0; i < 8; i++) {
5234
- if (modules[8][size - 1 - i] === 0) modules[8][size - 1 - i] = -1;
5235
- if (modules[size - 1 - i][8] === 0) modules[size - 1 - i][8] = -1;
5236
- }
5241
+ // 填充数据
5242
+ static fillData(matrix, codewords, size) {
5237
5243
  let bitIdx = 0;
5238
5244
  let upward = true;
5239
5245
  for (let col = size - 1; col >= 0; col -= 2) {
@@ -5241,12 +5247,12 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5241
5247
  for (let row = upward ? size - 1 : 0; upward ? row >= 0 : row < size; upward ? row-- : row++) {
5242
5248
  for (let c = 0; c < 2; c++) {
5243
5249
  const tc = col - c;
5244
- if (tc >= 0 && modules[row][tc] === 0) {
5250
+ if (tc >= 0 && matrix[row][tc] === -1) {
5245
5251
  let bit = 0;
5246
5252
  if (bitIdx < codewords.length * 8) {
5247
5253
  bit = codewords[Math.floor(bitIdx / 8)] >> 7 - bitIdx % 8 & 1;
5248
5254
  }
5249
- modules[row][tc] = bit;
5255
+ matrix[row][tc] = bit;
5250
5256
  bitIdx++;
5251
5257
  }
5252
5258
  }
@@ -5254,89 +5260,24 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5254
5260
  upward = !upward;
5255
5261
  }
5256
5262
  }
5257
- // 寻找最佳掩码
5258
- static findBestMask(modules, size) {
5259
- let bestMask = 0;
5260
- let bestScore = Infinity;
5261
- for (let mask = 0; mask < 8; mask++) {
5262
- const testModules = modules.map((row) => [...row]);
5263
- this.applyMask(testModules, size, mask);
5264
- const score = this.evaluateMask(testModules, size);
5265
- if (score < bestScore) {
5266
- bestScore = score;
5267
- bestMask = mask;
5268
- }
5269
- }
5270
- return bestMask;
5271
- }
5272
5263
  // 应用掩码
5273
- static applyMask(modules, size, mask) {
5264
+ static applyMask(matrix, size, mask) {
5274
5265
  for (let row = 0; row < size; row++) {
5275
5266
  for (let col = 0; col < size; col++) {
5276
- if (modules[row][col] >= 0) {
5277
- if (this.getMaskBit(row, col, mask)) {
5278
- modules[row][col] = modules[row][col] === 1 ? 0 : 1;
5267
+ if (matrix[row][col] >= 0) {
5268
+ let invert = false;
5269
+ if (mask === 0) invert = (row + col) % 2 === 0;
5270
+ if (invert) {
5271
+ matrix[row][col] = matrix[row][col] === 1 ? 0 : 1;
5279
5272
  }
5280
5273
  }
5281
5274
  }
5282
5275
  }
5283
5276
  }
5284
- // 掩码函数
5285
- static getMaskBit(row, col, mask) {
5286
- switch (mask) {
5287
- case 0:
5288
- return (row + col) % 2 === 0;
5289
- case 1:
5290
- return row % 2 === 0;
5291
- case 2:
5292
- return col % 3 === 0;
5293
- case 3:
5294
- return (row + col) % 3 === 0;
5295
- case 4:
5296
- return (Math.floor(row / 2) + Math.floor(col / 3)) % 2 === 0;
5297
- case 5:
5298
- return row * col % 2 + row * col % 3 === 0;
5299
- case 6:
5300
- return (row * col % 2 + row * col % 3) % 2 === 0;
5301
- case 7:
5302
- return ((row + col) % 2 + row * col % 3) % 2 === 0;
5303
- default:
5304
- return false;
5305
- }
5306
- }
5307
- // 评估掩码质量
5308
- static evaluateMask(modules, size) {
5309
- let score = 0;
5310
- for (let row = 0; row < size; row++) {
5311
- let count = 1;
5312
- for (let col = 1; col < size; col++) {
5313
- if (modules[row][col] === modules[row][col - 1]) {
5314
- count++;
5315
- } else {
5316
- if (count >= 5) score += count - 2;
5317
- count = 1;
5318
- }
5319
- }
5320
- if (count >= 5) score += count - 2;
5321
- }
5322
- for (let col = 0; col < size; col++) {
5323
- let count = 1;
5324
- for (let row = 1; row < size; row++) {
5325
- if (modules[row][col] === modules[row - 1][col]) {
5326
- count++;
5327
- } else {
5328
- if (count >= 5) score += count - 2;
5329
- count = 1;
5330
- }
5331
- }
5332
- if (count >= 5) score += count - 2;
5333
- }
5334
- return score;
5335
- }
5336
5277
  // 添加格式信息
5337
- static addFormatInfo(modules, size, ecl, mask) {
5338
- const eclBits = this.ECC_LEVEL[ecl];
5339
- const data = eclBits << 3 | mask;
5278
+ static addFormatInfo(matrix, size, mask) {
5279
+ const ecl = 0;
5280
+ const data = ecl << 3 | mask;
5340
5281
  let rem = data;
5341
5282
  for (let i = 0; i < 10; i++) {
5342
5283
  rem = rem << 1 ^ (rem >> 14) * 1335;
@@ -5346,19 +5287,19 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5346
5287
  for (let i = 14; i >= 0; i--) {
5347
5288
  bits.push(format >> i & 1);
5348
5289
  }
5349
- for (let i = 0; i < 6; i++) modules[8][i] = bits[i];
5350
- modules[8][7] = bits[6];
5351
- modules[8][8] = bits[7];
5352
- modules[7][8] = bits[8];
5353
- for (let i = 9; i < 15; i++) modules[14 - i][8] = bits[i];
5354
- for (let i = 0; i < 8; i++) modules[8][size - 1 - i] = bits[14 - i];
5355
- for (let i = 8; i < 15; i++) modules[size - 15 + i][8] = bits[14 - i];
5290
+ for (let i = 0; i < 6; i++) matrix[8][i] = bits[i];
5291
+ matrix[8][7] = bits[6];
5292
+ matrix[8][8] = bits[7];
5293
+ matrix[7][8] = bits[8];
5294
+ for (let i = 9; i < 15; i++) matrix[14 - i][8] = bits[i];
5295
+ for (let i = 0; i < 8; i++) matrix[8][size - 8 + i] = bits[14 - i];
5296
+ for (let i = 8; i < 15; i++) matrix[size - 15 + i][8] = bits[14 - i];
5356
5297
  }
5357
5298
  }
5358
5299
  // 纠错级别
5359
- __publicField(QRCode, "ECC_LEVEL", { L: 1, M: 0, Q: 3, H: 2 });
5300
+ __publicField(QRCodeGenerator, "ECC_LEVEL", { L: 1, M: 0, Q: 3, H: 2 });
5360
5301
  // 每个版本的纠错码字数(M级别)
5361
- __publicField(QRCode, "ECC_CODEWORDS", [
5302
+ __publicField(QRCodeGenerator, "ECC_CODEWORDS", [
5362
5303
  0,
5363
5304
  10,
5364
5305
  16,
@@ -5391,7 +5332,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5391
5332
  536
5392
5333
  ]);
5393
5334
  // 每个版本的总码字数
5394
- __publicField(QRCode, "TOTAL_CODEWORDS", [
5335
+ __publicField(QRCodeGenerator, "TOTAL_CODEWORDS", [
5395
5336
  0,
5396
5337
  26,
5397
5338
  44,
@@ -5424,7 +5365,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5424
5365
  2033
5425
5366
  ]);
5426
5367
  // 每个版本的容量(字节模式,M级别)
5427
- __publicField(QRCode, "CAPACITY", [
5368
+ __publicField(QRCodeGenerator, "CAPACITY", [
5428
5369
  0,
5429
5370
  16,
5430
5371
  28,
@@ -5456,46 +5397,62 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
5456
5397
  1193,
5457
5398
  1273
5458
5399
  ]);
5459
- const drawQRCode = () => {
5460
- if (!props.value) return;
5461
- vue.nextTick(() => {
5462
- const result = QRCode.generate(props.value, props.errorCorrectLevel);
5463
- const cellSize = props.size / result.size;
5464
- const ctx = uni.createCanvasContext(canvasId.value);
5465
- ctx.setFillStyle(props.bgColor);
5466
- ctx.fillRect(0, 0, props.size, props.size);
5467
- ctx.setFillStyle(props.color);
5468
- for (let row = 0; row < result.size; row++) {
5469
- for (let col = 0; col < result.size; col++) {
5470
- if (result.modules[row][col] === 1) {
5471
- ctx.fillRect(col * cellSize, row * cellSize, cellSize, cellSize);
5472
- }
5473
- }
5474
- }
5475
- ctx.draw();
5476
- });
5400
+ // Galois Field 查找表
5401
+ __publicField(QRCodeGenerator, "GF_EXP", []);
5402
+ __publicField(QRCodeGenerator, "GF_LOG", []);
5403
+ const generateQRCode = () => {
5404
+ if (!props.value) {
5405
+ modules.value = [];
5406
+ qrSize.value = 0;
5407
+ return;
5408
+ }
5409
+ try {
5410
+ const result = QRCodeGenerator.generate(props.value);
5411
+ modules.value = result.modules;
5412
+ qrSize.value = result.size;
5413
+ } catch (e) {
5414
+ console.error("QR Code generation failed:", e);
5415
+ modules.value = [];
5416
+ qrSize.value = 0;
5417
+ }
5477
5418
  };
5478
- vue.watch(() => props.value, drawQRCode);
5479
- vue.watch(() => props.size, drawQRCode);
5480
- vue.watch(() => props.color, drawQRCode);
5481
- vue.watch(() => props.bgColor, drawQRCode);
5419
+ vue.watch(() => props.value, generateQRCode);
5482
5420
  vue.onMounted(() => {
5483
- drawQRCode();
5421
+ generateQRCode();
5484
5422
  });
5485
5423
  return (_ctx, _cache) => {
5486
- return vue.openBlock(), vue.createElementBlock("view", _hoisted_1$1, [
5487
- canvasId.value ? (vue.openBlock(), vue.createElementBlock("canvas", {
5488
- key: 0,
5489
- "canvas-id": canvasId.value,
5490
- id: canvasId.value,
5491
- class: "u-qrcode__canvas",
5492
- style: vue.normalizeStyle({ width: `${__props.size}px`, height: `${__props.size}px` })
5493
- }, null, 12, _hoisted_2$1)) : vue.createCommentVNode("", true)
5494
- ]);
5424
+ return vue.openBlock(), vue.createElementBlock("view", {
5425
+ class: "u-qrcode",
5426
+ style: vue.normalizeStyle({ width: `${__props.size}px`, height: `${__props.size}px` })
5427
+ }, [
5428
+ vue.createElementVNode("view", {
5429
+ class: "u-qrcode__matrix",
5430
+ style: vue.normalizeStyle({ backgroundColor: __props.bgColor })
5431
+ }, [
5432
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(modules.value, (row, rowIndex) => {
5433
+ return vue.openBlock(), vue.createElementBlock("view", {
5434
+ key: rowIndex,
5435
+ class: "u-qrcode__row"
5436
+ }, [
5437
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(row, (cell, colIndex) => {
5438
+ return vue.openBlock(), vue.createElementBlock("view", {
5439
+ key: colIndex,
5440
+ class: "u-qrcode__cell",
5441
+ style: vue.normalizeStyle({
5442
+ width: `${cellSize.value}px`,
5443
+ height: `${cellSize.value}px`,
5444
+ backgroundColor: cell === 1 ? __props.color : __props.bgColor
5445
+ })
5446
+ }, null, 4);
5447
+ }), 128))
5448
+ ]);
5449
+ }), 128))
5450
+ ], 4)
5451
+ ], 4);
5495
5452
  };
5496
5453
  }
5497
5454
  });
5498
- const uQrcode = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-ff93204c"]]);
5455
+ const uQrcode = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-fbf77201"]]);
5499
5456
  const _hoisted_1 = { class: "u-barcode" };
5500
5457
  const _hoisted_2 = ["canvas-id"];
5501
5458
  const _hoisted_3 = ["src"];