更新记录

1.0.0(2023-07-01)

组件初始化


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.8.0 app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

cc-protocolBox

使用方法

<!-- agree:是否同意勾选  protocolArr:协议数组 @click:勾选同意点击 @protocolClick:协议点击 -->
<cc-protocolBox :agree="agree" :protocolArr="protocolArr" @click="agree = !agree"
            @protocolClick="protocolClick"></cc-protocolBox>    

HTML代码实现部分

<template>
    <view>

        <view class="header">单个协议条款</view>

        <!-- agree:是否同意勾选  protocolArr:协议数组 @click:勾选同意点击 @protocolClick:协议点击 -->
        <cc-protocolBox :agree="agree" :protocolArr="protocolArr" @click="agree = !agree"
            @protocolClick="protocolClick"></cc-protocolBox>

        <view class="header">多个协议条款</view>

        <!-- agree:是否同意勾选  protocolArr:协议数组 @click:勾选同意点击 @protocolClick:协议点击 -->
        <cc-protocolBox :agree="agreeTwo" :protocolArr="protocolArrTwo" @click="agreeTwo = !agreeTwo"
            @protocolClick="protocolClickTwo"></cc-protocolBox>

    </view>
</template>

<script>
    export default {
        data() {
            return {
                agree: false,
                agreeTwo: false,
                protocolArr: ["<App隐私协议>"],
                protocolArrTwo: ["风险提示函", "基金合同", "招募说明书", "基金产品概要"],

            }
        },
        methods: {

            protocolClick(tag) {

                console.log('点击协议序列 = ' + tag);
                uni.showModal({
                    title: '点击协议',
                    content: '点击协议序列 = ' + tag
                })
            },

            protocolClickTwo(tag) {

                console.log('点击协议序列 = ' + tag);
                uni.showModal({
                    title: '点击协议',
                    content: '点击协议序列 = ' + tag
                })
            },
        }
    }
</script>

<style scoped>
    .header {
        margin-top: 20px;
        padding: 10px 20px;
        font-size: 16px;
        background-color: antiquewhite;

    }
</style>

组件实现代码

<template>
    <view class="protocol_box">
        <view class="select" :class="{active: agree}" @click="agreeClick"></view>
        我已仔细阅读

        <view v-for="(item, index) in protocolArr" :key="index">

            <text @click="protocolClick(index)">{{protocolArr[index]}}</text>

            <span v-if="index < (protocolArr.length - 1)">{{" 、"}}</span>

        </view>

    </view>
</template>

<script>
    export default {
        props: {
            // 是否同意
            agree: {
                type: Boolean,
                default: false
            },
            // 协议数组
            protocolArr: {
                type: Array,
                default: function() {
                    return [];
                }
            },

        },

        methods: {
            // 是否同意勾选
            agreeClick() {

                this.$emit('click')

            },
            protocolClick(tag) {

                this.$emit('protocolClick', tag)

            }

        }

    }
</script>

<style lang="scss" scoped>
    //主题色 #ea552d
    $themeColor: #ea552d;

    .protocol_box {

        display: flex;
        flex-wrap: wrap;

        justify-content: center;
        align-items: center;

        margin-top: 40rpx;
        margin-left: 2%;
        width: 96%;
        font-size: 28rpx;
        color: #333333;
        font-size: 13px;

        .select {
            width: 36rpx;
            height: 36rpx;
            background-image: url("./ic_nor.png");
            background-position: center center;
            background-repeat: no-repeat;
            background-size: 100% auto;
            margin-right: 15rpx;
            margin-top: 2px;

            &.active {
                background-image: url("./ic_sel.png");
            }
        }

        text {

            color: $themeColor;
            font-size: 13px;

            white-space: pre-wrap;

        }

    }
</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问