WXL
2024-10-12 2fe94c2414aa1b8840e4dbf9a8e19121a8a867b6
src/views/repositoryai/templateku/configurat/index.vue
@@ -14,13 +14,13 @@
          <el-step>
            <template slot="title">
              <span style="cursor: pointer" @click="Editprogress = 2"
                >随访模版题目</span
                >随访模板题目</span
              >
            </template>
          </el-step>
          <el-step description="查看随访模版预览,可导出PDF">
          <el-step description="查看随访模板预览,可导出PDF">
            <template slot="title">
              <span style="cursor: pointer" @click="preview">随访模版预览</span>
              <span style="cursor: pointer" @click="preview">随访模板预览</span>
            </template>
          </el-step>
        </el-steps>
@@ -41,7 +41,7 @@
        >
          <el-row>
            <el-col :span="12">
              <el-form-item label="模版名称" prop="region">
              <el-form-item label="模板名称" prop="region">
                <div>
                  <el-input
                    v-model="ruleForm.templateName"
@@ -51,7 +51,7 @@
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="随访模版分类" prop="region">
              <el-form-item label="随访模板分类" prop="region">
                <el-select
                  v-model="ruleForm.assortid"
                  size="medium"
@@ -75,16 +75,20 @@
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="模板简介" prop="note">
                <div>
                  <el-input
                    type="textarea"
                    placeholder="请输入简介"
                    v-model="ruleForm.note"
                  ></el-input>
                </div>
              </el-form-item>
            </el-col>
          </el-row>
          <el-form-item label="模版简介" prop="note">
            <div style="width: 50%">
              <el-input
                type="textarea"
                placeholder="请输入简介"
                v-model="ruleForm.note"
              ></el-input>
            </div>
          </el-form-item>
          <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="版本号" prop="version">
@@ -249,40 +253,52 @@
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="适用科室" prop="region">
            <el-cascader
              style="width: 500px"
              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-form-item label="通用库" prop="region">
            <el-select
              style="width: 500px"
              v-model="ruleForm.submoduleID"
              size="medium"
              multiple
              filterable
              placeholder="请选择库(多选)"
            >
              <el-option
                class="ruleFormaa"
                v-for="item in generallist"
                :key="item.id"
                :label="item.extName"
                :value="item.id"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-row>
            <el-col :span="20"
              ><el-form-item label="适用科室" prop="region">
                <el-select
                  v-model="tempDetpRelevanceslist"
                  @remove-tag="removetag"
                  style="width: 55vw"
                  size="medium"
                  multiple
                  filterable
                  placeholder="请选择科室"
                >
                  <el-option
                    class="ruleFormaa"
                    v-for="item in belongDepts"
                    :key="item.deptCode"
                    :label="item.deptName"
                    :value="item.deptCode"
                  >
                  </el-option>
                </el-select> </el-form-item
            ></el-col>
          </el-row>
          <el-row>
            <el-col :span="20"
              ><el-form-item label="适用病区" prop="region">
                <el-select
                  v-model="tempbelongWards"
                  @remove-tag="removehpsp"
                  style="width: 55vw"
                  size="medium"
                  multiple
                  filterable
                  placeholder="请选择科室"
                >
                  <el-option
                    class="ruleFormaa"
                    v-for="item in belongWards"
                    :key="item.districtCode"
                    :label="item.districtName"
                    :value="item.districtCode"
                  >
                  </el-option>
                </el-select> </el-form-item
            ></el-col>
          </el-row>
          <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="随访前处理" prop="name">
@@ -331,14 +347,14 @@
            <el-button
              type="success"
              @click="Departmenttreatment('ruleForm')"
              >{{ task ? "保存到任务模版" : "保存随访模版基础信息" }}</el-button
              >{{ task ? "保存到任务模板" : "保存随访模板基础信息" }}</el-button
            >
          </el-form-item>
        </el-form>
      </div>
      <!-- 随访模版设置 -->
      <!-- 随访模板设置 -->
      <div v-if="Editprogress == 2">
        <div class="leftvlue-jbxx">随访模版题目设置</div>
        <div class="leftvlue-jbxx">随访模板题目设置</div>
        <el-divider></el-divider>
        <div class="addtopic">
          <el-button
@@ -348,9 +364,16 @@
            @click="getaddtopiclist"
            >添加题目</el-button
          >
          <el-button
            type="success"
            icon="el-icon-edit-outline"
            round
            @click="Operateit = !Operateit"
            >{{ !Operateit ? "编辑题目" : "完整信息展示" }}</el-button
          >
        </div>
        <div class="presentation">
          <div class="presentation-left">
          <div :class="Operateit ? 'presentation-left' : 'spresentation-left'">
            <el-card class="box-card" style="min-height: 688px">
              <el-table
                v-loading="loading"
