APICloud AVM 封装日期和时间选择组件

APICloud 原生模块、H5模块、多端组件使用教程 使用APICloud平台,可以使用前端技术快速开发iOS、Android App、小程序、Web等多端应用。在开发过程中,调用模块可以极大的提升开发效率。本文分为三个部分,告诉大家如何使用APICloud 的原生模块、H5模块以及多端组件,快速实现功能开发。 一、原生模块使用教程 原生模块是指使用 Android 和 iOS原生开发语言封装的功能模块。封装好的模块可以使用js调用。 1、添加模块 进入 APICloud 控制台,找到模块库,搜索要使用的模块。 点击”+“进行添加 2、编译自定义loade 阅读详情

AVM(Application-View-Model)前端组件化开发模式基于标准Web Components组件化思想,提供包含虚拟DOM和Runtime的编程框架avm.js以及多端统一编译工具,完全兼容Web Components标准,同时兼容Vue和React语法糖编写代码,编译工具将Vue和React相关语法糖编译转换为avm.js代码。

基于标准 Web Components 组件化思想,兼容 Vue / React 语法特性,通过一次编码,分别编译为 App、小程序代码,实现多端开发。

组件介绍

因项目中很多表单要用到日期选择和时间选择的内容,所以基于picker封装了日期和时间选择的组件。

datePicker日期选择组件

组件内的年份是取得举例今年100年以内的年份,可根据时间需要进行扩容或缩减,月份是12个月固定的,每月的天数,根据所选年份和月份进行获取。默认设置当前日期。

<template>
    <picker class="picker" id={pickerId} mode="multiSelector" range-key="name" value={dateMltiSelectorValue} onchange={this.dateMultiSelectorChange} oncolumnchange={this.dateMultiSelectorColumnChange}>			
		<text class="picker-label">{dateDesc}</text>
	</picker>
</template>
<script>
	export default {
		name: 'datePicker',
		props:{
			label:String,
			pickerId:String
		},
		installed(){
			this.getYears();	
			this.initDateData();
		},
		data() {
			return{
				year:[],
				month:[1,2,3,4,5,6,7,8,9,10,11,12],
				day:[],
				yearNow:new Date().getFullYear(),
				dateMltiSelectorValue:[0,0,0],
				selectYear:new Date().getFullYear(),
				selectMoth:1,
				selectDay:1,
				dateList:[],
				dateDesc:''

			}
		},
		methods: {
			getYears(){
				this.data.year=[];//一个页面多次使用的情况 必须先清空 否则会出现各种问题
				for(i=0;i<100;i++){
					this.data.year.push(this.yearNow-i);
				}
			},
			initDateData(){
				//根据当前年月获取当月天数
				this.data.day=[];
				var days = new Date(new Date().getFullYear(), new Date().getMonth()+1, 0).getDate();
				console.log(days);
				for(i=1;i<=days;i++){
					this.data.day.push(i);
				}
				this.data.dateMltiSelectorValue=[0,new Date().getMonth(),new Date().getDate()-1];
				this.data.dateList = [this.data.year,this.data.month,this.data.day];
				var picker = document.getElementById(this.props.pickerId);			
				picker.setData({
					data: this.data.dateList
				});
			},
			//根据年月获取天数
			setDays(){
				this.data.day=[];
				var days = new Date(this.data.selectYear, this.data.selectMoth, 0).getDate();
				for(i=1;i<=days;i++){
					this.data.day.push(i);
				}
				this.data.dateList = [this.data.year,this.data.month,this.data.day];
				var picker = document.getElementById(this.props.pickerId);
				picker.setData({
					data: this.data.dateList
				});
			},
			dateMultiSelectorChange(e){
				this.data.dateMltiSelectorValue=[e.detail.value[0],e.detail.value[1],e.detail.value[2]];			
				var year = this.data.year[e.detail.value[0]];
				// var month = this.data.selectMoth>9?this.data.selectMoth:'0'+this.data.selectMoth;
				var month = this.data.month[e.detail.value[1]]>9?this.data.month[e.detail.value[1]]:'0'+this.data.month[e.detail.value[1]];
				var day = this.data.day[e.detail.value[2]]>9?this.data.day[e.detail.value[2]]:'0'+this.data.day[e.detail.value[2]];
				this.data.dateDesc = year+'-'+month+'-'+day;
				this.fire('setDate', this.data.dateDesc);
			},
			dateMultiSelectorColumnChange(e){
				var column = e.detail.column;
				if (column == this.data.dateList.length-1) {
                    return;
                }
				if(column==0){
					this.data.selectYear = this.data.year[e.detail.value];
					this.data.dateMltiSelectorValue[0]=e.detail.value;
					this.setDays();		
				}
				else if(column==1){
					this.data.selectMoth = this.data.month[e.detail.value];
					this.data.dateMltiSelectorValue[1]=e.detail.value;
					this.setDays();			
				}
			}
		}
	}
