diff --git a/package-lock.json b/package-lock.json index e58bb672..34b9313e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2711,6 +2711,11 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, + "bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==" + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -7252,6 +7257,14 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "requires": { + "bignumber.js": "^9.0.0" + } + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -12567,7 +12580,7 @@ }, "vue-loader-v16": { "version": "npm:vue-loader@16.8.3", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", "dev": true, "optional": true, @@ -12579,7 +12592,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "optional": true, @@ -12589,7 +12602,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "optional": true, @@ -12600,7 +12613,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "optional": true, @@ -12610,21 +12623,21 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "optional": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "optional": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "optional": true, diff --git a/package.json b/package.json index bb05de8e..f8aa805a 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "fuse.js": "^6.4.6", "image-conversion": "^2.1.1", "jsencrypt": "^3.2.1", + "json-bigint": "^1.0.0", "mockjs": "^1.1.0", "moment": "^2.29.1", "nprogress": "^0.2.0", diff --git a/src/api/modules/lecturer.js b/src/api/modules/lecturer.js new file mode 100644 index 00000000..5ff8e194 --- /dev/null +++ b/src/api/modules/lecturer.js @@ -0,0 +1,56 @@ +import ajax from '../unionAjax.js'; +const baseURL = ''; + +export const pageList = function(query) { + return ajax.postJson(baseURL,'/activityApi/certification/list',query); +} + +export const getTeacherInfo = function(query) { + return ajax.postJson(baseURL,'/activityApi/teacher/getTeacherInfo',query); +} + +export const getProgress = function(query) { + return ajax.postJson(baseURL,'/activityApi/certification/getProgress',query); +} +export const addTeacher = function(query) { + return ajax.postJson(baseURL,'/activityApi/teacher/addTeacher',query); +} + +export const getCertificationProcess = function(query) { + return ajax.postJson(baseURL,'/activityApi/teacher/getCertificationProcess',query); +} + +export const setOfflineTutoring = function(query) { + return ajax.postJson(baseURL,'/activityApi/certification/setOfflineTutoring',query); +} + + +export const treeList = function() { + return ajax.get(baseURL,'/systemapi/xboe/type/tree-list?sysResType=1&status=1'); +} + +export const getReviewResult = function(query) { + return ajax.postJson(baseURL,'/activityApi/certification/getReviewResult',query); +} + +export const secondExamine = function(query) { + return ajax.postJson(baseURL,'/activityApi/certification/secondExamine',query); +} + +export const download = function(data) { + return ajax.get(baseURL,'/activityApi/teacher/download?coursewareId='+data.coursewareId); +} + +const exportPdf=function (data){ + return ajax.getJsonToFile(baseURL,`/activityApi/teacher/download?coursewareId=${data.coursewareId}`); +} +export default { + pageList, + getTeacherInfo, + treeList, + getCertificationProcess, + setOfflineTutoring, + getReviewResult, + secondExamine, + exportPdf +} diff --git a/src/api/unionAjax.js b/src/api/unionAjax.js index db21e48c..424c237a 100644 --- a/src/api/unionAjax.js +++ b/src/api/unionAjax.js @@ -1,9 +1,10 @@ import axios from 'axios' import qs from 'qs' -import { Notification, MessageBox, Message } from 'element-ui' +import {Notification, MessageBox, Message} from 'element-ui' import store from '@/store' -import { getToken } from '@/utils/token' +import {getToken} from '@/utils/token' import errorCode from '@/utils/errorCode' + /** *request请求 axios.request(config) *requestJson请求 axios.request(config) @@ -19,92 +20,90 @@ import errorCode from '@/utils/errorCode' // const ReLoginUrl=process.env.VUE_APP_LOGIN_URL; -const TokenName='token'; +const TokenName = 'token'; /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ //只是用于发送json对象数据时使用post,put,patch /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ //只是用于发送json对象数据时使用post,put,patch //用于普通的发送请求 -const formRequest=axios.create({ - //headers:{'Content-Type':'application/x-www-form-urlencoded'}, - // axios中请求配置有baseURL选项,表示请求URL公共部分 - // baseURL: process.env.VUE_APP_CESOURCE_BASE_API, - //超时 - timeout: 10000, - }) - //发送json对象的拦截器 - formRequest.interceptors.request.use(config => { - //是否需要设置 token - const isToken = (config.headers || {}).isToken === false - let curToken=getToken(); - //curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c'; - if (curToken && !isToken) { - config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改 +const formRequest = axios.create({ + //headers:{'Content-Type':'application/x-www-form-urlencoded'}, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + // baseURL: process.env.VUE_APP_CESOURCE_BASE_API, + //超时 + timeout: 10000, +}) +//发送json对象的拦截器 +formRequest.interceptors.request.use(config => { + //是否需要设置 token + const isToken = (config.headers || {}).isToken === false + let curToken = getToken(); + //curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c'; + if (curToken && !isToken) { + config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改 + } + return config +}, error => { + console.log(error) + Promise.reject(error) +}); +formRequest.interceptors.response.use(res => { + //console.log(res); + const code = res.data.status || 200; + if (code === 200) { + return res.data + } else { + if (code === 401) { + // store.dispatch('LogOut').then(() => { + // location.href = this.webBaseUrl + ReLoginUrl; + // }) + console.error('', res.data); + return Promise.reject(new Error('接口返回未登录')) + } else if (code === 403) { + var msg = '当前操作没有权限'; + Message({message: msg, type: 'error'}); + return Promise.reject(new Error(msg)) + } else { + //Message({message: res.data.message, type: 'error'}); + //console.log('err' + res.data.error); + return res.data + } } - return config - }, error => { - console.log(error) - Promise.reject(error) - }); - formRequest.interceptors.response.use(res => { - //console.log(res); - const code = res.data.status || 200; - if(code===200){ - return res.data - }else{ - if(code === 401){ - // store.dispatch('LogOut').then(() => { - // location.href = this.webBaseUrl + ReLoginUrl; - // }) - console.error('',res.data); - return Promise.reject(new Error('接口返回未登录')) - }else if(code===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - }else{ - //Message({message: res.data.message, type: 'error'}); - //console.log('err' + res.data.error); - return res.data - } - } - }, - error => { - console.log('err',error) - let { message } = error; - if (message == "Network Error") { - message = "网络异常,请稍后重试"; - } - else if (message.includes("timeout")) { - message = "网络异常或接口错误,请求超时"; - } - else if (message.includes("Request failed with status code")) { - message = "系统接口" + message.substr(message.length - 3) + "异常"; - } - Message({ - message: message, - type: 'error', - duration: 5 * 1000 - }) - return Promise.reject(error) + }, + error => { + console.log('err', error) + let {message} = error; + if (message == "Network Error") { + message = "网络异常,请稍后重试"; + } else if (message.includes("timeout")) { + message = "网络异常或接口错误,请求超时"; + } else if (message.includes("Request failed with status code")) { + message = "系统接口" + message.substr(message.length - 3) + "异常"; } - ) + Message({ + message: message, + type: 'error', + duration: 5 * 1000 + }) + return Promise.reject(error) + } +) /** * request请求,可以自定义参数 */ -const request=formRequest.request; +const request = formRequest.request; /** * get请求 ,只有url */ -const get = function(baseURL,url){ - return request({ - baseURL, - url: url, - method: 'get', - headers:{'Content-Type':'application/x-www-form-urlencoded'} - }) +const get = function (baseURL, url) { + return request({ + baseURL, + url: url, + method: 'get', + headers: {'Content-Type': 'application/x-www-form-urlencoded'} + }) } /** @@ -112,88 +111,98 @@ const get = function(baseURL,url){ * @param {Object} url * @param {Object} postData */ -const post=function(baseURL,url,postData){ - if(postData){ - postData=qs.stringify(postData); - } - return request({ +const post = function (baseURL, url, postData) { + if (postData) { + postData = qs.stringify(postData); + } + return request({ baseURL, - url: url, - method: 'post', - data:postData, - headers:{'Content-Type':'application/x-www-form-urlencoded'} - }) + url: url, + method: 'post', + data: postData, + headers: {'Content-Type': 'application/x-www-form-urlencoded'} + }) } //post请求 -const postForm=function(baseURL,url,data){ - return request({ - baseURL, - url, - data, - method: 'post', - headers:{'Content-Type':'application/x-www-form-urlencoded'} - }); - } +const postForm = function (baseURL, url, data) { + return request({ + baseURL, + url, + data, + method: 'post', + headers: {'Content-Type': 'application/x-www-form-urlencoded'} + }); +} // const postJson=jsonRequest.post; -const postJson=function(baseURL,url,postData){ - return request({ +const postJson = function (baseURL, url, postData) { + return request({ baseURL, - url: url, - method: 'post', - data:postData, - headers:{'Content-Type':'application/json;charset=utf-8'}, - }) + url: url, + method: 'post', + data: postData, + headers: {'Content-Type': 'application/json;charset=utf-8'}, + }) } // 导出文件请求定义 -const postJsonToFile=function(baseURL,url,postData){ - return request({ +const postJsonToFile = function (baseURL, url, postData) { + return request({ baseURL, - url: url, - method: 'post', - data:postData, - headers:{'Content-Type':'application/json;charset=utf-8'}, + url: url, + method: 'post', + data: postData, + headers: {'Content-Type': 'application/json;charset=utf-8'}, responseType: 'blob' - }) + }) } +const getJsonToFile = function (baseURL, url, postData) { + return request({ + baseURL, + url: url, + method: 'get', + data: postData, + headers: {'Content-Type': 'application/json;charset=utf-8'}, + responseType: 'blob' + }) +} /** * put请求 */ -const put=function(baseURL,url,data){ - if(data){ - data=qs.stringify(data); - } - return request({ +const put = function (baseURL, url, data) { + if (data) { + data = qs.stringify(data); + } + return request({ baseURL, - url: url, - method: 'put', - data:data, - headers:{'Content-Type':'application/x-www-form-urlencoded'} - }) + url: url, + method: 'put', + data: data, + headers: {'Content-Type': 'application/x-www-form-urlencoded'} + }) } -const putJson=function(baseURL,url,data){ - return request({ +const putJson = function (baseURL, url, data) { + return request({ baseURL, - url: url, - method: 'put', - data:data, - headers:{'Content-Type':'application/json;charset=utf-8'}, - }) + url: url, + method: 'put', + data: data, + headers: {'Content-Type': 'application/json;charset=utf-8'}, + }) } - export default { - tokenName:TokenName, - request, - get, - post, - postJson, - postJsonToFile, - put, - putJson, + tokenName: TokenName, + request, + get, + post, + postJson, + postJsonToFile, + put, + putJson, + getJsonToFile } diff --git a/src/assets/images/E-learning.png b/src/assets/images/E-learning.png new file mode 100644 index 00000000..9234b2bb Binary files /dev/null and b/src/assets/images/E-learning.png differ diff --git a/src/assets/images/E-learning1.png b/src/assets/images/E-learning1.png new file mode 100644 index 00000000..0c74ce43 Binary files /dev/null and b/src/assets/images/E-learning1.png differ diff --git a/src/assets/images/E-learning2.png b/src/assets/images/E-learning2.png new file mode 100644 index 00000000..d5cf969a Binary files /dev/null and b/src/assets/images/E-learning2.png differ diff --git a/src/assets/images/authentication.png b/src/assets/images/authentication.png new file mode 100644 index 00000000..e363de06 Binary files /dev/null and b/src/assets/images/authentication.png differ diff --git a/src/assets/images/authentication1.png b/src/assets/images/authentication1.png new file mode 100644 index 00000000..187395fa Binary files /dev/null and b/src/assets/images/authentication1.png differ diff --git a/src/assets/images/authentication2.png b/src/assets/images/authentication2.png new file mode 100644 index 00000000..12ba74b6 Binary files /dev/null and b/src/assets/images/authentication2.png differ diff --git a/src/assets/images/certification.png b/src/assets/images/certification.png new file mode 100644 index 00000000..15b87d11 Binary files /dev/null and b/src/assets/images/certification.png differ diff --git a/src/assets/images/certification1.png b/src/assets/images/certification1.png new file mode 100644 index 00000000..435cfa8e Binary files /dev/null and b/src/assets/images/certification1.png differ diff --git a/src/assets/images/certification2.png b/src/assets/images/certification2.png new file mode 100644 index 00000000..c68cfc13 Binary files /dev/null and b/src/assets/images/certification2.png differ diff --git a/src/assets/images/certification3.png b/src/assets/images/certification3.png new file mode 100644 index 00000000..2707e5b3 Binary files /dev/null and b/src/assets/images/certification3.png differ diff --git a/src/assets/images/certification4.png b/src/assets/images/certification4.png new file mode 100644 index 00000000..ade227ae Binary files /dev/null and b/src/assets/images/certification4.png differ diff --git a/src/assets/images/coaching.png b/src/assets/images/coaching.png new file mode 100644 index 00000000..d9170f0c Binary files /dev/null and b/src/assets/images/coaching.png differ diff --git a/src/assets/images/coaching1.png b/src/assets/images/coaching1.png new file mode 100644 index 00000000..61782b6f Binary files /dev/null and b/src/assets/images/coaching1.png differ diff --git a/src/assets/images/coaching2.png b/src/assets/images/coaching2.png new file mode 100644 index 00000000..9b2fb91f Binary files /dev/null and b/src/assets/images/coaching2.png differ diff --git a/src/assets/images/draft2.png b/src/assets/images/draft2.png new file mode 100644 index 00000000..63c8e774 Binary files /dev/null and b/src/assets/images/draft2.png differ diff --git a/src/assets/images/final_draft.png b/src/assets/images/final_draft.png new file mode 100644 index 00000000..e80eee22 Binary files /dev/null and b/src/assets/images/final_draft.png differ diff --git a/src/assets/images/final_draft1.png b/src/assets/images/final_draft1.png new file mode 100644 index 00000000..8cdbac90 Binary files /dev/null and b/src/assets/images/final_draft1.png differ diff --git a/src/assets/images/final_draft2.png b/src/assets/images/final_draft2.png new file mode 100644 index 00000000..2617131a Binary files /dev/null and b/src/assets/images/final_draft2.png differ diff --git a/src/assets/images/first_draft.png b/src/assets/images/first_draft.png new file mode 100644 index 00000000..83d0da6d Binary files /dev/null and b/src/assets/images/first_draft.png differ diff --git a/src/assets/images/first_draft1.png b/src/assets/images/first_draft1.png new file mode 100644 index 00000000..3ffa9665 Binary files /dev/null and b/src/assets/images/first_draft1.png differ diff --git a/src/assets/images/first_draft2.png b/src/assets/images/first_draft2.png new file mode 100644 index 00000000..5a4263d4 Binary files /dev/null and b/src/assets/images/first_draft2.png differ diff --git a/src/assets/images/learn.png b/src/assets/images/learn.png new file mode 100644 index 00000000..c7e97520 Binary files /dev/null and b/src/assets/images/learn.png differ diff --git a/src/assets/images/learn1.png b/src/assets/images/learn1.png new file mode 100644 index 00000000..7ef16400 Binary files /dev/null and b/src/assets/images/learn1.png differ diff --git a/src/assets/images/learn2.png b/src/assets/images/learn2.png new file mode 100644 index 00000000..b3ee75c1 Binary files /dev/null and b/src/assets/images/learn2.png differ diff --git a/src/assets/images/rightImg.png b/src/assets/images/rightImg.png new file mode 100644 index 00000000..dab5169e Binary files /dev/null and b/src/assets/images/rightImg.png differ diff --git a/src/assets/images/tutoring.png b/src/assets/images/tutoring.png new file mode 100644 index 00000000..511a2af4 Binary files /dev/null and b/src/assets/images/tutoring.png differ diff --git a/src/assets/images/tutoring1.png b/src/assets/images/tutoring1.png new file mode 100644 index 00000000..d3bf72b6 Binary files /dev/null and b/src/assets/images/tutoring1.png differ diff --git a/src/components/UserCenter/menu.vue b/src/components/UserCenter/menu.vue index 743eb39e..7e8a02ad 100644 --- a/src/components/UserCenter/menu.vue +++ b/src/components/UserCenter/menu.vue @@ -14,7 +14,7 @@ :default-active="activeMenu" router active-text-color="#3379FB" - :default-openeds="['manageTodo','manageFinish','teacherTodo','teacherFinish','myqa','notice','mystudy', 'course', 'exam', 'u001', 'u002', 'u003', 'u004','mylecnotes','mycaseRecord']" + :default-openeds="['manageTodo','manageFinish','teacherTodo','teacherFinish','lecturer','myqa','notice','mystudy', 'course', 'exam', 'u001', 'u002', 'u003', 'u004','mylecnotes','mycaseRecord']" class="el-menu-vertical" @open="handleOpen" @close="handleClose" @@ -166,7 +166,6 @@ 已审核的课程 - 已回答问题 @@ -195,10 +194,14 @@ --> - + + +