WXL (wul)
昨天 78c84cf61b2a7f558582673a3eecdf8b91eb24c3
测试完成
已重命名1个文件
已修改5个文件
已添加4个文件
494 ■■■■ 文件已修改
dist (2).zip 补丁 | 查看 | 原始文档 | blame | 历史
dist (3).zip 补丁 | 查看 | 原始文档 | blame | 历史
dist.zip 补丁 | 查看 | 原始文档 | blame | 历史
sltd&ls&南华.zip 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/record/detailpage/index.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/compilequer/index copy.vue 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/compilequer/index.vue 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login-ls.vue 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 115 ●●●● 补丁 | 查看 | 原始文档 | 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("&"); // è½¬æ¢ä¸ºå­—符串
          }
@@ -2023,7 +2020,7 @@
        }
        item.patid = this.patid;
        item.templateid = item.templateID;
             if (item.nextScriptno == null) {
        if (item.nextScriptno == null) {
          item.nextScriptno = index == dataToSubmit.length - 1 ? 0 : index + 2;
        }
      });
@@ -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: {
@@ -732,7 +739,7 @@
      // å®šä¹‰è¦æ›¿æ¢çš„æ–°æ—§URL
      var oldUrlBase = this.oldPattern;
      var newUrlBase =this.newPattern;
      var newUrlBase = this.newPattern;
      // èŽ·å–æ‰€æœ‰çš„video元素
      var videos = doc.querySelectorAll("video");
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"
                );
                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);
                this.$message.error("图片上传失败");
                insertFn(processedUrl);
              }
            },
            // ä¸Šä¼ æˆåŠŸå›žè°ƒ
            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,17 +672,32 @@
      // èŽ·å–æ‰€æœ‰çš„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));
        }
      });
      console.log(images,'images');
       images.forEach(function (img) {
        // ç„¶åŽæ£€æŸ¥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");
      images.forEach(function (img) {
        var src = img.getAttribute("src");
        if (src.startsWith(oldUrlBase)) {
          img.setAttribute("src", src.replace(oldUrlBase, newUrlBase));
@@ -700,11 +729,13 @@
        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,
            this.newPattern
          );
          this.oldPattern,
          this.newPattern
        );
        console.log(this.ruleForm.richText, "this.ruleForm.richText");
        // å¤„理内网html
        addrichText({
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,
          }));
        }
      });
@@ -186,61 +186,60 @@
      };
    },
    handleLogin() {
  this.$refs.loginForm.validate((valid) => {
    if (valid) {
      this.loading = true;
      this.$refs.loginForm.validate((valid) => {
        if (valid) {
          this.loading = true;
      if (this.loginForm.rememberMe) {
        Cookies.set("username", this.loginForm.username, { expires: 30 });
        Cookies.set("password", encrypt(this.loginForm.password), {
          expires: 30,
        });
        Cookies.set("rememberMe", this.loginForm.rememberMe, {
          expires: 30,
        });
      } else {
        Cookies.remove("username");
        Cookies.remove("password");
        Cookies.remove("rememberMe");
      }
      // åŠ¨æ€è®¾ç½® 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;
        }
      }
      this.$store
        .dispatch("Login", this.loginForm)
        .then((res) => {
          if (this.loginForm.username == "admin") {
            this.$router.push({ path: "/index" }).catch(() => {});
          if (this.loginForm.rememberMe) {
            Cookies.set("username", this.loginForm.username, { expires: 30 });
            Cookies.set("password", encrypt(this.loginForm.password), {
              expires: 30,
            });
            Cookies.set("rememberMe", this.loginForm.rememberMe, {
              expires: 30,
            });
          } else {
            this.$router
              .push({ path: "/followvisit/discharge" })
              .catch(() => {});
            Cookies.remove("username");
            Cookies.remove("password");
            Cookies.remove("rememberMe");
          }
        })
        .catch(() => {
          this.loading = false;
          if (this.captchaEnabled) {
            this.getCode();
          }
        });
    }
  });
}
          // åŠ¨æ€è®¾ç½® 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; // é»˜è®¤å€¼æˆ–其他处理
          //   }
          // }
          // --------------------------------
          this.$store
            .dispatch("Login", this.loginForm)
            .then((res) => {
              if (this.loginForm.username == "admin") {
                this.$router.push({ path: "/index" }).catch(() => {});
              } else {
                this.$router
                  .push({ path: "/followvisit/discharge" })
                  .catch(() => {});
              }
            })
            .catch(() => {
              this.loading = false;
              if (this.captchaEnabled) {
                this.getCode();
              }
            });
        }
      });
    },
  },
};
</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,
          }));
        }
      });
@@ -186,60 +186,61 @@
      };
    },
    handleLogin() {
      this.$refs.loginForm.validate((valid) => {
        if (valid) {
          this.loading = true;
  this.$refs.loginForm.validate((valid) => {
    if (valid) {
      this.loading = true;
          if (this.loginForm.rememberMe) {
            Cookies.set("username", this.loginForm.username, { expires: 30 });
            Cookies.set("password", encrypt(this.loginForm.password), {
              expires: 30,
            });
            Cookies.set("rememberMe", this.loginForm.rememberMe, {
              expires: 30,
            });
          } else {
            Cookies.remove("username");
            Cookies.remove("password");
            Cookies.remove("rememberMe");
          }
      if (this.loginForm.rememberMe) {
        Cookies.set("username", this.loginForm.username, { expires: 30 });
        Cookies.set("password", encrypt(this.loginForm.password), {
          expires: 30,
        });
        Cookies.set("rememberMe", this.loginForm.rememberMe, {
          expires: 30,
        });
      } else {
        Cookies.remove("username");
        Cookies.remove("password");
        Cookies.remove("rememberMe");
      }
          // åŠ¨æ€è®¾ç½® 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; // é»˜è®¤å€¼æˆ–其他处理
          //   }
          // }
          // --------------------------------
          this.$store
            .dispatch("Login", this.loginForm)
            .then((res) => {
              if (this.loginForm.username == "admin") {
                this.$router.push({ path: "/index" }).catch(() => {});
              } else {
                this.$router
                  .push({ path: "/followvisit/discharge" })
                  .catch(() => {});
              }
            })
            .catch(() => {
              this.loading = false;
              if (this.captchaEnabled) {
                this.getCode();
              }
            });
      // åŠ¨æ€è®¾ç½® 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;
        }
      });
    },
      }
      this.$store
        .dispatch("Login", this.loginForm)
        .then((res) => {
          if (this.loginForm.username == "admin") {
            this.$router.push({ path: "/index" }).catch(() => {});
          } else {
            this.$router
              .push({ path: "/followvisit/discharge" })
              .catch(() => {});
          }
        })
        .catch(() => {
          this.loading = false;
          if (this.captchaEnabled) {
            this.getCode();
          }
        });
    }
  });
}
  },
};
</script>