1
0
This repository has been archived on 2025-09-28. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
bookstore_old/src/main/resources/static/index.html

363 lines
24 KiB
HTML

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>书籍中心</title>
<link href="sdk/antd.css" rel="stylesheet"/>
<link href="sdk/helper.css" rel="stylesheet"/>
<link href="sdk/iconfont.css" rel="stylesheet"/>
<style>
html, body, #root {
position: relative;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
textarea {
resize: none !important;
}
</style>
</head>
<body>
<div id="root"></div>
</body>
<script src="sdk/sdk.js"></script>
<script src="components/helper.js"></script>
<script src="components/book.js"></script>
<script src="components/chapter.js"></script>
<script>
(function () {
let debug = false
let amis = amisRequire('amis/embed')
let amisJSON = {
type: 'page',
title: '书籍中心',
subTitle: '网络书籍精排版工具',
body: [
{
type: 'crud',
api: {
method: 'get',
url: '${base}/book/list',
data: {
page: '${page|default:1}',
size: '${size|default:10}'
}
},
...crudCommonOptions(),
headerToolbar: [
'reload',
{
label: '',
icon: 'fa fa-add',
...bookAddDialog(),
},
],
footerToolbar: [
paginationOption(),
],
columns: [
{
name: 'name',
label: '名称',
width: 150,
},
{
name: 'description',
label: '描述',
},
{
type: 'operation',
label: '操作',
fixed: 'right',
className: 'nowrap',
width: 250,
buttons: [
{
type: 'action',
label: '跳转',
actionType: 'url',
url: '${source}',
blank: true,
},
{
type: 'action',
label: '编辑',
...bookDetailDialog(),
},
{
type: 'action',
label: '编辑章节',
actionType: 'dialog',
dialog: {
title: '章节',
size: 'lg',
actions: [],
body: [
{
type: 'crud',
...crudCommonOptions(),
api: {
method: 'get',
url: '${base}/chapter/list/${bookId}',
data: {
page: '${page|default:1}',
size: '${size|default:10}'
}
},
headerToolbar: [
'reload',
{
label: '',
icon: 'fa fa-add',
...chapterAddDialog(),
},
],
footerToolbar: [
paginationOption(),
],
columns: [
{
name: 'sequence',
label: '章节数',
width: 50,
},
{
name: 'name',
label: '名称',
width: 150,
},
{
name: 'description',
label: '简介',
},
{
type: 'operation',
label: '操作',
fixed: 'right',
className: 'nowrap',
width: 200,
buttons: [
{
type: 'action',
label: '编辑',
...chapterDetailDialog(),
},
{
type: 'action',
label: '阅读',
actionType: 'dialog',
dialog: {
title: '阅读',
size: 'lg',
actions: [],
body: {
type: 'service',
className: 'p-10',
api: '${base}/chapter/show/${chapterId}',
silentPolling: true,
body: {
type: 'tpl',
className: 'font-serif',
tpl: '${item|raw}'
}
}
}
},
{
type: 'action',
label: '导入',
actionType: 'dialog',
dialog: {
title: '导入正文',
size: 'lg',
body: {
debug: '${debug}',
type: 'form',
api: '${base}/chapter/import/${chapterId}',
mode: 'normal',
body: [
{
type: 'switch',
name: 'override',
label: '覆盖导入',
},
{
type: 'textarea',
name: 'text',
label: '正文',
required: true,
...formInputClearable(),
showCounter: true,
trimContents: true,
minRows: 10,
maxRows: 10,
},
],
},
},
},
{
type: 'action',
label: '编辑正文',
actionType: 'dialog',
dialog: {
title: '编辑正文',
size: 'lg',
actions: [],
body: {
type: 'crud',
...crudCommonOptions(),
api: {
method: 'get',
url: '${base}/line/list/${chapterId}',
data: {
page: '${page|default:1}',
size: '${size|default:10}'
}
},
quickSaveItemApi: '${base}/line/update/${lineId}',
headerToolbar: [
'reload',
],
footerToolbar: [
paginationOption(),
],
columns: [
{
name: 'sequence',
label: '行号',
width: 50,
},
{
name: 'text',
label: '内容',
quickEdit: {
saveImmediately: true,
resetOnFailed: true,
type: 'textarea',
showCounter: true,
trimContents: true,
minRows: 10,
maxRows: 10,
},
},
{
type: 'operation',
label: '操作',
fixed: 'right',
className: 'nowrap',
width: 100,
buttons: [
{
type: 'action',
label: '处理',
actionType: 'dialog',
dialog: {
title: '文本处理',
size: 'lg',
body: {
debug: true,
type: 'form',
canAccessSuperData: false,
initApi: '${base}/line/detail/${lineId}',
api: '${base}/line/save/${chapterId}',
body: [
{
type: 'hidden',
name: 'lineId',
},
{
type: 'textarea',
name: 'text',
label: '正文',
...formInputClearable(),
showCounter: true,
trimContents: true,
minRows: 5,
maxRows: 5,
},
{
type: 'textarea',
name: 'newText',
label: '优化后正文',
...formInputClearable(),
showCounter: true,
trimContents: true,
minRows: 5,
maxRows: 5,
},
]
}
}
},
{
type: 'action',
label: '删除',
level: 'danger',
confirmTitle: '确认删除',
confirmText: '确认删除当前行吗?',
actionType: 'ajax',
api: 'get:${base}/line/remove/${lineId}',
},
]
}
],
},
},
},
{
type: 'action',
label: '删除',
level: 'danger',
confirmTitle: '确认删除',
confirmText: '确认删除名称为「${name}」的章节吗?',
actionType: 'ajax',
api: 'get:${base}/chapter/remove/${chapterId}',
},
],
},
],
},
],
},
},
{
type: 'action',
label: '删除',
level: 'danger',
confirmTitle: '确认删除',
confirmText: '确认删除名称为「${name}」的书籍吗?',
actionType: 'ajax',
api: 'get:${base}/book/remove/${bookId}',
},
],
},
],
},
],
}
amis.embed(
'#root',
amisJSON,
{
data: {
base: 'http://127.0.0.1:23890',
},
},
{
theme: 'antd',
enableAMISDebug: debug,
},
);
if (debug) {
console.log('Source', amisJSON)
}
})()
</script>
</html>