@ibiz-template/vue3-components 0.3.4 → 0.3.6-dev.0

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 (174) hide show
  1. package/dist/index-IQggCeg0.js +14 -0
  2. package/dist/index-IQggCeg0.js.map +1 -0
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{xlsx-util-SHuu4UVN.js → xlsx-util--ODZUMX_.js} +2 -2
  6. package/dist/{xlsx-util-SHuu4UVN.js.map → xlsx-util--ODZUMX_.js.map} +1 -1
  7. package/es/control/form/edit-form/edit-form.mjs +18 -3
  8. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.css +1 -0
  9. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.d.ts +7 -6
  10. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +51 -53
  11. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.css +1 -0
  12. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.d.ts +19 -0
  13. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.mjs +72 -0
  14. package/es/control/form/form-detail/form-mdctrl/{form-mdctrl-data-view/form-mdctrl-data-view.d.ts → form-mdctrl-repeater/form-mdctrl-repeater.d.ts} +5 -7
  15. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.mjs +57 -0
  16. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.css +1 -0
  17. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +2 -0
  18. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +203 -0
  19. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.d.ts +19 -0
  20. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.mjs +59 -0
  21. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.css +1 -0
  22. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.d.ts +29 -0
  23. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.mjs +54 -0
  24. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -0
  25. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.d.ts +4 -2
  26. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +40 -54
  27. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.provider.mjs +21 -2
  28. package/es/control/form/form-detail/form-mdctrl/index.d.ts +2 -3
  29. package/es/control/form/form-detail/form-mdctrl/index.mjs +6 -14
  30. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -0
  31. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.d.ts +40 -0
  32. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +99 -0
  33. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +1 -1
  34. package/es/control/index.d.ts +1 -1
  35. package/es/control/index.mjs +1 -3
  36. package/es/control/report-panel/index.d.ts +2 -0
  37. package/es/control/report-panel/index.mjs +23 -0
  38. package/es/control/report-panel/report-detail/index.d.ts +2 -0
  39. package/es/control/report-panel/report-detail/index.mjs +4 -0
  40. package/es/control/report-panel/report-detail/user-report-panel/index.d.ts +14 -0
  41. package/es/control/report-panel/report-detail/user-report-panel/index.mjs +12 -0
  42. package/es/control/report-panel/report-detail/user-report-panel/user-report-panel.css +1 -0
  43. package/es/control/report-panel/report-detail/user-report-panel/user-report-panel.d.ts +16 -0
  44. package/es/control/report-panel/report-detail/user-report-panel/user-report-panel.mjs +45 -0
  45. package/es/control/report-panel/report-detail/user2-report-panel/index.d.ts +15 -0
  46. package/es/control/report-panel/report-detail/user2-report-panel/index.mjs +12 -0
  47. package/es/control/report-panel/report-detail/user2-report-panel/user2-report-panel.css +1 -0
  48. package/es/control/report-panel/report-detail/user2-report-panel/user2-report-panel.d.ts +17 -0
  49. package/es/control/report-panel/report-detail/user2-report-panel/user2-report-panel.mjs +67 -0
  50. package/es/control/report-panel/report-panel.css +1 -0
  51. package/es/control/{panel/panel/panel.d.ts → report-panel/report-panel.d.ts} +12 -22
  52. package/es/control/report-panel/report-panel.mjs +72 -0
  53. package/es/control/report-panel/report-panel.provider.d.ts +11 -0
  54. package/es/control/{panel/panel/panel.provider.mjs → report-panel/report-panel.provider.mjs} +3 -3
  55. package/es/control/tree-grid/tree-grid.mjs +1 -1
  56. package/es/editor/text-box/input/input.d.ts +1 -0
  57. package/es/editor/text-box/input/input.mjs +6 -2
  58. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +1 -0
  59. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +7 -2
  60. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -1
  61. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -0
  62. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +6 -1
  63. package/es/index.mjs +4 -4
  64. package/es/panel-component/searchform-buttons/index.d.ts +1 -0
  65. package/es/panel-component/searchform-buttons/searchform-buttons.controller.d.ts +9 -1
  66. package/es/panel-component/searchform-buttons/searchform-buttons.controller.mjs +11 -0
  67. package/es/panel-component/searchform-buttons/searchform-buttons.css +1 -1
  68. package/es/panel-component/searchform-buttons/searchform-buttons.d.ts +1 -0
  69. package/es/panel-component/searchform-buttons/searchform-buttons.mjs +35 -1
  70. package/es/view/login-view/login-view.mjs +1 -18
  71. package/es/view-engine/edit-view.engine.d.ts +9 -0
  72. package/es/view-engine/edit-view.engine.mjs +28 -0
  73. package/es/view-engine/index.mjs +5 -0
  74. package/es/view-engine/login-view.engine.mjs +6 -35
  75. package/es/view-engine/report-view.engine.d.ts +96 -0
  76. package/es/view-engine/report-view.engine.mjs +178 -0
  77. package/es/view-engine/wf-dyna-action-view.engine.mjs +2 -0
  78. package/lib/control/form/edit-form/edit-form.cjs +17 -2
  79. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +48 -53
  80. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.css +1 -0
  81. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.cjs +74 -0
  82. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.css +1 -0
  83. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.cjs +59 -0
  84. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +205 -0
  85. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.css +1 -0
  86. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.cjs +61 -0
  87. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.cjs +56 -0
  88. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.css +1 -0
  89. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +38 -52
  90. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -0
  91. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.provider.cjs +20 -1
  92. package/lib/control/form/form-detail/form-mdctrl/index.cjs +6 -14
  93. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +101 -0
  94. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -0
  95. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +1 -1
  96. package/lib/control/index.cjs +64 -67
  97. package/lib/control/report-panel/index.cjs +28 -0
  98. package/lib/control/report-panel/report-detail/index.cjs +9 -0
  99. package/lib/control/report-panel/report-detail/user-report-panel/index.cjs +17 -0
  100. package/lib/control/report-panel/report-detail/user-report-panel/user-report-panel.cjs +47 -0
  101. package/lib/control/report-panel/report-detail/user-report-panel/user-report-panel.css +1 -0
  102. package/lib/control/report-panel/report-detail/user2-report-panel/index.cjs +17 -0
  103. package/lib/control/report-panel/report-detail/user2-report-panel/user2-report-panel.cjs +69 -0
  104. package/lib/control/report-panel/report-detail/user2-report-panel/user2-report-panel.css +1 -0
  105. package/lib/control/report-panel/report-panel.cjs +74 -0
  106. package/lib/control/report-panel/report-panel.css +1 -0
  107. package/lib/control/{panel/panel/panel.provider.cjs → report-panel/report-panel.provider.cjs} +3 -3
  108. package/lib/control/tree-grid/tree-grid.cjs +1 -1
  109. package/lib/editor/text-box/input/input.cjs +6 -2
  110. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +6 -1
  111. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +5 -0
  112. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -1
  113. package/lib/index.cjs +120 -121
  114. package/lib/panel-component/searchform-buttons/searchform-buttons.cjs +35 -1
  115. package/lib/panel-component/searchform-buttons/searchform-buttons.controller.cjs +11 -0
  116. package/lib/panel-component/searchform-buttons/searchform-buttons.css +1 -1
  117. package/lib/view/login-view/login-view.cjs +1 -18
  118. package/lib/view-engine/edit-view.engine.cjs +28 -0
  119. package/lib/view-engine/index.cjs +5 -0
  120. package/lib/view-engine/login-view.engine.cjs +6 -35
  121. package/lib/view-engine/report-view.engine.cjs +180 -0
  122. package/lib/view-engine/wf-dyna-action-view.engine.cjs +2 -0
  123. package/package.json +7 -7
  124. package/dist/index-OcHgH3lj.js +0 -14
  125. package/dist/index-OcHgH3lj.js.map +0 -1
  126. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.css +0 -1
  127. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.d.ts +0 -36
  128. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.mjs +0 -67
  129. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.mjs +0 -68
  130. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-grid/form-mdctrl-grid.d.ts +0 -17
  131. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-grid/form-mdctrl-grid.mjs +0 -70
  132. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.d.ts +0 -17
  133. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.mjs +0 -68
  134. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.d.ts +0 -72
  135. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.mjs +0 -158
  136. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.d.ts +0 -17
  137. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.mjs +0 -58
  138. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.d.ts +0 -17
  139. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.mjs +0 -55
  140. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-grid/form-mdctrl-repeater-grid.css +0 -1
  141. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-grid/form-mdctrl-repeater-grid.d.ts +0 -19
  142. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-grid/form-mdctrl-repeater-grid.mjs +0 -113
  143. package/es/control/panel/index.d.ts +0 -2
  144. package/es/control/panel/index.mjs +0 -4
  145. package/es/control/panel/panel/index.d.ts +0 -56
  146. package/es/control/panel/panel/index.mjs +0 -12
  147. package/es/control/panel/panel/panel.css +0 -1
  148. package/es/control/panel/panel/panel.mjs +0 -133
  149. package/es/control/panel/panel/panel.provider.d.ts +0 -13
  150. package/es/control/panel/view-layout-panel/index.d.ts +0 -57
  151. package/es/control/panel/view-layout-panel/index.mjs +0 -18
  152. package/es/control/panel/view-layout-panel/view-layout-panel.css +0 -1
  153. package/es/control/panel/view-layout-panel/view-layout-panel.d.ts +0 -61
  154. package/es/control/panel/view-layout-panel/view-layout-panel.mjs +0 -135
  155. package/es/control/panel/view-layout-panel/view-layout-panel.provider.d.ts +0 -13
  156. package/es/control/panel/view-layout-panel/view-layout-panel.provider.mjs +0 -14
  157. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.cjs +0 -72
  158. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.css +0 -1
  159. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.cjs +0 -73
  160. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-grid/form-mdctrl-grid.cjs +0 -75
  161. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.cjs +0 -73
  162. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.cjs +0 -160
  163. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.cjs +0 -63
  164. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.cjs +0 -60
  165. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-grid/form-mdctrl-repeater-grid.cjs +0 -118
  166. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-grid/form-mdctrl-repeater-grid.css +0 -1
  167. package/lib/control/panel/index.cjs +0 -9
  168. package/lib/control/panel/panel/index.cjs +0 -17
  169. package/lib/control/panel/panel/panel.cjs +0 -135
  170. package/lib/control/panel/panel/panel.css +0 -1
  171. package/lib/control/panel/view-layout-panel/index.cjs +0 -23
  172. package/lib/control/panel/view-layout-panel/view-layout-panel.cjs +0 -137
  173. package/lib/control/panel/view-layout-panel/view-layout-panel.css +0 -1
  174. package/lib/control/panel/view-layout-panel/view-layout-panel.provider.cjs +0 -16
