Files
YwxAppThink/addon/blog/view/backend/article/create.html
T

145 lines
4.9 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<title>公众号式文章编辑器</title>
<!-- 引入 Layui 样式 -->
<link rel="stylesheet" href="/assets/layui/css/layui.css" />
<link rel="stylesheet" href="/assets/ywxapp/css/ywxapp.css" />
<!-- 引入 UEditorPlus 核心 -->
<script type="text/javascript" src=" /assets/library/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="/assets/library/ueditor/ueditor.all.js"></script>
<style>
</style>
</head>
<body class=" layui-container">
<!-- 核心编辑区 -->
<form class="layui-form action="">
<!-- 标题输入 -->
<div class="layui-form-item">
<div class="layui-input-wrap">
<input type="text" name="title" autocomplete="off" placeholder="请在这里输入标题(最多64字)" lay-verify="required" class="layui-input" maxlength="64">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-wrap">
<input type="text" name="author" autocomplete="off" placeholder="请输入作者(最多8字)" maxlength="8" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-wrap">
<script id="editor" type="text/plain" style="height: 450px;"></script>
</div>
</div>
<!-- 功能按钮:保存/预览/发表 -->
<div class="function-buttons">
<button class="layui-btn layui-btn-normal" id="saveDraft">保存为草稿</button>
<button class="layui-btn layui-btn-primary" id="preview">预览</button>
<button class="layui-btn layui-btn-danger" id="publish">发表</button>
</div>
</form>
<!-- 引入 Layui 脚本 -->
<script src="/assets/layui/layui.js"></script>
<script src="/assets/ywxapp/ywxapp.js" module="backend"></script>
<script>
// 初始化 Layui
layui.use(["jquery", "form"], function () {
var $ = layui.jquery;
var form = layui.form;
// 1. 初始化 UEditorPlus(富文本编辑器)
var ue = UE.getEditor("editor", {
toolbars: [
[
"undo", // 撤销
"redo", "|", // 重做
"removeformat", // 清除格式
"formatmatch", // 格式刷
"|",
"fontsize", // 字号
"bold", // 加粗
"italic", // 斜体
"underline", // 下划线
"strikethrough",// 删除线
"forecolor", // 字体颜色
"backcolor", // 背景色
"|",
"justifyleft", // 居左对齐
"justifycenter", // 居中对齐
"justifyright",
"justifyjustify", // 两端对齐
"indent", // 首行缩进
"|",
"inserttable", // 插入表格
"blockquote", // 引用
"horizontal",
"insertcode", // 插入代码
"emotion", // 表情
"|",
"ai", // AI智能
"|",
"print", // 打印
"preview", // 预览
"searchreplace", // 查询替换
]
],
autoHeightEnabled: true,
initialFrameWidth: "100%",
initialFrameHeight: 450,
});
// 2. 功能按钮事件绑定
// 保存草稿
$("#saveDraft").on("click", function () {
var title = $(".editor-title input").val().trim();
var author = $(".editor-author input").val().trim();
var content = ue.getContent(); // 获取编辑器内容
// 这里对接后端 API 保存草稿(示例仅打印)
console.log("保存草稿:", { title, author, content });
layui.layer.msg("草稿已保存!", { icon: 1 });
});
// 预览
$("#preview").on("click", function () {
// 实际需打开新窗口渲染内容,这里模拟
var previewContent = `标题:${$(".editor-title input").val()}\n作者:${$(".editor-author input").val()}\n内容:${ue.getContent()}`;
layui.layer.open({
type: 1,
title: "预览",
content: `<p>${previewContent}</p>`,
area: ["500px", "400px"],
});
});
// 发表
$("#publish").on("click", function () {
var title = $(".editor-title input").val().trim();
var author = $(".editor-author input").val().trim();
var content = ue.getContent();
// 对接后端 API 发表文章(示例仅打印)
console.log("发表文章:", { title, author, content });
layui.layer.msg("文章已发表!", { icon: 1 });
});
// 3. 表单开关事件(原创/赞赏/留言等)
form.on("switch()", function (data) {
var label = data.othis.parents("div").prev("label").text();
console.log(`${label} 状态:`, data.elem.checked);
});
});
</script>
</body>
</html>