1
0
mirror of https://gitee.com/bookshelfplus/bookshelfplus synced 2025-09-01 22:53:29 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
Files
bookshelfplus/bookshelfplus-frontend/views/dashboard/admin/BookManage_Detail.html

287 lines
11 KiB
HTML

<!-- 是否连续录入复选框 -->
<p style="text-align: center;">
<!-- 只在新增书籍的时候显示 -->
<input type="checkbox" id="isContinuous" checked="checked" />连续录入
</p>
<!-- 生成分类结构 -->
<script src="/assets/javascripts/generateCategoryHierarchy.js"></script>
<script>
// 如果传入了 id 那么就是修改书籍,否则就是添加书籍
var bookId = getParams().id;
var isModify = bookId ? true : false;
if (!isModify) {
// 新增书籍
bookId = 0;
} else {
// 修改书籍
$("#isContinuous").parent().remove();
}
// 点击提交按钮
function btnSubmitClick() {
formSubmit({
type: 'POST',
url: '/book/detail',
data: { id: bookId },
success: function (data) {
console.log(data);
alert(isModify ? "修改成功!" : "添加成功!");
if (!isModify && document.getElementById("isContinuous").checked) {
location.reload();
} else {
// 回到书籍管理页
location.href = "<%= pageUrl %>../";
}
}
});
}
// 如果是修改书籍,则需要获取书籍详情
async function getBookDetail(bookId) {
var responseData = await getRequest("/book/get", { id: bookId });
var axiosData = responseData.data;
var status = axiosData.status;
var data = axiosData.data;
if (status === "success") {
console.log(data)
return data;
} else {
alert(`出错啦!${data.errMsg} (错误码: ${data.errCode}) `);
// 回到书籍管理页
location.href = "<%= pageUrl %>../";
}
}
async function getControlsProfile(getValidateUtils) {
// 获取分类列表
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": `${"&nbsp;".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);
// 修改书籍: 获取书籍详情
var bookDetail = {};
if (isModify) {
bookDetail = await getBookDetail(bookId);
} else {
console.log("新增书籍无需获取书籍详情");
}
return [
// 【模板】
// {
// // 必填
// "tag": "input",
// "attr": {
// // 可选
// "id": "",
// "name": "", // 用于 POST 提交
// "class": "",
// "style": "",
// "placeholder": "电子书的名称",
// },
// "label": {
// "value": "书本名称",
// },
// "required": true, // 是否必填
// // 可选
// "innerHTML": "",
// "children": [
// {
// "tag": "option",
// "attr": { "value": "1" },
// "innerHTML": "选项1",
// },
// {
// "tag": "option",
// "attr": { "value": "2" },
// "innerHTML": "选项2",
// },
// ],
// "validate": function (value) {
// var validate = validateUtils.setValue(value)
// .validate.notNull(value, "书本名称不能为空,请输入书本名称")
// .validate.notNull(value, "书本名称不能超过 50 个字符")
// .validate.notNull(value, "书本名称不能包含特殊字符")
// .result();
// console.log(validate);
// if (validateUtils.isEmpty(value)) {
// result = false;
// msg = "不能为空";
// }
// return { result: result, msg: msg };
// }
// },
// 必须设置 id, name
// 只有设置了 id 才会使用 validate 校验取值
{
"tag": "input",
"attr": {
"id": "bookName",
"name": "bookName",
"placeholder": "电子书的名称",
"value": bookDetail.bookName || "",
},
"label": {
"value": "书本名称",
},
"required": true, // 是否必填
"innerHTML": "",
"validate": (val) => getValidateUtils().setValue(val)
.notString("传入的值为非字符串类型")
.notEmptyAfterTrim("书本名称不能为空,请输入书本名称")
.length(0, 50, "书本名称不能超过 50 个字符")
.isValid()
},
{
"tag": "input",
"attr": {
"id": "author",
"name": "author",
"placeholder": "电子书的作者",
"value": bookDetail.author || "",
},
"label": {
"value": "作者姓名",
},
"required": true, // 是否必填
"innerHTML": "",
"validate": (val) => getValidateUtils().setValue(val)
.notString("传入的值为非字符串类型")
.notEmpty("作者姓名不能为空")
.length(0, 50, "作者姓名不能超过 50 个字符")
.isValid()
},
{
"tag": "textarea",
"attr": {
"id": "description",
"name": "description",
"style": "height:100px;",
"placeholder": "电子书的简介",
},
"label": {
"value": "书籍简介",
},
"required": false, // 是否必填
"innerHTML": bookDetail.description || "",
"validate": (val) => getValidateUtils().setValue(val)
.notString("传入的值为非字符串类型")
.length(0, 5000, "书籍简介不能超过 5000 个字符")
.isValid()
},
{
"tag": "select",
"attr": {
"id": "language",
"name": "language",
"placeholder": "书籍语言",
"value": bookDetail.language || "",
},
"label": {
"value": "语言",
},
"required": true, // 是否必填
"children": [
{
"tag": "option",
"attr": { "value": "Chinese" },
"innerHTML": "中文",
},
{
"tag": "option",
"attr": { "value": "English" },
"innerHTML": "英文",
},
{
"tag": "option",
"attr": { "value": "" },
"innerHTML": "其他",
},
],
"innerHTML": "",
"validate": (val) => getValidateUtils().setValue(val)
.notNull("书籍语言传入值错误")
.isValid()
},
{
"tag": "input",
"attr": {
"id": "publishingHouse",
"name": "publishingHouse",
"placeholder": "出版社",
"value": bookDetail.publishingHouse || "",
},
"label": {
"value": "出版社",
},
"required": true, // 是否必填
"innerHTML": "",
"validate": (val) => getValidateUtils().setValue(val)
.notString("传入的值为非字符串类型")
.notEmpty("出版社不能为空")
.length(0, 50, "出版社不能超过 50 个字符")
.isValid()
},
{
"tag": "input",
"attr": {
"id": "copyright",
"name": "copyright",
"placeholder": "来源信息 & 版权信息",
"value": bookDetail.copyright || "",
},
"label": {
"value": "来源(版权)",
},
"required": false, // 是否必填
"innerHTML": "",
"validate": (val) => getValidateUtils().setValue(val)
.notNull("来源(版权)传入值错误")
.isValid()
},
{
"tag": "select",
"attr": {
"id": "categoryId",
"name": "categoryId",
"value": (bookDetail.category && bookDetail.category.id) ? bookDetail.category.id : "",
},
"label": {
"value": "书籍分类",
},
"required": true, // 是否必填
"children": categoryOptions,
"validate": (val) => getValidateUtils().setValue(val)
.notEmpty("请选择书籍分类")
.notStringNumber("书籍分类传入值错误")
.isValid()
},
];
}
</script>