189 行
9.2 KiB
JavaScript
可执行文件
189 行
9.2 KiB
JavaScript
可执行文件
/**
|
|
* 分润
|
|
*/
|
|
Vue.component('admin-profit-list', {
|
|
template: `<div>
|
|
<el-form :inline="true" size="small">
|
|
<el-form-item>
|
|
<el-date-picker @change="changeRange"
|
|
v-model="search_info.date_range"
|
|
type="daterange"
|
|
range-separator="至"
|
|
clearable
|
|
start-placeholder="开始日期"
|
|
end-placeholder="结束日期"
|
|
value-format="yyyy-MM-dd"
|
|
:picker-options="pickerOptions">
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-radio-group v-model="search_info.data_type" size="mini" @change="selectType">
|
|
<el-radio-button :label="1">今天</el-radio-button>
|
|
<el-radio-button :label="2">昨天</el-radio-button>
|
|
<el-radio-button :label="3">上个月</el-radio-button>
|
|
<el-radio-button :label="4">前三个月</el-radio-button>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<select-agent v-if="userType==1"
|
|
@change="searchData"
|
|
:agent-id.sync="search_info.agent_id"></select-agent>
|
|
<select-merchant v-if="userType==2"
|
|
@change="searchData"
|
|
:merchant-id.sync="search_info.merchant_id"></select-merchant>
|
|
</el-form-item>
|
|
</el-form>
|
|
|
|
<div class="table-top-card-box">
|
|
<div class="table-top-card">
|
|
<div class="table-top-card-header">订单总金额</div>
|
|
<div class="table-top-card-body primary">{{sumData.all_money}}</div>
|
|
</div>
|
|
<div class="table-top-card">
|
|
<div class="table-top-card-header">订单总退款金额</div>
|
|
<div class="table-top-card-body primary">{{sumData.all_refund_money}}</div>
|
|
</div>
|
|
<div class="table-top-card">
|
|
<div class="table-top-card-header">交易笔数</div>
|
|
<div class="table-top-card-body success">{{sumData.transactions_count}}</div>
|
|
</div>
|
|
<div class="table-top-card">
|
|
<div class="table-top-card-header">代理商净分润(减退款)</div>
|
|
<div class="table-top-card-body danger">{{sumData.agent_net_profit}}</div>
|
|
</div>
|
|
<div class="table-top-card" v-if="userType==1">
|
|
<div class="table-top-card-header">合伙人净分润(减退款)</div>
|
|
<div class="table-top-card-body danger">{{sumData.partner_net_profit}}</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<el-table border :data="orderList" style="width: 100%;" size="small"
|
|
:header-cell-style="{background:'#F5F7FA',color:'#606266'}">
|
|
<el-table-column align="center" type="index" label="序号" width="50" fixed="left"></el-table-column>
|
|
<el-table-column align="center" prop="store_name" label="门店名称" min-width="100" fixed="left" show-overflow-tooltip></el-table-column>
|
|
<el-table-column align="center" prop="out_trade_no" label="订单号" min-width="150" show-overflow-tooltip></el-table-column>
|
|
<el-table-column align="center" prop="add_time" label="交易时间" min-width="140" show-overflow-tooltip></el-table-column>
|
|
<el-table-column align="center" prop="trade_amount" label="交易金额" min-width="70"></el-table-column>
|
|
<el-table-column align="center" prop="pay_type" label="交易方式" min-width="70"></el-table-column>
|
|
<el-table-column align="center" prop="merchant_rate" label="商家费率" min-width="70"></el-table-column>
|
|
<el-table-column align="center" prop="agent_rate" label="代理商费率" min-width="86"></el-table-column>
|
|
<el-table-column align="center" prop="agent_profit" label="代理商分润" min-width="86"></el-table-column>
|
|
<el-table-column align="center" prop="merchant_name" label="所属商户" min-width="80"></el-table-column>
|
|
<el-table-column align="center" prop="agent_name" label="所属代理" min-width="80" v-if="userType==1"></el-table-column>
|
|
<el-table-column align="center" prop="partner_rate" label="合伙人费率" width="86" v-if="userType==1"></el-table-column>
|
|
<el-table-column align="center" prop="partner_profit" label="合伙人分润" width="86" v-if="userType==1"></el-table-column>
|
|
<el-table-column align="center" prop="agent_refund_profit" label="代理商分润退款" min-width="110"></el-table-column>
|
|
<el-table-column align="center" prop="partner_refund_profit" label="合伙人分润退款" min-width="110" v-if="userType==1"></el-table-column>
|
|
</el-table>
|
|
<el-pagination
|
|
@size-change="handleSizeChange"
|
|
@current-change="handleCurrentChange"
|
|
:current-page="currentPage"
|
|
:page-sizes="[10, 15, 20, 25, 30, 35, 40, 45, 50]"
|
|
:page-size="100"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
:total="len">
|
|
</el-pagination>
|
|
</div>
|
|
</div>`,
|
|
props: {
|
|
'userType': {
|
|
type: Number,
|
|
default: 1,
|
|
},//分润类型 1合伙人 2代理商
|
|
'profitType': {
|
|
type: Number,
|
|
default: 1,
|
|
},//分润类型 1直连 2新大陆 3云闪付
|
|
},
|
|
data() {
|
|
return {
|
|
sumData: {
|
|
all_money: 0,
|
|
transactions_count: 0,
|
|
all_refund_money: 0,
|
|
agent_net_profit: 0,
|
|
},
|
|
search_info: {
|
|
profit_type: 2,
|
|
date_range: '',
|
|
data_type: '',
|
|
agent_id: '',
|
|
merchant_id: '',
|
|
},
|
|
|
|
orderList: [],
|
|
len: 0,
|
|
currentPage: 1,
|
|
currentLimit: 10,
|
|
pickerOptions: {
|
|
disabledDate(time) {
|
|
return time.getTime() > Date.now();
|
|
}
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
searchData() {
|
|
this.getTotal();
|
|
this.handleCurrentChange(1);
|
|
},
|
|
changeRange() {
|
|
this.search_info.data_type = '';
|
|
this.searchData();
|
|
},
|
|
selectType() {
|
|
this.search_info.date_range = '';
|
|
this.searchData();
|
|
},
|
|
handleSizeChange(val) {
|
|
this.currentLimit = val;//切换每页数量
|
|
this.currentPage = 1;
|
|
this.getData();
|
|
},
|
|
handleCurrentChange(val) {
|
|
this.currentPage = val;
|
|
this.getData();//切换页数
|
|
},
|
|
getTotal() {
|
|
this.sendRequest((this.userType == 1 ? 'Admin' : 'Agent') + '/Continentflow/profitTotal', {
|
|
data: {
|
|
search_info: JSON.stringify(this.search_info),
|
|
},
|
|
success: (res) => {
|
|
if (res.status == 1) {
|
|
this.sumData = res.data;
|
|
} else {
|
|
this.$message.error(res.message);
|
|
}
|
|
}
|
|
})
|
|
},
|
|
getData() {
|
|
this.sendRequest((this.userType == 1 ? 'Admin' : 'Agent') + '/Continentflow/profitList', {
|
|
data: {
|
|
page: this.currentPage,
|
|
limit: this.currentLimit,
|
|
search_info: JSON.stringify(this.search_info),
|
|
},
|
|
success: (res) => {
|
|
if (res.status == 1) {
|
|
this.orderList = [];
|
|
this.orderList = res.data.list;
|
|
this.len = res.data.count;
|
|
} else {
|
|
this.$message.error(res.message);
|
|
}
|
|
}
|
|
})
|
|
},
|
|
},
|
|
created() {
|
|
this.search_info.profit_type = this.profitType;
|
|
this.searchData();
|
|
},
|
|
});
|
|
|
|
|