@ibiz-template/mob-vue3-components 0.0.4 → 0.0.5

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 (36) 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/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  5. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +1 -0
  6. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.mjs +2 -1
  7. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
  8. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.d.ts +1 -0
  9. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +7 -3
  10. package/es/control/form/form-detail/form-mdctrl/index.d.ts +8 -0
  11. package/es/control/form/form-detail/form-mdctrl/index.mjs +1 -1
  12. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
  13. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.d.ts +10 -2
  14. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +29 -17
  15. package/es/control/form/form-detail/index.mjs +6 -0
  16. package/es/control/form/index.mjs +6 -0
  17. package/es/control/index.mjs +6 -0
  18. package/es/editor/span/span/span.css +1 -1
  19. package/es/index.d.ts +1 -0
  20. package/es/index.mjs +51 -1
  21. package/es/view-engine/mob-edit-view.engine.mjs +1 -2
  22. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  23. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +1 -0
  24. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.cjs +2 -1
  25. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +6 -2
  26. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
  27. package/lib/control/form/form-detail/form-mdctrl/index.cjs +6 -0
  28. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +28 -16
  29. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
  30. package/lib/control/form/form-detail/index.cjs +12 -0
  31. package/lib/control/form/index.cjs +12 -0
  32. package/lib/control/index.cjs +12 -0
  33. package/lib/editor/span/span/span.css +1 -1
  34. package/lib/index.cjs +156 -38
  35. package/lib/view-engine/mob-edit-view.engine.cjs +1 -2
  36. package/package.json +6 -6