@@ -359,8 +382,8 @@
                <el-table-column
                  label="编号"
                  align="center"
                  key="targetid"
                  prop="targetid"
                  key="sort"
                  prop="sort"
                />
                <el-table-column
                  label="标题"
@@ -370,15 +393,40 @@
                  :show-overflow-tooltip="true"
                />
                <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="scriptContent"
                  prop="scriptContent"
                  :show-overflow-tooltip="true"
                />
                <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
                  label="操作"
                  v-if="Operateit"
                  align="center"
                  width="250"
                  class-name="small-padding fixed-width"
@@ -413,34 +461,53 @@
              </el-table>
            </el-card>
          </div>
          <div class="presentation-right">
          <div class="presentation-right" v-if="Operateit">
            <el-card class="box-card">
              <el-form
                :inline="true"
                :model="topicobj"
                :inline="true"
                class="demo-form-inline"
              >
                <div class="headline">
                  题目设置详情
                  <!-- <span style="margin-left: 30px"
                    ><el-button type="primary" @click="Submittopicobj"
                      >保存</el-button
                    ></span
                  > -->
                </div>
                <el-form-item label="题目标题">
                  <el-input
                    v-model="topicobj.scriptTopic"
                    placeholder="请从左侧列表选择"
                  ></el-input>
                </el-form-item>
                <el-form-item label="问题节点">
                  <el-input
                    v-model="topicobj.targetid"
                    placeholder="请从左侧列表选择"
                    :disabled="true"
                  ></el-input>
                </el-form-item>
                <div class="headline">题目设置详情</div>
                <el-row>
                  <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>
                  <el-col :span="20"
                    ><el-form-item label="问题话术">
                      <el-input
                        type="textarea"
                        style="width: 400px"
                        v-model="topicobj.scriptContent"
                        placeholder="请从左侧列表选择"
                      ></el-input> </el-form-item
                  ></el-col>
                </el-row>
                <el-row :gutter="10">
                  <el-col :span="12"
                    ><el-form-item label="问题节点">
                      <el-input
                        v-model="topicobj.sort"
                        placeholder="请从左侧列表选择"
                        :disabled="true"
                      ></el-input> </el-form-item
                  ></el-col>
                </el-row>
                <el-row :gutter="10">
                  <el-col :span="12"
                    ><el-form-item label="是否必填">
@@ -458,14 +525,14 @@
                      </el-select> </el-form-item
                  ></el-col>
                  <el-col :span="12"
                    ><el-form-item label="取值类型">
                    ><el-form-item label="题目类型">
                      <el-select
                        v-model="topicobj.valueType"
                        v-model="topicobj.scriptType"
                        placeholder="请选择"
                        :disabled="true"
                      >
                        <el-option
                          v-for="item in valuetype"
                          v-for="item in askvaluetype"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
@@ -474,14 +541,57 @@
                      </el-select> </el-form-item
                  ></el-col>
                </el-row>
                <el-form-item label="问题语音" v-if="topicobj.scriptVoice">
                  <mini-audio :audio-source="topicobj.scriptVoice"></mini-audio>
                </el-form-item>
                <div
                  class="topicxq"
                  v-if="topicobj.valueType == 2 || topicobj.valueType == 3"
                <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-row>
                  <el-col :span="6">
                    <el-form-item label="问题语音" prop="verbaltrickyy">
                      <el-upload
                        class="upload-demo"
                        :action="uploadImgUrl"
                        :headers="headers"
                        :show-file-list="false"
                        :on-success="
                          (response, file) => handleChanges(response, file, 1)
                        "
                        accept=".wav,.mp3"
                        :limit="1"
                      >
                        <el-button size="small" type="primary"
                          >点击上传</el-button
                        >
                      </el-upload>
                    </el-form-item>
                  </el-col>
                  <el-col :span="6">
                    <span
                      style="font-size: 18px; margin-top: 10px"
                      v-if="topicobj.scriptVoice"
                      >{{
                        topicobj.scriptVoice.substring(
                          topicobj.scriptVoice.lastIndexOf("/") + 1
                        )
                      }}</span
                    >
                  </el-col>
                  <el-col :span="6">
                    <mini-audio
                      :audio-source="
                        topicobj.scriptVoice
                          ? topicobj.scriptVoice
                          : 'https://example.com/example.mp3'
                      "
                    ></mini-audio>
                  </el-col>
                </el-row>
                <div class="topicxq" v-if="topicobj.scriptType == 4">
                  <el-row>
                    <el-col :span="20">
                      <el-form-item label="收集内容">
@@ -511,6 +621,8 @@
                  <Regular
                    :TargetoptionList="topicobj.ivrLibaScriptTargetoptionList"
                    @deloption="deloption"
                    @branchFlagfn="branchFlagfn"
                    :branchFlag="topicobj.branchFlag ? true : false"
                    :controlsc="false"
                  />
                  <!-- 无匹配类型 -->
