赞
踩
[毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 。
在目前社会,有很大一部分的行业开始实现大屏数据可视化,甚至将其作为公司宣传亮点而发展下去,大屏数据可视化是以大屏为主要展示载体的数据可视化设计。超市采用这种系统作为展示不仅可以帮助超市管理者管理库存,了解营收,更方便工作人员合理安排补货等相关工作。因此大屏的超市营收数据可视化系统对一个超市来说十分重要。
通过可视化展示超市的销售额、销售量、客流量等数据,及时了解超市的营收情况,发现潜在的经营风险,及时调整经营策略,保证超市的稳健发展;还可以分析销售数据,挖掘市场潜力,通过数据可视化的方式对销售数据进行深度挖掘和分析,发现超市的热销商品、消费者的购买偏好和消费习惯等信息,进而制定更加精准的市场营销策略,开拓更多的市场空间,提高超市的市场竞争力;同时还可以辅助决策,提高经营效率,通过可视化展示超市的库存、进货、销售等信息,帮助超市管理者更好地掌握商品的销售状况和库存情况,优化进货计划和销售策略,提高超市的经营效率和利润率;最后还可以提高员工管理效率,通过数据可视化的方式展示员工的工作绩效、考核成绩等信息,帮助管理者更好地了解员工的工作情况,发现员工的优缺点,进而制定更加科学的培训计划和考核标准,提高员工的工作效率和工作质量,达到最初设计要求。
关键词:超市营收数据管理;管理系统;数据库
系统总共分为四大模块,分别为可视化模块、用户模块、商品数据管理模块、公告模块,系统功能结构图
系统可视化界面如下图所示,界面以柱状图、折线图、饼图等形式展示了超市营收数据,并以表格形式展现了订单相关信息,管理员将数据保存到对应数据库后,则通过Flask框架构建数据服务接口,通过PyMysql查询并格式化数据,将数据进行分析与处理,最终传递给前端,前端利用Echarts技术进行可视化渲染,最终将最直观、最科学的数据分析内容呈现给用户。
用户验证界面,此界面是输入错误信息登录显示的情况;当输入正确的账号密码信息后进入的用户管理界面如下图,此时便可以对用户进行管理,可进行新增、修改、删除、查看等操作。
商品管理功能包含了商品数据的新增、删除、修改、查看功能。商品数据管理界面如下。商品类型管理功能包含了类型的新增、修改、删除、查看功能。商品类型管理界面如商品订单管理功能包含订单的新增、删除、修改、查看功能。订单数据管理界面如示。这些操作是建立在登录账号的基础上,首先需要登录进入由Layui构建的后台管理页面,然后点击菜单,进入数据管理页面,页面会通过ajax异步请求的方式加载Flask构建的后端数据,最终以列表的形式展示。在列表页面,可以输入信息进行搜索,也可以操作列表中的任意一条数据进行删除或修改。
当用户登录进入可视化系统后,普通用户可以直接进入发布公告的也米娜,管理员则需要点击进入系统模块,页面同样也会通过ajax异步请求的方式加载Flask构建的后端数据,最终以弹窗的形式展示系统最新公告。在公告的列表页面,可以输入信息进行搜索,也可以操作列表中的任意一条数据进行删除或修改。公告管理界面如下,当进入公告界面有新公告发布时界面如
import datetime from flask import Flask as _Flask, flash, redirect from flask import request, session from flask import render_template from flask.json import JSONEncoder as _JSONEncoder, jsonify import decimal import os from service import user_service, notice_service, category_service, order_service, goods_service, data_service from utils.JsonUtils import read_json from utils.Result import Result base = os.path.dirname(__file__) directory_path = os.path.dirname(__file__) json_path = directory_path + '/static/api/' class JSONEncoder(_JSONEncoder): def default(self, o): if isinstance(o, decimal.Decimal): return float(o) if isinstance(o, datetime.datetime): return o.strftime("%Y-%m-%d %H:%M:%S") if isinstance(o, datetime.date): return o.strftime("%Y-%m-%d") super(_JSONEncoder, self).default(o) class Flask(_Flask): json_encoder = JSONEncoder import os app = Flask(__name__) app.config['SESSION_TYPE'] = 'filesystem' app.config['SECRET_KEY'] = os.urandom(24) # ----------------------------------------------页面加载模块开始---------------------------------------------- # 加载系统json文件 @app.route('/api/<string:path>/') def api_json(path): if path == 'init.json' and session.get('user') and session.get('user')['type'] == 1: path = 'custom_init.json' return read_json(json_path + path) # 加载page下的静态页面 @app.route('/page/<string:path>') def api_path(path): return render_template("page/" + path) # 系统默认路径后台跳转 @app.route('/admin') def admin_page(): if session.get('user') and session.get('user')['id'] > 0: return render_template("index.html") else: return redirect("/login") # 系统可视化数据请求接口 @app.route('/') def main_page(): category_sales_volume = data_service.get_category_sales_volume() category_goods_name = data_service.get_category_goods_name() sale, gain, order_num = data_service.get_total() sales_num_list = data_service.get_category_sum_sales() category_selling_list = data_service.get_category_selling() times_selling = data_service.get_times_selling() months_selling = data_service.get_months_selling() table_list = data_service.get_table_list() return render_template("main.html", category_sales_volume=category_sales_volume, category_goods_name=category_goods_name, sale=sale, gain=gain, order_num=order_num, sales_num_list=sales_num_list, category_selling_list=category_selling_list, times_selling=times_selling, months_selling=months_selling, table_list=table_list) # 系统登录路径 @app.route('/login') def login_page(): return render_template("page/login.html") # 系统退出登录路径 @app.route('/logout') def logout_page(): session.clear() return redirect("/login") # 系统注册用户 @app.route('/register', methods=['get']) def register_page(): return render_template("page/register.html") # ----------------------------------------------页面加载模块结束---------------------------------------------- # ----------------------------------------------用户相关模块开始---------------------------------------------- # 用户注册 @app.route('/register', methods=['post']) def register_user(): form = request.form.to_dict() # 获取值 result = user_service.insert_user(form) return result.get() # 用户登录 @app.route('/login', methods=['post']) def login_user(): form = request.form.to_dict() # 获取值 result = user_service.select_user_by_account_password(form) session['user'] = result.data return result.get() # 用户数据分页 @app.route('/page/user/add', methods=['get']) def page_user_add(): return render_template("page/user/add.html") # 用户修改密码 @app.route('/user/reset/password', methods=['post']) def reset_password_user(): form = request.form.to_dict() # 获取值 result = user_service.reset_password(form['old_password'], form['new_password'], form['again_password']) return result.get() @app.route('/add/user', methods=['post']) def add_user(): form = request.form.to_dict() result = user_service.insert_user(form) return result.get() # 用户编辑页面 @app.route('/page/user/edit', methods=['get']) def page_user_edit(): id = request.args.get('id') user = user_service.get_user(id) return render_template("page/user/edit.html", user=user) # 编辑用户接口 @app.route('/edit/user', methods=['post']) def edit_user(): form = request.form.to_dict() result = user_service.edit_user(form) return result.get() # 单个删除用户接口 @app.route('/del/user/<int:id>', methods=['post']) def del_user(id): result = user_service.del_user(id) return result.get() # 批量删除用户接口 @app.route('/del/user', methods=['post']) def del_user_list(): ids = request.args.get('ids') result = user_service.del_user_list(ids) return result.get() # 用户数据分页 @app.route('/list/user', methods=['get']) def user_list(): page = request.args.get('page') limit = request.args.get('limit') where = request.args.get('searchParams') result = user_service.select_user_list(page, limit, where) return result.get() # ----------------------------------------------用户相关模块结束---------------------------------------------- # ----------------------------------------------公告相关模块开始---------------------------------------------- # 公告添加页面 @app.route('/page/notice/add', methods=['get']) def page_notice_add(): return render_template("page/notice/add.html") @app.route('/add/notice', methods=['post']) def add_notice(): form = request.form.to_dict() result = notice_service.insert_notice(form) return result.get() # 数据公告编辑页面 @app.route('/page/notice/edit', methods=['get']) def page_notice_edit(): id = request.args.get('id') notice = notice_service.get_notice(id) return render_template("page/notice/edit.html", notice=notice) # 编辑公告接口 @app.route('/edit/notice', methods=['post']) def edit_notice(): form = request.form.to_dict() result = notice_service.edit_notice(form) return result.get() # 单个删除公告接口 @app.route('/del/notice/<int:id>', methods=['post']) def del_notice(id): result = notice_service.del_notice(id) return result.get() # 批量删除公告接口 @app.route('/del/notice', methods=['post']) def del_notice_list(): ids = request.args.get('ids') result = notice_service.del_notice_list(ids) return result.get() # 公告数据分页 @app.route('/list/notice', methods=['get']) def notice_list(): page = request.args.get('page') limit = request.args.get('limit') where = request.args.get('searchParams') result = notice_service.select_notice_list(page, limit, where) return result.get() # 公告数据最新获取 @app.route('/get/notice/new', methods=['get']) def get_new_notice(): result = notice_service.get_notice_by_new() return result.get() # ----------------------------------------------公告相关模块结束---------------------------------------------- # ----------------------------------------------订单相关模块开始---------------------------------------------- # 订单添加页面 @app.route('/page/order/add', methods=['get']) def page_order_add(): goods = goods_service.get_goods_list() categorys = category_service.get_category_list() return render_template("page/order/add.html", goods=goods, categorys=categorys) # 订单添加接口 @app.route('/add/order', methods=['post']) def add_order(): form = request.form.to_dict() result = order_service.insert_order(form) return result.get() # 订单编辑页面 @app.route('/page/order/edit', methods=['get']) def page_order_edit(): id = request.args.get('id') order = order_service.get_order(id) goods = goods_service.get_goods_list() categorys = category_service.get_category_list() return render_template("page/order/edit.html", order=order, goods=goods, categorys=categorys) # 编辑订单接口 @app.route('/edit/order', methods=['post']) def edit_order(): form = request.form.to_dict() result = order_service.edit_order(form) return result.get() # 单个删除订单接口 @app.route('/del/order/<int:id>', methods=['post']) def del_order(id): result = order_service.del_order(id) return result.get() # 批量删除订单接口 @app.route('/del/order', methods=['post']) def del_order_list(): ids = request.args.get('ids') result = order_service.del_order_list(ids) return result.get() # 订单数据分页 @app.route('/list/order', methods=['get']) def shop_list(): page = request.args.get('page') limit = request.args.get('limit') where = request.args.get('searchParams') result = order_service.select_order_list(page, limit, where) return result.get() # ----------------------------------------------订单相关模块结束---------------------------------------------- # ----------------------------------------------商品相关模块开始---------------------------------------------- # 商品添加页面 @app.route('/page/goods/add', methods=['get']) def page_goods_add(): return render_template("page/goods/add.html") # 商品添加接口 @app.route('/add/goods', methods=['post']) def add_goods(): form = request.form.to_dict() result = goods_service.insert_goods(form) return result.get() # 商品编辑页面 @app.route('/page/goods/edit', methods=['get']) def page_goods_edit(): id = request.args.get('id') goods = goods_service.get_goods(id) return render_template("page/goods/edit.html", goods=goods) # 编辑商品接口 @app.route('/edit/goods', methods=['post']) def edit_goods(): form = request.form.to_dict() result = goods_service.edit_goods(form) return result.get() # 单个删除商品接口 @app.route('/del/goods/<int:id>', methods=['post']) def del_goods(id): result = goods_service.del_goods(id) return result.get() # 批量删除商品接口 @app.route('/del/goods', methods=['post']) def del_goods_list(): ids = request.args.get('ids') result = goods_service.del_goods_list(ids) return result.get() # 商品数据分页 @app.route('/list/goods', methods=['get']) def goods_list(): page = request.args.get('page') limit = request.args.get('limit') where = request.args.get('searchParams') result = goods_service.select_goods_list(page, limit, where) return result.get() # ----------------------------------------------商品相关模块结束---------------------------------------------- # ----------------------------------------------商品类别相关模块开始---------------------------------------------- # 商品类别添加页面 @app.route('/page/category/add', methods=['get']) def page_category_add(): return render_template("page/category/add.html") # 商品类别添加接口 @app.route('/add/category', methods=['post']) def add_category(): form = request.form.to_dict() result = category_service.insert_category(form) return result.get() # 商品类别编辑页面 @app.route('/page/category/edit', methods=['get']) def page_category_edit(): id = request.args.get('id') category = category_service.get_category(id) return render_template("page/category/edit.html", category=category) # 编辑商品类别接口 @app.route('/edit/category', methods=['post']) def edit_category(): form = request.form.to_dict() result = category_service.edit_category(form) return result.get() # 单个删除商品类别接口 @app.route('/del/category/<int:id>', methods=['post']) def del_category(id): result = category_service.del_category(id) return result.get() # 批量删除商品类别接口 @app.route('/del/category', methods=['post']) def del_category_list(): ids = request.args.get('ids') result = category_service.del_category_list(ids) return result.get() # 商品类别数据分页 @app.route('/list/category', methods=['get']) def category_list(): page = request.args.get('page') limit = request.args.get('limit') where = request.args.get('searchParams') result = category_service.select_category_list(page, limit, where) return result.get() # ----------------------------------------------商品类别相关模块结束---------------------------------------------- # ----------------------------------------------首页相关模块开始---------------------------------------------- # ----------------------------------------------首页相关模块结束---------------------------------------------- if __name__ == '__main__': # 端口号设置 app.run(host="127.0.0.1", port=9000)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/198734
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。