WXL
2024-06-20 8d2e62da290ba8c40101f282a60efcdb29b22cd2
src/views/knowledge/questionnaire/compilequer/index.vue
@@ -39,28 +39,48 @@
          label-width="100px"
          class="demo-ruleForm"
        >
          <el-form-item label="问卷分类" prop="region">
            <el-select
              v-model="ruleForm.categoryid"
              size="medium"
              filterable
              placeholder="请选择分类"
            >
              <el-option-group
                v-for="group in optionsclass"
                :key="group.id"
                :label="group.name"
              >
                <el-option
                  v-for="item in group.svyLibTitleCategoryList"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
          <el-row :gutter="10">
            <el-col :span="10">
              <el-form-item label="问卷分类" prop="region">
                <el-select
                  v-model="ruleForm.categoryid"
                  size="medium"
                  filterable
                  placeholder="请选择分类"
                >
                </el-option>
              </el-option-group>
            </el-select>
          </el-form-item>
                  <el-option-group
                    v-for="group in optionsclass"
                    :key="group.id"
                    :label="group.name"
                  >
                    <el-option
                      v-for="item in group.svyLibTemplateCategoryList"
                      :key="item.id"
                      :label="item.name"
                      :value="item.id"
                    >
                    </el-option>
                  </el-option-group>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="10">
              <el-form-item label="评价类型">
                <el-select
                  v-model="ruleForm.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-row>
          <el-form-item label="问卷标题" prop="name">
            <div style="width: 30%">
              <el-input v-model="ruleForm.svyname"></el-input>
@@ -279,7 +299,7 @@
        <div class="presentation">
          <div class="presentation-left">
            <el-card class="box-card" style="min-height: 688px">
              <el-table v-loading="loading" :data="ruleForm.svyLibTopics">
              <el-table v-loading="loading" :data="ruleForm.svyLibScripts">
                <el-table-column
                  label="序号"
                  align="center"
@@ -287,17 +307,17 @@
                  prop="guid"
                />
                <el-table-column
                  label="题目"
                  label="题目标题"
                  align="center"
                  key="topic"
                  prop="topic"
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  label="主要内容"
                  label="题目内容"
                  align="center"
                  key="topicContent"
                  prop="topicContent"
                  key="script"
                  prop="script"
                  :show-overflow-tooltip="true"
                />
@@ -393,7 +413,7 @@
                <div class="headline">选项设置</div>
                <div
                  class="topicxq"
                  v-for="item in topicobj.svyLibTopicoptions"
                  v-for="item in topicobj.svyLibScriptOptions"
                >
                  <el-row :gutter="10">
                    <el-col :span="11"
@@ -533,7 +553,7 @@
      title="添加题目"
      :visible.sync="drawer"
      custom-class="demo-drawer"
      width="50%"
      size="50%"
    >
      <div class="preview-left">
        <el-form
@@ -577,8 +597,8 @@
          <el-table-column
            label="问题内容"
            align="center"
            key="topicContent"
            prop="topicContent"
            key="script"
            prop="script"
            width="200"
            :show-overflow-tooltip="true"
          />
@@ -597,6 +617,13 @@
            </template>
          </el-table-column>
        </el-table>
        <pagination
          v-show="total > 0"
          :total="total"
          :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize"
          @pagination="getaddtopiclist"
        />
      </div>
    </el-drawer>
  </div>
