haiwei-ui 1.0.3 → 1.0.4

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 (109) hide show
  1. package/README.md +10 -0
  2. package/package.json +1 -1
  3. package/packages/components/box/index.vue +116 -125
  4. package/packages/components/box-col/index.vue +30 -33
  5. package/packages/components/box-row/index.vue +17 -17
  6. package/packages/components/box-small/index.vue +38 -38
  7. package/packages/components/button/index.vue +29 -42
  8. package/packages/components/button-copy/index.vue +46 -62
  9. package/packages/components/button-delete/index.vue +64 -77
  10. package/packages/components/button-delete-batch/index.vue +82 -95
  11. package/packages/components/button-has/index.vue +29 -42
  12. package/packages/components/checkbox-group/index.vue +85 -85
  13. package/packages/components/color-picker/index.vue +41 -50
  14. package/packages/components/container/index.vue +8 -8
  15. package/packages/components/date-range-picker/index.vue +92 -103
  16. package/packages/components/details/index.vue +72 -79
  17. package/packages/components/dialog/index.vue +281 -294
  18. package/packages/components/drag-sort/index.vue +36 -36
  19. package/packages/components/drag-sort-dialog/index.vue +58 -58
  20. package/packages/components/drawer/index.vue +157 -166
  21. package/packages/components/enums/sex/index.vue +1 -1
  22. package/packages/components/flex/index.vue +33 -33
  23. package/packages/components/form/index.vue +123 -138
  24. package/packages/components/form-dialog/index.vue +184 -217
  25. package/packages/components/form-page/index.vue +134 -151
  26. package/packages/components/icon/index.vue +6 -6
  27. package/packages/components/icon-picker/index.vue +30 -30
  28. package/packages/components/icon-picker/panel.vue +58 -58
  29. package/packages/components/label/index.vue +22 -30
  30. package/packages/components/list/components/export/index.vue +101 -99
  31. package/packages/components/list/components/footer/index.vue +42 -51
  32. package/packages/components/list/components/header/index.vue +34 -34
  33. package/packages/components/list/components/querybar/index.vue +144 -144
  34. package/packages/components/list/components/select-column/index.vue +30 -30
  35. package/packages/components/list/components/table/index.vue +169 -188
  36. package/packages/components/list/index.vue +337 -391
  37. package/packages/components/list-agile/index.vue +145 -145
  38. package/packages/components/list-dialog/index.vue +70 -84
  39. package/packages/components/listbox/index.vue +48 -48
  40. package/packages/components/login-default/index.vue +107 -107
  41. package/packages/components/login-neon/index.vue +104 -104
  42. package/packages/components/map/index.vue +229 -229
  43. package/packages/components/map-coord-picking/index.vue +220 -219
  44. package/packages/components/map-search/index.vue +75 -72
  45. package/packages/components/scrollbar/index.vue +11 -11
  46. package/packages/components/select-whether/index.vue +30 -30
  47. package/packages/components/split/index.vue +141 -141
  48. package/packages/components/split/trigger.vue +15 -15
  49. package/packages/components/tabnav/index.vue +125 -89
  50. package/packages/components/tabs/index.vue +31 -31
  51. package/packages/components/toolbar/components/fullscreen/index.vue +10 -10
  52. package/packages/components/toolbar/components/logout/index.vue +13 -13
  53. package/packages/components/toolbar/components/skin-toggle/form.vue +59 -59
  54. package/packages/components/toolbar/components/skin-toggle/index.vue +12 -12
  55. package/packages/components/toolbar/components/userInfo/index.vue +18 -18
  56. package/packages/components/toolbar/index.vue +12 -12
  57. package/packages/components/tree-select/mixins.vue +261 -270
  58. package/packages/components/txt/index.vue +17 -17
  59. package/packages/components/update-password/index.vue +45 -57
  60. package/packages/layout.vue +18 -18
  61. package/packages/mixins/components/checkbox.vue +71 -82
  62. package/packages/mixins/components/radio.vue +69 -69
  63. package/packages/page/403/index.vue +32 -28
  64. package/packages/page/404/index.vue +32 -28
  65. package/packages/page/default/index.vue +17 -13
  66. package/packages/page/iframe/index.vue +6 -6
  67. package/packages/page/login/index.vue +9 -9
  68. package/packages/page/userInfo/index.vue +5 -5
  69. package/packages/router/index.js +1 -9
  70. package/packages/skins/pretty/components/header/components/breadcrumb/index.vue +29 -29
  71. package/packages/skins/pretty/components/header/components/theme/index.vue +22 -21
  72. package/packages/skins/pretty/components/header/index.vue +12 -12
  73. package/packages/skins/pretty/components/main/index.vue +27 -27
  74. package/packages/skins/pretty/components/menus/index.vue +28 -28
  75. package/packages/skins/pretty/components/menus/item.vue +23 -23
  76. package/packages/skins/pretty/components/sidebar/index.vue +7 -7
  77. package/packages/skins/pretty/index.vue +6 -6
  78. package/packages/skins/pretty/styles/themes/blue-light/_index.scss +2 -2
  79. package/packages/skins/pretty/styles/themes/default/_index.scss +1 -1
  80. package/packages/skins/pretty/styles/themes/green/_index.scss +2 -2
  81. package/packages/skins/pretty/styles/themes/green-light/_index.scss +2 -2
  82. package/packages/styles/_mixins.scss +24 -25
  83. package/packages/styles/animation/_index.scss +22 -23
  84. package/packages/styles/animation/breadcrumb.scss +6 -6
  85. package/packages/styles/animation/fade.scss +11 -11
  86. package/packages/styles/animation/move.scss +98 -98
  87. package/packages/styles/components/box-small/_index.scss +58 -58
  88. package/packages/styles/components/button/_index.scss +7 -7
  89. package/packages/styles/components/container/_index.scss +26 -26
  90. package/packages/styles/components/date-range-picker/_index.scss +4 -4
  91. package/packages/styles/components/details/_index.scss +66 -67
  92. package/packages/styles/components/details-dialog/_index.scss +13 -13
  93. package/packages/styles/components/drag-sort/_index.scss +20 -20
  94. package/packages/styles/components/drag-sort-dialog/_index.scss +7 -7
  95. package/packages/styles/components/flex/_index.scss +56 -56
  96. package/packages/styles/components/form-dialog/_index.scss +11 -11
  97. package/packages/styles/components/icon/_index.scss +6 -6
  98. package/packages/styles/components/label/_index.scss +245 -245
  99. package/packages/styles/components/listbox/_index.scss +47 -47
  100. package/packages/styles/components/split/_index.scss +102 -102
  101. package/packages/styles/components/toolbar/_index.scss +98 -98
  102. package/packages/styles/components/txt/_index.scss +13 -13
  103. package/packages/styles/components/upload-dialog/_index.scss +44 -44
  104. package/packages/styles/components/upload-multiple/_index.scss +19 -19
  105. package/packages/styles/components/upload-single/_index.scss +16 -16
  106. package/packages/utils/resize-event.js +3 -3
  107. package/packages/vuter/attributes.json +30 -40
  108. package/packages/vuter/tags.json +11 -27
  109. package/public/lib/font/iconfont.js +47 -1
