@ibiz-template/mob-vue3-components 0.0.1-alpha.22 → 0.0.1-alpha.24

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 (78) hide show
  1. package/dist/index.min.css +1 -1
  2. package/dist/index.system.min.js +2 -2
  3. package/dist/index.system.min.js.map +1 -1
  4. package/es/control/form/edit-form/edit-form.d.ts +16 -1
  5. package/es/control/form/edit-form/edit-form.mjs +26 -8
  6. package/es/control/form/edit-form/index.d.ts +15 -0
  7. package/es/control/form/form/form.d.ts +1 -5
  8. package/es/control/form/form/form.mjs +39 -15
  9. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.css +1 -0
  10. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.d.ts +7 -6
  11. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +51 -58
  12. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.css +1 -0
  13. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.d.ts +19 -0
  14. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.mjs +79 -0
  15. 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
  16. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.mjs +50 -0
  17. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.d.ts +19 -0
  18. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.mjs +59 -0
  19. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.css +1 -0
  20. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.d.ts +29 -0
  21. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.mjs +54 -0
  22. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -0
  23. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.d.ts +4 -2
  24. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +40 -54
  25. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.provider.mjs +21 -2
  26. package/es/control/form/form-detail/form-mdctrl/index.d.ts +2 -4
  27. package/es/control/form/form-detail/form-mdctrl/index.mjs +10 -1
  28. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -0
  29. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.d.ts +40 -0
  30. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +94 -0
  31. package/es/control/form/form-detail/index.mjs +0 -1
  32. package/es/control/form/index.mjs +0 -1
  33. package/es/control/index.mjs +0 -1
  34. package/es/editor/upload/upload-editor.controller.mjs +2 -17
  35. package/es/panel-component/panel-button/index.d.ts +1 -1
  36. package/es/panel-component/panel-button/panel-button.d.ts +1 -1
  37. package/es/view/login-view/login-view.mjs +1 -1
  38. package/lib/control/form/edit-form/edit-form.cjs +26 -8
  39. package/lib/control/form/form/form.cjs +38 -14
  40. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +48 -58
  41. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.css +1 -0
  42. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.cjs +81 -0
  43. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.css +1 -0
  44. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.cjs +52 -0
  45. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.cjs +61 -0
  46. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.cjs +56 -0
  47. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.css +1 -0
  48. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +38 -52
  49. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -0
  50. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.provider.cjs +20 -1
  51. package/lib/control/form/form-detail/form-mdctrl/index.cjs +9 -1
  52. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +96 -0
  53. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -0
  54. package/lib/control/form/form-detail/index.cjs +0 -2
  55. package/lib/control/form/index.cjs +0 -2
  56. package/lib/control/index.cjs +0 -2
  57. package/lib/editor/upload/upload-editor.controller.cjs +1 -16
  58. package/lib/view/login-view/login-view.cjs +1 -1
  59. package/package.json +6 -6
  60. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.css +0 -1
  61. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.d.ts +0 -36
  62. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.mjs +0 -66
  63. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.mjs +0 -68
  64. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.d.ts +0 -17
  65. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.mjs +0 -68
  66. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.d.ts +0 -72
  67. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.mjs +0 -157
  68. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.d.ts +0 -17
  69. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.mjs +0 -57
  70. 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
  71. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.mjs +0 -55
  72. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.cjs +0 -71
  73. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.css +0 -1
  74. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.cjs +0 -73
  75. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.cjs +0 -73
  76. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.cjs +0 -159
  77. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.cjs +0 -62
  78. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.cjs +0 -60
@@ -1,85 +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("van-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(vue.resolveComponent("van-swipe-cell"), {
53
- "class": this.ns.b("form-content"),
54
- "key": item.srfkey
55
- }, {
56
- default: () => [controlComponent, {
57
- default: () => {
58
- return controlComponent;
59
- },
60
- right: () => {
61
- return c.parent.isDelete && vue.createVNode(vue.resolveComponent("van-button"), {
62
- "onClick": () => this.c.onDataRemove(index)
63
- }, {
64
- default: () => [vue.createTextVNode("\u5220\u9664")]
65
- });
66
- }
67
- }]
68
- });
69
68
  });
