WXL
2024-09-04 7eaee92ee52e1501480adbbe8a1af9ddecc04275
src/views/knowledge/questionnaire/compilequer/index.vue
@@ -2,18 +2,27 @@
  <div class="Questionnairemanagement">
    <!-- 左侧栏 -->
    <div class="sidecolumn">
      <div style="height: 400px">
        <el-steps direction="vertical" :active="Editprogress">
          <el-step title="基础信息设置"></el-step>
          <el-step title="问卷设置"></el-step>
          <el-step
            title="问卷预览"
            description="这是一段很长很长很长的描述性文字"
          ></el-step>
          <el-step
            title="结果反馈"
            description="这是一段很长很长很长的描述性文字"
          ></el-step>
      <div>
        <el-steps finish-status="success" :active="Editprogress" simple>
          <el-step>
            <template slot="title">
              <span style="cursor: pointer" @click="Editprogress = 1"
                >基础信息</span
              >
            </template>
          </el-step>
          <el-step>
            <template slot="title">
              <span style="cursor: pointer" @click="Editprogress = 2"
                >问卷题目</span
              >
            </template>
          </el-step>
          <el-step description="查看问卷预览,可导出PDF">
            <span slot="title" style="cursor: pointer" @click="Editprogress = 3"
              >问卷预览</span
            >
          </el-step>
        </el-steps>
      </div>
    </div>
@@ -21,9 +30,8 @@
    <div class="leftvlue">
      <!-- 基本信息 -->
      <div v-if="Editprogress == 1">
        <div class="leftvlue-jbxx">
          基本信息<span>当前版本:{{ currentVersion }}</span>
        </div>
        <div class="leftvlue-jbxx">基本信息</div>
        <el-divider></el-divider>
        <el-form
          :model="ruleForm"
          :rules="rules"
@@ -31,20 +39,157 @@
          label-width="100px"
          class="demo-ruleForm"
        >
          <el-form-item label="活动名称" prop="name">
            <el-input v-model="ruleForm.name"></el-input>
          <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-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>
            </div>
          </el-form-item>
          <el-form-item label="活动区域" prop="region">
          <el-form-item label="问卷描述">
            <el-input
              style="width: 40vw"
              type="textarea"
              autosize
              placeholder="请输入内容"
              v-model="ruleForm.description"
            >
            </el-input
          ></el-form-item>
          <el-row>
            <el-form-item label="标签" prop="desc">
              <div class="xinz-inf">
                <el-tag
                  :key="tag.tagname"
                  type="success"
                  v-for="tag in dynamicTags"
                  closable
                  :disable-transitions="false"
                  @close="handleClosetag(tag)"
                >
                  {{ tag.tagname }}
                </el-tag>
                <el-select
                  v-model="inputValue"
                  v-if="inputVisible"
                  @change="handleInputConfirm"
                  filterable
                  remote
                  allow-create
                  reserve-keyword
                  default-first-option
                  :remote-method="remoteMethodtag"
                  :loading="loading"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in optionstag"
                    :key="item.tagid"
                    :label="item.tagname"
                    :value="item.tagname"
                  >
                  </el-option>
                </el-select>
                <el-button
                  v-else
                  class="button-new-tag"
                  size="small"
                  @click="showInput"
                  >+ 新增标签</el-button
                >
              </div>
            </el-form-item>
          </el-row>
          <div class="xinz-infs">
            <el-form-item label="适用疾病" prop="region">
              <el-tag
                v-for="tag in displayedTags"
                :key="tag.icdid"
                type="warning"
                :disable-transitions="false"
              >
                {{ tag.icdname }}
              </el-tag>
              <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag>
            </el-form-item>
          </div>
          <div style="margin-left: 120px; margin-bottom: 10px">
            <el-button type="warning" @click="$refs.child.handleAddpatient()"
              >疾病详情</el-button
            >
          </div>
          <el-row :gutter="20">
            <el-col :span="6">
              <el-form-item label="版本号" prop="name">
                <el-input
                  v-model="ruleForm.version"
                  placeholder="默认1.0"
                ></el-input> </el-form-item
            ></el-col>
            <el-col :span="9">
              <el-form-item label="可用状态" prop="region">
                <el-radio-group v-model="ruleForm.isAvailable">
                  <el-radio
                    v-for="(item, index) in usable"
                    :label="item.value"
                    >{{ item.label }}</el-radio
                  >
                </el-radio-group>
              </el-form-item></el-col
            >
          </el-row>
          <el-form-item label="问卷方式" prop="region">
            <el-select
              v-model="ruleForm.region"
              v-model="ruleForm.suitway"
              size="medium"
              multiple
              filterable
              placeholder="请选择活动区域"
              placeholder="请选择分类"
            >
              <el-option
                class="ruleFormaa"
                v-for="item in options"
                v-for="item in mode"
                :key="item.value"
                :label="item.label"
                :value="item.value"