@@ -115,6 +115,9 @@ class EditViewEngine extends ViewEngineBase {
115
115
  if (key === ViewCallTag.VALIDATE) {
116
116
  return this.form.validate();
117
117
  }
118
+ if (key === ViewCallTag.WF_WITHDRAW) {
119
+ await this.wfWithdraw();
120
+ }
118
121
  return super.call(key, args);
119
122
  }
120
123
  /**
@@ -182,6 +185,31 @@ class EditViewEngine extends ViewEngineBase {
182
185
  wfSubmit() {
183
186
  return this.form.wfSubmit();
184
187
  }
188
+ /**
189
+ * 工作流撤回
190
+ *
191
+ * @author zk
192
+ * @date 2023-11-22 11:11:55
193
+ * @return {*} {Promise<void>}
194
+ * @memberof MobEditViewEngine
195
+ */
196
+ async wfWithdraw() {
197
+ const app = ibiz.hub.getApp(this.view.context.srfappid);
198
+ const data = this.form.state.data;
199
+ const entityService = await app.deService.getService(
200
+ this.view.model.appDataEntityId
201
+ );
202
+ await entityService.wf.exec(
203
+ "withdraw",
204
+ this.view.context,
205
+ {
206
+ ...this.view.params,
207
+ taskId: this.view.params.taskId || this.view.params.srftaskid
208
+ },
209
+ data instanceof ControlVO ? data.getOrigin() : data
210
+ );
211
+ ibiz.mc.command.send({ srfdecodename: "SysTodo" }, "OBJECTUPDATED");
212
+ }
185
213
  }
