WXL
2024-07-29 6b6cc07fb81f05153fc07995e0a5be5596b5ca4f
src/views/knowledge/questionbank/particulars/index.vue
@@ -5,44 +5,74 @@
        <el-form :inline="true" :model="topicobj" class="demo-form-inline">
          <div class="headline">
            题目设置详情
            <span style="margin-left: 30px"
              ><el-button type="primary" @click="compileissue"
                >保存</el-button
              ></span
            >
            <span style="float: right; margin-right: 30px"
              ><el-button type="success" @click="Saveproblem">预览</el-button>
            </span>
            <span style="float: right; margin-right: 30px"
              ><el-button type="primary" @click="Saveproblem">保 存</el-button>
            </span>
          </div>
          <div style="margin-left: 8%">
            <el-form-item label="问题分类">
              <el-select
                v-model="topicobj.assortid"
                size="medium"
                filterable
                placeholder="请选择分类"
              >
                <el-option-group
                  v-for="group in classifylist"
                  :key="group.id"
                  :label="group.name"
                >
                  <el-option
                    v-for="item in group.svyLibTopicCategoryList"
                    :key="item.id"
                    :label="item.name"
                    :value="item.id"
                  >
                  </el-option>
                </el-option-group>
              </el-select>
            </el-form-item>
            <el-row :gutter="10">
              <el-col :span="6"
              <el-col :span="8">
                <el-form-item label="问题分类">
                  <el-select
                    v-model="topicobj.categoryid"
                    size="medium"
                    filterable
                    placeholder="请选择分类"
                  >
                    <el-option-group
                      v-for="group in classifylist"
                      :key="group.id"
                      :label="group.name"
                    >
                      <el-option
                        v-for="item in group.svyLibScriptCategoryList"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id"
                      >
                      </el-option>
                    </el-option-group>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="评价类型">
                  <el-select
                    v-model="topicobj.scoretype"
                    placeholder="请选择分类"
                  >
                    <el-option
                      v-for="group in appraiselist"
                      :key="group.value"
                      :label="group.label"
                      :value="group.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="8" v-if="topicobj.scoretype == 1">
                <el-form-item label="题目得分">
                  <el-input
                    v-model="topicobj.score"
                    placeholder="请输入分数"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="10">
              <el-col :span="8"
                ><el-form-item label="题目标题">
                  <el-input
                    v-model="topicobj.topic"
                    v-model="topicobj.scriptTopic"
                    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"
@@ -61,7 +91,7 @@
                  </el-select> </el-form-item
              ></el-col>
              <el-col :span="8"
                ><el-form-item label="语言(缺)">
                ><el-form-item label="语言">
                  <el-select
                    v-model="topicobj.language"
                    size="medium"
@@ -80,7 +110,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"
@@ -98,17 +128,17 @@
                    </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.topictype"
                    v-model="topicobj.scriptType"
                    size="medium"
                    filterable
                    placeholder="请选择分类"
                  >
                    <el-option
                      class="topicobjaa"
                      v-for="item in xjxsoptions"
                      v-for="item in valuetype"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
@@ -120,9 +150,8 @@
                ><el-form-item label="适用方式">
                  <el-select
                    v-model="topicobj.suitway"
                    size="medium"
                    filterable
                    placeholder="请选择分类"
                    disabled
                    placeholder="请选择"
                  >
                    <el-option
                      class="topicobjaa"
