@ibiz-template/mob-vue3-components 0.0.1 → 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 (83) 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/control/dashboard/index.mjs +4 -1
  5. package/es/control/dashboard/portlet/container-portlet/container-portlet.provider.mjs +1 -5
  6. package/es/control/dashboard/portlet/index.d.ts +1 -0
  7. package/es/control/dashboard/portlet/index.mjs +2 -0
  8. package/es/control/dashboard/portlet/menu-portlet/menu-portlet.provider.mjs +1 -5
  9. package/es/control/dashboard/portlet/view-portlet/index.d.ts +24 -0
  10. package/es/control/dashboard/portlet/view-portlet/index.mjs +12 -0
  11. package/es/control/dashboard/portlet/view-portlet/view-portlet.d.ts +25 -0
  12. package/es/control/dashboard/portlet/view-portlet/view-portlet.mjs +50 -0
  13. package/es/control/dashboard/portlet/view-portlet/view-portlet.provider.d.ts +15 -0
  14. package/es/control/dashboard/portlet/view-portlet/view-portlet.provider.mjs +21 -0
  15. package/es/control/form/edit-form/edit-form.d.ts +1 -1
  16. package/es/control/form/edit-form/index.d.ts +1 -1
  17. package/es/control/form/form-detail/form-druipart/form-druipart.mjs +1 -1
  18. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.css +1 -1
  19. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.mjs +4 -4
  20. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
  21. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.d.ts +2 -2
  22. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +1 -1
  23. package/es/control/index.d.ts +2 -2
  24. package/es/control/index.mjs +6 -4
  25. package/es/control/list/{index.d.ts → list/index.d.ts} +23 -3
  26. package/es/control/list/list/list.css +1 -0
  27. package/es/control/list/{list.d.ts → list/list.d.ts} +23 -3
  28. package/es/control/list/{list.mjs → list/list.mjs} +37 -18
  29. package/es/control/list/list-render-util.d.ts +23 -0
  30. package/es/control/list/list-render-util.mjs +100 -0
  31. package/es/control/{md-ctrl → list/md-ctrl}/index.d.ts +10 -1
  32. package/es/control/list/md-ctrl/md-ctrl.css +1 -0
  33. package/es/control/{md-ctrl → list/md-ctrl}/md-ctrl.d.ts +14 -3
  34. package/es/control/{md-ctrl → list/md-ctrl}/md-ctrl.mjs +13 -87
  35. package/es/control/toolbar/index.d.ts +1 -1
  36. package/es/control/toolbar/toolbar.d.ts +1 -1
  37. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +1 -0
  38. package/es/index.mjs +3 -2
  39. package/es/panel-component/index.mjs +3 -1
  40. package/es/util/confirm-util/confirm-util.d.ts +17 -0
  41. package/es/util/confirm-util/confirm-util.mjs +77 -0
  42. package/es/util/index.d.ts +1 -0
  43. package/es/util/index.mjs +1 -0
  44. package/es/view-engine/mob-mpickup-view-engine.mjs +2 -0
  45. package/lib/control/dashboard/index.cjs +5 -0
  46. package/lib/control/dashboard/portlet/container-portlet/container-portlet.provider.cjs +1 -5
  47. package/lib/control/dashboard/portlet/index.cjs +4 -0
  48. package/lib/control/dashboard/portlet/menu-portlet/menu-portlet.provider.cjs +1 -5
  49. package/lib/control/dashboard/portlet/view-portlet/index.cjs +18 -0
  50. package/lib/control/dashboard/portlet/view-portlet/view-portlet.cjs +52 -0
  51. package/lib/control/dashboard/portlet/view-portlet/view-portlet.provider.cjs +23 -0
  52. package/lib/control/form/form-detail/form-druipart/form-druipart.cjs +1 -1
  53. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.cjs +4 -4
  54. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.css +1 -1
  55. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
  56. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +1 -1
  57. package/lib/control/index.cjs +14 -10
  58. package/lib/control/list/{list.cjs → list/list.cjs} +36 -17
  59. package/lib/control/list/list/list.css +1 -0
  60. package/lib/control/list/list-render-util.cjs +102 -0
  61. package/lib/control/{md-ctrl → list/md-ctrl}/md-ctrl.cjs +12 -86
  62. package/lib/control/list/md-ctrl/md-ctrl.css +1 -0
  63. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +1 -0
  64. package/lib/index.cjs +4 -2
  65. package/lib/panel-component/index.cjs +2 -0
  66. package/lib/util/confirm-util/confirm-util.cjs +79 -0
  67. package/lib/util/index.cjs +2 -0
  68. package/lib/view-engine/mob-mpickup-view-engine.cjs +2 -0
  69. package/package.json +6 -6
  70. package/es/control/list/list.css +0 -1
  71. package/es/control/md-ctrl/md-ctrl.css +0 -1
  72. package/lib/control/list/list.css +0 -1
  73. package/lib/control/md-ctrl/md-ctrl.css +0 -1
  74. /package/es/control/list/{index.mjs → list/index.mjs} +0 -0
  75. /package/es/control/list/{list.provider.d.ts → list/list.provider.d.ts} +0 -0
  76. /package/es/control/list/{list.provider.mjs → list/list.provider.mjs} +0 -0
  77. /package/es/control/{md-ctrl → list/md-ctrl}/index.mjs +0 -0
  78. /package/es/control/{md-ctrl → list/md-ctrl}/md-ctrl.provider.d.ts +0 -0
  79. /package/es/control/{md-ctrl → list/md-ctrl}/md-ctrl.provider.mjs +0 -0
  80. /package/lib/control/list/{index.cjs → list/index.cjs} +0 -0
  81. /package/lib/control/list/{list.provider.cjs → list/list.provider.cjs} +0 -0
  82. /package/lib/control/{md-ctrl → list/md-ctrl}/index.cjs +0 -0
  83. /package/lib/control/{md-ctrl → list/md-ctrl}/md-ctrl.provider.cjs +0 -0
