Commit 8d6029980538494979f0585dbd4823d1923cc6f8

Authored by liuhanchen
1 parent cf0e2f1a

feat: 优化form响应式

packages/form-item/index.vue
@@ -6,12 +6,12 @@ export default { @@ -6,12 +6,12 @@ export default {
6 labelWidth: String, 6 labelWidth: String,
7 value: [Number, String, Array, Boolean, Object], 7 value: [Number, String, Array, Boolean, Object],
8 prop: String, 8 prop: String,
9 - span: {  
10 - type: [Number, String],  
11 - default() {  
12 - return this.zForm ? this.zForm.span : undefined;  
13 - },  
14 - }, 9 + span: [Number, String],
  10 + xs: [Number, Object],
  11 + sm: [Number, Object],
  12 + md: [Number, Object],
  13 + lg: [Number, Object],
  14 + xl: [Number, Object],
15 }, 15 },
16 provide() { 16 provide() {
17 return { 17 return {
@@ -47,7 +47,7 @@ export default { @@ -47,7 +47,7 @@ export default {
47 } 47 }
48 } 48 }
49 } 49 }
50 - return h('el-col', { props: { span: this.span ? Number(this.span) : undefined } }, [ 50 + return h('el-col', { props: this.colProps(['span', 'xs', 'sm', 'md', 'lg', 'xl']) }, [
51 h( 51 h(
52 'el-form-item', 52 'el-form-item',
53 { 53 {
@@ -58,5 +58,17 @@ export default { @@ -58,5 +58,17 @@ export default {
58 ), 58 ),
59 ]); 59 ]);
60 }, 60 },
  61 + methods: {
  62 + colProps(props) {
  63 + return props.reduce((result, key) => {
  64 + if (this[key]) {
  65 + result[key] = this[key];
  66 + } else {
  67 + result[key] = this.zForm ? this.zForm[key] : undefined;
  68 + }
  69 + return result;
  70 + }, {});
  71 + },
  72 + },
61 }; 73 };
62 </script> 74 </script>
packages/form/index.vue
@@ -23,6 +23,11 @@ export default { @@ -23,6 +23,11 @@ export default {
23 }, 23 },
24 }, 24 },
25 span: [Number, String], 25 span: [Number, String],
  26 + xs: [Number, Object],
  27 + sm: [Number, Object],
  28 + md: [Number, Object],
  29 + lg: [Number, Object],
  30 + xl: [Number, Object],
26 itemComponent: String, 31 itemComponent: String,
27 }, 32 },
28 provide() { 33 provide() {