@ibiz-template/vue3-components 0.7.13-alpha.0 → 0.7.14

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 (95) hide show
  1. package/dist/{index-WP6TUdg-.js → index-8Lu2Ax-_.js} +1 -1
  2. package/dist/index-8tvyarHw.js +4 -0
  3. package/dist/{index-kgWpXafW.js → index-Hg_8xCYx.js} +1 -1
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{xlsx-util-OSsMvylt.js → xlsx-util-OfvrEAre.js} +1 -1
  7. package/es/common/carousel/carousel.d.ts +8 -0
  8. package/es/common/carousel/carousel.mjs +9 -1
  9. package/es/common/carousel-card/carousel-card.css +1 -0
  10. package/es/common/carousel-card/carousel-card.d.ts +41 -0
  11. package/es/common/carousel-card/carousel-card.mjs +218 -0
  12. package/es/common/index.mjs +2 -0
  13. package/es/control/app-menu/app-menu.mjs +1 -1
  14. package/es/control/context-menu/context-menu.css +1 -1
  15. package/es/control/context-menu/context-menu.d.ts +1 -0
  16. package/es/control/context-menu/context-menu.mjs +64 -7
  17. package/es/control/context-menu/index.d.ts +1 -0
  18. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +76 -1
  19. package/es/control/form/form/form.css +1 -1
  20. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +74 -0
  21. package/es/control/form/form-detail/form-page/form-page.css +1 -1
  22. package/es/control/form/form-detail/form-page/form-page.d.ts +1 -0
  23. package/es/control/form/form-detail/form-page/form-page.mjs +10 -4
  24. package/es/control/form/form-detail/form-page/index.d.ts +1 -0
  25. package/es/control/search-bar/filter-tree/filter-tree.mjs +19 -20
  26. package/es/control/toolbar/short-cut-button/short-cut-button.css +0 -0
  27. package/es/control/toolbar/short-cut-button/short-cut-button.d.ts +48 -0
  28. package/es/control/toolbar/short-cut-button/short-cut-button.mjs +71 -0
  29. package/es/control/toolbar/toolbar.mjs +38 -2
  30. package/es/control/tree/tree.css +1 -1
  31. package/es/control/tree/tree.mjs +2 -1
  32. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.css +1 -1
  33. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +1 -0
  34. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +25 -13
  35. package/es/index.mjs +1 -0
  36. package/es/locale/en/index.d.ts +1 -0
  37. package/es/locale/en/index.mjs +2 -1
  38. package/es/locale/zh-CN/index.d.ts +1 -0
  39. package/es/locale/zh-CN/index.mjs +2 -1
  40. package/es/panel-component/auth-captcha/auth-captcha.controller.d.ts +13 -0
  41. package/es/panel-component/auth-captcha/auth-captcha.controller.mjs +15 -11
  42. package/es/panel-component/auth-userinfo/auth-userinfo.d.ts +1 -1
  43. package/es/panel-component/auth-userinfo/auth-userinfo.mjs +2 -7
  44. package/es/panel-component/auth-userinfo/index.d.ts +1 -1
  45. package/es/panel-component/panel-button/panel-button.controller.d.ts +1 -1
  46. package/es/panel-component/panel-button/panel-button.controller.mjs +6 -9
  47. package/es/panel-component/panel-static-carousel/index.d.ts +1 -0
  48. package/es/panel-component/panel-static-carousel/panel-static-carousel.d.ts +1 -0
  49. package/es/panel-component/panel-static-carousel/panel-static-carousel.mjs +13 -2
  50. package/es/panel-component/short-cut/index.d.ts +21 -4
  51. package/es/panel-component/short-cut/short-cut.css +1 -1
  52. package/es/panel-component/short-cut/short-cut.d.ts +21 -4
  53. package/es/panel-component/short-cut/short-cut.mjs +62 -42
  54. package/es/util/app-util/app-util.d.ts +90 -0
  55. package/es/util/app-util/app-util.mjs +152 -0
  56. package/es/util/index.d.ts +1 -0
  57. package/es/util/index.mjs +1 -0
  58. package/es/view-engine/login-view.engine.d.ts +31 -3
  59. package/es/view-engine/login-view.engine.mjs +32 -12
  60. package/es/web-app/components/modal-router-shell/modal-router-shell.mjs +19 -5
  61. package/es/web-app/main.mjs +2 -0
  62. package/lib/common/carousel/carousel.cjs +9 -1
  63. package/lib/common/carousel-card/carousel-card.cjs +220 -0
  64. package/lib/common/carousel-card/carousel-card.css +1 -0
  65. package/lib/common/index.cjs +2 -0
  66. package/lib/control/app-menu/app-menu.cjs +1 -1
  67. package/lib/control/context-menu/context-menu.cjs +63 -6
  68. package/lib/control/context-menu/context-menu.css +1 -1
  69. package/lib/control/form/form/form.css +1 -1
  70. package/lib/control/form/form-detail/form-page/form-page.cjs +10 -4
  71. package/lib/control/form/form-detail/form-page/form-page.css +1 -1
  72. package/lib/control/search-bar/filter-tree/filter-tree.cjs +19 -20
  73. package/lib/control/toolbar/short-cut-button/short-cut-button.cjs +73 -0
  74. package/lib/control/toolbar/short-cut-button/short-cut-button.css +0 -0
  75. package/lib/control/toolbar/toolbar.cjs +37 -1
  76. package/lib/control/tree/tree.cjs +2 -1
  77. package/lib/control/tree/tree.css +1 -1
  78. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +24 -12
  79. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.css +1 -1
  80. package/lib/index.cjs +2 -0
  81. package/lib/locale/en/index.cjs +2 -1
  82. package/lib/locale/zh-CN/index.cjs +2 -1
  83. package/lib/panel-component/auth-captcha/auth-captcha.controller.cjs +15 -11
  84. package/lib/panel-component/auth-userinfo/auth-userinfo.cjs +2 -7
  85. package/lib/panel-component/panel-button/panel-button.controller.cjs +6 -9
  86. package/lib/panel-component/panel-static-carousel/panel-static-carousel.cjs +13 -2
  87. package/lib/panel-component/short-cut/short-cut.cjs +61 -41
  88. package/lib/panel-component/short-cut/short-cut.css +1 -1
  89. package/lib/util/app-util/app-util.cjs +154 -0
  90. package/lib/util/index.cjs +2 -0
  91. package/lib/view-engine/login-view.engine.cjs +32 -12
  92. package/lib/web-app/components/modal-router-shell/modal-router-shell.cjs +17 -3
  93. package/lib/web-app/main.cjs +2 -0
  94. package/package.json +7 -7
  95. package/dist/index-Ky5xo5V5.js +0 -4
