WXL
2025-04-14 6e54a6688661a05de7c418612cea8b38bbc2dee3
src/views/knowledge/questionnaire/index.vue
@@ -3,8 +3,8 @@
    <!-- 左侧栏 -->
    <div class="sidecolumn">
      <div class="sidecolumn-top">
        <div class="top-wj">问卷类型</div>
        <div class="top-tj" @click="dialogFormVisible = true">+添加</div>
        <div class="top-wj">问卷分类</div>
        <div class="top-tj" @click="Newcategory">+添加</div>
      </div>
      <div class="center-ss">
        <el-input
@@ -79,8 +79,9 @@
              </el-form-item>
              <el-form-item label="适用院区" prop="region">
                <el-select
                  v-model="queryParams.campus"
                  v-model="campus"
                  size="medium"
                  multiple
                  filterable
                  placeholder="请选择分类"
                >
@@ -93,7 +94,7 @@
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="主要内容" prop="userName">
              <el-form-item label="问卷描述" prop="userName">
                <el-input
                  v-model="queryParams.description"
                  placeholder="请输入"
@@ -140,7 +141,7 @@
                  icon="el-icon-plus"
                  size="medium"
                  @click="handleAdd"
                  v-hasPermi="['system:user:add']"
                  >新增</el-button
                >
              </el-col>
@@ -153,7 +154,6 @@
                  size="medium"
                  :disabled="multiple"
                  @click="handleDelete"
                  v-hasPermi="['system:user:remove']"
                  >删除</el-button
                >
              </el-col>
@@ -181,16 +181,9 @@
                width="160"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="版本"
                align="center"
                key="version"
                prop="version"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="主要内容"
                label="问卷描述"
                align="center"
                key="description"
                prop="description"
@@ -206,7 +199,6 @@
                    size="medium"
                    type="text"
                    @click="illnessUpdate(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textxg"
                      ><i class="el-icon-date"></i>详情</span
                    ></el-button
@@ -260,7 +252,6 @@
                    size="medium"
                    type="text"
                    @click="goQRCode(scope.row)"
                    v-hasPermi="['system:user:edit']"
                  >
                    <span class="button-text"
                      ><i class="el-icon-edit"></i>预览</span
@@ -270,7 +261,6 @@
                    size="medium"
                    type="text"
                    @click="ViewQuestionnaire(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textck"
                      ><i class="el-icon-edit"></i>查看</span
                    ></el-button
@@ -279,7 +269,6 @@
                    size="medium"
                    type="text"
                    @click="handleUpdate(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textxg"
                      ><i class="el-icon-edit"></i>修改</span
                    ></el-button
@@ -288,7 +277,6 @@
                    size="medium"
                    type="text"
                    @click="handleDelete(scope.row)"
                    v-hasPermi="['system:user:remove']"
                    ><span class="button-textsc"
                      ><i class="el-icon-edit"></i>删除</span
                    ></el-button
@@ -309,7 +297,7 @@
      </div>
    </div>
    <!-- 添加类别弹框 -->
    <el-dialog title="新增类别" width="30%" :visible.sync="dialogFormVisible">
    <el-dialog title="类别编辑" width="30%" :visible.sync="dialogFormVisible">
      <div style="text-align: center; margin-bottom: 20px">
        <el-radio-group v-model="radio">
          <el-radio-button label="主分类"></el-radio-button>
