<template>
  <view>
    <!-- 悬浮按钮 -->
    <view class="floating-btn" @click="openComplaintModal">
      <view class="floating-text">投诉与</view>
      <view class="floating-text">纠纷</view>
    </view>
    
    <!-- 客户投诉与纠纷处理机制弹窗 -->
    <uv-modal
      ref="complaintModalRef"
      title="客户投诉与纠纷处理机制说明"
      confirmText="我知道了"
      @confirm="closeComplaintModal"
    >
      <scroll-view scroll-y class="complaint-content">
        <view class="complaint-text">
          <view class="p">为规范平台交易秩序，保障用户合法权益，结合我司图纸生成、电子图纸、设计方案等虚拟数字类产品的业务特性，特建立完善的客户投诉及纠纷处理机制，具体如下：</view>
          <view class="h3">一、业务及退款规则说明</view>
          <view class="p">我司提供的图纸生成服务为虚拟数字类产品，具有可复制、易传播、交付即生效的属性，产品一经生成并交付用户，无法进行回收、撤回或二次销售。</view>
          <view class="p">因此在产品正常交付、内容符合约定、无质量问题的情况下，不支持无理由退款。相关规则已在商品详情页、订单页、支付确认环节进行显著提示，用户完成支付即视为已充分知晓并同意。</view>
          <view class="h3">二、投诉受理渠道</view>
          <view class="p">用户可通过以下渠道提交投诉与售后申请，确保问题及时反馈：</view>
          <view class="p">客服电话：<text class="phone-link" @click="callService">13666500395</text></view>
          <view class="h3">三、投诉响应时效</view>
          <view class="p">收到用户投诉后，工作日2小时内响应，非工作日当天内响应；<br/>一般投诉问题24小时内处理完毕并反馈结果；<br/>复杂争议类问题48小时内给出解决方案。</view>
          <view class="h3">四、客诉分类处理方案</view>
          <view class="p">【支付异常类】针对重复扣款、支付成功未到账、订单异常等情况，经核实后立即原路全额退款或补发对应服务，确保用户资金不受损失。</view>
          <view class="p">【产品质量类】若图纸生成错误、内容缺失、未达到服务标准，优先为用户重新生成、修改完善或补发，保障用户正常使用。</view>
          <view class="p">【服务争议类】对已正常交付、无质量问题的退款申请，将依据订单记录、交付凭证、用户协议耐心解释沟通；如确属特殊情况，将在核实后按公司流程审慎处理。</view>
          <view class="p">【恶意投诉类】对已使用产品后恶意申请退款的行为，将留存完整凭证，按支付平台规则合理举证，维护正常经营秩序。</view>
          <view class="h3">五、退款执行规范</view>
          <view class="p">确需退款的场景，一律按原支付渠道原路退回，退款时限遵循支付平台规定，不设置不合理门槛，不拖延、不拒付。</view>
          <view class="h3">六、长效管理机制</view>
          <view class="p">我司将持续完善售前提示、服务说明及售后流程，主动降低投诉发生率，积极配合支付平台监督管理，妥善处理各类交易纠纷，保障交易安全与用户体验。</view>
        </view>
      </scroll-view>
    </uv-modal>
  </view>
</template>

<script setup>
import { ref } from 'vue';

const complaintModalRef = ref(null);

const openComplaintModal = () => {
  complaintModalRef.value.open();
};

const closeComplaintModal = () => {
  complaintModalRef.value.close();
};

const callService = () => {
  uni.makePhoneCall({
    phoneNumber: '13666500395'
  });
};
</script>

<style lang="scss" scoped>
.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(255, 107, 107, 0.4);
  z-index: 999;
  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;
    }
  }
}
</style>
