品牌加热门 修改 仪表盘接口

This commit is contained in:
浅念
2025-09-17 15:10:28 +08:00
parent 922cfec81d
commit 65f7f4a123
5 changed files with 107 additions and 73 deletions
+12 -6
View File
@@ -4,37 +4,43 @@ export class manageService {
//仪表盘 总 //仪表盘 总
static statisticswhole() { static statisticswhole() {
return request.get<any>({ return request.get<any>({
url: '/admin/inquiry/statistics/whole' // url: '/admin/inquiry/statistics/whole'
url: 'admin/crm/statistics/whole'
}) })
} }
//各渠道统计 //各渠道统计
static channelcount() { static channelcount() {
return request.get<any>({ return request.get<any>({
url: '/admin/inquiry/statistics/channel/count' // url: '/admin/inquiry/statistics/channel/count'
url: '/admin/crm/statistics/channel/count'
}) })
} }
//各国家统计 //各国家统计
static countrycount() { static countrycount() {
return request.get<any>({ return request.get<any>({
url: '/admin/inquiry/statistics/country/count' // url: '/admin/inquiry/statistics/country/count'
url: '/admin/crm/statistics/country/count'
}) })
} }
//跟单人统计 //跟单人统计
static trackcount() { static trackcount() {
return request.get<any>({ return request.get<any>({
url: '/admin/inquiry/statistics/track/count' // url: '/admin/inquiry/statistics/track/count'
url: '/admin/crm/statistics/track/count'
}) })
} }
//每日录单统计 //每日录单统计
static daycount() { static daycount() {
return request.get<any>({ return request.get<any>({
url: '/admin/inquiry/statistics/day/count' // url: '/admin/inquiry/statistics/day/count'
url: '/admin/crm/statistics/day/count'
}) })
} }
//每日录单统计 //每日录单统计
static inquirycount(params: any) { static inquirycount(params: any) {
return request.get<any>({ return request.get<any>({
url: '/admin/inquiry/statistics/inquiry/count', // url: '/admin/inquiry/statistics/inquiry/count',
url: '/admin/crm/statistics/customer/count',
params params
}) })
} }
+2 -1
View File
@@ -65,7 +65,8 @@ export const asyncRoutes: AppRouteRecord[] = [
component: RoutesAlias.recycle, component: RoutesAlias.recycle,
meta: { meta: {
title: '回收站', title: '回收站',
isHide: true isHide: true,
keepAlive: true
} }
}, },
// 备货单相关路由 // 备货单相关路由
+17
View File
@@ -46,6 +46,13 @@
</el-table-column> </el-table-column>
<!-- <el-table-column prop="description" label="描述" show-overflow-tooltip /> --> <!-- <el-table-column prop="description" label="描述" show-overflow-tooltip /> -->
<!-- <el-table-column prop="sort" label="排序" width="80" /> --> <!-- <el-table-column prop="sort" label="排序" width="80" /> -->
<el-table-column label="是否热门" prop="hot">
<template #default="scope">
<ElTag :type="scope.row.hot == 1 ? 'danger' : 'info'">
{{ scope.row.hot == 1 ? '是' : '否' }}
</ElTag>
</template>
</el-table-column>
<el-table-column label="状态" prop="status"> <el-table-column label="状态" prop="status">
<template #default="scope"> <template #default="scope">
<ElTag :type="scope.row.status ? 'success' : 'info'"> <ElTag :type="scope.row.status ? 'success' : 'info'">
@@ -199,6 +206,12 @@
<ElIcon v-else class="logo-uploader-icon"><Plus /></ElIcon> <ElIcon v-else class="logo-uploader-icon"><Plus /></ElIcon>
</ElUpload> </ElUpload>
</ElFormItem> </ElFormItem>
<ElFormItem label="是否热门" prop="hot">
<el-radio-group v-model="brandForm.hot">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</ElFormItem>
<ElFormItem label="品牌描述" prop="description"> <ElFormItem label="品牌描述" prop="description">
<ElInput v-model="brandForm.description" type="textarea" :rows="3" /> <ElInput v-model="brandForm.description" type="textarea" :rows="3" />
</ElFormItem> </ElFormItem>
@@ -292,6 +305,7 @@
brand_code: '', brand_code: '',
brand_name: '', brand_name: '',
logo: '', logo: '',
hot: 0,
description: '', description: '',
sort: 0, sort: 0,
status: 1 status: 1
@@ -344,6 +358,7 @@
id: row.id, id: row.id,
brand_code: row.brand_code, brand_code: row.brand_code,
brand_name: row.brand_name, brand_name: row.brand_name,
hot: row.hot,
logo: row.logo, logo: row.logo,
description: row.description, description: row.description,
sort: row.sort ?? 0, sort: row.sort ?? 0,
@@ -355,6 +370,7 @@
brand_code: '', brand_code: '',
brand_name: '', brand_name: '',
logo: '', logo: '',
hot: 0,
description: '', description: '',
sort: 0, sort: 0,
status: 1 status: 1
@@ -386,6 +402,7 @@
brand_code: brandForm.brand_code, brand_code: brandForm.brand_code,
brand_name: brandForm.brand_name, brand_name: brandForm.brand_name,
logo: brandForm.logo, logo: brandForm.logo,
hot: brandForm.hot,
description: brandForm.description, description: brandForm.description,
sort: brandForm.sort, sort: brandForm.sort,
status: brandForm.status status: brandForm.status
+2 -2
View File
@@ -36,11 +36,11 @@
<div class="form"> <div class="form">
<!-- 登录方式切换 tab --> <!-- 登录方式切换 tab -->
<div class="login-type-tabs"> <div class="login-type-tabs">
<!-- <span <span
:class="{ active: activeLoginType === 'password' }" :class="{ active: activeLoginType === 'password' }"
@click="activeLoginType = 'password'" @click="activeLoginType = 'password'"
>账号密码登录</span >账号密码登录</span
> --> >
<span <span
:class="{ active: activeLoginType === 'qrcode' }" :class="{ active: activeLoginType === 'qrcode' }"
@click="activeLoginType = 'qrcode'" @click="activeLoginType = 'qrcode'"
+74 -64
View File
@@ -19,35 +19,35 @@
<!-- 总体情况 --> <!-- 总体情况 -->
<div class="flex-d"> <div class="flex-d">
<!-- <transition name="slide-left"> --> <!-- <transition name="slide-left"> -->
<div class="summary-section" v-show="showallChart"> <div class="summary-section" v-show="showallChart">
<h3 class="section-title" style="margin-bottom: 10px">总体情况</h3> <h3 class="section-title" style="margin-bottom: 10px">总体情况</h3>
<div class="summary-grid"> <div class="summary-grid">
<div class="summary-item"> <div class="summary-item">
<div class="summary-number">{{ statisticswholedata.totals }}</div> <div class="summary-number">{{ statisticswholedata.totals }}</div>
<div class="summary-label">总单数</div> <div class="summary-label">总单数</div>
</div> </div>
<div class="summary-item"> <div class="summary-item">
<div class="summary-number">{{ statisticswholedata.channelCount }}</div> <div class="summary-number">{{ statisticswholedata.channelCount }}</div>
<div class="summary-label">渠道总数</div> <div class="summary-label">渠道总数</div>
</div> </div>
<div class="summary-item"> <div class="summary-item">
<div class="summary-number">{{ statisticswholedata.todayCount }}</div> <div class="summary-number">{{ statisticswholedata.todayCount }}</div>
<div class="summary-label">今日录单</div> <div class="summary-label">今日录单</div>
</div> </div>
<div class="summary-item"> <div class="summary-item">
<div class="summary-number">{{ statisticswholedata.releaseCount }}</div> <div class="summary-number">{{ statisticswholedata.releaseCount }}</div>
<div class="summary-label">发布人总数</div> <div class="summary-label">发布人总数</div>
</div> </div>
<div class="summary-item"> <div class="summary-item">
<div class="summary-number">{{ statisticswholedata.countryCount }}</div> <div class="summary-number">{{ statisticswholedata.countryCount }}</div>
<div class="summary-label">国家总数</div> <div class="summary-label">国家总数</div>
</div> </div>
<div class="summary-item"> <div class="summary-item">
<div class="summary-number">{{ statisticswholedata.trackCount }}</div> <div class="summary-number">{{ statisticswholedata.trackCount }}</div>
<div class="summary-label">跟单人总数</div> <div class="summary-label">跟单人总数</div>
</div>
</div> </div>
</div> </div>
</div>
<!-- </transition> --> <!-- </transition> -->
<div class="icons1" v-if="!showallChart" @click="showallChart = !showallChart" > <div class="icons1" v-if="!showallChart" @click="showallChart = !showallChart" >
<img src="@/assets/img/admin/Vector1.png" alt="" /> <img src="@/assets/img/admin/Vector1.png" alt="" />
@@ -60,23 +60,23 @@
<!-- 发布人计数 --> <!-- 发布人计数 -->
<div class="flex-d"> <div class="flex-d">
<!-- <transition name="slide-left"> --> <!-- <transition name="slide-left"> -->
<div class="chart-section" v-show="showPublisherChart"> <div class="chart-section" v-show="showPublisherChart">
<div class="chart-header"> <div class="chart-header">
<h3 class="section-title">询单计数</h3> <h3 class="section-title">询单计数</h3>
<div class="chart-controls"> <div class="chart-controls">
<ElSelect <ElSelect
v-model="publisherFilter" v-model="publisherFilter"
class="filter-select" class="filter-select"
@change="updatePublisherChart" @change="updatePublisherChart"
> >
<ElOption label="全部" value="0" /> <ElOption label="全部" value="0" />
<ElOption label="合塑" value="1" /> <ElOption label="合塑" value="1" />
<ElOption label="派卡" value="3" /> <ElOption label="派卡" value="3" />
</ElSelect> </ElSelect>
</div>
</div> </div>
<div ref="publisherChartRef" class="chart-container"></div>
</div> </div>
<div ref="publisherChartRef" class="chart-container"></div>
</div>
<!-- </transition> --> <!-- </transition> -->
<div class="icons1" v-if="!showPublisherChart" @click="togglePublisherChart" > <div class="icons1" v-if="!showPublisherChart" @click="togglePublisherChart" >
<img src="@/assets/img/admin/Vector1.png" alt="" /> <img src="@/assets/img/admin/Vector1.png" alt="" />
@@ -98,34 +98,32 @@
<!-- 各渠道计数 --> <!-- 各渠道计数 -->
<div class="flex-d-r"> <div class="flex-d-r">
<!-- <transition name="slide-right"> --> <!-- <transition name="slide-right"> -->
<div class="icons" v-if="showchannelChart" @click="toggleshowchannelChart">
<div class="icons" v-if="showchannelChart" @click="toggleshowchannelChart"> <img src="@/assets/img/admin/Vector1.png" alt=""/>
<img src="@/assets/img/admin/Vector1.png" alt=""/> </div>
</div> <div class="chart-section" v-show="showchannelChart">
<div class="chart-section" v-show="showchannelChart"> <h3 class="section-title" style="margin-bottom: 10px">各渠道计数</h3>
<h3 class="section-title" style="margin-bottom: 10px">各渠道计数</h3> <div ref="channelChartRef" class="chart-container"></div>
<div ref="channelChartRef" class="chart-container"></div> </div>
</div> <div class="icons1" v-if="!showchannelChart" @click="toggleshowchannelChart">
<div class="icons1" v-if="!showchannelChart" @click="toggleshowchannelChart"> <img src="@/assets/img/admin/Vector.png" alt="" />
<img src="@/assets/img/admin/Vector.png" alt="" /> </div>
</div>
<!-- </transition> --> <!-- </transition> -->
</div> </div>
<!-- 每日录单 --> <!-- 每日录单 -->
<div class="flex-d-r"> <div class="flex-d-r">
<div class="icons" v-if="showOrdersChart" @click="toggleOrdersChart"> <div class="icons" v-if="showOrdersChart" @click="toggleOrdersChart">
<img src="@/assets/img/admin/Vector1.png" alt=""/> <img src="@/assets/img/admin/Vector1.png" alt=""/>
</div> </div>
<!-- <transition name="slide-right"> --> <!-- <transition name="slide-right"> -->
<div class="chart-section" v-show="showOrdersChart"> <div class="chart-section" v-show="showOrdersChart">
<h3 class="section-title" style="line-height: 36px">每日录单</h3> <h3 class="section-title" style="line-height: 36px">每日录单</h3>
<div ref="dailyOrdersChartRef" class="chart-container"></div> <div ref="dailyOrdersChartRef" class="chart-container"></div>
</div> </div>
<!-- </transition> --> <!-- </transition> -->
<div class="icons1" v-if="!showOrdersChart" @click="toggleOrdersChart"> <div class="icons1" v-if="!showOrdersChart" @click="toggleOrdersChart">
<img src="@/assets/img/admin/Vector.png" alt="" /> <img src="@/assets/img/admin/Vector.png" alt="" />
</div> </div>
</div> </div>
</div> </div>
<!-- 跟单人计数图表区域 --> <!-- 跟单人计数图表区域 -->
@@ -798,7 +796,7 @@
: parseInt(params.data.num)) : parseInt(params.data.num))
) )
} }
}, }
}, },
series: [ series: [
{ {
@@ -810,9 +808,21 @@
color: '#5D87FF', color: '#5D87FF',
shadowBlur: 15, shadowBlur: 15,
shadowColor: '#5D87FF', shadowColor: '#5D87FF',
borderColor: '#fff', borderColor: '#5D87FF',
borderWidth: 2 borderWidth: 2
}, },
label: {
show: true, // 显示标签
formatter: (params: any) => params.data.num, // 显示数据值
position: 'inside', // 标签位置(可选:'top', 'left', 'right', 'bottom', 'inside' 等)
color: '#fff', // 标签文字颜色
fontSize: 10, // 标签字体大小
fontWeight: 'bold', // 标签字体粗细
backgroundColor: '#5D87FF', // 背景色
borderColor: '#fff',
borderRadius: 9, // 圆角
padding: [4, 4] // 内边距
},
tooltip: { tooltip: {
show: true, show: true,
formatter: function (params: any) { formatter: function (params: any) {