修改:经销商 - 提成明细查看修改
This commit is contained in:
parent
d74b6aee93
commit
65c7244380
|
|
@ -404,7 +404,7 @@ class PluginApplication extends \app\common\services\PluginApplication
|
|||
],
|
||||
]
|
||||
],
|
||||
'team_dividend_admin_dividend' => [
|
||||
/*'team_dividend_admin_dividend' => [
|
||||
'name' => '提成明细',
|
||||
'url' => 'plugin.team-dividend.admin.team-dividend.get-list',
|
||||
'url_params' => '',
|
||||
|
|
@ -414,7 +414,6 @@ class PluginApplication extends \app\common\services\PluginApplication
|
|||
'item' => 'team_dividend_admin_dividend',
|
||||
'parents' => ['team_dividend'],
|
||||
'child' => [
|
||||
|
||||
'team_dividend_admin_dividend_index' => [
|
||||
'name' => '浏览列表',
|
||||
'url' => 'plugin.team-dividend.admin.team-dividend.get-list',
|
||||
|
|
@ -425,7 +424,6 @@ class PluginApplication extends \app\common\services\PluginApplication
|
|||
'item' => 'team_dividend_admin_dividend_index',
|
||||
'parents' => ['team_dividend', 'team_dividend_admin_dividend'],
|
||||
],
|
||||
|
||||
'plugin_team_dividend_level_export' => [
|
||||
'name' => '导出 EXCEL',
|
||||
'url' => 'plugin.team-dividend.admin.team-dividend.export',
|
||||
|
|
@ -447,7 +445,30 @@ class PluginApplication extends \app\common\services\PluginApplication
|
|||
'parents' => ['team_dividend', 'team_dividend_admin_dividend'],
|
||||
],
|
||||
]
|
||||
],*/
|
||||
'team_dividend_admin_dividend_new' => [
|
||||
'name' => '提成明细',
|
||||
'url' => 'plugin.team-dividend.admin.team-dividend.group-list',
|
||||
'url_params' => '',
|
||||
'permit' => 1,
|
||||
'menu' => 1,
|
||||
'icon' => '',
|
||||
'item' => 'team_dividend_admin_dividend',
|
||||
'parents' => ['team_dividend'],
|
||||
'child' => [
|
||||
'team_dividend_admin_dividend_index_new' => [
|
||||
'name' => '浏览列表',
|
||||
'url' => 'plugin.team-dividend.admin.team-dividend.group-list',
|
||||
'url_params' => '',
|
||||
'permit' => 1,
|
||||
'menu' => 0,
|
||||
'icon' => '',
|
||||
'item' => 'team_dividend_admin_dividend_index',
|
||||
'parents' => ['team_dividend', 'team_dividend_admin_dividend'],
|
||||
],
|
||||
]
|
||||
],
|
||||
|
||||
'team_dividend_admin_redpack' => [
|
||||
'name' => '红包奖励记录',
|
||||
'url' => 'plugin.team-dividend.admin.RedpackLog.index',
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ use app\common\components\BaseController;
|
|||
use app\common\helpers\PaginationHelper;
|
||||
use app\common\models\Order;
|
||||
use app\common\services\ExportService;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Yunshop\TeamDividend\Listener\OrderCreatedListener;
|
||||
use Yunshop\TeamDividend\models\Lose;
|
||||
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
|
||||
|
|
@ -116,6 +117,63 @@ class TeamDividendController extends BaseController
|
|||
}
|
||||
$exportService->export($file_name, $exportData, \Request::query('route'));
|
||||
}
|
||||
/**
|
||||
* Common: 分组内容
|
||||
* Author: wu-hui
|
||||
* Time: 2024/04/24 17:17
|
||||
* @return array|\Illuminate\Http\JsonResponse|string
|
||||
* @throws \Throwable
|
||||
*/
|
||||
public function groupList(){
|
||||
if(request()->isMethod('post')){
|
||||
//参数获取
|
||||
$pageSize = request()->input('page_size',10);
|
||||
$search = request()->input('search');
|
||||
// 获取列表信息
|
||||
$field = [
|
||||
'id',
|
||||
'order_sn',
|
||||
'created_at',
|
||||
DB::raw('sum(amount) as total_amount')
|
||||
];
|
||||
|
||||
$model = TeamDividendModel::getSearch($search, $field)
|
||||
->groupBy('order_sn')
|
||||
->orderBy('id','desc');
|
||||
$list = $model->paginate($pageSize);
|
||||
$result = $list ? $list->toArray() : [];
|
||||
|
||||
return $this->successJson('success',[
|
||||
'current_page' => $result['current_page'],
|
||||
'data' => $result['data'],
|
||||
'last_page' => $result['last_page'],
|
||||
]);
|
||||
}
|
||||
|
||||
return view('Yunshop\TeamDividend::admin.group-list')->render();
|
||||
}
|
||||
/**
|
||||
* Common: 分组详情
|
||||
* Author: wu-hui
|
||||
* Time: 2024/04/24 17:29
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function groupListDetail(){
|
||||
//参数获取
|
||||
$pageSize = request()->input('page_size',10);
|
||||
$search = request()->input('search');
|
||||
// 获取列表信息
|
||||
$model = TeamDividendModel::getSearch($search);
|
||||
$list = $model->paginate($pageSize);
|
||||
$result = $list ? $list->toArray() : [];
|
||||
|
||||
return $this->successJson('success',[
|
||||
'current_page' => $result['current_page'],
|
||||
'data' => $result['data'],
|
||||
'last_page' => $result['last_page'],
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function test(){
|
||||
// date_default_timezone_set("PRC");
|
||||
|
|
|
|||
|
|
@ -470,4 +470,31 @@ class TeamDividendModel extends BaseModel
|
|||
|
||||
return $query->orderBy('yz_team_dividend.id', 'desc');
|
||||
}
|
||||
/**
|
||||
* Common: 搜索内容
|
||||
* Author: wu-hui
|
||||
* Time: 2024/04/24 17:16
|
||||
* @param $search
|
||||
* @param array|string[] $field
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getSearch($search,array $field = ['*']){
|
||||
// 条件生成
|
||||
$where = [];
|
||||
if($search['member_id'] > 0) $where[] = ['member_id','=',$search['member_id']];
|
||||
if(!empty($search['order_sn'])) $where[] = ['order_sn','=',$search['order_sn']];
|
||||
if(isset($search['type']) && $search['type'] != '') $where[] = ['type','=',$search['type']];
|
||||
// 列表获取
|
||||
return self::uniacid()
|
||||
->select($field)
|
||||
->where($where)
|
||||
->when(isset($search['status']) && $search['status'] != '',function($query) use ($search){
|
||||
$query->where('status', $search['status']);
|
||||
})
|
||||
->with([
|
||||
'hasOneMember' => function($query){
|
||||
$query->select(['uid','nickname','realname','avatar']);
|
||||
}
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,272 @@
|
|||
@extends('layouts.base')
|
||||
<style>
|
||||
.user{
|
||||
display: inline-flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
overflow: hidden;
|
||||
height: 80px;
|
||||
}
|
||||
.user .user-avatar{
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
margin-right: 5px;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.user .user-avatar .avatar-image{
|
||||
width: 100% !important;
|
||||
height: 100% !important;
|
||||
}
|
||||
.user .user-info{
|
||||
height: 50px;
|
||||
text-align: left;
|
||||
}
|
||||
.user .user-info .user-nickname{
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.user .user-info .user-status{
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.label{
|
||||
font-size: 15px!important;
|
||||
}
|
||||
.el-pagination{
|
||||
margin-top: 15px!important;
|
||||
}
|
||||
.distance{
|
||||
color: #f56c6c!important;
|
||||
}
|
||||
</style>
|
||||
@section('content')
|
||||
<div class="w1200 m0a" id="mainContent">
|
||||
{{--列表信息--}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
{{--搜索--}}
|
||||
<el-form :inline="true" :model="search_info">
|
||||
<el-form-item label="订单号">
|
||||
<el-input v-model="search_info.order_sn" placeholder="请输入订单号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="clickSearch('_list')">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
{{--表格--}}
|
||||
<el-table :data="list" style="width: 100%">
|
||||
<el-table-column align="center" prop="id" label="ID" width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="order_sn" label="订单号"></el-table-column>
|
||||
<el-table-column align="center" prop="total_amount" label="总佣金"></el-table-column>
|
||||
<el-table-column align="center" prop="created_at" label="下单时间"></el-table-column>
|
||||
<el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="info" @click="seeInfo(scope.row.order_sn)">查看明细</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
{{--分页--}}
|
||||
<el-pagination
|
||||
v-if="total_page > 1"
|
||||
background
|
||||
layout="prev, pager, next"
|
||||
:page-count="total_page"
|
||||
:current-page="page"
|
||||
@current-change="changePage($event, '_list')">
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
{{--明细弹框--}}
|
||||
<el-dialog title="查看明细" :visible.sync="see_details" @close="seeDetailsPopupClose" width="1200px">
|
||||
<template>
|
||||
<!--搜索-->
|
||||
<el-form :inline="true" :model="see_search_list">
|
||||
<el-form-item label="分红类型">
|
||||
{{--分红类型:0=分红佣金,1=平级奖,2=感恩奖励,3=额外分红,4=生态建设,5=生态贡献(生态建设平级奖),6=生态服务,7=分月返佣,8=立即返佣--}}
|
||||
<el-select v-model="see_search_list.type" placeholder="全部">
|
||||
{{--<el-option label="分红佣金" value="0"></el-option>--}}
|
||||
<el-option label="平级奖" value="1"></el-option>
|
||||
<el-option label="分月返佣" value="7"></el-option>
|
||||
<el-option label="立即返佣" value="8"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户ID" placeholder="请输入需要查询的季度">
|
||||
<el-input v-model="see_search_list.member_id"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="clickSearch('details')">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!--表单-->
|
||||
<el-table :data="see_list" style="width: 100%">
|
||||
<el-table-column align="center" prop="id" label="ID" width="80"></el-table-column>
|
||||
<el-table-column align="center" prop="member" label="经销商信息" width="230">
|
||||
<template slot-scope="scope">
|
||||
<div class="user">
|
||||
<div class="user-avatar">
|
||||
<img class="avatar-image" :src="scope.row.has_one_member.avatar_image || ''" />
|
||||
</div>
|
||||
<div class="user-info">
|
||||
<div class="user-nickname">昵称:[[scope.row.has_one_member.nickname || '']]</div>
|
||||
<div class="user-status">ID:[[scope.row.has_one_member.uid || '']]</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="member" label="经销商信息" width="230">
|
||||
<template slot="header" slot-scope="scope">
|
||||
经销商等级<br />
|
||||
分红类型 - 分红比例
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
[[ scope.row.type_name ]]<br />
|
||||
[[ scope.row.level_name ]]
|
||||
<span v-if="scope.row.type != 7 && scope.row.type != 8">- 比例[[ scope.row.dividend_rate ]]%</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="order_amount" label="订单金额" width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="dividend_amount" label="提成金额" width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="amount" label="结算金额" width="120"></el-table-column>
|
||||
<el-table-column align="center" prop="status_name" label="状态" width="120"></el-table-column>
|
||||
</el-table>
|
||||
<!--分页-->
|
||||
<el-pagination
|
||||
v-if="see_total_page > 1"
|
||||
background
|
||||
layout="prev, pager, next"
|
||||
:page-count="see_total_page"
|
||||
:current-page="see_page"
|
||||
@current-change="changePage($event, 'details')"
|
||||
></el-pagination>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
new Vue({
|
||||
el: '#mainContent',
|
||||
delimiters: ['[[', ']]'],
|
||||
name: 'team-dividend',
|
||||
data() {
|
||||
return {
|
||||
// 基础列表
|
||||
page: 1,
|
||||
total_page: 1,
|
||||
list: [],
|
||||
search_info: {
|
||||
order_sn: '',
|
||||
},
|
||||
// 查看明细
|
||||
see_details: false,
|
||||
see_page: 1,
|
||||
see_total_page: 1,
|
||||
see_list: [],
|
||||
see_search_list: {
|
||||
order_sn: "",
|
||||
type: '',
|
||||
member_id: '',
|
||||
}
|
||||
}
|
||||
},
|
||||
watch:{},
|
||||
mounted () {
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
// 基础信息 - 获取数据
|
||||
getData(){
|
||||
let _this = this;
|
||||
let loading = _this.showLoading();
|
||||
// 请求获取数据
|
||||
$.ajax({
|
||||
url: "{!! yzWebUrl('plugin.team-dividend.admin.TeamDividend.groupList') !!}",
|
||||
type: "post",
|
||||
data: {
|
||||
page: _this.page,
|
||||
search: _this.search_info,
|
||||
},
|
||||
success: function(result) {
|
||||
let data = result.data;
|
||||
if(parseInt(result.result) === 1){
|
||||
// 处理数据
|
||||
_this.list = data.data;
|
||||
_this.total_page = data.last_page;
|
||||
}
|
||||
loading.close();
|
||||
}
|
||||
});
|
||||
},
|
||||
// 基础信息 - 查看明细
|
||||
seeInfo(order_sn){
|
||||
this.see_page = 1;
|
||||
this.see_search_list.order_sn = order_sn;
|
||||
|
||||
this.getList();
|
||||
},
|
||||
// 查看明细 - 获取列表
|
||||
getList(){
|
||||
let _this = this;
|
||||
let loading = _this.showLoading();
|
||||
$.ajax({
|
||||
url: "{!! yzWebUrl('plugin.team-dividend.admin.TeamDividend.groupListDetail') !!}",
|
||||
type: "post",
|
||||
data: {
|
||||
page: _this.see_page,
|
||||
search: _this.see_search_list
|
||||
},
|
||||
success: function(result) {
|
||||
loading.close(0);
|
||||
let data = result.data;
|
||||
if(parseInt(result.result) === 1){
|
||||
// 处理数据
|
||||
_this.see_list = data.data;
|
||||
_this.see_total_page = data.last_page;
|
||||
_this.see_details = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
// 查看明细 - 关闭弹框
|
||||
seeDetailsPopupClose(){
|
||||
this.see_details = false;
|
||||
this.see_search_list = {};
|
||||
},
|
||||
// 数据分页
|
||||
changePage(val, type){
|
||||
if(type == '_list'){
|
||||
this.page = val;
|
||||
this.getData();
|
||||
}else if(type == 'details'){
|
||||
this.see_page = val;
|
||||
this.getList();
|
||||
}
|
||||
},
|
||||
// 相关搜索
|
||||
clickSearch(type){
|
||||
if(type == '_list'){
|
||||
this.page = 1;
|
||||
this.getData();
|
||||
}else if(type == 'details'){
|
||||
this.see_page = 1;
|
||||
this.getList();
|
||||
}
|
||||
},
|
||||
// 显示加载动画
|
||||
showLoading(){
|
||||
return this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
},
|
||||
},
|
||||
})
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
Loading…
Reference in New Issue