@10yun/cv-mobile-ui 0.3.24 → 0.3.26
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 -2
- 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,15 +1,20 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view>
|
|
3
|
-
<view v-if="loading" class="cv-skeleton" :class="{ animate: animate }" :style="{ justifyContent: flexType}">
|
|
3
|
+
<view v-if="loading" class="cv-skeleton" :class="{ animate: animate }" :style="{ justifyContent: flexType }">
|
|
4
4
|
<!-- 轮播图 -->
|
|
5
5
|
<view v-if="imgTitle" class="cv-skeleton-imgTitle"></view>
|
|
6
6
|
<!-- 头像图 -->
|
|
7
7
|
<block v-if="showAvatar && !imgTitle">
|
|
8
|
-
<view
|
|
9
|
-
|
|
8
|
+
<view
|
|
9
|
+
class="cv-skeleton-avatar"
|
|
10
|
+
v-for="(item, index) in nameRow"
|
|
11
|
+
:key="index"
|
|
12
|
+
:class="[avatarShape]"
|
|
13
|
+
:style="{ width: avatarSize, height: avatarSize }"
|
|
14
|
+
></view>
|
|
10
15
|
</block>
|
|
11
16
|
<!-- 文字条 -->
|
|
12
|
-
<view class="cv-skeleton-content" v-if="showTitle
|
|
17
|
+
<view class="cv-skeleton-content" v-if="showTitle && !imgTitle">
|
|
13
18
|
<view class="cv-skeleton-title" :style="{ width: titleWidth }"></view>
|
|
14
19
|
<view class="cv-skeleton-rows">
|
|
15
20
|
<view class="cv-skeleton-row-item" v-for="(item, index) in rowList" :key="index" :style="{ width: item.width }"></view>
|
|
@@ -23,75 +28,75 @@
|
|
|
23
28
|
</template>
|
|
24
29
|
|
|
25
30
|
<script>
|
|
26
|
-
const DEFAULT_ROW_WIDTH = '100%'
|
|
27
|
-
const DEFAULT_LAST_ROW_WIDTH = '60%'
|
|
31
|
+
const DEFAULT_ROW_WIDTH = '100%';
|
|
32
|
+
const DEFAULT_LAST_ROW_WIDTH = '60%';
|
|
28
33
|
/**
|
|
29
34
|
* 骨架屏幕
|
|
30
35
|
* 文档说明:https://ext.dcloud.net.cn/plugin?id=926
|
|
31
36
|
*/
|
|
32
37
|
export default {
|
|
33
|
-
name:
|
|
38
|
+
name: 'cvSkeleton',
|
|
34
39
|
props: {
|
|
35
40
|
loading: {
|
|
36
41
|
type: Boolean,
|
|
37
|
-
default: true
|
|
42
|
+
default: true
|
|
38
43
|
},
|
|
39
44
|
imgTitle: {
|
|
40
45
|
type: Boolean,
|
|
41
|
-
default: false
|
|
46
|
+
default: false
|
|
42
47
|
},
|
|
43
48
|
nameRow: {
|
|
44
49
|
type: Number,
|
|
45
|
-
default: 1
|
|
50
|
+
default: 1
|
|
46
51
|
},
|
|
47
52
|
flexType: {
|
|
48
53
|
type: String,
|
|
49
|
-
default: 'flex-start'
|
|
54
|
+
default: 'flex-start' // center 居中 √ space-between 两端对齐 √ space-around 子元素拉手分布 √ flex-start 居左 flex-end 居右
|
|
50
55
|
},
|
|
51
56
|
showAvatar: {
|
|
52
57
|
type: Boolean,
|
|
53
|
-
default: true
|
|
58
|
+
default: true
|
|
54
59
|
},
|
|
55
60
|
avatarSize: {
|
|
56
61
|
type: String,
|
|
57
|
-
default: '50px'
|
|
62
|
+
default: '50px'
|
|
58
63
|
},
|
|
59
64
|
avatarShape: {
|
|
60
65
|
type: String,
|
|
61
|
-
default: 'round'
|
|
66
|
+
default: 'round' // square | round
|
|
62
67
|
},
|
|
63
68
|
showTitle: {
|
|
64
69
|
type: Boolean,
|
|
65
|
-
default: false
|
|
70
|
+
default: false
|
|
66
71
|
},
|
|
67
72
|
titleWidth: {
|
|
68
73
|
type: String,
|
|
69
|
-
default: '40%'
|
|
74
|
+
default: '40%'
|
|
70
75
|
},
|
|
71
76
|
row: {
|
|
72
77
|
type: Number,
|
|
73
|
-
default: 3
|
|
78
|
+
default: 3
|
|
74
79
|
},
|
|
75
80
|
animate: {
|
|
76
81
|
type: Boolean,
|
|
77
|
-
default: true
|
|
78
|
-
}
|
|
82
|
+
default: true
|
|
83
|
+
}
|
|
79
84
|
},
|
|
80
85
|
data() {
|
|
81
|
-
return {}
|
|
86
|
+
return {};
|
|
82
87
|
},
|
|
83
88
|
computed: {
|
|
84
89
|
rowList() {
|
|
85
|
-
let list = []
|
|
90
|
+
let list = [];
|
|
86
91
|
for (let i = 0; i < this.row; i++) {
|
|
87
92
|
list.push({
|
|
88
|
-
width: i === this.row - 1 && i !== 0 ? DEFAULT_LAST_ROW_WIDTH : DEFAULT_ROW_WIDTH
|
|
89
|
-
})
|
|
93
|
+
width: i === this.row - 1 && i !== 0 ? DEFAULT_LAST_ROW_WIDTH : DEFAULT_ROW_WIDTH
|
|
94
|
+
});
|
|
90
95
|
}
|
|
91
|
-
return list
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
96
|
+
return list;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
};
|
|
95
100
|
</script>
|
|
96
101
|
|
|
97
102
|
<style>
|
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view
|
|
3
|
-
:style="{
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
:style="{
|
|
4
|
+
width: systemInfo.width + 'rpx',
|
|
5
|
+
height: systemInfo.height + 'rpx',
|
|
6
|
+
'background-color': bgcolor,
|
|
7
|
+
position: 'absolute',
|
|
8
|
+
left: '0',
|
|
9
|
+
top: '0',
|
|
10
|
+
'z-index': '9998',
|
|
11
|
+
overflow: 'hidden'
|
|
12
|
+
}"
|
|
13
|
+
>
|
|
14
|
+
<view
|
|
15
|
+
v-for="(item, index) in skeletonRectLists"
|
|
16
|
+
:key="index"
|
|
17
|
+
:class="{ chiaroscuro: loading == 'chiaroscuro' }"
|
|
18
|
+
:style="{
|
|
19
|
+
width: item.width + 'rpx',
|
|
20
|
+
height: item.height + 'rpx',
|
|
21
|
+
'background-color': 'rgb(194, 207, 214)',
|
|
22
|
+
position: 'absolute',
|
|
23
|
+
left: item.left + 'rpx',
|
|
24
|
+
top: item.top + 'rpx'
|
|
25
|
+
}"
|
|
26
|
+
></view>
|
|
27
|
+
<view
|
|
28
|
+
v-for="(item, index) in skeletonCircleLists"
|
|
29
|
+
:key="index"
|
|
30
|
+
:class="{ chiaroscuro: loading == 'chiaroscuro' }"
|
|
31
|
+
:style="{
|
|
32
|
+
width: item.width + 'rpx',
|
|
33
|
+
height: item.height + 'rpx',
|
|
34
|
+
'background-color': 'rgb(194, 207, 214)',
|
|
35
|
+
'border-radius': item.width + 'rpx',
|
|
36
|
+
position: 'absolute',
|
|
37
|
+
left: item.left + 'rpx',
|
|
38
|
+
top: item.top + 'rpx'
|
|
39
|
+
}"
|
|
40
|
+
></view>
|
|
10
41
|
|
|
11
42
|
<view class="cv-spinbox" v-if="loading == 'spin'">
|
|
12
43
|
<view class="cv-spin"></view>
|
|
@@ -15,51 +46,46 @@
|
|
|
15
46
|
</template>
|
|
16
47
|
<script>
|
|
17
48
|
export default {
|
|
18
|
-
name:
|
|
49
|
+
name: '',
|
|
19
50
|
props: {
|
|
20
51
|
bgcolor: {
|
|
21
52
|
type: String,
|
|
22
|
-
default:
|
|
53
|
+
default: '#FFF'
|
|
23
54
|
},
|
|
24
55
|
selector: {
|
|
25
56
|
type: String,
|
|
26
|
-
default:
|
|
57
|
+
default: 'skeleton'
|
|
27
58
|
},
|
|
28
59
|
loading: {
|
|
29
60
|
type: String,
|
|
30
|
-
default:
|
|
61
|
+
default: 'spin'
|
|
31
62
|
}
|
|
32
63
|
},
|
|
33
64
|
data() {
|
|
34
65
|
return {
|
|
35
|
-
loadingAni: [
|
|
66
|
+
loadingAni: ['spin', 'chiaroscuro'],
|
|
36
67
|
systemInfo: {},
|
|
37
68
|
skeletonRectLists: [],
|
|
38
69
|
skeletonCircleLists: []
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
created: function () {
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
mounted: function () {
|
|
45
|
-
|
|
70
|
+
};
|
|
46
71
|
},
|
|
72
|
+
created: function () {},
|
|
73
|
+
mounted: function () {},
|
|
47
74
|
methods: {
|
|
48
75
|
attached: function () {
|
|
49
76
|
//默认的首屏宽高,防止内容闪现
|
|
50
|
-
const systemInfo = uni.getStorageSync(
|
|
77
|
+
const systemInfo = uni.getStorageSync('cache_system_info');
|
|
51
78
|
(this.systemInfo = {
|
|
52
79
|
width: systemInfo.windowWidth,
|
|
53
80
|
height: systemInfo.windowHeight
|
|
54
81
|
}),
|
|
55
|
-
(this.loading = this.loadingAni.includes(this.loading) ?
|
|
56
|
-
this.loading :
|
|
57
|
-
"spin");
|
|
82
|
+
(this.loading = this.loadingAni.includes(this.loading) ? this.loading : 'spin');
|
|
58
83
|
},
|
|
59
84
|
rectHandle: function () {
|
|
60
85
|
const that = this;
|
|
61
86
|
//绘制不带样式的节点
|
|
62
|
-
uni
|
|
87
|
+
uni
|
|
88
|
+
.createSelectorQuery()
|
|
63
89
|
.selectAll(`.${this.selector}-rect`)
|
|
64
90
|
.boundingClientRect()
|
|
65
91
|
.exec(function (res) {
|
|
@@ -69,7 +95,8 @@ export default {
|
|
|
69
95
|
|
|
70
96
|
radiusHandle: function () {
|
|
71
97
|
const that = this;
|
|
72
|
-
uni
|
|
98
|
+
uni
|
|
99
|
+
.createSelectorQuery()
|
|
73
100
|
.selectAll(`.${this.selector}-radius`)
|
|
74
101
|
.boundingClientRect()
|
|
75
102
|
.exec(function (res) {
|
|
@@ -81,7 +108,8 @@ export default {
|
|
|
81
108
|
const that = this;
|
|
82
109
|
|
|
83
110
|
//绘制背景
|
|
84
|
-
uni
|
|
111
|
+
uni
|
|
112
|
+
.createSelectorQuery()
|
|
85
113
|
.select(`.${this.data.selector}`)
|
|
86
114
|
.boundingClientRect()
|
|
87
115
|
.exec(function (res) {
|
|
@@ -113,7 +141,7 @@ export default {
|
|
|
113
141
|
}
|
|
114
142
|
|
|
115
143
|
.spin:after {
|
|
116
|
-
content:
|
|
144
|
+
content: ' ';
|
|
117
145
|
display: block;
|
|
118
146
|
width: 46rpx;
|
|
119
147
|
height: 46rpx;
|
|
@@ -177,11 +205,6 @@ export default {
|
|
|
177
205
|
top: 0;
|
|
178
206
|
bottom: 0;
|
|
179
207
|
width: 100%;
|
|
180
|
-
background: linear-gradient(
|
|
181
|
-
to left,
|
|
182
|
-
rgba(255, 255, 255, 0) 0%,
|
|
183
|
-
rgba(255, 255, 255, 0.85) 50%,
|
|
184
|
-
rgba(255, 255, 255, 0) 100%
|
|
185
|
-
);
|
|
208
|
+
background: linear-gradient(to left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.85) 50%, rgba(255, 255, 255, 0) 100%);
|
|
186
209
|
}
|
|
187
210
|
</style>
|
|
@@ -7,12 +7,10 @@
|
|
|
7
7
|
export default {
|
|
8
8
|
name: 'cvSkeletonGroup',
|
|
9
9
|
data() {
|
|
10
|
-
return {
|
|
11
|
-
};
|
|
10
|
+
return {};
|
|
12
11
|
},
|
|
13
|
-
methods: {
|
|
14
|
-
|
|
15
|
-
}
|
|
12
|
+
methods: {}
|
|
13
|
+
};
|
|
16
14
|
</script>
|
|
17
15
|
<style>
|
|
18
16
|
.cv-skeleton-group {
|
|
@@ -20,4 +18,4 @@ export default {
|
|
|
20
18
|
height: 100vh;
|
|
21
19
|
background-color: #fff;
|
|
22
20
|
}
|
|
23
|
-
</style>
|
|
21
|
+
</style>
|
|
@@ -5,26 +5,31 @@
|
|
|
5
5
|
<view class="cv-specs-sort-area" v-for="(item, index1) in spu" :key="index1">
|
|
6
6
|
<!-- 规格类别名称 -->
|
|
7
7
|
<view class="cv-specs-sort-name">
|
|
8
|
-
<text>{{item.name}}</text>
|
|
8
|
+
<text>{{ item.name }}</text>
|
|
9
9
|
</view>
|
|
10
10
|
<!-- 规格列表 -->
|
|
11
11
|
<view class="cv-specs-sort-list">
|
|
12
|
-
<view
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
<view
|
|
13
|
+
class="cv-specs-sort-list-details"
|
|
14
|
+
v-for="(item_value, i) in item.items"
|
|
15
|
+
:key="i"
|
|
16
|
+
:class="[item_value.ishow ? '' : 'disabled', subIndex[index1] == i ? 'selected' : '']"
|
|
17
|
+
@tap="skuClick(item_value, index1, $event, i)"
|
|
18
|
+
>
|
|
19
|
+
<text>{{ item_value.name }}</text>
|
|
15
20
|
</view>
|
|
16
21
|
</view>
|
|
17
22
|
</view>
|
|
18
23
|
</view>
|
|
19
24
|
<!-- 数量 -->
|
|
20
|
-
<view class="cv-number" v-if="disabledNumber===false">
|
|
25
|
+
<view class="cv-number" v-if="disabledNumber === false">
|
|
21
26
|
<view class="cv-number-title"><text>购买数量</text></view>
|
|
22
27
|
<view class="cv-number-right">
|
|
23
|
-
<view class="cv-number-right-cut" :class="numberCutDisabled?'disabled':''" @tap="changeNumber('cut')">
|
|
28
|
+
<view class="cv-number-right-cut" :class="numberCutDisabled ? 'disabled' : ''" @tap="changeNumber('cut')">
|
|
24
29
|
<view class="cv-number-right-cut-fill"></view>
|
|
25
30
|
</view>
|
|
26
|
-
<view class="cv-number-right-num">{{localNumber}}</view>
|
|
27
|
-
<view class="cv-number-right-plus" :class="numberPlusDisabled?'disabled':''" @tap="changeNumber('plus')">
|
|
31
|
+
<view class="cv-number-right-num">{{ localNumber }}</view>
|
|
32
|
+
<view class="cv-number-right-plus" :class="numberPlusDisabled ? 'disabled' : ''" @tap="changeNumber('plus')">
|
|
28
33
|
<view class="cv-number-right-cut-fill-h"></view>
|
|
29
34
|
<view class="cv-number-right-cut-fill-s"></view>
|
|
30
35
|
</view>
|
|
@@ -35,22 +40,21 @@
|
|
|
35
40
|
|
|
36
41
|
<script>
|
|
37
42
|
export default {
|
|
38
|
-
name:
|
|
43
|
+
name: 'cvSpecs',
|
|
39
44
|
options: {
|
|
40
|
-
addGlobalClass: true
|
|
45
|
+
addGlobalClass: true
|
|
41
46
|
},
|
|
42
47
|
props: {
|
|
43
48
|
specList: {
|
|
44
49
|
type: Object,
|
|
45
50
|
default() {
|
|
46
|
-
return {}
|
|
51
|
+
return {};
|
|
47
52
|
}
|
|
48
|
-
|
|
49
53
|
},
|
|
50
54
|
skuList: {
|
|
51
55
|
type: Object,
|
|
52
56
|
default() {
|
|
53
|
-
return {}
|
|
57
|
+
return {};
|
|
54
58
|
}
|
|
55
59
|
},
|
|
56
60
|
disabledNumber: {
|
|
@@ -88,12 +92,11 @@ export default {
|
|
|
88
92
|
localNumber: 1,
|
|
89
93
|
numberCutDisabled: true,
|
|
90
94
|
numberPlusDisabled: false,
|
|
91
|
-
numberMax: 99
|
|
95
|
+
numberMax: 99
|
|
92
96
|
};
|
|
93
97
|
},
|
|
94
98
|
created: function () {
|
|
95
99
|
this._dealData();
|
|
96
|
-
|
|
97
100
|
},
|
|
98
101
|
methods: {
|
|
99
102
|
//初始化数据
|
|
@@ -105,7 +108,7 @@ export default {
|
|
|
105
108
|
this.subIndex = []; //是否选中 因为不确定是多规格还是但规格,所以这里定义数组来判断
|
|
106
109
|
this.selectshop = {}; //存放最后选中的商品
|
|
107
110
|
if (this.spu && this.sku && this.spu.length > 0 && this.sku.length > 0) {
|
|
108
|
-
this.spu.map(item => {
|
|
111
|
+
this.spu.map((item) => {
|
|
109
112
|
this.selectArr.push('');
|
|
110
113
|
this.subIndex.push(-1);
|
|
111
114
|
});
|
|
@@ -124,11 +127,11 @@ export default {
|
|
|
124
127
|
}
|
|
125
128
|
this.checkInpath(index1);
|
|
126
129
|
//如果全部选完
|
|
127
|
-
if (this.selectArr.every(item => item != '')) {
|
|
130
|
+
if (this.selectArr.every((item) => item != '')) {
|
|
128
131
|
this.selectshop = this.shopItemInfo[this.selectArr];
|
|
129
132
|
|
|
130
133
|
this.localNumber = 1;
|
|
131
|
-
this.numberMax = this.selectshop.stock
|
|
134
|
+
this.numberMax = this.selectshop.stock;
|
|
132
135
|
} else {
|
|
133
136
|
this.selectshop = {};
|
|
134
137
|
}
|
|
@@ -149,7 +152,7 @@ export default {
|
|
|
149
152
|
}
|
|
150
153
|
let choosed_copy = [...this.selectArr];
|
|
151
154
|
this.$set(choosed_copy, i, this.spu[i].items[j].name);
|
|
152
|
-
let choosed_copy2 = choosed_copy.filter(item => item !== '' && typeof item !== 'undefined');
|
|
155
|
+
let choosed_copy2 = choosed_copy.filter((item) => item !== '' && typeof item !== 'undefined');
|
|
153
156
|
if (this.shopItemInfo.hasOwnProperty(choosed_copy2)) {
|
|
154
157
|
this.$set(this.spu[i].items[j], 'ishow', true);
|
|
155
158
|
} else {
|
|
@@ -166,7 +169,7 @@ export default {
|
|
|
166
169
|
items.sku.reduce(
|
|
167
170
|
(arr, item) => {
|
|
168
171
|
return arr.concat(
|
|
169
|
-
arr.map(item2 => {
|
|
172
|
+
arr.map((item2) => {
|
|
170
173
|
//利用对象属性的唯一性实现二维数组去重
|
|
171
174
|
if (!this.shopItemInfo.hasOwnProperty([...item2, item])) {
|
|
172
175
|
this.shopItemInfo[[...item2, item]] = items;
|
|
@@ -185,17 +188,16 @@ export default {
|
|
|
185
188
|
changeNumber(type) {
|
|
186
189
|
if (type == 'cut') {
|
|
187
190
|
if (!this.numberCutDisabled) {
|
|
188
|
-
this.localNumber = --this.localNumber
|
|
191
|
+
this.localNumber = --this.localNumber;
|
|
189
192
|
} else {
|
|
190
193
|
return;
|
|
191
194
|
}
|
|
192
195
|
} else if (type == 'plus') {
|
|
193
196
|
if (!this.numberPlusDisabled) {
|
|
194
|
-
this.localNumber = ++this.localNumber
|
|
197
|
+
this.localNumber = ++this.localNumber;
|
|
195
198
|
} else {
|
|
196
199
|
return;
|
|
197
200
|
}
|
|
198
|
-
|
|
199
201
|
}
|
|
200
202
|
if (this.localNumber <= 1) {
|
|
201
203
|
this.numberCutDisabled = true;
|
|
@@ -204,26 +206,25 @@ export default {
|
|
|
204
206
|
this.numberCutDisabled = false;
|
|
205
207
|
}
|
|
206
208
|
if (this.localNumber >= this.numberMax) {
|
|
207
|
-
this.localNumber = this.numberMax
|
|
209
|
+
this.localNumber = this.numberMax;
|
|
208
210
|
this.numberPlusDisabled = true;
|
|
209
211
|
} else {
|
|
210
212
|
this.numberPlusDisabled = false;
|
|
211
|
-
|
|
212
213
|
}
|
|
213
214
|
},
|
|
214
215
|
change() {
|
|
215
216
|
let data = {};
|
|
216
|
-
data.sku = this.selectshop
|
|
217
|
+
data.sku = this.selectshop;
|
|
217
218
|
data.selectSpecs = [...this.selectArr];
|
|
218
219
|
if (this.disabledNumber === false) {
|
|
219
220
|
data.number = this.localNumber;
|
|
220
221
|
}
|
|
221
|
-
this.$emit('change', data)
|
|
222
|
-
}
|
|
222
|
+
this.$emit('change', data);
|
|
223
|
+
}
|
|
223
224
|
}
|
|
224
225
|
};
|
|
225
|
-
</script>
|
|
226
|
-
<style
|
|
226
|
+
</script>
|
|
227
|
+
<style>
|
|
227
228
|
.cv-specs {
|
|
228
229
|
padding: 0 10px;
|
|
229
230
|
background-color: #ffffff;
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
import MixinsCommon from '../mixins/mixins-common.js';
|
|
9
9
|
export default {
|
|
10
10
|
mixins: [MixinsCommon],
|
|
11
|
-
name:
|
|
11
|
+
name: 'cvSwitch',
|
|
12
12
|
inject: {
|
|
13
13
|
cvFormGroup: {
|
|
14
14
|
default() {
|
|
15
|
-
return null
|
|
15
|
+
return null;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
},
|
|
@@ -26,14 +26,13 @@ export default {
|
|
|
26
26
|
type: [String, Number, Boolean],
|
|
27
27
|
default: 0
|
|
28
28
|
}
|
|
29
|
-
|
|
30
29
|
},
|
|
31
30
|
data() {
|
|
32
31
|
return {
|
|
33
32
|
localVal: 0,
|
|
34
33
|
itemsValue: '',
|
|
35
34
|
dataType: 'Number',
|
|
36
|
-
checked: false
|
|
35
|
+
checked: false
|
|
37
36
|
};
|
|
38
37
|
},
|
|
39
38
|
watch: {
|
|
@@ -75,7 +74,7 @@ export default {
|
|
|
75
74
|
updateInput() {
|
|
76
75
|
switch (this.dataType) {
|
|
77
76
|
case 'boolean':
|
|
78
|
-
this.localVal = this.checked
|
|
77
|
+
this.localVal = this.checked;
|
|
79
78
|
break;
|
|
80
79
|
case 'number':
|
|
81
80
|
if (this.checked == true) {
|