</script>
<style>
    .picker {
        background-color: #ffffff;
    }
	.picker-label{
		font-size: 18px;
	}
</style>

timePicker时间选择组件

时、分、秒都是固定的,组件初始是默认的当前时间。

<template>
     <picker class="picker" id={pickerId} mode="multiSelector" range-key="name" value={timeMltiSelectorValue} onchange={this.timeMultiSelectorChange}>			
		<text class="picker-label">{timeDesc}</text>
	</picker>
</template>
<script>
	export default {
		name: 'timePicker',
		props:{
			label:String,
			pickerId:String
		},
		installed(){
			this.setHours();
			this.setMinutes();	
			this.initDateData();
		},
		data() {
			return{
				hour:[],
				minute:[],
				second:[],
				timeList:[],
				timeMltiSelectorValue:[0,0,0],
				timeDesc:''
			}
		},
		methods: {
			setHours(){
				for (let index = 0; index < 24; index++) {
					this.data.hour.push(index>9?index:'0'+index);				
				}
			},
			setMinutes(){
				for (let index = 0; index < 60; index++) {
					this.data.minute.push(index>9?index:'0'+index);
					this.data.second.push(index>9?index:'0'+index);				
				}				
			},
			initDateData(){
				//初始化设定当前时间
				this.data.timeMltiSelectorValue=[new Date().getHours(),new Date().getMinutes(),new Date().getSeconds()];
				this.data.timeList=[this.data.hour,this.data.minute,this.data.second];
				var picker = document.getElementById(this.props.pickerId);
				picker.setData({
					data: this.data.timeList
				});
			},
			timeMultiSelectorChange(e){
				this.data.timeMltiSelectorValue=[e.detail.value[0],e.detail.value[1],e.detail.value[2]];		
				var hour = this.data.hour[e.detail.value[0]];
				var minute = this.data.minute[e.detail.value[1]];
				var second = this.data.second[e.detail.value[2]];
				this.data.timeDesc = hour+':'+minute+':'+second;
				this.fire('setDate', this.data.timeDesc);
			},
		}
	}
</script>
<style>
    .picker {
        background-color: #ffffff;
    }
	.picker-label{
		font-size: 18px;
	}
</style>

组件使用说明

本组件是基于AVM.js开发的多端组件,通常同时适配Android、iOS、小程序、H5 , 具体支持情况还要看每个组件的说明文档。

首先需要登录开发平台,http://www.apicloud.com。 通过控制平台右上方的模块Store进入,然后选择AVM组件。

 

找到对应模块进入,也可通过搜索栏,通过组件名称关键字进行检索。

 

 进入模块详情,点击立即下载下载完整的组件安装包。  

组件压缩包的文件目录如下

 

也可通过查看模块文档 来了解模块的具体参数,引用的原生模块,注意事项等。  

 

具体在项目中的使用步骤是,第一步将压缩文件中的date-picker.stml和time-picker.stml文件拷贝到项目的components目录,通过阅读readme.md 文档和查看demo示例文件 demo-date-picker.stml在需要开发的stml文件中,引入组件文件,完成页面的开发。

如果一个页面中,同一组件多次使用,一定要注意要把组件ID进行区分。每个组件的ID通过当前页面传入组件。组件中通过props进行接收。

demo文件

