WXL
2024-04-12 a46348ad86f5df632c58bed5866a70f798b75d5e
src/views/repositoryai/templateku/configurat/index.vue
@@ -86,9 +86,10 @@
            </div>
          </el-form-item>
          <el-row :gutter="20">
            <el-col :span="10">
            <el-col :span="12">
              <el-form-item label="版本号" prop="version">
                <el-input
                  style="width: 220px"
                  v-model="ruleForm.version"
                  placeholder="默认1.0.1"
                ></el-input> </el-form-item
@@ -113,7 +114,7 @@
          </el-row>
          <el-row :gutter="20">
            <el-col :span="10">
            <el-col :span="12">
              <el-form-item label="语言" prop="name">
                <el-select
                  v-model="ruleForm.language"
@@ -254,6 +255,7 @@
          </el-form-item>
          <el-form-item label="适用院区" prop="region">
            <el-select
              style="width: 500px"
              v-model="ruleForm.campus"
              size="medium"
              multiple
@@ -272,6 +274,7 @@
          </el-form-item>
          <el-form-item label="适用科室" prop="region">
            <el-cascader
              style="width: 500px"
              v-model="tempDetpRelevanceslist"
              :options="deptList"
              :props="props"
@@ -296,63 +299,46 @@
              <el-option
                class="ruleFormaa"
                v-for="item in generallist"
                :key="item.value"
                :label="item.label"
                :value="item.value"
                :key="item.id"
                :label="item.extName"
                :value="item.id"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-row :gutter="20">
            <el-col :span="8">
              <el-form-item label="随访前处理(是否需要)" prop="name">
                <el-select
                  v-model="ruleForm.prefollowup"
                  size="medium"
                  filterable
                  placeholder="请选择"
                >
                  <el-option
                    class="ruleFormaa"
                    v-for="item in prefollowuplist"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select> </el-form-item
              <el-form-item label="随访前处理" prop="name">
                <el-input
                  v-model="ruleForm.revisitBefore"
                ></el-input></el-form-item
            ></el-col>
            <el-col :span="9">
              <el-form-item label="随访后处理(是否需要)" prop="region">
                <el-select
                  v-model="ruleForm.postfollowup"
                  size="medium"
                  filterable
                  placeholder="请选择分类"
                >
                  <el-option
                    class="ruleFormaa"
                    v-for="item in postfollowuplist"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select> </el-form-item
              <el-form-item label="随访后处理" prop="region">
                <el-input
                  v-model="ruleForm.revisitAfter"
                ></el-input> </el-form-item
            ></el-col>
          </el-row>
          <el-row :gutter="20">
            <el-col :span="10">
            <el-col :span="8">
              <el-form-item label="静默时间(秒)" prop="name">
                <div style="width: 40%">
                  <el-input
                    v-model="ruleForm.silencetime"
                  ></el-input></div></el-form-item
            ></el-col>
            <el-col :span="10">
            <el-col :span="8">
              <el-form-item label="静默次数" prop="name">
                <div style="width: 40%">
                  <el-input
                    v-model="ruleForm.noVoiceNum"
                  ></el-input></div></el-form-item
            ></el-col>
            <el-col :span="8">
              <el-form-item label="无匹配重复(次)" prop="region">
                <div style="width: 40%">
                  <el-input v-model="ruleForm.name"></el-input>
                  <el-input v-model="ruleForm.mateNum"></el-input>
                </div> </el-form-item
            ></el-col>
          </el-row>
@@ -390,8 +376,8 @@
                <el-table-column
                  label="编号"
                  align="center"
                  key="guid"
                  prop="guid"
                  key="targetid"
                  prop="targetid"
                />
                <el-table-column
                  label="标题"
@@ -466,6 +452,13 @@
                    :disabled="true"
                  ></el-input>
                </el-form-item>
                <el-form-item label="问题节点">
                  <el-input
                    v-model="topicobj.targetid"
                    placeholder="请从左侧列表选择"
                    :disabled="true"
                  ></el-input>
                </el-form-item>
                <el-row :gutter="10">
                  <el-col :span="12"
                    ><el-form-item label="是否必填">
