当前位置: 首页 > article >正文

鸿蒙完整项目-仿盒马App(一)首页静态页面

跟着鸿蒙小林博主,练习下项目~记录下首页的搭建,后续继续完善和整体项目完成会进行布局修改,先按照博主的跟做,后续在改
在这里插入图片描述
1.分为底部整体框架搭建
2.首页布局(顶部搜索、新人专享、金刚区(两个不同集合数据)、图片海报、三个分区、瀑布流列表)。组件单独写的
在这里插入图片描述

  1. MainPages
@Entry
@Component/***首页*/
struct MainPages {@State isCheck_Index_One: boolean = true@State currentIndex: number = 0//底部ui@BuildertabBuilder(title: string, targetIndex: number, selectedImg: Resource, normalImg: Resource) {Column() {Image(this.currentIndex === targetIndex ? selectedImg : normalImg).width(this.isCheck_Index_One && targetIndex === 0 ? 50 : 25).height(this.isCheck_Index_One && targetIndex === 0 ? 50 : 25).borderRadius(this.isCheck_Index_One && targetIndex === 0 ? 25 : 0)Text(title).margin({ top: 5 }).fontSize(14).margin({ top: 5 }).fontWeight(this.currentIndex === targetIndex ? FontWeight.Bold : FontWeight.Normal).fontColor('#6B6B6B')}.width('100%').height(50).justifyContent(FlexAlign.Center)}build() {//底部导航栏Column() {Tabs({ barPosition: BarPosition.End }) {TabContent() {//首页布局HomeUI()}.tabBar(this.tabBuilder("首页", 0, $r('app.media.me_image'), $r('app.media.index1_not_check')))TabContent() {Text('分类').fontSize(30)}.tabBar(this.tabBuilder("分类", 1, $r('app.media.index2_check'), $r('app.media.index2_not_check')))TabContent() {Text('购物车').fontSize(30)}.tabBar(this.tabBuilder("购物车", 2, $r('app.media.index3_check'), $r('app.media.index3_not_check')))TabContent() {Text('我的').fontSize(30)}.tabBar(this.tabBuilder("我的", 3, $r('app.media.index4_check'), $r('app.media.index4_not_check')))}.onChange((index: number) => {this.currentIndex = indexif (index === 0) {this.isCheck_Index_One = true} else {this.isCheck_Index_One = false}})}.linearGradient({angle: 180,colors: [[0xff0000, 0], [0xff6666, 0.2], [0xffffff, 1]]}).width('100%').height('100%')}
}
  1. HomeUI
