@10yun/cv-mobile-ui 0.5.2 → 0.5.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.
- package/package.json +1 -1
- package/ui-cv/{cv-button/cv-button.vue → cv-btn-base/cv-btn-base.vue} +19 -14
- package/ui-cv/cv-checkbox-group/cv-checkbox-group.vue +89 -56
- package/ui-cv/cv-checkbox-opt-base/cv-checkbox-opt-base.vue +43 -3
- package/ui-cv/cv-checkbox-opt-tag/cv-checkbox-opt-tag.vue +6 -2
- package/ui-cv/cv-code-sms/cv-code-sms.vue +6 -4
- package/ui-cv/cv-date-base/cv-date-base.vue +27 -6
- package/ui-cv/cv-datetime-base/cv-datetime-base.vue +15 -5
- package/ui-cv/cv-datetime5-base/cv-datetime5-base.vue +24 -7
- package/ui-cv/cv-dialog-share/cv-dialog-share.vue +2 -0
- package/ui-cv/cv-editor-quill/cv-editor-quill.vue +1 -0
- package/ui-cv/cv-form-base/cv-form-base.vue +1 -1
- package/ui-cv/cv-form-item/cv-form-item.vue +5 -2
- package/ui-cv/cv-geo-local/cv-geo-local.vue +118 -27
- package/ui-cv/{cv-picker-region/cv-picker-region.vue → cv-geo-region/cv-geo-region.vue} +32 -10
- package/ui-cv/cv-input-digit/cv-input-digit.vue +69 -6
- package/ui-cv/cv-input-idcard/cv-input-idcard.vue +70 -7
- package/ui-cv/cv-input-number/cv-input-number.vue +56 -6
- package/ui-cv/cv-input-password/cv-input-password.vue +66 -5
- package/ui-cv/cv-input-text/cv-input-text.vue +74 -7
- package/ui-cv/cv-picker1/cv-picker1.vue +35 -8
- package/ui-cv/cv-picker2/cv-picker2.vue +48 -23
- package/ui-cv/cv-picker3/cv-picker3.vue +69 -44
- package/ui-cv/cv-radio-group/cv-radio-group.vue +35 -13
- package/ui-cv/cv-radio-opt-base/cv-radio-opt-base.vue +37 -3
- package/ui-cv/cv-radio-opt-tag/cv-radio-opt-tag.vue +1 -1
- package/ui-cv/cv-rate/cv-rate.vue +10 -5
- package/ui-cv/cv-search/cv-search.vue +7 -1
- package/ui-cv/cv-switch/cv-switch.vue +24 -9
- package/ui-cv/cv-textarea/cv-textarea.vue +18 -5
- package/ui-cv/cv-time-base/cv-time-base.vue +30 -3
- package/ui-cv/cv-treaty/cv-treaty.vue +18 -13
- package/ui-cv/cv-upload-avatar/cv-upload-avatar.vue +12 -5
- package/ui-cv/cv-upload-image/cv-upload-image.vue +18 -7
- package/ui-cv/cv-input-btn/cv-input-btn.vue +0 -124
- package/ui-cv/mixins/mixins-input.js +0 -75
- package/ui-cv/mixins/mixins-picker.js +0 -34
|
@@ -32,17 +32,17 @@
|
|
|
32
32
|
</picker>
|
|
33
33
|
</view>
|
|
34
34
|
</template>
|
|
35
|
-
|
|
36
35
|
<script>
|
|
37
|
-
import MixinsPicker from '../mixins/mixins-picker.js';
|
|
38
36
|
export default {
|
|
39
|
-
mixins: [MixinsPicker],
|
|
40
37
|
name: 'cvPicker3',
|
|
41
38
|
props: {
|
|
42
|
-
//默认输入框内容
|
|
43
39
|
value: {
|
|
44
|
-
type: Array,
|
|
45
|
-
default: () =>
|
|
40
|
+
type: [Array],
|
|
41
|
+
default: () => []
|
|
42
|
+
},
|
|
43
|
+
modelValue: {
|
|
44
|
+
type: [Array],
|
|
45
|
+
default: () => []
|
|
46
46
|
},
|
|
47
47
|
dataType: {
|
|
48
48
|
type: String,
|
|
@@ -63,13 +63,18 @@ export default {
|
|
|
63
63
|
type: String,
|
|
64
64
|
default: 'text'
|
|
65
65
|
},
|
|
66
|
-
|
|
66
|
+
dataTree: {
|
|
67
67
|
type: String,
|
|
68
|
-
default: '
|
|
68
|
+
default: 'tree'
|
|
69
69
|
},
|
|
70
70
|
joint: {
|
|
71
71
|
type: String,
|
|
72
72
|
default: ''
|
|
73
|
+
},
|
|
74
|
+
// 占位符
|
|
75
|
+
placeholder: {
|
|
76
|
+
type: String,
|
|
77
|
+
default: '请选择'
|
|
73
78
|
}
|
|
74
79
|
},
|
|
75
80
|
watch: {
|
|
@@ -82,12 +87,16 @@ export default {
|
|
|
82
87
|
value(newVal) {
|
|
83
88
|
this.localVal = newVal;
|
|
84
89
|
this.itemsSortOut();
|
|
90
|
+
},
|
|
91
|
+
modelValue(newVal) {
|
|
92
|
+
this.localVal = newVal;
|
|
93
|
+
this.itemsSortOut();
|
|
85
94
|
}
|
|
86
95
|
},
|
|
87
96
|
data() {
|
|
88
97
|
return {
|
|
89
98
|
iconTop: false,
|
|
90
|
-
localVal:
|
|
99
|
+
localVal: [],
|
|
91
100
|
items: [], //全部数据
|
|
92
101
|
range_data: [], //弹窗临时数组
|
|
93
102
|
last_range_data: [], //最终显示页面数组
|
|
@@ -95,15 +104,26 @@ export default {
|
|
|
95
104
|
items_sub2: [],
|
|
96
105
|
items_index: [0, 0, 0], //当前下标
|
|
97
106
|
lastRetDataIndex: [0, 0, 0], // 最终确定选中的下标
|
|
98
|
-
localDataType: ''
|
|
107
|
+
localDataType: 'value',
|
|
108
|
+
localDataValue: 'value',
|
|
109
|
+
localDataText: 'label'
|
|
99
110
|
};
|
|
100
111
|
},
|
|
101
112
|
created() {
|
|
102
|
-
this.localVal = this.
|
|
113
|
+
this.localVal = this.doValueGet();
|
|
103
114
|
this.localDataType = this.dataType != 'text' ? 'value' : 'text';
|
|
104
115
|
this.itemsSortOut();
|
|
105
116
|
},
|
|
106
117
|
methods: {
|
|
118
|
+
doValueGet() {
|
|
119
|
+
if (this.value === '' || (Array.prototype.isPrototypeOf(this.value) && this.value.length === 0)) {
|
|
120
|
+
return this.modelValue;
|
|
121
|
+
}
|
|
122
|
+
if (this.modelValue === '' || (Array.prototype.isPrototypeOf(this.modelValue) && this.modelValue.length === 0)) {
|
|
123
|
+
return this.value;
|
|
124
|
+
}
|
|
125
|
+
return this.value;
|
|
126
|
+
},
|
|
107
127
|
itemsSortOut() {
|
|
108
128
|
let original = [];
|
|
109
129
|
original = this.dataLists || [];
|
|
@@ -111,40 +131,41 @@ export default {
|
|
|
111
131
|
if (typeof original == 'string') {
|
|
112
132
|
original = JSON.parse(original);
|
|
113
133
|
}
|
|
114
|
-
if (!original) {
|
|
134
|
+
if (!original || original.length <= 0) {
|
|
135
|
+
console.warn('original 暂无数据', original);
|
|
115
136
|
return;
|
|
116
137
|
}
|
|
117
138
|
//整理数据
|
|
118
139
|
let items = [];
|
|
119
140
|
let dataValue = this.dataValue ? this.dataValue : 'value';
|
|
120
141
|
let dataText = this.dataText ? this.dataText : 'text';
|
|
121
|
-
|
|
142
|
+
|
|
143
|
+
let tree = this.dataTree;
|
|
122
144
|
let items_index = this.items_index;
|
|
123
145
|
let dataType = this.localDataType;
|
|
124
146
|
for (let i in original) {
|
|
125
147
|
let data = original[i];
|
|
126
148
|
//查找一级绑定参数
|
|
127
149
|
|
|
128
|
-
if (this.localVal.length >= 1) {
|
|
150
|
+
if (this.localVal && this.localVal.length >= 1) {
|
|
129
151
|
if (dataType == 'text' && this.localVal[0] == data[dataText]) {
|
|
130
152
|
items_index[0] = i;
|
|
131
153
|
} else if (dataType == 'value' && this.localVal[0] == data[dataValue]) {
|
|
132
154
|
items_index[0] = i;
|
|
133
155
|
}
|
|
134
156
|
}
|
|
135
|
-
|
|
136
157
|
items.push({
|
|
137
158
|
value: data[dataValue].toString(),
|
|
138
159
|
text: data[dataText]
|
|
139
160
|
});
|
|
140
|
-
if (original[i][
|
|
141
|
-
let
|
|
161
|
+
if (original[i][tree]) {
|
|
162
|
+
let tree_data = original[i][tree];
|
|
142
163
|
let temp = [];
|
|
143
|
-
for (const ii in
|
|
144
|
-
let data =
|
|
164
|
+
for (const ii in tree_data) {
|
|
165
|
+
let data = tree_data[ii];
|
|
145
166
|
|
|
146
167
|
//查找二级绑定参数
|
|
147
|
-
if (this.localVal.length >= 2) {
|
|
168
|
+
if (this.localVal && this.localVal.length >= 2) {
|
|
148
169
|
if (dataType == 'text' && this.localVal[1] == data[dataText]) {
|
|
149
170
|
items_index[1] = ii;
|
|
150
171
|
} else if (dataType == 'value' && this.localVal[1] == data[dataValue]) {
|
|
@@ -155,16 +176,16 @@ export default {
|
|
|
155
176
|
value: data[dataValue].toString(),
|
|
156
177
|
text: data[dataText]
|
|
157
178
|
});
|
|
158
|
-
if (
|
|
159
|
-
|
|
179
|
+
if (tree_data[ii][tree] == undefined) {
|
|
180
|
+
tree_data[ii][tree] = [{}];
|
|
160
181
|
}
|
|
161
|
-
if (
|
|
162
|
-
let
|
|
182
|
+
if (tree_data[ii][tree]) {
|
|
183
|
+
let tree_data2 = tree_data[ii][tree];
|
|
163
184
|
let temp2 = [];
|
|
164
|
-
for (const iii in
|
|
165
|
-
let data =
|
|
185
|
+
for (const iii in tree_data2) {
|
|
186
|
+
let data = tree_data2[iii];
|
|
166
187
|
//查找三级绑定参数
|
|
167
|
-
if (this.localVal.length >= 3) {
|
|
188
|
+
if (this.localVal && this.localVal.length >= 3) {
|
|
168
189
|
if (dataType == 'text' && this.localVal[2] == data[dataText]) {
|
|
169
190
|
items_index[2] = iii;
|
|
170
191
|
} else if (dataType == 'value' && this.localVal[2] == data[dataValue]) {
|
|
@@ -183,10 +204,10 @@ export default {
|
|
|
183
204
|
text: data[dataText]
|
|
184
205
|
});
|
|
185
206
|
}
|
|
186
|
-
temp[ii].
|
|
207
|
+
temp[ii].tree = temp2;
|
|
187
208
|
}
|
|
188
209
|
}
|
|
189
|
-
items[i].
|
|
210
|
+
items[i].tree = temp;
|
|
190
211
|
}
|
|
191
212
|
}
|
|
192
213
|
if (!items) {
|
|
@@ -194,21 +215,24 @@ export default {
|
|
|
194
215
|
}
|
|
195
216
|
//默认Value
|
|
196
217
|
this.items = items;
|
|
197
|
-
this.items_sub = items[items_index[0] ?? 0].
|
|
198
|
-
this.items_sub2 = this.items_sub[items_index[1] ?? 0].
|
|
218
|
+
this.items_sub = items[items_index[0] ?? 0].tree;
|
|
219
|
+
this.items_sub2 = this.items_sub[items_index[1] ?? 0].tree;
|
|
199
220
|
this.range_data = [items, this.items_sub, this.items_sub2];
|
|
200
221
|
this.items_index = items_index;
|
|
201
222
|
this.last_range_data = [...this.range_data];
|
|
202
|
-
if (this.
|
|
223
|
+
if (this.localVal && this.localVal.length == 3) {
|
|
203
224
|
this.lastRetDataIndex = [...this.items_index];
|
|
204
225
|
}
|
|
205
226
|
},
|
|
206
227
|
bindPickerChange: function (e) {
|
|
207
228
|
let items_index = e.detail.value;
|
|
208
229
|
this.items_index = items_index;
|
|
209
|
-
this.
|
|
230
|
+
this.updateLocalVal();
|
|
210
231
|
this.iconTop = false;
|
|
211
232
|
},
|
|
233
|
+
changeIconTop() {
|
|
234
|
+
this.iconTop = true;
|
|
235
|
+
},
|
|
212
236
|
/* 取消选择 */
|
|
213
237
|
onCancel(e) {
|
|
214
238
|
this.iconTop = false;
|
|
@@ -225,15 +249,15 @@ export default {
|
|
|
225
249
|
//滑动二级
|
|
226
250
|
items_index[1] = e.detail.value;
|
|
227
251
|
items_index[2] = 0;
|
|
228
|
-
range_data[2] = range_data[1][items_index[1]].
|
|
252
|
+
range_data[2] = range_data[1][items_index[1]].tree || [];
|
|
229
253
|
// this.range_data = range_data;
|
|
230
254
|
} else if (e.detail.column == 0) {
|
|
231
255
|
//滑动一级
|
|
232
256
|
items_index[0] = e.detail.value;
|
|
233
257
|
items_index[1] = 0;
|
|
234
258
|
items_index[2] = 0;
|
|
235
|
-
range_data[1] = range_data[0][items_index[0]].
|
|
236
|
-
range_data[2] = range_data[1][items_index[1]].
|
|
259
|
+
range_data[1] = range_data[0][items_index[0]].tree || [];
|
|
260
|
+
range_data[2] = range_data[1][items_index[1]].tree || [];
|
|
237
261
|
// this.range_data = range_data;
|
|
238
262
|
}
|
|
239
263
|
this.$set(this, 'range_data', range_data);
|
|
@@ -242,26 +266,27 @@ export default {
|
|
|
242
266
|
this.$forceUpdate();
|
|
243
267
|
// this.funcOnInput();
|
|
244
268
|
},
|
|
245
|
-
|
|
269
|
+
updateLocalVal() {
|
|
246
270
|
let items_index = this.items_index;
|
|
247
271
|
this.last_range_data = [...this.range_data];
|
|
248
272
|
this.lastRetDataIndex = [...items_index];
|
|
249
273
|
let value = [];
|
|
250
274
|
let items = this.items;
|
|
251
275
|
// 2022-07-22,修复三级选项为空时取值异常
|
|
252
|
-
if (!items[items_index[0]].
|
|
253
|
-
items[items_index[0]].
|
|
276
|
+
if (!items[items_index[0]].tree[items_index[1]].tree || items[items_index[0]].tree[items_index[1]].tree.length == 0) {
|
|
277
|
+
items[items_index[0]].tree[items_index[1]].tree = [{ text: '', value: '' }];
|
|
254
278
|
}
|
|
255
|
-
if (this.
|
|
279
|
+
if (this.localDataType == 'text') {
|
|
256
280
|
value[0] = items[items_index[0]].text;
|
|
257
|
-
value[1] = items[items_index[0]].
|
|
258
|
-
value[2] = items[items_index[0]].
|
|
281
|
+
value[1] = items[items_index[0]].tree[items_index[1]].text;
|
|
282
|
+
value[2] = items[items_index[0]].tree[items_index[1]].tree[items_index[2]].text;
|
|
259
283
|
} else {
|
|
260
284
|
value[0] = items[items_index[0]].value;
|
|
261
|
-
value[1] = items[items_index[0]].
|
|
262
|
-
value[2] = items[items_index[0]].
|
|
285
|
+
value[1] = items[items_index[0]].tree[items_index[1]].value;
|
|
286
|
+
value[2] = items[items_index[0]].tree[items_index[1]].tree[items_index[2]].value;
|
|
263
287
|
}
|
|
264
288
|
this.$emit('input', value);
|
|
289
|
+
this.$emit('update:modelValue', value);
|
|
265
290
|
}
|
|
266
291
|
}
|
|
267
292
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view class="cv-radio-group-wrap">
|
|
3
|
-
<radio-group @change="radioChange" class="cv-radio-group__box">
|
|
3
|
+
<radio-group @change="radioChange" class="cv-radio-group__box" :style="localStyle">
|
|
4
4
|
<slot>
|
|
5
5
|
<cv-radio-opt-base
|
|
6
6
|
v-if="type == 'base'"
|
|
@@ -41,14 +41,21 @@ export default {
|
|
|
41
41
|
cvRadioOptTag
|
|
42
42
|
},
|
|
43
43
|
props: {
|
|
44
|
+
value: {
|
|
45
|
+
type: [Number, String],
|
|
46
|
+
default: ''
|
|
47
|
+
},
|
|
48
|
+
modelValue: {
|
|
49
|
+
type: [Number, String],
|
|
50
|
+
default: ''
|
|
51
|
+
},
|
|
44
52
|
type: {
|
|
45
53
|
type: [String],
|
|
46
54
|
default: 'base'
|
|
47
55
|
},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
default: ''
|
|
56
|
+
align: {
|
|
57
|
+
type: [String],
|
|
58
|
+
default: 'left'
|
|
52
59
|
},
|
|
53
60
|
dataType: {
|
|
54
61
|
type: String,
|
|
@@ -56,7 +63,7 @@ export default {
|
|
|
56
63
|
},
|
|
57
64
|
//选项数组
|
|
58
65
|
dataLists: {
|
|
59
|
-
type: [Array, String],
|
|
66
|
+
type: [Array, String, Object],
|
|
60
67
|
default: () => {
|
|
61
68
|
return [];
|
|
62
69
|
}
|
|
@@ -75,6 +82,8 @@ export default {
|
|
|
75
82
|
data() {
|
|
76
83
|
return {
|
|
77
84
|
localVal: '',
|
|
85
|
+
localList: [],
|
|
86
|
+
localStyle: '',
|
|
78
87
|
items: [],
|
|
79
88
|
itemsValue: ''
|
|
80
89
|
};
|
|
@@ -84,21 +93,36 @@ export default {
|
|
|
84
93
|
this.localVal = newVal;
|
|
85
94
|
this._dealValue();
|
|
86
95
|
},
|
|
96
|
+
modelValue(newVal) {
|
|
97
|
+
this.localVal = newVal;
|
|
98
|
+
this._dealValue();
|
|
99
|
+
},
|
|
87
100
|
dataLists(newVal) {
|
|
88
|
-
this.
|
|
101
|
+
this.localList = newVal || [];
|
|
89
102
|
this.items = this.itemsSortOut();
|
|
90
103
|
this._dealValue();
|
|
91
104
|
}
|
|
92
105
|
},
|
|
93
106
|
created() {
|
|
94
|
-
this.localVal = this.
|
|
107
|
+
this.localVal = this.doValueGet();
|
|
95
108
|
if (this.dataLists) {
|
|
109
|
+
this.localList = this.dataLists || [];
|
|
96
110
|
this.items = this.itemsSortOut();
|
|
97
111
|
}
|
|
98
|
-
|
|
112
|
+
// 默认Value
|
|
99
113
|
this._dealValue();
|
|
114
|
+
this._dealStyle();
|
|
100
115
|
},
|
|
101
116
|
methods: {
|
|
117
|
+
doValueGet() {
|
|
118
|
+
if (this.value === '') return this.modelValue;
|
|
119
|
+
if (this.modelValue === '') return this.value;
|
|
120
|
+
return this.value;
|
|
121
|
+
},
|
|
122
|
+
_dealStyle() {
|
|
123
|
+
let alignStyle = this.align == 'right' ? 'flex-end' : 'flex-start';
|
|
124
|
+
this.localStyle = `justify-content:${alignStyle};`;
|
|
125
|
+
},
|
|
102
126
|
_dealValue() {
|
|
103
127
|
//默认Value
|
|
104
128
|
let items = this.items;
|
|
@@ -114,12 +138,10 @@ export default {
|
|
|
114
138
|
},
|
|
115
139
|
itemsSortOut() {
|
|
116
140
|
let original = [];
|
|
117
|
-
original = this.
|
|
118
|
-
|
|
141
|
+
original = this.localList || [];
|
|
119
142
|
if (typeof original == 'string') {
|
|
120
143
|
original = JSON.parse(original);
|
|
121
144
|
}
|
|
122
|
-
|
|
123
145
|
//整理数据
|
|
124
146
|
let items = [];
|
|
125
147
|
let dataValue = this.dataValue ? this.dataValue : 'value';
|
|
@@ -147,6 +169,7 @@ export default {
|
|
|
147
169
|
}
|
|
148
170
|
this.localVal = localVal;
|
|
149
171
|
this.$emit('input', this.localVal);
|
|
172
|
+
this.$emit('update:modelValue', this.localVal);
|
|
150
173
|
}
|
|
151
174
|
}
|
|
152
175
|
};
|
|
@@ -155,7 +178,6 @@ export default {
|
|
|
155
178
|
<style>
|
|
156
179
|
.cv-radio-group-wrap {
|
|
157
180
|
min-height: 35px;
|
|
158
|
-
float: left;
|
|
159
181
|
}
|
|
160
182
|
.cv-radio-group__box {
|
|
161
183
|
display: flex;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view class="cv-radio-opt-base">
|
|
3
3
|
<label class="cv-radio-opt__label">
|
|
4
|
-
<radio :value="localVal" :checked="
|
|
4
|
+
<radio :value="localVal" :checked="localChecked" style="transform: scale(0.7)" />
|
|
5
5
|
<view>
|
|
6
6
|
<slot>{{ label }}</slot>
|
|
7
7
|
</view>
|
|
@@ -27,18 +27,52 @@ export default {
|
|
|
27
27
|
},
|
|
28
28
|
data() {
|
|
29
29
|
return {
|
|
30
|
-
localVal: ''
|
|
30
|
+
localVal: '',
|
|
31
|
+
localChecked: false,
|
|
32
|
+
parentObj: null
|
|
31
33
|
};
|
|
32
34
|
},
|
|
33
35
|
watch: {
|
|
34
36
|
value(newVal) {
|
|
35
37
|
this.localVal = String(newVal);
|
|
38
|
+
},
|
|
39
|
+
checked(newVal) {
|
|
40
|
+
this.localChecked = newVal;
|
|
41
|
+
},
|
|
42
|
+
'parentObj.localVal'(newVal) {
|
|
43
|
+
// console.log('----', newVal);
|
|
44
|
+
this.localChecked = newVal == this.value ? true : false;
|
|
36
45
|
}
|
|
37
46
|
},
|
|
38
47
|
created() {
|
|
39
48
|
this.localVal = String(this.value);
|
|
49
|
+
this.localChecked = this.checked;
|
|
50
|
+
},
|
|
51
|
+
mounted() {
|
|
52
|
+
this.parentObj = this.getParent();
|
|
40
53
|
},
|
|
41
|
-
methods: {
|
|
54
|
+
methods: {
|
|
55
|
+
funcOnClick() {
|
|
56
|
+
// let parentObj = this.getParent();
|
|
57
|
+
// console.log(parentObj.$children);
|
|
58
|
+
// let { value } = parentObj;
|
|
59
|
+
// console.log(value, this.localVal);
|
|
60
|
+
// this.localChecked = newVal == this.value ? true : false;
|
|
61
|
+
},
|
|
62
|
+
/**
|
|
63
|
+
* 获取父元素实例
|
|
64
|
+
*/
|
|
65
|
+
getParent(name = 'cvRadioGroup') {
|
|
66
|
+
let parent = this.$parent;
|
|
67
|
+
let parentName = parent.$options.name;
|
|
68
|
+
while (parentName !== name) {
|
|
69
|
+
parent = parent.$parent;
|
|
70
|
+
if (!parent) return false;
|
|
71
|
+
parentName = parent.$options.name;
|
|
72
|
+
}
|
|
73
|
+
return parent;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
42
76
|
};
|
|
43
77
|
</script>
|
|
44
78
|
|
|
@@ -25,6 +25,15 @@ export default {
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
props: {
|
|
28
|
+
// 当前评分
|
|
29
|
+
value: {
|
|
30
|
+
type: [Number, String],
|
|
31
|
+
default: 1
|
|
32
|
+
},
|
|
33
|
+
modelValue: {
|
|
34
|
+
type: [Number, String],
|
|
35
|
+
default: 1
|
|
36
|
+
},
|
|
28
37
|
isFill: {
|
|
29
38
|
// 星星的类型,是否镂空
|
|
30
39
|
type: [Boolean, String],
|
|
@@ -45,11 +54,6 @@ export default {
|
|
|
45
54
|
type: [Number, String],
|
|
46
55
|
default: 24
|
|
47
56
|
},
|
|
48
|
-
value: {
|
|
49
|
-
// 当前评分
|
|
50
|
-
type: [Number, String],
|
|
51
|
-
default: 1
|
|
52
|
-
},
|
|
53
57
|
max: {
|
|
54
58
|
// 最大评分
|
|
55
59
|
type: [Number, String],
|
|
@@ -97,6 +101,7 @@ export default {
|
|
|
97
101
|
let value = e.target.dataset.value;
|
|
98
102
|
this.locaValue = value;
|
|
99
103
|
this.$emit('input', value);
|
|
104
|
+
this.$emit('update:modelValue', value);
|
|
100
105
|
}
|
|
101
106
|
}
|
|
102
107
|
};
|
|
@@ -39,7 +39,11 @@ export default {
|
|
|
39
39
|
},
|
|
40
40
|
props: {
|
|
41
41
|
value: {
|
|
42
|
-
type: String,
|
|
42
|
+
type: [Number, String],
|
|
43
|
+
default: ''
|
|
44
|
+
},
|
|
45
|
+
modelValue: {
|
|
46
|
+
type: [Number, String],
|
|
43
47
|
default: ''
|
|
44
48
|
},
|
|
45
49
|
placeholder: {
|
|
@@ -72,6 +76,7 @@ export default {
|
|
|
72
76
|
/* 判断是否禁止实时更新父级数据 */
|
|
73
77
|
if (this.disableRealTime === false) {
|
|
74
78
|
this.$emit('input', this.localVal);
|
|
79
|
+
this.$emit('update:modelValue', this.localVal);
|
|
75
80
|
}
|
|
76
81
|
},
|
|
77
82
|
onEmpty() {
|
|
@@ -81,6 +86,7 @@ export default {
|
|
|
81
86
|
onSearch() {
|
|
82
87
|
this.$emit('search', this.localVal);
|
|
83
88
|
this.$emit('input', this.localVal);
|
|
89
|
+
this.$emit('update:modelValue', this.localVal);
|
|
84
90
|
}
|
|
85
91
|
}
|
|
86
92
|
};
|
|
@@ -13,14 +13,17 @@ export default {
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
props: {
|
|
16
|
+
value: {
|
|
17
|
+
type: [Number, String, Boolean],
|
|
18
|
+
default: 0
|
|
19
|
+
},
|
|
20
|
+
modelValue: {
|
|
21
|
+
type: [Number, String, Boolean],
|
|
22
|
+
default: 0
|
|
23
|
+
},
|
|
16
24
|
disabled: {
|
|
17
25
|
type: Boolean,
|
|
18
26
|
default: false
|
|
19
|
-
},
|
|
20
|
-
//默认输入框内容
|
|
21
|
-
value: {
|
|
22
|
-
type: [String, Number, Boolean],
|
|
23
|
-
default: 0
|
|
24
27
|
}
|
|
25
28
|
},
|
|
26
29
|
data() {
|
|
@@ -33,29 +36,40 @@ export default {
|
|
|
33
36
|
},
|
|
34
37
|
watch: {
|
|
35
38
|
value(newVal) {
|
|
39
|
+
this.localVal = newVal;
|
|
40
|
+
this._dealDataList();
|
|
41
|
+
},
|
|
42
|
+
modelValue(newVal) {
|
|
43
|
+
this.localVal = newVal;
|
|
36
44
|
this._dealDataList();
|
|
37
45
|
}
|
|
38
46
|
},
|
|
39
47
|
created() {
|
|
48
|
+
this.localVal = this.doValueGet();
|
|
40
49
|
this._dealDataList();
|
|
41
50
|
},
|
|
42
51
|
methods: {
|
|
52
|
+
doValueGet() {
|
|
53
|
+
if (this.value === '') return this.modelValue;
|
|
54
|
+
if (this.modelValue === '') return this.value;
|
|
55
|
+
return this.value;
|
|
56
|
+
},
|
|
43
57
|
/* 整理数据 */
|
|
44
58
|
_dealDataList() {
|
|
45
|
-
this.dataType = typeof this.
|
|
59
|
+
this.dataType = typeof this.localVal;
|
|
46
60
|
switch (this.dataType) {
|
|
47
61
|
case 'boolean':
|
|
48
|
-
this.checked = this.
|
|
62
|
+
this.checked = this.localVal;
|
|
49
63
|
break;
|
|
50
64
|
case 'number':
|
|
51
|
-
if (this.
|
|
65
|
+
if (this.localVal === 1) {
|
|
52
66
|
this.checked = true;
|
|
53
67
|
} else {
|
|
54
68
|
this.checked = false;
|
|
55
69
|
}
|
|
56
70
|
break;
|
|
57
71
|
case 'string':
|
|
58
|
-
if (this.
|
|
72
|
+
if (this.localVal === '1') {
|
|
59
73
|
this.checked = true;
|
|
60
74
|
} else {
|
|
61
75
|
this.checked = false;
|
|
@@ -88,6 +102,7 @@ export default {
|
|
|
88
102
|
break;
|
|
89
103
|
}
|
|
90
104
|
this.$emit('input', this.localVal);
|
|
105
|
+
this.$emit('update:modelValue', this.localVal);
|
|
91
106
|
}
|
|
92
107
|
}
|
|
93
108
|
};
|
|
@@ -33,17 +33,21 @@ export default {
|
|
|
33
33
|
},
|
|
34
34
|
props: {
|
|
35
35
|
value: {
|
|
36
|
-
type: String,
|
|
36
|
+
type: [Number, String],
|
|
37
37
|
default: ''
|
|
38
38
|
},
|
|
39
|
-
|
|
39
|
+
modelValue: {
|
|
40
40
|
type: [Number, String],
|
|
41
|
-
default:
|
|
41
|
+
default: ''
|
|
42
42
|
},
|
|
43
43
|
placeholder: {
|
|
44
44
|
type: [String],
|
|
45
45
|
default: '请输入文本'
|
|
46
46
|
},
|
|
47
|
+
maxlength: {
|
|
48
|
+
type: [Number, String],
|
|
49
|
+
default: -1
|
|
50
|
+
},
|
|
47
51
|
clearable: {
|
|
48
52
|
type: Boolean,
|
|
49
53
|
default: false
|
|
@@ -53,7 +57,6 @@ export default {
|
|
|
53
57
|
default: true
|
|
54
58
|
}
|
|
55
59
|
},
|
|
56
|
-
|
|
57
60
|
data() {
|
|
58
61
|
return {
|
|
59
62
|
localVal: '',
|
|
@@ -64,15 +67,25 @@ export default {
|
|
|
64
67
|
value(newVal) {
|
|
65
68
|
this.localVal = newVal;
|
|
66
69
|
this.tempLength = this.localVal.length;
|
|
70
|
+
},
|
|
71
|
+
modelValue(newVal) {
|
|
72
|
+
this.localVal = newVal;
|
|
73
|
+
this.tempLength = this.localVal.length;
|
|
67
74
|
}
|
|
68
75
|
},
|
|
69
76
|
created() {
|
|
70
|
-
this.localVal = this.
|
|
77
|
+
this.localVal = this.doValueGet();
|
|
71
78
|
},
|
|
72
79
|
methods: {
|
|
80
|
+
doValueGet() {
|
|
81
|
+
if (this.value === '') return this.modelValue;
|
|
82
|
+
if (this.modelValue === '') return this.value;
|
|
83
|
+
return this.value;
|
|
84
|
+
},
|
|
73
85
|
funcOnInput(e) {
|
|
74
86
|
this.tempLength = this.localVal.length;
|
|
75
87
|
this.$emit('input', this.localVal);
|
|
88
|
+
this.$emit('update:modelValue', this.localVal);
|
|
76
89
|
},
|
|
77
90
|
/* 监听自己清除按钮点击事件 */
|
|
78
91
|
onEmpty() {
|