@@ -509,90 +502,7 @@
                    >
                  </div>
                </div>
                <!-- <div
                  class="topicxq"
                  v-for="item in topicobj.ivrLibaScriptTargetoptionList"
                >
                  <el-row :gutter="10">
                    <el-col :span="12"
                      ><el-form-item label="选项名">
                        <el-input
                          type="text"
                          placeholder="请输入"
                          v-model="item.targetvalue"
                          show-word-limit
                        >
                        </el-input> </el-form-item
                    ></el-col>
                    <el-col :span="12"
                      ><el-form-item label="节点ID">
                        <el-input
                          type="text"
                          placeholder="请输入节点"
                          v-model="item.targetid"
                          show-word-limit
                        >
                        </el-input> </el-form-item
                    ></el-col>
                  </el-row>
                  <el-row :gutter="10">
                    <el-col :span="12"
                      ><el-form-item label="处理">
                        <el-input
                          type="text"
                          placeholder="(默认)无声"
                          v-model="item.text"
                          maxlength="10"
                          show-word-limit
                        >
                        </el-input> </el-form-item
                    ></el-col>
                    <el-col :span="12"
                      ><el-form-item label="选中跳转(缺)">
                        <el-input
                          type="text"
                          placeholder="请输入题目节点"
                          v-model="item.jump"
                          show-word-limit
                        >
                        </el-input> </el-form-item
                    ></el-col>
                  </el-row>
                  <el-form-item label="匹配正则">
                    <el-input
                      style="width: 24vw"
                      type="textarea"
                      placeholder="请输入题号"
                      v-model="item.targetregex"
                      show-word-limit
                    >
                    </el-input>
                  </el-form-item>
                  <el-row :gutter="10">
                    <el-col :span="16">
                      <el-form-item label="语音文件">
                        <el-upload
                          class="upload-demo"
                          style="display: flex"
                          action="https://jsonplaceholder.typicode.com/posts/"
                          :on-change="handleChange"
                          :file-list="fileList"
                          :limit="1"
                          :on-exceed="handleExceed"
                        >
                          <el-button size="small" type="primary"
                            >点击上传</el-button
                          >
                        </el-upload>
                      </el-form-item></el-col
                    >
                    <el-col :span="8">
                      <div style="text-align: right; padding-right: 10px">
                        <el-button type="danger" @click="" round>删除</el-button>
                      </div>
                    </el-col>
                  </el-row>
                </div> -->
                <Regular
                  :TargetoptionList="topicobj.ivrLibaScriptTargetoptionList"
                  @deloption="deloption"
@@ -756,13 +666,17 @@
      </div>
      <!-- 随访模版预览 -->
      <div v-if="Editprogress == 3">
        <div class="leftvlue-jbxx">随访模版预览</div>
        <div class="leftvlue-jbxx">随访模版问题预览</div>
        <el-divider></el-divider>
        <div class="preview-left">
          <!-- 单选 -->
          <div class="topic-dev" v-for="(item,index) in valssu" :key="item.aaa">
          <div
            class="topic-dev"
            v-for="(item, index) in valssu"
            :key="item.aaa"
          >
            <div class="dev-text">
              {{ index+1 }}、[单选]<span>{{ item.questionText }}</span>
              {{ index + 1 }}、[单选]<span>{{ item.questionText }}</span>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="radio">