@@ -138,25 +167,59 @@
              <el-input
                style="width: 40vw"
                type="textarea"
                id="topicContent"
                v-model="topicobj.topicContent"
                @focus="handleInput('topicContent')"
                placeholder="请输入标题"
                id="scriptContent"
                v-model="topicobj.scriptContent"
                @focus="handleInput('scriptContent')"
                placeholder="请输入题目内容"
              ></el-input>
            </el-form-item>
            <el-form-item label="题目说明">
              <el-input
                style="width: 40vw"
                type="textarea"
                v-model="topicobj.scriptDesc"
                placeholder="请输入说明"
              ></el-input>
            </el-form-item>
            <el-form-item label="题干文件" prop="sickness">
              <div style="width: 40vw">
                <el-upload
                  class="upload-demo"
                  :action="uploadImgUrl"
                  :headers="headers"
                  accept=".jpg,.png,image/*"
                  :on-success="handleChangetg"
                >
                  <el-button size="small" type="primary">点击上传</el-button>
                  <div slot="tip" class="el-upload__tip">
                    只能上传jpg/png类型文件
                  </div>
                </el-upload>
                <div style="margin: 20px">
                  <el-image
                    style="width: 100px; height: 100px"
                    :src="topicobj.picturePath"
                    :preview-src-list="[...topicobj.picturePath]"
                  >
                  </el-image>
                </div>
              </div>
            </el-form-item>
            <el-row>
              <el-form-item label="标签" prop="desc">
                <div class="xinz-inf">
                  <el-tag
                    :key="tag"
                    :key="tag.tagname"
                    type="success"
                    v-for="tag in dynamicTags"
                    closable
                    :disable-transitions="false"
                    @close="handleClosetag(tag)"
                  >
                    {{ tag }}
                    {{ tag.tagname }}
                  </el-tag>
                  <el-select
                    v-model="inputValue"
@@ -164,6 +227,7 @@
                    @change="handleInputConfirm"
                    filterable
                    remote
                    allow-create
                    reserve-keyword
                    default-first-option
                    :remote-method="remoteMethodtag"
@@ -231,124 +295,125 @@
                </div>
              </el-form-item>
            </el-row>
            <el-form-item label="通知变量" prop="name">
              <div style="margin-bottom: 5px" v-for="item in variablelist">
                <el-row>
                  <el-col :span="5">
          </div>
          <div v-if="topicobj.scriptType != 3 && topicobj.scriptType != 4">
            <div class="headline">
              选项设置<span style="margin-left: 30px"
                ><el-button type="primary" round @click="addoption"
                  >+新增</el-button
                ></span
              >
              <span style="margin-left: 30px"
                >选中指标:<el-tag type="success" effect="dark">{{
                  topicobj.targetname ? topicobj.targetname : "未选择"
                }}</el-tag></span
              >
              <span style="margin-left: 30px"
                ><el-button type="success" round @click="gettargetInfo"
                  >+选择指标</el-button
                ></span
              >
            </div>
            <div
              class="topicxq"
              v-for="item in topicobj.svyLibScriptOptions"
              v-if="item.isoperation != 3"
            >
              <el-row :gutter="10">
                <el-col :span="11"
                  ><el-form-item label="选项">
                    <el-input
                      v-model="item.variatename"
                      placeholder="请输入变量名"
                    ></el-input>
                  </el-col>
                  <el-col :span="8" :offset="1">
                      type="text"
                      placeholder="请输入选项"
                      v-model="item.optioncontent"
                      show-word-limit
                    >
                    </el-input> </el-form-item
                ></el-col>
                <el-col :span="11">
                  <el-form-item v-if="topicobj.scoretype == 1" label="分值">
                    <el-input
                      v-model="item.variate"
                      placeholder="请输入变量内容"
                    ></el-input>
                  </el-col>
                  <el-col :span="8" :offset="1">
                    <el-button
                      type="success"
                      icon="el-icon-plus"
                      circle
                      @click="addvariable(item)"
                    ></el-button>
                    <el-button
                      v-if="!item.default"
                      type="danger"
                      icon="el-icon-delete"
                      circle
                      @click="delvariable(item)"
                    ></el-button>
                  </el-col>
                </el-row>
              </div>
            </el-form-item>
            <el-row>
              <el-col :span="24">
                <div
                  style="display: flex; margin-left: 66px; margin-bottom: 10px"
                >
                  <div
                    v-for="item in variablelist"
                    class="tsgname"
                    @click="tsgnameto(item)"
                      type="text"
                      placeholder="请输入选项分值"
                      v-model="item.score"
                      show-word-limit
                    >
                    </el-input>
                  </el-form-item>
                  <el-form-item
                    v-else-if="topicobj.scoretype == 2"
                    label="ABC等级"
                  >
                    {{ item.variatename }}
                    <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"
                    icon="el-icon-delete"
                    circle
                    @click="deletexuanx(item)"
                  ></el-button>
                </el-col>
              </el-row>
              <el-row :gutter="10">
                <el-form-item label="选中提示">
                  <el-input
                    style="width: 40vw"
                    type="textarea"
                    autosize
                    placeholder="请输入内容"
                    v-model="item.prompt"
                  >
                  </el-input
                ></el-form-item>
              </el-row>
              <el-form-item label="选项文件" prop="sickness">
                <div style="width: 40vw">
                  <el-upload
                    class="upload-demo"
                    :action="uploadImgUrl"
                    :headers="headers"
                    accept=".jpg,.png,image/*"
                    :on-success="handleChange.bind(this, item)"
                  >
                    <el-button size="small" type="primary">点击上传</el-button>
                  </el-upload>
                  <div style="margin: 20px">
                    <el-image
                      style="width: 100px; height: 100px"
                      :src="item.picturePath"
                      :preview-src-list="[...item.picturePath]"
                    >
                    </el-image>
                  </div>
                </div>
              </el-col></el-row
            >
          </div>
          <div class="headline">
            选项设置<span style="margin-left: 30px"
              ><el-button type="primary" round @click="addoption"
                >+新增</el-button
              ></span
            ><span style="margin-left: 30px"
              ><el-button type="success" round @click="drawer = true"
                >+选择指标</el-button
              ></span
            >
          </div>
          <div
            class="topicxq"
            v-for="item in topicobj.svyLibTopicoptions"
            v-if="item.isoperation != 3"
          >
            <el-row :gutter="10">
              <el-col :span="11"
                ><el-form-item label="选项">
                  <el-input
                    type="text"
                    placeholder="请输入选项"
                    v-model="item.optioncontent"
                    show-word-limit
                  >
                  </el-input> </el-form-item
              ></el-col>
              <el-col :span="11"
                ><el-form-item label="分值">
                  <el-input
                    type="text"
                    placeholder="请输入"
                    v-model="item.score"
                    show-word-limit
                  >
                  </el-input> </el-form-item
              ></el-col>
              <el-col :span="2">
                <el-button
                  type="danger"
                  icon="el-icon-delete"
                  circle
                  @click="deletexuanx(item)"
                ></el-button>
              </el-col>
            </el-row>
            <el-row :gutter="10">
              <el-form-item label="选中提示">
                <el-input
                  style="width: 40vw"
                  type="textarea"
                  autosize
                  placeholder="请输入内容"
                  v-model="item.prompt"
                >
                </el-input
              ></el-form-item>
            </el-row>
              </el-form-item>
            </div>
          </div>
        </el-form>
      </el-card>
    </div>
    <el-drawer
      title="添加选项"
      title="选择指标"
      :visible.sync="drawer"
      custom-class="demo-drawer"
      width="66%"
      size="50%"
    >
      <div class="preview-left">
        <el-form
