mirror of
https://gitee.com/bookshelfplus/bookshelfplus
synced 2025-09-25 19:05:14 +08:00
完善添加书籍后台输入框
This commit is contained in:
@@ -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 = "";
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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>
|
@@ -21,7 +21,7 @@ public class BookModel {
|
||||
// 作者姓名
|
||||
String author;
|
||||
|
||||
//书籍所属分类
|
||||
// 书籍所属分类
|
||||
CategoryModel category;
|
||||
|
||||
// 出版社
|
||||
|
Reference in New Issue
Block a user