From 4e3e67047d3706e4025d82bfa4063fb729e9add7 Mon Sep 17 00:00:00 2001 From: zhaowenkang Date: Sat, 21 Dec 2024 10:39:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- work/package.json | 2 +- work/src/api/AddWorkApi.js | 17 ++ work/src/api/ClassListApi.js | 20 ++ work/src/api/LoginApi.js | 12 + work/src/api/UpdateWorkApi.js | 20 ++ work/src/api/index.js | 89 ++++-- work/src/router/index.js | 48 +++- work/src/views/AddWork.vue | 403 +++++++++++++++++++++++++++ work/src/views/DoHomeworkView.vue | 366 ------------------------- work/src/views/HomeWork.vue | 258 +++++++++++++++++ work/src/views/Login.vue | 145 ++++++++++ work/src/views/UpdateWork.vue | 535 ++++++++++++++++++++++++++++++++++++ work/src/views/WorkDetail.vue | 391 ++++++++++++++++++++++++++ work/src/views/WorksShowView.vue | 563 -------------------------------------- work/vite.config.js | 4 +- 15 files changed, 1915 insertions(+), 958 deletions(-) create mode 100644 work/src/api/AddWorkApi.js create mode 100644 work/src/api/ClassListApi.js create mode 100644 work/src/api/LoginApi.js create mode 100644 work/src/api/UpdateWorkApi.js create mode 100644 work/src/views/AddWork.vue delete mode 100644 work/src/views/DoHomeworkView.vue create mode 100644 work/src/views/HomeWork.vue create mode 100644 work/src/views/Login.vue create mode 100644 work/src/views/UpdateWork.vue create mode 100644 work/src/views/WorkDetail.vue delete mode 100644 work/src/views/WorksShowView.vue diff --git a/work/package.json b/work/package.json index 121af1b..f0db4ec 100644 --- a/work/package.json +++ b/work/package.json @@ -4,7 +4,7 @@ "private": true, "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host 0.0.0.0", "build": "vite build", "preview": "vite preview" }, diff --git a/work/src/api/AddWorkApi.js b/work/src/api/AddWorkApi.js new file mode 100644 index 0000000..cf371f3 --- /dev/null +++ b/work/src/api/AddWorkApi.js @@ -0,0 +1,17 @@ +import service from "."; +const AddWorkApi={ + + //获取关联文章列表(关键字) + getArticleList(Name){ + return service.post("/api/homework_manage/get-article-list",{Name}); + }, + //获取关联直播列表 + getLiveList(){ + return service.post("/api/homework_manage/get-live-list"); + }, + //添加作业 + addWork(data){ + return service.post("/api/homework_manage/add-homework",data); + }, +} +export default AddWorkApi; \ No newline at end of file diff --git a/work/src/api/ClassListApi.js b/work/src/api/ClassListApi.js new file mode 100644 index 0000000..e45c0da --- /dev/null +++ b/work/src/api/ClassListApi.js @@ -0,0 +1,20 @@ +import service from "."; +const ClassListApi={ + //获取作业列表 + getClassList(PageNo,PageSize){ + return service.post("/api/homework_manage/get-homework-list",{PageNo,PageSize}) + }, + //为了编辑,首先获取单个作业内容 + getClassListOne(Id){ + return service.post("/api/homework_manage/get-homework",{Id}) + }, + //获取作业详情 + getWorkDetail(id,pageNo,pageSize){ + return service.post("/api/homework_manage/getrecordlist",{id,pageNo,pageSize}) + }, + //编辑作业 + editWork(data){ + return service.post("/api/homework_manage/edit-homework",data) + }, +} +export default ClassListApi; \ No newline at end of file diff --git a/work/src/api/LoginApi.js b/work/src/api/LoginApi.js new file mode 100644 index 0000000..7e0daa6 --- /dev/null +++ b/work/src/api/LoginApi.js @@ -0,0 +1,12 @@ +import service from "."; +const LoginApi={ + //登录 + login(username,password){ + return service.post("/api/login",username,password) + }, + //退出登录 + logout(){ + return service.post("/api/logout") + } +} +export default LoginApi; \ No newline at end of file diff --git a/work/src/api/UpdateWorkApi.js b/work/src/api/UpdateWorkApi.js new file mode 100644 index 0000000..deacda8 --- /dev/null +++ b/work/src/api/UpdateWorkApi.js @@ -0,0 +1,20 @@ +import service from "."; +const UpdateWorkApi={ + //查询分部 + getdeptinfo(){ + return service.post("/api/homework_manage/getdeptinfo") + }, + //查询分部门店 + getshopinfo(deptId){ + return service.post("/api/homework_manage/getshopinfo",{deptId}) + }, + //查询功能 + getrecordbycondition(data){ + return service.post("/api/homework_manage/getrecordbycondition",data) + }, + //数据导出 + excelexport(data){ + return service.post("/api/homework_manage/export-record",data) + } +} +export default UpdateWorkApi; \ No newline at end of file diff --git a/work/src/api/index.js b/work/src/api/index.js index e294042..7f144e9 100644 --- a/work/src/api/index.js +++ b/work/src/api/index.js @@ -1,30 +1,83 @@ -import axios from "axios"; +// import axios from "axios"; + +// const service = axios.create({ +// // baseURL: 'http://192.168.8.191:8080', +// // baseURL: 'http://localhost:8080', +// baseURL: '/api', +// }); +// // http://192.168.8.191:8080 + +// //Axios的响应拦截器.. +// service.interceptors.response.use(resp => { +// return resp.data; +// }, error => { +// return Promise.reject(error); +// }); +// export default service; + +import axios from "axios"; +import { useTokenStore } from "../stores/token"; const service = axios.create({ + // baseURL: 'http://192.168.8.191:8080', + // baseURL: 'http://localhost:8080', baseURL: '/api', }); -// 添加请求拦截器 -service.interceptors.request.use( - config => { - // 假设你的token存储在Vuex、Pinia或者本地存储中,这里直接用一个变量代替 - // 请确保在实际应用中从安全的地方获取token - const token = "9ior41AF0xTIbIG2pRnnbZi0+fEeMx8pywnIlrmTwo5FbqJ9lWrSWOxp9MkpKiNtedtUafqvzIwpFKrwuMs"; - if (token) { - config.headers['token'] = ` ${token}`; - } - return config; - }, - error => { - return Promise.reject(error); +// Axios的请求拦截器,在这里添加token到请求头 + +axios.interceptors.request.use(config => { + const tokenStore = useTokenStore(); + if (tokenStore.token) { + config.headers.token = tokenStore.token; } -); + return config; +}, error => { + return Promise.reject(error); +}); -// 添加响应拦截器 -service.interceptors.response.use(resp => { - return resp.data; +service.interceptors.request.use(config => { + const tokenStore = useTokenStore(); + if (tokenStore.token) { + // 一般后端会约定一个请求头的字段名来接收token,常见的如 'Authorization',并要求按照一定格式传递,比如 'Bearer ',这里按照此格式添加,你需要根据后端实际要求调整 + config.headers.token =tokenStore.token; + } + return config; }, error => { return Promise.reject(error); }); +// // Axios的响应拦截器 +// service.interceptors.response.use(resp => { +// return resp.data; +// }, error => { +// return Promise.reject(error); +// }); + +//响应拦截器 +service.interceptors.response.use(response => { + return response.data; +}, error =>{ + if(error.code === "500"){ + ElMessage.error("服务器错误!"); + } + const response = error.response; + if(error.response && error.response.status === 403){ + //提示一下权限不足 + ElMessage.warning(response.data.message); + } else if(response && response.code === 401){ + //提示一下未登录 + ElMessage.warning(response.data.message); + //跳转登录页面 + const curURL = router.currentRoute.value.path; + if(curURL.startsWith('/')){ + router.push('/login') + } else{ + router.push('/login'); + } + console.log(); + } + return Promise.reject(error); +}) + export default service; \ No newline at end of file diff --git a/work/src/router/index.js b/work/src/router/index.js index 772ec8d..fc816a0 100644 --- a/work/src/router/index.js +++ b/work/src/router/index.js @@ -1,21 +1,53 @@ import { createRouter, createWebHistory } from 'vue-router'; -import WorksShowView from '../views/WorksShowView.vue'; -import DoHomeworkView from "@/views/DoHomeworkView.vue"; +import HomeWork from '../views/HomeWork.vue'; +import Login from '../views/Login.vue'; +import AddWork from '../views/AddWork.vue'; +import WorkDetail from '../views/WorkDetail.vue'; +import UpdateWork from '../views/UpdateWork.vue'; +import { useTokenStore } from '../stores/token'; const router = createRouter({ history: createWebHistory(), routes: [ { - path: '/show', - name: 'workshow', - component: WorksShowView + path: '/', + name: 'login', + component: Login, }, { - path:'/doWork/:id?/:sub?', - name:'doWork', - component: DoHomeworkView + path: '/list', + name: 'homeWorklist', + component: HomeWork, + }, + { + path:'/addwork', + name:'addwork', + component: AddWork + }, + { + path:'/workdetail/:id', + name:'workdetail', + component: WorkDetail + }, + { + path:'/updatework/:id', + name:'updatework', + component: UpdateWork } ] }) +// 添加全局前置守卫 +router.beforeEach((to, from, next) => { + const tokenStore = useTokenStore(); + const token = tokenStore.token; + if (!token && to.name !== 'login') { + // 如果没有token且要访问的不是登录页面,就跳转到登录页面 + next({ name: 'login' }); + } else { + // 有token或者要访问的是登录页面,正常放行 + next(); + } +}); + export default router diff --git a/work/src/views/AddWork.vue b/work/src/views/AddWork.vue new file mode 100644 index 0000000..ec58ca7 --- /dev/null +++ b/work/src/views/AddWork.vue @@ -0,0 +1,403 @@ + + + + + \ No newline at end of file diff --git a/work/src/views/DoHomeworkView.vue b/work/src/views/DoHomeworkView.vue deleted file mode 100644 index 712894e..0000000 --- a/work/src/views/DoHomeworkView.vue +++ /dev/null @@ -1,366 +0,0 @@ - - - - - diff --git a/work/src/views/HomeWork.vue b/work/src/views/HomeWork.vue new file mode 100644 index 0000000..767b5c4 --- /dev/null +++ b/work/src/views/HomeWork.vue @@ -0,0 +1,258 @@ + + + + + \ No newline at end of file diff --git a/work/src/views/Login.vue b/work/src/views/Login.vue new file mode 100644 index 0000000..45bb447 --- /dev/null +++ b/work/src/views/Login.vue @@ -0,0 +1,145 @@ + + + + + \ No newline at end of file diff --git a/work/src/views/UpdateWork.vue b/work/src/views/UpdateWork.vue new file mode 100644 index 0000000..838a471 --- /dev/null +++ b/work/src/views/UpdateWork.vue @@ -0,0 +1,535 @@ + + + + + \ No newline at end of file diff --git a/work/src/views/WorkDetail.vue b/work/src/views/WorkDetail.vue new file mode 100644 index 0000000..6a44602 --- /dev/null +++ b/work/src/views/WorkDetail.vue @@ -0,0 +1,391 @@ + + + + + \ No newline at end of file diff --git a/work/src/views/WorksShowView.vue b/work/src/views/WorksShowView.vue deleted file mode 100644 index 3fc87f3..0000000 --- a/work/src/views/WorksShowView.vue +++ /dev/null @@ -1,563 +0,0 @@ - - - - - \ No newline at end of file diff --git a/work/vite.config.js b/work/vite.config.js index 7baeba2..e4a05dc 100644 --- a/work/vite.config.js +++ b/work/vite.config.js @@ -16,7 +16,7 @@ export default defineConfig({ server: { proxy: { '/api': { - target: 'http://192.168.8.191:8080', + target: 'http://192.168.9.19:8080', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') }, @@ -28,4 +28,4 @@ export default defineConfig({ // } } } -}) +}) \ No newline at end of file