shuishen
2025-10-11 3fc27febccd04e2fcffbd2cdd16d2daafd0b3ca3
src/components/agree-privacy/index.vue
@@ -7,19 +7,27 @@
      <view class="flex flex-col">
        <span class="pt-30rpx text-black font-bold">{{ initSubTitle }}</span>
        <span class="pt-30rpx text-sm text-black">1.为向您提供基本的服务,我们会遵循正当、合法、必要的原则收集和使用必要的信息。</span>
        <span class="pt-30rpx text-sm text-black">2.基于您的授权我们可能会收集和使用您的相关信息,您有权拒绝或取消授权。</span>
        <span class="pt-30rpx text-sm text-black">3.未经您的授权同意,我们不会将您的信息共享给第三方或用于您未授权的其他用途。</span>
        <span class="pt-30rpx text-sm text-black">4.详细信息请您完整阅读<text class="text-decoration" @click="openPrivacyContract">{{
          initPrivacyContractName
        }}</text></span>
        <span class="pt-30rpx text-sm text-black"
          >1.为向您提供基本的服务,我们会遵循正当、合法、必要的原则收集和使用必要的信息。</span
        >
        <span class="pt-30rpx text-sm text-black"
          >2.基于您的授权我们可能会收集和使用您的相关信息,您有权拒绝或取消授权。</span
        >
        <span class="pt-30rpx text-sm text-black"
          >3.未经您的授权同意,我们不会将您的信息共享给第三方或用于您未授权的其他用途。</span
        >
        <span class="pt-30rpx text-sm text-black"
          >4.详细信息请您完整阅读<text
            class="text-decoration"
            @click="openPrivacyContract"
            >{{ initPrivacyContractName }}</text
          ></span
        >
      </view>
      <view class="mt-30rpx flex items-center justify-around pt-10rpx">
        <view class="min-w-100px">
          <button class="button button-default" @click="disagree">
            拒绝
          </button>
          <button class="button button-default" @click="disagree">拒绝</button>
        </view>
        <view class="min-w-100px">
          <button
@@ -39,41 +47,41 @@
<script setup>
const props = withDefaults(defineProps(), {
  modelValue: false,
  title: '',
  subTitle: '',
  title: "",
  subTitle: "",
  disableCheckPrivacy: true,
  agreePrivacyId: 'agree-btn',
  agreePrivacyId: "agree-btn",
});
const emit = defineEmits([
  'update:modelValue',
  'needPrivacyAuthorization',
  'agree',
  'disagree',
  "update:modelValue",
  "needPrivacyAuthorization",
  "agree",
  "disagree",
]);
// 初始化的标题
const initTitle = ref('隐私政策概要');
const initTitle = ref("隐私政策概要");
// 初始化的副标题
const initSubTitle = ref('');
const initSubTitle = ref("");
// 隐私政策
const initPrivacyContractName = ref('隐私政策');
const initPrivacyContractName = ref("隐私政策");
// 打开隐私
function openAgreePrivacy() {
  emit('update:modelValue', true);
  emit("update:modelValue", true);
}
// 关闭隐私
function closeAgreePrivacy() {
  emit('update:modelValue', false);
  emit("update:modelValue", false);
}
// 需要初始化的数据
function initData() {
  initTitle.value = props.title || initTitle.value;
  initSubTitle.value
    = props.subTitle
      || `亲爱的用户,感谢您一直以来的支持!为了更好地保护您的权益,同时遵守相关监管要求,请认真阅读${initPrivacyContractName.value},特向您说明如下:`;
  initSubTitle.value =
    props.subTitle ||
    `亲爱的用户,感谢您一直以来的支持!为了更好地保护您的权益,同时遵守相关监管要求,请认真阅读${initPrivacyContractName.value},特向您说明如下:`;
}
// 检测是否授权
@@ -89,8 +97,7 @@
          // 需要弹出隐私协议
          openAgreePrivacy();
        }
      }
      else {
      } else {
        // 用户已经同意过隐私协议,所以不需要再弹出隐私协议,也能调用已声明过的隐私接口
        // wx.getUserProfile()
      }
@@ -112,14 +119,14 @@
// 同意
function agree(e) {
  const buttonId = e.target.id || 'agree-btn';
  emit('agree', buttonId);
  emit('update:modelValue', false);
  const buttonId = e.target.id || "agree-btn";
  emit("agree", buttonId);
  emit("update:modelValue", false);
}
// 拒绝
function disagree() {
  emit('disagree');
  emit("disagree");
  closeAgreePrivacy();
}