微信小程序全栈实战(二):列表循环渲染

article/2025/11/6 3:02:46

文章目录

  • 1.需求概念
  • 2.后台开发
  • 3.前端开发
    • 1.微信页面
    • 2.JS
    • 3.请求

1.需求概念

在这里插入图片描述
我们需要循环的是这数据

2.后台开发

这里为了方便,直接写一起

@RestController
@Api(tags="Project模块") //模块名称
@CrossOrigin //开启跨域
public class ProjectController {@Autowiredprivate ProjectSer ser;/*** 查询项目列表* @return*/@GetMapping("/2001")@ApiOperation(value="显示Project列表", notes="显示Project列表")@Transactional(propagation = Propagation.SUPPORTS) // 查询用SUPPORTS 增删改用REQUIREDpublic Result getList(String ptype){Result result = new Result();List<Project> ProjectList = ser.ProjectAll(ptype); result.setData(ProjectList);result.setOk(Result.ok().getOk()); result.setStatus(200);result.setMsg("查询Project列表成功"); return result;}
}//=========================================service@Service
public class ProjectSer {@Autowiredprivate ProjectDao dao;public List<Project> ProjectAll(String ptype){Project project = new Project();if(!ptype.isEmpty() && ptype!="") {project.setPtype(ptype);Example<Project> example = Example.of(project);List<Project> list = dao.findAll(example);return list;}return dao.findAll();}//===========================================dao/*** 增删改需用@modify注解* 使用原生sql > @Query(value="select * from t_book order by RAND() LIMIT ?1",nativeQuery=true)*/
public interface  ProjectDao extends JpaRepository<Project,Integer> {/*** 项目列表查询* @return*/@Query(value="select * from t_project LIMIT :count,8",nativeQuery=true)List<Project> getProjectList(@Param("count")Integer count);@Query(value="select * from t_project WHERE id=:id",nativeQuery=true)Project getProjectById(@Param("id")Integer id);@Query(value="select ptype from t_project group by ptype",nativeQuery=true)List<String> getTypeList();@Query(value="select * from t_project where ptype = :ptype",nativeQuery=true)List<Object> getProjectBytype(@Param("ptype")String string);}//====================entity
@Entity
@Table(name="t_project")
public class Project {@Id@GeneratedValue@Column(length = 11)private Integer id;@Column(length = 20)private String pname;@Column(length = 20)private String ptype;			@Column(length = 20)private String pcomment;//getter/setter}

3.前端开发

1.微信页面

<i-panel title="火热项目"><block wx:for="{{projectlsit}}"><view style="padding: 15px;height:2rem"><image style="width:2.2rem;height:2.2rem" src="https://static.easyicon.net/preview/117/1171971.gif"></image><view class="projectList"><text style='display:block;line-height:20px'>{{item.pname}}</text><text class='desc_css' style='margin : 1.25rem;'>{{tools.sub(item.pcomment,10)}} </text></view></view></block>
</i-panel>

2.JS

//index.js
//获取应用实例
const app = getApp()Page({data: {url: 'http://localhost:90/',projectlsit: [],},//页面启动的时候onLoad:function(options) {console.log('[你当前获取主页项目信息列表]')wx.request({url: this.data.url + '2002',data: {count: 0,},method: "GET",header: {'content-type': 'application/json' // 默认值},success: (res) => {console.log(res.data.data)this.setData({projectlsit: res.data.data})}})},})

3.请求

当跳转到这个页面的时候
在这里插入图片描述
在这里插入图片描述
页面进行循环即可
在这里插入图片描述
里面就是通过点出属性即可
下面的tools这里使用了一个长度分割工具类
在这里插入图片描述
若太长,他会有截取
工具类引入方法

<!--index.wxml-->
<wxs src="../../utils/subutil.wxs" module="tools" />

工具类代码
subutil.wxs

var sub = function (val,number) {if (val.length == 0 || val == undefined) {return;}if (val.length > number) {return val.substring(0, number) + "...";} else {return val;}
}
var localData = function (value) {var date = getDate(value);var Month = date.getMonth() + 1;var Day = date.getDate();var hours = date.getHours(); //计算剩余的小时var minutes = date.getMinutes(); //计算剩余的分钟var Y = date.getFullYear() + '年';var M = Month < 10 ? '0' + Month + '月' : Month + '月';var D = Day + 1 < 10 ? '0' + Day + '日' : Day + '日';var H = hours < 10 ? '0' + hours + ':' : hours + ':'var m = minutes < 10 ? '0' + minutes : minutes;return Y + M + D + "   " + H + m;
}
module.exports = {localData: localData,sub : sub
}

util.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(':')
}const formatNumber = n => {n = n.toString()return n[1] ? n : '0' + n
}module.exports = {formatTime: formatTime
}

http://chatgpt.dhexx.cn/article/CnbVXiWC.shtml

相关文章

微信小程序资料整理

一、初识微信小程序 1、什么是微信小程序 Ⅰ-小程序历史 1. 2017 年度百度百科十大热词之一 2. 微信小程序&#xff0c;简称小程序&#xff0c;英文名 Mini Program&#xff0c;是一种不需要下载安装即可使用的应用 3. 小程序刚发布的时候要求压缩包的体积不能大于 1M,&…

微信小程序地图添加marker

本文章是在uniapp开发的微信小程序中使用腾讯地图&#xff0c;在地图上添加标记 // 添加地图标记的方法 addMarkers(driverList) { //driverList为需要添加到地图标记上的司机数组 const markers [] //地图标记数组 driverList.forEach(…

前端的几种循环,map forEach等

今天给大家分享一些前端的基础知识&#xff0c;循环 forEach循环 let arr [node,java,php,go];// 一般俩个参数 可以加上原数组 val每一项&#xff0c;index索引&#xff0c;arr原数组。arr.forEach((val,index,arr) > {console.log(val,index,arr)})map循环 let …

小程序的城市名称,双层循环怎么实现,

小程序中的定位工作的城市名称&#xff0c; 引入map.js,需要先暴露导出&#xff0c; 在使用的js中引入 put 这样城市的名字就可以实现了,注意点就是第二次循环的时候&#xff0c;不能用原有的名字&#xff0c;需要自己设置&#xff0c;新的名字&#xff0c; <view class&…

微信小程序如何循环控制一行显示几个wx:for

正如上图所显示的一样&#xff0c;我们改如何控制一行显示几个图形呢&#xff1f; 首先第一种方法&#xff0c;数量少的可以自己一行一行的写&#xff0c;但是当数据很多的时候呢&#xff1f; 这时候就需要我们区使用循环进行代码的编写。废话不多数&#xff0c;直接写代码。 .…

微信小程序将后台数据传给map中的多个markers 用for循环赋值

首先是后台创建map类 package bean;public class mapbean { private String iconPath; public String getIconPath() {return iconPath; }public void setIconPath(String iconPath) {this.iconPath iconPath; }public int getId() {return id; }public void setId(int id) {…

java中Map循环的几种方式

package com.xhx.collection;import org.junit.Test;import java.util.HashMap; import java.util.Iterator; import java.util.Map;/*** xuhaixing* 2018/7/15 19:59**/ public class TestHashMapApp {/*** 循环的几种方式*/Testpublic void testHashMap1(){Map<String,Str…

微信小程序for循环的数据每项添加编辑和删除操作

1.代码中写出样式&#xff0c;展开的内容用if绑定上checkedall 2.点击小图标时候&#xff0c;图标进行变化&#xff08;展开收起&#xff09; 3.获取数据的方法 map&#xff08;转换&#xff09; 让每一项都绑定cheeckdall&#xff0c;各不牵扯。 简单来说&#xff1a;每一项…

微信小程序循环渲染canvas动态图表

需求&#xff1a;数据驱动图表渲染&#xff0c;先看效果图 我们知道&#xff0c;微信小程序中是没有图表组件的&#xff0c;使用echarts也会有很多问题&#xff0c;比如echarts的图表总是在屏幕最上层&#xff0c;也就是说&#xff0c;会在导航栏和菜单栏上方&#xff0c;这当…

使用map优化for循环

使用map优化for循环 微信公众号&#xff1a;前端程序猿之路关注可了解更多的前端知识&#xff0c;反馈问题或建议&#xff0c;请公众号留言。如果你觉得公众号内容对你有帮助&#xff0c;欢迎关注并转载 之前做的一个东西是点击一键升级按钮&#xff0c;修改后台返回的json数据…

通过js获取本地IP地址

通过js获取本地IP地址 最近在做pc项目&#xff0c;需要根据用户的IP地址定位城市。IP地址需要通过js获取&#xff1a; 网上有很多查询接口可以获取到IP&#xff0c;我这里用的是搜狐的&#xff1a; http://pv.sohu.com/cityjson?ieutf-8 在浏览器中&#xff0c;直接输入这…

利用JS获取用户当前ip地址

新浪的IP地址查询接口&#xff1a;http://int.dpool.sina.com.cn/iplookup/iplookup.php?formatjs &#xff08;默认为纯文本格式&#xff0c;根据format的参数定义&#xff0c;还可以返回JS、Json格式&#xff09;。新浪多地域测试方法&#xff1a; http://int.dpool.sina.c…

js获取用户浏览器信息和ip地址以及位置

获取浏览器信息代码 function userAgent () {let browserReg {Chrome: /Chrome/,IE: /MSIE/,Firefox: /Firefox/,Opera: /Presto/,Safari: /Version\/([\d.]).*Safari/,360: /360SE/,QQBrowswe: /QQ/,Edge: /Edg/};let deviceReg {iPhone: /iPhone/,iPad: /iPad/,Android: /A…

js方法获取本机IP

记录一次工作中需求 获取本机IP getUserIP(onNewIP) {// onNewIp - your listener function for new IPs//compatibility for firefox and chromevar myPeerConnection window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;var pc …

【2023亲测可用】JS 获取电脑本地IP 和 电脑网络IP(外网IP|公网IP)

1、了解&#xff1a;电脑本地的IP地址&#xff08;内网IP&#xff09;和电脑本机在网络上的IP地址&#xff08;外网IP|公网IP&#xff09; 在运行窗口输入“cmd”&#xff0c;在弹出的界面里输入“ipconfig/all”。弹出的数据中&#xff0c;IPv4地址&#xff0c;就是电脑本地的…

C语言中的,“与”,“或”,“异或”解释

int main() {int a2;//取二进制010int b4;//取二进制100//int ca && b;int ca&b;//”&“这个叫“与”&#xff0c;与门中的与&#xff0c;两个都为1的时候才为1&#xff0c; 0与任何数都为0&#xff0c;“|”这个叫“或”&#xff0c;两个都为0的时候才为0&…

C语言位运算符及作用:与、或、异或、取反、左移和右移

一、& 按位与 如果两个相应的二进制位都为1&#xff0c;则该位的结果值为1&#xff0c;否则为0 应用&#xff1a;&#xff08;1&#xff09;清零 若想对一个存储单元清零&#xff0c;即使其全部二进制位为0&#xff0c;只要找一个二进制数&#xff0c;其中各个位符合一下条…

C/运算符(按位与、按位或、按位异或)

本文主要介绍C语言中按位与、按位或、按位异或三个操作符的使用。 该三个操作符中的位&#xff0c;代表的是二进制位。 按位与&#xff1a;& 运算规则&#xff1a;只有两个数的二进制同时为1&#xff0c;结果才为1&#xff0c;否则为0。&#xff08;负数按补码形式参加按…

C | 妙用异或

CSDN话题挑战赛第2期 参赛话题&#xff1a;学习笔记 啊我摔倒了..有没有人扶我起来学习.... 目录 前言一、问题的引出二、异或实现俩变量值的交换三、总结 前言 异或也叫半加运算&#xff0c;其运算法则相当于不带进位的二进制加法&#xff1a;二进制下用1表示真&#xff0c;0…

C语言中的异或 - 运算符^

最近在完成程序设计入门-C语言中需要计算异或&#xff0c;查阅了很多资料终于明白计算计算原理&#xff0c;记录一下方便以后查询。 流程 举例 为了方便理解&#xff0c;下面结合流程举例说明 a1 6 &#xff0c; 转化成二进制 a2 0110 b1 10&#xff0c;转化成二进制 b2 …