@@ -528,16 +640,47 @@
                          </el-input> </el-form-item
                      ></el-col>
                    </el-row>
                    <el-row :gutter="10">
                      <el-col :span="16">
                        <el-form-item
                          label="无匹配语音"
                    <el-row>
                      <el-col :span="6">
                        <el-form-item label="无匹配语音" prop="verbaltrickyy">
                          <el-upload
                            class="upload-demo"
                            :action="uploadImgUrl"
                            :show-file-list="false"
                            :headers="headers"
                            :on-success="
                              (response, file) =>
                                handleChanges(response, file, 2)
                            "
                            accept=".wav,.mp3"
                            :limit="1"
                          >
                            <el-button size="small" type="primary"
                              >点击上传</el-button
                            >
                          </el-upload>
                        </el-form-item>
                      </el-col>
                      <el-col :span="6">
                        <span
                          style="font-size: 12px"
                          v-if="topicobj.nomatchvoice"
                          >{{
                            topicobj.nomatchvoice.substring(
                              topicobj.nomatchvoice.lastIndexOf("/") + 1
                            )
                          }}</span
                        >
                          <mini-audio
                            :audio-source="topicobj.nomatchvoice"
                          ></mini-audio> </el-form-item
                      ></el-col>
                      </el-col>
                      <el-col :span="6">
                        <mini-audio
                          :audio-source="
                            topicobj.nomatchvoice
                              ? topicobj.nomatchvoice
                              : 'https://example.com/example.mp3'
                          "
                        ></mini-audio>
                      </el-col>
                    </el-row>
                  </div>
                  <div class="topicxq">
@@ -555,20 +698,47 @@
                      ></el-col>
                    </el-row>
                    <el-row :gutter="10">
                      <el-col :span="16">
                        <el-form-item
                          label="语音文件"
                          v-if="topicobj.noclearlyvoice"
                        >
                          <mini-audio
                            :audio-source="
                              topicobj.noclearlyvoice
                                ? topicobj.noclearlyvoice
                                : 'https://example.com/example.mp3'
                    <el-row>
                      <el-col :span="6">
                        <el-form-item label="听不清语音" prop="verbaltrickyy">
                          <el-upload
                            class="upload-demo"
                            :action="uploadImgUrl"
                            :show-file-list="false"
                            :headers="headers"
                            :on-success="
                              (response, file) =>
                                handleChanges(response, file, 4)
                            "
                          ></mini-audio> </el-form-item
                      ></el-col>
                            accept=".wav,.mp3"
                            :limit="1"
                          >
                            <el-button size="small" type="primary"
                              >点击上传</el-button
                            >
                          </el-upload>
                        </el-form-item>
                      </el-col>
                      <el-col :span="6">
                        <span
                          style="font-size: 12px"
                          v-if="topicobj.noclearlyvoice"
                          >{{
                            topicobj.noclearlyvoice.substring(
                              topicobj.noclearlyvoice.lastIndexOf("/") + 1
                            )
                          }}</span
                        >
                      </el-col>
                      <el-col :span="6">
                        <mini-audio
                          :audio-source="
                            topicobj.noclearlyvoice
                              ? topicobj.noclearlyvoice
                              : 'https://example.com/example.mp3'
                          "
                        ></mini-audio>
                      </el-col>
                    </el-row>
                  </div>
                  <div class="topicxq">
@@ -586,20 +756,47 @@
                      ></el-col>
                    </el-row>
                    <el-row :gutter="10">
                      <el-col :span="16">
                        <el-form-item
                          label="语音文件"
                          v-if="topicobj.sliencevoice"
                        >
                          <mini-audio
                            :audio-source="
                              topicobj.sliencevoice
                                ? topicobj.sliencevoice
                                : 'https://example.com/example.mp3'
                    <el-row>
                      <el-col :span="6">
                        <el-form-item label="静默语音" prop="verbaltrickyy">
                          <el-upload
                            class="upload-demo"
                            :action="uploadImgUrl"
                            :show-file-list="false"
                            :headers="headers"
                            :on-success="
                              (response, file) =>
                                handleChanges(response, file, 3)
                            "
                          ></mini-audio> </el-form-item
                      ></el-col>
                            accept=".wav,.mp3"
                            :limit="1"
                          >
                            <el-button size="small" type="primary"
                              >点击上传</el-button
                            >
                          </el-upload>
                        </el-form-item>
                      </el-col>
                      <el-col :span="6">
                        <span
                          style="font-size: 12px"
                          v-if="topicobj.sliencevoice"
                          >{{
                            topicobj.sliencevoice.substring(
                              topicobj.sliencevoice.lastIndexOf("/") + 1
                            )
                          }}</span
                        >
                      </el-col>
                      <el-col :span="6">
                        <mini-audio
                          :audio-source="
                            topicobj.sliencevoice
                              ? topicobj.sliencevoice
                              : 'https://example.com/example.mp3'
                          "
                        ></mini-audio>
                      </el-col>
                    </el-row>
                  </div>
                </div>
