增加广告跳转,增加现金红包配置

This commit is contained in:
2024-12-16 10:38:20 +08:00
parent 95b3a5c4ce
commit b2c7ce63b7
8 changed files with 1967 additions and 1267 deletions

View File

@@ -1,19 +1,25 @@
class API { import $http from '@/utils/httpRequest'
constructor(url,req) {
class API {
constructor(constructorData) {
const map={ const map={
add:'POST', add:'post',
del:'DELETE', del:'post',
update:'PUT', update:'post',
get:'GET' get:'get',
getList:'get'
} }
this.url=url
for(let key in map){ for(let key in map){
let url=constructorData[key].url||constructorData[key]
const method=constructorData[key].method||map[key]
this[key]=function(data){ this[key]=function(data){
data=Array.isArray(data)?data:{...data,shopId:uni.getStorageSync('shopId')} console.log(data)
if(key==='del'){ return $http({
delete data.shopId url: (key=='get'?(url+'/'+data.id||data):url) +(key=='del'?'?id='+(data.id||data):''),
} method:method,
return req(url, data,map[key]) params:(method=='get'&&key!='del')?data:{},
data: (method=='post'&&key!='del')?data:{}
})
} }
} }
} }

25
src/api/invite-award.js Normal file
View File

@@ -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'
}
})

25
src/api/red-pack.js Normal file
View File

@@ -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'
}
})

View File

