产品化: 统一title

This commit is contained in:
zhonghua1
2025-12-27 14:40:42 +08:00
parent 46e793d4da
commit f93affb4a4
9 changed files with 694 additions and 289 deletions

View File

@@ -8,7 +8,8 @@
<uni-nav-bar
:fixed="true"
:statusBar="true"
title="AI销售管理"
:border="false"
title="AI销管系统"
leftIcon="left"
@clickLeft="goBack"
color="#333"
@@ -16,11 +17,6 @@
</uni-nav-bar>
<view class="content">
<!-- AI功能横幅 -->
<view class="ai-banner">
<text class="banner-text">AI让销售过程和团队管理更透明</text>
</view>
<!-- 标签页 -->
<view class="tabs">
<view
@@ -568,10 +564,11 @@ import { getApiUrl } from "@/common/config.js";
}
this.serviceStatusLoading = true;
try {
// 构建查询参数对象
const queryParams = {
current: this.serviceStatusPage.current,
size: this.serviceStatusPage.size,
syncStatus: '服务中'
serviceStatus: '服务中' // 默认搜索条件
};
const trimmedSalesName = this.serviceStatusQuery?.salesName?.trim();
const trimmedCustomerName = this.serviceStatusQuery?.customerName?.trim();
@@ -581,12 +578,28 @@ import { getApiUrl } from "@/common/config.js";
if (trimmedCustomerName) {
queryParams.customerName = trimmedCustomerName;
}
// 后端改为 POST 接口,参数放请求体
const url = getApiUrl('/api/audioManagement/list');
// 确保 serviceStatus 始终存在
queryParams.serviceStatus = '服务中';
// 将参数转换为 URL 查询字符串(因为后端使用 @RequestParam
const queryString = Object.keys(queryParams)
.filter(key => queryParams[key] !== null && queryParams[key] !== undefined && queryParams[key] !== '')
.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(queryParams[key])}`)
.join('&');
// 调试:打印请求参数
console.log('服务状态查询参数:', JSON.stringify(queryParams));
console.log('查询字符串:', queryString);
// 后端使用 @RequestParam参数需要作为 URL 查询参数传递
const baseUrl = getApiUrl('/api/audioManagement/list');
const url = queryString ? `${baseUrl}?${queryString}` : baseUrl;
const res = await uni.request({
url,
method: 'POST',
data: queryParams,
data: {}, // POST 请求体为空,参数都在 URL 查询字符串中
header: {
'Content-Type': 'application/json'
},
@@ -1161,39 +1174,43 @@ import { getApiUrl } from "@/common/config.js";
}
.content {
padding-top: 88rpx;
padding-top: 0; /* 移除padding-top因为tab页和scroll-view都使用绝对定位 */
margin-top: 0;
position: relative;
min-height: 100vh; /* 确保content有足够高度 */
}
/* AI功能横幅 */
.ai-banner {
background-color: #E3F2FD;
padding: 24rpx 16rpx;
display: flex;
justify-content: space-between;
align-items: center;
/* 隐藏导航栏占位区域(红色区域) */
::v-deep .uni-navbar__placeholder {
display: none !important;
height: 0 !important;
}
.banner-text {
font-size: 28rpx;
color: #1976D2;
flex: 1;
::v-deep .uni-navbar__placeholder-view {
display: none !important;
height: 0 !important;
}
.banner-btn {
font-size: 28rpx;
color: #1976D2;
font-weight: 500;
margin-left: 16rpx;
/* 隐藏导航栏底部边框 */
::v-deep .uni-navbar--border {
border-bottom: none !important;
}
/* 标签页 */
/* 标签页 - 使用绝对定位紧贴导航栏,消除红色空白区域 */
.tabs {
display: flex;
background-color: #FFFFFF;
border-bottom: 1px solid #E0E0E0;
padding: 0 16rpx;
margin-top: 0;
position: absolute;
top: 88rpx;
left: 0;
right: 0;
z-index: 1;
}
.tab-item {
padding: 24rpx 32rpx;
position: relative;
@@ -1222,61 +1239,89 @@ import { getApiUrl } from "@/common/config.js";
/* 服务状态列表 */
.service-status-list {
height: calc(100vh - 300rpx);
/* 使用绝对定位从tab页底部开始高度计算100vh - 导航栏(88rpx) - tab页(72rpx) - 底部导航栏(96rpx) */
position: absolute;
top: 160rpx; /* 导航栏(88rpx) + tab页(72rpx) = 160rpx */
left: 0;
right: 0;
bottom: 96rpx; /* 底部导航栏高度 */
background-color: #F5F5F5;
padding: 24rpx 16rpx;
padding: 24rpx 16rpx 0 16rpx; /* 顶部24rpx间距与列表项间距一致底部0 */
box-sizing: border-box;
}
/* 标签管理列表区:仅缩小高度到当前的 70%,宽度保持不变 */
/* 标签管理列表区:使用绝对定位与service-status-list保持一致 */
.tag-list {
height: calc((100vh - 300rpx) * 0.7);
/* 使用绝对定位从tab页底部开始高度计算100vh - 导航栏(88rpx) - tab页(72rpx) - 底部导航栏(96rpx) */
position: absolute;
top: 160rpx; /* 导航栏(88rpx) + tab页(72rpx) = 160rpx */
left: 0;
right: 0;
bottom: 96rpx; /* 底部导航栏高度 */
/* 如果需要缩小高度可以调整bottom值比如 bottom: calc(96rpx + (100vh - 88rpx - 72rpx - 96rpx) * 0.3); */
}
.service-status-toolbar {
display: flex;
flex-wrap: nowrap;
align-items: center;
gap: 16rpx;
padding: 16rpx 24rpx;
margin-bottom: 24rpx;
gap: 8rpx; /* 增加间距,避免元素被挤压 */
padding: 12rpx 8rpx; /* 增加内边距,给搜索框更多空间 */
margin-bottom: 24rpx; /* 与列表项间距保持一致24rpx */
background-color: #F8F8FA;
border-radius: 16rpx;
border-radius: 8rpx;
border: 1px solid #EFEFF2;
overflow-x: auto;
min-height: 64rpx; /* 设置最小高度,确保搜索区域不被挤压 */
box-sizing: border-box;
}
.toolbar-total {
font-size: 26rpx;
font-size: 24rpx;
color: #666;
margin-right: 16rpx;
white-space: nowrap;
flex-shrink: 0;
margin-right: 8rpx; /* 增加右边距,与搜索框保持距离 */
line-height: 1.2;
padding: 0 4rpx; /* 增加左右内边距 */
}
.toolbar-input {
flex: 1;
min-width: 150rpx;
min-width: 120rpx; /* 增加最小宽度,避免被挤压变形 */
max-width: 200rpx; /* 设置最大宽度,保持合理比例 */
height: 56rpx; /* 稍微增加高度,提升可用性 */
line-height: 56rpx;
background-color: #F5F6FA;
border-radius: 12rpx;
padding: 16rpx 24rpx;
font-size: 28rpx;
border-radius: 8rpx;
padding: 0 12rpx; /* 增加左右内边距 */
font-size: 24rpx;
border: 1px solid transparent;
box-sizing: border-box;
flex-shrink: 1; /* 允许适当收缩,但保持最小宽度 */
}
.toolbar-actions {
display: flex;
align-items: center;
margin-left: auto;
flex-shrink: 0;
gap: 8rpx; /* 增加按钮之间的间距 */
}
.toolbar-btn {
padding: 0 16rpx;
height: 72rpx;
padding: 0 12rpx; /* 增加左右内边距 */
height: 56rpx; /* 与输入框高度保持一致 */
min-width: 56rpx;
color: #2A68FF;
display: flex;
align-items: center;
justify-content: center;
gap: 8rpx;
font-size: 28rpx;
gap: 4rpx; /* 增加图标和文字之间的间距 */
font-size: 24rpx;
font-weight: 400;
line-height: 1;
box-sizing: border-box;
}
.service-card {
@@ -1527,9 +1572,14 @@ import { getApiUrl } from "@/common/config.js";
/* 开始接待表单样式 */
.reception-form {
height: calc(100vh - 300rpx);
/* 使用绝对定位从tab页底部开始高度计算100vh - 导航栏(88rpx) - tab页(72rpx) - 底部导航栏(96rpx) */
position: absolute;
top: 160rpx; /* 导航栏(88rpx) + tab页(72rpx) = 160rpx */
left: 0;
right: 0;
bottom: 96rpx; /* 底部导航栏高度 */
background-color: #F5F5F5;
padding: 24rpx 16rpx;
padding: 24rpx 16rpx 0 16rpx; /* 顶部24rpx间距与列表项间距一致底部0 */
box-sizing: border-box;
}
@@ -1749,8 +1799,14 @@ import { getApiUrl } from "@/common/config.js";
/* 标签管理样式 - 添加表单 */
.tag-management {
height: calc(100vh - 300rpx);
/* 使用绝对定位从tab页底部开始高度计算100vh - 导航栏(88rpx) - tab页(72rpx) - 底部导航栏(96rpx) */
position: absolute;
top: 160rpx; /* 导航栏(88rpx) + tab页(72rpx) = 160rpx */
left: 0;
right: 0;
bottom: 96rpx; /* 底部导航栏高度 */
background-color: #F5F5F5;
box-sizing: border-box;
}
/* 标签卡片操作菜单 */