@@ -776,9 +690,13 @@
            </div>
          </div>
          <!-- 多选 -->
          <div class="topic-dev" v-for="(item,index) in valssu" :key="item.aaa">
          <div
            class="topic-dev"
            v-for="(item, index) in valssu"
            :key="item.aaa"
          >
            <div class="dev-text">
              {{ index+1 }}、[多选]<span>{{ item.questionText }}</span>
              {{ index + 1 }}、[多选]<span>{{ item.questionText }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="radios">
@@ -803,9 +721,9 @@
            </div>
          </div> -->
        </div>
        <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button>
        <el-button type="warning">导出为pdf</el-button>
        <el-button type="primary" plain @click="laststep()">上一步</el-button>
        <el-button type="warning" @click="measurement()">前往测试</el-button>
        <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button>
      </div>
    </div>
    <!-- 添加题目弹窗 -->
@@ -903,6 +821,7 @@
  getillnesslist,
  illnesslistget,
  getillness,
  getgenerallist,
} from "@/api/AiCentre/index";
export default {
@@ -988,7 +907,7 @@
          sdadd: ["sss", "ssccss", "ssaas", "ss"],
        },
      ],
      radio:'',
      radio: "",
      addvalue: "添加题目",
      // 题目表格数据
      userList: [
@@ -1039,6 +958,7 @@
  },
  methods: {
    //公共方法--------------------
    getIndexInArray(arr, obj) {
      return arr.indexOf(obj);
    },
@@ -1051,11 +971,17 @@
      getvFollowup({ id: this.id }).then((res) => {
        this.ruleForm = res.data;
        this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
        this.ruleForm.suitway = this.ruleForm.suitway.split(",");
        this.ruleForm.campus = this.ruleForm.campus.split(",");
        this.ruleForm.submoduleID = this.ruleForm.submoduleID.split(",");
        this.ruleForm.submoduleID = this.ruleForm.submoduleID.map((res) => {
          return Number(res);
        });
        console.log(this.ruleForm.submoduleID, "this.ruleForm.submoduleID取");
        this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList;
        this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map(
          this.processElement
        );
@@ -1080,8 +1006,15 @@
      getFollowupclassify({}).then((res) => {
        this.indexAssortlist = res.rows;
      });
      getgenerallist({
        pageNum: 1,
        pageSize: 100,
      }).then((res) => {
        this.generallist = res.rows;
      });
      // 疾病列
    },
    //
    submitForm(formName) {
      if (this.ruleForm.id) {
        this.ruleForm.isoperation = 2;
@@ -1094,6 +1027,19 @@
      this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(",");
      //   提交
      this.ruleForm.ivrLibaTemplateScriptVOList.forEach((res) => {
        if (!res.isoperation) {
          res.isoperation = 2;
        }
        res.ivrLibaScriptTargetoptionList =
          res.ivrLibaScriptTargetoptionList.map((item) => {
            if (!item.isoperation) {
              item.isoperation = 2;
              item.templateID = this.ruleForm.id;
            }
            return item;
          });
      });
      this.illnesslist.forEach((item, index) => {
        if (!item.id) {
@@ -1251,7 +1197,7 @@
      this.getaddtopiclist();
    },
    getaddtopiclist() {
      console.log(11);
      console.log(12);
      this.drawer = true;
      getverbaltricklist(this.queryParams).then((res) => {
        this.loading = false;
@@ -1270,6 +1216,7 @@
          item.isoperation = 1;
        });
        this.ruleForm.ivrLibaTemplateScriptVOList.push(res.data);
        this.sortFn();
      });
    },
    handleDelete(row) {
@@ -1289,11 +1236,12 @@
        this.topicobj = row;
      } else {
        getverbaltrick({ id: row.id }).then((res) => {
          if (res.code==200) {
          if (res.data) {
            this.topicobj = res.data;
            console.log(res.data, "topicobj");
          }else{
            console.log('没找到');
          } else {
            this.topicobj = row;
            console.log("没找到选项,请查看问题库是否正确配置");
          }
        });
      }
@@ -1322,11 +1270,19 @@
      this.ruleForm.ivrLibaTemplateScriptVOList.splice(index + 1, 0, item); // 将item插入到索引位置的前一位
      this.sortFn();
    },
    // 问题排序
    sortFn() {
      this.ruleForm.ivrLibaTemplateScriptVOList =
        this.ruleForm.ivrLibaTemplateScriptVOList.map((item, index) => {
          return Object.assign({}, item, { guid: (index + 1).toString() });
          return Object.assign({}, item, { targetid: (index + 1).toString() });
        });
      this.ruleForm.ivrLibaTemplateScriptVOList.forEach((question, index) => {
        question.ivrLibaScriptTargetoptionList =
          question.ivrLibaScriptTargetoptionList.map((option) => {
            option.nextQuestion = Number(question.targetid) + 1;
            return option;
          });
      });
      console.log(this.ruleForm.ivrLibaTemplateScriptVOList);
    },
    // -----------------------话术选项
@@ -1387,9 +1343,21 @@
    // 预览---------------
    preview() {
      console.log(this.ruleForm);
      this.valssu = this.ruleForm.ivrLibaTemplateScriptVOList
      this.valssu = this.ruleForm.ivrLibaTemplateScriptVOList;
      this.Editprogress = 3;
    },
    // 前往测试
    measurement() {
      this.$modal
        .confirm("即将前往模版测试页面,请确认模版数据已保存。")
        .then((res) => {
          this.$router.push({
            path: "/knowledge/templateku/configurat/measurement",
            query: { id: this.id, name: this.ruleForm.templateName },
          });
        })
        .catch(() => {});
    },
  },
};
</script>