@ibiz-template/mob-vue3-components 0.0.1-alpha.25 → 0.0.2

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 (149) hide show
  1. package/dist/index.min.css +1 -1
  2. package/dist/index.system.min.js +6 -6
  3. package/dist/index.system.min.js.map +1 -1
  4. package/es/common/col/col.mjs +0 -3
  5. package/es/common/rawitem/rawitem.mjs +1 -1
  6. package/es/control/calendar/calendar.mjs +1 -1
  7. package/es/control/dashboard/index.mjs +4 -1
  8. package/es/control/dashboard/portlet/container-portlet/container-portlet.provider.mjs +1 -5
  9. package/es/control/dashboard/portlet/index.d.ts +1 -0
  10. package/es/control/dashboard/portlet/index.mjs +2 -0
  11. package/es/control/dashboard/portlet/menu-portlet/menu-portlet.provider.mjs +1 -5
  12. package/es/control/dashboard/portlet/view-portlet/index.d.ts +24 -0
  13. package/es/control/dashboard/portlet/view-portlet/index.mjs +12 -0
  14. package/es/control/dashboard/portlet/view-portlet/view-portlet.d.ts +25 -0
  15. package/es/control/dashboard/portlet/view-portlet/view-portlet.mjs +50 -0
  16. package/es/control/dashboard/portlet/view-portlet/view-portlet.provider.d.ts +15 -0
  17. package/es/control/dashboard/portlet/view-portlet/view-portlet.provider.mjs +21 -0
  18. package/es/control/form/edit-form/edit-form.d.ts +1 -1
  19. package/es/control/form/edit-form/index.d.ts +1 -1
  20. package/es/control/form/form-detail/form-druipart/form-druipart.mjs +1 -1
  21. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  22. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +1 -1
  23. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.css +1 -1
  24. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.mjs +4 -4
  25. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.d.ts +1 -0
  26. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.mjs +15 -3
  27. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
  28. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
  29. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.d.ts +4 -3
  30. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +14 -6
  31. package/es/control/index.d.ts +2 -2
  32. package/es/control/index.mjs +6 -4
  33. package/es/control/list/{index.d.ts → list/index.d.ts} +23 -3
  34. package/es/control/list/list/list.css +1 -0
  35. package/es/control/list/{list.d.ts → list/list.d.ts} +23 -3
  36. package/es/control/list/{list.mjs → list/list.mjs} +37 -18
  37. package/es/control/list/list-render-util.d.ts +23 -0
  38. package/es/control/list/list-render-util.mjs +100 -0
  39. package/es/control/{md-ctrl → list/md-ctrl}/index.d.ts +10 -1
  40. package/es/control/list/md-ctrl/md-ctrl.css +1 -0
  41. package/es/control/{md-ctrl → list/md-ctrl}/md-ctrl.d.ts +14 -3
  42. package/es/control/{md-ctrl → list/md-ctrl}/md-ctrl.mjs +13 -87
  43. package/es/control/toolbar/index.d.ts +1 -1
  44. package/es/control/toolbar/toolbar.d.ts +1 -1
  45. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +1 -0
  46. package/es/index.mjs +3 -2
  47. package/es/panel-component/index.mjs +7 -1
  48. package/es/panel-component/panel-tab-panel/index.d.ts +23 -0
  49. package/es/panel-component/panel-tab-panel/index.mjs +12 -0
  50. package/es/panel-component/panel-tab-panel/panel-tab-panel.css +1 -0
  51. package/es/panel-component/panel-tab-panel/panel-tab-panel.d.ts +26 -0
  52. package/es/panel-component/panel-tab-panel/panel-tab-panel.mjs +70 -0
  53. package/es/panel-component/panel-tab-panel/panel-tab-panel.provider.d.ts +13 -0
  54. package/es/panel-component/panel-tab-panel/panel-tab-panel.provider.mjs +21 -0
  55. package/es/util/confirm-util/confirm-util.d.ts +17 -0
  56. package/es/util/confirm-util/confirm-util.mjs +77 -0
  57. package/es/util/index.d.ts +1 -0
  58. package/es/util/index.mjs +1 -0
  59. package/es/view-engine/mob-mpickup-view-engine.mjs +2 -0
  60. package/lib/common/col/col.cjs +0 -3
  61. package/lib/common/rawitem/rawitem.cjs +1 -1
  62. package/lib/control/calendar/calendar.cjs +1 -1
  63. package/lib/control/dashboard/index.cjs +5 -0
  64. package/lib/control/dashboard/portlet/container-portlet/container-portlet.provider.cjs +1 -5
  65. package/lib/control/dashboard/portlet/index.cjs +4 -0
  66. package/lib/control/dashboard/portlet/menu-portlet/menu-portlet.provider.cjs +1 -5
  67. package/lib/control/dashboard/portlet/view-portlet/index.cjs +18 -0
  68. package/lib/control/dashboard/portlet/view-portlet/view-portlet.cjs +52 -0
  69. package/lib/control/dashboard/portlet/view-portlet/view-portlet.provider.cjs +23 -0
  70. package/lib/control/form/form-detail/form-druipart/form-druipart.cjs +1 -1
  71. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  72. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +1 -1
  73. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.cjs +4 -4
  74. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.css +1 -1
  75. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.cjs +15 -3
  76. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
  77. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +14 -6
  78. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
  79. package/lib/control/index.cjs +14 -10
  80. package/lib/control/list/{list.cjs → list/list.cjs} +36 -17
  81. package/lib/control/list/list/list.css +1 -0
  82. package/lib/control/list/list-render-util.cjs +102 -0
  83. package/lib/control/{md-ctrl → list/md-ctrl}/md-ctrl.cjs +12 -86
  84. package/lib/control/list/md-ctrl/md-ctrl.css +1 -0
  85. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +1 -0
  86. package/lib/index.cjs +4 -2
  87. package/lib/panel-component/index.cjs +6 -0
  88. package/lib/panel-component/panel-tab-panel/index.cjs +17 -0
  89. package/lib/panel-component/panel-tab-panel/panel-tab-panel.cjs +72 -0
  90. package/lib/panel-component/panel-tab-panel/panel-tab-panel.css +1 -0
  91. package/lib/panel-component/panel-tab-panel/panel-tab-panel.provider.cjs +23 -0
  92. package/lib/util/confirm-util/confirm-util.cjs +79 -0
  93. package/lib/util/index.cjs +2 -0
  94. package/lib/view-engine/mob-mpickup-view-engine.cjs +2 -0
  95. package/package.json +6 -6
  96. package/es/control/list/list.css +0 -1
  97. package/es/control/md-ctrl/md-ctrl.css +0 -1
  98. package/lib/control/list/list.css +0 -1
  99. package/lib/control/md-ctrl/md-ctrl.css +0 -1
  100. /package/es/control/list/{index.mjs → list/index.mjs} +0 -0
  101. /package/es/control/list/{list.provider.d.ts → list/list.provider.d.ts} +0 -0
  102. /package/es/control/list/{list.provider.mjs → list/list.provider.mjs} +0 -0
  103. /package/es/control/{md-ctrl → list/md-ctrl}/index.mjs +0 -0
  104. /package/es/control/{md-ctrl → list/md-ctrl}/md-ctrl.provider.d.ts +0 -0
  105. /package/es/control/{md-ctrl → list/md-ctrl}/md-ctrl.provider.mjs +0 -0
  106. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/Calendar.mjs +0 -0
  107. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/CalendarDate.mjs +0 -0
  108. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/CalendarScrollContainer.mjs +0 -0
  109. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/CalendarTime.mjs +0 -0
  110. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/CalendarYearMonth.mjs +0 -0
  111. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/constant/img.mjs +0 -0
  112. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/constant/index.mjs +0 -0
  113. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/hooks/index.mjs +0 -0
  114. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/hooks/use-expose.mjs +0 -0
  115. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/hooks/use-mounted-or-activated.mjs +0 -0
  116. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/hooks/use-rect.mjs +0 -0
  117. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/index.mjs +0 -0
  118. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/language/cn.mjs +0 -0
  119. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/language/en.mjs +0 -0
  120. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/language/index.mjs +0 -0
  121. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/basic.mjs +0 -0
  122. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/index.mjs +0 -0
  123. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/props.mjs +0 -0
  124. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/validate.mjs +0 -0
  125. /package/es/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/with-install.mjs +0 -0
  126. /package/lib/control/list/{index.cjs → list/index.cjs} +0 -0
  127. /package/lib/control/list/{list.provider.cjs → list/list.provider.cjs} +0 -0
  128. /package/lib/control/{md-ctrl → list/md-ctrl}/index.cjs +0 -0
  129. /package/lib/control/{md-ctrl → list/md-ctrl}/md-ctrl.provider.cjs +0 -0
  130. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/Calendar.cjs +0 -0
  131. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/CalendarDate.cjs +0 -0
  132. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/CalendarScrollContainer.cjs +0 -0
  133. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/CalendarTime.cjs +0 -0
  134. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/CalendarYearMonth.cjs +0 -0
  135. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/constant/img.cjs +0 -0
  136. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/constant/index.cjs +0 -0
  137. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/hooks/index.cjs +0 -0
  138. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/hooks/use-expose.cjs +0 -0
  139. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/hooks/use-mounted-or-activated.cjs +0 -0
  140. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/hooks/use-rect.cjs +0 -0
  141. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/index.cjs +0 -0
  142. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/language/cn.cjs +0 -0
  143. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/language/en.cjs +0 -0
  144. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/language/index.cjs +0 -0
  145. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/basic.cjs +0 -0
  146. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/index.cjs +0 -0
  147. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/props.cjs +0 -0
  148. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/validate.cjs +0 -0
  149. /package/lib/node_modules/.pnpm/{vue3-hash-calendar@1.1.3_vue@3.3.8 → vue3-hash-calendar@1.1.3_vue@3.3.9}/node_modules/vue3-hash-calendar/es/utils/with-install.cjs +0 -0
