基于SSM的饰品销售商城的设计与实现

目 录
摘 要 I
Abstract II
1 引言 1
1.1 选题背景及意义 1
1.1.1 选题背景 1
1.1.2 选题意义 1
1.2 国内外研究现状及发展趋势 2
1.2.1 国内研究现状 2
1.2.2 国外研究现状 2
1.2.3 发展趋势 2
1.3 研究主要内容 3
1.4 论文章节安排 3
2 相关技术概述 4
2.1 Java语言简介 4
2.2 Vue介绍 4
2.3 B/S结构 5
2.4 MySQL数据库 5
2.5 SSM框架 6
3需求分析 8
3.1 可行性分析 8
3.1.1 经济可行性 8
3.1.2 技术可行性 8
3.1.3 法律可行性 9
3.1.4 操作可行性 9
3.2系统流程的分析 9
3.3 数据字典 12
4系统设计 13
4.1系统功能模块 13
4.2 数据库设计 13
4.2.1 数据库需求分析 13
4.2.2 数据库概念结构设计 14
4.2.3 数据库逻辑结构设计 15
5 系统实现 21
5.1 前台功能模块 21
5.2后台功能模块 24
5.2.1管理员功能模块 24
5.2.2用户功能模块 26
6 系统测试 28
6.1 功能测试 28
6.2 可用性测试 28
6.3 性能测试 29
6.4 测试结果分析 29
结 论 31
致 谢 32
参考文献 33
1.3 研究主要内容
本研究的主要内容是围绕基于SSM框架的饰品销售商城的设计与实现展开。首先,通过深入的市场需求分析,明确商城系统的功能、性能及用户体验需求,进而设计系统的整体架构、功能模块及数据库结构。随后,利用SSM框架整合后端业务逻辑处理、数据访问及前后端交互功能,并注重框架的性能优化与安全性保障。同时,采用Vue.js等前端框架,设计美观且操作便捷的前端界面,实现前后端数据的实时交互。此外,开发完善的后台管理系统,方便管理员进行用户、商品、订单及促销活动的日常管理与维护。最后,通过系统的测试与优化,确保商城的稳定性与可靠性,并编写相关文档,记录设计与实现过程,为未来的研究与实践提供参考。
1.4 论文章节安排
第1章引言部分,引言主要叙述课题的任务与目的,对系统研究现状进行分析。
第2章主要内容是:开发技术。系统主要使用了Java开发语言,Java技术、ssm框架、b/s模式和myspl数据库,并对此做了介绍。
第3章主要内容是:系统需求分析,主要包括可行性分析;系统流程分析;数据字典。
第4章主要内容是:系统设计,对系统功能以图形表现出来和对数据库进行详细设计。
第5章主要内容是:系统总体设计;对系统管理员和用户的功能进行描述。
第6章主要内容是:对系统进行测试。
最后还有结论、致谢、参考文献等等内容的介绍。