@@ -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", {
@@ -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)}
@@ -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: (index) => true,
25
+ addClick: (_index) => true,
26
26
  removeClick: (_data, _index) => true
27
27
  },
28
28
  setup(props, {
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./md-ctrl/index.cjs');
3
+ var index = require('./list/md-ctrl/index.cjs');
4
4
  var index$1 = require('./app-menu/index.cjs');
5
5
  require('./form/index.cjs');
6
6
  var index$e = require('./pickup-view-panel/index.cjs');
7
- var index$f = require('./list/index.cjs');
7
+ var index$f = require('./list/list/index.cjs');
8
8
  var index$g = require('./tab-exp-panel/index.cjs');
9
9
  var index$h = require('./toolbar/index.cjs');
10
10
  var index$i = require('./caption-bar/index.cjs');
@@ -13,10 +13,10 @@ var index$k = require('./drtab/index.cjs');
13
13
  var index$l = require('./tree/index.cjs');
14
14
  var index$m = require('./data-view/index.cjs');
15
15
  var index$n = require('./dashboard/index.cjs');
16
- var index$q = require('./chart/index.cjs');
17
- var index$r = require('./calendar/index.cjs');
18
- var index$s = require('./wizard-panel/index.cjs');
19
- var mdCtrl_provider = require('./md-ctrl/md-ctrl.provider.cjs');
16
+ var index$r = require('./chart/index.cjs');
17
+ var index$s = require('./calendar/index.cjs');
18
+ var index$t = require('./wizard-panel/index.cjs');
19
+ var mdCtrl_provider = require('./list/md-ctrl/md-ctrl.provider.cjs');
20
20
  var appMenu_provider = require('./app-menu/app-menu.provider.cjs');
21
21
  var searchForm_provider = require('./form/search-form/search-form.provider.cjs');
22
22
  var index$2 = require('./form/search-form/index.cjs');
@@ -43,7 +43,7 @@ var index$c = require('./form/edit-form/index.cjs');
43
43
  var index$d = require('./form/form/index.cjs');
44
44
  var pickupViewPanel_provider = require('./pickup-view-panel/pickup-view-panel.provider.cjs');
45
45
  var pickupViewPanel_controller = require('./pickup-view-panel/pickup-view-panel.controller.cjs');
46
- var list_provider = require('./list/list.provider.cjs');
46
+ var list_provider = require('./list/list/list.provider.cjs');
47
47
  var tabExpPanel_provider = require('./tab-exp-panel/tab-exp-panel.provider.cjs');
48
48
  var captionBar_provider = require('./caption-bar/caption-bar.provider.cjs');
49
49
  var searchBar_provider = require('./search-bar/search-bar.provider.cjs');
@@ -60,6 +60,8 @@ var portletLayout = require('./dashboard/portlet/portlet-layout/portlet-layout.c
60
60
  var menuPortlet_provider = require('./dashboard/portlet/menu-portlet/menu-portlet.provider.cjs');
61
61
  var menuPortlet = require('./dashboard/portlet/menu-portlet/menu-portlet.cjs');
62
62
  var index$p = require('./dashboard/portlet/menu-portlet/index.cjs');
63
+ var viewPortlet = require('./dashboard/portlet/view-portlet/view-portlet.cjs');
64
+ var index$q = require('./dashboard/portlet/view-portlet/index.cjs');
63
65
  var calendar_provider = require('./calendar/calendar.provider.cjs');
64
66
 
65
67
  "use strict";
@@ -76,9 +78,9 @@ exports.IBizDRTabControl = index$k.IBizDRTabControl;
76
78
  exports.IBizTreeControl = index$l.IBizTreeControl;
77
79
  exports.IBizDataViewControl = index$m.IBizDataViewControl;
78
80
  exports.IBizDashboardControl = index$n.IBizDashboardControl;
79
- exports.IBizChartControl = index$q.IBizChartControl;
80
- exports.IBizCalendarControl = index$r.IBizCalendarControl;
81
- exports.IBizWizardPanelControl = index$s.IBizWizardPanelControl;
81
+ exports.IBizChartControl = index$r.IBizChartControl;
82
+ exports.IBizCalendarControl = index$s.IBizCalendarControl;
83
+ exports.IBizWizardPanelControl = index$t.IBizWizardPanelControl;
82
84
  exports.MDCtrlProvider = mdCtrl_provider.MDCtrlProvider;
83
85
  exports.AppMenuProvider = appMenu_provider.AppMenuProvider;
84
86
  exports.SearchFormProvider = searchForm_provider.SearchFormProvider;
@@ -123,4 +125,6 @@ exports.PortletLayout = portletLayout.PortletLayout;
123
125
  exports.MenuPortletProvider = menuPortlet_provider.MenuPortletProvider;
124
126
  exports.MenuPortlet = menuPortlet.MenuPortlet;
125
127
  exports.IBizMenuPortlet = index$p.IBizMenuPortlet;
128
+ exports.ViewPortlet = viewPortlet.ViewPortlet;
129
+ exports.IBizViewPortlet = index$q.IBizViewPortlet;
126
130
  exports.CalendarProvider = calendar_provider.CalendarProvider;
@@ -4,8 +4,12 @@ var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  require('./list.css');
6
6
  var runtime = require('@ibiz-template/runtime');
7
+ var listRenderUtil = require('../list-render-util.cjs');
7
8
 
8
9
  "use strict";
10
+ function _isSlot(s) {
11
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
12
+ }
9
13
  const ListControl = /* @__PURE__ */ vue.defineComponent({
10
14
  name: "IBizListControl",
11
15
  props: {
@@ -53,21 +57,29 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
53
57
  columnsCount: {
54
58
  type: Number,
55
59
  default: 5
60
+ },
61
+ loadDefault: {
62
+ type: Boolean,
63
+ default: true
64
+ },
65
+ mode: {
66
+ type: String,
67
+ default: "LIST"
56
68
  }
57
69
  },
58
70
  setup(props) {
59
71
  const c = vue3Util.useControlController((...args) => new runtime.ListController(...args));
60
72
  const ns = vue3Util.useNamespace(`control-${c.model.controlType.toLowerCase()}`);
73
+ const ns2 = vue3Util.useNamespace(`control-mobmdctrl`);
74
+ const {
75
+ renderItem,
76
+ renderNoData,
77
+ renderLoadMore
78
+ } = listRenderUtil.useListRender(props, c, ns2);
61
79
  const showPicker = vue.ref(false);
62
80
  const openReviewList = () => {
63
81
  showPicker.value = true;
64
82
  };
65
- const renderNoData = () => {
66
- return vue.createVNode(vue.resolveComponent("iBizNoData"), {
67
- "text": c.model.emptyText,
68
- "emptyTextLanguageRes": c.model.emptyTextLanguageRes
69
- }, null);
70
- };
71
83
  const renderDefaultItem = (item) => {
72
84
  const findIndex = c.state.selectedData.findIndex((data) => {
73
85
  return data.srfkey === item.srfkey;
@@ -143,12 +155,6 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
143
155
  return renderReViewDefaultItem(item);
144
156
  });
145
157
  };
146
- const renderLoadMore = () => {
147
- return c.state.total > c.state.items.length ? vue.createVNode("div", {
148
- "onClick": () => c.loadMore(),
149
- "class": ns.e("load-more")
150
- }, [vue.createTextVNode("\u52A0\u8F7D\u66F4\u591A")]) : null;
151
- };
152
158
  const renderReviewList = () => {
153
159
  return vue.createVNode(vue.resolveComponent("van-popup"), {
154
160
  "round": true,
@@ -166,20 +172,33 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
166
172
  }, [renderReViewListContent()])])]
167
173
  });
168
174
  };
175
+ const renderDefaultList = () => {
176
+ let _slot;
177
+ return vue.createVNode(vue.resolveComponent("van-list"), {
178
+ "finished": c.state.total <= c.state.items.length
179
+ }, _isSlot(_slot = c.state.items.map((item) => {
180
+ return renderItem(item);
181
+ })) ? _slot : {
182
+ default: () => [_slot]
183
+ });
184
+ };
185
+ const renderSelectList = () => {
186
+ return [renderListContent(), renderReviewList(), renderLoadMore()];
187
+ };
169
188
  return {
170
189
  c,
171
190
  ns,
172
- renderListContent,
173
- renderLoadMore,
174
- renderReviewList
191
+ ns2,
192
+ renderSelectList,
193
+ renderDefaultList
175
194
  };
176
195
  },
