WXL
2024-10-30 a7c11f44644124cf16014f972363b6a3ba9ca29a
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>
@@ -96,13 +105,14 @@
    return {
      answer: "", //回答
      id: null,
      TemplateName: "随访模版名称", //模版名
      TemplateName: "随访模板名称", //模板名
      radio: "1",
      userid: "",
      input: "还不错",
      drawer: false,
      radio: "2",
      code: "",
      timeout: "5",
      Answerline: [],
      questionList: [],
    };
@@ -112,12 +122,33 @@
    this.TemplateName = this.$route.query.name;
    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: {
    // 建立连接
    requstWs(message, next, file) {
      console.log("连接");
      this.id = this.$route.query.id;
      this.timeout = this.$route.query.timeout;
      // 防止用户多次连续点击发起请求,所以要先关闭上次的ws请求。
      closeWebsocket();
      console.log(this.id);
@@ -129,7 +160,7 @@
      };
      // 发起ws请求
      sendWebsocket(
        "ws://localhost:8089/chat?userId=1",
        "ws://192.168.2.10:8095/chat?userId=1",
        obj,
        this.wsMessage,
        this.wsError
@@ -138,19 +169,41 @@
    // 接收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,
        });
      }
      this.Answerline.push({
        value: dataJson.nowQuestion.questionText,
        isEat: 1,
      });
      timerId = setTimeout(() => {
        if (!answer) {
          this.sendFn(); // 后调用
        }
    },this.timeout*1000);
      // 优先加入通用库匹配文本
      if (dataJson.nowQuestion.submoduleText) {
        this.Answerline.push({
          value: dataJson.nowQuestion.submoduleText,
          isEat: 1,
        });
      }
      // 是否结束
      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,
        });
      }
      this.questionList = dataJson.questionList;
      this.questionList = this.questionList.map((item) => {
        item.ivrLibaScriptTargetoptionList.forEach((row) => {
@@ -160,6 +213,8 @@
        });
        return item;
      });
      console.log(this.questionList);
      // IMUI.appendMessage(data);
    },
@@ -169,6 +224,8 @@
    },
    sendFn() {
      console.log('发送');
      // 消息发送
      const obj = {
        type: "text",
@@ -179,7 +236,7 @@
      console.log(obj, "入参");
      // 发起ws请求
      sendWebsocket(
        "ws://localhost:8089/chat?userId=1",
        "ws://192.168.2.10:8095/chat?userId=1",
        obj,
        this.wsMessage,
        this.wsError
@@ -219,7 +276,7 @@
  }
}
.borderdiv {
  min-height: 60vh;
  height: 100vh;
  font-size: 20px;
  padding: 30px;
  max-height: 700px;