<template>
    <scroll-view class="page">
		<safe-area></safe-area>
		<view class="item">
			<text class="item-label">日程主题</text>
			<input class="item-input" placeholder="输入日程主题" v-model="title"/>
		</view>
		<view class="item">
			<text class="item-label">日程简要</text>
			<textarea  class="item-area" placeholder="输入日程简要内容" v-model="content"/>	
		</view>
		<view class="item">
			<text class="item-label">日期</text>
			<datePicker onsetDate="setDate" label=""  pickerId="datePicker"></datePicker>
		</view>
		<view class="item">
			<text class="item-label">时间</text>
			<timePicker onsetDate="setTime" label="" pickerId="timePicker"></timePicker>
		</view>
		<view class="item">
			<text class="item-label">人员</text>
			<input class="item-input" placeholder="请选择人员" v-model="title"/>
		</view>
		<view class="bt-box">
			<button class="bt" onclick={this.btnAction}>保存</button>
		</view>
    </scroll-view>
</template>
<script>
	import '../../components/datePicker.stml'
	import '../../components/timePicker.stml'
	export default {
		name: 'adddaily',
		apiready(){

		},
		data() {
			return{
				date:'',
				time:'',
				title:'',
				content:'',
				users:''
			}
		},
		methods: {
			setDate(e){
				this.data.date = e.detail;
			},
			setTime(e){
				this.data.time = e.detail;
			}
		}
	}
</script>
<style>
    .page {
        height: 100%;
		background-color: #ffffff;
    }
	.item{
		margin: 10px;
		border-bottom: 1px solid #ccc;
	}
	.item-label{
		font-size: 13px;
		color: #666666;
	}
	.item-input{
		width: auto;
		border: 0;
	}
	.item-area{
		border: 0;
		height: 50px;
		width: auto;
	}
	.bt-box{
		margin: 10px;
	}
	.bt{
		color: #ffffff;
		font-size: 18px;
		background-color: #035dff;
		border-radius: 10px;
	}
</style>

示例展示

 

如果在AVM组件库中,没有找到实际项目中需要的组件,可以自己尝试封装组件。

这是组件化开发的在线文档地址

 

Uniapp-小程序简单的时间选择组件-年月日时分 uniapp小程序开发系列。本文实现一个简单时间选择控件。uniapp用个心仪时间控件真的麻烦。官方给得要么年月日,要么时分。产品只要年月日时分。这该怎么玩。旧项目没有引入ui框架,我也不想去引入,不然高低整一个vant 小程序版的。uniapp生态中,有个插件市场,找了一通,是有时间控件。但是引入也是麻烦。没必要。下文基于网友给的案例再稍微改了改。对了 这是vue2 的。以上就是今天要讲的内容,本文讨论了用uniapp 实现小程序时间选择组件 仅仅支持 年月日时分 的简单版本。 阅读详情

相关推荐

#鸿蒙开发#自定义组件—基于TimePIcker或DatePicker实现时间或日期选择组件

在本节中,我们将对TimePickerComponents和DatePickerComponents这两个自定义组件进行概述,了解它们的功能、结构以及在实际项目中的应用场景。这里只介绍一些最新的属性供大家使用设置所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。设置所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。设置选中项的文本颜色、字号、字体粗细。loop11+设置是否启用循环模式。设置时分秒是否显示前置0。lunar设置弹窗的日期是否显示农历。

m0_73386679的博客 1327

h5 datePicker日期选择与时间选择组件,适配ios

原项目用的Weui 的时间选择组件在ios上不好使,之前也有用iosSelect.js写过datePicker的插件也有些问题,重新整理了代码,完善了一下。 效果如下图: html页面代码,需要引入: <link rel="stylesheet" type="text/css" href="iosSelect/iosSelect.css" /> &l...

qianyel的专栏 4017

APICloud AVM 封装日期和时间选择组件 前端

APICloud AVM 是一个基于 JavaScript 的前端框架,它提供了一系列的组件和工具,可以帮助开发人员快速构建跨平台的移动应用。其中,日期和时间选择组件是 AVM 中的一个重要部分,它允许用户在移动设备上选择日期和时间,提供了丰富的配置选项,以满足不同的需求。总结起来,使用 APICloud AVM 封装的日期和时间选择组件可以帮助开发人员快速实现移动应用中的日期和时间选择功能。通过简单的配置和调用,开发人员可以灵活地定制日期和时间选择的样式和参数,满足不同的需求。表示选择日期和时间。

