next-element-vue 0.4.9 → 0.5.1

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.umd.js CHANGED
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * 作  者:huangteng
4
4
  * 邮  箱:htengweb@163.com
5
- * 当前版本:0.4.9 v
6
- * 发布日期:2024-12-24
5
+ * 当前版本:0.5.1 v
6
+ * 发布日期:2024-12-28
7
7
  * 地  址:https://www.npmjs.com/package/next-element-vue
8
8
  */
9
9
 
@@ -995,8 +995,12 @@
995
995
  }, localeContextKey = elementPlus.localeContextKey, useLocale = localeOverrides => {
996
996
  const locale = localeOverrides || vue.inject(localeContextKey, vue.ref());
997
997
  return buildLocaleContext(vue.computed((() => locale?.value || zhcnLocale)));
998
- };
998
+ }, reg_hex = /^#([0-9A-F]{3}|[0-9A-F]{6}|[0-9A-F]{8})$/i, reg_rgba = /^rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*(0|1|0?\.\d+)\s*\)$/i;
999
999
  function useChangeColor() {
1000
+ const rgbaToHex = rgba => {
1001
+ const rgbaValues = rgba.replace(/^rgba?\(|\s+|\)$/g, "").split(",").map((value => parseFloat(value))), [r, g, b] = rgbaValues;
1002
+ return `#${[ r, g, b ].map((value => Math.round(value).toString(16).padStart(2, "0"))).join("")}`.toUpperCase();
1003
+ };
1000
1004
  return {
1001
1005
  hexToRgb: str => {
1002
1006
  let hexs = "";
@@ -1022,17 +1026,24 @@
1022
1026
  for (let i = 0; i < 3; i++) 1 == hexs[i].length && (hexs[i] = `0${hexs[i]}`);
1023
1027
  return `#${hexs.join("")}`;
1024
1028
  },
1029
+ rgbaToHex: rgbaToHex,
1030
+ rgbaToHexAlpha: rgba => {
1031
+ const rgbaValues = rgba.replace(/^rgba?\(|\s+|\)$/g, "").split(",").map((value => parseFloat(value))), [r, g, b, a] = rgbaValues, alpha = Math.round(255 * a).toString(16).padStart(2, "0");
1032
+ return `#${[ r, g, b ].map((value => Math.round(value).toString(16).padStart(2, "0"))).join("")}${alpha}`.toUpperCase();
1033
+ },
1025
1034
  getDarkColor: (color, level) => {
1026
- if (!/^\#?[0-9A-Fa-f]{6}$/.test(color)) return elementPlus.ElMessage.warning("输入错误的hex颜色值"),
1035
+ let _color = color;
1036
+ if (reg_rgba.test(_color) && (_color = rgbaToHex(_color)), !reg_hex.test(_color)) return elementPlus.ElMessage.warning("输入错误的hex颜色值"),
1027
1037
  "";
1028
- let rgb = useChangeColor().hexToRgb(color);
1038
+ let rgb = useChangeColor().hexToRgb(_color);
1029
1039
  for (let i = 0; i < 3; i++) rgb[i] = Math.floor(rgb[i] * (1 - level));
1030
1040
  return useChangeColor().rgbToHex(rgb[0], rgb[1], rgb[2]);
1031
1041
  },
1032
1042
  getLightColor: (color, level) => {
1033
- if (!/^\#?[0-9A-Fa-f]{6}$/.test(color)) return elementPlus.ElMessage.warning("输入错误的hex颜色值"),
1043
+ let _color = color;
1044
+ if (reg_rgba.test(_color) && (_color = rgbaToHex(_color)), !reg_hex.test(_color)) return elementPlus.ElMessage.warning("输入错误的hex颜色值"),
1034
1045
  "";
1035
- let rgb = useChangeColor().hexToRgb(color);
1046
+ let rgb = useChangeColor().hexToRgb(_color);
1036
1047
  for (let i = 0; i < 3; i++) rgb[i] = Math.floor((255 - rgb[i]) * level + rgb[i]);
1037
1048
  return useChangeColor().rgbToHex(rgb[0], rgb[1], rgb[2]);
1038
1049
  }
@@ -1569,6 +1580,7 @@
1569
1580
  modelValue: settingConfig.themeColor,
1570
1581
  "onUpdate:modelValue": $event => settingConfig.themeColor = $event,
1571
1582
  predefine: [ "#409eff", "#ff4500", "#ff8c00", "#ffd700", "#90ee90", "#00ced1", "#1e90ff", "#c71585", "#FB07A0" ],
1583
+ "show-alpha": !0,
1572
1584
  onChange: _onChangeThemeColor
1573
1585
  }, null) ]) ]), vue.createVNode("div", {
1574
1586
  class: _ns.b("config-bar-item")
@@ -1596,6 +1608,7 @@
1596
1608
  modelValue: settingConfig.headerBarColor,
1597
1609
  "onUpdate:modelValue": $event => settingConfig.headerBarColor = $event,
1598
1610
  predefine: [ "#282c34", "#ff4500", "#ff8c00", "#ffd700", "#90ee90", "#00ced1", "#1e90ff", "#c71585", "#FB07A0" ],
1611
+ "show-alpha": !0,
1599
1612
  onChange: color => _onChangeColor(color, "headerBarColor", "--next-layout-bg-color")
1600
1613
  }, null) ]) ]), vue.createVNode("div", {
1601
1614
  class: _ns.b("config-bar-item")
@@ -1607,6 +1620,7 @@
1607
1620
  modelValue: settingConfig.headerBarFontColor,
1608
1621
  "onUpdate:modelValue": $event => settingConfig.headerBarFontColor = $event,
1609
1622
  predefine: [ "#282c34", "#ff4500", "#ff8c00", "#ffd700", "#90ee90", "#00ced1", "#1e90ff", "#c71585", "#FB07A0" ],
1623
+ "show-alpha": !0,
1610
1624
  onChange: color => _onChangeColor(color, "headerBarFontColor", "--next-layout-font-color")
1611
1625
  }, null) ]) ]), vue.createVNode("div", {
1612
1626
  class: _ns.b("config-bar-item")
@@ -2869,15 +2883,16 @@
2869
2883
  var s;
2870
2884
  }
2871
2885
  });
