JavaEE课程设计——校园招聘管理系统(vue框架分析)

目录

Vue架构

登录


Vue架构

前端执行命令

npm run serve

这是整个前端的目录结构

vue.config.js是对前端vue的一个配置,

// var webpack = require('webpack');
const path = require('path')

function resolve(dir) {
    return path.join(__dirname, dir)
}

function publicPath() {
    if (process.env.NODE_ENV == 'production') {
        return "././";
    } else {
        return "/";
    }
}

// vue.config.js
module.exports = {
    // publicPath:"././",
    publicPath: publicPath(),
    // 国际化配置 使用其它语言,默认情况下中文语言包依旧是被引入的
    configureWebpack: {
        // plugins: [
        //     new webpack.NormalModuleReplacementPlugin(/element-ui[\/\\]lib[\/\\]locale[\/\\]lang[\/\\]zh-CN/, 'element-ui/lib/locale/lang/en')
        // ]
        resolve: {
            alias: {
                '@': resolve('src')
            }
        }
    },
    devServer: {
        host: "0.0.0.0", //指定使用一个 host。默认是 localhost,这里默认值即可
        port: 8081, //指定端口
        hot: true, // 开启热更新
        https: false, // 是否开启https模式
        proxy: { // 请求代理服务器
            '/springbootjlvpC': { //带上api前缀的
                target: 'http://localhost:8080/springbootjlvpC/', //代理目标地址
                changeOrigin: true,
                secure: false,
                pathRewrite: { // 在发出请求后将/api替换为''空值,这样不影响接口请求
                    '^/springbootjlvpC': ''
                }
            }
        }
    }
}

 我们想要访问后端就要通过proxy中的内容

在src中存放他的源码modules中是模块对应的的前端的源码

 

 

这个文件是路由文件,帮我们找一些东西

 

我们浏览器输入

 

会自动跳转到login

为什么呢我们看这个路由的js源码

import Vue from 'vue';
//配置路由
import VueRouter from 'vue-router'

Vue.use(VueRouter);
//1.创建组件
import Index from '@/views/index'
import Home from '@/views/home'
import Login from '@/views/login'
import NotFound from '@/views/404'
import UpdatePassword from '@/views/update-password'
import pay from '@/views/pay'
import register from '@/views/register'
import center from '@/views/center'
import adminexam from '@/views/modules/shijuanliebiao/exam'
import news from '@/views/modules/news/list'
import zhaopinxinxi from '@/views/modules/zhaopinxinxi/list'
import qiyexinxi from '@/views/modules/qiyexinxi/list'
import qiuzhizhexinxi from '@/views/modules/qiuzhizhexinxi/list'
import yonghu from '@/views/modules/yonghu/list'
import peizhiguanli from '@/views/modules/peizhiguanli/list'
import gangweifenlei from '@/views/modules/gangweifenlei/list'
import youqinglianjie from '@/views/modules/youqinglianjie/list'
import storeup from '@/views/modules/storeup/list'
import xuelixinxi from '@/views/modules/xuelixinxi/list'
import yingpinxinxi from '@/views/modules/yingpinxinxi/list'
import users from '@/views/modules/users/list'

//2.配置路由   注意:名字
const routes = [
    {
        path: '/index', name: 'index', component: Index, children: [{
            // 这里不设置值,是把main作为默认页面
            path: '/',
            name: 'home',
            component: Home
        }, {
            path: '/updatePassword',
            name: 'updatePassword',
            component: UpdatePassword
        }, {
            path: '/pay',
            name: 'pay',
            component: pay
        }, {
            path: '/center',
            name: 'center',
            component: center
        }
            , {
                path: '/news',
                name: 'news',
                component: news
            }
            , {
                path: '/zhaopinxinxi',
                name: 'zhaopinxinxi',
                component: zhaopinxinxi
            }
            , {
                path: '/qiyexinxi',
                name: 'qiyexinxi',
                component: qiyexinxi
            }
            , {
                path: '/qiuzhizhexinxi',
                name: 'qiuzhizhexinxi',
                component: qiuzhizhexinxi
            }
            , {
                path: '/yonghu',
                name: 'yonghu',
                component: yonghu
            }
            , {
                path: '/peizhiguanli',
                name: 'peizhiguanli',
                component: peizhiguanli
            }
            , {
                path: '/gangweifenlei',
                name: 'gangweifenlei',
                component: gangweifenlei
            }
            , {
                path: '/youqinglianjie',
                name: 'youqinglianjie',
                component: youqinglianjie
            }
            , {
                path: '/storeup',
                name: 'storeup',
                component: storeup
            }
            , {
                path: '/xuelixinxi',
                name: 'xuelixinxi',
                component: xuelixinxi
            }
            , {
                path: '/yingpinxinxi',
                name: 'yingpinxinxi',
                component: yingpinxinxi
            }
            , {
                path: '/users',
                name: 'users',
                component: users
            }
        ]
    },
    {path: '/adminexam', name: 'adminexam', component: adminexam},
    {path: '/login', name: 'login', component: Login},
    {path: '/register', name: 'register', component: register},
    {path: '/', redirect: '/index/'},      /*默认跳转路由*/
    {path: '*', component: NotFound}
]
//3.实例化VueRouter  注意:名字
const router = new VueRouter({
    mode: 'hash',   /*hash模式改为history*/
    routes // (缩写)相当于 routes: routes
})

