增加广告跳转,增加现金红包配置
This commit is contained in:
@@ -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
25
src/api/invite-award.js
Normal 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
25
src/api/red-pack.js
Normal 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'
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
@@ -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
134
src/views/finance/components/pop-add-redPack.vue
Normal file
134
src/views/finance/components/pop-add-redPack.vue
Normal 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>
|
||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user