@ibiz-template/vue3-components 0.6.3 → 0.6.4

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.
Files changed (57) hide show
  1. package/dist/index-tEQ1ilmX.js +4 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/{xlsx-util-c9vmypX3.js → xlsx-util-bI30RU42.js} +1 -1
  5. package/es/control/calendar/calendar.css +1 -1
  6. package/es/control/calendar/calendar.d.ts +1 -0
  7. package/es/control/calendar/calendar.mjs +32 -11
  8. package/es/control/calendar/index.d.ts +1 -0
  9. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +16 -16
  10. package/es/control/grid/grid/grid.css +1 -1
  11. package/es/control/kanban/kanban.css +1 -1
  12. package/es/control/toolbar/toolbar.css +1 -1
  13. package/es/control/toolbar/toolbar.mjs +15 -2
  14. package/es/control/tree-grid-ex/tree-grid-ex.css +1 -1
  15. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.d.ts +1 -0
  16. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.mjs +9 -2
  17. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +4 -1
  18. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +1 -0
  19. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +17 -2
  20. package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.d.ts +1 -0
  21. package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.mjs +9 -2
  22. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.d.ts +1 -0
  23. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.mjs +9 -2
  24. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +1 -0
  25. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.d.ts +1 -0
  26. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.mjs +11 -1
  27. package/es/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.provider.d.ts +8 -0
  28. package/es/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.provider.mjs +27 -17
  29. package/es/panel-component/user-message/user-message.css +1 -1
  30. package/es/panel-component/user-message/user-message.mjs +6 -4
  31. package/es/util/notification-util/notification-util.mjs +3 -1
  32. package/es/view-engine/edit-view.engine.mjs +5 -1
  33. package/es/view-engine/opt-view.engine.mjs +5 -1
  34. package/es/web-app/main.mjs +2 -2
  35. package/lib/control/calendar/calendar.cjs +32 -11
  36. package/lib/control/calendar/calendar.css +1 -1
  37. package/lib/control/grid/grid/grid.css +1 -1
  38. package/lib/control/kanban/kanban.css +1 -1
  39. package/lib/control/toolbar/toolbar.cjs +15 -2
  40. package/lib/control/toolbar/toolbar.css +1 -1
  41. package/lib/control/tree-grid-ex/tree-grid-ex.css +1 -1
  42. package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.cjs +9 -2
  43. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +4 -1
  44. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +17 -2
  45. package/lib/editor/date-picker/ibiz-date-picker/ibiz-date-picker.cjs +9 -2
  46. package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.cjs +9 -2
  47. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +1 -0
  48. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.cjs +11 -1
  49. package/lib/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.provider.cjs +27 -17
  50. package/lib/panel-component/user-message/user-message.cjs +5 -3
  51. package/lib/panel-component/user-message/user-message.css +1 -1
  52. package/lib/util/notification-util/notification-util.cjs +3 -1
  53. package/lib/view-engine/edit-view.engine.cjs +5 -1
  54. package/lib/view-engine/opt-view.engine.cjs +5 -1
  55. package/lib/web-app/main.cjs +2 -2
  56. package/package.json +4 -4
  57. package/dist/index-9YFoUwI0.js +0 -4
@@ -100,6 +100,11 @@ const IBizDatePicker = /* @__PURE__ */ vue.defineComponent({
100
100
  }, {
101
101
  immediate: true
102
102
  });
103
+ const handleKeyUp = (e) => {
104
+ if (e && e.code === "Enter") {
105
+ emit("enter", e);
106
+ }
107
+ };
103
108
  return {
104
109
  ns,
105
110
  c,
@@ -114,7 +119,8 @@ const IBizDatePicker = /* @__PURE__ */ vue.defineComponent({
114
119
  onBlur,
115
120
  isEditable,
116
121
  setEditable,
117
- showFormDefaultContent
122
+ showFormDefaultContent,
123
+ handleKeyUp
118
124
  };
119
125
  },
120
126
  render() {
@@ -150,7 +156,8 @@ const IBizDatePicker = /* @__PURE__ */ vue.defineComponent({
150
156
  "class": this.ns.b("form-default-content")
151
157
  }, [this.formatValue ? this.formatValue : "-"]);
152
158
  return vue.createVNode("div", {
153
- "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.e(this.editorModel.editorType), this.ns.is("editable", this.isEditable), this.ns.is("show-default", this.showFormDefaultContent)]
159
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.e(this.editorModel.editorType), this.ns.is("editable", this.isEditable), this.ns.is("show-default", this.showFormDefaultContent)],
160
+ "onKeyup": this.handleKeyUp
154
161
  }, [this.showFormDefaultContent && formDefaultContent, this.readonly ? readonlyContent : editContent]);
155
162
  }
