@me-framework/me-ui-antdv-next 0.0.33 → 0.0.35

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.
@@ -1,14 +1,26 @@
1
1
  import { MeInputPropertyModel, MeInputPropertyProps, MeInputPropertyValidation } from './types';
2
2
  declare const __VLS_export: import('vue').DefineComponent<MeInputPropertyProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
3
3
  change: (value: MeInputPropertyModel, validation?: MeInputPropertyValidation | undefined) => any;
4
+ "update:open": (value: boolean) => any;
5
+ ok: (value: MeInputPropertyModel) => any;
6
+ cancel: () => any;
4
7
  "update:modelValue": (value: MeInputPropertyModel) => any;
5
8
  }, string, import('vue').PublicProps, Readonly<MeInputPropertyProps> & Readonly<{
6
9
  onChange?: ((value: MeInputPropertyModel, validation?: MeInputPropertyValidation | undefined) => any) | undefined;
10
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
11
+ onOk?: ((value: MeInputPropertyModel) => any) | undefined;
12
+ onCancel?: (() => any) | undefined;
7
13
  "onUpdate:modelValue"?: ((value: MeInputPropertyModel) => any) | undefined;
8
14
  }>, {
9
15
  size: "small" | "middle" | "large";
16
+ title: string;
17
+ open: boolean;
18
+ okText: string;
19
+ cancelText: string;
10
20
  disabled: boolean;
11
21
  modelValue: MeInputPropertyModel;
22
+ modalMode: boolean;
23
+ modalWidth: number | string;
12
24
  keyField: string;
13
25
  valueField: string;
14
26
  draggable: boolean;
@@ -99,6 +99,19 @@ export interface MeInputPropertyProps {
99
99
  /** 外部注入的初始/持久化规则;键为属性 key(trim 后精确匹配)。外部重新赋值 modelValue 时,
100
100
  * 会话内已有同 key 规则优先继承,新出现的 key 从这里取规则,消失的 key 规则丢弃 */
101
101
  rules?: Record<string, PropertyRuleSet>;
102
+ /** 弹窗模式:true 时组件内部以弹窗形态展示(含确定/取消),「确定」时校验未通过则阻止关闭并提示;
103
+ * 默认 false 为内嵌表格。开启后消费方通过 v-model:open 控制显隐、@ok 接收校验通过的当前值 */
104
+ modalMode?: boolean;
105
+ /** 弹窗模式下的显隐控制(v-model:open),仅在 modalMode=true 时生效 */
106
+ open?: boolean;
107
+ /** 弹窗模式标题,默认「属性编辑」 */
108
+ title?: string;
109
+ /** 弹窗模式面板宽度,默认 720(number 为 px) */
110
+ modalWidth?: number | string;
111
+ /** 弹窗模式确定按钮文字,默认「确定」 */
112
+ okText?: string;
113
+ /** 弹窗模式取消按钮文字,默认「取消」 */
114
+ cancelText?: string;
102
115
  }
103
116
  /** MeInputProperty Events */
104
117
  export interface MeInputPropertyEmits {
@@ -110,6 +123,15 @@ export interface MeInputPropertyEmits {
110
123
  * @param validation 行级校验报告(重复 key、是否含空 key 等对象输出无法体现的信息)
111
124
  */
112
125
  (e: 'change', value: MeInputPropertyModel, validation?: MeInputPropertyValidation): void;
126
+ /** 弹窗模式显隐更新(v-model:open);非 modalMode 时忽略 */
127
+ (e: 'update:open', value: boolean): void;
128
+ /**
129
+ * 弹窗模式点「确定」且校验全部通过后触发。
130
+ * @param value 当前编辑值(与 modelValue 同形;对象模式为合并后对象,数组模式为行序数组,空 key 行被舍弃)
131
+ */
132
+ (e: 'ok', value: MeInputPropertyModel): void;
133
+ /** 弹窗模式取消关闭(取消按钮 / 遮罩 / Esc);非 modalMode 不触发 */
134
+ (e: 'cancel'): void;
113
135
  }
114
136
  /** change 事件附带的校验报告(行级信息,对象输出无法体现的数据问题) */
115
137
  export interface MeInputPropertyValidation {
@@ -1 +1 @@
1
- .me-input-radio{--me-input-radio-primary-color:#1677ff;--me-input-radio-border-color:#d9d9d9;--me-input-radio-bg:#fff;--me-input-radio-title-color:var(--me-input-radio-primary-color);--me-input-radio-desc-color:#6c7a91;--me-input-radio-checked-bg:#1677ff0a;--me-input-radio-checked-shadow:0 0 0 .25rem #1677ff40;--me-input-radio-ribbon-color:#1677ff;--me-input-radio-padding:10px;--me-input-radio-check-size:14px;--me-input-radio-ribbon-size:30px;--me-input-radio-check-offset-bottom:7px;--me-input-radio-check-offset-right:2px;border:2px solid var(--me-input-radio-border-color);padding:var(--me-input-radio-padding);white-space:pre-wrap;border-radius:4px;align-items:flex-start;height:auto;margin-bottom:10px;line-height:1.5;transition:border-color .3s,background .3s,color .3s;display:inline-flex;position:relative;box-shadow:0 1px 1px #1824330f}.me-input-radio--small{--me-input-radio-padding:4px;--me-input-radio-check-size:10px;--me-input-radio-ribbon-size:20px;--me-input-radio-check-offset-bottom:5px;--me-input-radio-check-offset-right:0px}.me-input-radio .ant-radio+span{flex:1;width:100%;padding-inline-start:8px;overflow:hidden}.me-input-radio .ant-radio{display:none}.me-input-radio--radio .ant-radio{align-self:center;display:inline-flex}.me-input-radio--radio.ant-radio-wrapper-checked:before,.me-input-radio--radio.ant-radio-wrapper-checked:after{display:none!important}.me-input-radio .ant-radio-checked .ant-radio-inner{border-color:var(--me-input-radio-primary-color);background-color:var(--me-input-radio-primary-color)}.me-input-radio .ant-radio-checked .ant-radio-inner:after{opacity:1;transition:all .3s cubic-bezier(.78,.14,.15,.86);transform:scale(1)}.me-input-radio__content{flex:1}.me-input-radio__title{word-break:break-all;color:var(--me-input-radio-title-color);font-size:15px;font-weight:700}.me-input-radio__desc{letter-spacing:.3px;font-size:11px;color:var(--me-input-radio-desc-color)!important}.me-input-radio.ant-radio-wrapper-checked{border-color:var(--me-input-radio-primary-color);box-shadow:var(--me-input-radio-checked-shadow);background:var(--me-input-radio-checked-bg)}.me-input-radio.ant-radio-wrapper-checked:before{content:"";width:var(--me-input-radio-check-size);height:calc(var(--me-input-radio-check-size) * .5);top:auto;bottom:var(--me-input-radio-check-offset-bottom);right:var(--me-input-radio-check-offset-right);z-index:9;background:0 0;border-top:none;border-bottom:2px solid #fff;border-left:2px solid #fff;border-right:none;display:block;position:absolute;transform:rotate(315deg)}.me-input-radio.ant-radio-wrapper-checked:after{content:"";border-bottom:var(--me-input-radio-ribbon-size) solid var(--me-input-radio-ribbon-color);border-left:var(--me-input-radio-ribbon-size) solid transparent;width:0;height:0;position:absolute;bottom:0;right:0}.me-input-radio.ant-radio-wrapper-checked.me-input-radio--top:before{top:0;bottom:auto}.me-input-radio.ant-radio-wrapper-checked.me-input-radio--top:after{border-bottom:none;border-top:var(--me-input-radio-ribbon-size) solid var(--me-input-radio-ribbon-color);top:0;bottom:auto}.me-input-radio.ant-radio-wrapper-disabled{cursor:not-allowed}html.dark .me-input-radio,.dark .me-input-radio{--me-input-radio-primary-color:#4096ff;--me-input-radio-border-color:#434343;--me-input-radio-bg:#1d1e1f;--me-input-radio-title-color:#4096ff;--me-input-radio-desc-color:#a6adbb;--me-input-radio-checked-bg:#4096ff1a;--me-input-radio-checked-shadow:0 0 0 .25rem #4096ff40;--me-input-radio-ribbon-color:#4096ff;background-color:var(--me-input-radio-bg)}
1
+ .me-input-radio{--me-input-radio-primary-color:#1677ff;--me-input-radio-border-color:#d9d9d9;--me-input-radio-bg:#fff;--me-input-radio-title-color:var(--me-input-radio-primary-color);--me-input-radio-desc-color:#6c7a91;--me-input-radio-checked-bg:#1677ff0a;--me-input-radio-checked-shadow:0 0 0 .25rem #1677ff40;--me-input-radio-ribbon-color:#1677ff;--me-input-radio-padding:10px;--me-input-radio-check-size:14px;--me-input-radio-ribbon-size:30px;--me-input-radio-check-offset-bottom:7px;--me-input-radio-check-offset-right:2px;border:2px solid var(--me-input-radio-border-color);padding:var(--me-input-radio-padding);white-space:pre-wrap;border-radius:4px;align-items:flex-start;height:auto;margin-bottom:10px;line-height:1.5;transition:border-color .3s,background .3s,color .3s;display:inline-flex;position:relative;box-shadow:0 1px 1px #1824330f}.me-input-radio--small{--me-input-radio-padding:4px;--me-input-radio-check-size:10px;--me-input-radio-ribbon-size:20px;--me-input-radio-check-offset-bottom:5px;--me-input-radio-check-offset-right:0px}.me-input-radio .ant-radio+span{flex:1;width:100%;padding-inline-start:8px;overflow:hidden}.me-input-radio .ant-radio{display:none}.me-input-radio--radio .ant-radio{align-self:center;display:inline-flex}.me-input-radio--radio.ant-radio-wrapper-checked:before,.me-input-radio--radio.ant-radio-wrapper-checked:after{display:none!important}.me-input-radio .ant-radio-checked .ant-radio-inner{border-color:var(--me-input-radio-primary-color);background-color:var(--me-input-radio-primary-color)}.me-input-radio .ant-radio-checked .ant-radio-inner:after{opacity:1;transition:all .3s cubic-bezier(.78,.14,.15,.86);transform:scale(1)}.me-input-radio__content{flex:1}.me-input-radio__title{word-break:break-all;color:var(--me-input-radio-title-color);font-size:15px;font-weight:700}.me-input-radio__desc{letter-spacing:.3px;min-height:var(--me-input-radio-desc-height,0);font-size:11px;color:var(--me-input-radio-desc-color)!important}.me-input-radio--uniform{--me-input-radio-desc-height:16px}.me-input-radio.ant-radio-wrapper-checked{border-color:var(--me-input-radio-primary-color);box-shadow:var(--me-input-radio-checked-shadow);background:var(--me-input-radio-checked-bg)}.me-input-radio.ant-radio-wrapper-checked:before{content:"";width:var(--me-input-radio-check-size);height:calc(var(--me-input-radio-check-size) * .5);top:auto;bottom:var(--me-input-radio-check-offset-bottom);right:var(--me-input-radio-check-offset-right);z-index:9;background:0 0;border-top:none;border-bottom:2px solid #fff;border-left:2px solid #fff;border-right:none;display:block;position:absolute;transform:rotate(315deg)}.me-input-radio.ant-radio-wrapper-checked:after{content:"";border-bottom:var(--me-input-radio-ribbon-size) solid var(--me-input-radio-ribbon-color);border-left:var(--me-input-radio-ribbon-size) solid transparent;width:0;height:0;position:absolute;bottom:0;right:0}.me-input-radio.ant-radio-wrapper-checked.me-input-radio--top:before{top:0;bottom:auto}.me-input-radio.ant-radio-wrapper-checked.me-input-radio--top:after{border-bottom:none;border-top:var(--me-input-radio-ribbon-size) solid var(--me-input-radio-ribbon-color);top:0;bottom:auto}.me-input-radio.ant-radio-wrapper-disabled{cursor:not-allowed;background-color:var(--ant-color-bg-container-disabled);border-color:var(--ant-color-border);box-shadow:none}.me-input-radio.ant-radio-wrapper-disabled .me-input-radio__title,.me-input-radio.ant-radio-wrapper-disabled .me-input-radio__desc{color:var(--ant-color-text-disabled)!important}.me-input-radio.ant-radio-wrapper-disabled.ant-radio-wrapper-checked{border-color:var(--ant-color-border);box-shadow:none;background-color:var(--ant-color-bg-container-disabled)}.me-input-radio.ant-radio-wrapper-disabled.ant-radio-wrapper-checked:after{border-bottom-color:var(--ant-color-border)}html.dark .me-input-radio,.dark .me-input-radio{--me-input-radio-primary-color:#4096ff;--me-input-radio-border-color:#434343;--me-input-radio-bg:#1d1e1f;--me-input-radio-title-color:#4096ff;--me-input-radio-desc-color:#a6adbb;--me-input-radio-checked-bg:#4096ff1a;--me-input-radio-checked-shadow:0 0 0 .25rem #4096ff40;--me-input-radio-ribbon-color:#4096ff;background-color:var(--me-input-radio-bg)}
@@ -1,9 +1,24 @@
1
- import { computed as e, createBlock as t, createElementVNode as n, defineComponent as r, mergeProps as i, normalizeStyle as a, openBlock as o, resolveComponent as s, toDisplayString as c, withCtx as l } from "vue";
1
+ import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, defineComponent as o, mergeProps as s, normalizeClass as c, normalizeStyle as l, openBlock as u, renderList as d, resolveComponent as f, toDisplayString as p, withCtx as m } from "vue";
2
2
  //#region src/components/input-radio/index.vue?vue&type=script&setup=true&lang.ts
3
- var u = { class: "me-input-radio__content" }, d = /* @__PURE__ */ r({
3
+ var h = { class: "me-input-radio__content" }, g = { class: "me-input-radio__title" }, _ = {
4
+ key: 0,
5
+ class: "me-input-radio__desc"
6
+ }, v = { class: "me-input-radio__content" }, y = { class: "me-input-radio__title" }, b = { class: "me-input-radio__desc" }, x = /* @__PURE__ */ o({
4
7
  name: "MeInputRadio",
5
8
  __name: "index",
6
9
  props: {
10
+ modelValue: {
11
+ type: [
12
+ String,
13
+ Number,
14
+ Boolean
15
+ ],
16
+ default: ""
17
+ },
18
+ options: {
19
+ type: Array,
20
+ default: () => []
21
+ },
7
22
  title: {
8
23
  type: String,
9
24
  default: ""
@@ -45,52 +60,74 @@ var u = { class: "me-input-radio__content" }, d = /* @__PURE__ */ r({
45
60
  default: ""
46
61
  }
47
62
  },
48
- setup(r) {
49
- let d = r, f = e(() => d.disabled ? {
50
- backgroundColor: "var(--ant-color-bg-container-disabled)",
51
- color: "var(--ant-color-text-disabled)",
52
- borderColor: "var(--ant-color-border)",
53
- boxShadow: "none",
54
- cursor: "not-allowed"
55
- } : {}), p = e(() => ({ ...f.value })), m = e(() => ({ ...f.value }));
56
- return (e, d) => {
57
- let f = s("a-radio");
58
- return o(), t(f, i({
59
- value: r.label,
60
- disabled: r.disabled
61
- }, e.$attrs, {
63
+ emits: ["update:modelValue", "change"],
64
+ setup(o, { emit: x }) {
65
+ let S = o, C = x, w = t(() => S.options && S.options.length > 0), T = t(() => S.options.some((e) => e.desc && e.desc.trim())), E = (e) => {
66
+ let t = e.target.value;
67
+ C("update:modelValue", t), C("change", t);
68
+ };
69
+ return (t, x) => {
70
+ let S = f("a-radio"), C = f("a-radio-group");
71
+ return w.value ? (u(), n(C, s({
72
+ key: 0,
73
+ value: o.modelValue,
74
+ onChange: E
75
+ }, t.$attrs, { class: "me-input-radio-group" }), {
76
+ default: m(() => [(u(!0), i(e, null, d(o.options, (e) => (u(), n(S, {
77
+ key: e.value,
78
+ value: e.value,
79
+ disabled: e.disabled,
80
+ class: c(["me-input-radio", {
81
+ "me-input-radio--uniform": T.value,
82
+ "me-input-radio--top": o.top,
83
+ "me-input-radio--small": o.size === "small",
84
+ "me-input-radio--radio": o.radio
85
+ }]),
86
+ style: l({
87
+ width: o.width,
88
+ marginRight: o.gap
89
+ })
90
+ }, {
91
+ default: m(() => [a("div", h, [a("div", g, p(e.label), 1), T.value ? (u(), i("div", _, p(e.desc), 1)) : r("", !0)])]),
92
+ _: 2
93
+ }, 1032, [
94
+ "value",
95
+ "disabled",
96
+ "class",
97
+ "style"
98
+ ]))), 128))]),
99
+ _: 1
100
+ }, 16, ["value"])) : (u(), n(S, s({
101
+ key: 1,
102
+ value: o.label,
103
+ disabled: o.disabled
104
+ }, t.$attrs, {
62
105
  class: ["me-input-radio", {
63
- "me-input-radio--top": r.top,
64
- "me-input-radio--small": r.size === "small",
65
- "me-input-radio--radio": r.radio
106
+ "me-input-radio--top": o.top,
107
+ "me-input-radio--small": o.size === "small",
108
+ "me-input-radio--radio": o.radio
66
109
  }],
67
110
  style: {
68
- width: r.width,
69
- marginRight: r.gap
111
+ width: o.width,
112
+ marginRight: o.gap
70
113
  }
71
114
  }), {
72
- default: l(() => [n("div", u, [n("div", {
73
- class: "me-input-radio__title",
74
- style: a(p.value)
75
- }, c(r.title), 5), n("div", {
76
- class: "me-input-radio__desc",
77
- style: a(m.value)
78
- }, c(r.desc), 5)])]),
115
+ default: m(() => [a("div", v, [a("div", y, p(o.title), 1), a("div", b, p(o.desc), 1)])]),
79
116
  _: 1
80
117
  }, 16, [
81
118
  "value",
82
119
  "disabled",
83
120
  "class",
84
121
  "style"
85
- ]);
122
+ ]));
86
123
  };
87
124
  }
88
125
  });
89
126
  //#endregion
90
127
  //#region src/components/input-radio/index.ts
91
- d.install = (e) => {
92
- e.component("MeInputRadio", d);
128
+ x.install = (e) => {
129
+ e.component("MeInputRadio", x);
93
130
  };
94
- var f = d;
131
+ var S = x;
95
132
  //#endregion
96
- export { d as MeInputRadio, f as default };
133
+ export { x as MeInputRadio, S as default };
@@ -1,11 +1,22 @@
1
1
  import { PropType } from 'vue';
2
+ import { MeInputRadioOption } from './types';
2
3
  declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
3
- /** 标题 */
4
+ /** 绑定值(仅 options 模式下生效,支持 v-model) */
5
+ modelValue: {
6
+ type: PropType<string | number | boolean>;
7
+ default: string;
8
+ };
9
+ /** 选项配置数组,传入后组件以单选组模式渲染 */
10
+ options: {
11
+ type: PropType<MeInputRadioOption[]>;
12
+ default: () => never[];
13
+ };
14
+ /** 标题(单卡模式) */
4
15
  title: {
5
16
  type: StringConstructor;
6
17
  default: string;
7
18
  };
8
- /** 描述 */
19
+ /** 描述(单卡模式) */
9
20
  desc: {
10
21
  type: StringConstructor;
11
22
  default: string;
@@ -35,23 +46,36 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
35
46
  type: PropType<"small" | "normal">;
36
47
  default: string;
37
48
  };
38
- /** 是否禁用 */
49
+ /** 是否禁用(单卡模式) */
39
50
  disabled: {
40
51
  type: BooleanConstructor;
41
52
  default: boolean;
42
53
  };
43
- /** 单选框的值 */
54
+ /** 单选框的值(单卡模式) */
44
55
  label: {
45
56
  type: PropType<string | number | boolean>;
46
57
  default: string;
47
58
  };
48
- }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
49
- /** 标题 */
59
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
60
+ change: (value: string | number | boolean) => any;
61
+ "update:modelValue": (value: string | number | boolean) => any;
62
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
63
+ /** 绑定值(仅 options 模式下生效,支持 v-model) */
64
+ modelValue: {
65
+ type: PropType<string | number | boolean>;
66
+ default: string;
67
+ };
68
+ /** 选项配置数组,传入后组件以单选组模式渲染 */
69
+ options: {
70
+ type: PropType<MeInputRadioOption[]>;
71
+ default: () => never[];
72
+ };
73
+ /** 标题(单卡模式) */
50
74
  title: {
51
75
  type: StringConstructor;
52
76
  default: string;
53
77
  };
54
- /** 描述 */
78
+ /** 描述(单卡模式) */
55
79
  desc: {
56
80
  type: StringConstructor;
57
81
  default: string;
@@ -81,17 +105,20 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
81
105
  type: PropType<"small" | "normal">;
82
106
  default: string;
83
107
  };
84
- /** 是否禁用 */
108
+ /** 是否禁用(单卡模式) */
85
109
  disabled: {
86
110
  type: BooleanConstructor;
87
111
  default: boolean;
88
112
  };
89
- /** 单选框的值 */
113
+ /** 单选框的值(单卡模式) */
90
114
  label: {
91
115
  type: PropType<string | number | boolean>;
92
116
  default: string;
93
117
  };
94
- }>> & Readonly<{}>, {
118
+ }>> & Readonly<{
119
+ onChange?: ((value: string | number | boolean) => any) | undefined;
120
+ "onUpdate:modelValue"?: ((value: string | number | boolean) => any) | undefined;
121
+ }>, {
95
122
  size: "normal" | "small";
96
123
  title: string;
97
124
  label: string | number | boolean;
@@ -99,6 +126,8 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
99
126
  top: boolean;
100
127
  width: string;
101
128
  disabled: boolean;
129
+ modelValue: string | number | boolean;
130
+ options: MeInputRadioOption[];
102
131
  radio: boolean;
103
132
  gap: string;
104
133
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -1,8 +1,23 @@
1
+ /** 单选项配置 */
2
+ export interface MeInputRadioOption {
3
+ /** 选中值 */
4
+ value: string | number | boolean;
5
+ /** 标题(显示文本) */
6
+ label: string;
7
+ /** 描述 */
8
+ desc?: string;
9
+ /** 是否禁用 */
10
+ disabled?: boolean;
11
+ }
1
12
  /** MeInputRadio 组件 Props */
2
13
  export interface MeInputRadioProps {
3
- /** 标题 */
14
+ /** 绑定值(仅 options 模式下生效,支持 v-model) */
15
+ modelValue?: string | number | boolean;
16
+ /** 选项配置数组,传入后组件以单选组模式渲染 */
17
+ options?: MeInputRadioOption[];
18
+ /** 标题(单卡模式) */
4
19
  title?: string;
5
- /** 描述 */
20
+ /** 描述(单卡模式) */
6
21
  desc?: string;
7
22
  /** 是否显示单选圆点 */
8
23
  radio?: boolean;
@@ -14,10 +29,17 @@ export interface MeInputRadioProps {
14
29
  gap?: string;
15
30
  /** 尺寸 */
16
31
  size?: 'small' | 'normal';
17
- /** 是否禁用 */
32
+ /** 是否禁用(单卡模式) */
18
33
  disabled?: boolean;
19
- /** 单选框的值 */
34
+ /** 单选框的值(单卡模式) */
20
35
  label?: string | number | boolean;
21
36
  }
37
+ /** MeInputRadio 组件 Emits */
38
+ export interface MeInputRadioEmits {
39
+ /** v-model 事件(仅 options 模式) */
40
+ (e: 'update:modelValue', value: string | number | boolean): void;
41
+ /** 值变化事件(仅 options 模式) */
42
+ (e: 'change', value: string | number | boolean): void;
43
+ }
22
44
  /** MeInputRadio 组件实例类型 */
23
45
  export type MeInputRadioInstance = InstanceType<typeof import('./index.vue').default>;