69
+ return formComponent;
70
70
  }
71
- };
72
- return vue.createVNode(formMdctrlContainer.FormMDCtrlContainer, {
73
- "class": this.ns.b("form"),
74
- "controller": c.parent,
75
- "onInsertButtonClick": () => {
76
- c.onDataInsert();
77
- }
78
- }, _isSlot(_slot = renderContent()) ? _slot : {
79
- default: () => [_slot]
80
71
  });
81
72
  }
82
73
  });
83
74
 
84
75
  exports.FormMDCtrlForm = FormMDCtrlForm;
85
- 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,81 @@
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 isLoaded = this.controller.form.state.isLoaded;
43
+ let controlComponent = null;
44
+ if (isLoaded) {
45
+ const controlProps = {
46
+ class: this.ns.b("content"),
47
+ modelData: model.contentControl,
48
+ context: this.controller.form.context,
49
+ params: this.controller.form.params,
50
+ onCreated: this.onCreated,
51
+ onSelectionChange: this.onSelectionChange
52
+ };
53
+ if (model.contentType === "GRID") {
54
+ controlProps.rowEditOpen = true;
55
+ }
56
+ controlComponent = vue.h(vue.resolveComponent(mdProvider.component), controlProps);
57
+ }
58
+ return vue.createVNode("div", {
59
+ "class": this.ns.b()
60
+ }, [this.controller.enableCreate && vue.createVNode(vue.resolveComponent("van-button"), {
61
+ "class": [this.ns.be("actions", "create"), this.ns.be("actions", "btn")],
62
+ "size": "small",
63
+ "type": "primary",
64
+ "onClick": () => this.controller.create()
65
+ }, {
66
+ 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"), {
70
+ "type": "danger",
71
+ "size": "small",
72
+ "disabled": !this.isSelected,
73
+ "class": [this.ns.be("actions", "remove"), this.ns.be("actions", "btn")],
74
+ "onClick": () => this.controller.remove()
75
+ }, {
76
+ default: () => [vue.createTextVNode("\u5220\u9664")]
77
+ })])]);
78
+ }
79
+ });
80
+
81
+ exports.FormMDCtrlMD = FormMDCtrlMD;
@@ -0,0 +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)}
@@ -0,0 +1,52 @@
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
+ var repeaterSingleForm = require('./repeater-single-form/repeater-single-form.cjs');
7
+ var repeaterMultiForm = require('./repeater-multi-form/repeater-multi-form.cjs');
8
+
9
+ "use strict";
10
+ const FormMDCtrlRepeater = /* @__PURE__ */ vue.defineComponent({
11
+ name: "IBizFormMDCtrlRepeater",
12
+ props: {
13
+ controller: {
14
+ type: runtime.FormMDCtrlRepeaterController,
15
+ required: true
16
+ }
17
+ },
18
+ setup(props) {
19
+ const ns = vue3Util.useNamespace("form-mdctrl-repeater");
20
+ const onDataChange = (data) => {
21
+ props.controller.setValue(data);
22
+ };
23
+ return {
24
+ ns,
25
+ onDataChange
26
+ };
27
+ },
28
+ render() {
29
+ const classNames = [this.ns.b()];
30
+ switch (this.controller.repeaterStyle) {
31
+ case "MultiForm":
32
+ return vue.createVNode(repeaterMultiForm.RepeaterMultiForm, {
33
+ "class": classNames,
34
+ "onChange": this.onDataChange,
35
+ "controller": this.controller
36
+ }, null);
37
+ case "SingleForm":
38
+ return vue.createVNode(repeaterSingleForm.RepeaterSingleForm, {
39
+ "class": classNames,
40
+ "data": this.controller.value,
41
+ "controller": this.controller,
42
+ "onChange": this.onDataChange
43
+ }, null);
44
+ default:
45
+ return vue.createVNode("div", {
46
+ "class": classNames
47
+ }, [vue.createTextVNode("\u6682\u672A\u652F\u6301\u91CD\u590D\u5668\u6837\u5F0F"), this.controller.repeaterStyle]);
48
+ }
49
+ }
50
+ });
51
+
52
+ exports.FormMDCtrlRepeater = FormMDCtrlRepeater;
@@ -0,0 +1,61 @@
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
+ var repeaterSingleForm = require('../repeater-single-form/repeater-single-form.cjs');
7
+
8
+ "use strict";
9
+ const RepeaterMultiForm = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizRepeaterMultiForm",
11
+ props: {
12
+ controller: {
13
+ type: runtime.FormMDCtrlRepeaterController,
14
+ required: true
15
+ }
16
+ },
17
+ emits: {
18
+ change: (_value) => true
19
+ },
20
+ setup(props, {
21
+ emit
22
+ }) {
23
+ const ns = vue3Util.useNamespace("repeater-multi-form");
24
+ const onValueChange = (value, index) => {
25
+ const arrData = [...props.controller.value];
26
+ arrData[index] = value;
27
+ emit("change", arrData);
28
+ };
29
+ return {
30
+ ns,
31
+ onValueChange
32
+ };
33
+ },
34
+ render() {
35
+ const items = this.controller.value || [];
36
+ return vue.createVNode(vue.resolveComponent("iBizMDCtrlContainer"), {
37
+ "class": this.ns.b(),
38
+ "items": items,
39
+ "enableCreate": this.controller.enableCreate,
40
+ "enableDelete": this.controller.enableDelete,
41
+ "onAddClick": () => this.controller.create(),
42
+ "onRemoveClick": (_item, index) => this.controller.remove(index)
43
+ }, {
44
+ item: ({
45
+ data,
46
+ index
47
+ }) => {
48
+ return vue.createVNode(repeaterSingleForm.RepeaterSingleForm, {
49
+ "key": index,
50
+ "data": data,
51
+ "controller": this.controller,
52
+ "onChange": (value) => {
53
+ this.onValueChange(value, index);
54
+ }
55
+ }, null);
56
+ }
57
+ });
58
+ }
59
+ });
60
+
61
+ exports.RepeaterMultiForm = RepeaterMultiForm;
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var runtime = require('@ibiz-template/runtime');
5
+ var core = require('@ibiz-template/core');
6
+ var vue3Util = require('@ibiz-template/vue3-util');
7
+ require('./repeater-single-form.css');
8
+
9
+ "use strict";
10
+ const RepeaterSingleForm = /* @__PURE__ */ vue.defineComponent({
11
+ name: "IBizRepeaterSingleForm",
12
+ props: {
13
+ data: {
14
+ type: Object,
15
+ required: true
16
+ },
17
+ controller: {
18
+ type: runtime.FormMDCtrlRepeaterController,
19
+ required: true
20
+ }
21
+ },
22
+ emits: {
23
+ change: (_value) => true
24
+ },
25
+ setup(_props, {
26
+ emit
27
+ }) {
28
+ const ns = vue3Util.useNamespace("repeater-single-form");
29
+ const onFormDataChange = (event) => {
30
+ const formData = {
31
+ ...event.data[0]
32
+ };
33
+ emit("change", formData);
34
+ };
35
+ return {
36
+ ns,
37
+ onFormDataChange
38
+ };
39
+ },
40
+ render() {
41
+ if (!this.controller.repeatedForm) {
42
+ throw new core.RuntimeError("\u6CA1\u6709repeatedForm");
43
+ }
44
+ return vue.createVNode(vue.resolveComponent("iBizControlShell"), {
45
+ "class": this.ns.b(),
46
+ "context": this.controller.context,
47
+ "params": this.controller.params,
48
+ "modelData": this.controller.repeatedForm,
49
+ "isSimple": true,
50
+ "data": this.data,
51
+ "onFormDataChange": this.onFormDataChange
52
+ }, null);
53
+ }
54
+ });
55
+
56
+ exports.RepeaterSingleForm = RepeaterSingleForm;
@@ -0,0 +1 @@
1
+ .ibiz-repeater-single-form{--ibiz-repeater-single-form-header-height:32px;width:100%}.ibiz-repeater-single-form__content{width:100%}.ibiz-repeater-single-form-header{height:var(--ibiz-repeater-single-form-header-height)}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var vue = require('vue');
6
6
  var vue3Util = require('@ibiz-template/vue3-util');
