富文本上传

<!-- 信息入库-->
<template>
  <div class="app-container">
    <!-- 手动添加文件对话框 -->
    <div style="display: flex">
      <div style="border: 1px solid #ccc" class="videoFather">
        <Toolbar
          style="border-bottom: 1px solid #ccc"
          :editor="editor"
          :defaultConfig="toolbarConfig"
          :mode="mode"
        />
        <Editor
          class="editorC"
          style="height: 380px; overflow-y: hidden"
          v-model="html"
          :defaultConfig="editorConfig"
          :mode="mode"
          @onCreated="onCreated"
        />
      </div>
      <div style="margin-top: 20px">
        <el-button @click="nextStep">提交</el-button>
      </div>
    </div>
  </div>
</template>

<script>
import "@vue-office/docx/lib/index.css";
import "@vue-office/excel/lib/index.css";

// 引入 VueOffice 组件
import "@vue-office/excel/lib/index.css";
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
import { importRichTextInfo } from "@/api/informationManagement.js";
export default {
  components: {
    Editor,
    Toolbar,
  },
  props: {},
  data() {
    return {
      // 手动导入弹框左侧高亮
      activeStep: 0,
      // 文件名称
      file: "",
      editor: null,
      html: "",
      toolbarConfig: {
        excludeKeys: ["fullScreen"],
      },
      editorConfig: { placeholder: "请输入内容...", MENU_CONF: {} },
      mode: "default",
    };
  },
  computed: {},
  watch: {},
  methods: {
    async nextStep() {
      console.log(this.form);
      console.log(this.html);
      console.log(this.mode);
      const newData = {
        // encoding: this.form.digitalCoding,
        belongProject: 1,
        productType: 2,
        category: 3,
        import_date: 4,
        filename: 5,
        file: this.html,
      };
      let result = await importRichTextInfo(newData);
      const { code, message, status } = result;
      if (code == 200) {
        this.activeStep++;
      }
    },
    onCreated(editor) {
      this.editor = Object.seal(editor); // 一定要用 Object.seal() ,否则会报错
    },
    /*
     *@Author: qs
     *@Date: 2024-06-17 16:16:32
     *@Description: 富文本编辑器初始化
     */
    editorInit() {
      console.log(1111111111);
      this.editorConfig.MENU_CONF["uploadImage"] = {
        server: "http://localhost:8080/test",
        // server: '/api/upload-img-10s', // test timeout
        // server: '/api/upload-img-failed', // test failed
        // server: '/api/xxx', // test 404

        timeout: 5 * 1000, // 5s

        fieldName: "custom-fileName",
        meta: { token: "xxx", a: 100 },
        metaWithUrl: true, // join params to url
        headers: {
          Accept: "application/json, text/plain, */*",
          token: localStorage.getItem("token") || "",
        },
        // headers: { token: localStorage.getItem("token") },
        maxFileSize: 10 * 1024 * 1024, // 10M

        base64LimitSize: 5 * 1024, // insert base64 format, if file's size less than 5kb

        onBeforeUpload(file) {
          console.log("onBeforeUpload", file);

          return file; // will upload this file
          // return false // prevent upload
        },
        onProgress(progress) {
          console.log("onProgress", progress);
        },
        onSuccess(file, res) {
          console.log("onSuccess", file, res);
        },
        onFailed(file, res) {
          alert(res.message);
          console.log("onFailed", file, res);
        },
        onError(file, err, res) {
          alert(err.message);
          console.error("onError", file, err, res);
        },
      };
      this.editorConfig.MENU_CONF["uploadVideo"] = {
        server: "http://localhost:8080/test",
        // server: '/api/upload-img-failed', // test failed
        // server: '/api/xxx', // test 404

        timeout: 20 * 1000, // 5s

        fieldName: "custom-fileName",
        meta: { token: "xxx", a: 100 },
        metaWithUrl: true, // join params to url
        headers: {
          Accept: "application/json, text/plain, */*",
          token: localStorage.getItem("token") || "",
        },

        maxFileSize: 90 * 1024 * 1024, // 90M

        onBeforeUpload(file) {
          console.log("onBeforeUpload", file);

          return file; // will upload this file
          // return false // prevent upload
        },
        onProgress(progress) {
          console.log("onProgress", progress);
        },
        onSuccess(file, res) {
          console.log("onSuccess", file, res);
        },
        onFailed(file, res) {
          alert(res.message);
          console.log("onFailed", file, res);
        },
        onError(file, err, res) {
          alert(err.message);
          console.error("onError", file, err, res);
        },
      };
    },
  },

  created() {},
  mounted() {
    this.editorInit();
  },
  beforeDestroy() {
    const editor = this.editor;
    if (editor == null) return;
    editor.destroy(); // 组件销毁时,及时销毁编辑器
  },
};
</script>
<style src="@wangeditor/editor/dist/css/style.css"></style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值