longz
2026-06-29 9d4cbff7464ebfd7803c2ce53ded49d0f73fe011
frontend-admin/src/views/ContentSettingsView.vue
@@ -12,12 +12,14 @@
    <div class="editor-wrap" v-loading="loading">
      <Toolbar
        :key="`toolbar-${activeTab}`"
        class="w-toolbar"
        :editor="editorRef"
        :default-config="toolbarConfig"
        mode="default"
      />
      <Editor
        :key="`editor-${activeTab}`"
        v-model="currentHtml"
        class="w-editor"
        :default-config="editorConfig"
@@ -40,10 +42,11 @@
<script setup lang="ts">
import "@wangeditor/editor/dist/css/style.css";
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
import { computed, nextTick, onBeforeUnmount, onMounted, shallowRef, ref } from "vue";
import { computed, nextTick, onBeforeUnmount, onMounted, shallowRef, ref, watch } from "vue";
import { ElMessage } from "element-plus";
import http from "../api/http";
import type { IEditorConfig } from "@wangeditor/editor";
import { normalizeFormData } from "../utils/formHelper";
type TabKey = "ABOUT" | "NOTICE" | "FLOW";
@@ -76,7 +79,7 @@
  excludeKeys: ["group-image", "uploadImage", "insertImage", "group-video", "uploadVideo", "insertVideo"],
};
const editorConfig: Partial<IEditorConfig> = {
  placeholder: "请输入内容...",
  placeholder: "请输入内容",
  autoFocus: false,
  MENU_CONF: {
    uploadImage: {
@@ -108,6 +111,11 @@
  editorRef.value = editor as never;
}
watch(activeTab, async () => {
  editorRef.value = undefined;
  await nextTick();
});
async function load() {
  loading.value = true;
  try {
@@ -128,12 +136,14 @@
async function save() {
  saving.value = true;
  try {
    await http.put("/config/content-settings", {
    const payload = normalizeFormData({
      aboutUsHtml: form.value.aboutUsHtml,
      parkNoticeHtml: form.value.parkNoticeHtml,
      parkFlowHtml: form.value.parkFlowHtml,
      aboutUsEnabled: form.value.aboutUsEnabled,
    });
    await http.put("/config/content-settings", payload);
    await load();
    ElMessage.success("已保存");
  } catch (e: unknown) {
    ElMessage.error(e instanceof Error ? e.message : "保存失败");