@zkwq/business 0.0.4 → 0.0.6

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 (227) hide show
  1. package/package.json +2 -2
  2. package/src/components/base/ui/alert/Alert.vue +0 -94
  3. package/src/components/base/ui/autocomplete/autocomplete-suggestions.vue +0 -77
  4. package/src/components/base/ui/autocomplete/autocomplete.vue +0 -305
  5. package/src/components/base/ui/backtop/main.vue +0 -112
  6. package/src/components/base/ui/button/Button.vue +0 -84
  7. package/src/components/base/ui/button/ButtonGroup.vue +0 -10
  8. package/src/components/base/ui/carousel/Carousel.vue +0 -304
  9. package/src/components/base/ui/carousel/CarouselItem.vue +0 -137
  10. package/src/components/base/ui/cascader/cascader.vue +0 -650
  11. package/src/components/base/ui/cascader-panel/cascader-menu.vue +0 -138
  12. package/src/components/base/ui/cascader-panel/cascader-node.vue +0 -246
  13. package/src/components/base/ui/cascader-panel/cascader-panel.vue +0 -382
  14. package/src/components/base/ui/cascader-panel/node.js +0 -166
  15. package/src/components/base/ui/cascader-panel/store.js +0 -62
  16. package/src/components/base/ui/checkbox/checkbox-button.vue +0 -199
  17. package/src/components/base/ui/checkbox/checkbox-group.vue +0 -48
  18. package/src/components/base/ui/checkbox/checkbox.vue +0 -222
  19. package/src/components/base/ui/col/col.js +0 -71
  20. package/src/components/base/ui/collapse/collapse-item.vue +0 -180
  21. package/src/components/base/ui/collapse/collapse.vue +0 -73
  22. package/src/components/base/ui/color-picker/color.js +0 -317
  23. package/src/components/base/ui/color-picker/components/alpha-slider.vue +0 -132
  24. package/src/components/base/ui/color-picker/components/hue-slider.vue +0 -123
  25. package/src/components/base/ui/color-picker/components/picker-dropdown.vue +0 -119
  26. package/src/components/base/ui/color-picker/components/predefine.vue +0 -61
  27. package/src/components/base/ui/color-picker/components/sv-panel.vue +0 -100
  28. package/src/components/base/ui/color-picker/draggable.js +0 -36
  29. package/src/components/base/ui/color-picker/index.js +0 -2
  30. package/src/components/base/ui/color-picker/main.vue +0 -188
  31. package/src/components/base/ui/date-picker/basic/date-table.vue +0 -441
  32. package/src/components/base/ui/date-picker/basic/month-table.vue +0 -254
  33. package/src/components/base/ui/date-picker/basic/time-spinner.vue +0 -304
  34. package/src/components/base/ui/date-picker/basic/year-table.vue +0 -101
  35. package/src/components/base/ui/date-picker/panel/date-range.vue +0 -680
  36. package/src/components/base/ui/date-picker/panel/date.vue +0 -597
  37. package/src/components/base/ui/date-picker/panel/month-range.vue +0 -289
  38. package/src/components/base/ui/date-picker/panel/time-range.vue +0 -248
  39. package/src/components/base/ui/date-picker/panel/time-select.vue +0 -178
  40. package/src/components/base/ui/date-picker/panel/time.vue +0 -186
  41. package/src/components/base/ui/date-picker/picker/date-picker.js +0 -43
  42. package/src/components/base/ui/date-picker/picker/time-picker.js +0 -39
  43. package/src/components/base/ui/date-picker/picker/time-select.js +0 -21
  44. package/src/components/base/ui/date-picker/picker.vue +0 -942
  45. package/src/components/base/ui/dialog/Index.vue +0 -212
  46. package/src/components/base/ui/directive/repeat-click.js +0 -24
  47. package/src/components/base/ui/directive/ripple.js +0 -303
  48. package/src/components/base/ui/divider/Divider.vue +0 -37
  49. package/src/components/base/ui/drawer/Drawer.vue +0 -202
  50. package/src/components/base/ui/dropdown/dropdown-item.vue +0 -39
  51. package/src/components/base/ui/dropdown/dropdown-menu.vue +0 -63
  52. package/src/components/base/ui/dropdown/dropdown.vue +0 -308
  53. package/src/components/base/ui/form/Form.vue +0 -167
  54. package/src/components/base/ui/form/FormItem.vue +0 -334
  55. package/src/components/base/ui/form/LabelWrap.vue +0 -69
  56. package/src/components/base/ui/icon/icon.vue +0 -13
  57. package/src/components/base/ui/image/image-viewer.vue +0 -302
  58. package/src/components/base/ui/image/main.vue +0 -248
  59. package/src/components/base/ui/index.js +0 -189
  60. package/src/components/base/ui/input/Input.vue +0 -438
  61. package/src/components/base/ui/input/calcTextareaHeight.js +0 -104
  62. package/src/components/base/ui/input-number/input-number.vue +0 -285
  63. package/src/components/base/ui/locale/format.js +0 -32
  64. package/src/components/base/ui/locale/index.js +0 -48
  65. package/src/components/base/ui/locale/lang/zh-CN.js +0 -120
  66. package/src/components/base/ui/menu/menu-item-group.vue +0 -45
  67. package/src/components/base/ui/menu/menu-item.vue +0 -112
  68. package/src/components/base/ui/menu/menu-mixin.js +0 -44
  69. package/src/components/base/ui/menu/menu.vue +0 -312
  70. package/src/components/base/ui/menu/submenu.vue +0 -408
  71. package/src/components/base/ui/message/index.js +0 -2
  72. package/src/components/base/ui/message/main.js +0 -87
  73. package/src/components/base/ui/message/main.vue +0 -110
  74. package/src/components/base/ui/message-box/main.js +0 -216
  75. package/src/components/base/ui/message-box/main.vue +0 -323
  76. package/src/components/base/ui/mixin/emitter.js +0 -31
  77. package/src/components/base/ui/mixin/focus.js +0 -9
  78. package/src/components/base/ui/mixin/locale.js +0 -9
  79. package/src/components/base/ui/mixin/migrating.js +0 -33
  80. package/src/components/base/ui/pagination/pager.vue +0 -163
  81. package/src/components/base/ui/pagination/pagination.jsx +0 -391
  82. package/src/components/base/ui/popover/directive.js +0 -20
  83. package/src/components/base/ui/popover/index.js +0 -14
  84. package/src/components/base/ui/popover/main.vue +0 -236
  85. package/src/components/base/ui/progress/Progress.vue +0 -227
  86. package/src/components/base/ui/radio/radio-button.vue +0 -114
  87. package/src/components/base/ui/radio/radio-group.vue +0 -111
  88. package/src/components/base/ui/radio/radio.vue +0 -134
  89. package/src/components/base/ui/row/row.js +0 -47
  90. package/src/components/base/ui/scrollbar/bar.jsx +0 -91
  91. package/src/components/base/ui/scrollbar/index.jsx +0 -203
  92. package/src/components/base/ui/scrollbar/util.js +0 -32
  93. package/src/components/base/ui/select/Option.vue +0 -168
  94. package/src/components/base/ui/select/OptionGroup.vue +0 -60
  95. package/src/components/base/ui/select/Select.vue +0 -920
  96. package/src/components/base/ui/select/SelectDropdown.vue +0 -74
  97. package/src/components/base/ui/select/navigation-mixin.js +0 -54
  98. package/src/components/base/ui/skeleton/index.js +0 -8
  99. package/src/components/base/ui/skeleton/src/img-placeholder.vue +0 -16
  100. package/src/components/base/ui/skeleton/src/index.vue +0 -80
  101. package/src/components/base/ui/skeleton/src/item.vue +0 -22
  102. package/src/components/base/ui/skeleton-item/index.js +0 -8
  103. package/src/components/base/ui/slider/button.vue +0 -238
  104. package/src/components/base/ui/slider/main.vue +0 -427
  105. package/src/components/base/ui/slider/marker.js +0 -18
  106. package/src/components/base/ui/style/alert.scss +0 -147
  107. package/src/components/base/ui/style/animations.scss +0 -65
  108. package/src/components/base/ui/style/autocomplete.scss +0 -81
  109. package/src/components/base/ui/style/backtop.scss +0 -20
  110. package/src/components/base/ui/style/button-group.scss +0 -0
  111. package/src/components/base/ui/style/button.scss +0 -380
  112. package/src/components/base/ui/style/carousel-item.scss +0 -50
  113. package/src/components/base/ui/style/carousel.scss +0 -161
  114. package/src/components/base/ui/style/cascader-panel.scss +0 -120
  115. package/src/components/base/ui/style/cascader.scss +0 -185
  116. package/src/components/base/ui/style/checkbox-button.scss +0 -0
  117. package/src/components/base/ui/style/checkbox-group.scss +0 -0
  118. package/src/components/base/ui/style/checkbox.scss +0 -360
  119. package/src/components/base/ui/style/col.scss +0 -156
  120. package/src/components/base/ui/style/collapse-item.scss +0 -0
  121. package/src/components/base/ui/style/collapse.scss +0 -114
  122. package/src/components/base/ui/style/color-picker.scss +0 -387
  123. package/src/components/base/ui/style/config.scss +0 -4
  124. package/src/components/base/ui/style/date-picker/date-picker.scss +0 -97
  125. package/src/components/base/ui/style/date-picker/date-range-picker.scss +0 -101
  126. package/src/components/base/ui/style/date-picker/date-table.scss +0 -151
  127. package/src/components/base/ui/style/date-picker/month-table.scss +0 -82
  128. package/src/components/base/ui/style/date-picker/picker-panel.scss +0 -117
  129. package/src/components/base/ui/style/date-picker/picker.scss +0 -197
  130. package/src/components/base/ui/style/date-picker/time-picker.scss +0 -85
  131. package/src/components/base/ui/style/date-picker/time-range-picker.scss +0 -31
  132. package/src/components/base/ui/style/date-picker/time-spinner.scss +0 -110
  133. package/src/components/base/ui/style/date-picker/year-table.scss +0 -51
  134. package/src/components/base/ui/style/date-picker.scss +0 -12
  135. package/src/components/base/ui/style/dialog.scss +0 -123
  136. package/src/components/base/ui/style/divider.scss +0 -47
  137. package/src/components/base/ui/style/drawer.scss +0 -218
  138. package/src/components/base/ui/style/dropdown-item.scss +0 -0
  139. package/src/components/base/ui/style/dropdown-menu.scss +0 -0
  140. package/src/components/base/ui/style/dropdown.scss +0 -185
  141. package/src/components/base/ui/style/form-item.scss +0 -0
  142. package/src/components/base/ui/style/form.scss +0 -203
  143. package/src/components/base/ui/style/function.scss +0 -43
  144. package/src/components/base/ui/style/icon.scss +0 -1167
  145. package/src/components/base/ui/style/image.scss +0 -184
  146. package/src/components/base/ui/style/index.scss +0 -57
  147. package/src/components/base/ui/style/input-number.scss +0 -187
  148. package/src/components/base/ui/style/input.scss +0 -477
  149. package/src/components/base/ui/style/menu-item-group.scss +0 -0
  150. package/src/components/base/ui/style/menu-item.scss +0 -0
  151. package/src/components/base/ui/style/menu.scss +0 -294
  152. package/src/components/base/ui/style/message-box.scss +0 -231
  153. package/src/components/base/ui/style/message.scss +0 -120
  154. package/src/components/base/ui/style/mixins.scss +0 -196
  155. package/src/components/base/ui/style/option-group.scss +0 -42
  156. package/src/components/base/ui/style/option.scss +0 -36
  157. package/src/components/base/ui/style/pagination.scss +0 -295
  158. package/src/components/base/ui/style/popover.scss +0 -40
  159. package/src/components/base/ui/style/popper.scss +0 -102
  160. package/src/components/base/ui/style/popup.scss +0 -42
  161. package/src/components/base/ui/style/progress.scss +0 -141
  162. package/src/components/base/ui/style/radio-button.scss +0 -113
  163. package/src/components/base/ui/style/radio-group.scss +0 -9
  164. package/src/components/base/ui/style/radio.scss +0 -203
  165. package/src/components/base/ui/style/ripple.scss +0 -35
  166. package/src/components/base/ui/style/row.scss +0 -39
  167. package/src/components/base/ui/style/scrollbar.scss +0 -75
  168. package/src/components/base/ui/style/select-dropdown.scss +0 -59
  169. package/src/components/base/ui/style/select.scss +0 -154
  170. package/src/components/base/ui/style/skeleton-item.scss +0 -84
  171. package/src/components/base/ui/style/skeleton.scss +0 -40
  172. package/src/components/base/ui/style/slider.scss +0 -250
  173. package/src/components/base/ui/style/switch.scss +0 -116
  174. package/src/components/base/ui/style/tabs.scss +0 -602
  175. package/src/components/base/ui/style/tag.scss +0 -174
  176. package/src/components/base/ui/style/tooltip.scss +0 -146
  177. package/src/components/base/ui/style/transition.scss +0 -138
  178. package/src/components/base/ui/style/upload.scss +0 -603
  179. package/src/components/base/ui/style/utils.scss +0 -39
  180. package/src/components/base/ui/style/var.scss +0 -1011
  181. package/src/components/base/ui/switch/index.vue +0 -174
  182. package/src/components/base/ui/tabs/tab-bar.vue +0 -57
  183. package/src/components/base/ui/tabs/tab-nav.vue +0 -294
  184. package/src/components/base/ui/tabs/tab-pane.vue +0 -56
  185. package/src/components/base/ui/tabs/tabs.vue +0 -191
  186. package/src/components/base/ui/tag/Tag.vue +0 -60
  187. package/src/components/base/ui/tooltip/tooltip.jsx +0 -234
  188. package/src/components/base/ui/upload/Index.vue +0 -340
  189. package/src/components/base/ui/upload/Upload.vue +0 -216
  190. package/src/components/base/ui/upload/UploadDragger.vue +0 -70
  191. package/src/components/base/ui/upload/UploadList.vue +0 -100
  192. package/src/components/base/ui/upload/ajax.js +0 -85
  193. package/src/components/base/ui/util/aria-dialog.js +0 -90
  194. package/src/components/base/ui/util/aria-utils.js +0 -122
  195. package/src/components/base/ui/util/clickoutside.js +0 -76
  196. package/src/components/base/ui/util/date-util.js +0 -292
  197. package/src/components/base/ui/util/date.js +0 -355
  198. package/src/components/base/ui/util/debounce.js +0 -21
  199. package/src/components/base/ui/util/deepmerge.js +0 -100
  200. package/src/components/base/ui/util/dom.js +0 -215
  201. package/src/components/base/ui/util/index.js +0 -262
  202. package/src/components/base/ui/util/menu/aria-menubar.js +0 -14
  203. package/src/components/base/ui/util/menu/aria-menuitem.js +0 -49
  204. package/src/components/base/ui/util/menu/aria-submenu.js +0 -59
  205. package/src/components/base/ui/util/merge.js +0 -14
  206. package/src/components/base/ui/util/popper.js +0 -1235
  207. package/src/components/base/ui/util/popup/index.js +0 -218
  208. package/src/components/base/ui/util/popup/popup-manager.js +0 -194
  209. package/src/components/base/ui/util/resize-events.js +0 -32
  210. package/src/components/base/ui/util/scroll-into-view.js +0 -27
  211. package/src/components/base/ui/util/scrollbar-width.js +0 -29
  212. package/src/components/base/ui/util/shared.js +0 -7
  213. package/src/components/base/ui/util/throttle.js +0 -91
  214. package/src/components/base/ui/util/types.js +0 -24
  215. package/src/components/base/ui/util/vdom.js +0 -5
  216. package/src/components/base/ui/util/vue-popper.js +0 -188
  217. package/src/components/normal/AggsItemH.vue +0 -145
  218. package/src/index.js +0 -10
  219. package/src/static/base-icons.ttf +0 -0
  220. package/src/static/base-icons.woff +0 -0
  221. package/src/static/label_bg.png +0 -0
  222. package/src/static/term-label-bg.png +0 -0
  223. package/src/style/app-article.scss +0 -698
  224. package/src/style/app-comment.scss +0 -259
  225. package/src/style/app-recommend.scss +0 -48
  226. package/src/style/app-richtext.scss +0 -176
  227. package/src/style/index.scss +0 -523
