From 3d2e9b6dfaf196f99b0aa317c6e2cf929feb1829 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E5=A2=A8?=
<2291200076@qq.com>
Date: Wed, 6 Apr 2022 22:52:07 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E6=B7=BB=E5=8A=A0=E5=9B=BE?=
=?UTF-8?q?=E4=B9=A6=E3=80=81=E4=BF=AE=E6=94=B9=E5=9B=BE=E4=B9=A6=E3=80=81?=
=?UTF-8?q?=E4=B9=A6=E7=B1=8D=E7=AE=A1=E7=90=86=E5=88=97=E8=A1=A8=E9=A1=B5?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90=EF=BC=9B=E4=BF=AE=E6=AD=A3?=
=?UTF-8?q?=E4=B8=80=E5=A4=84=E6=95=B0=E6=8D=AE=E6=B8=B2=E6=9F=93=E9=94=99?=
=?UTF-8?q?=E8=AF=AF=EF=BC=9B=E4=B8=80=E4=BA=9B=E5=B0=8F=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../javascripts/dashboard/getValidateUtils.js | 2 +-
.../dashboard/renderFormControls.js | 7 ++
.../public/assets/javascripts/searchBooks.js | 6 +-
bookshelfplus-frontend/routes/index.js | 39 ++++-----
.../views/dashboard/admin/BookManage.html | 82 ++++++++++++++++++-
...Manage_Add.html => BookManage_Detail.html} | 55 ++++++++++++-
.../views/dashboard/form.html | 12 ++-
.../views/dashboard/index.html | 4 +-
.../views/dashboard/table.html | 70 ++++++++++++++++
bookshelfplus-frontend/views/search.html | 2 -
.../Controller/Controller/BookController.java | 38 ++++++---
.../Service/Impl/BookServiceImpl.java | 13 ++-
.../Model/ThirdPartyUserAuthModel.java | 2 +
.../Service/Service/BookService.java | 8 ++
14 files changed, 288 insertions(+), 52 deletions(-)
rename bookshelfplus-frontend/views/dashboard/admin/{BookManage_Add.html => BookManage_Detail.html} (82%)
create mode 100644 bookshelfplus-frontend/views/dashboard/table.html
diff --git a/bookshelfplus-frontend/public/assets/javascripts/dashboard/getValidateUtils.js b/bookshelfplus-frontend/public/assets/javascripts/dashboard/getValidateUtils.js
index ac795bd..7d16a33 100644
--- a/bookshelfplus-frontend/public/assets/javascripts/dashboard/getValidateUtils.js
+++ b/bookshelfplus-frontend/public/assets/javascripts/dashboard/getValidateUtils.js
@@ -186,7 +186,7 @@ function getValidateUtils() {
// 返回结果
isValid: function () {
- console.log("验证内容", this.validateValue, "验证结果", this.result, "错误信息", this.msg);
+ // console.log("验证内容", this.validateValue, "验证结果", this.result, "错误信息", this.msg);
return {
result: this.result,
msg: this.msg.join(";")
diff --git a/bookshelfplus-frontend/public/assets/javascripts/dashboard/renderFormControls.js b/bookshelfplus-frontend/public/assets/javascripts/dashboard/renderFormControls.js
index ccb7b8f..d600cff 100644
--- a/bookshelfplus-frontend/public/assets/javascripts/dashboard/renderFormControls.js
+++ b/bookshelfplus-frontend/public/assets/javascripts/dashboard/renderFormControls.js
@@ -22,6 +22,13 @@ function renderElements(control) {
element.appendChild(childElement);
});
}
+
+ // select 下拉框直接设置 value 会不生效,需要等其插入 DOM 之后再操作
+ if (control.tag == "select") {
+ setTimeout(function () {
+ element.value = control.attr.value;
+ }, 0);
+ }
return element;
}
diff --git a/bookshelfplus-frontend/public/assets/javascripts/searchBooks.js b/bookshelfplus-frontend/public/assets/javascripts/searchBooks.js
index d19525e..318313c 100644
--- a/bookshelfplus-frontend/public/assets/javascripts/searchBooks.js
+++ b/bookshelfplus-frontend/public/assets/javascripts/searchBooks.js
@@ -13,7 +13,7 @@ function search({ tableElementId = "", searchText = "", categoryId = 0 }) {
var mainDivWidth = 80/*vw*/; // 定义div的宽度(用于计算表格中的数据的显示长度)
var columnWidth = [23, 17, 30, 10, 20];
renderData.push({
- 书名: `
+ 书名: `
${element.bookName}
@@ -56,7 +56,9 @@ function search({ tableElementId = "", searchText = "", categoryId = 0 }) {
}
// 渲染后重新获取一次字体
- fontmin(getPageText());
+ if (typeof (fontmin) === "function") {
+ fontmin(getPageText());
+ }
} else {
alert(`出错啦!${data.errMsg} (错误码: ${data.errCode}) `);
}
diff --git a/bookshelfplus-frontend/routes/index.js b/bookshelfplus-frontend/routes/index.js
index 93af779..9c9676f 100644
--- a/bookshelfplus-frontend/routes/index.js
+++ b/bookshelfplus-frontend/routes/index.js
@@ -72,7 +72,6 @@ router.get('/callback/:platform', function (req, res) {
});
router.get('/dashboard/:group/:page/:subpage?', function (req, res) {
-
// baseTemplate 基于哪个html模板渲染页面
// pageTemplate 引入这个文件中的页面脚本
if (req.params.group === "admin") {
@@ -83,13 +82,13 @@ router.get('/dashboard/:group/:page/:subpage?', function (req, res) {
},
"book-manage": {
title: "书籍管理",
- baseTemplate: "blank",
+ baseTemplate: "table",
pageTemplate: "BookManage",
childPage: {
- "add": {
- title: "添加书籍",
+ "detail": {
+ title: req.query.id ? "修改书籍" : "添加书籍",
baseTemplate: "form",
- pageTemplate: "BookManage_Add",
+ pageTemplate: "BookManage_Detail",
},
}
},
@@ -140,29 +139,17 @@ router.get('/dashboard/:group/:page/:subpage?', function (req, res) {
var headText = "用户中心";
}
- // function isChildPage(page) {
- // console.log(page);
- // // 查找 dashboardPage 中每一项的 childPage 字段,并与 page 比较
- // for (var key in dashboardPage) {
- // console.log(key);
- // if (dashboardPage[key].childPage && dashboardPage[key].childPage[page]) {
- // return true;
- // }
- // }
- // return false;
- // }
-
- console.log("req.params.page\t\t" + req.params.page)
- console.log("req.params.subpage\t" + req.params.subpage)
// 如果请求的页面在 dashboardPage 中
if (Object.keys(dashboardPage).indexOf(req.params.page) > -1) {
// 当前请求的页面
var currentPage = dashboardPage[req.params.page];
- // 如果请求的就是主页面,或者当前页没有子页面,则渲染主页面
- if (!req.params.subpage || !currentPage.childPage || Object.keys(currentPage.childPage).indexOf(req.params.subpage) === -1) {
- console.log("page");
+ // 如果请求的就是主页面,或者当前页没有子页面
+ if (!req.params.subpage) {
+ // 渲染主页面
+ console.log("page", req.params.page, req.params.subpage);
res.render(`dashboard/${currentPage.baseTemplate}`, {
+ pageUrl: (req._parsedUrl.pathname + "/").replace("//", "/"),
htmlTitle: getPageTitle(headText),
title: currentPage.title,
pageTemplate: "./" + req.params.group + "/" + currentPage.pageTemplate + ".html",
@@ -171,10 +158,16 @@ router.get('/dashboard/:group/:page/:subpage?', function (req, res) {
page: req.params.page,
});
} else {
+ // 渲染子页面
+ if (!currentPage.childPage || Object.keys(currentPage.childPage).indexOf(req.params.subpage) === -1) {
+ // 请求的子页面不存在,直接返回404
+ throw new Error("404 Not Found");
+ }
// 如果当前 page 有 subpage,则渲染子页面
var currentSubPage = currentPage.childPage[req.params.subpage];
- console.log("subpage");
+ console.log("subpage", req.params.page, req.params.subpage);
res.render(`dashboard/${currentSubPage.baseTemplate}`, {
+ pageUrl: (req._parsedUrl.pathname + "/").replace("//", "/"),
htmlTitle: getPageTitle(headText),
title: currentSubPage.title,
pageTemplate: "./" + req.params.group + "/" + currentSubPage.pageTemplate + ".html",
diff --git a/bookshelfplus-frontend/views/dashboard/admin/BookManage.html b/bookshelfplus-frontend/views/dashboard/admin/BookManage.html
index 4697c8f..0ff0772 100644
--- a/bookshelfplus-frontend/views/dashboard/admin/BookManage.html
+++ b/bookshelfplus-frontend/views/dashboard/admin/BookManage.html
@@ -1,3 +1,81 @@
- 添加书籍
-
+ 连续录入
@@ -85,9 +90,10 @@ function formSubmit({ type = 'POST', url = '', + data = {}, success = (response) => { console.log(response) } }) { - var data = {}; + var data = data || {}; for (var i = 0; i < controlsProfile.length; i++) { const controlsProfileItem = controlsProfile[i]; var control = document.getElementById(controlsProfileItem.attr.id); @@ -98,7 +104,7 @@ } var name = control.name; var value = control.value; - console.log("name:", name, "value:", value, "control:", control); + // console.log("name:", name, "value:", value, "control:", control); var validateResult = controlsProfileItem.validate(value); if (validateResult.result) { data[name] = value; diff --git a/bookshelfplus-frontend/views/dashboard/index.html b/bookshelfplus-frontend/views/dashboard/index.html index 08e9053..7f52484 100644 --- a/bookshelfplus-frontend/views/dashboard/index.html +++ b/bookshelfplus-frontend/views/dashboard/index.html @@ -35,7 +35,9 @@