@@ -609,7 +806,7 @@
        </div>
        <el-button type="success" @click="Departmenttreatment('ruleForm')">{{
          task ? "保存到任务模版" : "保存题目数据"
          task ? "保存到任务模板" : "保存题目数据"
        }}</el-button>
        <el-button type="primary" plain @click="laststep()">上一步</el-button>
        <el-button type="success" plain @click="preview('ruleForm')"
@@ -617,68 +814,67 @@
        >
        <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button>
      </div>
      <!-- 随访模版预览 -->
      <!-- 随访模板预览 -->
      <div v-if="Editprogress == 3">
        <div class="leftvlue-jbxx">随访模版问题预览</div>
        <div class="leftvlue-jbxx">随访模板问题预览</div>
        <el-divider></el-divider>
        <div class="preview-left">
          <!-- 单选 -->
          <div
            class="scriptTopic-dev"
            v-for="item in valssu"
            :key="item.targetid"
            v-if="item.valueType == 1"
          >
            <div class="dev-text">
              {{ item.targetid }}、[单选]<span>{{ item.scriptContent }}</span>
          <div v-for="item in valssu">
            <!-- 单选 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.valueType == 1"
            >
              <div class="dev-text">
                {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
              </div>
              <div class="dev-xx">
                <el-radio-group v-model="item.remark">
                  <el-radio
                    v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                    :key="index"
                    :label="index"
                    >{{ items.targetvalue }}</el-radio
                  >
                </el-radio-group>
              </div>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="item.remark">
                <el-radio
                  v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                  :key="index"
                  :label="index"
                  >{{ items.targetvalue }}</el-radio
                >
              </el-radio-group>
            <!-- 多选 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.valueType == 2"
            >
              <div class="dev-text">
                {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
              </div>
              <div class="dev-xx">
                <el-checkbox-group v-model="item.remark">
                  <el-checkbox
                    v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                    :key="index"
                    :label="index"
                  >
                    {{ items.targetvalue }}
                  </el-checkbox>
                </el-checkbox-group>
              </div>
            </div>
          </div>
          <!-- 多选 -->
          <div
            class="scriptTopic-dev"
            v-for="item in valssu"
            :key="item.targetid"
            v-if="item.valueType == 2"
          >
            <div class="dev-text">
              {{ item.targetid }}、[多选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="item.remark">
                <el-checkbox
                  v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                  :key="index"
                  :label="index"
                >
                  {{ items.targetvalue }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
          <!-- 填空 -->
          <div
            class="scriptTopic-dev"
            v-for="item in valssu"
            :key="item.targetid"
            v-if="item.valueType == 3"
          >
            <div class="dev-text">
              {{ item.targetid }}、[填空]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-input placeholder="请输入答案" v-model="radioas" clearable>
              </el-input>
            <!-- 填空 -->
            <div
              class="scriptTopic-dev"
              :key="item.sort"
              v-if="item.valueType == 3"
            >
              <div class="dev-text">
                {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span>
              </div>
              <div class="dev-xx">
                <el-input placeholder="请输入答案" v-model="radioas" clearable>
                </el-input>
              </div>
            </div>
          </div>
        </div>
@@ -797,92 +993,111 @@
                  >
                </div>
                <el-divider></el-divider>
                <el-form-item label="题目标题">
                  <el-input
                    v-model="indexform.scriptTopic"
                    placeholder="请输入题目标题"
                  ></el-input>
                </el-form-item>
                <el-form-item label="问题节点">
                  <el-input
                    v-model="indexform.targetid"
                    placeholder="请输入问题节点"
                  ></el-input>
                </el-form-item>
                <el-row :gutter="10">
                  <el-col :span="12"
                    ><el-form-item label="是否必填">
                      <el-select
                        v-model="indexform.isMust"
                        placeholder="默认必填"
                      >
                        <el-option
                          v-for="item in required"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                <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.sort"
                          placeholder="请输入问题节点"
                        ></el-input>
                      </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>
                  <el-row :gutter="10">
                    <el-col :span="12"
                      ><el-form-item label="是否必填">
                        <el-select
                          v-model="indexform.isMust"
                          placeholder="默认必填"
                        >
                        </el-option>
                      </el-select> </el-form-item
                  ></el-col>
                  <!-- <el-col :span="12"
                    ><el-form-item label="取值类型">
                      <el-select
                        v-model="indexform.valueType"
                        placeholder="请选择"
                        :disabled="true"
                      >
                        <el-option
                          v-for="item in valuetype"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                          <el-option
                            v-for="item in required"
                            :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="取值类型">
                        <el-select
                          v-model="indexform.valueType"
                          placeholder="请选择"
                          :disabled="true"
                        >
                        </el-option>
                      </el-select> </el-form-item
                  ></el-col> -->
                </el-row>
                <el-row>
                  <el-col :span="6">
                    <el-form-item label="问题语音" prop="verbaltrickyy">
                      <el-upload
                        class="upload-demo"
                        :action="uploadImgUrl"
                        :headers="headers"
                        :show-file-list="false"
                        :on-success="
                          (response, file) => handleChange(response, file, 1)
                          <el-option
                            v-for="item in valuetype"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value"
                          >
                          </el-option>
                        </el-select> </el-form-item
                    ></el-col> -->
                  </el-row>
                  <el-row>
                    <el-col :span="6">
                      <el-form-item label="问题语音" prop="verbaltrickyy">
                        <el-upload
                          class="upload-demo"
                          :action="uploadImgUrl"
                          :headers="headers"
                          :show-file-list="false"
                          :on-success="
                            (response, file) => handleChange(response, file, 1)
                          "
                          accept=".wav,.mp3"
                          :limit="1"
                        >
                          <el-button size="small" type="primary"
                            >点击上传</el-button
                          >
                        </el-upload>
                      </el-form-item>
                    </el-col>
                    <el-col :span="6">
                      <span
                        style="font-size: 18px; margin-top: 10px"
                        v-if="indexform.scriptVoice"
                        >{{
                          indexform.scriptVoice.substring(
                            indexform.scriptVoice.lastIndexOf("/") + 1
                          )
                        }}</span
                      >
                    </el-col>
                    <el-col :span="6">
                      <mini-audio
                        :audio-source="
                          indexform.scriptVoice
                            ? indexform.scriptVoice
                            : 'https://example.com/example.mp3'
                        "
                        accept=".wav,.mp3"
                        :limit="1"
                      >
                        <el-button size="small" type="primary"
                          >点击上传</el-button
                        >
                      </el-upload>
                    </el-form-item>
                  </el-col>
                  <el-col :span="6">
                    <span
                      style="font-size: 18px; margin-top: 10px"
                      v-if="indexform.scriptVoice"
                      >{{
                        indexform.scriptVoice.substring(
                          indexform.scriptVoice.lastIndexOf("/") + 1
                        )
                      }}</span
                    >
                  </el-col>
                  <el-col :span="6">
                    <mini-audio
                      :audio-source="
                        indexform.scriptVoice
                          ? indexform.scriptVoice
                          : 'https://example.com/example.mp3'
                      "
                    ></mini-audio>
                  </el-col>
                </el-row>
                      ></mini-audio>
                    </el-col>
                  </el-row>
                </div>
                <div>
                  <el-form-item label="指标名称" prop="deptId">
                    <el-input
@@ -925,7 +1140,7 @@
                    </el-col>
                  </el-row>
                </div>
                <div class="topicxq" v-if="indexform.scriptType == 2">
                <div class="topicxq" v-show="indexform.scriptType == 4">
                  <el-row>
                    <el-col :span="20">
                      <el-form-item label="收集内容">
@@ -940,7 +1155,7 @@
                  </el-row>
                </div>
                <div v-else>
                <div v-show="indexform.scriptType == 1">
                  <div class="headline">
                    <div class="basics">选项设置</div>
                  </div>
@@ -948,7 +1163,9 @@
                  <Regular
                    :TargetoptionList="indexform.ivrLibaScriptTargetoptionList"
                    @deloption="deloption"
                    @addoption="addoptionson"
                    :controlsc="false"
                    :addoption="true"
                  />
                  <!-- 无匹配类型 -->
                  <div class="topicxq">
@@ -1161,6 +1378,7 @@
  getFollowuplist,
  deltargetillness,
  getillnesslist,
  depthospgetsonlist ,
  illnesslistget,
  getillness,
  getgenerallist,
@@ -1184,6 +1402,7 @@
      radioas: "", //填空题答案
      task: null, //是否来自任务
      taskform: null, //任务信息
      Operateit: true,
      indexform: {
        ivrLibaScriptTargetoptionList: [],
      },
@@ -1211,6 +1430,10 @@
      optionstag: [],
      prefollowuplist: [],
      postfollowuplist: [],
      tempDetpRelevanceslist: [], //科室数据
      tempDetpRelevanceslistform: [], //科室数据
      tempbelongWards: [], //病区数据
      tempbelongWardsform: [], //病区数据
      generallist: [
        { value: "1", label: "随访通用库一" },
        { value: "2", label: "随访二库" },
@@ -1234,6 +1457,7 @@
      usable: [],
      required: [],
      valuetype: [],
      askvaluetype: [],
      mode: [],
      inputVisible: false,
      inputVisibleillness: false,
@@ -1270,6 +1494,8 @@
      addvalue: "添加题目",
      // 题目表格数据
      userList: [],
      belongWards: [],
      belongDepts: [],
      // 查询参数
      queryParams: {
        pageNum: 1,
@@ -1282,6 +1508,22 @@
      },
    };
  },
  activated() {
    console.log(this.id);
    console.log(this.$route.query.id);
    if (this.id != this.$route.query.id) {
      console.log(1);
      this.RoutingDataProcessing();
      this.gettabList();
      this.getvFollowup();
      this.auxiliary();
    }else{
      this.tempDetpRelevanceslistform = [];
      this.tempbelongWardsform = [];
    }
  },
  created() {
    this.RoutingDataProcessing();
@@ -1292,9 +1534,12 @@
    this.usable = store.getters.usable;
    this.required = store.getters.required;
    this.valuetype = store.getters.valuetype;
    this.askvaluetype = store.getters.askvaluetype;
    this.languagelist = store.getters.languagelist;
    this.courtyardlist = store.getters.courtyardlist;
    this.precedencetype = store.getters.precedencetype;
    this.belongWards = store.getters.belongWards;
    this.belongDepts = store.getters.belongDepts;
  },
  mounted() {},
  computed: {
@@ -1344,16 +1589,13 @@
            this.ruleForm.submoduleID = this.ruleForm.submoduleID.map((res) => {
              return Number(res);
            });
            console.log(
              this.ruleForm.submoduleID,
              "this.ruleForm.submoduleID取"
            );
            this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList;
            this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map(
              this.processElement
            );
            console.log(this.ruleForm.suitway);
            this.sortFn();
          }
        });
        getillness({ outid: this.id, type: 3 }).then((res) => {
@@ -1362,6 +1604,19 @@
            item.icdname = item.icd10name;
          });
        });
      } else {
        this.ruleForm = {
          templateName: "",
          ivrLibaTemplateTagList: [],
          ivrLibaTemplateScriptVOList: [],
          tempDetpRelevances: [],
        };
        this.deptOptions = [];
        this.optionsillness = [];
        this.illnesslistapi = [];
        this.illnesslist = [];
        this.dynamicTags = [];
        this.tempDetpRelevanceslist = [];
      }
      listDept(this.queryParams).then((response) => {
@@ -1373,8 +1628,21 @@
      // 分类
      getFollowupclassify({}).then((res) => {
        this.indexAssortlist = res.rows;
        if (this.$route.query.assortid) {
          this.ruleForm.assortid = Number(this.$route.query.assortid);
      });
      this.tempDetpRelevanceslist = [];
      this.tempbelongWards = [];
      depthospgetsonlist(this.queryParamsdept).then((res) => {
        if (res.code == 200) {
          let arr = res.rows;
          arr.forEach((item) => {
            if (item.deptType == 1) {
              this.deptlist.push(item);
              this.tempDetpRelevanceslist.push(item.deptCode);
            } else if (item.deptType == 2) {
              this.hosplist.push(item);
              this.tempbelongWards.push(item.deptCode);
            }
          });
        }
      });
      // 科室
@@ -1396,17 +1664,27 @@
      });
      // 疾病列
    },
    //
    // 选项配置跳转触发
    branchFlagfn(row) {
      if (this.topicobj.branchFlag == 1 && this.topicobj.nextScriptno != 0) {
        this.topicobj.nextScriptno =
          this.topicobj.ivrLibaScriptTargetoptionList[0].nextQuestion;
      }
    },
    //保存
    submitForm(formName) {
      if (this.ruleForm.id) {
        this.ruleForm.isoperation = 2;
      } else {
        this.ruleForm.isoperation = 1;
      }
      if (!this.ruleForm.assortid) {
        this.ruleForm.assortid = -1;
      }
      this.ruleForm.labelInfo = JSON.stringify(this.dynamicTags);
      this.ruleForm.suitway = this.ruleForm.suitway.join(",");
      this.ruleForm.campus = this.ruleForm.campus.join(",");
      this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(",");
      if (Array.isArray(this.ruleForm.suitway)) this.ruleForm.suitway = this.ruleForm.suitway.join(",");
      if (Array.isArray(this.ruleForm.campus))this.ruleForm.campus = this.ruleForm.campus.join(",");
      if (Array.isArray(this.ruleForm.submoduleID))this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(",");
      //   提交
      this.ruleForm.ivrLibaTemplateScriptVOList.forEach((res) => {
@@ -1423,9 +1701,18 @@
          });
      });
      compileFollowup(this.ruleForm).then((res) => {
        this.$modal.msgSuccess("编辑成功");
        this.confirmillness(res.data);
        this.$router.go(-1);
        if (res.code == 200) {
          this.$modal.msgSuccess("编辑成功");
          this.$modal.closeLoading();
          this.confirmillness(res.data);
          const obj = { path: "/knowledge/templateku/" };
          this.$tab.closeOpenPage(obj);
        } else {
          this.$modal.msgError("保存失败");
          this.$modal.closeLoading();
        }
      });
    },
    confirmillness(guid) {
@@ -1448,38 +1735,55 @@
    },
    // 科室处理
    Departmenttreatment() {
      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
      this.ruleForm.ivrLibaTemplateScriptVOList =
        this.ruleForm.ivrLibaTemplateScriptVOList.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) => {
            res.data[0].type = 2;
            this.ruleForm.tempDetpRelevances.push(res.data[0]);
      this.$modal.loading("正在修正保存数据,请稍候...");
      this.tempDetpRelevanceslist.forEach((item) => {
        console.log(item);
        let result = this.deptlist.some((obj) => obj.deptCode == item);
        console.log(this.result, "result");
        if (!result) {
          this.tempDetpRelevanceslistform.push({
            deptType: 1,
            longTemp: this.ruleForm.longTemp,
            deptCode: item,
            tempid: this.id,
            type: 1,
          });
        }
      });
      console.log(this.ruleForm.tempDetpRelevances);
      // 数组对象查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;
      this.tempbelongWards.forEach((item) => {
        let result = this.hosplist.some((obj) => obj.deptCode == item);
        if (!result) {
          this.tempbelongWardsform.push({
            deptType: 2,
            longTemp: this.ruleForm.longTemp,
            deptCode: item,
            tempid: this.id,
            type: 1,
          });
        }
      });
      console.log(this.ruleForm.tempDetpRelevances);
      setTimeout(() => {
        this.submitForm();
      }, 1000);
      // this.submitForm();
    },
     // 保存科室/病区
     putbelongDepts(id) {
      if (this.tempDetpRelevanceslistform.length > 0) {
        depthospgetson(this.tempDetpRelevanceslistform).then((res) => {
          if (res.code == 200) {
            this.$modal.msgSuccess("科室新增成功");
          }
        });
      }
      if (this.tempbelongWardsform.length > 0) {
        depthospgetson(this.tempbelongWardsform).then((res) => {
          if (res.code == 200) {
            this.$modal.msgSuccess("院区新增成功");
          }
        });
      }
    },
    // 下一步
    nextstep() {
@@ -1499,7 +1803,8 @@
        type: "warning",
      })
        .then(() => {
          this.$router.go(-1);
          const obj = { path: "/knowledge/templateku/" };
          this.$tab.closeOpenPage(obj);
        })
        .catch(() => {
          this.$message({
@@ -1508,20 +1813,33 @@
          });
        });
    },
    //控制语音文件
    //控制语音文件(新)
    handleChange(response, file, additionalParam) {
      console.log(response);
      console.log(additionalParam);
      if (additionalParam == 1) {
        this.indexform.scriptVoice = response.url;
        console.log(this.indexform.scriptVoice);
      } else if (additionalParam == 2) {
        this.indexform.nomatchvoice = response.url;
        console.log(this.indexform.nomatchvoice);
      } else if (additionalParam == 3) {
        this.indexform.sliencevoice = response.url;
      } else if (additionalParam == 4) {
        this.indexform.noclearlyvoice = response.url;
      }
      this.$forceUpdate();
    },
    //控制语音文件
    handleChanges(response, file, additionalParam) {
      console.log(response);
      console.log(additionalParam);
      if (additionalParam == 1) {
        this.topicobj.scriptVoice = response.url;
      } else if (additionalParam == 2) {
        this.topicobj.nomatchvoice = response.url;
      } else if (additionalParam == 3) {
        this.topicobj.sliencevoice = response.url;
      } else if (additionalParam == 4) {
        this.topicobj.noclearlyvoice = response.url;
      }
      this.$forceUpdate();
    },
