feat:v1.4前端更新
This commit is contained in:
@@ -1,25 +1,18 @@
|
||||
<template>
|
||||
<div class="divBox">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<div class="container">
|
||||
<el-form label-width="100px" :inline="true">
|
||||
<el-form-item>
|
||||
<el-select v-model="tableFrom.type" clearable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in typeOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getList(1)" size="small">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-card :bordered="false" shadow="never" class="ivu-mt" :body-style="{ padding: 0 }">
|
||||
<div class="padding-add">
|
||||
<el-form label-width="75px" :inline="true">
|
||||
<el-form-item label="变动类型:">
|
||||
<el-select @change="getList(1)" class="selWidth" v-model="tableFrom.type" clearable placeholder="请选择">
|
||||
<el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card class="box-card mt14">
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="tableData.data"
|
||||
@@ -28,33 +21,18 @@
|
||||
class="table"
|
||||
highlight-current-row
|
||||
>
|
||||
<el-table-column
|
||||
prop="id"
|
||||
label="ID"
|
||||
width="80"
|
||||
/>
|
||||
<el-table-column prop="id" label="ID" width="80" />
|
||||
<el-table-column label="佣金变动" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<span :class="scope.row.type == 1 ? 'color_red': 'color_green'">{{scope.row.type == 1 ? '+' : '-' }}{{scope.row.price}}</span>
|
||||
<span :class="scope.row.type == 1 ? 'color_red' : 'color_green'"
|
||||
>{{ scope.row.type == 1 ? '+' : '-' }}{{ scope.row.price }}</span
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="mark"
|
||||
label="变动信息"
|
||||
min-width="150"
|
||||
/>
|
||||
<el-table-column
|
||||
label="变动类型"
|
||||
min-width="130"
|
||||
prop="title"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="userName"
|
||||
label="用户信息"
|
||||
min-width="150"
|
||||
/>
|
||||
<el-table-column label="时间" min-width="130" prop="updateTime">
|
||||
</el-table-column>
|
||||
<el-table-column prop="mark" label="变动信息" min-width="150" />
|
||||
<el-table-column label="变动类型" min-width="130" prop="title" />
|
||||
<el-table-column prop="userName" label="用户信息" min-width="150" />
|
||||
<el-table-column label="时间" width="170" prop="updateTime"> </el-table-column>
|
||||
</el-table>
|
||||
<div class="block">
|
||||
<el-pagination
|
||||
@@ -65,6 +43,7 @@
|
||||
:total="tableData.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="pageChange"
|
||||
background
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -72,139 +51,143 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { brokerageListApi } from '@/api/financial'
|
||||
export default {
|
||||
name: 'AccountsCapital',
|
||||
data() {
|
||||
return {
|
||||
timeVal: [],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0
|
||||
},
|
||||
listLoading: true,
|
||||
tableFrom: {
|
||||
type:'',
|
||||
page: 1,
|
||||
limit: 20
|
||||
},
|
||||
userTableFrom: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
dateLimit: ''
|
||||
},
|
||||
fromList: this.$constants.fromList,
|
||||
options: [],
|
||||
typeOptions:[
|
||||
{ value: 1, label: '订单返佣'},
|
||||
{ value: 2, label: '申请提现'},
|
||||
{ value: 3, label: '提现失败'},
|
||||
{ value: 4, label: '提现成功'},
|
||||
{ value: 5, label: '佣金转余额'},
|
||||
],
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// this.getTypes()
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
brokerageListApi(this.tableFrom).then(res => {
|
||||
this.tableData.data = res.list
|
||||
this.tableData.total = res.total
|
||||
this.listLoading = false
|
||||
}).catch((res) => {
|
||||
this.listLoading = false
|
||||
import { brokerageListApi } from '@/api/financial';
|
||||
export default {
|
||||
name: 'AccountsCapital',
|
||||
data() {
|
||||
return {
|
||||
timeVal: [],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0,
|
||||
},
|
||||
listLoading: true,
|
||||
tableFrom: {
|
||||
type: '',
|
||||
page: 1,
|
||||
limit: 20,
|
||||
},
|
||||
userTableFrom: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
dateLimit: '',
|
||||
},
|
||||
fromList: this.$constants.fromList,
|
||||
options: [],
|
||||
typeOptions: [
|
||||
{ value: 1, label: '订单返佣' },
|
||||
{ value: 2, label: '申请提现' },
|
||||
{ value: 3, label: '提现失败' },
|
||||
{ value: 4, label: '提现成功' },
|
||||
{ value: 5, label: '佣金转余额' },
|
||||
],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
// this.getTypes()
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true;
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
brokerageListApi(this.tableFrom)
|
||||
.then((res) => {
|
||||
this.tableData.data = res.list;
|
||||
this.tableData.total = res.total;
|
||||
this.listLoading = false;
|
||||
})
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page
|
||||
this.getList()
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val
|
||||
this.getList()
|
||||
},
|
||||
getTypes() {
|
||||
billTypeApi().then(res => {
|
||||
this.options = res.data
|
||||
localStorage.setItem('CashKey', JSON.stringify(res.data))
|
||||
}).catch((res) => {
|
||||
this.$message.error(res.message)
|
||||
.catch((res) => {
|
||||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page;
|
||||
this.getList();
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val;
|
||||
this.getList();
|
||||
},
|
||||
getTypes() {
|
||||
billTypeApi()
|
||||
.then((res) => {
|
||||
this.options = res.data;
|
||||
localStorage.setItem('CashKey', JSON.stringify(res.data));
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
.catch((res) => {
|
||||
this.$message.error(res.message);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.dashboard-workplace {
|
||||
&-header {
|
||||
&-avatar {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
margin-right: 16px;
|
||||
font-weight: 600;
|
||||
.dashboard-workplace {
|
||||
&-header {
|
||||
&-avatar {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
margin-right: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
&-tip {
|
||||
width: 82%;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-top: -12px;
|
||||
&-title {
|
||||
font-size: 13px;
|
||||
color: #000000;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
&-tip {
|
||||
width: 82%;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-top: -12px;
|
||||
&-title {
|
||||
&-desc {
|
||||
width: 100%;
|
||||
&-sp {
|
||||
width: 32%;
|
||||
color: #17233d;
|
||||
font-size: 13px;
|
||||
color: #000000;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
&-desc {
|
||||
width: 100%;
|
||||
&-sp {
|
||||
width: 32%;
|
||||
color: #17233D;
|
||||
font-size: 13px;
|
||||
display: inline-block;
|
||||
line-height: 25px;
|
||||
}
|
||||
display: inline-block;
|
||||
line-height: 25px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-extra {
|
||||
.ivu-col {
|
||||
p {
|
||||
text-align: right;
|
||||
&-extra {
|
||||
.ivu-col {
|
||||
p {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
p:first-child {
|
||||
span:first-child {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
p:first-child {
|
||||
span:first-child {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
color: #808695;
|
||||
}
|
||||
span:last-child {
|
||||
color: #808695;
|
||||
}
|
||||
}
|
||||
|
||||
p:last-child {
|
||||
font-size: 22px;
|
||||
}
|
||||
p:last-child {
|
||||
font-size: 22px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.selWidth{
|
||||
width: 300px;
|
||||
}
|
||||
.color_red{
|
||||
color:#F5222D;
|
||||
}
|
||||
.color_green{
|
||||
color:#7ABE5C;
|
||||
}
|
||||
}
|
||||
.selWidth {
|
||||
width: 300px;
|
||||
}
|
||||
.color_red {
|
||||
color: #f5222d;
|
||||
}
|
||||
.color_green {
|
||||
color: #7abe5c;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -5,11 +5,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
}
|
||||
export default {};
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
|
||||
</style>
|
||||
<style lang="sass" scoped></style>
|
||||
|
||||
@@ -3,43 +3,61 @@
|
||||
<el-card class="box-card">
|
||||
<div class="clearfix">
|
||||
<div class="container">
|
||||
<el-form size="small" label-width="100px">
|
||||
<el-form-item label="时间选择:" class="width100">
|
||||
<el-radio-group v-model="tableFrom.dateLimit" type="button" class="mr20" size="small" @change="selectChange(tableFrom.dateLimit)">
|
||||
<el-radio-button v-for="(item,i) in fromList.fromTxt" :key="i" :label="item.val">{{ item.text }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-date-picker v-model="timeVal" value-format="yyyy-MM-dd" format="yyyy-MM-dd" size="small" type="daterange" placement="bottom-end" placeholder="自定义时间" style="width: 250px;" @change="onchangeTime" />
|
||||
<el-form inline size="small" label-width="70px">
|
||||
<el-form-item label="时间选择:">
|
||||
<el-date-picker
|
||||
v-model="timeVal"
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
size="small"
|
||||
type="daterange"
|
||||
placement="bottom-end"
|
||||
placeholder="自定义时间"
|
||||
style="width: 260px"
|
||||
@change="onchangeTime"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="提现状态:">
|
||||
<el-radio-group v-model="tableFrom.status" type="button" size="small" @change="getList(1)" clearable>
|
||||
<el-radio-button label="">全部</el-radio-button>
|
||||
<el-radio-button label="0">审核中</el-radio-button>
|
||||
<el-radio-button label="1">已提现</el-radio-button>
|
||||
<el-radio-button label="-1">已拒绝</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-select class="selWidth" @change="getList(1)" v-model="tableFrom.status" placeholder="请选择">
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option label="审核中" value="0"></el-option>
|
||||
<el-option label="已提现" value="1"></el-option>
|
||||
<el-option label="已拒绝" value="-1"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="提现方式:">
|
||||
<el-radio-group v-model="tableFrom.extractType" type="button" size="small" @change="getList(1)" clearable>
|
||||
<el-radio-button label="">全部</el-radio-button>
|
||||
<el-radio-button label="bank">银行卡</el-radio-button>
|
||||
<el-radio-button label="alipay">支付宝</el-radio-button>
|
||||
<el-radio-button label="weixin">微信</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-select class="selWidth" @change="getList(1)" v-model="tableFrom.extractType" placeholder="请选择">
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option label="银行卡" value="bank"></el-option>
|
||||
<el-option label="支付宝" value="alipay"></el-option>
|
||||
<el-option label="微信" value="weixin"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="关键字:" class="width100">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="微信号/姓名/支付宝账号/银行卡号/失败原因" class="selWidth" size="small" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" size="small" @click="getList(1)" />
|
||||
<el-form-item label="关键字:">
|
||||
<el-input
|
||||
v-model="tableFrom.keywords"
|
||||
placeholder="微信号/姓名/支付宝账号/银行卡号/失败原因"
|
||||
class="selWidth"
|
||||
size="small"
|
||||
clearable
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
|
||||
<el-button size="small" @click="handleReset">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<div class="mt20">
|
||||
<div class="mt14">
|
||||
<cards-data :cardLists="cardLists" v-if="checkPermi(['admin:finance:apply:balance'])"></cards-data>
|
||||
</div>
|
||||
<el-card class="box-card">
|
||||
<el-table
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="tableData.data"
|
||||
style="width: 100%"
|
||||
@@ -47,103 +65,92 @@
|
||||
class="table"
|
||||
highlight-current-row
|
||||
>
|
||||
<el-table-column
|
||||
prop="id"
|
||||
label="ID"
|
||||
width="60"
|
||||
/>
|
||||
<el-table-column
|
||||
label="用户信息"
|
||||
min-width="180"
|
||||
>
|
||||
<el-table-column prop="id" label="ID" width="60" />
|
||||
<el-table-column label="用户信息" min-width="180">
|
||||
<template slot-scope="scope">
|
||||
<p>用户昵称:{{scope.row.nickName}}</p>
|
||||
<p>用户id:{{scope.row.uid}}</p>
|
||||
<p>用户昵称:{{ scope.row.nickName }}</p>
|
||||
<p>用户id:{{ scope.row.uid }}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="extractPrice"
|
||||
label="提现金额"
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
label="提现方式"
|
||||
min-width="100"
|
||||
>
|
||||
<el-table-column prop="extractPrice" label="提现金额" min-width="120" />
|
||||
<el-table-column label="提现方式" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.extractType | extractTypeFilter }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="账号"
|
||||
min-width="200"
|
||||
>
|
||||
<el-table-column label="账号" min-width="200">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.extractType=== 'bank'">
|
||||
<p>姓名:{{scope.row.realName }}</p>
|
||||
<p>卡号:{{scope.row.bankCode }}</p>
|
||||
<p>开户行:{{scope.row.bankName }}</p>
|
||||
<div v-if="scope.row.extractType === 'bank'">
|
||||
<p>姓名:{{ scope.row.realName }}</p>
|
||||
<p>卡号:{{ scope.row.bankCode }}</p>
|
||||
<p>开户行:{{ scope.row.bankName }}</p>
|
||||
</div>
|
||||
<span v-else-if="scope.row.extractType=== 'alipay'">
|
||||
<p>姓名:{{scope.row.realName }}</p>
|
||||
<p>支付宝号:{{scope.row.alipayCode }}</p>
|
||||
<div class="acea-row">
|
||||
收款码:
|
||||
<div class="demo-image__preview" v-if="scope.row.qrcodeUrl">
|
||||
<el-image
|
||||
:src="scope.row.qrcodeUrl"
|
||||
:preview-src-list="[scope.row.qrcodeUrl]"
|
||||
/>
|
||||
</div>
|
||||
<div v-else>无</div>
|
||||
</div>
|
||||
<span v-else-if="scope.row.extractType === 'alipay'">
|
||||
<p>姓名:{{ scope.row.realName }}</p>
|
||||
<p>支付宝号:{{ scope.row.alipayCode }}</p>
|
||||
<div class="acea-row">
|
||||
收款码:
|
||||
<div class="demo-image__preview" v-if="scope.row.qrcodeUrl">
|
||||
<el-image :src="scope.row.qrcodeUrl" :preview-src-list="[scope.row.qrcodeUrl]" />
|
||||
</div>
|
||||
<div v-else>无</div>
|
||||
</div>
|
||||
</span>
|
||||
<span v-else-if="scope.row.extractType=== 'weixin'">
|
||||
<p>姓名:{{scope.row.realName }}</p>
|
||||
<p>微信号:{{scope.row.wechat }}</p>
|
||||
<div class="acea-row">
|
||||
收款码:
|
||||
<div class="demo-image__preview" v-if="scope.row.qrcodeUrl">
|
||||
<el-image
|
||||
:src="scope.row.qrcodeUrl"
|
||||
:preview-src-list="[scope.row.qrcodeUrl]"
|
||||
/>
|
||||
</div>
|
||||
<div v-else>无</div>
|
||||
</div>
|
||||
<span v-else-if="scope.row.extractType === 'weixin'">
|
||||
<p>姓名:{{ scope.row.realName }}</p>
|
||||
<p>微信号:{{ scope.row.wechat }}</p>
|
||||
<div class="acea-row">
|
||||
收款码:
|
||||
<div class="demo-image__preview" v-if="scope.row.qrcodeUrl">
|
||||
<el-image :src="scope.row.qrcodeUrl" :preview-src-list="[scope.row.qrcodeUrl]" />
|
||||
</div>
|
||||
<div v-else>无</div>
|
||||
</div>
|
||||
</span>
|
||||
<span v-else>已退款</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="审核状态"
|
||||
min-width="200"
|
||||
>
|
||||
<el-table-column label="审核状态" min-width="200">
|
||||
<template slot-scope="scope">
|
||||
<span class="spBlock">{{ scope.row.status | extractStatusFilter }}</span>
|
||||
<span v-if="scope.row.status === -1">拒绝原因:{{scope.row.failMsg}}</span>
|
||||
<template v-if="scope.row.status === 0">
|
||||
<el-button type="danger" icon="el-icon-close" size="mini" @click="onExamine(scope.row.id)" v-hasPermi="['admin:finance:apply:apply']">未通过</el-button>
|
||||
<el-button type="primary" icon="el-icon-check" size="mini" @click="ok(scope.row.id)" v-hasPermi="['admin:finance:apply:apply']">通过</el-button>
|
||||
<div>
|
||||
<span class="spBlock">{{ scope.row.status | extractStatusFilter }}</span>
|
||||
<span v-if="scope.row.status === -1">拒绝原因:{{ scope.row.failMsg }}</span>
|
||||
</div>
|
||||
<template v-if="scope.row.status === 0 && checkPermi(['admin:finance:apply:apply'])">
|
||||
<el-button
|
||||
type="danger"
|
||||
icon="el-icon-close"
|
||||
v-debounceClick="
|
||||
() => {
|
||||
handleFail(scope.row.id);
|
||||
}
|
||||
"
|
||||
>未通过</el-button
|
||||
>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-check"
|
||||
v-debounceClick="
|
||||
() => {
|
||||
handlePass(scope.row.id);
|
||||
}
|
||||
"
|
||||
>通过</el-button
|
||||
>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="备注"
|
||||
min-width="200"
|
||||
>
|
||||
<el-table-column label="备注" min-width="200">
|
||||
<template slot-scope="scope">
|
||||
<span class="spBlock">{{ scope.row.mark | filterEmpty }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
label="创建时间"
|
||||
min-width="150"
|
||||
/>
|
||||
<el-table-column label="操作" min-width="80" fixed="right" align="center">
|
||||
<el-table-column prop="createTime" label="创建时间" min-width="150" />
|
||||
<el-table-column label="操作" width="80" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="scope.row.status !== 1" type="text" size="small" @click="handleEdit(scope.row)" v-hasPermi="['admin:finance:apply:update']">编辑</el-button>
|
||||
<a v-if="scope.row.status !== 1" @click="handleEdit(scope.row)" v-hasPermi="['admin:finance:apply:update']"
|
||||
>编辑</a
|
||||
>
|
||||
<span v-else>无</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -157,202 +164,230 @@
|
||||
:total="tableData.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="pageChange"
|
||||
background
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-card>
|
||||
|
||||
<!--编辑-->
|
||||
<el-dialog
|
||||
title="编辑"
|
||||
:visible.sync="dialogVisible"
|
||||
width="500px"
|
||||
:before-close="handleClose">
|
||||
<el-dialog title="编辑" :visible.sync="dialogVisible" width="540px" :before-close="handleClose">
|
||||
<!--微信-->
|
||||
<zb-parser
|
||||
v-if="dialogVisible && (tableFrom.extractType==='weixin' || extractType==='weixin')"
|
||||
v-if="dialogVisible && (tableFrom.extractType === 'weixin' || extractType === 'weixin')"
|
||||
:form-id="124"
|
||||
:is-create="isCreate"
|
||||
:edit-data="editData"
|
||||
@submit="handlerSubmit"
|
||||
@resetForm="resetForm"
|
||||
@closeDialog="dialogVisible = false"
|
||||
/>
|
||||
<!--支付宝-->
|
||||
<zb-parser
|
||||
v-if="dialogVisible && (tableFrom.extractType==='alipay' || extractType==='alipay')"
|
||||
v-if="dialogVisible && (tableFrom.extractType === 'alipay' || extractType === 'alipay')"
|
||||
:form-id="126"
|
||||
:is-create="isCreate"
|
||||
:edit-data="editData"
|
||||
@submit="handlerSubmit"
|
||||
@resetForm="resetForm"
|
||||
@closeDialog="dialogVisible = false"
|
||||
/>
|
||||
<!--银行卡-->
|
||||
<zb-parser
|
||||
v-if="dialogVisible && (tableFrom.extractType==='bank' || extractType==='bank')"
|
||||
v-if="dialogVisible && (tableFrom.extractType === 'bank' || extractType === 'bank')"
|
||||
:form-id="125"
|
||||
:is-create="isCreate"
|
||||
:edit-data="editData"
|
||||
@submit="handlerSubmit"
|
||||
@resetForm="resetForm"
|
||||
@closeDialog="dialogVisible = false"
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { applyListApi, applyBalanceApi, applyUpdateApi, applyStatusApi } from '@/api/financial'
|
||||
import cardsData from '@/components/cards/index'
|
||||
import zbParser from '@/components/FormGenerator/components/parser/ZBParser'
|
||||
import { checkPermi } from "@/utils/permission"; // 权限判断函数
|
||||
import {Debounce} from '@/utils/validate'
|
||||
export default {
|
||||
name: 'AccountsExtract',
|
||||
components: {
|
||||
cardsData,
|
||||
zbParser
|
||||
import { applyListApi, applyBalanceApi, applyUpdateApi, applyStatusApi } from '@/api/financial';
|
||||
import cardsData from '@/components/cards/index';
|
||||
import zbParser from '@/components/FormGenerator/components/parser/ZBParser';
|
||||
import { checkPermi } from '@/utils/permission'; // 权限判断函数
|
||||
import { Debounce } from '@/utils/validate';
|
||||
export default {
|
||||
name: 'AccountsExtract',
|
||||
components: {
|
||||
cardsData,
|
||||
zbParser,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
editData: {},
|
||||
isCreate: 1,
|
||||
dialogVisible: false,
|
||||
timeVal: [],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0,
|
||||
},
|
||||
listLoading: true,
|
||||
tableFrom: {
|
||||
extractType: '',
|
||||
status: '',
|
||||
dateLimit: '',
|
||||
keywords: '',
|
||||
page: 1,
|
||||
limit: 20,
|
||||
},
|
||||
fromList: this.$constants.fromList,
|
||||
cardLists: [],
|
||||
applyId: null,
|
||||
extractType: '',
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getList();
|
||||
this.getBalance();
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
//重置
|
||||
handleReset() {
|
||||
this.tableFrom.extractType = '';
|
||||
this.tableFrom.status = '';
|
||||
this.tableFrom.dateLimit = '';
|
||||
this.tableFrom.keywords = '';
|
||||
this.timeVal = [];
|
||||
this.getList();
|
||||
this.getBalance();
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
editData: {},
|
||||
isCreate: 1,
|
||||
dialogVisible: false,
|
||||
timeVal: [],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0
|
||||
},
|
||||
listLoading: true,
|
||||
tableFrom: {
|
||||
extractType: '',
|
||||
status: '',
|
||||
dateLimit: '',
|
||||
keywords: '',
|
||||
page: 1,
|
||||
limit: 20
|
||||
},
|
||||
fromList: this.$constants.fromList,
|
||||
cardLists: [],
|
||||
applyId: null,
|
||||
extractType: ''
|
||||
}
|
||||
resetForm() {
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
this.getBalance()
|
||||
handleEdit(row) {
|
||||
this.extractType = row.extractType;
|
||||
this.applyId = row.id;
|
||||
this.dialogVisible = true;
|
||||
this.isCreate = 1;
|
||||
this.editData = JSON.parse(JSON.stringify(row));
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
resetForm(){
|
||||
handlerSubmit: Debounce(function (formValue) {
|
||||
formValue.id = this.applyId;
|
||||
formValue.extractType = this.extractType;
|
||||
applyUpdateApi(formValue).then((data) => {
|
||||
this.$message.success('编辑成功');
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
handleEdit(row) {
|
||||
this.extractType = row.extractType;
|
||||
this.applyId = row.id;
|
||||
this.dialogVisible = true;
|
||||
this.isCreate = 1;
|
||||
this.editData = JSON.parse(JSON.stringify(row));
|
||||
},
|
||||
handlerSubmit:Debounce(function(formValue) {
|
||||
formValue.id = this.applyId;
|
||||
formValue.extractType = this.extractType;
|
||||
applyUpdateApi(formValue).then(data => {
|
||||
this.$message.success('编辑成功')
|
||||
this.dialogVisible = false
|
||||
this.getList()
|
||||
})
|
||||
}),
|
||||
handleClose() {
|
||||
this.dialogVisible = false
|
||||
this.editData = {}
|
||||
},
|
||||
onExamine(id) {
|
||||
this.$prompt('未通过', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
inputErrorMessage: '请输入原因',
|
||||
inputType: 'textarea',
|
||||
inputValue: '输入信息不完整或有误!',
|
||||
inputPlaceholder: '请输入原因',
|
||||
inputValidator: (value) => {
|
||||
if (!value) {
|
||||
return '请输入原因'
|
||||
}
|
||||
this.getList();
|
||||
});
|
||||
}),
|
||||
handleClose() {
|
||||
this.dialogVisible = false;
|
||||
this.editData = {};
|
||||
},
|
||||
// 审核未通过
|
||||
handleFail(id) {
|
||||
this.$prompt('未通过', '拒绝原因', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
inputErrorMessage: '请输入原因',
|
||||
inputType: 'textarea',
|
||||
inputValue: '输入信息不完整或有误!',
|
||||
inputPlaceholder: '请输入原因',
|
||||
inputValidator: (value) => {
|
||||
if (!value) {
|
||||
return '请输入原因';
|
||||
}
|
||||
}).then(({ value }) => {
|
||||
applyStatusApi({ id: id, status: -1, backMessage: value }).then(res => {
|
||||
},
|
||||
})
|
||||
.then(({ value }) => {
|
||||
applyStatusApi({ id: id, status: -1, backMessage: value }).then((res) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '提交成功'
|
||||
})
|
||||
this.getList()
|
||||
})
|
||||
}).catch(() => {
|
||||
message: '提交成功',
|
||||
});
|
||||
this.getList();
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '取消输入'
|
||||
})
|
||||
message: '取消输入',
|
||||
});
|
||||
});
|
||||
},
|
||||
// 审核通过
|
||||
handlePass(id) {
|
||||
this.$modalSure('审核通过吗').then(() => {
|
||||
applyStatusApi({ id: id, status: 1 }).then(() => {
|
||||
this.$message.success('操作成功');
|
||||
this.getList();
|
||||
});
|
||||
});
|
||||
},
|
||||
// 金额
|
||||
getBalance() {
|
||||
applyBalanceApi({ dateLimit: this.tableFrom.dateLimit }).then((res) => {
|
||||
this.cardLists = [
|
||||
{ name: '待提现金额', count: res.toBeWithdrawn, color: '#1890FF', class: 'one', icon: 'iconzhichujine1' },
|
||||
{
|
||||
name: '佣金总金额',
|
||||
count: res.commissionTotal,
|
||||
color: '#A277FF',
|
||||
class: 'two',
|
||||
icon: 'iconzhifuyongjinjine1',
|
||||
},
|
||||
{ name: '已提现金额', count: res.withdrawn, color: '#EF9C20', class: 'three', icon: 'iconyingyee1' },
|
||||
{ name: '未提现金额', count: res.unDrawn, color: '#1BBE6B', class: 'four', icon: 'iconyuezhifujine2' },
|
||||
];
|
||||
});
|
||||
},
|
||||
// 选择时间
|
||||
selectChange(tab) {
|
||||
this.timeVal = [];
|
||||
this.tableFrom.dateLimit = tab;
|
||||
this.tableFrom.page = 1;
|
||||
this.getList();
|
||||
this.getBalance();
|
||||
},
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e;
|
||||
this.tableFrom.dateLimit = e ? this.timeVal.join(',') : '';
|
||||
this.tableFrom.page = 1;
|
||||
this.getList();
|
||||
this.getBalance();
|
||||
},
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true;
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
applyListApi(this.tableFrom)
|
||||
.then((res) => {
|
||||
this.tableData.data = res.list;
|
||||
this.tableData.total = res.total;
|
||||
this.listLoading = false;
|
||||
})
|
||||
},
|
||||
ok(id) {
|
||||
this.$modalSure('审核通过吗').then(() => {
|
||||
applyStatusApi({id: id, status: 1 }).then(() => {
|
||||
this.$message.success('操作成功')
|
||||
this.getList()
|
||||
})
|
||||
})
|
||||
},
|
||||
// 金额
|
||||
getBalance() {
|
||||
applyBalanceApi({dateLimit: this.tableFrom.dateLimit}).then(res => {
|
||||
this.cardLists = [
|
||||
{ name: '待提现金额', count: res.toBeWithdrawn,color:'#1890FF',class:'one',icon:'iconzhichujine1' },
|
||||
{ name: '佣金总金额', count: res.commissionTotal,color:'#A277FF',class:'two',icon:'iconzhifuyongjinjine1' },
|
||||
{ name: '已提现金额', count: res.withdrawn,color:'#EF9C20',class:'three',icon:'iconyingyee1' },
|
||||
{ name: '未提现金额', count: res.unDrawn,color:'#1BBE6B',class:'four',icon:'iconyuezhifujine2' }
|
||||
]
|
||||
})
|
||||
},
|
||||
// 选择时间
|
||||
selectChange(tab) {
|
||||
this.timeVal = []
|
||||
this.tableFrom.dateLimit = tab
|
||||
this.tableFrom.page = 1;
|
||||
this.getList();
|
||||
this.getBalance();
|
||||
},
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e
|
||||
this.tableFrom.dateLimit = e ? this.timeVal.join(',') : ''
|
||||
this.tableFrom.page = 1;
|
||||
this.getList();
|
||||
this.getBalance();
|
||||
},
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
applyListApi(this.tableFrom).then(res => {
|
||||
this.tableData.data = res.list
|
||||
this.tableData.total = res.total
|
||||
this.listLoading = false
|
||||
}).catch(() => {
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page
|
||||
this.getList()
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
.catch(() => {
|
||||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page;
|
||||
this.getList();
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val;
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.selWidth{
|
||||
width: 350px;
|
||||
}
|
||||
.selWidth {
|
||||
width: 350px;
|
||||
}
|
||||
::v-deep .dialog-footer-inner {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
::v-deep [role='dialog'] .el-message-box__content {
|
||||
padding: 30px 24px 20px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -5,11 +5,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
}
|
||||
export default {};
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
|
||||
</style>
|
||||
<style lang="sass" scoped></style>
|
||||
|
||||
@@ -3,28 +3,39 @@
|
||||
<el-card class="box-card">
|
||||
<div class="clearfix">
|
||||
<div class="container">
|
||||
<el-form size="small" label-width="100px" inline>
|
||||
<el-form-item label="时间选择:" class="width100">
|
||||
<el-radio-group v-model="tableFrom.dateLimit" type="button" class="mr20" size="small" @change="selectChange(tableFrom.dateLimit)">
|
||||
<el-radio-button v-for="(item,i) in fromList.fromTxt" :key="i" :label="item.val">{{ item.text }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-date-picker v-model="timeVal" value-format="yyyy-MM-dd" format="yyyy-MM-dd" size="small" type="daterange" placement="bottom-end" placeholder="自定义时间" style="width: 250px;" @change="onchangeTime" />
|
||||
<el-form size="small" label-width="70px" inline>
|
||||
<el-form-item label="时间选择:">
|
||||
<el-date-picker
|
||||
v-model="timeVal"
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
size="small"
|
||||
type="daterange"
|
||||
placement="bottom-end"
|
||||
placeholder="自定义时间"
|
||||
style="width: 250px"
|
||||
@change="onchangeTime"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户id:">
|
||||
<el-form-item label="用户ID:">
|
||||
<el-input v-model="tableFrom.uid" placeholder="用户id" class="selWidth" size="small" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" size="small" @click="getList(1)" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号:">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="订单号" class="selWidth" size="small" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" size="small" @click="getList(1)" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
|
||||
<el-button size="small" @click="handleReset">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<div class="mt20">
|
||||
<div class="mt14">
|
||||
<cards-data :card-lists="cardLists" v-if="checkPermi(['admin:recharge:balance'])" />
|
||||
</div>
|
||||
<el-card class="box-card">
|
||||
@@ -36,39 +47,25 @@
|
||||
class="table"
|
||||
highlight-current-row
|
||||
>
|
||||
<el-table-column
|
||||
prop="uid"
|
||||
label="UID"
|
||||
width="60"
|
||||
/>
|
||||
<el-table-column
|
||||
label="头像"
|
||||
min-width="80"
|
||||
>
|
||||
<el-table-column prop="uid" label="UID" width="60" />
|
||||
<el-table-column label="头像" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
<el-image
|
||||
:src="scope.row.avatar"
|
||||
:preview-src-list="[scope.row.avatar]"
|
||||
/>
|
||||
<el-image :src="scope.row.avatar" :preview-src-list="[scope.row.avatar]" />
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="nickname"
|
||||
label="用户昵称"
|
||||
min-width="130"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="orderId"
|
||||
label="订单号"
|
||||
min-width="180"
|
||||
/>
|
||||
<el-table-column prop="nickname" label="用户昵称" min-width="130" />
|
||||
<el-table-column prop="orderId" label="订单号" min-width="180" />
|
||||
<el-table-column
|
||||
sortable
|
||||
label="支付金额"
|
||||
min-width="120"
|
||||
:sort-method="(a,b)=>{return a.price - b.price}"
|
||||
:sort-method="
|
||||
(a, b) => {
|
||||
return a.price - b.price;
|
||||
}
|
||||
"
|
||||
prop="price"
|
||||
/>
|
||||
<el-table-column
|
||||
@@ -76,20 +73,18 @@
|
||||
label="赠送金额"
|
||||
min-width="120"
|
||||
prop="givePrice"
|
||||
:sort-method="(a,b)=>{return a.givePrice - b.givePrice}"
|
||||
:sort-method="
|
||||
(a, b) => {
|
||||
return a.givePrice - b.givePrice;
|
||||
}
|
||||
"
|
||||
/>
|
||||
<el-table-column
|
||||
label="充值类型"
|
||||
min-width="80"
|
||||
>
|
||||
<el-table-column label="充值类型" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.rechargeType | rechargeTypeFilter }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="支付时间"
|
||||
min-width="150"
|
||||
>
|
||||
<el-table-column label="支付时间" width="170">
|
||||
<template slot-scope="scope">
|
||||
<span class="spBlock">{{ scope.row.payTime || '无' }}</span>
|
||||
</template>
|
||||
@@ -104,15 +99,12 @@
|
||||
:total="tableData.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="pageChange"
|
||||
background
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
<!--退款-->
|
||||
<el-dialog
|
||||
title="退款"
|
||||
:visible.sync="dialogVisible"
|
||||
width="500px"
|
||||
:before-close="handleClose">
|
||||
<el-dialog title="退款" :visible.sync="dialogVisible" width="500px" :before-close="handleClose">
|
||||
<zb-parser
|
||||
v-if="dialogVisible"
|
||||
:form-id="130"
|
||||
@@ -126,123 +118,139 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { topUpLogListApi, balanceApi, topUpLogDeleteApi, refundApi } from '@/api/financial'
|
||||
import cardsData from '@/components/cards/index'
|
||||
import zbParser from '@/components/FormGenerator/components/parser/ZBParser'
|
||||
import { checkPermi } from "@/utils/permission"; // 权限判断函数
|
||||
export default {
|
||||
name: 'AccountsBill',
|
||||
components: { cardsData, zbParser },
|
||||
data() {
|
||||
return {
|
||||
editData: {},
|
||||
isCreate: 1,
|
||||
cardLists: [],
|
||||
timeVal: [],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0
|
||||
},
|
||||
listLoading: true,
|
||||
tableFrom: {
|
||||
uid: '',
|
||||
// paid: '',
|
||||
dateLimit: '',
|
||||
keywords: '',
|
||||
page: 1,
|
||||
limit: 20
|
||||
},
|
||||
fromList: this.$constants.fromList,
|
||||
dialogVisible: false
|
||||
}
|
||||
import { topUpLogListApi, balanceApi, topUpLogDeleteApi, refundApi } from '@/api/financial';
|
||||
import cardsData from '@/components/cards/index';
|
||||
import zbParser from '@/components/FormGenerator/components/parser/ZBParser';
|
||||
import { checkPermi } from '@/utils/permission'; // 权限判断函数
|
||||
export default {
|
||||
name: 'AccountsBill',
|
||||
components: { cardsData, zbParser },
|
||||
data() {
|
||||
return {
|
||||
editData: {},
|
||||
isCreate: 1,
|
||||
cardLists: [],
|
||||
timeVal: [],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0,
|
||||
},
|
||||
listLoading: true,
|
||||
tableFrom: {
|
||||
uid: '',
|
||||
// paid: '',
|
||||
dateLimit: '',
|
||||
keywords: '',
|
||||
page: 1,
|
||||
limit: 20,
|
||||
},
|
||||
fromList: this.$constants.fromList,
|
||||
dialogVisible: false,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getList();
|
||||
this.getStatistics();
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
//重置
|
||||
handleReset() {
|
||||
this.tableFrom.uid = '';
|
||||
this.tableFrom.dateLimit = '';
|
||||
this.tableFrom.keywords = '';
|
||||
this.timeVal = [];
|
||||
this.getList();
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
this.getStatistics()
|
||||
resetForm(formValue) {
|
||||
this.handleClose();
|
||||
},
|
||||
methods: {
|
||||
checkPermi,
|
||||
resetForm(formValue) {
|
||||
this.handleClose();
|
||||
},
|
||||
handlerSubmit(formValue) {
|
||||
refundApi(formValue).then(data => {
|
||||
this.$message.success('操作成功')
|
||||
this.dialogVisible = false
|
||||
this.editData = {}
|
||||
this.getList()
|
||||
handlerSubmit(formValue) {
|
||||
refundApi(formValue).then((data) => {
|
||||
this.$message.success('操作成功');
|
||||
this.dialogVisible = false;
|
||||
this.editData = {};
|
||||
this.getList();
|
||||
});
|
||||
},
|
||||
handleClose() {
|
||||
this.dialogVisible = false;
|
||||
this.editData = {};
|
||||
},
|
||||
handleRefund(row) {
|
||||
if (row.price == row.refundPrice) return this.$message.waiting('已退完支付金额!不能再退款了 !');
|
||||
if (row.rechargeType === 'balance') return this.$message.waiting('佣金转入余额,不能退款 !');
|
||||
this.editData.orderId = row.orderId;
|
||||
this.editData.id = row.id;
|
||||
this.dialogVisible = true;
|
||||
},
|
||||
handleDelete(row, idx) {
|
||||
this.$modalSure().then(() => {
|
||||
topUpLogDeleteApi({ id: row.id }).then(() => {
|
||||
this.$message.success('删除成功');
|
||||
this.getList(this.tableFrom.page);
|
||||
});
|
||||
});
|
||||
},
|
||||
// 选择时间
|
||||
selectChange(tab) {
|
||||
this.tableFrom.dateLimit = tab;
|
||||
this.timeVal = [];
|
||||
this.tableFrom.page = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e;
|
||||
this.tableFrom.dateLimit = e ? this.timeVal.join(',') : '';
|
||||
this.tableFrom.page = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true;
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
topUpLogListApi(this.tableFrom)
|
||||
.then((res) => {
|
||||
this.tableData.data = res.list;
|
||||
this.tableData.total = res.total;
|
||||
this.listLoading = false;
|
||||
})
|
||||
},
|
||||
handleClose() {
|
||||
this.dialogVisible = false
|
||||
this.editData = {}
|
||||
},
|
||||
handleRefund(row) {
|
||||
if(row.price == row.refundPrice) return this.$message.waiting('已退完支付金额!不能再退款了 !');
|
||||
if(row.rechargeType === 'balance') return this.$message.waiting('佣金转入余额,不能退款 !');
|
||||
this.editData.orderId = row.orderId
|
||||
this.editData.id = row.id
|
||||
this.dialogVisible = true
|
||||
},
|
||||
handleDelete(row, idx) {
|
||||
this.$modalSure().then(() => {
|
||||
topUpLogDeleteApi( {id:row.id} ).then(() => {
|
||||
this.$message.success('删除成功')
|
||||
this.getList(this.tableFrom.page)
|
||||
})
|
||||
})
|
||||
},
|
||||
// 选择时间
|
||||
selectChange(tab) {
|
||||
this.tableFrom.dateLimit = tab
|
||||
this.timeVal = []
|
||||
this.tableFrom.page = 1;
|
||||
this.getList()
|
||||
},
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e
|
||||
this.tableFrom.dateLimit = e ? this.timeVal.join(',') : ''
|
||||
this.tableFrom.page = 1;
|
||||
this.getList()
|
||||
},
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
topUpLogListApi(this.tableFrom).then(res => {
|
||||
this.tableData.data = res.list
|
||||
this.tableData.total = res.total
|
||||
this.listLoading = false
|
||||
}).catch(() => {
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page
|
||||
this.getList()
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val
|
||||
this.getList()
|
||||
},
|
||||
// 统计
|
||||
getStatistics() {
|
||||
balanceApi().then(res => {
|
||||
const stat = res
|
||||
this.cardLists = [
|
||||
{ name: '充值总金额', count: stat.total, color:'#1890FF',class:'one',icon:'iconchongzhijine' },
|
||||
{ name: '小程序充值金额', count: stat.routine, color:'#A277FF',class:'two',icon:'iconweixinzhifujine' },
|
||||
{ name: '公众号充值金额', count: stat.weChat, color:'#EF9C20',class:'three',icon:'iconyuezhifujine1' }
|
||||
]
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
.catch(() => {
|
||||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page;
|
||||
this.getList();
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val;
|
||||
this.getList();
|
||||
},
|
||||
// 统计
|
||||
getStatistics() {
|
||||
balanceApi().then((res) => {
|
||||
const stat = res;
|
||||
this.cardLists = [
|
||||
{ name: '充值总金额', count: stat.total, color: '#1890FF', class: 'one', icon: 'iconchongzhijine' },
|
||||
{ name: '小程序充值金额', count: stat.routine, color: '#A277FF', class: 'two', icon: 'iconweixinzhifujine' },
|
||||
{ name: '公众号充值金额', count: stat.weChat, color: '#EF9C20', class: 'three', icon: 'iconyuezhifujine1' },
|
||||
];
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.selWidth{
|
||||
width: 300px;
|
||||
}
|
||||
.selWidth {
|
||||
width: 300px;
|
||||
}
|
||||
::v-deep .el-card__body {
|
||||
padding: 20px 20px 0;
|
||||
}
|
||||
.block {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -5,11 +5,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
}
|
||||
export default {};
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
|
||||
</style>
|
||||
<style lang="sass" scoped></style>
|
||||
|
||||
@@ -1,33 +1,47 @@
|
||||
<template>
|
||||
<div class="divBox">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<div class="container">
|
||||
<el-form size="small" label-width="100px">
|
||||
<el-form-item label="时间选择:" class="width100">
|
||||
<el-radio-group v-model="tableFrom.dateLimit" type="button" class="mr20" size="small" @change="selectChange(tableFrom.dateLimit)">
|
||||
<el-radio-button v-for="(item,i) in fromList.fromTxt" :key="i" :label="item.val">{{ item.text }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-date-picker v-model="timeVal" value-format="yyyy-MM-dd" format="yyyy-MM-dd" size="small" type="daterange" placement="bottom-end" placeholder="自定义时间" style="width: 250px;" @change="onchangeTime" />
|
||||
</el-form-item>
|
||||
<el-form-item label="关键字" class="width100">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="微信昵称/ID" class="selWidth" size="small" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" size="small" @click="getList(1)" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="明细类型">
|
||||
<el-select v-model="tableFrom.title" size="small" clearable placeholder="请选择" @change="selectType">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-card :bordered="false" shadow="never" class="ivu-mt" :body-style="{ padding: 0 }">
|
||||
<div class="padding-add">
|
||||
<el-form inline size="small" label-width="70px">
|
||||
<el-form-item label="时间选择:">
|
||||
<el-date-picker
|
||||
v-model="timeVal"
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
size="small"
|
||||
type="daterange"
|
||||
placement="bottom-end"
|
||||
placeholder="自定义时间"
|
||||
style="width: 250px"
|
||||
@change="onchangeTime"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="关键字:">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="微信昵称/ID" class="selWidth" size="small" clearable>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="明细类型:">
|
||||
<el-select
|
||||
class="selWidth"
|
||||
v-model="tableFrom.title"
|
||||
size="small"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
@change="selectType"
|
||||
>
|
||||
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
|
||||
<el-button size="small" @click="handleReset">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card class="box-card mt14">
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="tableData.data"
|
||||
@@ -36,41 +50,20 @@
|
||||
class="table"
|
||||
highlight-current-row
|
||||
>
|
||||
<el-table-column
|
||||
prop="uid"
|
||||
label="会员ID"
|
||||
width="80"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="nickName"
|
||||
label="昵称"
|
||||
min-width="130"
|
||||
/>
|
||||
<el-table-column
|
||||
label="金额"
|
||||
min-width="120"
|
||||
>
|
||||
<el-table-column prop="uid" label="会员ID" width="80" />
|
||||
<el-table-column prop="nickName" label="昵称" min-width="130" />
|
||||
<el-table-column label="金额" min-width="120">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
<span :class="scope.row.pm == 1 ? 'color_red': 'color_green'">{{scope.row.pm == 1 ? '+' : '-' }}{{scope.row.number}}</span>
|
||||
</div>
|
||||
</template>>
|
||||
<span :class="scope.row.pm == 1 ? 'color_red' : 'color_green'"
|
||||
>{{ scope.row.pm == 1 ? '+' : '-' }}{{ scope.row.number }}</span
|
||||
>
|
||||
</div> </template
|
||||
>>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="明细类型"
|
||||
min-width="100"
|
||||
prop="title"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="mark"
|
||||
label="备注"
|
||||
min-width="200"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
label="创建时间"
|
||||
min-width="150"
|
||||
/>
|
||||
<el-table-column label="明细类型" min-width="100" prop="title" />
|
||||
<el-table-column prop="mark" label="备注" min-width="200" />
|
||||
<el-table-column prop="createTime" label="创建时间" width="170" />
|
||||
</el-table>
|
||||
<div class="block">
|
||||
<el-pagination
|
||||
@@ -81,6 +74,7 @@
|
||||
:total="tableData.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="pageChange"
|
||||
background
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -88,88 +82,98 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { monitorListApi, monitorListOptionApi } from '@/api/financial'
|
||||
export default {
|
||||
name: 'AccountsCapital',
|
||||
data() {
|
||||
return {
|
||||
timeVal: [],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0
|
||||
},
|
||||
listLoading: true,
|
||||
tableFrom: {
|
||||
title: '',
|
||||
dateLimit: '',
|
||||
keywords: '',
|
||||
page: 1,
|
||||
limit: 20,
|
||||
},
|
||||
categoryId: '',
|
||||
fromList: this.$constants.fromList,
|
||||
options:[
|
||||
{value: 'recharge',label: '充值支付'},
|
||||
{value: 'admin',label: '后台操作'},
|
||||
{value: 'productRefund',label: '商品退款'},
|
||||
{value: 'payProduct',label: '购买商品'},
|
||||
]
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// this.getTypes()
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
selectChange(tab) {
|
||||
this.tableFrom.dateLimit = tab
|
||||
this.timeVal = []
|
||||
this.tableFrom.page = 1;
|
||||
this.getList()
|
||||
import { monitorListApi, monitorListOptionApi } from '@/api/financial';
|
||||
export default {
|
||||
name: 'AccountsCapital',
|
||||
data() {
|
||||
return {
|
||||
timeVal: [],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0,
|
||||
},
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e
|
||||
this.tableFrom.dateLimit = e ? this.timeVal.join(',') : ''
|
||||
this.tableFrom.page = 1;
|
||||
this.getList()
|
||||
listLoading: true,
|
||||
tableFrom: {
|
||||
title: '',
|
||||
dateLimit: '',
|
||||
keywords: '',
|
||||
page: 1,
|
||||
limit: 20,
|
||||
},
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
monitorListApi(this.tableFrom).then(res => {
|
||||
this.tableData.data = res.list
|
||||
this.tableData.total = res.total
|
||||
this.listLoading = false
|
||||
}).catch((res) => {
|
||||
this.$message.error(res.message)
|
||||
this.listLoading = false
|
||||
categoryId: '',
|
||||
fromList: this.$constants.fromList,
|
||||
options: [
|
||||
{ value: 'recharge', label: '充值支付' },
|
||||
{ value: 'admin', label: '后台操作' },
|
||||
{ value: 'productRefund', label: '商品退款' },
|
||||
{ value: 'payProduct', label: '购买商品' },
|
||||
],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
// this.getTypes()
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
//重置
|
||||
handleReset() {
|
||||
this.tableFrom.title = '';
|
||||
this.tableFrom.dateLimit = '';
|
||||
this.tableFrom.keywords = '';
|
||||
this.timeVal = [];
|
||||
this.getList();
|
||||
},
|
||||
selectChange(tab) {
|
||||
this.tableFrom.dateLimit = tab;
|
||||
this.timeVal = [];
|
||||
this.tableFrom.page = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e;
|
||||
this.tableFrom.dateLimit = e ? this.timeVal.join(',') : '';
|
||||
this.tableFrom.page = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true;
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
monitorListApi(this.tableFrom)
|
||||
.then((res) => {
|
||||
this.tableData.data = res.list;
|
||||
this.tableData.total = res.total;
|
||||
this.listLoading = false;
|
||||
})
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page
|
||||
this.getList()
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val
|
||||
this.getList()
|
||||
},
|
||||
selectType(e){
|
||||
this.getList();
|
||||
}
|
||||
}
|
||||
}
|
||||
.catch((res) => {
|
||||
this.$message.error(res.message);
|
||||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page;
|
||||
this.getList();
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val;
|
||||
this.getList();
|
||||
},
|
||||
selectType(e) {
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.selWidth{
|
||||
width: 300px;
|
||||
}
|
||||
.color_red{
|
||||
color:#F5222D;
|
||||
}
|
||||
.color_green{
|
||||
color:#7ABE5C;
|
||||
}
|
||||
.selWidth {
|
||||
width: 300px;
|
||||
}
|
||||
.color_red {
|
||||
color: #f5222d;
|
||||
}
|
||||
.color_green {
|
||||
color: #7abe5c;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user