|  |  | 
 |  |  |           <el-step> | 
 |  |  |             <template slot="title"> | 
 |  |  |               <span style="cursor: pointer" @click="Editprogress = 2" | 
 |  |  |                 >问卷题目</span | 
 |  |  |                 >问卷问题</span | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-step> | 
 |  |  | 
 |  |  |           :model="ruleForm" | 
 |  |  |           :rules="rules" | 
 |  |  |           ref="ruleForm" | 
 |  |  |           label-width="100px" | 
 |  |  |           label-width="180px" | 
 |  |  |           class="demo-ruleForm" | 
 |  |  |         > | 
 |  |  |           <el-row :gutter="10"> | 
 |  |  |           <el-form-item label="问卷名称" prop="svyname"> | 
 |  |  |             <div style="width: 55vw"> | 
 |  |  |               <el-input v-model="ruleForm.svyname"></el-input> | 
 |  |  |             </div> | 
 |  |  |           </el-form-item> | 
 |  |  |           <el-form-item label="问卷描述" prop="description"> | 
 |  |  |             <el-input | 
 |  |  |               style="width: 55vw" | 
 |  |  |               type="textarea" | 
 |  |  |               :rows="2" | 
 |  |  |               placeholder="请输入内容" | 
 |  |  |               v-model="ruleForm.description" | 
 |  |  |             > | 
 |  |  |             </el-input | 
 |  |  |           ></el-form-item> | 
 |  |  |           <el-row :gutter="20"> | 
 |  |  |             <el-col :span="10"> | 
 |  |  |               <el-form-item label="问卷分类" prop="region"> | 
 |  |  |               <el-form-item label="问卷分类" prop="categoryid"> | 
 |  |  |                 <el-select | 
 |  |  |                   v-model="ruleForm.categoryid" | 
 |  |  |                   size="medium" | 
 |  |  | 
 |  |  |                 </el-select> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="10"> | 
 |  |  |               <el-form-item label="评价类型"> | 
 |  |  |             <el-col :span="8"> | 
 |  |  |               <el-form-item label="评价类型" prop="scoreType"> | 
 |  |  |                 <el-select | 
 |  |  |                   v-model="ruleForm.scoreType" | 
 |  |  |                   placeholder="请选择分类" | 
 |  |  | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <el-form-item label="问卷标题" prop="name"> | 
 |  |  |             <div style="width: 30%"> | 
 |  |  |               <el-input v-model="ruleForm.svyname"></el-input> | 
 |  |  |             </div> | 
 |  |  |           </el-form-item> | 
 |  |  |           <el-form-item label="问卷描述"> | 
 |  |  |             <el-input | 
 |  |  |               style="width: 40vw" | 
 |  |  |               type="textarea" | 
 |  |  |               autosize | 
 |  |  |               placeholder="请输入内容" | 
 |  |  |               v-model="ruleForm.description" | 
 |  |  |             > | 
 |  |  |             </el-input | 
 |  |  |           ></el-form-item> | 
 |  |  |           <el-row :gutter="20"> | 
 |  |  |             <el-col :span="10"> | 
 |  |  |               <el-form-item label="可用状态" prop="isenable"> | 
 |  |  |                 <el-radio-group v-model="ruleForm.isenable"> | 
 |  |  |                   <el-radio | 
 |  |  |                     v-for="(item, index) in usable" | 
 |  |  |                     :label="item.value" | 
 |  |  |                     >{{ item.label }}</el-radio | 
 |  |  |                   > | 
 |  |  |                 </el-radio-group> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="8"> | 
 |  |  |               <el-form-item label="版本号" prop="name"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="ruleForm.version" | 
 |  |  |                   placeholder="默认1.0" | 
 |  |  |                 ></el-input> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <!-- <el-row :gutter="20"> | 
 |  |  |             <el-col :span="10"> | 
 |  |  |               <el-form-item label="长期任务" prop="longTemp"> | 
 |  |  |                 <el-radio-group v-model="ruleForm.longTemp"> | 
 |  |  |                   <el-radio | 
 |  |  |                     v-for="(item, index) in longtype" | 
 |  |  |                     :label="item.value" | 
 |  |  |                     >{{ item.label }}</el-radio | 
 |  |  |                   > | 
 |  |  |                 </el-radio-group> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="8" v-if="ruleForm.longTemp"> | 
 |  |  |               <el-form-item label="任务周期(几天后)" prop="name"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="ruleForm.sendDay" | 
 |  |  |                   placeholder="默认5天后" | 
 |  |  |                 ></el-input> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> --> | 
 |  |  |  | 
 |  |  |           <el-row> | 
 |  |  |             <el-form-item label="标签" prop="desc"> | 
 |  |  |             <el-form-item prop="dynamicTags"> | 
 |  |  |               <template #label> | 
 |  |  |                 标签 | 
 |  |  |                 <el-tooltip | 
 |  |  |                   class="item" | 
 |  |  |                   effect="light" | 
 |  |  |                   content="准确、扼要、多重的标签,可以让您在系统使用中方便的查找到该模版。" | 
 |  |  |                   placement="top-start" | 
 |  |  |                 > | 
 |  |  |                   <i class="el-icon-warning-outline"></i> | 
 |  |  |                 </el-tooltip> | 
 |  |  |                 <!-- 在标签后插入红色星号 --> | 
 |  |  |               </template> | 
 |  |  |               <div class="xinz-inf"> | 
 |  |  |                 <el-tag | 
 |  |  |                   :key="tag.tagname" | 
 |  |  | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-row> | 
 |  |  |           <div class="xinz-infs"> | 
 |  |  |             <el-form-item label="适用疾病" prop="region"> | 
 |  |  |             <el-form-item> | 
 |  |  |               <template #label> | 
 |  |  |                 适用疾病 | 
 |  |  |                 <el-tooltip | 
 |  |  |                   class="item" | 
 |  |  |                   effect="light" | 
 |  |  |                   content="选择好适用疾病后,可以方便您通过疾病诊断查找到对应的病人!" | 
 |  |  |                   placement="top-start" | 
 |  |  |                 > | 
 |  |  |                   <i class="el-icon-warning-outline"></i> | 
 |  |  |                 </el-tooltip> | 
 |  |  |               </template> | 
 |  |  |               <div style="margin-bottom: 10px"> | 
 |  |  |                 <el-button | 
 |  |  |                   type="warning" | 
 |  |  |                   @click="$refs.child.handleAddpatient()" | 
 |  |  |                   >添加疾病诊断</el-button | 
 |  |  |                 > | 
 |  |  |               </div> | 
 |  |  |               <el-tag | 
 |  |  |                 v-for="tag in displayedTags" | 
 |  |  |                 :key="tag.icdid" | 
 |  |  | 
 |  |  |               <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> | 
 |  |  |             </el-form-item> | 
 |  |  |           </div> | 
 |  |  |           <div style="margin-left: 120px; margin-bottom: 10px"> | 
 |  |  |             <el-button type="warning" @click="$refs.child.handleAddpatient()" | 
 |  |  |               >疾病详情</el-button | 
 |  |  |             > | 
 |  |  |           </div> | 
 |  |  |           <el-row :gutter="20"> | 
 |  |  |             <el-col :span="6"> | 
 |  |  |               <el-form-item label="版本号" prop="name"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="ruleForm.version" | 
 |  |  |                   placeholder="默认1.0" | 
 |  |  |                 ></el-input> </el-form-item | 
 |  |  |             ></el-col> | 
 |  |  |             <el-col :span="9"> | 
 |  |  |               <el-form-item label="可用状态" prop="region"> | 
 |  |  |                 <el-radio-group v-model="ruleForm.isAvailable"> | 
 |  |  |                   <el-radio | 
 |  |  |                     v-for="(item, index) in usable" | 
 |  |  |                     :label="item.value" | 
 |  |  |                     >{{ item.label }}</el-radio | 
 |  |  |                   > | 
 |  |  |                 </el-radio-group> | 
 |  |  |               </el-form-item></el-col | 
 |  |  |             > | 
 |  |  |           </el-row> | 
 |  |  |           <el-form-item label="问卷方式" prop="region"> | 
 |  |  |  | 
 |  |  |           <el-form-item label="问卷方式" prop="suitway"> | 
 |  |  |             <el-select | 
 |  |  |               v-model="ruleForm.suitway" | 
 |  |  |               style="width: 55vw" | 
 |  |  |               size="medium" | 
 |  |  |               multiple | 
 |  |  |               filterable | 
 |  |  | 
 |  |  |             </el-select> | 
 |  |  |           </el-form-item> | 
 |  |  |  | 
 |  |  |           <el-form-item label="适用院区" prop="region"> | 
 |  |  |             <el-select | 
 |  |  |               v-model="ruleForm.campus" | 
 |  |  |               size="medium" | 
 |  |  |               filterable | 
 |  |  |               placeholder="请选择分类" | 
 |  |  |           <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.id" | 
 |  |  |                     :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.id" | 
 |  |  |                     :label="item.label" | 
 |  |  |                     :value="item.deptCode" | 
 |  |  |                   > | 
 |  |  |                   </el-option> | 
 |  |  |                 </el-select> </el-form-item | 
 |  |  |             ></el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <el-form-item label="结束语" prop="conclusion"> | 
 |  |  |             <el-input | 
 |  |  |               style="width: 55vw; line-height: 80px" | 
 |  |  |               type="textarea" | 
 |  |  |               :rows="5" | 
 |  |  |               autosize | 
 |  |  |               placeholder="请输入内容" | 
 |  |  |               v-model="ruleForm.conclusion" | 
 |  |  |             > | 
 |  |  |               <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-form-item label="适用科室" prop="region"> | 
 |  |  |             <el-cascader | 
 |  |  |               v-model="tempDetpRelevanceslist" | 
 |  |  |               :options="deptList" | 
 |  |  |               :props="props" | 
 |  |  |               :show-all-levels="false" | 
 |  |  |               clearable | 
 |  |  |             > | 
 |  |  |               <template slot-scope="{ node, data }"> | 
 |  |  |                 <span>{{ data.deptName }}</span> | 
 |  |  |                 <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> | 
 |  |  |               </template> | 
 |  |  |             </el-cascader> | 
 |  |  |           </el-form-item> | 
 |  |  |             </el-input | 
 |  |  |           ></el-form-item> | 
 |  |  |  | 
 |  |  |           <el-form-item> | 
 |  |  |             <el-button type="success" @click="nextstep('ruleForm')" | 
 |  |  |               >下一步</el-button | 
 |  |  |             > | 
 |  |  |             <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> | 
 |  |  |             <el-button @click="Departmenttreatment('ruleForm')" | 
 |  |  |             <el-button @click="toExamine('ruleForm')" | 
 |  |  |               >保存问卷基础信息</el-button | 
 |  |  |             > | 
 |  |  |           </el-form-item> | 
 |  |  | 
 |  |  |       <!-- 问卷设置 --> | 
 |  |  |       <div v-if="Editprogress == 2"> | 
 |  |  |         <div class="leftvlue-jbxx"> | 
 |  |  |           问卷题目设置 | 
 |  |  |           问卷问题设置 | 
 |  |  |           <span style="" | 
 |  |  |             ><el-button | 
 |  |  |               type="warning" | 
 |  |  |               icon="el-icon-finished" | 
 |  |  |               round | 
 |  |  |               @click="test" | 
 |  |  |               >题目规则效验</el-button | 
 |  |  |               >问题规则效验</el-button | 
 |  |  |             ></span | 
 |  |  |           > | 
 |  |  |         </div> | 
 |  |  | 
 |  |  |               icon="el-icon-plus" | 
 |  |  |               round | 
 |  |  |               @click="getaddtopiclist" | 
 |  |  |               >添加题目</el-button | 
 |  |  |               >添加问题</el-button | 
 |  |  |             > | 
 |  |  |             <el-button | 
 |  |  |               type="success" | 
 |  |  |               icon="el-icon-edit-outline" | 
 |  |  |               round | 
 |  |  |               @click="Operateit = !Operateit" | 
 |  |  |               >{{ !Operateit ? "编辑题目" : "完整信息展示" }}</el-button | 
 |  |  |               >{{ !Operateit ? "编辑问题" : "完整信息展示" }}</el-button | 
 |  |  |             > | 
 |  |  |           </div> | 
 |  |  |           <div style="display: flex"> | 
 |  |  |           <div style="display: flex" v-if="ruleForm.scoreType == 1"> | 
 |  |  |             <span | 
 |  |  |               style=" | 
 |  |  |                 width: 180px; | 
 |  |  | 
 |  |  |                   width="50" | 
 |  |  |                 /> | 
 |  |  |                 <el-table-column | 
 |  |  |                   label="题目标题" | 
 |  |  |                   label="问题主题" | 
 |  |  |                   align="center" | 
 |  |  |                   key="scriptTopic" | 
 |  |  |                   prop="scriptTopic" | 
 |  |  | 
 |  |  |                 </el-table-column> | 
 |  |  |                 <el-table-column | 
 |  |  |                   v-if="!Operateit" | 
 |  |  |                   label="题目内容" | 
 |  |  |                   label="问题内容" | 
 |  |  |                   align="center" | 
 |  |  |                   key="scriptContent" | 
 |  |  |                   prop="scriptContent" | 
 |  |  | 
 |  |  |                   align="center" | 
 |  |  |                   key="nextScriptno" | 
 |  |  |                   prop="nextScriptno" | 
 |  |  |                   :show-overflow-tooltip="true" | 
 |  |  |                 > | 
 |  |  |                   <template slot-scope="scope"> | 
 |  |  |                     <span>{{ | 
 |  |  | 
 |  |  |                 :model="topicobj" | 
 |  |  |                 class="demo-form-inline" | 
 |  |  |               > | 
 |  |  |                 <div class="headline">题目设置详情</div> | 
 |  |  |                 <div class="headline">问题设置详情</div> | 
 |  |  |                 <el-row :gutter="10"> | 
 |  |  |                   <el-col :span="12"> | 
 |  |  |                     <el-form-item label="题目标题"> | 
 |  |  |                     <el-form-item label="问题主题"> | 
 |  |  |                       <el-input | 
 |  |  |                         v-model="topicobj.scriptTopic" | 
 |  |  |                         placeholder="请输入标题" | 
 |  |  | 
 |  |  |                     </el-form-item> | 
 |  |  |                   </el-col> | 
 |  |  |                 </el-row> | 
 |  |  |  | 
 |  |  |                 <el-row :gutter="10"> | 
 |  |  |                   <el-form-item label="问题内容"> | 
 |  |  |                     <el-input | 
 |  |  |                       style="width: 600px" | 
 |  |  |                       type="textarea" | 
 |  |  |                       :rows="2" | 
 |  |  |                       autosize | 
 |  |  |                       placeholder="请输入问题内容" | 
 |  |  |                       v-model="topicobj.scriptContent" | 
 |  |  |                     > | 
 |  |  |                     </el-input | 
 |  |  |                   ></el-form-item> | 
 |  |  |                 </el-row> | 
 |  |  |                 <el-row :gutter="10"> | 
 |  |  |                   <el-col :span="12" | 
 |  |  |                     ><el-form-item label="题目类型"> | 
 |  |  |                     ><el-form-item label="问题类型"> | 
 |  |  |                       <el-select | 
 |  |  |                         v-model="topicobj.scriptType" | 
 |  |  |                         disabled | 
 |  |  | 
 |  |  |                   ></el-col> | 
 |  |  |                   <el-col :span="12"> | 
 |  |  |                     <el-form-item | 
 |  |  |                       label="题目分值" | 
 |  |  |                       v-if="topicobj.scoretype == 1" | 
 |  |  |                       label="问题分值" | 
 |  |  |                       v-if="ruleForm.scoreType == 1" | 
 |  |  |                     > | 
 |  |  |                       <el-input | 
 |  |  |                         v-model="topicobj.score" | 
 |  |  |                         placeholder="请输入题号" | 
 |  |  |                       ></el-input> | 
 |  |  |                     </el-form-item> | 
 |  |  |  | 
 |  |  |                     <el-form-item prop="valueType"> | 
 |  |  |                       <template #label> | 
 |  |  |                         结果类型 | 
 |  |  |                         <el-tooltip | 
 |  |  |                           class="item" | 
 |  |  |                           effect="light" | 
 |  |  |                           content="本类型为结果收集类型;选项用于指向性题目如是否等;文本适用复杂情况;数值用于收集数值型数据" | 
 |  |  |                           placement="top-start" | 
 |  |  |                         > | 
 |  |  |                           <i class="el-icon-warning-outline"></i> | 
 |  |  |                         </el-tooltip> | 
 |  |  |                         <!-- 在标签后插入红色星号 --> | 
 |  |  |                       </template> | 
 |  |  |                       <el-radio-group v-model="topicobj.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-form-item></el-col | 
 |  |  |                   > | 
 |  |  |                   <el-col :span="12" | 
 |  |  |                     ><el-form-item label="是否可用"> | 
 |  |  |                       <el-radio-group v-model="topicobj.isavailable"> | 
 |  |  |                     ><el-form-item label="是否隐藏"> | 
 |  |  |                       <el-radio-group v-model="topicobj.ishide"> | 
 |  |  |                         <el-radio | 
 |  |  |                           v-for="(item, index) in usable" | 
 |  |  |                           v-for="(item, index) in hides" | 
 |  |  |                           :label="item.value" | 
 |  |  |                           >{{ item.label }}</el-radio | 
 |  |  |                         > | 
 |  |  | 
 |  |  |                   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> | 
 |  |  |                 <div | 
 |  |  |                   v-if="topicobj.scriptType == 1 || topicobj.scriptType == 2" | 
 |  |  |                 > | 
 |  |  | 
 |  |  |                     v-for="item in topicobj.svyLibTemplateTargetoptions" | 
 |  |  |                   > | 
 |  |  |                     <el-row :gutter="5"> | 
 |  |  |                       <el-col :span="16" | 
 |  |  |                         ><el-form-item label="选项"> | 
 |  |  |                       <el-col :span="12" | 
 |  |  |                         ><el-form-item label="选项名称"> | 
 |  |  |                           <el-input | 
 |  |  |                             type="text" | 
 |  |  |                             placeholder="请输入选项" | 
 |  |  | 
 |  |  |                           > | 
 |  |  |                           </el-input> </el-form-item | 
 |  |  |                       ></el-col> | 
 |  |  |                       <el-col :span="8"> | 
 |  |  |                       <el-col :span="12"> | 
 |  |  |                         <el-form-item | 
 |  |  |                           v-if="topicobj.scoretype == 1" | 
 |  |  |                           v-if="ruleForm.scoreType == 1" | 
 |  |  |                           label="选项分值" | 
 |  |  |                         > | 
 |  |  |                           <el-input | 
 |  |  | 
 |  |  |                           </el-input> | 
 |  |  |                         </el-form-item> | 
 |  |  |                         <el-form-item | 
 |  |  |                           v-else-if="topicobj.scoretype == 2" | 
 |  |  |                           v-else-if="ruleForm.scoreType == 2" | 
 |  |  |                           label="ABC等级" | 
 |  |  |                         > | 
 |  |  |                           <el-radio-group v-model="item.score"> | 
 |  |  |                             <el-radio label="A">A</el-radio> | 
 |  |  |                             <el-radio label="B">B</el-radio> | 
 |  |  |                             <el-radio label="C">C</el-radio> | 
 |  |  |                             <el-radio :label="1">A</el-radio> | 
 |  |  |                             <el-radio :label="2">B</el-radio> | 
 |  |  |                             <el-radio :label="3">C</el-radio> | 
 |  |  |                           </el-radio-group> | 
 |  |  |                         </el-form-item> | 
 |  |  |                         <el-form-item | 
 |  |  |                           v-else-if="topicobj.scoretype == 3" | 
 |  |  |                           v-else-if="ruleForm.scoreType == 3" | 
 |  |  |                           label="优良等级" | 
 |  |  |                         > | 
 |  |  |                           <el-radio-group v-model="item.score"> | 
 |  |  | 
 |  |  |                           </el-radio-group> | 
 |  |  |                         </el-form-item> | 
 |  |  |                       </el-col> | 
 |  |  |                     </el-row> | 
 |  |  |                     <el-row :gutter="10"> | 
 |  |  |                       <el-form-item label="异常提醒"> | 
 |  |  |                         <el-radio-group v-model="item.isabnormal"> | 
 |  |  |                           <el-radio :label="1">是</el-radio> | 
 |  |  |                           <el-radio :label="0">否</el-radio> | 
 |  |  |                         </el-radio-group> | 
 |  |  |                       </el-form-item> | 
 |  |  |                       <el-form-item label="是否选中收集附加信息"> | 
 |  |  |                         <el-radio-group v-model="item.appendflag"> | 
 |  |  |                           <el-radio label="1">是</el-radio> | 
 |  |  |                           <el-radio label="0">否</el-radio> | 
 |  |  |                         </el-radio-group> | 
 |  |  |                       </el-form-item> | 
 |  |  |                     </el-row> | 
 |  |  |                     <el-row :gutter="10" v-if="topicobj.branchFlag == 1"> | 
 |  |  |                       <el-col :span="20" | 
 |  |  | 
 |  |  |                           </el-input> </el-form-item | 
 |  |  |                       ></el-col> | 
 |  |  |                     </el-row> | 
 |  |  |                     <el-row :gutter="10"> | 
 |  |  |                     <el-row :gutter="10" v-if="topicobj.scriptType == 1"> | 
 |  |  |                       <el-form-item label="选中提示"> | 
 |  |  |                         <el-input | 
 |  |  |                           style="width: 20vw" | 
 |  |  |                           style="width: 24vw" | 
 |  |  |                           type="textarea" | 
 |  |  |                           autosize | 
 |  |  |                           placeholder="请输入内容" | 
 |  |  | 
 |  |  |                             <el-image | 
 |  |  |                               style="width: 100px; height: 100px" | 
 |  |  |                               :src="item.picturePath" | 
 |  |  |                               :preview-src-list="[...item.picturePath]" | 
 |  |  |                               :preview-src-list=" | 
 |  |  |                                 item.picturePath ? [item.picturePath] : [] | 
 |  |  |                               " | 
 |  |  |                             > | 
 |  |  |                             </el-image> | 
 |  |  |                           </div> | 
 |  |  | 
 |  |  |         > | 
 |  |  |         <el-button type="primary" @click="laststep()">上一步</el-button> | 
 |  |  |         <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> | 
 |  |  |         <el-button @click="Departmenttreatment('ruleForm')" | 
 |  |  |           >保存题目数据</el-button | 
 |  |  |         > | 
 |  |  |         <el-button @click="toExamine('ruleForm')">保存问题数据</el-button> | 
 |  |  |       </div> | 
 |  |  |       <!-- 问卷预览 --> | 
 |  |  |       <div v-if="Editprogress == 3"> | 
 |  |  | 
 |  |  |             <div | 
 |  |  |               class="scriptTopic-dev" | 
 |  |  |               :key="item.sort" | 
 |  |  |               v-if="item.scriptType == 3" | 
 |  |  |               v-if="item.scriptType == 4" | 
 |  |  |             > | 
 |  |  |               <div class="dev-text"> | 
 |  |  |                 {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span> | 
 |  |  | 
 |  |  |         <el-button type="primary" @click="laststep()">上一步</el-button> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |     <!-- 添加题目弹窗 --> | 
 |  |  |     <!-- 添加问题弹窗 --> | 
 |  |  |     <el-drawer | 
 |  |  |       title="添加题目" | 
 |  |  |       title="添加问题" | 
 |  |  |       :visible.sync="drawer" | 
 |  |  |       custom-class="demo-drawer" | 
 |  |  |       size="50%" | 
 |  |  | 
 |  |  |                     @keyup.enter.native="getaddtopiclist" | 
 |  |  |                   /> | 
 |  |  |                 </el-form-item> | 
 |  |  |                 <el-form-item label="题目类型" prop="scriptTopic"> | 
 |  |  |                 <el-form-item label="问题类型" prop="scriptTopic"> | 
 |  |  |                   <el-select | 
 |  |  |                     v-model="queryParams.scriptType" | 
 |  |  |                     size="medium" | 
 |  |  | 
 |  |  |                 class="demo-form-inline" | 
 |  |  |               > | 
 |  |  |                 <div class="headline"> | 
 |  |  |                   题目设置详情 | 
 |  |  |                   问题设置详情 | 
 |  |  |                   <span style="margin-left: 30px" | 
 |  |  |                     ><el-button type="primary" @click="Submittopicobj" | 
 |  |  |                       >保存新增</el-button | 
 |  |  | 
 |  |  |                 <el-divider></el-divider> | 
 |  |  |                 <div> | 
 |  |  |                   <el-row :gutter="10"> | 
 |  |  |                     <el-col :span="18" | 
 |  |  |                       ><el-form-item label="问题内容"> | 
 |  |  |                         <el-input | 
 |  |  |                           style="width: 400px" | 
 |  |  |                           type="textarea" | 
 |  |  |                           v-model="indexform.scriptContent" | 
 |  |  |                           placeholder="请输入问题内容" | 
 |  |  |                         ></el-input> </el-form-item | 
 |  |  |                     ></el-col> | 
 |  |  |                   </el-row> | 
 |  |  |                   <el-row :gutter="10"> | 
 |  |  |                     <el-col :span="12"> | 
 |  |  |                       <el-form-item label="题目标题"> | 
 |  |  |                       <el-form-item label="问题主题"> | 
 |  |  |                         <el-input | 
 |  |  |                           v-model="indexform.scriptTopic" | 
 |  |  |                           placeholder="请输入题目标题" | 
 |  |  |                           placeholder="请输入问题主题" | 
 |  |  |                         ></el-input> | 
 |  |  |                       </el-form-item> | 
 |  |  |                     </el-col> | 
 |  |  |                     <el-col :span="12"> | 
 |  |  |                       <el-form-item label="题目得分"> | 
 |  |  |                       <el-form-item label="问题得分"> | 
 |  |  |                         <el-input | 
 |  |  |                           v-model="indexform.score" | 
 |  |  |                           placeholder="请输入分数" | 
 |  |  | 
 |  |  |                     <el-col :span="12"> | 
 |  |  |                       <el-form-item label="评价类型"> | 
 |  |  |                         <el-select | 
 |  |  |                           v-model="indexform.scoretype" | 
 |  |  |                           v-model="indexform.scoreType" | 
 |  |  |                           placeholder="请选择分类" | 
 |  |  |                         > | 
 |  |  |                           <el-option | 
 |  |  | 
 |  |  |                   <el-row :gutter="10"> | 
 |  |  |                     <el-col :span="12"> | 
 |  |  |                       <el-form-item label="是否可用"> | 
 |  |  |                         <el-radio-group v-model="indexform.isAvailable"> | 
 |  |  |                         <el-radio-group v-model="indexform.isenable"> | 
 |  |  |                           <el-radio | 
 |  |  |                             v-for="(item, index) in usable" | 
 |  |  |                             :label="item.value" | 
 |  |  | 
 |  |  |                       </el-form-item> | 
 |  |  |                     </el-col> | 
 |  |  |                   </el-row> | 
 |  |  |                   <el-row :gutter="10"> | 
 |  |  |                     <el-col :span="18" | 
 |  |  |                       ><el-form-item label="题目内容"> | 
 |  |  |                         <el-input | 
 |  |  |                           style="width: 400px" | 
 |  |  |                           type="textarea" | 
 |  |  |                           v-model="indexform.scriptContent" | 
 |  |  |                           placeholder="请从左侧列表选择" | 
 |  |  |                         ></el-input> </el-form-item | 
 |  |  |                     ></el-col> | 
 |  |  |                   </el-row> | 
 |  |  |                 </div> | 
 |  |  |                 <div> | 
 |  |  |                   <el-form-item label="指标名称" prop="deptId"> | 
 |  |  |                     <el-input | 
 |  |  |                       style="width: 250px" | 
 |  |  |                       type="textarea" | 
 |  |  |                       :rows="2" | 
 |  |  |                       v-model="indexform.targetname" | 
 |  |  |                       placeholder="请输入指标名称" | 
 |  |  |                       maxlength="20" | 
 |  |  | 
 |  |  |                   </el-form-item> | 
 |  |  |                   <el-form-item label="指标描述" prop="deptId"> | 
 |  |  |                     <el-input | 
 |  |  |                       style="width: 250px" | 
 |  |  |                       type="textarea" | 
 |  |  |                       :rows="2" | 
 |  |  |                       v-model="indexform.targetdesc" | 
 |  |  |                       placeholder="请输入指标描述" | 
 |  |  |                       maxlength="60" | 
 |  |  | 
 |  |  |  | 
 |  |  |                   <el-row> | 
 |  |  |                     <el-col :span="20"> | 
 |  |  |                       <el-form-item label="值类型"> | 
 |  |  |                       <el-form-item label="结果类型"> | 
 |  |  |                         <el-radio-group v-model="indexform.valueType"> | 
 |  |  |                           <el-radio :label="1">选项</el-radio> | 
 |  |  |                           <el-radio :label="2">文本</el-radio> | 
 |  |  | 
 |  |  |                   </el-row> | 
 |  |  |                   <el-row> | 
 |  |  |                     <el-col :span="20"> | 
 |  |  |                       <el-form-item label="题目类型"> | 
 |  |  |                       <el-form-item label="问题类型"> | 
 |  |  |                         <el-radio-group v-model="indexform.scriptType"> | 
 |  |  |                           <el-radio :label="1">单选</el-radio> | 
 |  |  |                           <el-radio :label="2">多选</el-radio> | 
 |  |  | 
 |  |  |                       <el-col :span="11" | 
 |  |  |                         ><el-form-item label="选项名称"> | 
 |  |  |                           <el-input | 
 |  |  |                             style="width: 400px" | 
 |  |  |                             type="text" | 
 |  |  |                             placeholder="请输入选项分值" | 
 |  |  |                             v-model="item.optioncontent" | 
 |  |  | 
 |  |  |                       ></el-col> | 
 |  |  |                       <el-col :span="11"> | 
 |  |  |                         <el-form-item | 
 |  |  |                           v-if="indexform.scoretype == 1" | 
 |  |  |                           v-if="indexform.scoreType == 1" | 
 |  |  |                           label="分值" | 
 |  |  |                         > | 
 |  |  |                           <el-input | 
 |  |  | 
 |  |  |                           </el-input> | 
 |  |  |                         </el-form-item> | 
 |  |  |                         <el-form-item | 
 |  |  |                           v-else-if="indexform.scoretype == 2" | 
 |  |  |                           v-else-if="indexform.scoreType == 2" | 
 |  |  |                           label="ABC等级" | 
 |  |  |                         > | 
 |  |  |                           <el-radio-group v-model="item.score"> | 
 |  |  |                             <el-radio label="A">A</el-radio> | 
 |  |  |                             <el-radio label="B">B</el-radio> | 
 |  |  |                             <el-radio label="C">C</el-radio> | 
 |  |  |                             <el-radio :label="1">A</el-radio> | 
 |  |  |                             <el-radio :label="2">B</el-radio> | 
 |  |  |                             <el-radio :label="3">C</el-radio> | 
 |  |  |                           </el-radio-group> | 
 |  |  |                         </el-form-item> | 
 |  |  |                         <el-form-item | 
 |  |  |                           v-else-if="indexform.scoretype == 3" | 
 |  |  |                           v-else-if="indexform.scoreType == 3" | 
 |  |  |                           label="优良等级" | 
 |  |  |                         > | 
 |  |  |                           <el-radio-group v-model="item.score"> | 
 |  |  | 
 |  |  |  | 
 |  |  |                       <el-col | 
 |  |  |                         :span="2" | 
 |  |  |                         :offsset="indexform.scoretype == 4 ? 11 : 0" | 
 |  |  |                         :offsset="indexform.scoreType == 4 ? 11 : 0" | 
 |  |  |                       > | 
 |  |  |                         <el-button | 
 |  |  |                           type="danger" | 
 |  |  | 
 |  |  |                       </el-col> | 
 |  |  |                     </el-row> | 
 |  |  |                     <el-row :gutter="10"> | 
 |  |  |                       <el-form-item label="预警提醒"> | 
 |  |  |                       <el-form-item label="异常提醒"> | 
 |  |  |                         <el-radio-group v-model="item.isabnormal"> | 
 |  |  |                           <el-radio :label="1">是</el-radio> | 
 |  |  |                           <el-radio :label="0">否</el-radio> | 
 |  |  |                         </el-radio-group> | 
 |  |  |                       </el-form-item> | 
 |  |  |                     </el-row> | 
 |  |  |                     <el-row :gutter="10"> | 
 |  |  |                     <el-row :gutter="10" v-if="item.scriptType == 1"> | 
 |  |  |                       <el-form-item label="选中提示"> | 
 |  |  |                         <el-input | 
 |  |  |                           style="width: 400px" | 
 |  |  | 
 |  |  |                           <el-image | 
 |  |  |                             style="width: 100px; height: 100px" | 
 |  |  |                             :src="item.picturePath" | 
 |  |  |                             :preview-src-list="[...item.picturePath]" | 
 |  |  |                             :preview-src-list=" | 
 |  |  |                               item.picturePath ? [item.picturePath] : [] | 
 |  |  |                             " | 
 |  |  |                           > | 
 |  |  |                           </el-image> | 
 |  |  |                         </div> | 
 |  |  | 
 |  |  | import store from "@/store"; | 
 |  |  | import { | 
 |  |  |   getQtemplateclassify, | 
 |  |  |   delQtemplateclassify, | 
 |  |  |   addQtemplateclassify, | 
 |  |  |   depthospgetson, | 
 |  |  |   depthospgetsonlist, | 
 |  |  |   getQtemplateobj, | 
 |  |  |   compileQtemplate, | 
 |  |  |   Qtemplateinfo, | 
 |  |  | 
 |  |  |   Followupinfo, | 
 |  |  |   issueinfo, | 
 |  |  |   getissuelist, | 
 |  |  |   depthospgetsondel, | 
 |  |  |   deltargetillness, | 
 |  |  |   addtargetillness, | 
 |  |  |   getillnesslist, | 
 |  |  | 
 |  |  | } from "@/api/AiCentre/index"; | 
 |  |  | import OptionalForm from "@/components/OptionalForm"; //正则组件 | 
 |  |  | import { getToken } from "@/utils/auth"; | 
 |  |  | import { deptTreeSelect } from "@/api/system/user"; | 
 |  |  |  | 
 |  |  | export default { | 
 |  |  |   name: "Qcompilequer", | 
 |  |  |   name: "Questionnaireinfo", | 
 |  |  |  | 
 |  |  |   components: { OptionalForm }, | 
 |  |  |  | 
 |  |  | 
 |  |  |         svyTemplateLibScripts: [], | 
 |  |  |         tempDetpRelevances: [], | 
 |  |  |         svyLibTemplateTagList: [], | 
 |  |  |         suitway: [], | 
 |  |  |         scoreType: "4", | 
 |  |  |         isenable: "0", | 
 |  |  |         longTemp: "0", | 
 |  |  |         sendDay: "5", | 
 |  |  |       }, | 
 |  |  |       indexform: { | 
 |  |  |         svyLibTemplateTargetoptions: [], | 
 |  |  |       }, | 
 |  |  |       rules: {}, | 
 |  |  |       // 表单校验 | 
 |  |  |       rules: { | 
 |  |  |         categoryid: [ | 
 |  |  |           { required: true, message: "问卷分类不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |         scoreType: [ | 
 |  |  |           { required: true, message: "评价类型不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |         svyname: [ | 
 |  |  |           { required: true, message: "问卷名称不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |         isenable: [ | 
 |  |  |           { required: true, message: "可用状态不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |         scriptTopic: [ | 
 |  |  |           { required: true, message: "问题主题不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |         ismandatory: [ | 
 |  |  |           { required: true, message: "是否必填不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |         scriptType: [ | 
 |  |  |           { required: true, message: "问题类型不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |         suitway: [ | 
 |  |  |           { required: true, message: "问卷方式不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |         conclusion: [ | 
 |  |  |           { required: true, message: "问卷结束语不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |       }, | 
 |  |  |       rulesa: {}, | 
 |  |  |       optionsclass: [], //分类列表 | 
 |  |  |       optionlist: [ | 
 |  |  | 
 |  |  |           sdadd: ["sss", "ssccss", "ssaas", "ss"], | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       addvalue: "添加题目", | 
 |  |  |       // 题目表格数据 | 
 |  |  |       addvalue: "添加问题", | 
 |  |  |       // 问题表格数据 | 
 |  |  |       userList: [], | 
 |  |  |       deptList: [], | 
 |  |  |       props: { multiple: true, value: "deptId", label: "deptName" }, | 
 |  |  | 
 |  |  |       illnessVisible: false, //指标疾病弹框 | 
 |  |  |       Operateit: true, | 
 |  |  |       deptOptions: [], | 
 |  |  |       flatArray: [], | 
 |  |  |       optionsillness: [], | 
 |  |  |       delScriptVOList: [], | 
 |  |  |       illnesslistapi: [], | 
 |  |  |       illnesslist: [], | 
 |  |  |       tempDetpRelevanceslist: [], | 
 |  |  |       tempDetpRelevanceslist: [], //科室数据 | 
 |  |  |       tempDetpRelevanceslistform: [], //科室数据 | 
 |  |  |       tempbelongWards: [], //病区数据 | 
 |  |  |       tempbelongWardsform: [], //病区数据 | 
 |  |  |       optionstag: [], | 
 |  |  |       valuetype: [], | 
 |  |  |       qremark: [], | 
 |  |  |       hosplist: [], | 
 |  |  |       deptlist: [], | 
 |  |  |       usable: [ | 
 |  |  |         { value: "0", label: "可用" }, | 
 |  |  |         { value: "1", label: "停用" }, | 
 |  |  |       ], | 
 |  |  |       hides: [ | 
 |  |  |         { value: 0, label: "正常" }, | 
 |  |  |         { value: 1, label: "隐藏" }, | 
 |  |  |       ], | 
 |  |  |       longtype: [ | 
 |  |  |         { value: "0", label: "普通任务" }, | 
 |  |  |         { value: "1", label: "长期任务" }, | 
 |  |  |       ], | 
 |  |  |       required: [ | 
 |  |  |         { value: "1", label: "必填" }, | 
 |  |  | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |       }, | 
 |  |  |       arr: [ | 
 |  |  |         [ | 
 |  |  |           { id: 1, grade: "5" }, | 
 |  |  |           { id: 2, grade: "5" }, | 
 |  |  |           { id: 3, grade: "5" }, | 
 |  |  |           { id: 4, grade: "5" }, | 
 |  |  |         ], | 
 |  |  |         [ | 
 |  |  |           { id: 1, grade: "5" }, | 
 |  |  |           { id: 3, grade: "5" }, | 
 |  |  |           { id: 4, grade: "5" }, | 
 |  |  |         ], | 
 |  |  |         [ | 
 |  |  |           { id: 1, grade: "5" }, | 
 |  |  |           { id: 2, grade: "5" }, | 
 |  |  |           { id: 4, grade: "5" }, | 
 |  |  |         ], | 
 |  |  |       ], | 
 |  |  |       belongWards: [], | 
 |  |  |       belongDepts: [], | 
 |  |  |       queryParamsdept: { | 
 |  |  |         tempid: "", | 
 |  |  |         type: 1, | 
 |  |  |       }, | 
 |  |  |     }; | 
 |  |  |   }, | 
 |  |  |  | 
 |  |  |   activated() { | 
 |  |  |     if (this.id != this.$route.query.id) { | 
 |  |  |       this.getissueinfo(); | 
 |  |  |       this.gettabList(); | 
 |  |  |     } else { | 
 |  |  |       this.ruleForm.svyTemplateLibScripts = | 
 |  |  |         this.ruleForm.svyTemplateLibScripts.filter( | 
 |  |  |           (item) => item.isoperation != 3 | 
 |  |  |         ); | 
 |  |  |       this.ruleForm.svyLibTemplateTagList = | 
 |  |  |         this.ruleForm.svyLibTemplateTagList.filter( | 
 |  |  |           (item) => item.isoperation != 3 | 
 |  |  |         ); | 
 |  |  |       if (this.ruleForm.suitway) | 
 |  |  |         this.ruleForm.suitway = this.ruleForm.suitway.split(","); | 
 |  |  |       this.delScriptVOList = []; | 
 |  |  |       this.tempDetpRelevanceslistform = []; | 
 |  |  |       this.tempbelongWardsform = []; | 
 |  |  |       this.$forceUpdate(); | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   created() { | 
 |  |  |     this.gettabList(); | 
 |  |  |     this.getissueinfo(); | 
 |  |  |     this.gettabList(); | 
 |  |  |     this.getDeptTree(); | 
 |  |  |     this.mode = store.getters.Askmode; | 
 |  |  |     this.languagelist = store.getters.languagelist; | 
 |  |  |     this.usable = store.getters.usable; | 
 |  |  | 
 |  |  |     this.courtyardlist = store.getters.courtyardlist; | 
 |  |  |     this.askvaluetype = store.getters.askvaluetype; | 
 |  |  |     this.appraiselist = store.getters.appraiselist; | 
 |  |  |     this.belongWards = store.getters.belongWards; | 
 |  |  |     this.belongDepts = store.getters.belongDepts; | 
 |  |  |  | 
 |  |  |     // this.test(); | 
 |  |  |   }, | 
 |  |  | 
 |  |  |       return this.illnesslist.length - 10; | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  |  | 
 |  |  |   methods: { | 
 |  |  |     // 公共方法--------------- | 
 |  |  |     getIndexInArray(arr, obj) { | 
 |  |  | 
 |  |  |     // 获取数据 | 
 |  |  |     getissueinfo() { | 
 |  |  |       this.id = this.$route.query.id; | 
 |  |  |       this.queryParamsdept.tempid = this.id; | 
 |  |  |       this.ruleForm = { | 
 |  |  |         svyTemplateLibScripts: [], | 
 |  |  |         tempDetpRelevances: [], | 
 |  |  |         svyLibTemplateTagList: [], | 
 |  |  |         scoreType: "4", | 
 |  |  |         isenable: "0", | 
 |  |  |         longTemp: "0", | 
 |  |  |         sendDay: "5", | 
 |  |  |       }; | 
 |  |  |       this.topicobj = {}; | 
 |  |  |  | 
 |  |  |       if (this.id) { | 
 |  |  |         getQtemplateobj({ svyid: this.id }).then((res) => { | 
 |  |  |           this.ruleForm = res.rows[0]; | 
 |  |  |           this.dynamicTags = this.ruleForm.svyLibTemplateTagList.map( | 
 |  |  |             this.processElement | 
 |  |  |           ); | 
 |  |  |           this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); | 
 |  |  |           this.ruleForm.suitway = this.ruleForm.suitway.split(","); | 
 |  |  |           console.log(this.dynamicTags, "this.dynamicTags"); | 
 |  |  |           if (this.ruleForm.suitway) | 
 |  |  |             this.ruleForm.suitway = this.ruleForm.suitway.split(","); | 
 |  |  |         }); | 
 |  |  |         getillness({ outid: this.id, type: 5 }).then((res) => { | 
 |  |  |           this.illnesslist = res.rows; | 
 |  |  | 
 |  |  |         this.ruleForm.isenable = "1"; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       listDept(this.queryParams).then((response) => { | 
 |  |  |         this.deptList = this.handleTree(response.data, "deptId"); | 
 |  |  |       }); | 
 |  |  |       // 分类 | 
 |  |  |       getQtemplateclassify({}).then((res) => { | 
 |  |  |         this.optionsclass = res.rows; | 
 |  |  |       }); | 
 |  |  |       this.tempDetpRelevanceslist = []; | 
 |  |  |       this.tempbelongWards = []; | 
 |  |  |       if (this.queryParamsdept.tempid) { | 
 |  |  |         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); | 
 |  |  |               } | 
 |  |  |             }); | 
 |  |  |           } | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 获取科室树 | 
 |  |  |     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; // 返回只包含最底层元素的一维数组 | 
 |  |  |     }, | 
 |  |  |     submitForm(formName) { | 
 |  |  |       this.$modal.loading("正在上传数据,请稍候..."); | 
 |  |  |       this.ruleForm.suitway = this.ruleForm.suitway.join(","); | 
 |  |  |  | 
 |  |  |       this.$modal.loading("正在修正保存数据,请稍候..."); | 
 |  |  |       if (Array.isArray(this.ruleForm.suitway)) { | 
 |  |  |         this.ruleForm.suitway = this.ruleForm.suitway.join(","); | 
 |  |  |       } | 
 |  |  |       if (!this.ruleForm.categoryid) { | 
 |  |  |         this.ruleForm.categoryid = -1; | 
 |  |  |       } | 
 |  |  |       // 题目保存处理 | 
 |  |  |       //   提交 | 
 |  |  |       this.ruleForm.svyTemplateLibScripts.forEach((res) => { | 
 |  |  |         if (!res.isoperation) { | 
 |  |  |           res.isoperation = 2; | 
 |  |  |         } | 
 |  |  |         res.ivrLibaScriptTargetoptionList = res.svyLibTemplateTargetoptions.map( | 
 |  |  |           (item) => { | 
 |  |  |             if (!item.isoperation) { | 
 |  |  |               item.isoperation = 2; | 
 |  |  |               item.templateID = this.ruleForm.id; | 
 |  |  |             } | 
 |  |  |             return item; | 
 |  |  |           } | 
 |  |  |         ); | 
 |  |  |       }); | 
 |  |  |       this.delScriptVOList.forEach((item) => { | 
 |  |  |         this.ruleForm.svyTemplateLibScripts.push(item); | 
 |  |  |       }); | 
 |  |  |       if (this.id) { | 
 |  |  |         this.ruleForm.isoperation = 2; | 
 |  |  |         this.ruleForm.tempDetpRelevances = null; | 
 |  |  |         compileQtemplate(this.ruleForm).then((res) => { | 
 |  |  |           this.$modal.msgSuccess("修改成功"); | 
 |  |  |           this.confirmillness(); | 
 |  |  |           this.putbelongDepts(); | 
 |  |  |           this.$modal.closeLoading(); | 
 |  |  |           this.$router.go(-1); | 
 |  |  |           // window.location.reload(); | 
 |  |  |         }); | 
 |  |  |       } else { | 
 |  |  |         this.ruleForm.isoperation = 1; | 
 |  |  |         this.ruleForm.version = this.ruleForm.version | 
 |  |  |           ? this.ruleForm.version | 
 |  |  |           : "1.0"; | 
 |  |  |         this.ruleForm.tempDetpRelevances = null; | 
 |  |  |         compileQtemplate(this.ruleForm).then((res) => { | 
 |  |  |           this.$modal.msgSuccess("新增成功"); | 
 |  |  |           this.confirmillness(res.data); | 
 |  |  |           this.putbelongDepts(res.data); | 
 |  |  |           this.$modal.closeLoading(); | 
 |  |  |           this.$router.go(-1); | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 科室处理 | 
 |  |  |     // 题目校验 | 
 |  |  |     toExamine() { | 
 |  |  |       // 遍历题目集合 | 
 |  |  |       for (let i = 0; i < this.ruleForm.svyTemplateLibScripts.length; i++) { | 
 |  |  |         const question = this.ruleForm.svyTemplateLibScripts[i]; | 
 |  |  |  | 
 |  |  |         // 如果 scriptType 为 4,则跳过当前题目 | 
 |  |  |         if (question.scriptType === 4) { | 
 |  |  |           continue; | 
 |  |  |         } | 
 |  |  |         // 获取当前题目的选项集合 | 
 |  |  |         const options = question.svyLibTemplateTargetoptions; | 
 |  |  |  | 
 |  |  |         // 创建一个 Set 来存储选项名称,用于检测重复 | 
 |  |  |         const optionNames = new Set(); | 
 |  |  |  | 
 |  |  |         // 遍历选项集合 | 
 |  |  |         for (let j = 0; j < options.length; j++) { | 
 |  |  |           const option = options[j]; | 
 |  |  |           const optionContent = option.optioncontent; | 
 |  |  |  | 
 |  |  |           // 如果选项名称已经存在于 Set 中,说明重复 | 
 |  |  |           if (optionNames.has(optionContent)) { | 
 |  |  |             this.$message.error( | 
 |  |  |               `题目 ${question.id} 的选项名称 "${optionContent}" 重复` | 
 |  |  |             ); | 
 |  |  |             return false; // 返回 false 表示校验失败 | 
 |  |  |           } | 
 |  |  |           // 将选项名称添加到 Set 中 | 
 |  |  |           optionNames.add(optionContent); | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       // 如果所有题目都校验通过,返回 true | 
 |  |  |       console.log("所有题目校验通过,选项名称无重复"); | 
 |  |  |       this.Departmenttreatment(); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 科室/院区处理 | 
 |  |  |     Departmenttreatment() { | 
 |  |  |       this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); | 
 |  |  |       this.ruleForm.svyTemplateLibScripts = | 
 |  |  |         this.ruleForm.svyTemplateLibScripts.concat(this.delScriptVOList); | 
 |  |  |       const result = this.tempDetpRelevanceslist.map( | 
 |  |  |         (subArr) => subArr[subArr.length - 1] | 
 |  |  |       ); | 
 |  |  |       // id数组查数组对象 | 
 |  |  |       result.forEach((item) => { | 
 |  |  |         const condition = this.ruleForm.tempDetpRelevances.some( | 
 |  |  |           (obj) => obj.deptId === item | 
 |  |  |         ); | 
 |  |  |         if (!condition) { | 
 |  |  |           listDept({ deptId: item }).then((res) => { | 
 |  |  |             console.log(res.data[0]); | 
 |  |  |             res.data[0].type = 2; | 
 |  |  |             this.ruleForm.tempDetpRelevances.push(res.data[0]); | 
 |  |  |       this.tempDetpRelevanceslist.forEach((item) => { | 
 |  |  |         console.log(item); | 
 |  |  |         let result = this.deptlist.some((obj) => obj.deptCode == item); | 
 |  |  |         console.log(this.result, "result"); | 
 |  |  |  | 
 |  |  |         if (!result) { | 
 |  |  |           this.tempDetpRelevanceslistform.push({ | 
 |  |  |             deptType: 1, | 
 |  |  |             longTemp: this.ruleForm.longTemp, | 
 |  |  |             deptCode: item, | 
 |  |  |             tempid: this.id, | 
 |  |  |             type: 1, | 
 |  |  |           }); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |       // 数组对象查id数组 | 
 |  |  |       this.ruleForm.tempDetpRelevances.forEach((item) => { | 
 |  |  |         const condition = result.some((obj) => obj === item.deptId); | 
 |  |  |         if (!condition) { | 
 |  |  |           const index = this.ruleForm.tempDetpRelevances.indexOf(item); | 
 |  |  |           this.ruleForm.tempDetpRelevances[index].delFlag = 1; | 
 |  |  |       this.tempbelongWards.forEach((item) => { | 
 |  |  |         let result = this.hosplist.some((obj) => obj.deptCode == item); | 
 |  |  |         if (!result) { | 
 |  |  |           this.tempbelongWardsform.push({ | 
 |  |  |             deptType: 2, | 
 |  |  |             longTemp: this.ruleForm.longTemp, | 
 |  |  |             deptCode: item, | 
 |  |  |             tempid: this.id, | 
 |  |  |             type: 1, | 
 |  |  |           }); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |  | 
 |  |  |       // return | 
 |  |  |       setTimeout(() => { | 
 |  |  |         this.submitForm(); | 
 |  |  |       }, 1000); | 
 |  |  |       }, 500); | 
 |  |  |     }, | 
 |  |  |     // 科室删除触发 | 
 |  |  |     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) { | 
 |  |  |           } | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 下一步 | 
 |  |  |     nextstep() { | 
 |  |  | 
 |  |  |           }); | 
 |  |  |         }); | 
 |  |  |     }, | 
 |  |  |     // 获取题目列表 | 
 |  |  |     // 获取问题列表 | 
 |  |  |     getaddtopiclist() { | 
 |  |  |       this.drawer = true; | 
 |  |  |       this.queryParams.scoretype = this.ruleForm.scoreType; | 
 |  |  |       this.queryParams.scoreType = this.ruleForm.scoreType; | 
 |  |  |       getissuelist(this.queryParams).then((res) => { | 
 |  |  |         this.loading = false; | 
 |  |  |         this.userList = res.rows; | 
 |  |  | 
 |  |  |         console.log(this.userList); | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 新增题目 | 
 |  |  |     // 新增问题 | 
 |  |  |     addtopic(row) { | 
 |  |  |       row.isoperation = 1; | 
 |  |  |       console.log(row, "row"); | 
 |  |  |       row.svyLibScriptOptions.forEach((item) => { | 
 |  |  |         item.isoperation = 1; | 
 |  |  |       }); | 
 |  |  | 
 |  |  |     handleUpdate(row) { | 
 |  |  |       this.topicobj = row; | 
 |  |  |       this.radioas = ""; | 
 |  |  |       console.log(this.topicobj, "看数据"); | 
 |  |  |       // getissuelist({ svyid: row.svyid }).then((res) => { | 
 |  |  |       // }); | 
 |  |  |     }, | 
 |  |  | 
 |  |  |       console.log(this.ruleForm.svyTemplateLibScripts); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 修改题目信息 | 
 |  |  |     // 修改问题信息 | 
 |  |  |     Submittopicobj() { | 
 |  |  |       this.$modal | 
 |  |  |         .confirm( | 
 |  |  | 
 |  |  |           this.drawer = false; | 
 |  |  |  | 
 |  |  |           this.sortFn(); | 
 |  |  |           this.$modal.msgSuccess("题目新增成功,保存模版失效"); | 
 |  |  |           this.$modal.msgSuccess("问题新增成功,保存模板失效"); | 
 |  |  |         }); | 
 |  |  |     }, | 
 |  |  |     // 新增变量 | 
 |  |  | 
 |  |  |       this.illnessVisible = false; | 
 |  |  |       this.$modal.msgSuccess("编辑成功"); | 
 |  |  |     }, | 
 |  |  |     // 保存科室/病区 | 
 |  |  |     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("院区新增成功"); | 
 |  |  |           } | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     resetQuery() { | 
 |  |  |       this.queryParams = { pageNum: 1, pageSize: 10 }; | 
 |  |  |       this.getaddtopiclist(); | 
 |  |  | 
 |  |  |     sumArray(arr) { | 
 |  |  |       // const arrsum = arr; | 
 |  |  |       // arrsum.forEach((item) => { | 
 |  |  |       //   // 判断题目和模版层级 | 
 |  |  |       //   // 判断问题和模板层级 | 
 |  |  |       //   console.log(item, "一条链路"); | 
 |  |  |  | 
 |  |  |       //   const totalScore = item.reduce((accumulator, current) => { | 
 |  |  | 
 |  |  |  | 
 |  |  |       const allGreaterThanTen = arr.every((array) => { | 
 |  |  |         const totalScore = array.reduce((accumulator, current) => { | 
 |  |  |           return accumulator + current.score; | 
 |  |  |           return accumulator + Number(current.score); | 
 |  |  |         }, 0); | 
 |  |  |         console.log(totalScore); | 
 |  |  |         console.log(this.ruleForm.scriptScore); | 
 |  |  |  | 
 |  |  |         return totalScore == this.ruleForm.scriptScore; | 
 |  |  |       }); | 
 |  |  |       if (allGreaterThanTen) { | 
 |  |  |         this.$modal.msgSuccess("题目分值累加和模版总分相符"); | 
 |  |  |         this.$modal.msgSuccess("分值校验成功"); | 
 |  |  |       } else { | 
 |  |  |         this.$modal.msgError("题目分值累加和模版分值不符"); | 
 |  |  |         this.$modal.msgError("问题分值累加和模板分值不符"); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  | 
 |  |  |         ); | 
 |  |  |  | 
 |  |  |         if (notInB.length) { | 
 |  |  |           this.$modal.msgError("题目未全部使用"); | 
 |  |  |           this.$modal.msgError("问题未全部使用"); | 
 |  |  |         } else { | 
 |  |  |           this.$modal.msgSuccess("题目全部使用"); | 
 |  |  |           this.$modal.msgSuccess("问题全部使用"); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |       arr.forEach((item) => { | 
 |  |  | 
 |  |  |           return acc; | 
 |  |  |         }, {}); | 
 |  |  |         const whether = item.values(idCount).some((count) => count > 1); // 如果有任何 id 的计数大于 1 就返回 true | 
 |  |  |         if (!whether) this.$modal.msgError("配置项有题目重复"); | 
 |  |  |         if (!whether) this.$modal.msgError("配置项有问题重复"); | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 题目和选项间的分值判断 | 
 |  |  |     // 问题和选项间的分值判断 | 
 |  |  |     Scorejudgment() { | 
 |  |  |       let scorearr = this.topicobj.svyLibScriptOptions; | 
 |  |  |       let isValid = scorearr.every((score, index) => { | 
 |  |  | 
 |  |  |   display: flex; | 
 |  |  |   .presentation-left { | 
 |  |  |     width: 45%; | 
 |  |  |     // height: 500px; | 
 |  |  |     max-height: 80vh; | 
 |  |  |     padding: 0 20px; | 
 |  |  |     font-size: 18px; | 
 |  |  |     overflow: auto; | 
 |  |  |     .button-textxg { | 
 |  |  |       color: #024df0; | 
 |  |  |     } | 
 |  |  | 
 |  |  |   } | 
 |  |  |   .presentation-right { | 
 |  |  |     width: 55%; | 
 |  |  |     max-height: 688px; | 
 |  |  |     max-height: 80vh; | 
 |  |  |     padding: 0 20px; | 
 |  |  |     font-size: 18px; | 
 |  |  |     overflow: auto; |