|
|
@@ -1,13 +1,19 @@
|
|
|
<template>
|
|
|
<div v-if="jobData && packageData && hireData">
|
|
|
+<!-- <div-->
|
|
|
+<!-- class="header"-->
|
|
|
+<!-- >云端托管:{{jobData.sumJob.totalAmount/100}}元,整包托管:{{packageData.sumPackage.totalAmount/100}}元,雇佣托管:{{hireData.sumHire.totalAmount/100 || 0}}元</div>-->
|
|
|
<div
|
|
|
class="header"
|
|
|
- >云端托管:{{jobData.sumJob.totalAmount/100}}元,整包托管:{{packageData.sumPackage.totalAmount/100}}元,雇佣托管:{{hireData.sumHire.totalAmount/100 || 0}}元</div>
|
|
|
- <el-tabs v-model="activeName" type="border-card">
|
|
|
+ >全站待支出总金额{{ ((jobData.sumJob.totalAmount/100) + (packageData.sumPackage.totalAmount/100)+(hireData.sumHire.totalAmount/100 || 0)+(frozenCoins * 1) +(balanceTotal/100)+(incomeTotal/100)).toFixed(2)}}元</div>
|
|
|
+ <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
|
|
|
<el-tab-pane label="云端" name="job">
|
|
|
<div
|
|
|
class="tab-header"
|
|
|
>云端项目待支出总额{{jobData.sumJob.totalAmount/100}}元,共{{jobData.sumJob.totalNum}}笔</div>
|
|
|
+ <div style="text-align: right;margin-bottom: 10px">
|
|
|
+ <el-button @click="exportZhichuList(9)" class="export-excel" type="primary">导出报表</el-button>
|
|
|
+ </div>
|
|
|
<div class="tab-content">
|
|
|
<el-table :data="jobData.orders" border :stripe="true">
|
|
|
<el-table-column prop="product_title" label="订单名称" width="150" />
|
|
|
@@ -74,6 +80,9 @@
|
|
|
<div
|
|
|
class="tab-header"
|
|
|
>整包项目待支出总额{{packageData.sumPackage.totalAmount/100}}元,共{{packageData.sumPackage.totalNum}}笔</div>
|
|
|
+ <div style="text-align: right;margin-bottom: 10px">
|
|
|
+ <el-button @click="exportZhichuList(2)" class="export-excel" type="primary">导出报表</el-button>
|
|
|
+ </div>
|
|
|
<div class="tab-content">
|
|
|
<el-table :data="packageData.orders" border :stripe="true">
|
|
|
<el-table-column prop="product_title" label="订单名称" width="150" />
|
|
|
@@ -140,6 +149,9 @@
|
|
|
<div
|
|
|
class="tab-header"
|
|
|
>整包项目待支出总额{{hireData.sumHire.totalAmount/100}}元,共{{hireData.sumHire.totalNum}}笔</div>
|
|
|
+ <div style="text-align: right;margin-bottom: 10px">
|
|
|
+ <el-button @click="exportZhichuList(4)" class="export-excel" type="primary">导出报表</el-button>
|
|
|
+ </div>
|
|
|
<div class="tab-content">
|
|
|
<el-table :data="hireData.orders" border :stripe="true">
|
|
|
<el-table-column prop="product_title" label="订单名称" width="150" />
|
|
|
@@ -202,6 +214,155 @@
|
|
|
@current-change="handleHireCurrentChange"
|
|
|
/>
|
|
|
</el-tab-pane>
|
|
|
+ <el-tab-pane label="待解冻" name="frozen">
|
|
|
+ <div
|
|
|
+ class="tab-header"
|
|
|
+ >用户冻结账户待解冻余额总额{{frozenCoins}}元,共{{waitUnfrozenCount}}笔</div>
|
|
|
+ <div style="text-align: right;margin-bottom: 10px">
|
|
|
+ <el-button @click="exportFrozenList" class="export-excel" type="primary">导出报表</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="tab-content">
|
|
|
+ <el-table :data="frozenData" border style="width: 100%">
|
|
|
+ <el-table-column label="项目名称">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <!-- @click="clickDev(scope.row.uid)" -->
|
|
|
+ <span class="lblue point">
|
|
|
+ <a :href="scope.row.url" target="_blank">{{scope.row.name}}</a>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" label="用户">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span class="lblue point">
|
|
|
+ <a
|
|
|
+ :href="scope.row.user_url"
|
|
|
+ target="_blank"
|
|
|
+ >{{scope.row.nickname}}({{scope.row.uid}})</a>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" label="关联订单ID">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.order_no}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" label="类型">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.target_type_name}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" label="冻结金额">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.coins}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" label="冻结方式">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.end_time_type_name}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" label="创建日期">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.create_time}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" label="解冻日期">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.end_time}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" label="当前状态">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.status_name}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <el-pagination
|
|
|
+ class="order-footer"
|
|
|
+ background
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :page-size="10"
|
|
|
+ :total="frozenCount"
|
|
|
+ @current-change="handlefrozenCurrentChange"
|
|
|
+ />
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="客栈余额待提现" name="balance">
|
|
|
+ <div
|
|
|
+ class="tab-header"
|
|
|
+ >用户客栈账户余额待提现总额{{balanceTotal/100}}元,共{{balanceCount}}笔</div>
|
|
|
+ <div style="text-align: right;margin-bottom: 10px">
|
|
|
+ <el-button @click="exportBalanceList" class="export-excel" type="primary">导出报表</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="tab-content">
|
|
|
+ <el-table :data="balanceData" border style="width: 100%">
|
|
|
+
|
|
|
+ <el-table-column prop="name" label="用户">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span class="lblue point">
|
|
|
+ <a
|
|
|
+ :href="scope.row.user_url"
|
|
|
+ target="_blank"
|
|
|
+ >{{scope.row.nickname}}({{scope.row.uid}})</a>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column prop="name" label="可用余额">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.total_balance/100}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <el-pagination
|
|
|
+ class="order-footer"
|
|
|
+ background
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :page-size="10"
|
|
|
+ :total="balanceCount"
|
|
|
+ @current-change="handlefrozenCurrentChange"
|
|
|
+ />
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="薪资余额待提现" name="income">
|
|
|
+ <div
|
|
|
+ class="tab-header"
|
|
|
+ >用户客栈账户余额待提现总额{{incomeTotal/100}}元,共{{incomeCount}}笔</div>
|
|
|
+ <div style="text-align: right;margin-bottom: 10px">
|
|
|
+ <el-button @click="exportIncomeList" class="export-excel" type="primary">导出报表</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="tab-content">
|
|
|
+ <el-table :data="incomeData" border style="width: 100%">
|
|
|
+
|
|
|
+ <el-table-column prop="name" label="用户">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span class="lblue point">
|
|
|
+ <a
|
|
|
+ :href="scope.row.user_url"
|
|
|
+ target="_blank"
|
|
|
+ >{{scope.row.nickname}}({{scope.row.uid}})</a>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column prop="name" label="可用余额">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.row.income_tax_balance/100}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <el-pagination
|
|
|
+ class="order-footer"
|
|
|
+ background
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :page-size="10"
|
|
|
+ :total="incomeCount"
|
|
|
+ @current-change="handlefrozenCurrentChange"
|
|
|
+ />
|
|
|
+ </el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -216,7 +377,23 @@ export default {
|
|
|
packagePage: 1,
|
|
|
packageData: "",
|
|
|
hirePage: 1,
|
|
|
- hireData: ""
|
|
|
+ hireData: "",
|
|
|
+ //待解冻
|
|
|
+ frozenPage:1,
|
|
|
+ frozenCount:0,
|
|
|
+ frozenCoins:0,
|
|
|
+ waitUnfrozenCount:0,
|
|
|
+ frozenData:[],
|
|
|
+ //余额
|
|
|
+ balancePage:1,
|
|
|
+ balanceCount:0,
|
|
|
+ balanceTotal:0,
|
|
|
+ balanceData:[],
|
|
|
+ //薪资
|
|
|
+ incomePage:1,
|
|
|
+ incomeCount:0,
|
|
|
+ incomeTotal:0,
|
|
|
+ incomeData:[],
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
@@ -224,6 +401,9 @@ export default {
|
|
|
this.getJobOrders();
|
|
|
this.getPackageOrders();
|
|
|
this.getHireOrders();
|
|
|
+ this.getFrozenOrders();
|
|
|
+ this.getBalanceOrders();
|
|
|
+ this.getIncomeOrders();
|
|
|
},
|
|
|
methods: {
|
|
|
async getJobOrders() {
|
|
|
@@ -238,6 +418,10 @@ export default {
|
|
|
// console.log(this.jobData)
|
|
|
}
|
|
|
},
|
|
|
+ async exportZhichuList(type){
|
|
|
+ let url = window.location.host + "/api/admin/order/exportZhichu?productType="+type;
|
|
|
+ window.location.href = "http://" + url;
|
|
|
+ },
|
|
|
async getPackageOrders() {
|
|
|
const data = {
|
|
|
page: this.packagePage,
|
|
|
@@ -262,6 +446,69 @@ export default {
|
|
|
// console.log(this.hireData)
|
|
|
}
|
|
|
},
|
|
|
+ //待解冻订单
|
|
|
+ async getFrozenOrders() {
|
|
|
+ const data = {
|
|
|
+ page: this.frozenPage,
|
|
|
+ size: 10,
|
|
|
+ status: 1
|
|
|
+ };
|
|
|
+ let res = await this.$post("/api/admin/order/get_frozen_coins", data);
|
|
|
+ if (res) {
|
|
|
+ this.frozenData = res.data.list;
|
|
|
+ this.frozenCount = res.data.totalCount * 1;
|
|
|
+ this.frozenCoins = res.data.waitUnfrozenCoins;
|
|
|
+ this.waitUnfrozenCount = res.data.waitUnfrozenCount;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async exportFrozenList(){
|
|
|
+ let url = window.location.host + "/api/admin/order/exportFrozen?status=1";
|
|
|
+ window.location.href = "http://" + url;
|
|
|
+ },
|
|
|
+ //账户余额
|
|
|
+ async getBalanceOrders() {
|
|
|
+ const data = {
|
|
|
+ page: this.balancePage,
|
|
|
+ size: 10,
|
|
|
+ };
|
|
|
+ let res = await this.$post("/api/admin/UserFinancial/getBalanceList", data);
|
|
|
+ if (res.status === 1) {
|
|
|
+ this.balanceData = res.data.list || [];
|
|
|
+ this.balanceCount = res.data.total * 1;
|
|
|
+ this.balanceTotal = res.data.totalBalance * 1;
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async exportBalanceList(){
|
|
|
+ let url = window.location.host + "/api/admin/UserFinancial/exportBalance";
|
|
|
+ window.location.href = "http://" + url;
|
|
|
+ },
|
|
|
+ //薪资余额
|
|
|
+ async getIncomeOrders() {
|
|
|
+ const data = {
|
|
|
+ page: this.balancePage,
|
|
|
+ size: 10,
|
|
|
+ };
|
|
|
+ let res = await this.$post("/api/admin/UserFinancial/getIncomeList", data);
|
|
|
+ if (res.status === 1) {
|
|
|
+ this.incomeData = res.data.list || [];
|
|
|
+ this.incomeCount = res.data.total * 1;
|
|
|
+ this.incomeTotal = res.data.totalIncome * 1;
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async exportIncomeList(){
|
|
|
+ let url = window.location.host + "/api/admin/UserFinancial/exportIncome";
|
|
|
+ window.location.href = "http://" + url;
|
|
|
+ },
|
|
|
+ handleClick(tab, event) {
|
|
|
+ return;
|
|
|
+ switch (tab.name){
|
|
|
+ case 'frozen':
|
|
|
+ this.getFrozenOrders();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
handleJobCurrentChange(val) {
|
|
|
this.jobPage = val;
|
|
|
this.getJobOrders();
|
|
|
@@ -274,6 +521,10 @@ export default {
|
|
|
this.hirePage = val;
|
|
|
this.getHireOrders();
|
|
|
},
|
|
|
+ handlefrozenCurrentChange(val) {
|
|
|
+ this.frozenPage = val;
|
|
|
+ this.getFrozenOrders();
|
|
|
+ },
|
|
|
formatDate(time) {
|
|
|
var now = new Date(time * 1000);
|
|
|
var year = now.getFullYear();
|