@@ -409,7 +474,7 @@
                type="text"
                @click="selectlabel(scope.row)"
                ><span class="button-textxg"
                  ><i class="el-icon-circle-plus-outline"></i>添加</span
                  ><i class="el-icon-circle-plus-outline"></i>选择</span
                ></el-button
              >
            </template>
@@ -444,13 +509,20 @@
  illnesslistget,
  getillness,
} from "@/api/AiCentre/index";
import { getToken } from "@/utils/auth";
export default {
  data() {
    return {
      topicobj: {
        svyLibTopicoptions: [],
        svyLibScriptOptions: [],
        svyLibScriptTagList: [],
        suitway: "1",
      },
      headers: {
        Authorization: "Bearer " + getToken(),
      },
      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
      inputVisible: false,
      inputValue: "",
      currentInputId: "",
@@ -458,6 +530,7 @@
      drawer: false,
      loading: false,
      id: [],
      suitwaylist: [],
      targetList: [],
      dynamicTags: [],
      optionsclass: [],
@@ -466,6 +539,11 @@
        { variatename: "电话", variate: "${phone}", default: 1 },
        { variatename: "病情", variate: "${illness}", default: 1 },
      ],
      url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
      srcList: [
        "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
        "https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg",
      ],
      // 查询参数
      queryParams: {
        pageNum: 1,
@@ -473,9 +551,9 @@
        isavailable: "",
      },
      optionlist: [
        { value: "topic", table: "topic" },
        { value: "topic", table: "topic" },
        { value: "topic", table: "topic" },
        { value: "scriptTopic", table: "scriptTopic" },
        { value: "scriptTopic", table: "scriptTopic" },
        { value: "scriptTopic", table: "scriptTopic" },
      ],
      inputValueillness: "",
      required: [],
@@ -491,8 +569,13 @@
      illnesslistapi: [],
      illnesslist: [],
      classifylist: [],
      appraiselist: [
        { label: "分数", value: "1" },
        { label: "ABC等级", value: "2" },
        { label: "优良等级", value: "3" },
      ],
      optionstag: [],
      xjxsoptions: [],
      valuetype: [],
      usable: [],
      mode: [], //方式
    };
@@ -501,11 +584,11 @@
  created() {
    this.gettabList();
    this.getissueinfo();
    this.gettargetInfo();
    // this.gettargetInfo();
    this.mode = store.getters.mode;
    this.languagelist = store.getters.languagelist;
    this.usable = store.getters.usable;
    this.xjxsoptions = store.getters.xjxsoptions;
    this.valuetype = store.getters.askvaluetype;
    this.required = store.getters.required;
  },
@@ -513,6 +596,9 @@
    // 公共方法---------------
    getIndexInArray(arr, obj) {
      return arr.indexOf(obj);
    },
    processElement(element) {
      return { ...element, isoperation: 1 };
    },
    // 递归扁平化
    flattenArray(arr) {
@@ -533,12 +619,19 @@
    // 获取数据
    getissueinfo() {
      this.id = this.$route.query.id;
      // 分类
      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.dynamicTags = this.topicobj.svyLibScriptTagList.map(
          this.processElement
        );
        this.variablelist = JSON.parse(this.topicobj.otherdata)
          ? JSON.parse(this.topicobj.otherdata)
          : this.variablelist;
@@ -552,20 +645,18 @@
      getillness({ outid: this.id, type: 4 }).then((res) => {
        this.illnesslist = res.rows;
      });
      // 分类
      getissueclassify({}).then((res) => {
        this.classifylist = res.rows;
      });
    },
    gettargetInfo() {
      this.queryParams.scriptType = this.topicobj.scriptType;
      gettargetInfo(this.queryParams).then((res) => {
        this.targetList = res.rows;
        this.total = res.total;
        this.drawer = true;
      });
    },
    // 新增或修改详情
    compileissue() {
      this.topicobj.svyLibTopicoptions = this.topicobj.svyLibTopicoptions.map(
      this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map(
        (item) => {
          if (item.isoperation != 1 && item.isoperation != 3) {
            item.isoperation = 2;
@@ -573,8 +664,11 @@
          return item;
        }
      );
      this.topicobj.targetoptions = this.topicobj.svyLibScriptOptions
        .filter((item) => item.isoperation != 3)
        .map((item) => item.optioncontent)
        .join(", ");
      this.topicobj.otherdata = JSON.stringify(this.variablelist);
      this.topicobj.tag = this.dynamicTags.join(",");
      if (this.id) {
        this.topicobj.isoperation = 2;
        compileissue(this.topicobj).then((res) => {
@@ -617,31 +711,94 @@
        deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
      }
    },
    // 判断分值
    Scorejudgment() {
      let scorearr = this.topicobj.svyLibScriptOptions;
      let isValid = scorearr.every((score) => {
        if (score.score) {
          console.log(Number(score.score), this.topicobj.score, "分值");
          if (
            Number(score.score) <= 0 ||
            Number(score.score) > Number(this.topicobj.score)
          ) {
            console.log(score, "错误分值");
            this.$message({
              message: "选项分值必须大于0小于等于" + this.topicobj.score + "分",
              type: "warning",
            });
            return false;
          }
          return true;
        } else if (this.topicobj.scriptType == 3) {
          return true;
        } else {
          this.$message({
            message: "选项分值未设置",
            type: "warning",
          });
          return false;
        }
      });
      if (isValid) {
        this.compileissue();
        // console.log("到保存了");
      }
    },
    Saveproblem() {
      if (this.topicobj.scoretype == 1) {
        this.Scorejudgment();
      } else {
        this.compileissue();
      }
    },
    // 删除选项
    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,
      });
    },
    // 选择指标
    selectlabel(row) {
      const labellist = row.targetoptionList;
      labellist.forEach((item) => {
        this.topicobj.svyLibTopicoptions.push({
          optioncontent: item.targetvalue,
          isoperation: 1,
        });
      });
      this.$modal
        .confirm(
          '是否选择标题为"' + row.targetname + '"的指标并替换填充问题信息?'
        )
        .then(() => {
          console.log(row);
          this.topicobj.scriptTopic = row.targetname;
          this.topicobj.valueType = row.valueType;
          this.topicobj.scriptContent = row.targetdesc;
          this.topicobj.targetid = row.id;
          this.topicobj.targetname = row.targetname;
          this.topicobj.isavailable = "0";
          this.topicobj.language = "普通话";
          this.topicobj.svyLibScriptOptions = [];
          const labellist = row.targetoptionList;
          labellist.forEach((item) => {
            this.topicobj.svyLibScriptOptions.push({
              optioncontent: item.targetvalue,
              isoperation: 1,
            });
          });
          this.drawer = false;
        })
        .catch(() => {});
    },
    // 标签-----------------
@@ -652,14 +809,16 @@
        tagcategoryid: "0",
      };
      listtag(tagqueryParams).then((response) => {
        console.log(response);
        console.log(response, "待选标签");
        this.optionstag = response.rows;
      });
    },
    handleClosetag(tag) {
      console.log(tag);
      console.log(this.dynamicTags.indexOf(tag));
      const lindex = this.dynamicTags.indexOf(tag);
      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
      this.topicobj.svyLibScriptTagList[lindex].delFlag = 1;
    },
    handleInputConfirm() {
      let tagvalue = {};
@@ -681,7 +840,8 @@
            };
          }
          // this.dynamicTags.push(tagvalue);
          this.dynamicTags.push(tagvalue.tagname);
          this.topicobj.svyLibScriptTagList.push(tagvalue);
          this.dynamicTags.push(tagvalue);
        });
      }
      this.inputVisible = false;