@@ -400,65 +388,64 @@
        </div>
      </div>
    </el-dialog> -->
    <!-- 问卷模版预览 -->
    <!-- 问卷模板预览 -->
    <el-dialog title="随访题目预览" :visible.sync="topicVisible" width="50%">
      <div class="preview-left">
        <!-- 单选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.svyTemplateLibScripts"
          :key="item.sort"
          v-if="item.scriptType == 1"
        >
          <div class="dev-text">
            {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
        <div v-for="item in topicform.svyTemplateLibScripts">
          <div
            class="scriptTopic-dev"
            :key="item.sort"
            v-if="item.scriptType == 1"
          >
            <div class="dev-text">
              {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="item.remark">
                <el-radio
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                  >{{ items.optioncontent }}</el-radio
                >
              </el-radio-group>
            </div>
          </div>
          <div class="dev-xx">
            <el-radio-group v-model="item.remark">
              <el-radio
                v-for="(items, index) in item.svyLibTemplateTargetoptions"
                :key="index"
                :label="index"
                >{{ items.optioncontent }}</el-radio
              >
            </el-radio-group>
          <!-- 多选 -->
          <div
            class="scriptTopic-dev"
            :key="item.sort"
            v-if="item.scriptType == 2"
          >
            <div class="dev-text">
              {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="qremark">
                <el-checkbox
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                >
                  {{ items.optioncontent }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
        </div>
        <!-- 多选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.svyTemplateLibScripts"
          :key="item.sort"
          v-if="item.scriptType == 2"
        >
          <div class="dev-text">
            {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-checkbox-group v-model="qremark">
              <el-checkbox
                v-for="(items, index) in item.svyLibTemplateTargetoptions"
                :key="index"
                :label="index"
              >
                {{ items.optioncontent }}
              </el-checkbox>
            </el-checkbox-group>
          </div>
        </div>
        <!-- 填空 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.svyTemplateLibScripts"
          :key="item.sort"
          v-if="item.scriptType == 3"
        >
          <div class="dev-text">
            {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-input placeholder="请输入答案" v-model="radioas" clearable>
            </el-input>
          <!-- 填空 -->
          <div
            class="scriptTopic-dev"
            :key="item.sort"
            v-if="item.scriptType == 4"
          >
            <div class="dev-text">
              {{ item.sort }}、[问答]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-input placeholder="请输入答案" v-model="radioas" clearable>
              </el-input>
            </div>
          </div>
        </div>
      </div>
@@ -516,7 +503,7 @@
      courtyardlist: "",
      // 用户表格数据
      userList: [],
      campus: [],
      // 日期范围
      dateRange: [],
      // 岗位选项
@@ -525,7 +512,7 @@
      roleOptions: [],
      // 表单参数
      form: {},
      title: "类别编辑",
      sidecolumnform: {}, //添加类别表单
      goQRCodeVisible: false, //二维码弹框
      sidecolumnval: "", //类别搜索
@@ -539,6 +526,8 @@
      indexid: null,
      inputValue: "",
      radio: "主分类",
      zufon: true,
      zifon: true,
      inputVisible: false,
      illnessVisible: false, //指标疾病弹框
      deptOptions: [],
@@ -627,6 +616,7 @@
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.queryParams.campus = this.campus.join(",");
      this.getList();
    },
    /** 重置按钮操作 */
@@ -646,13 +636,14 @@
    /** 新增按钮操作 */
    handleAdd() {
      this.$router.push({
        path: "/knowledge/questionnaire/compilequer/",
        path: "/knowledge/questionnaireinfo/",
        query: { categoryid: this.queryParams.categoryid },
      });
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.$router.push({
        path: "/knowledge/questionnaire/compilequer/",
        path: "/knowledge/questionnaireinfo/",
        query: { id: row.svyid },
      });
    },
@@ -759,8 +750,7 @@
        });
        return;
      }
      let calssvalue = {
      };
      let calssvalue = {};
      if (
        this.classifyform.pid &&
        this.classifyform.name &&
@@ -816,11 +806,22 @@
      this.dialogFormVisible = true;
      if (!b.pid) {
        this.radio = "主分类";
        this.title = "修改主分类";
        this.zufon = false;
      } else {
        this.radio = "子分类";
        this.title = "修改子分类";
        this.zifon = false;
      }
      this.classifyform = b;
      this.dialogFormVisible = true;
    },
    Newcategory(){
      this.classifyform= {}, //类别表单
      this.radio = "主分类";
     this.dialogFormVisible = true
     this.zifon = true;
      this.zufon = true;
    },
    // 筛选节点
@@ -829,6 +830,7 @@
      return data.name.indexOf(value) !== -1;
    },
    handleNodeClick(data) {
      if (data.svyLibTemplateCategoryList) return;
      this.queryParams.categoryid = data.id;
      this.getList();
    },
@@ -894,7 +896,7 @@
  display: flex;
}
.sidecolumn {
  width: 300px;
  width: 400px;
  min-height: 100vh;
  text-align: center;
  //   display: flex;