2872
- const findParentNode = (path, tree) => {
2873
- for (const node of tree) {
2874
- if (node.children?.some((child => child.path === path))) return node;
2875
- if (node.children) {
2876
- const parent = findParentNode(path, node.children);
2877
- if (parent) return parent;
2886
+ const findGrandfatherNode = (path, tree) => {
2887
+ let parentNode = null;
2888
+ const loopNodes = (nodes, currentParent) => {
2889
+ for (const node of nodes) {
2890
+ if (node.path === path) return parentNode = currentParent, !0;
2891
+ if (node.children && loopNodes(node.children, currentParent ?? node)) return !0;
2878
2892
  }
2879
- }
2880
- return null;
2893
+ return !1;
2894
+ };
2895
+ return loopNodes(tree, null), parentNode;
2881
2896
  }, ns$h = useNamespace("menu");
2882
2897
  var MenuTop = vue.defineComponent({
2883
2898
  props: {
@@ -2896,10 +2911,12 @@
2896
2911
  },
2897
2912
  setup(props) {
2898
2913
  vue.provide("ns", ns$h);
2899
- const updateSubmentTree = vue.inject("updateSubmentTree"), router = vue.getCurrentInstance().appContext.config.globalProperties.$router, currentPath = router.currentRoute?.value.fullPath, parentNode = findParentNode(currentPath, props.menuTree), activeMenuId = vue.ref(parentNode?.id);
2900
- parentNode?.id && updateSubmentTree(parentNode.children), vue.watch((() => router.currentRoute?.value), (to => {
2901
- const parentNode = findParentNode(to.fullPath, props.menuTree);
2902
- activeMenuId.value = parentNode?.id, parentNode?.id && 1 === parentNode.meta?.level && updateSubmentTree(parentNode.children);
2914
+ const updateSubmentTree = vue.inject("updateSubmentTree"), router = vue.getCurrentInstance().appContext.config.globalProperties.$router, currentPath = router.currentRoute?.value.fullPath, parentNode = findGrandfatherNode(currentPath, props.menuTree), activeMenuId = vue.ref(parentNode?.id);
2915
+ parentNode?.id && 1 === parentNode.meta?.level && updateSubmentTree(parentNode.children),
2916
+ vue.watch((() => router.currentRoute?.value), (to => {
2917
+ const parentNode = findGrandfatherNode(to.fullPath, props.menuTree);
2918
+ if (activeMenuId.value = parentNode?.id, !parentNode) return updateSubmentTree([]);
2919
+ parentNode?.id && 1 === parentNode.meta?.level && updateSubmentTree(parentNode.children);
2903
2920
  }));
2904
2921
  const findTreeFirst = tree => {
2905
2922
  let result = tree[0];
@@ -3584,6 +3601,21 @@
3584
3601
  editable: col.searchEditable || !1
3585
3602
  }, null);
3586
3603
  }
3604
+ if ("daterange" === col.type) return vue.createVNode(elementPlus.ElDatePicker, {
3605
+ modelValue: formParams[col.prop],
3606
+ "onUpdate:modelValue": $event => formParams[col.prop] = $event,
3607
+ type: "daterange",
3608
+ "value-format": col.searchFormat || "YYYY-MM-DD",
3609
+ format: col.searchFormat || "YYYY-MM-DD",
3610
+ clearable: !0,
3611
+ "range-separator": t("next.date.rangeSeparator"),
3612
+ "start-placeholder": t("next.date.startPlaceholder"),
3613
+ "end-placeholder": t("next.date.endPlaceholder"),
3614
+ "disabled-date": col.searchDisabledDate || _defaultDisabledDate,
3615
+ disabled: _disabled,
3616
+ editable: col.searchEditable || !1,
3617
+ shortcuts: col.searchShortcuts || _defaultShortcuts
3618
+ }, null);
3587
3619
  if ("datetimerange" === col.type) return vue.createVNode(elementPlus.ElDatePicker, {
3588
3620
  modelValue: formParams[col.prop],
3589
3621
  "onUpdate:modelValue": $event => formParams[col.prop] = $event,
@@ -5122,7 +5154,7 @@
5122
5154
  valueFormat: col.format || "YYYY-MM-DD",
5123
5155
  format: col.format || "YYYY-MM-DD",
5124
5156
  clearable: valueExist(col.clearable, !0),
5125
- disabledDate: col.disabledDate || _defaultDisabledDate,
5157
+ disabledDate: time => col.disabledDate ? col.disabledDate(time, formParams) : _defaultDisabledDate(time),
5126
5158
  editable: valueExist(col.editable, !1),
5127
5159
  disabled: valueExist(col.disabled, !1),
5128
5160
  readonly: valueExist(col.readonly, !1)
@@ -5138,12 +5170,32 @@
5138
5170
  valueFormat: col.format || "YYYY-MM-DD HH:mm:ss",
5139
5171
  format: col.format || "YYYY-MM-DD HH:mm:ss",
5140
5172
  clearable: valueExist(col.clearable, !0),
5141
- disabledDate: col.disabledDate || _defaultDisabledDate,
5173
+ disabledDate: time => col.disabledDate ? col.disabledDate(time, formParams) : _defaultDisabledDate(time),
5142
5174
  editable: valueExist(col.editable, !1),
5143
5175
  disabled: valueExist(col.disabled, !1),
5144
5176
  readonly: valueExist(col.readonly, !1)
5145
5177
  }, null);
5146
5178
  }
5179
+ if ("daterange" === col.type) {
5180
+ const placeholder = col.placeholder || t("next.form.select") + col.label;
5181
+ return vue.createVNode(elementPlus.ElDatePicker, {
5182
+ modelValue: formParams[col.prop],
5183
+ "onUpdate:modelValue": [ $event => formParams[col.prop] = $event, event => col.onChange?.(event, col, formParams, formColumns) ],
5184
+ placeholder: placeholder,
5185
+ type: "daterange",
5186
+ valueFormat: col.format || "YYYY-MM-DD ",
5187
+ format: col.format || "YYYY-MM-DD",
5188
+ "range-separator": t("next.date.rangeSeparator"),
5189
+ "start-placeholder": t("next.date.startPlaceholder"),
5190
+ "end-placeholder": t("next.date.endPlaceholder"),
5191
+ disabledDate: time => col.disabledDate ? col.disabledDate(time, formParams) : _defaultDisabledDate(time),
5192
+ clearable: valueExist(col.clearable, !0),
5193
+ editable: valueExist(col.editable, !1),
5194
+ disabled: valueExist(col.disabled, !1),
5195
+ readonly: valueExist(col.readonly, !1),
5196
+ shortcuts: col.shortcuts || _defaultShortcuts
5197
+ }, null);
5198
+ }
5147
5199
  if ("datetimerange" === col.type) {
5148
5200
  const placeholder = col.placeholder || t("next.form.select") + col.label;
5149
5201
  return vue.createVNode(elementPlus.ElDatePicker, {
@@ -5156,7 +5208,7 @@
5156
5208
  "range-separator": t("next.date.rangeSeparator"),
5157
5209
  "start-placeholder": t("next.date.startPlaceholder"),
5158
5210
  "end-placeholder": t("next.date.endPlaceholder"),
5159
- disabledDate: col.disabledDate || _defaultDisabledDate,
5211
+ disabledDate: time => col.disabledDate ? col.disabledDate(time, formParams) : _defaultDisabledDate(time),
5160
5212
  clearable: valueExist(col.clearable, !0),
5161
5213
  editable: valueExist(col.editable, !1),
5162
5214
  disabled: valueExist(col.disabled, !1),
@@ -5378,6 +5430,7 @@
5378
5430
  clearable: valueExist(col.formClearable, col.clearable, !0),
5379
5431
  readonly: valueExist(col.formReadonly, col.readonly, !1),
5380
5432
  disabledDate: valueExist(col.formDisabledDate, col.disabledDate, !1),
5433
+ shortcuts: valueExist(col.formShortcuts, col.shortcuts, null),
5381
5434
  tip: valueExist(col.formTip, col.tip, null),
5382
5435
  rules: valueExist(col.formRules, col.rules, null),
5383
5436
  span: valueExist(col.formSpan, col.span, null),
@@ -8230,7 +8283,7 @@
8230
8283
  })(app);
8231
8284
  };
8232
8285
  var index = {
8233
- version: "0.4.9",
8286
+ version: "0.5.1",
8234
8287
  install: install
8235
8288
  };
8236
8289
  exports.NextContainer = NextContainer, exports.NextCrudTable = NextCrudTable, exports.NextCrudTableVirtualized = NextCrudTableVirtualized,
@@ -8278,7 +8331,7 @@
8278
8331
  }), exports.useGetDerivedNamespace = useGetDerivedNamespace, exports.useLanguage = (locale, lang) => {
8279
8332
  const localeRef = vue.isRef(locale) ? locale : vue.ref(locale), nextLang = localeLang[lang] || localeLang["zh-cn"];
8280
8333
  localeRef.value.name = lang, localeRef.value.next = nextLang.next;
8281
- }, exports.useLocale = useLocale, exports.useNamespace = useNamespace, exports.version = "0.4.9",
8334
+ }, exports.useLocale = useLocale, exports.useNamespace = useNamespace, exports.version = "0.5.1",
8282
8335
  Object.defineProperty(exports, "__esModule", {
8283
8336
  value: !0
8284
8337
  });