//首页布局
@Component
@Preview
export struct HomeUI {@State locationName: string = ''@State coupons: ESObject[] = [{ amount: "¥10", desc: "新人专享" },{ amount: "¥20", desc: "新人专享" },{ amount: "¥10", desc: "新人专享" },{ amount: "¥30", desc: "新人专享" }]/***新用户*/@BuilderCouponComponent() {Column() {Row() {Text("新人专享卷").fontSize(24).fontColor('#FF0000')Text("前三单免运费").fontSize(14).fontColor('#888888').margin({ left: 10 })}.width('100%').padding(16)}List({ space: 10 }) {ForEach(this.coupons, (item: ESObject) => {ListItem() {Column() {Text(item.amount).fontSize(22).fontColor('#FF4444').margin({ bottom: 8 })Text(item.desc).fontSize(14).fontColor('#999999')}}})}}build() {Scroll(){Column() {HomeTopBar({ locationName: this.locationName })CommonSearBar({onSearchClick: () => {console.debug('测试点击')}});CouponComponent().margin({ top: 15, left: 10, right: 10 })//金刚区SplitLayout()//海报区Image("https://img0.baidu.com/it/u=2721636467,4123351490&fm=253&fmt=auto&app=138&f=JPEG?w=1000&h=500").width("95%").height(100).margin({top:10}).borderRadius(20).objectFit(ImageFit.Fill)//三个海报SpecialColumn().margin({ top: 15, left: 10, right: 10,bottom:10 })//瀑布流列表WaterFlowGoods().margin({  left: 10, right: 10})}}.width('100%').height('100%')}
}

3.首页里面的搜索组件

/***搜索组件*/
@Component
export struct CommonSearBar {@State searchText: string = ''private onSearchClick?: () => voidbuild() {Row() {Image($r('app.media.search')).width(24).height(24).margin({ left: 12 })Text(this.searchText || "请输入搜索内容").width('70%').height(35).backgroundColor(Color.White).padding({ left: 5 }).fontSize(16)Text('搜索').width(90).layoutWeight(1).fontSize(16).fontColor(Color.White).backgroundColor('#FF0000').borderRadius(20).padding({ top: 5, bottom: 5 }).textAlign(TextAlign.Center)}.height(40).width('90%').padding(1).backgroundColor('#F5F5F5').borderRadius(28).onClick(() => {this.onSearchClick?.()})}
}

4.CouponComponent首页新用户领劵

/***首页新用户领劵*/
@Component
export struct CouponComponent {@State coupons: ESObject[] = [{ amount: "¥10", desc: "新人专享" },{ amount: "¥20", desc: "新人专享" },{ amount: "¥10", desc: "新人专享" },{ amount: "¥30", desc: "新人专享" }]build() {Column() {Row() {Text("新人专享券").fontSize(24).fontColor('#FF0000')Text("前三单免运费").fontSize(14).fontColor('#888888').margin({ left: 10 })}.width('100%').padding(10)List({ space: 10 }) {ForEach(this.coupons, (item: ESObject) => {ListItem() {Column() {Text(item.amount).fontSize(22).fontColor('#FF4444').margin({ bottom: 8 })Text(item.desc).fontSize(14).fontColor('#999999')}.width(80).padding(16).backgroundColor('#FFFFFF').borderRadius(8)}})}.width('100%').height(100).margin({left:20}).listDirection(Axis.Horizontal)Button('立即领取').width(200).height(40).backgroundColor('#FF0000').fontColor(Color.White).borderRadius(20).margin({ top:20,bottom: 16 })}.backgroundColor("#F5F5F5").width('100%').height('33%').borderRadius(10)}
}

5.SplitLayout金刚区+海报

/***金刚区*/
@Component
@Preview
export struct SplitLayout {build() {Column() {Grid() {ForEach(HomeData.topData, (row: ESObject) => {ForEach(row, (item: ESObject) => {GridItem() {Column() {Image(item.image).width(40).height(40).borderRadius(20).margin({ top: 5 })Text(item.title).padding(1).fontSize(16).fontColor(Color.Black).textAlign(TextAlign.Center)}}})})}.columnsTemplate('1fr 1fr 1fr 1fr ').height(200)List({ space: 25 }) {ForEach(HomeData.bottomData, (item: ESObject) => {ListItem(){Column(){Image(item.image).width(40).height(40).borderRadius(15)Text(item.title).textAlign(TextAlign.Center).fontColor(Color.Black).fontSize(16).padding(5)}}})}.scrollBar(BarState.Off).margin({left:10}).height(70).listDirection(Axis.Horizontal)}.alignItems(HorizontalAlign.Start).height(310).width('95%').margin({ top: 20 }).backgroundColor('#F5F5F5').padding(16).borderRadius(20)}
}

6.三个海报SpecialColumn

@Component
@Preview
export struct SpecialColumn {build() {Row(){Column() {Row() {Text('今日疯抢').fontSize(16).fontWeight(FontWeight.Bold).fontColor(Color.Black)Blank()Text('一元秒杀').fontSize(10).fontColor(Color.White).backgroundColor(Color.Red).borderRadius({ topLeft: 8, bottomRight: 8 }).padding(2)}Text('立省两元').fontSize(10).fontColor('#999999').margin({ top: 4 })List({ space: 10 }) {ForEach(HomeData.priceInfo,(priceInfo:ESObject)=>{ListItem() {Column() {Image(priceInfo.image).width(40).height(50).margin({ bottom: 8 }).objectFit(ImageFit.Cover)Row() {Text(priceInfo.oldPrice).fontSize(12).fontColor('#999999').decoration({ type: TextDecorationType.LineThrough })Blank()Text(priceInfo.newPrice).fontSize(14).fontColor(Color.Red)}}.margin({ top: 12 }).padding(8).borderRadius(8)}})}.listDirection(Axis.Horizontal).width('100%').height(100)}.borderRadius(8).alignItems(HorizontalAlign.Start).linearGradient({direction: GradientDirection.Bottom, // 渐变方向colors: [["#F8D7D8", 0.0], ["#FEFFFF", 0.3]]}).width('45%').padding(10)Column() {Text('尝鲜盒子').fontSize(16).fontColor(Color.Black).fontWeight(FontWeight.Bold)Text('一分钱试吃').fontSize(10).fontColor('#999999').margin({ top: 4 })Column() {Image(HomeData.priceInfo[0].image).width(40).height(50).margin({ bottom: 8 }).objectFit(ImageFit.Cover)Text(HomeData.priceInfo[0].newPrice).fontSize(14).fontColor(Color.Red)}.margin({ top: 12 }).padding(10)}.borderRadius(8).linearGradient({direction: GradientDirection.Bottom, // 渐变方向colors: [["#FCECD0", 0.0], ["#FEFFFF", 0.3]]}).width('25%').padding(10)Column() {Text('健康生活').fontSize(16).fontColor(Color.Black).fontWeight(FontWeight.Bold)Text('果蔬榨榨杯').fontSize(10).fontColor('#999999').margin({ top: 4 })Column() {Image(HomeData.priceInfo[1].image).width(40).height(50).margin({ bottom: 8 }).objectFit(ImageFit.Cover)Text(HomeData.priceInfo[1].newPrice).fontSize(14).fontColor(Color.Red)}.margin({ top: 12 }).padding(10)}.linearGradient({direction: GradientDirection.Bottom, // 渐变方向colors: [["#BFE4CB", 0.0], ["#FEFFFF", 0.3]]}).borderRadius(8).width('25%').padding(10)}.width('100%').height(150).justifyContent(FlexAlign.SpaceBetween)}}

7.瀑布流 WaterFlowGoods()

/***首页瀑布流*/
@Component
@Preview
export struct WaterFlowGoods {@State goodsList: Array<GoodsItem> = [{image: "https://img1.baidu.com/it/u=499325528,1576211670&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=667",name: "红颜草莓",spec: "早熟",originalPrice: "¥39",price: "¥19"},{image: "https://img0.baidu.com/it/u=3907484858,1857304284&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500",name: "沙地红心西瓜",spec: "脆甜",originalPrice: "¥13",price: "¥9.9"},{image: "https://img0.baidu.com/it/u=3907484858,1857304284&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500",name: "芒果",spec: "香甜",originalPrice: "¥23",price: "¥19.9"} ,{image: "https://img0.baidu.com/it/u=3907484858,1857304284&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500",name: "海南菠萝",spec: "脆酸甜",originalPrice: "¥43",price: "¥29.9"}]@State columns: number = 2build() {//瀑布流WaterFlow(){ForEach(this.goodsList,(item:GoodsItem)=>{FlowItem(){//布局Column(){Image(item.image).width('100%').borderRadius({topLeft:10,topRight:10})Column(){Text(item.name).fontSize(16).fontColor('#333').margin({ bottom: 4 })Text(item.spec).fontSize(12).fontColor('#666').margin({ bottom: 8 })Row(){Text(item.originalPrice).fontSize(12).fontColor('#999').decoration({ type: TextDecorationType.LineThrough })Text(item.price).fontSize(16).fontColor(Color.Red).margin({left:10})Blank()Column(){Image($r('app.media.cart')).width(20).height(20)}.justifyContent(FlexAlign.Center).width(36).height(36).backgroundColor("#ff2bd2fa").borderRadius(18)}.width('100%').justifyContent(FlexAlign.SpaceBetween)}.alignItems(HorizontalAlign.Start).padding(12)}.backgroundColor(Color.White).borderRadius(12)}.margin({ bottom: 12 })})}.margin({top:30})//设置列数.columnsTemplate('1fr 1fr').columnsGap(12)}
}

8.数据类HomeData

export class  HomeData{static  topData: ESObject[][] = [[{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.iqeBi3j390BfpXYkfwL7ZwHaIC?w=168&h=182&c=7&r=0&o=5&dpr=2&pid=1.7", title: "当季水果" },{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.45Yw7hjv6Pya3G4AkSXV7gHaE6?w=268&h=180&c=7&r=0&o=5&dpr=2&pid=1.7", title: "有机蔬菜" },{ image: "https://tse4-mm.cn.bing.net/th/id/OIP-C.D4joDEE4liDJ24JkH8vT7wHaE8?w=274&h=183&c=7&r=0&o=5&dpr=2&pid=1.7", title: "进口水产" },{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.qlXw3xeqY17Pz4Zes2XO9wHaGn?w=221&h=197&c=7&r=0&o=5&dpr=2&pid=1.7", title: "散养家禽" },{ image: "https://tse3-mm.cn.bing.net/th/id/OIP-C.iiVk_wx6cKy6Qz-GORTrBQHaE7?w=280&h=187&c=7&r=0&o=5&dpr=2&pid=1.7", title: "五谷杂粮" }],[{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.45Yw7hjv6Pya3G4AkSXV7gHaE6?w=268&h=180&c=7&r=0&o=5&dpr=2&pid=1.7", title: "有机蔬菜" },{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.qlXw3xeqY17Pz4Zes2XO9wHaGn?w=221&h=197&c=7&r=0&o=5&dpr=2&pid=1.7", title: "散养家禽" },{ image: "https://tse4-mm.cn.bing.net/th/id/OIP-C.D4joDEE4liDJ24JkH8vT7wHaE8?w=274&h=183&c=7&r=0&o=5&dpr=2&pid=1.7", title: "进口水产" },{ image: "https://tse3-mm.cn.bing.net/th/id/OIP-C.iiVk_wx6cKy6Qz-GORTrBQHaE7?w=280&h=187&c=7&r=0&o=5&dpr=2&pid=1.7", title: "五谷杂粮" },{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.iqeBi3j390BfpXYkfwL7ZwHaIC?w=168&h=182&c=7&r=0&o=5&dpr=2&pid=1.7", title: "当季水果" }]]static bottomData: ESObject[] = [{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.iqeBi3j390BfpXYkfwL7ZwHaIC?w=168&h=182&c=7&r=0&o=5&dpr=2&pid=1.7", title: "尝夏鲜" },{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.45Yw7hjv6Pya3G4AkSXV7gHaE6?w=268&h=180&c=7&r=0&o=5&dpr=2&pid=1.7", title: "烧烤露营" },{ image: "https://tse4-mm.cn.bing.net/th/id/OIP-C.D4joDEE4liDJ24JkH8vT7wHaE8?w=274&h=183&c=7&r=0&o=5&dpr=2&pid=1.7", title: "厨卫百货" },{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.qlXw3xeqY17Pz4Zes2XO9wHaGn?w=221&h=197&c=7&r=0&o=5&dpr=2&pid=1.7", title: "天天会员价" },{ image: "https://tse3-mm.cn.bing.net/th/id/OIP-C.iiVk_wx6cKy6Qz-GORTrBQHaE7?w=280&h=187&c=7&r=0&o=5&dpr=2&pid=1.7", title: "盒马NB" },{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.iqeBi3j390BfpXYkfwL7ZwHaIC?w=168&h=182&c=7&r=0&o=5&dpr=2&pid=1.7", title: "自有产品" },{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.45Yw7hjv6Pya3G4AkSXV7gHaE6?w=268&h=180&c=7&r=0&o=5&dpr=2&pid=1.7", title: "每日秒杀" },{ image: "https://tse4-mm.cn.bing.net/th/id/OIP-C.D4joDEE4liDJ24JkH8vT7wHaE8?w=274&h=183&c=7&r=0&o=5&dpr=2&pid=1.7", title: "好劵连连" },{ image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.qlXw3xeqY17Pz4Zes2XO9wHaGn?w=221&h=197&c=7&r=0&o=5&dpr=2&pid=1.7", title: "清洁纸品" },{ image: "https://tse3-mm.cn.bing.net/th/id/OIP-C.iiVk_wx6cKy6Qz-GORTrBQHaE7?w=280&h=187&c=7&r=0&o=5&dpr=2&pid=1.7", title: "敬请期待" }]static  priceInfo: ESObject = [{image: "https://tse3-mm.cn.bing.net/th/id/OIP-C.n_NQx-NMBlbYSU0fvKlMfwHaHa?w=213&h=213&c=7&r=0&o=5&dpr=2&pid=1.7",oldPrice: "¥99",newPrice: "¥79"},  {image: "https://tse2-mm.cn.bing.net/th/id/OIP-C.qHml5NfgkGlIvftvCc6krAHaE8?w=270&h=180&c=7&r=0&o=5&dpr=2&pid=1.7",oldPrice: "¥99",newPrice: "¥79"}]
}

相关文章:

鸿蒙完整项目-仿盒马App(一)首页静态页面

跟着鸿蒙小林博主&#xff0c;练习下项目~记录下首页的搭建,后续继续完善和整体项目完成会进行布局修改&#xff0c;先按照博主的跟做&#xff0c;后续在改 1.分为底部整体框架搭建 2.首页布局&#xff08;顶部搜索、新人专享、金刚区&#xff08;两个不同集合数据&#xff09…...

大模型(4)——Agent(基于大型语言模型的智能代理)

大模型Agent是一种基于大型语言模型&#xff08;LLM&#xff09;的智能系统&#xff0c;能够自主感知环境、规划任务、调用工具并完成复杂目标。其核心原理是将大模型的推理能力与外部行动能力结合&#xff0c;实现从“思考”到“行动”的闭环。以下是其原理详解与实现方法&…...

39-居住证管理系统(小程序)

技术栈: springBootVueMysqlUni-app 功能点: 群众端 警方端 管理员端 群众端: 1.首页: 轮播图展示、公告信息列表 2.公告栏: 公告查看及评论 3.我的: 联系我们: 可在线咨询管理员问题 实时回复 居住证登记申请 回执单查看 领证信息查看 4.个人中心: 个人信息查看及修改…...

WPF【11_4】WPF实战-重构与美化(MVVM 架构)

11-9 【理论】MVVM 架构 在 WPF 项目中&#xff0c;我们主要采用的是一种类似 MVC 的架构&#xff0c;叫做 MVVM。 MVVM 继承了 MVC 的理念&#xff0c;是 Model-View-ViewModel 的缩写&#xff0c;中文意思是模型、视图、视图模型。这三个词分开看我们都能看懂&#xff0c;不…...

计算逆时针夹角(有向角度)——CAD c# 实现两条线(向量)的逆时针夹角

效果如下&#xff1a; 附部分代码如下&#xff1a; public void 逆时针夹角Demo(){// 获取当前 CAD 文档和编辑器Document doc Application.DocumentManager.MdiActiveDocument;Editor ed doc.Editor;Database db doc.Database;try{Point3d vec1Start, vec1End;if (!GetTwoP…...

鸿蒙OSUniApp 开发带有通知提示的功能组件#三方框架 #Uniapp

使用 UniApp 开发带有通知提示的功能组件 在移动应用开发中&#xff0c;通知提示&#xff08;Notification/Toast/Alert&#xff09;是提升用户体验和交互效率的重要手段。无论是表单校验、操作反馈、系统消息还是营销推送&#xff0c;合理的通知提示都能帮助用户及时获取关键…...

前端EXCEL插件智表ZCELL数据源功能详解

一、数据源功能介绍 前端EXCEL插件智表ZCELL提供了强大的数据源管理功能&#xff0c;使开发者能够灵活地在电子表格中集成和管理结构化数据。数据源功能主要分为两种类型&#xff1a; 卡片式数据源&#xff1a;适合展示和编辑单个数据记录 表格式数据源&#xff1a;适合处理表…...

打卡第31天:模块和库的导入

重复内容 知识点回顾&#xff1a; 1.导入官方库的三种手段 2.导入自定义库/模块的方式 3.导入库/模块的核心逻辑&#xff1a;找到根目录&#xff08;python解释器的目录和终端的目录不一致&#xff09; 作业&#xff1a;自己新建几个不同路径文件尝试下如何导入 导入机制的核…...

LLM Coding

AI Coding 深度解析&#xff1a;探索编程新范式与未来趋势 | w3cschool笔记https://www.phodal.com/blog/ai-friendly-architecture/bmadcode/BMAD-METHOD: Breakthrough Method for Agile Ai Driven Development...

Qt 的多线程

Qt 中的多线程主要用于处理耗时操作,避免阻塞主线程(UI 线程),从而提高程序的响应性和运行效率。以下是 Qt 多线程的相关技术总结: 常见的多线程实现方式 继承 QThread 类 :最基础的实现方式,具体步骤为继承 QThread 类,重写其 run() 函数,在 run() 函数中编写线程要…...

【请关注】各类MySQL数据备份还原分享

MySQL数据备份的全部方法 MySQL数据备份是数据库管理中的关键任务,以下是MySQL数据备份的全面方法总结: 一、逻辑备份方法 1. **mysqldump工具** - 最常用的备份工具 - 命令示例: >bash mysqldump -u [username] -p[password] [database_name] > backup.sql > -…...

Go语言方法与接收者 -《Go语言实战指南》

在 Go 中&#xff0c;方法是绑定到某个类型上的函数。与普通函数不同&#xff0c;方法具有一个“接收者&#xff08;receiver&#xff09;”&#xff0c;用于指定它是哪个类型的“方法”。 一、方法的定义语法 func (接收者名 接收者类型) 方法名(参数列表) 返回值列表 {// 方…...

基于 STM32 的农村污水处理控制系统设计与实现

摘要 针对农村污水处理自动化程度低、运维成本高的问题,本文设计了一种基于 STM32 单片机的污水处理控制系统。系统通过多传感器实时监测水质参数,结合 PID 控制算法实现污水处理全流程自动化,并集成远程监控功能,满足农村地区低成本、易维护的需求。 一、硬件系统设计 …...

【Linux】进程 信号的产生

&#x1f33b;个人主页&#xff1a;路飞雪吖~ &#x1f320;专栏&#xff1a;Linux 目录 一、掌握Linux信号的基本概念 &#x1f320;前台进程 VS 后台进程 &#x1f320; 小贴士&#xff1a; &#x1fa84;⼀个系统函数 --- signal() &#x1fa84;查看信号 --- man 7 sign…...

实时操作系统革命:实时Linux驱动的智能时代底层重构

一、智能时代对实时性的终极挑战 在万物互联的智能时代&#xff0c;人类对机器响应速度的期待已突破物理极限。当工业机器人以亚毫米级精度执行微米级加工任务&#xff0c;当自动驾驶系统在130公里时速下需在10毫秒内完成决策切换&#xff0c;当医疗机器人需在5毫秒内响应神经…...

NGINX HTTP/3 实验指南安装、配置与调优

一、HTTP/3 简介 基于 QUIC&#xff1a;在 UDP 之上实现的多路复用传输&#xff0c;内置拥塞控制与前向纠错&#xff0c;无需三次握手即可恢复连接。零 RTT 重连&#xff1a;借助 TLS 1.3&#xff0c;实现连接恢复时的 0-RTT 数据发送&#xff08;视底层库支持&#xff09;。多…...

机器学习中的维度、过拟合、降维

1. 维度灾难 当我们谈论机器学习模型在处理数据时遇到的困难&#xff0c;一个常常被提及的词便是“维度灾难”&#xff08;Curse of Dimensionality&#xff09;。这不是科幻小说里的情节&#xff0c;而是数学和计算世界里真实存在的困境。它指的正是&#xff1a;当数据集的特…...

关于git的使用

下载git 可以去git的官网下载https://git-scm.com/downloads 也可以去找第三方的资源下载&#xff0c;下载后是一个exe应用程序&#xff0c;直接点开一直下一步就可以安装了 右键任意位置显示这两个就代表成功&#xff0c;第一个是git官方的图形化界面&#xff0c;第二个是用…...

预约按摩小程序源码介绍

基于ThinkPHP、FastAdmin和UniApp开发的预约按摩小程序源码&#xff0c;ThinkPHP作为后端框架&#xff0c;以其高效稳定著称&#xff0c;能妥善处理数据逻辑与业务规则。FastAdmin作为后台管理框架&#xff0c;极大简化了后台管理系统的搭建与维护。UniApp则让小程序具备跨平台…...

Elasticsearch创建快照仓库报错处理

创建快照仓库报错&#xff1a; 根据报错提示的信息&#xff0c;问题可能出在 Elasticsearch 的配置中。当你尝试创建一个文件系统&#xff08;fs&#xff09;类型的快照仓库时&#xff0c;虽然已经指定了 location 参数&#xff0c;但 Elasticsearch 仍然报错&#xff0c;这通…...

LINUX安装运行jeelowcode前端项目

参考 JeeLowCode低代码社区,JeeLowCode低代码开发平台,JeeLowCode低代码开发框架,快速启动&#xff08;VUE&#xff09; 安装node 18 LINUX安装node/nodejs_linux安装node 安装到哪-CSDN博客 安装PNPM LINUX安装PNPM-CSDN博客 下载 git clone https://gitcode.com/jeelo…...

使用DDR4控制器实现多通道数据读写(十三)

一、概述 在上一章节中使用仿真简单验证了interconnect的功能&#xff0c;使用四个axi4的主端口同时发起读写命令&#xff0c;经过interconnect后&#xff0c;将这些读写指令依次发给ddr4控制器。Ddr4控制器响应后再依次将响应发送到各个通道。从而实现多通道读写ddr4控制器的功…...

如何描述BUG

一、如何描述BUG 1.1 版本信息 1.1.1 必填项 精确到构建版本号&#xff08;如v2.3.1_build20240615&#xff09; 获取方式&#xff1a; 代码版本控制系统&#xff08;Git提交哈希值&#xff09;应用内版本信息&#xff08;App的About页面&#xff09;持续集成工具生成的版本…...

Python进阶:如何通过组合模式实现高性能Vector类?

&#x1f50d; 设计动机&#xff1a;为何抛弃继承选择组合&#xff1f; 在实现多维向量类Vector时&#xff0c;我们刻意采用组合模式而非继承&#xff0c;核心优势在于&#xff1a; 高扩展性&#xff1a;通过array数组存储分量&#xff0c;天然支持高维向量低耦合&#xff1a…...

谷歌Veo vs Sora:AI视频生成技术的巅峰对决

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 ——从架构到实践&#xff0c;解析音画同步、物理模拟与长视频生成的破局之战 一、技术架构&#xff1a;双雄对垒&#xff0c;殊途同归&#xff1f; 谷歌…...

基于Spring boot+vue的中医养生系统的设计与实现(源码+论文+部署+安装+调试+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 在健康中国战略持续推进与全民健康意识显著提升的时代背景下&#xff0c;中医养生作为中…...

31.第二阶段x64游戏实战-封包-线程发包

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;30.第二阶段x64游戏实战-认识网络数据包发送流程 代码跳转 ws2_32.send跳转sen…...

Unity数字人开发笔记

开源工程地址&#xff1a;https://github.com/zhangliwei7758/unity-AI-Chat-Toolkit 先致敬zhangliwei7758&#xff0c;开放这个源码 一、建立工程 建立Unity工程&#xff08;UnityAiChat&#xff09;拖入Unity-AI-Chat-Toolkit.unitypackage打开chatSample工程&#xff0c;可…...

嵌入式开发--STM32G431无法正常运行程序,BOOT0与CAN冲突

故障现象 今天开发STM32G431时遇到一个问题&#xff0c;板子打样回来后&#xff0c;焊接完成&#xff0c;可以烧程序&#xff0c;可以读FLASH&#xff0c;却死活不能运行&#xff0c;也不能进仿真调试。 故障定位 经过排查&#xff0c;发现将隔离芯片π121M31拆除&#xff0…...

每天掌握一个Linux命令 - sqlite3

Linux 命令工具 sqlite3 使用指南 一、工具概述 sqlite3 是 SQLite 数据库的命令行工具&#xff0c;用于在 Linux 系统中直接操作 SQLite 数据库&#xff08;轻量级、无服务器、嵌入式关系型数据库&#xff09;。 核心特点&#xff1a; 无需安装数据库服务&#xff0c;直接通…...