WXL
2024-12-23 ae117f01461f05a0bf249e6f63b636f4222ec8d7
src/views/outsideChainxj.vue
@@ -1,43 +1,50 @@
<template>
  <div class="questionnaire">
    <div class="CONTENT">
      <div class="title">暑期一号宣教</div>
    <!-- <div class="CONTENT">
      <div class="title">浙中医大二院医护知识宣教</div>
      <div class="preview-left">
        <!-- 单选 -->
        <div
          class="topic-dev"
          v-for="(item, index) in questionList"
          :key="item.aaa"
        >
          <div class="dev-text">
            {{ index + 1 }}、<span>{{ item.questionText }}</span>
          </div>
        <div v-html="richText"></div>
      </div>
          <div class="dev-xx" v-if="item.valueType == 1">
            <el-radio-group v-model="item.asrtext">
              <el-radio
                v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                :key="items.id"
                :label="items.targetvalue"
                >{{ items.targetvalue }}</el-radio
              >
            </el-radio-group>
          </div>
          <div v-else>
            <el-input
              type="textarea"
              placeholder="请输入内容"
              v-model.sync="item.asrtext"
              :rows="2"
            />
    </div> -->
    <div class="CONTENT" >
      <div class="preview-left">
        <div class="toptitle">
          <div class="title">{{ taskname ? taskname : "浙中医大二院医护知识宣教" }}</div>
          <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5">
            {{
              kcb
                ? kcb
                : "亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。"
            }}
            <!-- 亲爱的患者/家属您好,为了更好的了解您出院后的康复情况,给您适当及时的健康指导,请您抽一点宝贵时间,完成这份出院随访问卷调查。 -->
          </div>
        </div>
        <el-divider></el-divider>
        <div v-html="richText"></div>
        <div
          style="
            text-align: center;
            padding-top: 50px;
            font-size: 24px;
            color: #175997;
            font-weight: 600;
            margin-bottom: 10px;
          "
        >
        {{
            jsy
              ? jsy
              : "生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!"
          }}        </div>
        <!-- <div style="font-size: 20px">
          {{
            jsy
              ? jsy
              : "生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!"
          }}
        </div> -->
      </div>
      <el-form :model="formData" label-width="80px">
        <el-form-item>
          <el-button type="primary" @click="submitForm">确认查看</el-button>
        </el-form-item>
      </el-form>
    </div>
  </div>
</template>
@@ -45,8 +52,10 @@
<script>
import {
  getExternalfollowup,
  SetsaveQuestionAnswer,
  Submitaquestionnaire,
} from "@/api/AiCentre/index";
import { getToken } from "@/utils/auth";
import axios from "axios";
import JSEncrypt from "jsencrypt";
export default {
  data() {
@@ -65,6 +74,11 @@
        question2: "",
        question3: "",
      },
      richText: "<p>Hello, <strong>world</strong>!</p>",
      url:'',
      taskname:'',
      kcb:'',
      jsy:'',
    };
  },
@@ -74,24 +88,45 @@
  methods: {
    // 获取数据
    getQuestionnaire() {
      let taskid = this.$route.query.param1;
      let patid = this.$route.query.param2;
      // let taskid =
      //   "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw==";
      // let patid =
      //   "CVk0j8O86AeCqhV5WPsBBYDg9fec0wDoDlP9imYK4wDBNIkxywZzMJEGlPagOxnq6qr2WYZo0U8MUGWRGnq8ZA==";
      this.taskid = this.decrypt(taskid);
      this.patid = this.decrypt(patid);
      this.taskid = this.$route.query.param1;
      this.patid = this.$route.query.param2;
      this.taskname = this.$route.query.param3;
      // // let taskid =
      // //   "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw==";
      // // let patid =
      // //   "CVk0j8O86AeCqhV5WPsBBYDg9fec0wDoDlP9imYK4wDBNIkxywZzMJEGlPagOxnq6qr2WYZo0U8MUGWRGnq8ZA==";
      // this.taskid = this.decrypt(taskid);
      // this.patid = this.decrypt(patid);
      // this.$modal.msgSuccess("用户id为" + this.patid);
      // this.$modal.msgSuccess("任务id为" + this.taskid);
      let taskids = this.encrypt(this.taskid);
      let patids = this.encrypt(this.patid);
      getExternalfollowup({ param1: taskids, param2: patids }).then((res) => {
      // // this.$modal.msgSuccess("用户id为" + this.patid);
      // // this.$modal.msgSuccess("任务id为" + this.taskid);
      // let taskids = this.encrypt(this.taskid);
      // let patids = this.encrypt(this.patid);
      getExternalfollowup({ param1: this.taskid, param2: this.patid }).then((res) => {
        if (res.code == 200) {
          this.questionList = res.rows;
          this.url = res.data.script[0].richText;
          this.jsy = res.data.jsy;
          this.kcb = res.data.kcb;
          // 临时获取数据
      axios
        .get(this.url)
        .then((response) => {
          console.log(response.data, "数据"); // 输出获取到的文件内容
          this.richText = response.data;
          this.richText = this.addStyleToImages(this.richText);
        })
        .catch((error) => {
          console.error("Failed to fetch file:", error);
        });
        }
      });
    },
    addStyleToImages(html) {
      return html.replace(
        /<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g,
        '<img$1style="width:100%;height:auto;"$3>'
      );
    },
    // 加密函数
    encrypt(txt) {
@@ -111,8 +146,8 @@
      // 提交表单逻辑
      console.log(this.questionList);
      let form = {
        param1: this.encrypt(this.taskid),
        param2: this.encrypt(this.patid),
        param1: this.taskid,
        param2: this.patid,
        ivrTaskcalldetailList: [],
      };
      this.questionList.forEach((item) => {
@@ -123,14 +158,14 @@
        let ivrTaskcalldetail = {
          asrtext: item.asrtext,
          valueType: item.valueType,
          questiontext: item.questionText,
          scriptContent: item.scriptContent,
          targetoptions: optionarr.join(","),
        };
        form.ivrTaskcalldetailList.push(ivrTaskcalldetail);
      });
      console.log(form, "form");
      SetsaveQuestionAnswer(form).then((res) => {
      Submitaquestionnaire(form).then((res) => {
        if (res.code == 200) {
          this.$modal.msgSuccess("提交成功");
        }
@@ -142,13 +177,10 @@
</script>
<style lang="scss" scoped>
.questionnaire {
  // background-image: url("../assets/images/chainbackground.jpg");
  // background-repeat: no-repeat;
  // background-position: center center;
  // background-size: cover;
  // height: 100vh;
  background-image: url("../assets/images/chainbackground1.jpg");
  background-color: #f9f9fb;
  background-size: cover;
  background-attachment: fixed; /* 保持背景固定 */
  background-position: center;
@@ -157,8 +189,10 @@
  margin: 0;
  padding: 0;
  .CONTENT {
    padding: 10px;
    padding-top: 15px;
    padding-bottom: 15px;
    .title {
      color: #3769f3;
      font-size: 22px;
      font-weight: bold;
      margin-bottom: 20px;
@@ -167,9 +201,14 @@
  }
}
.preview-left {
  margin: 20px;
  margin: 10px;
  margin-bottom: 60px;
  background-color: #fff;
  border-radius: 5px;
  //   margin: 20px;
  padding: 30px;
  padding: 10px;
  padding-bottom: 100px;
  height: 100%;
  // background: #ffff;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),