@@ -1,153 +1,138 @@
1
1
  <template>
2
- <el-form
3
- class="nm-form"
4
- ref="form"
5
- :model="model"
6
- :rules="rules"
7
- :label-width="labelWidth"
8
- :label-position="labelPosition"
9
- :size="fontSize"
10
- :inline="inline"
11
- :disabled="disabled"
12
- v-loading="showLoading"
13
- :element-loading-text="loadingText"
14
- :element-loading-background="loadingBackground"
15
- :element-loading-spinner="loadingSpinner"
16
- @validate="onValidate"
17
- >
2
+ <el-form class="nm-form" ref="form" :model="model" :rules="rules" :label-width="labelWidth" :label-position="labelPosition" :size="fontSize" :inline="inline" :disabled="disabled" v-loading="showLoading" :element-loading-text="loadingText" :element-loading-background="loadingBackground" :element-loading-spinner="loadingSpinner" @validate="onValidate">
18
3
  <slot />
19
4
  </el-form>
20
5
  </template>
21
6
  <script>
22
- import loading from '../../mixins/components/loading'
23
- export default {
24
- name: 'Form',
25
- mixins: [loading],
26
- data() {
27
- return {
28
- loading_: false
29
- }
30
- },
31
- props: {
32
- /** 表单对象 */
33
- model: {
34
- type: Object,
35
- required: true
36
- },
37
- /** 验证规则 */
38
- rules: Object,
39
- /** 提交请求 */
40
- action: Function,
41
- /** 行内表单模式 */
42
- inline: Boolean,
43
- /** 是否显示成功提示消息 */
44
- successMsg: {
45
- type: Boolean,
46
- default: true
47
- },
48
- /** 成功提示消息文本 */
49
- successMsgText: {
50
- type: String,
51
- default: '保存成功'
52
- },
53
- /** 标签的宽度 */
54
- labelWidth: {
55
- type: String,
56
- default: '100px'
57
- },
58
- /** 表单域标签的位置,如果值为 left 或者 right 时,则需要设置 label-width */
59
- labelPosition: {
60
- type: String,
61
- default: 'right'
62
- },
63
- // 自定义验证
64
- customValidate: Function,
65
- /** 禁用表单 */
66
- disabled: Boolean,
67
- /** 显示加载动画 */
68
- loading: Boolean,
69
- /** 不显示加载动画 */
70
- noLoading: Boolean,
71
- /** 自定义重置操作 */
72
- customResetFunction: Function
73
- },
74
- computed: {
75
- showLoading() {
76
- return !this.noLoading && (this.loading_ || this.loading)
77
- }
78
- },
79
- methods: {
80
- /** 提交 */
81
- submit() {
82
- this.validate(() => {
83
- this.openLoading()
84
- this.action(this.model)
85
- .then(data => {
86
- if (this.successMsg === true) {
87
- this._success(this.successMsgText)
88
- }
89
- this.$emit('success', data)
90
- })
91
- .catch(() => {
92
- this.$emit('error')
93
- })
94
- .finally(() => {
95
- this.closeLoading()
96
- })
97
- })
7
+ import loading from '../../mixins/components/loading'
8
+ export default {
9
+ name: 'Form',
10
+ mixins: [loading],
11
+ data() {
12
+ return {
13
+ loading_: false
14
+ }
98
15
  },
99
- /** 表单验证 */
100
- validate(callback) {
101
- this.$refs.form.validate(async valid => {
102
- // 自定义验证
103
- if (valid && (!this.customValidate || this.customValidate() === true)) {
104
- callback()
105
- } else {
106
- // 验证失败
107
- this.$emit('validate-error')
108
- }
109
- })
16
+ props: {
17
+ /** 表单对象 */
18
+ model: {
19
+ type: Object,
20
+ required: true
21
+ },
22
+ /** 验证规则 */
23
+ rules: Object,
24
+ /** 提交请求 */
25
+ action: Function,
26
+ /** 行内表单模式 */
27
+ inline: Boolean,
28
+ /** 是否显示成功提示消息 */
29
+ successMsg: {
30
+ type: Boolean,
31
+ default: true
32
+ },
33
+ /** 成功提示消息文本 */
34
+ successMsgText: {
35
+ type: String,
36
+ default: '保存成功'
37
+ },
38
+ /** 标签的宽度 */
39
+ labelWidth: {
40
+ type: String,
41
+ default: '100px'
42
+ },
43
+ /** 表单域标签的位置,如果值为 left 或者 right 时,则需要设置 label-width */
44
+ labelPosition: {
45
+ type: String,
46
+ default: 'right'
47
+ },
48
+ // 自定义验证
49
+ customValidate: Function,
50
+ /** 禁用表单 */
51
+ disabled: Boolean,
52
+ /** 显示加载动画 */
53
+ loading: Boolean,
54
+ /** 不显示加载动画 */
55
+ noLoading: Boolean,
56
+ /** 自定义重置操作 */
57
+ customResetFunction: Function
110
58
  },
111
- /** 重置 */
112
- reset() {
113
- if (this.customResetFunction) {
114
- this.customResetFunction()
115
- } else {
116
- this.$refs.form.resetFields()
117
- this.resetChildren(this.$refs.form)
59
+ computed: {
60
+ showLoading() {
61
+ return !this.noLoading && (this.loading_ || this.loading)
118
62
  }
119
- this.$emit('reset')
120
63
  },
121
- /** 重置子组件 */
122
- resetChildren(vnode) {
123
- if (vnode.$children && vnode.$children.length > 0) {
124
- vnode.$children.forEach(item => {
125
- if (item && item.reset && typeof item.reset === 'function') {
126
- item.reset()
64
+ methods: {
65
+ /** 提交 */
66
+ submit() {
67
+ this.validate(() => {
68
+ this.openLoading()
69
+ this.action(this.model)
70
+ .then(data => {
71
+ if (this.successMsg === true) {
72
+ this._success(this.successMsgText)
73
+ }
74
+ this.$emit('success', data)
75
+ })
76
+ .catch(() => {
77
+ this.$emit('error')
78
+ })
79
+ .finally(() => {
80
+ this.closeLoading()
81
+ })
82
+ })
83
+ },
84
+ /** 表单验证 */
85
+ validate(callback) {
86
+ this.$refs.form.validate(async valid => {
87
+ // 自定义验证
88
+ if (valid && (!this.customValidate || this.customValidate() === true)) {
89
+ callback()
90
+ } else {
91
+ // 验证失败
92
+ this.$emit('validate-error')
127
93
  }
128
- this.resetChildren(item)
129
94
  })
95
+ },
96
+ /** 重置 */
97
+ reset() {
98
+ if (this.customResetFunction) {
99
+ this.customResetFunction()
100
+ } else {
101
+ this.$refs.form.resetFields()
102
+ this.resetChildren(this.$refs.form)
103
+ }
104
+ this.$emit('reset')
105
+ },
106
+ /** 重置子组件 */
107
+ resetChildren(vnode) {
108
+ if (vnode.$children && vnode.$children.length > 0) {
109
+ vnode.$children.forEach(item => {
110
+ if (item && item.reset && typeof item.reset === 'function') {
111
+ item.reset()
112
+ }
113
+ this.resetChildren(item)
114
+ })
115
+ }
116
+ },
117
+ /** 清除验证结果 */
118
+ clearValidate(props) {
119
+ this.$refs.form.clearValidate(props)
120
+ },
121
+ /** 打开加载中 */
122
+ openLoading() {
123
+ if (!this.noLoading) {
124
+ this.loading_ = true
125
+ }
126
+ },
127
+ /** 关闭加载中 */
128
+ closeLoading() {
129
+ if (!this.noLoading) {
130
+ this.loading_ = false
131
+ }
132
+ },
133
+ onValidate(prop, valid, msg) {
134
+ this.$emit('validate', prop, valid, msg)
130
135
  }
131
- },
132
- /** 清除验证结果 */
133
- clearValidate(props) {
134
- this.$refs.form.clearValidate(props)
135
- },
136
- /** 打开加载中 */
137
- openLoading() {
138
- if (!this.noLoading) {
139
- this.loading_ = true
140
- }
141
- },
142
- /** 关闭加载中 */
143
- closeLoading() {
144
- if (!this.noLoading) {
145
- this.loading_ = false
146
- }
147
- },
148
- onValidate(prop, valid, msg) {
149
- this.$emit('validate', prop, valid, msg)
150
136
  }
151
137
  }
152
- }
153
138
  </script>
@@ -1,39 +1,6 @@
1
1
  <template>
2
- <nm-dialog
3
- ref="dialog"
4
- class="nm-form-dialog"
5
- :title="title"
6
- :icon="icon"
7
- :width="width"
8
- :height="height"
9
- :footer="footer"
10
- :fullscreen="fullscreen"
11
- :close-on-click-modal="closeOnClickModal"
12
- :loading="showLoading"
13
- :footer-close-button="footerCloseButton"
14
- :draggable="draggable"
15
- :drag-out-page="dragOutPage"
16
- :drag-min-width="dragMinWidth"
17
- :visible.sync="visible_"
18
- v-on="dialogOn"
19
- >
20
- <nm-form
21
- ref="form"
22
- no-loading
23
- :model="model"
24
- :rules="rules"
25
- :action="action"
26
- :label-width="labelWidth"
27
- :label-position="labelPosition"
28
- :customValidate="validate"
29
- :success-msg="successMsg"
30
- :success-msg-text="successMsgText"
31
- :disabled="disabled"
32
- :inline="inline"
33
- :customResetFunction="customResetFunction"
34
- v-on="formOn"
35
- @validate="onValidate"
36
- >
2
+ <nm-dialog ref="dialog" class="nm-form-dialog" :title="title" :icon="icon" :width="width" :height="height" :footer="footer" :fullscreen="fullscreen" :close-on-click-modal="closeOnClickModal" :loading="showLoading" :footer-close-button="footerCloseButton" :draggable="draggable" :drag-out-page="dragOutPage" :drag-min-width="dragMinWidth" :visible.sync="visible_" v-on="dialogOn">
3
+ <nm-form ref="form" no-loading :model="model" :rules="rules" :action="action" :label-width="labelWidth" :label-position="labelPosition" :customValidate="validate" :success-msg="successMsg" :success-msg-text="successMsgText" :disabled="disabled" :inline="inline" :customResetFunction="customResetFunction" v-on="formOn" @validate="onValidate">
37
4
  <slot />
38
5
  </nm-form>
39
6
 
@@ -51,195 +18,195 @@
51
18
  </nm-dialog>
52
19
  </template>
53
20
  <script>
54
- import visible from '../../mixins/components/visible'
55
- export default {
56
- name: 'FormDialog',
57
- mixins: [visible],
58
- data() {
59
- return {
60
- loading_: false,
61
- formOn: {
62
- success: this.onSuccess,
63
- error: this.onError,
64
- reset: this.onReset,
65
- 'validate-error': this.onValidateError
66
- },
67
- dialogOn: {
68
- open: this.onOpen,
69
- opened: this.onOpened,
70
- close: this.onClose,
71
- closed: this.onClosed
21
+ import visible from '../../mixins/components/visible'
22
+ export default {
23
+ name: 'FormDialog',
24
+ mixins: [visible],
25
+ data() {
26
+ return {
27
+ loading_: false,
28
+ formOn: {
29
+ success: this.onSuccess,
30
+ error: this.onError,
31
+ reset: this.onReset,
32
+ 'validate-error': this.onValidateError
33
+ },
34
+ dialogOn: {
35
+ open: this.onOpen,
36
+ opened: this.onOpened,
37
+ close: this.onClose,
38
+ closed: this.onClosed
39
+ }
72
40
  }
73
- }
74
- },
75
- props: {
76
- /** 标题 */
77
- title: String,
78
- /** 图标 */
79
- icon: String,
80
- /** 宽度 */
81
- width: String,
82
- /** Dialog 的高度 */
83
- height: [Number, String],
84
- /** 显示尾部 */
85
- footer: {
86
- type: Boolean,
87
- default: true
88
- },
89
- /** 是否可以通过点击 modal 关闭 Dialog */
90
- closeOnClickModal: {
91
- type: Boolean,
92
- default: null
93
- },
94
- /** 是否显示全屏按钮 */
95
- fullscreen: Boolean,
96
- /** 表单模型 */
97
- model: {
98
- type: Object,
99
- required: true
100
- },
101
- /** 验证规则 */
102
- rules: Object,
103
- /** 提交请求 */
104
- action: Function,
105
- /** 行内表单 */
106
- inline: {
107
- type: Boolean,
108
- default: false
109
- },
110
- /** 标签的宽度 */
111
- labelWidth: String,
112
- /** 表单域标签的位置,如果值为 left 或者 right 时,则需要设置 label-width */
113
- labelPosition: String,
114
- // 自定义验证
115
- validate: Function,
116
- /** 是否显示成功提示消息 */
117
- successMsg: {
118
- type: Boolean,
119
- default: true
120
- },
121
- /** 成功提示消息文本 */
122
- successMsgText: {
123
- type: String,
124
- default: '保存成功'
125
- },
126
- /** Ok按钮 */
127
- btnOk: {
128
- type: Boolean,
129
- default: true
130
- },
131
- /** Ok按钮文本 */
132
- btnOkText: {
133
- type: String,
134
- default: '保存'
135
- },
136
- /** reset按钮 */
137
- btnReset: {
138
- type: Boolean,
139
- default: true
140
- },
141
- /** 自定义重置操作 */
142
- customResetFunction: Function,
143
- // 保存成功后是否关闭对话框
144
- closeWhenSuccess: {
145
- type: Boolean,
146
- default: true
147
- },
148
- /** 禁用表单 */
149
- disabled: Boolean,
150
- /** 显示加载动画 */
151
- loading: Boolean,
152
- /** 不显示加载动画 */
153
- noLoading: {
154
- type: Boolean,
155
- default: false
156
- },
157
- /** 打开时是否清楚验证信息 */
158
- clearValidateOnOpen: {
159
- type: Boolean,
160
- default: true
161
- },
162
- /** 是否显示底部关闭按钮 */
163
- footerCloseButton: Boolean,
164
- /** 可拖拽的 */
165
- draggable: {
166
- type: Boolean,
167
- default: null
168
41
  },
169
- /** 是否可拖出页面 */
170
- dragOutPage: Boolean,
171
- /** 拖拽出页面后保留的最小宽度 */
172
- dragMinWidth: Number
173
- },
174
- computed: {
175
- showLoading() {
176
- return !this.noLoading && (this.loading_ || this.loading)
177
- }
178
- },
179
- methods: {
180
- /** 提交 */
181
- submit() {
182
- this.loading_ = true
183
- this.$refs.form.submit()
184
- },
185
- /** 重置 */
186
- reset() {
187
- this.$nextTick(() => {
188
- this.$refs.form.reset()
189
- })
190
- },
191
- /** 清除验证信息 */
192
- clearValidate() {
193
- this.$refs.form.clearValidate()
194
- },
195
- /** 打开loading */
196
- openLoading() {
197
- this.loading_ = true
198
- },
199
- /** 关闭loading */
200
- closeLoading() {
201
- this.loading = false
202
- },
203
- // 成功
204
- onSuccess(data) {
205
- // 关闭对话框
206
- if (this.closeWhenSuccess) {
207
- setTimeout(this.hide, 800)
42
+ props: {
43
+ /** 标题 */
44
+ title: String,
45
+ /** 图标 */
46
+ icon: String,
47
+ /** 宽度 */
48
+ width: String,
49
+ /** Dialog 的高度 */
50
+ height: [Number, String],
51
+ /** 显示尾部 */
52
+ footer: {
53
+ type: Boolean,
54
+ default: true
55
+ },
56
+ /** 是否可以通过点击 modal 关闭 Dialog */
57
+ closeOnClickModal: {
58
+ type: Boolean,
59
+ default: null
60
+ },
61
+ /** 是否显示全屏按钮 */
62
+ fullscreen: Boolean,
63
+ /** 表单模型 */
64
+ model: {
65
+ type: Object,
66
+ required: true
67
+ },
68
+ /** 验证规则 */
69
+ rules: Object,
70
+ /** 提交请求 */
71
+ action: Function,
72
+ /** 行内表单 */
73
+ inline: {
74
+ type: Boolean,
75
+ default: false
76
+ },
77
+ /** 标签的宽度 */
78
+ labelWidth: String,
79
+ /** 表单域标签的位置,如果值为 left 或者 right 时,则需要设置 label-width */
80
+ labelPosition: String,
81
+ // 自定义验证
82
+ validate: Function,
83
+ /** 是否显示成功提示消息 */
84
+ successMsg: {
85
+ type: Boolean,
86
+ default: true
87
+ },
88
+ /** 成功提示消息文本 */
89
+ successMsgText: {
90
+ type: String,
91
+ default: '保存成功'
92
+ },
93
+ /** Ok按钮 */
94
+ btnOk: {
95
+ type: Boolean,
96
+ default: true
97
+ },
98
+ /** Ok按钮文本 */
99
+ btnOkText: {
100
+ type: String,
101
+ default: '保存'
102
+ },
103
+ /** reset按钮 */
104
+ btnReset: {
105
+ type: Boolean,
106
+ default: true
107
+ },
108
+ /** 自定义重置操作 */
109
+ customResetFunction: Function,
110
+ // 保存成功后是否关闭对话框
111
+ closeWhenSuccess: {
112
+ type: Boolean,
113
+ default: true
114
+ },
115
+ /** 禁用表单 */
116
+ disabled: Boolean,
117
+ /** 显示加载动画 */
118
+ loading: Boolean,
119
+ /** 不显示加载动画 */
120
+ noLoading: {
121
+ type: Boolean,
122
+ default: false
123
+ },
124
+ /** 打开时是否清楚验证信息 */
125
+ clearValidateOnOpen: {
126
+ type: Boolean,
127
+ default: true
128
+ },
129
+ /** 是否显示底部关闭按钮 */
130
+ footerCloseButton: Boolean,
131
+ /** 可拖拽的 */
132
+ draggable: {
133
+ type: Boolean,
134
+ default: null
135
+ },
136
+ /** 是否可拖出页面 */
137
+ dragOutPage: Boolean,
138
+ /** 拖拽出页面后保留的最小宽度 */
139
+ dragMinWidth: Number
140
+ },
141
+ computed: {
142
+ showLoading() {
143
+ return !this.noLoading && (this.loading_ || this.loading)
208
144
  }
209
- this.loading_ = false
210
- this.$emit('success', data)
211
- },
212
- onReset() {
213
- this.$emit('reset')
214
145
  },
215
- onError() {
216
- this.loading_ = false
217
- this.$emit('error')
218
- },
219
- onValidateError() {
220
- this.loading_ = false
221
- this.$emit('validate-error')
222
- },
223
- onOpen() {
224
- if (this.clearValidateOnOpen) {
146
+ methods: {
147
+ /** 提交 */
148
+ submit() {
149
+ this.loading_ = true
150
+ this.$refs.form.submit()
151
+ },
152
+ /** 重置 */
153
+ reset() {
225
154
  this.$nextTick(() => {
226
- this.$refs.form.clearValidate()
155
+ this.$refs.form.reset()
227
156
  })
157
+ },
158
+ /** 清除验证信息 */
159
+ clearValidate() {
160
+ this.$refs.form.clearValidate()
161
+ },
162
+ /** 打开loading */
163
+ openLoading() {
164
+ this.loading_ = true
165
+ },
166
+ /** 关闭loading */
167
+ closeLoading() {
168
+ this.loading = false
169
+ },
170
+ // 成功
171
+ onSuccess(data) {
172
+ // 关闭对话框
173
+ if (this.closeWhenSuccess) {
174
+ setTimeout(this.hide, 800)
175
+ }
176
+ this.loading_ = false
177
+ this.$emit('success', data)
178
+ },
179
+ onReset() {
180
+ this.$emit('reset')
181
+ },
182
+ onError() {
183
+ this.loading_ = false
184
+ this.$emit('error')
185
+ },
186
+ onValidateError() {
187
+ this.loading_ = false
188
+ this.$emit('validate-error')
189
+ },
190
+ onOpen() {
191
+ if (this.clearValidateOnOpen) {
192
+ this.$nextTick(() => {
193
+ this.$refs.form.clearValidate()
194
+ })
195
+ }
196
+ this.$emit('open')
197
+ },
198
+ onOpened() {
199
+ this.$emit('opened')
200
+ },
201
+ onClose() {
202
+ this.$emit('close')
203
+ },
204
+ onClosed() {
205
+ this.$emit('closed')
206
+ },
207
+ onValidate(prop, valid, msg) {
208
+ this.$emit('validate', prop, valid, msg)
228
209
  }
229
- this.$emit('open')
230
- },
231
- onOpened() {
232
- this.$emit('opened')
233
- },
234
- onClose() {
235
- this.$emit('close')
236
- },
237
- onClosed() {
238
- this.$emit('closed')
239
- },
240
- onValidate(prop, valid, msg) {
241
- this.$emit('validate', prop, valid, msg)
242
210
  }
243
211
  }
244
- }
245
212
  </script>