@@ -92,6 +92,42 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
92
92
  readonly parentView: any | undefined;
93
93
  readonly isActive: boolean;
94
94
  layoutPanel?: {
95
+ hooks: {
96
+ validate: {
97
+ call: (context: {
98
+ result: boolean[];
99
+ parentId?: string | undefined;
100
+ }) => Promise<{
101
+ result: boolean[];
102
+ parentId?: string | undefined;
103
+ }>;
104
+ tapPromise: (fn: (context: {
105
+ result: boolean[];
106
+ parentId?: string | undefined;
107
+ }) => Promise<void>) => void;
108
+ removeTapPromise: (callBack: (context: {
109
+ result: boolean[];
110
+ parentId?: string | undefined;
111
+ }) => Promise<void>) => void;
112
+ readonly size: number;
113
+ callSync: (context: {
114
+ result: boolean[];
115
+ parentId?: string | undefined;
116
+ }) => {
117
+ result: boolean[];
118
+ parentId?: string | undefined;
119
+ };
120
+ tap: (fn: (context: {
121
+ result: boolean[];
122
+ parentId?: string | undefined;
123
+ }) => void) => void;
124
+ removeTap: (callBack: (context: {
125
+ result: boolean[];
126
+ parentId?: string | undefined;
127
+ }) => void) => void;
128
+ clear: () => void;
129
+ };
130
+ };
95
131
  panelItems: {
96
132
  [key: string]: import("@ibiz-template/runtime").IPanelItemController;
97
133
  };
@@ -134,6 +170,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
134
170
  force: (_callback?: (() => void) | undefined) => void;
135
171
  } | undefined;
136
172
  load: () => Promise<void>;
173
+ validate: (parentId?: string | undefined) => Promise<boolean>;
137
174
  setDataValue: (name: string, value: unknown) => Promise<void>;
138
175
  view: any;
139
176
  layoutPanel?: any | undefined;
@@ -7197,6 +7234,42 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
7197
7234
  force: (_callback?: (() => void) | undefined) => void;
7198
7235
  };
7199
7236
  layoutPanel?: {
7237
+ hooks: {
7238
+ validate: {
7239
+ call: (context: {
7240
+ result: boolean[];
7241
+ parentId?: string | undefined;
7242
+ }) => Promise<{
7243
+ result: boolean[];
7244
+ parentId?: string | undefined;
7245
+ }>;
7246
+ tapPromise: (fn: (context: {
7247
+ result: boolean[];
7248
+ parentId?: string | undefined;
7249
+ }) => Promise<void>) => void;
7250
+ removeTapPromise: (callBack: (context: {
7251
+ result: boolean[];
7252
+ parentId?: string | undefined;
7253
+ }) => Promise<void>) => void;
7254
+ readonly size: number;
7255
+ callSync: (context: {
7256
+ result: boolean[];
7257
+ parentId?: string | undefined;
7258
+ }) => {
7259
+ result: boolean[];
7260
+ parentId?: string | undefined;
7261
+ };
7262
+ tap: (fn: (context: {
7263
+ result: boolean[];
7264
+ parentId?: string | undefined;
7265
+ }) => void) => void;
7266
+ removeTap: (callBack: (context: {
7267
+ result: boolean[];
7268
+ parentId?: string | undefined;
7269
+ }) => void) => void;
7270
+ clear: () => void;
7271
+ };
7272
+ };
7200
7273
  panelItems: {
7201
7274
  [key: string]: import("@ibiz-template/runtime").IPanelItemController;
7202
7275
  };
@@ -7239,6 +7312,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
7239
7312
  force: (_callback?: (() => void) | undefined) => void;
7240
7313
  } | undefined;
7241
7314
  load: () => Promise<void>;
7315
+ validate: (parentId?: string | undefined) => Promise<boolean>;
7242
7316
  setDataValue: (name: string, value: unknown) => Promise<void>;