@@ -46,12 +46,22 @@ export declare const ListControl: import("vue").DefineComponent<{
46
46
  type: NumberConstructor;
47
47
  default: number;
48
48
  };
49
+ loadDefault: {
50
+ type: BooleanConstructor;
51
+ default: boolean;
52
+ };
53
+ mode: {
54
+ type: StringConstructor;
55
+ default: string;
56
+ };
49
57
  }, {
50
58
  c: ListController;
51
59
  ns: import("@ibiz-template/core").Namespace;
52
- renderListContent: () => (JSX.Element | null)[];
53
- renderLoadMore: () => JSX.Element | null;
54
- renderReviewList: () => JSX.Element;
60
+ ns2: import("@ibiz-template/core").Namespace;
61
+ renderSelectList: () => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
62
+ [key: string]: any;
63
+ }> | (JSX.Element | null)[] | undefined)[];
64
+ renderDefaultList: () => JSX.Element;
55
65
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
56
66
  modelData: {
57
67
  type: PropType<IDEList>;
@@ -96,10 +106,20 @@ export declare const ListControl: import("vue").DefineComponent<{
96
106
  type: NumberConstructor;
97
107
  default: number;
98
108
  };
109
+ loadDefault: {
110
+ type: BooleanConstructor;
111
+ default: boolean;
112
+ };
113
+ mode: {
114
+ type: StringConstructor;
115
+ default: string;
116
+ };
99
117
  }>>, {
118
+ mode: string;
100
119
  params: IParams;
101
120
  mdctrlActiveMode: number;
102
121
  singleSelect: boolean;
122
+ loadDefault: boolean;
103
123
  rowsCount: number;
104
124
  columnsCount: number;
105
125
  }, {}>;
