@ibiz-template/vue3-components 0.6.0-alpha.0 → 0.6.0-alpha.3

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 (36) hide show
  1. package/dist/index-YUUYgkW-.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-GpIzYBZB.js → xlsx-util-Ao2cn6nx.js} +1 -1
  5. package/es/common/doing-notice/doing-notice.css +1 -1
  6. package/es/common/doing-notice/doing-notice.mjs +1 -1
  7. package/es/common/grid-setting/grid-setting.d.ts +1 -0
  8. package/es/control/caption-bar/caption-bar.mjs +10 -1
  9. package/es/control/search-bar/filter-tree/filter-tree.d.ts +2 -0
  10. package/es/control/search-bar/filter-tree/filter-tree.mjs +3 -2
  11. package/es/control/toolbar/export-excel/export-excel.css +1 -1
  12. package/es/control/toolbar/export-excel/export-excel.d.ts +8 -0
  13. package/es/control/toolbar/export-excel/export-excel.mjs +81 -4
  14. package/es/control/toolbar/index.d.ts +9 -0
  15. package/es/control/toolbar/toolbar.css +1 -1
  16. package/es/control/toolbar/toolbar.d.ts +9 -0
  17. package/es/control/toolbar/toolbar.mjs +64 -38
  18. package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +1 -0
  19. package/es/view-engine/edit-view.engine.d.ts +1 -0
  20. package/es/view-engine/edit-view.engine.mjs +27 -2
  21. package/es/view-engine/opt-view.engine.mjs +4 -0
  22. package/es/web-app/components/modal-router-shell/modal-router-shell.mjs +3 -3
  23. package/lib/common/doing-notice/doing-notice.cjs +1 -1
  24. package/lib/common/doing-notice/doing-notice.css +1 -1
  25. package/lib/control/caption-bar/caption-bar.cjs +9 -0
  26. package/lib/control/search-bar/filter-tree/filter-tree.cjs +3 -1
  27. package/lib/control/toolbar/export-excel/export-excel.cjs +81 -4
  28. package/lib/control/toolbar/export-excel/export-excel.css +1 -1
  29. package/lib/control/toolbar/toolbar.cjs +64 -38
  30. package/lib/control/toolbar/toolbar.css +1 -1
  31. package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +1 -0
  32. package/lib/view-engine/edit-view.engine.cjs +26 -1
  33. package/lib/view-engine/opt-view.engine.cjs +4 -0
  34. package/lib/web-app/components/modal-router-shell/modal-router-shell.cjs +2 -2
  35. package/package.json +4 -4
  36. package/dist/index-V5mBTTSl.js +0 -4
