|
@@ -15,7 +15,7 @@
|
|
|
<div style="margin-top: 15px">
|
|
|
<el-form :inline="true" :model="listQuery" size="mini" label-width="140px">
|
|
|
<el-form-item label="分销员姓名:">
|
|
|
- <el-input v-model="listQuery.ecName" class="input-width" placeholder="请输入用户名称"
|
|
|
+ <el-input v-model="listQuery.userName" class="input-width" placeholder="请输入用户名称"
|
|
|
clearable></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="分销员手机号:">
|
|
@@ -23,29 +23,32 @@
|
|
|
clearable></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="结算状态:">
|
|
|
- <el-select v-model="value" clearable placeholder="请选择">
|
|
|
+ <el-select v-model="listQuery.status" clearable placeholder="请选择">
|
|
|
<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 label="充电订单编号:">
|
|
|
- <el-input v-model="listQuery.phone" class="input-width" placeholder="请输入订单编号"
|
|
|
+ <el-input v-model="listQuery.chargeOrderNo" class="input-width" placeholder="请输入订单编号"
|
|
|
clearable></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="完成时间:">
|
|
|
- <el-date-picker v-model="date" size="mini" value-format="yyyy-MM-dd" class="item-width-350 ml10"
|
|
|
- type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
|
|
|
+ <el-date-picker v-model="completeDate" size="mini" value-format="yyyy-MM-dd"
|
|
|
+ class="item-width-350 ml10" type="datetimerange" range-separator="至"
|
|
|
+ start-placeholder="开始日期" end-placeholder="结束日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="提现时间:">
|
|
|
- <el-date-picker v-model="date" size="mini" value-format="yyyy-MM-dd" class="item-width-350 ml10"
|
|
|
- type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
|
|
|
+ <el-date-picker v-model="withdrawDate" size="mini" value-format="yyyy-MM-dd"
|
|
|
+ class="item-width-350 ml10" type="datetimerange" range-separator="至"
|
|
|
+ start-placeholder="开始日期" end-placeholder="结束日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="结算时间:">
|
|
|
- <el-date-picker v-model="date" size="mini" value-format="yyyy-MM-dd" class="item-width-350 ml10"
|
|
|
- type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
|
|
|
+ <el-date-picker v-model="colseDate" size="mini" value-format="yyyy-MM-dd"
|
|
|
+ class="item-width-350 ml10" type="datetimerange" range-separator="至"
|
|
|
+ start-placeholder="开始日期" end-placeholder="结束日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -60,35 +63,52 @@
|
|
|
<div>
|
|
|
<el-button class="ml10" type="info" size="small" :loading="downloadLoading" icon="el-icon-printer"
|
|
|
@click="exportAllExcel">导出</el-button>
|
|
|
- <el-button class="ml10" type="warning" size="small" :loading="downloadLoading"
|
|
|
- icon="el-icon-success" @click="">财务已结算</el-button>
|
|
|
+ <el-button class="ml10" type="warning" size="small" :loading="updateLoading" icon="el-icon-success"
|
|
|
+ @click="financeStatus">财务已结算</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-card>
|
|
|
<div class="table-container">
|
|
|
<el-table ref="adminTable" :data="list" style="width: 100%" v-loading="listLoading" border>
|
|
|
<el-table-column type="selection" width="55"> </el-table-column>
|
|
|
- <el-table-column label="充电订单编号" width="100" align="center" prop="authCode"></el-table-column>
|
|
|
- <el-table-column label="订单金额/元" align="center" prop="ecName"></el-table-column>
|
|
|
- <el-table-column label="服务费金额/元" align="center">
|
|
|
+ <el-table-column label="充电订单编号" width="100" align="center" prop="chargeOrderNo"></el-table-column>
|
|
|
+ <el-table-column label="订单金额/元" align="center" prop="realCost"></el-table-column>
|
|
|
+ <el-table-column label="服务费金额/元" align="center" prop="realServiceCost"></el-table-column>
|
|
|
+ <el-table-column label="订单完成时间" align="center" prop="endTime"></el-table-column>
|
|
|
+ <el-table-column label="一级分销员" align="center" prop="firstLevelUserName"></el-table-column>
|
|
|
+ <el-table-column label="一级分销员手机号" align="center" prop="firstLevelPhone"></el-table-column>
|
|
|
+ <el-table-column label="一级分销员佣金" align="center" prop="firstLevelCommission"></el-table-column>
|
|
|
+ <el-table-column label="二级分销员" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.money || "--" }}
|
|
|
+ {{ scope.row.secondLevelUserName || '--' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="订单完成时间" align="center" prop="updateBy">
|
|
|
+ <el-table-column label="二级分销员手机号" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ "--" }}
|
|
|
+ {{ scope.row.secondLevelPhone || '--' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="二级分销员佣金" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.secondLevelCommission || '--' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="结算状态" align="center" prop="updateBy">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tag :type="scope.row.status == 2 ? 'success' : 'danger'">{{ scope.row.status == 2 ? '已结算' :
|
|
|
+ '待结算' }}</el-tag>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="提现时间" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.withdrawTime || '--' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="结算时间" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.settleTime || '--' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="一级分销员" align="center" prop="updateBy"></el-table-column>
|
|
|
- <el-table-column label="一级分销员手机号" align="center" prop="updateBy"></el-table-column>
|
|
|
- <el-table-column label="一级分销员佣金" align="center" prop="updateBy"></el-table-column>
|
|
|
- <el-table-column label="二级分销员" align="center" prop="updateBy"></el-table-column>
|
|
|
- <el-table-column label="二级分销员手机号" align="center" prop="updateBy"></el-table-column>
|
|
|
- <el-table-column label="二级分销员佣金" align="center" prop="updateBy"></el-table-column>
|
|
|
- <el-table-column label="结算状态" align="center" prop="updateBy"></el-table-column>
|
|
|
- <el-table-column label="提现时间" align="center" prop="updateBy"></el-table-column>
|
|
|
- <el-table-column label="结算时间" align="center" prop="updateBy"></el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
<div class="pagination-container">
|
|
@@ -97,43 +117,40 @@
|
|
|
:page-size="listQuery.pageSize" :page-sizes="[10, 15, 20]" :total="total">
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
- <el-dialog title="提现申请" :visible.sync="forbiddenDialogVisible" width="40%">
|
|
|
- <el-descriptions border>
|
|
|
- <el-descriptions-item label="分销员姓名">kooriookami</el-descriptions-item>
|
|
|
- <el-descriptions-item label="分销员手机号">18100000000</el-descriptions-item>
|
|
|
- <el-descriptions-item label="本次提现订单数/笔">苏州市</el-descriptions-item>
|
|
|
- <el-descriptions-item label="本次提现金额/元">
|
|
|
- <el-tag size="small">学校</el-tag>
|
|
|
- </el-descriptions-item>
|
|
|
- </el-descriptions>
|
|
|
- <div style="margin-top: 10px; font-size: 14px">
|
|
|
- 说明:提现的订单为今天(2024-11-14)之前
|
|
|
- </div>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="forbiddenDialogVisible = false" size="small">取 消</el-button>
|
|
|
- <el-button type="primary" @click="handleDialogConfirm()" size="small">确 定</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import { upCheckList } from "@/api/channel";
|
|
|
+import { recordsList, updateStatus } from "@/api/distribution";
|
|
|
import { formatDate } from "@/utils/date";
|
|
|
-
|
|
|
+import FileSaver from 'file-saver';
|
|
|
+import XLSX from 'xlsx';
|
|
|
const defaultListQuery = {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
- ecName: null,
|
|
|
+ userName: null,
|
|
|
phone: null,
|
|
|
- startTime: "",
|
|
|
- endTime: "",
|
|
|
- value: "",
|
|
|
+ // 完成区间
|
|
|
+ orderStartTime: "",
|
|
|
+ orderEndTime: "",
|
|
|
+ // 结算区间
|
|
|
+ settleStartTime: "",
|
|
|
+ settleEndTime: "",
|
|
|
+ // 提现区间
|
|
|
+ withdrawStartTime: "",
|
|
|
+ withdrawEndTime: "",
|
|
|
+ status: "",
|
|
|
+ chargeOrderNo: "",
|
|
|
+ adminUserId: "",
|
|
|
};
|
|
|
export default {
|
|
|
name: "upCheck",
|
|
|
data() {
|
|
|
return {
|
|
|
- date: "",
|
|
|
+ completeDate: "",
|
|
|
+ withdrawDate: "",
|
|
|
+ colseDate: "",
|
|
|
+ downloadLoading: false,
|
|
|
+ updateLoading: false,
|
|
|
listQuery: Object.assign({}, defaultListQuery),
|
|
|
list: null,
|
|
|
total: null,
|
|
@@ -141,33 +158,54 @@ export default {
|
|
|
forbiddenDialogVisible: false,
|
|
|
options: [
|
|
|
{
|
|
|
- value: 1,
|
|
|
+ value: 0,
|
|
|
label: "未提现",
|
|
|
},
|
|
|
{
|
|
|
- value: 2,
|
|
|
+ value: 1,
|
|
|
label: "待结算",
|
|
|
},
|
|
|
{
|
|
|
- value: 3,
|
|
|
+ value: 2,
|
|
|
label: "已结算",
|
|
|
},
|
|
|
],
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
|
- date(val) {
|
|
|
+ completeDate(val) {
|
|
|
+ if (val) {
|
|
|
+ this.listQuery.orderStartTime = Date.parse(val[0]);
|
|
|
+ this.listQuery.orderEndTime = Date.parse(val[1]);
|
|
|
+ } else {
|
|
|
+ this.listQuery.orderStartTime = "";
|
|
|
+ this.listQuery.orderEndTime = "";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ withdrawDate(val) {
|
|
|
+ if (val) {
|
|
|
+ this.listQuery.settleStartTime = Date.parse(val[0]);
|
|
|
+ this.listQuery.settleEndTime = Date.parse(val[1]);
|
|
|
+ } else {
|
|
|
+ this.listQuery.settleStartTime = "";
|
|
|
+ this.listQuery.settleEndTime = "";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ colseDate(val) {
|
|
|
if (val) {
|
|
|
- this.listQuery.startTime = Date.parse(val[0]);
|
|
|
- this.listQuery.endTime = Date.parse(val[1]);
|
|
|
+ this.listQuery.withdrawStartTime = Date.parse(val[0]);
|
|
|
+ this.listQuery.withdrawEndTime = Date.parse(val[1]);
|
|
|
} else {
|
|
|
- this.listQuery.startTime = "";
|
|
|
- this.listQuery.endTime = "";
|
|
|
+ this.listQuery.withdrawStartTime = "";
|
|
|
+ this.listQuery.withdrawEndTime = "";
|
|
|
}
|
|
|
},
|
|
|
},
|
|
|
created() {
|
|
|
this.getList();
|
|
|
+ if(this.$route){
|
|
|
+ this.listQuery.adminUserId = this.$route.query.adminUserId
|
|
|
+ }
|
|
|
},
|
|
|
filters: {
|
|
|
formatDateTime(time) {
|
|
@@ -179,6 +217,68 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 更新结算状态
|
|
|
+ financeStatus() {
|
|
|
+ this.updateLoading = true
|
|
|
+ updateStatus().then((res) => {
|
|
|
+ this.updateLoading = false
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$message({
|
|
|
+ message: "更新成功",
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ this.getList();
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: "error",
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 导出
|
|
|
+ exportAllExcel() {
|
|
|
+ this.downloadLoading = true
|
|
|
+ const allData = [];
|
|
|
+ let query = JSON.parse(JSON.stringify(this.listQuery))
|
|
|
+ query.pageSize = this.total
|
|
|
+ query.page = 0
|
|
|
+ recordsList(query).then(res => {
|
|
|
+ this.downloadLoading = false
|
|
|
+ if (res.code == 200) {
|
|
|
+ allData.push(...res.data.list);
|
|
|
+ this.exportExcel(allData);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 导出数据处理
|
|
|
+ exportExcel(r) {
|
|
|
+ const data = r.map((item) => {
|
|
|
+ return {
|
|
|
+ "充电订单编号": item.chargeOrderNo,
|
|
|
+ "订单金额/元": item.realCost,
|
|
|
+ "服务费金额/元": item.realServiceCost,
|
|
|
+ "订单完成时间": item.endTime,
|
|
|
+ "一级分销员": item.firstLevelUserName,
|
|
|
+ "一级分销员手机号": item.firstLevelPhone,
|
|
|
+ "一级分销员佣金": item.firstLevelCommission,
|
|
|
+ "二级分销员": item.secondLevelUserName || '--',
|
|
|
+ "二级分销员手机号": item.secondLevelPhone || '--',
|
|
|
+ "二级分销员佣金": item.secondLevelCommission || '--',
|
|
|
+ "结算状态": item.status == 1 ? '已结算' : '未结算',
|
|
|
+ "提现时间": item.withdrawTime || '--',
|
|
|
+ "结算时间": item.settleTime || '--',
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ const worksheet = XLSX.utils.json_to_sheet(data);
|
|
|
+ const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };
|
|
|
+ const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
|
|
|
+ const blob = new Blob([excelBuffer], { type: 'application/octet-stream' });
|
|
|
+ FileSaver.saveAs(blob, '分销记录表.xlsx');
|
|
|
+ },
|
|
|
+
|
|
|
handleResetSearch() {
|
|
|
this.listQuery = Object.assign({}, defaultListQuery);
|
|
|
},
|
|
@@ -197,7 +297,7 @@ export default {
|
|
|
},
|
|
|
getList() {
|
|
|
this.listLoading = true;
|
|
|
- upCheckList(this.listQuery).then((response) => {
|
|
|
+ recordsList(this.listQuery).then((response) => {
|
|
|
this.listLoading = false;
|
|
|
this.list = response.data.list;
|
|
|
this.total = response.data.total;
|