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

张小明 2026/3/2 21:27:37
展会网站怎么做,网址你懂我意思吧在线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进行投诉反馈,一经查实,立即删除!

网页制作视频教程速成seo快速排名利器

事件跟踪工具全解析 在软件开发和系统调试过程中,了解事件的顺序和相互关系对于排查问题、优化性能至关重要。传统的统计采样工具虽然能提供一些信息,但对于事件的详细排序和关联分析却显得力不从心。函数跟踪则是一种更为强大的技术,它通过在代码中插入跟踪点来捕获事件信…

张小明 2026/1/17 18:24:03 网站建设

建设网站投资多少钱网站制作的订单

还在为传统搜索引擎无法理解语义关联而苦恼吗?当用户搜索"智能音箱"时,系统能否识别"小爱同学"和"天猫精灵"的相似性?本文将通过实际演示,揭示新一代向量数据库Qdrant如何通过原生向量存储设计&…

张小明 2026/1/17 18:22:02 网站建设

怎样做网站管理自适应网站建设极速建站

掌握Spyder跨语言编程:一站式科学开发环境深度解析 【免费下载链接】spyder Official repository for Spyder - The Scientific Python Development Environment 项目地址: https://gitcode.com/gh_mirrors/sp/spyder 还在为不同编程语言之间的切换而手忙脚乱…

张小明 2026/1/17 18:20:01 网站建设

沧州建网站网站建设企业网站建设

简介 本文从工程落地角度,对比分析了AutoGen、MetaGPT、Coze、Dify等主流AI智能体开发框架的局限性,指出它们难以支撑生产系统。作者团队最终选择LangGraph作为技术栈,因其具备显式的流程建模能力、强大的状态管理机制、内建的生产级能力和开…

张小明 2026/1/17 18:18:00 网站建设

网站开发进度安排河间做网站价格

在数字经济时代,个人信息已成为核心生产要素,但其全生命周期流转中的隐私泄露、滥用等风险持续凸显。《个人信息保护法》《数据安全法》等法律法规的落地实施,明确了企业对个人信息保护的合规责任,而合规审计作为 “事前预防、事中…

张小明 2026/1/17 18:15:59 网站建设

可以做兼职的动漫网站深圳 建设银行国际互联网站

AUTOSAR网络管理唤醒过程中的软件接口配置:从原理到实战一个常见的开发难题:为什么我的ECU没能被正确唤醒?在一次车载网关项目的调试中,团队遇到了这样一个问题:当远程节点发送NM(Network Management&#…

张小明 2026/1/17 18:13:58 网站建设