WXL
2024-07-26 b14bdee1aaf639dd14440b42c6a0ce2e12549ee7
src/views/knowledge/questionnaire/compilequer/index.vue
@@ -97,33 +97,18 @@
            </el-input
          ></el-form-item>
          <el-form-item label="文件" prop="sickness">
            <div style="width: 40%">
              <el-upload
                class="upload-demo"
                action="https://jsonplaceholder.typicode.com/posts/"
                :on-change="handleChange"
                :file-list="fileList"
              >
                <el-button size="small" type="primary">点击上传</el-button>
                <div slot="tip" class="el-upload__tip">
                  只能上传jpg/png/xsl文件,且不超过50mb
                </div>
              </el-upload>
            </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"
@@ -131,6 +116,7 @@
                  @change="handleInputConfirm"
                  filterable
                  remote
                  allow-create
                  reserve-keyword
                  default-first-option
                  :remote-method="remoteMethodtag"
@@ -436,13 +422,24 @@
                    class="topicxq"
                    v-for="item in topicobj.svyLibTemplateTargetoptions"
                  >
                    <el-row :gutter="10">
                      <el-col :span="11">
                    <el-row :gutter="5">
                      <el-col :span="16"
                        ><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="8">
                        <el-form-item
                          v-if="topicobj.scoretype == 1"
                          label="分值"
                        >
                          <el-input
                            class="custom-width"
                            type="text"
                            placeholder="请输入选项分值"
                            v-model="item.score"
@@ -473,18 +470,8 @@
                      </el-col>
                    </el-row>
                    <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-col :span="20"
                        ><el-form-item label="下题跳转(序号)">
                          <el-input
                            type="text"
                            placeholder="请输入题号"
@@ -493,14 +480,6 @@
                          >
                          </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="选中提示">
@@ -513,23 +492,46 @@
                        >
                        </el-input
                      ></el-form-item>
                    </el-row>
                    <el-row :gutter="10">
                      <el-form-item label="选项文件" prop="sickness">
                        <div style="width: 40vw">
                          <div style="margin: 20px">
                            <el-image
                              style="width: 100px; height: 100px"
                              :src="item.picturePath"
                              :preview-src-list="[...item.picturePath]"
                            >
                            </el-image>
                          </div>
                        </div>
                      </el-form-item>
                    </el-row>
                  </div>
                </div>
                <div v-else>
                  <div class="topicxq">
                    <el-row :gutter="10">
                      <el-form-item label="选中提示">
                      <el-form-item label="答案">
                        <el-input
                          style="width: 20vw"
                          type="textarea"
                          autosize
                          placeholder="请输入内容"
                          v-model="item.prompt"
                          placeholder="此处放置患者回答"
                          v-model="topicobj.reply"
                        >
                        </el-input
                      ></el-form-item>
                    </el-row>
                    <el-form-item label="分值">
                      <el-input
                        type="text"
                        placeholder="请输入选项分值"
                        v-model="topicobj.score"
                        show-word-limit
                      >
                      </el-input>
                    </el-form-item>
                  </div>
                </div>
              </el-form>