@@ -29,3 +29,7 @@ export function isPhone (s) {
export function isURL (s) { export function isURL (s) {
return /^http[s]?:\/\/.*/.test(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

View File

@@ -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>

View File

@@ -793,7 +793,11 @@
<el-table-column label="名称" prop="name"></el-table-column> <el-table-column label="名称" prop="name"></el-table-column>
<el-table-column label="图片"> <el-table-column label="图片">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
<el-table-column label="类型"> <el-table-column label="类型">
@@ -829,22 +833,73 @@
</el-table> </el-table>
</div> </div>
</el-tab-pane> </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> </el-tabs>
<pop-add-zhuanpan <pop-add-zhuanpan
ref="refAddZhuanpan" ref="refAddZhuanpan"
@refresh="zhuanPanRefresh" @refresh="zhuanPanRefresh"
></pop-add-zhuanpan> ></pop-add-zhuanpan>
<pop-add-red-pack
ref="refAddRedPack"
@refresh="redpackRefresh"
></pop-add-red-pack>
</div> </div>
</template> </template>
<script> <script>
import $disc from "@/api/disc-spinning.js"; import $disc from "@/api/disc-spinning.js";
import popAddZhuanpan from "./components/pop-add-zhuanpan.vue"; 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 { export default {
components: { popAddZhuanpan }, components: { popAddZhuanpan, popAddRedPack },
data() { data() {
return { return {
redPackData: [],
//抽奖转盘数据 //抽奖转盘数据
zhuanpanData: [], zhuanpanData: [],
page: 1, page: 1,
@@ -971,6 +1026,40 @@ export default {
}; };
}, },
methods: { 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() { zhuanPanRefresh() {
this.page = 1; this.page = 1;
this.limit = 10; this.limit = 10;
@@ -984,6 +1073,9 @@ export default {
}; };
return $types[type] ? $types[type] : ""; return $types[type] ? $types[type] : "";
}, },
openPop(key, item) {
this.$refs[key].open(item);
},
// 转盘添加弹窗show // 转盘添加弹窗show
refAddZhuanpanOpen(item) { refAddZhuanpanOpen(item) {
this.$refs.refAddZhuanpan.open(item); this.$refs.refAddZhuanpan.open(item);
@@ -1299,6 +1391,14 @@ export default {
}); });
this.zhuanpanData = data.data.records; 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) { handleClick(tab, event) {
this.orderId = ""; this.orderId = "";
this.userName = ""; this.userName = "";
@@ -1331,6 +1431,11 @@ export default {
this.limit = 10; this.limit = 10;
this.zhuanPanInit(); this.zhuanPanInit();
} }
if (tab._props.label == "现金红包抽奖金额配置") {
this.page = 1;
this.limit = 10;
this.redPackInit();
}
}, },
// 查询 // 查询
phoneSelect() { phoneSelect() {

View File

@@ -1,374 +1,429 @@
<template> <template>
<el-tabs v-model = "activeName" @tab-click = "handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<!-- <el-tab-pane label = "会员列表" name = "first"> --> <!-- <el-tab-pane label = "会员列表" name = "first"> -->
<div style = "margin-right:2%;text-align: right;"> <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"
<el-button style="margin-left:15px;" size="mini" type="primary" icon="document" :disabled="!isAuth('viplist:add')" @click="add">添加 size="mini"
</el-button> type="primary"
</div> icon="document"
<div style="color: orange;"> * 提示当前为邀请奖励的配置例如邀请2人奖励用户3个月无限看短剧</div> @click="select"
<el-table v-loading = "tableDataLoading" :data = "tableData.records" > >刷新
<el-table-column prop = "inviteAwardId" label = "编号" width = "80"></el-table-column> </el-button>
<el-table-column prop = "inviteCount" label = "邀请人数"> <el-button
</el-table-column> style="margin-left: 15px"
<el-table-column prop = "inviteMonth" label = "奖励会员月份数" > size="mini"
<template slot-scope="scope"> type="primary"
<span v-if="scope.row.inviteMonth=='0'">永久</span> icon="document"
<span v-else>{{scope.row.inviteMonth}}</span> :disabled="!isAuth('viplist:add')"
</template> @click="add"
</el-table-column> >添加
<el-table-column prop="inviteImg" label="图片" width="150"> </el-button>
<template slot-scope="scope"> </div>
<el-popover placement="top-start" title="" trigger="hover"> <div style="color: orange">
<img style="width: 50px; height: 50px" :src="scope.row.inviteImg" alt="" slot="reference"> * 提示当前为邀请奖励的配置例如邀请2人奖励用户3个月无限看短剧
<img style="width: 200px; height: 200px" :src="scope.row.inviteImg" alt=""> </div>
</el-popover> <el-table v-loading="tableDataLoading" :data="tableData.records">
</template> <el-table-column
</el-table-column> prop="inviteAwardId"
<el-table-column prop = "createTime" label = "创建时间" > label="编号"
</el-table-column> width="80"
<el-table-column label = "操作" width = "180" align="center" fixed="right"> ></el-table-column>
<template slot-scope = "scope"> <el-table-column prop="inviteCount" label="邀请人数"> </el-table-column>
<el-button style="margin-left:15px;" size="mini" type="primary" icon="document" :disabled="!isAuth('viplist:update')" @click="updata(scope.row)">修改 <el-table-column prop="inviteMonth" label="奖励会员月份数">
</el-button> <template slot-scope="scope">
<el-button size = "mini" type = "danger" :disabled="!isAuth('viplist:delete')" @click = "deletes(scope.row)">删除</el-button> <span v-if="scope.row.inviteMonth == '0'">永久</span>
</template> <span v-else>{{ scope.row.inviteMonth }}</span>
</el-table-column> </template>
</el-table> </el-table-column>
<div style = "text-align: center;margin-top: 10px;float:right"> <el-table-column prop="inviteImg" label="图片" width="150">
<el-pagination @size-change = "handleSizeChange" @current-change = "handleCurrentChange" :page-sizes = "[5, 10, 15, 20]" <template slot-scope="scope">
:page-size = "limit" :current-page = "page" layout = "total,sizes, prev, pager, next,jumper" <el-popover placement="top-start" title="" trigger="hover">
:total = "tableData.total"> <img
</el-pagination> style="width: 50px; height: 50px"
</div> :src="scope.row.inviteImg"
<!-- </el-tab-pane> --> alt=""
<el-dialog title="添加" :visible.sync="dialogFormVisible" center> slot="reference"
<div style="margin-bottom: 10px;"> />
<span style="width: 200px;display: inline-block;text-align: right;">邀请人数</span> <img
<el-input style="width:50%;" v-model="inviteCount" type="number" min="0" placeholder="请输入邀请人数"></el-input> style="width: 200px; height: 200px"
</div> :src="scope.row.inviteImg"
<div style="margin-bottom: 10px;"> alt=""
<span style="width: 200px;display: inline-block;text-align: right;">奖励类型</span> />
<el-radio-group v-model="vipNameType" @change="btns()"> </el-popover>
<el-radio :label="1">永久</el-radio> </template>
<el-radio :label="2">月份数</el-radio> </el-table-column>
</el-radio-group> <el-table-column prop="createTime" label="创建时间"> </el-table-column>
</div> <el-table-column label="操作" width="180" align="center" fixed="right">
<div style="margin-bottom: 10px;" v-if="vipNameType==2"> <template slot-scope="scope">
<span style="width: 200px;display: inline-block;text-align: right;">奖励会员月份数</span> <el-button
<el-input style="width:50%;" v-model="inviteMonth" type="number" min="0" placeholder="请输入奖励会员月份数" ></el-input> style="margin-left: 15px"
</div> size="mini"
<div style="margin-bottom: 10px;display:flex;"> type="primary"
<span style="width: 200px;display: inline-block;text-align: right;">图片</span> icon="document"
<div :disabled="!isAuth('viplist:update')"
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;"> @click="updata(scope.row)"
<el-upload class="avatar-uploader" v-model="inviteImg" >修改
:action="$http.adornUrlUp('alioss/upload')" :show-file-list="false" </el-button>
:on-success="handleAvatarSuccess5"> <el-button
<img v-if="inviteImg" :src="inviteImg" class="avatar" size="mini"
style="border-radius: 6px;width: 148px;height: 148px;" /> type="danger"
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i> :disabled="!isAuth('viplist:delete')"
</el-upload> @click="deletes(scope.row)"
</div> >删除</el-button
</div> >
<div slot="footer" class="dialog-footer"> </template>
<el-button @click="dialogFormVisible = false"> </el-button> </el-table-column>
<el-button type="primary" @click="vipAdd()"> </el-button> </el-table>
</div> <div style="text-align: center; margin-top: 10px; float: right">
</el-dialog> <el-pagination
<el-dialog title="修改" :visible.sync="dialogFormVisible1" center> @size-change="handleSizeChange"
<div style="margin-bottom: 10px;"> @current-change="handleCurrentChange"
<span style="width: 200px;display: inline-block;text-align: right;">邀请人数</span> :page-sizes="[5, 10, 15, 20]"
<el-input style="width:50%;" v-model="inviteCount" type="number" min="0" placeholder="请输入邀请人数"></el-input> :page-size="limit"
:current-page="page"
</div> layout="total,sizes, prev, pager, next,jumper"
<div style="margin-bottom: 10px;"> :total="tableData.total"
<span style="width: 200px;display: inline-block;text-align: right;">奖励类型</span> >
<el-radio-group v-model="vipNameType" @change="btns()"> </el-pagination>
<el-radio :label="1">永久</el-radio> </div>
<el-radio :label="2">月份数</el-radio> <!-- </el-tab-pane> -->
</el-radio-group> <el-dialog title="添加" :visible.sync="dialogFormVisible" center>
</div> <div style="margin-bottom: 10px">
<div style="margin-bottom: 10px;" v-if='vipNameType==2'> <span style="width: 200px; display: inline-block; text-align: right"
<span style="width: 200px;display: inline-block;text-align: right;">奖励会员月份</span> >邀请人</span
<el-input style="width:50%;" v-model="inviteMonth" type="number" min="0" placeholder="请输入奖励会员月份数"></el-input> >
</div> <el-input
<div style="margin-bottom: 10px;display:flex;"> style="width: 50%"
<span style="width: 200px;display: inline-block;text-align: right;">图片</span> v-model="inviteCount"
<div type="number"
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;"> min="0"
<el-upload class="avatar-uploader" v-model="inviteImg" placeholder="请输入邀请人数"
:action="$http.adornUrlUp('alioss/upload')" :show-file-list="false" ></el-input>
:on-success="handleAvatarSuccess5"> </div>
<img v-if="inviteImg" :src="inviteImg" class="avatar" <div style="margin-bottom: 10px">
style="border-radius: 6px;width: 148px;height: 148px;" /> <span style="width: 200px; display: inline-block; text-align: right"
<i v-else class="el-icon-plus avatar-uploader-icon iconss"></i> >奖励类型</span
</el-upload> >
</div> <el-radio-group v-model="vipNameType" @change="btns()">
</div> <el-radio :label="1">永久</el-radio>
<div slot="footer" class="dialog-footer"> <el-radio :label="2">月份数</el-radio>
<el-button @click="dialogFormVisible1 = false"> </el-button> </el-radio-group>
<el-button type="primary" @click="vipUpdata()"> </el-button> </div>
</div> <div style="margin-bottom: 10px" v-if="vipNameType == 2">
</el-dialog> <span style="width: 200px; display: inline-block; text-align: right"
</el-tabs> >奖励会员月份数</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> </template>
<script> <script>
export default { import { $inviteAwardApi } from "@/api/invite-award.js";
data () { export default {
return { data() {
activeName:'first', return {
page: 1, giftType: {
limit: 10, 1: "金币",
classify: 1, 2: "红包",
id:'', },
inviteCount: '', activeName: "first",
inviteMonth: '', page: 1,
inviteImg: '', limit: 10,
tableDataLoading:false, classify: 1,
dialogFormVisible:false, id: "",
dialogFormVisible1:false, inviteCount: "",
tableData:{}, inviteMonth: "",
vipNameType:2, inviteImg: "",
} tableDataLoading: false,
}, dialogFormVisible: false,
methods: { dialogFormVisible1: false,
// 多选 tableData: {},
changeFun (val) { vipNameType: 2,
this.checkBoxData = val form: {
}, id: "",
// tabs切换 awardNumber: "",
handleClick (tab, event) { inviteCount: "",
if (tab._props.label == '轮播图') { status: "",
this.page = 1 type: "",
this.limit = 5 inviteImg: "",
this.classify = 1 },
this.dataSelect() };
} },
}, methods: {
handleSizeChange (val) { // 多选
this.limit = val changeFun(val) {
this.dataSelect() this.checkBoxData = val;
}, },
handleCurrentChange (val) { // tabs切换
this.page = val handleClick(tab, event) {
this.dataSelect() if (tab._props.label == "轮播图") {
}, this.page = 1;
// 封面图片上传 this.limit = 5;
handleAvatarSuccess5(file) { this.classify = 1;
this.inviteImg = file.data; this.dataSelect();
}, }
// 查询列表 },
select() { handleSizeChange(val) {
this.page = 1 this.limit = val;
this.dataSelect() this.dataSelect();
}, },
// 添加 handleCurrentChange(val) {
add(){ this.page = val;
this.inviteCount = '' this.dataSelect();
this.inviteMonth = '' },
this.id = '' // 封面图片上传
this.inviteImg = ''; handleAvatarSuccess5(file) {
this.dialogFormVisible = true this.form.inviteImg = file.data;
}, },
updata(row){ // 查询列表
this.inviteCount = row.inviteCount select() {
if(row.inviteMonth==0){ this.page = 1;
this.vipNameType = 1 this.dataSelect();
}else{ },
this.vipNameType = 2 // 添加
} add() {
this.inviteMonth = row.inviteMonth this.dialogFormVisible1 = true;
this.id = row.inviteAwardId },
this.inviteImg = row.inviteImg; resetForm() {
this.dialogFormVisible1 = true for (let i in this.form) {
}, this.form[i] = "";
vipAdd(){ }
if (this.inviteCount == '') { },
this.$notify({ updata(row) {
title: '提示', Object.assign(this.form, row);
duration: 1800, this.dialogFormVisible1 = true;
message: '请选择邀请人数', },
type: 'warning' async vipUpdata() {
}); const { awardNumber, inviteCount, status, type, inviteImg } = this.form;
return if (awardNumber == "" || awardNumber == null) {
} this.$notify({
if (this.inviteMonth == '') { title: "提示",
this.$notify({ duration: 1800,
title: '提示', message: "奖励数量不能为空",
duration: 1800, type: "warning",
message: '请输入奖励会员月份数', });
type: 'warning' return;
}); }
return if (inviteCount == "" || inviteCount == null) {
} this.$notify({
if (this.inviteImg == '') { title: "提示",
this.$notify({ duration: 1800,
title: '提示', message: "邀请人数不能为空",
duration: 1800, type: "warning",
message: '请上传图片', });
type: 'warning' return;
}); }
return if (type == "" || type == null) {
} this.$notify({
title: "提示",
this.$http({ duration: 1800,
url: this.$http.adornUrl('inviteAward/insertInviteAward'), message: "奖励类型不能为空",
method: 'post', type: "warning",
data: this.$http.adornData({ });
'inviteCount':this.inviteCount, return;
'inviteMonth':this.inviteMonth, }
'inviteImg':this.inviteImg // if (inviteImg == "" || inviteImg == null) {
}) // this.$notify({
}).then(({data}) => { // title: "提示",
// duration: 1800,
if(data.code == 0){ // message: "请上传图片",
this.$message({ // type: "warning",
message: '操作成功', // });
type: 'success', // return;
duration: 1500, // }
onClose: () => { let res = null;
this.dialogFormVisible = false if (this.form.id) {
this.inviteCount = '' res = await $inviteAwardApi.updata(this.form);
this.money = '' } else {
this.dataSelect() res = await $inviteAwardApi.add(this.form);
} }
}) console.log(res);
}else{ if(res&&res.data.code==0){
this.$message({ this.$notify({
message: data.msg, title: "提示",
type: 'warning', duration: 1800,
duration: 1500, message: "操作成功",
onClose: () => { type: "success",
} });
}) this.dialogFormVisible1 = false;
} this.dataSelect();
}) }
}, },
vipUpdata(){ // 删除banner图
if (this.inviteCount == '') { deletes(row) {
this.$notify({ let delid = row.inviteAwardId;
title: '提示', this.$confirm(`确定删除此条信息?`, "提示", {
duration: 1800, confirmButtonText: "确定",
message: '请选择邀请人数', cancelButtonText: "取消",
type: 'warning' type: "warning",
}); })
return .then(() => {
} this.$http({
if (this.inviteMonth === '') { url: this.$http.adornUrl(
this.$notify({ `inviteAward/deleteInviteAward?inviteAwardId=${delid}`
title: '提示', ),
duration: 1800, method: "post",
message: '请输入奖励会员月份数', params: this.$http.adornParams({}),
type: 'warning' }).then(({ data }) => {
}); this.$message({
return message: "删除成功",
} type: "success",
if (this.inviteImg == ''||this.inviteImg==null) { duration: 1500,
this.$notify({ onClose: () => {
title: '提示', this.dataSelect();
duration: 1800, },
message: '请上传图片', });
type: 'warning' });
}); })
return .catch(() => {});
} },
this.$http({ // 获取数据列表
url: this.$http.adornUrl('inviteAward/updateInviteAward'), dataSelect() {
method: 'post', this.tableDataLoading = true;
data: this.$http.adornData({ this.$http({
'inviteCount':this.inviteCount, url: this.$http.adornUrl("inviteAward/selectInviteAwardList"),
'inviteMonth':this.inviteMonth, method: "get",
'inviteAwardId':this.id, params: this.$http.adornParams({
'inviteImg':this.inviteImg, page: this.page,
}) limit: this.limit,
}).then(({data}) => { }),
}).then(({ data }) => {
if(data.code == 0){ if (data && data.code === 0) {
this.dialogFormVisible1 = false this.tableDataLoading = false;
this.$message({ let returnData = data.data;
message: '操作成功', this.tableData = returnData;
type: 'success', }
duration: 1500, });
onClose: () => { },
this.inviteCount = '' btns() {
this.inviteMonth = '' if (this.vipNameType == 1) {
this.id = '' this.inviteMonth = 0;
this.dataSelect() } else {
} this.inviteMonth = "";
}) }
}else{ },
this.$message({ },
message: data.msg, mounted() {
type: 'warning', this.dataSelect();
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()
}
}
</script> </script>
<style> <style>
.customWidth { .customWidth {
width: 80% !important; width: 80% !important;
} }
</style> </style>