From 288a5255372b9fc16f65e0e8ca10400646e7de85 Mon Sep 17 00:00:00 2001
From: lbw_9527443 <780139497@qq.com>
Date: Wed, 22 Oct 2025 18:02:55 +0800
Subject: [PATCH] =?UTF-8?q?refactor(ui):=20=E8=B0=83=E6=95=B4=E5=A4=9A?=
=?UTF-8?q?=E4=B8=AA=E7=BB=84=E4=BB=B6=E7=9A=84=E5=86=85=E8=BE=B9=E8=B7=9D?=
=?UTF-8?q?=E5=92=8C=E6=A0=B7=E5=BC=8F=E4=B8=80=E8=87=B4=E6=80=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
fix(GoodMusic): 修复录音列表数据结构和显示问题
style: 统一多个组件的头部内边距为10px 20px 10px
chore: 切换API基础路径为生产环境
---
my-vue-app/src/utils/https.js | 4 +-
.../person/components/PersonalDashboard.vue | 2 +-
.../secondTop/components/CustomerType.vue | 2 +-
.../views/secondTop/components/GoodMusic.vue | 64 ++++++++++++++-----
.../secondTop/components/ProblemRanking.vue | 2 +-
my-vue-app/src/views/secondTop/secondTop.vue | 2 +-
.../senorManger/components/GroupRanking.vue | 2 +-
7 files changed, 55 insertions(+), 23 deletions(-)
diff --git a/my-vue-app/src/utils/https.js b/my-vue-app/src/utils/https.js
index a845c4b..07a1086 100644
--- a/my-vue-app/src/utils/https.js
+++ b/my-vue-app/src/utils/https.js
@@ -5,8 +5,8 @@ import { useUserStore } from '@/stores/user'
// 创建axios实例
const service = axios.create({
- // baseURL: 'https://mldash.nycjy.cn/' || '', // API基础路径,支持完整URL
- baseURL: 'http://192.168.15.121:8890' || '', // API基础路径,支持完整URL
+ baseURL: 'https://mldash.nycjy.cn/' || '', // API基础路径,支持完整URL
+ // baseURL: 'http://192.168.15.121:8890' || '', // API基础路径,支持完整URL
timeout: 100000, // 请求超时时间
headers: {
'Content-Type': 'application/json;charset=UTF-8'
diff --git a/my-vue-app/src/views/person/components/PersonalDashboard.vue b/my-vue-app/src/views/person/components/PersonalDashboard.vue
index 0200fd6..dadfb84 100644
--- a/my-vue-app/src/views/person/components/PersonalDashboard.vue
+++ b/my-vue-app/src/views/person/components/PersonalDashboard.vue
@@ -658,7 +658,7 @@ $white: #ffffff;
display: flex;
justify-content: space-between;
align-items: center;
- padding: 20px 20px 16px;
+ padding: 10px 20px 10px;
border-bottom: 1px solid #ebeef5;
h3 { margin: 0; color: $slate-900; font-size: 18px; font-weight: 600; }
}
diff --git a/my-vue-app/src/views/secondTop/components/CustomerType.vue b/my-vue-app/src/views/secondTop/components/CustomerType.vue
index e16b522..ebbceb8 100644
--- a/my-vue-app/src/views/secondTop/components/CustomerType.vue
+++ b/my-vue-app/src/views/secondTop/components/CustomerType.vue
@@ -311,7 +311,7 @@ onBeforeUnmount(() => {
display: flex;
justify-content: space-between;
align-items: center;
- padding: 20px 20px 16px;
+ padding: 10px 20px 10px;
border-bottom: 1px solid #ebeef5;
h3 { margin: 0; color: #303133; font-size: 18px; font-weight: 600; }
}
diff --git a/my-vue-app/src/views/secondTop/components/GoodMusic.vue b/my-vue-app/src/views/secondTop/components/GoodMusic.vue
index b2817e4..1887c1b 100644
--- a/my-vue-app/src/views/secondTop/components/GoodMusic.vue
+++ b/my-vue-app/src/views/secondTop/components/GoodMusic.vue
@@ -18,6 +18,7 @@
:class="{ active: selectedRecording === index }"
@click="selectRecording(index)"
>
+ {{ recording.score}}
{{ recording.name.length > 10 ? recording.name.substring(0, 10) + '...' : recording.name }}
@@ -172,8 +173,8 @@ import MarkdownIt from 'markdown-it'
// Props定义
const props = defineProps({
qualityCalls: {
- type: Object,
- default: () => ({})
+ type: Array,
+ default: () => []
}
})
@@ -221,24 +222,23 @@ const recordings = computed(() => {
if (!props.qualityCalls ) {
return staticRecordings.value;
}
-
+ console.log(66666,props.qualityCalls);
const recordingsList = [];
- Object.keys(props.qualityCalls).forEach(userName => {
- props.qualityCalls[userName].forEach((record, index) => {
+ props.qualityCalls.forEach((record, index) => {
recordingsList.push({
id: recordingsList.length + 1,
- name: record.obj_file_name ? record.obj_file_name.split('/').pop() : `${record.sale_name}-录音-${index + 1}`,
+ name: record.record_name ? record.record_name : `${record.sale_name}-录音-${index + 1}`,
date: new Date().toISOString().split('T')[0],
- url: record.obj_file_name,
- transcription: record.context || null,
- score: record.score,
- sop: record.sop,
- sale_name: record.sale_name,
+ url: record.record_file_addr,
+ transcription: record.record_context || null,
+ score: record.record_score,
+ sop: record.record_report,
+ sale_name: record.record_name,
size: 2048576, // 默认文件大小 2MB
- uploadTime: new Date().toLocaleDateString('zh-CN')
+ uploadTime: record.created_at,
});
});
- });
+
return recordingsList;
})
@@ -512,7 +512,7 @@ const downloadRecording = (index) => {
display: flex;
justify-content: space-between;
align-items: center;
- padding: 20px 20px 0;
+ padding: 10px 20px 0;
border-bottom: 1px solid #ebeef5;
}
@@ -549,7 +549,7 @@ const downloadRecording = (index) => {
}
.chart-content {
- padding: 20px;
+ padding: 10px;
}
.recording-section {
@@ -562,7 +562,6 @@ const downloadRecording = (index) => {
.recording-list {
margin-bottom: 20px;
max-height: 400px;
- overflow-y: auto;
}
.recording-item {
@@ -602,6 +601,39 @@ const downloadRecording = (index) => {
display: inline-block;
}
+.recording-index {
+ /* 基础分数样式 */
+ padding: 2px 8px;
+ border-radius: 12px;
+ font-size: 12px;
+ font-weight: 600;
+ background-color: #e9ecef;
+ color: #495057;
+ margin-right: 10px;
+}
+
+/* 第一名样式 */
+.recording-item:first-child .recording-index {
+ background: linear-gradient(135deg, #FFD700, #FFA500);
+ color: #fff;
+ box-shadow: 0 2px 4px rgba(255, 215, 0, 0.3);
+}
+
+/* 第二名样式 */
+.recording-item:nth-child(2) .recording-index {
+ background: linear-gradient(135deg, #C0C0C0, #A9A9A9);
+ color: #fff;
+ box-shadow: 0 2px 4px rgba(192, 192, 192, 0.3);
+}
+
+/* 第三名样式 */
+.recording-item:nth-child(3) .recording-index {
+ background: linear-gradient(135deg, #CD7F32, #A0522D);
+ color: #fff;
+ box-shadow: 0 2px 4px rgba(205, 127, 50, 0.3);
+}
+
+
.recording-meta {
display: flex;
gap: 12px;
diff --git a/my-vue-app/src/views/secondTop/components/ProblemRanking.vue b/my-vue-app/src/views/secondTop/components/ProblemRanking.vue
index ba642f2..d950518 100644
--- a/my-vue-app/src/views/secondTop/components/ProblemRanking.vue
+++ b/my-vue-app/src/views/secondTop/components/ProblemRanking.vue
@@ -196,7 +196,7 @@ async function exportData() {
}
.chart-header {
- padding: 20px 20px 16px;
+ padding: 10px 20px 10px;
border-bottom: 1px solid #ebeef5;
display: flex;
justify-content: space-between;
diff --git a/my-vue-app/src/views/secondTop/secondTop.vue b/my-vue-app/src/views/secondTop/secondTop.vue
index 7e843ed..4b40fdf 100644
--- a/my-vue-app/src/views/secondTop/secondTop.vue
+++ b/my-vue-app/src/views/secondTop/secondTop.vue
@@ -178,7 +178,7 @@
-
+
diff --git a/my-vue-app/src/views/senorManger/components/GroupRanking.vue b/my-vue-app/src/views/senorManger/components/GroupRanking.vue
index 247a440..ae94ac9 100644
--- a/my-vue-app/src/views/senorManger/components/GroupRanking.vue
+++ b/my-vue-app/src/views/senorManger/components/GroupRanking.vue
@@ -151,7 +151,7 @@ $white: #ffffff;
display: flex;
justify-content: space-between;
align-items: center;
- padding: 0px 20px 16px;
+ padding: 0px 20px 10px;
border-bottom: 1px solid #ebeef5;
h3 {
margin: 0;