7
7
  var runtime = require('@ibiz-template/runtime');
8
+ require('./form-mdctrl.css');
8
9
 
9
10
  "use strict";
10
11
  const FormMDCtrl = /* @__PURE__ */ vue.defineComponent({
@@ -20,65 +21,50 @@ const FormMDCtrl = /* @__PURE__ */ vue.defineComponent({
20
21
  }
21
22
  },
22
23
  setup(props) {
24
+ const ns = vue3Util.useNamespace("form-mdctrl");
23
25
  vue3Util.useController(props.controller);
24
26
  const c = props.controller;
25
- const renderContentRepeater = () => {
26
- switch (c.model.detailStyle) {
27
- case "STYLE2":
28
- return vue.createVNode(vue.resolveComponent("iBizFormMDCtrlRepeaterGrid"), {
29
- "controller": c.mdCtrlContentController
30
- }, null);
31
- case "STYLE3":
32
- return vue.createVNode(vue.resolveComponent("iBizFormMDCtrlRepeaterFormOne"), {
33
- "controller": c.mdCtrlContentController
34
- }, null);
35
- default:
36
- return vue.createVNode(vue.resolveComponent("iBizFormMDCtrlRepeaterForm"), {
37
- "controller": c.mdCtrlContentController
38
- }, null);
39
- }
40
- };
27
+ const hasCaption = c.model.showCaption && !!c.model.caption;
41
28
  return {
42
29
  c,
43
- renderContentRepeater
30
+ ns,
31
+ hasCaption
44
32
  };
45
33
  },
46
34
  render() {
47
- const renderContentByType = () => {
48
- let content;
49
- const {
50
- model
51
- } = this.c;
52
- switch (model == null ? void 0 : model.contentType) {
53
- case "FORM":
54
- content = vue.createVNode(vue.resolveComponent("iBizFormMDCtrlForm"), {
55
- "controller": this.c.mdCtrlContentController
56
- }, null);
57
- break;
58
- case "GRID":
59
- content = vue.createVNode(vue.resolveComponent("iBizFormMDCtrlGrid"), {
60
- "controller": this.c.mdCtrlContentController
61
- }, null);
62
- break;
63
- case "LIST":
64
- content = vue.createVNode(vue.resolveComponent("iBizFormMDCtrlList"), {
65
- "controller": this.c.mdCtrlContentController
66
- }, null);
67
- break;
68
- case "DATAVIEW":
69
- content = vue.createVNode(vue.resolveComponent("iBizFormMDCtrlDataView"), {
70
- "controller": this.c.mdCtrlContentController
71
- }, null);
72
- break;
73
- case "REPEATER":
74
- content = this.renderContentRepeater();
75
- break;
76
- default:
77
- break;
78
- }
79
- return content;
80
- };
81
- return renderContentByType();
35
+ const {
36
+ model
37
+ } = this.c;
38
+ let content;
39
+ switch (model.contentType) {
40
+ case "GRID":
41
+ case "LIST":
42
+ case "DATAVIEW":
43
+ content = vue.createVNode(vue.resolveComponent("iBizFormMDCtrlMD"), {
44
+ "controller": this.c
45
+ }, null);
46
+ break;
47
+ case "FORM":
48
+ content = vue.createVNode(vue.resolveComponent("iBizFormMDCtrlForm"), {
49
+ "controller": this.c
50
+ }, null);
51
+ break;
52
+ case "REPEATER":
53
+ content = vue.createVNode(vue.resolveComponent("iBizFormMDCtrlRepeater"), {
54
+ "controller": this.c
55
+ }, null);
56
+ break;
57
+ default:
58
+ vue.createVNode("div", null, [model.contentType, vue.createTextVNode("\u6682\u672A\u652F\u6301")]);
59
+ break;
60
+ }
61
+ return vue.createVNode("div", {
62
+ "class": [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass, this.hasCaption ? this.ns.m("show-caption") : ""]
63
+ }, [this.hasCaption && vue.createVNode("div", {
64
+ "class": this.ns.b("header")
65
+ }, [vue.createVNode("span", {
66
+ "class": this.ns.e("title")
67
+ }, [this.c.model.caption])]), content]);
82
68
  }
83
69
  });
