多租户商城-商户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

161 lines
4.1 KiB

<template>
<div class="product-select">
<el-form :inline="true" :model="formData" class="demo-form-inline">
<el-form-item label="">
<el-input v-model="formData.keyword" maxlength="20" placeholder="请输入优惠券名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">{{ $t('common.query') }}</el-button>
</el-form-item>
</el-form>
<el-table
:data="tableData"
max-height="500"
border
style="width: 100%"
ref="couponTable"
row-key="productId"
@selection-change="handleSelectionChange"
>
<el-table-column
width="40"
type="selection"
:reserve-selection="true"
fixed="left"
>
</el-table-column>
<el-table-column
prop="couponName"
label="优惠券名称"
width="180">
</el-table-column>
<el-table-column
prop="content"
label="内容">
</el-table-column>
<el-table-column
prop="effectiveStart"
label="活动开始时间">
</el-table-column>
<el-table-column
prop="effectiveEnd"
label="活动结束时间">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:hide-on-single-page="true"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</template>
<script>
import api from '@@/components/canvasShow/config/api'
import {sendReqMixin} from '@@/components/canvasShow/config/mixin'
import Cookies from 'js-cookie'
import { mapGetters } from 'vuex'
import {getShopId} from "@@/utils/auth.js"
export default {
name: 'coupon-select',
mixins: [sendReqMixin],
data () {
return {
tableRadio: '',
formData: {
keyword: ''
},
currentPage: 1,
total: 0,
pageSize: 10,
multipleSelection: [],
tableData: [{
id: 100,
name: '测试'
}]
}
},
mounted () {
this.getTableData()
},
computed: {
...mapGetters([
'typeId'
])
},
methods: {
// 获取优惠券
getTableData () {
var _this = this
let _url = ''
if(this.typeId===1){
_url = `${api.getCoupons}?page=${this.currentPage}&pageSize=${this.pageSize}`
} else if(this.typeId===3){
_url = `${api.getShopCoupons}?page=${this.currentPage}&pageSize=${this.pageSize}&shopId=${getShopId()}`
}
if (this.formData.keyword) {
_url += `&search=${this.formData.keyword}`
}
let params = {
url: _url,
method: 'GET'
}
this.sendReq(params, (res) => {
_this.tableData = res.data.list
if(this.typeId===1){
_this.tableData.map(function(value){
value.couponName = value.activityName
value.effectiveStart = value.activityStartTime
value.effectiveEnd = value.activityEndTime
return value;
});
}
_this.total = res.data.total
})
},
// 搜索
onSubmit () {
this.getTableData()
},
// 每页条数改变
handleSizeChange (val) {
this.pageSize = val
this.getTableData()
},
// 当前页改变
handleCurrentChange (val) {
this.currentPage = val
this.getTableData()
},
// 多选改变
handleSelectionChange (val) {
this.multipleSelection = val
},
// 多选改变
resetTableData (list) {
this.$refs.couponTable.clearSelection();
this.$refs.couponTable.toggleRowSelection(list,true);
}
}
}
</script>
<style lang="scss" scoped>
.product-select{
.el-pagination{
padding: 0px;
margin-top: 30px;
}
.el-table{
.img{
width: 80px;
height: 80px;
}
}
}
</style>