From 600684570aa9fe5b3ebff6fd9989a70c429060a2 Mon Sep 17 00:00:00 2001 From: lbw_9527443 <780139497@qq.com> Date: Tue, 30 Sep 2025 15:59:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=8F=8D=E9=A6=88=E7=B3=BB=E7=BB=9F):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E5=8F=8D=E9=A6=88=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在多个视图页面中添加反馈按钮和FeedbackForm组件,允许用户提交反馈意见。主要变更包括: 1. 创建FeedbackForm.vue组件实现反馈表单 2. 在topone、seniorManager、secondTop等视图添加反馈按钮 3. 实现表单提交逻辑和样式 4. 修复manager.vue中Sale组件路径大小写问题 5. 将index.html语言设置为中文 --- my-vue-app/index.html | 2 +- my-vue-app/src/components/FeedbackForm.vue | 334 ++++++++++++++++++ my-vue-app/src/views/maneger/manager.vue | 2 +- my-vue-app/src/views/person/sale.vue | 42 ++- my-vue-app/src/views/secondTop/secondTop.vue | 12 +- .../src/views/senorManger/seniorManager.vue | 13 +- my-vue-app/src/views/topOne/topone.vue | 17 +- 7 files changed, 410 insertions(+), 12 deletions(-) create mode 100644 my-vue-app/src/components/FeedbackForm.vue diff --git a/my-vue-app/index.html b/my-vue-app/index.html index 8388c4b..2acdebf 100644 --- a/my-vue-app/index.html +++ b/my-vue-app/index.html @@ -1,5 +1,5 @@ - + diff --git a/my-vue-app/src/components/FeedbackForm.vue b/my-vue-app/src/components/FeedbackForm.vue new file mode 100644 index 0000000..88f56c9 --- /dev/null +++ b/my-vue-app/src/components/FeedbackForm.vue @@ -0,0 +1,334 @@ + + + + + \ No newline at end of file diff --git a/my-vue-app/src/views/maneger/manager.vue b/my-vue-app/src/views/maneger/manager.vue index 8f0bbbf..8ff3af8 100644 --- a/my-vue-app/src/views/maneger/manager.vue +++ b/my-vue-app/src/views/maneger/manager.vue @@ -74,7 +74,7 @@ import TeamReport from "./components/TeamReport.vue"; import SalesFunnel from "./components/SalesFunnel.vue"; import PerformanceRanking from "./components/PerformanceRanking.vue"; import MemberDetails from "./components/MemberDetails.vue"; -import Sale from "../person/Sale.vue"; +import Sale from "../person/sale.vue"; import SalesTimelineWithTaskList from "../person/components/SalesTimelineWithTaskList.vue"; import RawDataCards from "../person/components/RawDataCards.vue"; import CustomerDetail from "../person/components/CustomerDetail.vue"; diff --git a/my-vue-app/src/views/person/sale.vue b/my-vue-app/src/views/person/sale.vue index d8d36dd..b9ac3a1 100644 --- a/my-vue-app/src/views/person/sale.vue +++ b/my-vue-app/src/views/person/sale.vue @@ -29,10 +29,20 @@ style="display: flex; align-items: center; gap: 30px" > +
+ + + /> +
+ + @@ -182,6 +192,7 @@ import RawDataCards from "./components/RawDataCards.vue"; import WeekAnalize from "./components/WeekAnalize.vue"; import UserDropdown from "@/components/UserDropdown.vue"; import Loading from "@/components/Loading.vue"; +import FeedbackForm from "@/components/FeedbackForm.vue"; import {getCustomerAttendance,getTodayCall,getProblemDistribution,getTableFillingRate,getAverageResponseTime, getWeeklyActiveCommunicationRate,getTimeoutResponseRate,getCustomerCallInfo,getCustomerChatInfo,getCustomerFormInfo, getConversionRateAndAllocatedData,getCustomerAttendanceAfterClass4,getPayMoneyCustomers,getSalesFunnel,getGoldContactTime, @@ -294,6 +305,9 @@ const showModal = ref(false) const modalContent = ref('') const modalTitle = ref('') +// FeedbackForm 弹框状态 +const showFeedbackForm = ref(false) + // 下载弹框状态 const showDownloadModal = ref(false) const downloadModalContent = ref('') @@ -891,6 +905,16 @@ const closeDownloadModal = () => { downloadModalTitle.value = '' } +// 显示 FeedbackForm +const showFeedbackFormModal = () => { + showFeedbackForm.value = true +} + +// 关闭 FeedbackForm +const closeFeedbackFormModal = () => { + showFeedbackForm.value = false +} + // // 处理SOP分析事件 // const handleAnalyzeSop = (analyzeData) => { // console.log('handleAnalyzeSop', analyzeData) @@ -1944,6 +1968,22 @@ $primary: #3b82f6; } } +// 意见反馈按钮样式 +.feedback-btn { + background-color: #4299e1; + color: white; + border: none; + border-radius: 6px; + padding: 0.5rem 1rem; + font-size: 0.9rem; + cursor: pointer; + transition: background-color 0.2s; +} + +.feedback-btn:hover { + background-color: #3182ce; +} + // 弹框响应式样式 @media (max-width: 768px) { .modal-container { diff --git a/my-vue-app/src/views/secondTop/secondTop.vue b/my-vue-app/src/views/secondTop/secondTop.vue index e4d7776..255f412 100644 --- a/my-vue-app/src/views/secondTop/secondTop.vue +++ b/my-vue-app/src/views/secondTop/secondTop.vue @@ -28,10 +28,18 @@
+
+ + + /> +
@@ -176,7 +184,7 @@