@@ -1 +1 @@
1
- .ibiz-async-action-notice.el-notification{width:auto}.ibiz-async-action-notice.el-notification .el-notification__group{margin:0}.ibiz-async-action-notice.el-notification .el-notification__closeBtn{top:5px;right:5px}.ibiz-doing-notice__text{margin-right:8px}.ibiz-doing-notice__num{margin:0 8px;font-size:18px;font-weight:700;color:var(--ibiz-color-danger)}.ibiz-doing-notice__loading-icon{width:18px;height:18px;margin-right:6px;vertical-align:middle;animation:loading-rotate 2s linear infinite}.ibiz-doing-notice__loading-icon .path{stroke:var(--ibiz-color-primary);stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2;animation:loading-dash 1.5s ease-in-out infinite}
1
+ .ibiz-async-action-notice.el-notification{width:auto}.ibiz-async-action-notice.el-notification .el-notification__group{margin:0}.ibiz-async-action-notice.el-notification .el-notification__closeBtn{top:5px;right:5px}.ibiz-doing-notice__text{margin-right:8px}.ibiz-doing-notice__num{margin:0 8px;font-size:18px;font-weight:700;color:var(--ibiz-color-primary)}.ibiz-doing-notice__loading-icon{width:18px;height:18px;margin-right:6px;vertical-align:middle;animation:loading-rotate 2s linear infinite}.ibiz-doing-notice__loading-icon .path{stroke:var(--ibiz-color-primary);stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2;animation:loading-dash 1.5s ease-in-out infinite}
@@ -24,7 +24,7 @@ const DoingNotice = /* @__PURE__ */ defineComponent({
24
24
  "class": this.ns.e("text")
25
25
  }, [createTextVNode("\u6709"), createVNode("span", {
26
26
  "class": this.ns.e("num")
27
- }, [this.info.num]), createTextVNode("\u4E2A\u5F02\u6B65\u64CD\u4F5C\u6B63\u5728\u6267\u884C\uFF0C\u8BF7\u7A0D\u540E")]), createVNode("svg", {
27
+ }, [this.info.num]), createTextVNode("\u4E2A\u540E\u53F0\u4F5C\u4E1A\u6B63\u5728\u6267\u884C\uFF0C\u8BF7\u7A0D\u540E")]), createVNode("svg", {
28
28
  "class": this.ns.e("loading-icon"),
29
29
  "viewBox": "-10, -10, 50, 50"
30
30
  }, [createVNode("path", {
@@ -19,6 +19,7 @@ export declare const IBizGridSetting: import("vue").DefineComponent<{
19
19
  hidden: boolean;
20
20
  uaColumn: boolean;
21
21
  fixed?: "left" | "right" | undefined;
22
+ adaptive?: boolean | undefined;
22
23
  }[]>;
23
24
  isDraggable: import("vue").ComputedRef<boolean>;
24
25
  handleClick: (dragColumnState: IColumnState) => void;
@@ -1,4 +1,4 @@
1
- import { resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { onActivated, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './caption-bar.css';
4
4
  import { CaptionBarController } from '@ibiz-template/runtime';
@@ -26,6 +26,15 @@ const CaptionBarControl = /* @__PURE__ */ defineComponent({
26
26
  setup() {
27
27
  const c = useControlController((...args) => new CaptionBarController(...args));
28
28
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
29
+ const modalMode = c.view.modal.mode;
30
+ if (modalMode === "ROUTE") {
31
+ ibiz.util.setBrowserTitle(c.state.caption);
32
+ }
33
+ onActivated(() => {
34
+ if (modalMode === "ROUTE") {
35
+ ibiz.util.setBrowserTitle(c.state.caption);
36
+ }
37
+ });
29
38
  return {
30
39
  c,
31
40
  ns
@@ -1,6 +1,8 @@
1
1
  import { IFilterBranchNode, IFilterLeafNode, IFilterNode, SearchBarFilterController } from '@ibiz-template/runtime';
2
2
  import { PropType } from 'vue';
3
3
  import './filter-tree.scss';
4
+ /** 不需要编辑器的OP */
5
+ export declare const ExcludeOPs: string[];
4
6
  export declare const FilterTreeControl: import("vue").DefineComponent<{
5
7
  /**
6
8
  * 过滤项控制器集合
@@ -47,6 +47,7 @@ const FilterModes = [{
47
47
  valueOP: ValueOP.RIGHT_LIKE,
48
48
  label: "\u6587\u672C\u53F3\u5305\u542B(#%)"
49
49
  }];
50
+ const ExcludeOPs = [ValueOP.IS_NULL, ValueOP.IS_NOT_NULL];
50
51
  const FilterTreeControl = /* @__PURE__ */ defineComponent({
51
52
  name: "IBizFilterTreeControl",
52
53
  props: {
@@ -150,7 +151,7 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
150
151
  });
151
152
  };
152
153
  const renderEditor = (node, filterC) => {
153
- if (filterC.noEditor) {
154
+ if (filterC.noEditor || node.valueOP && ExcludeOPs.includes(node.valueOP)) {
154
155
  return null;
155
156
  }
156
157
  let editor = null;
@@ -309,4 +310,4 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
309
310
  }
310
311
  });
311
312
 
312
- export { FilterTreeControl };
313
+ export { ExcludeOPs, FilterTreeControl };
@@ -1 +1 @@
1
- .ibiz-export-excel{width:270px}.ibiz-export-excel__custom{display:flex;align-items:center;justify-content:center}.ibiz-export-excel__custom>*+*{margin-left:10px}.ibiz-export-excel__custom.el-dropdown-menu__item:focus{color:var(--el-text-color-regular);background-color:transparent}.ibiz-export-excel__custom .el-input{--el-input-text-color:var(--ibiz-color-white)}.ibiz-export-excel__button{display:flex;align-items:center;justify-content:center;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}.ibiz-export-excel__button>span{display:flex;align-items:center;justify-content:center;font-size:14px;pointer-events:none}.ibiz-export-excel__button i,.ibiz-export-excel__button img{display:inline-block;max-width:var(--ibiz-width-icon-medium);max-height:var(--ibiz-width-icon-medium);margin:0 var(--ibiz-spacing-extra-tight) 0 0}
1
+ .ibiz-export-excel{width:270px}.ibiz-export-excel__custom{display:flex;align-items:center;justify-content:center}.ibiz-export-excel__custom>*+*{margin-left:10px}.ibiz-export-excel__custom.el-dropdown-menu__item:focus{color:var(--el-text-color-regular);background-color:transparent}.ibiz-export-excel__custom .el-input{--el-input-text-color:var(--ibiz-color-white)}.ibiz-export-excel__button{display:flex;align-items:center;justify-content:center;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}.ibiz-export-excel__button>span{display:flex;align-items:center;justify-content:center;font-size:14px;pointer-events:none}.ibiz-export-excel__button i,.ibiz-export-excel__button img{display:inline-block;max-width:var(--ibiz-width-icon-medium);max-height:var(--ibiz-width-icon-medium);margin:0 var(--ibiz-spacing-extra-tight) 0 0}.ibiz-export-excel-submenu-button{justify-content:flex-start;width:100%;height:36px;padding:0 10px;border-radius:0}.ibiz-export-excel-submenu-button i{margin:0 var(--ibiz-spacing-extra-tight) 0 0}.ibiz-control-toolbar-submenu-popper .ibiz-export-excel-submenu .el-sub-menu__title{padding:0}.ibiz-control-toolbar-submenu-popper .ibiz-export-excel-submenu .el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.ibiz-control-toolbar-submenu-popper .ibiz-export-excel-submenu.hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-control-toolbar-submenu-popper .ibiz-export-excel-submenu .ibiz-export-excel-submenu-popper{width:270px;color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary)}
@@ -3,6 +3,10 @@ import { PropType } from 'vue';
3
3
  import { IToolbarController } from '@ibiz-template/runtime';
4
4
  import './export-excel.scss';
5
5
  export declare const IBizExportExcel: import("vue").DefineComponent<{
6
+ mode: {
7
+ type: StringConstructor;
8
+ required: false;
9
+ };
6
10
  size: {
7
11
  type: StringConstructor;
8
12
  required: false;
@@ -24,6 +28,10 @@ export declare const IBizExportExcel: import("vue").DefineComponent<{
24
28
  startPage: import("vue").Ref<number>;
25
29
  onCommand: (command: string, e: MouseEvent) => void;
26
30
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "exportExcel"[], "exportExcel", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
31
+ mode: {
32
+ type: StringConstructor;
33
+ required: false;
34
+ };
27
35
  size: {
28
36
  type: StringConstructor;
29
37
  required: false;
@@ -9,6 +9,10 @@ function _isSlot(s) {
9
9
  const IBizExportExcel = /* @__PURE__ */ defineComponent({
10
10
  name: "IBizExportExcel",
11
11
  props: {
12
+ mode: {
13
+ type: String,
14
+ required: false
15
+ },
12
16
  size: {
13
17
  type: String,
14
18
  required: false
@@ -50,20 +54,93 @@ const IBizExportExcel = /* @__PURE__ */ defineComponent({
50
54
  };
51
55
  },
52
56
  render() {
53
- return createVNode(resolveComponent("el-dropdown"), {
57
+ return this.$props.mode === "menu" ? createVNode(resolveComponent("el-sub-menu"), {
58
+ "index": this.$props.item.id,
59
+ "class": this.ns.b("submenu"),
60
+ "popper-class": this.ns.b("submenu-popper")
61
+ }, {
62
+ title: () => {
63
+ let _slot;
64
+ return createVNode(resolveComponent("el-button"), {
65
+ "title": this.item.tooltip,
66
+ "size": this.$props.size,
67
+ "class": this.ns.b("submenu-button")
68
+ }, _isSlot(_slot = this.btnContent(this.item)) ? _slot : {
69
+ default: () => [_slot]
70
+ });
71
+ },
72
+ default: () => {
73
+ return [createVNode(resolveComponent("el-menu-item"), {
74
+ "class": this.ns.b("menu-item"),
75
+ "onClick": (e) => this.onCommand("maxRowCount", e)
76
+ }, {
77
+ default: () => [createTextVNode("\u5BFC\u51FA\u5168\u90E8(\u6700\u5927\u5BFC\u51FA1000\u884C)")]
78
+ }), createVNode(resolveComponent("el-menu-item"), {
79
+ "class": this.ns.b("menu-item"),
80
+ "onClick": (e) => this.onCommand("activatedPage", e)
81
+ }, {
82
+ default: () => [createTextVNode("\u5BFC\u51FA\u5F53\u524D\u9875")]
83
+ }), createVNode(resolveComponent("el-menu-item"), {
84
+ "class": this.ns.b("menu-item"),
85
+ "onClick": (e) => this.onCommand("selectedRows", e)
86
+ }, {
87
+ default: () => [createTextVNode("\u5BFC\u51FA\u5F53\u524D\u9009\u4E2D")]
88
+ }), createVNode(resolveComponent("el-menu-item"), {
89
+ "class": [this.ns.b("menu-item"), this.ns.e("custom")]
90
+ }, {
91
+ default: () => [createVNode(resolveComponent("el-input"), {
92
+ "type": "number",
93
+ "modelValue": this.startPage,
94
+ "onUpdate:modelValue": ($event) => this.startPage = $event,
95
+ "size": "small",
96
+ "maxlength": "4",
97
+ "onClick": (event) => {
98
+ event.stopPropagation();
99
+ },
100
+ "onChange": (value) => {
101
+ this.startPage = value;
102
+ }
103
+ }, null), createVNode("span", {
104
+ "class": "item-text",
105
+ "onClick": (event) => {
106
+ event.stopPropagation();
107
+ }
108
+ }, [createTextVNode("-")]), createVNode(resolveComponent("el-input"), {
109
+ "modelValue": this.endPage,
110
+ "onUpdate:modelValue": ($event) => this.endPage = $event,
111
+ "size": "small",
112
+ "type": "number",
113
+ "maxlength": "4",
114
+ "onClick": (event) => {
115
+ event.stopPropagation();
116
+ }
117
+ }, null), createVNode("span", {
118
+ "class": "item-text",
119
+ "onClick": (event) => {
120
+ event.stopPropagation();
121
+ }
122
+ }, [createTextVNode("\u9875")]), createVNode(resolveComponent("el-button"), {
123
+ "onClick": (e) => this.onCommand("customPage", e),
124
+ "size": "small"
125
+ }, {
126
+ default: () => [createTextVNode("\u5BFC\u51FA")]
127
+ })]
128
+ })];
129
+ }
130
+ }) : createVNode(resolveComponent("el-dropdown"), {
54
131
  "size": this.$props.size,
55
132
  "onCommand": this.onCommand,
56
133
  "popper-class": this.ns.b(),
57
134
  "trigger": "click"
58
135
  }, {
59
136
  default: () => {
60
- let _slot;
137
+ let _slot2;
61
138
  return createVNode(resolveComponent("el-button"), {
62
139
  "title": this.item.tooltip,
63
140
  "size": this.$props.size,
64
141
  "class": this.ns.e("button")
65
- }, _isSlot(_slot = this.btnContent(this.item)) ? _slot : {
66
- default: () => [_slot]
142
+ }, _isSlot(_slot2 = this.btnContent(this.item)) ? _slot2 : {
143
+ default: () => [_slot2]
67
144
  });
68
145
  },
69
146
  dropdown: () => {
@@ -14,6 +14,10 @@ export declare const IBizToolbarControl: import("@ibiz-template/vue3-util").Type
14
14
  provider: {
15
15
  type: import("vue").PropType<import("@ibiz-template/runtime").IControlProvider>;
16
16
  };
17
+ manualCalcButtonState: {
18
+ type: BooleanConstructor;
19
+ default: boolean;
20
+ };
17
21
  }, {
18
22
  c: import("@ibiz-template/runtime").ToolbarController<import("@ibiz/model-core").IControl, import("@ibiz-template/runtime").IToolbarState, import("@ibiz-template/runtime").IToolbarEvent>;
19
23
  btnSize: import("vue").Ref<string>;
@@ -41,7 +45,12 @@ export declare const IBizToolbarControl: import("@ibiz-template/vue3-util").Type
41
45
  provider: {
42
46
  type: import("vue").PropType<import("@ibiz-template/runtime").IControlProvider>;
43
47
  };
48
+ manualCalcButtonState: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
44
52
  }>>, {
45
53
  params: IParams;
54
+ manualCalcButtonState: boolean;
46
55
  }, {}>>;
47
56
  export default IBizToolbarControl;
@@ -1 +1 @@
1
- @charset "UTF-8";.ibiz-control-toolbar{--ibiz-control-toolbar-item-margin:0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-item-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-icon-margin:0 var(--ibiz-spacing-extra-tight) 0 0;--ibiz-control-toolbar-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-icon-max-height:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-separator-color:var(--ibiz-color-fill-2);display:flex}.ibiz-control-toolbar__item{display:flex;align-items:center;margin:var(--ibiz-control-toolbar-item-margin);overflow:hidden}.ibiz-control-toolbar__item .el-button{display:flex;align-items:center;justify-content:center;padding:var(--ibiz-control-toolbar-item-padding)}.ibiz-control-toolbar__item .el-button>span{display:flex;align-items:center;justify-content:center;font-size:var(--ibiz-font-size-regular);pointer-events:none}.ibiz-control-toolbar__item .el-button .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-toolbar-icon-max-width);height:var(--ibiz-control-toolbar-icon-max-height);margin:var(--ibiz-control-toolbar-icon-margin);font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar__item.is-loading .el-button .ibiz-icon{display:none}.ibiz-control-toolbar__item-separator{color:var(--ibiz-control-toolbar-separator-color)}.ibiz-control-toolbar__item-separator+.ibiz-control-toolbar__item-separator,.ibiz-control-toolbar__item-separator:first-child{display:none}.ibiz-control-toolbar-dropdown{--ibiz-control-toolbar-item-margin:0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-item-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-icon-margin:0 var(--ibiz-spacing-extra-tight) 0 0;--ibiz-control-toolbar-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-icon-max-height:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-separator-color:var(--ibiz-color-fill-2)}.ibiz-control-toolbar-dropdown .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-toolbar-icon-max-width);height:var(--ibiz-control-toolbar-icon-max-height);margin:var(--ibiz-control-toolbar-icon-margin);font-size:var(--ibiz-font-size-regular)}
1
+ @charset "UTF-8";.ibiz-control-toolbar{--ibiz-control-toolbar-item-margin:0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-item-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-icon-margin:0 var(--ibiz-spacing-extra-tight) 0 0;--ibiz-control-toolbar-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-icon-max-height:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-separator-color:var(--ibiz-color-fill-2);--ibiz-control-toolbar-menu-height:32px;display:flex}.ibiz-control-toolbar__item{display:flex;align-items:center;margin:var(--ibiz-control-toolbar-item-margin);overflow:hidden}.ibiz-control-toolbar__item .el-button{display:flex;align-items:center;justify-content:center;padding:var(--ibiz-control-toolbar-item-padding)}.ibiz-control-toolbar__item .el-button>span{display:flex;align-items:center;justify-content:center;font-size:var(--ibiz-font-size-regular);pointer-events:none}.ibiz-control-toolbar__item .el-button .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-toolbar-icon-max-width);height:var(--ibiz-control-toolbar-icon-max-height);margin:var(--ibiz-control-toolbar-icon-margin);font-size:var(--ibiz-font-size-regular)}.ibiz-control-toolbar__item.is-loading .el-button .ibiz-icon{display:none}.ibiz-control-toolbar__item-separator{color:var(--ibiz-control-toolbar-separator-color)}.ibiz-control-toolbar__item-separator+.ibiz-control-toolbar__item-separator,.ibiz-control-toolbar__item-separator:first-child{display:none}.ibiz-control-toolbar__menu.el-menu{height:var(--ibiz-control-toolbar-menu-height);margin:var(--ibiz-control-toolbar-item-margin);border:none}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title{display:flex;align-items:center;justify-content:center;padding:var(--ibiz-control-toolbar-item-padding);font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary);border-radius:var(--ibiz-border-radius-small)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title>span{display:inline-block;line-height:1}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu .el-sub-menu__title:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-control-toolbar__menu .ibiz-control-toolbar-submenu.is-active .el-sub-menu__title{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper{--ibiz-control-toolbar-item-margin:0 var(--ibiz-spacing-extra-tight);--ibiz-control-toolbar-item-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-toolbar-icon-margin:0 var(--ibiz-spacing-extra-tight) 0 0;--ibiz-control-toolbar-icon-max-width:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-icon-max-height:var(--ibiz-width-icon-medium);--ibiz-control-toolbar-separator-color:var(--ibiz-color-fill-2);--ibiz-control-toolbar-menu-height:32px;color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu .el-sub-menu__title{padding:0 10px;font-size:var(--ibiz-font-size-regular);color:var(--ibiz-color-primary-text);background-color:var(--ibiz-color-primary)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu .el-sub-menu__title:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-control-toolbar-submenu-popper .el-menu .ibiz-control-toolbar-submenu.is-active .el-sub-menu__title{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item .ibiz-icon{margin:var(--ibiz-control-toolbar-icon-margin)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item.is-active{color:var(--ibiz-color-primary-text)}.ibiz-control-toolbar-submenu-popper .el-menu .el-menu-item:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}
@@ -18,6 +18,10 @@ export declare const ToolbarControl: import("vue").DefineComponent<{
18
18
  provider: {
19
19
  type: PropType<IControlProvider>;
20
20
  };
21
+ manualCalcButtonState: {
22
+ type: BooleanConstructor;
23
+ default: boolean;
24
+ };
21
25
  }, {
22
26
  c: ToolbarController<import("@ibiz/model-core").IControl, import("@ibiz-template/runtime").IToolbarState, import("@ibiz-template/runtime").IToolbarEvent>;
23
27
  btnSize: import("vue").Ref<string>;
@@ -41,6 +45,11 @@ export declare const ToolbarControl: import("vue").DefineComponent<{
41
45
  provider: {
42
46
  type: PropType<IControlProvider>;
43
47
  };
48
+ manualCalcButtonState: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
44
52
  }>>, {
45
53
  params: IParams;
54
+ manualCalcButtonState: boolean;
46
55
  }, {}>;
@@ -38,6 +38,10 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
38
38
  },
39
39
  provider: {
40
40
  type: Object
41
+ },
42
+ manualCalcButtonState: {
43
+ type: Boolean,
44
+ default: false
41
45
  }
42
46
  },
43
47
  setup() {
@@ -62,6 +66,54 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
62
66
  })]);
63
67
  });
64
68
  };
69
+ const renderSubmenu = (item) => {
70
+ return createVNode(resolveComponent("el-sub-menu"), {
71
+ "class": ns.b("submenu"),
72
+ "index": item.id,
73
+ "popper-class": ns.b("submenu-popper")
74
+ }, {
75
+ default: () => {
76
+ var _a;
77
+ return (_a = item.detoolbarItems) == null ? void 0 : _a.map((item2) => {
78
+ const actionId = item2.uiactionId;
79
+ if (item2.itemType === "SEPERATOR" || item2.itemType === "RAWITEM") {
80
+ return;
81
+ }
82
+ if (item2.itemType === "DEUIACTION" && c.state.buttonsState[item2.id].visible) {
83
+ let _slot2;
84
+ if (actionId === "exportexcel") {
85
+ return createVNode(IBizExportExcel, {
86
+ "class": [ns.e("menu-exportexcel")],
87
+ "mode": "menu",
88
+ "item": item2,
89
+ "btnContent": btnContent,
90
+ "size": btnSize.value,
91
+ "controller": c,
92
+ "onExportExcel": (e, data) => {
93
+ handleClick(item2, e, data);
94
+ }
95
+ }, null);
96
+ }
97
+ return createVNode(resolveComponent("el-menu-item"), {
98
+ "index": "menuitem".concat(item2.id),
99
+ "disabled": c.state.buttonsState[item2.id].disabled,
100
+ "title": item2.tooltip,
101
+ "onClick": (e) => handleClick(item2, e)
102
+ }, _isSlot(_slot2 = btnContent(item2)) ? _slot2 : {
103
+ default: () => [_slot2]
104
+ });
105
+ }
106
+ if (item2.itemType === "ITEMS") {
107
+ return renderSubmenu(item2);
108
+ }
109
+ return null;
110
+ });
111
+ },
112
+ title: () => {
113
+ return createVNode("span", null, [btnContent(item)]);
114
+ }
115
+ });
116
+ };
65
117
  const renderToolbarItem = (item) => {
66
118
  const itemId = item.id;
67
119
  if (item.itemType === "SEPERATOR") {
@@ -77,7 +129,7 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
77
129
  }, [btnContent(item)]);
78
130
  }
79
131
  if (item.itemType === "DEUIACTION" && c.state.buttonsState[itemId].visible) {
80
- let _slot2;
132
+ let _slot3;
81
133
  const actionId = item.uiactionId;
82
134
  if (actionId === "exportexcel") {
83
135
  return createVNode(IBizExportExcel, {
@@ -100,46 +152,20 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
100
152
  "loading": c.state.buttonsState[itemId].loading,
101
153
  "disabled": c.state.buttonsState[itemId].disabled,
102
154
  "onClick": (e) => handleClick(item, e)
103
- }, _isSlot(_slot2 = btnContent(item)) ? _slot2 : {
104
- default: () => [_slot2]
155
+ }, _isSlot(_slot3 = btnContent(item)) ? _slot3 : {
156
+ default: () => [_slot3]
105
157
  })]);
106
158
  }
107
159
  if (item.itemType === "ITEMS") {
108
- return createVNode("div", {
109
- "key": itemId,
110
- "class": [ns.e("item"), ns.e("item-items")]
111
- }, [createVNode(resolveComponent("el-dropdown"), {
112
- "trigger": "click",
113
- "placement": "bottom-start",
114
- "popper-class": ns.b("dropdown")
115
- }, {
116
- default: () => {
117
- let _slot3;
118
- return createVNode(resolveComponent("el-button"), {
119
- "title": item.tooltip,
120
- "size": btnSize.value
121
- }, _isSlot(_slot3 = btnContent(item)) ? _slot3 : {
122
- default: () => [_slot3]
123
- });
124
- },
125
- dropdown: () => {
126
- return createVNode(resolveComponent("el-dropdown-menu"), null, {
127
- default: () => {
128
- var _a;
129
- return [(_a = item.detoolbarItems) == null ? void 0 : _a.map((item2) => {
130
- let _slot4;
131
- return createVNode(resolveComponent("el-dropdown-item"), {
132
- "key": item2.id,
133
- "disabled": c.state.buttonsState[item2.id].disabled,
134
- "onClick": (e) => handleClick(item2, e)
135
- }, _isSlot(_slot4 = btnContent(item2)) ? _slot4 : {
136
- default: () => [_slot4]
137
- });
138
- })];
139
- }
140
- });
141
- }
142
- })]);
160
+ let _slot4;
161
+ return createVNode(resolveComponent("el-menu"), {
162
+ "mode": "horizontal",
163
+ "class": [ns.e("menu")],
164
+ "ellipsis": false,
165
+ "menu-trigger": "hover"
166
+ }, _isSlot(_slot4 = renderSubmenu(item)) ? _slot4 : {
167
+ default: () => [_slot4]
168
+ });
143
169
  }
144
170
  return null;
145
171
  };
@@ -245,6 +245,7 @@ class NavPosIndexController extends PanelItemController {
245
245
  indexPath += "/".concat(route.params["view".concat(index)], "/").concat(ibiz.env.routePlaceholder);
246
246
  }
247
247
  this.router.push(indexPath);
248
+ ibiz.util.setBrowserTitle("");
248
249
  }
249
250
  }
250
251
  }
@@ -21,6 +21,7 @@ export declare class EditViewEngine extends ViewEngineBase {
21
21
  * @type {string}
22
22
  */
23
23
  deName: string;
24
+ protected init(): void;
24
25
  onCreated(): Promise<void>;
25
26
  onMounted(): Promise<void>;
26
27
  getData(): IData[];
@@ -1,5 +1,5 @@
1
1
  import { RuntimeError } from '@ibiz-template/core';
2
- import { ViewEngineBase, calcDeCodeNameById, SysUIActionTag, ViewCallTag, ControlVO, getAppViewRef, OpenAppViewCommand } from '@ibiz-template/runtime';
2
+ import { ViewEngineBase, getControl, getControlsByView, calcDeCodeNameById, SysUIActionTag, ViewCallTag, ControlVO, getAppViewRef, OpenAppViewCommand } from '@ibiz-template/runtime';
3
3
  import { isNil } from 'ramda';
4
4
 
5
5
  "use strict";
@@ -23,6 +23,27 @@ class EditViewEngine extends ViewEngineBase {
23
23
  get form() {
24
24
  return this.view.getController("form");
25
25
  }
26
+ init() {
27
+ super.init();
28
+ if (this.view.model.multiFormMode === 1 && this.view.params.srfdatatype) {
29
+ const model = getControl(
30
+ this.view.model,
31
+ "_form_".concat(this.view.params.srfdatatype)
32
+ );
33
+ if (model) {
34
+ const controls = getControlsByView(this.view.model).filter((item) => {
35
+ return item.controlType !== "FORM";
36
+ });
37
+ model.name = "form";
38
+ controls.push(model);
39
+ if (this.view.model.viewLayoutPanel) {
40
+ this.view.model.viewLayoutPanel.controls = controls;
41
+ } else {
42
+ this.view.model.controls = controls;
43
+ }
44
+ }
45
+ }
46
+ }
26
47
  async onCreated() {
27
48
  await super.onCreated();
28
49
  const { childNames, modal } = this.view;
@@ -32,8 +53,12 @@ class EditViewEngine extends ViewEngineBase {
32
53
  this.view.slotProps.form = {};
33
54
  }
34
55
  this.view.slotProps.form.loadDefault = false;
56
+ if (!this.view.slotProps.toolbar) {
57
+ this.view.slotProps.toolbar = {};
58
+ }
59
+ this.view.slotProps.toolbar.manualCalcButtonState = true;
35
60
  modal.hooks.shouldDismiss.tapPromise(async (context) => {
36
- if (this.form.state.modified) {
61
+ if (this.form.state.modified && this.view.model.enableDirtyChecking === true) {
37
62
  const isAllow = await ibiz.confirm.error({
38
63
  title: "\u5173\u95ED\u63D0\u9192",
39
64
  desc: "\u8868\u5355\u6570\u636E\u5DF2\u7ECF\u4FEE\u6539\uFF0C\u786E\u5B9A\u8981\u5173\u95ED\uFF1F"
@@ -25,6 +25,10 @@ class OptViewEngine extends ViewEngineBase {
25
25
  this.view.slotProps.form = {};
26
26
  }
27
27
  this.view.slotProps.form.loadDefault = false;
28
+ if (!this.view.slotProps.toolbar) {
29
+ this.view.slotProps.toolbar = {};
30
+ }
31
+ this.view.slotProps.toolbar.manualCalcButtonState = true;
28
32
  modal.hooks.shouldDismiss.tapPromise(async (context) => {
29
33
  if (this.form.state.modified) {
30
34
  const isAllow = await ibiz.confirm.error({
@@ -1,4 +1,4 @@
1
- import { ref, toRaw, onUnmounted, createTextVNode, createVNode, defineComponent } from 'vue';
1
+ import { ref, toRaw, onUnmounted, createVNode, defineComponent } from 'vue';
2
2
  import { parseRouteViewData, createOverlayView } from '@ibiz-template/vue3-util';
3
3
  import { useRoute, useRouter } from 'vue-router';
4
4
  import { IBizContext } from '@ibiz-template/core';
@@ -111,8 +111,8 @@ const ModalRouterShell = /* @__PURE__ */ defineComponent({
111
111
  },
112
112
  render() {
113
113
  return createVNode("div", {
114
- "style": "width: 0;height: 0;"
115
- }, [createTextVNode("\u8DEF\u7531\u6A21\u6001\u5360\u4F4D")]);
114
+ "style": "position: absolute;width: 0;height: 0;"
115
+ }, null);
116
116
  }
117
117
  });
118
118
 
@@ -26,7 +26,7 @@ const DoingNotice = /* @__PURE__ */ vue.defineComponent({
26
26
  "class": this.ns.e("text")
27
27
  }, [vue.createTextVNode("\u6709"), vue.createVNode("span", {
28
28
  "class": this.ns.e("num")
29
- }, [this.info.num]), vue.createTextVNode("\u4E2A\u5F02\u6B65\u64CD\u4F5C\u6B63\u5728\u6267\u884C\uFF0C\u8BF7\u7A0D\u540E")]), vue.createVNode("svg", {
29
+ }, [this.info.num]), vue.createTextVNode("\u4E2A\u540E\u53F0\u4F5C\u4E1A\u6B63\u5728\u6267\u884C\uFF0C\u8BF7\u7A0D\u540E")]), vue.createVNode("svg", {
30
30
  "class": this.ns.e("loading-icon"),
31
31
  "viewBox": "-10, -10, 50, 50"
32
32
  }, [vue.createVNode("path", {
@@ -1 +1 @@
1
- .ibiz-async-action-notice.el-notification{width:auto}.ibiz-async-action-notice.el-notification .el-notification__group{margin:0}.ibiz-async-action-notice.el-notification .el-notification__closeBtn{top:5px;right:5px}.ibiz-doing-notice__text{margin-right:8px}.ibiz-doing-notice__num{margin:0 8px;font-size:18px;font-weight:700;color:var(--ibiz-color-danger)}.ibiz-doing-notice__loading-icon{width:18px;height:18px;margin-right:6px;vertical-align:middle;animation:loading-rotate 2s linear infinite}.ibiz-doing-notice__loading-icon .path{stroke:var(--ibiz-color-primary);stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2;animation:loading-dash 1.5s ease-in-out infinite}
1
+ .ibiz-async-action-notice.el-notification{width:auto}.ibiz-async-action-notice.el-notification .el-notification__group{margin:0}.ibiz-async-action-notice.el-notification .el-notification__closeBtn{top:5px;right:5px}.ibiz-doing-notice__text{margin-right:8px}.ibiz-doing-notice__num{margin:0 8px;font-size:18px;font-weight:700;color:var(--ibiz-color-primary)}.ibiz-doing-notice__loading-icon{width:18px;height:18px;margin-right:6px;vertical-align:middle;animation:loading-rotate 2s linear infinite}.ibiz-doing-notice__loading-icon .path{stroke:var(--ibiz-color-primary);stroke-dasharray:90,150;stroke-dashoffset:0;stroke-linecap:round;stroke-width:2;animation:loading-dash 1.5s ease-in-out infinite}
@@ -28,6 +28,15 @@ const CaptionBarControl = /* @__PURE__ */ vue.defineComponent({
28
28
  setup() {
29
29
  const c = vue3Util.useControlController((...args) => new runtime.CaptionBarController(...args));
30
30
  const ns = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
31
+ const modalMode = c.view.modal.mode;
32
+ if (modalMode === "ROUTE") {
33
+ ibiz.util.setBrowserTitle(c.state.caption);
34
+ }
35
+ vue.onActivated(() => {
36
+ if (modalMode === "ROUTE") {
37
+ ibiz.util.setBrowserTitle(c.state.caption);
38
+ }
39
+ });
31
40
  return {
32
41
  c,
33
42
  ns
@@ -49,6 +49,7 @@ const FilterModes = [{
49
49
  valueOP: runtime.ValueOP.RIGHT_LIKE,
50
50
  label: "\u6587\u672C\u53F3\u5305\u542B(#%)"
51
51
  }];
52
+ const ExcludeOPs = [runtime.ValueOP.IS_NULL, runtime.ValueOP.IS_NOT_NULL];
52
53
  const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
53
54
  name: "IBizFilterTreeControl",
54
55
  props: {
@@ -152,7 +153,7 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
152
153
  });
153
154
  };
154
155
  const renderEditor = (node, filterC) => {
155
- if (filterC.noEditor) {
156
+ if (filterC.noEditor || node.valueOP && ExcludeOPs.includes(node.valueOP)) {
156
157
  return null;
157
158
  }
158
159
  let editor = null;
@@ -311,4 +312,5 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
311
312
  }
312
313
  });
313
314
 
315
+ exports.ExcludeOPs = ExcludeOPs;
314
316
  exports.FilterTreeControl = FilterTreeControl;