new-admin-view/src/views/marketing/exchange/quota/vegetable.vue

230 lines
7.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="divBox">
<el-card class="box-card">
<!--顶部搜索栏-->
<div slot="header" class="clearfix">
<div class="container">
<el-form inline size="small" label-width="80px">
<el-form-item label="搜索:">
<el-input v-model="tableFrom.uid" @keyup.enter.native="getList(1)" placeholder="请输入用户ID" class="selWidth" clearable>
<el-button slot="append" icon="el-icon-search" class="el-button-solt" @click="getList(1)" />
</el-input>
</el-form-item>
<el-form-item class="width100">
</el-form-item>
</el-form>
<cards-data :card-lists="cardLists" />
</div>
</div>
<!--表格信息-->
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="持有信息" name="list">
<el-table v-loading="listLoading" :data="tableData.data" style="width: 100%" size="mini">
<el-table-column prop="id" label="ID" min-width="50" align="center"/>
<el-table-column label="用户信息" prop="nickname" min-width="150" align="center">
<template slot-scope="scope">
<div class="user-content">
<div class="user-avatar" v-if="scope.row.avatar && scope.row.avatar != 1">
<img :src="scope.row.avatar" />
</div>
<div class="user-info">
<div class="nickname">{{ scope.row.nickname }}</div>
<div class="user-id">ID{{ scope.row.uid }}</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="总获得额度" prop="total_quota" min-width="120" align="center"/>
<el-table-column label="已使用额度" prop="use_quota" min-width="120" align="center"/>
<el-table-column label="剩余额度" prop="surplus_quota" min-width="120" align="center"/>
<el-table-column label="冻结额度" prop="freeze_quota" min-width="120" align="center"/>
<el-table-column label="可用额度" prop="number" min-width="120" align="center">
<template slot-scope="scope">
{{ (scope.row.surplus_quota - scope.row.freeze_quota).toFixed(2) }}
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="变更记录" name="record_list">
<el-table v-loading="listLoading" :data="tableData.data" style="width: 100%" size="mini">
<el-table-column prop="id" label="ID" min-width="50" align="center"/>
<el-table-column label="用户信息" prop="nickname" min-width="150" align="center">
<template slot-scope="scope">
<div class="user-content">
<div class="user-avatar" v-if="scope.row.avatar && scope.row.avatar != 1">
<img :src="scope.row.avatar" />
</div>
<div class="user-info">
<div class="nickname">{{ scope.row.nickname }}</div>
<div class="user-id">ID{{ scope.row.uid }}</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="变更前数量" prop="change_front" min-width="120" align="center"/>
<el-table-column label="变更数量" prop="change_quantity" min-width="120" align="center"/>
<el-table-column label="变更类型" min-width="120" align="center">
<template slot-scope="scope">
<el-tag v-if="scope.row.change_type == 1" type="success" effect="dark">增加</el-tag>
<el-tag v-else type="danger" effect="dark">减少</el-tag>
</template>
</el-table-column>
<el-table-column label="变更后数量" prop="change_after" min-width="120" align="center"/>
<el-table-column label="变更时间" prop="create_time" min-width="120" align="center"/>
<el-table-column label="备注" prop="remark" min-width="120" align="center"/>
</el-table>
</el-tab-pane>
</el-tabs>
<!--分页-->
<div class="block">
<el-pagination
:page-sizes="[20, 40, 60, 80]"
:page-size="tableFrom.limit"
:current-page="tableFrom.page"
layout="total, sizes, prev, pager, next, jumper"
:total="tableData.total"
@size-change="handleSizeChange"
@current-change="pageChange"
/>
</div>
</el-card>
</div>
</template>
<script>
import {exchangeQuotaTitle, exchangeQuotaList } from '@/api/marketing'
import cardsData from '@/components/cards/index'
export default {
name: "preSaleProductList",
components: { cardsData },
data() {
return {
activeName: 'list',
listLoading: true,
tableData: {
data: [],
total: 0,
},
tableFrom: {
page: 1,
limit: 20,
uid: '',
quota_type: 2
},
loading: false,
cardLists: [],
};
},
watch: {},
mounted() {
this.getStatistics();
this.getList('');
},
methods: {
// 获取统计数据
getStatistics() {
let _this = this;
exchangeQuotaTitle(_this.tableFrom).then((res) => {
this.cardLists = res.data
}).catch((res) => {
this.$message.error(res.message)
})
},
// 获取列表
getList(num) {
let _this = this;
this.listLoading = true;
this.tableFrom.page = num ? num : this.tableFrom.page;
exchangeQuotaList(_this.activeName,this.tableFrom)
.then((res) => {
this.tableData.data = res.data.list;
this.tableData.total = res.data.count;
this.listLoading = false;
})
.catch((res) => {
this.listLoading = false;
this.$message.error(res.message);
});
},
pageChange(page) {
this.tableFrom.page = page;
this.getList('');
},
handleSizeChange(val) {
this.tableFrom.limit = val;
this.getList('');
},
handleClick(tab, event){
this.tableData = this.$options.data().tableData;
this.tableFrom = this.$options.data().tableFrom;
this.getList(1);
}
},
};
</script>
<style scoped lang="scss">
.selWidth {
width: 350px !important;
}
/deep/ .cell{
padding: 0!important;
}
.seachTiele {
line-height: 35px;
}
.title{
margin-bottom: 16px;
color: #17233d;
font-size: 14px;
font-weight: bold;
}
.scollhide::-webkit-scrollbar {
display: none; /* Chrome Safari */
}
.user-content{
--user-content-height-: 80px;
height: var(--user-content-height-);
width: 100%;
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
align-items: center;
.user-avatar{
height: var(--user-content-height-);
width: var(--user-content-height-);
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
align-items: center;
img{
height: 80%!important;
width: 80%!important;
border-radius: 50% !important;
}
}
.user-info{
height: var(--user-content-height-);
display: inline-flex;
flex-direction: column;
flex-wrap: nowrap;
justify-content: center;
align-items: flex-start;
.nickname{
font-size: 15px;
font-weight: bold;
line-height: calc(var(--user-content-height- * 65%));
}
.user-id{
font-size: 13px;
line-height: calc(var(--user-content-height- * 35%));
}
}
}
</style>