@@ -1,9 +1,13 @@
1
- import { ref, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
1
+ import { isVNode, ref, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './list.css';
4
4
  import { ListController } from '@ibiz-template/runtime';
5
+ import { useListRender } from '../list-render-util.mjs';
5
6
 
6
7
  "use strict";
8
+ function _isSlot(s) {
9
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
10
+ }
7
11
  const ListControl = /* @__PURE__ */ defineComponent({
8
12
  name: "IBizListControl",
9
13
  props: {
@@ -51,21 +55,29 @@ const ListControl = /* @__PURE__ */ defineComponent({
51
55
  columnsCount: {
52
56
  type: Number,
53
57
  default: 5
58
+ },
59
+ loadDefault: {
60
+ type: Boolean,
61
+ default: true
62
+ },
63
+ mode: {
64
+ type: String,
65
+ default: "LIST"
54
66
  }
55
67
  },
56
68
  setup(props) {
57
69
  const c = useControlController((...args) => new ListController(...args));
58
70
  const ns = useNamespace(`control-${c.model.controlType.toLowerCase()}`);
71
+ const ns2 = useNamespace(`control-mobmdctrl`);
72
+ const {
73
+ renderItem,
74
+ renderNoData,
75
+ renderLoadMore
76
+ } = useListRender(props, c, ns2);
59
77
  const showPicker = ref(false);
60
78
  const openReviewList = () => {
61
79
  showPicker.value = true;
62
80
  };
63
- const renderNoData = () => {
64
- return createVNode(resolveComponent("iBizNoData"), {
65
- "text": c.model.emptyText,
66
- "emptyTextLanguageRes": c.model.emptyTextLanguageRes
67
- }, null);
68
- };
69
81
  const renderDefaultItem = (item) => {
70
82
  const findIndex = c.state.selectedData.findIndex((data) => {
71
83
  return data.srfkey === item.srfkey;
@@ -141,12 +153,6 @@ const ListControl = /* @__PURE__ */ defineComponent({
141
153
  return renderReViewDefaultItem(item);
142
154
  });
143
155
  };
144
- const renderLoadMore = () => {
145
- return c.state.total > c.state.items.length ? createVNode("div", {
146
- "onClick": () => c.loadMore(),
147
- "class": ns.e("load-more")
148
- }, [createTextVNode("\u52A0\u8F7D\u66F4\u591A")]) : null;
149
- };
150
156
  const renderReviewList = () => {
151
157
  return createVNode(resolveComponent("van-popup"), {
152
158
  "round": true,
@@ -164,20 +170,33 @@ const ListControl = /* @__PURE__ */ defineComponent({
164
170
  }, [renderReViewListContent()])])]
165
171
  });
166
172
  };
173
+ const renderDefaultList = () => {
174
+ let _slot;
175
+ return createVNode(resolveComponent("van-list"), {
176
+ "finished": c.state.total <= c.state.items.length
177
+ }, _isSlot(_slot = c.state.items.map((item) => {
178
+ return renderItem(item);
179
+ })) ? _slot : {
180
+ default: () => [_slot]
181
+ });
182
+ };
183
+ const renderSelectList = () => {
184
+ return [renderListContent(), renderReviewList(), renderLoadMore()];
185
+ };
167
186
  return {
168
187
  c,
169
188
  ns,
170
- renderListContent,
171
- renderLoadMore,
172
- renderReviewList
189
+ ns2,
190
+ renderSelectList,
191
+ renderDefaultList
173
192
  };
174
193
  },
175
194
  render() {
176
195
  return createVNode(resolveComponent("iBizControlBase"), {
177
196
  "controller": this.c,
178
- "class": this.ns.b(this.c.model.name)
197
+ "class": (this.ns.b(this.c.model.name), this.ns2.b())
179
198
  }, {
180
- default: () => [this.c.state.isCreated && [this.renderListContent(), this.renderReviewList(), this.renderLoadMore()]]
199
+ default: () => [this.c.state.isCreated && this.mode === "LIST" ? this.renderDefaultList() : this.renderSelectList()]
181
200
  });
182
201
  }
183
202
  });
@@ -0,0 +1,23 @@
1
+ import { Namespace } from '@ibiz-template/core';
2
+ import { ListController, MDCtrlController } from '@ibiz-template/runtime';
3
+ import { VNode } from 'vue';
4
+ /**
5
+ * 列表绘制工具
6
+ *
7
+ * @author zk
8
+ * @date 2023-12-06 03:12:00
9
+ * @export
10
+ * @param {IData} props
11
+ * @param {(IMobMDCtrlController | IListController)} c
12
+ * @param {Namespace} ns
13
+ * @return {*} {({
14
+ * renderItem: (row: IData) => VNode | undefined;
15
+ * render: () => VNode | null;
16
+ * renderNoData: () => VNode | undefined;
17
+ * })}
18
+ */
19
+ export declare function useListRender(props: IData, c: MDCtrlController | ListController, ns: Namespace): {
20
+ renderItem: (row: IData) => VNode | undefined;
21
+ renderNoData: () => VNode | undefined;
22
+ renderLoadMore: () => VNode | undefined;
23
+ };
@@ -0,0 +1,100 @@
1
+ import { isVNode, resolveComponent, createVNode, createTextVNode } from 'vue';
2
+
3
+ "use strict";
4
+ function _isSlot(s) {
5
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
6
+ }
7
+ function useListRender(props, c, ns) {
8
+ const isSelect = (row) => {
9
+ const findIndex = c.state.selectedData.findIndex((data) => {
10
+ return data.srfkey === row.srfkey;
11
+ });
12
+ return findIndex !== -1;
13
+ };
14
+ const calcItemClass = (row) => {
15
+ const select = isSelect(row);
16
+ const itemClass = [ns.b("item"), ns.is("active", select)];
17
+ return itemClass;
18
+ };
19
+ const renderRightSlot = (row) => {
20
+ const select = isSelect(row);
21
+ return createVNode(resolveComponent("van-radio"), {
22
+ "class": ns.bm("item", "right"),
23
+ "checked": select
24
+ }, null);
25
+ };
26
+ const renderIcon = (row) => {
27
+ return createVNode("img", {
28
+ "class": ns.b("image"),
29
+ "src": row.image,
30
+ "alt": ""
31
+ }, null);
32
+ };
33
+ const renderItemContent = (row) => {
34
+ const itemClass = calcItemClass(row);
35
+ const slotOption = {};
36
+ if (Object.prototype.hasOwnProperty.call(row, "image")) {
37
+ Object.assign(slotOption, {
38
+ icon: renderIcon(row)
39
+ });
40
+ }
41
+ if (props.mode === "SELECT") {
42
+ Object.assign(slotOption, {
43
+ "right-icon": renderRightSlot(row)
44
+ });
45
+ }
46
+ return createVNode(resolveComponent("van-cell"), {
47
+ "class": itemClass,
48
+ "is-link": true,
49
+ "title": row.srfmajortext || "",
50
+ "onClick": () => c.onRowClick(row)
51
+ }, _isSlot(slotOption) ? slotOption : {
52
+ default: () => [slotOption]
53
+ });
54
+ };
55
+ const renderPanelItem = (item, modelData) => {
56
+ const {
57
+ context,
58
+ params
59
+ } = c;
60
+ return createVNode(resolveComponent("iBizControlShell"), {
61
+ "data": item,
62
+ "modelData": modelData,
63
+ "context": context,
64
+ "params": params,
65
+ "onClick": () => c.onRowClick(item)
66
+ }, null);
67
+ };
68
+ const renderItem = (row) => {
69
+ const panel = c.model.itemLayoutPanel;
70
+ return panel ? renderPanelItem(row, panel) : renderItemContent(row);
71
+ };
72
+ const renderNoData = () => {
73
+ const {
74
+ isLoaded
75
+ } = c.state;
76
+ if (!isLoaded) {
77
+ return;
78
+ }
79
+ return isLoaded && createVNode(resolveComponent("iBizNoData"), {
80
+ "text": c.model.emptyText,
81
+ "emptyTextLanguageRes": c.model.emptyTextLanguageRes
82
+ }, null);
83
+ };
84
+ const renderLoadMore = () => {
85
+ if (props.loadMode === "auto" || c.state.total <= c.state.items.length) {
86
+ return;
87
+ }
88
+ return createVNode("div", {
89
+ "class": ns.b("load-more"),
90
+ "onClick": () => c.loadMore()
91
+ }, [createVNode("span", null, [createTextVNode("\u52A0\u8F7D\u66F4\u591A")])]);
92
+ };
93
+ return {
94
+ renderNoData,
95
+ renderItem,
96
+ renderLoadMore
97
+ };
98
+ }
99
+
100
+ export { useListRender };
@@ -32,6 +32,10 @@ export declare const IBizMDCtrlControl: import("@ibiz-template/vue3-util").TypeW
32
32
  type: StringConstructor;
33
33
  default: string;
34
34
  };
35
+ loadDefault: {
36
+ type: BooleanConstructor;
37
+ default: boolean;
38
+ };
35
39
  }, {
36
40
  c: import("@ibiz-template/runtime").MDCtrlController;
37
41
  ns: import("@ibiz-template/core").Namespace;
@@ -72,11 +76,16 @@ export declare const IBizMDCtrlControl: import("@ibiz-template/vue3-util").TypeW
72
76
  type: StringConstructor;
73
77
  default: string;
74
78
  };
79
+ loadDefault: {
80
+ type: BooleanConstructor;
81
+ default: boolean;
82
+ };
75
83
  }>>, {
76
84
  mode: string;
77
85
  params: IParams;
86
+ loadMode: string;
78
87
  mdctrlActiveMode: number;
79
88
  singleSelect: boolean;
80
- loadMode: string;
89
+ loadDefault: boolean;
81
90
  }, {}>>;
