增加广告跳转,增加现金红包配置
This commit is contained in:
parent
95b3a5c4ce
commit
b2c7ce63b7
|
|
@ -1,19 +1,25 @@
|
|||
class API {
|
||||
constructor(url,req) {
|
||||
import $http from '@/utils/httpRequest'
|
||||
|
||||
class API {
|
||||
constructor(constructorData) {
|
||||
const map={
|
||||
add:'POST',
|
||||
del:'DELETE',
|
||||
update:'PUT',
|
||||
get:'GET'
|
||||
add:'post',
|
||||
del:'post',
|
||||
update:'post',
|
||||
get:'get',
|
||||
getList:'get'
|
||||
}
|
||||
this.url=url
|
||||
for(let key in map){
|
||||
let url=constructorData[key].url||constructorData[key]
|
||||
const method=constructorData[key].method||map[key]
|
||||
this[key]=function(data){
|
||||
data=Array.isArray(data)?data:{...data,shopId:uni.getStorageSync('shopId')}
|
||||
if(key==='del'){
|
||||
delete data.shopId
|
||||
}
|
||||
return req(url, data,map[key])
|
||||
console.log(data)
|
||||
return $http({
|
||||
url: (key=='get'?(url+'/'+data.id||data):url) +(key=='del'?'?id='+(data.id||data):''),
|
||||
method:method,
|
||||
params:(method=='get'&&key!='del')?data:{},
|
||||
data: (method=='post'&&key!='del')?data:{}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
import classAPi from './classApi.js'
|
||||
|
||||
export const $inviteAwardApi = new classAPi({
|
||||
add: {
|
||||
url:'completAward/insertCompletAward'
|
||||
},
|
||||
del: {
|
||||
url:'completAward/deleteCompletAward'
|
||||
|
||||
},
|
||||
update: {
|
||||
url:'completAward/updateCompletAward'
|
||||
|
||||
},
|
||||
get: {
|
||||
url:'completAward'
|
||||
|
||||
},
|
||||
getList: {
|
||||
url:'completAward/selectCompletAward'
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import classAPi from './classApi.js'
|
||||
|
||||
export const $redPackApi = new classAPi({
|
||||
add: {
|
||||
url:'discSpinningAmount/insertDiscSpinningAmount'
|
||||
},
|
||||
del: {
|
||||
url:'discSpinningAmount/deleteDiscSpinningAmount'
|
||||
|
||||
},
|
||||
update: {
|
||||
url:'discSpinningAmount/updateDiscSpinningAmount'
|
||||
|
||||
},
|
||||
get: {
|
||||
url:'discSpinningAmount/'
|
||||
|
||||
},
|
||||
getList: {
|
||||
url:'discSpinningAmount/selectDiscSpinningAmount'
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
|
@ -29,3 +29,7 @@ export function isPhone (s) {
|
|||
export function isURL (s) {
|
||||
return /^http[s]?:\/\/.*/.test(s)
|
||||
}
|
||||
|
||||
export function isNull(val){
|
||||
return val === null || val === undefined||val === '';
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,134 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
:title="form.id ? '修改红包' : '新增红包'"
|
||||
width="500px"
|
||||
:visible.sync="dialogVisible"
|
||||
@close="diaClose"
|
||||
:close-on-click-modal="true"
|
||||
>
|
||||
<el-form :model="form" label-width="100px">
|
||||
<el-form-item label="描述" required>
|
||||
<el-input v-model="form.name"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="最大金额" required>
|
||||
<el-input-number
|
||||
:min="0"
|
||||
:max="100"
|
||||
v-model="form.maxAmount"
|
||||
></el-input-number>
|
||||
<span>元</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="中奖概率" required>
|
||||
<el-input-number
|
||||
:min="0"
|
||||
:max="1"
|
||||
:step="0.1"
|
||||
v-model="form.random"
|
||||
></el-input-number>
|
||||
<span></span>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" required>
|
||||
<el-switch
|
||||
v-model="form.status"
|
||||
:inactive-value="0"
|
||||
:active-value="1"
|
||||
></el-switch>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="dialog-footer" style="display: flex; justify-content: flex-end">
|
||||
<el-button @click="diaClose">取 消</el-button>
|
||||
<el-button type="primary" @click="confirm">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { $redPackApi } from "@/api/red-pack.js";
|
||||
import { isNull } from "@/utils/validate.js";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
form: {
|
||||
id: "",
|
||||
name: "",
|
||||
maxAmount: "",
|
||||
random: "",
|
||||
status: "",
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
uploadSuccess(file) {
|
||||
this.form.url = file.data;
|
||||
},
|
||||
open(item) {
|
||||
console.log(item);
|
||||
this.dialogVisible = true;
|
||||
this.item = item;
|
||||
this.form = {
|
||||
...item,
|
||||
};
|
||||
},
|
||||
diaClose() {
|
||||
this.dialogVisible = false;
|
||||
for (let i in this.form) {
|
||||
this.form[i] = "";
|
||||
}
|
||||
},
|
||||
async confirm() {
|
||||
const { name, maxAmount, random, status, id } = this.form;
|
||||
console.log(this.form);
|
||||
if (isNull(name)) {
|
||||
return this.$message.error("描述不能为空");
|
||||
}
|
||||
if (isNull(maxAmount)) {
|
||||
return this.$message.error("最大金额不能为空!");
|
||||
}
|
||||
if (isNull(random)) {
|
||||
return this.$message.error("中奖不能为空!");
|
||||
}
|
||||
if (this.form.random > 1 || this.form.random < 0) {
|
||||
return this.$message.error("概率为0-1");
|
||||
}
|
||||
const res = id
|
||||
? await $redPackApi.update(this.form)
|
||||
: await $redPackApi.add(this.form);
|
||||
console.log(res);
|
||||
const { data, msg } = res;
|
||||
if (data && data.code == 0) {
|
||||
this.$message.success("修改成功");
|
||||
this.$emit("refresh");
|
||||
this.diaClose();
|
||||
} else {
|
||||
this.$message.error(msg || "操作失败!");
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.el-form-item__label {
|
||||
text-align: left;
|
||||
}
|
||||
::v-deep .el-form-item__label {
|
||||
text-align: left;
|
||||
}
|
||||
.upload-file-box {
|
||||
border-radius: 6px;
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
border: 1px solid #c0c4cc;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -793,7 +793,11 @@
|
|||
<el-table-column label="名称" prop="name"></el-table-column>
|
||||
<el-table-column label="图片">
|
||||
<template slot-scope="scope">
|
||||
<img style="width: 50px; height: 50px" v-if="scope.row.url" :src="scope.row.url" />
|
||||
<img
|
||||
style="width: 50px; height: 50px"
|
||||
v-if="scope.row.url"
|
||||
:src="scope.row.url"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类型">
|
||||
|
|
@ -829,22 +833,73 @@
|
|||
</el-table>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="现金红包抽奖金额配置" name="senven">
|
||||
<div class="">
|
||||
<div style="margin-bottom: 20px">
|
||||
<el-button type="primary" @click="openPop('refAddRedPack')"
|
||||
>添加</el-button
|
||||
>
|
||||
</div>
|
||||
<el-table :border="true" :data="redPackData">
|
||||
<el-table-column label="描述" prop="name"></el-table-column>
|
||||
<el-table-column
|
||||
label="最大金额"
|
||||
prop="maxAmount"
|
||||
></el-table-column>
|
||||
<el-table-column label="中奖概率">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.random }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否启用">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
@change="redPackChangeStatus($event, scope.row)"
|
||||
v-model="scope.row.status"
|
||||
:inactive-value="0"
|
||||
:active-value="1"
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="编辑">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="mini"
|
||||
@click="openPop('refAddRedPack', scope.row)"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button type="text" size="mini" @click="depPopRedPack(scope.row)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<pop-add-zhuanpan
|
||||
ref="refAddZhuanpan"
|
||||
@refresh="zhuanPanRefresh"
|
||||
></pop-add-zhuanpan>
|
||||
<pop-add-red-pack
|
||||
ref="refAddRedPack"
|
||||
@refresh="redpackRefresh"
|
||||
></pop-add-red-pack>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import $disc from "@/api/disc-spinning.js";
|
||||
import popAddZhuanpan from "./components/pop-add-zhuanpan.vue";
|
||||
import popAddRedPack from "./components/pop-add-redPack.vue";
|
||||
import { $redPackApi } from "@/api/red-pack.js";
|
||||
export default {
|
||||
components: { popAddZhuanpan },
|
||||
components: { popAddZhuanpan, popAddRedPack },
|
||||
data() {
|
||||
return {
|
||||
redPackData: [],
|
||||
//抽奖转盘数据
|
||||
zhuanpanData: [],
|
||||
page: 1,
|
||||
|
|
@ -971,6 +1026,40 @@ export default {
|
|||
};
|
||||
},
|
||||
methods: {
|
||||
depPopRedPack(item){
|
||||
this.$confirm("是否删除该红包抽奖配置?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
$redPackApi.del(item.id).then((res) => {
|
||||
const data = res.data;
|
||||
if (data.code == 0) {
|
||||
this.$message.success("删除成功");
|
||||
this.redPackInit();
|
||||
} else {
|
||||
this.$message.error(data.msg || "删除失败");
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
async redPackChangeStatus(e,item){
|
||||
console.log(e)
|
||||
const res=await $redPackApi.update({...item,status:e})
|
||||
if(res.data.code==0){
|
||||
this.$message.success('修改成功')
|
||||
this.redPackInit()
|
||||
}else{
|
||||
this.$message.error(res.data.msg || '修改失败')
|
||||
}
|
||||
},
|
||||
redpackRefresh() {
|
||||
this.page = 1;
|
||||
this.limit = 10;
|
||||
this.redPackInit();
|
||||
},
|
||||
zhuanPanRefresh() {
|
||||
this.page = 1;
|
||||
this.limit = 10;
|
||||
|
|
@ -984,6 +1073,9 @@ export default {
|
|||
};
|
||||
return $types[type] ? $types[type] : "";
|
||||
},
|
||||
openPop(key, item) {
|
||||
this.$refs[key].open(item);
|
||||
},
|
||||
// 转盘添加弹窗show
|
||||
refAddZhuanpanOpen(item) {
|
||||
this.$refs.refAddZhuanpan.open(item);
|
||||
|
|
@ -1299,6 +1391,14 @@ export default {
|
|||
});
|
||||
this.zhuanpanData = data.data.records;
|
||||
},
|
||||
//现金红包抽奖配置数据初始化
|
||||
async redPackInit() {
|
||||
const { data } = await $redPackApi.getList({
|
||||
page: this.page,
|
||||
limit: this.limit,
|
||||
});
|
||||
this.redPackData = data.data.records;
|
||||
},
|
||||
handleClick(tab, event) {
|
||||
this.orderId = "";
|
||||
this.userName = "";
|
||||
|
|
@ -1331,6 +1431,11 @@ export default {
|
|||
this.limit = 10;
|
||||
this.zhuanPanInit();
|
||||
}
|
||||
if (tab._props.label == "现金红包抽奖金额配置") {
|
||||
this.page = 1;
|
||||
this.limit = 10;
|
||||
this.redPackInit();
|
||||
}
|
||||
},
|
||||
// 查询
|
||||
phoneSelect() {
|
||||
|
|
|
|||
|
|
@ -1,374 +1,429 @@
|
|||
<template>
|
||||
<el-tabs v-model = "activeName" @tab-click = "handleClick">
|
||||
<!-- <el-tab-pane label = "会员列表" name = "first"> -->
|
||||
<div style = "margin-right:2%;text-align: right;">
|
||||
<el-button style="margin-left:15px;" size="mini" type="primary" icon="document" @click="select">刷新
|
||||
</el-button>
|
||||
<el-button style="margin-left:15px;" size="mini" type="primary" icon="document" :disabled="!isAuth('viplist:add')" @click="add">添加
|
||||
</el-button>
|
||||
</div>
|
||||
<div style="color: orange;"> * 提示:当前为邀请奖励的配置,例如:邀请2人,奖励用户3个月无限看短剧</div>
|
||||
<el-table v-loading = "tableDataLoading" :data = "tableData.records" >
|
||||
<el-table-column prop = "inviteAwardId" label = "编号" width = "80"></el-table-column>
|
||||
<el-table-column prop = "inviteCount" label = "邀请人数">
|
||||
</el-table-column>
|
||||
<el-table-column prop = "inviteMonth" label = "奖励会员月份数" >
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.inviteMonth=='0'">永久</span>
|
||||
<span v-else>{{scope.row.inviteMonth}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="inviteImg" label="图片" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top-start" title="" trigger="hover">
|
||||
<img style="width: 50px; height: 50px" :src="scope.row.inviteImg" alt="" slot="reference">
|
||||
<img style="width: 200px; height: 200px" :src="scope.row.inviteImg" alt="">
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop = "createTime" label = "创建时间" >
|
||||
</el-table-column>
|
||||
<el-table-column label = "操作" width = "180" align="center" fixed="right">
|
||||
<template slot-scope = "scope">
|
||||
<el-button style="margin-left:15px;" size="mini" type="primary" icon="document" :disabled="!isAuth('viplist:update')" @click="updata(scope.row)">修改
|
||||
</el-button>
|
||||
<el-button size = "mini" type = "danger" :disabled="!isAuth('viplist:delete')" @click = "deletes(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style = "text-align: center;margin-top: 10px;float:right">
|
||||
<el-pagination @size-change = "handleSizeChange" @current-change = "handleCurrentChange" :page-sizes = "[5, 10, 15, 20]"
|
||||
:page-size = "limit" :current-page = "page" layout = "total,sizes, prev, pager, next,jumper"
|
||||
:total = "tableData.total">
|
||||
</el-pagination>
|
||||
</div>
|
||||
<!-- </el-tab-pane> -->
|
||||
<el-dialog title="添加" :visible.sync="dialogFormVisible" center>
|
||||
<div style="margin-bottom: 10px;">
|
||||
<span style="width: 200px;display: inline-block;text-align: right;">邀请人数:</span>
|
||||
<el-input style="width:50%;" v-model="inviteCount" type="number" min="0" placeholder="请输入邀请人数"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px;">
|
||||
<span style="width: 200px;display: inline-block;text-align: right;">奖励类型:</span>
|
||||
<el-radio-group v-model="vipNameType" @change="btns()">
|
||||
<el-radio :label="1">永久</el-radio>
|
||||
<el-radio :label="2">月份数</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px;" v-if="vipNameType==2">
|
||||
<span style="width: 200px;display: inline-block;text-align: right;">奖励会员月份数:</span>
|
||||
<el-input style="width:50%;" v-model="inviteMonth" type="number" min="0" placeholder="请输入奖励会员月份数" ></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px;display:flex;">
|
||||
<span style="width: 200px;display: inline-block;text-align: right;">图片:</span>
|
||||
<div
|
||||
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
|
||||
<el-upload class="avatar-uploader" v-model="inviteImg"
|
||||
:action="$http.adornUrlUp('alioss/upload')" :show-file-list="false"
|
||||
:on-success="handleAvatarSuccess5">
|
||||
<img v-if="inviteImg" :src="inviteImg" class="avatar"
|
||||
style="border-radius: 6px;width: 148px;height: 148px;" />
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="vipAdd()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog title="修改" :visible.sync="dialogFormVisible1" center>
|
||||
<div style="margin-bottom: 10px;">
|
||||
<span style="width: 200px;display: inline-block;text-align: right;">邀请人数:</span>
|
||||
<el-input style="width:50%;" v-model="inviteCount" type="number" min="0" placeholder="请输入邀请人数"></el-input>
|
||||
|
||||
</div>
|
||||
<div style="margin-bottom: 10px;">
|
||||
<span style="width: 200px;display: inline-block;text-align: right;">奖励类型:</span>
|
||||
<el-radio-group v-model="vipNameType" @change="btns()">
|
||||
<el-radio :label="1">永久</el-radio>
|
||||
<el-radio :label="2">月份数</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px;" v-if='vipNameType==2'>
|
||||
<span style="width: 200px;display: inline-block;text-align: right;">奖励会员月份数:</span>
|
||||
<el-input style="width:50%;" v-model="inviteMonth" type="number" min="0" placeholder="请输入奖励会员月份数"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px;display:flex;">
|
||||
<span style="width: 200px;display: inline-block;text-align: right;">图片:</span>
|
||||
<div
|
||||
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
|
||||
<el-upload class="avatar-uploader" v-model="inviteImg"
|
||||
:action="$http.adornUrlUp('alioss/upload')" :show-file-list="false"
|
||||
:on-success="handleAvatarSuccess5">
|
||||
<img v-if="inviteImg" :src="inviteImg" class="avatar"
|
||||
style="border-radius: 6px;width: 148px;height: 148px;" />
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible1 = false">取 消</el-button>
|
||||
<el-button type="primary" @click="vipUpdata()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-tabs>
|
||||
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<!-- <el-tab-pane label = "会员列表" name = "first"> -->
|
||||
<div style="margin-right: 2%; text-align: right">
|
||||
<el-button
|
||||
style="margin-left: 15px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
@click="select"
|
||||
>刷新
|
||||
</el-button>
|
||||
<el-button
|
||||
style="margin-left: 15px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
:disabled="!isAuth('viplist:add')"
|
||||
@click="add"
|
||||
>添加
|
||||
</el-button>
|
||||
</div>
|
||||
<div style="color: orange">
|
||||
* 提示:当前为邀请奖励的配置,例如:邀请2人,奖励用户3个月无限看短剧
|
||||
</div>
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.records">
|
||||
<el-table-column
|
||||
prop="inviteAwardId"
|
||||
label="编号"
|
||||
width="80"
|
||||
></el-table-column>
|
||||
<el-table-column prop="inviteCount" label="邀请人数"> </el-table-column>
|
||||
<el-table-column prop="inviteMonth" label="奖励会员月份数">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.inviteMonth == '0'">永久</span>
|
||||
<span v-else>{{ scope.row.inviteMonth }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="inviteImg" label="图片" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top-start" title="" trigger="hover">
|
||||
<img
|
||||
style="width: 50px; height: 50px"
|
||||
:src="scope.row.inviteImg"
|
||||
alt=""
|
||||
slot="reference"
|
||||
/>
|
||||
<img
|
||||
style="width: 200px; height: 200px"
|
||||
:src="scope.row.inviteImg"
|
||||
alt=""
|
||||
/>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="创建时间"> </el-table-column>
|
||||
<el-table-column label="操作" width="180" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
style="margin-left: 15px"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="document"
|
||||
:disabled="!isAuth('viplist:update')"
|
||||
@click="updata(scope.row)"
|
||||
>修改
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
:disabled="!isAuth('viplist:delete')"
|
||||
@click="deletes(scope.row)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center; margin-top: 10px; float: right">
|
||||
<el-pagination
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:page-sizes="[5, 10, 15, 20]"
|
||||
:page-size="limit"
|
||||
:current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper"
|
||||
:total="tableData.total"
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
<!-- </el-tab-pane> -->
|
||||
<el-dialog title="添加" :visible.sync="dialogFormVisible" center>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right"
|
||||
>邀请人数:</span
|
||||
>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="inviteCount"
|
||||
type="number"
|
||||
min="0"
|
||||
placeholder="请输入邀请人数"
|
||||
></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px">
|
||||
<span style="width: 200px; display: inline-block; text-align: right"
|
||||
>奖励类型:</span
|
||||
>
|
||||
<el-radio-group v-model="vipNameType" @change="btns()">
|
||||
<el-radio :label="1">永久</el-radio>
|
||||
<el-radio :label="2">月份数</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px" v-if="vipNameType == 2">
|
||||
<span style="width: 200px; display: inline-block; text-align: right"
|
||||
>奖励会员月份数:</span
|
||||
>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="inviteMonth"
|
||||
type="number"
|
||||
min="0"
|
||||
placeholder="请输入奖励会员月份数"
|
||||
></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px; display: flex">
|
||||
<span style="width: 200px; display: inline-block; text-align: right"
|
||||
>图片:</span
|
||||
>
|
||||
<div
|
||||
style="
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
border: 1px dashed #c0ccda;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
line-height: 148px;
|
||||
"
|
||||
>
|
||||
<el-upload
|
||||
class="avatar-uploader"
|
||||
v-model="inviteImg"
|
||||
:action="$http.adornUrlUp('alioss/upload')"
|
||||
:show-file-list="false"
|
||||
:on-success="handleAvatarSuccess5"
|
||||
>
|
||||
<img
|
||||
v-if="inviteImg"
|
||||
:src="inviteImg"
|
||||
class="avatar"
|
||||
style="border-radius: 6px; width: 148px; height: 148px"
|
||||
/>
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="vipAdd()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
:title="form.id ? '修改' : '添加'"
|
||||
:visible.sync="dialogFormVisible1"
|
||||
center
|
||||
@close="resetForm"
|
||||
width="600px"
|
||||
>
|
||||
<el-form :model="form" label-width="100px">
|
||||
<el-form-item label="邀请人数" required>
|
||||
<el-input-number
|
||||
v-model="form.inviteCount"
|
||||
:min="1"
|
||||
:step-strictly="true"
|
||||
placeholder="请输入邀请人数"
|
||||
:step="1"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="奖励类型" required>
|
||||
<el-radio-group v-model="form.type" @change="btns()">
|
||||
<el-radio :label="key" v-for="(item, key) in giftType" :key="key">{{
|
||||
item
|
||||
}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="奖励数量" required>
|
||||
<el-input-number
|
||||
v-model="form.awardNumber"
|
||||
:min="0"
|
||||
:step-strictly="false"
|
||||
placeholder="请输入奖励数量"
|
||||
:step="1"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="图片" required>
|
||||
<div
|
||||
style="
|
||||
width: 148px;
|
||||
height: 148px;
|
||||
border: 1px dashed #c0ccda;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
line-height: 148px;
|
||||
"
|
||||
>
|
||||
<el-upload
|
||||
class="avatar-uploader"
|
||||
v-model="form.inviteImg"
|
||||
:action="$http.adornUrlUp('alioss/upload')"
|
||||
:show-file-list="false"
|
||||
:on-success="handleAvatarSuccess5"
|
||||
>
|
||||
<img
|
||||
v-if="form.inviteImg"
|
||||
:src="form.inviteImg"
|
||||
class="avatar"
|
||||
style="border-radius: 6px; width: 148px; height: 148px"
|
||||
/>
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" required>
|
||||
<el-switch v-model="form.status"></el-switch>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible1 = false">取 消</el-button>
|
||||
<el-button type="primary" @click="vipUpdata()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-tabs>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
activeName:'first',
|
||||
page: 1,
|
||||
limit: 10,
|
||||
classify: 1,
|
||||
id:'',
|
||||
inviteCount: '',
|
||||
inviteMonth: '',
|
||||
inviteImg: '',
|
||||
tableDataLoading:false,
|
||||
dialogFormVisible:false,
|
||||
dialogFormVisible1:false,
|
||||
tableData:{},
|
||||
vipNameType:2,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 多选
|
||||
changeFun (val) {
|
||||
this.checkBoxData = val
|
||||
},
|
||||
// tabs切换
|
||||
handleClick (tab, event) {
|
||||
if (tab._props.label == '轮播图') {
|
||||
this.page = 1
|
||||
this.limit = 5
|
||||
this.classify = 1
|
||||
this.dataSelect()
|
||||
}
|
||||
},
|
||||
handleSizeChange (val) {
|
||||
this.limit = val
|
||||
this.dataSelect()
|
||||
},
|
||||
handleCurrentChange (val) {
|
||||
this.page = val
|
||||
this.dataSelect()
|
||||
},
|
||||
// 封面图片上传
|
||||
handleAvatarSuccess5(file) {
|
||||
this.inviteImg = file.data;
|
||||
},
|
||||
// 查询列表
|
||||
select() {
|
||||
this.page = 1
|
||||
this.dataSelect()
|
||||
},
|
||||
// 添加
|
||||
add(){
|
||||
this.inviteCount = ''
|
||||
this.inviteMonth = ''
|
||||
this.id = ''
|
||||
this.inviteImg = '';
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
updata(row){
|
||||
this.inviteCount = row.inviteCount
|
||||
if(row.inviteMonth==0){
|
||||
this.vipNameType = 1
|
||||
}else{
|
||||
this.vipNameType = 2
|
||||
}
|
||||
this.inviteMonth = row.inviteMonth
|
||||
this.id = row.inviteAwardId
|
||||
this.inviteImg = row.inviteImg;
|
||||
this.dialogFormVisible1 = true
|
||||
},
|
||||
vipAdd(){
|
||||
if (this.inviteCount == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请选择邀请人数',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.inviteMonth == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入奖励会员月份数',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.inviteImg == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请上传图片',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('inviteAward/insertInviteAward'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
'inviteCount':this.inviteCount,
|
||||
'inviteMonth':this.inviteMonth,
|
||||
'inviteImg':this.inviteImg
|
||||
})
|
||||
}).then(({data}) => {
|
||||
|
||||
if(data.code == 0){
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dialogFormVisible = false
|
||||
this.inviteCount = ''
|
||||
this.money = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}else{
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'warning',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
vipUpdata(){
|
||||
if (this.inviteCount == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请选择邀请人数',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.inviteMonth === '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请输入奖励会员月份数',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.inviteImg == ''||this.inviteImg==null) {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请上传图片',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('inviteAward/updateInviteAward'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
'inviteCount':this.inviteCount,
|
||||
'inviteMonth':this.inviteMonth,
|
||||
'inviteAwardId':this.id,
|
||||
'inviteImg':this.inviteImg,
|
||||
})
|
||||
}).then(({data}) => {
|
||||
|
||||
if(data.code == 0){
|
||||
this.dialogFormVisible1 = false
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.inviteCount = ''
|
||||
this.inviteMonth = ''
|
||||
this.id = ''
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}else{
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'warning',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 删除banner图
|
||||
deletes (row) {
|
||||
let delid = row.inviteAwardId
|
||||
this.$confirm(`确定删除此条信息?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`inviteAward/deleteInviteAward?inviteAwardId=${delid}`),
|
||||
method: 'post',
|
||||
params: this.$http.adornParams({})
|
||||
}).then(({data}) => {
|
||||
this.$message({
|
||||
message: '删除成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
// 获取数据列表
|
||||
dataSelect () {
|
||||
this.tableDataLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('inviteAward/selectInviteAwardList'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.page,
|
||||
'limit': this.limit
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 0) {
|
||||
this.tableDataLoading = false
|
||||
let returnData = data.data
|
||||
this.tableData = returnData
|
||||
}
|
||||
})
|
||||
},
|
||||
btns(){
|
||||
if(this.vipNameType==1){
|
||||
this.inviteMonth = 0
|
||||
}else{
|
||||
this.inviteMonth = ''
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.dataSelect()
|
||||
}
|
||||
}
|
||||
import { $inviteAwardApi } from "@/api/invite-award.js";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
giftType: {
|
||||
1: "金币",
|
||||
2: "红包",
|
||||
},
|
||||
activeName: "first",
|
||||
page: 1,
|
||||
limit: 10,
|
||||
classify: 1,
|
||||
id: "",
|
||||
inviteCount: "",
|
||||
inviteMonth: "",
|
||||
inviteImg: "",
|
||||
tableDataLoading: false,
|
||||
dialogFormVisible: false,
|
||||
dialogFormVisible1: false,
|
||||
tableData: {},
|
||||
vipNameType: 2,
|
||||
form: {
|
||||
id: "",
|
||||
awardNumber: "",
|
||||
inviteCount: "",
|
||||
status: "",
|
||||
type: "",
|
||||
inviteImg: "",
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
// 多选
|
||||
changeFun(val) {
|
||||
this.checkBoxData = val;
|
||||
},
|
||||
// tabs切换
|
||||
handleClick(tab, event) {
|
||||
if (tab._props.label == "轮播图") {
|
||||
this.page = 1;
|
||||
this.limit = 5;
|
||||
this.classify = 1;
|
||||
this.dataSelect();
|
||||
}
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.limit = val;
|
||||
this.dataSelect();
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.dataSelect();
|
||||
},
|
||||
// 封面图片上传
|
||||
handleAvatarSuccess5(file) {
|
||||
this.form.inviteImg = file.data;
|
||||
},
|
||||
// 查询列表
|
||||
select() {
|
||||
this.page = 1;
|
||||
this.dataSelect();
|
||||
},
|
||||
// 添加
|
||||
add() {
|
||||
this.dialogFormVisible1 = true;
|
||||
},
|
||||
resetForm() {
|
||||
for (let i in this.form) {
|
||||
this.form[i] = "";
|
||||
}
|
||||
},
|
||||
updata(row) {
|
||||
Object.assign(this.form, row);
|
||||
this.dialogFormVisible1 = true;
|
||||
},
|
||||
async vipUpdata() {
|
||||
const { awardNumber, inviteCount, status, type, inviteImg } = this.form;
|
||||
if (awardNumber == "" || awardNumber == null) {
|
||||
this.$notify({
|
||||
title: "提示",
|
||||
duration: 1800,
|
||||
message: "奖励数量不能为空",
|
||||
type: "warning",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (inviteCount == "" || inviteCount == null) {
|
||||
this.$notify({
|
||||
title: "提示",
|
||||
duration: 1800,
|
||||
message: "邀请人数不能为空",
|
||||
type: "warning",
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (type == "" || type == null) {
|
||||
this.$notify({
|
||||
title: "提示",
|
||||
duration: 1800,
|
||||
message: "奖励类型不能为空",
|
||||
type: "warning",
|
||||
});
|
||||
return;
|
||||
}
|
||||
// if (inviteImg == "" || inviteImg == null) {
|
||||
// this.$notify({
|
||||
// title: "提示",
|
||||
// duration: 1800,
|
||||
// message: "请上传图片",
|
||||
// type: "warning",
|
||||
// });
|
||||
// return;
|
||||
// }
|
||||
let res = null;
|
||||
if (this.form.id) {
|
||||
res = await $inviteAwardApi.updata(this.form);
|
||||
} else {
|
||||
res = await $inviteAwardApi.add(this.form);
|
||||
}
|
||||
console.log(res);
|
||||
if(res&&res.data.code==0){
|
||||
this.$notify({
|
||||
title: "提示",
|
||||
duration: 1800,
|
||||
message: "操作成功",
|
||||
type: "success",
|
||||
});
|
||||
this.dialogFormVisible1 = false;
|
||||
this.dataSelect();
|
||||
}
|
||||
},
|
||||
// 删除banner图
|
||||
deletes(row) {
|
||||
let delid = row.inviteAwardId;
|
||||
this.$confirm(`确定删除此条信息?`, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(
|
||||
`inviteAward/deleteInviteAward?inviteAwardId=${delid}`
|
||||
),
|
||||
method: "post",
|
||||
params: this.$http.adornParams({}),
|
||||
}).then(({ data }) => {
|
||||
this.$message({
|
||||
message: "删除成功",
|
||||
type: "success",
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dataSelect();
|
||||
},
|
||||
});
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
// 获取数据列表
|
||||
dataSelect() {
|
||||
this.tableDataLoading = true;
|
||||
this.$http({
|
||||
url: this.$http.adornUrl("inviteAward/selectInviteAwardList"),
|
||||
method: "get",
|
||||
params: this.$http.adornParams({
|
||||
page: this.page,
|
||||
limit: this.limit,
|
||||
}),
|
||||
}).then(({ data }) => {
|
||||
if (data && data.code === 0) {
|
||||
this.tableDataLoading = false;
|
||||
let returnData = data.data;
|
||||
this.tableData = returnData;
|
||||
}
|
||||
});
|
||||
},
|
||||
btns() {
|
||||
if (this.vipNameType == 1) {
|
||||
this.inviteMonth = 0;
|
||||
} else {
|
||||
this.inviteMonth = "";
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.dataSelect();
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.customWidth {
|
||||
width: 80% !important;
|
||||
}
|
||||
.customWidth {
|
||||
width: 80% !important;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
Loading…
Reference in New Issue