WXL
2024-11-01 0c26cb58f143c56f3753f4745519502222cde4ff
src/views/repositoryai/templateku/configurat/measurement.vue
@@ -66,9 +66,10 @@
            :key="item.aaa"
          >
            <div class="dev-text">
              {{ index + 1 }}、<span>{{ item.questionText }}</span>
              {{ index + 1 }}、<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
            <div class="dev-xx" v-if="item.valueType == 1">
              <el-radio-group v-model="item.radio">
                <el-radio
                  v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
@@ -77,6 +78,14 @@
                  >{{ items.targetvalue }}</el-radio
                >
              </el-radio-group>
            </div>
            <div v-else>
              <el-input
                type="textarea"
                placeholder="未获取到信息"
                v-model.sync="item.questionResult"
                :rows="2"
              />
            </div>
          </div>
        </div>
@@ -91,18 +100,20 @@
  websocketSend,
  closeWebsocket,
} from "@/websocket/websocket.js";
import store from "@/store";
export default {
  data() {
    return {
      answer: "", //回答
      id: null,
      TemplateName: "随访模版名称", //模版名
      TemplateName: "随访模板名称", //模板名
      radio: "1",
      userid: "",
      input: "还不错",
      drawer: false,
      radio: "2",
      code: "",
      timeout: "5",
      Answerline: [],
      questionList: [],
    };
@@ -110,7 +121,30 @@
  created() {
    this.TemplateName = this.$route.query.name;
    this.userid = store.getters.Id;
    console.log(store.getters.Id,'11');
    this.requstWs(); //进入页面创建连接
  },
  mounted() {
    // 获取class为borderdiv的元素
    const borderdiv = document.querySelector(".borderdiv");
    // 创建一个MutationObserver实例,用于监听元素的变化
    const observer = new MutationObserver(() => {
      // 当元素高度变化时,将滚动条滚动到最下方
      borderdiv.scrollTop = borderdiv.scrollHeight;
    });
    // 配置MutationObserver实例的观察目标和观察选项
    observer.observe(borderdiv, {
      attributes: true,
      childList: true,
      subtree: true,
    });
    // 当不再需要监听时,可以使用disconnect方法停止观察
    // observer.disconnect();
  },
  methods: {
@@ -118,18 +152,19 @@
    requstWs(message, next, file) {
      console.log("连接");
      this.id = this.$route.query.id;
      this.timeout = this.$route.query.timeout;
      // 防止用户多次连续点击发起请求,所以要先关闭上次的ws请求。
      closeWebsocket();
      console.log(this.id);
      const obj = {
        type: "text",
        userId: "1",
        userId: this.userid,
        templateId: this.id,
        content: null,
      };
      // 发起ws请求
      sendWebsocket(
        "ws://192.168.2.8:8089/chat?userId=1",
        "ws://192.168.2.13:8095/chat?userId="+this.userid,
        obj,
        this.wsMessage,
        this.wsError
@@ -138,16 +173,26 @@
    // 接收ws返回的数据
    wsMessage(data) {
      let dataJson = data;
      let timerId = null;
      dataJson = JSON.parse(dataJson);
      dataJson = JSON.parse(dataJson);
      console.log(dataJson, "数据");
      // 首次接收数据
      if (!this.Answerline[0]) {
        this.Answerline.push({
          value: dataJson.kcb,
          isEat: 1,
        });
      // if (!this.Answerline[0]) {
      //   this.Answerline.push({
      //     value: dataJson.kcb,
      //     isEat: 1,
      //   });
      // }
      timerId = setTimeout(() => {
        if (!this.answer) {
          this.sendFn(); // 后调用
        }
      }, this.timeout * 1000);
      if (condition) {
      }
      // clearTimeout(timerId)
      // 优先加入通用库匹配文本
      if (dataJson.nowQuestion.submoduleText) {
        this.Answerline.push({
@@ -156,14 +201,14 @@
        });
      }
      // 是否结束
      if (!dataJson.jsy) {
        this.Answerline.push({
          value: dataJson.nowQuestion.questionText,
          isEat: 1,
        });
      } else {
      if (dataJson.jsy) {
        this.Answerline.push({
          value: dataJson.jsy,
          isEat: 1,
        });
      } else if (dataJson.nowQuestion.scriptContent) {
        this.Answerline.push({
          value: dataJson.nowQuestion.scriptContent,
          isEat: 1,
        });
      }
@@ -176,6 +221,7 @@
        });
        return item;
      });
      console.log(this.questionList);
      // IMUI.appendMessage(data);
    },
@@ -185,17 +231,19 @@
    },
    sendFn() {
      console.log("发送");
      // 消息发送
      const obj = {
        type: "text",
        userId: "1",
        userId: this.userid,
        templateId: "",
        questionMessage: { content: this.answer },
      };
      console.log(obj, "入参");
      // 发起ws请求
      sendWebsocket(
        "ws://192.168.2.8:8089/chat?userId=1",
        "ws://192.168.2.13:8095/chat?userId="+this.userid,
        obj,
        this.wsMessage,
        this.wsError
@@ -235,20 +283,21 @@
  }
}
.borderdiv {
  min-height: 60vh;
  height: 100vh;
  font-size: 20px;
  padding: 30px;
  max-height: 700px;
  overflow: auto;
  .leftside {
    margin-bottom: 30px;
    max-width: 566px;
    margin-left: 20px;
    padding: 10px;
    color: #fff;
    background: rgb(110, 196, 247);
    border-radius: 10px;
    span {
      width: 400px;
      margin-left: 20px;
      padding: 10px;
      color: #fff;
      background: rgb(110, 196, 247);
      border-radius: 10px;
      word-wrap: break-word;
    }
  }
  .offside {