AvskBug的博客 139

APICloud(十二):日期控件

日期控件原链接:http://community.apicloud.com/bbs/forum.php?mod=viewthread&amp;tid=26845&amp;extra=&amp;page=1 效果:从底部弹出选择框,可通过滑动的方法选择年月日、时分秒,点击“确定”可选择数据,选择“取消”可取消数据。   我这里不说这个日期控件的具体实现流程,只说怎么用以及我在用的过程中遇到的...

总有一天,你的日积月累,会成为别人的望尘莫及 2400

APICloud 日期控件UICalendar

APICloud 日期控件UICalendarDemo

蓝牙6.0的‘新雷达’:Channel Sounding信道探测,真能比UWB更香吗?

本文探讨了蓝牙6.0的Channel Sounding信道探测技术在室内定位领域的应用潜力。通过与UWB技术的对比分析,揭示了其在成本、功耗和兼容性方面的优势,特别是在智能门锁、物品追踪等场景中的商业价值。Channel Sounding技术不仅具备亚米级精度,还能通过现有蓝牙设备实现零边际成本部署,为物联网应用提供了新的解决方案。

weixin_29288313的博客 332

APICloud AVM框架 封装日历组件

上代码

白鱼赤乌的博客 2977

DIY等离子环:从Class-E电路到七彩辉光,手把手教你打造炫酷科学玩具

本文手把手教你DIY一个炫酷的等离子环科学玩具。从解析等离子体辉光放电原理入手,详细介绍了核心的Class-E自激振荡电路设计、关键元件选型与参数计算,并提供了从物料准备、电路搭建、腔体密封到上电调试的全流程指南。通过调制电路或填充不同气体,还能实现七彩变换与交互效果,是学习高频电路与电磁场知识的绝佳实践项目。

weixin_29305337的博客 634

uniapp+vue3+uviewui实现自定义选择组件实现时间选择和单选

2,修改后的uview的picker组件(注意原生的picker组件包含u-popup和头部,这里我注释掉,采用自己封装的弹框)1,自定义picker组件。

m0_46120422的博客 3403

11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别

使用 SAP ABAP SEGW 事物码实现 OData 服务的修改操作时,对于消费端通过 PATCH/MERGE 和 PUT 这三种不同类型的 HTTP 请求触发的场景,我们应该在 UPDATE_ENTITY 方法里用 IF 分支分别进行处理,原因就在于 GET_ENTITY 方法是否在修改处理逻辑的过程中被触发。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2458

【Bluetooth蓝牙开发】九、BLE协议之GATT

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 4760

apicloud for android 日期和时间控件

