展会网站怎么做网址你懂我意思吧在线2021

张小明 2026/3/12 7:23:30
展会网站怎么做,网址你懂我意思吧在线2021,搜索引擎营销是指,商业策划公司十大公司欢迎大家加入开源鸿蒙跨平台开发者社区#xff0c;一起共建开源鸿蒙跨平台生态。 #x1f4cc; 概述 新建旅行功能允许用户创建新的旅行记录。用户需要填写旅行的基本信息#xff0c;如目的地、开始日期、结束日期、花费等。新建旅行页面提供了表单验证、自动保存、图片上传…欢迎大家加入开源鸿蒙跨平台开发者社区一起共建开源鸿蒙跨平台生态。 概述新建旅行功能允许用户创建新的旅行记录。用户需要填写旅行的基本信息如目的地、开始日期、结束日期、花费等。新建旅行页面提供了表单验证、自动保存、图片上传等功能。在 Cordova 与 OpenHarmony 的混合开发框架中新建旅行需要实现完整的表单处理和原生层的文件上传功能。 完整流程第一步表单设计与验证新建旅行表单需要包含所有必要的字段并进行客户端验证。验证包括检查必填字段、日期有效性、花费格式等。表单还需要支持自动保存功能防止用户数据丢失。第二步数据保存与关联表单数据需要保存到数据库并与目的地、标签、同行者等进行关联。保存过程需要进行事务处理确保数据的一致性。第三步原生层文件上传与图片处理OpenHarmony 原生层可以实现文件选择、图片上传、图片压缩等功能。原生层还可以实现图片的本地存储和缓存管理。 Web 代码实现新建旅行页面 HTML 结构dividnew-trip-pageclasspagedivclasspage-headerh1新建旅行/h1/divformidnewTripFormclasstrip-formdivclassform-grouplabel目的地 */labelinputtypetextnamedestinationrequiredplaceholder输入目的地.../divdivclassform-grouplabel开始日期 */labelinputtypedatenamestartDaterequired/divdivclassform-grouplabel结束日期 */labelinputtypedatenameendDaterequired/divdivclassform-grouplabel花费/labelinputtypenumbernameexpenseplaceholder0min0/divdivclassform-grouplabel描述/labeltextareanamedescriptionplaceholder输入旅行描述.../textarea/divdivclassform-grouplabel标签/labelselectnametagsmultipleidtagsSelect!-- 标签选项动态加载 --/select/divdivclassform-grouplabel同行者/labelselectnamecompanionsmultipleidcompanionsSelect!-- 同行者选项动态加载 --/select/divdivclassform-grouplabel上传图片/labelinputtypefilenameimagesmultipleacceptimage/*onchangehandleImageUpload(event)dividimagePreviewclassimage-preview/div/divdivclassform-actionsbuttontypebuttonclassbtn btn-primaryonclicksaveTrip()保存/buttonbuttontypebuttonclassbtn btn-secondaryonclicknavigateTo(all-trips)取消/button/div/form/divHTML 结构包含所有必要的表单字段和图片上传功能。初始化表单函数asyncfunctioninitNewTripForm(){try{// 加载标签选项consttagsawaitdb.getAllTags();consttagsSelectdocument.getElementById(tagsSelect);tags.forEach(tag{constoptiondocument.createElement(option);option.valuetag.id;option.textContenttag.name;tagsSelect.appendChild(option);});// 加载同行者选项constcompanionsawaitdb.getAllCompanions();constcompanionsSelectdocument.getElementById(companionsSelect);companions.forEach(companion{constoptiondocument.createElement(option);option.valuecompanion.id;option.textContentcompanion.name;companionsSelect.appendChild(option);});// 设置默认日期consttodaynewDate().toISOString().split(T)[0];document.querySelector(input[namestartDate]).valuetoday;document.querySelector(input[nameendDate]).valuetoday;}catch(error){console.error(Error initializing form:,error);showToast(初始化表单失败);}}初始化函数加载标签和同行者选项设置默认日期。表单验证函数functionvalidateTripForm(){constformdocument.getElementById(newTripForm);constdestinationform.querySelector(input[namedestination]).value.trim();conststartDateform.querySelector(input[namestartDate]).value;constendDateform.querySelector(input[nameendDate]).value;// 检查必填字段if(!destination){showToast(请输入目的地);returnfalse;}if(!startDate){showToast(请选择开始日期);returnfalse;}if(!endDate){showToast(请选择结束日期);returnfalse;}// 检查日期有效性conststartnewDate(startDate);constendnewDate(endDate);if(startend){showToast(开始日期不能晚于结束日期);returnfalse;}returntrue;}表单验证函数检查必填字段和日期有效性。validateTripForm 函数是表单验证的核心函数。函数首先获取表单中的关键字段值包括目的地、开始日期和结束日期。然后进行多层次的验证首先检查必填字段是否为空如果为空则显示相应的错误提示。然后检查日期的有效性确保开始日期不晚于结束日期。这种分步验证方式提供了清晰的错误提示帮助用户快速定位问题。通过这个函数可以确保用户输入的数据是有效的避免保存无效数据到数据库。保存旅行函数asyncfunctionsaveTrip(){// 验证表单if(!validateTripForm()){return;}try{// 获取表单数据constformdocument.getElementById(newTripForm);constformDatanewFormData(form);// 创建旅行对象consttrip{id:Date.now(),destination:formData.get(destination),startDate:formData.get(startDate),endDate:formData.get(endDate),expense:parseInt(formData.get(expense))||0,description:formData.get(description),tags:formData.getAll(tags),companions:formData.getAll(companions),images:[],isFavorite:false,isDeleted:false,createdAt:newDate().toISOString(),updatedAt:newDate().toISOString()};// 保存到数据库awaitdb.addTrip(trip);showToast(旅行已创建);// 导航到旅行详情页面navigateTo(trip-detail,trip.id);// 通知原生层if(window.cordova){cordova.exec((result)console.log(Trip saved:,result),(error)console.error(Save error:,error),TripPlugin,onTripSaved,[{tripId:trip.id,timestamp:Date.now()}]);}}catch(error){console.error(Error saving trip:,error);showToast(保存失败请重试);}}保存旅行函数验证表单然后将数据保存到数据库。图片上传处理函数functionhandleImageUpload(event){constfilesevent.target.files;constpreviewdocument.getElementById(imagePreview);preview.innerHTML;for(letfileoffiles){// 验证文件类型if(!file.type.startsWith(image/)){showToast(请选择图片文件);continue;}// 创建预览constreadernewFileReader();reader.onload(e){constimgdocument.createElement(img);img.srce.target.result;img.classNamepreview-image;preview.appendChild(img);};reader.readAsDataURL(file);}// 通知原生层上传图片if(window.cordovafiles.length0){cordova.exec((result)console.log(Images uploaded:,result),(error)console.error(Upload error:,error),ImagePlugin,uploadImages,[{fileCount:files.length}]);}}图片上传处理函数创建图片预览并通知原生层上传图片。 OpenHarmony 原生代码实现旅行保存插件// TripPlugin.etsimport{BusinessError}fromohos.base;exportclassTripPlugin{// 处理旅行保存事件onTripSaved(args:any,callback:Function):void{try{consttripIdargs[0].tripId;consttimestampargs[0].timestamp;console.log([Trip] Saved:${tripId}at${timestamp});callback({success:true,message:旅行已保存});}catch(error){callback({success:false,error:error.message});}}}旅行保存插件处理旅行保存事件。图片上传插件// ImagePlugin.etsimport{BusinessError}fromohos.base;import{fileIo}fromkit.CoreFileKit;exportclassImagePlugin{// 上传图片uploadImages(args:any,callback:Function):void{try{constfileCountargs[0].fileCount;console.log([Image] Uploading${fileCount}images...);callback({success:true,message:${fileCount}张图片已上传,uploadedCount:fileCount});}catch(error){callback({success:false,error:error.message});}}}图片上传插件处理图片上传功能。 总结新建旅行功能展示了如何在 Cordova 与 OpenHarmony 框架中实现一个完整的表单处理系统。Web 层负责表单 UI 和验证原生层负责文件上传和图片处理。通过新建旅行功能用户可以轻松创建新的旅行记录。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

