diff --git a/pages/index/index.vue b/pages/index/index.vue
index 8b96fb9..818aea6 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -158,7 +158,7 @@
text="生成图纸"
color="#3F70FF"
>
-
+
+
+
+ 投诉与
+ 纠纷
+
+
+
+
+
+ 为规范平台交易秩序,保障用户合法权益,结合我司图纸生成、电子图纸、设计方案等虚拟数字类产品的业务特性,特建立完善的客户投诉及纠纷处理机制,具体如下:
+ 一、业务及退款规则说明
+ 我司提供的图纸生成服务为虚拟数字类产品,具有可复制、易传播、交付即生效的属性,产品一经生成并交付用户,无法进行回收、撤回或二次销售。
+ 因此在产品正常交付、内容符合约定、无质量问题的情况下,不支持无理由退款。相关规则已在商品详情页、订单页、支付确认环节进行显著提示,用户完成支付即视为已充分知晓并同意。
+ 二、投诉受理渠道
+ 用户可通过以下渠道提交投诉与售后申请,确保问题及时反馈:
+ 客服电话:13666500395
+ 三、投诉响应时效
+ 收到用户投诉后,工作日2小时内响应,非工作日当天内响应;
一般投诉问题24小时内处理完毕并反馈结果;
复杂争议类问题48小时内给出解决方案。
+ 四、客诉分类处理方案
+ 【支付异常类】针对重复扣款、支付成功未到账、订单异常等情况,经核实后立即原路全额退款或补发对应服务,确保用户资金不受损失。
+ 【产品质量类】若图纸生成错误、内容缺失、未达到服务标准,优先为用户重新生成、修改完善或补发,保障用户正常使用。
+ 【服务争议类】对已正常交付、无质量问题的退款申请,将依据订单记录、交付凭证、用户协议耐心解释沟通;如确属特殊情况,将在核实后按公司流程审慎处理。
+ 【恶意投诉类】对已使用产品后恶意申请退款的行为,将留存完整凭证,按支付平台规则合理举证,维护正常经营秩序。
+ 五、退款执行规范
+ 确需退款的场景,一律按原支付渠道原路退回,退款时限遵循支付平台规定,不设置不合理门槛,不拖延、不拒付。
+ 六、长效管理机制
+ 我司将持续完善售前提示、服务说明及售后流程,主动降低投诉发生率,积极配合支付平台监督管理,妥善处理各类交易纠纷,保障交易安全与用户体验。
+
+
+
@@ -200,7 +235,7 @@ import {
} from "@dcloudio/uni-app";
import { useAuthStore, useUserStore } from "@/store";
import RPC from "@/utils/request";
-import { usePermission } from "@/hooks/usePermission";
+import { usePermission } from "@/hooks/usePermission";
import dayjs from 'dayjs'
const authStore = useAuthStore();
@@ -213,6 +248,20 @@ const applyModalRef = ref(null);
const applyReason = ref("");
const applyLoading = ref(false);
+const complaintModalRef = ref(null);
+const openComplaintModal = () => {
+ complaintModalRef.value.open();
+};
+const closeComplaintModal = () => {
+ complaintModalRef.value.close();
+};
+
+const callService = () => {
+ uni.makePhoneCall({
+ phoneNumber: '13666500395'
+ });
+};
+
// 根据category分组参数
const groupedParams = computed(() => {
if (!currentTemplate.value.params) return {};
@@ -247,8 +296,8 @@ const get_access_status = (access_status) => {
str = access_status;
}
return str;
-};
-
+};
+
const bugFeedback = () => {
uni.navigateTo({
url: "/pagesA/bug-feedback/bug-feedback",
@@ -485,7 +534,7 @@ const getList = () => {
has_access.value = true;
RPC.post("/template/detail", { id: currentTemplate.value.id })
.then((res) => {
- currentTemplate.value.params = res?.params;
+ currentTemplate.value.params = res?.params;
generateDrawingNumber()
})
.finally(() => {
@@ -757,6 +806,62 @@ onPullDownRefresh(() => {
}
}
}
+.floating-btn {
+ position: fixed;
+ right: 16px;
+ bottom: 120px;
+ /* #ifdef H5 */
+ bottom: 170px;
+ /* #endif */
+ width: 56px;
+ height: 56px;
+ background: linear-gradient(135deg, #3f70ff, #5c8aff);
+ border-radius: 50%;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ color: white;
+ box-shadow: 0 4px 12px rgba(63, 112, 255, 0.4);
+ z-index: 99;
+ font-size: 12px;
+
+ .floating-text {
+ line-height: 1.2;
+ }
+}
+
+.complaint-content {
+ max-height: 60vh;
+ padding: 0 10px 10px;
+
+ .complaint-text {
+ font-size: 14px;
+ color: #333;
+ line-height: 1.6;
+
+ .h3 {
+ font-size: 15px;
+ font-weight: bold;
+ margin-top: 16px;
+ margin-bottom: 8px;
+ color: #111;
+ }
+
+ .p {
+ margin-bottom: 8px;
+ text-align: justify;
+ color: #666;
+ }
+
+ .phone-link {
+ color: #3f70ff;
+ text-decoration: underline;
+ display: inline-block;
+ padding: 0 4px;
+ }
+ }
+}