diff --git a/bookshelfplus-frontend/public/assets/javascripts/dashboard/admin/BookManage.js b/bookshelfplus-frontend/public/assets/javascripts/dashboard/admin/BookManage.js deleted file mode 100644 index 0a886d4..0000000 --- a/bookshelfplus-frontend/public/assets/javascripts/dashboard/admin/BookManage.js +++ /dev/null @@ -1,259 +0,0 @@ -async function getControlsProfile() { - // 获取分类列表 - var categoryOptions = []; - - var responseData = await getRequest("/category/list"); - var axiosData = responseData.data; - var status = axiosData.status; - var data = axiosData.data; - if (status === "success") { - // console.log(data) - hierarchyData = generateCategoryHierarchy(data); - console.log(hierarchyData); - function render(category) { - categoryOptions.push({ - "tag": "option", - "attr": { "value": category.id }, - "innerHTML": `${" ".repeat((category.level - 1) * 8)}${category.name}`, - }) - for (let i = 0; i < category.children.length; i++) - render(category.children[i]); - } - render({ children: hierarchyData }); - categoryOptions.shift(); // 删除数组中的第一个元素 - } else { - alert(`出错啦!${data.errMsg} (错误码: ${data.errCode}) `); - } - - console.log(categoryOptions); - return [ - { - // 必填 - "tag": "input", - "attr": { - // 可选 - "id": "", - "name": "", // 用于 POST 提交 - "class": "", - "style": "", - "placeholder": "电子书的名称", - }, - "label": { - "value": "书本名称", - }, - "required": true, // 是否必填 - - // 可选 - innerHTML: "", - - "validate": function (value) { - var result = true, msg = ""; - if (validateUtils.isEmpty(value)) { - result = false; - msg = "不能为空"; - } - return { result: result, msg: msg }; - } - }, - { - // 必填 - "tag": "input", - "attr": { - // 可选 - "id": "", - "name": "", // 用于 POST 提交 - "class": "", - "style": "", - "placeholder": "电子书的作者", - }, - "label": { - "value": "作者姓名", - }, - "required": true, // 是否必填 - - // 可选 - innerHTML: "", - - "validate": function (value) { - var result = true, msg = ""; - if (validateUtils.isEmpty(value)) { - result = false; - msg = "不能为空"; - } - return { result: result, msg: msg }; - } - }, - { - // 必填 - "tag": "textarea", - "attr": { - // 可选 - "id": "", - "name": "", // 用于 POST 提交 - "class": "", - "style": "height:100px;", - "placeholder": "电子书的简介", - }, - "label": { - "value": "书籍简介", - }, - "required": false, // 是否必填 - - // 可选 - innerHTML: "", - - "validate": function (value) { - var result = true, msg = ""; - if (validateUtils.isEmpty(value)) { - result = false; - msg = "不能为空"; - } - return { result: result, msg: msg }; - } - }, - { - // 必填 - "tag": "select", - "attr": { - // 可选 - "id": "", - "name": "", // 用于 POST 提交 - "class": "", - "style": "", - "placeholder": "书籍语言", - }, - "label": { - "value": "语言", - }, - "required": true, // 是否必填 - "children": [ - { - "tag": "option", - "attr": { "value": "Chinese" }, - "innerHTML": "中文", - }, - { - "tag": "option", - "attr": { "value": "English" }, - "innerHTML": "英文", - }, - { - "tag": "option", - "attr": { "value": "" }, - "innerHTML": "其他", - }, - ], - - // 可选 - innerHTML: "", - - "validate": function (value) { - var result = true, msg = ""; - if (validateUtils.isEmpty(value)) { - result = false; - msg = "不能为空"; - } - return { result: result, msg: msg }; - } - }, - { - // 必填 - "tag": "input", - "attr": { - // 可选 - "id": "", - "name": "", // 用于 POST 提交 - "class": "", - "style": "", - "placeholder": "出版社", - }, - "label": { - "value": "出版社", - }, - "required": true, // 是否必填 - - // 可选 - innerHTML: "", - - "validate": function (value) { - var result = true, msg = ""; - if (validateUtils.isEmpty(value)) { - result = false; - msg = "不能为空"; - } - return { result: result, msg: msg }; - } - }, - { - // 必填 - "tag": "input", - "attr": { - // 可选 - "id": "", - "name": "", // 用于 POST 提交 - "class": "", - "style": "", - "placeholder": "", - }, - "label": { - "value": "来源(版权)", - }, - "required": false, // 是否必填 - - // 可选 - innerHTML: "", - - "validate": function (value) { - var result = true, msg = ""; - if (validateUtils.isEmpty(value)) { - result = false; - msg = "不能为空"; - } - return { result: result, msg: msg }; - } - }, - { - // 必填 - "tag": "select", - "attr": { - // 可选 - "id": "", - "name": "", // 用于 POST 提交 - "class": "", - "style": "", - }, - "label": { - "value": "书籍分类", - }, - "required": true, // 是否必填 - - // 可选 - "children": categoryOptions, - // [ - // { - // "tag": "option", - // "attr": { "value": "1" }, - // "innerHTML": "选项1", - // }, - // { - // "tag": "option", - // "attr": { "value": "2" }, - // "innerHTML": "选项2", - // }, - // ], - - "validate": function (value) { - var result = true, msg = ""; - if (validateUtils.isEmpty(value)) { - result = false; - msg = "不能为空"; - } - return { result: result, msg: msg }; - } - }, - ]; -} - -function getSubmitButtonValue() { - return "提交"; -} \ No newline at end of file diff --git a/bookshelfplus-frontend/public/assets/javascripts/dashboard/admin/Debug.js b/bookshelfplus-frontend/public/assets/javascripts/dashboard/admin/Debug.js deleted file mode 100644 index 9cf8ec0..0000000 --- a/bookshelfplus-frontend/public/assets/javascripts/dashboard/admin/Debug.js +++ /dev/null @@ -1,16 +0,0 @@ -postRequest('/debug/status', { token: localStorage.token }) - .then(function (response) { - var axiosData = response.data; - var status = axiosData.status; - var data = axiosData.data; - - if (status === "success") { - console.log(data); - $(".main").html("请在 F12 查看"); - } else { - alert(`出错啦!${data.errMsg} (错误码: ${data.errCode}) `); - } - }).catch(function (error) { - console.log(error); - alert("无法连接到服务器,请检查网络连接!"); - }); \ No newline at end of file diff --git a/bookshelfplus-frontend/routes/index.js b/bookshelfplus-frontend/routes/index.js index 231faf3..4547215 100644 --- a/bookshelfplus-frontend/routes/index.js +++ b/bookshelfplus-frontend/routes/index.js @@ -72,57 +72,80 @@ router.get('/callback/:platform', function (req, res) { }); router.get('/dashboard/:group/:page', function (req, res) { - var navbarLinks = null; + + // baseTemplate 基于哪个html模板渲染页面 + // pageTemplate 引入这个文件中的页面脚本 if (req.params.group === "admin") { - navbarLinks = [ - { - name: "仪表盘", - url: "/dashboard/admin/index" - }, { - name: "书籍管理", - url: "/dashboard/admin/BookManage" - }, { - name: "分类管理", - url: "/dashboard/admin/CategoryManage" - }, { - name: "用户管理", - url: "/dashboard/admin/UserManage" - }, { - name: "调试", - url: "/dashboard/admin/Debug" + var dashboardPage = { + "index": { + title: "仪表盘", + baseTemplate: "index", + }, + "BookManage": { + title: "书籍管理", + baseTemplate: "form", + pageTemplate: "BookManage", + }, + "CategoryManage": { + title: "分类管理", + baseTemplate: "form", + pageTemplate: "CategoryManage", + }, + "UserManage": { + title: "用户管理", + baseTemplate: "form", + pageTemplate: "UserManage", + }, + "Account": { + title: "账号设置", + baseTemplate: "blank", + pageTemplate: "Account", + }, + "Debug": { + title: "调试", + baseTemplate: "blank", + pageTemplate: "Debug", } - ]; + }; + var headText = "后台管理"; } else if (req.params.group === "user") { - navbarLinks = [ - { - name: "仪表盘", - url: "/dashboard/user/index" - }, { - name: "我的书架", - url: "/dashboard/user/myBookshelf" - }, { - name: "我的收藏", - url: "/dashboard/user/myCollection" - }, { - name: "账号设置", - url: "/dashboard/user/myAccount" + var dashboardPage = { + "index": { + title: "仪表盘", + baseTemplate: "index", + }, + "myBookshelf": { + title: "我的书架", + baseTemplate: "form", + pageTemplate: "myBookshelf", + }, + "myCollection": { + title: "我的收藏", + baseTemplate: "form", + pageTemplate: "myCollection", + }, + "myAccount": { + title: "账号设置", + baseTemplate: "blank", + pageTemplate: "myAccount", } - ]; + }; + var headText = "用户中心"; } - var headText = req.params.group === "admin" ? "后台管理" : "用户中心"; - var title = getPageTitle(headText); - var headSubTextArr = { - // 管理员 - "UserManage": "用户管理", - "BookManage": "书籍管理", - "CategoryManage": "分类管理", - "Debug": "调试", - // 用户 - "myBookshelf": "我的书架", - "myCollection": "我的收藏", - "myAccount": "账号设置" - }; + if (Object.keys(dashboardPage).indexOf(req.params.page) > -1) { + var currentPage = dashboardPage[req.params.page]; + res.render(`dashboard/${currentPage.baseTemplate}`, { + htmlTitle: getPageTitle(headText), + title: currentPage.title, + pageTemplate: "./" + req.params.group + "/" + currentPage.pageTemplate + ".html", + dashboardPage: dashboardPage, + group: req.params.group, + page: req.params.page, + }); + return; + } + throw new Error("404 Not Found"); // 仪表盘 if (req.params.page == "index") { @@ -147,7 +170,7 @@ router.get('/dashboard/:group/:page', function (req, res) { group: req.params.group, page: req.params.page, // 引入Scripts - generateCategoryHierarchy: ["BookManage", "CategoryManage"].indexOf(req.params.page) > -1 + generateCategoryHierarchy: ["BookManage", "CategoryManage"].indexOf(req.params.page) > -1 }); return; } diff --git a/bookshelfplus-frontend/views/component/navbar.html b/bookshelfplus-frontend/views/component/navbar.html index 608e577..00a6c2b 100644 --- a/bookshelfplus-frontend/views/component/navbar.html +++ b/bookshelfplus-frontend/views/component/navbar.html @@ -10,19 +10,22 @@ 首页 搜索 分类 - 登录 + 登录
+ \ No newline at end of file diff --git a/bookshelfplus-frontend/views/dashboard/admin/CategoryManage.html b/bookshelfplus-frontend/views/dashboard/admin/CategoryManage.html new file mode 100644 index 0000000..e69de29 diff --git a/bookshelfplus-frontend/views/dashboard/admin/Debug.html b/bookshelfplus-frontend/views/dashboard/admin/Debug.html new file mode 100644 index 0000000..b0af67c --- /dev/null +++ b/bookshelfplus-frontend/views/dashboard/admin/Debug.html @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/bookshelfplus-frontend/views/dashboard/admin/UserManage.html b/bookshelfplus-frontend/views/dashboard/admin/UserManage.html new file mode 100644 index 0000000..e69de29 diff --git a/bookshelfplus-frontend/views/dashboard/blank.html b/bookshelfplus-frontend/views/dashboard/blank.html new file mode 100644 index 0000000..7b3af81 --- /dev/null +++ b/bookshelfplus-frontend/views/dashboard/blank.html @@ -0,0 +1,19 @@ + + + + <%- include("./component/header.html"); %> + + + <%- include("./component/navbar.html"); %> +- 快捷登录:<%- include("./component/third-party-login-button.html"); %> + 快捷登录:<%- include("./dashboard/component/third-party-login-button.html"); %>