function fnEndDatePicker(ctlname) { api.openPicker({ type: 'date', date: '', title: '选择日期' }, function (ret, err) { if (ret) { //alert( JSON.stringify( ret ) ); month1 = ret.month; ...

affp的专栏 633

Web3:Ubuntu系统 使用Docker-compose方式部署blockscout浏览器&配置版本-v5.2.3-beta+charts图表

详细介绍了在Ubuntu 23.04系统上部署Blockscout浏览器的步骤,以及过程中遇到的问题进行一一解决。

鄙人kunzhi96,感恩遇见! 2万+

实现一个 时间选择器 组件

实现一个 日 周 月 年的筛选时间的组件,包括功能有 切换上一 日 周 月 年、下一 日 周 月 年。以及限制时间范围、手动选择。

xiaoliyo_的博客 1365

【100%通过率】华为OD机试真题 C 实现【最多等和不相交连续子序列】【2022.11 Q4 新题】

给定一个数组,我们称其中连续的元素为连续子序列,称这些元素的和为连续子序列的和。数组中可能存在几组连续子序列,组内的连续子序列互不相交且有相同的和。求一组连续子序列,组内子序列的数目最多。输出这个数目。

MISAYAONE的博客 1万+

使用MATLAB/Simulink对一个简单的智能家居温湿度监测与控制系统进行建模和仿真

目录手把手教你学Simulink——基于Simulink的智能家居温湿度监测与控制仿真建模示例一、背景介绍二、所需工具和环境三、步骤详解步骤1:创建Simulink模型步骤2:构建传感器模块步骤3:添加控制器步骤4:构建执行器模块步骤5:连接各部分步骤6:设置仿真参数步骤7:添加观测器步骤8:运行仿真并分析结果四、总结 智能家居系统中的温湿度监测与控制系统是一个典型的物联网(IoT)应用场景,它通过传感器收集环境数据,并根据预设条件自动调节室内温度和湿度以提高居住舒适度。本指南将介绍如何使用MATLAB/S

xiaoheshang_123的博客 291

【Vue+Element】封装一个带时间段选项的日期组件、并且子任务日期限制在父任务日期内

要在element日期组件旁边添加一个上午、下午的选项框,没有这样的插槽使用,所以自己封装一个组件。通过定位的方式,将两个选项框移动到该位置。由于我这边项目父组件是先渲染好组件,再获取数据,所以出现这边子组件渲染好但是没有数据的情况,使用watch监听它的变化。

qq_32139191的博客 1050

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

按日期、按星期时间选择组件

【代码】按日期、按星期时间选择组件。

hs1219462412的博客 688

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Ant Design、Element组件:时间日期选择器限制选择范围的几种场景及区别

Ant Design、Element组件:时间日期选择器限制选择范围的几种场景及区别

qq_45796592的博客 4718

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Capistrano 部署排错神器:cap doctor 四合一诊断报告全解

Capistrano 是一款基于 Ruby、Rake 和 SSH 构建的部署自动化工具。当部署失败时,新手常常无从下手。`cap doctor` 就是 Capistrano 内置的一站式排错神器:一条命令即可生成 Environment、Gems、Variables、Servers 四合一诊断报告,帮你快速定位 Ruby 版本不匹配、依赖 gem 过期、变量拼写错误和服务器配置问题。 [![Ca

gitblog_00013的博客 768

最好用的 8 款 React Datepicker 时间日期选择器测评推荐

React 时间日期选择器(date-timepicker)组件,与表单、富文本、表格、拖拽等组件一样,是大家用 React 搭建项目时使用最频繁的组件之一。React DateTimePicker 除了基础选择日期时间外,还有非常多样的功能配合不同场景使用,比如 12/24小时,禁止选择某些日期,高亮某些日期,夜间模式,多语言,酒店订单的特别场景等。本文记录了我自己使用多年最好用的 8 款 React DateTimePicker 组件,每一款都经过我实际测试,推荐给大家。

蒋川@卡拉云 9016

Vue2 时间段选择组件

这是一个时间选择组件,支持按天选择时间段,主要功能包括: 可视化选择:提供7天周选择标签和48个半小时时段表格 数据绑定:通过v-model实现双向数据绑定 功能特性: 按天切换显示(周一至周日) 可选中半小时时间段(高亮显示) 支持禁用状态 顶部显示每天已选时长 数据结构: 返回数组包含day(1-7)和timeScopeRuleList(startTime,endTime) 交互设计: 点击日期标签切换 点击时间格选择/取消 选中状态直观可视化 组件适用于需要精确选择时间段(如课程表、预约系统)的场景。

ohCCa的博客 1341

Vue2使用v-model封装ElementUI日期组件(实现开始时间和结束时间的校验,禁选)

Vue2使用v-model封装ElementUI日期组件(实现开始时间和结束时间的校验,禁选)

见贤思齐焉,见不贤内自省 2256

自定义时间选择器组件

【代码】自定义时间选择器组件。

weixin_73184582的博客 441

elementui日期时间选择框自定义组件

业务中需要,日期选择框方便客户对日期的选择(比如近5天,本周,本月,本年等等),并按小时展示。

xieedeni的博客 1650
上一篇: APICloud AVM框架 封装通讯录组件
下一篇: APICloud AVM框架 开发CRM客户管理系统
白鱼赤乌
博客等级 码龄10年 7粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白鱼赤乌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值