基于ssm vue uniapp实现的爱心小屋公益机构智慧管理系统


博主介绍:专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1500+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
更多项目地址 介绍  翰文编程-CSDN博客
文末下方有源码获取地址

系统实现预览

第四章 系统设计

4.1功能结构

为了更好的去理清本app整体思路,对该app以结构图的形式表达出来,设计实现该爱心小屋公益机构智慧管理app的功能结构图如下所示:

图4-1 app总体结构图

4.2 数据库设计

 4.2.1 数据库E/R图

ER图是由实体及其关系构成的图,通过E/R图可以清楚地描述系统涉及到的实体之间的相互关系。在app中对一些主要的几个关键实体如下图:

(1) 捐物箱E/R图如下所示:

图4-2捐物箱E/R图

 (2) 爱心小屋E/R图如下所示:

图4-3爱心小屋E/R图

4.2.2 数据库表

数据库表的设计,如下表:

表4-1物资流向

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

juanzengbianhao

varchar

200

捐赠编号

mujuanbiaoti

varchar

200

募捐标题

wuzimingcheng

varchar

200

物资名称

fengmian

varchar

200

封面

wuzidongtai

longtext

4294967295

物资动态

yonghuzhanghao

varchar

200

用户账号

gengxinshijian

date

更新时间

表4-2爱心小屋

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

mujuanbiaoti

varchar

200

募捐标题

wuzimingcheng

varchar

200

物资名称

fengmian

varchar

200

封面

wuzifenlei

varchar

200

物资分类

mujuanyuanyin

varchar

200

募捐原因

mujuanshuliang

int

募捐数量

mujuandiqu

varchar

200

募捐地区

aixinjifen

int

爱心积分

xiangxishuoming

longtext

4294967295

详细说明

mujuanshijian

datetime

募捐时间

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表4-3物资分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

wuzifenlei

varchar

200

物资分类

表4-4用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-5token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-6收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

收藏id

tablename

varchar

200

表名

name

varchar

200

收藏名称

picture

varchar

200

收藏图片

type

varchar

200

类型(1:收藏,21:赞,22:踩)

1

inteltype

varchar

200

推荐类型

表4-7慈善新闻

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

varchar

200

图片

content

longtext

4294967295

内容

表4-8捐赠信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

juanzengbianhao

varchar

200

捐赠编号

mujuanbiaoti

varchar

200

募捐标题

wuzimingcheng

varchar

200

物资名称

fengmian

varchar

200

封面

wuzifenlei

varchar

200

物资分类

mujuanshuliang

int

募捐数量

aixinjifen

int

爱心积分

juanzengshijian

date

捐赠时间

yonghuzhanghao

varchar

200

用户账号

yonghuxingming

varchar

200

用户姓名

lianxifangshi

varchar

200

联系方式

表4-9捐物箱

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

juanwuxiangbianhao

varchar

200

捐物箱编号

fengmian

varchar

200

封面

rongliang

varchar

200

容量

xinxigongkai

varchar

200

信息公开

aixindanwei

varchar

200

爱心单位

xiangziweizhi

varchar

200

箱子位置

表4-10积分增加

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

juanzengbianhao

varchar

200

捐赠编号

mujuanbiaoti

varchar

200

募捐标题

aixinjifen

int

爱心积分

zengjiashijian

datetime

增加时间

yonghuzhanghao

varchar

200

用户账号

yonghuxingming

varchar

200

用户姓名

touxiang

varchar

200

头像

表4-11爱心小屋评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-12用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuzhanghao

varchar

200

用户账号

mima

varchar

200

密码

yonghuxingming

varchar

200

用户姓名

touxiang

varchar

200

头像

xingbie

varchar

200

性别

aixinjifen

int

爱心积分

lianxifangshi

varchar

200

联系方式

表4-13配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

第五章 系统功能实现

5.1 APP端(用户功能)

用户登录,用户进入app,输入自己的账号和密码进行系统登录操作,如图5-1所示。

图5-1登录界面图

注册用户,进入用户注册页面,通过填写用户账号、密码、确认密码、用户姓名、性别、爱心积分、联系方式等信息进行注册操作,如图5-2所示。

图5-2用户注册界面图

用户登陆系统后,可以对首页、慈善新闻、地图、我的等内容进行详细操作,如图5-3所示。

图5-3 app首页界面图

主要代码

