diff --git a/packages/form/src/Form.vue b/packages/form/src/Form.vue
index 72bf61f1..a2fbc3e2 100644
--- a/packages/form/src/Form.vue
+++ b/packages/form/src/Form.vue
@@ -4,7 +4,6 @@
ref="tMagicForm"
:model="values"
:label-width="labelWidth"
- :disabled="disabled"
:style="`height: ${height}`"
:inline="inline"
:label-position="labelPosition"
@@ -12,6 +11,7 @@
@@ -30,6 +31,7 @@ const props = defineProps<{
span?: number;
size?: string;
prop?: string;
+ disabled?: boolean;
}>();
const emit = defineEmits(['change']);
diff --git a/packages/form/src/containers/Container.vue b/packages/form/src/containers/Container.vue
index c92ee9d4..7cbaa536 100644
--- a/packages/form/src/containers/Container.vue
+++ b/packages/form/src/containers/Container.vue
@@ -21,6 +21,7 @@
:is="tagName"
:model="model"
:config="config"
+ :disabled="disabled"
:name="name"
:prop="itemProp"
:step-active="stepActive"
@@ -87,6 +88,7 @@
:model="name || name === 0 ? model[name] : model"
:config="item"
:size="size"
+ :disabled="disabled"
:step-active="stepActive"
:expand-more="expand"
:label-width="itemLabelWidth"
@@ -97,7 +99,7 @@
- {{
+ {{
expand ? '收起配置' : '展开更多配置'
}}
@@ -118,6 +120,7 @@ const props = withDefaults(
model: FormValue;
config: ChildConfig;
prop?: string;
+ disabled?: boolean;
labelWidth?: string;
expandMore?: boolean;
stepActive?: string | number;
@@ -159,7 +162,9 @@ const tagName = computed(() => {
return 'm-fields-text';
});
-const disabled = computed(() => filterFunction(mForm, props.config.disabled, props));
+const disabled = computed(() =>
+ typeof props.disabled === 'undefined' ? filterFunction(mForm, props.config.disabled, props) : props.disabled,
+);
const tooltip = computed(() => filterFunction(mForm, props.config.tooltip, props));
diff --git a/packages/form/src/containers/Fieldset.vue b/packages/form/src/containers/Fieldset.vue
index 9cdd9a2c..b62b2ef3 100644
--- a/packages/form/src/containers/Fieldset.vue
+++ b/packages/form/src/containers/Fieldset.vue
@@ -27,6 +27,7 @@
:rules="name ? rules[name] : []"
:config="item"
:prop="prop"
+ :disabled="disabled"
:labelWidth="lWidth"
:size="size"
@change="change"
@@ -46,6 +47,7 @@
:prop="prop"
:labelWidth="lWidth"
:size="size"
+ :disabled="disabled"
@change="change"
>
@@ -69,6 +71,7 @@ const props = withDefaults(
model: Record;
config: FieldsetConfig;
rules?: any;
+ disabled?: boolean;
}>(),
{
rules: {},
diff --git a/packages/form/src/containers/GroupList.vue b/packages/form/src/containers/GroupList.vue
index 74a4b141..f5d94837 100644
--- a/packages/form/src/containers/GroupList.vue
+++ b/packages/form/src/containers/GroupList.vue
@@ -15,13 +15,14 @@
:index="index"
:label-width="labelWidth"
:size="size"
+ :disabled="disabled"
:group-model="model[name]"
@remove-item="removeHandler"
@swap-item="swapHandler"
@change="changeHandler"
>
- 添加组
+ 添加组
切换为表格
@@ -45,6 +46,7 @@ const props = defineProps<{
labelWidth?: string;
prop?: string;
size?: string;
+ disabled?: boolean;
}>();
const emit = defineEmits(['change']);
diff --git a/packages/form/src/containers/GroupListItem.vue b/packages/form/src/containers/GroupListItem.vue
index 1effbeae..9a2f3815 100644
--- a/packages/form/src/containers/GroupListItem.vue
+++ b/packages/form/src/containers/GroupListItem.vue
@@ -5,21 +5,22 @@
>
- {{ title }}
+ {{ title }}
- 上移
- 下移
@@ -34,6 +35,7 @@
:labelWidth="labelWidth"
:prop="`${prop}${prop ? '.' : ''}${String(index)}`"
:size="size"
+ :disabled="disabled"
@change="changeHandler"
>
@@ -58,6 +60,7 @@ const props = defineProps<{
prop?: string;
size?: string;
index: number;
+ disabled?: boolean;
}>();
const emit = defineEmits(['swap-item', 'remove-item', 'change']);
diff --git a/packages/form/src/containers/Panel.vue b/packages/form/src/containers/Panel.vue
index 350efc2b..9782e247 100644
--- a/packages/form/src/containers/Panel.vue
+++ b/packages/form/src/containers/Panel.vue
@@ -25,6 +25,7 @@
:model="name ? model[name] : model"
:prop="prop"
:size="size"
+ :disabled="disabled"
:label-width="config.labelWidth || labelWidth"
@change="changeHandler"
>
@@ -41,6 +42,7 @@
:model="name ? model[name] : model"
:prop="prop"
:size="size"
+ :disabled="disabled"
:label-width="config.labelWidth || labelWidth"
@change="changeHandler"
>
@@ -67,6 +69,7 @@ const props = defineProps<{
labelWidth?: string;
prop?: string;
size?: string;
+ disabled?: boolean;
}>();
const emit = defineEmits(['change']);
diff --git a/packages/form/src/containers/Row.vue b/packages/form/src/containers/Row.vue
index e1fd80f3..0473449b 100644
--- a/packages/form/src/containers/Row.vue
+++ b/packages/form/src/containers/Row.vue
@@ -10,6 +10,7 @@
:model="name ? model[name] : model"
:prop="prop"
:size="size"
+ :disabled="disabled"
@change="changeHandler"
/>
@@ -32,6 +33,7 @@ const props = defineProps<{
prop?: string;
size?: string;
expandMore?: boolean;
+ disabled?: boolean;
}>();
const emit = defineEmits(['change']);
diff --git a/packages/form/src/containers/Step.vue b/packages/form/src/containers/Step.vue
index 7232292d..40f6e16e 100644
--- a/packages/form/src/containers/Step.vue
+++ b/packages/form/src/containers/Step.vue
@@ -20,6 +20,7 @@
:model="step.name ? model[step.name] : model"
:prop="`${step.name}`"
:size="size"
+ :disabled="disabled"
:label-width="config.labelWidth || labelWidth"
@change="changeHandler"
>
@@ -44,6 +45,7 @@ const props = withDefaults(
stepActive?: number;
labelWidth?: string;
size?: string;
+ disabled?: boolean;
}>(),
{
stepActive: 1,
diff --git a/packages/form/src/containers/Table.vue b/packages/form/src/containers/Table.vue
index 1aaa3e95..edf87a44 100644
--- a/packages/form/src/containers/Table.vue
+++ b/packages/form/src/containers/Table.vue
@@ -50,6 +50,7 @@
size="small"
type="primary"
:icon="ArrowUp"
+ :disabled="disabled"
text
@click="upHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
@dblclick="topHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
@@ -65,6 +66,7 @@
size="small"
type="primary"
:icon="ArrowDown"
+ :disabled="disabled"
text
@click="downHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
@dblclick="bottomHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
@@ -100,6 +102,7 @@
- 添加
+ 添加
+
- 导入EXCEL 导入EXCEL
- 清空
+ 清空
@@ -191,6 +200,7 @@ const props = withDefaults(
prop?: string;
labelWidth?: string;
sort?: boolean;
+ disabled?: boolean;
sortKey?: string;
text?: string;
size?: string;
@@ -414,6 +424,7 @@ const itemExtra = (fuc: any, index: number) => {
};
const removeHandler = (index: number) => {
+ if (props.disabled) return;
props.model[modelName.value].splice(index, 1);
emit('change', props.model[modelName.value]);
};
diff --git a/packages/form/src/containers/Tabs.vue b/packages/form/src/containers/Tabs.vue
index 3ced9f36..0119fffa 100644
--- a/packages/form/src/containers/Tabs.vue
+++ b/packages/form/src/containers/Tabs.vue
@@ -22,6 +22,7 @@
v-for="item in tabItems(tab)"
:key="item[mForm?.keyProp || '__key']"
:config="item"
+ :disabled="disabled"
:model="
config.dynamic
? (name ? model[name] : model)[tabIndex]
@@ -90,6 +91,7 @@ const props = defineProps<{
labelWidth?: string;
prop?: string;
expandMore?: boolean;
+ disabled?: boolean;
}>();
const emit = defineEmits(['change']);