@@ -1610,7 +1928,6 @@
      });
    },
    addtopic(row) {
      console.log(row);
      if (
        this.ruleForm.ivrLibaTemplateScriptVOList.some(
          (obj) => obj.scriptTopic == row.scriptTopic
@@ -1628,6 +1945,7 @@
        });
        this.ruleForm.ivrLibaTemplateScriptVOList.push(res.data);
        this.sortFn();
        this.$forceUpdate();
        this.$modal.msgSuccess("添加成功");
      });
    },
@@ -1641,7 +1959,8 @@
          );
          row.isoperation = 3;
          this.delScriptVOList.push(row);
          this.$modal.msgSuccess("已删除,保存模版生效");
          this.sortFn();
          this.$modal.msgSuccess("已删除,保存模板生效");
        })
        .catch(() => {});
    },
@@ -1690,16 +2009,21 @@
    },
    // 问题排序
    sortFn() {
      this.ruleForm.ivrLibaTemplateScriptVOList =
        this.ruleForm.ivrLibaTemplateScriptVOList.map((item, index) => {
          return Object.assign({}, item, { targetid: (index + 1).toString() });
        });
      this.ruleForm.ivrLibaTemplateScriptVOList.forEach((question, index) => {
        question.ivrLibaScriptTargetoptionList =
          question.ivrLibaScriptTargetoptionList.map((option) => {
            option.nextQuestion = Number(question.targetid) + 1;
            return option;
      this.ruleForm.ivrLibaTemplateScriptVOList.forEach((item, index) => {
        item.sort = Number(index) + 1;
        console.log(this.ruleForm.ivrLibaTemplateScriptVOList.length);
        console.log(item.sort);
        if (item.sort == this.ruleForm.ivrLibaTemplateScriptVOList.length) {
          item.nextScriptno = 0;
        } else {
          item.nextScriptno = item.sort + 1;
        }
        if (item.ivrLibaScriptTargetoptionList) {
          item.ivrLibaScriptTargetoptionList.forEach((items) => {
            items.nextQuestion = Number(item.sort) + 1;
          });
        }
      });
      console.log(this.ruleForm.ivrLibaTemplateScriptVOList);
    },
@@ -1707,16 +2031,56 @@
    deloption() {},
    // 修改题目信息
    Submittopicobj() {
      this.ruleForm.ivrLibaTemplateScriptVOList[this.optionIndex] =
        this.topicobj;
      this.$modal.msgSuccess("暂存选项成功");
      this.$modal
        .confirm(
          '是否确认新增名称为"' + this.indexform.scriptTopic + '"的问题数据?'
        )
        .then(() => {
          this.indexform.isoperation = 1;
          this.indexform.pid = this.ruleForm.id;
          this.indexform.ivrLibaScriptTargetoptionList.forEach((item) => {
            item.isoperation = 1;
          });
          this.ruleForm.ivrLibaTemplateScriptVOList.push(this.indexform);
          this.indexform = {
            ivrLibaScriptTargetoptionList: [],
          };
          this.drawer = false;
          this.sortFn();
          this.$modal.msgSuccess("题目新增成功,保存模板失效");
        });
    },
    // ---------------------
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
  // 科室删除触发
  removetag(row) {
      let result = this.deptlist
        .filter((item) => item.deptCode == row)
        .map((item) => item.id);
      console.log(result.length);
      if (result.length) {
        depthospgetsondel(result).then((res) => {
          if (res.code) {
          }
        });
      }
    },
    // 删除删除触发
    removehpsp(row) {
      let result = this.hosplist
        .filter((item) => item.deptCode == row)
        .map((item) => item.id);
        if (result.length) {
          depthospgetsondel(result).then((res) => {
            if (res.code) {
            }
          });
        }
    },
    // 预览---------------
    preview() {
      console.log(this.ruleForm);
@@ -1726,7 +2090,7 @@
    // 前往测试
    measurement() {
      this.$modal
        .confirm("即将前往模版测试页面,请确认模版数据已保存。")
        .confirm("即将前往模板测试页面,请确认模板数据已保存。")
        .then((res) => {
          this.$router.push({
            path: "/knowledge/tpuconfigurat/measurement",
@@ -1735,7 +2099,7 @@
        })
        .catch(() => {});
    },
    // 新建模版中临时题目
    // 新建模板中临时题目
    // 题目类型更换
    typeselection(row) {
      if (row == 1 && !this.indexform.ivrLibaScriptTargetoptionList.length) {
@@ -1751,6 +2115,20 @@
          nodynamiccruxsJson: "",
        });
      }
      this.$forceUpdate();
    },
    addoptionson() {
      this.indexform.ivrLibaScriptTargetoptionList.push({
        guid: 1,
        isoperation: 1,
        targetvalue: "",
        targetregex: "",
        targetregex2: "",
        dynamiccruxs: [],
        nodynamiccruxs: [],
        dynamiccruxsJson: "",
        nodynamiccruxsJson: "",
      });
    },
  },
};
@@ -1853,6 +2231,7 @@
    vertical-align: bottom;
  }
}
.xinz-infs {
  font-size: 18px;
  line-height: 48px;
@@ -1877,6 +2256,16 @@
      color: #f52727;
    }
  }
  .spresentation-left {
    width: 100%;
    // height: 500px;
    .button-textxg {
      color: #024df0;
    }
    .button-textsc {
      color: #f52727;
    }
  }
  .presentation-right {
    width: 55%;
    max-height: 688px;