|  |  | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="可用状态" prop="region"> | 
 |  |  |                 <el-select | 
 |  |  |                   v-model="ruleForm.usestate" | 
 |  |  |                   v-model="ruleForm.isenable" | 
 |  |  |                   size="medium" | 
 |  |  |                   placeholder="请选择" | 
 |  |  |                 > | 
 |  |  | 
 |  |  |               >疾病详情</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" | 
 |  |  | 
 |  |  |                 > | 
 |  |  |                   <el-option | 
 |  |  |                     class="ruleFormaa" | 
 |  |  |                     v-for="item in belongDepts" | 
 |  |  |                     v-for="item in flatArray" | 
 |  |  |                     :key="item.deptCode" | 
 |  |  |                     :label="item.deptName" | 
 |  |  |                     :label="item.label" | 
 |  |  |                     :value="item.deptCode" | 
 |  |  |                   > | 
 |  |  |                   </el-option> | 
 |  |  | 
 |  |  |                 > | 
 |  |  |                   <el-option | 
 |  |  |                     class="ruleFormaa" | 
 |  |  |                     v-for="item in belongWards" | 
 |  |  |                     :key="item.districtCode" | 
 |  |  |                     :label="item.districtName" | 
 |  |  |                     :value="item.districtCode" | 
 |  |  |                     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 :gutter="20"> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="随访前处理" prop="name"> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="12" | 
 |  |  |               ><el-form-item label="开场白" prop="revisitBefore"> | 
 |  |  |                 <el-input | 
 |  |  |                   type="textarea" | 
 |  |  |                   show-word-limit | 
 |  |  |                   :rows="3" | 
 |  |  |                   v-model="ruleForm.revisitBefore" | 
 |  |  |                 ></el-input></el-form-item | 
 |  |  |                   placeholder="请输入开场白" | 
 |  |  |                 /> </el-form-item | 
 |  |  |             ></el-col> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="随访后处理" prop="region"> | 
 |  |  |             <el-col :span="12" | 
 |  |  |               ><el-form-item label="结束语" prop="revisitAfter"> | 
 |  |  |                 <el-input | 
 |  |  |                   type="textarea" | 
 |  |  |                   show-word-limit | 
 |  |  |                   :rows="3" | 
 |  |  |                   v-model="ruleForm.revisitAfter" | 
 |  |  |                 ></el-input> </el-form-item | 
 |  |  |                   placeholder="请输入结束语" | 
 |  |  |                 /> </el-form-item | 
 |  |  |             ></el-col> | 
 |  |  |           </el-row> | 
 |  |  |  | 
 |  |  |           <el-row :gutter="20"> | 
 |  |  |             <el-col :span="8"> | 
 |  |  |               <el-form-item label="静默时间(秒)" prop="name"> | 
 |  |  | 
 |  |  |               > | 
 |  |  |                 <div class="headline">题目设置详情</div> | 
 |  |  |                 <el-row> | 
 |  |  |                   <el-col :span="12" | 
 |  |  |                   <el-col :span="24" | 
 |  |  |                     ><el-form-item label="题目标题"> | 
 |  |  |                       <el-input | 
 |  |  |                         v-model="topicobj.scriptTopic" | 
 |  |  |                         placeholder="请从左侧列表选择" | 
 |  |  |                       ></el-input> </el-form-item | 
 |  |  |                   ></el-col> | 
 |  |  |                   <el-col :span="12"> | 
 |  |  |                     <el-form-item label="下题跳转"> | 
 |  |  |                       <el-input | 
 |  |  |                         v-model="topicobj.nextScriptno" | 
 |  |  |                         placeholder="请输入题号" | 
 |  |  |                       ></el-input> | 
 |  |  |                     </el-form-item> | 
 |  |  |                   </el-col> | 
 |  |  |                 </el-row> | 
 |  |  |                 <el-row> | 
 |  |  |                   <el-col :span="20" | 
 |  |  |                   <el-col :span="24" | 
 |  |  |                     ><el-form-item label="问题话术"> | 
 |  |  |                       <el-input | 
 |  |  |                         type="textarea" | 
 |  |  |                         style="width: 400px" | 
 |  |  |                         style="width: 600px" | 
 |  |  |                         v-model="topicobj.scriptContent" | 
 |  |  |                         placeholder="请从左侧列表选择" | 
 |  |  |                       ></el-input> </el-form-item | 
 |  |  | 
 |  |  |                         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> | 
 |  |  | 
 |  |  |                   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 :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-form-item label="语音文件" prop="verbaltrickyy"> | 
 |  |  |                       <el-upload | 
 |  |  |                         class="upload-demo" | 
 |  |  |                         :action="uploadImgUrl" | 
 |  |  | 
 |  |  |                   <el-col :span="6"> | 
 |  |  |                     <span | 
 |  |  |                       style="font-size: 18px; margin-top: 10px" | 
 |  |  |                       v-if="topicobj.scriptVoice" | 
 |  |  |                       v-if="topicobj.ivrVoice" | 
 |  |  |                       >{{ | 
 |  |  |                         topicobj.scriptVoice.substring( | 
 |  |  |                           topicobj.scriptVoice.lastIndexOf("/") + 1 | 
 |  |  |                         topicobj.ivrVoice.substring( | 
 |  |  |                           topicobj.ivrVoice.lastIndexOf("/") + 1 | 
 |  |  |                         ) | 
 |  |  |                       }}</span | 
 |  |  |                     > | 
 |  |  | 
 |  |  |                   <el-col :span="6"> | 
 |  |  |                     <mini-audio | 
 |  |  |                       :audio-source=" | 
 |  |  |                         topicobj.scriptVoice | 
 |  |  |                           ? topicobj.scriptVoice | 
 |  |  |                         topicobj.ivrVoice | 
 |  |  |                           ? topicobj.ivrVoice | 
 |  |  |                           : 'https://example.com/example.mp3' | 
 |  |  |                       " | 
 |  |  |                     ></mini-audio> | 
 |  |  | 
 |  |  |                     @branchFlagfn="branchFlagfn" | 
 |  |  |                     :branchFlag="topicobj.branchFlag ? true : false" | 
 |  |  |                     :controlsc="false" | 
 |  |  |                     :scriptType="topicobj.scriptType" | 
 |  |  |                   /> | 
 |  |  |                   <!-- 无匹配类型 --> | 
 |  |  |                   <div class="topicxq"> | 
 |  |  | 
 |  |  |     <!-- 添加题目弹窗 --> | 
 |  |  |     <el-drawer | 
 |  |  |       title="添加题目" | 
 |  |  |       @close="$forceUpdate()" | 
 |  |  |       @closed="$forceUpdate()" | 
 |  |  |       :visible.sync="drawer" | 
 |  |  |       custom-class="demo-drawer" | 
 |  |  |       size="50%" | 
 |  |  | 
 |  |  |                   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" | 
 |  |  | 
 |  |  |                     <el-col :span="18" | 
 |  |  |                       ><el-form-item label="问题话术"> | 
 |  |  |                         <el-input | 
 |  |  |                           style="width: 400px" | 
 |  |  |                           style="width: 600px" | 
 |  |  |                           type="textarea" | 
 |  |  |                           v-model="indexform.scriptContent" | 
 |  |  |                           placeholder="请从左侧列表选择" | 
 |  |  | 
 |  |  |                         </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-form-item label="语音文件" prop="verbaltrickyy"> | 
 |  |  |                         <el-upload | 
 |  |  |                           class="upload-demo" | 
 |  |  |                           :action="uploadImgUrl" | 
 |  |  | 
 |  |  |                     <el-col :span="6"> | 
 |  |  |                       <span | 
 |  |  |                         style="font-size: 18px; margin-top: 10px" | 
 |  |  |                         v-if="indexform.scriptVoice" | 
 |  |  |                         v-if="indexform.ivrVoice" | 
 |  |  |                         >{{ | 
 |  |  |                           indexform.scriptVoice.substring( | 
 |  |  |                             indexform.scriptVoice.lastIndexOf("/") + 1 | 
 |  |  |                           indexform.ivrVoice.substring( | 
 |  |  |                             indexform.ivrVoice.lastIndexOf("/") + 1 | 
 |  |  |                           ) | 
 |  |  |                         }}</span | 
 |  |  |                       > | 
 |  |  | 
 |  |  |                     <el-col :span="6"> | 
 |  |  |                       <mini-audio | 
 |  |  |                         :audio-source=" | 
 |  |  |                           indexform.scriptVoice | 
 |  |  |                             ? indexform.scriptVoice | 
 |  |  |                           indexform.ivrVoice | 
 |  |  |                             ? indexform.ivrVoice | 
 |  |  |                             : '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 class="topicxq"> | 
 |  |  |                     <el-row :gutter="10"> | 
 |  |  |                       <el-col :span="20" | 
 |  |  | 
 |  |  |                       </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> | 
 |  |  | 
 |  |  |   getFollowuplist, | 
 |  |  |   deltargetillness, | 
 |  |  |   getillnesslist, | 
 |  |  |   depthospgetsonlist , | 
 |  |  |   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", | 
 |  |  |   name: "tpuconfigurat", | 
 |  |  |   components: { Regular, OptionalForm }, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  | 
 |  |  |       inputValue: "", | 
 |  |  |       inputValueillness: "", | 
 |  |  |       topicobj: { | 
 |  |  |         noMatchText: "", | 
 |  |  |         noClearlyText: "", | 
 |  |  |         slienceText: "", | 
 |  |  |         noMatchText: "抱歉,我没有听懂,您能再说一遍吗?", | 
 |  |  |         noClearlyText: "抱歉,我没有听清您说的话,您可以再说一次吗?", | 
 |  |  |         slienceText: "抱歉,我没有听到您说的话,您可以再说一次吗?", | 
 |  |  |       }, | 
 |  |  |       total: 1, | 
 |  |  |       id: "", | 
 |  |  |       ruleForm: { | 
 |  |  |         templateName: "", | 
 |  |  |         revisitBefore: | 
 |  |  |           "亲爱的患者/家属,我们是"+localStorage.getItem("orgname")+"的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。", | 
 |  |  |         revisitAfter: | 
 |  |  |           "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!", | 
 |  |  |         ivrLibaTemplateTagList: [], | 
 |  |  |         ivrLibaTemplateScriptVOList: [], | 
 |  |  |         tempDetpRelevances: [], | 
 |  |  | 
 |  |  |       usable: [], | 
 |  |  |       required: [], | 
 |  |  |       valuetype: [], | 
 |  |  |       valuetypes: [], | 
 |  |  |       askvaluetype: [], | 
 |  |  |       mode: [], | 
 |  |  |       inputVisible: false, | 
 |  |  | 
 |  |  |         { variatename: "电话", variate: "${phone}", default: 1 }, | 
 |  |  |         { variatename: "病情", variate: "${illness}", default: 1 }, | 
 |  |  |       ], | 
 |  |  |       deptList: [], | 
 |  |  |       deptlist: [], | 
 |  |  |       hosplist: [], | 
 |  |  |       flatArray: [], | 
 |  |  |       props: { multiple: true, value: "deptId", label: "deptName" }, | 
 |  |  |  | 
 |  |  |       variablelist: [ | 
 |  |  | 
 |  |  |           value: "表示患者的标识", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       queryParamsdept: { | 
 |  |  |         tempid: "", | 
 |  |  |         type: 2, | 
 |  |  |       }, | 
 |  |  |  | 
 |  |  |       valssu: [], | 
 |  |  |       radio: "", | 
 |  |  | 
 |  |  |     }; | 
 |  |  |   }, | 
 |  |  |   activated() { | 
 |  |  |     console.log(this.id); | 
 |  |  |     console.log(this.$route.query.id); | 
 |  |  |  | 
 |  |  |     if (this.id != this.$route.query.id) { | 
 |  |  |       console.log(1); | 
 |  |  |  | 
 |  |  | 
 |  |  |       this.gettabList(); | 
 |  |  |       this.getvFollowup(); | 
 |  |  |       this.auxiliary(); | 
 |  |  |     }else{ | 
 |  |  |     } else { | 
 |  |  |       this.tempDetpRelevanceslistform = []; | 
 |  |  |       this.tempbelongWardsform = []; | 
 |  |  |     } | 
 |  |  | 
 |  |  |     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; | 
 |  |  | 
 |  |  |     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 = []; | 
 |  |  |  | 
 |  |  |       // console.log(this.task, "task"); | 
 |  |  |       // if (this.task) { | 
 |  |  |       //   this.id = this.$route.query.id; | 
 |  |  |       // } | 
 |  |  |       // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素 | 
 |  |  |       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 (res.code == 200) { | 
 |  |  |             console.log(2211); | 
 |  |  |             this.ruleForm = res.data; | 
 |  |  |             this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); | 
 |  |  |             if (this.ruleForm.deptNames) | 
 |  |  |             console.log(this.ruleForm.suitway,'suitway'); | 
 |  |  |             this.ruleForm.suitway = this.ruleForm.suitway.split(","); | 
 |  |  |             this.ruleForm.campus = this.ruleForm.campus.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.tempDetpRelevanceslist = []; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       listDept(this.queryParams).then((response) => { | 
 |  |  |         this.deptList = this.handleTree(response.data, "deptId"); | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 附属数据表 | 
 |  |  |     auxiliary() { | 
 |  |  | 
 |  |  |       }); | 
 |  |  |       this.tempDetpRelevanceslist = []; | 
 |  |  |       this.tempbelongWards = []; | 
 |  |  |       depthospgetsonlist(this.queryParamsdept).then((res) => { | 
 |  |  |         if (res.code == 200) { | 
 |  |  |           let arr = res.rows; | 
 |  |  |           arr.forEach((item) => { | 
 |  |  |             if (item.deptType == 1) { | 
 |  |  |               this.deptlist.push(item); | 
 |  |  |               this.tempDetpRelevanceslist.push(item.deptCode); | 
 |  |  |             } else if (item.deptType == 2) { | 
 |  |  |               this.hosplist.push(item); | 
 |  |  |               this.tempbelongWards.push(item.deptCode); | 
 |  |  |             } | 
 |  |  |           }); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |       // 科室 | 
 |  |  |       listDept(this.queryParams).then((response) => { | 
 |  |  |         this.deptList = this.handleTree(response.data, "deptId"); | 
 |  |  |       }); | 
 |  |  |  | 
 |  |  |       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, | 
 |  |  | 
 |  |  |       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.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) => { | 
 |  |  | 
 |  |  |             return item; | 
 |  |  |           }); | 
 |  |  |       }); | 
 |  |  |       compileFollowup(this.ruleForm).then((res) => { | 
 |  |  |         if (res.code == 200) { | 
 |  |  |           this.$modal.msgSuccess("编辑成功"); | 
 |  |  |           this.$modal.closeLoading(); | 
 |  |  |           this.confirmillness(res.data); | 
 |  |  |  | 
 |  |  |           const obj = { path: "/knowledge/templateku/" }; | 
 |  |  |           this.$tab.closeOpenPage(obj); | 
 |  |  |         } else { | 
 |  |  |           this.$modal.msgError("保存失败"); | 
 |  |  |  | 
 |  |  |           this.$modal.closeLoading(); | 
 |  |  |         } | 
 |  |  |       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) => { | 
 |  |  | 
 |  |  |     Departmenttreatment() { | 
 |  |  |       this.$modal.loading("正在修正保存数据,请稍候..."); | 
 |  |  |       this.tempDetpRelevanceslist.forEach((item) => { | 
 |  |  |         console.log(item); | 
 |  |  |         let result = this.deptlist.some((obj) => obj.deptCode == item); | 
 |  |  |         console.log(this.result, "result"); | 
 |  |  |  | 
 |  |  |         if (!result) { | 
 |  |  |           this.tempDetpRelevanceslistform.push({ | 
 |  |  | 
 |  |  |             longTemp: this.ruleForm.longTemp, | 
 |  |  |             deptCode: item, | 
 |  |  |             tempid: this.id, | 
 |  |  |             type: 1, | 
 |  |  |             type: 2, | 
 |  |  |           }); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  | 
 |  |  |             longTemp: this.ruleForm.longTemp, | 
 |  |  |             deptCode: item, | 
 |  |  |             tempid: this.id, | 
 |  |  |             type: 1, | 
 |  |  |             type: 2, | 
 |  |  |             // 1 : 问卷模板库id、11:问卷任务模板库id;2 :语音问卷库id、21:语音任务模板库id,3 : 宣教模板库id,33:宣教任务模板库id | 
 |  |  |           }); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  | 
 |  |  |       }, 1000); | 
 |  |  |       // this.submitForm(); | 
 |  |  |     }, | 
 |  |  |      // 保存科室/病区 | 
 |  |  |      putbelongDepts(id) { | 
 |  |  |     // 保存科室/病区 | 
 |  |  |     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) { | 
 |  |  | 
 |  |  |       console.log(response); | 
 |  |  |       console.log(additionalParam); | 
 |  |  |       if (additionalParam == 1) { | 
 |  |  |         this.indexform.scriptVoice = response.url; | 
 |  |  |         this.indexform.ivrVoice = response.url; | 
 |  |  |       } else if (additionalParam == 2) { | 
 |  |  |         this.indexform.nomatchvoice = response.url; | 
 |  |  |       } else if (additionalParam == 3) { | 
 |  |  | 
 |  |  |       console.log(response); | 
 |  |  |       console.log(additionalParam); | 
 |  |  |       if (additionalParam == 1) { | 
 |  |  |         this.topicobj.scriptVoice = response.url; | 
 |  |  |         this.topicobj.ivrVoice = response.url; | 
 |  |  |       } else if (additionalParam == 2) { | 
 |  |  |         this.topicobj.nomatchvoice = response.url; | 
 |  |  |       } else if (additionalParam == 3) { | 
 |  |  | 
 |  |  |         tagcategoryid: "0", | 
 |  |  |       }; | 
 |  |  |       listtag(tagqueryParams).then((response) => { | 
 |  |  |         console.log(response); | 
 |  |  |         this.optionstag = response.rows; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     handleClosetag(tag) { | 
 |  |  |       console.log(tag); | 
 |  |  |       console.log(this.dynamicTags.indexOf(tag)); | 
 |  |  |       const lindex = this.dynamicTags.indexOf(tag); | 
 |  |  |       this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); | 
 |  |  |       this.ruleForm.ivrLibaTemplateTagList[lindex].isoperation = 3; | 
 |  |  | 
 |  |  |               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.ruleForm.ivrLibaTemplateScriptVOList.push(res.data); | 
 |  |  |         this.sortFn(); | 
 |  |  |         this.$forceUpdate(); | 
 |  |  |         this.$modal.msgSuccess("添加成功"); | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     handleDelete(row) { | 
 |  |  |       this.$modal | 
 |  |  |         .confirm('是否确认删除问题:"' + row.scriptTopic + '"?') | 
 |  |  |         .confirm('是否确认删除问题:"' + row.scriptTopic + '?') | 
 |  |  |         .then(() => { | 
 |  |  |           this.ruleForm.ivrLibaTemplateScriptVOList.splice( | 
 |  |  |             this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row), | 
 |  |  |             1 | 
 |  |  |           ); | 
 |  |  |           row.isoperation = 3; | 
 |  |  |           this.delScriptVOList.push(row); | 
 |  |  |           if (row.id) { | 
 |  |  |             this.delScriptVOList.push(row); | 
 |  |  |           } | 
 |  |  |           this.sortFn(); | 
 |  |  |           this.$modal.msgSuccess("已删除,保存模板生效"); | 
 |  |  |         }) | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     // 问题排序 | 
 |  |  |     sortFn() { | 
 |  |  |       console.log(this.ruleForm.ivrLibaTemplateScriptVOList); | 
 |  |  |  | 
 |  |  |       this.ruleForm.ivrLibaTemplateScriptVOList.forEach((item, index) => { | 
 |  |  |         item.sort = Number(index) + 1; | 
 |  |  |         console.log(this.ruleForm.ivrLibaTemplateScriptVOList.length); | 
 |  |  | 
 |  |  |         } else { | 
 |  |  |           item.nextScriptno = item.sort + 1; | 
 |  |  |         } | 
 |  |  |         if (item.ivrLibaScriptTargetoptionList) { | 
 |  |  |         if (item.ivrLibaScriptTargetoptionList&&!item.branchFlag) { | 
 |  |  |           item.ivrLibaScriptTargetoptionList.forEach((items) => { | 
 |  |  |             items.nextQuestion = Number(item.sort) + 1; | 
 |  |  |           }); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |       this.$forceUpdate(); | 
 |  |  |  | 
 |  |  |       console.log(this.ruleForm.ivrLibaTemplateScriptVOList); | 
 |  |  |     }, | 
 |  |  |     // -----------------------话术选项 | 
 |  |  |     deloption() {}, | 
 |  |  |     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 | 
 |  |  | 
 |  |  |           this.drawer = false; | 
 |  |  |  | 
 |  |  |           this.sortFn(); | 
 |  |  |           this.$modal.msgSuccess("题目新增成功,保存模板失效"); | 
 |  |  |           this.$modal.msgSuccess("题目新增成功,保存模板生效"); | 
 |  |  |         }); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  | 
 |  |  |     resetForm(formName) { | 
 |  |  |       this.$refs[formName].resetFields(); | 
 |  |  |     }, | 
 |  |  |   // 科室删除触发 | 
 |  |  |   removetag(row) { | 
 |  |  |     // 科室删除触发 | 
 |  |  |     removetag(row) { | 
 |  |  |       let result = this.deptlist | 
 |  |  |         .filter((item) => item.deptCode == row) | 
 |  |  |         .map((item) => item.id); | 
 |  |  | 
 |  |  |       let result = this.hosplist | 
 |  |  |         .filter((item) => item.deptCode == row) | 
 |  |  |         .map((item) => item.id); | 
 |  |  |         if (result.length) { | 
 |  |  |           depthospgetsondel(result).then((res) => { | 
 |  |  |             if (res.code) { | 
 |  |  |             } | 
 |  |  |           }); | 
 |  |  |         } | 
 |  |  |       if (result.length) { | 
 |  |  |         depthospgetsondel(result).then((res) => { | 
 |  |  |           if (res.code) { | 
 |  |  |           } | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 预览--------------- | 
 |  |  |     preview() { | 
 |  |  | 
 |  |  |         .confirm("即将前往模板测试页面,请确认模板数据已保存。") | 
 |  |  |         .then((res) => { | 
 |  |  |           this.$router.push({ | 
 |  |  |             path: "/knowledge/tpuconfigurat/measurement", | 
 |  |  |             query: { id: this.id, name: this.ruleForm.templateName }, | 
 |  |  |             path: "/knowledge/templateku/configurat/measurement", | 
 |  |  |             query: { | 
 |  |  |               id: this.id, | 
 |  |  |               name: this.ruleForm.templateName, | 
 |  |  |               timeout: this.ruleForm.silencetime, | 
 |  |  |             }, | 
 |  |  |           }); | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); |