項(xiàng)目運(yùn)行
創(chuàng)新互聯(lián)建站專注于金堂縣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供金堂縣營銷型網(wǎng)站建設(shè),金堂縣網(wǎng)站制作、金堂縣網(wǎng)頁設(shè)計(jì)、金堂縣網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造金堂縣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供金堂縣網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。環(huán)境配置:
Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
項(xiàng)目技術(shù):
SSM + mybatis + Maven + Vue 等等組成,B/S模式 + Maven管理等等。
環(huán)境需要
1.運(yùn)行環(huán)境:最好是java jdk 1.8,我們?cè)谶@個(gè)平臺(tái)上運(yùn)行的。其他版本理論上也可以。
2.IDE環(huán)境:IDEA,Eclipse,Myeclipse都可以。推薦IDEA;
3.tomcat環(huán)境:Tomcat 7.x,8.x,9.x版本均可
4.硬件環(huán)境:windows 7/8/10 1G內(nèi)存以上;或者 Mac OS;
5.是否Maven項(xiàng)目: 否;查看源碼目錄中是否包含pom.xml;若包含,則為maven項(xiàng)目,否則為非maven項(xiàng)目
6.數(shù)據(jù)庫:MySql 5.7/8.0等版本均可;
畢設(shè)幫助,指導(dǎo),本源碼分享,調(diào)試部署(見文末)
3.4系統(tǒng)流程分析 3.4.1操作流程系統(tǒng)登錄流程圖,如圖所示:
圖3-1登錄流程圖
3.4.2添加信息流程添加信息流程圖,如圖所示:
圖3-2添加信息流程圖
3.4.3刪除信息流程刪除信息流程圖,如圖所示:
圖3-3刪除信息流程圖
4.1 系統(tǒng)體系結(jié)構(gòu)校園便攜系統(tǒng)的結(jié)構(gòu)圖4-1所示:
圖4-1 系統(tǒng)結(jié)構(gòu)
主要模塊包括首頁,個(gè)人中心,學(xué)生管理,解答者管理,問題咨詢管理,解答問題管理,校園資訊管理,交流論壇,系統(tǒng)管理等功能進(jìn)行相應(yīng)的操作。
登錄系統(tǒng)結(jié)構(gòu)圖,如圖4-2所示:
圖4-2 登錄結(jié)構(gòu)圖
這些功能可以充分滿足校園便攜系統(tǒng)的需求。此系統(tǒng)功能較為全面如下圖系統(tǒng)功能結(jié)構(gòu)如圖4-3所示。
圖4-3系統(tǒng)功能結(jié)構(gòu)圖
4.2 數(shù)據(jù)庫設(shè)計(jì)本系統(tǒng)使用MYSQL 作為系統(tǒng)的數(shù)據(jù)庫,設(shè)計(jì)用戶注冊(cè)表、文件上傳的表等等。
4.2.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)是根據(jù)用戶需求形成的。用最常的E-R方法描述數(shù)據(jù)模型進(jìn)行數(shù)據(jù)庫的概念設(shè)計(jì),首先設(shè)計(jì)局部的E-R模式,最后各局部ER模式綜合成一個(gè)全局模式。然后再把概念模式轉(zhuǎn)換成邏輯模式。將概念設(shè)計(jì)從設(shè)計(jì)過程中獨(dú)立開來,設(shè)計(jì)復(fù)雜程度降低,不受特定DBMS的限制。
1.所有實(shí)體和屬性的定義如下所示。
學(xué)生注冊(cè)屬性圖如圖4-4所示。
圖4-4學(xué)生注冊(cè)實(shí)體屬性圖
解答者實(shí)體屬性圖如圖4-5所示。
圖4-5解答者實(shí)體屬性圖
校園資訊實(shí)體屬性圖,如圖4-6所示:
圖4-6校園資訊實(shí)體屬性圖
5.1系統(tǒng)功能模塊校園便攜系統(tǒng),在系統(tǒng)首頁可以查看首頁,解答者,校園資訊,交流論壇,個(gè)人中心,后臺(tái)管理等內(nèi)容進(jìn)行詳細(xì)操作,如圖5-1所示。
圖5-1系統(tǒng)首頁界面圖
其頁面代碼如下:
methods: {
jump(url) {
?? if (this.queryIndex == 0) {
????????? localStorage.setItem('indexQueryCondition', document.getElementById("dianyingxinxidianyingmingcheng").value);
?? }
jump(url)
},
queryChange(event) {
?? this.queryIndex = event.target.value;
?? if (this.queryIndex == 0) {
????????? this.dianyingxinxidianyingmingcheng = this.queryList[event.target.value].queryName;
?? }
}
}
});
layui.use(['layer', 'form', 'element', 'carousel', 'http', 'jquery'], function() {
?? var layer = layui.layer;
?? var element = layui.element;
?? var form = layui.form;
?? var carousel = layui.carousel;
?? var http = layui.http;
?? var jquery = layui.jquery;
vue.baseurl=http.baseurl;
// 獲取輪播圖 數(shù)據(jù)
http.request('config/list', 'get', {
page: 1,
limit: 5
}, function(res) {
if (res.data.list.length >0) {
let swiperList = [];
res.data.list.forEach(element =>{
if (element.value != null) {
?? swiperList.push({
???? img: http.baseurl + element.value
?? });
}
});
?? ? vue.swiperList = swiperList;
?? ? vue.$nextTick(() =>{
?? ??? carousel.render({
?? ??? ????? elem: '#test1',
???????????????? width: '89.6%',
?? ??? ????? height: '500px',
?? ??? ????? arrow: 'hover',
?? ??? ????? anim: 'default',
?? ??? ????? autoplay: 'true',
?? ??? ????? interval: '3000',
?? ??? ????? indicator: 'inside'
?? ??? });
?? ? })
// vue.$nextTick(()=>{
//?? window.xznSlide();
// });
}
});
http.request('news/list', 'get', {
page: 1,
order: 'desc'
}, function(res) {
var newsList = res.data.list;
?? for(var i = 0; i
????????? let d = newsList[i].addtime.split(' ')
????????? d = d[0].split('-')
????????? newsList[i].year = d[0]
????????? newsList[i].month = d[1] + '-' + d[2]
?? }
??
vue.newsList = newsList;
if (newsList.length >0 && newsList.length<= 2) {
vue.leftNewsList = res.data.list
} else {
var leftNewsList = []
for (let i = 0; i<= 2; i++) {
leftNewsList.push(newsList[i]);
}
vue.leftNewsList = leftNewsList
}
if (newsList.length >2 && newsList.length<= 8) {
var rightNewsList = []
for (let i = 3; i<= newsList.length; i++) {
rightNewsList.push(newsList[i]);
}
vue.rightNewsList = rightNewsList
}
?? let flag = 10;
?? let options = {"navigation":{"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"},"slidesPerView":5,"loop":true,"spaceBetween":20,"autoplay":{"delay":3000,"disableOnInteraction":false}}
?? options.pagination = {el:'null'}
?? if(flag == 3) {
????????? vue.$nextTick(() =>{
???????????????? new Swiper('#newsnews', options)
????????? })
?? }
??
?? if(flag == 6) {
????????? let sixSwiper = {
???????????????? loop: true,
???????????????? speed: 2500,
???????????????? slidesPerView: 3,
???????????????? spaceBetween: 10,
???????????????? centeredSlides: true,
???????????????? watchSlidesProgress: true,
???????????????? autoplay: {
???????????????? ? delay: 0,
???????????????? ? stopOnLastSlide: false,
???????????????? ? disableOnInteraction: false
???????????????? }
????????? }
?????????
????????? vue.$nextTick(() =>{
???????????????? new Swiper('#new-list-6', sixSwiper)
????????? })
?? }
});
// 獲取推薦信息
var autoSortUrl = "dianyingxinxi/autoSort";
if(localStorage.getItem('userid')!=null) {
????? ??autoSortUrl = "dianyingxinxi/autoSort2";
}
http.request(autoSortUrl, 'get', {
page: 1,
limit: 3 * 1
?? }, function(res) {
????????? vue.dianyingxinxiRecommend = res.data.list
????????? let flag = 1;
????????? let options = {"navigation":{"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"},"slidesPerView":5,"loop":true,"spaceBetween":20,"autoplay":{"delay":3000,"disableOnInteraction":false}}
????????? options.pagination = {el:'null'}
????????? if(flag == 3) {
???????????????? vue.$nextTick(() =>{
?????????????????????????????? new Swiper('#recommenddianyingxinxi', options)
???????????????? })
????????? }
?????????
??
????????? if(flag == 5) {
???????????????? vue.$nextTick(() =>{
??????????????????????? var swiper = new Swiper('#recommend-five-swiperdianyingxinxi', {
?????????????????????????????? loop: true,
?????????????????????????????? speed: 500,
?????????????????????????????? slidesPerView: 5,
?????????????????????????????? spaceBetween: 10,
?????????????????????????????? autoplay: {"delay":3000,"disableOnInteraction":false},
?????????????????????????????? centeredSlides: true,
?????????????????????????????? watchSlidesProgress: true,
?????????????????????????????? on: {
????????????????????????????????????? setTranslate: function() {
???????????????????????????????????????????? slides = this.slides
???????????????????????????????????????????? for (i = 0; i< slides.length; i++) {
??????????????????????????????????????????????????? slide = slides.eq(i)
??????????????????????????????????????????????????? progress = slides[i].progress
??????????????????????????????????????????????????? // slide.html(progress.toFixed(2)); //看清楚progress是怎么變化的
??????????????????????????????????????????????????? slide.css({
?????????????????????????????????????????????????????????? 'opacity': '',
?????????????????????????????????????????????????????????? 'background': ''
??????????????????????????????????????????????????? });
??????????????????????????????????????????????????? slide.transform(''); //清除樣式
???????????????????????
??????????????????????????????????????????????????? slide.transform('scale(' + (1.5 - Math.abs(progress) / 4) + ')');
???????????????????????????????????????????? }
????????????????????????????????????? },
????????????????????????????????????? setTransition: function(transition) {
???????????????????????????????????????????? for (var i = 0; i< this.slides.length; i++) {
??????????????????????????????????????????????????? var slide = this.slides.eq(i)
??????????????????????????????????????????????????? slide.transition(transition);
???????????????????????????????????????????? }
????????????????????????????????????? },
?????????????????????????????? },
?????????????????????????????? navigation: {"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"},
?????????????????????????????? pagination: {"el":".swiper-pagination","clickable":true},
??????????????????????? });
???????????????? })
????????? }
?? });
});
學(xué)生注冊(cè),在學(xué)生注冊(cè)頁面通過填寫學(xué)號(hào),密碼,確認(rèn)密碼,姓名,年齡,手機(jī)等內(nèi)容進(jìn)行學(xué)生注冊(cè)操作,如圖5-2所示。
圖5-2學(xué)生注冊(cè)界面圖
其頁面代碼如下:
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody YonghuEntity yonghu){
????? //ValidatorUtils.validateEntity(yonghu);
????? YonghuEntity user = yonghuService.selectOne(new EntityWrapper
?? if(user!=null) {
????????? return R.error("注冊(cè)用戶已存在");
?? }
?? Long uId = new Date().getTime();
?? yonghu.setId(uId);
yonghuService.insert(yonghu);
return R.ok();
}
?解答者,在解答者息頁面可以查看解答姓名,解答賬號(hào),年齡,性別,積分,聯(lián)系電話,照片,個(gè)人簡介,點(diǎn)擊次數(shù)等內(nèi)容進(jìn)行問題咨詢和收藏操作,如圖5-3所示。
圖5-3解答者界面圖
校園資訊,在校園資訊頁面可以查看標(biāo)題,簡介,發(fā)布時(shí)間,封面,學(xué)號(hào),姓名,點(diǎn)擊次數(shù),內(nèi)容等內(nèi)容進(jìn)行評(píng)論和收藏操作,如圖5-4所示。
圖5-4校園資訊界面圖
交流論壇,在交流論壇頁面通過填寫標(biāo)題,類型,內(nèi)容等信息進(jìn)行發(fā)布帖子或重置操作,如圖5-5所示。
圖5-5交流論壇界面圖
個(gè)人中心,在個(gè)人中心頁面通過填寫學(xué)號(hào),密碼,姓名,年齡,性別,手機(jī),上傳圖片等內(nèi)容進(jìn)行信息更新操作,還可以根據(jù)需要對(duì)我的發(fā)布,我的收藏進(jìn)行相應(yīng)操作;如圖5-6所示。
圖5-6個(gè)人中心界面圖
5.2管理員功能模塊管理員登錄,管理員通過輸入用戶,密碼,選擇角色等信息進(jìn)行系統(tǒng)登錄,如圖5-7所示。
圖5-7管理員登錄界面圖
其代碼如下:
mounted() {
let menus = menu.list();
this.menus = menus;
? },
created() {
this.getRandCode()
},
methods: {
register(tableName){
this.$storage.set("loginTable", tableName);
this.$router.push({path:'/register'})
},
// 登陸
login() {
if (!this.rulesForm.username) {
???this.$message.error("請(qǐng)輸入用戶名");
return;
}
if (!this.rulesForm.password) {
this.$message.error("請(qǐng)輸入密碼");
return;
}
if (!this.rulesForm.role) {
this.$message.error("請(qǐng)選擇角色");
return;
}
let menus = this.menus;
for (let i = 0; i< menus.length; i++) {
if (menus[i].roleName == this.rulesForm.role) {
this.tableName = menus[i].tableName;
}
}
this.$http({
url: `${this.tableName}/login?username=${this.rulesForm.username}&password=${this.rulesForm.password}`,
method: "post"
}).then(({ data }) =>{
if (data && data.code === 0) {
this.$storage.set("Token", data.token);
????????this.$storage.set("role", this.rulesForm.role);
this.$storage.set("sessionTable", this.tableName);
this.$storage.set("adminName", this.rulesForm.username);
this.$router.replace({ path: "/index/" });
} else {
????????this.$message.error(data.msg);
}
});
},
管理員登錄進(jìn)入校園便攜系統(tǒng)可以查看首頁,個(gè)人中心,學(xué)生管理,解答者管理,問題咨詢管理,解答問題管理,校園資訊管理,交流論壇,系統(tǒng)管理等內(nèi)容進(jìn)行詳細(xì)操作,如圖5-8所示。
圖5-8管理員功能界面圖
學(xué)生管理,在學(xué)生管理頁面可以對(duì)索引,學(xué)號(hào),姓名,年齡,性別,手機(jī),照片等內(nèi)容進(jìn)行詳情,修改或刪除等操作,如圖5-9所示。
圖5-9學(xué)生管理界面圖
解答者管理,在解答者管理頁面可以對(duì)索引,解答賬號(hào),解答姓名,年齡,性別,積分,聯(lián)系電話,照片等內(nèi)容進(jìn)行詳情,修改或刪除等操作,如圖5-10所示。
圖5-10解答者管理界面圖
問題咨詢管理,在問題咨詢管理頁面可以對(duì)索引,標(biāo)題,提問時(shí)間,學(xué)號(hào),姓名,解答賬號(hào),解答姓名等內(nèi)容進(jìn)行詳情或刪除等操作,如圖5-11所示。
圖5-11問題咨詢管理界面圖
解答問題管理,在解答問題管理頁面可以對(duì)索引,解答時(shí)間,解答賬號(hào),解答姓名,學(xué)號(hào),姓名,審核回復(fù),審核狀態(tài)等內(nèi)容進(jìn)行詳情或刪除等操作,如圖5-12所示。
圖5-12解答問題管理界面圖
JAVA畢設(shè)幫助,指導(dǎo),源碼分享,調(diào)試部署你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