@@ -607,7 +634,7 @@
import { listDept } from "@/api/system/dept";
import store from "@/store";
import {
  getQtemplateclassify,
  getQtemplateclassify,
  delQtemplateclassify,
  addQtemplateclassify,
  getQtemplatelist,
@@ -649,6 +676,11 @@
      optionlist: [
        { value: "topic", table: "topic" },
        { value: "topic", table: "topic" },
      ],
      appraiselist: [
        { label: "分数", value: "1" },
        { label: "ABC等级", value: "2" },
        { label: "优良等级", value: "3" },
      ],
      fileList: [
@@ -729,11 +761,11 @@
      let result = [];
      arr.forEach((item) => {
        result.push(item);
        if (item.svyLibTitleCategoryList) {
        if (item.svyLibTemplateCategoryList) {
          result = result.concat(
            this.flattenArray(item.svyLibTitleCategoryList)
            this.flattenArray(item.svyLibTemplateCategoryList)
          );
          delete item.svyLibTitleCategoryList;
          delete item.svyLibTemplateCategoryList;
        }
      });
      return result;
@@ -789,14 +821,12 @@
    Departmenttreatment() {
      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
      console.log(this.tempDetpRelevanceslist);
      this.ruleForm.svyLibTopics = this.ruleForm.svyLibTopics.concat(
      this.ruleForm.svyLibScripts = this.ruleForm.svyLibScripts.concat(
        this.delScriptVOList
      );
      console.log(this.ruleForm.svyLibTopics, "this.ruleForm.svyLibTopics");
      const result = this.tempDetpRelevanceslist.map(
        (subArr) => subArr[subArr.length - 1]
      );
      console.log(result, "result");
      // id数组查数组对象
      result.forEach((item) => {
        const condition = this.ruleForm.tempDetpRelevances.some(
@@ -810,7 +840,6 @@
          });
        }
      });
      console.log(this.ruleForm.tempDetpRelevances);
      // 数组对象查id数组
      this.ruleForm.tempDetpRelevances.forEach((item) => {
        const condition = result.some((obj) => obj === item.deptId);
@@ -820,7 +849,6 @@
          this.ruleForm.tempDetpRelevances[index].delFlag = 1;
        }
      });
      console.log(this.ruleForm.tempDetpRelevances);
      setTimeout(() => {
        this.submitForm();
      }, 1000);
@@ -865,14 +893,15 @@
    // 新增题目
    addtopic(row) {
      row.isoperation = 1;
      row.svyLibTopicoptions.forEach((item) => {
      row.svyLibScriptOptions.forEach((item) => {
        item.isoperation = 1;
      });
      this.ruleForm.svyLibTopics.push(row);
      this.ruleForm.svyLibScripts.push(row);
      this.$modal.msgSuccess("新增成功");
    },
    handleDelete(row) {
      let index = this.ruleForm.svyLibTopics.indexOf(row);
      this.ruleForm.svyLibTopics.splice(index, 1);
      let index = this.ruleForm.svyLibScripts.indexOf(row);
      this.ruleForm.svyLibScripts.splice(index, 1);
      row.isoperation = 3;
      this.delScriptVOList.push(row);
      this.sortFn();
@@ -884,29 +913,29 @@
      // });
    },
    syioption(row) {
      const index = this.getIndexInArray(this.ruleForm.svyLibTopics, row);
      const item = this.ruleForm.svyLibTopics.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
      this.ruleForm.svyLibTopics.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
      const index = this.getIndexInArray(this.ruleForm.svyLibScripts, row);
      const item = this.ruleForm.svyLibScripts.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
      this.ruleForm.svyLibScripts.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
      this.sortFn();
    },
    xiayioption(row) {
      const index = this.getIndexInArray(this.ruleForm.svyLibTopics, row);
      const item = this.ruleForm.svyLibTopics.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
      this.ruleForm.svyLibTopics.splice(index + 1, 0, item); // 将item插入到索引位置的前一位
      const index = this.getIndexInArray(this.ruleForm.svyLibScripts, row);
      const item = this.ruleForm.svyLibScripts.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
      this.ruleForm.svyLibScripts.splice(index + 1, 0, item); // 将item插入到索引位置的前一位
      this.sortFn();
    },
    sortFn() {
      this.ruleForm.svyLibTopics = this.ruleForm.svyLibTopics.map(
      this.ruleForm.svyLibScripts = this.ruleForm.svyLibScripts.map(
        (item, index) => {
          return {
            guid: index + 1,
            svyid: item.svyid,
            topic: item.topic,
            topicContent: item.topicContent,
            script: item.script,
            script: item.script,
          };
        }
      );
      console.log(this.ruleForm.svyLibTopics);
      console.log(this.ruleForm.svyLibScripts);
    },
    // 修改题目信息