WXL (wul)
2 天以前 78c84cf61b2a7f558582673a3eecdf8b91eb24c3
src/views/knowledge/education/compilequer/index copy.vue
@@ -432,70 +432,77 @@
      toolbarConfig: {},
      editorConfig: {
        placeholder: "请输入内容...",
        MENU_CONF: {
          // 图片上传配置
          uploadImage: {
            server: process.env.VUE_APP_BASE_API + "/common/uploadSort",
            fieldName: "file",
            headers: {
              Authorization: "Bearer " + getToken(),
            },
            // 自定义插入
            customInsert: (res, insertFn) => {
              const url = res.url || res.data || res.filePath;
              if (url) {
                // 处理内网地址转换
                const processedUrl = url.replace(
                  "http://192.168.191.181:8095/profile/upload",
                  "http://m.zjtongde.com:13871/prod-api/profile/upload"
                );
                insertFn(processedUrl);
              }
            },
          },
          // 视频上传配置
          uploadVideo: {
            server: process.env.VUE_APP_BASE_API + "/common/uploadSort",
            fieldName: "file",
            maxFileSize: 50 * 1024 * 1024, // 50MB
            allowedFileTypes: ["video/*"],
            headers: {
              "Content-Type": "multipart/form-data",
              Authorization: "Bearer " + getToken(),
            },
            // 自定义插入
            customInsert: (res, insertFn) => {
              const url = res.url || res.data || res.filePath;
              if (url) {
                // 处理内网地址转换
                const processedUrl = url.replace(
                  "http://192.168.191.181:8095/profile/upload",
                  "http://m.zjtongde.com:13871/prod-api/profile/upload"
                );
                insertFn(processedUrl, "视频");
              }
            },
            onSuccess: (file, res) => {
              console.log("视频上传成功", res);
              return res.url || res.data || res.filePath;
            },
            onFailed: (file, res) => {
              this.$message.error("视频上传失败");
              console.error("视频上传失败", res);
            },
            onError: (file, err, res) => {
              this.$message.error("视频上传出错");
              console.error("视频上传出错", err);
            },
          },
        },
        menus: [
          "head",
          "bold",
          "italic",
          "underline",
          "image",
          "video", // 确保有 video
          "link",
          "list",
          "undo",
          "redo",
          "file", // 添加自定义文件上传菜单
          "file",
        ],
        uploadImgServer: process.env.VUE_APP_BASE_API + "/common/uploadSort", // 图片上传接口
        uploadImgHeaders: {
          Authorization: "Bearer " + getToken(),
        }, // 自定义上传的 headers
        uploadImgParams: { key: "value" }, // 自定义上传的参数
        uploadImgMaxSize: 2 * 1024 * 1024, // 图片最大大小,单位 Byte
        uploadImgMaxLength: 1, // 一次最多上传图片数量
        uploadImgTimeout: 3 * 60 * 1000, // 超时时间,单位 ms
        uploadImgHooks: {
          customInsert: (insertImgFn, result) => {
            const url = result.url; // 获取图片地址
            insertImgFn(url); // 插入图片
          },
        },
        customMenus: {
          file: {
            tip: "上传文件",
            click: (editor) => {
              const input = document.createElement("input");
              input.type = "file";
              input.accept =
                "application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"; // 支持的文件类型
              input.onchange = (e) => {
                const file = e.target.files[0];
                if (!file) return;
                const formData = new FormData();
                formData.append("file", file);
                // 确保 process.env.VUE_APP_BASE_API 是正确的
                const uploadUrl =
                  process.env.VUE_APP_BASE_API + "/common/uploadSort";
                axios
                  .post(uploadUrl, formData, {
                    headers: {
                      Authorization: "Bearer " + getToken(),
                    },
                  })
                  .then((res) => {
                    const url = res.data.url; // 获取文件地址
                    // 插入文件链接作为普通文本
                    editor.txt.append(url + " ");
                    // 或者插入文件链接作为超链接
                    // editor.cmd.do('insertLink', { name: '文件链接', url: url });
                  })
                  .catch((err) => {
                    console.error("文件上传失败", err);
                  });
              };
              input.click();
            },
          },
        },
      },
      modes: "default", // or 'simple'
      headers: {
@@ -732,7 +739,7 @@
      // 定义要替换的新旧URL
      var oldUrlBase = this.oldPattern;
      var newUrlBase =this.newPattern;
      var newUrlBase = this.newPattern;
      // 获取所有的video元素
      var videos = doc.querySelectorAll("video");