更新记录

1.0.0(2022-09-05) 下载此版本

模仿并改进uniapp官方ui的组件uni-data-select,自定义显示插槽(允许变量),手册:https://uniapp.dcloud.net.cn/component/uniui/uni-data-select.html


平台兼容性

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

使用方法


主要步骤

  1. JS中定义菜单成员,包括显示文字 + 操作value
  2. Template中使用本组件,并设置点击事件
  3. JS中定义点击事件函数,捕捉:哪一行点击了哪一个按钮

完整例子

<template>
    <view>

        <!-- flex布局 -->
        <view style="display: flex; flex-direction: row; justify-content: space-between; padding: 3px 20px; border: 1px solid #CCC;">
            <view>
                #10086
            </view>

            <view>
                李白
            </view>

            <view>
                刺客
            </view>

            <view>

                <!-- 插件无需手动引入,直接使用即可 -->
                <!-- 里面···可以改为任意东西,图片也可以 -->
                <!-- 参数$event不可修改,否则取不到点击事件详情 -->
                <rudon-rowMenuDotDotDot :localdata="options" @change="menuAction($event, '10086')">
                    ···
                </rudon-rowMenuDotDotDot>

            </view>
        </view>

    </view>
</template>
<script>
    export default {
        data() {
            return {

                // 右边菜单内容
                options: [
                    {
                        value: 'update',
                        text: '选修'
                    },
                    {
                        value: 'forbit',
                        text: '禁止'
                    }
                ]

            }
        },
        onLoad() {

        },
        methods: {

            /**
             * 不同行的不同菜单点击事件
             * 
             * @param {Object} action 第一个参数必须传入“$event” | 点击了哪个按钮 | 传入options的value
             * @param {Number} rowId 第二个参数随意,可以是行ID等
             */
            menuAction (action, rowId) {
                // 忽略初始化时的传入的空操作
                if (action === '') {
                    return
                }

                // 打印看参数
                console.log(JSON.stringify(action))
                console.log(JSON.stringify(rowId))

                // 动作
                // ...
                uni.showToast({
                    icon: 'none',
                    title: '[动作]' + JSON.stringify(action) + ' [对象]' + JSON.stringify(rowId)
                })
            }

        }
    }
</script>

示例项目

打开https://ext.dcloud.net.cn/plugin?id=9350 “使用 HBuilderX 导入示例项目”

隐私、权限声明

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

【相关插件】 行内三点式下拉菜单-左对齐-向下展开 https://ext.dcloud.net.cn/plugin?id=9651 行内三点式下拉菜单-左对齐-向上展开 https://ext.dcloud.net.cn/plugin?id=9652 行内三点式下拉菜单-右对齐-向下展开 https://ext.dcloud.net.cn/plugin?id=9350

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

【相关插件】 行内三点式下拉菜单-左对齐-向下展开 https://ext.dcloud.net.cn/plugin?id=9651 行内三点式下拉菜单-左对齐-向上展开 https://ext.dcloud.net.cn/plugin?id=9652 行内三点式下拉菜单-右对齐-向下展开 https://ext.dcloud.net.cn/plugin?id=9350

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

【相关插件】 行内三点式下拉菜单-左对齐-向下展开 https://ext.dcloud.net.cn/plugin?id=9651 行内三点式下拉菜单-左对齐-向上展开 https://ext.dcloud.net.cn/plugin?id=9652 行内三点式下拉菜单-右对齐-向下展开 https://ext.dcloud.net.cn/plugin?id=9350

许可协议

MIT协议

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