WXL
2024-08-16 720f7c4ce56ae4b9fc3884d0ed9393d79130b01c
src/views/knowledge/questionbank/particulars/index.vue
@@ -74,22 +74,15 @@
              ></el-col>
              <el-col :span="8"
                ><el-form-item label="是否可用">
                  <el-select
                    v-model="topicobj.isavailable"
                    size="medium"
                    filterable
                    placeholder="请选择分类"
                  >
                    <el-option
                      class="topicobjaa"
                      v-for="item in usable"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                  <el-radio-group v-model="topicobj.isAvailable">
                    <el-radio
                      v-for="(item, index) in usable"
                      :label="item.value"
                      >{{ item.label }}</el-radio
                    >
                    </el-option>
                  </el-select> </el-form-item
              ></el-col>
                  </el-radio-group>
                </el-form-item></el-col
              >
              <el-col :span="8"
                ><el-form-item label="语言">
                  <el-select
@@ -174,6 +167,51 @@
                placeholder="请输入题目内容"
              ></el-input>
            </el-form-item>
            <el-form-item
              label=""
              prop="scriptContent"
              v-if="topicobj.scriptType == 3"
            >
              <div style="display: flex; margin-bottom: 10px">
                <div class="tsgnames" @click="tsgnametos">插入填空标记</div>
              </div>
            </el-form-item>
            <el-row>
              <el-col :span="20">
                <el-form-item
                  label="填空信息"
                  v-if="
                    topicobj.scriptType == 3 &&
                    topicobj.svyLibScriptOptions.length
                  "
                >
                  <el-card class="box-card" style="width: 200%">
                    <div
                      v-for="item in topicobj.svyLibScriptOptions"
                      v-if="item.isoperation != 3"
                      style="margin-bottom: 10px"
                    >
                      <el-input
                        type="text"
                        placeholder="填入内容信息"
                        v-model="item.aaa"
                      >
                        <el-button
                          slot="append"
                          @click="deletexuanx(item)"
                          type="danger"
                          icon="el-icon-delete"
                          circle
                        ></el-button>
                        <span slot="prepend">{{
                          "(" + item.orderno + ")"
                        }}</span>
                      </el-input>
                    </div>
                  </el-card>
                </el-form-item>
              </el-col>
            </el-row>
            <el-form-item label="题目说明">
              <el-input
                style="width: 40vw"