<!-- 首页 -->
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
		<title>首页</title>
		<link rel="stylesheet" href="./layui/css/layui.css">
		<link rel="stylesheet" href="./xznstatic/css/common.css"/>
		<link rel="stylesheet" href="./xznstatic/css/style.css"/>
	</head>
	<style type="text/css">
		html, body {
			height: 100%;
		}
		#iframe {
			width: 100%;
			margin-top: 60px;
						padding-top: 50px;
					}
		#header {
			height: auto;
			background: #fff;
			border-bottom: 0;
			position: fixed;
			top: 0;
			left: 0;
			width: 100%;
			z-index: 1;
		}

		#header .nav-top {
			display: flex;
			align-items: center;
			padding: 0 20px;
			font-size: 16px;
			color: #2a8a15;
			box-sizing: border-box;
			height: 60px;
			background: #f7f7f7;
			box-shadow: 0 0px 0px rgba(0,0,0,.3);
			justify-content: flex-start;
			position: relative;
			z-index: 1;
		}

		#header .nav-top-img {
			width: 50px;
			height: 50px;
			padding: 0;
			margin: 0;
			border-radius: 50%;
			border-width: 0;
			border-style: solid;
			border-color: rgba(0,0,0,.3);
			box-shadow: 0 0 0px rgba(255, 71, 217, 1);
		}

		#header .nav-top-title {
			line-height: 45px;
			font-size: 28px;
			color: rgba(201, 165, 72, 1);
			padding: 0 10px;
			margin: 0 10px;
			border-radius: 6px;
			border-width: 0;
			border-style: solid;
			border-color: rgba(0,0,0,.3);
						background-color: rgba(0,0,0,0);
						box-shadow: 0 0 0px rgba(0,0,0,.3);
		}

		#header .nav-top-tel {
			line-height: 40px;
			font-size: 16px;
			color: rgba(255, 120, 0, 1);
			padding: 0 10px;
			margin: 0;
			border-radius: 6px;
			border-width: 0px;
			border-style: solid;
			border-color: rgba(255, 144, 18, 1);
			box-shadow: 0 0 2px rgba(0,0,0,.3);
		}

		#header .navs {
			display: flex;
			padding: 0 20px;
			align-items: center;
			box-sizing: border-box;
			height: 50px;
			background: #f7f7f7;
			box-shadow: 0 0px 0px rgba(255, 71, 217, 1);
			justify-content: flex-start;
		}
		#header .navs1 {
			width: 200px;
			height: 100vh;
			background: darkgoldenrod;
			position: absolute;
			top: 0;
			display: block;
			padding: 0;
			overflow-y: scroll;
			scrollbar-width: none;
			-ms-overflow-style: none;
		}
		
		#header .navs.navs1::-webkit-scrollbar {
			display: none;
		}
		
		#header .navs1 .list {
			display: flex;
			flex-direction: column;
		}
		#header .navs .title {
			width: auto;
			line-height: 40px;
			font-size: 16px;
			color: #333;
			padding: 0 10px;
			margin: 0 5px;
			border-radius: 6px;
			border-width: 0;
			border-style: solid;
			border-color: rgba(0,0,0,.3);
						background-color: rgba(0,0,0,0);
						box-shadow: 0 0 6px rgba(0,0,0,0);
		}
		#header .navs li {
			display: inline-block;
			width: auto;
			line-height: 50px;
			padding: 0 10px;
			margin: 0 10px;
			color: rgba(201, 165, 72, 1);
			font-size: 17px;
			border-radius: 0;
			border-width: 0;
			border-style: solid;
			border-color: rgba(0,0,0,.3);
			background-color: $template2.front.base.nav.list.item.backgroundColor;
			box-shadow: 0 0 0px rgba(255, 71, 217, 1);
			text-align: center;
			box-sizing: border-box;
			cursor: pointer;
		}
		#header .navs li a{
			color: inherit;
		}
		#header .navs li.current a{
			color: inherit;
		}
		#header .navs li a:hover{
			color: inherit;
		}
		#header .navs li.current {
			color: rgba(255, 255, 255, 1);
			font-size: 17px;
			border-radius: 0;
			border-width: 0;
			border-style: solid;
			border-color: rgba(255, 144, 18, 1);
			background-color: rgba(214, 170, 112, 1);
			box-shadow: 0 0 0px #fff;
		}
		#header .navs li:hover {
			color: rgba(255, 255, 255, 1);
			font-size: 17px;
			border-radius: 0;
			border-width: 0;
			border-style: solid;
			border-color: rgba(255, 144, 18, 1);
			background-color: rgba(214, 170, 112, 1);
			box-shadow: 0 0 0px rgba(0,0,0,.3);
		}
	</style>
	<body>
		<!-- start 顶部导航栏 -->
		<div id="header">
			<div v-if='true' class="nav-top">
			  <img v-if='false' class="nav-top-img" src='http://codegen.caihongy.cn/20210401/e4dd69496883445eb834fb64685ce002.png'>
			  <div v-if="true" class="nav-top-title">{{projectName}}</div>
			  <div class="nav-top-tel"></div>
			</div>
					    <div class="navs">
		    	<!-- <div class="logo" style="font-size: 20px;top: 32px;color: #fff;font-weight: bold;margin-left: -200px;width: 240px;" v-text="projectName"></div> -->
				<div class="title" v-if="false" v-text="projectName"></div>
				<div class="list">
					<ul>
						<li class='current'><a href="javascript:navPage('./pages/home/home.html')" class="menumain"><i v-if="true" class="layui-icon layui-icon-home"></i>首页</a></li>
						<li v-for="(item,index) in indexNav" v-bind:key="index"><a :href="'javascript:navPage(\''+item.url+'\')'" class="menumain" style="cursor: pointer;"><i v-if="true" class="layui-icon" :class="iconArr[index]"></i>{{item.name}}</a></li>
						<li><a href="javascript:centerPage();" class="menumain"><i v-if="true" class="layui-icon layui-icon-username"></i>个人中心</a></li>
						<li><a :href="adminurl" target="_blank" class="menumain" style="cursor: pointer;"><i v-if="true" class="layui-icon layui-icon-link"></i>后台管理</a></li>
						<li v-if="cartFlag"><a href="javascript:navPage('./pages/shop-cart/list.html')" class="menumain"><i v-if="true" class="layui-icon">&#xe657;</i>购物车</a></li>
						<li v-if="chatFlag"><a href="javascript:chatTap()" class="menumain"><i v-if="true" class="layui-icon">&#xe677;</i>客服</a></li>
					</ul>
				</div>
		    </div>
								</div>
		<!-- end 顶部导航栏 -->

		<iframe src="./pages/home/home.html" id="iframe" frameborder="0" scrolling="no" width="100%" οnlοad="changeFrameHeight"></iframe>
    <div id="tabbar" class="tabbar" :style='{"padding":"20px 0","boxShadow":"0 0 0px rgba(255,0,0,.8)","margin":"0px 0 0 0","borderColor":"rgba(255, 144, 18, 1)","backgroundColor":"rgba(255, 255, 255, 1)","borderRadius":"0","borderWidth":"0","borderStyle":"solid"}' style="position: relative;">
      <div :style='{"padding":"0 10px","boxShadow":"0 0 0px rgba(255,0,0,.8)","margin":"10px auto","borderColor":"rgba(0,0,0,1)","color":"rgba(0, 0, 0, 1)","borderRadius":"0","textAlign":"center","borderWidth":"0","width":"100%","lineHeight":"20px","fontSize":"16px","borderStyle":"solid"}' class="company"></div>
      <div :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"10px auto","borderColor":"rgba(19, 175, 105, 1)","color":"rgba(85, 85, 85, 1)","borderRadius":"0","textAlign":"center","borderWidth":"0","width":"100%","lineHeight":"20px","fontSize":"16px","borderStyle":"solid"}' class="record">Copyright © 2022.</div>
      <div :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"10px auto 30px auto","borderColor":"rgba(255,255,255,1)","color":"rgba(85, 85, 85, 1)","borderRadius":"0","textAlign":"center","borderWidth":"0px 0","width":"40%","lineHeight":"20px","fontSize":"14px","borderStyle":"solid"}' class="desc">TEL:12345678901</div>
    </div>

		<script src="./xznstatic/js/jquery-1.11.3.min.js"></script>
		<script src="./layui/layui.js"></script>
		<script src="./js/vue.js"></script>
		<script src="./js/config.js"></script>

		<script>
      var vue1 = new Vue({el: '#tabbar'})

			var vue = new Vue({
				el: '#header',
				data: {
					iconArr: ['layui-icon-gift','layui-icon-email','layui-icon-logout','layui-icon-transfer','layui-icon-slider','layui-icon-print','layui-icon-cols','layui-icon-snowflake','layui-icon-note','layui-icon-flag','layui-icon-theme','layui-icon-website','layui-icon-console','layui-icon-face-surprised','layui-icon-template-1','layui-icon-app','layui-icon-read','layui-icon-component','layui-icon-file-b','layui-icon-unlink','layui-icon-tabs','layui-icon-form','layui-icon-chat'],
					indexNav: indexNav,
					cartFlag: cartFlag,
					adminurl: adminurl,
					chatFlag: chatFlag,
					projectName: projectName,
				},
				mounted: function() {
					this.bindClickOnLi();
				},
				created() {
					this.iconArr.sort(()=>{
					  return (0.5-Math.random())
					})
				},
				methods: {
					jump(url) {
						jump(url)
					},
					bindClickOnLi() {
						let list = document.getElementsByTagName("li");
						for(var i = 0;i<list.length;i++){
							list[i].onclick = function(){
								$(this).addClass("current").siblings().removeClass("current");
                                localStorage.setItem("checkedLiIndex",$(this).index());
							}
						}
					}
				}
			});

			layui.use(['element','layer'], function() {
				var element = layui.element;
				var layer = layui.layer;
			});

			function chatTap(){
				var userTable = localStorage.getItem('userTable');
				if (userTable) {
					layui.layer.open({
						type: 2,
						title: '客服',
						area: ['600px', '600px'],
						content: './pages/chat/chat.html'
					});
				} else {
					window.location.href = './pages/login/login.html'
				}
			}

			// 导航栏跳转
			function navPage(url) {
				localStorage.setItem('iframeUrl', url);
				document.getElementById('iframe').src = url;
			}

			// 跳转到个人中心也
			function centerPage() {
				var userTable = localStorage.getItem('userTable');
				if (userTable) {
					localStorage.setItem('iframeUrl', './pages/' + userTable + '/center.html');
					document.getElementById('iframe').src = './pages/' + userTable + '/center.html';
				} else {
					window.location.href = './pages/login/login.html'
				}
			}

			var iframeUrl = localStorage.getItem('iframeUrl');
			document.getElementById('iframe').src = iframeUrl  || './pages/home/home.html';

            let list = document.getElementsByTagName("li");
            for(var i = 0;i<list.length;i++){
                if(i==localStorage.getItem("checkedLiIndex")) {
                    $(list[i]).addClass("current").siblings().removeClass("current");
                }
            }

      // var i = 0;
      setInterval(function(){
        // i++;
        // if(i<50) changeFrameHeight();
        changeFrameHeight();
      },200)

      function changeFrameHeight() {
        var iframe = document.getElementById('iframe');
        // iframe.height = 'auto';
          if (iframe) {
              var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
              if (iframeWin.document.body) {
                  iframe.height = iframeWin.document.body.scrollHeight;
              }
          }
      };

			//  窗口变化时候iframe自适应
			// function changeFrameHeight() {
				// var header = document.getElementById('header').scrollHeight;
    //     let isshow = true
    //     var tabbar = 0
    //     if(isshow) {
    //       tabbar = document.getElementById('tabbar').scrollHeight
    //     }
				// var ifm = document.getElementById("iframe");
				// ifm.height = document.documentElement.clientHeight - header - tabbar;
				// ifm.width = document.documentElement.clientWidth;
			// }

			// reasize 事件 窗口大小变化后执行的方法
			window.onresize = function() {
				changeFrameHeight();
			}
		</script>
	</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值