WXL (wul)
昨天 78c84cf61b2a7f558582673a3eecdf8b91eb24c3
测试完成
已重命名1个文件
已修改5个文件
已添加4个文件
338 ■■■■■ 文件已修改
dist (2).zip 补丁 | 查看 | 原始文档 | blame | 历史
dist (3).zip 补丁 | 查看 | 原始文档 | blame | 历史
dist.zip 补丁 | 查看 | 原始文档 | blame | 历史
sltd&ls&南华.zip 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/record/detailpage/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/compilequer/index copy.vue 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/compilequer/index.vue 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login-ls.vue 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dist (2).zip
Binary files differ
dist (3).zip
Binary files differ
dist.zip
Binary files differ
sltd&ls&ÄÏ»ª.zip
Binary files differ
src/views/followvisit/record/detailpage/index.vue
@@ -561,7 +561,7 @@
                <el-button
                  type="primary"
                  plain
                  @click="Editsingletasksonyic('')"
                  @click="alterpatient('')"
                >
                  ä¿å­˜åŸºç¡€ä¿¡æ¯
                </el-button>
@@ -1806,10 +1806,7 @@
        // å¤„理 scriptResult,直接修改原始数据
        if (item.scriptType == 2 && item.scriptResult) {
          // å¤„理数组类型的 scriptResult
          if (
            Array.isArray(item.scriptResult) &&
            item.scriptResult.length > 0
          ) {
          if (Array.isArray(item.scriptResult)) {
            item.originalScriptResult = item.scriptResult; // ä¿å­˜åŽŸå§‹æ•°ç»„ï¼ˆå¯é€‰ï¼‰
            item.scriptResult = item.scriptResult.join("&"); // è½¬æ¢ä¸ºå­—符串
          }
@@ -2205,6 +2202,15 @@
        }
      });
    },
    alterpatient(sendstate) {
      alterpatient(this.userform).then((res) => {
        if (res.code == 200) {
          this.$modal.msgSuccess("基础信息保存成功");
        } else {
          this.$modal.msgError("基础信息修改失败");
        }
      });
    },
    // å¼‚常列渲染
    tableRowClassName({ row, rowIndex }) {
      if (row.id == this.id) {
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: {
src/views/knowledge/education/compilequer/index.vue
@@ -360,60 +360,74 @@
      fileList: [],
      // å·¥å…·æ é…ç½®
      toolbarConfig: {
        excludeKeys: [
          "group-video",
          "insertVideo",
          "uploadVideo",
          "emotion",
          "codeBlock",
        ],
        excludeKeys: ["emotion", "codeBlock"],
      },
      // ç¼–辑器配置
      editorConfig: {
        placeholder: "请输入宣教内容...",
        placeholder: "请输入内容...",
        MENU_CONF: {
          // å›¾ç‰‡ä¸Šä¼ é…ç½®
          uploadImage: {
            server: process.env.VUE_APP_BASE_API + "/common/uploadSort",
            fieldName: "file",
            maxFileSize: 2 * 1024 * 1024,
            maxNumberOfFiles: 1,
            allowedFileTypes: ["image/*"],
            headers: {
              Authorization: "Bearer " + getToken(),
            },
            customUpload: async (file, insertFn) => {
              try {
                const formData = new FormData();
                formData.append("file", file);
                const response = await axios.post(
                  process.env.VUE_APP_BASE_API + "/common/uploadSort",
                  formData,
                  {
                    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);
              }
                    },
                  }
                );
                if (response.data && response.data.url) {
                  let imgUrl = response.data.url;
                  // imgUrl = imgUrl.replace(
                  //   "http://218.108.11.22:8093/profile-api/upload",
                  //   "http://192.88.117.236:8090/prod-api/profile/upload"
                  // );
                  imgUrl = imgUrl.replace(
                    "http://m.zjtongde.com:13871/prod-api/profile/upload",
                    "http://192.88.117.236:8090/prod-api/profile/upload"
                  );
                  insertFn(imgUrl);
                }
              } catch (error) {
                console.error("图片上传失败", error);
            // ä¸Šä¼ æˆåŠŸå›žè°ƒ
            onSuccess: (file, res) => {
              console.log("图片上传成功", res);
              return res.url || res.data || res.filePath;
            },
            onFailed: (file, res) => {
                this.$message.error("图片上传失败");
              console.error("图片上传失败", res);
            },
          },
          // è§†é¢‘上传配置
          uploadVideo: {
            server: process.env.VUE_APP_BASE_API + "/common/uploadSort",
            fieldName: "file",
            maxFileSize: 50 * 1024 * 1024, // 50MB
            allowedFileTypes: ["video/*"],
            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, "视频");
              }
            },
            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);
            },
          },
        },