export default router;

 在开始后我们访问的其实是/也就是个目录的意思

 

在上面的index这里后面有个中括号里面的内容是并列的

然后我们看index.vue这个文件

 

 

这里有这样一个东西老师说aside是左侧main是右侧 这可能是ui设计的东西

这里不详细说了,我们默认认为自动跳转到了home,看下home.vue的源码,这里有个mounted这个是说页面加载完自动执行的东西。

<template>
<div class="content">
<el-row>
</el-row>

<div class="text main-text">欢迎使用 {{this.$project.projectName}}</div>
</div>
</template>
<script>
import router from '@/router/router-static'
export default {
  mounted(){
    this.init();
  },
  methods:{
    init(){
        if(this.$storage.get('Token')){
        this.$http({
            url: `${this.$storage.get('sessionTable')}/session`,
            method: "get"
        }).then(({ data }) => {
            if (data && data.code != 0) {
            router.push({ name: 'login' })
            }
        });
        }else{
        router.push({ name: 'login' })
        }
        // 基于准备好的dom,初始化echarts实例
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
  }
};
</script>

<style lang="scss" scoped>
.content {
  display: flex;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 500px;
  text-align: center;
  .main-text{
    font-size: 38px;
    font-weight: bold;
    margin-top: 15%;
  }
  .text {
    font-size: 24px;
    font-weight: bold;
    color: #333;
  }
}
</style>

init中有个if else判断

我们会从storage中获取Token,开始是肯定是空的然后执行else跳到login ,在路由表中又将这个login定位到了我们的login.vue就变成了我们开始的这个界面。

如果登录了他会定位到我们上次关闭的页面

code等于0表示登录成功如果又不成功最后还是登录界面。

也就是Token过期我们就需要重新登陆

登录

 

在login中有一个登录的背景图片设置

 

bg.jpg就是这个

 这里有一个双向绑定是vue框架中的,当有一侧发生改变另一侧也会改变

这一段中v-for就是遍历 

 

页面加载完会将这个menu赋值给menus

这个menu又来自于我们的工具包

 

 

const menu = {
    list() {
        return [{
            "backMenu": [{
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "用户列表", "tableName": "yonghu"}],
                "menu": "用户管理"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "企业信息列表", "tableName": "qiyexinxi"}],
                "menu": "企业信息管理"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "岗位分类列表", "tableName": "gangweifenlei"}],
                "menu": "岗位分类管理"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "学历信息列表", "tableName": "xuelixinxi"}],
                "menu": "学历信息管理"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "友情链接列表", "tableName": "youqinglianjie"}],
                "menu": "友情链接管理"
            }, {
                "child": [{
                    "buttons": ["新增", "查看", "修改", "删除"],
                    "menu": "配置管理",
                    "tableName": "peizhiguanli"
                }, {"buttons": ["新增", "查看", "修改", "删除"], "menu": "新闻资讯列表", "tableName": "news"}], "menu": "系统管理"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "收藏列表", "tableName": "storeup"}],
                "menu": "我的收藏管理"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "管理员管理", "tableName": "users"}],
                "menu": "管理员管理"
            }, {
                "child": [{"buttons": ["查看", "修改", "删除"], "menu": "招聘信息列表", "tableName": "zhaopinxinxi"}],
                "menu": "招聘信息管理"
            }, {
                "child": [{"buttons": ["查看", "删除"], "menu": "应聘信息列表", "tableName": "yingpinxinxi"}],
                "menu": "应聘信息管理"
            }, {
                "child": [{"buttons": ["查看", "修改", "删除"], "menu": "求职者信息列表", "tableName": "qiuzhizhexinxi"}],
                "menu": "求职者信息管理"
            }],
            "frontMenu": [{
                "child": [{
                    "buttons": ["新增", "查看", "修改", "删除", "应聘"],
                    "menu": "招聘信息列表",
                    "tableName": "zhaopinxinxi"
                }], "menu": "招聘信息模块"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "求职者信息列表", "tableName": "qiuzhizhexinxi"}],
                "menu": "求职者信息模块"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "友情链接列表", "tableName": "youqinglianjie"}],
                "menu": "友情链接模块"
            }],
            "roleName": "管理员",
            "tableName": "users"
        }, {
            "backMenu": [{
                "child": [{
                    "buttons": ["新增", "查看", "修改", "删除"],
                    "menu": "求职者信息列表",
                    "tableName": "qiuzhizhexinxi"
                }], "menu": "求职者信息管理"
            }, {"child": [{"buttons": ["查看"], "menu": "应聘信息列表", "tableName": "yingpinxinxi"}], "menu": "应聘信息管理"}],
            "frontMenu": [{
                "child": [{
                    "buttons": ["新增", "查看", "修改", "删除", "应聘"],
                    "menu": "招聘信息列表",
                    "tableName": "zhaopinxinxi"
                }], "menu": "招聘信息模块"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "求职者信息列表", "tableName": "qiuzhizhexinxi"}],
                "menu": "求职者信息模块"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "友情链接列表", "tableName": "youqinglianjie"}],
                "menu": "友情链接模块"
            }],
            "roleName": "用户",
            "tableName": "yonghu"
        }, {
            "backMenu": [{
                "child": [{
                    "buttons": ["新增", "查看", "修改", "删除"],
                    "menu": "招聘信息列表",
                    "tableName": "zhaopinxinxi"
                }], "menu": "招聘信息管理"
            }, {
                "child": [{"buttons": ["查看", "删除", "审核"], "menu": "应聘信息列表", "tableName": "yingpinxinxi"}],
                "menu": "应聘信息管理"
            }],
            "frontMenu": [{
                "child": [{
                    "buttons": ["新增", "查看", "修改", "删除", "应聘"],
                    "menu": "招聘信息列表",
                    "tableName": "zhaopinxinxi"
                }], "menu": "招聘信息模块"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "求职者信息列表", "tableName": "qiuzhizhexinxi"}],
                "menu": "求职者信息模块"
            }, {
                "child": [{"buttons": ["新增", "查看", "修改", "删除"], "menu": "友情链接列表", "tableName": "youqinglianjie"}],
                "menu": "友情链接模块"
            }],
            "roleName": "企业",
            "tableName": "qiyexinxi"
        }]
    }
}
export default menu;

 这里就是一个大的JSON串

