WXL
2024-07-31 2c9ddebd07230ca4165e2ee55470133fdf9ccd99
src/views/knowledge/questionnaire/compilequer/index.vue
@@ -101,14 +101,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"
@@ -143,45 +143,9 @@
          </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-button type="warning" @click="$refs.child.handleAddpatient()"
                >添加疾病</el-button
              >
            </el-form-item>
          </el-row>
          <el-row :gutter="20">
@@ -617,7 +581,7 @@
        <el-button type="primary" @click="laststep()">上一步</el-button>
      </div>
    </div>
    <!-- 预览模版弹窗 -->
    <!-- 添加题目弹窗 -->
    <el-drawer
      title="添加题目"
      :visible.sync="drawer"
@@ -671,6 +635,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="操作"
@@ -695,6 +667,14 @@
        />
      </div>
    </el-drawer>
    <!-- 添加适用疾病窗口 -->
    <Optional-Form
      ref="child"
      :dialogVisiblepatient="dialogVisiblepatient"
      :overallCase="illnesslist"
      @addoption="dialogVisiblepatient = false"
      @kkoption="dialogVisiblepatient = true"
    />
  </div>
</template>
@@ -706,7 +686,7 @@
  getQtemplateclassify,
  delQtemplateclassify,
  addQtemplateclassify,
  getQtemplatelist,
  getQtemplateobj,
  compileQtemplate,
  Qtemplateinfo,
  compileissue,
@@ -720,9 +700,14 @@
  illnesslistget,
  getillness,
} from "@/api/AiCentre/index";
import OptionalForm from "@/components/OptionalForm"; //正则组件
import { getToken } from "@/utils/auth";
export default {
  name: "Qcompilequer",
  components: { OptionalForm },
  data() {
    return {
      headers: {
@@ -739,11 +724,16 @@
      radioas: "", //填空题答案
      dynamicTags: [],
      inputVisible: false,
      dialogVisiblepatient: false, //适用疾病窗口
      inputValue: "",
      topicobj: {},
      // 总条数
      total: 1,
      ruleForm: { svyTemplateLibScripts: [], tempDetpRelevances: [] },
      ruleForm: {
        svyTemplateLibScripts: [],
        tempDetpRelevances: [],
        svyLibTemplateTagList: [],
      },
      rules: {},
      rulesa: {},
      optionsclass: [], //分类列表
@@ -857,6 +847,9 @@
    getIndexInArray(arr, obj) {
      return arr.indexOf(obj);
    },
    processElement(element) {
      return { ...element, isoperation: 1 };
    },
    // 递归扁平化
    flattenArray(arr) {
      let result = [];
@@ -876,36 +869,33 @@
    getissueinfo() {
      this.id = this.$route.query.id;
      if (this.id) {
        getQtemplatelist({ svyid: this.id }).then((res) => {
        getQtemplateobj({ 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);
        });
        getillness({ outid: this.id, type: 5 }).then((res) => {
          this.illnesslist = res.rows;
          this.illnesslist.forEach((item) => {
            item.icdname = item.icd10name;
          });
        });
      }
      getillnesslist({
        pageNum: 1,
        pageSize: 100,
      }).then((response) => {
        this.optionsillness = response.rows;
      });
      listDept(this.queryParams).then((response) => {
        this.deptList = this.handleTree(response.data, "deptId");
      });
      // 分类
      getQtemplateclassify({}).then((res) => {
        // this.optionsclass = this.flattenArray(res.rows);
        this.optionsclass = res.rows;
      });
    },
    submitForm(formName) {
      this.$modal.loading("正在上传数据,请稍候...");
      this.ruleForm.labelInfo = this.dynamicTags.join(",");
      this.ruleForm.suitway = this.ruleForm.suitway.join(",");
      if (this.id) {
@@ -1006,6 +996,7 @@
    // 新增题目
    addtopic(row) {
      row.isoperation = 1;
      console.log(row, "row");
      row.svyLibScriptOptions.forEach((item) => {
        item.isoperation = 1;
      });
@@ -1047,11 +1038,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);
    },
@@ -1090,7 +1084,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() {
@@ -1112,9 +1110,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;
@@ -1136,60 +1134,22 @@
    showInput() {
      this.inputVisible = true;
    },
    // 疾病-----------------------
    handleCloseillness(tag) {
      this.illnesslist.splice(this.illnesslist.indexOf(tag), 1);
      if (tag.id) {
        this.illnesslistapi.push(tag.id);
      }
    },
    remoteMethod(value) {
      console.log(value);
      const illnessqueryParams = {
        pageNum: 1,
        pageSize: 100,
        icdname: value,
      };
      this.loading = true;
      setTimeout(() => {
        this.loading = false;
        getillnesslist(illnessqueryParams).then((response) => {
          this.optionsillness = response.rows;
        });
      }, 200);
    },
    illnessConfirm(item) {
      let opeavalue = {};
      let tagname = this.inputValueillness;
      illnesslistget(item).then((res) => {
        opeavalue = res.data;
        opeavalue.outid = this.id;
        opeavalue.type = 5;
        opeavalue.icd10id = opeavalue.icdid;
        opeavalue.icd10name = opeavalue.icdname;
        opeavalue.icd10code = opeavalue.icdcode;
        if (tagname) {
          this.illnesslist.push(opeavalue);
        }
      });
      console.log(this.illnesslist);
      this.inputVisibleillness = false;
      this.inputValueillness = "";
    },
    // 保存
    // 保存疾病
    confirmillness(guid) {
      this.illnesslist.forEach((item, index) => {
        if (guid) {
          item.outid = guid;
        } else {
          console.log(this.ruleForm);
          item.outid = this.ruleForm.svyid;
        }
        item.icd10name = item.icdname;
        item.icd10code = item.icdcode;
        item.type = 5;
        if (!item.id) {
          addtargetillness(item).then((res) => {});
        }
      });
      if (this.illnesslistapi.length) {
        deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
      }
      this.illnessVisible = false;
      this.$modal.msgSuccess("编辑成功");
    },