This commit is contained in:
yaosen 2024-06-25 16:45:14 +08:00
parent 668a71df67
commit e594023894
7 changed files with 106 additions and 42 deletions

View File

@ -167,7 +167,7 @@ export const asyncRoutes = [
component: () => import('@/views/order/product'), component: () => import('@/views/order/product'),
name: 'productNameList', name: 'productNameList',
meta: { meta: {
title: '产品统计列表', title: '产品统计',
roles: ['order_pub', 'editor'] roles: ['order_pub', 'editor']
} }
}, },

View File

@ -2,8 +2,8 @@
<el-row :gutter="40" class="panel-group"> <el-row :gutter="40" class="panel-group">
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel"> <div class="card-panel">
<div class="card-panel-icon-wrapper icon-people"> <div class="card-panel-icon-wrapper icon-shopping">
<svg-icon icon-class="peoples" class-name="card-panel-icon" /> <svg-icon icon-class="shopping" class-name="card-panel-icon" />
</div> </div>
<div class="card-panel-description"> <div class="card-panel-description">
<div class="card-panel-text"> <div class="card-panel-text">
@ -15,7 +15,20 @@
</el-col> </el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel"> <div class="card-panel">
<div class="card-panel-icon-wrapper icon-message"> <div class="card-panel-icon-wrapper icon-money3">
<svg-icon icon-class="money" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
订单总额
</div>
<count-to :start-val="0" :end-val="total" :duration="10" class="card-panel-num" />
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel">
<div class="card-panel-icon-wrapper icon-message2">
<svg-icon icon-class="message" class-name="card-panel-icon" /> <svg-icon icon-class="message" class-name="card-panel-icon" />
</div> </div>
<div class="card-panel-description"> <div class="card-panel-description">
@ -28,8 +41,8 @@
</el-col> </el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel"> <div class="card-panel">
<div class="card-panel-icon-wrapper icon-money"> <div class="card-panel-icon-wrapper icon-message">
<svg-icon icon-class="money" class-name="card-panel-icon" /> <svg-icon icon-class="message" class-name="card-panel-icon" />
</div> </div>
<div class="card-panel-description"> <div class="card-panel-description">
<div class="card-panel-text"> <div class="card-panel-text">
@ -41,21 +54,8 @@
</el-col> </el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel"> <div class="card-panel">
<div class="card-panel-icon-wrapper icon-shopping"> <div class="card-panel-icon-wrapper icon-skill">
<svg-icon icon-class="shopping" class-name="card-panel-icon" /> <svg-icon icon-class="skill" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
订单总额
</div>
<count-to :start-val="0" :end-val="total" :duration="10" class="card-panel-num" />
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel">
<div class="card-panel-icon-wrapper icon-shopping">
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
</div> </div>
<div class="card-panel-description"> <div class="card-panel-description">
<div class="card-panel-text"> <div class="card-panel-text">
@ -67,8 +67,8 @@
</el-col> </el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel"> <div class="card-panel">
<div class="card-panel-icon-wrapper icon-shopping"> <div class="card-panel-icon-wrapper icon-money2">
<svg-icon icon-class="shopping" class-name="card-panel-icon" /> <svg-icon icon-class="money" class-name="card-panel-icon" />
</div> </div>
<div class="card-panel-description"> <div class="card-panel-description">
<div class="card-panel-text"> <div class="card-panel-text">
@ -80,8 +80,8 @@
</el-col> </el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel"> <div class="card-panel">
<div class="card-panel-icon-wrapper icon-shopping"> <div class="card-panel-icon-wrapper icon-documentation">
<svg-icon icon-class="shopping" class-name="card-panel-icon" /> <svg-icon icon-class="documentation" class-name="card-panel-icon" />
</div> </div>
<div class="card-panel-description"> <div class="card-panel-description">
<div class="card-panel-text"> <div class="card-panel-text">
@ -93,8 +93,8 @@
</el-col> </el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel"> <div class="card-panel">
<div class="card-panel-icon-wrapper icon-shopping"> <div class="card-panel-icon-wrapper icon-money">
<svg-icon icon-class="shopping" class-name="card-panel-icon" /> <svg-icon icon-class="money" class-name="card-panel-icon" />
</div> </div>
<div class="card-panel-description"> <div class="card-panel-description">
<div class="card-panel-text"> <div class="card-panel-text">
@ -182,13 +182,36 @@ export default {
background: #36a3f7; background: #36a3f7;
} }
.icon-message2 {
background: #656768;
}
.icon-skill {
background: #7fd554;
}
.icon-money { .icon-money {
background: #f4516c; background: #f4516c;
} }
.icon-money2 {
background: #7fd554;
}
.icon-money3 {
background: #34bfa3;
}
.icon-shopping { .icon-shopping {
background: #34bfa3 background: #34bfa3
} }
.icon-documentation {
background: #f4516c
}
.icon-documentation2 {
background: #d972e4
}
} }
.icon-people { .icon-people {
@ -199,6 +222,18 @@ export default {
color: #36a3f7; color: #36a3f7;
} }
.icon-money2 {
color: #7fd554;
}
.icon-money3 {
color: #34bfa3;
}
.icon-skill {
color: #7fd554;
}
.icon-money { .icon-money {
color: #f4516c; color: #f4516c;
} }
@ -206,6 +241,13 @@ export default {
.icon-shopping { .icon-shopping {
color: #34bfa3 color: #34bfa3
} }
.icon-documentation {
color: #f4516c
}
.icon-documentation2 {
background: #d972e4
}
.card-panel-icon-wrapper { .card-panel-icon-wrapper {
float: left; float: left;

View File

@ -30,8 +30,8 @@
<el-button v-if="scope.row.self ==0 && scope.row.status == 0" type="success" size="small" icon="el-icon-close" @click="onRefuse(scope.row)"> <el-button v-if="scope.row.self ==0 && scope.row.status == 0" type="success" size="small" icon="el-icon-close" @click="onRefuse(scope.row)">
拒绝 拒绝
</el-button> </el-button>
<el-button v-if="scope.row.self ==3 && scope.row.status == 0" type="success" size="small" icon="el-icon-close" @click="onCancel(scope.row)"> <el-button v-if="scope.row.self ==3 && scope.row.status == 0" type="info" size="small" icon="el-icon-close" @click="onCancel(scope.row)">
取消 取消流转
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -74,7 +74,7 @@
<el-table-column align="center" fixed width="200" label="操作"> <el-table-column align="center" fixed width="200" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="success" size="small" icon="el-icon-refresh" @click="onCirculation(scope.row)"> <el-button :type="scope.row.backs&&scope.row.backs.status==0? types[7] : types[4]" size="small" icon="el-icon-refresh" @click="onCirculation(scope.row)">
{{ scope.row.backs&&scope.row.backs.status==0?'流转中':'流转出' }} {{ scope.row.backs&&scope.row.backs.status==0?'流转中':'流转出' }}
</el-button> </el-button>
<el-button :type="types[scope.row.order_status]" size="small" icon="el-icon-edit" @click="onInfo(scope.row)"> <el-button :type="types[scope.row.order_status]" size="small" icon="el-icon-edit" @click="onInfo(scope.row)">
@ -397,7 +397,7 @@ export default {
data() { data() {
return { return {
active: 'follow', active: 'follow',
types: { 0: '', 1: '', 2: '', 3: 'primary', 4: 'success', 5: 'warning' }, types: { 0: '', 1: '', 2: '', 3: 'primary', 4: 'success', 5: 'warning', 6: 'danger', 7: 'info' },
types2: { 1: 'primary', 2: 'success', 3: 'warning' }, types2: { 1: 'primary', 2: 'success', 3: 'warning' },
status_arr: ['待跟进', '跟进中', '已核销', '核销失败', '放弃跟单'], status_arr: ['待跟进', '跟进中', '已核销', '核销失败', '放弃跟单'],
type_arr: ['-', '收益', '支出'], type_arr: ['-', '收益', '支出'],

View File

@ -22,23 +22,41 @@
<el-table-column align="center" label="产品名称" width="220" prop="product_name" /> <el-table-column align="center" label="产品名称" width="220" prop="product_name" />
<el-table-column align="center" label="平台" width="80" prop="os" /> <el-table-column align="center" label="平台" width="80" prop="os">
<template slot-scope="scope">
<el-tag type="warning" v-if="scope.row.os === 1">美团</el-tag>
<el-tag type="success" v-if="scope.row.os === 2">快手</el-tag>
<el-tag type="primary" v-if="scope.row.os === 3">抖音</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="订单数" width="80" prop="all" /> <el-table-column align="center" fixed label="订单数" width="80" prop="all" />
<el-table-column align="center" label="订单金额" width="180" prop="total" /> <el-table-column align="center" label="订单金额" width="100">
<template slot-scope="scope">
<span>{{ scope.row.total ? parseFloat(scope.row.total)/100 : 0 }}</span>
</template>
</el-table-column>
<el-table-column align="center" width="500px" label="待跟进" prop="wait" /> <el-table-column align="center" width="100px" label="待跟进" prop="wait" />
<el-table-column width="138px" align="center" label="跟进中" prop="doing" /> <el-table-column width="100px" align="center" label="跟进中" prop="doing" />
<el-table-column align="center" width="500px" label="核销数" prop="asset" /> <el-table-column align="center" width="100px" label="核销数" prop="asset" />
<el-table-column width="138px" align="center" label="核销金额" prop="asset_price" /> <el-table-column width="100px" align="center" label="核销金额">
<template slot-scope="scope">
<span>{{ scope.row.asset_price ? parseFloat(scope.row.asset_price)/100 : 0 }}</span>
</template>
</el-table-column>
<el-table-column align="center" width="500px" label="退款数" prop="asset" /> <el-table-column align="center" width="100px" label="退款数" prop="refund" />
<el-table-column width="138px" align="center" label="退款金额" prop="asset_price" /> <el-table-column width="100px" align="center" label="退款金额">
<template slot-scope="scope">
<span>{{ scope.row.refund_price ? parseFloat(scope.row.refund_price)/100 : 0 }}</span>
</template>
</el-table-column>
</el-table> </el-table>
@ -121,7 +139,7 @@ export default {
this.total = response.data.total this.total = response.data.total
this.timetype_arr = response.ext.timetype this.timetype_arr = response.ext.timetype
this.oss = response.ext.oss this.oss = response.ext.oss
}).catch(() => { }).catch(() => {
}) })
} }

View File

@ -189,6 +189,7 @@ class IndexController extends base
{ {
$limit = $request->get('limit', 10); $limit = $request->get('limit', 10);
$product_name = $request->get('product_name'); $product_name = $request->get('product_name');
$os = $request->get('os_status');
$list = Orders::where('admin_id',$request->admin->id) $list = Orders::where('admin_id',$request->admin->id)
->fieldRaw(' ->fieldRaw('
os,product_name, os,product_name,
@ -209,6 +210,9 @@ class IndexController extends base
') ')
->group('os,product_name') ->group('os,product_name')
->order('total desc'); ->order('total desc');
if (!empty($os)){
$list = $list->where('os',$os);
}
if (!empty($product_name)){ if (!empty($product_name)){
$list = $list->where('product_name','like','%'.$product_name.'%'); $list = $list->where('product_name','like','%'.$product_name.'%');
} }

View File

@ -47,7 +47,7 @@ class OrderController extends base
$mobile = $request->get('mobile'); $mobile = $request->get('mobile');
if($mobile){ if($mobile){
$query->where('mobile', $mobile); $query->where('mobile','like', '%'.$mobile.'%');
} }
$zhubo = $request->get('zhubo'); $zhubo = $request->get('zhubo');