@@ -658,15 +672,30 @@
      // èŽ·å–æ‰€æœ‰çš„video元素
      var videos = doc.querySelectorAll("video");
      var images = doc.querySelectorAll("img");
      console.log(videos, "videos");
      console.log(images, "images");
      // éåŽ†æ‰€æœ‰çš„video元素并替换src属性
      videos.forEach(function (video) {
        // å…ˆæ£€æŸ¥video元素自身的src属性
        var src = video.getAttribute("src");
        if (src.startsWith(oldUrlBase)) {
        if (src && src.startsWith(oldUrlBase)) {
          video.setAttribute("src", src.replace(oldUrlBase, newUrlBase));
        }
        // ç„¶åŽæ£€æŸ¥video元素内部的source子元素
        var sources = video.querySelectorAll("source");
        sources.forEach(function (source) {
          var sourceSrc = source.getAttribute("src");
          if (sourceSrc && sourceSrc.startsWith(oldUrlBase)) {
            source.setAttribute(
              "src",
              sourceSrc.replace(oldUrlBase, newUrlBase)
            );
          }
      });
      console.log(images,'images');
      });
      console.log(images, "images");
       images.forEach(function (img) {
        var src = img.getAttribute("src");
@@ -700,6 +729,8 @@
        content: this.parserdom(this.content),
        fileName: this.generateRandomHtmlFilename(),
      }).then((res) => {
        console.log(55);
        this.ruleForm.richText = res.msg;
        this.ruleForm.richText = res.msg.replace(
            this.oldPattern,
src/views/knowledge/education/index.vue
@@ -865,7 +865,7 @@
    },
    // æŸ¥è¯¢æ ‘
    getDeptTree() {
      getheLibraryAssort({ hetype: 2 }).then((res) => {
      getheLibraryAssort({ hetype: 1 }).then((res) => {
        this.deptOptions = res.rows;
        this.dialogFormVisible = false;
      });
src/views/login-ls.vue
ÎļþÃû´Ó src/views/login-sy.vue ÐÞ¸Ä
@@ -36,11 +36,11 @@
          />
        </el-input>
      </el-form-item>
      <!-- å¸‚一===================一 -->
      <el-form-item prop="medicalCode">
      <!-- ä¸½===================æ°´ -->
      <el-form-item prop="orgid">
        <el-select
          style="width: 100%"
          v-model="loginForm.medicalCode"
          v-model="loginForm.orgid"
          placeholder="请选择院区"
        >
          <el-option
@@ -118,8 +118,7 @@
        code: "",
        orgid: "H41010500003",
      },
      options: [
      ],
      options: [],
      loginRules: {
        username: [
          { required: true, trigger: "blur", message: "请输入您的账号" },
@@ -168,8 +167,9 @@
      getorganization({ pageSize: 30 }).then((res) => {
        if (res.code == 200) {
          this.options = res.rows.map((item) => ({
            value: item.medicalCode,
            value: item.orgid,
            label: item.organizationName,
            campusid: item.organizationID,
          }));
        }
      });
@@ -205,22 +205,21 @@
      }
      // åŠ¨æ€è®¾ç½® campusid å‚æ•°
      const selectedOrg = this.options.find(item => item.value === this.loginForm.medicalCode);
      console.log(selectedOrg);
      if (selectedOrg) {
        if (selectedOrg.label.includes('湖滨')) {
          this.loginForm.campusid = 1;
          this.loginForm.orgid = 1;
        } else if (selectedOrg.label.includes('吴山')) {
          this.loginForm.campusid = 2;
          this.loginForm.orgid = 1;
        } else {
          this.loginForm.campusid = 1; // é»˜è®¤å€¼æˆ–其他处理
          this.loginForm.orgid = 1;
        }
      }
          const selectedOrg = this.options.find(
            (item) => item.value === this.loginForm.orgid
          );
          this.loginForm.campusid = selectedOrg.campusid || 1;
          // å¸‚一处理-----------------
          // if (selectedOrg) {
          //   if (selectedOrg.label.includes("湖滨")) {
          //     this.loginForm.campusid = 1;
          //   } else if (selectedOrg.label.includes("吴山")) {
          //     this.loginForm.campusid = 2;
          //   } else {
          //     this.loginForm.campusid = 1; // é»˜è®¤å€¼æˆ–其他处理
          //   }
          // }
          // --------------------------------
      this.$store
        .dispatch("Login", this.loginForm)
        .then((res) => {
@@ -240,7 +239,7 @@
        });
    }
  });
}
    },
  },
};
</script>
src/views/login.vue
@@ -36,11 +36,11 @@
          />
        </el-input>
      </el-form-item>
      <!-- ä¸½===================æ°´ -->
      <el-form-item prop="orgid">
      <!-- å¸‚一===================一 -->
      <el-form-item prop="medicalCode">
        <el-select
          style="width: 100%"
          v-model="loginForm.orgid"
          v-model="loginForm.medicalCode"
          placeholder="请选择院区"
        >
          <el-option