84
70
 
@@ -0,0 +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,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var core = require('@ibiz-template/core');
3
4
  var runtime = require('@ibiz-template/runtime');
4
5
 
5
6
  "use strict";
@@ -14,7 +15,25 @@ class FormMDCtrlProvider {
14
15
  __publicField(this, "component", "IBizFormMDCtrl");
15
16
  }
16
17
  async createController(detailModel, form, parent) {
17
- const c = new runtime.FormMDCtrlController(detailModel, form, parent);
18
+ let c;
19
+ switch (detailModel.contentType) {
20
+ case "LIST":
21
+ case "GRID":
22
+ case "DATAVIEW":
23
+ c = new runtime.FormMDCtrlMDController(detailModel, form, parent);
24
+ break;
25
+ case "FORM":
26
+ c = new runtime.FormMDCtrlFormController(detailModel, form, parent);
27
+ break;
28
+ case "REPEATER":
29
+ c = new runtime.FormMDCtrlRepeaterController(detailModel, form, parent);
30
+ break;
31
+ default:
32
+ throw new core.ModelError(
33
+ detailModel,
34
+ `\u6682\u672A\u652F\u6301\u5185\u5BB9\u7C7B\u578B\u4E3A${detailModel.contentType}`
35
+ );
36
+ }
18
37
  await c.init();
19
38
  return c;
20
39
  }
