校园跑腿小程序---轮播图,导航栏开发

在这里插入图片描述

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹

🦁作者简介:一名喜欢分享和记录学习的在校大学生
💥个人主页:code袁的博客
💥 个人QQ:2647996100
🐯 个人wechat:code8896
code袁系列专栏导航
1.《毕业设计与课程设计》本专栏分享一些毕业设计的源码以及项目成果。🥰🥰🥰
2.《微信小程序开发》本专栏从基础到入门的一系开发流程,并且分享了自己在开发中遇到的一系列问题。🤹🤹🤹
3.《vue开发系列全程线路》本专栏分享自己的vue的学习历程。

非常期待和您一起在这个小小的互联网世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨ 

在这里插入图片描述

文章目录

      • 1.底部导航栏
      • 2.小程序的组件封装
        • 2.1页面引入组件
      • 3.轮播图的封装
      • 4.通知栏的封装
      • 5.request.js封装
      • 6.api
      • 7.time.js封装
      • 🎉写在最后

B站 教学视频

B站:校园跑图小程序开发

1.底部导航栏

在这里插入图片描述

"tabBar": {"color": "2c2c2c","selectedColor": "#1296db","borderStyle": "black","position": "bottom","list": [{"pagePath": "pages/index/index","text": "首页","iconPath": "./image/tabr/index.png","selectedIconPath": "./image/tabr/index1.png"},{"pagePath": "pages/order/order","text": "订单","iconPath": "./image/tabr/order.png","selectedIconPath": "./image/tabr/order1.png"},{"pagePath": "pages/talk/talk","text": "论坛","iconPath": "./image/tabr/talk.png","selectedIconPath": "./image/tabr/talk1.png"},{"pagePath": "pages/my/my","text": "我的","iconPath": "./image/tabr/my.png","selectedIconPath": "./image/tabr/my1.png"}]}

2.小程序的组件封装

在这里插入图片描述

2.1页面引入组件

在这里插入图片描述

{"usingComponents": {"swiper":"../../components/swiper/swiperImg"}
}

在这里插入图片描述

3.轮播图的封装

<view class="banner"><swiper class="swip_main" indicator-dots autoplay interval="5000" circular><block wx:for="{{mglist}}"><swiper-item><image style="width: 100%;height: 100%;border-radius: 30rpx;" mode="scaleToFill" src="{{item.imgUrl}}" data-src="{{item.imgUrl}}" catchtap="previewImage"></image></swiper-item></block></swiper>
</view>
.banner{width: 96%;height: 350rpx;margin: 15rpx auto;border-radius: 20rpx
}
.swip_main{width: 100%;height: 100%;
}
// components/swiper/swiperImg.js
Component({/*** 组件的属性列表*/properties: {mglist:{type:Array,value:[]}},/*** 组件的初始数据*/data: {mglist:[]},/*** 组件的方法列表*/methods: {}
})

4.通知栏的封装

