leisure-core 0.1.9 → 0.2.1
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 +21 -0
- package/le-commission/index.js +7 -0
- package/le-commission/src/main.vue +175 -0
- package/le-commission/src/sub.vue +213 -0
- package/le-coupon/index.js +17 -0
- package/le-coupon/src/details.vue +115 -0
- package/le-coupon/src/main.vue +194 -0
- package/le-coupon/src/sub.vue +362 -0
- package/le-help/index.js +12 -0
- package/le-help/src/detail.vue +40 -0
- package/le-help/src/main.vue +130 -0
- package/le-libs/mixins/main.js +15 -7
- package/le-mpurl/index.js +7 -0
- package/le-mpurl/src/main.vue +51 -0
- package/le-promotions/index.js +7 -0
- package/le-promotions/src/main.vue +220 -0
- package/le-promotions/src/sub.vue +248 -0
- package/package.json +1 -1
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-form ref="form" :model="form" :rules="rules" label-width="130px">
|
|
3
|
+
<el-form-item label="活动标题" prop="title">
|
|
4
|
+
<el-input v-model="form.title"></el-input>
|
|
5
|
+
</el-form-item>
|
|
6
|
+
<el-form-item label="活动类型" prop="ptype">
|
|
7
|
+
<el-select v-model="form.ptype" placeholder="请选择活动类型">
|
|
8
|
+
<el-option
|
|
9
|
+
v-for="item in pTypeOptions"
|
|
10
|
+
:label="item.name"
|
|
11
|
+
:value="item.id"
|
|
12
|
+
:key="item.id"
|
|
13
|
+
></el-option>
|
|
14
|
+
</el-select>
|
|
15
|
+
</el-form-item>
|
|
16
|
+
<el-form-item label="启动数量" prop="minmoney">
|
|
17
|
+
<el-input-number
|
|
18
|
+
v-model="form.num_min"
|
|
19
|
+
:min="1"
|
|
20
|
+
:max="20"
|
|
21
|
+
@change="handleChange"
|
|
22
|
+
></el-input-number>
|
|
23
|
+
<span style="padding-left: 10px"
|
|
24
|
+
>例如:买五送一则该值为6;第二件半价该值为2</span
|
|
25
|
+
>
|
|
26
|
+
</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
|
+
<el-form-item label="开始日期" prop="date_start">
|
|
36
|
+
<el-date-picker
|
|
37
|
+
value-format="timestamp"
|
|
38
|
+
v-model="form.date_start"
|
|
39
|
+
type="date"
|
|
40
|
+
placeholder="开始日期"
|
|
41
|
+
>
|
|
42
|
+
</el-date-picker>
|
|
43
|
+
</el-form-item>
|
|
44
|
+
<el-form-item label="结束日期" prop="date_end">
|
|
45
|
+
<el-date-picker
|
|
46
|
+
value-format="timestamp"
|
|
47
|
+
v-model="form.date_end"
|
|
48
|
+
type="date"
|
|
49
|
+
placeholder="结束日期"
|
|
50
|
+
>
|
|
51
|
+
</el-date-picker>
|
|
52
|
+
</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
|
+
<!-- <el-form-item label="可否使用优惠券">
|
|
80
|
+
<el-select v-model="form.is_used_coupon">
|
|
81
|
+
<el-option label="是" value="1" key="1"></el-option>
|
|
82
|
+
<el-option label="否" value="0" key="0"></el-option>
|
|
83
|
+
</el-select>
|
|
84
|
+
</el-form-item>
|
|
85
|
+
<el-form-item label="可否使用积分">
|
|
86
|
+
<el-select v-model="form.is_used_integral">
|
|
87
|
+
<el-option label="是" value="1" key="1"></el-option>
|
|
88
|
+
<el-option label="否" value="0" key="0"></el-option>
|
|
89
|
+
</el-select>
|
|
90
|
+
</el-form-item> -->
|
|
91
|
+
<el-form-item label="是否启用">
|
|
92
|
+
<el-select v-model="form.released">
|
|
93
|
+
<el-option label="是" value="1" key="1"></el-option>
|
|
94
|
+
<el-option label="否" value="0" key="0"></el-option>
|
|
95
|
+
</el-select>
|
|
96
|
+
</el-form-item>
|
|
97
|
+
<el-form-item>
|
|
98
|
+
<!-- <el-button type="primary" @click="onSubmit">保存</el-button> -->
|
|
99
|
+
</el-form-item>
|
|
100
|
+
</el-form>
|
|
101
|
+
</template>
|
|
102
|
+
<script>
|
|
103
|
+
import { createP, editP } from "@/api/mall_promotion";
|
|
104
|
+
import { list as promotionTypeList } from "@/api/mall_promotion_type";
|
|
105
|
+
import GoodsSpuApi from "@/api/goods_spu";
|
|
106
|
+
export default {
|
|
107
|
+
name:'le-promotions-sub',
|
|
108
|
+
props: {
|
|
109
|
+
editType: {
|
|
110
|
+
type: Number,
|
|
111
|
+
default: 1, //新增模式 2:修改模式
|
|
112
|
+
},
|
|
113
|
+
rowData: {
|
|
114
|
+
type: Object,
|
|
115
|
+
default: () => {},
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
data() {
|
|
119
|
+
return {
|
|
120
|
+
form: {
|
|
121
|
+
id: "",
|
|
122
|
+
title: "",
|
|
123
|
+
ptype: "",
|
|
124
|
+
pname: "",
|
|
125
|
+
date_start: "",
|
|
126
|
+
date_end: "",
|
|
127
|
+
grang: 2,
|
|
128
|
+
num_min: 0,
|
|
129
|
+
num_give: 0,
|
|
130
|
+
grang_product: [],
|
|
131
|
+
is_used_coupon: "0",
|
|
132
|
+
is_used_integral: "0",
|
|
133
|
+
released: "1",
|
|
134
|
+
note: "",
|
|
135
|
+
},
|
|
136
|
+
pTypeOptions: [],
|
|
137
|
+
goodsList: [],
|
|
138
|
+
loading: false,
|
|
139
|
+
rules: {
|
|
140
|
+
title: [
|
|
141
|
+
{ required: true, message: "请输入活动标题", trigger: "blur" },
|
|
142
|
+
{
|
|
143
|
+
min: 1,
|
|
144
|
+
max: 150,
|
|
145
|
+
message: "长度在 1 到 150 个字符",
|
|
146
|
+
trigger: "blur",
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
ptype: [
|
|
150
|
+
{ required: true, message: "必须选择活动类型", trigger: "blur" },
|
|
151
|
+
],
|
|
152
|
+
date_start: [
|
|
153
|
+
{ required: true, message: "必须设置开始时间", trigger: "blur" },
|
|
154
|
+
],
|
|
155
|
+
date_end: [
|
|
156
|
+
{ required: true, message: "必须设置结束时间", trigger: "blur" },
|
|
157
|
+
],
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
},
|
|
161
|
+
mounted() {
|
|
162
|
+
this.getPromotionTypes();
|
|
163
|
+
if (!this.editType || this.editType != 1) {
|
|
164
|
+
this.form = this.rowData;
|
|
165
|
+
this.form.date_start = new Date(this.rowData.date_start * 1000);
|
|
166
|
+
this.form.date_end = new Date(this.rowData.date_end * 1000);
|
|
167
|
+
this.form.is_used_coupon = "1";
|
|
168
|
+
this.form.is_used_integral = "1";
|
|
169
|
+
this.form.released = this.form.released.toString();
|
|
170
|
+
if (this.form.grang == 2) {
|
|
171
|
+
let products = this.form.grang_product;
|
|
172
|
+
if (products && products.length > 0) {
|
|
173
|
+
products = products.split(",");
|
|
174
|
+
this.form.grang_product = products;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
methods: {
|
|
180
|
+
handleChange() {},
|
|
181
|
+
onSave() {
|
|
182
|
+
this.$refs["form"].validate((valid) => {
|
|
183
|
+
if (valid) {
|
|
184
|
+
let param = JSON.parse(JSON.stringify(this.form));
|
|
185
|
+
if (param.date_start) {
|
|
186
|
+
param.date_start = new Date(param.date_start).getTime() / 1000;
|
|
187
|
+
}
|
|
188
|
+
if (param.date_end) {
|
|
189
|
+
param.date_end = new Date(param.date_end).getTime() / 1000;
|
|
190
|
+
}
|
|
191
|
+
param.is_used_coupon = Number(param.is_used_coupon);
|
|
192
|
+
param.is_used_integral = Number(param.is_used_integral);
|
|
193
|
+
param.released = Number(param.released);
|
|
194
|
+
if (param.grang == 2) {
|
|
195
|
+
param.grang_product = param.grang_product.toString();
|
|
196
|
+
} else {
|
|
197
|
+
param.grang_product = "";
|
|
198
|
+
}
|
|
199
|
+
if (this.editType == 1) {
|
|
200
|
+
createP(param).then(() => {
|
|
201
|
+
this.$message.success("提交成功!");
|
|
202
|
+
this.$refs["form"].resetFields();
|
|
203
|
+
this.$emit("list");
|
|
204
|
+
});
|
|
205
|
+
} else {
|
|
206
|
+
editP(param).then(() => {
|
|
207
|
+
this.$message.success("提交成功!");
|
|
208
|
+
this.$emit("list");
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
} else {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
},
|
|
216
|
+
getPromotionTypes() {
|
|
217
|
+
promotionTypeList().then((res) => {
|
|
218
|
+
this.pTypeOptions = res.data.data;
|
|
219
|
+
});
|
|
220
|
+
},
|
|
221
|
+
// handlePromotionType(value) {
|
|
222
|
+
// if (value == undefined || value == "") return;
|
|
223
|
+
// let promotionTypes = this.pTypeOptions.find(function (item) {
|
|
224
|
+
// return item.id === value;
|
|
225
|
+
// });
|
|
226
|
+
// if (!promotionTypes) return;
|
|
227
|
+
// this.form.pname = promotionTypes.name;
|
|
228
|
+
// },
|
|
229
|
+
getGoodsMethod(query) {
|
|
230
|
+
if (query !== "") {
|
|
231
|
+
this.loading = true;
|
|
232
|
+
let param = {};
|
|
233
|
+
param.searchComment = query;
|
|
234
|
+
GoodsSpuApi.listSearch({ params: param })
|
|
235
|
+
.then((res) => {
|
|
236
|
+
this.loading = false;
|
|
237
|
+
this.goodsList = res.data.data;
|
|
238
|
+
})
|
|
239
|
+
.catch(() => {
|
|
240
|
+
this.loading = false;
|
|
241
|
+
});
|
|
242
|
+
} else {
|
|
243
|
+
this.goodsList = [];
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
</script>
|