@@ -5,13 +5,21 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var runtime = require('@ibiz-template/runtime');
6
6
  var vue3Util = require('@ibiz-template/vue3-util');
7
7
  var formMdctrl = require('./form-mdctrl.cjs');
8
+ var formMdctrlForm = require('./form-mdctrl-form/form-mdctrl-form.cjs');
9
+ var formMdctrlMd = require('./form-mdctrl-md/form-mdctrl-md.cjs');
10
+ var formMdctrlRepeater = require('./form-mdctrl-repeater/form-mdctrl-repeater.cjs');
8
11
  var formMdctrl_provider = require('./form-mdctrl.provider.cjs');
12
+ var mdctrlContainer = require('./mdctrl-container/mdctrl-container.cjs');
9
13
 
10
14
  "use strict";
11
15
  const IBizFormMDCtrl = vue3Util.withInstall(formMdctrl.FormMDCtrl, function(v) {
16
+ v.component(formMdctrl.FormMDCtrl.name, formMdctrl.FormMDCtrl);
17
+ v.component(formMdctrlForm.FormMDCtrlForm.name, formMdctrlForm.FormMDCtrlForm);
18
+ v.component(formMdctrlMd.FormMDCtrlMD.name, formMdctrlMd.FormMDCtrlMD);
19
+ v.component(formMdctrlRepeater.FormMDCtrlRepeater.name, formMdctrlRepeater.FormMDCtrlRepeater);
20
+ v.component(mdctrlContainer.MDCtrlContainer.name, mdctrlContainer.MDCtrlContainer);
12
21
  runtime.registerFormDetailProvider("MDCTRL", () => new formMdctrl_provider.FormMDCtrlProvider());
13
22
  });