<view class="tz"><view class="tz_zp"><image src="../../image/gg.png"></image></view><swiper class="swiper-news-top" vertical="true" autoplay="true" circular="true" interval="3000"><block wx:for="{{messageList}}"><navigator url="" open-type="navigate"><swiper-item><view class="swiper_item">{{item.content}}</view></swiper-item></navigator></block></swiper>
</view>
/* components/notice/notice.wxss */
.tz{width: 95%;height: 80rpx;background-color: white;margin-top: 20rpx;margin: 0 auto;display: flex;justify-content: flex-start;box-shadow: 0 0 15px rgb(0 0 0 / 20%);
}
.tz_zp{width: 50rpx;height: 50rpx;margin-top: 15rpx;margin-left: 10rpx;float: left;
}
.tz_zp image{width: 100%;height: 100%;
}
.swiper-news-top{width: 550rpx;height: 80rpx;float: right;margin-top: 10rpx;
}
.swiper_item {font-size: 28rpx;font-weight: 700;line-height: 80rpx;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;letter-spacing: 2px;text-align: center;color: #167BF9;}
// components/notice/notice.js
Component({/*** 组件的属性列表*/properties: {messageList:{type:Array,value:[]}},/*** 组件的初始数据*/data: {messageList:[]},/*** 组件的方法列表*/methods: {}
})

5.request.js封装

在这里插入图片描述

// 配置的域名
const baseUrl = "http://localhost:3000" // 请求公共接口// 封装请求
// 封装请求
module.exports = {request: (url, method, data) => {return new Promise((resolve, reject) => {wx.showLoading({title: '加载中',});wx.request({url: `${baseUrl}${url}`,data: data,method: method,header: {'content-type': (method === 'GET') ? 'application/x-www-form-urlencoded' : 'application/json','Cookie': wx.getStorageSync('Cookie') || ''},success: (res) => {// console.log('原始响应:', res); // 打印原始响应if (res.statusCode === 200) {// 处理 Cookieif (res.cookies && res.cookies.length > 0) {wx.setStorageSync('Cookie', res.cookies[0]); // 存储 Cookie}// 成功返回值// console.log('返回数据:', res.data); // 打印返回的数据if (res.data.code === 200) {resolve(res.data); // 确保这里返回的是 data} else {wx.showToast({title: res.data.message || '请求失败',icon: 'none'});reject(res.data.message);}} else {wx.showToast({title: '请求失败,请稍后再试',icon: 'none'});reject('请求失败');}},fail: (error) => {console.error('请求失败:', error); // 打印请求失败的错误wx.showToast({title: '网络错误,请检查网络',icon: 'none'});reject(error);},complete: () => {setTimeout(() => {wx.hideLoading();}, 100);},});});},
}

6.api

在这里插入图片描述

const {request
} = require('../utils/request')//基于业务封装的接口
module.exports = {// 获取轮播图
login: (data) => {return request('/login/login', 'POST',data);}
}

7.time.js封装

在这里插入图片描述

const formatTime = date => {const year = date.getFullYear()const month = date.getMonth() + 1const day = date.getDate()const hour = date.getHours()const minute = date.getMinutes()const second = date.getSeconds()return `${[year, month, day].map(formatNumber).join('-')} ${[hour, minute, second].map(formatNumber).join(':')}`}function getLastSevenDays() {const dates = [];const today = new Date();for (let i = 0; i < 7; i++) {const pastDate = new Date(today);pastDate.setDate(today.getDate() - i);const month = String(pastDate.getMonth() + 1).padStart(2, '0'); // 获取月份并补零const day = String(pastDate.getDate()).padStart(2, '0'); // 获取日期并补零dates.push(`${month}-${day}`); // 格式化为 MM-DD}return dates;
}
function getLastSevenDaysALL() {const dates = [];const today = new Date();for (let i = 0; i < 7; i++) {const pastDate = new Date(today);pastDate.setDate(today.getDate() - i);const formattedDate = pastDate.toISOString().split('T')[0]; // 格式化为 YYYY-MM-DDdates.push(formattedDate);}return dates;
}const formatNumber = n => {n = n.toString()return n[1] ? n : `0${n}`}    //获取星期const getWeekByDate = dates => {let show_day = new Array('周日', '周一', '周二', '周三', '周四', '周五', '周六');let date = new Date(dates);date.setDate(date.getDate());let day = date.getDay();return show_day[day];}module.exports = {formatTime: formatTime,getLastSevenDays:getLastSevenDays,getWeekByDate: getWeekByDate,getLastSevenDaysALL:getLastSevenDaysALL}

🎉写在最后

🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

你的支持就是我更新的最大动力💪~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/67187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE材质节点Fresnel

Fresnel节点 ExponentIn 控制边缘透明度 BaseReflectFractionIn 控制中心透明度

浅谈云计算07 | 云安全机制

浅谈云计算安全机制&#xff1a;全方位守护云端世界 一、引言二、加密技术&#xff1a;数据的隐形护盾三、散列机制&#xff1a;数据完整性的忠诚卫士四、数字签名&#xff1a;数据来源与真伪的鉴定专家五、公钥基础设施&#xff08;PKI&#xff09;&#xff1a;信任的基石六、…

Notepad++上NppFTP插件的安装和使用教程

一、NppFTP插件下载 图示是已经安装好了插件。 在搜索框里面搜NppFTP&#xff0c;一般情况下&#xff0c;自带的下载地址容易下载失败。这里准备了一个下载连接&#xff1a;Release v0.29.10 ashkulz/NppFTP GitHub 这里我下载的是x86版本 下载好后在nodepad的插件里面选择打…

高级运维:源码编译安装httpd 2.4,提供系统服务管理脚本并测试

1.下载httpd 2.4 源码 wget https://archive.apache.org/dist/httpd/httpd-2.4.54.tar.gz 2.解压下载压缩包 tar -zxvf httpd-2.4.54.tar.gz cd httpd-2.4.54 3.安装httpd需要的依赖包 sudo yum groupinstall "Development Tools" -y sudo yum install gcc glibc ap…

8.Bridge 桥接模式(结构型模式)

【1】抽象A>实现细节b 【2】抽象A>抽象B<实现细节b 【3】【抽象B】相对稳定&#xff0c;也可能变化 【实现细节b】频繁变化 【4】抽象B 不稳定&#xff1f; 思考问题&#xff1a;一个变化是平台&#xff08;抽象B&#xff09;的变化&#xff0c;另一个变化是型号…

【PyQt】如何在mainwindow中添加菜单栏

[toc]如何在mainwindow中添加菜单栏 如何在mainwindow中添加菜单栏 主要有两种方法&#xff1a; 1.直接创建mainwindow进行添加 2.使用ui文件加载添加 第二种方法更为常见&#xff0c;可以应用到实际 1.直接创建mainwindow进行添加 import sysfrom PyQt5.QtWidgets import …

基于springboot+vue+微信小程序的宠物领养系统

基于springbootvue微信小程序的宠物领养系统 一、介绍 本项目利用SpringBoot、Vue和微信小程序技术&#xff0c;构建了一个宠物领养系统。 本系统的设计分为两个层面&#xff0c;分别为管理层面与用户层面&#xff0c;也就是管理者与用户&#xff0c;管理权限与用户权限是不…

【Rust】错误处理机制

目录 思维导图 引言 一、错误处理的重要性 1.1 软件中的错误普遍存在 1.2 编译时错误处理要求 二、错误的分类 2.1 可恢复错误&#xff08;Recoverable Errors&#xff09; 2.2 不可恢复错误&#xff08;Unrecoverable Errors&#xff09; 三、Rust 的错误处理机制 3…

Spring Boot教程之五十五:Spring Boot Kafka 消费者示例

Spring Boot Kafka 消费者示例 Spring Boot 是 Java 编程语言中最流行和使用最多的框架之一。它是一个基于微服务的框架&#xff0c;使用 Spring Boot 制作生产就绪的应用程序只需很少的时间。Spring Boot 可以轻松创建独立的、生产级的基于 Spring 的应用程序&#xff0c;您可…

金融项目实战 04|JMeter实现自动化脚本接口测试及持续集成

目录 一、⾃动化测试理论 二、自动化脚本 1、添加断言 1️⃣注册、登录 2️⃣认证、充值、开户、投资 2、可重复执行&#xff1a;清除测试数据脚本按指定顺序执行 1️⃣如何可以做到可重复执⾏&#xff1f; 2️⃣清除测试数据&#xff1a;连接数据库setup线程组 ①明确…

【Uniapp-Vue3】@import导入css样式及scss变量用法与static目录

一、import导入css样式 在项目文件中创建一个common文件夹&#xff0c;下面创建一个css文件夹&#xff0c;里面放上style.css文件&#xff0c;编写的是公共样式&#xff0c;我们现在要在App.vue中引入该样式。 在App.vue中引入该样式&#xff0c;这样就会使样式全局生效&#…

大疆机场及无人机上云

最近基于大疆上云api进行二次开发&#xff0c;后面将按照开发步骤对其进行说明&#xff01;

Golang笔记——hashmap

本文详细介绍golang的哈希表的底层实现、扩容机制、插入查询过程以及并发安全性。 文章目录 定义Key无序性Key唯一性Key可比性 基本使用底层实现哈希表实现hmapbucket 数据结构bmap链地址法哈希冲突负载因子 扩容增量扩容等量扩容 查找过程插入过程删除流程非并发安全map 的线程…

【网络】:网络编程套接字

目录 源IP地址和目的IP地址 源MAC地址和目的MAC地址 源端口号和目的端口号 端口号 VS 进程ID TCP协议和UDP协议 网络字节序 字符串IP和整数IP相互转换 查看当前网络的状态 socket编程接口 socket常见API 创建套接字&#xff08;socket&#xff09; 绑定端口号&…

el-descriptions-item使用span占行不生效

需要实现的效果是客户状态单独占满一行 错误代码&#xff1a; <el-descriptions title"基本信息" :column"3"> <el-descriptions-item label"公司电话:">Suzhou</el-descriptions-item><el-descriptions-item label"…

vue城市道路交通流量预测可视化系统

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站、收藏、不迷路&#xff01; 项目亮点 编号&#xff1a;R09 &#x1f687; 网站大屏管理三大前端、vuespringbootmysql、前后端分离架构 &#x1f687; 流量预测道路查询…

Elasticsearch:使用 Playground 与你的 PDF 聊天

LLMs作者&#xff1a;来自 Elastic Toms Mura 了解如何将 PDF 文件上传到 Kibana 并使用 Elastic Playground 与它们交互。本博客展示了在 Playground 中与 PDF 聊天的实用示例。 Elasticsearch 8.16 具有一项新功能&#xff0c;可让你将 PDF 文件直接上传到 Kibana 并使用 Pla…

[免费]SpringBoot+Vue新能源汽车充电桩管理系统【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue新能源汽车充电桩管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue新能源汽车充电桩管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息化时代的到来&#xff0…

《拉依达的嵌入式\驱动面试宝典》—操作系统篇(二)

《拉依达的嵌入式\驱动面试宝典》—操作系统篇(二) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…

ffmpeg7.0 aac转pcm

#pragma once #define __STDC_CONSTANT_MACROS #define _CRT_SECURE_NO_WARNINGSextern "C" { #include "libavcodec/avcodec.h" }//缓冲区大小&#xff08;缓存5帧数据&#xff09; #define AUDIO_INBUF_SIZE 40960 /*name depthu8 8s16 …