82
91
  export default IBizMDCtrlControl;
@@ -0,0 +1 @@
1
+ .ibiz-control-mobmdctrl{--ibiz-control-mobmdctrl-text-color:var(--ibiz-color-text-0);--ibiz-control-mobmdctrl-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-mobmdctrl-active-bg-color:#D1D1D5;--ibiz-control-mobmdctrl-active-color:var(--ibiz-color-bg-1);--ibiz-control-mobmdctrl-img-width:var(--ibiz-width-icon-extra-large);--ibiz-control-mobmdctrl-img-radius:var(--ibiz-border-radius-extra-small);--ibiz-control-mobmdctrl-padding:var(--ibiz-spacing-base) 0 var(--ibiz-spacing-base) var(--ibiz-spacing-base);--ibiz-control-mobmdctrl-group-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-mobmdctrl-group-font:var(--ibiz-font-size-regular);--ibiz-control-mobmdctrl-icon-color:#A0A5AA;--ibiz-control-mobmdctrl-group-caption-color:#9A9B9F;--ibiz-control-mobmdctrl-load-more-font-size:var(--ibiz-font-size-small);--ibiz-control-mobmdctrl-font-size:var(--ibiz-font-size-header-5);--ibiz-control-mobmdctrl-right-icon-margin-right:1.3125rem;--van-cell-font-size:var(--ibiz-control-mobmdctrl-font-size);height:100%}.ibiz-control-mobmdctrl .van-list{height:100%}.ibiz-control-mobmdctrl .van-list .van-cell{padding:var(--ibiz-control-mobmdctrl-padding)}.ibiz-control-mobmdctrl .van-cell__right-icon{margin-right:var(--ibiz-control-mobmdctrl-right-icon-margin-right);color:var(--ibiz-control-mobmdctrl-icon-color)}.ibiz-control-mobmdctrl .van-cell--clickable:active{color:inherit;background-color:var(--ibiz-control-mobmdctrl-active-bg-color)}.ibiz-control-mobmdctrl .van-cell::after{width:100%}.ibiz-control-mobmdctrl .ibiz-control-panel{height:auto}.ibiz-control-mobmdctrl-item{--ibiz-control-mobmdctrl-text-color:var(--ibiz-color-text-0);--ibiz-control-mobmdctrl-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-mobmdctrl-active-bg-color:#D1D1D5;--ibiz-control-mobmdctrl-active-color:var(--ibiz-color-bg-1);--ibiz-control-mobmdctrl-img-width:var(--ibiz-width-icon-extra-large);--ibiz-control-mobmdctrl-img-radius:var(--ibiz-border-radius-extra-small);--ibiz-control-mobmdctrl-padding:var(--ibiz-spacing-base) 0 var(--ibiz-spacing-base) var(--ibiz-spacing-base);--ibiz-control-mobmdctrl-group-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-mobmdctrl-group-font:var(--ibiz-font-size-regular);--ibiz-control-mobmdctrl-icon-color:#A0A5AA;--ibiz-control-mobmdctrl-group-caption-color:#9A9B9F;--ibiz-control-mobmdctrl-load-more-font-size:var(--ibiz-font-size-small);--ibiz-control-mobmdctrl-font-size:var(--ibiz-font-size-header-5);--ibiz-control-mobmdctrl-right-icon-margin-right:1.3125rem}.ibiz-control-mobmdctrl-item--right{margin-right:var(--ibiz-control-mobmdctrl-right-icon-margin-right)}.ibiz-control-mobmdctrl-image{--ibiz-control-mobmdctrl-text-color:var(--ibiz-color-text-0);--ibiz-control-mobmdctrl-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-mobmdctrl-active-bg-color:#D1D1D5;--ibiz-control-mobmdctrl-active-color:var(--ibiz-color-bg-1);--ibiz-control-mobmdctrl-img-width:var(--ibiz-width-icon-extra-large);--ibiz-control-mobmdctrl-img-radius:var(--ibiz-border-radius-extra-small);--ibiz-control-mobmdctrl-padding:var(--ibiz-spacing-base) 0 var(--ibiz-spacing-base) var(--ibiz-spacing-base);--ibiz-control-mobmdctrl-group-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-mobmdctrl-group-font:var(--ibiz-font-size-regular);--ibiz-control-mobmdctrl-icon-color:#A0A5AA;--ibiz-control-mobmdctrl-group-caption-color:#9A9B9F;--ibiz-control-mobmdctrl-load-more-font-size:var(--ibiz-font-size-small);--ibiz-control-mobmdctrl-font-size:var(--ibiz-font-size-header-5);--ibiz-control-mobmdctrl-right-icon-margin-right:1.3125rem;width:var(--ibiz-control-mobmdctrl-img-width);margin-right:var(--ibiz-control-mobmdctrl-padding);border-radius:var(--ibiz-control-mobmdctrl-img-radius)}.ibiz-control-mobmdctrl-group-caption{--ibiz-control-mobmdctrl-text-color:var(--ibiz-color-text-0);--ibiz-control-mobmdctrl-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-mobmdctrl-active-bg-color:#D1D1D5;--ibiz-control-mobmdctrl-active-color:var(--ibiz-color-bg-1);--ibiz-control-mobmdctrl-img-width:var(--ibiz-width-icon-extra-large);--ibiz-control-mobmdctrl-img-radius:var(--ibiz-border-radius-extra-small);--ibiz-control-mobmdctrl-padding:var(--ibiz-spacing-base) 0 var(--ibiz-spacing-base) var(--ibiz-spacing-base);--ibiz-control-mobmdctrl-group-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-control-mobmdctrl-group-font:var(--ibiz-font-size-regular);--ibiz-control-mobmdctrl-icon-color:#A0A5AA;--ibiz-control-mobmdctrl-group-caption-color:#9A9B9F;--ibiz-control-mobmdctrl-load-more-font-size:var(--ibiz-font-size-small);--ibiz-control-mobmdctrl-font-size:var(--ibiz-font-size-header-5);--ibiz-control-mobmdctrl-right-icon-margin-right:1.3125rem;padding:var(--ibiz-control-mobmdctrl-group-padding);font-size:var(--ibiz-control-mobmdctrl-group-font);color:var(--ibiz-control-mobmdctrl-group-caption-color)}.ibiz-control-mobmdctrl-load-more{display:flex;justify-content:center;padding:var(--ibiz-spacing-tight);font-size:var(--ibiz-control-mobmdctrl-load-more-font-size);color:var(--ibiz-color-text-2)}.ibiz-control-mobmdctrl-load-more span{padding:var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-base);border:1px solid var(--ibiz-color-border);border-radius:var(--ibiz-border-radius-full)}
@@ -1,4 +1,4 @@
1
- import { PropType, VNode } from 'vue';
1
+ import { PropType } from 'vue';
2
2
  import { IDEMobMDCtrl } from '@ibiz/model-core';
3
3
  import { MDCtrlController } from '@ibiz-template/runtime';
4
4
  import './md-ctrl.scss';
@@ -50,11 +50,17 @@ export declare const MDCtrlControl: import("vue").DefineComponent<{
50
50
  type: StringConstructor;
51
51
  default: string;
52
52
  };
53
+ loadDefault: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
53
57
  }, {
54
58
  c: MDCtrlController;
55
59
  ns: import("@ibiz-template/core").Namespace;
56
60
  renderMDContent: () => JSX.Element;
57
- renderNoData: () => VNode | undefined;
61
+ renderNoData: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
62
+ [key: string]: any;
63
+ }> | undefined;
58
64
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
59
65
  modelData: {
60
66
  type: PropType<IDEMobMDCtrl>;
@@ -103,10 +109,15 @@ export declare const MDCtrlControl: import("vue").DefineComponent<{
103
109
  type: StringConstructor;
104
110
  default: string;
105
111
  };
112
+ loadDefault: {
113
+ type: BooleanConstructor;
114
+ default: boolean;
115
+ };
106
116
  }>>, {
107
117
  mode: string;
108
118
  params: IParams;
119
+ loadMode: string;
109
120
  mdctrlActiveMode: number;
110
121
  singleSelect: boolean;
111
- loadMode: string;
122
+ loadDefault: boolean;
112
123
  }, {}>;
