家庭财务管理系统
发布时间
阅读量:
阅读量
该系统基于Spring Boot + Vue 2框架运行,默认配置为MySQL 8.0版本;架构图展示了前后端功能模块及数据库表结构;前端主要提供用户登录注册、个人信息管理等功能;后端则支持收支项目管理、用户分类管理等功能;系统通过JSON方式进行数据交互并结合ELM框架实现前端展示;部分代码展示了业务逻辑实现细节及与数据库交互方式;前端使用ElasticUI组件构建了用户登录界面及个人中心管理界面等主要功能页面。
部署要求
springboot+vue2+mysql8
架构图

前台功能
首页

理财资讯

家庭成员

个人中心

后台功能
首页

系统用户

收支项目管理

轮播图管理

表设计

用户表

收支账户

轮播图

部分代码
java
@Slf4j
public class BaseService<E>{
@Autowired
private BaseMapper<E> baseMapper;
Class<E> eClass = (Class<E>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
private final String table = humpToLine(eClass.getSimpleName());
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
public List<Map<String,Object>> selectMapBaseList(String select) {
return baseMapper.selectBaseList(select);
}
public int selectBaseCount(String sql) {
return baseMapper.selectBaseCount(sql);
}
public int deleteBaseSql(String sql) {
return baseMapper.deleteBaseSql(sql);
}
public int updateBaseSql(String sql) {
return baseMapper.updateBaseSql(sql);
}
public void insert(Map<String,Object> body){
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.insert(entity);
log.info("[{}] - 插入操作:{}",entity);
}
@Transactional
public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query,"0".equals(config.get(FindConfig.LIKE)),wrapper);
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.update(entity,wrapper);
log.info("[{}] - 更新操作:{}",entity);
}
html
<el-row class="row_ce">
<el-col :xs="24" :sm="12" :lg="8" class="el_form_item_warp">
<el-form-item label="头像" prop="avatar">
<el-upload class="avatar-uploader" drag accept="image/gif, image/jpeg, image/png, image/jpg"
action="" :http-request="uploadimg" :show-file-list="false">
<img v-if="form.avatar" :src="$fullUrl(form.avatar)" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :lg="8" class="el_form_item_warp">
<el-form-item label="账号" prop="username">
<span v-if="obj.username">{{obj.username}}</span>
<el-input v-else v-model="form.username" placeholder="请输入账号"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :lg="8" class="el_form_item_warp">
<el-form-item label="密码" prop="password">
<span v-if="obj.password">{{obj.password}}</span>
<el-input v-else type="password" v-model="form.password" placeholder="请输入密码" show-password></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :lg="8" class="el_form_item_warp">
<el-form-item label="昵称" prop="nickname">
<el-input v-model="form.nickname" placeholder="请输入昵称"></el-input>
</el-form-item>
</el-col>
全部评论 (0)
还没有任何评论哟~
