@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
@@ -0,0 +1,70 @@
1
+ import { isVNode, computed, resolveComponent, createVNode, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import { PanelItemController } from '@ibiz-template/runtime';
4
+ import './panel-tab-panel.css';
5
+
6
+ "use strict";
7
+ function _isSlot(s) {
8
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
9
+ }
10
+ const PanelTabPanel = /* @__PURE__ */ defineComponent({
11
+ name: "IBizPanelTabPanel",
12
+ props: {
13
+ modelData: {
14
+ type: Object,
15
+ required: true
16
+ },
17
+ controller: {
18
+ type: PanelItemController,
19
+ required: true
20
+ }
21
+ },
22
+ setup(props) {
23
+ const ns = useNamespace("panel-tab-panel");
24
+ const classArr = computed(() => {
25
+ const {
26
+ id
27
+ } = props.modelData;
28
+ const result = [ns.b(), ns.m(id)];
29
+ result.push(...props.controller.containerClass);
30
+ return result;
31
+ });
32
+ return {
33
+ ns,
34
+ classArr
35
+ };
36
+ },
37
+ render() {
38
+ var _a, _b, _c;
39
+ let _slot;
40
+ if (!this.controller.state.visible) {
41
+ return;
42
+ }
43
+ const defaultSlots = ((_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a)) || [];
44
+ return createVNode(resolveComponent("van-tabs"), {
45
+ "class": [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass],
46
+ "lazy-render": true,
47
+ "model-value": (_c = this.modelData.panelTabPages) == null ? void 0 : _c[0].id
48
+ }, _isSlot(_slot = defaultSlots.map((slot) => {
49
+ const props = slot.props;
50
+ if (!props || !props.controller) {
51
+ return slot;
52
+ }
53
+ const c = props.controller;
54
+ if (!c.state.visible && !c.state.keepAlive) {
55
+ return null;
56
+ }
57
+ return createVNode(resolveComponent("van-tab"), {
58
+ "class": this.ns.b("tab-item"),
59
+ "title": c.model.caption,
60
+ "name": c.model.id
61
+ }, _isSlot(slot) ? slot : {
62
+ default: () => [slot]
63
+ });
64
+ })) ? _slot : {
65
+ default: () => [_slot]
66
+ });
67
+ }
68
+ });
69
+
70
+ export { PanelTabPanel };
@@ -0,0 +1,13 @@
1
+ import { IPanelItemProvider, PanelController, PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelItem } from '@ibiz/model-core';
3
+ /**
4
+ * 面板分页面板适配器
5
+ *
6
+ * @export
7
+ * @class PanelTabPanelController
8
+ * @implements {IPanelItemProvider}
9
+ */
10
+ export declare class PanelTabPanelProvider implements IPanelItemProvider {
11
+ component: string;
12
+ createController(panelItem: IPanelItem, panel: PanelController, parent: PanelItemController | undefined): Promise<PanelItemController>;
13
+ }
@@ -0,0 +1,21 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class PanelTabPanelProvider {
11
+ constructor() {
12
+ __publicField(this, "component", "IBizPanelTabPanel");
13
+ }
14
+ async createController(panelItem, panel, parent) {
15
+ const c = new PanelItemController(panelItem, panel, parent);
16
+ await c.init();
17
+ return c;
18
+ }
19
+ }
20
+
21
+ export { PanelTabPanelProvider };
@@ -0,0 +1,17 @@
1
+ import { IConfirmUtil, ConfirmParams } from '@ibiz-template/runtime';
2
+ /**
3
+ * 确认操作框
4
+ *
5
+ * @author zk
6
+ * @date 2023-12-05 10:12:05
7
+ * @export
8
+ * @class ConfirmUtil
9
+ * @implements {IConfirmUtil}
10
+ */
11
+ export declare class ConfirmUtil implements IConfirmUtil {
12
+ private ns;
13
+ info(params: ConfirmParams): Promise<boolean>;
14
+ success(params: ConfirmParams): Promise<boolean>;
15
+ warning(params: ConfirmParams): Promise<boolean>;
16
+ error(params: ConfirmParams): Promise<boolean>;
17
+ }
@@ -0,0 +1,77 @@
1
+ import { Namespace } from '@ibiz-template/core';
2
+ import { showConfirmDialog } from 'vant';
3
+
4
+ "use strict";
5
+ var __defProp = Object.defineProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __publicField = (obj, key, value) => {
8
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
9
+ return value;
10
+ };
11
+ class ConfirmUtil {
12
+ constructor() {
13
+ __publicField(this, "ns", new Namespace("confirm"));
14
+ }
15
+ async info(params) {
16
+ const { title, desc, options } = params;
17
+ return new Promise((resolve) => {
18
+ showConfirmDialog({
19
+ title,
20
+ message: desc,
21
+ className: `${this.ns.b()} ${this.ns.e("info")}`,
22
+ ...options
23
+ }).then(() => {
24
+ resolve(true);
25
+ }).catch(() => {
26
+ resolve(false);
27
+ });
28
+ });
29
+ }
30
+ async success(params) {
31
+ const { title, desc, options } = params;
32
+ return new Promise((resolve) => {
33
+ showConfirmDialog({
34
+ title,
35
+ message: desc,
36
+ className: `${this.ns.b()} ${this.ns.e("success")}`,
37
+ ...options
38
+ }).then(() => {
39
+ resolve(true);
40
+ }).catch(() => {
41
+ resolve(false);
42
+ });
43
+ });
44
+ }
45
+ async warning(params) {
46
+ const { title, desc, options } = params;
47
+ return new Promise((resolve) => {
48
+ showConfirmDialog({
49
+ title,
50
+ message: desc,
51
+ className: `${this.ns.b()} ${this.ns.e("warning")}`,
52
+ ...options
53
+ }).then(() => {
54
+ resolve(true);
55
+ }).catch(() => {
56
+ resolve(false);
57
+ });
58
+ });
59
+ }
60
+ async error(params) {
61
+ const { title, desc, options } = params;
62
+ return new Promise((resolve) => {
63
+ showConfirmDialog({
64
+ title,
65
+ message: desc,
66
+ className: `${this.ns.b()} ${this.ns.e("error")}`,
67
+ ...options
68
+ }).then(() => {
69
+ resolve(true);
70
+ }).catch(() => {
71
+ resolve(false);
72
+ });
73
+ });
74
+ }
75
+ }
76
+
77
+ export { ConfirmUtil };
@@ -5,4 +5,5 @@ export { NotificationUtil } from './notification-util/notification-util';
5
5
  export { OpenViewUtil } from './open-view-util/open-view-util';
6
6
  export { OverlayController } from './overlay-controller/overlay-controller';
7
7
  export { loadingDirective } from './directive/loading';
8
+ export { ConfirmUtil } from './confirm-util/confirm-util';
8
9
  export * from './store';
package/es/util/index.mjs CHANGED
@@ -5,6 +5,7 @@ export { NotificationUtil } from './notification-util/notification-util.mjs';
5
5
  export { OpenViewUtil } from './open-view-util/open-view-util.mjs';
6
6
  export { OverlayController } from './overlay-controller/overlay-controller.mjs';
7
7
  export { loadingDirective } from './directive/loading.mjs';
8
+ export { ConfirmUtil } from './confirm-util/confirm-util.mjs';
8
9
  import './store/index.mjs';
9
10
  export { calcUniqueKey, useViewStack } from './store/view-stack/view-stack.mjs';
10
11
 
@@ -50,6 +50,8 @@ class MobMPickupViewEngine extends MobPickupViewEngine {
50
50
  this.view.slotProps.pickupviewpanel.selectedData = this.selectedData;
51
51
  this.view.slotProps.simplelist.singleSelect = false;
52
52
  this.view.slotProps.simplelist.mdctrlActiveMode = 2;
53
+ this.view.slotProps.simplelist.mode = "SELECT";
54
+ this.view.slotProps.simplelist.loadDefault = false;
53
55
  }
54
56
  /**
55
57
  * 视图mounted生命周期执行逻辑
@@ -23,9 +23,6 @@ const IBizCol = /* @__PURE__ */ vue.defineComponent({
23
23
  const spacingClass = vue.computed(() => {
24
24
  const ns2 = vue3Util.useNamespace("spacing");
25
25
  const classArr = [];
26
- if (props.layoutPos.layout !== "FLEX") {
27
- return classArr;
28
- }
29
26
  const spacings = {
30
27
  top: props.layoutPos.spacingTop,
31
28
  bottom: props.layoutPos.spacingBottom,
@@ -43,7 +43,7 @@ const IBizRawItem = /* @__PURE__ */ vue.defineComponent({
43
43
  rawItemContent.value = rawItem.content;
44
44
  }
45
45
  } else if (["VIDEO", "DIVIDER", "INFO", "WARNING", "ERROR"].includes(contentType)) {
46
- rawItemContent.value = props.content;
46
+ rawItemContent.value = props.content || rawItem.rawContent;
47
47
  } else if (contentType === "IMAGE" && sysImage) {
48
48
  rawItemContent.value = sysImage;
49
49
  }
@@ -6,7 +6,7 @@ require('./calendar.css');
6
6
  var runtime = require('@ibiz-template/runtime');
7
7
  var ramda = require('ramda');
8
8
  var dayjs = require('dayjs');
9
- var index = require('../../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/index.cjs');
9
+ var index = require('../../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.9/node_modules/vue3-hash-calendar/es/index.cjs');
10
10
  require('vue3-hash-calendar/es/index.css');
11
11
 
12
12
  "use strict";
@@ -10,11 +10,13 @@ require('./portlet/index.cjs');
10
10
  var portletLayout = require('./portlet/portlet-layout/portlet-layout.cjs');
11
11
  var index = require('./portlet/container-portlet/index.cjs');
12
12
  var index$1 = require('./portlet/menu-portlet/index.cjs');
13
+ var index$2 = require('./portlet/view-portlet/index.cjs');
13
14
  var portletPart_state = require('./portlet/portlet-part/portlet-part.state.cjs');
14
15
  var containerPortlet_provider = require('./portlet/container-portlet/container-portlet.provider.cjs');
15
16
  var containerPortlet = require('./portlet/container-portlet/container-portlet.cjs');
16
17
  var menuPortlet_provider = require('./portlet/menu-portlet/menu-portlet.provider.cjs');
17
18
  var menuPortlet = require('./portlet/menu-portlet/menu-portlet.cjs');
19
+ var viewPortlet = require('./portlet/view-portlet/view-portlet.cjs');
18
20
 
19
21
  "use strict";
20
22
  const IBizDashboardControl = vue3Util.withInstall(
@@ -28,6 +30,7 @@ const IBizDashboardControl = vue3Util.withInstall(
28
30
  v.component(portletLayout.PortletLayout.name, portletLayout.PortletLayout);
29
31
  v.use(index.IBizContainerPortlet);
30
32
  v.use(index$1.IBizMenuPortlet);
33
+ v.use(index$2.IBizViewPortlet);
31
34
  }
32
35
  );
33
36
 
@@ -35,10 +38,12 @@ exports.DashboardProvider = dashboard_provider.DashboardProvider;
35
38
  exports.PortletLayout = portletLayout.PortletLayout;
36
39
  exports.IBizContainerPortlet = index.IBizContainerPortlet;
37
40
  exports.IBizMenuPortlet = index$1.IBizMenuPortlet;
41
+ exports.IBizViewPortlet = index$2.IBizViewPortlet;
38
42
  exports.PortletPartState = portletPart_state.PortletPartState;
39
43
  exports.ContainerPortletProvider = containerPortlet_provider.ContainerPortletProvider;
40
44
  exports.ContainerPortlet = containerPortlet.ContainerPortlet;
41
45
  exports.MenuPortletProvider = menuPortlet_provider.MenuPortletProvider;
42
46
  exports.MenuPortlet = menuPortlet.MenuPortlet;
47
+ exports.ViewPortlet = viewPortlet.ViewPortlet;
43
48
  exports.IBizDashboardControl = IBizDashboardControl;
44
49
  exports.default = IBizDashboardControl;
@@ -14,11 +14,7 @@ class ContainerPortletProvider {
14
14
  __publicField(this, "component", "IBizContainerPortlet");
15
15
  }
16
16
  async createController(portletModel, dashboard, parent) {
17
- const c = new runtime.ContainerPortletController(
18
- portletModel,
19
- dashboard,
20
- parent
21
- );
17
+ const c = new runtime.ContainerPortletController(portletModel, dashboard, parent);
22
18
  await c.init();
23
19
  return c;
24
20
  }
@@ -4,19 +4,23 @@ require('./portlet-part/index.cjs');
4
4
  var index = require('./container-portlet/index.cjs');
5
5
  var portletLayout = require('./portlet-layout/portlet-layout.cjs');
6
6
  var index$1 = require('./menu-portlet/index.cjs');
7
+ var index$2 = require('./view-portlet/index.cjs');
7
8
  var portletPart_state = require('./portlet-part/portlet-part.state.cjs');
8
9
  var containerPortlet_provider = require('./container-portlet/container-portlet.provider.cjs');
9
10
  var containerPortlet = require('./container-portlet/container-portlet.cjs');
10
11
  var menuPortlet_provider = require('./menu-portlet/menu-portlet.provider.cjs');
11
12
  var menuPortlet = require('./menu-portlet/menu-portlet.cjs');
13
+ var viewPortlet = require('./view-portlet/view-portlet.cjs');
12
14
 
13
15
  "use strict";
14
16
 
15
17
  exports.IBizContainerPortlet = index.IBizContainerPortlet;
16
18
  exports.PortletLayout = portletLayout.PortletLayout;
17
19
  exports.IBizMenuPortlet = index$1.IBizMenuPortlet;
20
+ exports.IBizViewPortlet = index$2.IBizViewPortlet;
18
21
  exports.PortletPartState = portletPart_state.PortletPartState;
19
22
  exports.ContainerPortletProvider = containerPortlet_provider.ContainerPortletProvider;
20
23
  exports.ContainerPortlet = containerPortlet.ContainerPortlet;
21
24
  exports.MenuPortletProvider = menuPortlet_provider.MenuPortletProvider;
22
25
  exports.MenuPortlet = menuPortlet.MenuPortlet;
26
+ exports.ViewPortlet = viewPortlet.ViewPortlet;
@@ -14,11 +14,7 @@ class MenuPortletProvider {
14
14
  __publicField(this, "component", "IBizMenuPortlet");
15
15
  }
16
16
  async createController(portletModel, dashboard, parent) {
17
- const c = new runtime.MenuPortletController(
18
- portletModel,
19
- dashboard,
20
- parent
21
- );
17
+ const c = new runtime.MenuPortletController(portletModel, dashboard, parent);
22
18
  await c.init();
23
19
  return c;
24
20
  }
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var runtime = require('@ibiz-template/runtime');
6
+ var vue3Util = require('@ibiz-template/vue3-util');
7
+ var viewPortlet = require('./view-portlet.cjs');
8
+ var viewPortlet_provider = require('./view-portlet.provider.cjs');
9
+
10
+ "use strict";
11
+ const IBizViewPortlet = vue3Util.withInstall(viewPortlet.ViewPortlet, function(v) {
12
+ v.component(viewPortlet.ViewPortlet.name, viewPortlet.ViewPortlet);
13
+ runtime.registerPortletProvider("VIEW", () => new viewPortlet_provider.ViewPortletProvider());
14
+ });
15
+
16
+ exports.ViewPortlet = viewPortlet.ViewPortlet;
17
+ exports.IBizViewPortlet = IBizViewPortlet;
18
+ exports.default = IBizViewPortlet;
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var runtime = require('@ibiz-template/runtime');
6
+
7
+ "use strict";
8
+ function _isSlot(s) {
9
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
10
+ }
11
+ const ViewPortlet = /* @__PURE__ */ vue.defineComponent({
12
+ name: "IBizViewPortlet",
13
+ props: {
14
+ modelData: {
15
+ type: Object,
16
+ required: true
17
+ },
18
+ controller: {
19
+ type: runtime.ViewPortletController,
20
+ required: true
21
+ }
22
+ },
23
+ setup(props) {
24
+ var _a;
25
+ const ns = vue3Util.useNamespace(`portlet-${(_a = props.modelData.portletType) == null ? void 0 : _a.toLowerCase()}`);
26
+ const view = props.modelData.portletAppView;
27
+ return {
28
+ ns,
29
+ view
30
+ };
31
+ },
32
+ render() {
33
+ let _slot;
34
+ const classArr = [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass];
35
+ const {
36
+ context,
37
+ params
38
+ } = this.controller;
39
+ return vue.createVNode(vue.resolveComponent("iBizPortletLayout"), {
40
+ "controller": this.controller,
41
+ "class": classArr
42
+ }, _isSlot(_slot = vue.h(vue.resolveComponent("IBizViewShell"), {
43
+ context,
44
+ params,
45
+ modelData: this.view
46
+ })) ? _slot : {
47
+ default: () => [_slot]
48
+ });
49
+ }
50
+ });
51
+
52
+ exports.ViewPortlet = ViewPortlet;
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var runtime = require('@ibiz-template/runtime');
4
+
5
+ "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
12
+ class ViewPortletProvider {
13
+ constructor() {
14
+ __publicField(this, "component", "IBizViewPortlet");
15
+ }
16
+ async createController(portletModel, dashboard, parent) {
17
+ const c = new runtime.ViewPortletController(portletModel, dashboard, parent);
18
+ await c.init();
19
+ return c;
20
+ }
21
+ }
22
+
23
+ exports.ViewPortletProvider = ViewPortletProvider;
@@ -48,7 +48,7 @@ const FormDRUIPart = /* @__PURE__ */ vue.defineComponent({
48
48
  return null;
49
49
  }
50
50
  let header = null;
51
- if (this.modelData.showCaption) {
51
+ if (this.modelData.showCaption && this.captionText) {
52
52
  header = vue.createVNode("div", {
53
53
  "class": [this.ns.b("header")]
54
54
  }, [vue.createVNode("div", {
@@ -1 +1 @@
1
- .ibiz-form-item-container{--ibiz-form-item-container-label-width:8.125rem;--ibiz-form-item-container-line-height:var(--ibiz-form-item-line-height);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-left-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-error-margin-top:var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-bg-color:var(--ibiz-color-bg-1);--ibiz-form-item-container-label-font-size:var(--ibiz-font-size-header-5);--ibiz-form-item-container-label-text-color:var(--ibiz-color-text-0);--ibiz-form-item-container-container-error-padding:0 var(--ibiz-spacing-base);--ibiz-form-item-container-border:0.0625rem var(--ibiz-color-border) solid;--ibiz-form-item-container-editor-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);--ibiz-form-item-label-line-height:1;--ibiz-form-item-label-font-size:var(--ibiz-font-size-header-5);--ibiz-form-item-label-text-color:var(--ibiz-color-text-0);position:relative;width:100%;height:100%;padding:var(--ibiz-form-item-container-container-padding);font-size:var(--ibiz-form-item-font-size);background-color:var(--ibiz-form-item-container-bg-color);border-width:calc(100% - var(--ibiz-spacing-base) * 2);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item-container::after{position:absolute;z-index:1;width:calc(100% - var(--ibiz-spacing-base) * 2);height:.00625rem;content:"";background-color:var(--ibiz-color-border)}.ibiz-form-item-container__label{position:relative;flex-shrink:0;width:var(--ibiz-form-item-container-label-width);overflow:visible;color:var(--ibiz-form-item-label-text-color)}.ibiz-form-item-container__label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;width:100%;font-size:var(--ibiz-form-item-container-label-font-size);line-height:var(--ibiz-form-item-label-line-height);text-align:var(--ibiz-form-item-container-label-align)}.ibiz-form-item-container__editor{width:100%;text-align:var(--ibiz-form-item-container-editor-align)}.ibiz-form-item-container__editor .van-cell{padding-bottom:0}.ibiz-form-item-container.is-required .ibiz-form-item-container__label::before{position:absolute;top:.1875rem;left:-.625rem;display:inline-block;height:100%;font-size:.875rem;color:var(--ibiz-form-item-error-color);content:"*"}.ibiz-form-item-container.is-error::after{background-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container.is-error .ibiz-form-item-container-content{border-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container--left::after{bottom:0}.ibiz-form-item-container--right.is-required .ibiz-form-item-container__label::before{right:-.625rem;left:auto}.ibiz-form-item-container--right .ibiz-form-item-container__editor{width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--left .ibiz-form-item-container__editor{width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--top .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container--bottom .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container-content{position:relative}.ibiz-form-item-container--left .ibiz-form-item-container-content,.ibiz-form-item-container--right .ibiz-form-item-container-content{height:100%;display:flex;align-items:center;justify-content:center}.ibiz-form-item-container-error{position:absolute;bottom:0;width:calc(100% - var(--ibiz-spacing-base));padding-right:var(--ibiz-spacing-base);font-size:var(--ibiz-form-item-error-font-size);line-height:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-error-color);text-align:var(--ibiz-form-item-container-editor-align)}
1
+ .ibiz-form-item-container{--ibiz-form-item-container-label-width:8.125rem;--ibiz-form-item-container-line-height:var(--ibiz-form-item-line-height);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-left-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-error-margin-top:var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-bg-color:var(--ibiz-color-bg-1);--ibiz-form-item-container-label-font-size:var(--ibiz-font-size-header-6);--ibiz-form-item-container-label-text-color:var(--ibiz-color-text-0);--ibiz-form-item-container-container-error-padding:0 var(--ibiz-spacing-base);--ibiz-form-item-container-border:0.0625rem var(--ibiz-color-border) solid;--ibiz-form-item-container-editor-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);--ibiz-form-item-label-line-height:1;--ibiz-form-item-label-font-size:var(--ibiz-font-size-header-5);--ibiz-form-item-label-text-color:var(--ibiz-color-text-0);position:relative;width:100%;height:100%;padding:var(--ibiz-form-item-container-container-padding);font-size:var(--ibiz-form-item-font-size);background-color:var(--ibiz-form-item-container-bg-color);border-width:calc(100% - var(--ibiz-spacing-base) * 2);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item-container::after{position:absolute;z-index:1;width:calc(100% - var(--ibiz-spacing-base) * 2);height:.00625rem;content:"";background-color:var(--ibiz-color-border)}.ibiz-form-item-container__label{position:relative;flex-shrink:0;width:var(--ibiz-form-item-container-label-width);overflow:visible;color:var(--ibiz-form-item-label-text-color)}.ibiz-form-item-container__label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;width:100%;font-size:var(--ibiz-form-item-container-label-font-size);text-align:var(--ibiz-form-item-container-label-align)}.ibiz-form-item-container__editor{width:100%;text-align:var(--ibiz-form-item-container-editor-align)}.ibiz-form-item-container__editor .van-cell{padding-bottom:0}.ibiz-form-item-container.is-required .ibiz-form-item-container__label::before{position:absolute;top:.1875rem;left:-.625rem;display:inline-block;height:100%;font-size:.875rem;color:var(--ibiz-form-item-error-color);content:"*"}.ibiz-form-item-container.is-error::after{background-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container.is-error .ibiz-form-item-container-content{border-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container--left::after{bottom:0}.ibiz-form-item-container--right.is-required .ibiz-form-item-container__label::before{right:-.625rem;left:auto}.ibiz-form-item-container--right .ibiz-form-item-container__editor{width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--left .ibiz-form-item-container__editor{width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--top .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container--bottom .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container-content{position:relative}.ibiz-form-item-container--left .ibiz-form-item-container-content,.ibiz-form-item-container--right .ibiz-form-item-container-content{height:100%;display:flex;align-items:center;justify-content:center}.ibiz-form-item-container-error{position:absolute;bottom:0;width:calc(100% - var(--ibiz-spacing-base));padding-right:var(--ibiz-spacing-base);font-size:var(--ibiz-form-item-error-font-size);line-height:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-error-color);text-align:var(--ibiz-form-item-container-editor-align)}
@@ -48,7 +48,7 @@ const FormMDCtrlForm = /* @__PURE__ */ vue.defineComponent({
48
48
  "items": state.items || [],
49
49
  "enableCreate": this.controller.enableCreate,
50
50
  "enableDelete": this.controller.enableDelete,
51
- "onAddClick": () => this.controller.create(),
51
+ "onAddClick": (index) => this.controller.create(index),
52
52
  "onRemoveClick": (item) => this.controller.remove(item.id)
53
53
  }, {
54
54
  item: ({
@@ -57,6 +57,8 @@ const FormMDCtrlMD = /* @__PURE__ */ vue.defineComponent({
57
57
  }
58
58
  return vue.createVNode("div", {
59
59
  "class": this.ns.b()
60
+ }, [this.showActions && vue.createVNode("div", {
61
+ "class": this.ns.b("actions")
60
62
  }, [this.controller.enableCreate && vue.createVNode(vue.resolveComponent("van-button"), {
61
63
  "class": [this.ns.be("actions", "create"), this.ns.be("actions", "btn")],
62
64
  "size": "small",
@@ -64,9 +66,7 @@ const FormMDCtrlMD = /* @__PURE__ */ vue.defineComponent({
64
66
  "onClick": () => this.controller.create()
65
67
  }, {
66
68
  default: () => [vue.createTextVNode("\u6DFB\u52A0")]
67
- }), controlComponent, this.showActions && vue.createVNode("div", {
68
- "class": this.ns.b("actions")
69
- }, [this.controller.enableDelete && vue.createVNode(vue.resolveComponent("van-button"), {
69
+ }), this.controller.enableDelete && vue.createVNode(vue.resolveComponent("van-button"), {
70
70
  "type": "danger",
71
71
  "size": "small",
72
72
  "disabled": !this.isSelected,
@@ -74,7 +74,7 @@ const FormMDCtrlMD = /* @__PURE__ */ vue.defineComponent({
74
74
  "onClick": () => this.controller.remove()
75
75
  }, {
76
76
  default: () => [vue.createTextVNode("\u5220\u9664")]
77
- })])]);
77
+ })]), controlComponent]);
78
78
  }
79
79
  });
80
80
 
@@ -1 +1 @@
1
- .ibiz-form-mdctrl-md-content{flex-grow:1}.ibiz-form-mdctrl-md-actions{flex-shrink:0;text-align:center}.ibiz-form-mdctrl-md-actions .van-button+.van-button{margin-left:0}.ibiz-form-mdctrl-md-actions__btn{width:calc(100% - var(--ibiz-spacing-base) * 2);margin:0 var(--ibiz-spacing-base)}
1
+ .ibiz-form-mdctrl-md{display:flex;flex-direction:column;height:100%}.ibiz-form-mdctrl-md-content{flex-grow:1;margin:0 var(--ibiz-spacing-tight)}.ibiz-form-mdctrl-md-actions{display:flex;gap:var(--ibiz-spacing-tight);padding:var(--ibiz-spacing-tight) 0;margin:0 var(--ibiz-spacing-tight)}.ibiz-form-mdctrl-md-actions .van-button+.van-button{margin-left:0}.ibiz-form-mdctrl-md-actions__btn{width:calc(100% - var(--ibiz-spacing-base) * 2)}
@@ -26,9 +26,19 @@ const RepeaterMultiForm = /* @__PURE__ */ vue.defineComponent({
26
26
  arrData[index] = value;
27
27
  emit("change", arrData);
28
28
  };
29
+ const removeClick = async (index) => {
30
+ const confirm = await ibiz.modal.confirm({
31
+ title: "\u786E\u8BA4",
32
+ desc: "\u662F\u5426\u5220\u9664\u9009\u4E2D\u9879?"
33
+ });
34
+ if (confirm) {
35
+ props.controller.remove(index);
36
+ }
37
+ };
29
38
  return {
30
39
  ns,
31
- onValueChange
40
+ onValueChange,
41
+ removeClick
32
42
  };
33
43
  },
34
44
  render() {
@@ -38,8 +48,10 @@ const RepeaterMultiForm = /* @__PURE__ */ vue.defineComponent({
38
48
  "items": items,
39
49
  "enableCreate": this.controller.enableCreate,
40
50
  "enableDelete": this.controller.enableDelete,
41
- "onAddClick": () => this.controller.create(),
42
- "onRemoveClick": (_item, index) => this.controller.remove(index)
51
+ "onAddClick": (index) => this.controller.create(index),
52
+ "onRemoveClick": (_item, index) => {
53
+ this.removeClick(index);
54
+ }
43
55
  }, {
44
56
  item: ({
45
57
  data,
@@ -1 +1 @@
1
- .ibiz-form-mdctrl{--ibiz-form-mdctrl-header-height:32px;--ibiz-form-mdctrl-header-bg-color:var(--ibiz-color-bg-1);--ibiz-form-mdctrl-header-padding:var(--ibiz-spacing-base);--ibiz-form-mdctrl-header-border-color:var(--ibiz-color-border);--ibiz-form-mdctrl-caption-text-color:var(--ibiz-color-text-0);--ibiz-form-mdctrl-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-form-mdctrl-caption-font-weight:var(--ibiz-font-weight-bold)}.ibiz-form-mdctrl__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ibiz-form-mdctrl-caption-font-size);font-weight:var(--ibiz-form-mdctrl-caption-font-weight);color:var(--ibiz-form-mdctrl-caption-text-color)}.ibiz-form-mdctrl-header{padding:var(--ibiz-form-mdctrl-header-padding);line-height:var(--ibiz-form-mdctrl-header-height)}
1
+ .ibiz-form-mdctrl{--ibiz-form-mdctrl-header-height:32px;--ibiz-form-mdctrl-header-bg-color:var(--ibiz-color-bg-1);--ibiz-form-mdctrl-header-padding:var(--ibiz-spacing-base);--ibiz-form-mdctrl-header-border-color:var(--ibiz-color-border);--ibiz-form-mdctrl-caption-text-color:var(--ibiz-color-text-0);--ibiz-form-mdctrl-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-form-mdctrl-caption-font-weight:var(--ibiz-font-weight-bold);height:100%}.ibiz-form-mdctrl__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ibiz-form-mdctrl-caption-font-size);font-weight:var(--ibiz-form-mdctrl-caption-font-weight);color:var(--ibiz-form-mdctrl-caption-text-color)}.ibiz-form-mdctrl-header{padding:var(--ibiz-form-mdctrl-header-padding);line-height:var(--ibiz-form-mdctrl-header-height)}
@@ -22,7 +22,7 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
22
22
  }
23
23
  },
24
24
  emits: {
25
- addClick: () => true,
25
+ addClick: (_index) => true,
26
26
  removeClick: (_data, _index) => true
27
27
  },
28
28
  setup(props, {
@@ -32,11 +32,14 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
32
32
  const showActions = vue.computed(() => {
33
33
  return props.enableCreate || props.enableDelete;
34
34
  });
35
- const renderAddBtn = () => {
35
+ const renderAddBtn = (index) => {
36
+ if (!props.enableCreate) {
37
+ return null;
38
+ }
36
39
  return vue.createVNode(vue.resolveComponent("van-button"), {
37
40
  "class": [ns.be("item-actions", "create"), ns.be("item-actions", "btn")],
38
41
  "size": "small",
39
- "onClick": () => emit("addClick"),
42
+ "onClick": () => emit("addClick", index === void 0 ? void 0 : index + 1),
40
43
  "type": "primary"
41
44
  }, {
42
45
  default: () => [vue.createTextVNode("\u6DFB\u52A0")]
@@ -69,11 +72,15 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
69
72
  default: () => [vue.createTextVNode("\u5220\u9664")]
70
73
  });
71
74
  };
75
+ const renderBottomBtn = (item, index) => {
76
+ return [renderAddBtn(index), renderRemoveBtn(item, index)];
77
+ };
72
78
  return {
73
79
  ns,
74
80
  showActions,
75
81
  renderAddBtn,
76
- renderRemoveBtn
82
+ renderRemoveBtn,
83
+ renderBottomBtn
77
84
  };
78
85
  },
79
86
  render() {
@@ -85,10 +92,11 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
85
92
  index
86
93
  }) : vue.createVNode("div", null, [vue.createTextVNode("\u672A\u63D0\u4F9Bitem\u63D2\u69FD")]);
87
94
  return vue.createVNode("div", {
88
- "class": this.ns.b("item")
95
+ "class": this.ns.b("item"),
96
+ "key": item.id
89
97
  }, [formComponent, this.showActions && vue.createVNode("div", {
90
98
  "class": this.ns.b("item-actions")
91
- }, [this.renderRemoveBtn(item, index)])]);
99
+ }, [this.renderBottomBtn(item, index)])]);
92
100
  })]);
93
101
  }
94
102
  });
@@ -1 +1 @@
1
- .ibiz-mdctrl-container{display:flex;flex-direction:column;gap:10px;padding:var(--ibiz-spacing-tight) 0}.ibiz-mdctrl-container-item__form{flex-grow:1}.ibiz-mdctrl-container-item-actions{flex-shrink:0;width:100%;text-align:center}.ibiz-mdctrl-container-item-actions .van-button+.van-button{margin-left:0}.ibiz-mdctrl-container-item-actions__btn{width:calc(100% - var(--ibiz-spacing-base) * 2);margin:0 var(--ibiz-spacing-base)}.ibiz-mdctrl-container-no-data{width:100%;display:flex;justify-content:flex-end}
1
+ .ibiz-mdctrl-container{display:flex;flex-direction:column;padding:var(--ibiz-spacing-tight) 0;background-color:var(--ibiz-color-bg-1)}.ibiz-mdctrl-container-item{margin:0 var(--ibiz-spacing-tight);margin-top:var(--ibiz-spacing-tight);overflow:hidden;border:solid 1px var(--ibiz-color-border);border-radius:var(--ibiz-border-radius-medium)}.ibiz-mdctrl-container-item__form{flex-grow:1}.ibiz-mdctrl-container-item-actions{display:flex;flex-shrink:0;width:100%;padding:10px 0;text-align:center}.ibiz-mdctrl-container-item-actions .van-button+.van-button{margin-left:0}.ibiz-mdctrl-container-item-actions__btn{width:calc(100% - var(--ibiz-spacing-base) * 2);margin:0 var(--ibiz-spacing-base)}.ibiz-mdctrl-container-no-data{width:100%;display:flex;justify-content:flex-end}