Advertisement

家庭财务管理系统

阅读量:

该系统基于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)

还没有任何评论哟~