专注连锁门店会员营销管理系统
线上+线下+进销存+收银+会员2018-07-26 作者:秩名
组件需要达到的需求是:输入框内没有内容时,删除按钮隐藏;当输入框内有内容时,删除按钮显示,点击删除按钮则清空输入框内所有内容。并且还可以设置输入框整体样式以及输入框左侧图标。
明确了需求之后,就可以开始着手实现了。
首先,在目标目录下新建一个自定义组件
建好之后,我们需要来设计布局。根据需求来看,我们只需要三个组件:两个image和一个input。左边一个image提示图标,然后一个input输入框,最后一个image删除按钮。我们要把尽可能多的数据设置成可以修改的绑定数据,提高自定义组件的可扩展性。
最终确定的wxml布局文件如下:
<view class='input-class'> <image src='{{inputIcon}}' mode="scaleToFill" class='icon-class'></image> <input placeholder='{{inputHint}}' bindconfirm='{{confirmTap}}' style='flex:1;width:100%;padding-left:12rpx;' bindinput='inputListener' bindconfirm='inputConfirm' value='{{inputValue}}' type='{{inputType}}' password='{{isPassword}}' confirm-type='{{confirmType}}'></input> <image class="{{isClearShow?'clearImgShow':'clearImgHide'}}" src='clear.png' bindtap='clearTap' mode='widthFix'></image> </view>
然后,我们就要来设置组件的一些属性和监听方法了。小程序的组件属性列表是定义在.js文件的properties里的。把需要暴露出去并可以修改的属性都写在这里面。其语法示例如下:
properties: { myProperty: { // 属性名 type: String, // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型) value: '', // 属性初始值(可选),如果未指定则会根据类型选择一个 observer: function(newVal, oldVal, changedPath) { // 属性被改变时执行的函数(可选),也可以写成在methods段中定义的方法名字符串, 如:'_propertyChange' // 通常 newVal 就是新设置的数据, oldVal 是旧数据 } }, myProperty2: String // 简化的定义方式 }
我的属性列表如下:
/** * 组件的属性列表 */ properties: { inputHint: { type: String, value: '搜索' }, inputIcon: { type: String, value: 'search.png' }, inputType: { type: String, value: 'text' }, isPassword: { type: Boolean, value: false }, confirmType: { type: String, value: "done" } }
完成了属性列表的编写之后,接下来我们需要为自定义组件添加监听事件。
事件系统是组件间通信的主要方式之一。自定义组件可以触发任意的事件,引用组件的页面可以监听这些事件。
监听以及触发事件的语法是这样的:
//触发事件 //自定义组件触发事件时,需要使用 triggerEvent 方法,指定事件名、detail对象和事件选项 methods: { onTap: function(){ var myEventDetail = {} // detail对象,提供给事件监听函数 var myEventOption = {} // 触发事件的选项 this.triggerEvent('myevent', myEventDetail, myEventOption) } } //监听事件 <!-- 当自定义组件触发“myevent”事件时,调用“onMyEvent”方法 --> <component-tag-name bindmyevent="onMyEvent" /> <!-- 或者可以写成 --> <component-tag-name bind:myevent="onMyEvent" />
这里我们需要设置的触发事件有,输入框的输入事件以及输入框的确认事件。通过 triggerEvent 方法指定事件名以及事件触发事件参数
/** * 组件的方法列表 */ methods: { inputListener: function (e) { var value = e.detail.value; var cursor = e.detail.cursor; if (value === null || value === undefined || value.length === 0) { this.setData({ isClearShow: false }); } else { this.setData({ isClearShow: true }); } var detail = { value: value, cursor: cursor }; this.triggerEvent('inputListener', detail); }, inputConfirm: function (e) { var value = e.detail.value; var detail = { value: value } this.triggerEvent('inputConfirm', detail); }, clearTap: function () { this.setData({ isClearShow: false, inputValue: '' }); } }
以上就已经完成了这个可清除input组件的自定义开发了。现在来看怎么使用这个组件。
首先在需要使用此组件的页面.json文件中设置usingComponents属性来引入这个自定义组件
"usingComponents": { //这里是设置的组价标签名称以及组件地址 "clearInput": "../../components/clearInput/clearInput" }
然后,我们就可以在页面中引用这个自定义组件了,引用的方式非常简单,通过我们在上一步设置的标签名称就可以引用了。
<clearInput inputHint='搜索订单' icon-class='common_search_img' input-class='common_search_input' confirmType='search' bind:inputListener='inputListener' bind:inputConfirm='searchEvent' />
HiShop小程序工具提供多类型商城/门店小程序制作,可视化编辑 1秒生成5步上线。通过拖拽、拼接模块布局小程序商城页面,所看即所得,只需要美工就能做出精美商城。更多小程序商店请查看:小程序商店
线上+线下+进销存+收银+会员门店零售管理好帮手
门店能实现快速收银,提升门店经营效率。
系统自带进销存管理,更好管理库存销售。
配备收银硬件一站式整体服务。
收 银 会员管理 库存管理 商品管理 交接班 数据报表 营销促单 售后处理 多种收款
获取报价1、本网站发布的该篇文章,目的在于分享电商知识及传递、交流相关电商信息,以便您学习或了解电商知识,请您不要用于其他用途;
2、该篇文章中所涉及的商标、标识的商品/服务并非来源于本网站,更非本网站提供,与本网站无关,系他人的商品或服务,本网站对于该类商标、标识不拥有任何权利;
3、本网站不对该篇文章中所涉及的商标、标识的商品/服务作任何明示或暗示的保证或担保;
4、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。
推荐文章
最新消息总结,开发一个小程序我们可以选择的第三方框架有5种,大家比较熟悉的有美团小程序框架mpvue,还有组件化框架等...
最近在调研小程序的分享能力,本篇文档主要是调研小程序关于分享方面的玩法,目的是学习小程序在项目应用以及玩法链上...
许多人在使用小程序,会有一个很麻烦的事情,就是使用过小程序之后,会不断的发送自己的定位消息,那么这个小程序的...
一款小程序,很多时候需要调用内置的照相机,实现拍照并图片上传,那么要如何实现呢?...
分销商管理系统百科 在当今竞争激烈的商业环境中,企业要实现高效的产品分销并非易事。而分销商管理系统(Distributor Man...
微信分销系统百科 微信分销系统,是基于微信这一超级航母应用所产生的一种电子商务模式,这种模式是基于多层次分成、...
微商分销商城软件百科 在如今的电商时代,微商分销商城软件成为了众多商家拓展业务、提升销售的得力助手。下面将围绕...
数字化采购方案 在数字化浪潮席卷全球的当下,企业运营的各个环节都在经历着深刻变革,采购领域也不例外。数字化采购...
商城系统B2B开发百科 1. B2B网上商城开发 1.1 定义与概念 B2B网上商城,全称business - to - business online shopping mall,是企业与企业...
分销商城电商平台系统百科 在数字化商业浪潮中,分销商城电商平台系统已成为众多企业拓展市场、提升销售业绩的重要工...