From 8f2e8721663fffe43a5be8c196e3c5c2427ce8df Mon Sep 17 00:00:00 2001 From: lion <120344285@qq.com> Date: Mon, 22 Jul 2024 17:41:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=81=E5=B8=88=20banner=20=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=AF=BC=E5=87=BA=20=E5=9F=BA=E7=A1=80=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=20=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/info/banners.js | 55 ++++ src/api/info/configs.js | 55 ++++ src/api/info/teachers.js | 55 ++++ src/styles/iconfont.css | 112 +++---- src/styles/iconfont.ttf | Bin 8592 -> 7660 bytes src/styles/iconfont.woff | Bin 4732 -> 4948 bytes src/styles/iconfont.woff2 | Bin 3932 -> 4168 bytes src/utils/common.js | 70 +++++ src/utils/index.js | 347 +++++++++++---------- src/views/book/components/checkBook.vue | 143 +++++++++ src/views/book/index.vue | 153 +++++++++ src/views/component/imports.vue | 36 ++- src/views/config/banner.vue | 209 +++++++++++++ src/views/config/components/addBanner.vue | 204 ++++++++++++ src/views/config/components/addInfo.vue | 121 +++++++ src/views/config/components/addTeacher.vue | 134 ++++++++ src/views/config/info.vue | 139 +++++++++ src/views/config/teacher.vue | 182 +++++++++++ src/views/course/apply.vue | 4 +- src/views/course/class.vue | 4 +- src/views/course/components/addCourse.vue | 45 ++- src/views/course/components/checkPay.vue | 2 - src/views/course/components/showCourse.vue | 137 ++++++++ src/views/course/history.vue | 80 ++--- src/views/course/index.vue | 18 +- src/views/course/pay.vue | 19 +- src/views/notice/components/addNotice.vue | 187 +++++++++++ src/views/notice/index.vue | 199 ++++++++++++ 28 files changed, 2395 insertions(+), 315 deletions(-) create mode 100644 src/api/info/banners.js create mode 100644 src/api/info/configs.js create mode 100644 src/api/info/teachers.js create mode 100644 src/views/book/components/checkBook.vue create mode 100644 src/views/book/index.vue create mode 100644 src/views/config/banner.vue create mode 100644 src/views/config/components/addBanner.vue create mode 100644 src/views/config/components/addInfo.vue create mode 100644 src/views/config/components/addTeacher.vue create mode 100644 src/views/config/info.vue create mode 100644 src/views/config/teacher.vue create mode 100644 src/views/course/components/showCourse.vue create mode 100644 src/views/notice/components/addNotice.vue create mode 100644 src/views/notice/index.vue diff --git a/src/api/info/banners.js b/src/api/info/banners.js new file mode 100644 index 0000000..fb398ac --- /dev/null +++ b/src/api/info/banners.js @@ -0,0 +1,55 @@ +import request from "@/utils/request"; +function customParamsSerializer(params) { + let result = ''; + for (let key in params) { + if (params.hasOwnProperty(key)) { + if (Array.isArray(params[key])) { + params[key].forEach((item,index) => { + if(item.key){ + result += `${key}[${index}][key]=${item.key}&${key}[${index}][op]=${item.op}&${key}[${index}][value]=${item.value}&`; + + }else{ + result +=`${key}[${index}]=${item}&` + } + }); + } else { + result += `${key}=${params[key]}&`; + } + } + } + return result.slice(0, -1); +} +export function index(params,isLoading = false) { + return request({ + method: "get", + url: "/api/admin/banners/index", + params, + paramsSerializer: customParamsSerializer, + isLoading + }) +} + +export function show(params, isLoading = true) { + return request({ + method: "get", + url: "/api/admin/banners/show", + params, + isLoading + }) +} + +export function save(data) { + return request({ + method: "post", + url: "/api/admin/banners/save", + data + }) +} + +export function destroy(params) { + return request({ + method: "get", + url: "/api/admin/banners/destroy", + params + }) +} diff --git a/src/api/info/configs.js b/src/api/info/configs.js new file mode 100644 index 0000000..ce5bc12 --- /dev/null +++ b/src/api/info/configs.js @@ -0,0 +1,55 @@ +import request from "@/utils/request"; +function customParamsSerializer(params) { + let result = ''; + for (let key in params) { + if (params.hasOwnProperty(key)) { + if (Array.isArray(params[key])) { + params[key].forEach((item,index) => { + if(item.key){ + result += `${key}[${index}][key]=${item.key}&${key}[${index}][op]=${item.op}&${key}[${index}][value]=${item.value}&`; + + }else{ + result +=`${key}[${index}]=${item}&` + } + }); + } else { + result += `${key}=${params[key]}&`; + } + } + } + return result.slice(0, -1); +} +export function index(params,isLoading = false) { + return request({ + method: "get", + url: "/api/admin/configs/index", + params, + paramsSerializer: customParamsSerializer, + isLoading + }) +} + +export function show(params, isLoading = true) { + return request({ + method: "get", + url: "/api/admin/configs/show", + params, + isLoading + }) +} + +export function save(data) { + return request({ + method: "post", + url: "/api/admin/configs/save", + data + }) +} + +export function destroy(params) { + return request({ + method: "get", + url: "/api/admin/configs/destroy", + params + }) +} diff --git a/src/api/info/teachers.js b/src/api/info/teachers.js new file mode 100644 index 0000000..b54a6ea --- /dev/null +++ b/src/api/info/teachers.js @@ -0,0 +1,55 @@ +import request from "@/utils/request"; +function customParamsSerializer(params) { + let result = ''; + for (let key in params) { + if (params.hasOwnProperty(key)) { + if (Array.isArray(params[key])) { + params[key].forEach((item,index) => { + if(item.key){ + result += `${key}[${index}][key]=${item.key}&${key}[${index}][op]=${item.op}&${key}[${index}][value]=${item.value}&`; + + }else{ + result +=`${key}[${index}]=${item}&` + } + }); + } else { + result += `${key}=${params[key]}&`; + } + } + } + return result.slice(0, -1); +} +export function index(params,isLoading = false) { + return request({ + method: "get", + url: "/api/admin/teachers/index", + params, + paramsSerializer: customParamsSerializer, + isLoading + }) +} + +export function show(params, isLoading = true) { + return request({ + method: "get", + url: "/api/admin/teachers/show", + params, + isLoading + }) +} + +export function save(data) { + return request({ + method: "post", + url: "/api/admin/teachers/save", + data + }) +} + +export function destroy(params) { + return request({ + method: "get", + url: "/api/admin/teachers/destroy", + params + }) +} diff --git a/src/styles/iconfont.css b/src/styles/iconfont.css index 9f6fdb2..5d51b9e 100644 --- a/src/styles/iconfont.css +++ b/src/styles/iconfont.css @@ -1,8 +1,8 @@ @font-face { - font-family: "iconfont"; /* Project id 4052909 */ - src: url('iconfont.woff2?t=1683361610626') format('woff2'), - url('iconfont.woff?t=1683361610626') format('woff'), - url('iconfont.ttf?t=1683361610626') format('truetype'); + font-family: "iconfont"; /* Project id 4625369 */ + src: url('iconfont.woff2?t=1721285561761') format('woff2'), + url('iconfont.woff?t=1721285561761') format('woff'), + url('iconfont.ttf?t=1721285561761') format('truetype'); } .iconfont { @@ -13,107 +13,79 @@ -moz-osx-font-smoothing: grayscale; } -.icon-jurassic_process-list:before { - content: "\e6c4"; +.icon-xinxi:before { + content: "\e600"; } -.icon-biaodan:before { - content: "\e663"; +.icon-xueyuan-xueyuansousuo:before { + content: "\e610"; } -.icon-biaozhunhuaguizeguanli:before { - content: "\e60a"; +.icon-yuyuedingdan:before { + content: "\e8a2"; } -.icon-a-zhidu6:before { - content: "\eb07"; +.icon-lishihangcheng:before { + content: "\e8d5"; } -.icon-dat:before { - content: "\e691"; +.icon-fl-baobiao:before { + content: "\e636"; } -.icon-audio:before { - content: "\e692"; +.icon-lunbotu:before { + content: "\e62b"; } -.icon-video:before { - content: "\e693"; +.icon-kecheng:before { + content: "\e605"; } -.icon-zip:before { - content: "\e694"; +.icon-kecheng1:before { + content: "\e66f"; } -.icon-image:before { - content: "\e695"; +.icon-xiaoyuanxinwentongzhigonggao:before { + content: "\e653"; } -.icon-pdf:before { - content: "\e696"; +.icon-ico_yuyueguanli_jiedaiyuyue:before { + content: "\e8ba"; } -.icon-ppt:before { - content: "\e697"; +.icon-xianxiabaoming:before { + content: "\e61f"; } -.icon-21excel:before { - content: "\e698"; +.icon-tongxunlu:before { + content: "\e670"; } -.icon-21word:before { - content: "\e699"; +.icon-tongzhi:before { + content: "\e68f"; } -.icon-21move:before { - content: "\e69a"; +.icon-jiekou:before { + content: "\e669"; } -.icon-21setting:before { - content: "\e69b"; +.icon-xueyuanguanli:before { + content: "\e6ac"; } -.icon-21upload:before { - content: "\e69c"; +.icon-paikeguanli:before { + content: "\e7b4"; } -.icon-21download:before { - content: "\e69d"; +.icon-lunbotu1:before { + content: "\e6d1"; } -.icon-21cancel:before { - content: "\e69e"; +.icon-xueyuanguanli1:before { + content: "\e61a"; } -.icon-21ok:before { - content: "\e69f"; -} - -.icon-21copy:before { - content: "\e6a0"; -} - -.icon-21delete:before { - content: "\e6a1"; -} - -.icon-21edit:before { - content: "\e6a2"; -} - -.icon-21new:before { - content: "\e6a3"; -} - -.icon-21folder:before { - content: "\e6a4"; -} - -.icon-21mutil:before { - content: "\e6a5"; -} - -.icon-21file:before { - content: "\e6a6"; +.icon-tongzhigonggao:before { + content: "\e7ab"; } diff --git a/src/styles/iconfont.ttf b/src/styles/iconfont.ttf index 4e2970e9481479674d3fd3fe1923b0855b82f8a8..e247078db25115a6d73ff4bebfa2602d09b624e6 100644 GIT binary patch literal 7660 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 literal 8592 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 diff --git a/src/styles/iconfont.woff2 b/src/styles/iconfont.woff2 index 0c051c5ab3470996d1f5754273d853b9fee30e9d..699d6a37b7ca481a7da5f9df2a38ae86375cb43f 100644 GIT binary patch literal 4168 zcmV-O5V!AlPew8T0RR9101!w33jhEB03GZA01x;80RR9100000000000000000000 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 S#ToAQMvvh3=D;EV00014IPZ@D literal 3932 zcmV-i52NsRPew8T0RR9101sRM3jhEB03nb701pfR0RR9100000000000000000000 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 diff --git a/src/utils/common.js b/src/utils/common.js index 6a7e618..51233da 100644 --- a/src/utils/common.js +++ b/src/utils/common.js @@ -251,6 +251,76 @@ let base = { nodes.unshift(_node) } return nodes + }, + + isNull(p) { + return p == '' || p == undefined || p == null || p == 'undefined' || p == 'null'; + }, + deepCopy(data) { + //string,number,bool,null,undefined,symbol + //object,array,date + if (data && typeof data === "object") { + //针对函数的拷贝 + if (typeof data === "function") { + let tempFunc = data.bind(null); + tempFunc.prototype = this.deepCopy(data.prototype); + return tempFunc; + } + + switch (Object.prototype.toString.call(data)) { + case "[object String]": + return data.toString(); + case "[object Number]": + return Number(data.toString()); + case "[object Boolean]": + return Boolean(data.toString()); + case "[object Date]": + return new Date(data.getTime()); + case "[object Array]": + let arr = []; + for (let i = 0; i < data.length; i++) { + arr[i] = this.deepCopy(data[i]); + } + return arr; + + //js自带对象或用户自定义类实例 + case "[object Object]": + let obj = {}; + for (let key in data) { + //会遍历原型链上的属性方法,可以用hasOwnProperty来控制 (obj.hasOwnProperty(prop) + obj[key] = this.deepCopy(data[key]); + } + return obj; + } + } else { + //string,number,bool,null,undefined,symbol + return data; + } + }, + // 按顺序把接口返回值 赋给 form + requestToForm(requestObj,form){ + // 获取a对象中属性的顺序和值 + let aKeys = Object.keys(form); + let aValues = aKeys.map(key => form[key]); + + // 遍历b对象,将属性等于a中属性值的对象深拷贝给a中的相应属性 + for (let i = 0; i < aKeys.length; i++) { + let key = aKeys[i]; + let value = aValues[i]; + if (requestObj[key] === value) { + // 深拷贝对象 + Object.assign(form, { [key]: this.deepCopy(requestObj[key]) }); + } + } + + // 遍历b对象,将b中独有的属性按照a的顺序插入到a中 + for (let key in requestObj) { + if (!form[key]) { + // 深拷贝属性值 + Object.assign(form, { [key]: this.deepCopy(requestObj[key]) }); + } + } + return form } } diff --git a/src/utils/index.js b/src/utils/index.js index 32825fb..6ea3063 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -1,173 +1,178 @@ -/** - * Created by PanJiaChen on 16/11/18. - */ +/** + * Created by PanJiaChen on 16/11/18. + */ + +/** + * Parse the time to string + * @param {(Object|string|number)} time + * @param {string} cFormat + * @returns {string | null} + */ +export function parseTime(time, cFormat) { + if (arguments.length === 0 || !time) { + return null + } + const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' + let date + if (typeof time === 'object') { + date = time + } else { + if ((typeof time === 'string')) { + if ((/^[0-9]+$/.test(time))) { + // support "1548221490638" + time = parseInt(time) + } else { + // support safari + // https://stackoverflow.com/questions/4310953/invalid-date-in-safari + time = time.replace(new RegExp(/-/gm), '/') + } + } + + if ((typeof time === 'number') && (time.toString().length === 10)) { + time = time * 1000 + } + date = new Date(time) + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + } + const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { + const value = formatObj[key] + // Note: getDay() returns 0 on Sunday + if (key === 'a') { + return ['日', '一', '二', '三', '四', '五', '六'][value] + } + return value.toString().padStart(2, '0') + }) + return time_str +} + +/** + * @param {number} time + * @param {string} option + * @returns {string} + */ +export function formatTime(time, option) { + if (('' + time).length === 10) { + time = parseInt(time) * 1000 + } else { + time = +time + } + const d = new Date(time) + const now = Date.now() + + const diff = (now - d) / 1000 + + if (diff < 30) { + return '刚刚' + } else if (diff < 3600) { + // less 1 hour + return Math.ceil(diff / 60) + '分钟前' + } else if (diff < 3600 * 24) { + return Math.ceil(diff / 3600) + '小时前' + } else if (diff < 3600 * 24 * 2) { + return '1天前' + } + if (option) { + return parseTime(time, option) + } else { + return ( + d.getMonth() + + 1 + + '月' + + d.getDate() + + '日' + + d.getHours() + + '时' + + d.getMinutes() + + '分' + ) + } +} + +/** + * @param {string} url + * @returns {Object} + */ +export function param2Obj(url) { + const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') + if (!search) { + return {} + } + const obj = {} + const searchArr = search.split('&') + searchArr.forEach(v => { + const index = v.indexOf('=') + if (index !== -1) { + const name = v.substring(0, index) + const val = v.substring(index + 1, v.length) + obj[name] = val + } + }) + return obj +} + +//深拷贝数据 +export function deepCopy(data) { + //string,number,bool,null,undefined,symbol + //object,array,date + if (data && typeof data === "object") { + //针对函数的拷贝 + if (typeof data === "function") { + let tempFunc = data.bind(null); + tempFunc.prototype = deepCopy(data.prototype); + return tempFunc; + } + + switch (Object.prototype.toString.call(data)) { + case "[object String]": + return data.toString(); + case "[object Number]": + return Number(data.toString()); + case "[object Boolean]": + return Boolean(data.toString()); + case "[object Date]": + return new Date(data.getTime()); + case "[object Array]": + let arr = []; + for (let i = 0; i < data.length; i++) { + arr[i] = deepCopy(data[i]); + } + return arr; + + //js自带对象或用户自定义类实例 + case "[object Object]": + let obj = {}; + for (let key in data) { + //会遍历原型链上的属性方法,可以用hasOwnProperty来控制 (obj.hasOwnProperty(prop) + obj[key] = deepCopy(data[key]); + } + return obj; + } + } else { + //string,number,bool,null,undefined,symbol + return data; + } +} + +export function debounce(func, delay) { + let timer = null; + return function() { + const context = this; + const args = arguments; + clearTimeout(timer); + timer = setTimeout(function() { + func.apply(context, args); + }, delay); + } +} -/** - * Parse the time to string - * @param {(Object|string|number)} time - * @param {string} cFormat - * @returns {string | null} - */ -export function parseTime(time, cFormat) { - if (arguments.length === 0 || !time) { - return null - } - const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' - let date - if (typeof time === 'object') { - date = time - } else { - if ((typeof time === 'string')) { - if ((/^[0-9]+$/.test(time))) { - // support "1548221490638" - time = parseInt(time) - } else { - // support safari - // https://stackoverflow.com/questions/4310953/invalid-date-in-safari - time = time.replace(new RegExp(/-/gm), '/') - } - } - - if ((typeof time === 'number') && (time.toString().length === 10)) { - time = time * 1000 - } - date = new Date(time) - } - const formatObj = { - y: date.getFullYear(), - m: date.getMonth() + 1, - d: date.getDate(), - h: date.getHours(), - i: date.getMinutes(), - s: date.getSeconds(), - a: date.getDay() - } - const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { - const value = formatObj[key] - // Note: getDay() returns 0 on Sunday - if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] } - return value.toString().padStart(2, '0') - }) - return time_str -} - -/** - * @param {number} time - * @param {string} option - * @returns {string} - */ -export function formatTime(time, option) { - if (('' + time).length === 10) { - time = parseInt(time) * 1000 - } else { - time = +time - } - const d = new Date(time) - const now = Date.now() - - const diff = (now - d) / 1000 - - if (diff < 30) { - return '刚刚' - } else if (diff < 3600) { - // less 1 hour - return Math.ceil(diff / 60) + '分钟前' - } else if (diff < 3600 * 24) { - return Math.ceil(diff / 3600) + '小时前' - } else if (diff < 3600 * 24 * 2) { - return '1天前' - } - if (option) { - return parseTime(time, option) - } else { - return ( - d.getMonth() + - 1 + - '月' + - d.getDate() + - '日' + - d.getHours() + - '时' + - d.getMinutes() + - '分' - ) - } -} - -/** - * @param {string} url - * @returns {Object} - */ -export function param2Obj(url) { - const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') - if (!search) { - return {} - } - const obj = {} - const searchArr = search.split('&') - searchArr.forEach(v => { - const index = v.indexOf('=') - if (index !== -1) { - const name = v.substring(0, index) - const val = v.substring(index + 1, v.length) - obj[name] = val - } - }) - return obj +export function isNull(p) { + return p == '' || p == undefined || p == null || p == 'undefined' || p == 'null'; } - -//深拷贝数据 -export function deepCopy(data) { - //string,number,bool,null,undefined,symbol - //object,array,date - if (data && typeof data === "object") { - //针对函数的拷贝 - if (typeof data === "function") { - let tempFunc = data.bind(null); - tempFunc.prototype = deepCopy(data.prototype); - return tempFunc; - } - - switch (Object.prototype.toString.call(data)) { - case "[object String]": - return data.toString(); - case "[object Number]": - return Number(data.toString()); - case "[object Boolean]": - return Boolean(data.toString()); - case "[object Date]": - return new Date(data.getTime()); - case "[object Array]": - let arr = []; - for (let i = 0; i < data.length; i++) { - arr[i] = deepCopy(data[i]); - } - return arr; - - //js自带对象或用户自定义类实例 - case "[object Object]": - let obj = {}; - for (let key in data) { - //会遍历原型链上的属性方法,可以用hasOwnProperty来控制 (obj.hasOwnProperty(prop) - obj[key] = deepCopy(data[key]); - } - return obj; - } - } else { - //string,number,bool,null,undefined,symbol - return data; - } -} - -export function debounce(func, delay) { - let timer = null; - return function() { - const context = this; - const args = arguments; - clearTimeout(timer); - timer = setTimeout(function() { - func.apply(context, args); - }, delay); - } -} - diff --git a/src/views/book/components/checkBook.vue b/src/views/book/components/checkBook.vue new file mode 100644 index 0000000..edcc790 --- /dev/null +++ b/src/views/book/components/checkBook.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/src/views/book/index.vue b/src/views/book/index.vue new file mode 100644 index 0000000..bd2ea1b --- /dev/null +++ b/src/views/book/index.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/src/views/component/imports.vue b/src/views/component/imports.vue index fd62748..6ff157e 100644 --- a/src/views/component/imports.vue +++ b/src/views/component/imports.vue @@ -44,6 +44,8 @@ import * as XLSX from "xlsx"; import { saveAs } from "file-saver"; import { getToken } from "@/utils/auth"; import { imports } from "@/api/system/baseForm"; +import { realTableShow } from "@/api/system/customForm"; +import request from '@/utils/request' export default { props: { formInfo: { @@ -55,6 +57,7 @@ export default { data() { return { action: `${process.env.VUE_APP_BASE_API}/api/admin/base-form/excel-show`, + import_action:'', dialogVisible: false, headers: [], @@ -70,7 +73,19 @@ export default { hidden() { this.dialogVisible = false; }, - + // 获取表头 + async getHeaders(){ + const res = await realTableShow({ + table_name:this.tableName + }) + let b = []; + for (let key in res) { + if (!this.base.isNull(res[key])) { + b.push({ key: key, title: res[key] }); + } + } + this.table = this.headers = b + }, //上传 uploadFail(err) { console.log(err); @@ -104,9 +119,13 @@ export default { }, imports() { - imports({ - table_name: this.tableName, - data: this.tableList + request({ + method: "post", + url: this.import_action, + data:{ + table_name: this.tableName, + data: this.tableList + } }).then(res => { console.log(res) this.$message({ @@ -130,6 +149,15 @@ export default { }); } }, + dialogVisible(newval){ + console.log("newval",newval,this.tableName) + if(newval){ + this.action = `${process.env.VUE_APP_BASE_API}/api/admin/${this.tableName}/excel-show` + this.import_action = `/api/admin/${this.tableName}/import` + this.getHeaders() + console.log("action",this.action,this.import_action) + } + } }, }; diff --git a/src/views/config/banner.vue b/src/views/config/banner.vue new file mode 100644 index 0000000..ed2ba04 --- /dev/null +++ b/src/views/config/banner.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/src/views/config/components/addBanner.vue b/src/views/config/components/addBanner.vue new file mode 100644 index 0000000..f301c73 --- /dev/null +++ b/src/views/config/components/addBanner.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/src/views/config/components/addInfo.vue b/src/views/config/components/addInfo.vue new file mode 100644 index 0000000..fcbad30 --- /dev/null +++ b/src/views/config/components/addInfo.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/config/components/addTeacher.vue b/src/views/config/components/addTeacher.vue new file mode 100644 index 0000000..705c13d --- /dev/null +++ b/src/views/config/components/addTeacher.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/views/config/info.vue b/src/views/config/info.vue new file mode 100644 index 0000000..5b18248 --- /dev/null +++ b/src/views/config/info.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/src/views/config/teacher.vue b/src/views/config/teacher.vue new file mode 100644 index 0000000..36552f8 --- /dev/null +++ b/src/views/config/teacher.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/src/views/course/apply.vue b/src/views/course/apply.vue index 09b1d27..cfb87d4 100644 --- a/src/views/course/apply.vue +++ b/src/views/course/apply.vue @@ -193,7 +193,9 @@ }, methods: { goApply(){ - window.location.href = '/admin/#/course/apply_list' + this.$router.push({ + path: '/course/apply_list' + }) }, } } diff --git a/src/views/course/class.vue b/src/views/course/class.vue index 67e813d..02eb745 100644 --- a/src/views/course/class.vue +++ b/src/views/course/class.vue @@ -120,7 +120,9 @@ }, methods: { goAttendance(){ - window.location.href = '/admin/#/course/attendance' + this.$router.push({ + path: '/course/attendance' + }) }, editClass(type, id) { diff --git a/src/views/course/components/addCourse.vue b/src/views/course/components/addCourse.vue index 6db01f7..2312136 100644 --- a/src/views/course/components/addCourse.vue +++ b/src/views/course/components/addCourse.vue @@ -24,6 +24,27 @@ + + - diff --git a/src/views/course/index.vue b/src/views/course/index.vue index d7df539..e5954cc 100644 --- a/src/views/course/index.vue +++ b/src/views/course/index.vue @@ -44,8 +44,14 @@