WXL
2024-07-29 841b389629f13bc96652772a25aed7bc1a5eafb9
src/views/knowledge/questionbank/particulars/index.vue
@@ -91,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"
@@ -149,11 +149,9 @@
              <el-col :span="8"
                ><el-form-item label="适用方式">
                  <el-select
                    v-model="suitwaylist"
                    size="medium"
                    filterable
                    multiple
                    placeholder="请选择分类"
                    v-model="topicobj.suitway"
                    disabled
                    placeholder="请选择"
                  >
                    <el-option
                      class="topicobjaa"
@@ -190,11 +188,15 @@
                  class="upload-demo"
                  :action="uploadImgUrl"
                  :headers="headers"
                  :accept="'image/*,video/*'"
                  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"
@@ -210,14 +212,14 @@
              <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"
@@ -302,7 +304,9 @@
                ></span
              >
              <span style="margin-left: 30px"
                >选中指标:{{ topicobj.scriptTopic }}</span
                >选中指标:<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"
@@ -385,7 +389,7 @@
                    class="upload-demo"
                    :action="uploadImgUrl"
                    :headers="headers"
                    :accept="'image/*,video/*'"
                    accept=".jpg,.png,image/*"
                    :on-success="handleChange.bind(this, item)"
                  >
                    <el-button size="small" type="primary">点击上传</el-button>
@@ -428,6 +432,24 @@
              @keyup.enter.native="gettargetInfo"
            />
          </el-form-item>
          <el-form-item label="指标说明" prop="userName">
            <el-input
              v-model="queryParams.targetdesc"
              placeholder="请输入"
              clearable
              style="width: 200px"
              @keyup.enter.native="gettargetInfo"
            />
          </el-form-item>
          <el-form-item label="指标标签" prop="userName">
            <el-input
              v-model="queryParams.tagName"
              placeholder="请输入"
              clearable
              style="width: 200px"
              @keyup.enter.native="gettargetInfo"
            />
          </el-form-item>
          <el-form-item>
            <el-button
@@ -449,6 +471,22 @@
            key="targetname"
            prop="targetname"
            width="100"
          />
          <el-table-column
            label="问题内容"
            align="center"
            key="targetdesc"
            prop="targetdesc"
            width="200"
            :show-overflow-tooltip="true"
          />
          <el-table-column
            label="语言"
            align="center"
            key="targetdesc"
            prop="targetdesc"
            width="200"
            :show-overflow-tooltip="true"
          />
          <el-table-column
            label="问题内容"
@@ -512,6 +550,8 @@
    return {
      topicobj: {
        svyLibScriptOptions: [],
        svyLibScriptTagList: [],
        suitway: "1",
      },
      headers: {
        Authorization: "Bearer " + getToken(),
@@ -591,6 +631,9 @@
    getIndexInArray(arr, obj) {
      return arr.indexOf(obj);
    },
    processElement(element) {
      return { ...element, isoperation: 1 };
    },
    // 递归扁平化
    flattenArray(arr) {
      let result = [];
@@ -620,8 +663,9 @@
      }
      getissuelist({ id: this.id }).then((res) => {
        this.topicobj = res.rows[0];
        this.dynamicTags = this.topicobj.tag.split(",");
        this.suitwaylist = this.topicobj.suitway.split(",");
        this.dynamicTags = this.topicobj.svyLibScriptTagList.map(
          this.processElement
        );
        this.variablelist = JSON.parse(this.topicobj.otherdata)
          ? JSON.parse(this.topicobj.otherdata)
          : this.variablelist;
@@ -637,6 +681,13 @@
      });
    },
    gettargetInfo() {
      if (!this.topicobj.scriptType) {
        this.$message({
          message: "请先选择题目类型",
          type: "error",
        });
        return;
      }
      this.queryParams.scriptType = this.topicobj.scriptType;
      gettargetInfo(this.queryParams).then((res) => {
        this.targetList = res.rows;
@@ -654,9 +705,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(",");
      this.topicobj.suitway = this.suitwaylist.join(",");
      if (this.id) {
        this.topicobj.isoperation = 2;
        compileissue(this.topicobj).then((res) => {
@@ -706,12 +759,13 @@
        if (score.score) {
          console.log(Number(score.score), this.topicobj.score, "分值");
          if (
            Number(score.score) <= 0 ||
            Number(score.score) < 0 ||
            Number(score.score) > Number(this.topicobj.score)
          ) {
            console.log(score, "错误分值");
            this.$message({
              message: "选项分值必须大于0小于等于" + this.topicobj.score + "分",
              message:
                "选项分值必须在0到" + this.topicobj.score + "分之间",
              type: "warning",
            });
            return false;
@@ -735,16 +789,12 @@
    },
    Saveproblem() {
      if (this.topicobj.scoretype == 1) {
        console.log(321);
        this.Scorejudgment();
      } else {
        this.compileissue();
      }
    },
    // 删除标签
    handleClose(tag) {
      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
    },
    // 删除选项
    deletexuanx(row) {
      const index = this.getIndexInArray(
@@ -773,10 +823,11 @@
        )
        .then(() => {
          console.log(row);
          console.log(this.topicobj);
          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 = [];
@@ -800,14 +851,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 = {};
@@ -829,7 +882,8 @@
            };
          }
          // this.dynamicTags.push(tagvalue);
          this.dynamicTags.push(tagvalue.tagname);
          this.topicobj.svyLibScriptTagList.push(tagvalue);
          this.dynamicTags.push(tagvalue);
        });
      }
      this.inputVisible = false;
@@ -905,7 +959,13 @@
    //   this.illnessVisible = false;
    //   this.$modal.msgSuccess("编辑成功");
    // },
    resetQuery() {},
    resetQuery() {
      this.queryParams = {
        pageNum: 1,
        pageSize: 10,
      };
      this.gettargetInfo();
    },
    // 便捷标签
    tsgnameto(row) {
      let inputValueArr = "";
@@ -1016,10 +1076,14 @@
    handleChange(item, response, file, fileList) {
      console.log(response);
      if (response.code == 200) {
        console.log(item);
        let index = this.topicobj.svyLibScriptOptions.findIndex(
          (obj) => obj.id == item.id && obj.name == item.name
          (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("图片插入失败");
      }