@@ -552,42 +554,57 @@
        <el-divider></el-divider>
        <div class="preview-left">
          <!-- 单选 -->
          <div class="scriptTopic-dev" v-for="item in valssu" :key="item.aaa">
          <div
            class="scriptTopic-dev"
            v-for="item in ruleForm.svyTemplateLibScripts"
            :key="item.sort"
            v-if="item.scriptType == 1"
          >
            <div class="dev-text">
              {{ item.idd }}、[单选]<span>{{ item.wssd }}</span>
              {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="radio">
              <el-radio-group v-model="item.remark">
                <el-radio
                  v-for="(items, index) in item.sdadd"
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                  >{{ items }}</el-radio
                  >{{ items.optioncontent }}</el-radio
                >
              </el-radio-group>
            </div>
          </div>
          <!-- 多选 -->
          <div class="scriptTopic-dev" v-for="item in valssu" :key="item.aaa">
          <div
            class="scriptTopic-dev"
            v-for="item in ruleForm.svyTemplateLibScripts"
            :key="item.sort"
            v-if="item.scriptType == 2"
          >
            <div class="dev-text">
              {{ item.idd }}、[多选]<span>{{ item.wssd }}</span>
              {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="radios">
              <el-checkbox-group v-model="qremark">
                <el-checkbox
                  v-for="(items, index) in item.sdadd"
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                >
                  {{ items }}
                  {{ items.optioncontent }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
          <!-- 填空 -->
          <div class="scriptTopic-dev" v-for="item in valssu" :key="item.aaa">
          <div
            class="scriptTopic-dev"
            v-for="item in ruleForm.svyTemplateLibScripts"
            :key="item.sort"
            v-if="item.scriptType == 3"
          >
            <div class="dev-text">
              {{ item.idd }}、[填空]<span>{{ item.wssd }}</span>
              {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-input placeholder="请输入答案" v-model="radioas" clearable>
@@ -654,6 +671,14 @@
            width="200"
            :show-overflow-tooltip="true"
          />
          <el-table-column
            label="选项内容"
            align="center"
            key="targetoptions"
            prop="targetoptions"
            width="200"
            :show-overflow-tooltip="true"
          />
          <el-table-column
            label="操作"
@@ -703,10 +728,15 @@
  illnesslistget,
  getillness,
} from "@/api/AiCentre/index";
import { getToken } from "@/utils/auth";
export default {
  data() {
    return {
      headers: {
        Authorization: "Bearer " + getToken(),
      },
      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
      sidecolumnrabs: "left", //方向
      Editprogress: 1, //编辑进度
      currentVersion: "1.2.3", //当前版本
@@ -721,7 +751,11 @@
      topicobj: {},
      // 总条数
      total: 1,
      ruleForm: { svyTemplateLibScripts: [], tempDetpRelevances: [] },
      ruleForm: {
        svyTemplateLibScripts: [],
        tempDetpRelevances: [],
        svyLibTemplateTagList: [],
      },
      rules: {},
      rulesa: {},
      optionsclass: [], //分类列表
@@ -782,6 +816,7 @@
      tempDetpRelevanceslist: [],
      optionstag: [],
      valuetype: [],
      qremark: [],
      usable: [
        { value: "0", label: "可用" },
        { value: "1", label: "停用" },
@@ -834,6 +869,9 @@
    getIndexInArray(arr, obj) {
      return arr.indexOf(obj);
    },
    processElement(element) {
      return { ...element, isoperation: 1 };
    },
    // 递归扁平化
    flattenArray(arr) {
      let result = [];
@@ -855,7 +893,9 @@
      if (this.id) {
        getQtemplatelist({ svyid: this.id }).then((res) => {
          this.ruleForm = res.rows[0];
          this.dynamicTags = this.ruleForm.labelInfo.split(",");
          this.dynamicTags = this.ruleForm.svyLibTemplateTagList.map(
            this.processElement
          );
          this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
          this.ruleForm.suitway = this.ruleForm.suitway.split(",");
          console.log(this.tempDetpRelevanceslist);
@@ -882,7 +922,6 @@
    submitForm(formName) {
      this.$modal.loading("正在上传数据,请稍候...");
      this.ruleForm.labelInfo = this.dynamicTags.join(",");
      this.ruleForm.suitway = this.ruleForm.suitway.join(",");
      if (this.id) {
@@ -983,6 +1022,7 @@
    // 新增题目
    addtopic(row) {
      row.isoperation = 1;
      console.log(row, "row");
      row.svyLibScriptOptions.forEach((item) => {
        item.isoperation = 1;
      });
@@ -1000,6 +1040,7 @@
    },
    handleUpdate(row) {
      this.topicobj = row;
      this.radioas = "";
      console.log(this.topicobj, "看数据");
      // getissuelist({ svyid: row.svyid }).then((res) => {
      // });
@@ -1023,11 +1064,14 @@
      this.sortFn();
    },
    sortFn() {
      console.log(this.ruleForm.svyTemplateLibScripts, "序前值");
      this.ruleForm.svyTemplateLibScripts.forEach((item, index) => {
        item.sort = index + 1;
        item.svyLibTemplateTargetoptions.forEach((items) => {
          items.nextQuestion = Number(item.sort) + 1;
        });
        item.sort = Number(index) + 1;
        if (item.svyLibTemplateTargetoptions) {
          item.svyLibTemplateTargetoptions.forEach((items) => {
            items.nextQuestion = Number(item.sort) + 1;
          });
        }
      });
      console.log(this.ruleForm.svyTemplateLibScripts);
    },
@@ -1050,10 +1094,7 @@
        console.log("未找到该对象");
      }
    },
    // 控制文件
    handleChange(file, fileList) {
      this.fileList = fileList.slice(-3);
    },
    // 标签-----------------
    gettabList() {
      const tagqueryParams = {
@@ -1069,7 +1110,11 @@
    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.ruleForm.svyLibTemplateTagList[lindex].delFlag = 1;
      // this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3;
    },
    handleInputConfirm() {
@@ -1091,9 +1136,9 @@
              isoperation: 1,
            };
          }
          // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
          this.ruleForm.svyLibTemplateTagList.push(tagvalue);
          // this.dynamicTags.push(tagvalue);
          this.dynamicTags.push(tagvalue.tagname);
          this.dynamicTags.push(tagvalue);
        });
      }
      this.inputVisible = false;
@@ -1427,6 +1472,9 @@
    }
  }
}
.custom-width {
  width: 100px; /* 设置宽度样式 */
}
::v-deep .addtopic-input {
  input {
    background: #02a7f0;