184 lines
5.7 KiB
Vue
184 lines
5.7 KiB
Vue
<template>
|
|
<div class="">
|
|
<el-tabs v-model="tabActive">
|
|
<el-tab-pane label="任务" name="renwu"></el-tab-pane>
|
|
<el-tab-pane label="兑换" name="exchang"></el-tab-pane>
|
|
</el-tabs>
|
|
<div v-if="tabActive == 'renwu'">
|
|
<el-button type="primary" @click="openAddZhuanpan">添加任务</el-button>
|
|
<div class="zhanwei"></div>
|
|
<el-table :border="true" :data="tableData">
|
|
<el-table-column prop="sort" label="排序" sortable width="50">
|
|
</el-table-column>
|
|
<el-table-column label="标题" prop="title"></el-table-column>
|
|
|
|
<el-table-column label="任务类型">
|
|
<template slot-scope="scope">
|
|
<span>{{ returnTypeName(scope.row.type) }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="详情描述">
|
|
<template slot-scope="scope">
|
|
<span>{{ scope.row.detail }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="奖励设置">
|
|
<template slot-scope="scope">
|
|
<div class="flex flex-center">
|
|
<el-button type="text" size="mini" @click="opengiftList(scope.row)">编辑</el-button>
|
|
</div>
|
|
|
|
<!-- <span>{{ scope.row.rewardDetail }}</span> -->
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="奖励描述">
|
|
<template slot-scope="scope">
|
|
<span>{{ scope.row.rewardDetail }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="奖励图片">
|
|
<template slot-scope="scope">
|
|
<img style="width: 50px; height: 50px" v-if="scope.row.rewardImg" :src="scope.row.rewardImg" />
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="达标次数">
|
|
<template slot-scope="scope">
|
|
<span v-if="scope.row.type == 2">{{ scope.row.number }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="跳转类型">
|
|
<template slot-scope="scope">
|
|
<span>{{ returnJumpTypeName(scope.row.jumpType) }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="跳转路径">
|
|
<template slot-scope="scope">
|
|
<span>{{ scope.row.buttonUrl }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="是否展示">
|
|
<template slot-scope="scope">
|
|
<el-switch @change="showsChange($event, scope.row)" v-model="scope.row.shows" :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="openAddZhuanpan(scope.row)">编辑</el-button>
|
|
<el-button type="text" size="mini" @click="del(scope.row)">删除</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<div class="pagination">
|
|
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
|
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page"
|
|
layout="total,sizes, prev, pager, next,jumper" :total="total">
|
|
</el-pagination>
|
|
</div>
|
|
<add-renwu ref="refRenwu" @refresh="init"></add-renwu>
|
|
<gift-list ref="giftList" @refresh="init"></gift-list>
|
|
</div>
|
|
<div v-if="tabActive == 'exchang'">
|
|
<record ref="record" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import $api from "@/api/renwu.js";
|
|
import addRenwu from "./components/pop-add-renwu.vue";
|
|
import giftList from "./components/pop-gift-list.vue";
|
|
import record from "./components/record.vue";
|
|
import { $renwuType, $jumpType } from './data.js'
|
|
|
|
export default {
|
|
components: { addRenwu, giftList, record },
|
|
data() {
|
|
return {
|
|
tabActive: 'renwu',
|
|
total: 0,
|
|
tableData: [],
|
|
page: 1,
|
|
limit: 10,
|
|
renType: $renwuType,
|
|
jumpType: $jumpType,
|
|
};
|
|
},
|
|
methods: {
|
|
opengiftList(item) {
|
|
this.$refs.giftList.open(item)
|
|
},
|
|
async showsChange(e, item) {
|
|
console.log(e)
|
|
const res = await $api.update({ ...item, shows: e })
|
|
if (res.data.code == 0) {
|
|
this.$message.success('修改成功')
|
|
this.init()
|
|
} else {
|
|
this.$message.error(res.data.msg || '修改失败')
|
|
}
|
|
},
|
|
handleSizeChange(limit) {
|
|
this.limit = limit;
|
|
this.init();
|
|
},
|
|
handleCurrentChange(val) {
|
|
this.page = val;
|
|
this.init();
|
|
},
|
|
returnJumpTypeName(type) {
|
|
// console.log(type)
|
|
// console.log($jumpType[type])
|
|
return $jumpType[type] ? $jumpType[type] : "";
|
|
},
|
|
returnTypeName(type) {
|
|
return $renwuType[type] ? $renwuType[type] : "";
|
|
},
|
|
//数据初始化
|
|
async init() {
|
|
const { data } = await $api.getList({
|
|
page: this.page,
|
|
limit: this.limit,
|
|
});
|
|
this.tableData = data.data.records;
|
|
this.total = data.data.totalCount;
|
|
},
|
|
del(item) {
|
|
this.$confirm("是否删除该任务?", "提示", {
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
type: "warning",
|
|
})
|
|
.then(() => {
|
|
$api.del(item.id).then((res) => {
|
|
const data = res.data;
|
|
if (data.code == 0) {
|
|
this.$message.success("删除成功");
|
|
this.init();
|
|
} else {
|
|
this.$message.error(data.msg || "删除失败");
|
|
}
|
|
});
|
|
})
|
|
.catch(() => { });
|
|
},
|
|
openAddZhuanpan(item) {
|
|
this.$refs.refRenwu.open(item);
|
|
},
|
|
},
|
|
mounted() {
|
|
this.init();
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.zhanwei {
|
|
height: 20px;
|
|
}
|
|
|
|
.pagination {
|
|
margin-top: 20px;
|
|
display: flex;
|
|
}
|
|
</style> |