@10yun/cv-mobile-ui 0.3.24 → 0.3.25
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 +5 -2
- package/plugins/request.js +14 -1
- package/ui-cv/cv-banner/cv-banner.vue +23 -14
- package/ui-cv/cv-banner-card/cv-banner-card.vue +24 -16
- package/ui-cv/cv-block/cv-block.vue +6 -6
- package/ui-cv/cv-box/cv-box.vue +6 -7
- package/ui-cv/cv-button/cv-button.vue +32 -13
- package/ui-cv/cv-cell/cv-cell.vue +21 -25
- package/ui-cv/cv-checkbox/cv-checkbox.vue +22 -22
- package/ui-cv/cv-checkbox-tag/cv-checkbox-tag.vue +30 -25
- package/ui-cv/cv-code-sms/cv-code-sms.vue +60 -38
- package/ui-cv/cv-dialog-bottom/cv-dialog-bottom.vue +14 -18
- package/ui-cv/cv-dialog-full/cv-dialog-full.vue +14 -18
- package/ui-cv/cv-dialog-loading/cv-dialog-loading.vue +10 -17
- package/ui-cv/cv-dialog-share/cv-dialog-share.vue +4 -5
- package/ui-cv/cv-draw-barcode/cv-draw-barcode.vue +54 -51
- package/ui-cv/cv-draw-posters/cv-draw-posters.vue +53 -71
- package/ui-cv/cv-draw-progress/cv-draw-progress.vue +44 -39
- package/ui-cv/cv-draw-qrcode/cv-draw-qrcode.vue +48 -45
- package/ui-cv/cv-editor/compressImage.vue +47 -40
- package/ui-cv/cv-editor/cv-editor.vue +234 -124
- package/ui-cv/cv-editor-parse/cv-editor-parse.vue +21 -30
- package/ui-cv/cv-editor-parse/u-parse.vue +21 -30
- package/ui-cv/cv-filter-hm/cv-filter-hm.vue +140 -74
- package/ui-cv/cv-form-group/cv-form-group.vue +11 -13
- package/ui-cv/cv-form-item/cv-form-item.vue +35 -20
- package/ui-cv/cv-form-merge/cv-form-merge.vue +5 -10
- package/ui-cv/cv-geo-local/cv-geo-local.vue +50 -27
- package/ui-cv/cv-icons/cv-icons.vue +24 -19
- package/ui-cv/cv-info/cv-info.vue +9 -11
- package/ui-cv/cv-input-btn/cv-input-btn.vue +34 -13
- package/ui-cv/cv-input-digit/cv-input-digit.vue +31 -18
- package/ui-cv/cv-input-idcard/cv-input-idcard.vue +31 -21
- package/ui-cv/cv-input-number/cv-input-number.vue +29 -14
- package/ui-cv/cv-input-password/cv-input-password.vue +31 -20
- package/ui-cv/cv-input-text/cv-input-text.vue +32 -17
- package/ui-cv/cv-link/cv-link.vue +7 -7
- package/ui-cv/cv-lists-base/cv-lists-base.vue +148 -114
- package/ui-cv/cv-lists-swiper/cv-lists-swipe2r.vue +24 -15
- package/ui-cv/cv-lists-swiper/cv-lists-swiper.vue +85 -63
- package/ui-cv/cv-load-more/cv-load-more.vue +60 -28
- package/ui-cv/cv-message/cv-message.vue +5 -6
- package/ui-cv/cv-nav-col/cv-nav-col.vue +9 -13
- package/ui-cv/cv-nav-group/cv-nav-group.vue +6 -8
- package/ui-cv/cv-nav-row/cv-nav-row.vue +21 -25
- package/ui-cv/cv-picker-date/cv-picker-date.vue +28 -12
- package/ui-cv/cv-picker-datetime/cv-picker-datetime.vue +43 -21
- package/ui-cv/cv-picker-datetime5/cv-picker-datetime5.vue +108 -60
- package/ui-cv/cv-picker-region/cv-picker-region.vue +46 -32
- package/ui-cv/cv-picker-time/cv-picker-time.vue +26 -11
- package/ui-cv/cv-picker1/cv-picker1.vue +32 -17
- package/ui-cv/cv-picker2/cv-picker2.vue +46 -28
- package/ui-cv/cv-picker3/cv-picker3.vue +77 -44
- package/ui-cv/cv-radio/cv-radio.vue +17 -10
- package/ui-cv/cv-radio-sex/cv-radio-sex.vue +20 -21
- package/ui-cv/cv-radio-tag/cv-radio-tag.vue +22 -11
- package/ui-cv/cv-rate/cv-rate.vue +17 -13
- package/ui-cv/cv-search/cv-search.vue +17 -12
- package/ui-cv/cv-skeleton/cv-skeleton.vue +32 -27
- package/ui-cv/cv-skeleton/cv-skeleton2.vue +56 -33
- package/ui-cv/cv-skeleton-group/cv-skeleton-group.vue +4 -6
- package/ui-cv/cv-specs/cv-specs.vue +31 -30
- package/ui-cv/cv-switch/cv-switch.vue +4 -5
- package/ui-cv/cv-tab-lists/cv-tab-lists.vue +189 -128
- package/ui-cv/cv-textarea/cv-textarea.vue +31 -13
- package/ui-cv/cv-treaty/cv-treaty.vue +8 -8
- package/ui-cv/cv-update-app/cv-update-app.vue +68 -53
- package/ui-cv/cv-upload-avatar/cv-upload-avatar.vue +33 -31
- package/ui-cv/cv-upload-img/cv-upload-img.vue +97 -70
- package/ui-cv/dict/area-city.js +612 -612
- package/ui-cv/dict/area-county.js +3392 -3392
- package/ui-cv/dict/area-province.js +35 -35
- package/ui-cv/mixins/mixins-checkbox.js +9 -15
- package/ui-cv/mixins/mixins-common.js +7 -7
- package/ui-cv/mixins/mixins-input.js +11 -12
- package/ui-cv/mixins/mixins-picker.js +9 -13
- package/ui-cv/mixins/mixins-radio.js +10 -14
|
@@ -1,18 +1,43 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<cv-form-item
|
|
3
|
-
:
|
|
2
|
+
<cv-form-item
|
|
3
|
+
:label="label"
|
|
4
|
+
:message="message"
|
|
5
|
+
:messageDisplay="messageDisplay"
|
|
6
|
+
:labelWidth="localLabelWidth"
|
|
7
|
+
:layout="localLayout"
|
|
8
|
+
:isIcon="true"
|
|
9
|
+
:iconTop="iconTop"
|
|
10
|
+
>
|
|
4
11
|
<view class="cv-picker">
|
|
5
|
-
<picker
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
<picker
|
|
13
|
+
class="cv-picker-item"
|
|
14
|
+
mode="multiSelector"
|
|
15
|
+
:range="range_data"
|
|
16
|
+
range-key="text"
|
|
17
|
+
:value="items_index"
|
|
18
|
+
@change="bindPickerChange"
|
|
19
|
+
@columnchange="bindPickerColumnchange"
|
|
20
|
+
@cancel="onCancel"
|
|
21
|
+
@click="changeIconTop"
|
|
22
|
+
>
|
|
23
|
+
<view
|
|
24
|
+
class="cv-picker-item-text"
|
|
25
|
+
v-if="
|
|
26
|
+
last_range_data[0] &&
|
|
27
|
+
lastRetDataIndex[0] &&
|
|
28
|
+
last_range_data[1] &&
|
|
29
|
+
lastRetDataIndex[1] &&
|
|
30
|
+
last_range_data[2] &&
|
|
31
|
+
lastRetDataIndex[2]
|
|
32
|
+
"
|
|
33
|
+
>
|
|
34
|
+
{{ last_range_data[0][lastRetDataIndex[0]].text || '' }}
|
|
35
|
+
{{ joint || ' ' }}
|
|
36
|
+
{{ last_range_data[1][lastRetDataIndex[1]].text || '' }}
|
|
37
|
+
{{ joint || ' ' }}
|
|
38
|
+
{{ last_range_data[2][lastRetDataIndex[2]].text || '' }}
|
|
14
39
|
</view>
|
|
15
|
-
<view class="cv-picker-item-placeholder" v-else>{{placeholder}}</view>
|
|
40
|
+
<view class="cv-picker-item-placeholder" v-else>{{ placeholder }}</view>
|
|
16
41
|
</picker>
|
|
17
42
|
</view>
|
|
18
43
|
</cv-form-item>
|
|
@@ -22,12 +47,12 @@
|
|
|
22
47
|
import MixinsPicker from '../mixins/mixins-picker.js';
|
|
23
48
|
export default {
|
|
24
49
|
mixins: [MixinsPicker],
|
|
25
|
-
name:
|
|
50
|
+
name: 'cvPicker3',
|
|
26
51
|
props: {
|
|
27
52
|
//默认输入框内容
|
|
28
53
|
value: {
|
|
29
54
|
type: Array,
|
|
30
|
-
default: () => {
|
|
55
|
+
default: () => {}
|
|
31
56
|
},
|
|
32
57
|
dataType: {
|
|
33
58
|
type: String,
|
|
@@ -72,19 +97,19 @@ export default {
|
|
|
72
97
|
value(newVal) {
|
|
73
98
|
this.localVal = newVal;
|
|
74
99
|
this.itemsSortOut();
|
|
75
|
-
}
|
|
100
|
+
}
|
|
76
101
|
},
|
|
77
102
|
data() {
|
|
78
103
|
return {
|
|
79
104
|
iconTop: false,
|
|
80
105
|
localVal: '',
|
|
81
|
-
items: []
|
|
82
|
-
range_data: []
|
|
83
|
-
last_range_data: []
|
|
106
|
+
items: [], //全部数据
|
|
107
|
+
range_data: [], //弹窗临时数组
|
|
108
|
+
last_range_data: [], //最终显示页面数组
|
|
84
109
|
items_sub: [],
|
|
85
110
|
items_sub2: [],
|
|
86
|
-
items_index: [0, 0, 0]
|
|
87
|
-
lastRetDataIndex: [0, 0, 0]
|
|
111
|
+
items_index: [0, 0, 0], //当前下标
|
|
112
|
+
lastRetDataIndex: [0, 0, 0], // 最终确定选中的下标
|
|
88
113
|
localDataType: ''
|
|
89
114
|
};
|
|
90
115
|
},
|
|
@@ -92,7 +117,6 @@ export default {
|
|
|
92
117
|
this.localVal = this.value;
|
|
93
118
|
this.localDataType = this.dataType != 'text' ? 'value' : 'text';
|
|
94
119
|
this.itemsSortOut();
|
|
95
|
-
|
|
96
120
|
},
|
|
97
121
|
methods: {
|
|
98
122
|
itemsSortOut: function () {
|
|
@@ -128,54 +152,61 @@ export default {
|
|
|
128
152
|
|
|
129
153
|
if (this.localVal.length >= 1) {
|
|
130
154
|
if (dataType == 'text' && this.localVal[0] == data[dataText]) {
|
|
131
|
-
items_index[0] = i
|
|
155
|
+
items_index[0] = i;
|
|
132
156
|
} else if (dataType == 'value' && this.localVal[0] == data[dataValue]) {
|
|
133
|
-
items_index[0] = i
|
|
157
|
+
items_index[0] = i;
|
|
134
158
|
}
|
|
135
159
|
}
|
|
136
160
|
|
|
137
161
|
items.push({
|
|
138
162
|
value: data[dataValue].toString(),
|
|
139
163
|
text: data[dataText]
|
|
140
|
-
})
|
|
164
|
+
});
|
|
141
165
|
if (original[i][free]) {
|
|
142
166
|
let free_data = original[i][free];
|
|
143
167
|
let temp = [];
|
|
144
168
|
for (const ii in free_data) {
|
|
145
|
-
let data = free_data[ii]
|
|
169
|
+
let data = free_data[ii];
|
|
146
170
|
|
|
147
171
|
//查找二级绑定参数
|
|
148
172
|
if (this.localVal.length >= 2) {
|
|
149
173
|
if (dataType == 'text' && this.localVal[1] == data[dataText]) {
|
|
150
|
-
items_index[1] = ii
|
|
174
|
+
items_index[1] = ii;
|
|
151
175
|
} else if (dataType == 'value' && this.localVal[1] == data[dataValue]) {
|
|
152
|
-
items_index[1] = ii
|
|
153
|
-
|
|
176
|
+
items_index[1] = ii;
|
|
154
177
|
}
|
|
155
178
|
}
|
|
156
179
|
temp.push({
|
|
157
180
|
value: data[dataValue].toString(),
|
|
158
181
|
text: data[dataText]
|
|
159
|
-
})
|
|
160
|
-
|
|
182
|
+
});
|
|
183
|
+
if (free_data[ii][free] == undefined) {
|
|
184
|
+
free_data[ii][free] = [{}];
|
|
185
|
+
}
|
|
161
186
|
if (free_data[ii][free]) {
|
|
162
187
|
let free_data2 = free_data[ii][free];
|
|
163
188
|
let temp2 = [];
|
|
164
189
|
for (const iii in free_data2) {
|
|
165
|
-
let data = free_data2[iii]
|
|
190
|
+
let data = free_data2[iii];
|
|
166
191
|
//查找三级绑定参数
|
|
167
192
|
if (this.localVal.length >= 3) {
|
|
168
193
|
if (dataType == 'text' && this.localVal[2] == data[dataText]) {
|
|
169
|
-
items_index[2] = iii
|
|
194
|
+
items_index[2] = iii;
|
|
170
195
|
} else if (dataType == 'value' && this.localVal[2] == data[dataValue]) {
|
|
171
|
-
items_index[2] = iii
|
|
196
|
+
items_index[2] = iii;
|
|
172
197
|
}
|
|
173
198
|
}
|
|
174
|
-
|
|
199
|
+
// 2022-07-22,修复三级选项为空时取值异常
|
|
200
|
+
if (data[dataValue] == undefined) {
|
|
201
|
+
data[dataValue] = '';
|
|
202
|
+
}
|
|
203
|
+
if (data[dataText] == undefined) {
|
|
204
|
+
data[dataText] = '';
|
|
205
|
+
}
|
|
175
206
|
temp2.push({
|
|
176
207
|
value: data[dataValue].toString(),
|
|
177
208
|
text: data[dataText]
|
|
178
|
-
})
|
|
209
|
+
});
|
|
179
210
|
}
|
|
180
211
|
temp[ii].free = temp2;
|
|
181
212
|
}
|
|
@@ -201,16 +232,16 @@ export default {
|
|
|
201
232
|
let items_index = e.detail.value;
|
|
202
233
|
this.items_index = items_index;
|
|
203
234
|
this.updatelocalVal();
|
|
204
|
-
this.iconTop = false
|
|
235
|
+
this.iconTop = false;
|
|
205
236
|
},
|
|
206
237
|
/* 取消选择 */
|
|
207
238
|
onCancel(e) {
|
|
208
|
-
this.iconTop = false
|
|
239
|
+
this.iconTop = false;
|
|
209
240
|
this.range_data = [...this.last_range_data];
|
|
210
241
|
this.items_index = [...this.lastRetDataIndex];
|
|
211
242
|
},
|
|
212
243
|
bindPickerColumnchange: function (e) {
|
|
213
|
-
let items_index = [...this.items_index]
|
|
244
|
+
let items_index = [...this.items_index];
|
|
214
245
|
let range_data = [...this.range_data];
|
|
215
246
|
if (e.detail.column == 2) {
|
|
216
247
|
//滑动三级
|
|
@@ -221,7 +252,6 @@ export default {
|
|
|
221
252
|
items_index[2] = 0;
|
|
222
253
|
range_data[2] = range_data[1][items_index[1]].free || [];
|
|
223
254
|
// this.range_data = range_data;
|
|
224
|
-
|
|
225
255
|
} else if (e.detail.column == 0) {
|
|
226
256
|
//滑动一级
|
|
227
257
|
items_index[0] = e.detail.value;
|
|
@@ -231,11 +261,10 @@ export default {
|
|
|
231
261
|
range_data[2] = range_data[1][items_index[1]].free || [];
|
|
232
262
|
// this.range_data = range_data;
|
|
233
263
|
}
|
|
234
|
-
this.$set(this, 'range_data', range_data)
|
|
235
|
-
console.log(range_data);
|
|
264
|
+
this.$set(this, 'range_data', range_data);
|
|
236
265
|
// this.items_index = items_index;
|
|
237
|
-
this.$set(this, 'items_index', items_index)
|
|
238
|
-
this.$forceUpdate()
|
|
266
|
+
this.$set(this, 'items_index', items_index);
|
|
267
|
+
this.$forceUpdate();
|
|
239
268
|
// this.updateInput();
|
|
240
269
|
},
|
|
241
270
|
updatelocalVal() {
|
|
@@ -244,6 +273,10 @@ export default {
|
|
|
244
273
|
this.lastRetDataIndex = [...items_index];
|
|
245
274
|
let value = [];
|
|
246
275
|
let items = this.items;
|
|
276
|
+
// 2022-07-22,修复三级选项为空时取值异常
|
|
277
|
+
if (!items[items_index[0]].free[items_index[1]].free || items[items_index[0]].free[items_index[1]].free.length == 0) {
|
|
278
|
+
items[items_index[0]].free[items_index[1]].free = [{ text: '', value: '' }];
|
|
279
|
+
}
|
|
247
280
|
if (this.dataType == 'text') {
|
|
248
281
|
value[0] = items[items_index[0]].text;
|
|
249
282
|
value[1] = items[items_index[0]].free[items_index[1]].text;
|
|
@@ -273,4 +306,4 @@ export default {
|
|
|
273
306
|
.cv-picker-item-placeholder {
|
|
274
307
|
color: grey;
|
|
275
308
|
}
|
|
276
|
-
</style>
|
|
309
|
+
</style>
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<cv-form-item
|
|
3
|
-
:
|
|
2
|
+
<cv-form-item
|
|
3
|
+
:tip="tip"
|
|
4
|
+
:must="must"
|
|
5
|
+
:label="label"
|
|
6
|
+
:message="message"
|
|
7
|
+
:messageDisplay="messageDisplay"
|
|
8
|
+
:labelWidth="localLabelWidth"
|
|
9
|
+
:layout="localLayout"
|
|
10
|
+
>
|
|
4
11
|
<view class="cv-radio-sex">
|
|
5
12
|
<radio-group @change="radioChange">
|
|
6
|
-
<label class="cv-radio-sex-item" v-for="
|
|
13
|
+
<label class="cv-radio-sex-item" v-for="item in items" :key="item.value">
|
|
7
14
|
<view class="">
|
|
8
|
-
<radio :value="item.value" :checked="item.value == itemsValue
|
|
15
|
+
<radio :value="item.value" :checked="item.value == itemsValue" style="transform: scale(0.7)" />
|
|
9
16
|
</view>
|
|
10
|
-
<view>{{item.text}}</view>
|
|
17
|
+
<view>{{ item.text }}</view>
|
|
11
18
|
</label>
|
|
12
19
|
</radio-group>
|
|
13
20
|
</view>
|
|
@@ -18,11 +25,11 @@
|
|
|
18
25
|
import MixinsRadio from '../mixins/mixins-radio.js';
|
|
19
26
|
export default {
|
|
20
27
|
mixins: [MixinsRadio],
|
|
21
|
-
name:
|
|
28
|
+
name: 'cvRadio',
|
|
22
29
|
inject: {
|
|
23
30
|
cvFormGroup: {
|
|
24
31
|
default() {
|
|
25
|
-
return null
|
|
32
|
+
return null;
|
|
26
33
|
}
|
|
27
34
|
}
|
|
28
35
|
},
|
|
@@ -30,13 +37,13 @@ export default {
|
|
|
30
37
|
dataLists: {
|
|
31
38
|
type: [Array, String],
|
|
32
39
|
default: []
|
|
33
|
-
}
|
|
40
|
+
}
|
|
34
41
|
},
|
|
35
42
|
data() {
|
|
36
43
|
return {
|
|
37
44
|
localVal: '',
|
|
38
45
|
items: [],
|
|
39
|
-
itemsValue: ''
|
|
46
|
+
itemsValue: ''
|
|
40
47
|
};
|
|
41
48
|
},
|
|
42
49
|
watch: {
|
|
@@ -82,7 +89,7 @@ export default {
|
|
|
82
89
|
items.push({
|
|
83
90
|
value: data[dataValue].toString(),
|
|
84
91
|
text: data[dataText]
|
|
85
|
-
})
|
|
92
|
+
});
|
|
86
93
|
}
|
|
87
94
|
return items;
|
|
88
95
|
}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<cv-form-item
|
|
3
|
-
:
|
|
2
|
+
<cv-form-item
|
|
3
|
+
:tip="tip"
|
|
4
|
+
:must="must"
|
|
5
|
+
:label="label"
|
|
6
|
+
:message="message"
|
|
7
|
+
:messageDisplay="messageDisplay"
|
|
8
|
+
:labelWidth="localLabelWidth"
|
|
9
|
+
:layout="localLayout"
|
|
10
|
+
>
|
|
4
11
|
<view class="cv-radio-sex">
|
|
5
12
|
<radio-group @change="radioChange">
|
|
6
|
-
<label class="cv-radio-sex-item" v-for="
|
|
13
|
+
<label class="cv-radio-sex-item" v-for="item in items" :key="item.value">
|
|
7
14
|
<view class="">
|
|
8
|
-
<radio :value="item.value" :checked="item.value == itemsValue" style="transform:scale(0.7)" />
|
|
15
|
+
<radio :value="item.value" :checked="item.value == itemsValue" style="transform: scale(0.7)" />
|
|
9
16
|
</view>
|
|
10
|
-
<view>{{item.text}}</view>
|
|
17
|
+
<view>{{ item.text }}</view>
|
|
11
18
|
</label>
|
|
12
19
|
</radio-group>
|
|
13
20
|
</view>
|
|
@@ -18,33 +25,29 @@
|
|
|
18
25
|
import MixinsRadio from '../mixins/mixins-radio.js';
|
|
19
26
|
export default {
|
|
20
27
|
mixins: [MixinsRadio],
|
|
21
|
-
name:
|
|
28
|
+
name: 'cvRadioSex',
|
|
22
29
|
inject: {
|
|
23
30
|
cvFormGroup: {
|
|
24
31
|
default() {
|
|
25
|
-
return null
|
|
32
|
+
return null;
|
|
26
33
|
}
|
|
27
34
|
}
|
|
28
35
|
},
|
|
29
36
|
props: {
|
|
30
|
-
|
|
31
37
|
//是否关闭保密选项
|
|
32
38
|
unsecrecy: {
|
|
33
39
|
type: Boolean,
|
|
34
40
|
default: false
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
watch: {
|
|
39
|
-
|
|
41
|
+
}
|
|
40
42
|
},
|
|
43
|
+
watch: {},
|
|
41
44
|
data() {
|
|
42
45
|
return {
|
|
43
46
|
localVal: '',
|
|
44
47
|
items: [
|
|
45
48
|
{ value: '0', text: '保密' },
|
|
46
49
|
{ value: '1', text: '男' },
|
|
47
|
-
{ value: '2', text: '女' }
|
|
50
|
+
{ value: '2', text: '女' }
|
|
48
51
|
],
|
|
49
52
|
itemsValue: ''
|
|
50
53
|
};
|
|
@@ -54,16 +57,12 @@ export default {
|
|
|
54
57
|
if (this.unsecrecy == true) {
|
|
55
58
|
this.items = [
|
|
56
59
|
{ value: '1', text: '男' },
|
|
57
|
-
{ value: '2', text: '女' }
|
|
58
|
-
]
|
|
60
|
+
{ value: '2', text: '女' }
|
|
61
|
+
];
|
|
59
62
|
}
|
|
60
63
|
this._dealValue();
|
|
61
64
|
},
|
|
62
|
-
methods: {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
65
|
+
methods: {}
|
|
67
66
|
};
|
|
68
67
|
</script>
|
|
69
68
|
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<cv-form-item
|
|
3
|
-
:
|
|
2
|
+
<cv-form-item
|
|
3
|
+
:tip="tip"
|
|
4
|
+
:must="must"
|
|
5
|
+
:label="label"
|
|
6
|
+
:message="message"
|
|
7
|
+
:messageDisplay="messageDisplay"
|
|
8
|
+
:labelWidth="localLabelWidth"
|
|
9
|
+
:layout="localLayout"
|
|
10
|
+
>
|
|
4
11
|
<view class="cv-radio-sex">
|
|
5
12
|
<radio-group @change="radioChange">
|
|
6
|
-
<label
|
|
7
|
-
|
|
13
|
+
<label
|
|
14
|
+
class="cv-radio-tag-item cv-radio-tag-item-tag"
|
|
15
|
+
v-for="item in items"
|
|
16
|
+
:key="item.value"
|
|
17
|
+
:class="item.value === itemsValue ? 'radio-checked' : ''"
|
|
18
|
+
>
|
|
8
19
|
<view>
|
|
9
|
-
<radio :value="item.value" :checked="item.value == itemsValue" style="transform:scale(0.7)" />
|
|
20
|
+
<radio :value="item.value" :checked="item.value == itemsValue" style="transform: scale(0.7)" />
|
|
10
21
|
</view>
|
|
11
|
-
<view>{{item.text}}</view>
|
|
22
|
+
<view>{{ item.text }}</view>
|
|
12
23
|
</label>
|
|
13
24
|
</radio-group>
|
|
14
25
|
</view>
|
|
@@ -19,11 +30,11 @@
|
|
|
19
30
|
import MixinsRadio from '../mixins/mixins-radio.js';
|
|
20
31
|
export default {
|
|
21
32
|
mixins: [MixinsRadio],
|
|
22
|
-
name:
|
|
33
|
+
name: 'cvRadioTag',
|
|
23
34
|
inject: {
|
|
24
35
|
cvFormGroup: {
|
|
25
36
|
default() {
|
|
26
|
-
return null
|
|
37
|
+
return null;
|
|
27
38
|
}
|
|
28
39
|
}
|
|
29
40
|
},
|
|
@@ -31,13 +42,13 @@ export default {
|
|
|
31
42
|
dataLists: {
|
|
32
43
|
type: [Array, String],
|
|
33
44
|
default: []
|
|
34
|
-
}
|
|
45
|
+
}
|
|
35
46
|
},
|
|
36
47
|
data() {
|
|
37
48
|
return {
|
|
38
49
|
localVal: '',
|
|
39
50
|
items: [],
|
|
40
|
-
itemsValue: ''
|
|
51
|
+
itemsValue: ''
|
|
41
52
|
};
|
|
42
53
|
},
|
|
43
54
|
watch: {
|
|
@@ -83,7 +94,7 @@ export default {
|
|
|
83
94
|
items.push({
|
|
84
95
|
value: data[dataValue].toString(),
|
|
85
96
|
text: data[dataText]
|
|
86
|
-
})
|
|
97
|
+
});
|
|
87
98
|
}
|
|
88
99
|
return items;
|
|
89
100
|
}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<cv-form-item :label="label" :labelWidth="localLabelWidth" :layout="localLayout" rtip="">
|
|
3
3
|
<view class="cv-rate-area">
|
|
4
|
-
<view
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
<view
|
|
5
|
+
class="cv-rate-item"
|
|
6
|
+
v-for="i in parseInt(max)"
|
|
7
|
+
:key="i"
|
|
8
|
+
v-bind:style="i <= locaValue ? starSelected : starStyle"
|
|
9
|
+
:data-value="i"
|
|
10
|
+
@tap="click_star"
|
|
11
|
+
>
|
|
12
|
+
<template v-if="isFill == true && i > locaValue">☆</template>
|
|
7
13
|
<template v-else>★</template>
|
|
8
14
|
</view>
|
|
9
15
|
</view>
|
|
@@ -11,14 +17,14 @@
|
|
|
11
17
|
</template>
|
|
12
18
|
|
|
13
19
|
<script>
|
|
14
|
-
import MixinsCommon from '../mixins/mixins-common'
|
|
20
|
+
import MixinsCommon from '../mixins/mixins-common';
|
|
15
21
|
export default {
|
|
16
22
|
mixins: [MixinsCommon],
|
|
17
|
-
name:
|
|
23
|
+
name: 'cvRate',
|
|
18
24
|
inject: {
|
|
19
25
|
cvFormGroup: {
|
|
20
26
|
default() {
|
|
21
|
-
return null
|
|
27
|
+
return null;
|
|
22
28
|
}
|
|
23
29
|
}
|
|
24
30
|
},
|
|
@@ -31,12 +37,12 @@ export default {
|
|
|
31
37
|
color: {
|
|
32
38
|
// 星星的颜色
|
|
33
39
|
type: String,
|
|
34
|
-
default:
|
|
40
|
+
default: '#ececec'
|
|
35
41
|
},
|
|
36
42
|
activeColor: {
|
|
37
43
|
// 星星选中状态颜色
|
|
38
44
|
type: String,
|
|
39
|
-
default:
|
|
45
|
+
default: '#ffca3e'
|
|
40
46
|
},
|
|
41
47
|
size: {
|
|
42
48
|
// 星星的大小
|
|
@@ -72,13 +78,11 @@ export default {
|
|
|
72
78
|
};
|
|
73
79
|
},
|
|
74
80
|
watch: {
|
|
75
|
-
value(newVal) {
|
|
76
|
-
}
|
|
81
|
+
value(newVal) {}
|
|
77
82
|
},
|
|
78
83
|
created: function () {
|
|
79
84
|
this.locaValue = this.value || 1;
|
|
80
85
|
this._dealStyle();
|
|
81
|
-
|
|
82
86
|
},
|
|
83
87
|
methods: {
|
|
84
88
|
_dealStyle() {
|
|
@@ -87,7 +91,7 @@ export default {
|
|
|
87
91
|
starStyle += 'color:' + this.color + ';';
|
|
88
92
|
starStyle += 'margin-right:' + this.margin + 'px;';
|
|
89
93
|
let starSelected = starStyle;
|
|
90
|
-
starSelected += 'color:' + this.activeColor + ';'
|
|
94
|
+
starSelected += 'color:' + this.activeColor + ';';
|
|
91
95
|
this.starStyle = starStyle;
|
|
92
96
|
this.starSelected = starSelected;
|
|
93
97
|
}
|
|
@@ -96,7 +100,7 @@ export default {
|
|
|
96
100
|
if (this.disabled) return;
|
|
97
101
|
let value = e.target.dataset.value;
|
|
98
102
|
this.locaValue = value;
|
|
99
|
-
this.$emit('input', value)
|
|
103
|
+
this.$emit('input', value);
|
|
100
104
|
}
|
|
101
105
|
}
|
|
102
106
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view class="cv-search">
|
|
3
|
-
<view class="cv-search-left-box" :style="isSlotDefaule==false?'padding-right:0;':''">
|
|
3
|
+
<view class="cv-search-left-box" :style="isSlotDefaule == false ? 'padding-right:0;' : ''">
|
|
4
4
|
<view class="cv-search-left-item" ref="cvSearchLeftItem">
|
|
5
5
|
<slot name="default" />
|
|
6
6
|
</view>
|
|
@@ -11,31 +11,36 @@
|
|
|
11
11
|
<view class="cv-search-center-icon-line"></view>
|
|
12
12
|
</view>
|
|
13
13
|
<view class="cv-search-center-input-box">
|
|
14
|
-
<input
|
|
15
|
-
|
|
14
|
+
<input
|
|
15
|
+
class="cv-search-center-input-item"
|
|
16
|
+
v-model="localVal"
|
|
17
|
+
placeholder-class="cv-search-center-input-item-placeholder"
|
|
18
|
+
type="text"
|
|
19
|
+
:placeholder="placeholder"
|
|
20
|
+
@input="updateInput"
|
|
21
|
+
@confirm="onSearch"
|
|
22
|
+
/>
|
|
16
23
|
</view>
|
|
17
24
|
<view class="cv-search-center-empty" @tap="onEmpty" v-show="localVal">
|
|
18
25
|
<view class="cv-search-center-empty-t"></view>
|
|
19
26
|
<view class="cv-search-center-empty-d"></view>
|
|
20
27
|
</view>
|
|
21
28
|
</view>
|
|
22
|
-
<view class="cv-search-right-box" @tap="onSearch">
|
|
23
|
-
搜索
|
|
24
|
-
</view>
|
|
29
|
+
<view class="cv-search-right-box" @tap="onSearch">搜索</view>
|
|
25
30
|
</view>
|
|
26
31
|
</template>
|
|
27
32
|
|
|
28
33
|
<script>
|
|
29
34
|
export default {
|
|
30
35
|
component: true,
|
|
31
|
-
name:
|
|
36
|
+
name: 'cvSearch',
|
|
32
37
|
options: {
|
|
33
|
-
addGlobalClass: true
|
|
38
|
+
addGlobalClass: true
|
|
34
39
|
},
|
|
35
40
|
props: {
|
|
36
41
|
value: {
|
|
37
42
|
type: String,
|
|
38
|
-
default:
|
|
43
|
+
default: ''
|
|
39
44
|
},
|
|
40
45
|
placeholder: {
|
|
41
46
|
type: String,
|
|
@@ -74,13 +79,13 @@ export default {
|
|
|
74
79
|
this.updateInput();
|
|
75
80
|
},
|
|
76
81
|
onSearch() {
|
|
77
|
-
this.$emit('search', this.localVal)
|
|
82
|
+
this.$emit('search', this.localVal);
|
|
78
83
|
this.$emit('input', this.localVal);
|
|
79
84
|
}
|
|
80
85
|
}
|
|
81
86
|
};
|
|
82
|
-
</script>
|
|
83
|
-
<style
|
|
87
|
+
</script>
|
|
88
|
+
<style>
|
|
84
89
|
.cv-search {
|
|
85
90
|
height: 40px;
|
|
86
91
|
background-color: #ffffff;
|