eoss 0.1.0-alpha.37 → 0.1.0-alpha.38

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/lib/main.js CHANGED
@@ -14489,8 +14489,8 @@ var notice_component = Object(componentNormalizer["a" /* default */])(
14489
14489
  )
14490
14490
 
14491
14491
  /* harmony default export */ var notice = (notice_component.exports);
14492
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/pages.vue?vue&type=template&id=35e35b04&scoped=true&
14493
- var pagesvue_type_template_id_35e35b04_scoped_true_render = function () {
14492
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/pages.vue?vue&type=template&id=0340e2fa&scoped=true&
14493
+ var pagesvue_type_template_id_0340e2fa_scoped_true_render = function () {
14494
14494
  var _vm = this
14495
14495
  var _h = _vm.$createElement
14496
14496
  var _c = _vm._self._c || _h
@@ -14720,11 +14720,11 @@ var pagesvue_type_template_id_35e35b04_scoped_true_render = function () {
14720
14720
  1
14721
14721
  )
14722
14722
  }
14723
- var pagesvue_type_template_id_35e35b04_scoped_true_staticRenderFns = []
14724
- pagesvue_type_template_id_35e35b04_scoped_true_render._withStripped = true
14723
+ var pagesvue_type_template_id_0340e2fa_scoped_true_staticRenderFns = []
14724
+ pagesvue_type_template_id_0340e2fa_scoped_true_render._withStripped = true
14725
14725
 
14726
14726
 
14727
- // CONCATENATED MODULE: ./packages/main/src/components/pages.vue?vue&type=template&id=35e35b04&scoped=true&
14727
+ // CONCATENATED MODULE: ./packages/main/src/components/pages.vue?vue&type=template&id=0340e2fa&scoped=true&
14728
14728
 
14729
14729
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/main/src/components/router-page.vue?vue&type=template&id=bcc739f0&
14730
14730
  var router_pagevue_type_template_id_bcc739f0_render = function () {
@@ -15073,6 +15073,20 @@ var pagesvue_type_script_lang_js_extends = Object.assign || function (target) {
15073
15073
 
15074
15074
 
15075
15075
 
15076
+
15077
+ /**
15078
+ * @desc: Unicode 安全的 base64 编码,兼容中文等非 Latin1 字符
15079
+ * @param {any} val 任意值,null/undefined 返回空串
15080
+ * @return {string}
15081
+ **/
15082
+ var base64 = function base64(val) {
15083
+ if (val === null || val === undefined) return '';
15084
+ try {
15085
+ return window.btoa(unescape(encodeURIComponent(String(val))));
15086
+ } catch (e) {
15087
+ return '';
15088
+ }
15089
+ };
15076
15090
  /* harmony default export */ var pagesvue_type_script_lang_js_ = ({
15077
15091
  name: 'Pages',
15078
15092
 
@@ -15201,10 +15215,23 @@ var pagesvue_type_script_lang_js_extends = Object.assign || function (target) {
15201
15215
  * @date 2024年9月7日
15202
15216
  **/
15203
15217
  renderUrl: function renderUrl(url) {
15218
+ if (!url || typeof url !== 'string') return url;
15204
15219
  var userInfo = this.$main.userInfo || this.$main.userModel || {};
15205
- for (var key in userInfo) {
15206
- url = url.replace(new RegExp('{' + key + '}', 'g'), userInfo[key]);
15207
- }
15220
+ Object.keys(userInfo).forEach(function (key) {
15221
+ var val = userInfo[key];
15222
+ if (val === null || val === undefined) return;
15223
+ var safeKey = Object(util["n" /* escapeRegexpString */])(key);
15224
+ var rawVal = String(val);
15225
+ var b64Val = base64(rawVal);
15226
+ // {base64-xxx} 与 {xxx} 两种占位符都要替换;
15227
+ // 使用函数式 replacement,避免值中的 $& / $1 等被特殊解释
15228
+ url = url.replace(new RegExp('\\{base64-' + safeKey + '\\}', 'g'), function () {
15229
+ return b64Val;
15230
+ });
15231
+ url = url.replace(new RegExp('\\{' + safeKey + '\\}', 'g'), function () {
15232
+ return rawVal;
15233
+ });
15234
+ });
15208
15235
  return url;
15209
15236
  },
15210
15237
  handleSelect: function handleSelect(res, index) {
@@ -15450,11 +15477,11 @@ var pagesvue_type_script_lang_js_extends = Object.assign || function (target) {
15450
15477
 
15451
15478
  var pages_component = Object(componentNormalizer["a" /* default */])(
15452
15479
  components_pagesvue_type_script_lang_js_,
15453
- pagesvue_type_template_id_35e35b04_scoped_true_render,
15454
- pagesvue_type_template_id_35e35b04_scoped_true_staticRenderFns,
15480
+ pagesvue_type_template_id_0340e2fa_scoped_true_render,
15481
+ pagesvue_type_template_id_0340e2fa_scoped_true_staticRenderFns,
15455
15482
  false,
15456
15483
  null,
15457
- "35e35b04",
15484
+ "0340e2fa",
15458
15485
  null
15459
15486
 
15460
15487
  )
@@ -750,7 +750,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
750
750
  },
751
751
 
752
752
  // 获取菜单图标颜色
753
- getColor: function getColor(index) {
753
+ getColor: function getColor(index, item) {
754
754
  if (!this.iconColors) {
755
755
  return undefined;
756
756
  }
@@ -759,7 +759,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
759
759
  if (!this._colorCache) {
760
760
  this._colorCache = {};
761
761
  }
762
-
762
+ var isParentMenuIcon = item.children && item.children.length || this.isFourthTabs && item.fourthTabs && item.fourthTabs.length;
763
763
  var key = Array.isArray(this.iconColors) ? 'index_' + index % this.iconColors.length : 'single_color';
764
764
 
765
765
  if (!this._colorCache[key]) {
@@ -767,7 +767,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
767
767
  this._colorCache[key] = {
768
768
  '--icon-bg-color': bgColor,
769
769
  '--icon-color': '#fff',
770
- '--icon-font-size': '12px'
770
+ '--icon-font-size': isParentMenuIcon ? '16px' : '12px'
771
771
  };
772
772
  }
773
773
 
@@ -793,7 +793,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
793
793
  extendData = item.extendData,
794
794
  rest = _objectWithoutProperties(item, ['id', 'index', 'open', 'extendData']);
795
795
 
796
- var openStatus = open || Boolean(extendData.openStatus);
796
+ var openStatus = open || extendData ? Boolean(extendData.openStatus) : false;
797
797
  var props = void 0;
798
798
  if (this.isFourthTabs) {
799
799
  if (item.children && item.children.length || item.fourthTabs && item.fourthTabs.length) {
package/lib/menu.js CHANGED
@@ -4748,8 +4748,8 @@ module.exports = require("vue");
4748
4748
  // ESM COMPAT FLAG
4749
4749
  __webpack_require__.r(__webpack_exports__);
4750
4750
 
4751
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/menu/src/menu.vue?vue&type=template&id=7ad225cf&
4752
- var menuvue_type_template_id_7ad225cf_render = function () {
4751
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/menu/src/menu.vue?vue&type=template&id=31887554&
4752
+ var menuvue_type_template_id_31887554_render = function () {
4753
4753
  var _vm = this
4754
4754
  var _h = _vm.$createElement
4755
4755
  var _c = _vm._self._c || _h
@@ -4805,7 +4805,7 @@ var menuvue_type_template_id_7ad225cf_render = function () {
4805
4805
  "open-icon": _vm.openIcon,
4806
4806
  "close-icon": _vm.closeIcon,
4807
4807
  isFourthTabs: _vm.isFourthTabs,
4808
- iconColor: _vm.getColor(index),
4808
+ iconColor: _vm.getColor(index, item),
4809
4809
  iconColors: _vm.iconColors,
4810
4810
  },
4811
4811
  },
@@ -4844,10 +4844,10 @@ var menuvue_type_template_id_7ad225cf_render = function () {
4844
4844
  )
4845
4845
  }
4846
4846
  var staticRenderFns = []
4847
- menuvue_type_template_id_7ad225cf_render._withStripped = true
4847
+ menuvue_type_template_id_31887554_render._withStripped = true
4848
4848
 
4849
4849
 
4850
- // CONCATENATED MODULE: ./packages/menu/src/menu.vue?vue&type=template&id=7ad225cf&
4850
+ // CONCATENATED MODULE: ./packages/menu/src/menu.vue?vue&type=template&id=31887554&
4851
4851
 
4852
4852
  // EXTERNAL MODULE: ./packages/menu/src/mixins.js
4853
4853
  var mixins = __webpack_require__(80);
@@ -5696,7 +5696,7 @@ var componentNormalizer = __webpack_require__(4);
5696
5696
 
5697
5697
  var component = Object(componentNormalizer["a" /* default */])(
5698
5698
  src_menuvue_type_script_lang_js_,
5699
- menuvue_type_template_id_7ad225cf_render,
5699
+ menuvue_type_template_id_31887554_render,
5700
5700
  staticRenderFns,
5701
5701
  false,
5702
5702
  null,
@@ -10499,7 +10499,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
10499
10499
  },
10500
10500
 
10501
10501
  // 获取菜单图标颜色
10502
- getColor: function getColor(index) {
10502
+ getColor: function getColor(index, item) {
10503
10503
  if (!this.iconColors) {
10504
10504
  return undefined;
10505
10505
  }
@@ -10508,7 +10508,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
10508
10508
  if (!this._colorCache) {
10509
10509
  this._colorCache = {};
10510
10510
  }
10511
-
10511
+ var isParentMenuIcon = item.children && item.children.length || this.isFourthTabs && item.fourthTabs && item.fourthTabs.length;
10512
10512
  var key = Array.isArray(this.iconColors) ? 'index_' + index % this.iconColors.length : 'single_color';
10513
10513
 
10514
10514
  if (!this._colorCache[key]) {
@@ -10516,7 +10516,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
10516
10516
  this._colorCache[key] = {
10517
10517
  '--icon-bg-color': bgColor,
10518
10518
  '--icon-color': '#fff',
10519
- '--icon-font-size': '12px'
10519
+ '--icon-font-size': isParentMenuIcon ? '16px' : '12px'
10520
10520
  };
10521
10521
  }
10522
10522
 
@@ -10542,7 +10542,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
10542
10542
  extendData = item.extendData,
10543
10543
  rest = _objectWithoutProperties(item, ['id', 'index', 'open', 'extendData']);
10544
10544
 
10545
- var openStatus = open || Boolean(extendData.openStatus);
10545
+ var openStatus = open || extendData ? Boolean(extendData.openStatus) : false;
10546
10546
  var props = void 0;
10547
10547
  if (this.isFourthTabs) {
10548
10548
  if (item.children && item.children.length || item.fourthTabs && item.fourthTabs.length) {
package/lib/submenu.js CHANGED
@@ -4481,7 +4481,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
4481
4481
  },
4482
4482
 
4483
4483
  // 获取菜单图标颜色
4484
- getColor: function getColor(index) {
4484
+ getColor: function getColor(index, item) {
4485
4485
  if (!this.iconColors) {
4486
4486
  return undefined;
4487
4487
  }
@@ -4490,7 +4490,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
4490
4490
  if (!this._colorCache) {
4491
4491
  this._colorCache = {};
4492
4492
  }
4493
-
4493
+ var isParentMenuIcon = item.children && item.children.length || this.isFourthTabs && item.fourthTabs && item.fourthTabs.length;
4494
4494
  var key = Array.isArray(this.iconColors) ? 'index_' + index % this.iconColors.length : 'single_color';
4495
4495
 
4496
4496
  if (!this._colorCache[key]) {
@@ -4498,7 +4498,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
4498
4498
  this._colorCache[key] = {
4499
4499
  '--icon-bg-color': bgColor,
4500
4500
  '--icon-color': '#fff',
4501
- '--icon-font-size': '12px'
4501
+ '--icon-font-size': isParentMenuIcon ? '16px' : '12px'
4502
4502
  };
4503
4503
  }
4504
4504
 
@@ -4524,7 +4524,7 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
4524
4524
  extendData = item.extendData,
4525
4525
  rest = _objectWithoutProperties(item, ['id', 'index', 'open', 'extendData']);
4526
4526
 
4527
- var openStatus = open || Boolean(extendData.openStatus);
4527
+ var openStatus = open || extendData ? Boolean(extendData.openStatus) : false;
4528
4528
  var props = void 0;
4529
4529
  if (this.isFourthTabs) {
4530
4530
  if (item.children && item.children.length || item.fourthTabs && item.fourthTabs.length) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eoss",
3
- "version": "0.1.0-alpha.37",
3
+ "version": "0.1.0-alpha.38",
4
4
  "description": "eoss内部业务组件",
5
5
  "main": "lib/eoss.common.js",
6
6
  "files": [
@@ -125,7 +125,12 @@
125
125
 
126
126
  <script>
127
127
  import { getStorage } from 'eoss/src/utils/storage';
128
- import { indexOfObj, uuid, timestampUrl } from 'eoss/src/utils/util';
128
+ import {
129
+ indexOfObj,
130
+ uuid,
131
+ timestampUrl,
132
+ escapeRegexpString
133
+ } from 'eoss/src/utils/util';
129
134
  import RouterPage from './router-page.vue';
130
135
  import Wujie from 'eoss/packages/wujie';
131
136
 
@@ -133,6 +138,20 @@ import EsCard from 'eoss/packages/card';
133
138
  import EsMenu from 'eoss/packages/menu';
134
139
  import EsTabPane from 'eoss/packages/tab-pane';
135
140
  import EsTabs from 'eoss/packages/tabs';
141
+
142
+ /**
143
+ * @desc: Unicode 安全的 base64 编码,兼容中文等非 Latin1 字符
144
+ * @param {any} val 任意值,null/undefined 返回空串
145
+ * @return {string}
146
+ **/
147
+ const base64 = (val) => {
148
+ if (val === null || val === undefined) return '';
149
+ try {
150
+ return window.btoa(unescape(encodeURIComponent(String(val))));
151
+ } catch (e) {
152
+ return '';
153
+ }
154
+ };
136
155
  export default {
137
156
  name: 'Pages',
138
157
 
@@ -264,10 +283,22 @@ export default {
264
283
  * @date 2024年9月7日
265
284
  **/
266
285
  renderUrl(url) {
286
+ if (!url || typeof url !== 'string') return url;
267
287
  const userInfo = this.$main.userInfo || this.$main.userModel || {};
268
- for (let key in userInfo) {
269
- url = url.replace(new RegExp(`{${key}}`, 'g'), userInfo[key]);
270
- }
288
+ Object.keys(userInfo).forEach((key) => {
289
+ const val = userInfo[key];
290
+ if (val === null || val === undefined) return;
291
+ const safeKey = escapeRegexpString(key);
292
+ const rawVal = String(val);
293
+ const b64Val = base64(rawVal);
294
+ // {base64-xxx} 与 {xxx} 两种占位符都要替换;
295
+ // 使用函数式 replacement,避免值中的 $& / $1 等被特殊解释
296
+ url = url.replace(
297
+ new RegExp(`\\{base64-${safeKey}\\}`, 'g'),
298
+ () => b64Val
299
+ );
300
+ url = url.replace(new RegExp(`\\{${safeKey}\\}`, 'g'), () => rawVal);
301
+ });
271
302
  return url;
272
303
  },
273
304
 
@@ -40,7 +40,7 @@
40
40
  :open-icon="openIcon"
41
41
  :close-icon="closeIcon"
42
42
  :isFourthTabs="isFourthTabs"
43
- :iconColor="getColor(index)"
43
+ :iconColor="getColor(index, item)"
44
44
  :iconColors="iconColors"
45
45
  ></component>
46
46
  </slot>
@@ -49,7 +49,7 @@ export default {
49
49
  return componentType;
50
50
  },
51
51
  // 获取菜单图标颜色
52
- getColor(index) {
52
+ getColor(index, item) {
53
53
  if (!this.iconColors) {
54
54
  return undefined;
55
55
  }
@@ -58,7 +58,7 @@ export default {
58
58
  if (!this._colorCache) {
59
59
  this._colorCache = {};
60
60
  }
61
-
61
+ const isParentMenuIcon = item.children && item.children.length || (this.isFourthTabs && item.fourthTabs && item.fourthTabs.length);
62
62
  const key = Array.isArray(this.iconColors) ? `index_${index % this.iconColors.length}` : 'single_color';
63
63
 
64
64
  if (!this._colorCache[key]) {
@@ -66,7 +66,7 @@ export default {
66
66
  this._colorCache[key] = {
67
67
  '--icon-bg-color': bgColor,
68
68
  '--icon-color': '#fff',
69
- '--icon-font-size': '12px'
69
+ '--icon-font-size': isParentMenuIcon ? '16px' : '12px'
70
70
  };
71
71
  }
72
72
 
@@ -89,7 +89,7 @@ export default {
89
89
  }
90
90
 
91
91
  const { id, index, open, extendData, ...rest } = item;
92
- const openStatus = open || Boolean(extendData.openStatus);
92
+ const openStatus = open || extendData ? Boolean(extendData.openStatus) : false;
93
93
  let props;
94
94
  if (this.isFourthTabs) {
95
95
  if ((item.children && item.children.length) || (item.fourthTabs && item.fourthTabs.length)) {
package/src/index.js CHANGED
@@ -266,7 +266,7 @@ if (typeof window !== 'undefined' && window.Vue) {
266
266
  }
267
267
 
268
268
  export default {
269
- version: '0.1.0-alpha.37',
269
+ version: '0.1.0-alpha.38',
270
270
  install,
271
271
  CollapseTransition,
272
272
  Loading,