@@ -1 +1 @@
1
- .ibiz-form-item-container{--ibiz-form-item-container-label-width:8.125rem;--ibiz-form-item-container-line-height:var(--ibiz-form-item-line-height);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-left-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-error-margin-top:var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-bg-color:var(--ibiz-color-bg-1);--ibiz-form-item-container-label-font-size:var(--ibiz-font-size-header-6);--ibiz-form-item-container-label-text-color:var(--ibiz-color-text-0);--ibiz-form-item-container-container-error-padding:0 var(--ibiz-spacing-base);--ibiz-form-item-container-border:0.0625rem var(--ibiz-color-border) solid;--ibiz-form-item-container-editor-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);--ibiz-form-item-label-line-height:1;--ibiz-form-item-label-font-size:var(--ibiz-font-size-header-5);--ibiz-form-item-label-text-color:var(--ibiz-color-text-0);position:relative;width:100%;height:100%;padding:var(--ibiz-form-item-container-container-padding);font-size:var(--ibiz-form-item-font-size);background-color:var(--ibiz-form-item-container-bg-color);border-width:calc(100% - var(--ibiz-spacing-base) * 2);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item-container::after{position:absolute;z-index:1;width:calc(100% - var(--ibiz-spacing-base) * 2);height:.00625rem;content:"";background-color:var(--ibiz-color-border)}.ibiz-form-item-container__label{position:relative;flex-shrink:0;width:var(--ibiz-form-item-container-label-width);overflow:visible;color:var(--ibiz-form-item-label-text-color)}.ibiz-form-item-container__label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;width:100%;font-size:var(--ibiz-form-item-container-label-font-size);text-align:var(--ibiz-form-item-container-label-align)}.ibiz-form-item-container__editor{width:100%;text-align:var(--ibiz-form-item-container-editor-align)}.ibiz-form-item-container__editor .van-cell{padding-bottom:0}.ibiz-form-item-container.is-required .ibiz-form-item-container__label::before{position:absolute;top:.1875rem;left:-.625rem;display:inline-block;height:100%;font-size:.875rem;color:var(--ibiz-form-item-error-color);content:"*"}.ibiz-form-item-container.is-error::after{background-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container.is-error .ibiz-form-item-container-content{border-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container--left::after{bottom:0}.ibiz-form-item-container--right.is-required .ibiz-form-item-container__label::before{right:-.625rem;left:auto}.ibiz-form-item-container--right .ibiz-form-item-container__editor{position:relative;width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--left .ibiz-form-item-container__editor{width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--top .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container--bottom .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container-content{position:relative}.ibiz-form-item-container--left .ibiz-form-item-container-content,.ibiz-form-item-container--right .ibiz-form-item-container-content{height:100%;display:flex;align-items:center;justify-content:center}.ibiz-form-item-container-error{position:absolute;bottom:0;width:calc(100% - var(--ibiz-spacing-base));padding-right:var(--ibiz-spacing-base);font-size:var(--ibiz-form-item-error-font-size);line-height:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-error-color);text-align:var(--ibiz-form-item-container-editor-align)}
1
+ .ibiz-form-item-container{--ibiz-form-item-container-label-width:8.125rem;--ibiz-form-item-container-line-height:var(--ibiz-form-item-line-height);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-left-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-error-margin-top:var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-bg-color:var(--ibiz-color-bg-1);--ibiz-form-item-container-label-font-size:var(--ibiz-font-size-header-6);--ibiz-form-item-container-label-text-color:var(--ibiz-color-text-0);--ibiz-form-item-container-container-error-padding:0 var(--ibiz-spacing-base);--ibiz-form-item-container-border:0.0625rem var(--ibiz-color-border) solid;--ibiz-form-item-container-editor-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);--ibiz-form-item-label-line-height:1;--ibiz-form-item-label-font-size:var(--ibiz-font-size-header-5);--ibiz-form-item-label-text-color:var(--ibiz-color-text-0);position:relative;width:100%;height:100%;padding:var(--ibiz-form-item-container-container-padding);font-size:var(--ibiz-form-item-font-size);background-color:var(--ibiz-form-item-container-bg-color);border-width:calc(100% - var(--ibiz-spacing-base) * 2);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item-container::after{position:absolute;z-index:1;width:calc(100% - var(--ibiz-spacing-base) * 2);height:.0625rem;content:"";background-color:var(--ibiz-color-border);transform:scaleY(.5)}.ibiz-form-item-container__label{position:relative;flex-shrink:0;width:var(--ibiz-form-item-container-label-width);overflow:visible;color:var(--ibiz-form-item-label-text-color)}.ibiz-form-item-container__label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;width:100%;font-size:var(--ibiz-form-item-container-label-font-size);text-align:var(--ibiz-form-item-container-label-align)}.ibiz-form-item-container__editor{width:100%;text-align:var(--ibiz-form-item-container-editor-align)}.ibiz-form-item-container__editor .van-cell{padding-bottom:0}.ibiz-form-item-container.is-required .ibiz-form-item-container__label::before{position:absolute;top:.1875rem;left:-.625rem;display:inline-block;height:100%;font-size:.875rem;color:var(--ibiz-form-item-error-color);content:"*"}.ibiz-form-item-container.is-error::after{background-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container.is-error .ibiz-form-item-container-content{border-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container--left::after{bottom:0}.ibiz-form-item-container--right.is-required .ibiz-form-item-container__label::before{right:-.625rem;left:auto}.ibiz-form-item-container--right .ibiz-form-item-container__editor{position:relative;width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--left .ibiz-form-item-container__editor{width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--top .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container--bottom .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container-content{position:relative}.ibiz-form-item-container--left .ibiz-form-item-container-content,.ibiz-form-item-container--right .ibiz-form-item-container-content{height:100%;display:flex;align-items:center;justify-content:center}.ibiz-form-item-container-error{position:absolute;bottom:0;width:calc(100% - var(--ibiz-spacing-base));padding-right:var(--ibiz-spacing-base);font-size:var(--ibiz-form-item-error-font-size);line-height:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-error-color);text-align:var(--ibiz-form-item-container-editor-align)}
@@ -44,6 +44,7 @@ const FormMDCtrlForm = /* @__PURE__ */ defineComponent({
44
44
  return createVNode(resolveComponent("iBizMDCtrlContainer"), {
45
45
  "class": this.ns.b(),
46
46
  "items": state.items || [],
47
+ "caption": this.controller.model.caption,
47
48
  "enableCreate": this.controller.enableCreate,
48
49
  "enableDelete": this.controller.enableDelete,
49
50
  "onAddClick": (index) => this.controller.create(index),
@@ -26,7 +26,7 @@ const RepeaterMultiForm = /* @__PURE__ */ defineComponent({
26
26
  };
27
27
  const removeClick = async (index) => {
28
28
  const confirm = await ibiz.modal.confirm({
29
- title: "\u786E\u8BA4",
29
+ title: "\u5220\u9664\u63D0\u9192",
30
30
  desc: "\u662F\u5426\u5220\u9664\u9009\u4E2D\u9879?"
31
31
  });
32
32
  if (confirm) {
@@ -44,6 +44,7 @@ const RepeaterMultiForm = /* @__PURE__ */ defineComponent({
44
44
  return createVNode(resolveComponent("iBizMDCtrlContainer"), {
45
45
  "class": this.ns.b(),
46
46
  "items": items,
47
+ "caption": this.controller.model.caption,
47
48
  "enableCreate": this.controller.enableCreate,
48
49
  "enableDelete": this.controller.enableDelete,
49
50
  "onAddClick": (index) => this.controller.create(index),
@@ -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);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)}
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-tight) var(--ibiz-spacing-base);--ibiz-form-mdctrl-header-border-color:var(--ibiz-color-border);--ibiz-form-mdctrl-caption-text-color:var(--ibiz-color-text-2);--ibiz-form-mdctrl-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-form-mdctrl-caption-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-mdctrl-caption-height:2rem;--ibiz-form-mdctrl-caption-line-height:2rem;height:100%}.ibiz-form-mdctrl__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:var(--ibiz-form-mdctrl-caption-height);font-size:var(--ibiz-form-mdctrl-caption-font-size);font-weight:var(--ibiz-form-mdctrl-caption-font-weight);line-height:var(--ibiz-form-mdctrl-caption-line-height);color:var(--ibiz-form-mdctrl-caption-text-color)}.ibiz-form-mdctrl--has-value .ibiz-form-mdctrl-header{display:none}.ibiz-form-mdctrl-header{display:flex;padding:var(--ibiz-form-mdctrl-header-padding)}
@@ -15,6 +15,7 @@ export declare const FormMDCtrl: import("vue").DefineComponent<{
15
15
  c: FormMDCtrlController;
16
16
  ns: import("@ibiz-template/core").Namespace;
17
17
  hasCaption: boolean | undefined;
18
+ hasValue: import("vue").ComputedRef<boolean | undefined>;
18
19
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
19
20
  modelData: {
20
21
  type: PropType<IDEFormMDCtrl>;
@@ -1,4 +1,4 @@
1
- import { createTextVNode, createVNode, resolveComponent, defineComponent } from 'vue';
1
+ import { computed, createTextVNode, createVNode, resolveComponent, defineComponent } from 'vue';
2
2
  import { useNamespace, useController } from '@ibiz-template/vue3-util';
3
3
  import { FormMDCtrlController } from '@ibiz-template/runtime';
4
4
  import './form-mdctrl.css';
@@ -21,10 +21,14 @@ const FormMDCtrl = /* @__PURE__ */ defineComponent({
21
21
  useController(props.controller);
22
22
  const c = props.controller;
23
23
  const hasCaption = c.model.showCaption && !!c.model.caption;
24
+ const hasValue = computed(() => {
25
+ return c.value && c.value.length > 0 || c.state.items && c.state.items.length > 0;
26
+ });
24
27
  return {
25
28
  c,
26
29
  ns,
27
- hasCaption
30
+ hasCaption,
31
+ hasValue
28
32
  };
29
33
  },
30
34
  render() {
@@ -55,7 +59,7 @@ const FormMDCtrl = /* @__PURE__ */ defineComponent({
55
59
  break;
56
60
  }
57
61
  return createVNode("div", {
58
- "class": [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass, this.hasCaption ? this.ns.m("show-caption") : ""]
62
+ "class": [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass, this.hasCaption ? this.ns.m("show-caption") : "", this.hasValue ? this.ns.m("has-value") : ""]
59
63
  }, [this.hasCaption && createVNode("div", {
60
64
  "class": this.ns.b("header")
61
65
  }, [createVNode("span", {
@@ -1,3 +1,9 @@
1
+ import FormMDCtrl from './form-mdctrl';
2
+ import { FormMDCtrlForm } from './form-mdctrl-form/form-mdctrl-form';
3
+ import { FormMDCtrlMD } from './form-mdctrl-md/form-mdctrl-md';
4
+ import { FormMDCtrlRepeater } from './form-mdctrl-repeater/form-mdctrl-repeater';
5
+ import { FormMDCtrlProvider } from './form-mdctrl.provider';
6
+ import { MDCtrlContainer } from './mdctrl-container/mdctrl-container';
1
7
  export declare const IBizFormMDCtrl: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
2
8
  modelData: {
3
9
  type: import("vue").PropType<import("@ibiz/model-core").IDEFormMDCtrl>;
@@ -11,6 +17,7 @@ export declare const IBizFormMDCtrl: import("@ibiz-template/vue3-util").TypeWith
11
17
  c: import("@ibiz-template/runtime").FormMDCtrlController;
12
18
  ns: import("@ibiz-template/core").Namespace;
13
19
  hasCaption: boolean | undefined;
20
+ hasValue: import("vue").ComputedRef<boolean | undefined>;
14
21
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
15
22
  modelData: {
16
23
  type: import("vue").PropType<import("@ibiz/model-core").IDEFormMDCtrl>;
@@ -22,3 +29,4 @@ export declare const IBizFormMDCtrl: import("@ibiz-template/vue3-util").TypeWith
22
29
  };
23
30
  }>>, {}, {}>>;
24
31
  export default IBizFormMDCtrl;
32
+ export { MDCtrlContainer, FormMDCtrlProvider, FormMDCtrlRepeater, FormMDCtrlMD, FormMDCtrlForm, FormMDCtrl, };
@@ -17,4 +17,4 @@ const IBizFormMDCtrl = withInstall(FormMDCtrl, function(v) {
17
17
  registerFormDetailProvider("MDCTRL", () => new FormMDCtrlProvider());
18
18
  });
19
19
 
20
- export { IBizFormMDCtrl, IBizFormMDCtrl as default };
20
+ export { FormMDCtrl, FormMDCtrlForm, FormMDCtrlMD, FormMDCtrlProvider, FormMDCtrlRepeater, IBizFormMDCtrl, MDCtrlContainer, IBizFormMDCtrl as default };
@@ -1 +1 @@
1
- .ibiz-mdctrl-container{display:flex;flex-direction:column;padding:var(--ibiz-spacing-tight) 0;background-color:var(--ibiz-color-bg-1)}.ibiz-mdctrl-container-item{margin:0 var(--ibiz-spacing-tight);margin-top:var(--ibiz-spacing-tight);overflow:hidden;border:solid 1px var(--ibiz-color-border);border-radius:var(--ibiz-border-radius-medium)}.ibiz-mdctrl-container-item__form{flex-grow:1}.ibiz-mdctrl-container-item-actions{display:flex;flex-shrink:0;width:100%;padding:10px 0;text-align:center}.ibiz-mdctrl-container-item-actions .van-button+.van-button{margin-left:0}.ibiz-mdctrl-container-item-actions__btn{width:calc(100% - var(--ibiz-spacing-base) * 2);margin:0 var(--ibiz-spacing-base)}.ibiz-mdctrl-container-no-data{width:100%;display:flex;justify-content:flex-end}
1
+ .ibiz-mdctrl-container{--ibiz-mdctrl-container-header-bg-color:transparent;--ibiz-mdctrl-container-header-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-mdctrl-container-header-border-color:var(--ibiz-color-border);--ibiz-mdctrl-container-caption-text-color:var(--ibiz-color-text-2);--ibiz-mdctrl-container-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-mdctrl-container-caption-font-weight:var(--ibiz-font-weight-regular);--ibiz-mdctrl-container-caption-height:1.25rem;--ibiz-mdctrl-container-caption-line-height:1.25rem;--ibiz-mdctrl-container-button-text-color:var(--ibiz-color-info);--ibiz-mdctrl-container-button-font-size:var(--ibiz-font-size-header-6);--ibiz-mdctrl-container-button-font-weight:var(--ibiz-font-weight-regular);display:flex;flex-direction:column}.ibiz-mdctrl-container__btn{width:auto;padding:0;margin-left:10px;font-size:var(--ibiz-mdctrl-container-button-font-size);color:var(--ibiz-mdctrl-container-button-text-color);background-color:transparent;border:none}.ibiz-mdctrl-container__btn:active{background-color:transparent}.ibiz-mdctrl-container__btn:active::before{opacity:0}.ibiz-mdctrl-container-item{overflow:hidden}.ibiz-mdctrl-container-item__form{flex-grow:1}.ibiz-mdctrl-container-item .ibiz-mdctrl-container-item-header{display:flex;align-items:center;justify-content:flex-end;padding:var(--ibiz-mdctrl-container-header-padding);background-color:var(--ibiz-mdctrl-container-header-bg-color)}.ibiz-mdctrl-container-item-header__caption{flex-grow:1;height:var(--ibiz-mdctrl-container-caption-height);font-size:var(--ibiz-mdctrl-container-caption-font-size);font-weight:var(--ibiz-mdctrl-container-caption-font-weight);line-height:var(--ibiz-mdctrl-container-caption-line-height);color:var(--ibiz-mdctrl-container-caption-text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-mdctrl-container-item-header__action{--van-button-small-height:1.25rem;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-end;height:1.25rem;line-height:1.25rem;text-align:right}.ibiz-mdctrl-container-item .ibiz-mdctrl-container-item-content{background-color:var(--ibiz-color-bg-1)}.ibiz-mdctrl-container-item .ibiz-form-page-item{--ibiz-form-page-item-gap:0}.ibiz-mdctrl-container-no-data{width:100%;display:flex;justify-content:flex-end}.ibiz-mdctrl-container-footer{color:red}.ibiz-mdctrl-container-footer .ibiz-mdctrl-container__btn{width:100%;padding:0;margin-left:0;font-size:var(--ibiz-font-size-header-5);color:var(--ibiz-mdctrl-container-button-text-color);background-color:var(--ibiz-color-bg-1);border:none}.ibiz-mdctrl-container-footer .ibiz-mdctrl-container__btn:active{background-color:transparent}.ibiz-mdctrl-container-footer .ibiz-mdctrl-container__btn:active::before{opacity:.1}.ibiz-mdctrl-container-footer .ibiz-mdctrl-container__btn .van-icon{margin-right:var(--ibiz-spacing-extra-tight)}
@@ -13,12 +13,16 @@ export declare const MDCtrlContainer: import("vue").DefineComponent<{
13
13
  type: PropType<IData[]>;
14
14
  required: true;
15
15
  };
16
+ caption: {
17
+ type: StringConstructor;
18
+ required: false;
19
+ };
16
20
  }, {
17
21
  ns: import("@ibiz-template/core").Namespace;
18
22
  showActions: import("vue").ComputedRef<boolean>;
19
- renderAddBtn: (index?: number) => JSX.Element | null;
23
+ renderAddBtn: (index?: number, showButton?: boolean) => JSX.Element | null;
20
24
  renderRemoveBtn: (item: IData, index: number) => JSX.Element | null;
21
- renderBottomBtn: (item: IData, index: number) => (JSX.Element | null)[];
25
+ renderActionBtn: (item: IData, index: number) => (JSX.Element | null)[];
22
26
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
23
27
  addClick: (_index?: number) => true;
24
28
  removeClick: (_data: IData, _index: number) => true;
@@ -35,6 +39,10 @@ export declare const MDCtrlContainer: import("vue").DefineComponent<{
35
39
  type: PropType<IData[]>;
36
40
  required: true;
37
41
  };
42
+ caption: {
43
+ type: StringConstructor;
44
+ required: false;
45
+ };
38
46
  }>> & {
39
47
  onRemoveClick?: ((_data: IData, _index: number) => any) | undefined;
40
48
  onAddClick?: ((_index?: number | undefined) => any) | undefined;
@@ -1,4 +1,4 @@
1
- import { computed, resolveComponent, createTextVNode, createVNode, defineComponent } from 'vue';
1
+ import { computed, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './mdctrl-container.css';
4
4
 
@@ -17,6 +17,10 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
17
17
  items: {
18
18
  type: Object,
19
19
  required: true
20
+ },
21
+ caption: {
22
+ type: String,
23
+ required: false
20
24
  }
21
25
  },
22
26
  emits: {
@@ -30,17 +34,18 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
30
34
  const showActions = computed(() => {
31
35
  return props.enableCreate || props.enableDelete;
32
36
  });
33
- const renderAddBtn = (index) => {
37
+ const renderAddBtn = (index, showButton = true) => {
34
38
  if (!props.enableCreate) {
35
39
  return null;
36
40
  }
37
41
  return createVNode(resolveComponent("van-button"), {
38
- "class": [ns.be("item-actions", "create"), ns.be("item-actions", "btn")],
42
+ "class": [ns.e("create"), ns.e("btn")],
39
43
  "size": "small",
40
- "onClick": () => emit("addClick", index === void 0 ? void 0 : index + 1),
41
- "type": "primary"
44
+ "onClick": () => emit("addClick", index === void 0 ? void 0 : index + 1)
42
45
  }, {
43
- default: () => [createTextVNode("\u6DFB\u52A0")]
46
+ default: () => [showButton && createVNode(resolveComponent("van-icon"), {
47
+ "name": "plus"
48
+ }, null), createTextVNode("\u6DFB\u52A0")]
44
49
  });
45
50
  };
46
51
  const renderRemoveBtn = (item, index) => {
@@ -49,9 +54,8 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
49
54
  }
50
55
  if (ibiz.config.form.mdCtrlConfirmBeforeRemove) {
51
56
  return createVNode(resolveComponent("van-button"), {
52
- "class": [ns.be("item-actions", "remove"), ns.be("item-actions", "btn")],
57
+ "class": [ns.e("remove"), ns.e("btn")],
53
58
  "size": "small",
54
- "type": "danger",
55
59
  "onClick": () => {
56
60
  emit("removeClick", item, index);
57
61
  }
@@ -60,7 +64,7 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
60
64
  });
61
65
  }
62
66
  return createVNode(resolveComponent("van-button"), {
63
- "class": [ns.be("item-actions", "remove"), ns.be("item-actions", "btn")],
67
+ "class": [ns.e("remove"), ns.e("btn")],
64
68
  "type": "danger",
65
69
  "size": "small",
66
70
  "onClick": () => {
@@ -70,21 +74,21 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
70
74
  default: () => [createTextVNode("\u5220\u9664")]
71
75
  });
72
76
  };
73
- const renderBottomBtn = (item, index) => {
74
- return [renderAddBtn(index), renderRemoveBtn(item, index)];
77
+ const renderActionBtn = (item, index) => {
78
+ return [renderAddBtn(index, false), renderRemoveBtn(item, index)];
75
79
  };
76
80
  return {
77
81
  ns,
78
82
  showActions,
79
83
  renderAddBtn,
80
84
  renderRemoveBtn,
81
- renderBottomBtn
85
+ renderActionBtn
82
86
  };
83
87
  },
84
88
  render() {
85
89
  return createVNode("div", {
86
90
  "class": this.ns.b()
87
- }, [this.enableCreate && this.renderAddBtn(), this.items.map((item, index) => {
91
+ }, [this.items.map((item, index) => {
88
92
  const formComponent = this.$slots.item ? this.$slots.item({
89
93
  data: item,
90
94
  index
@@ -92,10 +96,18 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
92
96
  return createVNode("div", {
93
97
  "class": this.ns.b("item"),
94
98
  "key": item.id
95
- }, [formComponent, this.showActions && createVNode("div", {
96
- "class": this.ns.b("item-actions")
97
- }, [this.renderBottomBtn(item, index)])]);
98
- })]);
99
+ }, [createVNode("div", {
100
+ "class": this.ns.b("item-header")
101
+ }, [createVNode("div", {
102
+ "class": this.ns.be("item-header", "caption")
103
+ }, [this.caption || ""]), createVNode("div", {
104
+ "class": this.ns.be("item-header", "action")
105
+ }, [this.renderActionBtn(item, index)])]), createVNode("div", {
106
+ "class": this.ns.b("item-content")
107
+ }, [formComponent])]);
108
+ }), this.enableCreate && createVNode("div", {
109
+ "class": this.ns.b("footer")
110
+ }, [this.renderAddBtn()])]);
99
111
  }
100
112
  });
101
113
 
@@ -17,5 +17,11 @@ export { FormDRUIPartProvider } from './form-druipart/form-druipart.provider.mjs
17
17
  export { FormRawItemProvider } from './form-rawitem/form-rawitem.provider.mjs';
18
18
  export { FormTabPanelProvider } from './form-tab-panel/form-tab-panel.provider.mjs';
19
19
  export { FormTabPageProvider } from './form-tab-page/form-tab-page.provider.mjs';
20
+ export { MDCtrlContainer } from './form-mdctrl/mdctrl-container/mdctrl-container.mjs';
21
+ export { FormMDCtrlProvider } from './form-mdctrl/form-mdctrl.provider.mjs';
22
+ export { FormMDCtrlRepeater } from './form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.mjs';
23
+ export { FormMDCtrlMD } from './form-mdctrl/form-mdctrl-md/form-mdctrl-md.mjs';
24
+ export { FormMDCtrlForm } from './form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs';
25
+ export { FormMDCtrl } from './form-mdctrl/form-mdctrl.mjs';
20
26
 
21
27
  "use strict";
@@ -22,5 +22,11 @@ export { IBizFormTabPanel } from './form-detail/form-tab-panel/index.mjs';
22
22
  export { FormTabPageProvider } from './form-detail/form-tab-page/form-tab-page.provider.mjs';
23
23
  export { IBizFormTabPage } from './form-detail/form-tab-page/index.mjs';
24
24
  export { IBizFormMDCtrl } from './form-detail/form-mdctrl/index.mjs';
25
+ export { MDCtrlContainer } from './form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs';
26
+ export { FormMDCtrlProvider } from './form-detail/form-mdctrl/form-mdctrl.provider.mjs';
27
+ export { FormMDCtrlRepeater } from './form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.mjs';
28
+ export { FormMDCtrlMD } from './form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.mjs';
29
+ export { FormMDCtrlForm } from './form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs';
30
+ export { FormMDCtrl } from './form-detail/form-mdctrl/form-mdctrl.mjs';
25
31
 
26
32
  "use strict";
@@ -37,6 +37,12 @@ export { IBizFormTabPanel } from './form/form-detail/form-tab-panel/index.mjs';
37
37
  export { FormTabPageProvider } from './form/form-detail/form-tab-page/form-tab-page.provider.mjs';
38
38
  export { IBizFormTabPage } from './form/form-detail/form-tab-page/index.mjs';
39
39
  export { IBizFormMDCtrl } from './form/form-detail/form-mdctrl/index.mjs';
40
+ export { MDCtrlContainer } from './form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs';
41
+ export { FormMDCtrlProvider } from './form/form-detail/form-mdctrl/form-mdctrl.provider.mjs';
42
+ export { FormMDCtrlRepeater } from './form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.mjs';
43
+ export { FormMDCtrlMD } from './form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.mjs';
44
+ export { FormMDCtrlForm } from './form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs';
45
+ export { FormMDCtrl } from './form/form-detail/form-mdctrl/form-mdctrl.mjs';
40
46
  export { IBizEditFormControl } from './form/edit-form/index.mjs';
41
47
  export { IBizFormControl } from './form/form/index.mjs';
42
48
  export { PickupViewPanelProvider } from './pickup-view-panel/pickup-view-panel.provider.mjs';
@@ -1 +1 @@
1
- .ibiz-span{display:inline-block;width:100%;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:inherit;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-span--disabled{color:var(--ibiz-form-item-disabled-color)}.ibiz-span--readonly{color:var(--ibiz-form-item-readonly-color)}
1
+ .ibiz-span{display:block;width:100%;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:inherit;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-span--disabled{color:var(--ibiz-form-item-disabled-color)}.ibiz-span--readonly{color:var(--ibiz-form-item-readonly-color)}
package/es/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './util';
5
5
  export * from './view';
6
6
  export * from './panel-component';
7
7
  export * from './editor';
8
+ export * from './control';
8
9
  declare const _default: {
9
10
  install: (v: App) => void;
10
11
  };
package/es/index.mjs CHANGED
@@ -43,6 +43,56 @@ export { ConfirmUtil } from './util/confirm-util/confirm-util.mjs';
43
43
  export { calcUniqueKey, useViewStack } from './util/store/view-stack/view-stack.mjs';
44
44
  export { View404 } from './view/404-view/404-view.mjs';
45
45
  export { LoginView } from './view/login-view/login-view.mjs';
46
+ export { MDCtrlProvider } from './control/list/md-ctrl/md-ctrl.provider.mjs';
47
+ export { AppMenuProvider } from './control/app-menu/app-menu.provider.mjs';
48
+ export { SearchFormProvider } from './control/form/search-form/search-form.provider.mjs';
49
+ export { FormGroupPanelProvider } from './control/form/form-detail/form-group-panel/form-group-panel.provider.mjs';
50
+ export { IBizFormGroupPanel } from './control/form/form-detail/form-group-panel/index.mjs';
51
+ export { FormItemProvider } from './control/form/form-detail/form-item/form-item.provider.mjs';
52
+ export { IBizFormItemContainer } from './control/form/form-detail/form-item/form-item-container/form-item-container.mjs';
53
+ export { IBizFormItem } from './control/form/form-detail/form-item/index.mjs';
54
+ export { IBizFormPageItem } from './control/form/form-detail/form-page/form-page-item/form-page-item.mjs';
55
+ export { FormPageProvider } from './control/form/form-detail/form-page/form-page.provider.mjs';
56
+ export { IBizFormPage } from './control/form/form-detail/form-page/index.mjs';
57
+ export { FormButtonProvider } from './control/form/form-detail/form-button/form-button.provider.mjs';
58
+ export { IBizFormButton } from './control/form/form-detail/form-button/index.mjs';
59
+ export { FormDRUIPartProvider } from './control/form/form-detail/form-druipart/form-druipart.provider.mjs';
60
+ export { IBizFormDRUIPart } from './control/form/form-detail/form-druipart/index.mjs';
61
+ export { FormRawItemProvider } from './control/form/form-detail/form-rawitem/form-rawitem.provider.mjs';
62
+ export { IBizFormRawItem } from './control/form/form-detail/form-rawitem/index.mjs';
63
+ export { FormTabPanelProvider } from './control/form/form-detail/form-tab-panel/form-tab-panel.provider.mjs';
64
+ export { IBizFormTabPanel } from './control/form/form-detail/form-tab-panel/index.mjs';
65
+ export { FormTabPageProvider } from './control/form/form-detail/form-tab-page/form-tab-page.provider.mjs';
66
+ export { IBizFormTabPage } from './control/form/form-detail/form-tab-page/index.mjs';
67
+ export { IBizFormMDCtrl } from './control/form/form-detail/form-mdctrl/index.mjs';
68
+ export { MDCtrlContainer } from './control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs';
69
+ export { FormMDCtrlProvider } from './control/form/form-detail/form-mdctrl/form-mdctrl.provider.mjs';
70
+ export { FormMDCtrlRepeater } from './control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.mjs';
71
+ export { FormMDCtrlMD } from './control/form/form-detail/form-mdctrl/form-mdctrl-md/form-mdctrl-md.mjs';
72
+ export { FormMDCtrlForm } from './control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs';
73
+ export { FormMDCtrl } from './control/form/form-detail/form-mdctrl/form-mdctrl.mjs';
74
+ export { PickupViewPanelProvider } from './control/pickup-view-panel/pickup-view-panel.provider.mjs';
75
+ export { PickupViewPanelController } from './control/pickup-view-panel/pickup-view-panel.controller.mjs';
76
+ export { ListProvider } from './control/list/list/list.provider.mjs';
77
+ export { TabExpPanelProvider } from './control/tab-exp-panel/tab-exp-panel.provider.mjs';
78
+ export { CaptionBarProvider } from './control/caption-bar/caption-bar.provider.mjs';
79
+ export { SearchBarProvider } from './control/search-bar/search-bar.provider.mjs';
80
+ export { DRTabProvider } from './control/drtab/drtab.provider.mjs';
81
+ export { DRTabController } from './control/drtab/drtab.controller.mjs';
82
+ export { TreeProvider } from './control/tree/tree.provider.mjs';
83
+ export { DataViewControlProvider } from './control/data-view/data-view.provider.mjs';
84
+ export { DashboardProvider } from './control/dashboard/dashboard.provider.mjs';
85
+ export { PortletPartState } from './control/dashboard/portlet/portlet-part/portlet-part.state.mjs';
86
+ export { ContainerPortletProvider } from './control/dashboard/portlet/container-portlet/container-portlet.provider.mjs';
87
+ export { ContainerPortlet } from './control/dashboard/portlet/container-portlet/container-portlet.mjs';
88
+ export { IBizContainerPortlet } from './control/dashboard/portlet/container-portlet/index.mjs';
89
+ export { PortletLayout } from './control/dashboard/portlet/portlet-layout/portlet-layout.mjs';
90
+ export { MenuPortletProvider } from './control/dashboard/portlet/menu-portlet/menu-portlet.provider.mjs';
91
+ export { MenuPortlet } from './control/dashboard/portlet/menu-portlet/menu-portlet.mjs';
92
+ export { IBizMenuPortlet } from './control/dashboard/portlet/menu-portlet/index.mjs';
93
+ export { ViewPortlet } from './control/dashboard/portlet/view-portlet/view-portlet.mjs';
94
+ export { IBizViewPortlet } from './control/dashboard/portlet/view-portlet/index.mjs';
95
+ export { CalendarProvider } from './control/calendar/calendar.provider.mjs';
46
96
 
47
97
  "use strict";
48
98
  var index = {
@@ -82,4 +132,4 @@ var index = {
82
132
  }
83
133
  };
84
134
 
85
- export { IBizCommonComponents, IBizEditor, IBizPanelComponents, index as default };
135
+ export { IBizAppMenuControl, IBizCalendarControl, IBizCaptionBarControl, IBizChartControl, IBizCommonComponents, IBizDRTabControl, IBizDashboardControl, IBizDataViewControl, IBizEditFormControl, IBizEditor, IBizFormControl, IBizListControl, IBizMDCtrlControl, IBizPanelComponents, IBizPickupViewPanelControl, IBizSearchBarControl, IBizSearchFormControl, IBizTabExpPanelControl, IBizToolbarControl, IBizTreeControl, IBizWizardPanelControl, index as default };
@@ -214,8 +214,7 @@ class MobEditViewEngine extends ViewEngineBase {
214
214
  const entityService = await app.deService.getService(
215
215
  this.view.model.appDataEntityId
216
216
  );
217
- await entityService.wf.exec(
218
- "withdraw",
217
+ await entityService.wf.wfWithdraw(
219
218
  this.view.context,
220
219
  {
221
220
  ...this.view.params,
@@ -1 +1 @@
1
- .ibiz-form-item-container{--ibiz-form-item-container-label-width:8.125rem;--ibiz-form-item-container-line-height:var(--ibiz-form-item-line-height);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-left-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-error-margin-top:var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-bg-color:var(--ibiz-color-bg-1);--ibiz-form-item-container-label-font-size:var(--ibiz-font-size-header-6);--ibiz-form-item-container-label-text-color:var(--ibiz-color-text-0);--ibiz-form-item-container-container-error-padding:0 var(--ibiz-spacing-base);--ibiz-form-item-container-border:0.0625rem var(--ibiz-color-border) solid;--ibiz-form-item-container-editor-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);--ibiz-form-item-label-line-height:1;--ibiz-form-item-label-font-size:var(--ibiz-font-size-header-5);--ibiz-form-item-label-text-color:var(--ibiz-color-text-0);position:relative;width:100%;height:100%;padding:var(--ibiz-form-item-container-container-padding);font-size:var(--ibiz-form-item-font-size);background-color:var(--ibiz-form-item-container-bg-color);border-width:calc(100% - var(--ibiz-spacing-base) * 2);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item-container::after{position:absolute;z-index:1;width:calc(100% - var(--ibiz-spacing-base) * 2);height:.00625rem;content:"";background-color:var(--ibiz-color-border)}.ibiz-form-item-container__label{position:relative;flex-shrink:0;width:var(--ibiz-form-item-container-label-width);overflow:visible;color:var(--ibiz-form-item-label-text-color)}.ibiz-form-item-container__label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;width:100%;font-size:var(--ibiz-form-item-container-label-font-size);text-align:var(--ibiz-form-item-container-label-align)}.ibiz-form-item-container__editor{width:100%;text-align:var(--ibiz-form-item-container-editor-align)}.ibiz-form-item-container__editor .van-cell{padding-bottom:0}.ibiz-form-item-container.is-required .ibiz-form-item-container__label::before{position:absolute;top:.1875rem;left:-.625rem;display:inline-block;height:100%;font-size:.875rem;color:var(--ibiz-form-item-error-color);content:"*"}.ibiz-form-item-container.is-error::after{background-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container.is-error .ibiz-form-item-container-content{border-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container--left::after{bottom:0}.ibiz-form-item-container--right.is-required .ibiz-form-item-container__label::before{right:-.625rem;left:auto}.ibiz-form-item-container--right .ibiz-form-item-container__editor{position:relative;width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--left .ibiz-form-item-container__editor{width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--top .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container--bottom .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container-content{position:relative}.ibiz-form-item-container--left .ibiz-form-item-container-content,.ibiz-form-item-container--right .ibiz-form-item-container-content{height:100%;display:flex;align-items:center;justify-content:center}.ibiz-form-item-container-error{position:absolute;bottom:0;width:calc(100% - var(--ibiz-spacing-base));padding-right:var(--ibiz-spacing-base);font-size:var(--ibiz-form-item-error-font-size);line-height:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-error-color);text-align:var(--ibiz-form-item-container-editor-align)}
1
+ .ibiz-form-item-container{--ibiz-form-item-container-label-width:8.125rem;--ibiz-form-item-container-line-height:var(--ibiz-form-item-line-height);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-left-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-error-margin-top:var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-bg-color:var(--ibiz-color-bg-1);--ibiz-form-item-container-label-font-size:var(--ibiz-font-size-header-6);--ibiz-form-item-container-label-text-color:var(--ibiz-color-text-0);--ibiz-form-item-container-container-error-padding:0 var(--ibiz-spacing-base);--ibiz-form-item-container-border:0.0625rem var(--ibiz-color-border) solid;--ibiz-form-item-container-editor-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);--ibiz-form-item-label-line-height:1;--ibiz-form-item-label-font-size:var(--ibiz-font-size-header-5);--ibiz-form-item-label-text-color:var(--ibiz-color-text-0);position:relative;width:100%;height:100%;padding:var(--ibiz-form-item-container-container-padding);font-size:var(--ibiz-form-item-font-size);background-color:var(--ibiz-form-item-container-bg-color);border-width:calc(100% - var(--ibiz-spacing-base) * 2);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item-container::after{position:absolute;z-index:1;width:calc(100% - var(--ibiz-spacing-base) * 2);height:.0625rem;content:"";background-color:var(--ibiz-color-border);transform:scaleY(.5)}.ibiz-form-item-container__label{position:relative;flex-shrink:0;width:var(--ibiz-form-item-container-label-width);overflow:visible;color:var(--ibiz-form-item-label-text-color)}.ibiz-form-item-container__label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;width:100%;font-size:var(--ibiz-form-item-container-label-font-size);text-align:var(--ibiz-form-item-container-label-align)}.ibiz-form-item-container__editor{width:100%;text-align:var(--ibiz-form-item-container-editor-align)}.ibiz-form-item-container__editor .van-cell{padding-bottom:0}.ibiz-form-item-container.is-required .ibiz-form-item-container__label::before{position:absolute;top:.1875rem;left:-.625rem;display:inline-block;height:100%;font-size:.875rem;color:var(--ibiz-form-item-error-color);content:"*"}.ibiz-form-item-container.is-error::after{background-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container.is-error .ibiz-form-item-container-content{border-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container--left::after{bottom:0}.ibiz-form-item-container--right.is-required .ibiz-form-item-container__label::before{right:-.625rem;left:auto}.ibiz-form-item-container--right .ibiz-form-item-container__editor{position:relative;width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--left .ibiz-form-item-container__editor{width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--top .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container--bottom .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container-content{position:relative}.ibiz-form-item-container--left .ibiz-form-item-container-content,.ibiz-form-item-container--right .ibiz-form-item-container-content{height:100%;display:flex;align-items:center;justify-content:center}.ibiz-form-item-container-error{position:absolute;bottom:0;width:calc(100% - var(--ibiz-spacing-base));padding-right:var(--ibiz-spacing-base);font-size:var(--ibiz-form-item-error-font-size);line-height:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-error-color);text-align:var(--ibiz-form-item-container-editor-align)}
@@ -46,6 +46,7 @@ const FormMDCtrlForm = /* @__PURE__ */ vue.defineComponent({
46
46
  return vue.createVNode(vue.resolveComponent("iBizMDCtrlContainer"), {
47
47
  "class": this.ns.b(),
48
48
  "items": state.items || [],
49
+ "caption": this.controller.model.caption,
49
50
  "enableCreate": this.controller.enableCreate,
50
51
  "enableDelete": this.controller.enableDelete,
51
52
  "onAddClick": (index) => this.controller.create(index),
@@ -28,7 +28,7 @@ const RepeaterMultiForm = /* @__PURE__ */ vue.defineComponent({
28
28
  };
29
29
  const removeClick = async (index) => {
30
30
  const confirm = await ibiz.modal.confirm({
31
- title: "\u786E\u8BA4",
31
+ title: "\u5220\u9664\u63D0\u9192",
32
32
  desc: "\u662F\u5426\u5220\u9664\u9009\u4E2D\u9879?"
33
33
  });
34
34
  if (confirm) {
@@ -46,6 +46,7 @@ const RepeaterMultiForm = /* @__PURE__ */ vue.defineComponent({
46
46
  return vue.createVNode(vue.resolveComponent("iBizMDCtrlContainer"), {
47
47
  "class": this.ns.b(),
48
48
  "items": items,
49
+ "caption": this.controller.model.caption,
49
50
  "enableCreate": this.controller.enableCreate,
50
51
  "enableDelete": this.controller.enableDelete,
51
52
  "onAddClick": (index) => this.controller.create(index),
@@ -25,10 +25,14 @@ const FormMDCtrl = /* @__PURE__ */ vue.defineComponent({
25
25
  vue3Util.useController(props.controller);
26
26
  const c = props.controller;
27
27
  const hasCaption = c.model.showCaption && !!c.model.caption;
28
+ const hasValue = vue.computed(() => {
29
+ return c.value && c.value.length > 0 || c.state.items && c.state.items.length > 0;
30
+ });
28
31
  return {
29
32
  c,
30
33
  ns,
31
- hasCaption
34
+ hasCaption,
35
+ hasValue
32
36
  };
33
37
  },
34
38
  render() {
@@ -59,7 +63,7 @@ const FormMDCtrl = /* @__PURE__ */ vue.defineComponent({
59
63
  break;
60
64
  }
61
65
  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") : ""]
66
+ "class": [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass, this.hasCaption ? this.ns.m("show-caption") : "", this.hasValue ? this.ns.m("has-value") : ""]
63
67
  }, [this.hasCaption && vue.createVNode("div", {
64
68
  "class": this.ns.b("header")
65
69
  }, [vue.createVNode("span", {
@@ -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);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)}
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-tight) var(--ibiz-spacing-base);--ibiz-form-mdctrl-header-border-color:var(--ibiz-color-border);--ibiz-form-mdctrl-caption-text-color:var(--ibiz-color-text-2);--ibiz-form-mdctrl-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-form-mdctrl-caption-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-mdctrl-caption-height:2rem;--ibiz-form-mdctrl-caption-line-height:2rem;height:100%}.ibiz-form-mdctrl__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:var(--ibiz-form-mdctrl-caption-height);font-size:var(--ibiz-form-mdctrl-caption-font-size);font-weight:var(--ibiz-form-mdctrl-caption-font-weight);line-height:var(--ibiz-form-mdctrl-caption-line-height);color:var(--ibiz-form-mdctrl-caption-text-color)}.ibiz-form-mdctrl--has-value .ibiz-form-mdctrl-header{display:none}.ibiz-form-mdctrl-header{display:flex;padding:var(--ibiz-form-mdctrl-header-padding)}
@@ -21,5 +21,11 @@ const IBizFormMDCtrl = vue3Util.withInstall(formMdctrl.FormMDCtrl, function(v) {
21
21
  runtime.registerFormDetailProvider("MDCTRL", () => new formMdctrl_provider.FormMDCtrlProvider());
22
22
  });
23
23
 
24
+ exports.FormMDCtrl = formMdctrl.FormMDCtrl;
25
+ exports.FormMDCtrlForm = formMdctrlForm.FormMDCtrlForm;
26
+ exports.FormMDCtrlMD = formMdctrlMd.FormMDCtrlMD;
27
+ exports.FormMDCtrlRepeater = formMdctrlRepeater.FormMDCtrlRepeater;
28
+ exports.FormMDCtrlProvider = formMdctrl_provider.FormMDCtrlProvider;
29
+ exports.MDCtrlContainer = mdctrlContainer.MDCtrlContainer;
24
30
  exports.IBizFormMDCtrl = IBizFormMDCtrl;
25
31
  exports.default = IBizFormMDCtrl;
@@ -19,6 +19,10 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
19
19
  items: {
20
20
  type: Object,
21
21
  required: true
22
+ },
23
+ caption: {
24
+ type: String,
25
+ required: false
22
26
  }
23
27
  },
24
28
  emits: {
@@ -32,17 +36,18 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
32
36
  const showActions = vue.computed(() => {
33
37
  return props.enableCreate || props.enableDelete;
34
38
  });
35
- const renderAddBtn = (index) => {
39
+ const renderAddBtn = (index, showButton = true) => {
36
40
  if (!props.enableCreate) {
37
41
  return null;
38
42
  }
39
43
  return vue.createVNode(vue.resolveComponent("van-button"), {
40
- "class": [ns.be("item-actions", "create"), ns.be("item-actions", "btn")],
44
+ "class": [ns.e("create"), ns.e("btn")],
41
45
  "size": "small",
42
- "onClick": () => emit("addClick", index === void 0 ? void 0 : index + 1),
43
- "type": "primary"
46
+ "onClick": () => emit("addClick", index === void 0 ? void 0 : index + 1)
44
47
  }, {
45
- default: () => [vue.createTextVNode("\u6DFB\u52A0")]
48
+ default: () => [showButton && vue.createVNode(vue.resolveComponent("van-icon"), {
49
+ "name": "plus"
50
+ }, null), vue.createTextVNode("\u6DFB\u52A0")]
46
51
  });
47
52
  };
48
53
  const renderRemoveBtn = (item, index) => {
@@ -51,9 +56,8 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
51
56
  }
52
57
  if (ibiz.config.form.mdCtrlConfirmBeforeRemove) {
53
58
  return vue.createVNode(vue.resolveComponent("van-button"), {
54
- "class": [ns.be("item-actions", "remove"), ns.be("item-actions", "btn")],
59
+ "class": [ns.e("remove"), ns.e("btn")],
55
60
  "size": "small",
56
- "type": "danger",
57
61
  "onClick": () => {
58
62
  emit("removeClick", item, index);
59
63
  }
@@ -62,7 +66,7 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
62
66
  });
63
67
  }
64
68
  return vue.createVNode(vue.resolveComponent("van-button"), {
65
- "class": [ns.be("item-actions", "remove"), ns.be("item-actions", "btn")],
69
+ "class": [ns.e("remove"), ns.e("btn")],
66
70
  "type": "danger",
67
71
  "size": "small",
68
72
  "onClick": () => {
@@ -72,21 +76,21 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
72
76
  default: () => [vue.createTextVNode("\u5220\u9664")]
73
77
  });
74
78
  };
75
- const renderBottomBtn = (item, index) => {
76
- return [renderAddBtn(index), renderRemoveBtn(item, index)];
79
+ const renderActionBtn = (item, index) => {
80
+ return [renderAddBtn(index, false), renderRemoveBtn(item, index)];
77
81
  };
78
82
  return {
79
83
  ns,
80
84
  showActions,
81
85
  renderAddBtn,
82
86
  renderRemoveBtn,
83
- renderBottomBtn
87
+ renderActionBtn
84
88
  };
85
89
  },
86
90
  render() {
87
91
  return vue.createVNode("div", {
88
92
  "class": this.ns.b()
89
- }, [this.enableCreate && this.renderAddBtn(), this.items.map((item, index) => {
93
+ }, [this.items.map((item, index) => {
90
94
  const formComponent = this.$slots.item ? this.$slots.item({
91
95
  data: item,
92
96
  index
@@ -94,10 +98,18 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
94
98
  return vue.createVNode("div", {
95
99
  "class": this.ns.b("item"),
96
100
  "key": item.id
97
- }, [formComponent, this.showActions && vue.createVNode("div", {
98
- "class": this.ns.b("item-actions")
99
- }, [this.renderBottomBtn(item, index)])]);
100
- })]);
101
+ }, [vue.createVNode("div", {
102
+ "class": this.ns.b("item-header")
103
+ }, [vue.createVNode("div", {
104
+ "class": this.ns.be("item-header", "caption")
105
+ }, [this.caption || ""]), vue.createVNode("div", {
106
+ "class": this.ns.be("item-header", "action")
107
+ }, [this.renderActionBtn(item, index)])]), vue.createVNode("div", {
108
+ "class": this.ns.b("item-content")
109
+ }, [formComponent])]);
110
+ }), this.enableCreate && vue.createVNode("div", {
111
+ "class": this.ns.b("footer")
112
+ }, [this.renderAddBtn()])]);
101
113
  }
102
114
  });
103
115