Skip to content

Commit 8f8a1a6

Browse files
committed
前端修改秒杀相关文件存放地址
1 parent 9da0496 commit 8f8a1a6

File tree

4 files changed

+77
-130
lines changed

4 files changed

+77
-130
lines changed

src/views/promotion/seckillActivity/index.vue renamed to src/views/mall/promotion/seckill/seckillActivity/index.vue

Lines changed: 68 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
<el-select v-model="queryParams.timeId" placeholder="请选择参与场次" clearable size="small">
1919
<el-option v-for="item in seckillTimeList" :key="item.id" :label="item.name" :value="item.id" />
2020
</el-select>
21-
<!-- <el-option v-for="seckill in seckillTimeList" :key="seckill.id" :lable="seckill.name" :value="seckill.id" /> -->
22-
<!-- <el-input v-model="queryParams.timeId" placeholder="请输入秒杀时段id" clearable @keyup.enter.native="handleQuery" /> -->
2321
</el-form-item>
2422
<el-form-item label="创建时间" prop="createTime">
2523
<el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
@@ -39,8 +37,8 @@
3937
v-hasPermi="['promotion:seckill-activity:create']">新增秒杀活动</el-button>
4038
</el-col>
4139
<el-col :span="1.5">
42-
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
43-
:loading="exportLoading" v-hasPermi="['promotion:seckill-activity:export']">导出</el-button>
40+
<el-button type="primary" plain icon="el-icon-menu" size="mini" @click="openSeckillTime"
41+
v-hasPermi="['promotion:seckill-activity:create']">管理参与场次</el-button>
4442
</el-col>
4543
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
4644
</el-row>
@@ -70,11 +68,6 @@
7068

