| <template> | 
|   <div class="Questionnairemanagement"> | 
|     <!-- 左侧栏 --> | 
|     <div class="sidecolumn"> | 
|       <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"> | 
|             <template slot="title"> | 
|               <span style="cursor: pointer" @click="preview">随访模板预览</span> | 
|             </template> | 
|           </el-step> | 
|         </el-steps> | 
|       </div> | 
|     </div> | 
|     <!-- 右侧数据 --> | 
|     <div class="leftvlue"> | 
|       <!-- 基本信息 --> | 
|       <div v-if="Editprogress == 1"> | 
|         <div class="leftvlue-jbxx">基本信息</div> | 
|         <el-divider></el-divider> | 
|         <el-form | 
|           :model="ruleForm" | 
|           :rules="rules" | 
|           ref="ruleForm" | 
|           label-width="120px" | 
|           class="demo-ruleForm" | 
|         > | 
|           <el-row> | 
|             <el-col :span="12"> | 
|               <el-form-item label="模板名称" prop="region"> | 
|                 <div> | 
|                   <el-input | 
|                     v-model="ruleForm.templateName" | 
|                     placeholder="请输入名称" | 
|                   ></el-input> | 
|                 </div> | 
|               </el-form-item> | 
|             </el-col> | 
|             <el-col :span="12"> | 
|               <el-form-item label="随访模板分类" prop="region"> | 
|                 <el-select | 
|                   v-model="ruleForm.assortid" | 
|                   size="medium" | 
|                   filterable | 
|                   placeholder="请选择分类" | 
|                 > | 
|                   <el-option-group | 
|                     v-for="group in indexAssortlist" | 
|                     :key="group.id" | 
|                     :label="group.indexAssortName" | 
|                   > | 
|                     <el-option | 
|                       v-for="item in group.ivrLibaTemplateAssortList" | 
|                       :key="item.id" | 
|                       :label="item.indexAssortName" | 
|                       :value="item.id" | 
|                     > | 
|                     </el-option> | 
|                   </el-option-group> | 
|                 </el-select> | 
|               </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-row :gutter="20"> | 
|             <el-col :span="12"> | 
|               <el-form-item label="版本号" prop="version"> | 
|                 <el-input | 
|                   style="width: 220px" | 
|                   v-model="ruleForm.version" | 
|                   placeholder="默认1.0.1" | 
|                 ></el-input> </el-form-item | 
|             ></el-col> | 
|             <el-col :span="12"> | 
|               <el-form-item label="可用状态" prop="region"> | 
|                 <el-select | 
|                   v-model="ruleForm.isenable" | 
|                   size="medium" | 
|                   placeholder="请选择" | 
|                 > | 
|                   <el-option | 
|                     class="ruleFormaa" | 
|                     v-for="item in usable" | 
|                     :key="item.value" | 
|                     :label="item.label" | 
|                     :value="item.value" | 
|                   > | 
|                   </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"> | 
|                 <el-select | 
|                   v-model="ruleForm.language" | 
|                   size="medium" | 
|                   filterable | 
|                   placeholder="请选择语言" | 
|                 > | 
|                   <el-option | 
|                     class="ruleFormaa" | 
|                     v-for="item in languagelist" | 
|                     :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="playType"> | 
|                 <el-select | 
|                   v-model="ruleForm.playType" | 
|                   size="medium" | 
|                   filterable | 
|                   placeholder="请选择语言" | 
|                 > | 
|                   <el-option | 
|                     class="ruleFormaa" | 
|                     v-for="item in precedencetype" | 
|                     :key="item.value" | 
|                     :label="item.label" | 
|                     :value="item.value" | 
|                   > | 
|                   </el-option> | 
|                 </el-select> </el-form-item | 
|             ></el-col> | 
|           </el-row> | 
|           <el-form-item label="随访方式" prop="region"> | 
|             <el-select | 
|               style="width: 500px" | 
|               v-model="ruleForm.suitway" | 
|               size="medium" | 
|               multiple | 
|               filterable | 
|               placeholder="请选择分类(多选)" | 
|             > | 
|               <el-option | 
|                 class="ruleFormaa" | 
|                 v-for="item in mode" | 
|                 :key="item.value" | 
|                 :label="item.label" | 
|                 :value="item.value" | 
|               > | 
|               </el-option> | 
|             </el-select> | 
|           </el-form-item> | 
|           <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> | 
|           <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-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-form-item label="适用院区" prop="region"> | 
|             <el-select | 
|               style="width: 500px" | 
|               v-model="ruleForm.campus" | 
|               size="medium" | 
|               multiple | 
|               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-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 flatArray" | 
|                     :key="item.deptCode" | 
|                     :label="item.label" | 
|                     :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 flatArray" | 
|                     :key="item.deptCode" | 
|                     :label="item.label" | 
|                     :value="item.deptCode" | 
|                   > | 
|                   </el-option> | 
|                 </el-select> </el-form-item | 
|             ></el-col> | 
|           </el-row> | 
|           <el-row> | 
|             <el-col :span="12" | 
|               ><el-form-item label="开场白" prop="revisitBefore"> | 
|                 <el-input | 
|                   type="textarea" | 
|                   :rows="3" | 
|                   v-model="ruleForm.revisitBefore" | 
|                   placeholder="请输入开场白" | 
|                 /> </el-form-item | 
|             ></el-col> | 
|             <el-col :span="12" | 
|               ><el-form-item label="结束语" prop="revisitAfter"> | 
|                 <el-input | 
|                   type="textarea" | 
|                   :rows="3" | 
|                   v-model="ruleForm.revisitAfter" | 
|                   placeholder="请输入结束语" | 
|                 /> </el-form-item | 
|             ></el-col> | 
|           </el-row> | 
|   | 
|           <el-row :gutter="20"> | 
|             <el-col :span="8"> | 
|               <el-form-item label="静默时间(秒)" prop="name"> | 
|                 <div style="width: 40%"> | 
|                   <el-input | 
|                     v-model="ruleForm.silencetime" | 
|                   ></el-input></div></el-form-item | 
|             ></el-col> | 
|             <el-col :span="8"> | 
|               <el-form-item label="静默次数" prop="name"> | 
|                 <div style="width: 40%"> | 
|                   <el-input | 
|                     v-model="ruleForm.noVoiceNum" | 
|                   ></el-input></div></el-form-item | 
|             ></el-col> | 
|             <el-col :span="8"> | 
|               <el-form-item label="无匹配重复(次)" prop="region"> | 
|                 <div style="width: 40%"> | 
|                   <el-input v-model="ruleForm.mateNum"></el-input> | 
|                 </div> </el-form-item | 
|             ></el-col> | 
|           </el-row> | 
|           <el-form-item> | 
|             <el-button type="success" plain @click="nextstep('ruleForm')" | 
|               >下一步</el-button | 
|             > | 
|             <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> | 
|             <el-button | 
|               type="success" | 
|               @click="Departmenttreatment('ruleForm')" | 
|               >{{ task ? "保存到任务模板" : "保存随访模板基础信息" }}</el-button | 
|             > | 
|           </el-form-item> | 
|         </el-form> | 
|       </div> | 
|       <!-- 随访模板设置 --> | 
|       <div v-if="Editprogress == 2"> | 
|         <div class="leftvlue-jbxx">随访模板题目设置</div> | 
|         <el-divider></el-divider> | 
|         <div class="addtopic"> | 
|           <el-button | 
|             type="primary" | 
|             icon="el-icon-plus" | 
|             round | 
|             @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="Operateit ? 'presentation-left' : 'spresentation-left'"> | 
|             <el-card class="box-card" style="min-height: 688px"> | 
|               <el-table | 
|                 v-loading="loading" | 
|                 :data="ruleForm.ivrLibaTemplateScriptVOList" | 
|               > | 
|                 <el-table-column | 
|                   label="编号" | 
|                   align="center" | 
|                   key="sort" | 
|                   prop="sort" | 
|                 /> | 
|                 <el-table-column | 
|                   label="标题" | 
|                   align="center" | 
|                   key="scriptTopic" | 
|                   prop="scriptTopic" | 
|                   :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" | 
|                 > | 
|                   <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 | 
|                 :model="topicobj" | 
|                 :inline="true" | 
|                 class="demo-form-inline" | 
|               > | 
|                 <div class="headline">题目设置详情</div> | 
|                 <el-row> | 
|                   <el-col :span="24" | 
|                     ><el-form-item label="题目标题"> | 
|                       <el-input | 
|                         v-model="topicobj.scriptTopic" | 
|                         placeholder="请从左侧列表选择" | 
|                       ></el-input> </el-form-item | 
|                   ></el-col> | 
|                 </el-row> | 
|                 <el-row> | 
|                   <el-col :span="24" | 
|                     ><el-form-item label="问题话术"> | 
|                       <el-input | 
|                         type="textarea" | 
|                         style="width: 600px" | 
|                         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-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.isMust" | 
|                         placeholder="默认必填" | 
|                       > | 
|                         <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="topicobj.scriptType" | 
|                         placeholder="请选择" | 
|                         :disabled="true" | 
|                       > | 
|                         <el-option | 
|                           v-for="item in askvaluetype" | 
|                           :key="item.value" | 
|                           :label="item.label" | 
|                           :value="item.value" | 
|                         > | 
|                         </el-option> | 
|                       </el-select> </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> | 
|                 <el-row> | 
|                   <el-col :span="24" | 
|                     ><el-form-item label="语音文本"> | 
|                       <el-input | 
|                         type="textarea" | 
|                         style="width: 600px" | 
|                         v-model="topicobj.ivrtext" | 
|                         placeholder="请从左侧列表选择" | 
|                       ></el-input> </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) => 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.ivrVoice" | 
|                       >{{ | 
|                         topicobj.ivrVoice.substring( | 
|                           topicobj.ivrVoice.lastIndexOf("/") + 1 | 
|                         ) | 
|                       }}</span | 
|                     > | 
|                   </el-col> | 
|                   <el-col :span="6"> | 
|                     <mini-audio | 
|                       :audio-source=" | 
|                         topicobj.ivrVoice | 
|                           ? topicobj.ivrVoice | 
|                           : '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="收集内容"> | 
|                         <el-input | 
|                           style="width: 400px" | 
|                           type="textarea" | 
|                           v-model="topicobj.value" | 
|                           placeholder="问题收集内容" | 
|                         ></el-input> | 
|                       </el-form-item> | 
|                     </el-col> | 
|                   </el-row> | 
|                 </div> | 
|                 <div v-else> | 
|                   <div class="headline"> | 
|                     <div class="basics">选项设置</div> | 
|                     <!-- <div class="headbottom"> | 
|                       <el-button | 
|                         type="primary" | 
|                         icon="el-icon-circle-plus-outline" | 
|                         @click="addzbiao" | 
|                         >添加指标</el-button | 
|                       > | 
|                     </div> --> | 
|                   </div> | 
|   | 
|                   <Regular | 
|                     :TargetoptionList="topicobj.ivrLibaScriptTargetoptionList" | 
|                     @deloption="deloption" | 
|                     @branchFlagfn="branchFlagfn" | 
|                     :branchFlag="topicobj.branchFlag ? true : false" | 
|                     :controlsc="false" | 
|                     :scriptType="topicobj.scriptType" | 
|                   /> | 
|                   <!-- 无匹配类型 --> | 
|                   <div class="topicxq"> | 
|                     <el-row :gutter="10"> | 
|                       <el-col :span="20" | 
|                         ><el-form-item label="无匹配话术"> | 
|                           <el-input | 
|                             type="textarea" | 
|                             style="width: 400px" | 
|                             placeholder="请输入" | 
|                             v-model="topicobj.noMatchText" | 
|                             show-word-limit | 
|                           > | 
|                           </el-input> </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" | 
|                             :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 | 
|                         > | 
|                       </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"> | 
|                     <el-row :gutter="10"> | 
|                       <el-col :span="20" | 
|                         ><el-form-item label="听不清话术"> | 
|                           <el-input | 
|                             style="width: 400px" | 
|                             type="textarea" | 
|                             placeholder="请输入" | 
|                             v-model="topicobj.noClearlyText" | 
|                             show-word-limit | 
|                           > | 
|                           </el-input> </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" | 
|                             :show-file-list="false" | 
|                             :headers="headers" | 
|                             :on-success=" | 
|                               (response, file) => | 
|                                 handleChanges(response, file, 4) | 
|                             " | 
|                             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"> | 
|                     <el-row :gutter="10"> | 
|                       <el-col :span="20" | 
|                         ><el-form-item label="静默话术"> | 
|                           <el-input | 
|                             type="textarea" | 
|                             style="width: 400px" | 
|                             placeholder="请输入" | 
|                             v-model="topicobj.slienceText" | 
|                             show-word-limit | 
|                           > | 
|                           </el-input> </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" | 
|                             :show-file-list="false" | 
|                             :headers="headers" | 
|                             :on-success=" | 
|                               (response, file) => | 
|                                 handleChanges(response, file, 3) | 
|                             " | 
|                             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> | 
|               </el-form> | 
|             </el-card> | 
|           </div> | 
|         </div> | 
|   | 
|         <el-button type="success" @click="Departmenttreatment('ruleForm')">{{ | 
|           task ? "保存到任务模板" : "保存题目数据" | 
|         }}</el-button> | 
|         <el-button type="primary" plain @click="laststep()">上一步</el-button> | 
|         <el-button type="success" plain @click="preview('ruleForm')" | 
|           >查看预览</el-button | 
|         > | 
|         <el-button type="info" @click="closeFm('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 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="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 | 
|               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> | 
|         <el-button type="primary" plain @click="laststep()">上一步</el-button> | 
|         <el-button type="warning" @click="measurement()">前往测试</el-button> | 
|         <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> | 
|       </div> | 
|     </div> | 
|     <!-- 添加题目弹窗 --> | 
|     <el-drawer | 
|       title="添加题目" | 
|       @close="$forceUpdate()" | 
|       @closed="$forceUpdate()" | 
|       :visible.sync="drawer" | 
|       custom-class="demo-drawer" | 
|       size="50%" | 
|     > | 
|       <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-form-item label="标题" prop="userName"> | 
|                   <el-input | 
|                     v-model="queryParams.scriptTopic" | 
|                     placeholder="请输入" | 
|                     clearable | 
|                     style="width: 200px" | 
|                     @keyup.enter.native="getaddtopiclist" | 
|                   /> | 
|                 </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="valueType" | 
|                   prop="valueType" | 
|                   width="120" | 
|                 > | 
|                   <template slot-scope="scope"> | 
|                     <dict-tag | 
|                       :options="valuetypes" | 
|                       :value="scope.row.valueType" | 
|                     /> | 
|                   </template> | 
|                 </el-table-column> | 
|                 <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 | 
|                 :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" | 
|               > | 
|                 <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.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: 600px" | 
|                           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 | 
|                             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 | 
|                             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-form-item | 
|                     label="选中提示" | 
|                     v-if="topicobj.scriptType != 1" | 
|                   > | 
|                     <el-input | 
|                       style="width: 24vw" | 
|                       type="textarea" | 
|                       autosize | 
|                       placeholder="请输入内容" | 
|                       v-model="indexform.prompt" | 
|                     > | 
|                     </el-input | 
|                   ></el-form-item> | 
|                   <el-row :gutter="10"> | 
|                     <el-col :span="18" | 
|                       ><el-form-item label="语音文本"> | 
|                         <el-input | 
|                           style="width: 600px" | 
|                           type="textarea" | 
|                           v-model="indexform.ivrtext" | 
|                           placeholder="请从左侧列表选择" | 
|                         ></el-input> </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.ivrVoice" | 
|                         >{{ | 
|                           indexform.ivrVoice.substring( | 
|                             indexform.ivrVoice.lastIndexOf("/") + 1 | 
|                           ) | 
|                         }}</span | 
|                       > | 
|                     </el-col> | 
|                     <el-col :span="6"> | 
|                       <mini-audio | 
|                         :audio-source=" | 
|                           indexform.ivrVoice | 
|                             ? indexform.ivrVoice | 
|                             : 'https://example.com/example.mp3' | 
|                         " | 
|                       ></mini-audio> | 
|                     </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 | 
|                           @input="typeselection" | 
|                           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-show="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-show="indexform.scriptType == 1"> | 
|                   <div class="headline"> | 
|                     <div class="basics">选项设置</div> | 
|                   </div> | 
|                   <el-divider></el-divider> | 
|                   <Regular | 
|                     :TargetoptionList="indexform.ivrLibaScriptTargetoptionList" | 
|                     @deloption="deloption" | 
|                     @addoption="addoptionson" | 
|                     :controlsc="false" | 
|                     :addoption="true" | 
|                   /> | 
|                   <!-- 无匹配类型 --> | 
|                   <div class="topicxq"> | 
|                     <el-row :gutter="10"> | 
|                       <el-col :span="20" | 
|                         ><el-form-item label="无匹配话术"> | 
|                           <el-input | 
|                             type="textarea" | 
|                             style="width: 400px" | 
|                             placeholder="请输入" | 
|                             v-model="indexform.noMatchText" | 
|                             show-word-limit | 
|                           > | 
|                           </el-input> </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" | 
|                             :show-file-list="false" | 
|                             :headers="headers" | 
|                             :on-success=" | 
|                               (response, file) => | 
|                                 handleChange(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="indexform.nomatchvoice" | 
|                           >{{ | 
|                             indexform.nomatchvoice.substring( | 
|                               indexform.nomatchvoice.lastIndexOf("/") + 1 | 
|                             ) | 
|                           }}</span | 
|                         > | 
|                       </el-col> | 
|                       <el-col :span="6"> | 
|                         <mini-audio | 
|                           :audio-source=" | 
|                             indexform.nomatchvoice | 
|                               ? indexform.nomatchvoice | 
|                               : 'https://example.com/example.mp3' | 
|                           " | 
|                         ></mini-audio> | 
|                       </el-col> | 
|                     </el-row> | 
|                   </div> | 
|   | 
|                   <div class="topicxq"> | 
|                     <el-row :gutter="10"> | 
|                       <el-col :span="20" | 
|                         ><el-form-item label="静默话术"> | 
|                           <el-input | 
|                             type="textarea" | 
|                             style="width: 400px" | 
|                             placeholder="请输入" | 
|                             v-model="indexform.slienceText" | 
|                             show-word-limit | 
|                           > | 
|                           </el-input> </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" | 
|                             :show-file-list="false" | 
|                             :headers="headers" | 
|                             :on-success=" | 
|                               (response, file) => | 
|                                 handleChange(response, file, 3) | 
|                             " | 
|                             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="indexform.sliencevoice" | 
|                           >{{ | 
|                             indexform.sliencevoice.substring( | 
|                               indexform.sliencevoice.lastIndexOf("/") + 1 | 
|                             ) | 
|                           }}</span | 
|                         > | 
|                       </el-col> | 
|                       <el-col :span="6"> | 
|                         <mini-audio | 
|                           :audio-source=" | 
|                             indexform.sliencevoice | 
|                               ? indexform.sliencevoice | 
|                               : 'https://example.com/example.mp3' | 
|                           " | 
|                         ></mini-audio> | 
|                       </el-col> | 
|                     </el-row> | 
|                   </div> | 
|                   <div class="topicxq"> | 
|                     <el-row :gutter="10"> | 
|                       <el-col :span="20" | 
|                         ><el-form-item label="听不清话术"> | 
|                           <el-input | 
|                             style="width: 400px" | 
|                             type="textarea" | 
|                             placeholder="请输入" | 
|                             v-model="indexform.noClearlyText" | 
|                             show-word-limit | 
|                           > | 
|                           </el-input> </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" | 
|                             :show-file-list="false" | 
|                             :headers="headers" | 
|                             :on-success=" | 
|                               (response, file) => | 
|                                 handleChange(response, file, 4) | 
|                             " | 
|                             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="indexform.noclearlyvoice" | 
|                           >{{ | 
|                             indexform.noclearlyvoice.substring( | 
|                               indexform.noclearlyvoice.lastIndexOf("/") + 1 | 
|                             ) | 
|                           }}</span | 
|                         > | 
|                       </el-col> | 
|                       <el-col :span="6"> | 
|                         <mini-audio | 
|                           :audio-source=" | 
|                             indexform.noclearlyvoice | 
|                               ? indexform.noclearlyvoice | 
|                               : 'https://example.com/example.mp3' | 
|                           " | 
|                         ></mini-audio> | 
|                       </el-col> | 
|                     </el-row> | 
|                   </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 store from "@/store"; | 
| import { listDept } from "@/api/system/dept"; | 
| import Regular from "@/components/Regular"; //正则组件 | 
| import { | 
|   getFollowupclassify, | 
|   delFollowupclassify, | 
|   addFollowupclassify, | 
|   addtargetillness, | 
|   getvFollowup, | 
|   compileFollowup, | 
|   getverbaltricklist, | 
|   getverbaltrick, | 
|   delFollowupinfo, | 
|   Followupinfo, | 
|   getFollowuplist, | 
|   deltargetillness, | 
|   getillnesslist, | 
|   depthospgetson, | 
|   depthospgetsonlist, | 
|   illnesslistget, | 
|   getillness, | 
|   getgenerallist, | 
|   depthospgetsondel | 
| } from "@/api/AiCentre/index"; | 
| import OptionalForm from "@/components/OptionalForm"; //正则组件 | 
| import { getToken } from "@/utils/auth"; | 
| import { deptTreeSelect } from "@/api/system/user"; | 
|   | 
| export default { | 
|   name: "tpuconfigurat", | 
|   components: { Regular, OptionalForm }, | 
|   data() { | 
|     return { | 
|       headers: { | 
|         Authorization: "Bearer " + getToken(), | 
|       }, | 
|       uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", | 
|       Editprogress: 1, //编辑进度 | 
|       loading: false, // 遮罩层 | 
|       drawer: false, //控制展开 | 
|       radios: [], //多选题选中 | 
|       radioas: "", //填空题答案 | 
|       task: null, //是否来自任务 | 
|       taskform: null, //任务信息 | 
|       Operateit: true, | 
|       indexform: { | 
|         ivrLibaScriptTargetoptionList: [], | 
|       }, | 
|       labelInfovalue: [], //标签临时存储 | 
|       deptNamesvalue: [], //科室临时存储 | 
|       dialogVisiblepatient: false, //适用疾病窗口 | 
|       dynamicTags: [], | 
|       indexAssortlist: [], | 
|       inputValue: "", | 
|       inputValueillness: "", | 
|       topicobj: { | 
|         noMatchText: "抱歉,我没有听懂,您能再说一遍吗?", | 
|         noClearlyText: "抱歉,我没有听清您说的话,您可以再说一次吗?", | 
|         slienceText: "抱歉,我没有听到您说的话,您可以再说一次吗?", | 
|       }, | 
|       total: 1, | 
|       id: "", | 
|       ruleForm: { | 
|         templateName: "", | 
|         revisitBefore: | 
|           "亲爱的患者/家属,我们是"+localStorage.getItem("orgname")+"的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。", | 
|         revisitAfter: | 
|           "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!", | 
|         ivrLibaTemplateTagList: [], | 
|         ivrLibaTemplateScriptVOList: [], | 
|         tempDetpRelevances: [], | 
|       }, | 
|       rules: {}, | 
|       optionstag: [], | 
|       prefollowuplist: [], | 
|       postfollowuplist: [], | 
|       tempDetpRelevanceslist: [], //科室数据 | 
|       tempDetpRelevanceslistform: [], //科室数据 | 
|       tempbelongWards: [], //病区数据 | 
|       tempbelongWardsform: [], //病区数据 | 
|       generallist: [ | 
|         { value: "1", label: "随访通用库一" }, | 
|         { value: "2", label: "随访二库" }, | 
|       ], | 
|   | 
|       fileList: [ | 
|         { | 
|           name: "food.jpeg", | 
|           url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", | 
|         }, | 
|       ], | 
|       administrativelist: [ | 
|         { value: "1", label: "心外科" }, | 
|         { value: "2", label: "心内科" }, | 
|       ], | 
|       standbylist: [], | 
|       themelist: [], | 
|       languagelist: [], | 
|       courtyardlist: [], | 
|       precedencetype: [], | 
|       usable: [], | 
|       required: [], | 
|       valuetype: [], | 
|       valuetypes: [], | 
|       askvaluetype: [], | 
|       mode: [], | 
|       inputVisible: false, | 
|       inputVisibleillness: false, | 
|       illnessVisible: false, //指标疾病弹框 | 
|       deptOptions: [], | 
|       optionsillness: [], | 
|       illnesslistapi: [], | 
|       illnesslist: [], | 
|       defaultProps: { | 
|         children: "ivrLibaTemplateAssortList", | 
|         label: "indexAssortName", | 
|       }, | 
|       tempDetpRelevanceslist: [], | 
|       delScriptVOList: [], | 
|       optionIndex: "", | 
|       activeName: "first", | 
|       variablelist: [ | 
|         { variatename: "姓名", variate: "${name}", default: 1 }, | 
|         { variatename: "电话", variate: "${phone}", default: 1 }, | 
|         { variatename: "病情", variate: "${illness}", default: 1 }, | 
|       ], | 
|       deptlist: [], | 
|       hosplist: [], | 
|       flatArray: [], | 
|       props: { multiple: true, value: "deptId", label: "deptName" }, | 
|   | 
|       variablelist: [ | 
|         { | 
|           variable: "paitent", | 
|           value: "表示患者的标识", | 
|         }, | 
|       ], | 
|       queryParamsdept: { | 
|         tempid: "", | 
|         type: 2, | 
|       }, | 
|   | 
|       valssu: [], | 
|       radio: "", | 
|       addvalue: "添加题目", | 
|       // 题目表格数据 | 
|       userList: [], | 
|       belongWards: [], | 
|       belongDepts: [], | 
|       // 查询参数 | 
|       queryParams: { | 
|         pageNum: 1, | 
|         pageSize: 10, | 
|         userName: undefined, | 
|         phonenumber: undefined, | 
|         status: undefined, | 
|         deptId: undefined, | 
|         IDnumber: undefined, | 
|       }, | 
|     }; | 
|   }, | 
|   activated() { | 
|     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(); | 
|     this.gettabList(); | 
|     this.getvFollowup(); | 
|     this.auxiliary(); | 
|     this.getDeptTree(); | 
|     this.mode = store.getters.mode; | 
|     console.log(this.mode,'this.mode'); | 
|     this.usable = store.getters.usable; | 
|     this.required = store.getters.required; | 
|     this.valuetype = store.getters.valuetype; | 
|     this.valuetypes = store.getters.valuetypelb; | 
|     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: { | 
|     displayedTags() { | 
|       // 返回前10个tag | 
|       return this.illnesslist.slice(0, 10); | 
|     }, | 
|     hasMore() { | 
|       // 判断是否有更多的tag | 
|       return this.illnesslist.length > 10; | 
|     }, | 
|     remaining() { | 
|       // 计算剩余的tag数量 | 
|       return this.illnesslist.length - 10; | 
|     }, | 
|   }, | 
|   | 
|   methods: { | 
|     //公共方法-------------------- | 
|     getIndexInArray(arr, obj) { | 
|       return arr.indexOf(obj); | 
|     }, | 
|     processElement(element) { | 
|       return { ...element, isoperation: 0 }; | 
|     }, | 
|     // 路由数据处理 | 
|     RoutingDataProcessing() { | 
|       this.id = this.$route.query.id; | 
|       this.task = this.$route.query.task; | 
|       this.queryParamsdept.tempid = this.id; | 
|     }, | 
|     // 获取科室树 | 
|     getDeptTree() { | 
|       // 科室列表 | 
|       deptTreeSelect().then((response) => { | 
|         this.deptOptions = response.data; | 
|         this.flatArray = this.flattenArray(response.data); | 
|       }); | 
|     }, | 
|     flattenArray(multiArray) { | 
|       let result = []; | 
|   | 
|       // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素 | 
|       function flatten(element) { | 
|         // 如果当前元素有子元素,继续递归 | 
|         if (element.children && element.children.length > 0) { | 
|           element.children.forEach((child) => flatten(child)); | 
|         } else { | 
|           // 克隆元素以避免修改原始数据 | 
|           let item = JSON.parse(JSON.stringify(element)); | 
|           result.push(item); // 将最底层的元素添加到结果数组 | 
|         } | 
|       } | 
|   | 
|       // 从顶层元素开始递归 | 
|       multiArray.forEach((element) => flatten(element)); | 
|       return result; // 返回只包含最底层元素的一维数组 | 
|     }, | 
|     // 获取表单数据 | 
|     getvFollowup() { | 
|       if (this.id) { | 
|         getvFollowup({ id: this.id }).then((res) => { | 
|           if (res.code == 200) { | 
|             console.log(2211); | 
|             this.ruleForm = res.data; | 
|             if (this.ruleForm.deptNames) | 
|             console.log(this.ruleForm.suitway,'suitway'); | 
|             this.ruleForm.suitway = this.ruleForm.suitway.split(","); | 
|             console.log(this.ruleForm.suitway,'suitway'); | 
|             if (this.ruleForm.campus) | 
|               this.ruleForm.campus = this.ruleForm.campus.split(","); | 
|             this.ruleForm.submoduleID = this.ruleForm.submoduleID.split(","); | 
|             this.ruleForm.submoduleID = this.ruleForm.submoduleID.map((res) => { | 
|               return Number(res); | 
|             }); | 
|   | 
|             this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList; | 
|   | 
|             this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map( | 
|               this.processElement | 
|             ); | 
|             this.sortFn(); | 
|           } | 
|         }); | 
|         getillness({ outid: this.id, type: 3 }).then((res) => { | 
|           this.illnesslist = res.rows; | 
|           this.illnesslist.forEach((item) => { | 
|             item.icdname = item.icd10name; | 
|           }); | 
|         }); | 
|       } else { | 
|         this.ruleForm = { | 
|           templateName: "", | 
|           ivrLibaTemplateTagList: [], | 
|           ivrLibaTemplateScriptVOList: [], | 
|           tempDetpRelevances: [], | 
|         }; | 
|         this.deptOptions = []; | 
|         this.optionsillness = []; | 
|         this.illnesslistapi = []; | 
|         this.illnesslist = []; | 
|         this.dynamicTags = []; | 
|         this.tempDetpRelevanceslist = []; | 
|       } | 
|     }, | 
|     // 附属数据表 | 
|     auxiliary() { | 
|       // 分类 | 
|       getFollowupclassify({}).then((res) => { | 
|         this.indexAssortlist = res.rows; | 
|       }); | 
|       this.tempDetpRelevanceslist = []; | 
|       this.tempbelongWards = []; | 
|   | 
|       if (this.id) { | 
|         depthospgetsonlist(this.queryParamsdept).then((res) => { | 
|           if (res.code == 200) { | 
|             let arr = res.rows; | 
|             console.log(arr, "arr"); | 
|   | 
|             arr.forEach((item) => { | 
|               if (item.deptType == 1) { | 
|                 console.log(this.deptlist, "11"); | 
|                 this.deptlist.push(item); | 
|                 console.log("22"); | 
|                 this.tempDetpRelevanceslist.push(item.deptCode); | 
|               } else if (item.deptType == 2) { | 
|                 this.hosplist.push(item); | 
|                 this.tempbelongWards.push(item.deptCode); | 
|                 console.log("33"); | 
|               } | 
|             }); | 
|           } | 
|         }); | 
|       } | 
|   | 
|       // 疾病 | 
|       getillnesslist({ | 
|         pageNum: 1, | 
|         pageSize: 100, | 
|       }).then((response) => { | 
|         this.optionsillness = response.rows; | 
|       }); | 
|       getgenerallist({ | 
|         pageNum: 1, | 
|         pageSize: 100, | 
|       }).then((res) => { | 
|         this.generallist = res.rows; | 
|       }); | 
|       // 疾病列 | 
|     }, | 
|     // 选项配置跳转触发 | 
|     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); | 
|       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) => { | 
|         if (!res.isoperation) { | 
|           res.isoperation = 2; | 
|         } | 
|         res.ivrLibaScriptTargetoptionList = | 
|           res.ivrLibaScriptTargetoptionList.map((item) => { | 
|             if (!item.isoperation) { | 
|               item.isoperation = 2; | 
|               item.templateID = this.ruleForm.id; | 
|             } | 
|             return item; | 
|           }); | 
|       }); | 
|       this.delScriptVOList.forEach((item) => { | 
|         this.ruleForm.ivrLibaTemplateScriptVOList.push(item); | 
|       }); | 
|       // compileFollowup(this.ruleForm).then((res) => { | 
|       //   if (res.code == 200) { | 
|       //     this.$modal.msgSuccess("编辑成功"); | 
|       //     this.$modal.closeLoading(); | 
|       //     this.confirmillness(res.data); | 
|       //     // window.location.reload(); | 
|       //     // const obj = { path: "/knowledge/tpuconfigurat/?id=" + this.id }; | 
|       //     // this.$tab.closeOpenPage(obj); | 
|       //   } else { | 
|       //     this.$modal.msgError("保存失败"); | 
|       //     this.$modal.closeLoading(); | 
|       //   } | 
|       // }); | 
|       if (this.id) { | 
|         this.ruleForm.isoperation = 2; | 
|         this.ruleForm.tempDetpRelevances = []; | 
|         compileFollowup(this.ruleForm).then((res) => { | 
|           if (res.code == 200) { | 
|             this.$modal.msgSuccess("修改成功"); | 
|             this.confirmillness(); | 
|             this.putbelongDepts(this.id); | 
|             // this.$modal.closeLoading(); | 
|             // this.$router.go(-1); | 
|             window.location.reload(); | 
|           } else { | 
|             this.$modal.closeLoading(); | 
|           } | 
|         }); | 
|       } else { | 
|         this.ruleForm.isoperation = 1; | 
|         this.ruleForm.version = this.ruleForm.version | 
|           ? this.ruleForm.version | 
|           : "1.0"; | 
|         this.ruleForm.tempDetpRelevances = []; | 
|         compileFollowup(this.ruleForm).then((res) => { | 
|           if (res.code == 200) { | 
|             this.$modal.msgSuccess("新增成功"); | 
|             this.confirmillness(res.data); | 
|             this.putbelongDepts(res.data); | 
|             this.$modal.closeLoading(); | 
|             this.$router.go(-1); | 
|           } else { | 
|             this.$modal.closeLoading(); | 
|           } | 
|         }); | 
|       } | 
|     }, | 
|     confirmillness(guid) { | 
|       this.illnesslist.forEach((item, index) => { | 
|         if (guid) { | 
|           item.outid = guid; | 
|         } else { | 
|           console.log(this.ruleForm); | 
|           item.outid = this.ruleForm.id; | 
|         } | 
|         item.icd10name = item.icdname; | 
|         item.icd10code = item.icdcode; | 
|         item.type = 3; | 
|         if (!item.id) { | 
|           addtargetillness(item).then((res) => {}); | 
|         } | 
|       }); | 
|       this.illnessVisible = false; | 
|       this.$modal.msgSuccess("编辑成功"); | 
|     }, | 
|     // 科室处理 | 
|     Departmenttreatment() { | 
|       this.$modal.loading("正在修正保存数据,请稍候..."); | 
|       this.tempDetpRelevanceslist.forEach((item) => { | 
|         let result = this.deptlist.some((obj) => obj.deptCode == item); | 
|   | 
|         if (!result) { | 
|           this.tempDetpRelevanceslistform.push({ | 
|             deptType: 1, | 
|             longTemp: this.ruleForm.longTemp, | 
|             deptCode: item, | 
|             tempid: this.id, | 
|             type: 2, | 
|           }); | 
|         } | 
|       }); | 
|       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: 2, | 
|             // 1 : 问卷模板库id、11:问卷任务模板库id;2 :语音问卷库id、21:语音任务模板库id,3 : 宣教模板库id,33:宣教任务模板库id | 
|           }); | 
|         } | 
|       }); | 
|       setTimeout(() => { | 
|         this.submitForm(); | 
|       }, 1000); | 
|       // this.submitForm(); | 
|     }, | 
|     // 保存科室/病区 | 
|     putbelongDepts(id) { | 
|       this.tempDetpRelevanceslistform.forEach((item) => { | 
|         if (!item.tempid) item.tempid = id; | 
|       }); | 
|   | 
|       this.tempbelongWardsform.forEach((item) => { | 
|         if (!item.tempid) item.tempid = 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() { | 
|       if (this.Editprogress <= 2) { | 
|         return this.Editprogress++; | 
|       } | 
|     }, | 
|     // 上一步 | 
|     laststep() { | 
|       this.Editprogress = this.Editprogress - 1; | 
|     }, | 
|     // 关闭 | 
|     closeFm() { | 
|       this.$confirm("退出不会保留页面内容更改, 是否继续?", "提示", { | 
|         confirmButtonText: "确定", | 
|         cancelButtonText: "取消", | 
|         type: "warning", | 
|       }) | 
|         .then(() => { | 
|           const obj = { path: "/knowledge/templateku/" }; | 
|           this.$tab.closeOpenPage(obj); | 
|         }) | 
|         .catch(() => { | 
|           this.$message({ | 
|             type: "info", | 
|             message: "已取消", | 
|           }); | 
|         }); | 
|     }, | 
|     //控制语音文件(新) | 
|     handleChange(response, file, additionalParam) { | 
|       console.log(response); | 
|       console.log(additionalParam); | 
|       if (additionalParam == 1) { | 
|         this.indexform.ivrVoice = response.url; | 
|       } else if (additionalParam == 2) { | 
|         this.indexform.nomatchvoice = response.url; | 
|       } 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.ivrVoice = 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(); | 
|     }, | 
|     // 文件超出个数限制时的钩子 | 
|     handleExceed(files, fileList) { | 
|       this.$message.warning( | 
|         `当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${ | 
|           files.length + fileList.length | 
|         } 个文件` | 
|       ); | 
|     }, | 
|     // 标签----------------- | 
|     gettabList() { | 
|       const tagqueryParams = { | 
|         pageNum: 1, | 
|         pageSize: 1000, | 
|         tagcategoryid: "0", | 
|       }; | 
|       listtag(tagqueryParams).then((response) => { | 
|         this.optionstag = response.rows; | 
|       }); | 
|     }, | 
|     handleClosetag(tag) { | 
|       const lindex = this.dynamicTags.indexOf(tag); | 
|       this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); | 
|       this.ruleForm.ivrLibaTemplateTagList[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, | 
|             }; | 
|           } | 
|           const exists = this.dynamicTags.some( | 
|             (department) => department.tagname === tagname | 
|           ); | 
|           if (exists) { | 
|             this.$modal.msgError("标签重复"); | 
|             return; | 
|           } | 
|           this.ruleForm.ivrLibaTemplateTagList.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; | 
|     }, | 
|     //话术题目---------------- | 
|     addzbiao() {}, | 
|     resetQuery() { | 
|       this.queryParams = { pageNum: 1, pageSize: 10 }; | 
|       this.getaddtopiclist(); | 
|     }, | 
|     getaddtopiclist() { | 
|       this.drawer = true; | 
|       getverbaltricklist(this.queryParams).then((res) => { | 
|         this.loading = false; | 
|         this.userList = res.rows; | 
|         this.total = res.total; | 
|         console.log(this.userList); | 
|       }); | 
|     }, | 
|     addtopic(row) { | 
|       if ( | 
|         this.ruleForm.ivrLibaTemplateScriptVOList.some( | 
|           (obj) => obj.scriptTopic == row.scriptTopic | 
|         ) | 
|       ) { | 
|         this.$modal.msgError("该题目已存在"); | 
|         return; | 
|       } | 
|       getverbaltrick({ id: row.id }).then((res) => { | 
|         console.log(res, "详情"); | 
|         res.data.isoperation = 1; | 
|         res.data.pid = this.ruleForm.id; | 
|         res.data.ivrLibaScriptTargetoptionList.forEach((item) => { | 
|           item.isoperation = 1; | 
|         }); | 
|         this.ruleForm.ivrLibaTemplateScriptVOList.push(res.data); | 
|         this.sortFn(); | 
|         this.$modal.msgSuccess("添加成功"); | 
|       }); | 
|     }, | 
|     handleDelete(row) { | 
|       this.$modal | 
|         .confirm('是否确认删除问题:"' + row.scriptTopic + '?') | 
|         .then(() => { | 
|           this.ruleForm.ivrLibaTemplateScriptVOList.splice( | 
|             this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row), | 
|             1 | 
|           ); | 
|           row.isoperation = 3; | 
|           if (row.id) { | 
|             this.delScriptVOList.push(row); | 
|           } | 
|           this.sortFn(); | 
|           this.$modal.msgSuccess("已删除,保存模板生效"); | 
|         }) | 
|         .catch(() => {}); | 
|     }, | 
|     handleUpdate(row) { | 
|       console.log(row); | 
|       this.optionIndex = this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row); | 
|       if (row.ivrLibaScriptTargetoptionList.length) { | 
|         console.log(11); | 
|         this.topicobj = row; | 
|         this.topicobj.valueType = row.valueType; | 
|       } else { | 
|         getverbaltrick({ id: row.id }).then((res) => { | 
|           if (res.data) { | 
|             this.topicobj = res.data; | 
|             console.log(res.data, "topicobj"); | 
|           } else { | 
|             this.topicobj = row; | 
|             console.log("没找到选项,请查看问题库是否正确配置"); | 
|           } | 
|         }); | 
|       } | 
|     }, | 
|     syioption(row) { | 
|       const index = this.getIndexInArray( | 
|         this.ruleForm.ivrLibaTemplateScriptVOList, | 
|         row | 
|       ); | 
|       const item = this.ruleForm.ivrLibaTemplateScriptVOList.splice( | 
|         index, | 
|         1 | 
|       )[0]; // 移除指定索引处的元素,并保存到item变量中 | 
|       this.ruleForm.ivrLibaTemplateScriptVOList.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 | 
|       this.sortFn(); | 
|     }, | 
|     xiayioption(row) { | 
|       const index = this.getIndexInArray( | 
|         this.ruleForm.ivrLibaTemplateScriptVOList, | 
|         row | 
|       ); | 
|       const item = this.ruleForm.ivrLibaTemplateScriptVOList.splice( | 
|         index, | 
|         1 | 
|       )[0]; // 移除指定索引处的元素,并保存到item变量中 | 
|       this.ruleForm.ivrLibaTemplateScriptVOList.splice(index + 1, 0, item); // 将item插入到索引位置的前一位 | 
|       this.sortFn(); | 
|     }, | 
|     // 问题排序 | 
|     sortFn() { | 
|       console.log(this.ruleForm.ivrLibaTemplateScriptVOList); | 
|   | 
|       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.branchFlag) { | 
|           item.ivrLibaScriptTargetoptionList.forEach((items) => { | 
|             items.nextQuestion = Number(item.sort) + 1; | 
|           }); | 
|         } | 
|       }); | 
|       this.$forceUpdate(); | 
|   | 
|       console.log(this.ruleForm.ivrLibaTemplateScriptVOList); | 
|     }, | 
|     // -----------------------话术选项 | 
|     deloption(item) { | 
|       const index = this.topicobj.ivrLibaScriptTargetoptionList.indexOf(item); | 
|       if (index != -1) { | 
|         if (item.id) { | 
|           console.log(item, "chunz"); | 
|           item.isoperation = 3; | 
|           console.log(this.topicobj.ivrLibaScriptTargetoptionList); | 
|           this.$forceUpdate(); | 
|         } else { | 
|           this.topicobj.ivrLibaScriptTargetoptionList.splice(index, 1); // 从索引位置删除一个元素 | 
|         } | 
|         // this.sortFn(); | 
|       } else { | 
|         console.log("未找到该对象"); | 
|       } | 
|     }, | 
|     // 修改题目信息 | 
|     Submittopicobj() { | 
|       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); | 
|       this.valssu = this.ruleForm.ivrLibaTemplateScriptVOList; | 
|       this.Editprogress = 3; | 
|     }, | 
|     // 前往测试 | 
|     measurement() { | 
|       this.$modal | 
|         .confirm("即将前往模板测试页面,请确认模板数据已保存。") | 
|         .then((res) => { | 
|           this.$router.push({ | 
|             path: "/knowledge/templateku/configurat/measurement", | 
|             query: { | 
|               id: this.id, | 
|               name: this.ruleForm.templateName, | 
|               timeout: this.ruleForm.silencetime, | 
|             }, | 
|           }); | 
|         }) | 
|         .catch(() => {}); | 
|     }, | 
|     // 新建模板中临时题目 | 
|     // 题目类型更换 | 
|     typeselection(row) { | 
|       if (row == 1 && !this.indexform.ivrLibaScriptTargetoptionList.length) { | 
|         this.indexform.ivrLibaScriptTargetoptionList.push({ | 
|           guid: 1, | 
|           isoperation: 1, | 
|           targetvalue: "", | 
|           targetregex: "", | 
|           targetregex2: "", | 
|           dynamiccruxs: [], | 
|           nodynamiccruxs: [], | 
|           dynamiccruxsJson: "", | 
|           nodynamiccruxsJson: "", | 
|         }); | 
|       } | 
|       this.$forceUpdate(); | 
|     }, | 
|     addoptionson() { | 
|       this.indexform.ivrLibaScriptTargetoptionList.push({ | 
|         guid: 1, | 
|         isoperation: 1, | 
|         targetvalue: "", | 
|         targetregex: "", | 
|         targetregex2: "", | 
|         dynamiccruxs: [], | 
|         nodynamiccruxs: [], | 
|         dynamiccruxsJson: "", | 
|         nodynamiccruxsJson: "", | 
|       }); | 
|     }, | 
|   }, | 
| }; | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
| .Questionnairemanagement { | 
|   // display: flex; | 
| } | 
| .sidecolumn { | 
|   margin: 20px; | 
|   margin-bottom: 0; | 
|   padding: 30px; | 
|   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: 20px; | 
|   padding: 30px; | 
|   background: #ffff; | 
|   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); | 
|   .mulsz { | 
|     font-size: 20px; | 
|   } | 
|   .leftvlue-jbxx { | 
|     font-size: 24px; | 
|     border-left: 5px solid #41a1be; | 
|     padding-left: 5px; | 
|     margin: 15px 0; | 
|   } | 
|   .demo-cascader { | 
|     margin-right: 20px; | 
|   } | 
|   .PreviewTemplate { | 
|     color: #02a7f0; | 
|     cursor: pointer; | 
|     font-size: 20px; | 
|     margin: 0 20px; | 
|   } | 
| } | 
| .preview-left { | 
|   margin: 20px; | 
|   //   margin: 20px; | 
|   padding: 30px; | 
|   background: #ffff; | 
|   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); | 
|   .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; | 
|   } | 
|   .topicxq { | 
|     background-color: #e2f5fc; | 
|     border-radius: 4px; | 
|     margin-top: 10px; | 
|     padding-left: 10px; | 
|     padding-top: 15px; | 
|   } | 
| } | 
| .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 { | 
|   margin-top: 30px; | 
| } | 
| .presentation { | 
|   margin: 20px 0; | 
|   display: flex; | 
|   .presentation-left { | 
|     width: 45%; | 
|     // height: 500px; | 
|     .button-textxg { | 
|       color: #024df0; | 
|     } | 
|     .button-textsc { | 
|       color: #f52727; | 
|     } | 
|   } | 
|   .spresentation-left { | 
|     width: 100%; | 
|     // height: 500px; | 
|     .button-textxg { | 
|       color: #024df0; | 
|     } | 
|     .button-textsc { | 
|       color: #f52727; | 
|     } | 
|   } | 
|   .presentation-right { | 
|     width: 55%; | 
|     max-height: 688px; | 
|     margin: 0 20px; | 
|     font-size: 18px; | 
|     -webkit-box-shadow: 0 2px 4px 0 rgba(32, 32, 32, 0.12), | 
|       0 0 6px 0 rgba(58, 57, 57, 0.04); | 
|     overflow: auto; | 
|     .headline { | 
|       display: flex; | 
|       justify-content: space-between; | 
|       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; | 
|     } | 
|   } | 
| } | 
| ::v-deep .addtopic-input { | 
|   input { | 
|     background: #02a7f0; | 
|     color: #edf1f7; | 
|     width: 150px; | 
|   } | 
| } | 
| ::v-deep.el-step.is-vertical .el-step__title { | 
|   font-size: 20px; | 
| } | 
| ::v-deep.el-input--medium { | 
|   font-size: 18px !important; | 
| } | 
| ::v-deep.ruleFormaa.el-select { | 
|   display: inline-block; | 
|   position: relative; | 
|   width: 700px; | 
| } | 
| .el-select__tags { | 
|   font-size: 20px; | 
|   max-width: 888px !important; | 
| } | 
| ::v-deep.el-radio__inner { | 
|   width: 22px; | 
|   height: 22px; | 
| } | 
| // ::v-deep.topic-dev.el-radio__label { | 
| //   font-size: 24px; | 
| // } | 
| ::v-deep.el-radio-group { | 
|   span { | 
|     font-size: 20px; | 
|   } | 
| } | 
| ::v-deep.el-checkbox-group { | 
|   span { | 
|     font-size: 20px; | 
|   } | 
| } | 
| // ::v-deep.el-form-item--medium .el-form-item__content { | 
| //   line-height: 36px; | 
| //   display: flex; | 
| // } | 
| </style> |