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

EP21 Promise封装request请求

文件路径: E:/homework/uniappv3tswallpaper/utils/requset.js

utils 文件夹中创建一个新的 request 文件。

const BaseUrl = "https://tea.qingnian8.com/api/bizhi"export function request(config = {}) {return new Promise((resolve, reject) => {let {url,header = {},method = "GET"} = configurl = BaseUrl + urlheader['access-key'] = "guagua"uni.request({url,header,method,success: res => {if (res.data.errCode === 0) {resolve(res)} else if (res.data.errCode === 400) {uni.showModal({title: '错误信息',content: res.data.errMsg,showCancel: false})reject(res.data)} else {uni.showToast({title: res.data.errMsg,icon: "none"})reject(res.data)}},fail: err => {reject(err)}})})
}

文件路径: E:/homework/uniappv3tswallpaper/api/apis.js

创建一个新的 api 文件。

import {request
} from "@/utils/requset.js"export function apiGetBanner() {return request({url: "/homeBanner"})
}
export function apiGetDayRandom() {return request({url: "/randomWall"})
}

文件路径: E:/homework/uniappv3tswallpaper/pages/index/index.vue

修改后的 index 文件。

<template><view class="homeLayout pageBg"><custom-nav-bar title="推荐"></custom-nav-bar><view class="banner"><swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" circular="true"indicator-color="rgba(255,255,255,0.5)" indicator-active-color="rgba(255,255,255,1)"><swiper-item v-for="item in bannerList" :key="item._id"><image :src="item.picurl" mode="scaleToFill"></image></swiper-item></swiper></view><view class="notice"><view class="left"><uni-icons type="sound-filled" size="20"></uni-icons><text class="text">公告</text></view><view class="center"><swiper :autoplay="true" :interval="3000" :duration="1000" circular vertical><swiper-item v-for="item in noticeList" :key="item._id"><navigator url="/pages/notice/detail">{{item.title}}</navigator></swiper-item></swiper></view><view class="right"><uni-icons type="forward" size="16" color="#333"></uni-icons></view></view><view class="select"><common-title><template #name>每日推荐</template><template #custom><view class="date"><uni-icons type="calendar"></uni-icons><view class="text"><uni-dateformat :date="Date.now()" format="dd号" /></view></view></template></common-title><view class="content"><scroll-view scroll-x="true"><view class="box" v-for="item in randomList" :key="item._id" @click="goPreview"><image :src="item.smallPicurl" mode="aspectFill"></image></view></scroll-view></view></view><view class="theme"><common-title><template #name>专题精选</template><template #custom><navigator url="">More+</navigator></template></common-title><view class="content"><theme-item v-for="item in 8"></theme-item><theme-item :isMore="true"></theme-item></view></view></view>
</template><script setup>import {ref} from 'vue';import {apiGetBanner,apiGetDayRandom} from "@/api/apis.js"const bannerList = ref([]);const randomList = ref([])const noticeList = ref([])const getBanner = async () => {let res = await apiGetBanner()bannerList.value = res.data.data};const getDayRandom = async () => {let res = await apiGetDayRandom()randomList.value = res.data.data};const getNotice = async () => {let res = await uni.request({url: "https://tea.qingnian8.com/api/bizhi/wallNewsList",header: {'access-key': "guagua"},data: {select: true}})if (res.data.errCode === 0) {noticeList.value = res.data.data}}// 点击跳转到壁纸预览页面const goPreview = () => {uni.navigateTo({url: '/pages/preview/preview'});};getBanner()getDayRandom()getNotice()
</script><style lang="scss">.homeLayout {.banner {width: 750rpx;padding: 30rpx 0;swiper {width: 100%;height: 340rpx;&-item {width: 100%;height: 100%;padding: 0 30rpx;image {width: 100%;height: 100%;border-radius: 10rpx;}}}}.notice {margin: 0 30rpx;display: flex;flex-direction: row;flex-wrap: nowrap;align-content: center;justify-content: center;align-items: center;background: gray;border-radius: 80rpx;height: 80rpx;line-height: 80rpx;.left {width: 140rpx;display: flex;flex-direction: row;flex-wrap: nowrap;align-content: center;justify-content: center;align-items: center;:deep() {.uni-icons {color: $brand-theme-color !important;}}.text {color: $brand-theme-color;font-weight: 600;font-size: 28rpx;}}.center {flex: 1;height: 100%;swiper {height: 100%;&-item {// 以下三条是实现 文字长度超过显示宽度时展示省略号 的关键操作overflow: hidden;white-space: nowrap;text-overflow: ellipsis;// 以上三条height: 100%;color: $text-font-color-3;font-size: 30rpx;// flex布局与 text-overflow: ellipsis;属性 冲突// display: flex;// flex-direction: row;// flex-wrap: nowrap;// align-content: center;// align-items: center;// justify-content: flex-start;align-content: end;align-items: end;}}}.right {width: 70rpx;display: flex;flex-direction: row;flex-wrap: nowrap;align-content: center;align-items: center;justify-content: center;}}.select {padding: 50rpx 30rpx 0 30rpx;scroll-view {white-space: nowrap;.box {display: inline-block;width: 200rpx;height: 430rpx;margin-right: 15rpx;image {height: 100%;width: 100%;}}:last-child {margin-right: 0;border-radius: 10rpx;}}.date {display: flex;flex-direction: row;flex-wrap: nowrap;align-content: center;justify-content: center;align-items: center;color: $brand-theme-color;:deep() {.uni-icons {color: $brand-theme-color !important;}}}}.theme {padding: 50rpx 30rpx;.content {display: grid;gap: 15rpx;grid-template-columns: repeat(3, 1fr);}}}
</style>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java企业面试题3
  • 数据结构—单链表
  • 让医院更智慧,让决策更容易
  • LeetCode_sql_day30(1264.页面推荐)
  • ROS学习笔记13——rosbag功能包的简单使用
  • 【自动化测试】常见的自动化遍历工具以及如何选择合适的自动化遍历工具
  • 1、vectorCast单元测试常用操作
  • 关于 OceanBase 4.x 中被truncate的 table 不再支持进回收站的原因
  • CSS——网格布局(display: grid)之上篇
  • 链路聚合(Link Aggregation)
  • vue 入门一
  • 【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第二篇-着色器制作】
  • JS实现树形结构数据中特定节点及其子节点显示属性设置的技巧(可用于树形节点过滤筛选)
  • jQuery 简介 ③ ready()事件函数、jQuery 二个原则及容错机制
  • 关系型数据库,NoSQL和内存数据库三种数据库的比较
  • [deviceone开发]-do_Webview的基本示例
  • Computed property XXX was assigned to but it has no setter
  • Flex布局到底解决了什么问题
  • go语言学习初探(一)
  • JavaScript中的对象个人分享
  • JS 面试题总结
  • js对象的深浅拷贝
  • JS函数式编程 数组部分风格 ES6版
  • nodejs调试方法
  • Quartz初级教程
  • SAP云平台里Global Account和Sub Account的关系
  • 技术发展面试
  • 简单易用的leetcode开发测试工具(npm)
  • 警报:线上事故之CountDownLatch的威力
  • 聊聊flink的BlobWriter
  • 免费小说阅读小程序
  • 我看到的前端
  • 06-01 点餐小程序前台界面搭建
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #在 README.md 中生成项目目录结构
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • ${ }的特别功能
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (Oracle)SQL优化技巧(一):分页查询
  • (超详细)语音信号处理之特征提取
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (汇总)os模块以及shutil模块对文件的操作
  • (转载)Linux网络编程入门
  • ***检测工具之RKHunter AIDE
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .Net程序帮助文档制作