leisure-core 0.4.3 → 0.4.5
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/index.js +3 -0
- package/le-button/src/main.vue +5 -0
- package/le-coupon/src/details.vue +130 -77
- package/le-promotions/index.js +2 -0
- package/le-promotions-activities/src/main.vue +18 -15
- package/le-promotions-activities/src/sub.vue +11 -48
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -35,6 +35,7 @@ import LeRate from "./le-rate/index.js";
|
|
|
35
35
|
import { LeCoupon, LeCouponSub, LeCouponDetails } from "./le-coupon/index.js";
|
|
36
36
|
import LeUpload from "./le-upload/index.js";
|
|
37
37
|
import LePromotions from "./le-promotions/index.js";
|
|
38
|
+
import LePromotionsActivities from "./le-promotions-activities/index.js";
|
|
38
39
|
import LeCommission from "./le-commission/index.js";
|
|
39
40
|
import LeMpurl from "./le-mpurl/index.js";
|
|
40
41
|
import { LeHelp, LeHelpDetail } from "./le-help/index.js";
|
|
@@ -75,6 +76,7 @@ const components = [
|
|
|
75
76
|
LeCouponSub,
|
|
76
77
|
LeCouponDetails,
|
|
77
78
|
LePromotions,
|
|
79
|
+
LePromotionsActivities,
|
|
78
80
|
LeCommission,
|
|
79
81
|
LeMpurl,
|
|
80
82
|
LeHelp,
|
|
@@ -186,6 +188,7 @@ export default {
|
|
|
186
188
|
LeCouponSub,
|
|
187
189
|
LeCouponDetails,
|
|
188
190
|
LePromotions,
|
|
191
|
+
LePromotionsActivities,
|
|
189
192
|
LeCommission,
|
|
190
193
|
LeMpurl,
|
|
191
194
|
LeHelp,
|
package/le-button/src/main.vue
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
:size="size"
|
|
6
6
|
v-permission="$route.params.btns"
|
|
7
7
|
@click="click"
|
|
8
|
+
:disabled="disabled"
|
|
8
9
|
style="margin-left: 2px; margin-right: 2px"
|
|
9
10
|
v-if="disp"
|
|
10
11
|
>{{ text }}</el-button
|
|
@@ -38,6 +39,10 @@ export default {
|
|
|
38
39
|
type: Boolean,
|
|
39
40
|
default: true,
|
|
40
41
|
},
|
|
42
|
+
disabled: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
default: false,
|
|
45
|
+
},
|
|
41
46
|
},
|
|
42
47
|
methods: {
|
|
43
48
|
click(param) {
|
|
@@ -2,21 +2,52 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<el-form :inline="true" :model="searchData">
|
|
4
4
|
<el-form-item label="领用时间">
|
|
5
|
-
<el-date-picker
|
|
6
|
-
|
|
5
|
+
<el-date-picker
|
|
6
|
+
v-model="timeArr"
|
|
7
|
+
type="datetimerange"
|
|
8
|
+
value-format="yyyy-MM-dd HH:mm:ss"
|
|
9
|
+
range-separator="至"
|
|
10
|
+
start-placeholder="开始日期"
|
|
11
|
+
end-placeholder="结束日期"
|
|
12
|
+
>
|
|
7
13
|
</el-date-picker>
|
|
8
14
|
</el-form-item>
|
|
9
15
|
<el-form-item label="优惠券状态">
|
|
10
16
|
<el-select v-model="status" placeholder="选择状态" clearable>
|
|
11
|
-
<el-option
|
|
17
|
+
<el-option
|
|
18
|
+
v-for="item in statusOptions"
|
|
19
|
+
:label="item.value"
|
|
20
|
+
:value="item.id"
|
|
21
|
+
:key="item.id"
|
|
22
|
+
></el-option>
|
|
12
23
|
</el-select>
|
|
13
24
|
</el-form-item>
|
|
14
|
-
<el-form-item
|
|
25
|
+
<el-form-item
|
|
26
|
+
><el-button type="primary" @click="list">查询</el-button></el-form-item
|
|
27
|
+
>
|
|
15
28
|
</el-form>
|
|
16
|
-
<el-table
|
|
17
|
-
:
|
|
18
|
-
|
|
19
|
-
|
|
29
|
+
<el-table
|
|
30
|
+
:data="tableData"
|
|
31
|
+
border
|
|
32
|
+
row-key="id"
|
|
33
|
+
:max-height="tableHeight"
|
|
34
|
+
:header-cell-style="{ 'text-align': 'center' }"
|
|
35
|
+
:cell-style="{ 'text-align': 'center' }"
|
|
36
|
+
stripe
|
|
37
|
+
style="width: 100%"
|
|
38
|
+
>
|
|
39
|
+
<el-table-column
|
|
40
|
+
prop="id"
|
|
41
|
+
label="优惠券id"
|
|
42
|
+
show-overflow-tooltip
|
|
43
|
+
tooltip-effect="dark"
|
|
44
|
+
></el-table-column>
|
|
45
|
+
<el-table-column
|
|
46
|
+
prop="uid"
|
|
47
|
+
label="用户id"
|
|
48
|
+
show-overflow-tooltip
|
|
49
|
+
tooltip-effect="dark"
|
|
50
|
+
></el-table-column>
|
|
20
51
|
<el-table-column prop="oid" label="使用的订单id">
|
|
21
52
|
<template slot-scope="scope">
|
|
22
53
|
{{ scope.row.status == 1 ? scope.row.oid : "" }}
|
|
@@ -24,9 +55,25 @@
|
|
|
24
55
|
</el-table-column>
|
|
25
56
|
<el-table-column prop="title" label="优惠券标题"></el-table-column>
|
|
26
57
|
<el-table-column prop="caption" label="优惠券描述"></el-table-column>
|
|
27
|
-
<el-table-column
|
|
28
|
-
|
|
29
|
-
|
|
58
|
+
<el-table-column
|
|
59
|
+
prop="cdate"
|
|
60
|
+
label="领用时间"
|
|
61
|
+
show-overflow-tooltip
|
|
62
|
+
tooltip-effect="dark"
|
|
63
|
+
:formatter="dateFormatter"
|
|
64
|
+
></el-table-column>
|
|
65
|
+
<el-table-column
|
|
66
|
+
prop="udate"
|
|
67
|
+
label="使用时间"
|
|
68
|
+
:formatter="dateFormatter"
|
|
69
|
+
></el-table-column>
|
|
70
|
+
<el-table-column
|
|
71
|
+
prop="date_end"
|
|
72
|
+
label="过期时间"
|
|
73
|
+
show-overflow-tooltip
|
|
74
|
+
tooltip-effect="dark"
|
|
75
|
+
:formatter="dateFormatter"
|
|
76
|
+
></el-table-column>
|
|
30
77
|
<el-table-column label="是否已经使用">
|
|
31
78
|
<template slot-scope="scope">
|
|
32
79
|
<span v-if="scope.row.status == 0">未使用</span>
|
|
@@ -38,78 +85,84 @@
|
|
|
38
85
|
<el-table-column prop="note" label="备注"></el-table-column>
|
|
39
86
|
</el-table>
|
|
40
87
|
<div style="text-align: center; margin-top: 30px">
|
|
41
|
-
<el-pagination
|
|
42
|
-
|
|
88
|
+
<el-pagination
|
|
89
|
+
background
|
|
90
|
+
layout="prev, pager, next"
|
|
91
|
+
:total="searchData.total"
|
|
92
|
+
:page-size="10"
|
|
93
|
+
@current-change="current_change"
|
|
94
|
+
>></el-pagination
|
|
95
|
+
>
|
|
43
96
|
</div>
|
|
44
97
|
</div>
|
|
45
98
|
</template>
|
|
46
99
|
<script>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
100
|
+
import moment from "moment";
|
|
101
|
+
import { listByUid } from "@/api/coupon";
|
|
102
|
+
export default {
|
|
103
|
+
name: "le-coupon-details",
|
|
104
|
+
data() {
|
|
105
|
+
return {
|
|
106
|
+
tableHeight: 200,
|
|
107
|
+
tableData: [],
|
|
108
|
+
searchData: {
|
|
109
|
+
uid: "",
|
|
110
|
+
pageNo: 1,
|
|
111
|
+
total: 1,
|
|
112
|
+
date_end: "",
|
|
113
|
+
date_start: "",
|
|
114
|
+
},
|
|
115
|
+
timeArr: "",
|
|
116
|
+
status: 0,
|
|
117
|
+
statusOptions: [
|
|
118
|
+
{ id: 0, value: "未使用" },
|
|
119
|
+
{ id: 1, value: "已经使用" },
|
|
120
|
+
{ id: 2, value: "已经过期" },
|
|
121
|
+
{ id: 3, value: "已经作废" },
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
},
|
|
125
|
+
mounted() {
|
|
126
|
+
this.list();
|
|
127
|
+
this.$nextTick(() => {
|
|
128
|
+
this.tableHeight = window.innerHeight - 255;
|
|
129
|
+
});
|
|
130
|
+
},
|
|
131
|
+
methods: {
|
|
132
|
+
dateFormatter(row, column, cellValue, index) {
|
|
133
|
+
if (cellValue) return moment.unix(cellValue).format("YYYY-MM-DD HH:mm");
|
|
71
134
|
},
|
|
72
|
-
|
|
135
|
+
current_change(currentPage) {
|
|
136
|
+
this.searchData.pageNo = currentPage;
|
|
73
137
|
this.list();
|
|
74
|
-
this.$nextTick(() => {
|
|
75
|
-
this.tableHeight = window.innerHeight - 255;
|
|
76
|
-
});
|
|
77
138
|
},
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
filterParams(obj) {
|
|
87
|
-
var _newPar = {};
|
|
88
|
-
for (var key in obj) {
|
|
89
|
-
if (
|
|
90
|
-
(obj[key] === false || obj[key]) &&
|
|
91
|
-
obj[key].toString().replace(/(^\s*)|(\s*$)/g, "") !== ""
|
|
92
|
-
) {
|
|
93
|
-
_newPar[key] = obj[key];
|
|
94
|
-
}
|
|
139
|
+
filterParams(obj) {
|
|
140
|
+
var _newPar = {};
|
|
141
|
+
for (var key in obj) {
|
|
142
|
+
if (
|
|
143
|
+
(obj[key] === false || obj[key]) &&
|
|
144
|
+
obj[key].toString().replace(/(^\s*)|(\s*$)/g, "") !== ""
|
|
145
|
+
) {
|
|
146
|
+
_newPar[key] = obj[key];
|
|
95
147
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
148
|
+
}
|
|
149
|
+
return _newPar;
|
|
150
|
+
},
|
|
151
|
+
list() {
|
|
152
|
+
if (this.timeArr && this.timeArr.length == 2) {
|
|
153
|
+
this.searchData.date_start = new Date(this.timeArr[0]).getTime() / 1000;
|
|
154
|
+
this.searchData.date_end = new Date(this.timeArr[1]).getTime() / 1000;
|
|
155
|
+
} else {
|
|
156
|
+
this.searchData.date_start = 0;
|
|
157
|
+
this.searchData.date_end = 0;
|
|
158
|
+
}
|
|
159
|
+
let params = this.filterParams(this.searchData);
|
|
160
|
+
params.status = this.status;
|
|
161
|
+
listByUid(params).then((res) => {
|
|
162
|
+
this.tableData = res.data.data.list;
|
|
163
|
+
this.searchData.total = res.data.data.count;
|
|
164
|
+
});
|
|
113
165
|
},
|
|
114
|
-
}
|
|
115
|
-
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
</script>
|
package/le-promotions/index.js
CHANGED
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
<el-table-column prop="title" label="标题"></el-table-column>
|
|
38
38
|
<el-table-column prop="date_start" label="开始时间" width="130">
|
|
39
39
|
<template slot-scope="scope">
|
|
40
|
-
{{
|
|
40
|
+
{{ parseTime(scope.row.date_start) }}
|
|
41
41
|
</template>
|
|
42
42
|
</el-table-column>
|
|
43
43
|
<el-table-column prop="date_end" label="结束时间" width="130">
|
|
44
44
|
<template slot-scope="scope">
|
|
45
|
-
{{
|
|
45
|
+
{{ parseTime(scope.row.date_end) }}
|
|
46
46
|
</template>
|
|
47
47
|
</el-table-column>
|
|
48
48
|
<el-table-column prop="grang" label="适应商品" width="100">
|
|
@@ -57,14 +57,8 @@
|
|
|
57
57
|
<span v-if="scope.row.released == 1">已启用</span>
|
|
58
58
|
</template>
|
|
59
59
|
</el-table-column>
|
|
60
|
-
<el-table-column fixed="right" label="操作" align="center" width="
|
|
60
|
+
<el-table-column fixed="right" label="操作" align="center" width="248">
|
|
61
61
|
<template slot-scope="scope">
|
|
62
|
-
<le-button
|
|
63
|
-
id="btnGoods"
|
|
64
|
-
text="选择商品"
|
|
65
|
-
@click="choiceGoods(scope.row)"
|
|
66
|
-
style="margin-right: 2px"
|
|
67
|
-
></le-button>
|
|
68
62
|
<le-button
|
|
69
63
|
id="btnDetail"
|
|
70
64
|
text="编辑"
|
|
@@ -91,10 +85,11 @@
|
|
|
91
85
|
</div>
|
|
92
86
|
<le-dialog-container
|
|
93
87
|
width="60%"
|
|
94
|
-
title="
|
|
88
|
+
title="活动详情"
|
|
95
89
|
:showDialog="showDetails"
|
|
96
90
|
@close="closeDetailsDialog"
|
|
97
91
|
:showFooter="true"
|
|
92
|
+
saveBtnText="保存"
|
|
98
93
|
@saveData="onSubmit"
|
|
99
94
|
>
|
|
100
95
|
<le-promotions-activities-sub
|
|
@@ -103,14 +98,18 @@
|
|
|
103
98
|
:rowData="rowData"
|
|
104
99
|
@list="list"
|
|
105
100
|
v-if="showDetails"
|
|
106
|
-
|
|
101
|
+
>
|
|
102
|
+
<template v-slot:default="data">
|
|
103
|
+
<!-- <slot :paid="rowData ? rowData.id : ''"></slot> -->
|
|
104
|
+
<slot :paid="data.paid"></slot>
|
|
105
|
+
</template>
|
|
106
|
+
</le-promotions-activities-sub>
|
|
107
107
|
</le-dialog-container>
|
|
108
108
|
</div>
|
|
109
109
|
</template>
|
|
110
110
|
<script>
|
|
111
111
|
import { delP, listP } from "@/api/mall_promotion_activities";
|
|
112
112
|
import LePromotionsActivitiesSub from "./sub.vue";
|
|
113
|
-
import moment from "moment";
|
|
114
113
|
|
|
115
114
|
export default {
|
|
116
115
|
name: "le-promotions-activities",
|
|
@@ -119,6 +118,7 @@ export default {
|
|
|
119
118
|
return {
|
|
120
119
|
tableHeight: 200,
|
|
121
120
|
showDetails: false,
|
|
121
|
+
// showGoods: false,
|
|
122
122
|
rowData: null,
|
|
123
123
|
editType: 1,
|
|
124
124
|
tableData: [],
|
|
@@ -160,6 +160,9 @@ export default {
|
|
|
160
160
|
listP(params).then((response) => {
|
|
161
161
|
this.tableData = response.data.data.list;
|
|
162
162
|
this.total = response.data.data.count;
|
|
163
|
+
if (this.showDetails) {
|
|
164
|
+
this.closeDetailsDialog();
|
|
165
|
+
}
|
|
163
166
|
});
|
|
164
167
|
},
|
|
165
168
|
addPromotion() {
|
|
@@ -175,9 +178,6 @@ export default {
|
|
|
175
178
|
this.editType = 1;
|
|
176
179
|
this.showDetails = false;
|
|
177
180
|
},
|
|
178
|
-
dateFormat(data) {
|
|
179
|
-
return moment.unix(data).format("YYYY-MM-DD HH:mm");
|
|
180
|
-
},
|
|
181
181
|
deletepromotion(item) {
|
|
182
182
|
let param = {};
|
|
183
183
|
param.id = item.id;
|
|
@@ -189,6 +189,9 @@ export default {
|
|
|
189
189
|
onSubmit() {
|
|
190
190
|
this.$refs.promotionDetail.onSave();
|
|
191
191
|
},
|
|
192
|
+
// selectGoods(goods) {
|
|
193
|
+
// console.log(goods);
|
|
194
|
+
// },
|
|
192
195
|
},
|
|
193
196
|
};
|
|
194
197
|
</script>
|
|
@@ -20,18 +20,7 @@
|
|
|
20
20
|
:max="100"
|
|
21
21
|
@change="handleChange"
|
|
22
22
|
></el-input-number>
|
|
23
|
-
<!-- <span style="padding-left: 10px"
|
|
24
|
-
>例如:买五送一则该值为5;第二件半价该值为2</span
|
|
25
|
-
> -->
|
|
26
23
|
</el-form-item>
|
|
27
|
-
<!-- <el-form-item label="赠送数量" prop="minmoney">
|
|
28
|
-
<el-input-number
|
|
29
|
-
v-model="form.num_give"
|
|
30
|
-
:min="0"
|
|
31
|
-
:max="20"
|
|
32
|
-
></el-input-number>
|
|
33
|
-
<span style="padding-left: 10px">例如:买五送一则该值为1</span>
|
|
34
|
-
</el-form-item> -->
|
|
35
24
|
<el-form-item label="开始日期" prop="date_start">
|
|
36
25
|
<el-date-picker
|
|
37
26
|
value-format="timestamp"
|
|
@@ -50,39 +39,21 @@
|
|
|
50
39
|
>
|
|
51
40
|
</el-date-picker>
|
|
52
41
|
</el-form-item>
|
|
53
|
-
<el-form-item label="适用范围">
|
|
54
|
-
<el-radio-group v-model="form.grang">
|
|
55
|
-
<el-radio :label="1">全部商品</el-radio>
|
|
56
|
-
<el-radio :label="2">部分商品可用</el-radio>
|
|
57
|
-
</el-radio-group>
|
|
58
|
-
</el-form-item>
|
|
59
|
-
<!-- <el-form-item label="选择商品" v-if="form.grang == 2">
|
|
60
|
-
<el-select
|
|
61
|
-
v-model="form.grang_product"
|
|
62
|
-
multiple
|
|
63
|
-
filterable
|
|
64
|
-
remote
|
|
65
|
-
reserve-keyword
|
|
66
|
-
placeholder="输入商品编码或名称关键字"
|
|
67
|
-
:remote-method="getGoodsMethod"
|
|
68
|
-
:loading="loading"
|
|
69
|
-
>
|
|
70
|
-
<el-option
|
|
71
|
-
v-for="item in goodsList"
|
|
72
|
-
:key="item.gcode + '-' + item.gname"
|
|
73
|
-
:label="item.gcode + '-' + item.gname"
|
|
74
|
-
:value="item.gcode + '-' + item.gname"
|
|
75
|
-
>
|
|
76
|
-
</el-option>
|
|
77
|
-
</el-select>
|
|
78
|
-
</el-form-item> -->
|
|
79
42
|
<el-form-item label="是否启用">
|
|
80
43
|
<el-select v-model="form.released">
|
|
81
44
|
<el-option label="是" value="1" key="1"></el-option>
|
|
82
45
|
<el-option label="否" value="0" key="0"></el-option>
|
|
83
46
|
</el-select>
|
|
84
47
|
</el-form-item>
|
|
85
|
-
<el-form-item
|
|
48
|
+
<el-form-item label="适用范围">
|
|
49
|
+
<el-radio-group v-model="form.grang">
|
|
50
|
+
<el-radio :label="1">全部商品</el-radio>
|
|
51
|
+
<el-radio :label="2">部分商品可用</el-radio>
|
|
52
|
+
</el-radio-group>
|
|
53
|
+
</el-form-item>
|
|
54
|
+
<div v-if="form.grang == 2">
|
|
55
|
+
<slot :paid="rowData ? rowData.id : ''"></slot>
|
|
56
|
+
</div>
|
|
86
57
|
</el-form>
|
|
87
58
|
</template>
|
|
88
59
|
<script>
|
|
@@ -113,7 +84,7 @@ export default {
|
|
|
113
84
|
grang: 2,
|
|
114
85
|
num_min: 0,
|
|
115
86
|
num_give: 0,
|
|
116
|
-
grang_product: [],
|
|
87
|
+
// grang_product: [],
|
|
117
88
|
is_used_coupon: "0",
|
|
118
89
|
is_used_integral: "0",
|
|
119
90
|
released: "1",
|
|
@@ -178,7 +149,7 @@ export default {
|
|
|
178
149
|
param.is_used_integral = Number(param.is_used_integral);
|
|
179
150
|
param.released = Number(param.released);
|
|
180
151
|
if (param.grang == 2) {
|
|
181
|
-
param.grang_product =
|
|
152
|
+
param.grang_product = "";
|
|
182
153
|
} else {
|
|
183
154
|
param.grang_product = "";
|
|
184
155
|
}
|
|
@@ -204,14 +175,6 @@ export default {
|
|
|
204
175
|
this.pTypeOptions = res.data.data;
|
|
205
176
|
});
|
|
206
177
|
},
|
|
207
|
-
// handlePromotionType(value) {
|
|
208
|
-
// if (value == undefined || value == "") return;
|
|
209
|
-
// let promotionTypes = this.pTypeOptions.find(function (item) {
|
|
210
|
-
// return item.id === value;
|
|
211
|
-
// });
|
|
212
|
-
// if (!promotionTypes) return;
|
|
213
|
-
// this.form.pname = promotionTypes.name;
|
|
214
|
-
// },
|
|
215
178
|
getGoodsMethod(query) {
|
|
216
179
|
if (query !== "") {
|
|
217
180
|
this.loading = true;
|