WXL
2024-07-05 fdf8b9cc7995c8d2022ac512c48a7567f6d2af9a
src/views/outsideChain.vue
@@ -1,7 +1,7 @@
<template>
  <div class="questionnaire">
    <div class="CONTENT">
      <div class="title">暑期问卷</div>
      <div class="title">随访问卷</div>
      <div class="preview-left">
        <!-- 单选 -->
        <div
@@ -14,11 +14,11 @@
          </div>
          <div class="dev-xx" v-if="item.valueType == 1">
            <el-radio-group v-model="item.radio">
            <el-radio-group v-model="item.asrtext">
              <el-radio
                v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                :key="items.id"
                :label="items.id"
                :label="items.targetvalue"
                >{{ items.targetvalue }}</el-radio
              >
            </el-radio-group>
@@ -26,8 +26,8 @@
          <div v-else>
            <el-input
              type="textarea"
              placeholder="未获取到信息"
              v-model.sync="item.questionResult"
              placeholder="请输入内容"
              v-model.sync="item.asrtext"
              :rows="2"
            />
          </div>
@@ -43,8 +43,11 @@
</template>
<script>
import { getExternalfollowup } from "@/api/AiCentre/index";
import CryptoJS from "crypto-js";
import {
  getExternalfollowup,
  SetsaveQuestionAnswer,
} from "@/api/AiCentre/index";
import JSEncrypt from "jsencrypt";
export default {
  data() {
    return {
@@ -56,7 +59,7 @@
        "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKR0yHv0rbJWQE+Sc7/FwpW66qMd9qX2k6z+SDgkSdxWh/1GbBoAP7bDQQRF6vXmoKsD2ya42H6XRLSDXAoayuMCAwEAAQ== ",
      // 后端私钥
      privateKey:
        "MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAtDOpbUQhcEoYy77agRhIHmAzs7H+KHJhN56gTTI9fWq23j77nI055MFV3oQQziIrNUTNaPpEQhZXBpI0+f9K9QIDAQABAkB3n0fcWfrcoMN/FU3VnrnZOEF6CzFNxkgU9P8y36QECWKZ9JhYQkNpKrMC9oXlN3VSaRigV7B+L/I/a0Rs1W+tAiEA4jx7xcXJ4y4BNwAmVHt6NNiEkzIwWnwC/0qsEu8NsOsCIQDL6MMn1D2uznC6OuOWpxDCkBh1JL1NzZTZeH2G+hj7nwIgKGAC9tjFnvWm4dn0/T7MIIJDpsFeP8fCAS2iZ/6hwuECIAS/eLvWr1EAsZNEh8QcQ8GkBU3E+ztyjAK8UX/xFt/VAiBf79/1tDErX4/DChecM8w3c3DhbBcjuE3fHZn7p6/UKg==",
        " MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAtDOpbUQhcEoYy77agRhIHmAzs7H+KHJhN56gTTI9fWq23j77nI055MFV3oQQziIrNUTNaPpEQhZXBpI0+f9K9QIDAQABAkB3n0fcWfrcoMN/FU3VnrnZOEF6CzFNxkgU9P8y36QECWKZ9JhYQkNpKrMC9oXlN3VSaRigV7B+L/I/a0Rs1W+tAiEA4jx7xcXJ4y4BNwAmVHt6NNiEkzIwWnwC/0qsEu8NsOsCIQDL6MMn1D2uznC6OuOWpxDCkBh1JL1NzZTZeH2G+hj7nwIgKGAC9tjFnvWm4dn0/T7MIIJDpsFeP8fCAS2iZ/6hwuECIAS/eLvWr1EAsZNEh8QcQ8GkBU3E+ztyjAK8UX/xFt/VAiBf79/1tDErX4/DChecM8w3c3DhbBcjuE3fHZn7p6/UKg==",
      formData: {
        question1: "",
        question2: "",
@@ -69,56 +72,77 @@
    this.getQuestionnaire();
  },
  methods: {
    submitForm() {
      // 提交表单逻辑
      console.log(this.formData);
      // 可以将数据提交到后端或者进行其他处理
    },
    // 获取数据
    getQuestionnaire() {
      let taskid = this.$route.query.param1;
      let patid = this.$route.query.param2;
      taskid = this.decryptData(taskid, this.privateKey);
      patid = this.decryptData(patid, this.privateKey);
      console.log(taskid, "taskid");
      console.log(patid, "patid");
      // let taskid =
      //   "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw==";
      // let patid =
      //   "CVk0j8O86AeCqhV5WPsBBYDg9fec0wDoDlP9imYK4wDBNIkxywZzMJEGlPagOxnq6qr2WYZo0U8MUGWRGnq8ZA==";
      // this.taskid = this.decrypt(taskid);
      this.patid = this.decrypt(patid);
      this.taskid = taskid;
      this.patid = patid;
      this.$modal.msgSuccess("用户id为" + this.patid);
      this.$modal.msgSuccess("任务id为" + this.taskid);
      getExternalfollowup({ param1: this.taskid, param2: this.patid }).then(
        (res) => {
          if (res.code == 200) {
            this.questionList = res.rows;
          }
      console.log(this.taskid, "this.taskid");
      console.log(this.patid, "this.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) => {
        if (res.code == 200) {
          this.questionList = res.rows;
        }
      );
      });
    },
    // 加密函数
    encryptData(data, publicKey) {
      // 将公钥转换为CryptoJS格式
      let key = CryptoJS.enc.Utf8.parse(publicKey);
      // 使用公钥进行加密
      let encrypted = CryptoJS.AES.encrypt(data, key, {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7,
      });
      // 返回加密后的数据
      return encrypted.toString();
    encrypt(txt) {
      const encryptor = new JSEncrypt();
      encryptor.setPublicKey(this.publicKey); // 设置公钥
      return encryptor.encrypt(txt); // 对数据进行加密
    },
    // 解密函数
    decryptData(encryptedData, privateKey) {
      // 将私钥转换为CryptoJS格式
      let key = CryptoJS.enc.Utf8.parse(privateKey);
      // 使用私钥进行解密
      let decrypted = CryptoJS.AES.decrypt(encryptedData, key, {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7,
    decrypt(txt) {
      const encryptor = new JSEncrypt();
      encryptor.setPrivateKey(this.privateKey); // 设置私钥
      return encryptor.decrypt(txt); // 对数据进行解密
    },
    // 提交
    submitForm() {
      // 提交表单逻辑
      console.log(this.questionList);
      let form = {
        param1: this.encrypt(this.taskid),
        param2: this.encrypt(this.patid),
        ivrTaskcalldetailList: [],
      };
      this.questionList.forEach((item) => {
        let optionarr = [];
        item.ivrLibaScriptTargetoptionList.forEach((option) => {
          optionarr.push(option.targetvalue);
        });
        let ivrTaskcalldetail = {
          asrtext: item.asrtext,
          valueType: item.valueType,
          questiontext: item.questionText,
          targetoptions: optionarr.join(","),
        };
        form.ivrTaskcalldetailList.push(ivrTaskcalldetail);
      });
      console.log(form, "form");
      // 将解密后的数据转换为字符串并返回
      return decrypted.toString(CryptoJS.enc.Utf8);
      SetsaveQuestionAnswer(form).then((res) => {
        if (res.code == 200) {
          this.$modal.msgSuccess("提交成功");
        }
      });
      // 可以将数据提交到后端或者进行其他处理
    },
  },
};