File tree Expand file tree Collapse file tree 3 files changed +25
-15
lines changed
Expand file tree Collapse file tree 3 files changed +25
-15
lines changed Original file line number Diff line number Diff line change 99 :rules =" computedRules"
1010 @submit.native.prevent =" handleSubmitForm"
1111 ref =" form"
12+ :disabled =" disabled"
1213 v-bind =" formAttrs"
1314 >
1415 <!-- 默认插槽作为表单项 -->
2930 :field =" field"
3031 :props =" $props"
3132 :formData =" formData"
32- :disabled =" disabled || formItem._disabled"
33+ :disabled =" formItem._disabled"
3334 :type =" formItem._type"
3435 :options =" formItem._options"
3536 >
5657 :field =" field"
5758 :formData =" formData"
5859 :name =" field"
59- :disabled =" disabled || formItem._disabled"
60+ :disabled =" formItem._disabled"
6061 :type =" formItem._type"
6162 :options =" formItem._options"
6263 >
6364 <component
64- :disabled =" disabled || formItem._disabled"
65+ :disabled =" formItem._disabled"
66+ :readonly =" readonly"
6567 :desc =" formItem"
6668 :is =" formItem._type"
6769 :options =" formItem._options"
@@ -222,6 +224,11 @@ export default {
222224 type: Boolean ,
223225 default: false
224226 },
227+ // 全局的readonly
228+ readonly: {
229+ type: Boolean ,
230+ default: false
231+ },
225232 // 是否为弹窗
226233 isDialog: {
227234 type: Boolean ,
@@ -393,6 +400,7 @@ export default {
393400 formDescKeys () {
394401 return Object .keys (this .computedFormDesc )
395402 },
403+ // 对formDesc做处理
396404 computedFormDesc () {
397405 const desc = this .getDeepFormDesc (this .formDesc )
398406 Object .keys (desc).forEach (field => {
Original file line number Diff line number Diff line change @@ -41,7 +41,8 @@ export default {
4141 this . defaultAttrs ,
4242 this . globalComponentAttrs ,
4343 this . customAttrs ,
44- { disabled : this . disabled || this . customAttrs . disabled }
44+ { disabled : this . disabled || this . customAttrs . disabled } ,
45+ { readonly : this . readonly || this . customAttrs . readonly }
4546 )
4647 }
4748 }
Original file line number Diff line number Diff line change @@ -11,40 +11,41 @@ export default {
1111 props : {
1212 value : { } ,
1313 disabled : Boolean ,
14+ readonly : Boolean ,
1415 options : {
1516 type : Array ,
16- default ( ) {
17+ default ( ) {
1718 return [ ]
1819 }
1920 } ,
2021 desc : {
2122 type : Object ,
22- default ( ) {
23+ default ( ) {
2324 return { }
2425 }
2526 }
2627 } ,
2728 computed : {
28- slots ( ) {
29+ slots ( ) {
2930 return this . desc . slots || { }
3031 } ,
31- scopedSlots ( ) {
32+ scopedSlots ( ) {
3233 return this . desc . scopedSlots || { }
3334 } ,
34- onEvents ( ) {
35+ onEvents ( ) {
3536 return Object . assign ( { } , this . defaultOn , this . desc . on )
3637 }
3738 } ,
3839 watch : {
3940 // 当值发生变化时
4041 value : {
41- handler ( value ) {
42+ handler ( value ) {
4243 this . handleValueChanged ( value )
4344 } ,
4445 immediate : true
4546 }
4647 } ,
47- data ( ) {
48+ data ( ) {
4849 return {
4950 // 默认事件
5051 defaultOn : {
@@ -56,7 +57,7 @@ export default {
5657 } ,
5758 methods : {
5859 // 模拟数据
59- mockData ( ) {
60+ mockData ( ) {
6061 const Mock = mock ( )
6162 if ( Mock ) {
6263 if ( this . desc . mock === true && this . mockRule !== false ) {
@@ -80,12 +81,12 @@ export default {
8081 } ,
8182
8283 // 变化处理
83- handleChange ( value ) {
84+ handleChange ( value ) {
8485 this . $emit ( 'input' , value )
8586 } ,
8687
8788 // 检查类型
88- checkType ( val , isDefault = false ) {
89+ checkType ( val , isDefault = false ) {
8990 if ( this . type && isDef ( val ) ) {
9091 const isOk = is ( val , this . type )
9192 if ( ! isOk ) {
@@ -106,7 +107,7 @@ export default {
106107 } ,
107108
108109 // 初始化数据
109- handleValueChanged ( value ) {
110+ handleValueChanged ( value ) {
110111 if ( this . desc . displayFormatter ) {
111112 value = this . desc . displayFormatter ( value )
112113 }
You can’t perform that action at this time.
0 commit comments