14
23
 
15
- exports.FormMDCtrlProvider = formMdctrl_provider.FormMDCtrlProvider;
16
24
  exports.IBizFormMDCtrl = IBizFormMDCtrl;
17
25
  exports.default = IBizFormMDCtrl;
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ require('./mdctrl-container.css');
6
+
7
+ "use strict";
8
+ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
9
+ name: "IBizMDCtrlContainer",
10
+ props: {
11
+ enableCreate: {
12
+ type: Boolean,
13
+ required: true
14
+ },
15
+ enableDelete: {
16
+ type: Boolean,
17
+ required: true
18
+ },
19
+ items: {
20
+ type: Object,
21
+ required: true
22
+ }
23
+ },
24
+ emits: {
25
+ addClick: () => true,
26
+ removeClick: (_data, _index) => true
27
+ },
28
+ setup(props, {
29
+ emit
30
+ }) {
31
+ const ns = vue3Util.useNamespace("mdctrl-container");
32
+ const showActions = vue.computed(() => {
33
+ return props.enableCreate || props.enableDelete;
34
+ });
35
+ const renderAddBtn = () => {
36
+ return vue.createVNode(vue.resolveComponent("van-button"), {
37
+ "class": [ns.be("item-actions", "create"), ns.be("item-actions", "btn")],
38
+ "size": "small",
39
+ "onClick": () => emit("addClick"),
40
+ "type": "primary"
41
+ }, {
42
+ default: () => [vue.createTextVNode("\u6DFB\u52A0")]
43
+ });
44
+ };
45
+ const renderRemoveBtn = (item, index) => {
46
+ if (!props.enableDelete) {
47
+ return null;
48
+ }
49
+ if (ibiz.config.form.mdCtrlConfirmBeforeRemove) {
50
+ return vue.createVNode(vue.resolveComponent("van-button"), {
51
+ "class": [ns.be("item-actions", "remove"), ns.be("item-actions", "btn")],
52
+ "size": "small",
53
+ "type": "danger",
54
+ "onClick": () => {
55
+ emit("removeClick", item, index);
56
+ }
57
+ }, {
58
+ default: () => [vue.createTextVNode("\u5220\u9664")]
59
+ });
60
+ }
61
+ return vue.createVNode(vue.resolveComponent("van-button"), {
62
+ "class": [ns.be("item-actions", "remove"), ns.be("item-actions", "btn")],
63
+ "type": "danger",
64
+ "size": "small",
65
+ "onClick": () => {
66
+ emit("removeClick", item, index);
67
+ }
68
+ }, {
69
+ default: () => [vue.createTextVNode("\u5220\u9664")]
70
+ });
71
+ };
72
+ return {
73
+ ns,
74
+ showActions,
75
+ renderAddBtn,
76
+ renderRemoveBtn
77
+ };
78
+ },
79
+ render() {
80
+ return vue.createVNode("div", {
81
+ "class": this.ns.b()
82
+ }, [this.enableCreate && this.renderAddBtn(), this.items.map((item, index) => {
83
+ const formComponent = this.$slots.item ? this.$slots.item({
84
+ data: item,
85
+ index
86
+ }) : vue.createVNode("div", null, [vue.createTextVNode("\u672A\u63D0\u4F9Bitem\u63D2\u69FD")]);
87
+ return vue.createVNode("div", {
88
+ "class": this.ns.b("item")
89
+ }, [formComponent, this.showActions && vue.createVNode("div", {
90
+ "class": this.ns.b("item-actions")
91
+ }, [this.renderRemoveBtn(item, index)])]);
92
+ })]);
93
+ }
94
+ });
95
+
96
+ exports.MDCtrlContainer = MDCtrlContainer;
@@ -0,0 +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}