WXL
2024-06-17 43988e7dae93378116a8c5f1fc76f5568d8fd4b2
测试完成
已添加1个文件
已修改13个文件
629 ■■■■■ 文件已修改
src/api/AiCentre/Qtemplate.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/AiCentre/questionnaire.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/smartor/svytitle.js 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/smartor/svytopic.js 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/smartor/svytopicoption.js 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/AskRegular/index.vue 394 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Regular/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/getters.js 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/questionbank/particulars/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/questionnaire/compilequer/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/propaganda/particty.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/general/particulars/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/templateku/configurat/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/repositoryai/verbaltrick/particulars/index.vue 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/AiCentre/Qtemplate.js
@@ -3,7 +3,7 @@
// æŸ¥è¯¢é—®å·æ¨¡ç‰ˆåˆ—表
export function getQtemplatelist(data) {
  return request({
    url: "/smartor/svytitle/selectSvyLibTitlelist",
    url: "/smartor/svyTemplate/selectSvyLibTemplatelist",
    method: "post",
    data: data,
  });
@@ -11,21 +11,21 @@
// é—®å·æ¨¡ç‰ˆè¯¦æƒ…
export function Qtemplateinfo(Id) {
  return request({
    url: "/smartor/svytitle/" + Id,
    url: "/smartor/svyTemplate/" + Id,
    method: "get",
  });
}
// åˆ é™¤é—®å·æ¨¡ç‰ˆ
export function delQtemplateinfo(Id) {
    return request({
      url: "/smartor/svytitle/remove/" + Id,
      url: "/smartor/svyTemplate/remove/" + Id,
      method: "get",
    });
  }
// æ–°å¢žæˆ–修改问卷模版详情
export function compileQtemplate(data) {
    return request({
      url: "/smartor/svytitle/saveOrUpdateTitle",
      url: "/smartor/svyTemplate/saveOrUpdateTitle",
      method: "post",
      data: data,
    });
@@ -35,7 +35,7 @@
  // æ–°å¢žé—®å·æ¨¡ç‰ˆåˆ†ç±»
  export function addQtemplateclassify(data) {
    return request({
      url: "/smartor/svyLibTitleCategory/addtree",
      url: "/smartor/svyLibTemplateCategory/addtree",
      method: "post",
      data: data,
    });
@@ -43,7 +43,7 @@
    // æ–°å¢žé—®å·æ¨¡ç‰ˆåˆ†ç±»
    export function editQtemplateclassify(data) {
      return request({
        url: "/smartor/svyLibTitleCategory/edit",
        url: "/smartor/svyLibTemplateCategory/edit",
        method: "post",
        data: data,
      });
@@ -51,14 +51,14 @@
  // åˆ é™¤é—®å·æ¨¡ç‰ˆåˆ†ç±»
export function delQtemplateclassify(Id) {
  return request({
    url: "/smartor/svyLibTitleCategory/remove/" + Id,
    url: "/smartor/svyLibTemplateCategory/remove/" + Id,
    method: "get",
  });
}
  // æŸ¥è¯¢é—®å·æ¨¡ç‰ˆåˆ†ç±»æ ‘
  export function getQtemplateclassify(data) {
    return request({
      url: "/smartor/svyLibTitleCategory/list",
      url: "/smartor/svyLibTemplateCategory/list",
      method: "post",
      data: data,
    });
src/api/AiCentre/questionnaire.js
@@ -3,7 +3,7 @@
// æŸ¥è¯¢é—®å·é—®é¢˜åˆ—表
export function getissuelist(data) {
  return request({
    url: "/smartor/svytopic/list",
    url: "/smartor/svyscript/list",
    method: "post",
    data: data,
  });
@@ -11,21 +11,21 @@
// é—®å·é—®é¢˜è¯¦æƒ…
export function issueinfo(Id) {
  return request({
    url: "/smartor/svytopic/getInfo/" + Id,
    url: "/smartor/svyscript/getInfo/" + Id,
    method: "get",
  });
}
// åˆ é™¤é—®å·é—®é¢˜
export function delissueinfo(Id) {
    return request({
      url: "/smartor/svytopic/remove/" + Id,
      url: "/smartor/svyscript/remove/" + Id,
      method: "get",
    });
  }
// æ–°å¢žæˆ–修改问卷问题详情
export function compileissue(data) {
    return request({
      url: "/smartor/svytopic/saveOrUpdateTopic",
      url: "/smartor/svyscript/saveOrUpdateTopic",
      method: "post",
      data: data,
    });
@@ -35,7 +35,7 @@
  // æ–°å¢žé—®å·é—®é¢˜åˆ†ç±»
  export function addissueclassify(data) {
    return request({
      url: "/smartor/svyLibTopicCategory/addtree",
      url: "/smartor/svyLibScriptCategory/addtree",
      method: "post",
      data: data,
    });
@@ -43,7 +43,7 @@
  // æ–°å¢žé—®å·é—®é¢˜åˆ†ç±»
  export function editissueclassify(data) {
    return request({
      url: "/smartor/svyLibTopicCategory/edit",
      url: "/smartor/svyLibScriptCategory/edit",
      method: "post",
      data: data,
    });
@@ -51,14 +51,14 @@
  // åˆ é™¤é—®å·é—®é¢˜åˆ†ç±»
export function delissueclassify(Id) {
  return request({
    url: "/smartor/svyLibTopicCategory/remove/" + Id,
    url: "/smartor/svyLibScriptCategory/remove/" + Id,
    method: "get",
  });
}
  // æŸ¥è¯¢é—®å·é—®é¢˜åˆ†ç±»æ ‘
  export function getissueclassify(data) {
    return request({
      url: "/smartor/svyLibTopicCategory/list",
      url: "/smartor/svyLibScriptCategory/list",
      method: "post",
      data: data,
    });
src/api/smartor/svytitle.js
@@ -1,44 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢é—®å·åˆ—表
export function listSvytitle(query) {
export function listsvyTemplate(query) {
  return request({
    url: '/smartor/svytitle/list',
    url: '/smartor/svyTemplate/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢é—®å·è¯¦ç»†
export function getSvytitle(svyid) {
export function getsvyTemplate(svyid) {
  return request({
    url: '/smartor/svytitle/' + svyid,
    url: '/smartor/svyTemplate/' + svyid,
    method: 'get'
  })
}
// æ–°å¢žé—®å·
export function addSvytitle(data) {
export function addsvyTemplate(data) {
  return request({
    url: '/smartor/svytitle',
    url: '/smartor/svyTemplate',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹é—®å·
export function updateSvytitle(data) {
export function updatesvyTemplate(data) {
  return request({
    url: '/smartor/svytitle/edit',
    url: '/smartor/svyTemplate/edit',
    method: 'post',
    data: data
  })
}
// åˆ é™¤é—®å·
export function delSvytitle(svyid) {
export function delsvyTemplate(svyid) {
  return request({
    url: '/smartor/svytitle/remove/' + svyid,
    url: '/smartor/svyTemplate/remove/' + svyid,
    method: 'get'
  })
}
src/api/smartor/svytopic.js
@@ -1,44 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢é—®å·é¢˜ç›®åˆ—表
export function listSvytopic(query) {
export function listsvyscript(query) {
  return request({
    url: '/smartor/svytopic/list',
    url: '/smartor/svyscript/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢é—®å·é¢˜ç›®è¯¦ç»†
export function getSvytopic(topicid) {
export function getsvyscript(topicid) {
  return request({
    url: '/smartor/svytopic/' + topicid,
    url: '/smartor/svyscript/' + topicid,
    method: 'get'
  })
}
// æ–°å¢žé—®å·é¢˜ç›®
export function addSvytopic(data) {
export function addsvyscript(data) {
  return request({
    url: '/smartor/svytopic',
    url: '/smartor/svyscript',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹é—®å·é¢˜ç›®
export function updateSvytopic(data) {
export function updatesvyscript(data) {
  return request({
    url: '/smartor/svytopic/edit',
    url: '/smartor/svyscript/edit',
    method: 'post',
    data: data
  })
}
// åˆ é™¤é—®å·é¢˜ç›®
export function delSvytopic(topicid) {
export function delsvyscript(topicid) {
  return request({
    url: '/smartor/svytopic/remove/' + topicid,
    url: '/smartor/svyscript/remove/' + topicid,
    method: 'get'
  })
}
src/api/smartor/svytopicoption.js
@@ -1,44 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢é—®å·é—®é¢˜é€‰é¡¹åˆ—表
export function listSvytopicoption(query) {
export function listsvyscriptoption(query) {
  return request({
    url: '/smartor/svytopicoption/list',
    url: '/smartor/svyscriptoption/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢é—®å·é—®é¢˜é€‰é¡¹è¯¦ç»†
export function getSvytopicoption(optionid) {
export function getsvyscriptoption(optionid) {
  return request({
    url: '/smartor/svytopicoption/' + optionid,
    url: '/smartor/svyscriptoption/' + optionid,
    method: 'get'
  })
}
// æ–°å¢žé—®å·é—®é¢˜é€‰é¡¹
export function addSvytopicoption(data) {
export function addsvyscriptoption(data) {
  return request({
    url: '/smartor/svytopicoption',
    url: '/smartor/svyscriptoption',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹é—®å·é—®é¢˜é€‰é¡¹
export function updateSvytopicoption(data) {
export function updatesvyscriptoption(data) {
  return request({
    url: '/smartor/svytopicoption/edit',
    url: '/smartor/svyscriptoption/edit',
    method: 'post',
    data: data
  })
}
// åˆ é™¤é—®å·é—®é¢˜é€‰é¡¹
export function delSvytopicoption(optionid) {
export function delsvyscriptoption(optionid) {
  return request({
    url: '/smartor/svytopicoption/remove/' + optionid,
    url: '/smartor/svyscriptoption/remove/' + optionid,
    method: 'get'
  })
}
src/components/AskRegular/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,394 @@
<template>
  <div>
    <div class="topicxq" v-for="item in TargetoptionList">
      <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="预警值">
            <el-radio-group v-model="radio">
              <el-radio :label="3">是</el-radio>
              <el-radio :label="6">否</el-radio>
            </el-radio-group>
          </el-form-item></el-col
        >
        <el-col :span="12" v-if="intent"
          ><el-form-item label="选项节点">
            <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" v-if="!intent">
        <el-col :span="20"
          ><el-form-item label="选项说明">
            <el-input
              type="text"
              placeholder="请输入"
              v-model="item.targetvalue2"
              show-word-limit
            >
            </el-input> </el-form-item
        ></el-col>
      </el-row>
      <el-row :gutter="10" v-if="intent">
        <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.nextQuestion"
              show-word-limit
            >
            </el-input> </el-form-item
        ></el-col>
      </el-row>
      <el-form-item label="关键字(含)" prop="desc">
        <div class="xinz-inf">
          <el-tag
            :key="crux"
            type="success"
            v-for="crux in item.dynamiccruxs"
            closable
            effect="dark"
            :disable-transitions="false"
            @close="handleClosecrux(crux, item, 1)"
          >
            {{ crux }}
          </el-tag>
          <el-select
            v-model="inputValue"
            v-if="item.inputVisible"
            @change="handleInputConfirm(item)"
            filterable
            remote
            allow-create
            reserve-keyword
            default-first-option
            :loading="loading"
            placeholder="请选择"
          >
            <el-option
              v-for="items in regular"
              :key="items.label"
              :label="items.label"
              :value="items.label"
            >
            </el-option>
          </el-select>
          <el-button
            v-else
            class="button-new-tag"
            size="small"
            @click="showInput(item)"
            >+ æ–°å¢ž</el-button
          >
        </div>
      </el-form-item>
      <el-form-item label="关键字(非)" prop="desc">
        <div class="xinz-inf">
          <el-tag
            :key="crux"
            type="warning"
            v-for="crux in item.nodynamiccruxs"
            closable
            effect="dark"
            :disable-transitions="false"
            @close="handleClosecrux(crux, item, 2)"
          >
            {{ crux }}
          </el-tag>
          <el-select
            v-model="inputValue"
            v-if="item.noinputVisible"
            @change="handleInputConfirm(item)"
            filterable
            remote
            allow-create
            reserve-keyword
            default-first-option
            :loading="loading"
            placeholder="请选择"
          >
            <el-option
              v-for="items in noregular"
              :key="items.value"
              :label="items.label"
              :value="items.label"
            >
            </el-option>
          </el-select>
          <el-button
            v-else
            class="button-new-tag"
            size="small"
            @click="showInputno(item)"
            >+ æ–°å¢ž</el-button
          >
        </div>
      </el-form-item>
      <el-row :gutter="10">
        <el-col :span="16" v-if="intent">
          <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="intent ? 8 : 22">
          <div style="text-align: right; padding-right: 10px">
            <el-button
              v-if="controlsc"
              @click="$emit('addoption', item)"
              type="success"
              icon="el-icon-circle-plus-outline"
              circle
            ></el-button>
            <el-button
              type="danger"
              icon="el-icon-delete"
              circle
              @click="$emit('deloption', item)"
            ></el-button>
            <el-button
              v-if="controlsc"
              @click="$emit('syioption', item)"
              type="primary"
              icon="el-icon-top"
              circle
            ></el-button>
            <el-button
              v-if="controlsc"
              @click="$emit('xiayioption', item)"
              type="primary"
              icon="el-icon-bottom"
              circle
            ></el-button>
          </div>
        </el-col>
      </el-row>
    </div>
  </div>
</template>
<script>
import store from "@/store";
export default {
  data() {
    return {
      zz1: "^(?!.不)(.(我|ä½ |他|可以|是|好|知道|没错)+.*)$",
      zz2: "^(?!.不)(?=.?(我|ä½ |他|可以|是|好|知道|没错)).*$",
      fileList: [
        {
          name: "food.jpeg",
          url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
        },
      ],
      whether: 1, //1为关键词,2为否定关键词
      inputValue: "",
      inputVisible: false,
      noinputVisible: false,
      loading: false,
      regular: [],
      noregular: [],
      nodynamiccruxs: ["别", "不"],
      dynamiccruxs: ["好"],
    };
  },
  props: {
    TargetoptionList: {
      type: Array,
      required: true,
      default: () => [],
    },
    controlsc: {
      type: Boolean,
      default: true,
    },
    intent: {
      type: Boolean,
      default: true,
    },
  },
  created() {
    this.regular = store.getters.regular;
    this.noregular = store.getters.noregular;
  },
  methods: {
    // ç”Ÿæˆæ­£åˆ™
    generateRegex(row) {
      let index = this.TargetoptionList.indexOf(row);
      console.log(index);
      let regex = "";
      let regexno = "";
      let hostregex = "";
      let hostregexno = "";
      for (
        let i = 0;
        i < this.TargetoptionList[index].dynamiccruxs.length;
        i++
      ) {
        regex += `${this.TargetoptionList[index].dynamiccruxs[i]}|`;
      }
      for (
        let i = 0;
        i < this.TargetoptionList[index].nodynamiccruxs.length;
        i++
      ) {
        regexno += `${this.TargetoptionList[index].nodynamiccruxs[i]}|`;
      }
      regex = regex.slice(0, -1);
      regexno = regexno.slice(0, -1);
      if (regexno) {
        hostregexno = "^(?!.*(?:" + `${regexno}` + ")).*$";
      } else {
        hostregexno = "";
      }
      hostregex = "(?=.*(?:" + `${regex}` + ")).*$";
      this.TargetoptionList[index].targetregex = hostregex;
      this.TargetoptionList[index].targetregex2 = hostregexno;
      console.log(hostregex, "确定字匹配");
      console.log(hostregexno, "否定字匹配");
      this.handleSelectionChange();
    },
    // æŽ§åˆ¶æ–‡ä»¶
    handleChange(file, fileList) {
      this.fileList = fileList.slice(-3);
    },
    // æ–‡ä»¶è¶…出个数限制时的钩子
    handleExceed(files, fileList) {
      this.$message.warning(
        `当前限制选择 1 ä¸ªæ–‡ä»¶ï¼Œæœ¬æ¬¡é€‰æ‹©äº† ${files.length} ä¸ªæ–‡ä»¶ï¼Œå…±é€‰æ‹©äº† ${
          files.length + fileList.length
        } ä¸ªæ–‡ä»¶`
      );
    },
    handleClosecrux(crux, item, whether) {
      if (whether == 1) {
        item.dynamiccruxs.splice(item.dynamiccruxs.indexOf(crux), 1);
        console.log(1);
        console.log(item.dynamiccruxs);
        console.log(item.nodynamiccruxs);
      } else {
        console.log(2);
        item.nodynamiccruxs.splice(item.nodynamiccruxs.indexOf(crux), 1);
      }
      this.generateRegex(item);
    },
    handleInputConfirm(row) {
      console.log(this.TargetoptionList, "TargetoptionList");
      let index = this.TargetoptionList.indexOf(row);
      console.log(1112);
      if (this.whether == 1 && this.inputValue) {
        if (
          this.TargetoptionList[index].dynamiccruxs.indexOf(this.inputValue) ==
          -1
        ) {
          this.TargetoptionList[index].dynamiccruxs.push(this.inputValue);
        } else {
          this.$message.error("关键字已存在");
        }
        // this.inputVisible = false;
        this.TargetoptionList[index].inputVisible = false;
      } else if (this.whether == 2 && this.inputValue) {
        console.log(this.inputValue);
        console.log(
          this.TargetoptionList[index].nodynamiccruxs.indexOf(this.inputValue)
        );
        if (
          this.TargetoptionList[index].nodynamiccruxs.indexOf(
            this.inputValue
          ) == -1
        ) {
          this.TargetoptionList[index].nodynamiccruxs.push(this.inputValue);
        } else {
          this.$message.error("关键字已存在");
        }
        // this.noinputVisible = false;
        this.TargetoptionList[index].noinputVisible = false;
      }
      this.generateRegex(row);
      this.inputValue = "";
    },
    showInput(row) {
      let index = this.TargetoptionList.indexOf(row);
      // this.TargetoptionList[index].inputVisible = true;
      this.$set(this.TargetoptionList[index], "inputVisible", true);
      this.whether = 1;
    },
    showInputno(row) {
      let index = this.TargetoptionList.indexOf(row);
      // this.TargetoptionList[index].noinputVisible = true;
      this.$set(this.TargetoptionList[index], "noinputVisible", true);
      this.whether = 2;
    },
    handleSelectionChange(selection) {
      console.log(this.TargetoptionList);
      this.$emit("handleSelectionChange", selection);
    },
  },
};
</script>
<style lang="scss" scoped>
.topicxq {
  background-color: #e2f5fc;
  border-radius: 4px;
  margin-top: 10px;
  padding: 10px;
}
.el-tag + .el-tag {
  margin-left: 10px;
}
.button-new-tag {
  margin-left: 10px;
  height: 32px;
  line-height: 30px;
  padding-top: 0;
  padding-bottom: 0;
}
.input-new-tag {
  width: 90px;
  margin-left: 10px;
  vertical-align: bottom;
}
</style>
src/components/Regular/index.vue
@@ -152,7 +152,7 @@
      </el-form-item>
      <el-row :gutter="10">
        <el-col :span="16">
        <el-col :span="16" v-if="intent">
          <el-form-item label="语音文件">
            <el-upload
              class="upload-demo"
@@ -167,7 +167,7 @@
            </el-upload>
          </el-form-item></el-col
        >
        <el-col :span="8">
        <el-col :span="intent ? 8 : 22">
          <div style="text-align: right; padding-right: 10px">
            <el-button
              v-if="controlsc"
src/store/getters.js
@@ -53,6 +53,49 @@
      },
    },
  ],
  // é€‚用方式
  Askmode: (state) => [
    {
      value: "1",
      label: "纸质",
      raw: {
        cssClass: "",
        listClass: "",
      },
    },
    {
      value: "2",
      label: "短信",
      raw: {
        cssClass: "",
        listClass: "",
      },
    },
    {
      value: "3",
      label: "微信",
      raw: {
        cssClass: "",
        listClass: "",
      },
    },
    {
      value: "4",
      label: "钉钉",
      raw: {
        cssClass: "",
        listClass: "",
      },
    },
    {
      value: "5",
      label: "人工电话",
      raw: {
        cssClass: "",
        listClass: "",
      },
    },
  ],
  // ä»»åŠ¡çŠ¶æ€
  taskstate: (state) => [
    {
@@ -136,6 +179,33 @@
      },
    },
  ],
   // å€¼ç±»åž‹ï¼ˆé—®å·ï¼‰
   askvaluetype: (state) => [
    {
      value: 1,
      label: "单选",
      raw: {
        cssClass: "",
        listClass: "",
      },
    },
    {
      value: 2,
      label: "多选",
      raw: {
        cssClass: "",
        listClass: "",
      },
    },
    {
      value: 3,
      label: "文本收集",
      raw: {
        cssClass: "",
        listClass: "",
      },
    },
  ],
    // å€¼ç±»åž‹(列表展示)
    valuetypelb: (state) => [
      {
src/views/knowledge/questionbank/particulars/index.vue
@@ -532,7 +532,7 @@
    this.mode = store.getters.mode;
    this.languagelist = store.getters.languagelist;
    this.usable = store.getters.usable;
    this.valuetype = store.getters.valuetype;
    this.valuetype = store.getters.askvaluetype;
    this.required = store.getters.required;
  },
src/views/knowledge/questionnaire/compilequer/index.vue
@@ -470,7 +470,9 @@
        >
        <el-button type="primary" @click="laststep()">上一步</el-button>
        <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button>
        <el-button @click="Departmenttreatment('ruleForm')">保存题目数据</el-button>
        <el-button @click="Departmenttreatment('ruleForm')"
          >保存题目数据</el-button
        >
      </div>
      <!-- é—®å·é¢„览 -->
      <div v-if="Editprogress == 3">
@@ -709,7 +711,7 @@
  created() {
    this.gettabList();
    this.getissueinfo();
    this.mode = store.getters.mode;
    this.mode = store.getters.Askmode;
    this.languagelist = store.getters.languagelist;
    this.usable = store.getters.usable;
    this.required = store.getters.required;
src/views/patient/propaganda/particty.vue
src/views/repositoryai/general/particulars/index.vue
@@ -51,6 +51,7 @@
          ></el-col>
        </el-row>
      </el-form>
      <div style="display: flex">
      <div class="elcardiv">
        <div class="leftvlue-jbxx">话术列表</div>
        <el-divider></el-divider>
@@ -115,6 +116,8 @@
            </template>
          </el-table-column>
        </el-table>
        </div>
        <div class="elcardiv">
        <el-form
          :model="ruleForm"
          :rules="rules"
@@ -122,9 +125,9 @@
          label-width="100px"
          class="demo-ruleForm"
        >
          <div style="margin: 15px; margin-top: 50px">
            <div class="leftvlue-jbxx">话术编辑</div>
            <el-divider></el-divider>
            <div style="margin: 15px; margin-top: 50px">
            <el-form-item label="话术文本" prop="name">
              <el-input
@@ -279,6 +282,7 @@
          </div>
        </el-form>
      </div>
      </div>
    </el-card>
  </div>
</template>
src/views/repositoryai/templateku/configurat/index.vue
@@ -715,7 +715,7 @@
            </div>
          </div>
          <!-- å¤šé€‰ -->
          <div
          <!-- <div
            class="topic-dev"
            v-for="(item, index) in valssu"
            :key="item.aaa"
@@ -734,7 +734,7 @@
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
          </div> -->
          <!-- å¡«ç©º
          <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
            <div class="dev-text">
src/views/repositoryai/verbaltrick/particulars/index.vue
@@ -154,6 +154,12 @@
              >
            </div>
          </el-form-item>
          <el-drawer
            title="变量编辑"
            :visible.sync="variabledeawer"
            direction="ttb"
            size="35%"
          >
          <el-form-item label="通知变量" prop="name">
            <div style="margin-bottom: 5px" v-for="item in variablelist">
              <el-row>
@@ -187,7 +193,7 @@
              </el-row>
            </div>
          </el-form-item>
          </el-drawer>
          <el-row>
            <el-col :span="6">
              <el-form-item label="仅限院区" prop="region">
@@ -250,9 +256,8 @@
          </el-row>
          <el-row>
            <el-col :span="24">
              <div
                style="display: flex; margin-left: 100px; margin-bottom: 10px"
              >
              <el-form-item label="问题变量" prop="questionText">
                <div style="display: flex; margin-bottom: 10px">
                <div
                  v-for="item in variablelist"
                  class="tsgname"
@@ -260,7 +265,11 @@
                >
                  {{ item.variatename }}
                </div>
                  <div class="tsgnamebj" @click="variabledeawer = true">
                    å˜é‡ç¼–辑
              </div>
                </div>
              </el-form-item>
            </el-col></el-row
          >
          <el-row>
@@ -404,12 +413,21 @@
          label-width="100px"
        >
          <el-row>
            <el-col :span="12">
            <el-col :span="8">
              <el-form-item label="指标名称" prop="deptId">
                <el-input
                  v-model="indexform.targetname"
                  placeholder="请输入指标名称"
                  maxlength="40"
                  maxlength="20"
                />
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="指标描述" prop="deptId">
                <el-input
                  v-model="indexform.targetname"
                  placeholder="请输入指标描述"
                  maxlength="60"
                />
              </el-form-item>
            </el-col>
@@ -418,7 +436,7 @@
          <el-row>
            <el-col :span="24">
              <el-form-item label="值类型">
                <el-radio-group v-model="indexform.valueType">
                <el-radio-group disabled v-model="indexform.valueType">
                  <el-radio :label="1">选项</el-radio>
                  <el-radio :label="2">文本</el-radio>
                  <el-radio :label="3">数值</el-radio>
@@ -434,6 +452,7 @@
                @deloption="deloption"
                @syioption="syioption"
                @xiayioption="xiayioption"
                :intent="false"
              />
            </el-card>
            <el-row :gutter="20">
@@ -558,6 +577,7 @@
        deptId: undefined,
        IDnumber: undefined,
      },
      variabledeawer: false,
    };
  },
@@ -680,7 +700,7 @@
            this.indexform.isAvailable = "0";
            this.indexform.language = "普通话";
            this.indexform.isenable = res.rows[0].isenable;
            this.$forceUpdate()
            this.$forceUpdate();
            res.rows[0].targetoptionList.forEach((item) => {
              item.isoperation = 1;
              this.indexform.ivrLibaScriptTargetoptionList.push(item);
@@ -1028,6 +1048,21 @@
.tsgname:hover {
  background: #3366f5;
}
.tsgnamebj {
  width: 90px;
  margin-left: 15px;
  text-align: center;
  cursor: pointer;
  height: 40px;
  line-height: 40px;
  background: #49dbb7;
  color: #ffff;
  font-size: 18px;
  border-radius: 5px;
}
.tsgnamebj:hover {
  background: #27c449;
}
::v-deep .addtopic-input {
  input {