177
196
  render() {
178
197
  return vue.createVNode(vue.resolveComponent("iBizControlBase"), {
179
198
  "controller": this.c,
180
- "class": this.ns.b(this.c.model.name)
199
+ "class": (this.ns.b(this.c.model.name), this.ns2.b())
181
200
  }, {
182
- default: () => [this.c.state.isCreated && [this.renderListContent(), this.renderReviewList(), this.renderLoadMore()]]
201
+ default: () => [this.c.state.isCreated && this.mode === "LIST" ? this.renderDefaultList() : this.renderSelectList()]
183
202
  });
184
203
  }
185
204
  });
@@ -0,0 +1 @@
1
+ .ibiz-control-list-item{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-list-active-bg-color:var(--ibiz-color-primary);--ibiz-control-list-padding:0.625rem;cursor:pointer}.ibiz-control-list-item:hover{background-color:var(--ibiz-control-list-hover-bg-color)}.ibiz-control-list-item.is-active{background-color:var(--ibiz-control-list-active-bg-color)}.ibiz-control-list{height:100%;overflow:scroll}.ibiz-control-list__load-more{text-align:center;cursor:pointer}.ibiz-control-list__tag{display:flex;justify-content:space-between;width:100%;height:100%}.ibiz-control-list__item-icon{color:var(--ibiz-color-danger)}.ibiz-control-list__item-text{padding-right:var(--ibiz-spacing-tight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-control-list-simplelist{display:flex;flex-wrap:wrap}.ibiz-control-list-simplelist .van-tag__close{position:absolute;right:.3125rem;margin-left:.125rem}.ibiz-control-list-simplelist .ibiz-control-list-item{min-width:0;padding:.3125rem}.ibiz-control-list-item__delete{display:inline-block;margin-left:.3125rem}.ibiz-control-list-simplelist .ibiz-control-list-item:hover{background-color:transparent}.ibiz-control-list-simplelist .ibiz-control-list-item.is-active{background-color:transparent}.ibiz-control-list-popup-header{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-list-active-bg-color:var(--ibiz-color-primary);--ibiz-control-list-padding:0.625rem;padding:var(--ibiz-control-list-padding);text-align:center}.ibiz-control-list-popup{height:50vh}.ibiz-control-list-item-expand{flex-grow:1;min-width:0;min-height:0;color:var(--ibiz-color-primary);text-align:center}.ibiz-control-list-popup-container{display:flex;flex-flow:column nowrap;height:100%}.ibiz-control-list-popup-content{flex-grow:1;min-width:0;min-height:0;overflow-y:scroll}
@@ -0,0 +1,102 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+
5
+ "use strict";
6
+ function _isSlot(s) {
7
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
8
+ }
9
+ function useListRender(props, c, ns) {
10
+ const isSelect = (row) => {
11
+ const findIndex = c.state.selectedData.findIndex((data) => {
12
+ return data.srfkey === row.srfkey;
13
+ });
14
+ return findIndex !== -1;
15
+ };
16
+ const calcItemClass = (row) => {
17
+ const select = isSelect(row);
18
+ const itemClass = [ns.b("item"), ns.is("active", select)];
19
+ return itemClass;
20
+ };
21
+ const renderRightSlot = (row) => {
22
+ const select = isSelect(row);
23
+ return vue.createVNode(vue.resolveComponent("van-radio"), {
24
+ "class": ns.bm("item", "right"),
25
+ "checked": select
26
+ }, null);
27
+ };
28
+ const renderIcon = (row) => {
29
+ return vue.createVNode("img", {
30
+ "class": ns.b("image"),
31
+ "src": row.image,
32
+ "alt": ""
33
+ }, null);
34
+ };
35
+ const renderItemContent = (row) => {
36
+ const itemClass = calcItemClass(row);
37
+ const slotOption = {};
38
+ if (Object.prototype.hasOwnProperty.call(row, "image")) {
39
+ Object.assign(slotOption, {
40
+ icon: renderIcon(row)
41
+ });
42
+ }
43
+ if (props.mode === "SELECT") {
44
+ Object.assign(slotOption, {
45
+ "right-icon": renderRightSlot(row)
46
+ });
47
+ }
48
+ return vue.createVNode(vue.resolveComponent("van-cell"), {
49
+ "class": itemClass,
50
+ "is-link": true,
51
+ "title": row.srfmajortext || "",
52
+ "onClick": () => c.onRowClick(row)
53
+ }, _isSlot(slotOption) ? slotOption : {
54
+ default: () => [slotOption]
55
+ });
56
+ };
57
+ const renderPanelItem = (item, modelData) => {
58
+ const {
59
+ context,
60
+ params
61
+ } = c;
62
+ return vue.createVNode(vue.resolveComponent("iBizControlShell"), {
63
+ "data": item,
64
+ "modelData": modelData,
65
+ "context": context,
66
+ "params": params,
67
+ "onClick": () => c.onRowClick(item)
68
+ }, null);
69
+ };
70
+ const renderItem = (row) => {
71
+ const panel = c.model.itemLayoutPanel;
72
+ return panel ? renderPanelItem(row, panel) : renderItemContent(row);
73
+ };
74
+ const renderNoData = () => {
75
+ const {
76
+ isLoaded
77
+ } = c.state;
78
+ if (!isLoaded) {
79
+ return;
80
+ }
81
+ return isLoaded && vue.createVNode(vue.resolveComponent("iBizNoData"), {
82
+ "text": c.model.emptyText,
83
+ "emptyTextLanguageRes": c.model.emptyTextLanguageRes
84
+ }, null);
85
+ };
86
+ const renderLoadMore = () => {
87
+ if (props.loadMode === "auto" || c.state.total <= c.state.items.length) {
88
+ return;
89
+ }
90
+ return vue.createVNode("div", {
91
+ "class": ns.b("load-more"),
92
+ "onClick": () => c.loadMore()
93
+ }, [vue.createVNode("span", null, [vue.createTextVNode("\u52A0\u8F7D\u66F4\u591A")])]);
94
+ };
95
+ return {
96
+ renderNoData,
97
+ renderItem,
98
+ renderLoadMore
99
+ };
100
+ }
101
+
102
+ exports.useListRender = useListRender;
@@ -4,11 +4,9 @@ var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  var runtime = require('@ibiz-template/runtime');
6
6
  require('./md-ctrl.css');
7
+ var listRenderUtil = require('../list-render-util.cjs');
7
8
 
8
9
  "use strict";
9
- function _isSlot(s) {
10
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
11
- }
12
10
  const MDCtrlControl = /* @__PURE__ */ vue.defineComponent({
13
11
  name: "IBizMDCtrlControl",
14
12
  props: {
@@ -58,84 +56,22 @@ const MDCtrlControl = /* @__PURE__ */ vue.defineComponent({
58
56
  loadMode: {
59
57
  type: String,
60
58
  default: "auto"
59
+ },
60
+ loadDefault: {
61
+ type: Boolean,
62
+ default: true
61
63
  }
62
64
  },
63
65
  setup(props) {
64
66
  const c = vue3Util.useControlController((...args) => new runtime.MDCtrlController(...args));
65
67
  const ns = vue3Util.useNamespace(`control-${c.model.controlType.toLowerCase()}`);
68
+ const {
69
+ renderItem,
70
+ renderNoData,
71
+ renderLoadMore
72
+ } = listRenderUtil.useListRender(props, c, ns);
66
73
  const leftSlidingActionGroup = c.model.deuiactionGroup;
67
74
  const rightSlidingActionGroup = c.model.deuiactionGroup2;
68
- const renderPanelItem = (item, modelData) => {
69
- const {
70
- context,
71
- params
72
- } = c;
73
- return vue.createVNode(vue.resolveComponent("iBizControlShell"), {
74
- "data": item,
75
- "modelData": modelData,
76
- "context": context,
77
- "params": params,
78
- "onClick": () => c.onRowClick(item)
79
- }, null);
80
- };
81
- const isSelect = (row) => {
82
- const findIndex = c.state.selectedData.findIndex((data) => {
83
- return data.srfkey === row.data.srfkey;
84
- });
85
- return findIndex !== -1;
86
- };
87
- const calcItemClass = (row) => {
88
- const select = isSelect(row);
89
- const itemClass = [ns.b("item"), ns.is("active", select)];
90
- return itemClass;
91
- };
92
- const renderIcon = (row) => {
93
- return vue.createVNode("img", {
94
- "class": ns.b("image"),
95
- "src": row.data.image,
96
- "alt": ""
97
- }, null);
98
- };
99
- const renderRightSlot = (row) => {
100
- const select = isSelect(row);
101
- return vue.createVNode(vue.resolveComponent("van-radio"), {
102
- "checked": select
103
- }, null);
104
- };
105
- const renderItemContent = (row) => {
106
- const itemClass = calcItemClass(row);
107
- const slotOption = {};
108
- if (Object.prototype.hasOwnProperty.call(row.data, "image")) {
109
- Object.assign(slotOption, {
110
- icon: renderIcon(row)
111
- });
112
- }
113
- if (props.mode === "SELECT") {
114
- Object.assign(slotOption, {
115
- "right-icon": renderRightSlot(row)
116
- });
117
- }
118
- return vue.createVNode(vue.resolveComponent("van-cell"), {
119
- "class": itemClass,
120
- "is-link": true,
121
- "title": row.data.srfmajortext || "",
122
- "onClick": () => c.onRowClick(row.data)
123
- }, _isSlot(slotOption) ? slotOption : {
124
- default: () => [slotOption]
125
- });
126
- };
127
- const renderNoData = () => {
128
- const {
129
- isLoaded
130
- } = c.state;
131
- if (!isLoaded) {
132
- return;
133
- }
134
- return isLoaded && vue.createVNode(vue.resolveComponent("iBizNoData"), {
135
- "text": c.model.emptyText,
136
- "emptyTextLanguageRes": c.model.emptyTextLanguageRes
137
- }, null);
138
- };
139
75
  const renderSlidingActionGroup = (group, row) => {
140
76
  const groupDetails = group.uiactionGroupDetails || [];
141
77
  if (!groupDetails || groupDetails.length === 0) {
@@ -157,7 +93,6 @@ const MDCtrlControl = /* @__PURE__ */ vue.defineComponent({
157
93
  });
158
94
  };
159
95
  const renderDefaultItem = (row) => {
160
- const panel = props.modelData.itemLayoutPanel;
161
96
  const isItemSliding = !!(leftSlidingActionGroup || rightSlidingActionGroup);
162
97
  if (isItemSliding) {
163
98
  return vue.createVNode(vue.resolveComponent("van-swipe-cell"), {
@@ -166,11 +101,11 @@ const MDCtrlControl = /* @__PURE__ */ vue.defineComponent({
166
101
  left: rightSlidingActionGroup ? () => renderSlidingActionGroup(rightSlidingActionGroup, row) : null,
167
102
  right: leftSlidingActionGroup ? () => renderSlidingActionGroup(leftSlidingActionGroup, row) : null,
168
103
  default: () => {
169
- return panel ? renderPanelItem(row.data, panel) : renderItemContent(row);
104
+ return renderItem(row.data);
170
105
  }
171
106
  });
172
107
  }
173
- return panel ? renderPanelItem(row.data, panel) : renderItemContent(row);
108
+ return renderItem(row.data);
174
109
  };
175
110
  const renderDefault = () => {
176
111
  return c.state.rows.map((item) => {
@@ -188,15 +123,6 @@ const MDCtrlControl = /* @__PURE__ */ vue.defineComponent({
188
123
  })]);
189
124
  });
190
125
  };
191
- const renderLoadMore = () => {
192
- if (props.loadMode === "auto" || c.state.total <= c.state.rows.length) {
193
- return;
194
- }
195
- return vue.createVNode("div", {
196
- "class": ns.b("load-more"),
197
- "onClick": () => c.loadMore()
198
- }, [vue.createVNode("span", null, [vue.createTextVNode("\u52A0\u8F7D\u66F4\u591A")])]);
199
- };
200
126
  const renderMDContent = () => {
201
127
  return vue.createVNode(vue.resolveComponent("van-list"), {
202
128
  "finished": c.state.total <= c.state.rows.length,
@@ -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)}
@@ -64,6 +64,7 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
64
64
  if (index !== -1) {
65
65
  return items.value[index].text;
66
66
  }
67
+ return "";
67
68
  });
68
69
  const editorRef = vue.ref();
69
70
  if (props.autoFocus) {
package/lib/index.cjs CHANGED
@@ -11,13 +11,13 @@ var index$3 = require('./panel-component/index.cjs');
11
11
  var index$5 = require('./view-engine/index.cjs');
12
12
  require('./util/index.cjs');
13
13
  require('./view/index.cjs');
14
- var index$6 = require('./control/md-ctrl/index.cjs');
14
+ var index$6 = require('./control/list/md-ctrl/index.cjs');
15
15
  var index$7 = require('./control/app-menu/index.cjs');
16
16
  var index$8 = require('./control/form/form/index.cjs');
17
17
  var index$9 = require('./control/form/search-form/index.cjs');
18
18
  var index$a = require('./control/form/edit-form/index.cjs');
19
19
  var index$b = require('./control/pickup-view-panel/index.cjs');
20
- var index$c = require('./control/list/index.cjs');
20
+ var index$c = require('./control/list/list/index.cjs');
21
21
  var index$d = require('./control/tab-exp-panel/index.cjs');
22
22
  var index$e = require('./control/toolbar/index.cjs');
23
23
  var index$f = require('./control/caption-bar/index.cjs');
@@ -39,6 +39,7 @@ var notificationUtil = require('./util/notification-util/notification-util.cjs')
39
39
  var openViewUtil = require('./util/open-view-util/open-view-util.cjs');
40
40
  var overlayController = require('./util/overlay-controller/overlay-controller.cjs');
41
41
  var loading = require('./util/directive/loading.cjs');
42
+ var confirmUtil = require('./util/confirm-util/confirm-util.cjs');
42
43
  var viewStack = require('./util/store/view-stack/view-stack.cjs');
43
44
  var _404View = require('./view/404-view/404-view.cjs');
44
45
  var loginView = require('./view/login-view/login-view.cjs');
@@ -99,6 +100,7 @@ exports.NotificationUtil = notificationUtil.NotificationUtil;
99
100
  exports.OpenViewUtil = openViewUtil.OpenViewUtil;
100
101
  exports.OverlayController = overlayController.OverlayController;
101
102
  exports.loadingDirective = loading.loadingDirective;
103
+ exports.ConfirmUtil = confirmUtil.ConfirmUtil;
102
104
  exports.calcUniqueKey = viewStack.calcUniqueKey;
103
105
  exports.useViewStack = viewStack.useViewStack;
104
106
  exports.View404 = _404View.View404;
@@ -30,7 +30,9 @@ const IBizPanelComponents = {
30
30
  v.use(index$6.IBizWFActionButton);
31
31
  v.use(vue3Util.IBizSingleDataContainer);
32
32
  v.use(vue3Util.IBizMultiDataContainer);
33
+ v.use(vue3Util.IBizPanelTabPage);
33
34
  v.use(index$7.IBizPanelTabPanel);
35
+ v.use(vue3Util.IBizPanelContainerGroup);
34
36
  v.use(vue3Util.IBizPanelContainerImage);
35
37
  v.use(vue3Util.IBizScrollContainer);
36
38
  }