@@ -118,7 +118,8 @@
        code: "",
        orgid: "H41010500003",
      },
      options: [],
      options: [
      ],
      loginRules: {
        username: [
          { required: true, trigger: "blur", message: "请输入您的账号" },
@@ -167,9 +168,8 @@
      getorganization({ pageSize: 30 }).then((res) => {
        if (res.code == 200) {
          this.options = res.rows.map((item) => ({
            value: item.orgid,
            value: item.medicalCode,
            label: item.organizationName,
            campusid: item.organizationID,
          }));
        }
      });
@@ -205,21 +205,22 @@
          }
          // åŠ¨æ€è®¾ç½® campusid å‚æ•°
          const selectedOrg = this.options.find(
            (item) => item.value === this.loginForm.orgid
          );
          this.loginForm.campusid = selectedOrg.campusid || 1;
          // å¸‚一处理-----------------
          // if (selectedOrg) {
          //   if (selectedOrg.label.includes("湖滨")) {
          //     this.loginForm.campusid = 1;
          //   } else if (selectedOrg.label.includes("吴山")) {
          //     this.loginForm.campusid = 2;
          //   } else {
          //     this.loginForm.campusid = 1; // é»˜è®¤å€¼æˆ–其他处理
          //   }
          // }
          // --------------------------------
      const selectedOrg = this.options.find(item => item.value === this.loginForm.medicalCode);
      console.log(selectedOrg);
      if (selectedOrg) {
        if (selectedOrg.label.includes('湖滨')) {
          this.loginForm.campusid = 1;
          this.loginForm.orgid = 1;
        } else if (selectedOrg.label.includes('吴山')) {
          this.loginForm.campusid = 2;
          this.loginForm.orgid = 1;
        } else {
          this.loginForm.campusid = 1; // é»˜è®¤å€¼æˆ–其他处理
          this.loginForm.orgid = 1;
        }
      }
          this.$store
            .dispatch("Login", this.loginForm)
            .then((res) => {
@@ -239,7 +240,7 @@
            });
        }
      });
    },
}
  },
};
</script>