156
163
  });
@@ -117,6 +117,11 @@ const IBizDateRangePicker = /* @__PURE__ */ vue.defineComponent({
117
117
  }
118
118
  return null;
119
119
  });
120
+ const handleKeyUp = (e) => {
121
+ if (e && e.code === "Enter") {
122
+ emit("enter", e);
123
+ }
124
+ };
120
125
  return {
121
126
  ns,
122
127
  c,
@@ -135,7 +140,8 @@ const IBizDateRangePicker = /* @__PURE__ */ vue.defineComponent({
135
140
  valueText,
136
141
  isEditable,
137
142
  setEditable,
138
- showFormDefaultContent
143
+ showFormDefaultContent,
144
+ handleKeyUp
139
145
  };
140
146
  },
141
147
  render() {
@@ -175,7 +181,8 @@ const IBizDateRangePicker = /* @__PURE__ */ vue.defineComponent({
175
181
  "unlink-panels": this.unlinkPanels
176
182
  }, null) : "-"]);
177
183
  return vue.createVNode("div", {
178
- "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("editable", this.isEditable), this.ns.is("show-default", this.showFormDefaultContent)]
184
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("editable", this.isEditable), this.ns.is("show-default", this.showFormDefaultContent)],
185
+ "onKeyup": this.handleKeyUp
179
186
  }, [this.showFormDefaultContent && formDefaultContent, this.readonly ? readonlyContent : editContent]);
180
187
  }
181
188
  });
@@ -243,6 +243,7 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
243
243
  "loading": this.isLoading,
244
244
  "onBlur": this.onBlur,
245
245
  "onFocus": this.onFocus,
246
+ "onKeyup": this.handleKeyUp,
246
247
  "onVisibleChange": this.onVisibleChange,
247
248
  "props": {
248
249
  class: this.customNodeClass
@@ -78,6 +78,11 @@ const IBizInputIP = /* @__PURE__ */ vue.defineComponent({
78
78
  }
79
79
  }, 0);
80
80
  };
