uni app 自定义 带popup弹窗的input组件

工作需要。自定义了个带popup弹窗的input组件。此组件满足个人需求,不喜勿喷。应该可以看明白怎么回事,也能自己改改,所以就不要联系了,点赞收藏就好

<template><view class="dialog_main"><input v-model="inputvalueClone" class="select_input" placeholder-class="down_select_input_placeholder"placeholder="请输入或选择" @focus="input_focus" @input="input_value" /><view class="select_mian" v-if="showPickerClone"><view class="button_main"><text></text><text class="button_name" @click="qd_click">确定</text></view><scroll-view v-if="showPickerClone" class="scroll_y" :scroll-y="true"><view class="list_main" :id="index" v-for="(item, index) in datalistClone" :key="index"><text v-if="!item.ishow" @click="item_click(item)" class="item_name">{{ item[showkey]  }}</text></view></scroll-view></view></view>
</template><script>import myclient from '../../utils/myclient.js'import utils from '../../utils/utils.js';export default {data() {return {inputvalueClone: "",showPickerClone: false,datalistClone: [],selectedIndex: 0, // 当前选中的索引  };},/*** 组件的属性列表*/props: {showkey: {type: String,default: ''},clienturl: {type: String,default: ''},paramsvalue: {type: String,default: ''},params: {type: Object,default: ''},reqmethod: {type: String,default: 'POST'},datapath: {type: String,default: ''},inputvalue: {type: String,default: ''},callback: {type: String,default: ''}},/*** 组件的方法列表*/methods: {input_value: function(e) {var value = e.detail.valuethis.inputvalueClone = valueif (value.length == 0) {this.datalistClone = utils.setShow(this.datalistClone, true)} else {for (var i = 0; i < this.datalistClone.length; i++) {this.datalistClone[i].ishow = trueif (this.datalistClone[i][this.showkey].indexOf(value) >= 0) {this.datalistClone[i].ishow = false}}this.$forceUpdate()}},input_focus: function() {var that = thismyclient.callGetorPost(this.clienturl, this.reqmethod, this.params, false, function(res) {var paths = that.datapath.split('.');var datas = res;for (let i = 0; i < paths.length; i++) {datas = datas[paths[i]];}if (that.inputvalueClone.length == 0) {that.datalistClone = utils.setShow(datas, true)} else {for (var i = 0; i < datas.length; i++) {datas[i].ishow = trueif (datas[i][that.showkey].indexOf(that.inputvalueClone) >= 0) {datas[i].ishow = false}}that.datalistClone = datas}that.showPickerClone = true})},item_click(e) {this.showPickerClone = falsethis.$emit('callBack', {detail: e,value: this.inputvalueClone});},qd_click: function() {this.showPickerClone = falsethis.$emit('callBack', {value: this.inputvalueClone});}},watch: {inputvalue: {handler: function(newval, oldval) {this.inputvalueClone = newval},immediate: true}}};
</script><style lang="scss" scoped>@function tovmin($rpx) {//$rpx为需要转换的字号@return #{$rpx * 100 / 750}vmin;}.dialog_main {width: 100vw;display: flex;flex-direction: column;}.select_mian {width: 80vw;min-height: 10vh;max-height: 50vh;box-shadow: 0rpx 0rpx 12rpx 0rpx rgba(7, 165, 166, 0.11);z-index: 2;border: solid 2rpx #efefef;}.button_main {width: 100%;height: 80rpx;display: flex;flex-direction: row;border-bottom: #00a99d dotted 2rpx;justify-content: space-between;}.button_name {color: #00a99d;display: flex;align-items: center;text-align: center;justify-content: center;width: 100rpx;height: 100%;}/* 在这里添加你的样式 */.scroll_y {width: 100%;height: 100%;}.list_main {width: 100vw;display: flex;flex-direction: column;align-items: center;vertical-align: center;}.item_name {font-size: 28;padding-top: 5rpx;padding-bottom: 5rpx;width: 100%;min-height: tovmin(80);display: flex;align-items: center;justify-content: center;text-align: left;margin-right: tovmin(32);color: #333;font-weight: 600;overflow-y: auto;overflow-x: scroll;align-items: center;border-bottom: solid #efefef 2rpx;white-space: normal;word-break: break-all;word-wrap: break-word;}.select_input {color: #333;margin-bottom: 10rpx;padding: 0 20px 0px 0px;font-size: 14px;flex: 1;font-weight: 600;}
</style>

讲一下:

        myclient 封装的网络请求

        utils 是封装的工具类,setshow 是给各个对象添加一个字段isshow  用户对象是否展示出来

        showkey 列表中要展示的字段,比如name

        clienturl  要访问的接口获取列表数据

        paramsvalue 输入框输入的值放在接口参数的那个字段  比如keyword  //本示例中么有用此字段的后面会加上

        params   接口参数

        reqmethod 接口请求方式  GET  POST

        datapath 接口返回的数据取支路径 例如data.data.list

        inputvalue 输入框默认值,也就是 keyword的默认值例如 params={keyword:5} 那么 inputvalue=5

        callback:点确定或 列表回调

使用:

        要使用的页面 增加

        import inputselectVue from './component/inputselect.vue';

        components: {
           
            inputselectVue,

        },


         <inputselectVue class="select_input" showkey="strname"
                 :clienturl="strurl" :params="{keyword:0}" reqmethod="POST"
                  datapath="data.data.list" :inputvalue=" strname"
                   @callBack="name_callback">
          </inputselectVue>

        name_callback: function(e) {
                console.log(JSON.stringify(e))

                if (e.detail) {

                    this.strname= e.detail.strname;

                } else {
                     this.strname= e.detail.value;  

                }

                this.$forceUpdate()
        },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/27728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这份简历让一位程序员在谷歌获得30万美元

大家好&#xff0c;我是弗雷。每次都在让大家尝试走出职场&#xff0c;但今天我们却选择再次走进职场。 作为曾经的职场人&#xff0c;我深深明白简历的敲门砖作用&#xff0c;制作一份优质的简历至关重要。 你所见过的最优秀的简历是什么样子&#xff1f; 或者你想象中最优秀…

chatgpt的命令词

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

ABBYY Finereader 15软件下载及安装教程

ABBYY FineReader 是一款功能强大的 OCR&#xff08;Optical Character Recognition&#xff09;软件&#xff0c;可以将扫描的文档转换为可编辑的文本文件。它不仅可以识别文本&#xff0c;还可以识别表格、图像和布局&#xff0c;使得文档的转换更加准确和方便。 安 装 包 获…

Opus从入门到精通(五)OggOpus封装器全解析

Opus从入门到精通(五)OggOpus封装器全解析 为什么要封装 前面Opus从入门到精通(四)Opus解码程序实现提到如果不封装会有两个问题: 无法从文件本身获取音频的元数据(采样率,声道数,码率等)缺少帧分隔标识,无法从连续的文件流中分隔帧(尤其是vbr情况) 针对上面的问题我们可以…

算法day31

第一题 542. 01 矩阵 本题本来求解的是每一个1到0的最短距离并返回到矩阵之中&#xff1b; 我们采用正难则反的思路&#xff0c;将其化解为每一个0到每一个1的最短距离&#xff0c;并通过矩阵来返回&#xff1b; 解法&#xff1a;多源bfs正难则反 步骤一&#xff1a; 定义一个…

换卡槽=停机?新手机号使用指南!

刚办理的手机号莫名其妙的就被停用了&#xff1f;这到底是怎么回事&#xff1f;这篇文章快来学习一下吧。 ​ 先说一下&#xff0c;你的手机为什么被停机&#xff1f; 现在运营商对于手机卡的使用有着非常严格的要求&#xff0c;尤其是刚办理的新号码&#xff0c;更是“严上加…

【2024算力大会分会 | SPIE独立出版 | 往届均已完成EI检索】2024云计算、性能计算与深度学习国际学术会议(CCPCDL 2024)

【2024算力大会分会 | SPIE出版】 2024云计算、性能计算与深度学习国际学术会议(CCPCDL 2024) 2024 International conference on Cloud Computing, Performance Computing and Deep Learning *CCPCDL往届均已完成EI检索&#xff0c;最快会后4个半月完成&#xff01; 一、…

算法金 | 再见!!!K-means

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 今天我们来聊聊达叔 6 大核心算法之 —— k-means 算法。最早由斯坦福大学的 J. B. MacQueen 于 1967 年提出&#xff0c;后来经过许多…

进口二手RS FSH4规格3.6G罗德与施瓦茨 FSH6参数

Rohde & Schwarz FSH4 的规格包括&#xff1a; 频率范围从 9 kHz 到 3.6 GHz 高灵敏度&#xff08;<-141dBm&#xff08;1Hz&#xff09;&#xff0c;或使用可选前置放大器<-161dBm&#xff08;1Hz&#xff09;&#xff09; 低测量不确定度&#xff08; 内部跟踪发生…

SpringCloud 前端-网关-微服务-微服务间实现信息共享传递

目录 1 网关获取用户校验信息并保存至请求头&#xff08;前端-网关&#xff09; 2 微服务获取网关中的用户校验信息&#xff08;网关-微服务&#xff09; 2.1 一般的做法是在公共的module中添加&#xff0c;此处示例为common 公共配置module中添加 2.2 定义拦截器 2.3 定义…

简易五子棋

简介 使用Java实现简易五子棋 规则介绍 游戏使用一个标准的1515方格的棋盘&#xff0c;双方分别用黑白两种颜色的棋子进行对战。黑子先行&#xff0c;双方轮流在空棋盘的交叉点上落子&#xff0c;每人一次只能落一子。游戏的目标是让自己的五颗棋子连成一线&#xff0c;这条…

一分钟制作爆火的治愈插画,让插画来替你说出心声

超火的AI治愈插画来了&#xff0c;有趣的文字搭配上有趣的图&#xff0c;无论是发朋友圈还是发小红书&#xff0c;这效果简直无敌。 下面是我刚生成的&#xff0c;快来看看效果吧。 这个工具&#xff0c;国内可用&#xff0c;可以直接上手&#xff0c;不需要什么技术&#xff0…

C# Winform 侧边栏,切换不同页面

在项目中我们经常遇到需要在主界面上切换不同子页面的需求&#xff0c;常用做法是左侧显示子页面菜单&#xff0c;用户通过点击左侧菜单&#xff0c;实现右边子页面的展示。 实例项目实现&#xff1a; 项目左侧侧边栏实现FlowLayoutPanel使用显示不同子窗体 实例链接&#xf…

全网首发:教你如何直接用4090玩转最新开源的stablediffusion3.0

1.stablediffusion的概述&#xff1a; Stable Diffusion&#xff08;简称SD&#xff09;近期的动态确实不多&#xff0c;但最新的发展无疑令人瞩目。StableCascade、Playground V2.5和Stableforge虽然带来了一些更新&#xff0c;但它们在SD3面前似乎略显黯然。就在昨晚&#x…

04.VisionMaster 机器视觉找圆工具

VisionMaster 机器视觉找圆工具 定义 先检测出多个边缘点然后拟合成圆形&#xff0c;可用于圆的定位与测量 注意&#xff1a;找圆工具 最好和【位置修正】模块一起使用。具体可以看下面的示例。 参数说明&#xff1a; 扇环半径&#xff1a;圆环ROI的内外圆半径 边缘类型&a…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] K小姐的服务交换接口失败率分析 (100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 K小姐的服务交换接口失败率分析(100分) 🌍 评测功能需要订…

基于.Net 框架实现WebSocket 简单通信——服务端

新建项目 创建一个.Net 框架的控制台程序。 添加包 项目 → 管理 NuGet 程序包打开包管理窗口&#xff0c;添加SuperWebSocket 程序包。 实现 项目 → 添加类打开添加新项窗口&#xff0c;添加一个C#类。 启动监听 WebSocketServer socket new WebSocketServer();Conso…

【github】项目的代码仓库重命名

问题 有时候&#xff0c;我们先创建了远端项目仓库&#xff0c;然后就把相关code上传到远端项目仓库。 可能需要结合实际情况对远端项目仓库进行重命名。 当前仓库名称v_ttc&#xff0c;如何将他修改成v_datejs 操作步骤 1、在 GitHub.com 上&#xff0c;导航到存储库的主页…

(金融:货币兑换)编写一个程序,提示用户输入从美元到人民币的兑换汇率。

&#xff08;金融:货币兑换)编写一个程序&#xff0c;提示用户输入从美元到人民币的兑换汇率。提示用户输入0表示从美元兑换为人民币&#xff0c;输入1表示从人民币兑换为美元。继而提示用户输入美元数量或者人民币数量&#xff0c;分别兑换为另外一种货币。下面是运行示例: pa…

TCP/IP协议深入解析,初学者必看!

简介 在信息技术飞速发展的今天&#xff0c;网络已成为人类社会不可或缺的部分。实现网络中计算机相互通信的关键之一便是TCP/IP协议。作为互联网的基础&#xff0c;TCP/IP协议确保了全球范围内的数据交换和信息共享。 TCP/IP&#xff08;传输控制协议/网际协议&#xff09;是…