找个json在线格式转化工具就可以查看

这里有三个小json串组成

 

 

和界面上的对应

 

接着看源码这里会把用户密码传给后台并返回一个data

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaEE高校课程管理系统是一个包含学生、教师、课程等相关信息的系统,主要实现学生选课、教师开课、课程管理等功能。该系统的课程设计需要结合数据库、前端页面和后端代码实现。 首先,数据库设计包括创建学生表、教师表、课程表等,以及它们之间的关联关系。学生表包括学生ID、姓名、年龄等字段;教师表包括教师ID、姓名、专业等字段;课程表包括课程ID、名称、学分等字段。通过数据库设计,实现数据的存储和管理。 其次,前端页面需要设计学生选课界面、教师开课界面、课程管理界面等。学生选课界面需要显示可选课程列表,并能够进行选课操作;教师开课界面需要显示教师所教授的课程,并能够进行开课操作;课程管理界面需要显示所有课程信息,并能够进行添加、删除、修改操作。通过前端页面,实现用户与系统的交互操作。 最后,后端代码需要实现与数据库的连接和数据的操作。通过JavaEE框架,可以实现数据库连接池的配置、数据的增删改查操作等。例如,学生选课时,后端代码需要更新学生的选课信息;教师开课时,后端代码需要更新课程表的相关信息。通过后端代码,实现系统的逻辑处理和数据库的操作。 综上所述,JavaEE高校课程管理系统课程设计代码实现需要综合数据库设计、前端页面和后端代码的开发,以实现学生选课、教师开课、课程管理等功能。通过统一的设计和实现,可以构建一个完善的高校课程管理系统

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇努力学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值