81
+ const handleKeyUp = (e) => {
82
+ if (e && e.code === "Enter") {
83
+ emit("enter", e);
84
+ }
85
+ };
81
86
  return {
82
87
  ns,
83
88
  c,
@@ -88,7 +93,8 @@ const IBizInputIP = /* @__PURE__ */ vue.defineComponent({
88
93
  secIp,
89
94
  thirdIp,
90
95
  forIp,
91
- showFormDefaultContent
96
+ showFormDefaultContent,
97
+ handleKeyUp
92
98
  };
93
99
  },
94
100
  render() {
@@ -101,6 +107,7 @@ const IBizInputIP = /* @__PURE__ */ vue.defineComponent({
101
107
  "readonly": this.readonly,
102
108
  "onFocus": this.getFocus,
103
109
  "onBlur": this.blur,
110
+ "onKeyup": this.handleKeyUp,
104
111
  "maxlength": 3,
105
112
  "modelValue": this.firstIp,
106
113
  "onUpdate:modelValue": ($event) => this.firstIp = $event
@@ -111,6 +118,7 @@ const IBizInputIP = /* @__PURE__ */ vue.defineComponent({
111
118
  "readonly": this.readonly,
112
119
  "onFocus": this.getFocus,
113
120
  "onBlur": this.blur,
121
+ "onKeyup": this.handleKeyUp,
114
122
  "maxlength": 3,
115
123
  "modelValue": this.secIp,
116
124
  "onUpdate:modelValue": ($event) => this.secIp = $event
@@ -121,6 +129,7 @@ const IBizInputIP = /* @__PURE__ */ vue.defineComponent({
121
129
  "readonly": this.readonly,
122
130
  "onFocus": this.getFocus,
123
131
  "onBlur": this.blur,
132
+ "onKeyup": this.handleKeyUp,
124
133
  "maxlength": 3,
125
134
  "modelValue": this.thirdIp,
126
135
  "onUpdate:modelValue": ($event) => this.thirdIp = $event
@@ -131,6 +140,7 @@ const IBizInputIP = /* @__PURE__ */ vue.defineComponent({
131
140
  "readonly": this.readonly,
132
141
  "onFocus": this.getFocus,
133
142
  "onBlur": this.blur,
143
+ "onKeyup": this.handleKeyUp,
134
144
  "maxlength": 3,
135
145
  "modelValue": this.forIp,
136
146
  "onUpdate:modelValue": ($event) => this.forIp = $event
@@ -27,16 +27,7 @@ class InternalMessageDefaultProvider {
27
27
  async onClick(message, _event) {
28
28
  await ibiz.hub.notice.internalMessage.markRead(message);
29
29
  const redirectUrl = ibiz.env.isMob ? message.mobile_url : message.url;
30
- if (redirectUrl) {
31
- if (redirectUrl.startsWith("view://")) {
32
- this.openRedirectView(message, redirectUrl);
33
- } else if (redirectUrl.startsWith("route://")) {
34
- const routeUrl = "/".concat(redirectUrl.split("route://")[1]);
35
- this.router.push(routeUrl);
36
- }
37
- return true;
38
- }
39
- return false;
30
+ return this.openViewByUrl(redirectUrl);
40
31
  }
41
32
  /**
42
33
  * 解析url并打开对应视图,打开视图前会先标记已读
@@ -48,13 +39,32 @@ class InternalMessageDefaultProvider {
48
39
  */
49
40
  async openRedirectView(msg, redirectUrl) {
50
41
  await ibiz.hub.notice.internalMessage.markRead(msg);
51
- const { viewId, context, params } = runtime.parseViewProtocol(redirectUrl);
52
- ibiz.commands.execute(
53
- runtime.OpenAppViewCommand.TAG,
54
- viewId,
55
- core.IBizContext.create(context),
56
- params
57
- );
42
+ this.openViewByUrl(redirectUrl);
43
+ }
44
+ /**
45
+ * 解析url并打开对应视图
46
+ * @param {string} redirectUrl
47
+ * @return {*}
48
+ * @author: zhujiamin
49
+ * @Date: 2024-03-04 11:16:40
50
+ */
51
+ openViewByUrl(redirectUrl) {
52
+ if (redirectUrl) {
53
+ if (redirectUrl.startsWith("view://")) {
54
+ const { viewId, context, params } = runtime.parseViewProtocol(redirectUrl);
55
+ ibiz.commands.execute(
56
+ runtime.OpenAppViewCommand.TAG,
57
+ viewId,
58
+ core.IBizContext.create(context),
59
+ params
60
+ );
61
+ } else if (redirectUrl.startsWith("route://")) {
62
+ const routeUrl = "/".concat(redirectUrl.split("route://")[1]);
63
+ this.router.push(routeUrl);
64
+ }
65
+ return true;
66
+ }
67
+ return false;
58
68
  }
59
69
  }
60
70
 
@@ -6,6 +6,8 @@ var runtime = require('@ibiz-template/runtime');
6
6
  require('./user-message.css');
7
7
  var asyncActionTab = require('./async-action/async-action-tab/async-action-tab.cjs');
8
8
  require('./internal-message/index.cjs');
9
+ require('./internal-message/common/index.cjs');
10
+ var internalMessageDefault_provider = require('./internal-message/common/internal-message-default/internal-message-default.provider.cjs');
9
11
  var internalMessageTab = require('./internal-message/internal-message-tab/internal-message-tab.cjs');
10
12
 
11
13
  "use strict";
@@ -27,6 +29,8 @@ const UserMessage = /* @__PURE__ */ vue.defineComponent({
27
29
  const noticeController = ibiz.hub.notice;
28
30
  const showPopover = vue.ref(false);
29
31
  let hiddenTime = 0;
32
+ noticeController.internalMessage.ns = ns;
33
+ noticeController.internalMessage.provider = new internalMessageDefault_provider.InternalMessageDefaultProvider();
30
34
  const currentTab = vue.ref("notification");
31
35
  const sysImage = props.modelData.sysImage || {
32
36
  imagePath: "svg/message.svg"
@@ -40,9 +44,6 @@ const UserMessage = /* @__PURE__ */ vue.defineComponent({
40
44
  noticeNum.value = total;
41
45
  };
42
46
  noticeController.evt.on("totalChange", onNumChange);
43
- vue.onUnmounted(() => {
44
- noticeController.evt.off("totalChange", onNumChange);
45
- });
46
47
  const onBatchReadClick = () => {
47
48
  noticeController.internalMessage.batchMarkRead();
48
49
  };
@@ -67,6 +68,7 @@ const UserMessage = /* @__PURE__ */ vue.defineComponent({
67
68
  document.addEventListener("visibilitychange", handleVisibleChange);
68
69
  });
69
70
  vue.onUnmounted(() => {
71
+ noticeController.evt.off("totalChange", onNumChange);
70
72
  document.removeEventListener("visibilitychange", handleVisibleChange);
71
73
  });
72
74
  return {
@@ -1 +1 @@
1
- .ibiz-user-message{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ibiz-user-message__image{width:28px;height:28px;cursor:pointer}.ibiz-user-message__badge .el-badge__content{top:4px;right:calc(7px + var(--el-badge-size)/ 2);border-width:0}.ibiz-user-message-popover{width:500px!important;height:500px!important}.ibiz-user-message-popover.el-popover{padding-top:2px;padding-bottom:0}.ibiz-user-message-popover-content-box{position:relative;height:100%}.ibiz-user-message-popover-icons{position:absolute;top:10px;right:0}.ibiz-user-message-popover-icons .ibiz-user-message-popover-icons-read{cursor:pointer}.ibiz-user-message-popover-icons .ibiz-user-message-popover-icons-read:hover{color:var(--ibiz-color-primary)}.ibiz-user-message-popover-content{height:100%}.ibiz-user-message-popover-content>.el-tabs__content{height:calc(100% - 55px)}.ibiz-user-message-popover-content>.el-tabs__content>.el-tab-pane{height:100%;overflow:auto}
1
+ .ibiz-user-message{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ibiz-user-message__image{width:28px;height:28px;cursor:pointer}.ibiz-user-message__badge .el-badge__content{top:4px;right:calc(7px + var(--el-badge-size)/ 2);border-width:0}.ibiz-user-message-popover{width:500px!important;height:500px!important}.ibiz-user-message-popover.el-popover{padding-top:2px;padding-bottom:0}.ibiz-user-message-popover-content-box{position:relative;height:100%}.ibiz-user-message-popover-icons{position:absolute;top:10px;right:0}.ibiz-user-message-popover-icons .ibiz-user-message-popover-icons-read{cursor:pointer}.ibiz-user-message-popover-icons .ibiz-user-message-popover-icons-read:hover{color:var(--ibiz-color-primary)}.ibiz-user-message-popover-content{height:100%}.ibiz-user-message-popover-content>.el-tabs__content{height:calc(100% - 55px)}.ibiz-user-message-popover-content>.el-tabs__content>.el-tab-pane{height:100%;overflow:auto}.ibiz-user-message-notice{padding:var(--ibiz-spacing-tight)}.ibiz-user-message-notice .el-notification__group{margin:0}
@@ -57,7 +57,9 @@ class NotificationUtil {
57
57
  dangerouslyUseHTMLString: !!params.isHtmlDesc,
58
58
  type: noticeType,
59
59
  position: params.position || "top-right",
60
- duration
60
+ duration,
61
+ customClass: params.class,
62
+ onClick: params.onClick
61
63
  });
62
64
  }
63
65
  /**
@@ -60,13 +60,17 @@ class EditViewEngine extends runtime.ViewEngineBase {
60
60
  }
61
61
  this.view.slotProps.toolbar.manualCalcButtonState = true;
62
62
  modal.hooks.shouldDismiss.tapPromise(async (context) => {
63
- if (this.form.state.modified && this.view.model.enableDirtyChecking === true) {
63
+ const uiDomain = ibiz.uiDomainManager.get(this.view.context.srfsessionid);
64
+ const isChange = (this.form.state.modified || uiDomain.dataModification) && this.view.model.enableDirtyChecking === true;
65
+ if (isChange && context.allowClose == null) {
64
66
  const isAllow = await ibiz.confirm.error({
65
67
  title: "\u5173\u95ED\u63D0\u9192",
66
68
  desc: "\u8868\u5355\u6570\u636E\u5DF2\u7ECF\u4FEE\u6539\uFF0C\u786E\u5B9A\u8981\u5173\u95ED\uFF1F"
67
69
  });
68
70
  if (!isAllow) {
69
71
  context.allowClose = false;
72
+ } else {
73
+ context.allowClose = true;
70
74
  }
71
75
  }
72
76
  });
@@ -32,13 +32,17 @@ class OptViewEngine extends runtime.ViewEngineBase {
32
32
  }
33
33
  this.view.slotProps.toolbar.manualCalcButtonState = true;
34
34
  modal.hooks.shouldDismiss.tapPromise(async (context) => {
35
- if (this.form.state.modified && this.view.model.enableDirtyChecking === true) {
35
+ const uiDomain = ibiz.uiDomainManager.get(this.view.context.srfsessionid);
36
+ const isChange = (this.form.state.modified || uiDomain.dataModification) && this.view.model.enableDirtyChecking === true;
37
+ if (isChange && context.allowClose == null) {
36
38
  const isAllow = await ibiz.confirm.error({
37
39
  title: "\u5173\u95ED\u63D0\u9192",
38
40
  desc: "\u8868\u5355\u6570\u636E\u5DF2\u7ECF\u4FEE\u6539\uFF0C\u786E\u5B9A\u8981\u5173\u95ED\uFF1F"
39
41
  });
40
42
  if (!isAllow) {
41
43
  context.allowClose = false;
44
+ } else {
45
+ context.allowClose = true;
42
46
  }
43
47
  }
44
48
  });
@@ -10,6 +10,7 @@ require('./util/index.cjs');
10
10
  var index = require('./router/index.cjs');
11
11
  require('../util/index.cjs');
12
12
  require('./guard/index.cjs');
13
+ var unauthorizedHandler = require('./util/unauthorized-handler/unauthorized-handler.cjs');
13
14
  var dynaAuthGuard = require('./guard/auth-guard/dyna-auth-guard.cjs');
14
15
  var openViewUtil = require('../util/open-view-util/open-view-util.cjs');
15
16
  var messageUtil = require('../util/message-util/message-util.cjs');
@@ -19,7 +20,6 @@ var notificationUtil = require('../util/notification-util/notification-util.cjs'
19
20
  var loadingUtil = require('../util/loading-util/loading-util.cjs');
20
21
  var noticeUtil = require('../util/notice-util/notice-util.cjs');
21
22
  var overlayController = require('../util/overlay-controller/overlay-controller.cjs');
22
- var unauthorizedHandler = require('./util/unauthorized-handler/unauthorized-handler.cjs');
23
23
 
24
24
  "use strict";
25
25
  async function runApp(plugins, opts) {
@@ -33,6 +33,7 @@ async function runApp(plugins, opts) {
33
33
  core.install();
34
34
  runtime.install();
35
35
  ibiz.plugin = new vue3Util.PluginFactory();
36
+ ibiz.util.error.register(new unauthorizedHandler.UnauthorizedHandler());
36
37
  const app = createVueApp.createVueApp(App.default);
37
38
  vue3Util.OverlayContainer.createVueApp = createVueApp.createVueApp;
38
39
  window.onerror = function(_event, _source, _lineno, _colno, error) {
@@ -66,7 +67,6 @@ async function runApp(plugins, opts) {
66
67
  ibiz.util.text.format = (value, code) => {
67
68
  return app.config.globalProperties.$textFormat(value, code);
68
69
  };
69
- ibiz.util.error.register(new unauthorizedHandler.UnauthorizedHandler());
70
70
  await ibiz.i18n.init();
71
71
  app.mount("#app");
72
72
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/vue3-components",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "description": "使用 rollup 编译 vue 组件或者 jsx",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.mjs",
@@ -32,10 +32,10 @@
32
32
  "@ibiz-template-plugin/gantt": "0.1.3-alpha.41",
33
33
  "@ibiz-template/core": "0.6.3",
34
34
  "@ibiz-template/devtool": "0.0.1-dev.6",
35
- "@ibiz-template/model-helper": "0.6.3",
36
- "@ibiz-template/runtime": "0.6.3",
35
+ "@ibiz-template/model-helper": "0.6.4",
36
+ "@ibiz-template/runtime": "0.6.4",
37
37
  "@ibiz-template/theme": "^0.6.0",
38
- "@ibiz-template/vue3-util": "0.6.3",
38
+ "@ibiz-template/vue3-util": "0.6.4",
39
39
  "@ibiz-template/web-theme": "^1.1.11",
40
40
  "@ibiz/model-core": "^0.1.14",
41
41
  "@imengyu/vue3-context-menu": "^1.3.5",