@@ -253,49 +291,7 @@
                </div>
              </el-form-item>
            </el-row>
            <!-- <el-row>
              <el-form-item label="适用疾病" prop="region">
                <div class="xinz-inf">
                  <el-tag
                    :key="item.icd10name"
                    type="warning"
                    v-for="item in illnesslist"
                    closable
                    :disable-transitions="false"
                    @close="handleCloseillness(item)"
                  >
                    {{ item.icd10name }}
                  </el-tag>
                  <el-select
                    v-model="inputValueillness"
                    v-if="inputVisibleillness"
                    @change="illnessConfirm"
                    :remote-method="remoteMethod"
                    filterable
                    remote
                    allow-create
                    default-first-option
                    placeholder="请选择/查询"
                    :loading="loading"
                  >
                    <el-option
                      v-for="item in optionsillness"
                      :key="item.icdid"
                      :label="item.icdname"
                      :value="item.icdid"
                    >
                    </el-option>
                  </el-select>
                  <el-button
                    v-else
                    class="button-new-tag"
                    size="small"
                    @click="inputVisibleillness = true"
                    >+ 新增疾病</el-button
                  >
                </div>
              </el-form-item>
            </el-row> -->
            <el-form-item label="选中指标:">
              <span style="margin-left: 30px"
                ><el-tag type="success" effect="dark">{{
@@ -692,6 +688,11 @@
    // 获取数据
    getissueinfo() {
      this.id = this.$route.query.id;
      this.topicobj.categoryid = Number(this.$route.query.categoryid);
      console.log(this.topicobj.categoryid);
      this.topicobj.isavailable = "1";
      this.topicobj.language = "普通话";
      // 分类
      getissueclassify({}).then((res) => {
        this.classifylist = res.rows;
@@ -705,6 +706,7 @@
        this.dynamicTags = this.topicobj.svyLibScriptTagList.map(
          this.processElement
        );
        this.scriptTypels = this.topicobj.scriptType;
        this.variablelist = JSON.parse(this.topicobj.otherdata)
          ? JSON.parse(this.topicobj.otherdata)
          : this.variablelist;
@@ -837,11 +839,17 @@
    },
    // 判断指标
    changefn(item) {
      if (this.topicobj.targetname) {
      console.log(item);
      if (
        this.topicobj.targetname ||
        this.topicobj.svyLibScriptOptions[0].optioncontent
      ) {
        this.$modal
          .confirm("更改类型后选项将清空是否继续?")
          .then(() => {
            this.scriptTypels = this.topicobj.scriptType;
            this.topicobj.svyLibScriptOptions = [];
          })
          .catch(() => {
            this.topicobj.scriptType = this.scriptTypels;
@@ -855,7 +863,11 @@
        this.topicobj.svyLibScriptOptions,
        row
      );
      console.log(this.topicobj.svyLibScriptOptions);
      if (this.topicobj.svyLibScriptOptions[index].id) {
        console.log(2);
        this.topicobj.svyLibScriptOptions[index].isoperation = 3;
      } else {
        this.topicobj.svyLibScriptOptions.splice(index, 1);
@@ -1022,21 +1034,18 @@
      };
      this.gettargetInfo();
    },
    // 便捷标签
    tsgnameto(row) {
    // 便捷标签插入填空
    tsgnametos(row) {
      let inputValueArr = "";
      let value = this.topicobj.svyLibScriptOptions.length + 1;
      let el = document.querySelector("#" + this.currentInputId);
      //el.selectionStart; 这就是当前光标所在的位置(字符串中字符的index)
      if (this.currentInputId == "scriptContent") {
        console.log(1);
        inputValueArr = this.topicobj.scriptContent.split("");
      } else if (this.currentInputId == "nomatchtext") {
        inputValueArr = this.topicobj.nomatchtext.split("");
      } else if (this.currentInputId == "sliencetext") {
        inputValueArr = this.topicobj.sliencetext.split("");
      } else if (this.currentInputId == "noclearlytext") {
        inputValueArr = this.topicobj.noclearlytext.split("");
      } else if (this.currentInputId == "submoduletext") {
        inputValueArr = this.topicobj.submoduletext.split("");
        console.log(2);
      } else {
        return;
      }
@@ -1045,20 +1054,22 @@
      // 拿到选中文字的长度(后续可以用来替换选中的文字)
      let selectLength = el.selectionEnd - el.selectionStart;
      // 将要插入/替换的文字插入/替换(value.name是要插入/替换的字符串)
      inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`);
      inputValueArr.splice(
        el.selectionStart,
        selectLength,
        "__" + value + "__"
      );
      this.topicobj.svyLibScriptOptions.push({
        orderno: value,
        optiondesc: "",
        isoperation: 1,
      });
      // 把数组重新转换为字符串并赋值
      inputValueArr = inputValueArr.join("");
      console.log(inputValueArr);
      if (this.currentInputId == "scriptContent") {
        this.topicobj.scriptContent = inputValueArr;
      } else if (this.currentInputId == "nomatchtext") {
        this.topicobj.nomatchtext = inputValueArr;
      } else if (this.currentInputId == "sliencetext") {
        this.topicobj.sliencetext = inputValueArr;
      } else if (this.currentInputId == "noclearlytext") {
        this.topicobj.noclearlytext = inputValueArr;
      } else if (this.currentInputId == "submoduletext") {
        this.topicobj.submoduletext = inputValueArr;
      } else {
        return;
      }
@@ -1220,6 +1231,21 @@
.tsgname:hover {
  background: #3366f5;
}
.tsgnames {
  width: 120px;
  margin-right: 10px;
  text-align: center;
  cursor: pointer;
  height: 40px;
  line-height: 40px;
  background: #66c18c;
  color: #ffff;
  font-size: 18px;
  border-radius: 5px;
}
.tsgnames:hover {
  background: #20894d;
}
.preview-left {
  margin: 20px;
  //   margin: 20px;