属于自己的网站安庆注册公司

解锁虚拟显示新境界:ParsecVDisplay让你的电脑屏幕无限扩展 【免费下载链接】parsec-vdd ✨ Virtual super display, upto 4K 2160p240hz 😎 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 想要让单显示器秒变多屏工作站?P…

张小明 2026/3/5 4:06:19 网站建设

wordpress自动添加tag岳阳seo

畅游游戏销售 目录 基于springboot vue畅游游戏销售系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue畅游游戏销售系统 一、前言 博主介绍&…

张小明 2026/3/5 4:06:21 网站建设

asp网站源码免费下载手机代码编辑器

ModTheSpire模组加载器为什么启动失败?全面排错指南助你畅玩模组 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire 作为《Slay The Spire》玩家必备的模组加载工具&#xff0…

张小明 2026/3/5 4:06:19 网站建设

百度网站内容色盲和色弱的区别

近年来,随着科学技术的飞速发展,两轮车市场迎来了前所未有的增长机遇。产品性能与智能化水平的大幅提升,预示着传统机械式、指针式仪表的逐渐淘汰。在此背景下,为了进一步提升人们的出行体验,一些前沿的两轮车品牌开始…

张小明 2026/3/12 5:30:29 网站建设

3东莞网站建设家里电脑做网站服务器

LangFlowOKR目标设定建议生成器 在企业战略落地的过程中,如何高效制定清晰、可衡量的 OKR(目标与关键结果)一直是管理者面临的挑战。传统方式依赖经验丰富的团队反复讨论和修改,周期长、标准不一,尤其对初创公司或跨部…

张小明 2026/3/5 4:06:22 网站建设

电子商务网站设计方案做网站架构

文章介绍了研究代理(Agent)作为AI重要应用的发展,分享了构建先进研究代理的技术和经验。内容包括:代理框架设计需考虑模型演进,避免过度优化;工具开发应支持代理框架;上下文工程是关键&#xff…

张小明 2026/3/5 4:06:22 网站建设