WXL
2024-06-19 46c02089d1efddc8f2cd5443028a9cdf3b2d4c0f
测试完成
已修改4个文件
201 ■■■■■ 文件已修改
src/api/AiCentre/questionnaire.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/getters.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/questionbank/index.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/questionbank/particulars/index.vue 175 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/AiCentre/questionnaire.js
@@ -25,7 +25,7 @@
// 新增或修改问卷问题详情
export function compileissue(data) {
    return request({
      url: "/smartor/svyscript/saveOrUpdateTopic",
      url: "/smartor/svyscript/saveOrUpdateScript",
      method: "post",
      data: data,
    });
src/store/getters.js
@@ -182,7 +182,7 @@
   // 值类型(问卷)
   askvaluetype: (state) => [
    {
      value: 1,
      value: '1',
      label: "单选",
      raw: {
        cssClass: "",
@@ -190,7 +190,7 @@
      },
    },
    {
      value: 2,
      value: '2',
      label: "多选",
      raw: {
        cssClass: "",
@@ -198,7 +198,7 @@
      },
    },
    {
      value: 3,
      value: '3',
      label: "文本收集",
      raw: {
        cssClass: "",
src/views/knowledge/questionbank/index.vue
@@ -173,23 +173,23 @@
                label="序号"
                fixed
                align="center"
                key="topicid"
                prop="topicid"
                key="id"
                prop="id"
              />
              <el-table-column
                label="题目标题"
                fixed
                align="center"
                key="topic"
                prop="topic"
                key="script"
                prop="script"
                width="200"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="题目内容"
                align="center"
                key="topicContent"
                prop="topicContent"
                key="scriptContent"
                prop="scriptContent"
                width="200"
                :show-overflow-tooltip="true"
              />
@@ -392,13 +392,13 @@
    <el-dialog title="题目预览" :visible.sync="topicVisible" width="50%">
      <div class="preview-left">
        <div class="dev-text">
          <span>{{ topicform.topicContent }}</span>
          <span>{{ topicform.scriptContent }}</span>
        </div>
        <div class="dev-xx" v-if="topicform.valueType == 1">
          <el-radio-group v-model="topicform.asrtext">
            <el-radio
              v-for="(topicforms, index) in topicform.svyLibTopicoptions"
              v-for="(topicforms, index) in topicform.svyLibScriptOptions"
              :key="topicforms.optioncontent"
              :label="topicforms.optioncontent"
              >{{ topicforms.optioncontent }}</el-radio
@@ -543,7 +543,7 @@
    compileUpdate(row) {
      this.$router.push({
        path: "/knowledge/questionbank/particulars/",
        query: { id: row.topicid },
        query: { id: row.id },
      });
    },
    // 疾病-----------------------
src/views/knowledge/questionbank/particulars/index.vue
@@ -31,7 +31,7 @@
                      :label="group.name"
                    >
                      <el-option
                        v-for="item in group.svyLibTopicCategoryList"
                        v-for="item in group.svyLibScriptCategoryList"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id"
@@ -44,7 +44,7 @@
              <el-col :span="10">
                <el-form-item label="评价类型">
                  <el-select
                    v-model="topicobj.evaluateid"
                    v-model="topicobj.scoretype"
                    placeholder="请选择分类"
                  >
                    <el-option
@@ -60,14 +60,14 @@
            </el-row>
            <el-row :gutter="10">
              <el-col :span="6"
              <el-col :span="8"
                ><el-form-item label="题目标题">
                  <el-input
                    v-model="topicobj.topic"
                    v-model="topicobj.script"
                    placeholder="请输入标题"
                  ></el-input> </el-form-item
              ></el-col>
              <el-col :span="6"
              <el-col :span="8"
                ><el-form-item label="是否可用">
                  <el-select
                    v-model="topicobj.isavailable"
@@ -105,7 +105,7 @@
              ></el-col>
            </el-row>
            <el-row :gutter="10">
              <el-col :span="6"
              <el-col :span="8"
                ><el-form-item label="是否必填">
                  <el-select
                    v-model="topicobj.ismandatory"
@@ -123,10 +123,10 @@
                    </el-option>
                  </el-select> </el-form-item
              ></el-col>
              <el-col :span="6"
              <el-col :span="8"
                ><el-form-item label="题目类型">
                  <el-select
                    v-model="topicobj.valueType"
                    v-model="topicobj.scripttype"
                    size="medium"
                    filterable
                    placeholder="请选择分类"
@@ -144,9 +144,10 @@
              <el-col :span="8"
                ><el-form-item label="适用方式">
                  <el-select
                    v-model="topicobj.suitway"
                    v-model="suitwaylist"
                    size="medium"
                    filterable
                    multiple
                    placeholder="请选择分类"
                  >
                    <el-option
@@ -163,9 +164,9 @@
              <el-input
                style="width: 40vw"
                type="textarea"
                id="topicContent"
                v-model="topicobj.topicContent"
                @focus="handleInput('topicContent')"
                id="scriptContent"
                v-model="topicobj.scriptContent"
                @focus="handleInput('scriptContent')"
                placeholder="请输入标题"
              ></el-input>
            </el-form-item>
@@ -315,7 +316,7 @@
            </div>
            <div
              class="topicxq"
              v-for="item in topicobj.svyLibTopicoptions"
              v-for="item in topicobj.svyLibScriptOptions"
              v-if="item.isoperation != 3"
            >
              <el-row :gutter="10">
@@ -329,16 +330,37 @@
                    >
                    </el-input> </el-form-item
                ></el-col>
                <el-col :span="11"
                  ><el-form-item label="分值">
                <el-col :span="11">
                  <el-form-item v-if="topicobj.scoretype == 1" label="分值">
                    <el-input
                      type="text"
                      placeholder="请输入"
                      placeholder="请输入选项分值"
                      v-model="item.score"
                      show-word-limit
                    >
                    </el-input> </el-form-item
                ></el-col>
                    </el-input>
                  </el-form-item>
                  <el-form-item
                    v-else-if="topicobj.scoretype == 2"
                    label="ABC等级"
                  >
                    <el-radio-group v-model="item.score">
                      <el-radio label="A">A</el-radio>
                      <el-radio label="B">B</el-radio>
                      <el-radio label="C">C</el-radio>
                    </el-radio-group>
                  </el-form-item>
                  <el-form-item
                    v-else-if="topicobj.scoretype == 3"
                    label="优良等级"
                  >
                    <el-radio-group v-model="item.score">
                      <el-radio label="优">优</el-radio>
                      <el-radio label="良">良</el-radio>
                      <el-radio label="差">差</el-radio>
                    </el-radio-group>
                  </el-form-item>
                </el-col>
                <el-col :span="2">
                  <el-button
                    type="danger"
@@ -370,7 +392,7 @@
      title="添加选项"
      :visible.sync="drawer"
      custom-class="demo-drawer"
      width="66%"
      size="50%"
    >
      <div class="preview-left">
        <el-form
@@ -471,7 +493,7 @@
  data() {
    return {
      topicobj: {
        svyLibTopicoptions: [],
        svyLibScriptOptions: [],
      },
      inputVisible: false,
      inputValue: "",
@@ -480,6 +502,7 @@
      drawer: false,
      loading: false,
      id: [],
      suitwaylist: [],
      targetList: [],
      dynamicTags: [],
      optionsclass: [],
@@ -514,9 +537,9 @@
      illnesslist: [],
      classifylist: [],
      appraiselist: [
        { label: "分数", value: 1 },
        { label: "ABC等级", value: 2 },
        { label: "优良等级", value: 3 },
        { label: "分数", value: "1" },
        { label: "ABC等级", value: "2" },
        { label: "优良等级", value: "3" },
      ],
      optionstag: [],
      valuetype: [],
@@ -528,6 +551,7 @@
  created() {
    this.gettabList();
    this.getissueinfo();
    this.test();
    this.gettargetInfo();
    this.mode = store.getters.mode;
    this.languagelist = store.getters.languagelist;
@@ -563,13 +587,15 @@
      // 分类
      getissueclassify({}).then((res) => {
        this.classifylist = res.rows;
        console.log(this.classifylist, "分类");
      });
      if (!this.id) {
        return;
      }
      getissuelist({ topicid: this.id }).then((res) => {
      getissuelist({ id: this.id }).then((res) => {
        this.topicobj = res.rows[0];
        this.dynamicTags = this.topicobj.tag.split(",");
        this.suitwaylist = this.topicobj.suitway.split(",");
        this.variablelist = JSON.parse(this.topicobj.otherdata)
          ? JSON.parse(this.topicobj.otherdata)
          : this.variablelist;
@@ -592,7 +618,8 @@
    },
    // 新增或修改详情
    compileissue() {
      this.topicobj.svyLibTopicoptions = this.topicobj.svyLibTopicoptions.map(
      console.log(11223);
      this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map(
        (item) => {
          if (item.isoperation != 1 && item.isoperation != 3) {
            item.isoperation = 2;
@@ -602,6 +629,7 @@
      );
      this.topicobj.otherdata = JSON.stringify(this.variablelist);
      this.topicobj.tag = this.dynamicTags.join(",");
      this.topicobj.suitway = this.suitwaylist.join(",");
      if (this.id) {
        this.topicobj.isoperation = 2;
        compileissue(this.topicobj).then((res) => {
@@ -646,16 +674,20 @@
    },
    // 删除选项
    deletexuanx(row) {
      const index = this.getIndexInArray(this.topicobj.svyLibTopicoptions, row);
      if (this.topicobj.svyLibTopicoptions[index].topicid) {
        this.topicobj.svyLibTopicoptions[index].isoperation = 3;
      const index = this.getIndexInArray(
        this.topicobj.svyLibScriptOptions,
        row
      );
      if (this.topicobj.svyLibScriptOptions[index].id) {
        this.topicobj.svyLibScriptOptions[index].isoperation = 3;
      } else {
        this.topicobj.svyLibTopicoptions.splice(index, 1);
        this.topicobj.svyLibScriptOptions.splice(index, 1);
      }
    },
    // 新增选项
    addoption() {
      this.topicobj.svyLibTopicoptions.push({
      console.log(this.topicobj, "obj");
      this.topicobj.svyLibScriptOptions.push({
        score: "",
        isoperation: 1,
      });
@@ -671,13 +703,13 @@
          console.log(this.topicobj);
          this.topicobj.topic = row.targetname;
          this.topicobj.valueType = row.valueType;
          this.topicobj.topicContent = row.targetdesc;
          this.topicobj.scriptContent = row.targetdesc;
          this.topicobj.isavailable = "0";
          this.topicobj.language = "普通话";
          this.topicobj.svyLibTopicoptions = [];
          this.topicobj.svyLibScriptOptions = [];
          const labellist = row.targetoptionList;
          labellist.forEach((item) => {
            this.topicobj.svyLibTopicoptions.push({
            this.topicobj.svyLibScriptOptions.push({
              optioncontent: item.targetvalue,
              isoperation: 1,
            });
@@ -787,27 +819,27 @@
      this.inputVisibleillness = false;
      this.inputValueillness = "";
    },
    // 保存
    confirmillness() {
      this.illnesslist.forEach((item, index) => {
        if (!item.id) {
          addtargetillness(item).then((res) => {});
        }
      });
      if (this.illnesslistapi.length) {
        deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
      }
      this.illnessVisible = false;
      this.$modal.msgSuccess("编辑成功");
    },
    // // 保存
    // confirmillness() {
    //   this.illnesslist.forEach((item, index) => {
    //     if (!item.id) {
    //       addtargetillness(item).then((res) => {});
    //     }
    //   });
    //   if (this.illnesslistapi.length) {
    //     deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
    //   }
    //   this.illnessVisible = false;
    //   this.$modal.msgSuccess("编辑成功");
    // },
    resetQuery() {},
    // 便捷标签
    tsgnameto(row) {
      let inputValueArr = "";
      let el = document.querySelector("#" + this.currentInputId);
      //el.selectionStart; 这就是当前光标所在的位置(字符串中字符的index)
      if (this.currentInputId == "topicContent") {
        inputValueArr = this.topicobj.topicContent.split("");
      if (this.currentInputId == "scriptContent") {
        inputValueArr = this.topicobj.scriptContent.split("");
        console.log(123);
      } else if (this.currentInputId == "nomatchtext") {
        inputValueArr = this.topicobj.nomatchtext.split("");
@@ -829,8 +861,8 @@
      // 把数组重新转换为字符串并赋值
      inputValueArr = inputValueArr.join("");
      console.log(inputValueArr);
      if (this.currentInputId == "topicContent") {
        this.topicobj.topicContent = inputValueArr;
      if (this.currentInputId == "scriptContent") {
        this.topicobj.scriptContent = inputValueArr;
      } else if (this.currentInputId == "nomatchtext") {
        this.topicobj.nomatchtext = inputValueArr;
      } else if (this.currentInputId == "sliencetext") {
@@ -866,6 +898,49 @@
      console.log("输入框的值已更新:", this.currentInputId);
      // 在这里执行更新数据的逻辑
    },
    // 混合路线
    generateCombinations(arrays, currentIndex = 0, currentCombination = []) {
      if (currentIndex === arrays.length) {
        return [currentCombination];
      }
      const currentArray = arrays[currentIndex];
      const newCombinations = [];
      for (const item of currentArray) {
        const newCombination = [...currentCombination, item];
        const combinations = this.generateCombinations(
          arrays,
          currentIndex + 1,
          newCombination
        );
        newCombinations.push(...combinations);
      }
      return newCombinations;
    },
    // 执行
    test() {
      const arrays = [
        ["2", "3", "4"],
        ["1", "2"],
        ["3", "4", "5"],
        ["3", "2", "5"],
      ];
      const newMixArray = this.generateCombinations(arrays);
      console.log(newMixArray,'全部路线');
      this.screen(newMixArray);
    },
    // 数组求和
    sumArray(arr) {
      return arr.reduce((acc, curr) => acc + parseInt(curr), 0);
    },
    // 筛选错误路线
    screen(data) {
      const arraysGreaterThan10 = data.filter((arr) => this.sumArray(arr) > 13);
      console.log(arraysGreaterThan10,'筛选错误路线大于13分');
    },
  },
};
</script>