@@ -744,28 +904,33 @@
      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() {
      this.queryParams = {
        pageNum: 1,
        pageSize: 10,
      };
      this.gettargetInfo();
    },
    resetQuery() {},
    // 便捷标签
    tsgnameto(row) {
      let inputValueArr = "";
      let el = document.querySelector("#" + this.currentInputId);
      //el.selectionStart; 这就是当前光标所在的位置(字符串中字符的index)
      if (this.currentInputId == "topicContent") {
        inputValueArr = this.topicobj.topicContent.split("");
        console.log(123);
      if (this.currentInputId == "scriptContent") {
        inputValueArr = this.topicobj.scriptContent.split("");
      } else if (this.currentInputId == "nomatchtext") {
        inputValueArr = this.topicobj.nomatchtext.split("");
      } else if (this.currentInputId == "sliencetext") {
@@ -786,8 +951,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") {
@@ -822,6 +987,72 @@
      this.currentInputId = id;
      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", "5"],
        ["1", "2", "5", "6"],
        ["3", "4", "5", "3"],
        ["3", "2", "5", "7"],
      ];
      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) > 21);
      console.log(arraysGreaterThan10, "筛选错误路线大于13分");
    },
    // 选项文件上传
    handleChange(item, response, file, fileList) {
      console.log(response);
      if (response.code == 200) {
        console.log(item);
        let index = this.topicobj.svyLibScriptOptions.findIndex(
          (obj) => obj.optioncontent == item.optioncontent
        );
        console.log(index);
        this.topicobj.svyLibScriptOptions[index].picturePath = response.url;
        console.log(this.topicobj.svyLibScriptOptions[index]);
        this.$forceUpdate();
      } else {
        this.$message.error("图片插入失败");
      }
    },
    // 题干文件上传
    handleChangetg(response, file, fileList) {
      if (response.code == 200) {
        this.topicobj.picturePath = response.url;
      } else {
        this.$message.error("图片插入失败");
      }
    },
  },
};
@@ -899,7 +1130,7 @@
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
    0 0 6px 0 rgba(0, 0, 0, 0.04);
  .topic-dev {
  .scriptTopic-dev {
    margin-bottom: 25px;
    font-size: 20px !important;
    .dev-text {