7169
<el-table-column label="付款订单数" align="center" prop="orderCount" />
7270
<el-table-column label="付款人数" align="center" prop="userCount" />
73-
<el-table-column label="订单实付金额" align="center">
74-
<template slot-scope="scope">
75-
¥{{ (scope.row.totalPrice / 100.0).toFixed(2) }}
76-
</template>
77-
</el-table-column>
7871
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
7972
<template slot-scope="scope">
8073
<span>{{ parseTime(scope.row.createTime) }}</span>
@@ -84,6 +77,8 @@
8477
<template slot-scope="scope">
8578
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
8679
v-hasPermi="['promotion:seckill-activity:update']">修改</el-button>
80+
<el-button size="mini" type="text" icon="el-icon-close" @click="handleClose(scope.row)"
81+
v-hasPermi="['promotion:seckill-activity:delete']">关闭</el-button>
8782
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
8883
v-hasPermi="['promotion:seckill-activity:delete']">删除</el-button>
8984
</template>
@@ -99,40 +94,20 @@
9994
<el-form-item label="活动名称" prop="name">
10095
<el-input v-model="form.name" placeholder="请输入秒杀活动名称" />
10196
</el-form-item>
102-
<!-- <el-form-item label="活动状态" prop="status">
103-
<el-radio-group v-model="form.status">
104-
<el-radio v-for="dict in this.getDictDatas(DICT_TYPE.PROMOTION_ACTIVITY_STATUS)"
105-
:key="dict.value" :label="parseInt(dict.value)">{{dict.label}}</el-radio>
106-
</el-radio-group>
107-
</el-form-item> -->
108-
10997
<el-form-item label="活动时间" prop="startAndEndTime">
11098
<el-date-picker clearable v-model="form.startAndEndTime" type="datetimerange"
11199
value-format="timestamp" range-separator="" start-placeholder="开始日期" end-placeholder="结束日期"
112100
style="width: 1080px" />
113101
</el-form-item>
114-
<!--
115-
<el-form-item label="活动结束时间" prop="endTime">
116-
<el-date-picker clearable v-model="form.endTime" type="date" value-format="timestamp" placeholder="选择活动结束时间" />
117-
</el-form-item> -->
118-
119102
<el-form-item label="排序" prop="sort">
120103
<el-input-number v-model="form.sort" controls-position="right" :min="0" :max="10000">
121104
</el-input-number>
122105
</el-form-item>
123-
124-
<!-- <el-form-item label="秒杀时段id" prop="timeId">
125-
<el-input v-model="form.timeId" placeholder="请输入秒杀时段id" />
126-
</el-form-item>
127-
<el-form-item label="订单实付金额(分)" prop="totalPrice">
128-
<el-input v-model="form.totalPrice" placeholder="请输入订单实付金额(分)" />
129-
</el-form-item> -->
130-
131106
<el-form-item label="备注" prop="remark">
132107
<el-input type="textarea" v-model="form.remark" placeholder="请输入备注" />
133108
</el-form-item>
134109
<el-form-item label="场次选择">
135-
<el-select v-model="form.timeIds" placeholder="请选择参与场次" clearable size="small" multiple filterable
110+
<el-select v-model="form.timeId" placeholder="请选择参与场次" clearable size="small" multiple filterable
136111
style="width: 880px">
137112
<el-option v-for="item in seckillTimeList" :key="item.id" :label="item.name" :value="item.id">
138113
<span style="float: left">{{ item.name + ': { ' }} {{ item.startTime }} -- {{ item.endTime +
@@ -142,7 +117,6 @@
142117
</el-option>
143118
</el-select>
144119
</el-form-item>
145-
146120
<el-form-item label="商品选择">
147121
<el-select v-model="form.skuIds" placeholder="请选择活动商品" clearable size="small" multiple filterable
148122
style="width: 880px" @change="changeFormSku">
@@ -154,13 +128,11 @@
154128
}}</span>
155129
</el-option>
156130
</el-select>
157-
158131
<el-row>
159132
<el-button type="primary" size="mini" @click="batchEditProduct('limitBuyCount')">限购</el-button>
160133
<el-button type="primary" size="mini" @click="batchEditProduct('seckillPrice')">秒杀价</el-button>
161134
<el-button type="primary" size="mini" @click="batchEditProduct('seckillStock')">秒杀库存</el-button>
162135
</el-row>
163-
164136
<el-table v-loading="loading" ref="productsTable" :data="form.products">
165137
<el-table-column type="selection" width="55">
166138
</el-table-column>
@@ -177,28 +149,23 @@
177149
<el-table-column label="库存" align="center" prop="productStock" />
178150
<el-table-column label="限购(0为不限购)" align="center" width="150">
179151
<template slot-scope="scope">
180-
<el-input-number v-model="scope.row.limitBuyCount" size="mini" controls-position="right"
181-
:min="0" :max="10000">
152+
<el-input-number v-model="scope.row.limitBuyCount" size="mini" :min="0" :max="10000">
182153
</el-input-number>
183154
</template>
184155
</el-table-column>
185-
186156
<el-table-column label="秒杀价(元)" align="center" width="150">
187157
<template slot-scope="scope">
188-
<el-input-number v-model="scope.row.seckillPrice" size="mini" controls-position="right"
189-
:precision="2" :min="0" :max="10000">
158+
<el-input-number v-model="scope.row.seckillPrice" size="mini" :precision="2" :min="0"
159+
:max="10000">
190160
</el-input-number>
191161
</template>
192162
</el-table-column>
193-
194-
<el-table-column label="秒杀库存" align="center" width="150">
163+
<el-table-column label="秒杀库存" align="center" width="150" prop="seckillStock">
195164
<template slot-scope="scope">
196-
<el-input-number v-model="scope.row.seckillStock" size="mini" controls-position="right"
197-
:min="0" :max="10000">
165+
<el-input-number v-model="scope.row.seckillStock" size="mini" :min="0" :max="10000">
198166
</el-input-number>
199167
</template>
200168
</el-table-column>
201-
202169
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
203170
<template slot-scope="scope">
204171
<el-button size="mini" type="text" icon="el-icon-delete"
@@ -208,8 +175,6 @@
208175
</el-table-column>
209176
</el-table>
210177
</el-form-item>
211-
212-
213178
</el-form>
214179
<div slot="footer" class="dialog-footer">
215180
<el-button type="primary" @click="submitForm">确 定</el-button>
@@ -221,10 +186,9 @@
221186