<template><view class="uni-padding-wrap"><view class="header"><view class="headerb"><swiper :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"20rpx 3%","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(255, 255, 255, 0)","borderRadius":"0","borderWidth":"0","width":"94%","borderStyle":"solid","height":"300rpx"}' class="swiper" :indicator-dots='".swiper-pagination"==null?false:true' :autoplay='autoplaySwiper' :circular='true' indicator-active-color='rgba(173, 219, 140, 1)' indicator-color='rgba(0, 0, 0, .3)' :duration='1000' :interval='intervalSwiper' :vertical='"horizontal"=="horizontal"?false:true'><swiper-item :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(255,255,255,1)","borderRadius":"20rpx","borderWidth":"0","width":"100%","borderStyle":"solid","height":"300rpx"}' v-for="(swiper,index) in swiperList" :key="index" @tap="onSwiperTap(swiper)"><image :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(255,255,255,1)","borderRadius":"20rpx","borderWidth":"0","width":"100%","borderStyle":"solid","height":"300rpx"}' mode="aspectFill" :src="baseUrl+swiper.img"></image><view v-if="false" :style='{"padding":"0 8rpx","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(255,255,255,1)","color":"#333","textAlign":"center","isshow":false,"borderRadius":"0","borderWidth":"0","width":"100%","lineHeight":"60rpx","fontSize":"28rpx","borderStyle":"solid"}'>{{ swiper.title }}</view></swiper-item></swiper></view></view><!-- menu --><view v-if="true" class="menu" style="display: flex;flex-wrap: wrap;" :style='{"padding":"0 8rpx","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(255,255,255,1)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}'><block v-for="item in menuList" v-bind:key="item.roleName"><block v-if="role==item.roleName" v-bind:key="index" v-for=" (menu,index) in item.frontMenu"><block v-bind:key="sort" v-for=" (child,sort) in menu.child"><block v-bind:key="sort2" v-for=" (button,sort2) in child.buttons"><view :style='{"padding":"10rpx","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0 2% 20rpx 2%","borderColor":"rgba(244, 245, 244, 1)","backgroundColor":"rgba(0, 186, 189, 0)","borderRadius":"12rpx","borderWidth":"2rpx","width":"21%","borderStyle":"solid","height":"140rpx"}' class="menu-list" v-if="button=='查看' && child.tableName!='yifahuodingdan' && child.tableName!='yituikuandingdan' &&child.tableName!='yiquxiaodingdan' && child.tableName!='weizhifudingdan' && child.tableName!='yizhifudingdan' && child.tableName!='yiwanchengdingdan' " @tap="onPageTap2('../'+child.tableName+'/list')"><!-- <image style="display: block;" :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0px auto","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","borderRadius":"20rpx","color":"#333","borderWidth":"0","width":"80rpx","fontSize":"64rpx","borderStyle":"solid","height":"80rpx"}' mode="aspectFill" src="http://codegen.caihongy.cn/20201114/7856ba26477849ea828f481fa2773a95.jpg"></image> --><view class="iconarr" :class="child.appFrontIcon" :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0px auto","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","borderRadius":"20rpx","color":"#333","borderWidth":"0","width":"80rpx","fontSize":"64rpx","borderStyle":"solid","height":"80rpx"}'></view><view :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"12rpx auto 0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","color":"rgba(0, 0, 0, 1)","textAlign":"center","borderRadius":"0","borderWidth":"0","width":"100%","lineHeight":"28rpx","fontSize":"28rpx","borderStyle":"solid"}'>{{child.menu.split("列表")[0]}}</view></view></block></block></block></block></view><!-- menu --><!-- 商品推荐 --><view class="listBox recommend"><view v-if="true && 1 == 1" class="idea recommendIdea" :style='{"padding":"0","boxShadow":"0 0 0px rgba(0,0,0,0)","margin":"40rpx 0 0","borderColor":"#ccc","borderRadius":"0","borderWidth":"0","background":"rgba(0,0,0,.0)","width":"100%","borderStyle":"solid","height":"auto"}'><view class="box box1"></view><view class="box box2"></view><view class="box box3"></view><view class="box box4"></view></view><view class="title" :style='{"padding":"0 24rpx","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"-130rpx 0 50rpx","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0, 186, 189, 0)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}'><view :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0","borderColor":"rgba(255, 255, 255, 1)","backgroundColor":"rgba(0, 0, 0, 0)","color":"#FFF","textAlign":"center","borderRadius":"0","borderWidth":"0","width":"100%","fontSize":"32rpx","lineHeight":"80rpx","borderStyle":"solid"}'>爱心小屋推荐</view></view><view v-if="true && 1 == 2" class="idea recommendIdea" :style='{"padding":"0","boxShadow":"0 0 0px rgba(0,0,0,0)","margin":"40rpx 0 0","borderColor":"#ccc","borderRadius":"0","borderWidth":"0","background":"rgba(0,0,0,.0)","width":"100%","borderStyle":"solid","height":"auto"}'><view class="box box1"></view><view class="box box2"></view><view class="box box3"></view><view class="box box4"></view></view><!-- 样式1 --><view v-if="1 == 1" class="list-box style1" :style='{"padding":"40rpx 24rpx","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(173, 219, 140, 1)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}'><view @tap="onDetailTap('aixinxiaowu',product.id)" v-for="(product,index) in aixinxiaowulist" :key="index" class="list-item" :style='{"padding":"0","boxShadow":"0 0px 0px rgba(0,0,0,.3)","margin":"0 0 20rpx","borderColor":"rgba(0,0,0,0)","backgroundColor":"#fff","borderRadius":"20rpx","borderWidth":"0","width":"48%","borderStyle":"solid","height":"auto"}'><view :style='{"padding":"0 20rpx","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0 auto","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","color":"#333","textAlign":"center","borderRadius":"0","borderWidth":"0","width":"100%","lineHeight":"48rpx","fontSize":"28rpx","borderStyle":"solid"}' class="list-item-title hide1">{{product.wuzimingcheng}}</view><image :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0 auto","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"300rpx"}' class="list-item-image" mode="aspectFill" :src="product.fengmian?baseUrl+product.fengmian.split(',')[0]:''"></image></view></view><view v-if="true && 1 == 3" class="idea recommendIdea" :style='{"padding":"0","boxShadow":"0 0 0px rgba(0,0,0,0)","margin":"40rpx 0 0","borderColor":"#ccc","borderRadius":"0","borderWidth":"0","background":"rgba(0,0,0,.0)","width":"100%","borderStyle":"solid","height":"auto"}'><view class="box box1"></view><view class="box box2"></view><view class="box box3"></view><view class="box box4"></view></view></view><!-- 商品推荐 --><!-- 新闻资讯 --><view class="listBox news"><view v-if="true && 1 == 1" class="idea newsIdea" :style='{"padding":"0","boxShadow":"0 0 12rpx rgba(0,0,0,0)","margin":"20rpx auto 0px","borderColor":"#ccc","borderRadius":"0","borderWidth":"0","background":"rgba(0,0,0,.0)","width":"640rpx","borderStyle":"solid","height":"auto"}'><view class="box box1"></view><view class="box box2"></view><view class="box box3"></view><view class="box box4"></view></view><view class="title" :style='{"padding":"0 24rpx","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0, 186, 189, 0)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}'><view :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"-140rpx auto 0","borderColor":"red","backgroundColor":"rgba(0, 0, 0, 0)","color":"#FFF","textAlign":"right","borderRadius":"0","borderWidth":"0","width":"50%","fontSize":"32rpx","lineHeight":"80rpx","borderStyle":"solid"}'>慈善新闻</view><text :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"-140rpx auto 0 0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","color":"rgba(255, 255, 255, 1)","textAlign":"right","borderRadius":"0","borderWidth":"0","width":"30%","lineHeight":"80rpx","fontSize":"28rpx","borderStyle":"solid"}' @tap="onPageTap('news')">查看更多</text></view><view v-if="true && 1 == 2" class="idea newsIdea" :style='{"padding":"0","boxShadow":"0 0 12rpx rgba(0,0,0,0)","margin":"20rpx auto 0px","borderColor":"#ccc","borderRadius":"0","borderWidth":"0","background":"rgba(0,0,0,.0)","width":"640rpx","borderStyle":"solid","height":"auto"}'><view class="box box1"></view><view class="box box2"></view><view class="box box3"></view><view class="box box4"></view></view><!-- 样式4 --><!-- 样式5 --><!-- 样式6 --><view class="news-box3" :style='{"padding":"20rpx","boxShadow":"0 0 12rpx rgba(0,0,0,0)","margin":"0 0 20rpx","borderColor":"red","backgroundColor":"rgba(255,255,255,1)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}'><view @tap="onNewsDetailTap(item.id)" v-for="(item,index) in news" :key="index" class="list-item" :style='{"padding":"20rpx","boxShadow":"0 0 12rpx rgba(255,0,0,0)","margin":"0 ","borderColor":"#ccc","backgroundColor":"rgba(255,255,255,1)","borderRadius":"0","borderWidth":"0 0 2rpx 0","width":"100%","borderStyle":"solid","height":"auto"}' style="display: flex;align-items: center;"><view :style='{"padding":"0","boxShadow":"8rpx 0 4rpx rgba(153,153,153,1)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(64, 171, 54, 1)","borderRadius":"0","borderWidth":"0","width":"8rpx","borderStyle":"solid","height":"16rpx"}' class="dian"></view><view :style='{"padding":"0 20rpx","boxShadow":"0 0 12rpx rgba(255,0,0,0)","margin":"0","borderColor":"red","backgroundColor":"rgba(255,0,0,0)","color":"#333","textAlign":"left","borderRadius":"0","borderWidth":"0","width":"calc(100% - 40rpx)","lineHeight":"auto","fontSize":"28rpx","borderStyle":"solid"}' class="title hide1">{{item.title}}</view><view class="cuIcon-right" :style='{"padding":"0","boxShadow":"0 0 12rpx rgba(255,0,0,0)","margin":"0","borderColor":"red","backgroundColor":"rgba(255,0,0,0)","color":"#666","borderRadius":"0","borderWidth":"0","width":"32rpx","lineHeight":"72rpx","fontSize":"32rpx","borderStyle":"solid"}'></view></view></view><!-- 样式7 --><!-- 样式8 --><!-- 样式9 --><view v-if="true && 1 == 3" class="idea newsIdea" :style='{"padding":"0","boxShadow":"0 0 12rpx rgba(0,0,0,0)","margin":"20rpx auto 0px","borderColor":"#ccc","borderRadius":"0","borderWidth":"0","background":"rgba(0,0,0,.0)","width":"640rpx","borderStyle":"solid","height":"auto"}'><view class="box box1"></view><view class="box box2"></view><view class="box box3"></view><view class="box box4"></view></view></view><!-- 新闻资讯 --><!-- 商品列表 --><view class="listBox list"><view v-if="false && 1 == 1" class="idea listIdea" :style='{"padding":"20rpx 10rpx","boxShadow":"0 0 12rpx rgba(0,0,0,0)","margin":"20rpx 0","borderColor":"#ccc","borderRadius":"0","borderWidth":"0","background":"rgba(0,0,0,.3)","width":"100%","borderStyle":"solid","height":"auto"}'><view class="box box1"></view><view class="box box2"></view><view class="box box3"></view><view class="box box4"></view></view><view class="title" :style='{"padding":"0 24rpx","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"20rpx auto 10rpx","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(255, 255, 255, 1)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"80rpx"}'><view :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0 auto","borderColor":"rgba(64, 174, 54, 1)","backgroundColor":"rgba(64, 174, 54, 0)","color":"rgba(64, 174, 54, 1)","textAlign":"center","borderRadius":"0","borderWidth":"0 0 10rpx","width":"30%","fontSize":"32rpx","lineHeight":"80rpx","borderStyle":"solid"}'>捐物箱</view><text :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","color":"rgba(64, 174, 54, 1)","textAlign":"center","borderRadius":"0","borderWidth":"0","width":"40%","lineHeight":"80rpx","fontSize":"28rpx","borderStyle":"solid"}' @tap="onPageTap('juanwuxiang')">查看更多</text></view><view v-if="false && 1 == 2" class="idea listIdea" :style='{"padding":"20rpx 10rpx","boxShadow":"0 0 12rpx rgba(0,0,0,0)","margin":"20rpx 0","borderColor":"#ccc","borderRadius":"0","borderWidth":"0","background":"rgba(0,0,0,.3)","width":"100%","borderStyle":"solid","height":"auto"}'><view class="box box1"></view><view class="box box2"></view><view class="box box3"></view><view class="box box4"></view></view><!-- 样式3 --><view v-if="3 == 3" class="list-box style3" :style='{"padding":"20rpx 24rpx","boxShadow":"0 0px 0px rgba(0,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(255, 255, 255, 1)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}'><view @tap="onDetailTap('juanwuxiang',product.id)" v-for="(product,index) in homejuanwuxianglist" :key="index" class="list-item" :style='{"padding":"0","boxShadow":"0px 6rpx 12rpx rgba(0, 0, 0, 0.16)","margin":"0 0 30rpx","borderColor":"rgba(0,0,0,0)","backgroundColor":"#fff","borderRadius":"20rpx","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}'><image :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","borderRadius":"20rpx","borderWidth":"0","width":"200rpx","borderStyle":"solid","height":"200rpx"}' class="list-item-image" mode="aspectFill" :src="product.fengmian?baseUrl+product.fengmian.split(',')[0]:''"></image><view class="list-item-body" :style='{"padding":"0","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"","borderColor":"rgba(0,0,0,0)","backgroundColor":"#fff","borderRadius":"0","borderWidth":"0","width":"calc(100% - 200rpx)","borderStyle":"solid","height":"auto"}'><view :style='{"padding":"0 20rpx","boxShadow":"0 2rpx 12rpx rgba(0,0,0,0)","margin":"0 auto","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","color":"rgba(0, 0, 0, 1)","textAlign":"left","borderRadius":"0","borderWidth":"0","width":"100%","lineHeight":"68rpx","fontSize":"32rpx","borderStyle":"solid"}' class="list-item-title">{{product.juanwuxiangbianhao}}</view></view></view></view><view v-if="false && 1 == 3" class="idea listIdea" :style='{"padding":"20rpx 10rpx","boxShadow":"0 0 12rpx rgba(0,0,0,0)","margin":"20rpx 0","borderColor":"#ccc","borderRadius":"0","borderWidth":"0","background":"rgba(0,0,0,.3)","width":"100%","borderStyle":"solid","height":"auto"}'><view class="box box1"></view><view class="box box2"></view><view class="box box3"></view><view class="box box4"></view></view></view><!-- 商品列表 --></view>
</template><script>import menu from '@/utils/menu'import '@/assets/css/global-restaurant.css'import uniIcons from "@/components/uni-ui/lib/uni-icons/uni-icons.vue"export default {components: {uniIcons},data() {return {rows: 2,column: 4,iconArr: ['cuIcon-same','cuIcon-deliver','cuIcon-evaluate','cuIcon-shop','cuIcon-ticket','cuIcon-cascades','cuIcon-discover','cuIcon-question','cuIcon-pic','cuIcon-filter','cuIcon-footprint','cuIcon-pulldown','cuIcon-pullup','cuIcon-moreandroid','cuIcon-refund','cuIcon-qrcode','cuIcon-remind','cuIcon-profile','cuIcon-home','cuIcon-message','cuIcon-link','cuIcon-lock','cuIcon-unlock','cuIcon-vip','cuIcon-weibo','cuIcon-activity','cuIcon-friendadd','cuIcon-friendfamous','cuIcon-friend','cuIcon-goods','cuIcon-selection'],role : '',menuList: [],swiperMenuList:[],user: {},tableName:'',autoplaySwiper: {"delay":5000,"disableOnInteraction":false} ? true : false,intervalSwiper: {"delay":5000,"disableOnInteraction":false} ? 5000 : 5000,//轮播swiperList: [],aixinxiaowulist: [],homejuanwuxianglist: [],news: [],}},computed: {baseUrl() {return this.$base.url;}},async onLoad(){this.role = uni.getStorageSync("role");let table = uni.getStorageSync("nowTable");let res = await this.$api.session(table);this.user = res.data;this.tableName = table;let menus = menu.list();this.menuList = menus;this.menuList.forEach((item,key) => {if(this.role==item.roleName) {item.frontMenu.forEach((item2,key2) => {if(item2.child[0].buttons.indexOf("查看")>-1) {this.swiperMenuList.push(item2);}})}})},async onShow() {// 轮播图let swiperList = []let res = await this.$api.page('config', {page: 1,limit: 5});for (let item of res.data.list) {if (item.name.indexOf('picture') >= 0 && item.value && item.value!="" && item.value!=null ) {swiperList.push({img: item.value,title: item.name});}}if (swiperList) {this.swiperList = swiperList;}// 慈善新闻res = await this.$api.list('news', {page: 1,limit: 6});this.news = res.data.list// 推荐信息if(uni.getStorageSync("userid")!==null) {res = await this.$api.recommend2('aixinxiaowu', {page: 1,limit: 4});} else {res = await this.$api.recommend('aixinxiaowu', {                                              page: 1,limit: 4});}this.aixinxiaowulist = res.data.listres = await this.$api.list('juanwuxiang', {page: 1,limit: 6});this.homejuanwuxianglist = res.data.list},methods: {//轮播图跳转onSwiperTap(e) {},// 新闻详情onNewsDetailTap(id) {this.$utils.jump(`../news-detail/news-detail?id=${id}`)},// 推荐列表点击详情onDetailTap(tableName, id) {this.$utils.jump(`../${tableName}/detail?id=${id}`)},onPageTap(tableName){uni.navigateTo({url: `../${tableName}/list`,fail: function(){uni.switchTab({url: `../${tableName}/list`});}});// this.$utils.jump(`../${tableName}/list`)},onPageTap2(url) {uni.setStorageSync("useridTag",0);uni.navigateTo({url: url,fail: function() {uni.switchTab({url: url});}});}}}
</script><style>page {background: #F8F8F8;}.uni-padding-wrap:after {position: fixed;top: 0;right: 0;left: 0;bottom: 0;content: '';background-attachment: fixed;background-size: cover;background-position: center;}view {// font-family: '\5FAE\8F6F\96C5\9ED1';font-size: 30upx;}.header {background: #EEEEEE;padding: 0 0 300upx 0;margin-bottom: 20upx;position: relative;}.ssbox {background: rgba(255, 255, 255, 0.35);width: 530upx;border-radius: 60rpx;padding: 10upx 15upx;box-sizing: border-box;}.ss_input {border: none;width: 450upx;font-size: 30upx;color: #fff;background: none;height: 45upx;line-break: 45upx;}.headerb {position: absolute;left: 0;width: 100%;box-sizing: border-box;}.headerb image {width: 100%;position: relative;z-index: 10;}.headerb .swiper {height: 300upx;}.swiper /deep/ .uni-swiper-dot {width: 16rpx;height: 16rpx;broder-radius: 50%;}.notice {position: relative;z-index: 5;padding: 0 50upx;}.noticem {background: #fff;padding: 55upx 30upx 15upx;border-radius: 10upx;margin-top: -45upx;}.noticer {width: 480upx;height: 50upx;}.noticer .swiper-item {white-space: nowrap;text-overflow: ellipsis;overflow: hidden;height: 50upx;line-height: 50upx;font-size: 24upx;}.list {padding: 20upx 20upx 20upx;}.listm {background: #fff;border-radius: 15upx;box-shadow: 0 0 2upx rgba(0, 0, 0, 0.1);margin-bottom: 20upx;padding: 30upx;}.listmpic {border-radius: 10upx;width: 166upx;margin-right: 20upx;}.listmr {// width: 460upx;display: inline-block;flex: 1;display: flex;justify-content: space-between;flex-direction: column;}/* #ifdef MP-WEIXIN */.noticer .swiper-item {margin-top: 5upx;}/* #endif *//* #ifdef MP-BAIDU */.noticer .swiper-item {margin-top: 3upx;}/* #endif *//* #ifdef MP-ALIPAY */.noticer .swiper-item {margin-top: 2upx;}/* #endif *//* #ifdef MP-QQ */.noticer .swiper-item {margin-top: 4upx;}/* #endif *//* #ifdef MP-TOUTIAO */.noticer .swiper-item {margin-top: 4upx;}/* #endif */.uni-product-list {display: flex;width: 100%;flex-wrap: wrap;flex-direction: row;margin-top: 0;padding: 0 14upx;box-sizing: border-box;}.uni-product-list.active {padding: 0 12upx;}.uni-product {padding: 10upx;margin: 10upx;width: 341upx;box-sizing: border-box;display: flex;flex-direction: column;background: #FFFFFF;}.uni-product-list.active .uni-product {width: 222upx;}.image-view {height: 321upx;width: 321upx;// margin: 12upx 0;display: flex;align-items: center;overflow: hidden;}.uni-product-list.active .image-view {height: 202upx;width: 202upx;overflow: hidden;}.uni-product-image {height: 100%;width: 100%;margin: 0 auto;display: block;}.uni-product-title {width: 100%;word-break: break-all;display: -webkit-box;overflow: hidden;line-height: 1.5;text-overflow: ellipsis;-webkit-box-orient: vertical;-webkit-line-clamp: 1;}.uni-product-price {width: 100%;margin-top: 10upx;font-size: 28upx;line-height: 1.5;position: relative;}.uni-product-price-original {color: #e80080;}.uni-product-price-favour {color: #888888;text-decoration: line-through;margin-left: 10upx;}.uni-product-tip {position: absolute;right: 10upx;background-color: #ff3333;color: #ffffff;padding: 0 10upx;border-radius: 5upx;}.header-title {display: flex;align-items: center;text-align: center;justify-content: space-between;padding: 0 40upx;}.listBox>.title {display: flex;flex-wrap: wrap;}.listBox .list-box .box{position: relative;}.listBox .list-box .box .title{position: absolute;left: 0;bottom: 0;z-index: 1;}.listBox .style1 {display: flex;justify-content: space-between;flex-wrap: wrap;}.listBox .style2 {display: flex;justify-content: space-between;flex-wrap: wrap;}.listBox .style3 .list-item {display: flex;}.listBox .style4 .list-item {display: flex;flex-wrap: wrap;}.listBox .style6 .list-item {display: flex;flex-wrap: wrap;}.listBox .style6 .list-item .list-item-body {display: flex;flex-wrap: wrap;}.listBox .style7 .list-item {display: flex;flex-wrap: wrap;}.listBox .style8 .list-item {display: flex;flex-wrap: wrap;}.listBox .style9 .list-item {display: flex;flex-wrap: wrap;}.listBox .idea {display: flex;flex-wrap: wrap;}.listBox .idea .box {display: flex;justify-content: center;align-items: center;background-repeat: no-repeat;background-size: 100% 100%;}.listBox .recommendIdea .box1 {margin: 0;padding: 0;width: 100%;height: 170rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(255, 255, 255, 1);background-image: url(http://codegen.caihongy.cn/20220211/48dc2556b6a242c8bb81f0c96e06f951.png);box-shadow: 0 0 0px rgba(0,0,0,0);}.listBox .recommendIdea .box2 {margin: 0;padding: 0;width: 0;height: 0;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .recommendIdea .box3 {margin: 0;padding: 0;width: 0;height: 160rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .recommendIdea .box4 {margin: 0;padding: 0;width: 0;height: 160rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .listIdea .box4 {margin: 0 2%;padding: 0;width: 21%;height: 160rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .listIdea .box1 {margin: 0 2%;padding: 0;width: 21%;height: 160rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .listIdea .box2 {margin: 0 2%;padding: 0;width: 21%;height: 160rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .listIdea .box3 {margin: 0 2%;padding: 0;width: 21%;height: 160rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .newsIdea .box1 {margin: 0;padding: 0;width: 100%;height: 120rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0, 0, 0, 0);background-image: url(http://codegen.caihongy.cn/20220211/89871762d8174529b80b00f1f27c4bd4.png);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .newsIdea .box2 {margin: 0;padding: 0;width: 0;height: 160rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .newsIdea .box3 {margin: 0;padding: 0;width: 0;height: 160rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.listBox .newsIdea .box4 {margin: 0;padding: 0;width: 0;height: 160rpx;font-size: 28rpx;color: #FFF;border-radius: 0;border-width: 0;border-style: solid;border-color: #ccc;background-color: rgba(0,0,0,.3);box-shadow: 0 0 12rpx rgba(0,0,0,0);}.iconarr {text-align: center;line-height: 80rpx;}.news-box6 .dian::before {content: "";display: block;width: 8upx;height: 8upx;background-color: red;position: absolute;top: -4upx;left: 50%;transform: translateX(-50%);border-radius: 100%;z-index: 1;}.hide1 {overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 1;line-clamp: 1;-webkit-box-orient: vertical;}.hide2 {overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;line-clamp: 2;-webkit-box-orient: vertical;}.hide4 {overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 4;line-clamp: 4;-webkit-box-orient: vertical;}
</style>

捐物箱,在捐物箱页面可以查看捐物箱编号、容量、图片、信息公开、爱心单位、箱子位置等信息,可根据需要进行收藏操作,如图5-4所示。

图5-4捐物箱界面图

爱心小屋,在爱心小屋页面可以查看物资名称、募捐标题、物资分类、图片、募捐原因、募捐数量、募捐地区、爱心积分、募捐时间、点击次数、详细说明等信息,可根据需要进行立即捐赠,评论或收藏操作,如图5-5所示。

图5-5爱心小屋界面图

用户,在我的页面可以对个人中心、捐赠信息、物资流向、积分增加、我的收藏管理等详细信息进行操作,如图5-6所示。

图5-6用户功能界面图

用户信息,在用户信息页面通过填写用户账号、密码、用户姓名、头像、性别、爱心积分、联系方式等信息进行保存或退出登录操作,如图5-7所示。

图5-7用户信息界面图

5.2后端管理员功能模块  

管理员登陆系统后,可以查看首页、个人中心、用户管理、捐物箱管理、物资分类管理、爱心小屋管理、捐赠信息管理、物资流向管理、积分增加管理、系统管理等功能,还能对每个功能逐一进行相应操作,如图5-8所示。

图5-8管理员功能界面图

用户管理,在用户管理页面可以对索引、用户账号、用户姓名、头像、性别、爱心积分、联系方式等内容进行详情,增加积分、修改和删除操作,如图5-9所示。

图5-9用户管理界面图

部分控制类代码

package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.JuanzengxinxiEntity;
import com.entity.view.JuanzengxinxiView;import com.service.JuanzengxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 捐赠信息* 后端接口* @author * @email * @date 2022-03-21 11:23:31*/
@RestController
@RequestMapping("/juanzengxinxi")
public class JuanzengxinxiController {@Autowiredprivate JuanzengxinxiService juanzengxinxiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,JuanzengxinxiEntity juanzengxinxi, @RequestParam(required = false) @DateTimeFormat(pattern="yyyy-MM-dd") Date juanzengshijianstart,@RequestParam(required = false) @DateTimeFormat(pattern="yyyy-MM-dd") Date juanzengshijianend,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {juanzengxinxi.setYonghuzhanghao((String)request.getSession().getAttribute("username"));}EntityWrapper<JuanzengxinxiEntity> ew = new EntityWrapper<JuanzengxinxiEntity>();if(juanzengshijianstart!=null) ew.ge("juanzengshijian", juanzengshijianstart);if(juanzengshijianend!=null) ew.le("juanzengshijian", juanzengshijianend);PageUtils page = juanzengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, juanzengxinxi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,JuanzengxinxiEntity juanzengxinxi, @RequestParam(required = false) @DateTimeFormat(pattern="yyyy-MM-dd") Date juanzengshijianstart,@RequestParam(required = false) @DateTimeFormat(pattern="yyyy-MM-dd") Date juanzengshijianend,HttpServletRequest request){EntityWrapper<JuanzengxinxiEntity> ew = new EntityWrapper<JuanzengxinxiEntity>();if(juanzengshijianstart!=null) ew.ge("juanzengshijian", juanzengshijianstart);if(juanzengshijianend!=null) ew.le("juanzengshijian", juanzengshijianend);PageUtils page = juanzengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, juanzengxinxi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( JuanzengxinxiEntity juanzengxinxi){EntityWrapper<JuanzengxinxiEntity> ew = new EntityWrapper<JuanzengxinxiEntity>();ew.allEq(MPUtil.allEQMapPre( juanzengxinxi, "juanzengxinxi")); return R.ok().put("data", juanzengxinxiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(JuanzengxinxiEntity juanzengxinxi){EntityWrapper< JuanzengxinxiEntity> ew = new EntityWrapper< JuanzengxinxiEntity>();ew.allEq(MPUtil.allEQMapPre( juanzengxinxi, "juanzengxinxi")); JuanzengxinxiView juanzengxinxiView =  juanzengxinxiService.selectView(ew);return R.ok("查询捐赠信息成功").put("data", juanzengxinxiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){JuanzengxinxiEntity juanzengxinxi = juanzengxinxiService.selectById(id);return R.ok().put("data", juanzengxinxi);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){JuanzengxinxiEntity juanzengxinxi = juanzengxinxiService.selectById(id);return R.ok().put("data", juanzengxinxi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody JuanzengxinxiEntity juanzengxinxi, HttpServletRequest request){juanzengxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(juanzengxinxi);juanzengxinxiService.insert(juanzengxinxi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody JuanzengxinxiEntity juanzengxinxi, HttpServletRequest request){juanzengxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(juanzengxinxi);juanzengxinxiService.insert(juanzengxinxi);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody JuanzengxinxiEntity juanzengxinxi, HttpServletRequest request){//ValidatorUtils.validateEntity(juanzengxinxi);juanzengxinxiService.updateById(juanzengxinxi);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){juanzengxinxiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<JuanzengxinxiEntity> wrapper = new EntityWrapper<JuanzengxinxiEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {wrapper.eq("yonghuzhanghao", (String)request.getSession().getAttribute("username"));}int count = juanzengxinxiService.selectCount(wrapper);return R.ok().put("count", count);}/*** (按值统计)*/@RequestMapping("/value/{xColumnName}/{yColumnName}")public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName,HttpServletRequest request) {Map<String, Object> params = new HashMap<String, Object>();params.put("xColumn", xColumnName);params.put("yColumn", yColumnName);EntityWrapper<JuanzengxinxiEntity> ew = new EntityWrapper<JuanzengxinxiEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {ew.eq("yonghuzhanghao", (String)request.getSession().getAttribute("username"));}List<Map<String, Object>> result = juanzengxinxiService.selectValue(params, ew);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put("data", result);}/*** (按值统计)时间统计类型*/@RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}")public R valueDay(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,HttpServletRequest request) {Map<String, Object> params = new HashMap<String, Object>();params.put("xColumn", xColumnName);params.put("yColumn", yColumnName);params.put("timeStatType", timeStatType);EntityWrapper<JuanzengxinxiEntity> ew = new EntityWrapper<JuanzengxinxiEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {ew.eq("yonghuzhanghao", (String)request.getSession().getAttribute("username"));}List<Map<String, Object>> result = juanzengxinxiService.selectTimeStatValue(params, ew);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put("data", result);}/*** 分组统计*/@RequestMapping("/group/{columnName}")public R group(@PathVariable("columnName") String columnName,HttpServletRequest request) {Map<String, Object> params = new HashMap<String, Object>();params.put("column", columnName);EntityWrapper<JuanzengxinxiEntity> ew = new EntityWrapper<JuanzengxinxiEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")) {ew.eq("yonghuzhanghao", (String)request.getSession().getAttribute("username"));}List<Map<String, Object>> result = juanzengxinxiService.selectGroup(params, ew);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put("data", result);}
}

捐物箱管理,在捐物箱管理页面可以对索引、捐物箱编号、封面、容量、信息公开、爱心单位、箱子位置等内容进行详情,修改和删除操作,如图5-10所示。

图5-10捐物箱管理界面图

爱心小屋管理,在爱心小屋管理页面可以对索引、募捐标题、物资名称、封面、物资分类、募捐原因、募捐数量、募捐地区、爱心积分、募捐时间等内容进行详情,修改,查看评论或删除操作,如图5-11所示。

图5-11爱心小屋管理界面图

捐赠信息管理,在捐赠信息管理页面可以对索引、捐赠编号、募捐标题、物资名称、封面、物资分类、募捐数量、爱心积分、捐赠时间、用户账号、用户姓名、联系方式等内容进行详情,物资流向,修改和删除操作,如图5-12所示。

图5-12捐赠信息管理界面图

物资流向管理,在物资流向管理页面可以对索引、捐赠编号、募捐标题、物资名称、封面、用户账号、更新时间等内容进行详情,修改和删除操作,如图5-13所示。

源码文档下载地址

【毕设项目】-爱心小屋公益机构智慧管理APPssmvueuniapp源码数据库论文ppt资源-CSDN文库

大家点赞、收藏、关注、评论啦  其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

基于PHP的校园二手书交易管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的校园二手书交易管理系统 一 介绍 此二手书交易管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注…

窗口系统与图形绘制接口

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 当我们想要进行底层图形应用(GUI)开发时,往往需要用到窗口系统和图形库,这里简单介绍一下 视窗系统(window system)与通信协议 下面内容主要针对Unix-like操作系统 视窗系统是以使用视窗作为主要特征之一的图形用…

设计模式01-类图及设计原理(Java)

一、设计模式综述 1.设计模式基本概念 设计模式&#xff08;Design Pattern&#xff09;是前辈们对代码开发经验的总结&#xff0c;是解决特定问题的一系列套路。它不是语法规定&#xff0c;而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 …

Linux 系统成为隐秘“Perfctl”加密挖矿恶意软件的目标

Aqua Security 的研究人员上周透露&#xff0c;数以千计的 Linux 系统可能感染了极难追踪且持久的“perfctl”&#xff08;或“ perfcc ”&#xff09;加密挖掘恶意软件&#xff0c;许多其他系统仍然面临被入侵的风险。 在观察到的所有攻击中&#xff0c;恶意软件都被用来运行…

C++ 非STL数据结构学习——1.4 图

一般而言&#xff0c;图的实现有邻接矩阵和邻接表两种。 1. 邻接矩阵 #include <iostream> #include <vector>class Graph { private:int V; // 顶点数量std::vector<std::vector<int>> adjMatrix; // 邻接矩阵std::vector<bool> visited; // 记…

逐次逼近型ADC转换器(SAR ADC)的原理与应用

逐次逼近型ADC&#xff08;SAR ADC&#xff0c;Successive Approximation Register Analog-to-Digital Converter&#xff09;是一种广泛应用于模拟信号数字化的模数转换器。它以其高速度、低功耗以及适中的分辨率而著称&#xff0c;特别适合于各种嵌入式系统、传感器接口以及物…

下标记数(一)

第1题 0~5出现次数&#xff08;程序填空&#xff09; 统计出一串0~5数字构成的数列中&#xff0c;6种数字各自出现的次数。 输入格式 第一行1个正整数&#xff1a;N&#xff0c;范围在[1,100]。第二行N个由0~5组成的数列。 输出格式 一行6个整数&#xff0c;分别是0~5出现的…

数据结构--线性表双向链表的实现

目录 思路设计 总体思维导图 插入部分 头插法尾插法 任意位置插入 删除部分 头结点 尾节点 中间节点 只有头结点且删除的就是头结点 ​编辑 清空链表部分 遍历清空链表的所有节点 不遍历清空 各部分代码 Main部分 MyListedList部分 IndexOutOfException部分 …

深入了解卡尔曼滤波:最优状态估计的数学神器

深入了解卡尔曼滤波&#xff1a;最优状态估计的数学神器 卡尔曼滤波是一种递归的状态估计方法&#xff0c;它通过系统模型和测量值来更新状态的最优估计。我们先来了解一下卡尔曼滤波的基本原理。 1. 假设条件 卡尔曼滤波的基本假设如下&#xff1a; 线性动态模型&#xff…

【大模型理论篇】精简循环序列模型(minGRU/minLSTM)性能堪比Transformer以及对循环神经网络的回顾

1. 语言模型之精简RNN结构 近期关注到&#xff0c;Yoshua Bengio发布了一篇论文《Were RNNs All We Needed?》&#xff0c;提出简化版RNN&#xff08;minLSTM和minGRU&#xff09;。该工作的初始缘由&#xff1a;Transformer 在序列长度方面的扩展性限制重新引发了对可在训练期…

IO重定向

文章目录 IO重定向概念3个标准文件描述符“最低可用文件描述符”原则 默认的连接&#xff1a;tty使用close then open将stdin定向到文件使用open..close..dup..close将stdin定向到文件使用open..dup2..close将stdin重定向到文件课上实验 IO重定向 大多数的程序不接收输出文件名…

015 品牌关联分类

文章目录 后端CategoryBrandEntity.javaCategoryBrandController.javaCategoryBrandServiceImpl.javaCategoryServiceImpl.javaBrandServiceImpl.java删除 npm install pubsub-jsnpm install --save pubsub-js这个错误是由于在尝试安装 pubsub-js 时&#xff0c;npm 发现了项目…

计算机毕业设计 基于Python的荣誉证书管理系统的设计与实现 Python毕业设计 Python毕业设计选题 Django框架 Vue【附源码+安装调试】

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

【自动驾驶】UniAD代码解析

1.参考 论文&#xff1a;https://arxiv.org/pdf/2212.10156 代码&#xff1a;https://github.com/OpenDriveLab/UniAD 2.环境配置 docs/INSTALL.md &#xff08;1&#xff09;虚拟conda环境 conda create -n uniad python3.8 -y conda activate uniad &#xff08;2&#…

哀牢山“禁区”爆改“景区”,双卫星智能终端给驴友多一份保障

在这个国庆假期&#xff0c;以神秘莫测、地势凶险著称的哀牢山走红&#xff0c;一天之内占据了多个微博热搜。但是&#xff0c;哀牢山的美丽背后隐藏着不可小觑的风险。景区方面已发出安全警示&#xff0c;提醒游客勿轻易涉足未知地带和未开发区域&#xff0c;以免发生危险。 …

论文翻译 | Dynamic Prompting: A Unified Framework for Prompt Tuning

摘要 已经证明&#xff0c;在从预训练的基础模型中高效提取知识方面&#xff0c;提示调整&#xff08;prompt tuning&#xff09;技术是非常有效的&#xff0c;这些基础模型包括预训练的语言模型&#xff08;PLMs&#xff09;、视觉预训练模型以及视觉-语言&#xff08;V-L&…

【网络协议大花园】应用层 http协议的使用小技巧,用好了都不用加班,效率翻两倍(下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

HCIP--以太网交换安全(二)

端口安全 一、端口安全概述 1.1、端口安全概述&#xff1a;端口安全是一种网络设备防护措施&#xff0c;通过将接口学习的MAC地址设为安全地址防止非法用户通信。 1.2、端口安全原理&#xff1a; 类型 定义 特点 安全动态MAC地址 使能端口而未是能Stichy MAC功能是转换的…

[运维]6.github 本地powershell登录及设置ssh连接

当我在本地的git hub 进行修改后&#xff0c;需要推送到远程github仓库。 当我运行了git add . git commit -m "ingress-controller image" 以后&#xff0c;运行git push origin main&#xff0c;发现由于网络原因无法连接到远程github仓库。 此时开始设置ssh连…

数组与集合的应用-数组演练

1、获取一维数组最小值 1.1 实例说明 一维数组常用于保存线性数据&#xff0c;例如数据库中的单行数据就可以使用一维数组保存。本实例接收用户在文本框中输入的单行数据&#xff0c;其中数据都是整数数字&#xff0c;以不同数量的空格分割数字&#xff0c;如图1所示。这个先行…