@@ -52,707 +197,1049 @@
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="活动形式" prop="desc">
          <el-row>
            <el-col :span="10"
              ><el-form-item label="适用院区" prop="region">
                <el-select
                  v-model="ruleForm.campus"
                  size="medium"
                  filterable
                  placeholder="请选择分类"
                >
                  <el-option
                    class="ruleFormaa"
                    v-for="item in courtyardlist"
                    :key="item.label"
                    :label="item.label"
                    :value="item.label"
                  >
                  </el-option>
                </el-select> </el-form-item
            ></el-col>
            <el-col :span="12"
              ><el-form-item label="适用科室" prop="region">
                <el-cascader
                style="width: 400px;"
                  v-model="tempDetpRelevanceslist"
                  :options="deptList"
                  :props="props"
                  :show-all-levels="false"
                  clearable
                >
                  <template slot-scope="{ node, data }">
                    <span>{{ data.deptName }}</span>
                    <span v-if="!node.isLeaf">
                      ({{ data.children.length }})
                    </span>
                  </template>
                </el-cascader>
              </el-form-item></el-col
            >
          </el-row>
          <el-form-item label="问卷结束语">
            <el-input
              :rows="4"
              style="width: 40vw"
              type="textarea"
              v-model="ruleForm.desc"
            ></el-input>
          </el-form-item>
              autosize
              placeholder="请输入内容"
              v-model="ruleForm.conclusion"
            >
            </el-input
          ></el-form-item>
          <el-form-item>
            <el-button type="success" @click="submitForm('ruleForm')"
            <el-button type="success" @click="nextstep('ruleForm')"
              >下一步</el-button
            >
            <el-button @click="resetForm('ruleForm')">重置</el-button>
            <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button>
            <el-button @click="Departmenttreatment('ruleForm')"
              >保存问卷基础信息</el-button
            >
          </el-form-item>
        </el-form>
      </div>
      <!-- 问卷设置 -->
      <div v-if="Editprogress == 2">
        <div class="leftvlue-jbxx">问卷设置</div>
        <el-form
          :model="ruleForm"
          :rules="rules"
          ref="ruleForm"
          label-width="100px"
          class="demo-ruleForm"
        >
          <el-form-item label="问卷介绍" prop="desc">
            <el-cascader
              class="demo-cascader"
              v-model="ruleForm.templatevalue"
              :options="options"
              :props="{ expandTrigger: 'hover' }"
            ></el-cascader>
            <el-select v-model="ruleForm.data2" placeholder="提交提示">
              <el-option
                v-for="item in options"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
            <div style="display: flex; margin-top: 20px">
              <div class="PreviewTemplate" @click="PreviewTemplate()">
                预览模版
              </div>
              <el-button type="primary">确认引用</el-button>
            </div>
          </el-form-item>
          <el-form-item label="活动形式" prop="desc">
            <el-input type="textarea" v-model="ruleForm.desc"></el-input>
          </el-form-item>
          <el-form-item label="活动形式" prop="desc">
            <el-input type="textarea" v-model="ruleForm.desc"></el-input>
            <div class="addtopic">
              <el-select
                v-model="addvalue"
                @change="changeaddtopic"
                class="addtopic-input"
              >
                <el-option
                  v-for="item in options"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
            </div>
            <div class="presentation">
              <div class="presentation-left">
                <el-table v-loading="loading" :data="userList">
                  <el-table-column
                    label="序号"
                    align="center"
                    key="userid"
                    prop="userid"
                  />
                  <el-table-column
                    label="题目"
                    align="center"
                    key="userName"
                    prop="userName"
                    :show-overflow-tooltip="true"
                  />
                  <el-table-column
                    label="操作"
                    align="center"
                    width="300"
                    class-name="small-padding fixed-width"
                  >
                    <template slot-scope="scope">
                      <!-- <el-button
                        size="medium"
                        type="text"
                        @click="goQRCode(scope.row)"
                        v-hasPermi="['system:user:edit']"
                      >
                        <span class="button-text"
                          ><i class="el-icon-edit"></i>二维码</span
                        ></el-button
                      >
                      <el-button
                        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
                      > -->
                      <el-button
                        size="medium"
                        type="text"
                        @click="handleUpdate(scope.row)"
                        v-hasPermi="['system:user:edit']"
                        ><span class="button-textxg"
                          ><i class="el-icon-scissors"></i>修改</span
                        ></el-button
                      >
                      <el-button
                        size="medium"
                        type="text"
                        @click="handleDelete(scope.row)"
                        v-hasPermi="['system:user:remove']"
                        ><span class="button-textsc"
                          ><i class="el-icon-delete"></i>删除</span
                        ></el-button
                      >
                    </template>
                  </el-table-column>
                </el-table>
                <pagination
                  v-show="total > 0"
                  :total="total"
                  :page.sync="queryParams.pageNum"
                  :limit.sync="queryParams.pageSize"
                  @pagination="getList"
                />
              </div>
              <div class="presentation-right">
                <div class="headline">题目设置详情</div>
                <div>题目标题:<span>这家机构怎么样</span></div>
                <div>是否必答:<span>是</span> 是否隐藏:<span>否</span></div>
                <div class="headline">选项设置</div>
                <div>
                  <p>选项1:<span>医疗机构</span></p>
                  <p>
                    填写明细:<span>无</span> 异常选项:<span>无</span>
                    分值:<span>3</span>
                  </p>
                  <p>选中提示:<span>这个题有点难请注意</span></p>
                  <p>选中跳转:<span>无</span></p>
                </div>
              </div>
            </div>
          </el-form-item>
          <el-form-item>
            <el-button type="success" @click="submitForm('ruleForm')"
              >下一步</el-button
        <div class="leftvlue-jbxx">
          问卷题目设置
          <span style=""
            ><el-button
              type="warning"
              icon="el-icon-finished"
              round
              @click="test"
              >题目规则效验</el-button
            ></span
          >
        </div>
        <el-divider></el-divider>
        <div style="display: flex; justify-content: space-between">
          <div>
            <el-button
              type="primary"
              icon="el-icon-plus"
              round
              @click="getaddtopiclist"
              >添加题目</el-button
            >
            <el-button type="primary" @click="laststep()">上一步</el-button>
            <el-button @click="resetForm('ruleForm')">重置</el-button>
          </el-form-item>
        </el-form>
      </div>
      <!-- 问卷预览 -->
      <div v-if="Editprogress == 3">
        <div class="preview-left">
          <!-- 单选 -->
          <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
            <div class="dev-text">
              {{ item.idd }}、[单选]<span>{{ item.wssd }}</span>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="radio">
                <el-radio
                  v-for="(items, index) in item.sdadd"
                  :key="index"
                  :label="index"
                  >{{ items }}</el-radio
                >
              </el-radio-group>
            </div>
            <el-button
              type="success"
              icon="el-icon-edit-outline"
              round
              @click="Operateit = !Operateit"
              >{{ !Operateit ? "编辑题目" : "完整信息展示" }}</el-button
            >
          </div>
          <!-- 多选 -->
          <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
            <div class="dev-text">
              {{ item.idd }}、[多选]<span>{{ item.wssd }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="radios">
                <el-checkbox
                  v-for="(items, index) in item.sdadd"
                  :key="index"
                  :label="index"
                >
                  {{ items }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
          <!-- 填空 -->
          <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
            <div class="dev-text">
              {{ item.idd }}、[填空]<span>{{ item.wssd }}</span>
            </div>
            <div class="dev-xx">
              <el-input placeholder="请输入答案" v-model="radioas" clearable>
              </el-input>
            </div>
          <div style="display: flex">
            <span
              style="
                width: 180px;
                font-size: 20px;
                font-weight: normal;
                color: red;
              "
              >问卷总分:</span
            >
            <el-input
              v-model="ruleForm.scriptScore"
              placeholder="请输入分数"
            ></el-input>
          </div>
        </div>
        <el-button type="success" @click="submitForm('ruleForm')"
        <div class="presentation">
          <div :class="Operateit ? 'presentation-left' : 'spresentation-left'">
            <el-card class="box-card" style="min-height: 688px">
              <el-table
                v-loading="loading"
                :data="ruleForm.svyTemplateLibScripts"
              >
                <el-table-column
                  label="序号"
                  align="center"
                  key="sort"
                  prop="sort"
                  width="50"
                />
                <el-table-column
                  label="题目标题"
                  align="center"
                  key="scriptTopic"
                  prop="scriptTopic"
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  label="题型"
                  align="center"
                  key="scriptType"
                  prop="scriptType"
                  :show-overflow-tooltip="true"
                >
                  <template slot-scope="scope">
                    <dict-tag
                      :options="askvaluetype"
                      :value="scope.row.scriptType"
                    />
                  </template>
                </el-table-column>
                <el-table-column
                  v-if="!Operateit"
                  label="题目内容"
                  align="center"
                  key="scriptContent"
                  prop="scriptContent"
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  v-if="!Operateit"
                  label="指标名称"
                  align="center"
                  key="targetname"
                  prop="targetname"
                  :show-overflow-tooltip="true"
                />
                <el-table-column
                  v-if="!Operateit"
                  label="是否必填"
                  align="center"
                  key="ismandatory"
                  prop="ismandatory"
                  :show-overflow-tooltip="true"
                >
                  <template slot-scope="scope">
                    <dict-tag
                      :options="required"
                      :value="scope.row.ismandatory"
                    />
                  </template>
                </el-table-column>
                <el-table-column
                  label="下题跳转"
                  align="center"
                  key="nextScriptno"
                  prop="nextScriptno"
                  :show-overflow-tooltip="true"
                >
                  <template slot-scope="scope">
                    <span>{{
                      scope.row.nextScriptno == 0
                        ? "已是最后一题"
                        : scope.row.nextScriptno
                    }}</span>
                  </template>
                </el-table-column>
                <el-table-column
                  v-if="Operateit"
                  label="操作"
                  align="center"
                  width="250"
                  class-name="small-padding fixed-width"
                >
                  <template slot-scope="scope">
                    <el-button
                      icon="el-icon-edit"
                      type="primary"
                      circle
                      @click="handleUpdate(scope.row)"
                    ></el-button>
                    <el-button
                      type="danger"
                      icon="el-icon-delete"
                      circle
                      @click="handleDelete(scope.row)"
                    ></el-button>
                    <el-button
                      @click="syioption(scope.row)"
                      type="success"
                      icon="el-icon-top"
                      circle
                    ></el-button>
                    <el-button
                      @click="xiayioption(scope.row)"
                      type="success"
                      icon="el-icon-bottom"
                      circle
                    ></el-button>
                  </template>
                </el-table-column>
              </el-table>
            </el-card>
          </div>
          <div class="presentation-right" v-if="Operateit">
            <el-card class="box-card">
              <el-form
                :inline="true"
                :model="topicobj"
                class="demo-form-inline"
              >
                <div class="headline">题目设置详情</div>
                <el-row :gutter="10">
                  <el-col :span="12">
                    <el-form-item label="题目标题">
                      <el-input
                        v-model="topicobj.scriptTopic"
                        placeholder="请输入标题"
                      ></el-input> </el-form-item
                  ></el-col>
                  <el-col :span="12">
                    <el-form-item label="下题跳转">
                      <el-input
                        v-model="topicobj.nextScriptno"
                        placeholder="请输入题号"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row :gutter="10">
                  <el-col :span="12"
                    ><el-form-item label="题目类型">
                      <el-select
                        v-model="topicobj.scriptType"
                        disabled
                        size="medium"
                        filterable
                        placeholder="请选择分类"
                      >
                        <el-option
                          class="topicobjaa"
                          v-for="item in askvaluetype"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option> </el-select></el-form-item
                  ></el-col>
                  <el-col :span="12">
                    <el-form-item
                      label="题目分值"
                      v-if="topicobj.scoretype == 1"
                    >
                      <el-input
                        v-model="topicobj.score"
                        placeholder="请输入题号"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row :gutter="10">
                  <el-col :span="12"
                    ><el-form-item label="是否必填">
                      <el-radio-group v-model="topicobj.ismandatory">
                        <el-radio
                          v-for="(item, index) in required"
                          :label="item.value"
                          >{{ item.label }}</el-radio
                        >
                      </el-radio-group>
                    </el-form-item></el-col
                  >
                  <el-col :span="12"
                    ><el-form-item label="是否可用">
                      <el-radio-group v-model="topicobj.isavailable">
                        <el-radio
                          v-for="(item, index) in usable"
                          :label="item.value"
                          >{{ item.label }}</el-radio
                        >
                      </el-radio-group>
                    </el-form-item></el-col
                  >
                </el-row>
                <el-form-item
                  label="是否由选项配置跳转"
                  v-if="topicobj.scriptType == 1"
                >
                  <el-radio-group v-model="topicobj.branchFlag">
                    <el-radio :label="1">是</el-radio>
                    <el-radio :label="0">否</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item label="选中提示" v-if="topicobj.scriptType != 1">
                  <el-input
                    style="width: 24vw"
                    type="textarea"
                    autosize
                    placeholder="请输入内容"
                    v-model="topicobj.prompt"
                  >
                  </el-input
                ></el-form-item>
                <div
                  v-if="topicobj.scriptType == 1 || topicobj.scriptType == 2"
                >
                  <div class="headline">选项设置</div>
                  <div
                    class="topicxq"
                    v-for="item in topicobj.svyLibTemplateTargetoptions"
                  >
                    <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"
                            show-word-limit
                          >
                          </el-input>
                        </el-form-item>
                        <el-form-item
                          v-else-if="topicobj.scoretype == 2"
                          label="ABC等级"
                        >
                          <el-radio-group v-model="item.score">
                            <el-radio label="A">A</el-radio>
                            <el-radio label="B">B</el-radio>
                            <el-radio label="C">C</el-radio>
                          </el-radio-group>
                        </el-form-item>
                        <el-form-item
                          v-else-if="topicobj.scoretype == 3"
                          label="优良等级"
                        >
                          <el-radio-group v-model="item.score">
                            <el-radio label="优">优</el-radio>
                            <el-radio label="良">良</el-radio>
                            <el-radio label="差">差</el-radio>
                          </el-radio-group>
                        </el-form-item>
                      </el-col>
                    </el-row>
                    <el-row :gutter="10" v-if="topicobj.branchFlag == 1">
                      <el-col :span="20"
                        ><el-form-item label="下题跳转(序号)">
                          <el-input
                            type="text"
                            @blur="branchFlagfn"
                            placeholder="请输入题号"
                            v-model="item.nextQuestion"
                            show-word-limit
                          >
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row>
                    <el-row :gutter="10" v-if="topicobj.scriptType == 1">
                      <el-form-item label="选中提示">
                        <el-input
                          style="width: 24vw"
                          type="textarea"
                          autosize
                          placeholder="请输入内容"
                          v-model="item.prompt"
                        >
                        </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-input
                          style="width: 20vw"
                          type="textarea"
                          :rows="2"
                          placeholder="此处放置患者回答"
                          v-model="topicobj.reply"
                        >
                        </el-input
                      ></el-form-item>
                    </el-row>
                    <el-form-item label="分值">
                      <template #label>
                        分值
                        <el-tooltip
                          class="item"
                          effect="light"
                          content="填空题分数值由负责人员在问卷手机后手动评价。"
                          placement="top-start"
                        >
                          <i class="el-icon-warning-outline"></i>
                        </el-tooltip>
                        <!-- 在标签后插入红色星号 -->
                      </template>
                      <el-input
                        type="text"
                        placeholder="请输入选项分值"
                        v-model="topicobj.score"
                        show-word-limit
                      >
                      </el-input>
                    </el-form-item>
                  </div>
                </div>
              </el-form>
            </el-card>
          </div>
        </div>
        <el-button type="success" @click="nextstep('ruleForm')"
          >下一步</el-button
        >
        <el-button type="primary" @click="laststep()">上一步</el-button>
        <!-- <el-button @click="resetForm('ruleForm')">重置</el-button> -->
      </div>
      <!-- 结果反馈 -->
      <div v-if="Editprogress == 4">
        <el-form
          :model="ruleForm"
          :rules="rules"
          ref="ruleForm"
          label-width="100px"
          class="demo-ruleForm"
        <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button>
        <el-button @click="Departmenttreatment('ruleForm')"
          >保存题目数据</el-button
        >
          <el-form-item label="活动名称" prop="name">
            <el-input v-model="ruleForm.name"></el-input>
          </el-form-item>
          <el-form-item label="活动区域" prop="region">
            <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
              <el-option label="区域一" value="shanghai"></el-option>
              <el-option label="区域二" value="beijing"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="活动时间" required>
            <el-col :span="11">
              <el-form-item prop="date1">
                <el-date-picker
                  type="date"
                  placeholder="选择日期"
                  v-model="ruleForm.date1"
                  style="width: 100%"
                ></el-date-picker>
              </el-form-item>
            </el-col>
            <el-col class="line" :span="2">-</el-col>
            <el-col :span="11">
              <el-form-item prop="date2">
                <el-time-picker
                  placeholder="选择时间"
                  v-model="ruleForm.date2"
                  style="width: 100%"
                ></el-time-picker>
              </el-form-item>
            </el-col>
          </el-form-item>
          <el-form-item label="即时配送" prop="delivery">
            <el-switch v-model="ruleForm.delivery"></el-switch>
          </el-form-item>
          <el-form-item label="活动性质" prop="type">
            <el-checkbox-group v-model="ruleForm.type">
              <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
              <el-checkbox label="地推活动" name="type"></el-checkbox>
              <el-checkbox label="线下主题活动" name="type"></el-checkbox>
              <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
            </el-checkbox-group>
          </el-form-item>
          <el-form-item label="特殊资源" prop="resource">
            <el-radio-group v-model="ruleForm.resource">
              <el-radio label="线上品牌商赞助"></el-radio>
              <el-radio label="线下场地免费"></el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="活动形式" prop="desc">
            <el-input type="textarea" v-model="ruleForm.desc"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="success" @click="submitForm('ruleForm')"
              >立即创建</el-button
      </div>
      <!-- 问卷预览 -->
      <div v-if="Editprogress == 3">
        <div class="leftvlue-jbxx">问卷预览</div>
        <el-divider></el-divider>
        <div class="preview-left">
          <div v-for="item in ruleForm.svyTemplateLibScripts">
            <!-- 单选 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.scriptType == 1"
            >
            <el-button type="primary" @click="laststep()">上一步</el-button>
            <el-button @click="resetForm('ruleForm')">重置</el-button>
          </el-form-item>
        </el-form>
              <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="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
              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>
        <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button>
        <el-button>导出为pdf</el-button>
        <el-button type="primary" @click="laststep()">上一步</el-button>
      </div>
    </div>
    <!-- 预览模版弹窗 -->
    <!-- 添加题目弹窗 -->
    <el-drawer
      title="问卷预览"
      title="添加题目"
      :visible.sync="drawer"
      custom-class="demo-drawer"
      width="50%"
      size="50%"
    >
      <div class="preview-left">
        <!-- 单选 -->
        <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
          <div class="dev-text">
            {{ item.idd }}、[单选]&nbsp&nbsp<span>{{ item.wssd }}</span>
          </div>
          <div class="dev-xx">
            <el-radio-group v-model="radio">
              <el-radio
                v-for="(items, index) in item.sdadd"
                :key="index"
                :label="index"
                >{{ items }}</el-radio
      <div style="margin: 0 25px">
        <el-tabs v-model="activeName">
          <el-tab-pane label="题库选取" name="first">
            <div class="preview-left">
              <el-form
                :model="queryParams"
                ref="queryForm"
                size="small"
                :inline="true"
                label-width="98px"
              >
            </el-radio-group>
          </div>
        </div>
        <!-- 多选 -->
        <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
          <div class="dev-text">
            {{ item.idd }}、[多选]&nbsp&nbsp<span>{{ item.wssd }}</span>
          </div>
          <div class="dev-xx">
            <el-checkbox-group v-model="radios">
              <el-checkbox
                v-for="(items, index) in item.sdadd"
                :key="index"
                :label="index"
                <el-form-item label="问题标题" prop="scriptTopic">
                  <el-input
                    v-model="queryParams.scriptTopic"
                    placeholder="请输入"
                    clearable
                    style="width: 200px"
                    @keyup.enter.native="getaddtopiclist"
                  />
                </el-form-item>
                <el-form-item label="题目类型" prop="scriptTopic">
                  <el-select
                    v-model="queryParams.scriptType"
                    size="medium"
                    filterable
                    placeholder="请选择分类"
                  >
                    <el-option
                      class="topicobjaa"
                      v-for="item in askvaluetype"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item>
                  <el-button
                    type="primary"
                    icon="el-icon-search"
                    size="medium"
                    @click="getaddtopiclist"
                    >搜索</el-button
                  >
                  <el-button
                    icon="el-icon-refresh"
                    size="medium"
                    @click="resetQuery"
                    >重置</el-button
                  >
                </el-form-item>
              </el-form>
              <el-table v-loading="loading" :data="userList">
                <el-table-column
                  label="标题"
                  align="center"
                  key="scriptTopic"
                  prop="scriptTopic"
                  width="100"
                />
                <el-table-column
                  label="问题内容"
                  align="center"
                  key="scriptContent"
                  prop="scriptContent"
                  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="操作"
                  align="center"
                  class-name="small-padding fixed-width"
                >
                  <template slot-scope="scope">
                    <el-button
                      size="medium"
                      type="text"
                      @click="addtopic(scope.row)"
                      ><span class="button-textxg"
                        ><i class="el-icon-circle-plus-outline"></i>添加</span
                      ></el-button
                    >
                  </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-tab-pane>
          <el-tab-pane label="手动配置" name="second">
            <div class="preview-left">
              <el-form
                :inline="true"
                :model="indexform"
                class="demo-form-inline"
              >
                {{ items }}
              </el-checkbox>
            </el-checkbox-group>
          </div>
        </div>
        <!-- 填空 -->
        <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
          <div class="dev-text">
            {{ item.idd }}、[填空]&nbsp&nbsp<span>{{ item.wssd }}</span>
          </div>
          <div class="dev-xx">
            <el-input placeholder="请输入答案" v-model="radioas" clearable>
            </el-input>
          </div>
        </div>
                <div class="headline">
                  题目设置详情
                  <span style="margin-left: 30px"
                    ><el-button type="primary" @click="Submittopicobj"
                      >保存新增</el-button
                    ></span
                  >
                </div>
                <el-divider></el-divider>
                <div>
                  <el-row :gutter="10">
                    <el-col :span="12">
                      <el-form-item label="题目标题">
                        <el-input
                          v-model="indexform.scriptTopic"
                          placeholder="请输入题目标题"
                        ></el-input>
                      </el-form-item>
                    </el-col>
                    <el-col :span="12">
                      <el-form-item label="题目得分">
                        <el-input
                          v-model="indexform.score"
                          placeholder="请输入分数"
                        ></el-input>
                      </el-form-item>
                    </el-col>
                  </el-row>
                  <el-row :gutter="10">
                    <el-col :span="12">
                      <el-form-item label="评价类型">
                        <el-select
                          v-model="indexform.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-col :span="12">
                      <el-form-item label="语言">
                        <el-select
                          v-model="indexform.language"
                          size="medium"
                          filterable
                          placeholder="请选择分类"
                        >
                          <el-option
                            class="topicobjaa"
                            v-for="item in languagelist"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value"
                          >
                          </el-option>
                        </el-select>
                      </el-form-item>
                    </el-col>
                  </el-row>
                  <el-row :gutter="10">
                    <el-col :span="12">
                      <el-form-item label="是否可用">
                        <el-radio-group v-model="indexform.isAvailable">
                          <el-radio
                            v-for="(item, index) in usable"
                            :label="item.value"
                            >{{ item.label }}</el-radio
                          >
                        </el-radio-group>
                      </el-form-item>
                    </el-col>
                    <el-col :span="12">
                      <el-form-item label="是否必填">
                        <el-radio-group v-model="indexform.ismandatory">
                          <el-radio
                            v-for="(item, index) in required"
                            :label="item.value"
                            >{{ item.label }}</el-radio
                          >
                        </el-radio-group>
                      </el-form-item>
                    </el-col>
                  </el-row>
                  <el-row :gutter="10">
                    <el-col :span="18"
                      ><el-form-item label="题目内容">
                        <el-input
                          style="width: 400px"
                          type="textarea"
                          v-model="indexform.scriptContent"
                          placeholder="请从左侧列表选择"
                        ></el-input> </el-form-item
                    ></el-col>
                  </el-row>
                </div>
                <div>
                  <el-form-item label="指标名称" prop="deptId">
                    <el-input
                      v-model="indexform.targetname"
                      placeholder="请输入指标名称"
                      maxlength="20"
                    />
                  </el-form-item>
                  <el-form-item label="指标描述" prop="deptId">
                    <el-input
                      v-model="indexform.targetdesc"
                      placeholder="请输入指标描述"
                      maxlength="60"
                    />
                  </el-form-item>
                  <el-row>
                    <el-col :span="20">
                      <el-form-item label="值类型">
                        <el-radio-group v-model="indexform.valueType">
                          <el-radio :label="1">选项</el-radio>
                          <el-radio :label="2">文本</el-radio>
                          <el-radio :label="3">数值</el-radio>
                        </el-radio-group>
                      </el-form-item>
                    </el-col>
                  </el-row>
                  <el-row>
                    <el-col :span="20">
                      <el-form-item label="题目类型">
                        <el-radio-group v-model="indexform.scriptType">
                          <el-radio :label="1">单选</el-radio>
                          <el-radio :label="2">多选</el-radio>
                          <el-radio :label="4">问答</el-radio>
                        </el-radio-group>
                      </el-form-item>
                    </el-col>
                  </el-row>
                </div>
                <div class="topicxq" v-if="indexform.scriptType == 4">
                  <el-row>
                    <el-col :span="20">
                      <el-form-item label="收集内容">
                        <el-input
                          style="width: 400px"
                          type="textarea"
                          v-model="indexform.value"
                          placeholder="问题收集内容"
                        ></el-input>
                      </el-form-item>
                    </el-col>
                  </el-row>
                </div>
                <div v-else>
                  <div class="headline">
                    <div class="basics">
                      选项设置
                      <span style="margin-left: 30px"
                        ><el-button type="primary" round @click="addoption"
                          >+新增</el-button
                        ></span
                      >
                    </div>
                  </div>
                  <el-divider></el-divider>
                  <div
                    class="topicxq"
                    v-for="item in indexform.svyLibTemplateTargetoptions"
                    v-if="item.isoperation != 3"
                  >
                    <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
                          v-if="indexform.scoretype == 1"
                          label="分值"
                        >
                          <el-input
                            type="text"
                            placeholder="请输入选项分值"
                            v-model="item.score"
                            show-word-limit
                          >
                          </el-input>
                        </el-form-item>
                        <el-form-item
                          v-else-if="indexform.scoretype == 2"
                          label="ABC等级"
                        >
                          <el-radio-group v-model="item.score">
                            <el-radio label="A">A</el-radio>
                            <el-radio label="B">B</el-radio>
                            <el-radio label="C">C</el-radio>
                          </el-radio-group>
                        </el-form-item>
                        <el-form-item
                          v-else-if="indexform.scoretype == 3"
                          label="优良等级"
                        >
                          <el-radio-group v-model="item.score">
                            <el-radio label="优">优</el-radio>
                            <el-radio label="良">良</el-radio>
                            <el-radio label="差">差</el-radio>
                          </el-radio-group>
                        </el-form-item>
                      </el-col>
                      <el-col
                        :span="2"
                        :offsset="indexform.scoretype == 4 ? 11 : 0"
                      >
                        <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="预警提醒">
                        <el-radio-group v-model="item.isabnormal">
                          <el-radio :label="1">是</el-radio>
                          <el-radio :label="0">否</el-radio>
                        </el-radio-group>
                      </el-form-item>
                    </el-row>
                    <el-row :gutter="10" v-if="item.scriptType == 1">
                      <el-form-item label="选中提示">
                        <el-input
                          style="width: 400px"
                          type="textarea"
                          autosize
                          placeholder="请输入内容"
                          v-model="item.prompt"
                        >
                        </el-input
                      ></el-form-item>
                    </el-row>
                    <el-form-item label="选项文件" prop="sickness">
                      <div style="width: 40vw">
                        <el-upload
                          class="upload-demo"
                          :action="uploadImgUrl"
                          :headers="headers"
                          accept=".jpg,.png,image/*"
                          :on-success="handleChange.bind(this, item)"
                        >
                          <el-button size="small" type="primary"
                            >点击上传</el-button
                          >
                        </el-upload>
                        <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>
                  </div>
                </div>
              </el-form>
            </div>
          </el-tab-pane>
        </el-tabs>
      </div>
    </el-drawer>
    <!-- 添加适用疾病窗口 -->
    <Optional-Form
      ref="child"
      :dialogVisiblepatient="dialogVisiblepatient"
      :overallCase="illnesslist"
      @addoption="dialogVisiblepatient = false"
      @kkoption="dialogVisiblepatient = true"
    />
  </div>
</template>
<script>
import { listtag } from "@/api/system/label";
import { listDept } from "@/api/system/dept";
import store from "@/store";
import {
  getQtemplateclassify,
  delQtemplateclassify,
  addQtemplateclassify,
  getQtemplateobj,
  compileQtemplate,
  Qtemplateinfo,
  compileissue,
  delQtemplateinfo,
  Followupinfo,
  issueinfo,
  getissuelist,
  deltargetillness,
  addtargetillness,
  getillnesslist,
  illnesslistget,
  getillness,
} from "@/api/AiCentre/index";
import OptionalForm from "@/components/OptionalForm"; //正则组件
import { getToken } from "@/utils/auth";
export default {
  name: "Questionnaireinfo",
  components: { OptionalForm },
  data() {
    return {
      headers: {
        Authorization: "Bearer " + getToken(),
      },
      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
      sidecolumnrabs: "left", //方向
      Editprogress: 2, //编辑进度
      Editprogress: 1, //编辑进度
      currentVersion: "1.2.3", //当前版本
      loading: false, // 遮罩层
      drawer: false, //控制展开
      radio: "false", //单选题选中
      radios: [], //多选题选中
      radioas: "", //填空题答案
      activeName: "first",
      dynamicTags: [],
      inputVisible: false,
      dialogVisiblepatient: false, //适用疾病窗口
      inputValue: "",
      topicobj: {},
      // 总条数
      total: 1,
      ruleForm: {
        name: "",
        region: "",
        date1: "",
        date2: "",
        delivery: false,
        type: [],
        resource: "",
        desc: "",
        templatevalue: "",
        data2: "",
        svyTemplateLibScripts: [],
        tempDetpRelevances: [],
        svyLibTemplateTagList: [],
      },
      indexform: {
        svyLibTemplateTargetoptions: [],
      },
      rules: {},
      rulesa: {
        name: [
          { required: true, message: "请输入活动名称", trigger: "blur" },
          { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
        ],
        region: [
          { required: true, message: "请选择活动区域", trigger: "change" },
        ],
        date1: [
          {
            type: "date",
            required: true,
            message: "请选择日期",
            trigger: "change",
          },
        ],
        date2: [
          {
            type: "date",
            required: true,
            message: "请选择时间",
            trigger: "change",
          },
        ],
        type: [
          {
            type: "array",
            required: true,
            message: "请至少选择一个活动性质",
            trigger: "change",
          },
        ],
        resource: [
          { required: true, message: "请选择活动资源", trigger: "change" },
        ],
        desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }],
      },
      // options: [
      //   {
      //     value: "选项1",
      //     label: "黄金糕",
      //   },
      //   {
      //     value: "选项2",
      //     label: "双皮奶",
      //   },
      //   {
      //     value: "选项3",
      //     label: "蚵仔煎",
      //   },
      //   {
      //     value: "选项4",
      //     label: "龙须面",
      //   },
      //   {
      //     value: "选项5",
      //     label: "北京烤鸭",
      //   },
      // ],
      options: [
      rulesa: {},
      optionsclass: [], //分类列表
      optionlist: [
        { value: "scriptTopic", table: "scriptTopic" },
        { value: "scriptTopic", table: "scriptTopic" },
      ],
      appraiselist: [],
      fileList: [
        {
          value: "zhinan",
          label: "指南",
          children: [
            {
              value: "shejiyuanze",
              label: "设计原则",
              children: [
                {
                  value: "yizhi",
                  label: "一致",
                },
                {
                  value: "fankui",
                  label: "反馈",
                },
                {
                  value: "xiaolv",
                  label: "效率",
                },
                {
                  value: "kekong",
                  label: "可控",
                },
              ],
            },
            {
              value: "daohang",
              label: "导航",
              children: [
                {
                  value: "cexiangdaohang",
                  label: "侧向导航",
                },
                {
                  value: "dingbudaohang",
                  label: "顶部导航",
                },
              ],
            },
          ],
          name: "food.jpeg",
          url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
        },
        {
          value: "zujian",
          label: "组件",
          children: [
            {
              value: "basic",
              label: "Basic",
              children: [
                {
                  value: "layout",
                  label: "Layout 布局",
                },
                {
                  value: "color",
                  label: "Color 色彩",
                },
                {
                  value: "typography",
                  label: "Typography 字体",
                },
                {
                  value: "icon",
                  label: "Icon 图标",
                },
                {
                  value: "button",
                  label: "Button 按钮",
                },
              ],
            },
            {
              value: "form",
              label: "Form",
              children: [
                {
                  value: "radio",
                  label: "Radio 单选框",
                },
                {
                  value: "checkbox",
                  label: "Checkbox 多选框",
                },
                {
                  value: "input",
                  label: "Input 输入框",
                },
                {
                  value: "input-number",
                  label: "InputNumber 计数器",
                },
                {
                  value: "select",
                  label: "Select 选择器",
                },
                {
                  value: "cascader",
                  label: "Cascader 级联选择器",
                },
                {
                  value: "switch",
                  label: "Switch 开关",
                },
                {
                  value: "slider",
                  label: "Slider 滑块",
                },
                {
                  value: "time-picker",
                  label: "TimePicker 时间选择器",
                },
                {
                  value: "date-picker",
                  label: "DatePicker 日期选择器",
                },
                {
                  value: "datetime-picker",
                  label: "DateTimePicker 日期时间选择器",
                },
                {
                  value: "upload",
                  label: "Upload 上传",
                },
                {
                  value: "rate",
                  label: "Rate 评分",
                },
                {
                  value: "form",
                  label: "Form 表单",
                },
              ],
            },
            {
              value: "data",
              label: "Data",
              children: [
                {
                  value: "table",
                  label: "Table 表格",
                },
                {
                  value: "tag",
                  label: "Tag 标签",
                },
                {
                  value: "progress",
                  label: "Progress 进度条",
                },
                {
                  value: "tree",
                  label: "Tree 树形控件",
                },
                {
                  value: "pagination",
                  label: "Pagination 分页",
                },
                {
                  value: "badge",
                  label: "Badge 标记",
                },
              ],
            },
            {
              value: "notice",
              label: "Notice",
              children: [
                {
                  value: "alert",
                  label: "Alert 警告",
                },
                {
                  value: "loading",
                  label: "Loading 加载",
                },
                {
                  value: "message",
                  label: "Message 消息提示",
                },
                {
                  value: "message-box",
                  label: "MessageBox 弹框",
                },
                {
                  value: "notification",
                  label: "Notification 通知",
                },
              ],
            },
            {
              value: "navigation",
              label: "Navigation",
              children: [
                {
                  value: "menu",
                  label: "NavMenu 导航菜单",
                },
                {
                  value: "tabs",
                  label: "Tabs 标签页",
                },
                {
                  value: "breadcrumb",
                  label: "Breadcrumb 面包屑",
                },
                {
                  value: "dropdown",
                  label: "Dropdown 下拉菜单",
                },
                {
                  value: "steps",
                  label: "Steps 步骤条",
                },
              ],
            },
            {
              value: "others",
              label: "Others",
              children: [
                {
                  value: "dialog",
                  label: "Dialog 对话框",
                },
                {
                  value: "tooltip",
                  label: "Tooltip 文字提示",
                },
                {
                  value: "popover",
                  label: "Popover 弹出框",
                },
                {
                  value: "card",
                  label: "Card 卡片",
                },
                {
                  value: "carousel",
                  label: "Carousel 走马灯",
                },
                {
                  value: "collapse",
                  label: "Collapse 折叠面板",
                },
              ],
            },
          ],
        },
        {
          value: "ziyuan",
          label: "资源",
          children: [
            {
              value: "axure",
              label: "Axure Components",
            },
            {
              value: "sketch",
              label: "Sketch Templates",
            },
            {
              value: "jiaohu",
              label: "组件交互文档",
            },
          ],
          name: "food2.jpeg",
          url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
        },
      ],
      variablelist: [
        {
          variable: "paitent",
          value: "表示患者的标识",
        },
      ],
      valssu: [
        {
          idd: 1,
@@ -760,100 +1247,746 @@
          sdadd: ["sss", "ssccss", "ssaas", "ss"],
        },
      ],
      // options: [
      //   {
      //     value: "选项1",
      //     label: "单选",
      //   },
      //   {
      //     value: "选项2",
      //     label: "多选",
      //     disabled: true,
      //   },
      //   {
      //     value: "选项3",
      //     label: "填空",
      //   },
      // ],
      addvalue: "添加题目",
      // 题目表格数据
      userList: [
        {
          userid: "1",
          userName: "一号问卷",
        },
        {
          userid: "2",
          userName: "二号问卷",
        },
        {
          userid: "3",
          userName: "三号问卷",
        },
        {
          userid: "4",
          userName: "四号问卷",
        },
      userList: [],
      deptList: [],
      props: { multiple: true, value: "deptId", label: "deptName" },
      themelist: [],
      languagelist: [],
      courtyardlist: [],
      askvaluetype: [],
      precedencetype: [],
      inputValueillness: "",
      inputVisible: false,
      inputVisibleillness: false,
      illnessVisible: false, //指标疾病弹框
      Operateit: true,
      deptOptions: [],
      optionsillness: [],
      delScriptVOList: [],
      illnesslistapi: [],
      illnesslist: [],
      tempDetpRelevanceslist: [],
      optionstag: [],
      valuetype: [],
      qremark: [],
      usable: [
        { value: "0", label: "可用" },
        { value: "1", label: "停用" },
      ],
      required: [
        { value: "1", label: "必填" },
        { value: "2", label: "不必填" },
      ],
      mode: [], //方式
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        userName: undefined,
        phonenumber: undefined,
        status: undefined,
        deptId: undefined,
        IDnumber: undefined,
      },
      arr: [
        [
          { id: 1, grade: "5" },
          { id: 2, grade: "5" },
          { id: 3, grade: "5" },
          { id: 4, grade: "5" },
        ],
        [
          { id: 1, grade: "5" },
          { id: 3, grade: "5" },
          { id: 4, grade: "5" },
        ],
        [
          { id: 1, grade: "5" },
          { id: 2, grade: "5" },
          { id: 4, grade: "5" },
        ],
      ],
    };
  },
  activated() {
    console.log(this.id);
  created() {},
    if (this.id != this.$route.query.id) {
      this.getissueinfo();
      this.gettabList();
    } else {
      this.ruleForm.svyTemplateLibScripts =
        this.ruleForm.svyTemplateLibScripts.filter(
          (item) => item.isoperation != 3
        );
      this.ruleForm.svyLibTemplateTagList =
        this.ruleForm.svyLibTemplateTagList.filter(
          (item) => item.isoperation != 3
        );
      this.delScriptVOList = [];
      this.$forceUpdate();
      console.log(this.ruleForm.svyTemplateLibScripts);
    }
  },
  created() {
    this.getissueinfo();
    this.gettabList();
    this.mode = store.getters.Askmode;
    this.languagelist = store.getters.languagelist;
    this.usable = store.getters.usable;
    this.required = store.getters.required;
    this.valuetype = store.getters.valuetype;
    this.courtyardlist = store.getters.courtyardlist;
    this.askvaluetype = store.getters.askvaluetype;
    this.appraiselist = store.getters.appraiselist;
    // this.test();
  },
  computed: {
    displayedTags() {
      // 返回前10个tag
      return this.illnesslist.slice(0, 10);
    },
    hasMore() {
      // 判断是否有更多的tag
      return this.illnesslist.length > 10;
    },
    remaining() {
      // 计算剩余的tag数量
      return this.illnesslist.length - 10;
    },
  },
  methods: {
    submitForm(formName) {
      if (this.Editprogress <= 3) {
        return this.Editprogress++;
      }
      this.rules = this.rulesa;
      //   提交
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert("submit!");
        } else {
          console.log("error submit!!");
          return false;
    // 公共方法---------------
    getIndexInArray(arr, obj) {
      return arr.indexOf(obj);
    },
    processElement(element) {
      return { ...element, isoperation: 1 };
    },
    // 递归扁平化
    flattenArray(arr) {
      let result = [];
      arr.forEach((item) => {
        result.push(item);
        if (item.svyLibTemplateCategoryList) {
          result = result.concat(
            this.flattenArray(item.svyLibTemplateCategoryList)
          );
          delete item.svyLibTemplateCategoryList;
        }
      });
      return result;
    },
    /** 查询题目列表 */
    getList() {
      //   this.loading = true;
      listUser().then((response) => {
        console.log(response);
        // this.userList = response.data;
        // this.total = response.total;
        // this.loading = false;
    // -----------------------------
    // 获取数据
    getissueinfo() {
      this.id = this.$route.query.id;
      this.ruleForm = {
        svyTemplateLibScripts: [],
        tempDetpRelevances: [],
        svyLibTemplateTagList: [],
      };
      this.topicobj = {};
      if (this.id) {
        getQtemplateobj({ svyid: this.id }).then((res) => {
          this.ruleForm = res.rows[0];
          this.dynamicTags = this.ruleForm.svyLibTemplateTagList.map(
            this.processElement
          );
          this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
          this.ruleForm.suitway = this.ruleForm.suitway.split(",");
        });
        getillness({ outid: this.id, type: 5 }).then((res) => {
          this.illnesslist = res.rows;
          this.illnesslist.forEach((item) => {
            item.icdname = item.icd10name;
          });
        });
      } else {
        this.ruleForm.isenable = "1";
      }
      listDept(this.queryParams).then((response) => {
        this.deptList = this.handleTree(response.data, "deptId");
      });
      // 分类
      getQtemplateclassify({}).then((res) => {
        this.optionsclass = res.rows;
      });
    },
    submitForm(formName) {
      this.$modal.loading("正在修正保存数据,请稍候...");
      if (this.ruleForm.suitway) {
        this.ruleForm.suitway = this.ruleForm.suitway.join(",");
      }
      if (!this.ruleForm.categoryid) {
        this.ruleForm.categoryid = -1;
      }
      if (this.id) {
        this.ruleForm.isoperation = 2;
        compileQtemplate(this.ruleForm).then((res) => {
          this.$modal.msgSuccess("修改成功");
          this.confirmillness();
          this.$modal.closeLoading();
          this.$router.go(-1);
        });
      } else {
        this.ruleForm.isoperation = 1;
        this.ruleForm.version = this.ruleForm.version
          ? this.ruleForm.version
          : "1.0";
        compileQtemplate(this.ruleForm).then((res) => {
          this.$modal.msgSuccess("新增成功");
          this.confirmillness(res.data);
          this.$modal.closeLoading();
          this.$router.go(-1);
        });
      }
    },
    // 科室处理
    Departmenttreatment() {
      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
      this.ruleForm.svyTemplateLibScripts =
        this.ruleForm.svyTemplateLibScripts.concat(this.delScriptVOList);
      const result = this.tempDetpRelevanceslist.map(
        (subArr) => subArr[subArr.length - 1]
      );
      // id数组查数组对象
      result.forEach((item) => {
        const condition = this.ruleForm.tempDetpRelevances.some(
          (obj) => obj.deptId === item
        );
        if (!condition) {
          listDept({ deptId: item }).then((res) => {
            console.log(res.data[0]);
            res.data[0].type = 2;
            this.ruleForm.tempDetpRelevances.push(res.data[0]);
          });
        }
      });
      // 数组对象查id数组
      this.ruleForm.tempDetpRelevances.forEach((item) => {
        const condition = result.some((obj) => obj === item.deptId);
        if (!condition) {
          const index = this.ruleForm.tempDetpRelevances.indexOf(item);
          this.ruleForm.tempDetpRelevances[index].delFlag = 1;
        }
      });
      setTimeout(() => {
        this.submitForm();
      }, 1000);
    },
    // 下一步
    nextstep() {
      if (this.Editprogress <= 2) {
        return this.Editprogress++;
      }
    },
    // 上一步
    laststep() {
      this.Editprogress = this.Editprogress - 1;
    },
    // 关闭
    closeFm() {
      this.$confirm("退出不会保留页面内容更改, 是否继续?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          this.$router.go(-1);
        })
        .catch(() => {
          this.$message({
            type: "info",
            message: "已取消",
          });
        });
    },
    // 获取题目列表
    getaddtopiclist() {
      this.drawer = true;
      this.queryParams.scoretype = this.ruleForm.scoreType;
      getissuelist(this.queryParams).then((res) => {
        this.loading = false;
        this.userList = res.rows;
        this.total = res.total;
        console.log(this.userList);
      });
      //   const { rows } = await listUser();
      //   console.log(rows);
      //   this.list = rows;
    },
    changeaddtopic(val) {
      console.log(11);
      console.log(val);
      this.addvalue = "添加题目";
    // 新增题目
    addtopic(row) {
      row.isoperation = 1;
      row.svyLibScriptOptions.forEach((item) => {
        item.isoperation = 1;
      });
      row.svyLibTemplateTargetoptions = row.svyLibScriptOptions;
      this.ruleForm.svyTemplateLibScripts.push(row);
      this.sortFn();
      this.$modal.msgSuccess("新增成功");
    },
    // 预览模版
    PreviewTemplate() {
      this.drawer = true;
    handleDelete(row) {
      let index = this.ruleForm.svyTemplateLibScripts.indexOf(row);
      this.ruleForm.svyTemplateLibScripts.splice(index, 1);
      row.isoperation = 3;
      this.delScriptVOList.push(row);
      this.sortFn();
    },
    laststep() {
      this.Editprogress--;
    handleUpdate(row) {
      this.topicobj = row;
      this.radioas = "";
      // getissuelist({ svyid: row.svyid }).then((res) => {
      // });
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
    syioption(row) {
      const index = this.getIndexInArray(
        this.ruleForm.svyTemplateLibScripts,
        row
      );
      const item = this.ruleForm.svyTemplateLibScripts.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
      this.ruleForm.svyTemplateLibScripts.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
      this.sortFn();
    },
    xiayioption(row) {
      const index = this.getIndexInArray(
        this.ruleForm.svyTemplateLibScripts,
        row
      );
      const item = this.ruleForm.svyTemplateLibScripts.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
      this.ruleForm.svyTemplateLibScripts.splice(index + 1, 0, item); // 将item插入到索引位置的前一位
      this.sortFn();
    },
    sortFn() {
      this.ruleForm.svyTemplateLibScripts.forEach((item, index) => {
        item.sort = Number(index) + 1;
        if (item.sort == this.ruleForm.svyTemplateLibScripts.length) {
          item.nextScriptno = 0;
        } else {
          item.nextScriptno = item.sort + 1;
        }
        if (item.svyLibTemplateTargetoptions) {
          item.svyLibTemplateTargetoptions.forEach((items) => {
            items.nextQuestion = Number(item.sort) + 1;
          });
        }
      });
      console.log(this.ruleForm.svyTemplateLibScripts);
    },
    // 修改题目信息
    Submittopicobj() {
      this.$modal
        .confirm(
          '是否确认新增名称为"' + this.indexform.scriptTopic + '"的问题数据?'
        )
        .then(() => {
          this.indexform.isoperation = 1;
          this.indexform.svyLibTemplateTargetoptions.forEach((item) => {
            item.isoperation = 1;
          });
          this.ruleForm.svyTemplateLibScripts.push(this.indexform);
          this.indexform = { svyTemplateLibScripts: [] };
          this.drawer = false;
          this.sortFn();
          this.$modal.msgSuccess("题目新增成功,保存模板失效");
        });
    },
    // 新增变量
    addvariable() {
      this.variablelist.push({
        variable: "",
        value: "",
      });
    },
    // 删除变量
    delvariable(item) {
      const index = this.variablelist.indexOf(item);
      if (index !== -1) {
        this.variablelist.splice(index, 1); // 从索引位置删除一个元素
      } else {
        console.log("未找到该对象");
      }
    },
    // 标签-----------------
    gettabList() {
      const tagqueryParams = {
        pageNum: 1,
        pageSize: 1000,
        tagcategoryid: "0",
      };
      listtag(tagqueryParams).then((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.ruleForm.svyLibTemplateTagList[lindex].delFlag = 1;
      // this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3;
    },
    handleInputConfirm() {
      let tagvalue = {};
      let tagname = this.inputValue;
      if (tagname) {
        listtag({
          pageNum: 1,
          pageSize: 1000,
          tagcategoryid: "0",
          tagname: tagname,
        }).then((res) => {
          if (res.rows[0]) {
            tagvalue = res.rows[0];
            tagvalue.isoperation = 1;
          } else {
            tagvalue = {
              tagname: tagname,
              isoperation: 1,
            };
          }
          this.ruleForm.svyLibTemplateTagList.push(tagvalue);
          // this.dynamicTags.push(tagvalue);
          this.dynamicTags.push(tagvalue);
        });
      }
      this.inputVisible = false;
      this.inputValue = "";
    },
    remoteMethodtag(query) {
      if (query !== "") {
        this.loading = true;
        setTimeout(() => {
          this.loading = false;
          listtag({ tagname: query, tagcategoryid: "0" }).then((res) => {
            this.optionstag = res.rows;
          });
        }, 200);
      } else {
        this.optionstag = [];
      }
    },
    showInput() {
      this.inputVisible = true;
    },
    // 保存疾病
    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) => {});
        }
      });
      this.illnessVisible = false;
      this.$modal.msgSuccess("编辑成功");
    },
    resetQuery() {
      this.queryParams = { pageNum: 1, pageSize: 10 };
      this.getaddtopiclist();
    },
    // --------------------------
    // 问卷分数限制算法
    // 混合路线
    generateCombinations(arrays, currentIndex = 0, currentCombination = []) {
      if (currentIndex === arrays.length) {
        return [currentCombination];
      }
      const currentArray = arrays[currentIndex];
      const newCombinations = [];
      for (const item of currentArray) {
        const newCombination = [...currentCombination, item];
        const combinations = this.generateCombinations(
          arrays,
          currentIndex + 1,
          newCombination
        );
        newCombinations.push(...combinations);
      }
      return newCombinations;
    },
    // 执行
    test() {
      console.log(this.ruleForm.svyTemplateLibScripts);
      const arraysa = [
        {
          id: 1,
          Topicjump: "2",
          branchFlag: "0",
          arr: [
            { name: "不错", skip: 2 },
            { name: "一般", skip: 2 },
            { name: "还不错", skip: 2 },
            { name: "很棒", skip: 3 },
          ],
        },
        {
          id: 2,
          Topicjump: "4",
          branchFlag: "1",
          arr: [
            { name: "优秀", skip: 4 },
            { name: "良好", skip: 3 },
            { name: "一般", skip: 3 },
            { name: "较差", skip: 3 },
          ],
        },
        {
          id: 3,
          Topicjump: "4",
          branchFlag: "1",
          arr: [
            { name: "是的", skip: 4 },
            { name: "不清楚", skip: 5 },
            { name: "还可", skip: 4 },
            { name: "一般", skip: 4 },
          ],
        },
        {
          id: 4,
          Topicjump: "5",
          branchFlag: "0",
          bac: null,
        },
        {
          id: 5,
          Topicjump: "0",
          branchFlag: "0",
          arr: [
            { name: "真不错", skip: 0 },
            { name: "还可以", skip: 0 },
            { name: "一般般", skip: 0 },
            { name: "不清楚", skip: 0 },
          ],
        },
      ];
      const csnewMixArray = this.csgetExecutionOrders(arraysa);
      console.log(csnewMixArray, "测试全部路线");
      const newMixArray = this.getExecutionOrders(
        this.ruleForm.svyTemplateLibScripts
      );
      console.log(newMixArray, "全部路线");
      this.sumArray(newMixArray);
    },
    // 遍历方法
    csgetExecutionOrders(arrays) {
      const allPaths = [];
      const findPath = (currentId, path) => {
        const current = arrays.find((item) => item.id.toString() === currentId);
        if (!current) return;
        path.push(current);
        if (current.branchFlag === "1") {
          current.arr.forEach((option) => {
            findPath(option.skip.toString(), path.slice());
          });
        } else {
          const nextId = parseInt(current.Topicjump);
          if (nextId !== 0) {
            findPath(nextId.toString(), path.slice());
          } else {
            allPaths.push(path.slice());
          }
        }
      };
      findPath("1", []);
      return allPaths;
    },
    // 遍历方法
    getExecutionOrders(arrays) {
      const allPaths = [];
      const findPath = (currentId, path) => {
        const current = arrays.find(
          (item) => item.sort.toString() === currentId
        );
        if (!current) return;
        path.push(current);
        if (current.branchFlag == "1") {
          current.svyLibTemplateTargetoptions.forEach((option) => {
            findPath(option.nextQuestion.toString(), path.slice());
          });
        } else {
          const nextId = parseInt(current.nextScriptno);
          if (nextId !== 0) {
            findPath(nextId.toString(), path.slice());
          } else {
            allPaths.push(path.slice());
          }
        }
      };
      findPath("1", []);
      return allPaths;
    },
    // 数组求和
    sumArray(arr) {
      // const arrsum = arr;
      // arrsum.forEach((item) => {
      //   // 判断题目和模板层级
      //   console.log(item, "一条链路");
      //   const totalScore = item.reduce((accumulator, current) => {
      //     return accumulator + Number(current.score);
      //   }, 0);
      //   console.log(totalScore);
      //   console.log(this.ruleForm.scriptScore);
      //   if (totalScore == this.ruleForm.scriptScore) {
      //     this.ClaimNofn(arr);
      //     this.$modal.msgSuccess("分数核验成功");
      //   }
      // });
      const allGreaterThanTen = arr.every((array) => {
        const totalScore = array.reduce((accumulator, current) => {
          return accumulator + Number(current.score);
        }, 0);
        console.log(totalScore);
        console.log(this.ruleForm.scriptScore);
        return totalScore == this.ruleForm.scriptScore;
      });
      if (allGreaterThanTen) {
        this.$modal.msgSuccess("分值校验成功");
      } else {
        this.$modal.msgError("题目分值累加和模板分值不符");
      }
    },
    // 遍历是否重复是否都用上
    ClaimNofn(arr) {
      arr.forEach((item) => {
        const Aarr = item;
        const Barr = this.ruleForm.svyTemplateLibScripts;
        const notInB = A.filter(
          (itemA) => !B.some((itemB) => itemB.id === itemA.id)
        );
        if (notInB.length) {
          this.$modal.msgError("题目未全部使用");
        } else {
          this.$modal.msgSuccess("题目全部使用");
        }
      });
      arr.forEach((item) => {
        const idCount = arr.reduce((acc, item) => {
          acc[item.id] = (acc[item.id] || 0) + 1;
          return acc;
        }, {});
        const whether = item.values(idCount).some((count) => count > 1); // 如果有任何 id 的计数大于 1 就返回 true
        if (!whether) this.$modal.msgError("配置项有题目重复");
      });
    },
    // 题目和选项间的分值判断
    Scorejudgment() {
      let scorearr = this.topicobj.svyLibScriptOptions;
      let isValid = scorearr.every((score, index) => {
        if (this.topicobj.scriptType == 1) {
          if (score.score) {
            if (
              Number(score.score) < 0 ||
              Number(score.score) > Number(this.topicobj.score)
            ) {
              console.log(score, "错误分值");
              this.$message({
                message: "选项分值必须在0到" + this.topicobj.score + "分之间",
                type: "warning",
              });
              return false;
            }
            return true;
          } else {
            this.$message({
              message: "选项分值未设置",
              type: "warning",
            });
            return false;
          }
        } else if (this.topicobj.scriptType == 2) {
          // 累加分值
          const totalScore = scorearr.reduce((acc, score) => {
            if (score.score) {
              return acc + Number(score.score);
            }
            return acc; // 如果 score.score 不存在,不累加
          }, 0);
          // 检查累加的分值是否等于 this.topicobj.score
          if (totalScore !== Number(this.topicobj.score)) {
            this.$message({
              message:
                "多选题选项分值总和必须等于 " + this.topicobj.score + " 分",
              type: "warning",
            });
            return false;
          }
          return true; // 如果总分正确,返回 true
        } else if (this.topicobj.scriptType == 4) {
          return true;
        }
      });
      if (isValid) {
        this.compileissue();
      }
    },
    // ---------------------------------------------------------
    // 新问题新增
    addoption() {
      if (!this.indexform.svyLibTemplateTargetoptions) {
        this.indexform.svyLibTemplateTargetoptions = [];
      }
      this.indexform.svyLibTemplateTargetoptions.push({
        score: "",
        isoperation: 1,
      });
      console.log(this.indexform.svyLibTemplateTargetoptions);
    },
    // 选项文件上传
    handleChange(item, response, file, fileList) {
      console.log(response);
      if (response.code == 200) {
        console.log(item);
        let index = this.indexform.svyLibTemplateTargetoptions.findIndex(
          (obj) => obj.optioncontent == item.optioncontent
        );
        console.log(index);
        this.indexform.svyLibTemplateTargetoptions[index].picturePath =
          response.url;
        console.log(this.indexform.svyLibTemplateTargetoptions[index]);
        this.$forceUpdate();
      } else {
        this.$message.error("图片插入失败");
      }
    },
    branchFlagfn(row) {
      console.log(row);
      if (this.topicobj.branchFlag == 1 && this.topicobj.nextScriptno != 0) {
        this.topicobj.nextScriptno =
          this.topicobj.svyLibTemplateTargetoptions[0].nextQuestion;
      }
    },
  },
};
@@ -861,29 +1994,25 @@
<style lang="scss" scoped>
.Questionnairemanagement {
  display: flex;
  // display: flex;
}
.sidecolumn {
  width: 300px;
  min-height: 100vh;
  text-align: center;
  //   display: flex;
  //   margin-top: 20px;
  margin: 20px;
  margin-bottom: 0;
  padding: 30px;
  margin: 10px 20px 0 20px;
  padding: 20px;
  background: #edf1f7;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
    0 0 6px 0 rgba(0, 0, 0, 0.04);
}
.leftvlue {
  //   display: flex;
  //   flex: 1;
  width: 80%;
  margin-top: 20px;
  //   margin: 20px;
  // //   display: flex;
  // //   flex: 1;
  // width: 80%;
  // margin-top: 20px;
  margin: 20px;
  padding: 30px;
  padding-top: 5px;
  margin-top: 10px;
  background: #ffff;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
@@ -892,12 +2021,12 @@
    font-size: 20px;
  }
  .leftvlue-jbxx {
    margin-bottom: 50px;
    font-size: 20px;
    span {
      position: absolute;
      right: 80px;
    }
    display: flex; /* 使用 Flexbox 布局 */
    justify-content: space-between;
    font-size: 24px;
    border-left: 5px solid #41a1be;
    padding-left: 5px;
    margin: 15px 0;
  }
  .demo-cascader {
    margin-right: 20px;
@@ -917,12 +2046,52 @@
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
    0 0 6px 0 rgba(0, 0, 0, 0.04);
  .topic-dev {
  .scriptTopic-dev {
    margin-bottom: 25px;
    font-size: 20px !important;
    .dev-text {
      margin-bottom: 10px;
    }
  }
}
.headline {
  display: flex;
  justify-content: space-between;
  font-size: 20px;
  border-left: 3px solid #41a1be;
  padding-left: 5px;
  margin: 15px 0;
}
.xinz-inf {
  font-size: 18px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 48px;
  .el-tag + .el-tag {
    margin-left: 10px;
  }
  .button-new-tag {
    margin-left: 10px;
    height: 32px;
    line-height: 30px;
    padding-top: 0;
    padding-bottom: 0;
  }
  .input-new-tag {
    width: 90px;
    margin-left: 10px;
    vertical-align: bottom;
  }
}
.xinz-infs {
  font-size: 18px;
  line-height: 48px;
  .el-tag + .el-tag {
    margin-left: 10px;
  }
}
.addtopic {
@@ -932,8 +2101,18 @@
  margin: 20px 0;
  display: flex;
  .presentation-left {
    width: 50%;
    height: 500px;
    width: 45%;
    // height: 500px;
    .button-textxg {
      color: #024df0;
    }
    .button-textsc {
      color: #f52727;
    }
  }
  .spresentation-left {
    width: 100%;
    // height: 500px;
    .button-textxg {
      color: #024df0;
    }
@@ -942,23 +2121,46 @@
    }
  }
  .presentation-right {
    width: 50%;
    height: 500px;
    padding: 20px;
    width: 55%;
    max-height: 688px;
    padding: 0 20px;
    font-size: 18px;
    border: 1px solid #909091;
    span {
      padding: 0 35px;
      margin-right: 10px;
      border-bottom: 1px solid #909091;
    }
    overflow: auto;
    .headline {
      font-size: 20px;
      border-left: 3px solid #41a1be;
      padding-left: 5px;
      margin: 15px 0;
    }
    .topicxq {
      background-color: #e2f5fc;
      border-radius: 4px;
      margin-top: 10px;
      padding-left: 10px;
      padding-top: 15px;
    }
  }
}
.topicxq {
  background-color: #e2f5fc;
  border-radius: 4px;
  margin-top: 15px;
  margin-left: 10%;
  padding-left: 20px;
  padding-top: 15px;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
    0 0 6px 0 rgba(0, 0, 0, 0.04);
}
.custom-width {
  width: 100px; /* 设置宽度样式 */
}
.el-select {
  width: 280px;
}
.el-cascader {
  width: 40%;
}
::v-deep .addtopic-input {
  input {
@@ -971,7 +2173,7 @@
  font-size: 25px;
}
::v-deep.el-input--medium {
  font-size: 24px !important;
  font-size: 18px !important;
}
::v-deep.ruleFormaa.el-select {
  display: inline-block;
@@ -986,7 +2188,7 @@
  width: 22px;
  height: 22px;
}
// ::v-deep.topic-dev.el-radio__label {
// ::v-deep.scriptTopic-dev.el-radio__label {
//   font-size: 24px;
// }
::v-deep.el-radio-group {