222187
<script>
223188
import { getSkuOptionList } from "@/api/mall/product/sku";
224-
import { createSeckillActivity, updateSeckillActivity, deleteSeckillActivity, getSeckillActivity, getSeckillActivityPage, exportSeckillActivityExcel } from "@/api/promotion/seckillActivity";
225-
import { getSeckillTimeList } from "@/api/promotion/seckillTime";
226-
import router from '@/router';
227-
import { PromotionDiscountTypeEnum } from "@/utils/constants";
189+
import { createSeckillActivity, updateSeckillActivity, closeSeckillActivity,deleteSeckillActivity, getSeckillActivity, getSeckillActivityPage, exportSeckillActivityExcel } from "@/api/mall/promotion/seckillActivity";
190+
import { getSeckillTimeList } from "@/api/mall/promotion/seckillTime";
191+
import { deepClone } from "@/utils";
228192
229193
export default {
230194
name: "SeckillActivity",
@@ -234,8 +198,6 @@ export default {
234198
return {
235199
// 遮罩层
236200
loading: true,
237-
// 导出遮罩层
238-
exportLoading: false,
239201
// 显示搜索条件
240202
showSearch: true,
241203
// 总条数
@@ -261,7 +223,7 @@ export default {
261223
form: {
262224
skuIds: [], // 选中的 SKU
263225
products: [], // 商品信息
264-
timeIds: [], //选中的秒杀场次id
226+
timeId: [], //选中的秒杀场次id
265227
},
266228
// 商品 SKU 列表
267229
productSkus: [],
@@ -270,35 +232,42 @@ export default {
270232
name: [{ required: true, message: "秒杀活动名称不能为空", trigger: "blur" }],
271233
status: [{ required: true, message: "活动状态不能为空", trigger: "blur" }],
272234
startAndEndTime: [{ required: true, message: "活动时间不能为空", trigger: "blur" }],
273-
endTime: [{ required: true, message: "活动结束时间不能为空", trigger: "blur" }],
274235
sort: [{ required: true, message: "排序不能为空", trigger: "blur" }],
275-
timeIds: [{ required: true, message: "秒杀场次不能为空", trigger: "blur" }],
236+
timeId: [{ required: true, message: "秒杀场次不能为空", trigger: "blur" }],
276237
totalPrice: [{ required: true, message: "订单实付金额,单位:分不能为空", trigger: "blur" }],
277238
}
278239
};
279240
},
280241
created() {
281242
this.getList();
282243
},
244+
watch:{
245+
$route: 'getList'
246+
},
283247
methods: {
284248
/** 查询列表 */
285249
getList() {
250+
const timeId = this.$route.params && this.$route.params.timeId;
251+
if (timeId) {
252+
this.queryParams.timeId = timeId
253+
}
286254
this.loading = true;
287255
// 执行查询
288256
getSeckillActivityPage(this.queryParams).then(response => {
289257
this.list = response.data.list;
290-
console.log(response, "查询返回的秒杀活动列表");
291258
this.total = response.data.total;
292259
this.loading = false;
293260
});
261+
if (timeId) {
262+
this.$route.params.timeId = undefined
263+
}
294264
// 获得 SKU 商品列表
295265
getSkuOptionList().then(response => {
296266
this.productSkus = response.data;
297267
});
298268
// 获取参与场次列表
299269
getSeckillTimeList().then(response => {
300270
this.seckillTimeList = response.data;
301-
console.log(this.seckillTimeList, "最终获取的参与场次列表");
302271
});
303272
},
304273
/** 取消按钮 */
@@ -316,7 +285,7 @@ export default {
316285
startTime: undefined,
317286
endTime: undefined,
318287
sort: undefined,
319-
timeId: undefined,
288+
timeId: [],
320289
totalPrice: undefined,
321290
skuIds: [],
322291
products: [],
@@ -333,6 +302,10 @@ export default {
333302
this.resetForm("queryForm");
334303
this.handleQuery();
335304
},
305+
/**打开秒杀场次管理页面 */
306+
openSeckillTime() {
307+
this.$tab.openPage("秒杀场次管理", "/promotion/seckill-time");
308+
},
336309
/** 新增按钮操作 */
337310
handleAdd() {
338311
this.reset();
@@ -341,14 +314,34 @@ export default {
341314
},
342315
/** 修改按钮操作 */
343316
handleUpdate(row) {
344-
console.log(row, "当前行数据");
345317
this.reset();
346318
const id = row.id;
347319
getSeckillActivity(id).then(response => {
320+
var timeIdList = response.data.timeId.split(',')
348321
this.form = response.data;
322+
// 修改数据
323+
this.form.startAndEndTime = [response.data.startTime, response.data.endTime];
324+
this.form.timeId = timeIdList.map(item => parseInt(item))
325+
this.form.skuIds = response.data.products.map(item => item.skuId);
326+
this.form.products.forEach(product => {
327+
// 获得对应的 SKU 信息
328+
const sku = this.productSkus.find(item => item.id === product.skuId);
329+
if (!sku) {
330+
return;
331+
}
332+
// 设置商品信息
333+
product.name = sku.name;
334+
product.spuName = sku.spuName;
335+
product.price = sku.price;
336+
product.productStock = sku.stock;
337+
this.$set(product,'seckillStock',product.stock);
338+
product.seckillPrice = product.seckillPrice !== undefined ? product.seckillPrice / 100 : undefined;
339+
340+
});
341+
// 打开弹窗
349342
this.open = true;
350-
this.title = "修改秒杀活动";
351-
});
343+
this.title = "修改限时折扣活动";
344+
})
352345
},
353346
/** 提交按钮 */
354347
submitForm() {
@@ -360,6 +353,11 @@ export default {
360353
const data = deepClone(this.form);
361354
data.startTime = this.form.startAndEndTime[0];
362355
data.endTime = this.form.startAndEndTime[1];
356+
data.timeId = data.timeId.toString();
357+
data.products.forEach(product => {
358+
product.stock = product.seckillStock;
359+
product.seckillPrice = product.seckillPrice !== undefined ? product.seckillPrice * 100 : undefined;
360+
});
363361
// 修改的提交
364362
if (this.form.id != null) {
365363
updateSeckillActivity(data).then(response => {
@@ -377,6 +375,16 @@ export default {
377375
});
378376
});
379377
},
378+
/** 关闭按钮操作 */
379+
handleClose(row) {
380+
const id = row.id;
381+
this.$modal.confirm('是否确认关闭秒杀活动编号为"' + id + '"的数据项?').then(function () {
382+
return closeSeckillActivity(id);
383+
}).then(() => {
384+
this.getList();
385+
this.$modal.msgSuccess("关闭成功");
386+
}).catch(() => { });
387+
},
380388
/** 删除按钮操作 */
381389
handleDelete(row) {
382390
const id = row.id;
@@ -387,20 +395,6 @@ export default {
387395
this.$modal.msgSuccess("删除成功");
388396
}).catch(() => { });
389397
},
390-
/** 导出按钮操作 */
391-
handleExport() {
392-
// 处理查询参数
393-
let params = { ...this.queryParams };
394-
params.pageNo = undefined;
395-
params.pageSize = undefined;
396-
this.$modal.confirm('是否确认导出所有秒杀活动数据项?').then(() => {
397-
this.exportLoading = true;
398-
return exportSeckillActivityExcel(params);
399-
}).then(response => {
400-
this.$download.excel(response, '秒杀活动.xls');
401-
this.exportLoading = false;
402-
}).catch(() => { });
403-
},
404398
/** 批量修改商品秒杀价,秒杀库存,每人限购数量 */
405399
batchEditProduct(editType) {
406400
const selectProducts = this.$refs.productsTable.selection;
@@ -459,7 +453,6 @@ export default {
459453
return;
460454
}
461455
// 判断已存在,直接跳过
462-
console.log(this.form, "当前form")
463456
const product = this.form.products.find(item => item.skuId === skuId);
464457
if (product) {
465458
return;

0 commit comments

Comments
 (0)