<!DOCTYPE HTML>
|
<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
|
<head>
|
<meta charset="utf-8">
|
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
<meta name="renderer" content="webkit|ie-comp|ie-stand">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
|
<meta http-equiv="Cache-Control" content="no-siteapp"/>
|
<!-- 本框架基本脚本和样式 -->
|
<script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
|
<link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
|
<link rel="stylesheet" th:href="@{/plugin/bootstrap-3.3.5/css/bootstrap.min.css}">
|
<link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
|
|
<!-- 富文本编辑器 -->
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/ueditor.config.js}"></script>
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/ueditor.all.js}">
|
</script>
|
<script type="text/javascript" charset="utf-8"
|
th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script>
|
<style>
|
.panel-body{
|
overflow: hidden;
|
}
|
.paginationStyle{
|
background: #ffffff;
|
padding: 10px 10px;
|
margin: 0px 0px 10px 0px;
|
text-align: right;
|
}
|
|
.box-card {
|
width: 240px;
|
border-radius: 5px;
|
color: #ffffff;
|
padding: 2px 0px;
|
margin-right: 20px;
|
cursor: pointer;
|
float: left;
|
text-align: center;
|
}
|
.el-card__body {
|
padding: 0px;
|
}
|
</style>
|
</head>
|
|
<body>
|
<div class="panel-body" id="app" v-cloak>
|
<el-row>
|
<el-card class="box-card" style="background-color: #0a628f;">
|
<div style="padding:10px;font-size: 20px;">¥{{basicdetail.orderBalance}}</div>
|
<div>订单总金额</div>
|
</el-card >
|
<el-card class="box-card" style="background-color: #0f9aef;">
|
<div style="padding:10px;font-size: 20px;">¥{{basicdetail.balance}}</div>
|
<div>待结算金额</div>
|
</el-card >
|
<el-card class="box-card" style="background: #67C23A;">
|
<div style="padding:10px;font-size: 20px;">{{basicdetail.waitNum}}人</div>
|
<div>待结算人数</div>
|
</el-card >
|
<el-card class="box-card" style="background: rgb(121, 187, 255);">
|
<div style="padding:10px;font-size: 20px;">{{basicdetail.waitOrderNum}}笔</div>
|
<div>待结算订单</div>
|
</el-card >
|
</el-row>
|
<el-row>
|
<el-tabs v-model="activeName" >
|
<el-tab-pane label="分销订单" name="first">
|
<el-row justify="space-between" type="flex">
|
<el-col :span="6">
|
<el-button type="primary" @click="setOrderDone()">批量结算</el-button>
|
</el-col>
|
<el-dialog title="本次结算分销订单" :visible.sync="dialogFormVisible">
|
<el-form :model="formSelect">
|
<el-form-item label="结算金额:" :label-width="formLabelWidth">
|
<div style="font-size: 30px;color: #ff0000">¥{{formSelect.jsje}}</div>
|
</el-form-item>
|
<el-form-item label="结算订单:" :label-width="formLabelWidth">
|
<div style="font-size: 20px;">{{formSelect.jsdds}}单</div>
|
</el-form-item>
|
<el-form-item label="结算人数:" :label-width="formLabelWidth">
|
<div style="font-size: 20px;">{{formSelect.jsrs}}人</div>
|
</el-form-item>
|
<el-form-item label="结算方式:" :label-width="formLabelWidth">
|
<el-radio-group v-model="formSelect.jsfs">
|
<el-radio-button label="1">线下结算</el-radio-button>
|
<el-radio-button label="2">微信余额支付</el-radio-button>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="备注:" :label-width="formLabelWidth">
|
<el-input type="textarea" :rows="3" v-model="formSelect.bz" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
<el-button type="primary" @click="updateSetOrderDone()">确 定</el-button>
|
</div>
|
</el-dialog>
|
|
<el-col>
|
<el-form ref="form" :model="form" inline >
|
<el-form-item label="订单状态" prop="ddType">
|
<el-select v-model="form.ddType" placeholder="订单状态">
|
<el-option
|
v-for="item in ddTypeList"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="结算状态" prop="orderType">
|
<el-select v-model="form.orderType" placeholder="结算状态">
|
<el-option
|
v-for="item in orderTypeList"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item prop="userName" >
|
<el-input v-model="form.userName" placeholder="请输入客户名称"></el-input>
|
</el-form-item>
|
<el-form-item prop="tgy" >
|
<el-input v-model="form.tgy" placeholder="请输入推广员名称"></el-input>
|
</el-form-item>
|
<el-form-item prop="ddsj" >
|
<el-date-picker
|
v-model="form.ddsj"
|
type="datetimerange"
|
:picker-options="pickerOptions"
|
range-separator="至"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
align="right">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item prop="jsbh" >
|
<el-input v-model="form.jsbh" placeholder="请输入结算编号"></el-input>
|
</el-form-item>
|
<el-form-item prop="ddh" >
|
<el-input v-model="form.ddh" placeholder="请输入订单号"></el-input>
|
</el-form-item>
|
<el-button type="primary" @click="search" >搜索</el-button>
|
<el-button @click="resetForm('form')">重置</el-button>
|
<el-button @click="excelExport">导出</el-button>
|
</el-form>
|
</el-col>
|
</el-row>
|
|
<el-row class="table-style" >
|
<el-table ref="multipleTable"
|
:data="fxyList.rows"
|
:height="height"
|
stripe:true
|
@sort-change="sortChange"
|
@selection-change="handleSelectionChange">
|
<el-table-column
|
type="selection">
|
</el-table-column>
|
<el-table-column
|
prop="orderNo"
|
label="订单编号"
|
show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column
|
prop="actualBalance"
|
label="实付金额(元)">
|
</el-table-column>
|
<el-table-column
|
label="订单状态">
|
<template slot-scope="scope">
|
<span v-if="scope.row.orderState == 1">待付款</span>
|
<span v-if="scope.row.orderState == 2">待配送</span>
|
<span v-if="scope.row.orderState == 3">待收货</span>
|
<span v-if="scope.row.orderState == 4">待评价</span>
|
<span v-if="scope.row.orderState == 5">已评价</span>
|
<span v-if="scope.row.orderState == 6">申请退款</span>
|
<span v-if="scope.row.orderState == 7">退款成功</span>
|
<span v-if="scope.row.orderState == 8">退款拒绝</span>
|
<span v-if="scope.row.orderState == 9">已取消</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="address"
|
label="下单门店"
|
show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column
|
prop="custom"
|
label="客户"
|
show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column
|
prop="parentSale"
|
label="推广员"
|
show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column
|
label="收益类型">
|
<template slot-scope="scope">
|
<span v-if="scope.row.profitType == 1">推广收益</span>
|
<span v-if="scope.row.profitType == 2">邀请收益</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="profitBalance"
|
label="收益金额">
|
</el-table-column>
|
<el-table-column
|
label="结算状态">
|
<template slot-scope="scope">
|
<span v-if="scope.row.settleType == 1">待结算</span>
|
<span v-if="scope.row.settleType == 2">已结算</span>
|
<span v-if="scope.row.settleType == 3">已退款</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="settleNo"
|
label="结算编号"
|
show-overflow-tooltip
|
width="150">
|
</el-table-column>
|
<el-table-column
|
prop="settleTime"
|
label="结算时间"
|
show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column
|
prop="settler"
|
label="结算人"
|
show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column label="操作">
|
</el-table-column>
|
</el-table>
|
</el-row>
|
<el-row class="paginationStyle" >
|
<el-pagination background
|
@size-change="changePageSize"
|
@current-change="changeCurrentPage"
|
:current-page="fxyList.currentPage"
|
:page-sizes="[10, 20, 30, 50]"
|
:page-size="fxyList.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="fxyList.total">
|
</el-pagination>
|
</el-row>
|
</el-tab-pane>
|
|
<el-tab-pane label="结算记录" name="second">
|
<el-row style="display:flex;align-items: center;text-align: right;">
|
<el-col>
|
<el-form ref="formOrder" :model="formOrder" inline >
|
<el-form-item prop="jssj" >
|
<el-date-picker
|
v-model="formOrder.jssj"
|
type="datetimerange"
|
:picker-options="pickerOptions"
|
range-separator="至"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
align="right">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item prop="userName">
|
<el-input v-model="formOrder.userName" placeholder="请输入结算人姓名"></el-input>
|
</el-form-item>
|
<el-button type="primary" @click="searchFormOrder" >搜索</el-button>
|
<el-button @click="resetFormOrder('formOrder')">重置</el-button>
|
</el-form>
|
</el-col>
|
</el-row>
|
<el-row class="table-style" >
|
<el-table :data="orderLevelList.rows" :height="height" stripe:true @sort-change="sortChange">
|
<el-table-column
|
prop="orderNo"
|
label="结算编号"
|
show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column
|
prop="actualBalance"
|
label="结算金额">
|
</el-table-column>
|
<el-table-column
|
prop="setNum"
|
label="结算订单数">
|
</el-table-column>
|
<el-table-column
|
prop="setManNum"
|
label="结算人数">
|
</el-table-column>
|
<el-table-column
|
prop="setTime"
|
label="结算时间"
|
show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column
|
prop="setMan"
|
label="结算人"
|
show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column
|
label="结算方式">
|
<template slot-scope="scope">
|
<span v-if="scope.row.settlementWay == 1">线下结算</span>
|
<span v-if="scope.row.settlementWay == 2">微信余额结算</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="remark"
|
label="备注"
|
show-overflow-tooltip>
|
</el-table-column>
|
</el-table>
|
</el-row>
|
<el-row class="paginationStyle" >
|
<el-pagination background
|
@size-change="changePageSizeOrder"
|
@current-change="changeCurrentPageOrder"
|
:current-page="orderLevelList.currentPage"
|
:page-sizes="[10, 20, 30, 50]"
|
:page-size="orderLevelList.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="orderLevelList.total">
|
</el-pagination>
|
</el-row>
|
</el-tab-pane>
|
</el-tabs>
|
</el-row>
|
</div>
|
</body>
|
<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
|
<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
|
<script type="text/javascript" th:src="@{/plugin/bootstrap-3.3.5/js/bootstrap.min.js}"></script>
|
<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
|
<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
|
<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
|
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
|
<script type="text/javascript" th:src="@{/plugin/layer/layer.js}"></script>
|
<script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script>
|
|
<script>
|
//获取传输的USERID对象
|
var userId = $.query.get("userId");
|
var applyId = $.query.get("applyId");
|
|
var app = new Vue({
|
el: '#app',
|
data: {
|
activeName: 'first',
|
height:'calc(100vh - 340px)',
|
//--基本数据
|
basicdetail:{},
|
//--时间选择
|
pickerOptions: {
|
shortcuts: [{
|
text: '最近一周',
|
onClick(picker) {
|
const end = new Date();
|
const start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
picker.$emit('pick', [start, end]);
|
}
|
}, {
|
text: '最近一个月',
|
onClick(picker) {
|
const end = new Date();
|
const start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
picker.$emit('pick', [start, end]);
|
}
|
}, {
|
text: '最近三个月',
|
onClick(picker) {
|
const end = new Date();
|
const start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
picker.$emit('pick', [start, end]);
|
}
|
}]
|
},
|
|
//--批量审核选中操作
|
multipleSelection: [],
|
orderIds:"",
|
orderNums:0,
|
orderNumsDones:0,
|
dialogFormVisible: false,
|
formSelect: {
|
jsje: '',
|
jsdds: '',
|
jsrs: '',
|
jsfs: 2,
|
bz: ''
|
},
|
formLabelWidth: '120px',
|
//--分销订单
|
// 条件查询结算状态
|
orderTypeList:[
|
{value:'',label:'全部'},
|
{value:1,label:'待结算'},
|
{value:2,label:'已结算'},
|
{value:3,label:'已退款'}
|
],
|
ddTypeList:[
|
{value:'',label:'全部'},
|
{value:1,label:'待付款'},
|
{value:2,label:'待配送'},
|
{value:3,label:'待收货'},
|
{value:4,label:'待评价'},
|
{value:5,label:'已评价'},
|
{value:6,label:'申请退款'},
|
{value:7,label:'退款成功'},
|
{value:8,label:'退款拒绝'},
|
{value:9,label:'已取消'}
|
],
|
form:{
|
userName:'',
|
orderType:'',
|
ddType:'',
|
ddsj: '',
|
tgy:'',
|
jsbh:'',
|
ddh:'',
|
order:'',
|
sort:''
|
},
|
fxyList:{
|
rows:[],
|
total:0,
|
pageSize:10,
|
currentPage:1,
|
},
|
//--结算记录
|
formOrder:{
|
userName:'',
|
jssj:'',
|
order:'',
|
sort:''
|
},
|
orderLevelList:{
|
rows:[],
|
total:0,
|
pageSize:10,
|
currentPage:1,
|
},
|
},
|
created: function () {
|
this.loadInfo();
|
},
|
mounted: function () {
|
},
|
methods: {
|
//加载分类
|
loadInfo() {
|
let _this = this;
|
_this.loadFenxiaoOrderBasic();
|
_this.loadFenxiaoOrderList();
|
_this.loadSetOrderList();
|
},
|
//--基础数据
|
loadFenxiaoOrderBasic() {
|
let _this = this;
|
let obj = {};
|
AjaxProxy.requst({
|
app: _this,
|
data:obj,
|
url: basePath + '/fenXiao/fenXiaoOrder/loadFenxiaoOrderBasic',
|
callback: function (data) {
|
_this.basicdetail = data.mapInfo.basicdetail;
|
}
|
});
|
},
|
//--结算记录
|
loadSetOrderList() {
|
let _this = this;
|
let data=_this.getRequestParamOrder();
|
data.pageSize=_this.orderLevelList.pageSize;
|
data.pageNum=_this.orderLevelList.currentPage;
|
AjaxProxy.requst({
|
app: _this,
|
data:data,
|
url: basePath + '/fenXiao/fenXiaoOrder/loadSetOrderList',
|
callback: function (data) {
|
_this.orderLevelList.rows = data.rows;
|
_this.orderLevelList.total = data.total;
|
_this.loadFenxiaoOrderBasic();
|
}
|
});
|
},
|
//查询参数
|
getRequestParamOrder(){
|
let _this = this;
|
let startTime = '';
|
let endTime = '';
|
if(_this.formOrder.jssj.length > 0){
|
startTime = _this.formOrder.jssj[0];
|
endTime = _this.formOrder.jssj[1];
|
}
|
return {
|
userName:_this.formOrder.userName,
|
startTime:startTime,
|
endTime:endTime,
|
order:_this.formOrder.order,
|
sort:_this.formOrder.sort,
|
}
|
},
|
//查询
|
searchFormOrder:function(){
|
this.orderLevelList.currentPage=1;
|
this.loadSetOrderList();
|
},
|
//重置
|
resetFormOrder(formName) {
|
this.$refs[formName].resetFields();
|
},
|
changePageSizeOrder(val) {
|
this.orderLevelList.pageSize = val;
|
this.loadSetOrderList();
|
},
|
changeCurrentPageOrder(val) {
|
this.orderLevelList.currentPage = val;
|
this.loadSetOrderList();
|
},
|
//--分销订单
|
loadFenxiaoOrderList() {
|
let _this = this;
|
let data=_this.getRequestParam();
|
data.pageSize=_this.fxyList.pageSize;
|
data.pageNum=_this.fxyList.currentPage;
|
AjaxProxy.requst({
|
app: _this,
|
data:data,
|
url: basePath + '/fenXiao/fenXiaoOrder/loadFenxiaoOrderList',
|
callback: function (data) {
|
_this.fxyList.rows = data.rows;
|
_this.fxyList.total = data.total;
|
_this.loadFenxiaoOrderBasic();
|
}
|
});
|
},
|
//查询参数
|
getRequestParam(){
|
let _this = this;
|
let startTime = '';
|
let endTime = '';
|
if(_this.form.ddsj.length > 0){
|
startTime = _this.form.ddsj[0];
|
endTime = _this.form.ddsj[1];
|
}
|
return {
|
orderType:_this.form.orderType,
|
ddType:_this.form.ddType,
|
tgy:_this.form.tgy,
|
userName:_this.form.userName,
|
jsbh:_this.form.jsbh,
|
startTime:startTime,
|
endTime:endTime,
|
ddh:_this.form.ddh,
|
order:_this.form.order,
|
sort:_this.form.sort,
|
}
|
},
|
//查询
|
search:function(){
|
this.fxyList.currentPage=1;
|
this.loadFenxiaoOrderList();
|
},
|
//重置
|
resetForm(formName) {
|
this.$refs[formName].resetFields();
|
},
|
changePageSize(val) {
|
this.fxyList.pageSize = val;
|
this.loadFenxiaoOrderList();
|
},
|
changeCurrentPage(val) {
|
this.fxyList.currentPage = val;
|
this.loadFenxiaoOrderList();
|
},
|
//排序
|
sortChange:function (column){
|
if(column.order){
|
if(column.order.indexOf("desc")){
|
this.form.order="desc";
|
}else{
|
this.form.order="asc";
|
}
|
this.form.sort=column.prop;
|
this.loadInfo();
|
}
|
},
|
//选择
|
handleSelectionChange(val) {
|
let _this = this;
|
_this.multipleSelection = val;
|
//拼接出一个逗号隔开的字符串
|
let submitDate = "";
|
let orderNum = 0;
|
let orderBalance = 0;
|
let orderNumsDone = 0;
|
let name = [];
|
for (let i = 0; i < _this.multipleSelection.length; i++) {
|
let order = _this.multipleSelection[i];
|
//待审核的计算到弹出框
|
let orderState = order.orderState;
|
let settleType = order.settleType;
|
if((orderState == 4 || orderState == 5) && settleType == 1){
|
let orderId = order.id;
|
name.push(order.customUserId);
|
orderNum = orderNum + 1;
|
orderBalance = orderBalance + order.profitBalance;
|
submitDate = submitDate +orderId+",";
|
}else{
|
orderNumsDone = orderNumsDone + 1;
|
}
|
}
|
_this.orderNumsDones = orderNumsDone;
|
_this.orderIds = submitDate;
|
_this.orderNums = orderNum;
|
_this.formSelect.jsdds = orderNum;
|
_this.formSelect.jsje = orderBalance;
|
_this.formSelect.jsrs = _this.distinctFunction(name).length;
|
},
|
//去重
|
distinctFunction(name){
|
var arr = name,
|
result = [],
|
i,
|
j,
|
len = arr.length;
|
for(i = 0; i < len; i++){
|
for(j = i + 1; j < len; j++){
|
if(arr[i] === arr[j]){
|
j = ++i;
|
}
|
}
|
result.push(arr[i]);
|
}
|
return result;
|
},
|
//批量结算
|
setOrderDone() {
|
if(this.orderNumsDones > 0){
|
this.$message({
|
message: '【待评价】和【已评价】状态下的【待结算】订单,才允许结算',
|
type: 'warning'
|
});
|
}else if(this.orderNums > 0){
|
this.dialogFormVisible = true;
|
}else{
|
this.$message({
|
message: '至少需要选中一条数据',
|
type: 'warning'
|
});
|
}
|
},
|
updateSetOrderDone(){
|
let _this = this;
|
let obj = {
|
orderIds: _this.orderIds,
|
setType: _this.formSelect.jsfs,
|
manCount: _this.formSelect.jsrs,
|
orderCount: _this.formSelect.jsdds,
|
amount: _this.formSelect.jsje,
|
remark: _this.formSelect.bz,
|
}
|
AjaxProxy.requst({
|
app: _this,
|
data:obj,
|
url: basePath + '/fenXiao/fenXiaoOrder/updateSetOrderDone',
|
callback: function (data) {
|
_this.$message.success(data.info);
|
_this.loadFenxiaoOrderList();
|
_this.dialogFormVisible = false;
|
}
|
});
|
},
|
excelExport() {
|
var jsonParam = this.getRequestParam();
|
var param = "";
|
Object.keys(jsonParam).forEach(function(key){
|
if (jsonParam[key]) {
|
param += key + "=" + jsonParam[key] + "&";
|
}
|
});
|
window.location.href=basePath+"/fenXiao/fenXiaoOrder/exportExcel?"+param;
|
}
|
}
|
})
|
</script>
|
|
</body>
|
</html>
|