7243
7317
  view: {
7244
7318
  evt: {
@@ -1 +1 @@
1
- .ibiz-form-page{--ibiz-form-page-font-size:var(--ibiz-font-size-header-4);--ibiz-form-page-header-border-color:var(--ibiz-color-border);--ibiz-form-page-text-color:var(--ibiz-color-text-2);--ibiz-form-page-bg-color:transparent;--ibiz-form-page-hover-text-color:var(--ibiz-color-primary);--ibiz-form-page-hover-bg-color:transparent;--ibiz-form-page-active-text-color:var(--ibiz-color-primary);--ibiz-form-page-active-bg-color:transparent;--ibiz-form-page-active-border-color:var(--ibiz-color-primary)}.ibiz-form-page--no-tab-header .ibiz-form-page-item{padding-top:0}.ibiz-form-page-tab>.el-tabs__header.is-top{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-form-page-tab>.el-tabs__header.is-top .el-tabs__item.is-top{font-size:var(--ibiz-form-page-font-size);color:var(--ibiz-form-page-text-color);background-color:var(--ibiz-form-page-bg-color)}.ibiz-form-page-tab>.el-tabs__header.is-top .el-tabs__item.is-top:hover{color:var(--ibiz-form-page-hover-text-color);background-color:var(--ibiz-form-page-hover-bg-color)}.ibiz-form-page-tab>.el-tabs__header.is-top .el-tabs__item.is-top.is-active{color:var(--ibiz-form-page-active-text-color);background-color:var(--ibiz-form-page-active-bg-color)}.ibiz-form-page-tab .el-tabs__nav-wrap::after{background-color:var(--ibiz-form-page-header-border-color)}.ibiz-form-page-tab .el-tabs__active-bar{background-color:var(--ibiz-form-page-active-border-color)}.ibiz-form-page-item{padding-top:var(--ibiz-padding-top)}.ibiz-form-page-item-child{margin-bottom:var(--ibiz-margin-bottom)}
1
+ .ibiz-form-page{--ibiz-form-page-font-size:var(--ibiz-font-size-header-4);--ibiz-form-page-header-border-color:var(--ibiz-color-border);--ibiz-form-page-text-color:var(--ibiz-color-text-2);--ibiz-form-page-bg-color:transparent;--ibiz-form-page-hover-text-color:var(--ibiz-color-primary);--ibiz-form-page-hover-bg-color:transparent;--ibiz-form-page-active-text-color:var(--ibiz-color-primary);--ibiz-form-page-active-bg-color:transparent;--ibiz-form-page-active-border-color:var(--ibiz-color-primary)}.ibiz-form-page__left{height:100%}.ibiz-form-page__left>.el-tabs__header{height:100%}.ibiz-form-page__left>.el-tabs__content{height:100%;overflow:auto}.ibiz-form-page__right{height:100%}.ibiz-form-page__right>.el-tabs__header{height:100%}.ibiz-form-page__right>.el-tabs__content{height:100%;overflow:auto}.ibiz-form-page--no-tab-header .ibiz-form-page-item{padding-top:0}.ibiz-form-page-tab>.el-tabs__header.is-top{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-form-page-tab>.el-tabs__header.is-top .el-tabs__item.is-top{font-size:var(--ibiz-form-page-font-size);color:var(--ibiz-form-page-text-color);background-color:var(--ibiz-form-page-bg-color)}.ibiz-form-page-tab>.el-tabs__header.is-top .el-tabs__item.is-top:hover{color:var(--ibiz-form-page-hover-text-color);background-color:var(--ibiz-form-page-hover-bg-color)}.ibiz-form-page-tab>.el-tabs__header.is-top .el-tabs__item.is-top.is-active{color:var(--ibiz-form-page-active-text-color);background-color:var(--ibiz-form-page-active-bg-color)}.ibiz-form-page-tab .el-tabs__nav-wrap::after{background-color:var(--ibiz-form-page-header-border-color)}.ibiz-form-page-tab .el-tabs__active-bar{background-color:var(--ibiz-form-page-active-border-color)}.ibiz-form-page-item{padding-top:var(--ibiz-padding-top)}.ibiz-form-page-item-child{margin-bottom:var(--ibiz-margin-bottom)}
@@ -8,6 +8,7 @@ export declare const FormPage: import("vue").DefineComponent<{
8
8
  };
9
9
  }, {
10
10
  ns: import("@ibiz-template/core").Namespace;
11
+ position: string;
11
12
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
12
13
  modelData: {
13
14
  type: PropType<IDEForm>;
@@ -14,10 +14,15 @@ const FormPage = /* @__PURE__ */ defineComponent({
14
14
  required: true
15
15
  }
16
16
  },
17
- setup() {
17
+ setup(props) {
18
18
  const ns = useNamespace("form-page");
19
+ let position = "top";
20
+ if (props.modelData.tabHeaderPos) {
21
+ position = props.modelData.tabHeaderPos.toLowerCase();
22
+ }
19
23
  return {
20
- ns
24
+ ns,
25
+ position
21
26
  };
22
27
  },
23
28
  render() {
@@ -33,8 +38,9 @@ const FormPage = /* @__PURE__ */ defineComponent({
33
38
  }, [defaultSlots]);
34
39
  }
35
40
  return createVNode(resolveComponent("el-tabs"), {
36
- "class": [this.ns.b(), this.ns.b("tab")],
37
- "model-value": (_d = defaultSlots[0]) == null ? void 0 : _d.key
41
+ "class": [this.ns.b(), this.ns.b("tab"), this.ns.e(this.position)],
42
+ "model-value": (_d = defaultSlots[0]) == null ? void 0 : _d.key,
43
+ "tab-position": this.position
38
44
  }, _isSlot(_slot = defaultSlots.map((slot) => {
39
45
  const props = slot.props;
40
46
  if (!props || !props.controller) {
@@ -6,6 +6,7 @@ export declare const IBizFormPage: import("@ibiz-template/vue3-util").TypeWithIn
6
6
  };
7
7
  }, {
8
8
  ns: import("@ibiz-template/core").Namespace;
9
+ position: string;
9
10
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
10
11
  modelData: {
11
12
  type: import("vue").PropType<import("@ibiz/model-core").IDEForm>;
@@ -54,7 +54,7 @@ const FilterModes = [{
54
54
  valueOP: ValueOP.NOT_EXISTS,
55
55
  label: "\u4E0D\u5B58\u5728(NOTEXISTS)"
56
56
  }];
57
- const ExcludeOPs = [ValueOP.IS_NULL, ValueOP.IS_NOT_NULL];
57
+ const ExcludeOPs = [ValueOP.IS_NULL, ValueOP.IS_NOT_NULL, ValueOP.EXISTS, ValueOP.NOT_EXISTS];
58
58
  const FilterTreeControl = /* @__PURE__ */ defineComponent({
59
59
  name: "IBizFilterTreeControl",
60
60
  props: {
@@ -240,7 +240,6 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
240
240
  }, [editor]);
241
241
  };
242
242
  const renderFilterItem = (node, itemsC) => {
243
- let _slot;
244
243
  if (node.hidden) {
245
244
  return;
246
245
  }
@@ -271,14 +270,14 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
271
270
  "onChange": (field) => {
272
271
  onFieldSelect(node, field, fieldInfos);
273
272
  }
274
- }, _isSlot(_slot = fieldInfos.map((field) => {
275
- return createVNode(resolveComponent("el-option"), {
276
- "key": field.name,
277
- "value": field.name,
278
- "label": field.label
279
- }, null);
280
- })) ? _slot : {
281
- default: () => [_slot]
273
+ }, {
274
+ default: () => [fieldInfos == null ? void 0 : fieldInfos.map((field) => {
275
+ return createVNode(resolveComponent("el-option"), {
276
+ "key": field.name,
277
+ "value": field.name,
278
+ "label": field.label
279
+ }, null);
280
+ })]
282
281
  }), availableModes && availableModes.length > 0 && createVNode(resolveComponent("iBizFilterModeSelect"), {
283
282
  "disabled": node.disabled,
284
283
  "class": ns.e("mode-select"),
@@ -356,10 +355,10 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
356
355
  })])]);
357
356
  };
358
357
  renderFilterItems = (node) => {
359
- let _slot3;
358
+ let _slot2;
360
359
  const itemsC = findFilterController(node);
361
360
  if (node.simple) {
362
- let _slot2;
361
+ let _slot;
363
362
  const child = node.children[0];
364
363
  if (!child) {
365
364
  return;
@@ -371,14 +370,14 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
371
370
  "onChange": (field) => {
372
371
  onFieldSelect(node, field);
373
372
  }
374
- }, _isSlot(_slot2 = allFields.map((field) => {
373
+ }, _isSlot(_slot = allFields.map((field) => {
375
374
  return createVNode(resolveComponent("el-option"), {
376
375
  "key": field.name,
377
376
  "value": field.name,
378
377
  "label": field.label
379
378
  }, null);
380
- })) ? _slot2 : {
381
- default: () => [_slot2]
379
+ })) ? _slot : {
380
+ default: () => [_slot]
382
381
  }), createVNode(resolveComponent("iBizFilterModeSelect"), {
383
382
  "disabled": true,
384
383
  "class": ns.e("mode-select"),
@@ -395,8 +394,8 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
395
394
  "onClick": () => {
396
395
  addItem(node);
397
396
  }
398
- }, _isSlot(_slot3 = ibiz.i18n.t("control.searchBar.filterTree.addItem")) ? _slot3 : {
399
- default: () => [_slot3]
397
+ }, _isSlot(_slot2 = ibiz.i18n.t("control.searchBar.filterTree.addItem")) ? _slot2 : {
398
+ default: () => [_slot2]
400
399
  })]), createVNode("div", {
401
400
  "class": ns.be("group", "list")
402
401
  }, [node.children.length > 0 && node.children.map((child, index) => {
@@ -433,7 +432,7 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
433
432
  };
434
433
  },
435
434
  render() {
436
- let _slot4;
435
+ let _slot3;
437
436
  return createVNode("div", {
438
437
  "class": [this.ns.b()]
439
438
  }, [this.UiFilterNodes.length > 0 && this.UiFilterNodes.map((node) => {
@@ -453,8 +452,8 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
453
452
  "onClick": () => {
454
453
  this.onCancel();
455
454
  }
456
- }, _isSlot(_slot4 = ibiz.i18n.t("app.reset")) ? _slot4 : {
457
- default: () => [_slot4]
455
+ }, _isSlot(_slot3 = ibiz.i18n.t("app.reset")) ? _slot3 : {
456
+ default: () => [_slot3]
458
457
  })])]);
459
458
  }
460
459
  });
@@ -0,0 +1,48 @@
1
+ import { IDETBUIActionItem } from '@ibiz/model-core';
2
+ import { PropType } from 'vue';
3
+ import { IToolbarController } from '@ibiz-template/runtime';
4
+ import './short-cut-button.scss';
5
+ export declare const IBizShortCutButton: import("vue").DefineComponent<{
6
+ mode: {
7
+ type: StringConstructor;
8
+ required: false;
9
+ };
10
+ size: {
11
+ type: StringConstructor;
12
+ required: false;
13
+ };
14
+ item: {
15
+ type: PropType<IDETBUIActionItem>;
16
+ required: true;
17
+ };
18
+ controller: {
19
+ type: PropType<IToolbarController<import("@ibiz/model-core").IDEToolbar, import("@ibiz-template/runtime").IToolbarState, import("@ibiz-template/runtime").IToolbarEvent>>;
20
+ required: true;
21
+ };
22
+ }, {
23
+ ns: import("@ibiz-template/core").Namespace;
24
+ ns2: import("@ibiz-template/core").Namespace;
25
+ buttonState: import("vue").ComputedRef<any>;
26
+ buttonType: string | undefined;
27
+ isShortCut: import("vue").ComputedRef<boolean>;
28
+ onClick: (e: MouseEvent) => void;
29
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
30
+ mode: {
31
+ type: StringConstructor;
32
+ required: false;
33
+ };
34
+ size: {
35
+ type: StringConstructor;
36
+ required: false;
37
+ };
38
+ item: {
39
+ type: PropType<IDETBUIActionItem>;
40
+ required: true;
41
+ };
42
+ controller: {
43
+ type: PropType<IToolbarController<import("@ibiz/model-core").IDEToolbar, import("@ibiz-template/runtime").IToolbarState, import("@ibiz-template/runtime").IToolbarEvent>>;
44
+ required: true;
45
+ };
46
+ }>> & {
47
+ onClick?: ((...args: any[]) => any) | undefined;
48
+ }, {}, {}>;
@@ -0,0 +1,71 @@
1
+ import { computed, resolveComponent, createVNode, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import './short-cut-button.css';
4
+
5
+ "use strict";
6
+ const IBizShortCutButton = /* @__PURE__ */ defineComponent({
7
+ name: "IBizShortCutButton",
8
+ props: {
9
+ mode: {
10
+ type: String,
11
+ required: false
12
+ },
13
+ size: {
14
+ type: String,
15
+ required: false
16
+ },
17
+ item: {
18
+ type: Object,
19
+ required: true
20
+ },
21
+ controller: {
22
+ type: Object,
23
+ required: true
24
+ }
25
+ },
26
+ emits: ["click"],
27
+ setup(props, {
28
+ emit
29
+ }) {
30
+ var _a;
31
+ const ns = useNamespace("short-cut-button");
32
+ const ns2 = useNamespace("toolbar-item");
33
+ const onClick = (e) => {
34
+ emit("click", e);
35
+ };
36
+ const buttonType = (_a = props.item.buttonStyle) == null ? void 0 : _a.toLowerCase();
37
+ const buttonState = computed(() => props.controller.state.buttonsState[props.item.id]);
38
+ const isShortCut = computed(() => props.controller.view.state.isShortCut);
39
+ return {
40
+ ns,
41
+ ns2,
42
+ buttonState,
43
+ buttonType,
44
+ isShortCut,
45
+ onClick
46
+ };
47
+ },
48
+ render() {
49
+ return createVNode("div", {
50
+ "class": [this.ns.b(), this.ns.is("short-cut", this.isShortCut)]
51
+ }, [createVNode(resolveComponent("el-button"), {
52
+ "title": this.isShortCut ? "".concat(ibiz.i18n.t("app.cancel")).concat(this.item.tooltip) : this.item.tooltip,
53
+ "size": this.size,
54
+ "text": Object.is(this.buttonType, "inverse"),
55
+ "type": this.buttonType,
56
+ "loading": this.buttonState.loading,
57
+ "disabled": this.buttonState.disabled,
58
+ "onClick": this.onClick
59
+ }, {
60
+ default: () => [this.item.showIcon && this.item.sysImage && createVNode("span", {
61
+ "class": this.ns2.b("icon")
62
+ }, [createVNode(resolveComponent("iBizIcon"), {
63
+ "icon": this.item.sysImage
64
+ }, null)]), this.item.showCaption && createVNode("span", {
65
+ "class": this.ns2.b("text")
66
+ }, [this.isShortCut ? "".concat(ibiz.i18n.t("app.cancel")).concat(this.item.caption) : this.item.caption])]
67
+ })]);
68
+ }
69
+ });
70
+
71
+ export { IBizShortCutButton };
@@ -1,7 +1,8 @@
1
- import { isVNode, resolveComponent, createVNode, ref, createTextVNode, defineComponent } from 'vue';
1
+ import { isVNode, resolveComponent, createVNode, ref, h, createTextVNode, defineComponent } from 'vue';
2
2
  import { useNamespace, useControlController } from '@ibiz-template/vue3-util';
3
3
  import { ToolbarController } from '@ibiz-template/runtime';
4
4
  import { IBizExportExcel } from './export-excel/export-excel.mjs';
5
+ import { IBizShortCutButton } from './short-cut-button/short-cut-button.mjs';
5
6
  import './toolbar.css';
6
7
 
7
8
  "use strict";
@@ -79,6 +80,11 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
79
80
  };
80
81
  const renderSubmenu = (item) => {
81
82
  const detoolbarItems = item.detoolbarItems || [];
83
+ const curVisible = c.state.buttonsState[item.id].visible;
84
+ const curDisabled = c.state.buttonsState[item.id].disabled;
85
+ if (!curVisible) {
86
+ return null;
87
+ }
82
88
  const ploading = detoolbarItems.findIndex((item2) => c.state.buttonsState[item2.id].loading) !== -1;
83
89
  const pvisible = detoolbarItems.findIndex((item2) => {
84
90
  return c.state.buttonsState[item2.id].visible === true;
@@ -86,7 +92,7 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
86
92
  if (!pvisible) {
87
93
  return null;
88
94
  }
89
- const pdisabled = detoolbarItems.findIndex((item2) => {
95
+ const pdisabled = curDisabled || detoolbarItems.findIndex((item2) => {
90
96
  return c.state.buttonsState[item2.id].disabled === false;
91
97
  }) === -1;
92
98
  const groupButtonStyle = item.buttonStyle || "";
@@ -101,9 +107,19 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
101
107
  var _a2, _b;
102
108
  const actionId = item2.uiactionId;
103
109
  const visible = (_a2 = c.state.buttonsState[item2.id]) == null ? void 0 : _a2.visible;
110
+ const provider = c.itemProviders[item2.id];
104
111
  if (!visible) {
105
112
  return null;
106
113
  }
114
+ if (provider) {
115
+ const component = resolveComponent(provider.component);
116
+ return h(component, {
117
+ key: item2.id,
118
+ class: [ns.e("item")],
119
+ item,
120
+ controller: c
121
+ });
122
+ }
107
123
  if (item2.itemType === "SEPERATOR") {
108
124
  return;
109
125
  }
@@ -169,9 +185,19 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
169
185
  var _a2, _b;
170
186
  const itemId = item.id;
171
187
  const visible = (_a2 = c.state.buttonsState[itemId]) == null ? void 0 : _a2.visible;
188
+ const provider = c.itemProviders[itemId];
172
189
  if (!visible) {
173
190
  return null;
174
191
  }
192
+ if (provider) {
193
+ const component = resolveComponent(provider.component);
194
+ return h(component, {
195
+ key: itemId,
196
+ class: [ns.e("item")],
197
+ item,
198
+ controller: c
199
+ });
200
+ }
175
201
  if (item.itemType === "SEPERATOR") {
176
202
  return createVNode("div", {
177
203
  "key": itemId,
@@ -202,6 +228,16 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
202
228
  }
203
229
  }, null);
204
230
  }
231
+ if (actionId === "shortcut") {
232
+ return createVNode(IBizShortCutButton, {
233
+ "key": itemId,
234
+ "class": [ns.e("item"), ns.e("item-deuiaction"), ns.em("item", buttonType), calcCssName(item)],
235
+ "item": item,
236
+ "controller": c,
237
+ "size": btnSize.value,
238
+ "onClick": (e) => handleClick(item, e)
239
+ }, null);
240
+ }
205
241
  return createVNode("div", {
206
242
  "key": itemId,
207
243
  "class": [ns.e("item"), ns.e("item-deuiaction"), ns.em("item", buttonType), calcCssName(item), ns.is("loading", c.state.buttonsState[itemId].loading)]
@@ -1 +1 @@
1
- .ibiz-control-treeview{--ibiz-control-treeview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-treeview-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-icon-width:var(--ibiz-spacing-base);height:100%;padding:var(--ibiz-control-treeview-padding)}.ibiz-control-treeview-node{display:flex;flex-grow:1;flex-shrink:1;align-items:center;min-width:1px;height:100%}.ibiz-control-treeview-node__icon{display:inline-block;width:var(--ibiz-control-treeview-icon-width);height:var(--ibiz-control-treeview-icon-height);margin-right:var(--ibiz-spacing-tight)}.ibiz-control-treeview-node__icon>svg{width:100%;height:100%}.ibiz-control-treeview-node__label{flex-grow:1;flex-shrink:1;min-width:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-control-treeview-node:hover .ibiz-control-treeview-context-menu-trigger{display:inline-block}.ibiz-control-treeview-node--disabled{color:var(--ibiz-color-disabled-text);cursor:not-allowed}.ibiz-control-treeview-context-menu-trigger{display:none;flex-shrink:0;width:30px;text-align:center;cursor:pointer}.ibiz-control-treeview-context-menu-trigger__caption-icon{vertical-align:middle}.ibiz-control-treeview-context-menu.mx-context-menu{padding:var(--ibiz-spacing-extra-tight) 0}.ibiz-control-treeview-context-menu.mx-context-menu .mx-context-menu-item{padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}.ibiz-control-treeview-quick-search{margin-bottom:var(--ibiz-spacing-tight)}
1
+ .ibiz-control-treeview{--ibiz-control-treeview-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-treeview-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-icon-width:var(--ibiz-spacing-base);height:100%;padding:var(--ibiz-spacing-tight) 0}.ibiz-control-treeview-node{display:flex;flex-grow:1;flex-shrink:1;align-items:center;min-width:1px;height:100%}.ibiz-control-treeview-node__icon{display:inline-block;width:var(--ibiz-control-treeview-icon-width);height:var(--ibiz-control-treeview-icon-height);margin-right:var(--ibiz-spacing-tight)}.ibiz-control-treeview-node__icon>svg{width:100%;height:100%}.ibiz-control-treeview-node__label{flex-grow:1;flex-shrink:1;min-width:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-control-treeview-node:hover .ibiz-control-treeview-context-menu-trigger{display:inline-block}.ibiz-control-treeview-node--disabled{color:var(--ibiz-color-disabled-text);cursor:not-allowed}.ibiz-control-treeview-context-menu-trigger{display:none;flex-shrink:0;width:30px;text-align:center;cursor:pointer}.ibiz-control-treeview-context-menu-trigger__caption-icon{vertical-align:middle}.ibiz-control-treeview-context-menu.mx-context-menu{padding:var(--ibiz-spacing-extra-tight) 0}.ibiz-control-treeview-context-menu.mx-context-menu .mx-context-menu-item{padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}.ibiz-control-treeview-quick-search{padding:0 var(--ibiz-spacing-base) var(--ibiz-spacing-tight)}.ibiz-control-treeview-tree{padding:0 var(--ibiz-spacing-base)}
@@ -441,7 +441,7 @@ const TreeControl = /* @__PURE__ */ defineComponent({
441
441
  }
442
442
  return createVNode(resolveComponent("el-input"), {
443
443
  "model-value": this.c.state.query,
444
- "class": [this.ns.b("quick-search"), this.ns.b("quick-search")],
444
+ "class": this.ns.b("quick-search"),
445
445
  "placeholder": this.c.state.placeHolder,
446
446
  "onInput": this.onInput
447
447
  }, {
@@ -459,6 +459,7 @@ const TreeControl = /* @__PURE__ */ defineComponent({
459
459
  if (this.c.state.isLoaded && this.treeRefreshKey) {
460
460
  return createVNode(resolveComponent("el-tree"), {
461
461
  "ref": "treeRef",
462
+ "class": this.ns.b("tree"),
462
463
  "key": this.treeRefreshKey,
463
464
  "node-key": "_id",
464
465
  "highlight-current": true,
@@ -1 +1 @@
1
- .ibiz-picker-select-view{width:100%}.ibiz-picker-select-view .el-dropdown{width:100%}.ibiz-picker-select-view .el-select{width:100%}.ibiz-picker-select-view--readonly{font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-readonly-color)}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper{width:100%;min-height:100px;max-height:500px;overflow:auto}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list{background:var(--ibiz-color-primary-text)}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list .el-dropdown-menu{background:var(--ibiz-color-primary-text)}.ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default:hover .ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default:hover .ibiz-picker-select-view-select{display:block}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-form-default-content{display:flex;align-items:center;width:100%;height:var(--ibiz-editor-default-line-height);padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-form-default-content .ibiz-picker-select-view-content-item{height:22px;padding:0 9px;margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:22px;color:var(--ibiz-editor-default-text-color);background-color:var(--ibiz-color-fill-0);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-select{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default.is-editable .ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default.is-editable .ibiz-picker-select-view-select{display:block}.ibiz-picker-select-view-select-popover{display:none}
1
+ .ibiz-picker-select-view{width:100%}.ibiz-picker-select-view .el-dropdown{width:100%}.ibiz-picker-select-view .el-select{width:100%}.ibiz-picker-select-view__arrow{display:flex;transition:transform .3s;transform:rotateZ(0);transform-origin:center center}.ibiz-picker-select-view__arrow>svg{width:14px;height:14px}.ibiz-picker-select-view__arrow.overturn{transform:rotateZ(-180deg)}.ibiz-picker-select-view--readonly{font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-readonly-color)}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper{width:100%;min-height:100px;max-height:500px;overflow:auto}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list{background:var(--ibiz-color-primary-text)}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list .el-dropdown-menu{background:var(--ibiz-color-primary-text)}.ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default:hover .ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default:hover .ibiz-picker-select-view-select{display:block}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-form-default-content{display:flex;align-items:center;width:100%;height:var(--ibiz-editor-default-line-height);padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-form-default-content .ibiz-picker-select-view-content-item{height:22px;padding:0 9px;margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:22px;color:var(--ibiz-editor-default-text-color);background-color:var(--ibiz-color-fill-0);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-select{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default.is-editable .ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default.is-editable .ibiz-picker-select-view-select{display:block}.ibiz-picker-select-view-select-popover{display:none}
@@ -56,6 +56,7 @@ export declare const IBizPickerSelectView: import("vue").DefineComponent<{
56
56
  showView: Ref<boolean>;
57
57
  selectedData: Ref<IData[]>;
58
58
  handleDropDownKeyDown: (e: KeyboardEvent) => void;
59
+ arrow: () => JSX.Element;
59
60
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
60
61
  change: (_value: unknown, _name?: string | undefined) => boolean;
61
62
  blur: (_event?: IData | undefined) => boolean;
@@ -1,4 +1,4 @@
1
- import { isVNode, ref, watch, computed, onMounted, resolveComponent, createVNode, h, defineComponent } from 'vue';
1
+ import { isVNode, ref, watch, computed, onMounted, createVNode, resolveComponent, h, defineComponent } from 'vue';
2
2
  import { getDataPickerProps, getEditorEmits, useNamespace, useFocusAndBlur } from '@ibiz-template/vue3-util';
3
3
  import './ibiz-picker-select-view.css';
4
4
  import { ViewMode, Modal } from '@ibiz-template/runtime';
@@ -247,6 +247,16 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
247
247
  keySet.value = items.value.map((item) => item.srfkey);
248
248
  }
249
249
  }
250
+ if (!singleSelect.value) {
251
+ if (c.model.valueType === "OBJECTS") {
252
+ emit("change", multipleObjs.value);
253
+ } else {
254
+ if (c.valueItem) {
255
+ emit("change", multipleTempValue.value, c.valueItem);
256
+ }
257
+ emit("change", multipleTempText.value);
258
+ }
259
+ }
250
260
  };
251
261
  const openLinkView = async (e) => {
252
262
  e.stopPropagation();
@@ -335,16 +345,6 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
335
345
  });
336
346
  const onVisibleChange = (e) => {
337
347
  showView.value = e;
338
- if (!e && !singleSelect.value) {
339
- if (c.model.valueType === "OBJECTS") {
340
- emit("change", multipleObjs.value);
341
- } else {
342
- if (c.valueItem) {
343
- emit("change", multipleTempValue.value, c.valueItem);
344
- }
345
- emit("change", multipleTempText.value);
346
- }
347
- }
348
348
  if (e === false) {
349
349
  onBlur({});
350
350
  }
@@ -357,6 +357,15 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
357
357
  }
358
358
  }
359
359
  };
360
+ const arrow = () => {
361
+ return createVNode("svg", {
362
+ "viewBox": "0 0 1024 1024",
363
+ "xmlns": "http://www.w3.org/2000/svg"
364
+ }, [createVNode("path", {
365
+ "fill": "currentColor",
366
+ "d": "M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"
367
+ }, null)]);
368
+ };
360
369
  return {
361
370
  ns,
362
371
  c,
@@ -388,7 +397,8 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
388
397
  onVisibleChange,
389
398
  showView,
390
399
  selectedData,
391
- handleDropDownKeyDown
400
+ handleDropDownKeyDown,
401
+ arrow
392
402
  };
393
403
  },
394
404
  render() {
@@ -423,7 +433,9 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
423
433
  }, null), this.c.model.linkAppViewId && createVNode("ion-icon", {
424
434
  "onClick": this.openLinkView,
425
435
  "name": "link-arrow"
426
- }, null)];
436
+ }, null), this.c.model.showTrigger && createVNode("div", {
437
+ "class": [this.ns.e("arrow"), this.showView ? "overturn" : ""]
438
+ }, [this.arrow()])];
427
439
  }
428
440
  }) : createVNode(resolveComponent("el-select"), {
429
441
  "popper-class": this.ns.b("select-popover"),
package/es/index.mjs CHANGED
@@ -121,6 +121,7 @@ export { OverlayController } from './util/overlay-controller/overlay-controller.
121
121
  export { usePagination } from './util/pagination/use-pagination.mjs';
122
122
  export { NoticeUtil } from './util/notice-util/notice-util.mjs';
123
123
  export { RenderUtil } from './util/render-util/render-util.mjs';
124
+ export { AppUtil } from './util/app-util/app-util.mjs';
124
125
  export { AuthGuard } from './web-app/guard/auth-guard/auth-guard.mjs';
125
126
  export { runApp } from './web-app/main.mjs';
126
127
  export { AppRouter } from './web-app/router/index.mjs';
@@ -731,6 +731,7 @@ declare const _default: {
731
731
  frontEndPluginNode: string;
732
732
  viewPlugin: string;
733
733
  correspondViewTypeStyle: string;
734
+ toolbarItem: string;
734
735
  };
735
736
  };
736
737
  service: {
@@ -737,7 +737,8 @@ var index = {
737
737
  interfaceBehaviorMode: "Find the adapter that does not correspond to the interface behavior mode {uiactionMode}.",
738
738
  frontEndPluginNode: "Cannot find interface logic front-end plugin node, plugin {pluginKey} corresponding adapter",
739
739
  viewPlugin: "Cannot find the adapter corresponding to the view plugin {pluginKey}.",
740
- correspondViewTypeStyle: "Cannot find an adapter for view type: [{viewType}] corresponding to view style: [{viewStyle}]."
740
+ correspondViewTypeStyle: "Cannot find an adapter for view type: [{viewType}] corresponding to view style: [{viewStyle}].",
741
+ toolbarItem: "Cannot find the adapter corresponding to the toolbar item plugin {pluginKey}."
741
742
  }
742
743
  },
743
744
  service: {
@@ -729,6 +729,7 @@ declare const _default: {
729
729
  frontEndPluginNode: string;
730
730
  viewPlugin: string;
731
731
  correspondViewTypeStyle: string;
732
+ toolbarItem: string;
732
733
  };
733
734
  };
734
735
  service: {
@@ -735,7 +735,8 @@ var index = {
735
735
  interfaceBehaviorMode: "\u627E\u4E0D\u754C\u9762\u884C\u4E3A\u6A21\u5F0F{uiactionMode}\u5BF9\u5E94\u7684\u9002\u914D\u5668",
736
736
  frontEndPluginNode: "\u627E\u4E0D\u5230\u754C\u9762\u903B\u8F91\u524D\u7AEF\u63D2\u4EF6\u8282\u70B9\uFF0C\u63D2\u4EF6{pluginKey}\u5BF9\u5E94\u7684\u9002\u914D\u5668",
737
737
  viewPlugin: "\u627E\u4E0D\u5230\u89C6\u56FE\u63D2\u4EF6{pluginKey}\u5BF9\u5E94\u7684\u9002\u914D\u5668",
738
- correspondViewTypeStyle: "\u627E\u4E0D\u5230\u89C6\u56FE\u7C7B\u578B\uFF1A[{viewType}]\u7684\u89C6\u56FE\u6837\u5F0F\uFF1A[{viewStyle}]\u5BF9\u5E94\u7684\u9002\u914D\u5668"
738
+ correspondViewTypeStyle: "\u627E\u4E0D\u5230\u89C6\u56FE\u7C7B\u578B\uFF1A[{viewType}]\u7684\u89C6\u56FE\u6837\u5F0F\uFF1A[{viewStyle}]\u5BF9\u5E94\u7684\u9002\u914D\u5668",
739
+ toolbarItem: "\u627E\u4E0D\u5230\u5DE5\u5177\u680F\u9879\u63D2\u4EF6{pluginKey}\u5BF9\u5E94\u7684\u9002\u914D\u5668"
739
740
  }
740
741
  },
741
742
  service: {