186
214
 
187
215
  export { EditViewEngine };
@@ -38,6 +38,7 @@ import { TreeGridViewEngine } from './tree-grid-view.engine.mjs';
38
38
  import { MEditView9Engine } from './medit-view9.engine.mjs';
39
39
  import { ChartExpViewEngine } from './chart-exp-view.engine.mjs';
40
40
  import { MapViewEngine } from './map-view.engine.mjs';
41
+ import { ReportViewEngine } from './report-view.engine.mjs';
41
42
 
42
43
  "use strict";
43
44
  const IBizViewEngine = {
@@ -254,6 +255,10 @@ const IBizViewEngine = {
254
255
  "VIEW_DEMAPVIEW",
255
256
  (c) => new MapViewEngine(c)
256
257
  );
258
+ ibiz.engine.register(
259
+ "VIEW_DEREPORTVIEW",
260
+ (c) => new ReportViewEngine(c)
261
+ );
257
262
  }
258
263
  };
259
264
 
@@ -17,7 +17,6 @@ class LoginViewEngine extends ViewEngineBase {
17
17
  const args = {
18
18
  data: [
19
19
  {
20
- isRemember: this.AppLoginView.layoutPanel.data.isRemember,
21
20
  username: this.AppLoginView.layoutPanel.data.username,
22
21
  password: this.AppLoginView.layoutPanel.data.password
23
22
  }
@@ -32,19 +31,6 @@ class LoginViewEngine extends ViewEngineBase {
32
31
  }
33
32
  async onMounted() {
34
33
  super.onMounted();
35
- if (this.AppLoginView.layoutPanel) {
36
- if (localStorage.getItem("username")) {
37
- this.AppLoginView.layoutPanel.data.username = localStorage.getItem("username");
38
- }
39
- if (localStorage.getItem("password")) {
40
- this.AppLoginView.layoutPanel.data.password = localStorage.getItem("password");
41
- }
42
- if (localStorage.getItem("remember")) {
43
- this.AppLoginView.layoutPanel.data.isRemember = JSON.parse(
44
- localStorage.getItem("remember")
45
- );
46
- }
47
- }
48
34
  document.addEventListener("keydown", this.enterKeyListener);
49
35
  }
50
36
  async onDestroyed() {
@@ -61,31 +47,16 @@ class LoginViewEngine extends ViewEngineBase {
61
47
  return super.call(key, args);
62
48
  }
63
49
  async login(args) {
50
+ let rememberme;
51
+ if (this.AppLoginView.layoutPanel && typeof this.AppLoginView.layoutPanel.data.isRemember === "boolean") {
52
+ rememberme = this.AppLoginView.layoutPanel.data.isRemember;
53
+ }
64
54
  const bol = await ibiz.auth.login(
65
55
  args.data[0].username,
66
- args.data[0].password
56
+ args.data[0].password,
57
+ rememberme
67
58
  );
68
59
  if (bol === true) {
69
- if (this.AppLoginView.layoutPanel && typeof this.AppLoginView.layoutPanel.data.isRemember === "boolean") {
70
- const isRemember = this.AppLoginView.layoutPanel.data.isRemember;
71
- localStorage.setItem(
72
- "remember",
73
- JSON.stringify(this.AppLoginView.layoutPanel.data.isRemember)
74
- );
75
- if (isRemember) {
76
- localStorage.setItem(
77
- "username",
78
- this.AppLoginView.layoutPanel.data.username
79
- );
80
- localStorage.setItem(
81
- "password",
82
- this.AppLoginView.layoutPanel.data.password
83
- );
84
- } else {
85
- localStorage.removeItem("username");
86
- localStorage.removeItem("password");
87
- }
88
- }
89
60
  window.location.hash = this.route.query.ru || "/";
90
61
  window.location.reload();
91
62
  }
@@ -0,0 +1,96 @@
1
+ import { IReportPanelController, IReportViewEvent, IReportViewState, ISearchBarController, ISearchFormController, ViewController, ViewEngineBase } from '@ibiz-template/runtime';
2
+ import { IAppDEReportView } from '@ibiz/model-core';
3
+ export declare class ReportViewEngine extends ViewEngineBase {
4
+ /**
5
+ * 视图控制器
6
+ *
7
+ * @protected
8
+ * @type {ViewController<
9
+ * IAppDEReportView,
10
+ * IReportViewState,
11
+ * IReportViewEvent
12
+ * >}
13
+ * @memberof EditViewEngine
14
+ */
15
+ protected view: ViewController<IAppDEReportView, IReportViewState, IReportViewEvent>;
16
+ /**
17
+ * 搜索表单控制器
18
+ *
19
+ * @readonly
20
+ */
21
+ protected get searchForm(): ISearchFormController;
22
+ /**
23
+ * 搜索栏控制器
24
+ *
25
+ * @readonly
26
+ */
27
+ protected get searchBar(): ISearchBarController;
28
+ /**
29
+ * 报表部件
30
+ *
31
+ * @readonly
32
+ */
33
+ get reportpanel(): IReportPanelController;
34
+ /**
35
+ * 初始化
36
+ *
37
+ * @return {*} {Promise<void>}
38
+ * @memberof ReportViewEngine
39
+ */
40
+ onCreated(): Promise<void>;
41
+ /**
42
+ * 挂载
43
+ *
44
+ * @return {*} {Promise<void>}
45
+ * @memberof ReportViewEngine
46
+ */
47
+ onMounted(): Promise<void>;
48
+ call(key: string, args: any): Promise<IData | null | undefined>;
49
+ /**
50
+ * 获取数据
51
+ *
52
+ * @return {*} {IData[]}
53
+ * @memberof ReportViewEngine
54
+ */
55
+ getData(): IData[];
56
+ /**
57
+ * 加载数据
58
+ *
59
+ * @return {*} {Promise<IData>}
60
+ * @memberof ReportViewEngine
61
+ */
62
+ load(): Promise<IData>;
63
+ /**
64
+ * 视图重新加载
65
+ *
66
+ * @return {*} {Promise<void>}
67
+ */
68
+ protected reLoad(): Promise<void>;
69
+ /**
70
+ * 刷新
71
+ *
72
+ * @return {*} {Promise<void>}
73
+ * @memberof ReportViewEngine
74
+ */
75
+ refresh(): Promise<void>;
76
+ /**
77
+ * 获取搜索相关的查询参数
78
+ *
79
+ * @return {*} {IParams}
80
+ */
81
+ protected getSearchParams(): IParams;
82
+ /**
83
+ *计算视图头部实现是否显示
84
+ *
85
+ * @protected
86
+ * @return {*} {boolean}
87
+ * @memberof ReportViewEngine
88
+ */
89
+ protected calcViewHeaderVisible(): boolean;
90
+ /**
91
+ * 切换搜索表单的显示与否
92
+ *
93
+ * @protected
94
+ */
95
+ protected toggleFilter(): void;
96
+ }
@@ -0,0 +1,178 @@
1
+ import { ViewEngineBase, SysUIActionTag } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ class ReportViewEngine extends ViewEngineBase {
5
+ /**
6
+ * 搜索表单控制器
7
+ *
8
+ * @readonly
9
+ */
10
+ get searchForm() {
11
+ return this.view.getController("searchform");
12
+ }
13
+ /**
14
+ * 搜索栏控制器
15
+ *
16
+ * @readonly
17
+ */
18
+ get searchBar() {
19
+ return this.view.getController("searchbar");
20
+ }
21
+ /**
22
+ * 报表部件
23
+ *
24
+ * @readonly
25
+ */
26
+ get reportpanel() {
27
+ return this.view.getController("reportpanel");
28
+ }
29
+ /**
30
+ * 初始化
31
+ *
32
+ * @return {*} {Promise<void>}
33
+ * @memberof ReportViewEngine
34
+ */
35
+ async onCreated() {
36
+ await super.onCreated();
37
+ const { childNames } = this.view;
38
+ childNames.push("searchform", "searchbar", "reportpanel");
39
+ if (!this.view.slotProps.reportpanel) {
40
+ this.view.slotProps.reportpanel = {};
41
+ }
42
+ }
43
+ /**
44
+ * 挂载
45
+ *
46
+ * @return {*} {Promise<void>}
47
+ * @memberof ReportViewEngine
48
+ */
49
+ async onMounted() {
50
+ await super.onMounted();
51
+ const { model } = this.view;
52
+ this.reportpanel.evt.on("onBeforeLoad", () => {
53
+ this.reportpanel.state.searchParams = this.getSearchParams();
54
+ });
55
+ this.reportpanel.evt.on("onLoadSuccess", (event) => {
56
+ this.view.evt.emit("onDataChange", { ...event, actionType: "LOAD" });
57
+ });
58
+ const controller = this.viewLayoutPanel.panelItems.view_searchform;
59
+ if (controller) {
60
+ const formExists = !!this.searchForm;
61
+ controller.state.keepAlive = formExists;
62
+ controller.state.visible = formExists && !!model.expandSearchForm;
63
+ }
64
+ if (this.searchForm) {
65
+ this.searchForm.evt.on("onSearch", () => {
66
+ this.reLoad();
67
+ });
68
+ }
69
+ if (this.searchBar) {
70
+ this.searchBar.evt.on("onSearch", () => {
71
+ this.reLoad();
72
+ });
73
+ }
74
+ if (!this.view.state.noLoadDefault && model.loadDefault) {
75
+ this.load();
76
+ }
77
+ }
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
79
+ async call(key, args) {
80
+ if (key === SysUIActionTag.REFRESH) {
81
+ await this.refresh();
82
+ return null;
83
+ }
84
+ if (key === SysUIActionTag.SEARCH) {
85
+ await this.searchForm.search();
86
+ return null;
87
+ }
88
+ if (key === SysUIActionTag.RESET) {
89
+ await this.searchForm.reset();
90
+ return null;
91
+ }
92
+ return super.call(key, args);
93
+ }
94
+ /**
95
+ * 获取数据
96
+ *
97
+ * @return {*} {IData[]}
98
+ * @memberof ReportViewEngine
99
+ */
100
+ getData() {
101
+ return this.reportpanel.getData();
102
+ }
103
+ /**
104
+ * 加载数据
105
+ *
106
+ * @return {*} {Promise<IData>}
107
+ * @memberof ReportViewEngine
108
+ */
109
+ async load() {
110
+ return this.reportpanel.load();
111
+ }
112
+ /**
113
+ * 视图重新加载
114
+ *
115
+ * @return {*} {Promise<void>}
116
+ */
117
+ async reLoad() {
118
+ await this.reportpanel.load({ isInitialLoad: true });
119
+ }
120
+ /**
121
+ * 刷新
122
+ *
123
+ * @return {*} {Promise<void>}
124
+ * @memberof ReportViewEngine
125
+ */
126
+ async refresh() {
127
+ await this.load();
128
+ }
129
+ /**
130
+ * 获取搜索相关的查询参数
131
+ *
132
+ * @return {*} {IParams}
133
+ */
134
+ getSearchParams() {
135
+ const params = {};
136
+ if (this.searchForm) {
137
+ Object.assign(params, this.searchForm.getFilterParams());
138
+ }
139
+ if (this.searchBar) {
140
+ Object.assign(params, this.searchBar.getFilterParams());
141
+ }
142
+ return params;
143
+ }
144
+ /**
145
+ *计算视图头部实现是否显示
146
+ *
147
+ * @protected
148
+ * @return {*} {boolean}
149
+ * @memberof ReportViewEngine
150
+ */
151
+ calcViewHeaderVisible() {
152
+ let showHeader = super.calcViewHeaderVisible();
153
+ if (!this.searchBar || !this.searchBar.state.visible) {
154
+ const controller = this.viewLayoutPanel.panelItems.view_searchbar;
155
+ if (controller) {
156
+ controller.state.visible = false;
157
+ }
158
+ } else {
159
+ showHeader = true;
160
+ }
161
+ return showHeader;
162
+ }
163
+ /**
164
+ * 切换搜索表单的显示与否
165
+ *
166
+ * @protected
167
+ */
168
+ toggleFilter() {
169
+ if (this.searchForm) {
170
+ const searchformContainer = this.viewLayoutPanel.panelItems.view_searchform;
171
+ if (searchformContainer) {
172
+ searchformContainer.state.visible = !searchformContainer.state.visible;
173
+ }
174
+ }
175
+ }
176
+ }
177
+
178
+ export { ReportViewEngine };
@@ -39,6 +39,8 @@ class WFDynaActionViewEngine extends WFDynaEditViewEngine {
39
39
  async onOkButtonClick() {
40
40
  if (this.view.context.isEditable) {
41
41
  await this.save();
42
+ } else {
43
+ this.form.state.modified = false;
42
44
  }
43
45
  await this.form.wfSubmit({});
44
46
  await this.view.closeView({ ok: true, data: this.getData() });
@@ -37,9 +37,24 @@ const EditFormControl = /* @__PURE__ */ vue.defineComponent({
37
37
  }
38
38
  },
39
39
  setup(props) {
40
- const c = vue3Util.useControlController((...args) => new runtime.EditFormController(...args));
40
+ const c = vue3Util.useControlController((...args) => new runtime.EditFormController(...args), {
41
+ excludePropsKeys: ["data"]
42
+ });
41
43
  if (props.isSimple) {
42
- c.state.isLoaded = true;
44
+ c.evt.on("onMounted", () => {
45
+ c.setSimpleData(props.data || {});
46
+ });
47
+ vue.watch(() => props.data, (newVal) => {
48
+ const changeVal = newVal || {};
49
+ const find = Object.keys(c.data).find((key) => {
50
+ return changeVal[key] !== c.data[key];
51
+ });
52
+ if (find) {
53
+ c.setSimpleData(changeVal);
54
+ }
55
+ }, {
56
+ deep: true
57
+ });
43
58
  }
44
59
  const ns = vue3Util.useNamespace(`control-${c.model.controlType.toLowerCase()}`);
45
60
  c.evt.on("onCreated", () => {
@@ -1,80 +1,75 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var vue = require('vue');
6
- var vue3Util = require('@ibiz-template/vue3-util');
7
4
  var runtime = require('@ibiz-template/runtime');
8
- var formMdctrlContainer = require('../form-mdctrl-container/form-mdctrl-container.cjs');
5
+ var vue3Util = require('@ibiz-template/vue3-util');
6
+ require('./form-mdctrl-form.css');
9
7
 
10
8
  "use strict";
11
- function _isSlot(s) {
12
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
13
- }
14
9
  const FormMDCtrlForm = /* @__PURE__ */ vue.defineComponent({
15
10
  name: "IBizFormMDCtrlForm",
16
11
  props: {
17
12
  controller: {
18
- type: Object,
13
+ type: runtime.FormMDCtrlFormController,
19
14
  required: true
20
15
  }
21
16
  },
22
17
  setup(props) {
23
- const ns = vue3Util.useNamespace("form-mdctrl");
24
- vue3Util.useController(props.controller);
25
- const c = props.controller;
26
- c.state = vue.reactive(c.state);
18
+ const ns = vue3Util.useNamespace("form-mdctrl-form");
19
+ const showActions = vue.computed(() => {
20
+ return props.controller.enableCreate || props.controller.enableDelete;
21
+ });
22
+ const renderAddBtn = () => {
23
+ return vue.createVNode(vue.resolveComponent("el-button"), {
24
+ "class": [ns.be("item-actions", "create"), ns.be("item-actions", "btn")],
25
+ "onClick": () => props.controller.create()
26
+ }, {
27
+ default: () => [vue.createTextVNode("\u6DFB\u52A0")]
28
+ });
29
+ };
30
+ const onCreated = (id, event) => {
31
+ props.controller.setFormController(id, event.ctrl);
32
+ };
27
33
  return {
28
34
  ns,
29
- c
35
+ showActions,
36
+ onCreated,
37
+ renderAddBtn
30
38
  };
31
39
  },
32
40
  render() {
33
- let _slot;
34
- const c = this.c;
35
- const renderContent = () => {
36
- if (c.controlModel && c.provider) {
37
- return c.state.data.map((item, index) => {
38
- const tempContext = c.parent.form.context.clone();
39
- if (c.model.contentControl) {
40
- const codeName = runtime.calcDeCodeNameById(c.model.contentControl.appDataEntityId);
41
- tempContext[codeName] = item.srfkey;
41
+ const {
42
+ state,
43
+ formProvider,
44
+ model
45
+ } = this.controller;
46
+ return vue.createVNode(vue.resolveComponent("iBizMDCtrlContainer"), {
47
+ "class": this.ns.b(),
48
+ "items": state.items,
49
+ "enableCreate": this.controller.enableCreate,
50
+ "enableDelete": this.controller.enableDelete,
51
+ "onAddClick": () => this.controller.create(),
52
+ "onRemoveClick": (item) => this.controller.remove(item.id)
53
+ }, {
54
+ item: ({
55
+ data
56
+ }) => {
57
+ if (!formProvider) {
58
+ return vue.createVNode("div", null, [vue.createTextVNode("\u672A\u627E\u5230\u8868\u5355\u7684\u9002\u914D\u5668")]);
59
+ }
60
+ const formComponent = vue.h(vue.resolveComponent(formProvider.component), {
61
+ class: this.ns.be("item", "form"),
62
+ modelData: model.contentControl,
63
+ context: data.context,
64
+ params: data.params,
65
+ onCreated: (event) => {
66
+ this.onCreated(data.id, event);
42
67
  }
43
- const controlProps = {
44
- modelData: c.controlModel,
45
- context: tempContext,
46
- params: c.parent.form.params,
47
- onFormDataChange: (arg) => c.onFormChange(arg.data, index),
48
- onRemoveSuccess: () => c.onFormRemoveSuccess(index),
49
- onCreated: (event) => c.onControlCreated(event, index)
50
- };
51
- const controlComponent = vue.h(vue.resolveComponent(c.provider.component), controlProps);
52
- return vue.createVNode("div", {
53
- "class": this.ns.b("form-content"),
54
- "key": item.srfkey
55
- }, [controlComponent, vue.createVNode("div", {
56
- "class": this.ns.b("btn")
57
- }, [c.parent.isDelete && vue.createVNode(vue.resolveComponent("el-button"), {
58
- "type": "danger",
59
- "class": this.ns.b("remove-btn"),
60
- "onClick": () => this.c.onDataRemove(index)
61
- }, {
62
- default: () => [vue.createTextVNode("\u5220\u9664")]
63
- })])]);
64
68
  });
69
+ return formComponent;
65
70
  }
66
- };
67
- return vue.createVNode(formMdctrlContainer.FormMDCtrlContainer, {
68
- "class": this.ns.b("form"),
69
- "controller": c.parent,
70
- "onInsertButtonClick": () => {
71
- c.onDataInsert();
72
- }
73
- }, _isSlot(_slot = renderContent()) ? _slot : {
74
- default: () => [_slot]
75
71
  });
76
72
  }
77
73
  });
78
74
 
79
75
  exports.FormMDCtrlForm = FormMDCtrlForm;
80
- exports.default = FormMDCtrlForm;
@@ -0,0 +1 @@
1
+ .ibiz-form-mdctrl-form-item{display:flex}.ibiz-form-mdctrl-form-item__form{flex-grow:1}.ibiz-form-mdctrl-form-item-actions{flex-shrink:0;width:80px;text-align:center}.ibiz-form-mdctrl-form-item-actions .el-button+.el-button{margin-left:0}.ibiz-form-mdctrl-form-item-actions__btn{margin-top:var(--ibiz-spacing-tight)}.ibiz-form-mdctrl-form-no-data{width:100%;display:flex;justify-content:flex-end}
@@ -0,0 +1,74 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var runtime = require('@ibiz-template/runtime');
5
+ var vue3Util = require('@ibiz-template/vue3-util');
6
+ require('./form-mdctrl-md.css');
7
+
8
+ "use strict";
9
+ const FormMDCtrlMD = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizFormMDCtrlMD",
11
+ props: {
12
+ controller: {
13
+ type: runtime.FormMDCtrlMDController,
14
+ required: true
15
+ }
16
+ },
17
+ setup(props) {
18
+ const ns = vue3Util.useNamespace("form-mdctrl-md");
19
+ const showActions = vue.computed(() => {
20
+ return props.controller.enableCreate || props.controller.enableDelete;
21
+ });
22
+ const onCreated = (event) => {
23
+ props.controller.setMDControl(event.ctrl);
24
+ };
25
+ const isSelected = vue.ref(false);
26
+ const onSelectionChange = (event) => {
27
+ isSelected.value = event.data.length > 0;
28
+ };
29
+ return {
30
+ ns,
31
+ showActions,
32
+ isSelected,
33
+ onCreated,
34
+ onSelectionChange
35
+ };
36
+ },
37
+ render() {
38
+ const {
39
+ mdProvider,
40
+ model
41
+ } = this.controller;
42
+ const controlProps = {
43
+ class: this.ns.b("content"),
44
+ modelData: model.contentControl,
45
+ context: this.controller.form.context,
46
+ params: this.controller.form.params,
47
+ onCreated: this.onCreated,
48
+ onSelectionChange: this.onSelectionChange
49
+ };
50
+ if (model.contentType === "GRID") {
51
+ controlProps.rowEditOpen = true;
52
+ }
53
+ const controlComponent = vue.h(vue.resolveComponent(mdProvider.component), controlProps);
54
+ return vue.createVNode("div", {
55
+ "class": this.ns.b()
56
+ }, [controlComponent, this.showActions && vue.createVNode("div", {
57
+ "class": this.ns.b("actions")
58
+ }, [this.controller.enableCreate && vue.createVNode(vue.resolveComponent("el-button"), {
59
+ "class": [this.ns.be("actions", "create"), this.ns.be("actions", "btn")],
60
+ "onClick": () => this.controller.create()
61
+ }, {
62
+ default: () => [vue.createTextVNode("\u6DFB\u52A0")]
63
+ }), this.controller.enableDelete && vue.createVNode(vue.resolveComponent("el-button"), {
64
+ "type": "danger",
65
+ "disabled": !this.isSelected,
66
+ "class": [this.ns.be("actions", "remove"), this.ns.be("actions", "btn")],
67
+ "onClick": () => this.controller.remove()
68
+ }, {
69
+ default: () => [vue.createTextVNode("\u5220\u9664")]
70
+ })])]);
71
+ }
72
+ });
73
+
74
+ exports.FormMDCtrlMD = FormMDCtrlMD;
@@ -0,0 +1 @@
1
+ .ibiz-form-mdctrl-md{display:flex}.ibiz-form-mdctrl-md-content{flex-grow:1}.ibiz-form-mdctrl-md-actions{flex-shrink:0;width:80px;text-align:center}.ibiz-form-mdctrl-md-actions .el-button+.el-button{margin-left:0}.ibiz-form-mdctrl-md-actions__btn{margin-bottom:var(--ibiz-spacing-tight)}