1
0
mirror of https://gitee.com/bookshelfplus/bookshelfplus synced 2025-09-25 19:05:14 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee

完善添加书籍后台输入框

This commit is contained in:
2022-04-05 13:26:49 +08:00
parent 412ec19cf2
commit 936a18404c
4 changed files with 168 additions and 30 deletions

View File

@@ -1,4 +1,31 @@
function getControlsProfile() {
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 [
{
// 必填
@@ -93,25 +120,127 @@ function getControlsProfile() {
"name": "", // 用于 POST 提交
"class": "",
"style": "",
"placeholder": "书籍语言",
},
"label": {
"value": "书籍简介",
"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, // 是否必填
// 可选
"children": [
{
"tag": "option",
"attr": { "value": "1" },
"innerHTML": "选项1",
},
{
"tag": "option",
"attr": { "value": "2" },
"innerHTML": "选项2",
},
],
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 = "";

View File

@@ -146,6 +146,8 @@ router.get('/dashboard/:group/:page', function (req, res) {
links: navbarLinks,
group: req.params.group,
page: req.params.page,
// 引入Scripts
generateCategoryHierarchy: ["BookManage", "CategoryManage"].indexOf(req.params.page) > -1
});
return;
}

View File

@@ -51,30 +51,37 @@
<script src="/assets/javascripts/dashboard/renderFormControls.js"></script>
<!-- 引入对应页面渲染配置 -->
<script src="/assets/javascripts/dashboard/<%=group%>/<%=page%>.js"></script>
<% if (generateCategoryHierarchy == true) {%>
<!-- 生成分类结构 -->
<script src="/assets/javascripts/generateCategoryHierarchy.js"></script>
<%}%>
<!-- 进行渲染 -->
<script>
var group = '<%=group%>';
var page = '<%=page%>';
var title = '<%=title%>';
// 获取将要渲染的 Controls
var controlsProfile = getControlsProfile();
async function renderFormControlsFunc() {
// 获取将要渲染的 Controls
var controlsProfile = await getControlsProfile();
// 渲染控件
var formControls = renderFormControls({ Controls: controlsProfile });
console.log(formControls);
// 渲染控件
var formControls = renderFormControls({ Controls: controlsProfile });
console.log(formControls);
// 将控件填充到网页上
var containerControls = document.getElementById('container-controls');
containerControls.innerHTML = "";
formControls.forEach(function(item){
let Control
containerControls.appendChild(item.label);
containerControls.appendChild(item.control);
});
// 将控件填充到网页上
var containerControls = document.getElementById('container-controls');
containerControls.innerHTML = "";
formControls.forEach(function(item){
let Control
containerControls.appendChild(item.label);
containerControls.appendChild(item.control);
});
// 更新提交按钮显示名称
document.getElementById("btn-submit").innerHTML = "提交";
// 更新提交按钮显示名称
document.getElementById("btn-submit").innerHTML = getSubmitButtonValue() || "提交";
}
renderFormControlsFunc();
</script>
</body>
</html>

View File

@@ -21,7 +21,7 @@ public class BookModel {
// 作者姓名
String author;
//书籍所属分类
// 书籍所属分类
CategoryModel category;
// 出版社