@@ -1,167 +0,0 @@
1
- <template>
2
- <form class="base-form" :class="[
3
- labelPosition ? 'base-form--label-' + labelPosition : '',
4
- { 'base-form--inline': inline }
5
- ]">
6
- <slot></slot>
7
- </form>
8
- </template>
9
- <script>
10
- import objectAssign from '../util/merge'
11
- export default {
12
- name: 'BaseForm',
13
- componentName: 'BaseForm',
14
- provide () {
15
- return {
16
- baseForm: this
17
- }
18
- },
19
- props: {
20
- model: Object,
21
- rules: Object,
22
- labelPosition: String,
23
- labelWidth: String,
24
- labelSuffix: {
25
- type: String,
26
- default: ''
27
- },
28
- inline: Boolean,
29
- inlineMessage: Boolean,
30
- statusIcon: Boolean,
31
- showMessage: {
32
- type: Boolean,
33
- default: true
34
- },
35
- size: String,
36
- disabled: Boolean,
37
- validateOnRuleChange: {
38
- type: Boolean,
39
- default: true
40
- },
41
- hideRequiredAsterisk: {
42
- type: Boolean,
43
- default: false
44
- }
45
- },
46
- watch: {
47
- rules () {
48
- this.fields.forEach(field => {
49
- field.removeValidateEvents()
50
- field.addValidateEvents()
51
- })
52
- if (this.validateOnRuleChange) {
53
- this.validate(() => {})
54
- }
55
- }
56
- },
57
- computed: {
58
- autoLabelWidth() {
59
- if (!this.potentialLabelWidthArr.length) {
60
- return 0
61
- }
62
- const max = Math.max(...this.potentialLabelWidthArr)
63
- return max ? `${max}px` : ''
64
- }
65
- },
66
- data () {
67
- return {
68
- fields: [],
69
- potentialLabelWidthArr: []
70
- }
71
- },
72
- created () {
73
- this.$on('base.form.addField', (field) => {
74
- if (field) {
75
- this.fields.push(field)
76
- }
77
- })
78
- this.$on('base.form.removeField', (field) => {
79
- if (field.prop) {
80
- this.fields.splice(this.fields.indexOf(field), 1)
81
- }
82
- })
83
- },
84
- methods: {
85
- resetFields() {
86
- if (!this.model) {
87
- return
88
- }
89
- this.fields.forEach(field => {
90
- field.resetField()
91
- })
92
- },
93
- clearValidate(props = []) {
94
- const fields = props.length
95
- ? (typeof props === 'string'
96
- ? this.fields.filter(field => props === field.prop)
97
- : this.fields.filter(field => props.indexOf(field.prop) > -1)
98
- ) : this.fields
99
- fields.forEach(field => {
100
- field.clearValidate()
101
- })
102
- },
103
- validate(callback) {
104
- if (!this.model) {
105
- return
106
- }
107
- let promise
108
- if (typeof callback !== 'function' && window.Promise) {
109
- promise = new window.Promise((resolve, reject) => {
110
- callback = function(valid) {
111
- valid ? resolve(valid) : reject(valid)
112
- }
113
- })
114
- }
115
- let valid = true
116
- let count = 0
117
- if (this.fields.length === 0 && callback) {
118
- callback(true)
119
- }
120
- let invalidFields = {}
121
- this.fields.forEach(field => {
122
- field.validate('', (message, field) => {
123
- if (message) {
124
- valid = false
125
- }
126
- invalidFields = objectAssign({}, invalidFields, field)
127
- if (typeof callback === 'function' && ++count === this.fields.length) {
128
- callback(valid, invalidFields)
129
- }
130
- })
131
- })
132
- if (promise) {
133
- return promise
134
- }
135
- },
136
- validateField(props, cb) {
137
- props = [].concat(props)
138
- const fields = this.fields.filter(field => props.indexOf(field.prop) !== -1)
139
- if (!fields.length) {
140
- return
141
- }
142
- fields.forEach(field => {
143
- field.validate('', cb)
144
- })
145
- },
146
- getLabelWidthIndex(width) {
147
- const index = this.potentialLabelWidthArr.indexOf(width);
148
- if (index === -1) {
149
- throw -1
150
- }
151
- return index
152
- },
153
- registerLabelWidth(val, oldVal) {
154
- if (val && oldVal) {
155
- const index = this.getLabelWidthIndex(oldVal)
156
- this.potentialLabelWidthArr.splice(index, 1, val)
157
- } else if (val) {
158
- this.potentialLabelWidthArr.push(val)
159
- }
160
- },
161
- deregisterLabelWidth(val) {
162
- const index = this.getLabelWidthIndex(val)
163
- this.potentialLabelWidthArr.splice(index, 1)
164
- }
165
- }
166
- }
167
- </script>
@@ -1,334 +0,0 @@
1
- <template>
2
- <div class="base-form-item" :class="[{
3
- 'base-form-item--feedback': baseForm && baseForm.statusIcon,
4
- 'is-error': validateState === 'error',
5
- 'is-validating': validateState === 'validating',
6
- 'is-success': validateState === 'success',
7
- 'is-required': isRequired || required,
8
- 'is-no-asterisk': baseForm && baseForm.hideRequiredAsterisk
9
- },
10
- sizeClass ? 'base-form-item--' + sizeClass : ''
11
- ]">
12
- <label-wrap
13
- :is-auto-width="labelStyle && labelStyle.width === 'auto'"
14
- :update-all="form.labelWidth === 'auto'">
15
- <label :for="labelFor" class="base-form-item__label" :style="labelStyle" v-if="label || $slots.label">
16
- <slot name="label">{{label + form.labelSuffix}}</slot>
17
- </label>
18
- </label-wrap>
19
- <div class="base-form-item__content" :style="contentStyle">
20
- <slot></slot>
21
- <transition name="fade-in-linear">
22
- <slot
23
- v-if="validateState === 'error' && showMessage && form.showMessage"
24
- name="error"
25
- :error="validateMessage">
26
- <div
27
- class="base-form-item__error"
28
- :class="{
29
- 'base-form-item__error--inline': typeof inlineMessage === 'boolean'
30
- ? inlineMessage
31
- : (baseForm && baseForm.inlineMessage || false),
32
- 'is-required': isValueRequired
33
- }"
34
- @click="removeErrorMask"
35
- >
36
- {{validateMessage}}
37
- </div>
38
- </slot>
39
- </transition>
40
- </div>
41
- </div>
42
- </template>
43
- <script>
44
- import AsyncValidator from 'async-validator'
45
- import emitter from '../mixin/emitter'
46
- import objectAssign from '../util/merge'
47
- import { noop, getPropByPath } from '../util'
48
- import LabelWrap from './LabelWrap'
49
- export default {
50
- name: 'BaseFormItem',
51
- componentName: 'BaseFormItem',
52
- mixins: [emitter],
53
- provide() {
54
- return {
55
- baseFormItem: this
56
- }
57
- },
58
- inject: ['baseForm'],
59
- props: {
60
- label: String,
61
- labelWidth: String,
62
- prop: String,
63
- required: {
64
- type: Boolean,
65
- default: undefined
66
- },
67
- rules: [Object, Array],
68
- error: String,
69
- validateStatus: String,
70
- for: String,
71
- inlineMessage: {
72
- type: [String, Boolean],
73
- default: ''
74
- },
75
- showMessage: {
76
- type: Boolean,
77
- default: true
78
- },
79
- size: String,
80
- customItem: {
81
- type: Boolean,
82
- default: false
83
- },
84
- },
85
- components: {
86
- LabelWrap
87
- },
88
- watch: {
89
- error: {
90
- immediate: true,
91
- handler(value) {
92
- this.validateMessage = value
93
- this.validateState = value ? 'error' : ''
94
- }
95
- },
96
- validateStatus(value) {
97
- this.validateState = value
98
- }
99
- },
100
- computed: {
101
- labelFor() {
102
- return this.for || this.prop
103
- },
104
- labelStyle() {
105
- const ret = {}
106
- if (this.form.labelPosition === 'top') return ret
107
- const labelWidth = this.labelWidth || this.form.labelWidth
108
- if (labelWidth) {
109
- ret.width = labelWidth
110
- }
111
- return ret
112
- },
113
- contentStyle() {
114
- const ret = {}
115
- const label = this.label
116
- if (this.form.labelPosition === 'top' || this.form.inline) return ret
117
- if (!label && !this.labelWidth && this.isNested) return ret
118
- const labelWidth = this.labelWidth || this.form.labelWidth
119
- if (labelWidth === 'auto') {
120
- if (this.labelWidth === 'auto') {
121
- ret.marginLeft = this.computedLabelWidth
122
- } else if (this.form.labelWidth === 'auto') {
123
- ret.marginLeft = this.baseForm.autoLabelWidth
124
- }
125
- } else {
126
- ret.marginLeft = labelWidth
127
- }
128
- return ret
129
- },
130
- form() {
131
- let parent = this.$parent
132
- let parentName = parent.$options.componentName
133
- while (parentName !== 'BaseForm') {
134
- if (parentName === 'BaseFormItem') {
135
- this.isNested = true;
136
- }
137
- parent = parent.$parent
138
- parentName = parent.$options.componentName
139
- }
140
- return parent
141
- },
142
- fieldValue() {
143
- const model = this.form.model
144
- if (!model || !this.prop) { return }
145
-
146
- let path = this.prop
147
- if (path.indexOf(':') !== -1) {
148
- path = path.replace(/:/, '.')
149
- }
150
- return getPropByPath(model, path, true).v
151
- },
152
- isRequired() {
153
- let rules = this.getRules()
154
- let isRequired = false
155
- if (rules && rules.length) {
156
- rules.every(rule => {
157
- if (rule.required) {
158
- isRequired = true
159
- return false
160
- }
161
- return true
162
- })
163
- }
164
- return isRequired
165
- },
166
- _formSize() {
167
- return this.baseForm.size
168
- },
169
- baseFormItemSize() {
170
- return this.size || this._formSize
171
- },
172
- sizeClass() {
173
- return this.baseFormItemSize || (this.$ELEMENT || {}).size
174
- },
175
- isValueRequired() {
176
- if (this.prop === 'mobile') {
177
- return !this.fieldValue['number']
178
- } else {
179
- return !this.fieldValue || this.fieldValue.length === 0 || (this.fieldValue.length > 0 && !this.fieldValue[0])
180
- }
181
- }
182
- },
183
- data() {
184
- return {
185
- validateState: '',
186
- validateMessage: '',
187
- validateDisabled: false,
188
- validator: {},
189
- isNested: false,
190
- computedLabelWidth: ''
191
- }
192
- },
193
- methods: {
194
- validate(trigger, callback = noop) {
195
- this.validateDisabled = false
196
- const rules = this.getFilteredRule(trigger)
197
- if ((!rules || rules.length === 0) && this.required === undefined) {
198
- callback()
199
- return true
200
- }
201
-
202
- this.validateState = 'validating'
203
-
204
- const descriptor = {}
205
- if (rules && rules.length > 0) {
206
- rules.forEach(rule => {
207
- delete rule.trigger
208
- })
209
- }
210
- descriptor[this.prop] = rules
211
-
212
- const validator = new AsyncValidator(descriptor)
213
- const model = {}
214
-
215
- model[this.prop] = this.fieldValue
216
- validator.validate(model, { firstFields: true }, (errors, invalidFields) => {
217
- this.validateState = !errors ? 'success' : 'error'
218
- this.validateMessage = errors ? errors[0].message : ''
219
- if (this.customItem && !this.error) {
220
- this.dispatch('MobileFormItem', 'is-error', !!errors)
221
- this.dispatch('CaptchaFormItem', 'is-error', !!errors)
222
- this.dispatch('MobileCodeFormItem', 'is-error', !!errors)
223
- }
224
- callback(this.validateMessage, invalidFields)
225
- this.baseForm && this.baseForm.$emit('validate', this.prop, !errors, this.validateMessage || null)
226
- })
227
- },
228
- clearValidate() {
229
- this.validateState = ''
230
- this.validateMessage = ''
231
- this.validateDisabled = false
232
- },
233
- resetField() {
234
- this.validateState = ''
235
- this.validateMessage = ''
236
-
237
- let model = this.form.model
238
- let value = this.fieldValue
239
- let path = this.prop
240
- if (path.indexOf(':') !== -1) {
241
- path = path.replace(/:/, '.')
242
- }
243
-
244
- let prop = getPropByPath(model, path, true)
245
-
246
- this.validateDisabled = true
247
- if (Array.isArray(value)) {
248
- prop.o[prop.k] = [].concat(this.initialValue)
249
- } else {
250
- prop.o[prop.k] = this.initialValue
251
- }
252
- this.$nextTick(() => {
253
- this.validateDisabled = false
254
- });
255
- this.broadcast('BaseTimeSelect', 'fieldReset', this.initialValue)
256
- },
257
- getRules() {
258
- let formRules = this.form.rules
259
- const selfRules = this.rules
260
- const requiredRule = this.required !== undefined ? { required: !!this.required } : []
261
-
262
- const prop = getPropByPath(formRules, this.prop || '')
263
- formRules = formRules ? (prop.o[this.prop || ''] || prop.v) : []
264
-
265
- return [].concat(selfRules || formRules || []).concat(requiredRule)
266
- },
267
- getFilteredRule(trigger) {
268
- const rules = this.getRules()
269
-
270
- return rules.filter(rule => {
271
- if (!rule.trigger || trigger === '') return true
272
- if (Array.isArray(rule.trigger)) {
273
- return rule.trigger.indexOf(trigger) > -1
274
- } else {
275
- return rule.trigger === trigger
276
- }
277
- }).map(rule => objectAssign({}, rule))
278
- },
279
- onFieldBlur() {
280
- this.validate('blur')
281
- },
282
- onFieldChange() {
283
- if (this.validateDisabled) {
284
- this.validateDisabled = false
285
- return
286
- }
287
-
288
- this.validate('change')
289
- },
290
- updateComputedLabelWidth(width) {
291
- this.computedLabelWidth = width ? `${width}px` : ''
292
- },
293
- addValidateEvents() {
294
- const rules = this.getRules()
295
-
296
- if (rules.length || this.required !== undefined) {
297
- this.$on('clearMessage', this.clearValidate)
298
- this.$on('base.form.blur', this.onFieldBlur)
299
- this.$on('base.form.change', this.onFieldChange)
300
- }
301
- },
302
- removeValidateEvents() {
303
- this.$off()
304
- },
305
- removeErrorMask () {
306
- this.clearValidate()
307
- this.broadcast('BaseInput', 'clearError', '')
308
- },
309
- setErrorMsg(msg) {
310
- this.validateState = !msg ? 'success' : 'error'
311
- this.validateMessage = msg
312
- }
313
- },
314
- mounted() {
315
- if (this.prop) {
316
- this.dispatch('BaseForm', 'base.form.addField', [this])
317
- this.$on('clearValidate', this.clearValidate)
318
-
319
- let initialValue = this.fieldValue
320
- if (Array.isArray(initialValue)) {
321
- initialValue = [].concat(initialValue)
322
- }
323
- Object.defineProperty(this, 'initialValue', {
324
- value: initialValue
325
- })
326
-
327
- this.addValidateEvents()
328
- }
329
- },
330
- beforeDestroy() {
331
- this.dispatch('BaseForm', 'base.form.removeField', [this])
332
- }
333
- }
334
- </script>
@@ -1,69 +0,0 @@
1
- <script lang="jsx" type="text/jsx">
2
- export default {
3
- props: {
4
- isAutoWidth: Boolean,
5
- updateAll: Boolean
6
- },
7
- inject: ['baseForm', 'baseFormItem'],
8
- render() {
9
- const slots = this.$slots.default
10
- if (!slots) return null
11
- if (this.isAutoWidth) {
12
- const autoLabelWidth = this.elForm.autoLabelWidth
13
- const style = {}
14
- if (autoLabelWidth && autoLabelWidth !== 'auto') {
15
- const marginLeft = parseInt(autoLabelWidth, 10) - this.computedWidth
16
- if (marginLeft) {
17
- style.marginLeft = marginLeft + 'px'
18
- }
19
- }
20
- return (<div class="base-form-item__label-wrap" style={style}>
21
- { slots }
22
- </div>)
23
- } else {
24
- return slots[0]
25
- }
26
- },
27
- methods: {
28
- getLabelWidth() {
29
- if (this.$el && this.$el.firstElementChild) {
30
- const computedWidth = window.getComputedStyle(this.$el.firstElementChild).width
31
- return Math.ceil(parseFloat(computedWidth))
32
- } else {
33
- return 0
34
- }
35
- },
36
- updateLabelWidth(action = 'update') {
37
- if (this.$slots.default && this.isAutoWidth && this.$el.firstElementChild) {
38
- if (action === 'update') {
39
- this.computedWidth = this.getLabelWidth()
40
- } else if (action === 'remove') {
41
- this.baseForm.deregisterLabelWidth(this.computedWidth)
42
- }
43
- }
44
- }
45
- },
46
- watch: {
47
- computedWidth(val, oldVal) {
48
- if (this.updateAll) {
49
- this.elForm.registerLabelWidth(val, oldVal)
50
- this.elFormItem.updateComputedLabelWidth(val)
51
- }
52
- }
53
- },
54
- data() {
55
- return {
56
- computedWidth: 0
57
- }
58
- },
59
- mounted() {
60
- this.updateLabelWidth('update')
61
- },
62
- updated() {
63
- this.updateLabelWidth('update')
64
- },
65
- beforeDestroy() {
66
- this.updateLabelWidth('remove')
67
- }
68
- }
69
- </script>
@@ -1,13 +0,0 @@
1
- <template>
2
- <i :class="'base-icon-' + name"></i>
3
- </template>
4
-
5
- <script>
6
- export default {
7
- name: 'BaseIcon',
8
-
9
- props: {
10
- name: String
11
- }
12
- };
13
- </script>