@@ -1,12 +1,10 @@
1
- import { isVNode, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
1
+ import { resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { MDCtrlController } from '@ibiz-template/runtime';
4
4
  import './md-ctrl.css';
5
+ import { useListRender } from '../list-render-util.mjs';
5
6
 
6
7
  "use strict";
7
- function _isSlot(s) {
8
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
9
- }
10
8
  const MDCtrlControl = /* @__PURE__ */ defineComponent({
11
9
  name: "IBizMDCtrlControl",
12
10
  props: {
@@ -56,84 +54,22 @@ const MDCtrlControl = /* @__PURE__ */ defineComponent({
56
54
  loadMode: {
57
55
  type: String,
58
56
  default: "auto"
57
+ },
58
+ loadDefault: {
59
+ type: Boolean,
60
+ default: true
59
61
  }
60
62
  },
61
63
  setup(props) {
62
64
  const c = useControlController((...args) => new MDCtrlController(...args));
63
65
  const ns = useNamespace(`control-${c.model.controlType.toLowerCase()}`);
66
+ const {
67
+ renderItem,
68
+ renderNoData,
69
+ renderLoadMore
70
+ } = useListRender(props, c, ns);
64
71
  const leftSlidingActionGroup = c.model.deuiactionGroup;
65
72
  const rightSlidingActionGroup = c.model.deuiactionGroup2;
66
- const renderPanelItem = (item, modelData) => {
67
- const {
68
- context,
69
- params
70
- } = c;
71
- return createVNode(resolveComponent("iBizControlShell"), {
72
- "data": item,
73
- "modelData": modelData,
74
- "context": context,
75
- "params": params,
76
- "onClick": () => c.onRowClick(item)
77
- }, null);
78
- };
79
- const isSelect = (row) => {
80
- const findIndex = c.state.selectedData.findIndex((data) => {
81
- return data.srfkey === row.data.srfkey;
82
- });
83
- return findIndex !== -1;
84
- };
85
- const calcItemClass = (row) => {
86
- const select = isSelect(row);
87
- const itemClass = [ns.b("item"), ns.is("active", select)];
88
- return itemClass;
89
- };
90
- const renderIcon = (row) => {
91
- return createVNode("img", {
92
- "class": ns.b("image"),
93
- "src": row.data.image,
94
- "alt": ""
95
- }, null);
96
- };
97
- const renderRightSlot = (row) => {
98
- const select = isSelect(row);
99
- return createVNode(resolveComponent("van-radio"), {
100
- "checked": select
101
- }, null);
102
- };
103
- const renderItemContent = (row) => {
104
- const itemClass = calcItemClass(row);
105
- const slotOption = {};
106
- if (Object.prototype.hasOwnProperty.call(row.data, "image")) {
107
- Object.assign(slotOption, {
108
- icon: renderIcon(row)
109
- });
110
- }
111
- if (props.mode === "SELECT") {
112
- Object.assign(slotOption, {
113
- "right-icon": renderRightSlot(row)
114
- });
115
- }
116
- return createVNode(resolveComponent("van-cell"), {
117
- "class": itemClass,
118
- "is-link": true,
119
- "title": row.data.srfmajortext || "",
120
- "onClick": () => c.onRowClick(row.data)
121
- }, _isSlot(slotOption) ? slotOption : {
122
- default: () => [slotOption]
123
- });
124
- };
125
- const renderNoData = () => {
126
- const {
127
- isLoaded
128
- } = c.state;
129
- if (!isLoaded) {
130
- return;
131
- }
132
- return isLoaded && createVNode(resolveComponent("iBizNoData"), {
133
- "text": c.model.emptyText,
134
- "emptyTextLanguageRes": c.model.emptyTextLanguageRes
135
- }, null);
136
- };
137
73
  const renderSlidingActionGroup = (group, row) => {
138
74
  const groupDetails = group.uiactionGroupDetails || [];
139
75
  if (!groupDetails || groupDetails.length === 0) {
@@ -155,7 +91,6 @@ const MDCtrlControl = /* @__PURE__ */ defineComponent({
155
91
  });
156
92
  };
157
93
  const renderDefaultItem = (row) => {
158
- const panel = props.modelData.itemLayoutPanel;
159
94
  const isItemSliding = !!(leftSlidingActionGroup || rightSlidingActionGroup);
160
95
  if (isItemSliding) {
161
96
  return createVNode(resolveComponent("van-swipe-cell"), {
@@ -164,11 +99,11 @@ const MDCtrlControl = /* @__PURE__ */ defineComponent({
164
99
  left: rightSlidingActionGroup ? () => renderSlidingActionGroup(rightSlidingActionGroup, row) : null,
165
100
  right: leftSlidingActionGroup ? () => renderSlidingActionGroup(leftSlidingActionGroup, row) : null,
166
101
  default: () => {
167
- return panel ? renderPanelItem(row.data, panel) : renderItemContent(row);
102
+ return renderItem(row.data);
168
103
  }
169
104
  });
170
105
  }
171
- return panel ? renderPanelItem(row.data, panel) : renderItemContent(row);
106
+ return renderItem(row.data);
172
107
  };
173
108
  const renderDefault = () => {
174
109
  return c.state.rows.map((item) => {
@@ -186,15 +121,6 @@ const MDCtrlControl = /* @__PURE__ */ defineComponent({
186
121
  })]);
187
122
  });
188
123
  };
189
- const renderLoadMore = () => {
190
- if (props.loadMode === "auto" || c.state.total <= c.state.rows.length) {
191
- return;
192
- }
193
- return createVNode("div", {
194
- "class": ns.b("load-more"),
195
- "onClick": () => c.loadMore()
196
- }, [createVNode("span", null, [createTextVNode("\u52A0\u8F7D\u66F4\u591A")])]);
197
- };
198
124
  const renderMDContent = () => {
199
125
  return createVNode(resolveComponent("van-list"), {
200
126
  "finished": c.state.total <= c.state.rows.length,
@@ -16,7 +16,7 @@ export declare const IBizToolbarControl: import("@ibiz-template/vue3-util").Type
16
16
  btnSize: import("vue").ComputedRef<string>;
17
17
  ns: import("@ibiz-template/core").Namespace;
18
18
  position: string;
19
- handleClick: (item: import("@ibiz/model-core").IDEToolbarItem, event: MouseEvent) => Promise<void>;
19
+ handleClick: (item: import("@ibiz/model-core").IDEToolbarItem | import("@ibiz-template/runtime").IExtraButton, event: MouseEvent) => Promise<void>;
20
20
  renderExtraButtons: (extraButtons: import("@ibiz-template/runtime").IExtraButton[]) => JSX.Element[];
21
21
  renderToolbarItem: (item: import("@ibiz/model-core").IDEToolbarItem) => JSX.Element | null;
22
22
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -20,7 +20,7 @@ export declare const ToolbarControl: import("vue").DefineComponent<{
20
20
  btnSize: import("vue").ComputedRef<string>;
21
21
  ns: import("@ibiz-template/core").Namespace;
22
22
  position: string;
23
- handleClick: (item: IDEToolbarItem, event: MouseEvent) => Promise<void>;
23
+ handleClick: (item: IDEToolbarItem | IExtraButton, event: MouseEvent) => Promise<void>;
24
24
  renderExtraButtons: (extraButtons: IExtraButton[]) => JSX.Element[];
25
25
  renderToolbarItem: (item: IDEToolbarItem) => JSX.Element | null;
26
26
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -62,6 +62,7 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
62
62
  if (index !== -1) {
63
63
  return items.value[index].text;
64
64
  }
65
+ return "";
65
66
  });
66
67
  const editorRef = ref();
67
68
  if (props.autoFocus) {
package/es/index.mjs CHANGED
@@ -8,13 +8,13 @@ import { IBizPanelComponents } from './panel-component/index.mjs';
8
8
  import { IBizViewEngine } from './view-engine/index.mjs';
9
9
  import './util/index.mjs';
10
10
  import './view/index.mjs';
11
- import { IBizMDCtrlControl } from './control/md-ctrl/index.mjs';
11
+ import { IBizMDCtrlControl } from './control/list/md-ctrl/index.mjs';
12
12
  import { IBizAppMenuControl } from './control/app-menu/index.mjs';
13
13
  import { IBizFormControl } from './control/form/form/index.mjs';
14
14
  import { IBizSearchFormControl } from './control/form/search-form/index.mjs';
15
15
  import { IBizEditFormControl } from './control/form/edit-form/index.mjs';
16
16
  import { IBizPickupViewPanelControl } from './control/pickup-view-panel/index.mjs';
17
- import { IBizListControl } from './control/list/index.mjs';
17
+ import { IBizListControl } from './control/list/list/index.mjs';
18
18
  import { IBizTabExpPanelControl } from './control/tab-exp-panel/index.mjs';
19
19
  import { IBizToolbarControl } from './control/toolbar/index.mjs';
20
20
  import { IBizCaptionBarControl } from './control/caption-bar/index.mjs';
@@ -36,6 +36,7 @@ export { NotificationUtil } from './util/notification-util/notification-util.mjs
36
36
  export { OpenViewUtil } from './util/open-view-util/open-view-util.mjs';
37
37
  export { OverlayController } from './util/overlay-controller/overlay-controller.mjs';
38
38
  export { loadingDirective } from './util/directive/loading.mjs';
39
+ export { ConfirmUtil } from './util/confirm-util/confirm-util.mjs';
39
40
  export { calcUniqueKey, useViewStack } from './util/store/view-stack/view-stack.mjs';
40
41
  export { View404 } from './view/404-view/404-view.mjs';
41
42
  export { LoginView } from './view/login-view/login-view.mjs';
@@ -1,4 +1,4 @@
1
- import { IBizPanelContainer, IBizPanelCtrlPos, IBizNavPos, IBizPanelField, IBizGridContainer, IBizPanelRawItem, IBizSingleDataContainer, IBizMultiDataContainer } from '@ibiz-template/vue3-util';
1
+ import { IBizPanelContainer, IBizPanelCtrlPos, IBizNavPos, IBizPanelField, IBizGridContainer, IBizPanelRawItem, IBizSingleDataContainer, IBizMultiDataContainer, IBizPanelTabPage, IBizPanelContainerGroup, IBizPanelContainerImage, IBizScrollContainer } from '@ibiz-template/vue3-util';
2
2
  import { IBizViewContentPanelContainer } from './view-content-panel-container/index.mjs';
3
3
  import { IBizViewHeaderPanelContainer } from './view-header-panel-container/index.mjs';
4
4
  import { IBizViewFooterPanelContainer } from './view-footer-panel-container/index.mjs';
@@ -6,6 +6,7 @@ import { IBizPanelButton } from './panel-button/index.mjs';
6
6
  import { IBizWFActionButton } from './wf-action-button/index.mjs';
7
7
  import { IBizWFStepTrace } from './wf-step-trace/index.mjs';
8
8
  import { IBizNavPosIndex } from './nav-pos-index/index.mjs';
9
+ import { IBizPanelTabPanel } from './panel-tab-panel/index.mjs';
9
10
 
10
11
  "use strict";
11
12
  const IBizPanelComponents = {
@@ -25,6 +26,11 @@ const IBizPanelComponents = {
25
26
  v.use(IBizWFActionButton);
26
27
  v.use(IBizSingleDataContainer);
27
28
  v.use(IBizMultiDataContainer);
29
+ v.use(IBizPanelTabPage);
30
+ v.use(IBizPanelTabPanel);
31
+ v.use(IBizPanelContainerGroup);
32
+ v.use(IBizPanelContainerImage);
33
+ v.use(IBizScrollContainer);
28
34
  }
29
35
  };
30
36
 
@@ -0,0 +1,23 @@
1
+ export declare const IBizPanelTabPanel: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
2
+ modelData: {
3
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelTabPanel>;
4
+ required: true;
5
+ };
6
+ controller: {
7
+ type: typeof import("@ibiz-template/runtime").PanelItemController;
8
+ required: true;
9
+ };
10
+ }, {
11
+ ns: import("@ibiz-template/core").Namespace;
12
+ classArr: import("vue").ComputedRef<(string | false)[]>;
13
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
14
+ modelData: {
15
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelTabPanel>;
16
+ required: true;
17
+ };
18
+ controller: {
19
+ type: typeof import("@ibiz-template/runtime").PanelItemController;
20
+ required: true;
21
+ };
22
+ }>>, {}, {}>>;
23
+ export default IBizPanelTabPanel;
@@ -0,0 +1,12 @@
1
+ import { registerPanelItemProvider } from '@ibiz-template/runtime';
2
+ import { withInstall } from '@ibiz-template/vue3-util';
3
+ import { PanelTabPanel } from './panel-tab-panel.mjs';
4
+ import { PanelTabPanelProvider } from './panel-tab-panel.provider.mjs';
5
+
6
+ "use strict";
7
+ const IBizPanelTabPanel = withInstall(PanelTabPanel, function(v) {
8
+ v.component(PanelTabPanel.name, PanelTabPanel);
9
+ registerPanelItemProvider("TABPANEL", () => new PanelTabPanelProvider());
10
+ });
11
+
12
+ export { IBizPanelTabPanel, IBizPanelTabPanel as default };
@@ -0,0 +1 @@
1
+ .ibiz-panel-tab-panel{height:100%}.ibiz-panel-tab-panel .van-tabs__content{height:calc(100% - var(--van-tabs-line-height))}.ibiz-panel-tab-panel .van-tab__panel{height:100%}
@@ -0,0 +1,26 @@
1
+ import { IPanelTabPanel } from '@ibiz/model-core';
2
+ import { PropType } from 'vue';
3
+ import { PanelItemController } from '@ibiz-template/runtime';
4
+ import './panel-tab-panel.scss';
5
+ export declare const PanelTabPanel: import("vue").DefineComponent<{
6
+ modelData: {
7
+ type: PropType<IPanelTabPanel>;
8
+ required: true;
9
+ };
10
+ controller: {
11
+ type: typeof PanelItemController;
12
+ required: true;
13
+ };
14
+ }, {
15
+ ns: import("@ibiz-template/core").Namespace;
16
+ classArr: import("vue").ComputedRef<(string | false)[]>;
17
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
18
+ modelData: {
19
+ type: PropType<IPanelTabPanel>;
20
+ required: true;
21
+ };
22
+ controller: {
23
+ type: typeof PanelItemController;
24
+ required: true;
25
+ };
26
+ }>>, {}, {}>;