@ibiz-template/mob-vue3-components 0.7.41-alpha.12 → 0.7.41-alpha.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 (83) hide show
  1. package/dist/index-Pq2AnubY.js +76 -0
  2. package/dist/index-Pq2AnubY.js.map +1 -0
  3. package/dist/index.min.css +8 -8
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{quill-7fiycnP7.js → quill-QfnovuHC.js} +2 -2
  6. package/dist/{quill-7fiycnP7.js.map → quill-QfnovuHC.js.map} +1 -1
  7. package/dist/{quill-editor-preview-GUdcFmjn.js → quill-editor-preview-0dI65Nu7.js} +2 -2
  8. package/dist/{quill-editor-preview-GUdcFmjn.js.map → quill-editor-preview-0dI65Nu7.js.map} +1 -1
  9. package/dist/{quill-editor-Nndlb9WE.js → quill-editor-x-OFlakL.js} +2 -2
  10. package/dist/{quill-editor-Nndlb9WE.js.map → quill-editor-x-OFlakL.js.map} +1 -1
  11. package/dist/tree-4CqtwsXL.js +2 -0
  12. package/dist/tree-4CqtwsXL.js.map +1 -0
  13. package/es/_virtual/index12.mjs +2 -2
  14. package/es/_virtual/index13.mjs +2 -2
  15. package/es/common/action-group/action-group.css +1 -0
  16. package/es/common/action-group/action-group.d.ts +54 -0
  17. package/es/common/action-group/action-group.mjs +165 -0
  18. package/es/common/action-toolbar/action-toolbar.d.ts +1 -0
  19. package/es/common/action-toolbar/action-toolbar.mjs +20 -8
  20. package/es/common/button-list/button-list.css +1 -1
  21. package/es/common/button-list/button-list.d.ts +3 -2
  22. package/es/common/button-list/button-list.mjs +83 -63
  23. package/es/common/index.mjs +2 -0
  24. package/es/common/rawitem/rawitem.mjs +2 -2
  25. package/es/control/list/md-ctrl/md-ctrl.mjs +13 -15
  26. package/es/control/tab-exp-panel/index.d.ts +1 -0
  27. package/es/control/tab-exp-panel/tab-exp-panel.css +1 -0
  28. package/es/control/tab-exp-panel/tab-exp-panel.d.ts +2 -0
  29. package/es/control/tab-exp-panel/tab-exp-panel.mjs +28 -1
  30. package/es/control/tree/tree.css +1 -1
  31. package/es/control/tree/tree.d.ts +15 -0
  32. package/es/control/tree/tree.mjs +14 -2
  33. package/es/editor/raw/ibiz-raw/ibiz-raw.d.ts +2 -2
  34. package/es/editor/span/span/span.d.ts +5 -3
  35. package/es/editor/span/span/span.mjs +5 -5
  36. package/es/editor/upload/use/use-van-upload.mjs +19 -1
  37. package/es/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.mjs +1 -1
  38. package/es/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.mjs +1 -1
  39. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.controller.d.ts +54 -0
  40. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.controller.mjs +76 -0
  41. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.css +1 -0
  42. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.d.ts +43 -0
  43. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.mjs +80 -0
  44. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.provider.d.ts +14 -0
  45. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.provider.mjs +21 -0
  46. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.state.d.ts +10 -0
  47. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.state.mjs +7 -0
  48. package/es/panel-component/index-blank-placeholder/index.d.ts +25 -0
  49. package/es/panel-component/index-blank-placeholder/index.mjs +19 -0
  50. package/es/panel-component/index.mjs +2 -0
  51. package/es/panel-component/panel-button-list/panel-button-list.controller.d.ts +1 -1
  52. package/es/panel-component/panel-button-list/panel-button-list.controller.mjs +19 -18
  53. package/lib/_virtual/index12.cjs +2 -2
  54. package/lib/_virtual/index13.cjs +2 -2
  55. package/lib/common/action-group/action-group.cjs +167 -0
  56. package/lib/common/action-group/action-group.css +1 -0
  57. package/lib/common/action-toolbar/action-toolbar.cjs +20 -8
  58. package/lib/common/button-list/button-list.cjs +82 -62
  59. package/lib/common/button-list/button-list.css +1 -1
  60. package/lib/common/index.cjs +2 -0
  61. package/lib/common/rawitem/rawitem.cjs +2 -2
  62. package/lib/control/list/md-ctrl/md-ctrl.cjs +12 -14
  63. package/lib/control/tab-exp-panel/tab-exp-panel.cjs +27 -0
  64. package/lib/control/tab-exp-panel/tab-exp-panel.css +1 -0
  65. package/lib/control/tree/tree.cjs +14 -2
  66. package/lib/control/tree/tree.css +1 -1
  67. package/lib/editor/span/span/span.cjs +5 -5
  68. package/lib/editor/upload/use/use-van-upload.cjs +19 -1
  69. package/lib/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.cjs +1 -1
  70. package/lib/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.cjs +1 -1
  71. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.cjs +82 -0
  72. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.controller.cjs +78 -0
  73. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.css +1 -0
  74. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.provider.cjs +23 -0
  75. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.state.cjs +9 -0
  76. package/lib/panel-component/index-blank-placeholder/index.cjs +25 -0
  77. package/lib/panel-component/index.cjs +2 -0
  78. package/lib/panel-component/panel-button-list/panel-button-list.controller.cjs +18 -17
  79. package/package.json +6 -6
  80. package/dist/index-yGM1h2Ma.js +0 -76
  81. package/dist/index-yGM1h2Ma.js.map +0 -1
  82. package/dist/tree-nburezSg.js +0 -2
  83. package/dist/tree-nburezSg.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { ref, computed, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { ref, computed, createVNode, resolveComponent, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import '../../util/index.mjs';
4
4
  import './button-list.css';
@@ -29,6 +29,36 @@ const IBizButtonList = /* @__PURE__ */ defineComponent({
29
29
  }) {
30
30
  const ns = useNamespace("button-list");
31
31
  const showPopover = ref(false);
32
+ const buttonRef = ref();
33
+ const childPopover = ref(false);
34
+ const details = computed(() => {
35
+ const {
36
+ buttonListType,
37
+ uiactionGroup
38
+ } = props.model;
39
+ if (buttonListType === "UIACTIONGROUP")
40
+ return (uiactionGroup == null ? void 0 : uiactionGroup.uiactionGroupDetails) || [];
41
+ return props.model.panelButtons || props.model.deformButtons || [];
42
+ });
43
+ const placement = computed(() => {
44
+ if (!buttonRef.value)
45
+ return "bottom";
46
+ const {
47
+ innerWidth,
48
+ innerHeight
49
+ } = window;
50
+ const {
51
+ offsetLeft: x,
52
+ offsetTop: y,
53
+ offsetWidth: width
54
+ } = buttonRef.value.$el;
55
+ const centerX = innerWidth - width - 128;
56
+ const centerY = details.value.length ? innerHeight - details.value.length * 44 : innerHeight / 2;
57
+ if (y > centerY) {
58
+ return x > centerX ? "top-end" : "top-start";
59
+ }
60
+ return x > centerX ? "bottom-end" : "bottom-start";
61
+ });
32
62
  const buttonListStyle = computed(() => {
33
63
  const {
34
64
  itemStyle,
@@ -37,102 +67,90 @@ const IBizButtonList = /* @__PURE__ */ defineComponent({
37
67
  return itemStyle || detailStyle || "DEFAULT";
38
68
  });
39
69
  const handleClick = (item, e) => {
70
+ e == null ? void 0 : e.stopPropagation();
40
71
  emit("click", item.id, e);
41
72
  };
42
73
  const onChangePopover = (e) => {
43
74
  e.stopPropagation();
44
75
  showPopover.value = !showPopover.value;
45
76
  };
46
- const details = computed(() => {
47
- const {
48
- buttonListType,
49
- uiactionGroup
50
- } = props.model;
51
- if (buttonListType === "UIACTIONGROUP")
52
- return (uiactionGroup == null ? void 0 : uiactionGroup.uiactionGroupDetails) || [];
53
- return props.model.panelButtons || props.model.deformButtons || [];
54
- });
55
- const actions = computed(() => {
56
- return details.value.filter((detail) => {
57
- var _a;
58
- return ((_a = props.buttonsState[detail.id]) == null ? void 0 : _a.visible) !== false;
59
- }).map((detail) => {
60
- var _a, _b;
61
- return {
62
- ...detail,
63
- disabled: (_a = props.buttonsState[detail.id]) == null ? void 0 : _a.disabled,
64
- className: (_b = detail.sysCss) == null ? void 0 : _b.cssName
65
- };
66
- });
67
- });
68
- const renderActions = () => {
69
- return createVNode("div", {
70
- "class": ns.e("content")
71
- }, [details.value.map((item) => {
77
+ const renderSeparator = (visible) => {
78
+ if (visible)
79
+ return createVNode("div", {
80
+ "class": ns.e("separator")
81
+ }, null);
82
+ };
83
+ const renderActions = (direction) => {
84
+ const showSeparator = direction === "vertical";
85
+ return details.value.map((item) => {
72
86
  var _a, _b, _c, _d;
73
- if (((_a = props.buttonsState[item.id]) == null ? void 0 : _a.visible) === false)
74
- return;
75
- return createVNode(resolveComponent("van-button"), {
76
- "class": [ns.e("item"), ns.em("item", `${(_b = item.id) == null ? void 0 : _b.toLowerCase()}`), (_c = item.sysCss) == null ? void 0 : _c.cssName],
77
- "size": "small",
78
- "type": convertBtnType(item.buttonStyle),
79
- "disabled": ((_d = props.buttonsState[item.id]) == null ? void 0 : _d.disabled) || props.disabled,
80
- "onClick": (event) => handleClick(item, event)
81
- }, {
82
- default: () => [item.showIcon !== false && createVNode(resolveComponent("iBizIcon"), {
83
- "icon": item.sysImage,
84
- "class": ns.em("item", "icon")
85
- }, null), item.showCaption && createVNode("span", {
86
- "class": ns.em("item", "caption")
87
- }, [item.caption])]
88
- });
89
- })]);
87
+ if (item.detailType === "DEUIACTIONGROUP")
88
+ return [renderSeparator(item.addSeparator && showSeparator), createVNode(resolveComponent("iBizActionGroup"), {
89
+ "actionDetail": item,
90
+ "onActionClick": handleClick,
91
+ "actionsState": props.buttonsState,
92
+ "popoverClassName": ns.b("action-group"),
93
+ "onPopoverVisibleChange": (visible) => childPopover.value = visible,
94
+ "direction": direction === "horizontal" ? "vertical" : "horizontal"
95
+ }, null)];
96
+ if ((_a = props.buttonsState[item.id]) == null ? void 0 : _a.visible)
97
+ return [renderSeparator(item.addSeparator && showSeparator), createVNode(resolveComponent("van-button"), {
98
+ "size": "small",
99
+ "class": [ns.e("item"), ns.em("item", `${(_b = item.id) == null ? void 0 : _b.toLowerCase()}`), (_c = item.sysCss) == null ? void 0 : _c.cssName],
100
+ "type": convertBtnType(item.buttonStyle),
101
+ "disabled": ((_d = props.buttonsState[item.id]) == null ? void 0 : _d.disabled) || props.disabled,
102
+ "onClick": (event) => handleClick(item, event)
103
+ }, {
104
+ default: () => [item.showIcon !== false && createVNode(resolveComponent("iBizIcon"), {
105
+ "icon": item.sysImage,
106
+ "class": ns.em("item", "icon")
107
+ }, null), item.showCaption && createVNode("span", {
108
+ "class": ns.em("item", "caption")
109
+ }, [item.caption])]
110
+ })];
111
+ return null;
112
+ });
90
113
  };
91
114
  const renderDropdown = () => {
92
115
  return createVNode(resolveComponent("van-popover"), {
93
116
  "class": ns.e("popover"),
94
- "placement": "bottom-end",
95
- "actions": actions.value,
117
+ "placement": placement.value,
96
118
  "show": showPopover.value,
97
119
  "onUpdate:show": ($event) => showPopover.value = $event,
98
- "onSelect": (data) => handleClick(data)
120
+ "close-on-click-outside": !childPopover.value
99
121
  }, {
100
- action: ({
101
- action
102
- }) => {
103
- return createVNode("span", {
104
- "class": ns.em("popover", "item")
105
- }, [action.showIcon !== false && action.sysImage && createVNode(resolveComponent("iBizIcon"), {
106
- "icon": action.sysImage
107
- }, null), action.showCaption && action.caption]);
108
- },
109
122
  reference: () => {
110
123
  const {
111
124
  caption,
112
- sysImage,
113
- showCaption
125
+ sysImage
114
126
  } = props.model;
115
127
  return createVNode(resolveComponent("van-button"), {
116
128
  "size": "small",
129
+ "ref": "buttonRef",
130
+ "class": ns.e("button"),
117
131
  "disabled": props.disabled,
118
132
  "onClick": onChangePopover,
119
133
  "type": convertBtnType(buttonListStyle.value)
120
134
  }, {
121
135
  default: () => [sysImage && createVNode(resolveComponent("iBizIcon"), {
122
- "class": ns.em("popover", "icon"),
136
+ "class": ns.em("button", "icon"),
123
137
  "icon": sysImage
124
- }, null), showCaption && createVNode("span", {
125
- "class": ns.em("popover", "caption")
138
+ }, null), caption && createVNode("span", {
139
+ "class": ns.em("button", "caption")
126
140
  }, [caption, createVNode("ion-icon", {
127
141
  "name": "chevron-down-outline",
128
- "class": ns.em("popover", "more")
142
+ "class": ns.em("button", "more")
129
143
  }, null)])]
130
144
  });
145
+ },
146
+ default: () => {
147
+ return renderActions("vertical");
131
148
  }
132
149
  });
133
150
  };
134
151
  return {
135
152
  ns,
153
+ buttonRef,
136
154
  renderDropdown,
137
155
  renderActions
138
156
  };
@@ -142,7 +160,9 @@ const IBizButtonList = /* @__PURE__ */ defineComponent({
142
160
  return createVNode("div", {
143
161
  "class": [this.ns.b(), this.ns.m(this.model.id), this.ns.m((_a = this.model.actionGroupExtractMode) == null ? void 0 : _a.toLowerCase())],
144
162
  "style": this.model.cssStyle
145
- }, [this.model.actionGroupExtractMode === "ITEM" || this.model.buttonListType === "BUTTONS" ? this.renderActions() : this.renderDropdown()]);
163
+ }, [this.model.actionGroupExtractMode === "ITEM" || this.model.buttonListType === "BUTTONS" ? createVNode("div", {
164
+ "class": this.ns.e("content")
165
+ }, [this.renderActions("horizontal")]) : this.renderDropdown()]);
146
166
  }
147
167
  });
148
168
 
@@ -16,10 +16,12 @@ import { IBizMdCtrlSetting } from './md-ctrl-setting/md-ctrl-setting.mjs';
16
16
  import { IBizPreviewImage } from './preview-image/preview-image.mjs';
17
17
  import { IBizDateRangeCalendar } from './date-range-picker/date-range-picker.mjs';
18
18
  import { IBizCropping } from './cropping/cropping.mjs';
19
+ import { IBizActionGroup } from './action-group/action-group.mjs';
19
20
 
20
21
  "use strict";
21
22
  const IBizCommonComponents = {
22
23
  install: (v) => {
24
+ v.component(IBizActionGroup.name, IBizActionGroup);
23
25
  v.component(IBizDateRangeCalendar.name, IBizDateRangeCalendar);
24
26
  v.component(IBizViewShell.name, IBizViewShell);
25
27
  v.component(IBizRow.name, IBizRow);
@@ -85,7 +85,7 @@ const IBizRawItem = /* @__PURE__ */ defineComponent({
85
85
  }
86
86
  }
87
87
  }
88
- if (["TEXT", "HEADING1", "HEADING2", "HEADING3", "HEADING4", "HEADING5", "HEADING6", "PARAGRAPH", "HTML"].includes(rawItemType.value)) {
88
+ if (["TEXT", "HEADING1", "HEADING2", "HEADING3", "HEADING4", "HEADING5", "HEADING6", "PARAGRAPH", "HTML", "RAW"].includes(rawItemType.value)) {
89
89
  rawItemText.value = rawItemContent.value;
90
90
  if (typeof rawItemText.value === "string") {
91
91
  rawItemText.value = rawItemText.value.replaceAll("&lt;", "<");
@@ -161,7 +161,7 @@ const IBizRawItem = /* @__PURE__ */ defineComponent({
161
161
  "icon": this.rawItemContent
162
162
  }, null);
163
163
  }
164
- if (this.rawItemType === "TEXT") {
164
+ if (this.rawItemType === "TEXT" || this.rawItemType === "RAW") {
165
165
  return createVNode("span", {
166
166
  "class": this.ns.e("text")
167
167
  }, [this.rawItemText]);
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { debounce } from 'lodash-es';
4
- import { MDCtrlController } from '@ibiz-template/runtime';
4
+ import { MDCtrlController, getAllUIActionItems } from '@ibiz-template/runtime';
5
5
  import { useListRender } from '../list-render-util.mjs';
6
6
  import '../../../util/index.mjs';
7
7
  import './md-ctrl.css';
@@ -147,24 +147,22 @@ const MDCtrlControl = /* @__PURE__ */ defineComponent({
147
147
  const leftSlidingActionGroup = c.model.deuiactionGroup;
148
148
  const rightSlidingActionGroup = c.model.deuiactionGroup2;
149
149
  const renderSlidingActionGroup = (group, data) => {
150
- const groupDetails = group.uiactionGroupDetails || [];
151
- if (!groupDetails || groupDetails.length === 0) {
150
+ const groupDetails = getAllUIActionItems(group.uiactionGroupDetails);
151
+ if (!groupDetails || groupDetails.length === 0)
152
152
  return null;
153
- }
154
153
  const row = c.state.rows.find((rowData) => data.srfkey === rowData.data.srfkey);
155
154
  const btnContainer = row.uaColStates[group.id];
156
155
  return groupDetails.map((detail) => {
157
- const btn = btnContainer[detail.id];
158
- if (btn.visible === false) {
159
- return null;
160
- }
161
- return createVNode(resolveComponent("van-button"), {
162
- "square": true,
163
- "type": "primary",
164
- "text": detail.caption,
165
- "disabled": btn.disabled || btn.loading,
166
- "onClick": (e) => c.onActionClick(detail, row, e)
167
- }, null);
156
+ const btn = btnContainer == null ? void 0 : btnContainer[detail.id];
157
+ if (btn == null ? void 0 : btn.visible)
158
+ return createVNode(resolveComponent("van-button"), {
159
+ "square": true,
160
+ "type": "primary",
161
+ "text": detail.caption,
162
+ "disabled": btn.disabled || btn.loading,
163
+ "onClick": (e) => c.onActionClick(detail, row, e)
164
+ }, null);
165
+ return null;
168
166
  });
169
167
  };
170
168
  const renderDefaultItem = (data) => {
@@ -22,6 +22,7 @@ export declare const IBizTabExpPanelControl: import("@ibiz-template/vue3-util").
22
22
  }, {
23
23
  c: import("@ibiz-template/runtime").TabExpPanelController;
24
24
  ns: import("@ibiz-template/core").Namespace;
25
+ tabPosition: string;
25
26
  onTabChange: (value: string) => void;
26
27
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
27
28
  modelData: {
@@ -0,0 +1 @@
1
+ .ibiz-control-tabexppanel-tab-item-header{padding:.5rem 1rem;overflow:hidden;font-size:var(--ibiz-font-size-regular);line-height:var(--van-cell-line-height);color:var(--ibiz-color-text-2);text-overflow:ellipsis;white-space:nowrap;background:var(--ibiz-color-bg-0)}
@@ -1,6 +1,7 @@
1
1
  import { PropType } from 'vue';
2
2
  import { ITabExpPanel } from '@ibiz/model-core';
3
3
  import { IControlProvider, TabExpPanelController } from '@ibiz-template/runtime';
4
+ import './tab-exp-panel.scss';
4
5
  export declare const TabExpPanelControl: import("vue").DefineComponent<{
5
6
  /**
6
7
  * @description 分页导航面板模型数据
@@ -40,6 +41,7 @@ export declare const TabExpPanelControl: import("vue").DefineComponent<{
40
41
  }, {
41
42
  c: TabExpPanelController;
42
43
  ns: import("@ibiz-template/core").Namespace;
44
+ tabPosition: string;
43
45
  onTabChange: (value: string) => void;
44
46
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
45
47
  /**
@@ -1,6 +1,7 @@
1
- import { isVNode, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, createVNode, resolveComponent, h, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { TabExpPanelController } from '@ibiz-template/runtime';
4
+ import './tab-exp-panel.css';
4
5
 
5
6
  "use strict";
6
7
  function _isSlot(s) {
@@ -46,8 +47,11 @@ const TabExpPanelControl = /* @__PURE__ */ defineComponent({
46
47
  }
47
48
  },
48
49
  setup() {
50
+ var _a, _b;
49
51
  const c = useControlController((...args) => new TabExpPanelController(...args));
50
52
  const ns = useNamespace(`control-${c.model.controlType.toLowerCase()}`);
53
+ const model = (_a = c.view) == null ? void 0 : _a.model;
54
+ const tabPosition = ((_b = model == null ? void 0 : model.tabLayout) == null ? void 0 : _b.toLowerCase()) || "top";
51
55
  const onTabChange = (value) => {
52
56
  c.state.activeName = value;
53
57
  c.handleTabChange();
@@ -55,6 +59,7 @@ const TabExpPanelControl = /* @__PURE__ */ defineComponent({
55
59
  return {
56
60
  c,
57
61
  ns,
62
+ tabPosition,
58
63
  onTabChange
59
64
  };
60
65
  },
@@ -64,6 +69,28 @@ const TabExpPanelControl = /* @__PURE__ */ defineComponent({
64
69
  isCreated,
65
70
  tabPages
66
71
  } = this.c.state;
72
+ if (this.tabPosition === "flow" || this.tabPosition === "flow_noheader") {
73
+ if (!isCreated) {
74
+ return;
75
+ }
76
+ return createVNode("div", {
77
+ "class": this.ns.b()
78
+ }, [tabPages.map((page) => {
79
+ var _a;
80
+ const target = (_a = this.c.model.controls) == null ? void 0 : _a.find((tab) => tab.id === page.tabTag);
81
+ return createVNode("div", {
82
+ "class": this.ns.b("tab-item")
83
+ }, [createVNode("div", {
84
+ "class": this.ns.b("tab-item-header")
85
+ }, [page.caption]), createVNode("div", {
86
+ "class": this.ns.b("tab-item-content")
87
+ }, [h(resolveComponent("IBizViewShell"), {
88
+ context: this.context,
89
+ params: this.params,
90
+ viewId: target == null ? void 0 : target.embeddedAppDEViewId
91
+ })])]);
92
+ })]);
93
+ }
67
94
  return isCreated && createVNode(resolveComponent("van-tabs"), {
68
95
  "class": [this.ns.b("header")],
69
96
  "active": this.c.state.activeName,
@@ -1 +1 @@
1
- .ibiz-control-treeview{--ibiz-control-treeview-text-color:var(--ibiz-color-text);--ibiz-control-treeview-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-active-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-padding:0.625rem;--ibiz-control-treeview-bg-color:var(--ibiz-color-bg-2);--ibiz-control-treeview-node-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-width:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-margin-right:var(--ibiz-spacing-tight);height:100%;padding:0 var(--ibiz-control-treeview-padding);background:var(--ibiz-control-treeview-bg-color)}.ibiz-control-treeview-content{--ibiz-control-treeview-text-color:var(--ibiz-color-text);--ibiz-control-treeview-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-active-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-padding:0.625rem;--ibiz-control-treeview-bg-color:var(--ibiz-color-bg-2);height:100%}.ibiz-control-treeview-content .vs-tree-node{position:relative;padding:var(--ibiz-control-treeview-padding)}.ibiz-control-treeview-content .vs-tree-node .vs-tree-inner{display:flex;align-items:center}.ibiz-control-treeview-content .vs-tree-node .vs-icon-leaf,.ibiz-control-treeview-content .vs-tree-node .vs-icon-parent{width:auto;margin-right:0}.ibiz-control-treeview-content .vs-tree-node .ibiz-icon{display:inline-flex;align-items:center;width:var(--ibiz-control-treeview-node-icon-width);height:var(--ibiz-control-treeview-node-icon-height);margin-right:var(--ibiz-control-treeview-node-icon-margin-right)}.ibiz-control-treeview-content .vs-tree-node .ibiz-icon>svg{width:100%;height:100%}.ibiz-control-treeview-content .tree-button{color:var(--ibiz-color-primary)}.ibiz-control-treeview-header{--ibiz-control-treeview-node-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-width:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-margin-right:var(--ibiz-spacing-tight);--ibiz-control-treeview-crumb-icon-top:0.1875rem}.ibiz-control-treeview-header__crumb{display:inline-flex;align-items:center;height:var(--ibiz-height-control-small)}.ibiz-control-treeview-header__crumb .ibiz-icon{display:inline-flex;align-items:center;width:var(--ibiz-control-treeview-node-icon-width);height:var(--ibiz-control-treeview-node-icon-height);margin-right:var(--ibiz-control-treeview-node-icon-margin-right);margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-control-treeview-header__crumb .ibiz-icon>svg{width:100%;height:100%}.ibiz-control-treeview-header__crumb>span:has(img),.ibiz-control-treeview-header__crumb>span:has(svg){position:relative}.ibiz-control-treeview-header__crumb>span:has(img) .ibiz-icon,.ibiz-control-treeview-header__crumb>span:has(svg) .ibiz-icon{position:absolute;top:var(--ibiz-control-treeview-crumb-icon-top)}.ibiz-control-treeview-header__crumb>span:has(img)::after,.ibiz-control-treeview-header__crumb>span:has(svg)::after{display:inline-block;width:var(--ibiz-control-treeview-node-icon-width);margin-right:var(--ibiz-spacing-extra-tight);content:"\e710";opacity:0}.ibiz-control-treeview-header.is-no-root>span:has(.ibiz-control-treeview-header__crumb.is-root){display:none}
1
+ .ibiz-control-treeview{--ibiz-control-treeview-text-color:var(--ibiz-color-text);--ibiz-control-treeview-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-active-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-padding:0.625rem;--ibiz-control-treeview-bg-color:var(--ibiz-color-bg-2);--ibiz-control-treeview-node-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-width:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-margin-right:var(--ibiz-spacing-tight);height:100%;padding:0 var(--ibiz-control-treeview-padding);background:var(--ibiz-control-treeview-bg-color)}.ibiz-control-treeview-content{--ibiz-control-treeview-text-color:var(--ibiz-color-text);--ibiz-control-treeview-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-active-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-padding:0.625rem;--ibiz-control-treeview-bg-color:var(--ibiz-color-bg-2);height:100%}.ibiz-control-treeview-content .vs-tree-node{position:relative;padding:var(--ibiz-control-treeview-padding)}.ibiz-control-treeview-content .vs-tree-node .vs-tree-inner{display:flex;align-items:center}.ibiz-control-treeview-content .vs-tree-node .vs-icon-leaf,.ibiz-control-treeview-content .vs-tree-node .vs-icon-parent{width:auto;margin-right:0}.ibiz-control-treeview-content .vs-tree-node .ibiz-icon{display:inline-flex;align-items:center;width:var(--ibiz-control-treeview-node-icon-width);height:var(--ibiz-control-treeview-node-icon-height);margin-right:var(--ibiz-control-treeview-node-icon-margin-right)}.ibiz-control-treeview-content .vs-tree-node .ibiz-icon>svg{width:100%;height:100%}.ibiz-control-treeview-content .tree-button{color:var(--ibiz-color-primary)}.ibiz-control-treeview-header{--ibiz-control-treeview-node-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-width:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-margin-right:var(--ibiz-spacing-tight);--ibiz-control-treeview-crumb-icon-top:0.1875rem}.ibiz-control-treeview-header__crumb{display:inline-flex;align-items:center;height:var(--ibiz-height-control-small)}.ibiz-control-treeview-header__crumb .ibiz-icon{display:inline-flex;align-items:center;width:var(--ibiz-control-treeview-node-icon-width);height:var(--ibiz-control-treeview-node-icon-height);margin-right:var(--ibiz-control-treeview-node-icon-margin-right);margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-control-treeview-header__crumb .ibiz-icon>svg{width:100%;height:100%}.ibiz-control-treeview-header__crumb>span:has(img),.ibiz-control-treeview-header__crumb>span:has(svg){position:relative}.ibiz-control-treeview-header__crumb>span:has(img) .ibiz-icon,.ibiz-control-treeview-header__crumb>span:has(svg) .ibiz-icon{position:absolute;top:var(--ibiz-control-treeview-crumb-icon-top)}.ibiz-control-treeview-header__crumb>span:has(img)::after,.ibiz-control-treeview-header__crumb>span:has(svg)::after{display:inline-block;width:var(--ibiz-control-treeview-node-icon-width);margin-right:var(--ibiz-spacing-extra-tight);content:"\e710";opacity:0}.ibiz-control-treeview-header__container{height:auto}.ibiz-control-treeview-header__container .van-sticky,.ibiz-control-treeview-header__container>div{height:auto!important}.ibiz-control-treeview-header.is-no-root>span:has(.ibiz-control-treeview-header__crumb.is-root){display:none}.ibiz-control-treeview-container{width:100%;height:100%;display:flex;flex-direction:column}
@@ -47,6 +47,13 @@ export declare const TreeControl: import("vue").DefineComponent<{
47
47
  type: BooleanConstructor;
48
48
  default: boolean;
49
49
  };
50
+ /**
51
+ * @description 是否是导航内的(即树导航里的树)
52
+ */
53
+ navigational: {
54
+ type: BooleanConstructor;
55
+ default: undefined;
56
+ };
50
57
  }, {
51
58
  c: TreeController<IDETree, import("@ibiz-template/runtime").ITreeState, import("@ibiz-template/runtime").ITreeEvent>;
52
59
  ns: import("@ibiz-template/core").Namespace;
@@ -122,9 +129,17 @@ export declare const TreeControl: import("vue").DefineComponent<{
122
129
  type: BooleanConstructor;
123
130
  default: boolean;
124
131
  };
132
+ /**
133
+ * @description 是否是导航内的(即树导航里的树)
134
+ */
135
+ navigational: {
136
+ type: BooleanConstructor;
137
+ default: undefined;
138
+ };
125
139
  }>>, {
126
140
  params: import("@ibiz-template/core").IApiParams;
127
141
  mdctrlActiveMode: number;
128
142
  singleSelect: boolean;
143
+ navigational: boolean;
129
144
  }, {}>;
130
145
  export default TreeControl;
@@ -59,6 +59,13 @@ const TreeControl = /* @__PURE__ */ defineComponent({
59
59
  singleSelect: {
60
60
  type: Boolean,
61
61
  default: true
62
+ },
63
+ /**
64
+ * @description 是否是导航内的(即树导航里的树)
65
+ */
66
+ navigational: {
67
+ type: Boolean,
68
+ default: void 0
62
69
  }
63
70
  },
64
71
  setup() {
@@ -306,12 +313,14 @@ const TreeControl = /* @__PURE__ */ defineComponent({
306
313
  };
307
314
  const key = this.c.controlPanel ? "tree" : "default";
308
315
  slots[key] = () => {
309
- return [this.breadcrumb && createVNode(resolveComponent("van-sticky"), null, {
316
+ const content = [this.breadcrumb && createVNode("div", {
317
+ "class": this.ns.be("header", "container")
318
+ }, [createVNode(resolveComponent("van-sticky"), null, {
310
319
  default: () => [createVNode("div", {
311
320
  "id": `breadcrumb${this.uuid}`,
312
321
  "class": [this.ns.b("header"), this.ns.is("no-root", !this.c.model.rootVisible)]
313
322
  }, null)]
314
- }), this.c.state.isCreated && this.c.state.isLoaded && createVNode(resolveComponent("vs-tree"), {
323
+ })]), this.c.state.isCreated && this.c.state.isLoaded && createVNode(resolveComponent("vs-tree"), {
315
324
  "show-line": true,
316
325
  "ref": "treeRef",
317
326
  "key": this.treeRefreshKey,
@@ -328,6 +337,9 @@ const TreeControl = /* @__PURE__ */ defineComponent({
328
337
  "load": this.loadData,
329
338
  "onCheck": this.onNodeCheck
330
339
  }, null)];
340
+ return createVNode("div", {
341
+ "class": this.ns.b("container")
342
+ }, [content]);
331
343
  };
332
344
  return createVNode(resolveComponent("iBizControlBase"), {
333
345
  "controller": this.c
@@ -5,8 +5,8 @@ import './ibiz-raw.scss';
5
5
  * 直接内容
6
6
  * @primary
7
7
  * @description 用于绘制配置的直接内容,如HTML内容、视频内容、图片内容等。支持编辑器类型包含:`直接内容`
8
- * @editorparams {name:contenttype,parameterType:string,defaultvalue:TEXT,description:内容类型}
9
- * @editorparams {name:template,parameterType:string,description:配置的handlerBars模版,用于将组件输入参数中的value值解析并转换为HTML内容,实现动态内容的渲染}
8
+ * @editorparams {name:contenttype,parameterType:'IMAGE' | 'TEXT' | 'RAW' | 'HEADING1' | 'HEADING2' | 'HEADING3' | 'HEADING4' | 'HEADING5' | 'HEADING6' | 'PARAGRAPH' | 'HTML' | 'VIDEO' | 'DIVIDER' | 'INFO' | 'WARNING' | 'ERROR' | 'MARKDOWN' | 'PLACEHOLDER',defaultvalue:'TEXT',description:定义组件展示的内容类型。包含`IMAGE`(图片)、`TEXT`(文本)、`RAW`(直接内容)、`HEADING1`-`HEADING6`(各级标题)、`PARAGRAPH`(段落)、`HTML`(Html内容)、`VIDEO`(视频)、`DIVIDER`(分割线)、`INFO`(常规提示)、`WARNING`(警告提示)、`ERROR`(错误提示)、`MARKDOWN`(Markdown内容)、`PLACEHOLDER`(占位)}
9
+ * @editorparams {name:template,parameterType:string,description:配置的handlerBars模板内容,用于将组件输入参数中的value值解析并转换为HTML内容,实现动态内容的渲染}
10
10
  * @ignoreprops autoFocus | overflowMode
11
11
  * @ignoreemits infoTextChange | enter
12
12
  */
@@ -5,9 +5,11 @@ import { SpanEditorController } from '../span-editor.controller';
5
5
  * 标签
6
6
  * @primary
7
7
  * @description 直接呈现文本内容,可配置单位。支持编辑器类型包含:`标签`
8
- * @editorparams {name:TEXTSEPARATOR,parameterType:string,defaultvalue:'',description:文本分隔符。如果是数组数据,在呈现时用逗号分隔并且转换为字符串显示}
9
- * @editorparams {name:REVERSECOLOR,parameterType:boolean,description:是否反转颜色,即代码表项的color是否用于代码表项的背景色}
10
- * @editorparams {name:SHOWMODE,parameterType:'DEFAULT' | 'ICON' | 'TEXT',defaultvalue:'DEFAULT',description:显示模式,即代码表项的显示情况,值为DEFAULT:显示图标和文本,值为ICON:只显示图标,值为TEXT:只显示文本}
8
+ * @editorparams {"name":"textseparator","parameterType":"string","defaultvalue":"','","description":"文本分隔符。如果是数组数据,在呈现时会使用文本分隔符拼接为字符串显示"}
9
+ * @editorparams {name:reversecolor,parameterType:boolean,description:是否反转颜色,即代码表项的color是否用于代码表项的背景色}
10
+ * @editorparams {name:showmode,parameterType:'DEFAULT' | 'ICON' | 'TEXT',defaultvalue:'DEFAULT',description:显示模式,即代码表项的显示情况,值为DEFAULT:显示图标和文本,值为ICON:只显示图标,值为TEXT:只显示文本}
11
+ * @editorparams {"name":"valuetype","parameterType":"string","description":"编辑器的值类型"}
12
+ * @editorparams {"name":"objectnamefield","parameterType":"string","defaultvalue":"'srfmajortext'","description":"值类型为OBJECT、OBJECTS时显示的对象属性"}
11
13
  * @ignoreprops autoFocus | overflowMode
12
14
  * @ignoreemits infoTextChange | enter | change | blur | focus
13
15
  */
@@ -20,12 +20,12 @@ const IBizSpan = /* @__PURE__ */ defineComponent({
20
20
  setup(props, {
21
21
  emit
22
22
  }) {
23
- var _a;
23
+ var _a, _b;
24
24
  const ns = useNamespace("span");
25
25
  const c = props.controller;
26
26
  const text = ref("");
27
27
  const codeList = c.codeList;
28
- const textSeparator = c.model.textSeparator || ((_a = c.editorParams) == null ? void 0 : _a.TEXTSEPARATOR) || ",";
28
+ const textSeparator = c.model.textSeparator || ((_a = c.editorParams) == null ? void 0 : _a.TEXTSEPARATOR) || ((_b = c.editorParams) == null ? void 0 : _b.textseparator) || ",";
29
29
  watch(() => props.value, (newVal, oldVal) => {
30
30
  if (newVal !== oldVal) {
31
31
  if (isNil(newVal)) {
@@ -109,14 +109,14 @@ const IBizSpan = /* @__PURE__ */ defineComponent({
109
109
  };
110
110
  },
111
111
  render() {
112
- var _a, _b;
112
+ var _a, _b, _c, _d;
113
113
  let content = null;
114
114
  if (this.c.codeList && this.items.length > 0) {
115
115
  content = createVNode(resolveComponent("iBizCodeList"), {
116
- "class": [this.ns.e("code-list"), this.ns.is("reverse-color", !!((_a = this.c.editorParams) == null ? void 0 : _a.REVERSECOLOR))],
116
+ "class": [this.ns.e("code-list"), this.ns.is("reverse-color", !!((_a = this.c.editorParams) == null ? void 0 : _a.REVERSECOLOR) || !!((_b = this.c.editorParams) == null ? void 0 : _b.reversecolor))],
117
117
  "codeListItems": this.items,
118
118
  "codeList": this.c.codeList,
119
- "showMode": (_b = this.c.editorParams) == null ? void 0 : _b.SHOWMODE,
119
+ "showMode": ((_c = this.c.editorParams) == null ? void 0 : _c.SHOWMODE) || ((_d = this.c.editorParams) == null ? void 0 : _d.showmode),
120
120
  "value": this.text
121
121
  }, null);
122
122
  } else if (this.text) {
@@ -39,6 +39,22 @@ function useVanUpload(props, valueChange, c) {
39
39
  if ((newVal == null ? void 0 : newVal.length) && downloadUrl.value) {
40
40
  newVal.forEach((file) => {
41
41
  file.url = file.url || downloadUrl.value.replace("%fileId%", file.id);
42
+ if (ibiz.config.common.enableDownloadTicket)
43
+ ibiz.util.file.getDownloadTicket(
44
+ c.context,
45
+ c.params,
46
+ props.data,
47
+ {
48
+ fileId: file.id
49
+ },
50
+ c.downloadTicketParams
51
+ ).then((downloadTicket) => {
52
+ if (downloadTicket && downloadTicket.ticket)
53
+ file.url = downloadUrl.value.replace(
54
+ "%fileId%",
55
+ downloadTicket.ticket
56
+ );
57
+ });
42
58
  });
43
59
  }
44
60
  },
@@ -67,8 +83,10 @@ function useVanUpload(props, valueChange, c) {
67
83
  return true;
68
84
  };
69
85
  const onSuccess = (response) => {
70
- if (!response) {
86
+ if (!response)
71
87
  return;
88
+ if (ibiz.config.common.enableDownloadTicket && response.ticket) {
89
+ ibiz.util.file.setDownloadTicket(response.id, response.ticket);
72
90
  }
73
91
  files.value.push({
74
92
  name: response.filename,
@@ -1,5 +1,5 @@
1
1
  import { commonjsGlobal } from '../../../../../../../../_virtual/_commonjsHelpers.mjs';
2
- import { __module as frameTalkClientPc$1 } from '../../../../../../../../_virtual/index13.mjs';
2
+ import { __module as frameTalkClientPc$1 } from '../../../../../../../../_virtual/index12.mjs';
3
3
 
4
4
  var frameTalkClientPc = frameTalkClientPc$1.exports;
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { commonjsGlobal } from '../../../../../../../../_virtual/_commonjsHelpers.mjs';
2
- import { __exports as middlewares } from '../../../../../../../../_virtual/index12.mjs';
2
+ import { __exports as middlewares } from '../../../../../../../../_virtual/index13.mjs';
3
3
  import '../../../../../../../../_virtual/bridge.mjs';
4
4
  import { __require as requireRetry } from './retry.mjs';
5
5
  import '../../../../../../../../_virtual/dealParamsAndResult.mjs';
@@ -0,0 +1,54 @@
1
+ import { AppMenuController, PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelContainer } from '@ibiz/model-core';
3
+ import { IndexBlankPlaceholderState } from './index-blank-placeholder.state';
4
+ import { NavPosIndexController } from '../nav-pos-index';
5
+ /**
6
+ * 首页空白占位控制器
7
+ *
8
+ * @export
9
+ * @class IndexBlankPlaceholderController
10
+ * @extends {PanelItemController<IPanelContainer>}
11
+ */
12
+ export declare class IndexBlankPlaceholderController extends PanelItemController<IPanelContainer> {
13
+ state: IndexBlankPlaceholderState;
14
+ protected createState(): IndexBlankPlaceholderState;
15
+ /**
16
+ * @description 当前视图路由层级
17
+ * @exposedoc
18
+ * @readonly
19
+ * @type {(number | undefined)}
20
+ * @memberof IndexBlankPlaceholderController
21
+ */
22
+ get routeDepth(): number | undefined;
23
+ /**
24
+ * @description 应用菜单
25
+ * @exposedoc
26
+ * @readonly
27
+ * @type {(AppMenuController | undefined)}
28
+ * @memberof IndexBlankPlaceholderController
29
+ */
30
+ get appmenu(): AppMenuController | undefined;
31
+ /**
32
+ * @description 首页导航栏
33
+ * @exposedoc
34
+ * @readonly
35
+ * @type {(NavPosIndexController | undefined)}
36
+ * @memberof IndexBlankPlaceholderController
37
+ */
38
+ get navPos(): NavPosIndexController | undefined;
39
+ /**
40
+ * 初始化
41
+ *
42
+ * @protected
43
+ * @return {*} {Promise<void>}
44
+ * @memberof IndexBlankPlaceholderController
45
+ */
46
+ protected onInit(): Promise<void>;
47
+ /**
48
+ * @description 设置显示状态
49
+ * @exposedoc
50
+ * @param {boolean} state
51
+ * @memberof IndexBlankPlaceholderController
52
+ */
53
+ setVisible(state: boolean): void;
54
+ }