| | |
| | | <el-step> |
| | | <template slot="title"> |
| | | <span style="cursor: pointer" @click="Editprogress = 2" |
| | | >随访模版题目</span |
| | | >随访模板题目</span |
| | | > |
| | | </template> |
| | | </el-step> |
| | | <el-step description="查看随访模版预览,可导出PDF"> |
| | | <el-step description="查看随访模板预览,可导出PDF"> |
| | | <template slot="title"> |
| | | <span style="cursor: pointer" @click="preview">随访模版预览</span> |
| | | <span style="cursor: pointer" @click="preview">随访模板预览</span> |
| | | </template> |
| | | </el-step> |
| | | </el-steps> |
| | |
| | | > |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="模版名称" prop="region"> |
| | | <el-form-item label="模板名称" prop="region"> |
| | | <div> |
| | | <el-input |
| | | v-model="ruleForm.templateName" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="随访模版分类" prop="region"> |
| | | <el-form-item label="随访模板分类" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.assortid" |
| | | size="medium" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="模板简介" prop="note"> |
| | | <div> |
| | | <el-input |
| | | type="textarea" |
| | | placeholder="请输入简介" |
| | | v-model="ruleForm.note" |
| | | ></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-form-item label="模版简介" prop="note"> |
| | | <div style="width: 50%"> |
| | | <el-input |
| | | type="textarea" |
| | | placeholder="请输入简介" |
| | | v-model="ruleForm.note" |
| | | ></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="版本号" prop="version"> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="可用状态" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.usestate" |
| | | v-model="ruleForm.isenable" |
| | | size="medium" |
| | | placeholder="请选择" |
| | | > |
| | |
| | | @change="handleInputConfirm" |
| | | filterable |
| | | remote |
| | | allow-create |
| | | reserve-keyword |
| | | default-first-option |
| | | :remote-method="remoteMethodtag" |
| | |
| | | > |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="适用疾病" prop="region"> |
| | | <div class="xinz-inf"> |
| | | <div class="xinz-infs"> |
| | | <el-form-item label="适用疾病" prop="region"> |
| | | <el-tag |
| | | :key="item.icd10name" |
| | | v-for="tag in displayedTags" |
| | | :key="tag.icdid" |
| | | type="warning" |
| | | v-for="item in illnesslist" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleCloseillness(item)" |
| | | > |
| | | {{ item.icd10name }} |
| | | {{ tag.icdname }} |
| | | </el-tag> |
| | | <el-select |
| | | v-model="inputValueillness" |
| | | v-if="inputVisibleillness" |
| | | @change="illnessConfirm" |
| | | :remote-method="remoteMethod" |
| | | filterable |
| | | remote |
| | | allow-create |
| | | default-first-option |
| | | placeholder="请选择/查询" |
| | | :loading="loading" |
| | | <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="margin-left: 120px; margin-bottom: 10px"> |
| | | <el-button type="warning" @click="$refs.child.handleAddpatient()" |
| | | >疾病详情</el-button |
| | | > |
| | | </div> |
| | | <el-form-item label="适用通用库" prop="region"> |
| | | <el-select |
| | | style="width: 500px" |
| | | v-model="ruleForm.submoduleID" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择通用库" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in generallist" |
| | | :key="item.id" |
| | | :label="item.extName" |
| | | :value="item.id" |
| | | > |
| | | <el-option |
| | | v-for="item in optionsillness" |
| | | :key="item.icdid" |
| | | :label="item.icdname" |
| | | :value="item.icdid" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <el-button |
| | | v-else |
| | | class="button-new-tag" |
| | | size="small" |
| | | @click="inputVisibleillness = true" |
| | | >+ 新增疾病</el-button |
| | | > |
| | | </div> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="适用院区" prop="region"> |
| | | <el-select |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="适用科室" prop="region"> |
| | | <el-cascader |
| | | style="width: 500px" |
| | | v-model="tempDetpRelevanceslist" |
| | | :options="deptList" |
| | | :props="props" |
| | | :show-all-levels="false" |
| | | clearable |
| | | > |
| | | <template slot-scope="{ node, data }"> |
| | | <span>{{ data.deptName }}</span> |
| | | <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> |
| | | </template> |
| | | </el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="通用库" prop="region"> |
| | | <el-select |
| | | style="width: 500px" |
| | | v-model="ruleForm.submoduleID" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择库(多选)" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in generallist" |
| | | :key="item.id" |
| | | :label="item.extName" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="随访前处理" prop="name"> |
| | | <el-input |
| | | v-model="ruleForm.revisitBefore" |
| | | ></el-input></el-form-item |
| | | ></el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="随访后处理" prop="region"> |
| | | <el-input |
| | | v-model="ruleForm.revisitAfter" |
| | | ></el-input> </el-form-item |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用科室" prop="region"> |
| | | <el-select |
| | | v-model="tempDetpRelevanceslist" |
| | | @remove-tag="removetag" |
| | | style="width: 55vw" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in flatArray" |
| | | :key="item.deptCode" |
| | | :label="item.label" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用病区" prop="region"> |
| | | <el-select |
| | | v-model="tempbelongWards" |
| | | @remove-tag="removehpsp" |
| | | style="width: 55vw" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in flatArray" |
| | | :key="item.deptCode" |
| | | :label="item.label" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12" |
| | | ><el-form-item label="开场白" prop="revisitBefore"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="3" |
| | | v-model="ruleForm.revisitBefore" |
| | | placeholder="请输入开场白" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="结束语" prop="revisitAfter"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="3" |
| | | v-model="ruleForm.revisitAfter" |
| | | placeholder="请输入结束语" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="静默时间(秒)" prop="name"> |
| | |
| | | >下一步</el-button |
| | | > |
| | | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> |
| | | <el-button type="success" @click="Departmenttreatment('ruleForm')" |
| | | >保存随访模版基础信息</el-button |
| | | <el-button |
| | | type="success" |
| | | @click="Departmenttreatment('ruleForm')" |
| | | >{{ task ? "保存到任务模板" : "保存随访模板基础信息" }}</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- 随访模版设置 --> |
| | | <!-- 随访模板设置 --> |
| | | <div v-if="Editprogress == 2"> |
| | | <div class="leftvlue-jbxx">随访模版题目设置</div> |
| | | <div class="leftvlue-jbxx">随访模板题目设置</div> |
| | | <el-divider></el-divider> |
| | | <div class="addtopic"> |
| | | <el-button |
| | |
| | | @click="getaddtopiclist" |
| | | >添加题目</el-button |
| | | > |
| | | <el-button |
| | | type="success" |
| | | icon="el-icon-edit-outline" |
| | | round |
| | | @click="Operateit = !Operateit" |
| | | >{{ !Operateit ? "编辑题目" : "完整信息展示" }}</el-button |
| | | > |
| | | </div> |
| | | <div class="presentation"> |
| | | <div class="presentation-left"> |
| | | <div :class="Operateit ? 'presentation-left' : 'spresentation-left'"> |
| | | <el-card class="box-card" style="min-height: 688px"> |
| | | <el-table |
| | | v-loading="loading" |
| | |
| | | <el-table-column |
| | | label="编号" |
| | | align="center" |
| | | key="targetid" |
| | | prop="targetid" |
| | | key="sort" |
| | | prop="sort" |
| | | /> |
| | | <el-table-column |
| | | label="标题" |
| | | align="center" |
| | | key="questiontitle" |
| | | prop="questiontitle" |
| | | key="scriptTopic" |
| | | prop="scriptTopic" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | v-if="!Operateit" |
| | | label="问题话术" |
| | | align="center" |
| | | key="questionText" |
| | | prop="questionText" |
| | | key="scriptContent" |
| | | prop="scriptContent" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | v-if="!Operateit" |
| | | label="问题话术" |
| | | align="center" |
| | | key="scriptContent" |
| | | prop="scriptContent" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="下题跳转" |
| | | align="center" |
| | | key="nextScriptno" |
| | | prop="nextScriptno" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ |
| | | scope.row.nextScriptno == 0 |
| | | ? "已是最后一题" |
| | | : scope.row.nextScriptno |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | | v-if="Operateit" |
| | | align="center" |
| | | width="250" |
| | | class-name="small-padding fixed-width" |
| | |
| | | </el-table> |
| | | </el-card> |
| | | </div> |
| | | <div class="presentation-right"> |
| | | <div class="presentation-right" v-if="Operateit"> |
| | | <el-card class="box-card"> |
| | | <el-form |
| | | :inline="true" |
| | | :model="topicobj" |
| | | :inline="true" |
| | | class="demo-form-inline" |
| | | > |
| | | <div class="headline"> |
| | | 题目设置详情 |
| | | <span style="margin-left: 30px" |
| | | ><el-button type="primary" @click="Submittopicobj" |
| | | >保存</el-button |
| | | ></span |
| | | > |
| | | </div> |
| | | <el-form-item label="题目标题"> |
| | | <el-input |
| | | v-model="topicobj.questiontitle" |
| | | placeholder="请从左侧列表选择" |
| | | :disabled="true" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="问题节点"> |
| | | <el-input |
| | | v-model="topicobj.targetid" |
| | | placeholder="请从左侧列表选择" |
| | | :disabled="true" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <div class="headline">题目设置详情</div> |
| | | <el-row> |
| | | <el-col :span="24" |
| | | ><el-form-item label="题目标题"> |
| | | <el-input |
| | | v-model="topicobj.scriptTopic" |
| | | placeholder="请从左侧列表选择" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24" |
| | | ><el-form-item label="问题话术"> |
| | | <el-input |
| | | type="textarea" |
| | | style="width: 600px" |
| | | v-model="topicobj.scriptContent" |
| | | placeholder="请从左侧列表选择" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="问题节点"> |
| | | <el-input |
| | | v-model="topicobj.sort" |
| | | placeholder="请从左侧列表选择" |
| | | :disabled="true" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="下题跳转"> |
| | | <el-input |
| | | v-model="topicobj.nextScriptno" |
| | | placeholder="请输入题号" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="是否必填"> |
| | | <el-select |
| | | v-model="topicobj.ismandatory" |
| | | placeholder="请选择" |
| | | v-model="topicobj.isMust" |
| | | placeholder="默认必填" |
| | | > |
| | | <el-option |
| | | v-for="item in required" |
| | |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="取值类型"> |
| | | ><el-form-item label="题目类型"> |
| | | <el-select |
| | | v-model="topicobj.isEnable" |
| | | v-model="topicobj.scriptType" |
| | | placeholder="请选择" |
| | | :disabled="true" |
| | | > |
| | | <el-option |
| | | v-for="item in valuetype" |
| | | v-for="item in askvaluetype" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <div class="topicxq" v-if="topicobj.isEnable == 2 || topicobj.isEnable == 3"> |
| | | <el-form-item |
| | | label="是否由选项配置跳转" |
| | | v-if="topicobj.scriptType == 1" |
| | | > |
| | | <el-radio-group v-model="topicobj.branchFlag"> |
| | | <el-radio :label="'1'">是</el-radio> |
| | | <el-radio :label="'0'">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="选中提示" v-if="topicobj.scriptType != 1"> |
| | | <el-input |
| | | style="width: 24vw" |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="topicobj.prompt" |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | <el-row> |
| | | <el-col :span="24" |
| | | ><el-form-item label="语音文本"> |
| | | <el-input |
| | | type="textarea" |
| | | style="width: 600px" |
| | | v-model="topicobj.ivrtext" |
| | | placeholder="请从左侧列表选择" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="语音文件" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="uploadImgUrl" |
| | | :headers="headers" |
| | | :show-file-list="false" |
| | | :on-success=" |
| | | (response, file) => handleChanges(response, file, 1) |
| | | " |
| | | accept=".wav,.mp3" |
| | | :limit="1" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | >点击上传</el-button |
| | | > |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <span |
| | | style="font-size: 18px; margin-top: 10px" |
| | | v-if="topicobj.ivrVoice" |
| | | >{{ |
| | | topicobj.ivrVoice.substring( |
| | | topicobj.ivrVoice.lastIndexOf("/") + 1 |
| | | ) |
| | | }}</span |
| | | > |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <mini-audio |
| | | :audio-source=" |
| | | topicobj.ivrVoice |
| | | ? topicobj.ivrVoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="topicxq" v-if="topicobj.scriptType == 4"> |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="收集内容"> |
| | | <el-input |
| | | style="width: 400px;" |
| | | style="width: 400px" |
| | | type="textarea" |
| | | v-model="topicobj.value" |
| | | placeholder="问题收集内容" |
| | |
| | | <Regular |
| | | :TargetoptionList="topicobj.ivrLibaScriptTargetoptionList" |
| | | @deloption="deloption" |
| | | @branchFlagfn="branchFlagfn" |
| | | :branchFlag="topicobj.branchFlag ? true : false" |
| | | :controlsc="false" |
| | | :scriptType="topicobj.scriptType" |
| | | /> |
| | | <!-- 无匹配类型 --> |
| | | <div class="topicxq"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | <el-col :span="20" |
| | | ><el-form-item label="无匹配话术"> |
| | | <el-input |
| | | type="text" |
| | | type="textarea" |
| | | style="width: 400px" |
| | | placeholder="请输入" |
| | | v-model="topicobj.nomatchtext" |
| | | v-model="topicobj.noMatchText" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="处理"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="(默认)无声" |
| | | v-model="topicobj.text" |
| | | maxlength="10" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="16"> |
| | | <el-form-item label="语音文件"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="无匹配语音" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | style="display: flex" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | :on-change="handleChange" |
| | | :file-list="fileList" |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file) => |
| | | handleChanges(response, file, 2) |
| | | " |
| | | accept=".wav,.mp3" |
| | | :limit="1" |
| | | :on-exceed="handleExceed" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | >点击上传</el-button |
| | | > |
| | | </el-upload> |
| | | </el-form-item></el-col |
| | | > |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <span |
| | | style="font-size: 12px" |
| | | v-if="topicobj.nomatchvoice" |
| | | >{{ |
| | | topicobj.nomatchvoice.substring( |
| | | topicobj.nomatchvoice.lastIndexOf("/") + 1 |
| | | ) |
| | | }}</span |
| | | > |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <mini-audio |
| | | :audio-source=" |
| | | topicobj.nomatchvoice |
| | | ? topicobj.nomatchvoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="topicxq"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | <el-col :span="20" |
| | | ><el-form-item label="听不清话术"> |
| | | <el-input |
| | | type="text" |
| | | style="width: 400px" |
| | | type="textarea" |
| | | placeholder="请输入" |
| | | v-model="topicobj.noclearlytext" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="处理"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="(默认)无声" |
| | | v-model="topicobj.text" |
| | | maxlength="10" |
| | | v-model="topicobj.noClearlyText" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="16"> |
| | | <el-form-item label="语音文件"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="听不清语音" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | style="display: flex" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | :on-change="handleChange" |
| | | :file-list="fileList" |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file) => |
| | | handleChanges(response, file, 4) |
| | | " |
| | | accept=".wav,.mp3" |
| | | :limit="1" |
| | | :on-exceed="handleExceed" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | >点击上传</el-button |
| | | > |
| | | </el-upload> |
| | | </el-form-item></el-col |
| | | > |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <span |
| | | style="font-size: 12px" |
| | | v-if="topicobj.noclearlyvoice" |
| | | >{{ |
| | | topicobj.noclearlyvoice.substring( |
| | | topicobj.noclearlyvoice.lastIndexOf("/") + 1 |
| | | ) |
| | | }}</span |
| | | > |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <mini-audio |
| | | :audio-source=" |
| | | topicobj.noclearlyvoice |
| | | ? topicobj.noclearlyvoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="topicxq"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | <el-col :span="20" |
| | | ><el-form-item label="静默话术"> |
| | | <el-input |
| | | type="text" |
| | | type="textarea" |
| | | style="width: 400px" |
| | | placeholder="请输入" |
| | | v-model="topicobj.sliencetext" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="处理"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="(默认)无声" |
| | | v-model="topicobj.text" |
| | | maxlength="10" |
| | | v-model="topicobj.slienceText" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="16"> |
| | | <el-form-item label="语音文件"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="静默语音" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | style="display: flex" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | :on-change="handleChange" |
| | | :file-list="fileList" |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file) => |
| | | handleChanges(response, file, 3) |
| | | " |
| | | accept=".wav,.mp3" |
| | | :limit="1" |
| | | :on-exceed="handleExceed" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | >点击上传</el-button |
| | | > |
| | | </el-upload> |
| | | </el-form-item></el-col |
| | | > |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <span |
| | | style="font-size: 12px" |
| | | v-if="topicobj.sliencevoice" |
| | | >{{ |
| | | topicobj.sliencevoice.substring( |
| | | topicobj.sliencevoice.lastIndexOf("/") + 1 |
| | | ) |
| | | }}</span |
| | | > |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <mini-audio |
| | | :audio-source=" |
| | | topicobj.sliencevoice |
| | | ? topicobj.sliencevoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <el-button type="success" @click="Departmenttreatment('ruleForm')" |
| | | >保存题目数据</el-button |
| | | > |
| | | <el-button type="success" @click="Departmenttreatment('ruleForm')">{{ |
| | | task ? "保存到任务模板" : "保存题目数据" |
| | | }}</el-button> |
| | | <el-button type="primary" plain @click="laststep()">上一步</el-button> |
| | | <el-button type="success" plain @click="preview('ruleForm')" |
| | | >查看预览</el-button |
| | | > |
| | | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> |
| | | </div> |
| | | <!-- 随访模版预览 --> |
| | | <!-- 随访模板预览 --> |
| | | <div v-if="Editprogress == 3"> |
| | | <div class="leftvlue-jbxx">随访模版问题预览</div> |
| | | <div class="leftvlue-jbxx">随访模板问题预览</div> |
| | | <el-divider></el-divider> |
| | | |
| | | <div class="preview-left"> |
| | | <!-- 单选 --> |
| | | <div |
| | | class="topic-dev" |
| | | v-for="(item, index) in valssu" |
| | | :key="item.aaa" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}、[单选]<span>{{ item.questionText }}</span> |
| | | <div v-for="item in valssu"> |
| | | <!-- 单选 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | :key="item.sort" |
| | | v-if="item.valueType == 1" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="item.remark"> |
| | | <el-radio |
| | | v-for="(items, index) in item.ivrLibaScriptTargetoptionList" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items.targetvalue }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio |
| | | v-for="(items, index) in item.ivrLibaScriptTargetoptionList" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items.targetvalue }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | <!-- 多选 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | :key="item.sort" |
| | | v-if="item.valueType == 2" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="item.remark"> |
| | | <el-checkbox |
| | | v-for="(items, index) in item.ivrLibaScriptTargetoptionList" |
| | | :key="index" |
| | | :label="index" |
| | | > |
| | | {{ items.targetvalue }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <!-- 填空 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | :key="item.sort" |
| | | v-if="item.valueType == 3" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-input placeholder="请输入答案" v-model="radioas" clearable> |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 多选 --> |
| | | <div |
| | | class="topic-dev" |
| | | v-for="(item, index) in valssu" |
| | | :key="item.aaa" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}、[多选]<span>{{ item.questionText }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="radios"> |
| | | <el-checkbox |
| | | v-for="(items, indexs) in item.ivrLibaScriptTargetoptionList" |
| | | :key="indexs" |
| | | :label="indexs" |
| | | > |
| | | {{ items.targetvalue }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <!-- 填空 |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}、[填空]<span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-input placeholder="请输入答案" v-model="radioas" clearable> |
| | | </el-input> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | <el-button type="primary" plain @click="laststep()">上一步</el-button> |
| | | <el-button type="warning" @click="measurement()">前往测试</el-button> |
| | |
| | | <!-- 添加题目弹窗 --> |
| | | <el-drawer |
| | | title="添加题目" |
| | | @close="$forceUpdate()" |
| | | @closed="$forceUpdate()" |
| | | :visible.sync="drawer" |
| | | custom-class="demo-drawer" |
| | | width="50%" |
| | | size="50%" |
| | | > |
| | | <div class="preview-left"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="标题" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.questiontitle" |
| | | placeholder="请输入" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="getaddtopiclist" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="getaddtopiclist" |
| | | >搜索</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" |
| | | >重置</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table v-loading="loading" :data="userList"> |
| | | <el-table-column |
| | | label="标题" |
| | | align="center" |
| | | key="questiontitle" |
| | | prop="questiontitle" |
| | | width="100" |
| | | /> |
| | | <el-table-column |
| | | label="问题话术" |
| | | align="center" |
| | | key="questionText" |
| | | prop="questionText" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button size="medium" type="text" @click="addtopic(scope.row)" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-circle-plus-outline"></i>添加</span |
| | | ></el-button |
| | | <div style="margin: 0 25px"> |
| | | <el-tabs v-model="activeName"> |
| | | <el-tab-pane label="题库选取" name="first"> |
| | | <div class="preview-left"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | label-width="98px" |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-form-item label="标题" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.scriptTopic" |
| | | placeholder="请输入" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="getaddtopiclist" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="getaddtopiclist" |
| | | >搜索</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="medium" |
| | | @click="resetQuery" |
| | | >重置</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table v-loading="loading" :data="userList"> |
| | | <el-table-column |
| | | label="标题" |
| | | align="center" |
| | | key="scriptTopic" |
| | | prop="scriptTopic" |
| | | width="100" |
| | | /> |
| | | <el-table-column |
| | | label="问题话术" |
| | | align="center" |
| | | key="scriptContent" |
| | | prop="scriptContent" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="问题类型" |
| | | align="center" |
| | | key="valueType" |
| | | prop="valueType" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="valuetypes" |
| | | :value="scope.row.valueType" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="选项内容" |
| | | align="center" |
| | | key="targetoptions" |
| | | prop="targetoptions" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="addtopic(scope.row)" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-circle-plus-outline"></i>添加</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getaddtopiclist" |
| | | /> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="手动配置" name="second"> |
| | | <div class="preview-left"> |
| | | <el-form |
| | | :inline="true" |
| | | :model="indexform" |
| | | class="demo-form-inline" |
| | | > |
| | | <div class="headline"> |
| | | 题目设置详情 |
| | | <span style="margin-left: 30px" |
| | | ><el-button type="primary" @click="Submittopicobj" |
| | | >保存新增</el-button |
| | | ></span |
| | | > |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="题目标题"> |
| | | <el-input |
| | | v-model="indexform.scriptTopic" |
| | | placeholder="请输入题目标题" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="问题节点"> |
| | | <el-input |
| | | v-model="indexform.sort" |
| | | placeholder="请输入问题节点" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="18" |
| | | ><el-form-item label="问题话术"> |
| | | <el-input |
| | | style="width: 600px" |
| | | type="textarea" |
| | | v-model="indexform.scriptContent" |
| | | placeholder="请从左侧列表选择" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="是否必填"> |
| | | <el-select |
| | | v-model="indexform.isMust" |
| | | placeholder="默认必填" |
| | | > |
| | | <el-option |
| | | v-for="item in required" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <!-- <el-col :span="12" |
| | | ><el-form-item label="取值类型"> |
| | | <el-select |
| | | v-model="indexform.valueType" |
| | | placeholder="请选择" |
| | | :disabled="true" |
| | | > |
| | | <el-option |
| | | v-for="item in valuetype" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> --> |
| | | </el-row> |
| | | <el-form-item |
| | | label="选中提示" |
| | | v-if="topicobj.scriptType != 1" |
| | | > |
| | | <el-input |
| | | style="width: 24vw" |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="indexform.prompt" |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="18" |
| | | ><el-form-item label="语音文本"> |
| | | <el-input |
| | | style="width: 600px" |
| | | type="textarea" |
| | | v-model="indexform.ivrtext" |
| | | placeholder="请从左侧列表选择" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="语音文件" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="uploadImgUrl" |
| | | :headers="headers" |
| | | :show-file-list="false" |
| | | :on-success=" |
| | | (response, file) => handleChange(response, file, 1) |
| | | " |
| | | accept=".wav,.mp3" |
| | | :limit="1" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | >点击上传</el-button |
| | | > |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <span |
| | | style="font-size: 18px; margin-top: 10px" |
| | | v-if="indexform.ivrVoice" |
| | | >{{ |
| | | indexform.ivrVoice.substring( |
| | | indexform.ivrVoice.lastIndexOf("/") + 1 |
| | | ) |
| | | }}</span |
| | | > |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <mini-audio |
| | | :audio-source=" |
| | | indexform.ivrVoice |
| | | ? indexform.ivrVoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div> |
| | | <el-form-item label="指标名称" prop="deptId"> |
| | | <el-input |
| | | v-model="indexform.targetname" |
| | | placeholder="请输入指标名称" |
| | | maxlength="20" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="指标描述" prop="deptId"> |
| | | <el-input |
| | | v-model="indexform.targetdesc" |
| | | placeholder="请输入指标描述" |
| | | maxlength="60" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="值类型"> |
| | | <el-radio-group v-model="indexform.valueType"> |
| | | <el-radio :label="1">选项</el-radio> |
| | | <el-radio :label="2">文本</el-radio> |
| | | <el-radio :label="3">数值</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="题目类型"> |
| | | <el-radio-group |
| | | @input="typeselection" |
| | | v-model="indexform.scriptType" |
| | | > |
| | | <el-radio :label="1">单选</el-radio> |
| | | <!-- <el-radio :label="2">多选</el-radio> --> |
| | | <el-radio :label="4">问答</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="topicxq" v-show="indexform.scriptType == 4"> |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="收集内容"> |
| | | <el-input |
| | | style="width: 400px" |
| | | type="textarea" |
| | | v-model="indexform.value" |
| | | placeholder="问题收集内容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | |
| | | <div v-show="indexform.scriptType == 1"> |
| | | <div class="headline"> |
| | | <div class="basics">选项设置</div> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <Regular |
| | | :TargetoptionList="indexform.ivrLibaScriptTargetoptionList" |
| | | @deloption="deloption" |
| | | @addoption="addoptionson" |
| | | :controlsc="false" |
| | | :addoption="true" |
| | | /> |
| | | <!-- 无匹配类型 --> |
| | | <div class="topicxq"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="20" |
| | | ><el-form-item label="无匹配话术"> |
| | | <el-input |
| | | type="textarea" |
| | | style="width: 400px" |
| | | placeholder="请输入" |
| | | v-model="indexform.noMatchText" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="无匹配语音" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file) => |
| | | handleChange(response, file, 2) |
| | | " |
| | | accept=".wav,.mp3" |
| | | :limit="1" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | >点击上传</el-button |
| | | > |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <span |
| | | style="font-size: 12px" |
| | | v-if="indexform.nomatchvoice" |
| | | >{{ |
| | | indexform.nomatchvoice.substring( |
| | | indexform.nomatchvoice.lastIndexOf("/") + 1 |
| | | ) |
| | | }}</span |
| | | > |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <mini-audio |
| | | :audio-source=" |
| | | indexform.nomatchvoice |
| | | ? indexform.nomatchvoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | |
| | | <div class="topicxq"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="20" |
| | | ><el-form-item label="静默话术"> |
| | | <el-input |
| | | type="textarea" |
| | | style="width: 400px" |
| | | placeholder="请输入" |
| | | v-model="indexform.slienceText" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="静默语音" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file) => |
| | | handleChange(response, file, 3) |
| | | " |
| | | accept=".wav,.mp3" |
| | | :limit="1" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | >点击上传</el-button |
| | | > |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <span |
| | | style="font-size: 12px" |
| | | v-if="indexform.sliencevoice" |
| | | >{{ |
| | | indexform.sliencevoice.substring( |
| | | indexform.sliencevoice.lastIndexOf("/") + 1 |
| | | ) |
| | | }}</span |
| | | > |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <mini-audio |
| | | :audio-source=" |
| | | indexform.sliencevoice |
| | | ? indexform.sliencevoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="topicxq"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="20" |
| | | ><el-form-item label="听不清话术"> |
| | | <el-input |
| | | style="width: 400px" |
| | | type="textarea" |
| | | placeholder="请输入" |
| | | v-model="indexform.noClearlyText" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="听不清语音" prop="verbaltrickyy"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file) => |
| | | handleChange(response, file, 4) |
| | | " |
| | | accept=".wav,.mp3" |
| | | :limit="1" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | >点击上传</el-button |
| | | > |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <span |
| | | style="font-size: 12px" |
| | | v-if="indexform.noclearlyvoice" |
| | | >{{ |
| | | indexform.noclearlyvoice.substring( |
| | | indexform.noclearlyvoice.lastIndexOf("/") + 1 |
| | | ) |
| | | }}</span |
| | | > |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <mini-audio |
| | | :audio-source=" |
| | | indexform.noclearlyvoice |
| | | ? indexform.noclearlyvoice |
| | | : 'https://example.com/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </el-drawer> |
| | | <!-- 添加适用疾病窗口 --> |
| | | <Optional-Form |
| | | ref="child" |
| | | :dialogVisiblepatient="dialogVisiblepatient" |
| | | :overallCase="illnesslist" |
| | | @addoption="dialogVisiblepatient = false" |
| | | @kkoption="dialogVisiblepatient = true" |
| | | /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | getFollowuplist, |
| | | deltargetillness, |
| | | getillnesslist, |
| | | depthospgetson, |
| | | depthospgetsonlist, |
| | | illnesslistget, |
| | | getillness, |
| | | getgenerallist, |
| | | } from "@/api/AiCentre/index"; |
| | | import OptionalForm from "@/components/OptionalForm"; //正则组件 |
| | | import { getToken } from "@/utils/auth"; |
| | | import { deptTreeSelect } from "@/api/system/user"; |
| | | |
| | | export default { |
| | | name: "SpeechTemplates", |
| | | components: { Regular }, |
| | | name: "tpuconfigurat", |
| | | components: { Regular, OptionalForm }, |
| | | data() { |
| | | return { |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, |
| | | uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", |
| | | Editprogress: 1, //编辑进度 |
| | | loading: false, // 遮罩层 |
| | | drawer: false, //控制展开 |
| | | radios: [], //多选题选中 |
| | | radioas: "", //填空题答案 |
| | | task: null, //是否来自任务 |
| | | taskform: null, //任务信息 |
| | | Operateit: true, |
| | | indexform: { |
| | | ivrLibaScriptTargetoptionList: [], |
| | | }, |
| | | labelInfovalue: [], //标签临时存储 |
| | | deptNamesvalue: [], //科室临时存储 |
| | | dialogVisiblepatient: false, //适用疾病窗口 |
| | | dynamicTags: [], |
| | | indexAssortlist: [], |
| | | inputValue: "", |
| | | inputValueillness: "", |
| | | topicobj: {}, |
| | | topicobj: { |
| | | noMatchText: "抱歉,我没有听懂,您能再说一遍吗?", |
| | | noClearlyText: "抱歉,我没有听清您说的话,您可以再说一次吗?", |
| | | slienceText: "抱歉,我没有听到您说的话,您可以再说一次吗?", |
| | | }, |
| | | total: 1, |
| | | id: "", |
| | | ruleForm: {}, |
| | | ruleForm: { |
| | | templateName: "", |
| | | revisitBefore: |
| | | "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。", |
| | | revisitAfter: |
| | | "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!", |
| | | ivrLibaTemplateTagList: [], |
| | | ivrLibaTemplateScriptVOList: [], |
| | | tempDetpRelevances: [], |
| | | }, |
| | | rules: {}, |
| | | optionstag: [], |
| | | prefollowuplist: [], |
| | | postfollowuplist: [], |
| | | tempDetpRelevanceslist: [], //科室数据 |
| | | tempDetpRelevanceslistform: [], //科室数据 |
| | | tempbelongWards: [], //病区数据 |
| | | tempbelongWardsform: [], //病区数据 |
| | | generallist: [ |
| | | { value: "1", label: "随访通用库一" }, |
| | | { value: "2", label: "随访二库" }, |
| | |
| | | usable: [], |
| | | required: [], |
| | | valuetype: [], |
| | | valuetypes: [], |
| | | askvaluetype: [], |
| | | mode: [], |
| | | inputVisible: false, |
| | | inputVisibleillness: false, |
| | |
| | | tempDetpRelevanceslist: [], |
| | | delScriptVOList: [], |
| | | optionIndex: "", |
| | | activeName: "first", |
| | | variablelist: [ |
| | | { variatename: "姓名", variate: "${name}", default: 1 }, |
| | | { 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: [ |
| | | { |
| | | idd: 1, |
| | | wssd: "你最近怎么样", |
| | | sdadd: ["sss", "ssccss", "ssaas", "ss"], |
| | | }, |
| | | ], |
| | | valssu: [], |
| | | radio: "", |
| | | addvalue: "添加题目", |
| | | // 题目表格数据 |
| | | userList: [ |
| | | { |
| | | userid: "1", |
| | | userName: "一号随访模版", |
| | | verbaltrick: "一号随访模版", |
| | | }, |
| | | { |
| | | userid: "2", |
| | | userName: "二号随访模版", |
| | | verbaltrick: "一号随访模版", |
| | | }, |
| | | { |
| | | userid: "3", |
| | | userName: "三号随访模版", |
| | | verbaltrick: "一号随访模版", |
| | | }, |
| | | { |
| | | userid: "4", |
| | | userName: "四号随访模版", |
| | | verbaltrick: "一号随访模版", |
| | | }, |
| | | ], |
| | | userList: [], |
| | | belongWards: [], |
| | | belongDepts: [], |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | |
| | | }, |
| | | }; |
| | | }, |
| | | activated() { |
| | | if (this.id != this.$route.query.id) { |
| | | console.log(1); |
| | | |
| | | this.RoutingDataProcessing(); |
| | | this.gettabList(); |
| | | this.getvFollowup(); |
| | | this.auxiliary(); |
| | | } else { |
| | | this.tempDetpRelevanceslistform = []; |
| | | this.tempbelongWardsform = []; |
| | | } |
| | | }, |
| | | |
| | | created() { |
| | | this.RoutingDataProcessing(); |
| | | this.gettabList(); |
| | | this.getvFollowup(); |
| | | this.auxiliary(); |
| | | this.getDeptTree(); |
| | | this.mode = store.getters.mode; |
| | | this.usable = store.getters.usable; |
| | | this.required = store.getters.required; |
| | | this.valuetype = store.getters.valuetype; |
| | | this.valuetypes = store.getters.valuetypelb; |
| | | this.askvaluetype = store.getters.askvaluetype; |
| | | this.languagelist = store.getters.languagelist; |
| | | this.courtyardlist = store.getters.courtyardlist; |
| | | this.precedencetype = store.getters.precedencetype; |
| | | this.belongWards = store.getters.belongWards; |
| | | this.belongDepts = store.getters.belongDepts; |
| | | }, |
| | | mounted() {}, |
| | | computed: { |
| | | displayedTags() { |
| | | // 返回前10个tag |
| | | return this.illnesslist.slice(0, 10); |
| | | }, |
| | | hasMore() { |
| | | // 判断是否有更多的tag |
| | | return this.illnesslist.length > 10; |
| | | }, |
| | | remaining() { |
| | | // 计算剩余的tag数量 |
| | | return this.illnesslist.length - 10; |
| | | }, |
| | | }, |
| | | |
| | | methods: { |
| | |
| | | processElement(element) { |
| | | return { ...element, isoperation: 0 }; |
| | | }, |
| | | // 路由数据处理 |
| | | RoutingDataProcessing() { |
| | | this.id = this.$route.query.id; |
| | | this.task = this.$route.query.task; |
| | | this.queryParamsdept.tempid = this.id; |
| | | }, |
| | | // 获取科室树 |
| | | getDeptTree() { |
| | | // 科室列表 |
| | | deptTreeSelect().then((response) => { |
| | | this.deptOptions = response.data; |
| | | this.flatArray = this.flattenArray(response.data); |
| | | }); |
| | | }, |
| | | flattenArray(multiArray) { |
| | | let result = []; |
| | | |
| | | // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素 |
| | | function flatten(element) { |
| | | // 如果当前元素有子元素,继续递归 |
| | | if (element.children && element.children.length > 0) { |
| | | element.children.forEach((child) => flatten(child)); |
| | | } else { |
| | | // 克隆元素以避免修改原始数据 |
| | | let item = JSON.parse(JSON.stringify(element)); |
| | | result.push(item); // 将最底层的元素添加到结果数组 |
| | | } |
| | | } |
| | | |
| | | // 从顶层元素开始递归 |
| | | multiArray.forEach((element) => flatten(element)); |
| | | return result; // 返回只包含最底层元素的一维数组 |
| | | }, |
| | | // 获取表单数据 |
| | | getvFollowup() { |
| | | this.id = this.$route.query.id; |
| | | if (this.id) { |
| | | getvFollowup({ id: this.id }).then((res) => { |
| | | if (res.code == 200) { |
| | | console.log(2211); |
| | | this.ruleForm = res.data; |
| | | if (this.ruleForm.deptNames) |
| | | // this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); |
| | | this.ruleForm.suitway = this.ruleForm.suitway.split(","); |
| | | 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); |
| | | }); |
| | | |
| | | getvFollowup({ id: this.id }).then((res) => { |
| | | this.ruleForm = res.data; |
| | | this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList; |
| | | |
| | | this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); |
| | | this.ruleForm.suitway = this.ruleForm.suitway.split(","); |
| | | this.ruleForm.campus = this.ruleForm.campus.split(","); |
| | | this.ruleForm.submoduleID = this.ruleForm.submoduleID.split(","); |
| | | this.ruleForm.submoduleID = this.ruleForm.submoduleID.map((res) => { |
| | | return Number(res); |
| | | this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map( |
| | | this.processElement |
| | | ); |
| | | this.sortFn(); |
| | | } |
| | | }); |
| | | console.log(this.ruleForm.submoduleID, "this.ruleForm.submoduleID取"); |
| | | this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList; |
| | | |
| | | this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map( |
| | | this.processElement |
| | | ); |
| | | console.log(this.ruleForm.suitway); |
| | | }); |
| | | getillnesslist({ |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | | }).then((response) => { |
| | | this.optionsillness = response.rows; |
| | | }); |
| | | getillness({ outid: this.id, type: 3 }).then((res) => { |
| | | this.illnesslist = res.rows; |
| | | }); |
| | | listDept(this.queryParams).then((response) => { |
| | | this.deptList = this.handleTree(response.data, "deptId"); |
| | | }); |
| | | getillness({ outid: this.id, type: 3 }).then((res) => { |
| | | this.illnesslist = res.rows; |
| | | this.illnesslist.forEach((item) => { |
| | | item.icdname = item.icd10name; |
| | | }); |
| | | }); |
| | | } else { |
| | | this.ruleForm = { |
| | | templateName: "", |
| | | ivrLibaTemplateTagList: [], |
| | | ivrLibaTemplateScriptVOList: [], |
| | | tempDetpRelevances: [], |
| | | }; |
| | | this.deptOptions = []; |
| | | this.optionsillness = []; |
| | | this.illnesslistapi = []; |
| | | this.illnesslist = []; |
| | | this.dynamicTags = []; |
| | | this.tempDetpRelevanceslist = []; |
| | | } |
| | | }, |
| | | // 附属数据表 |
| | | auxiliary() { |
| | | // 分类 |
| | | getFollowupclassify({}).then((res) => { |
| | | this.indexAssortlist = res.rows; |
| | | }); |
| | | this.tempDetpRelevanceslist = []; |
| | | this.tempbelongWards = []; |
| | | |
| | | if (this.id) { |
| | | depthospgetsonlist(this.queryParamsdept).then((res) => { |
| | | if (res.code == 200) { |
| | | let arr = res.rows; |
| | | console.log(arr, "arr"); |
| | | |
| | | arr.forEach((item) => { |
| | | if (item.deptType == 1) { |
| | | console.log(this.deptlist, "11"); |
| | | this.deptlist.push(item); |
| | | console.log("22"); |
| | | this.tempDetpRelevanceslist.push(item.deptCode); |
| | | } else if (item.deptType == 2) { |
| | | this.hosplist.push(item); |
| | | this.tempbelongWards.push(item.deptCode); |
| | | console.log("33"); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 疾病 |
| | | getillnesslist({ |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | | }).then((response) => { |
| | | this.optionsillness = response.rows; |
| | | }); |
| | | getgenerallist({ |
| | | pageNum: 1, |
| | |
| | | }); |
| | | // 疾病列 |
| | | }, |
| | | // |
| | | // 选项配置跳转触发 |
| | | branchFlagfn(row) { |
| | | if (this.topicobj.branchFlag == 1 && this.topicobj.nextScriptno != 0) { |
| | | this.topicobj.nextScriptno = |
| | | this.topicobj.ivrLibaScriptTargetoptionList[0].nextQuestion; |
| | | } |
| | | }, |
| | | //保存 |
| | | submitForm(formName) { |
| | | if (this.ruleForm.id) { |
| | | this.ruleForm.isoperation = 2; |
| | | } else { |
| | | this.ruleForm.isoperation = 1; |
| | | } |
| | | if (!this.ruleForm.assortid) { |
| | | this.ruleForm.assortid = -1; |
| | | } |
| | | this.ruleForm.labelInfo = JSON.stringify(this.dynamicTags); |
| | | this.ruleForm.suitway = this.ruleForm.suitway.join(","); |
| | | this.ruleForm.campus = this.ruleForm.campus.join(","); |
| | | this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(","); |
| | | if (Array.isArray(this.ruleForm.suitway)) |
| | | this.ruleForm.suitway = this.ruleForm.suitway.join(","); |
| | | if (Array.isArray(this.ruleForm.campus)) |
| | | this.ruleForm.campus = this.ruleForm.campus.join(","); |
| | | if (Array.isArray(this.ruleForm.submoduleID)) |
| | | this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(","); |
| | | |
| | | // 提交 |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.forEach((res) => { |
| | |
| | | return item; |
| | | }); |
| | | }); |
| | | |
| | | this.delScriptVOList.forEach((item) => { |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.push(item); |
| | | }); |
| | | // compileFollowup(this.ruleForm).then((res) => { |
| | | // if (res.code == 200) { |
| | | // this.$modal.msgSuccess("编辑成功"); |
| | | // this.$modal.closeLoading(); |
| | | // this.confirmillness(res.data); |
| | | // // window.location.reload(); |
| | | // // const obj = { path: "/knowledge/tpuconfigurat/?id=" + this.id }; |
| | | // // this.$tab.closeOpenPage(obj); |
| | | // } else { |
| | | // this.$modal.msgError("保存失败"); |
| | | // this.$modal.closeLoading(); |
| | | // } |
| | | // }); |
| | | if (this.id) { |
| | | this.ruleForm.isoperation = 2; |
| | | this.ruleForm.tempDetpRelevances = []; |
| | | compileFollowup(this.ruleForm).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.confirmillness(); |
| | | this.putbelongDepts(this.id); |
| | | // this.$modal.closeLoading(); |
| | | // this.$router.go(-1); |
| | | window.location.reload(); |
| | | } else { |
| | | this.$modal.closeLoading(); |
| | | } |
| | | }); |
| | | } else { |
| | | this.ruleForm.isoperation = 1; |
| | | this.ruleForm.version = this.ruleForm.version |
| | | ? this.ruleForm.version |
| | | : "1.0"; |
| | | this.ruleForm.tempDetpRelevances = []; |
| | | compileFollowup(this.ruleForm).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.confirmillness(res.data); |
| | | this.putbelongDepts(res.data); |
| | | this.$modal.closeLoading(); |
| | | this.$router.go(-1); |
| | | } else { |
| | | this.$modal.closeLoading(); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | confirmillness(guid) { |
| | | this.illnesslist.forEach((item, index) => { |
| | | if (guid) { |
| | | item.outid = guid; |
| | | } else { |
| | | console.log(this.ruleForm); |
| | | item.outid = this.ruleForm.id; |
| | | } |
| | | item.icd10name = item.icdname; |
| | | item.icd10code = item.icdcode; |
| | | item.type = 3; |
| | | if (!item.id) { |
| | | addtargetillness(item).then((res) => {}); |
| | | } |
| | | }); |
| | | if (this.illnesslistapi.length) { |
| | | deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); |
| | | } |
| | | compileFollowup(this.ruleForm).then((res) => { |
| | | this.$modal.msgSuccess("编辑成功"); |
| | | this.$router.go(-1); |
| | | }); |
| | | this.illnessVisible = false; |
| | | this.$modal.msgSuccess("编辑成功"); |
| | | }, |
| | | // 科室处理 |
| | | Departmenttreatment() { |
| | | this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); |
| | | this.ruleForm.ivrLibaTemplateScriptVOList = |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.concat(this.delScriptVOList); |
| | | const result = this.tempDetpRelevanceslist.map( |
| | | (subArr) => subArr[subArr.length - 1] |
| | | ); |
| | | // id数组查数组对象 |
| | | result.forEach((item) => { |
| | | const condition = this.ruleForm.tempDetpRelevances.some( |
| | | (obj) => obj.deptId === item |
| | | ); |
| | | if (!condition) { |
| | | listDept({ deptId: item }).then((res) => { |
| | | res.data[0].type = 2; |
| | | this.ruleForm.tempDetpRelevances.push(res.data[0]); |
| | | this.$modal.loading("正在修正保存数据,请稍候..."); |
| | | this.tempDetpRelevanceslist.forEach((item) => { |
| | | let result = this.deptlist.some((obj) => obj.deptCode == item); |
| | | |
| | | if (!result) { |
| | | this.tempDetpRelevanceslistform.push({ |
| | | deptType: 1, |
| | | longTemp: this.ruleForm.longTemp, |
| | | deptCode: item, |
| | | tempid: this.id, |
| | | type: 2, |
| | | }); |
| | | } |
| | | }); |
| | | console.log(this.ruleForm.tempDetpRelevances); |
| | | // 数组对象查id数组 |
| | | this.ruleForm.tempDetpRelevances.forEach((item) => { |
| | | const condition = result.some((obj) => obj === item.deptId); |
| | | if (!condition) { |
| | | const index = this.ruleForm.tempDetpRelevances.indexOf(item); |
| | | this.ruleForm.tempDetpRelevances[index].delFlag = 1; |
| | | this.tempbelongWards.forEach((item) => { |
| | | let result = this.hosplist.some((obj) => obj.deptCode == item); |
| | | if (!result) { |
| | | this.tempbelongWardsform.push({ |
| | | deptType: 2, |
| | | longTemp: this.ruleForm.longTemp, |
| | | deptCode: item, |
| | | tempid: this.id, |
| | | type: 2, |
| | | // 1 : 问卷模板库id、11:问卷任务模板库id;2 :语音问卷库id、21:语音任务模板库id,3 : 宣教模板库id,33:宣教任务模板库id |
| | | }); |
| | | } |
| | | }); |
| | | console.log(this.ruleForm.tempDetpRelevances); |
| | | setTimeout(() => { |
| | | this.submitForm(); |
| | | }, 1000); |
| | | // this.submitForm(); |
| | | }, |
| | | // 保存科室/病区 |
| | | putbelongDepts(id) { |
| | | this.tempDetpRelevanceslistform.forEach((item) => { |
| | | if (!item.tempid) item.tempid = id; |
| | | }); |
| | | |
| | | this.tempbelongWardsform.forEach((item) => { |
| | | if (!item.tempid) item.tempid = id; |
| | | }); |
| | | if (this.tempDetpRelevanceslistform.length > 0) { |
| | | depthospgetson(this.tempDetpRelevanceslistform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("科室新增成功"); |
| | | } |
| | | }); |
| | | } |
| | | if (this.tempbelongWardsform.length > 0) { |
| | | depthospgetson(this.tempbelongWardsform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("院区新增成功"); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | // 下一步 |
| | | nextstep() { |
| | |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | this.$router.go(-1); |
| | | const obj = { path: "/knowledge/templateku/" }; |
| | | this.$tab.closeOpenPage(obj); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | // 控制文件 |
| | | handleChange(file, fileList) { |
| | | this.fileList = fileList.slice(-3); |
| | | //控制语音文件(新) |
| | | handleChange(response, file, additionalParam) { |
| | | console.log(response); |
| | | console.log(additionalParam); |
| | | if (additionalParam == 1) { |
| | | this.indexform.ivrVoice = response.url; |
| | | } else if (additionalParam == 2) { |
| | | this.indexform.nomatchvoice = response.url; |
| | | } else if (additionalParam == 3) { |
| | | this.indexform.sliencevoice = response.url; |
| | | } else if (additionalParam == 4) { |
| | | this.indexform.noclearlyvoice = response.url; |
| | | } |
| | | this.$forceUpdate(); |
| | | }, |
| | | //控制语音文件 |
| | | handleChanges(response, file, additionalParam) { |
| | | console.log(response); |
| | | console.log(additionalParam); |
| | | if (additionalParam == 1) { |
| | | this.topicobj.ivrVoice = response.url; |
| | | } else if (additionalParam == 2) { |
| | | this.topicobj.nomatchvoice = response.url; |
| | | } else if (additionalParam == 3) { |
| | | this.topicobj.sliencevoice = response.url; |
| | | } else if (additionalParam == 4) { |
| | | this.topicobj.noclearlyvoice = response.url; |
| | | } |
| | | this.$forceUpdate(); |
| | | }, |
| | | // 文件超出个数限制时的钩子 |
| | | handleExceed(files, fileList) { |
| | |
| | | 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.getaddtopiclist(); |
| | | }, |
| | | getaddtopiclist() { |
| | | console.log(12); |
| | | this.drawer = true; |
| | | getverbaltricklist(this.queryParams).then((res) => { |
| | | this.loading = false; |
| | |
| | | }); |
| | | }, |
| | | addtopic(row) { |
| | | console.log(row); |
| | | if ( |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.some( |
| | | (obj) => obj.scriptTopic == row.scriptTopic |
| | | ) |
| | | ) { |
| | | this.$modal.msgError("该题目已存在"); |
| | | return; |
| | | } |
| | | getverbaltrick({ id: row.id }).then((res) => { |
| | | console.log(res, "详情"); |
| | | res.data.isoperation = 1; |
| | |
| | | }); |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.push(res.data); |
| | | this.sortFn(); |
| | | this.$modal.msgSuccess("添加成功"); |
| | | }); |
| | | }, |
| | | handleDelete(row) { |
| | | let index = this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row); |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.splice( |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row), |
| | | 1 |
| | | ); |
| | | row.isoperation = 3; |
| | | this.delScriptVOList.push(row); |
| | | this.$modal |
| | | .confirm('是否确认删除问题:"' + row.scriptTopic + '"?') |
| | | .then(() => { |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.splice( |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row), |
| | | 1 |
| | | ); |
| | | row.isoperation = 3; |
| | | if (row.id) { |
| | | this.delScriptVOList.push(row); |
| | | } |
| | | this.sortFn(); |
| | | this.$modal.msgSuccess("已删除,保存模板生效"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | handleUpdate(row) { |
| | | console.log(row); |
| | |
| | | if (row.ivrLibaScriptTargetoptionList.length) { |
| | | console.log(11); |
| | | this.topicobj = row; |
| | | this.topicobj.isEnable = row.valueType; |
| | | this.topicobj.valueType = row.valueType; |
| | | } else { |
| | | getverbaltrick({ id: row.id }).then((res) => { |
| | | if (res.data) { |
| | |
| | | }, |
| | | // 问题排序 |
| | | sortFn() { |
| | | this.ruleForm.ivrLibaTemplateScriptVOList = |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.map((item, index) => { |
| | | return Object.assign({}, item, { targetid: (index + 1).toString() }); |
| | | }); |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.forEach((question, index) => { |
| | | question.ivrLibaScriptTargetoptionList = |
| | | question.ivrLibaScriptTargetoptionList.map((option) => { |
| | | option.nextQuestion = Number(question.targetid) + 1; |
| | | return option; |
| | | console.log(this.ruleForm.ivrLibaTemplateScriptVOList); |
| | | |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.forEach((item, index) => { |
| | | item.sort = Number(index) + 1; |
| | | console.log(this.ruleForm.ivrLibaTemplateScriptVOList.length); |
| | | console.log(item.sort); |
| | | |
| | | if (item.sort == this.ruleForm.ivrLibaTemplateScriptVOList.length) { |
| | | item.nextScriptno = 0; |
| | | } else { |
| | | item.nextScriptno = item.sort + 1; |
| | | } |
| | | if (item.ivrLibaScriptTargetoptionList&&!item.branchFlag) { |
| | | item.ivrLibaScriptTargetoptionList.forEach((items) => { |
| | | items.nextQuestion = Number(item.sort) + 1; |
| | | }); |
| | | } |
| | | }); |
| | | this.$forceUpdate(); |
| | | |
| | | console.log(this.ruleForm.ivrLibaTemplateScriptVOList); |
| | | }, |
| | | // -----------------------话术选项 |
| | | deloption() {}, |
| | | 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.ruleForm.ivrLibaTemplateScriptVOList[this.optionIndex] = |
| | | this.topicobj; |
| | | this.$modal.msgSuccess("暂存选项成功"); |
| | | this.$modal |
| | | .confirm( |
| | | '是否确认新增名称为"' + this.indexform.scriptTopic + '"的问题数据?' |
| | | ) |
| | | .then(() => { |
| | | this.indexform.isoperation = 1; |
| | | this.indexform.pid = this.ruleForm.id; |
| | | this.indexform.ivrLibaScriptTargetoptionList.forEach((item) => { |
| | | item.isoperation = 1; |
| | | }); |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.push(this.indexform); |
| | | this.indexform = { |
| | | ivrLibaScriptTargetoptionList: [], |
| | | }; |
| | | this.drawer = false; |
| | | |
| | | this.sortFn(); |
| | | this.$modal.msgSuccess("题目新增成功,保存模板生效"); |
| | | }); |
| | | }, |
| | | |
| | | // --------------------- |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | |
| | | // 疾病----------------------- |
| | | |
| | | handleCloseillness(tag) { |
| | | this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); |
| | | if (tag.id) { |
| | | this.illnesslistapi.push(tag.id); |
| | | // 科室删除触发 |
| | | 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) { |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | remoteMethod(value) { |
| | | console.log(value); |
| | | const illnessqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | | icdname: value, |
| | | }; |
| | | this.loading = true; |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | getillnesslist(illnessqueryParams).then((response) => { |
| | | this.optionsillness = response.rows; |
| | | // 删除删除触发 |
| | | 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) { |
| | | } |
| | | }); |
| | | }, 200); |
| | | }, |
| | | illnessConfirm(item) { |
| | | let opeavalue = {}; |
| | | let tagname = this.inputValueillness; |
| | | illnesslistget(item).then((res) => { |
| | | opeavalue = res.data; |
| | | opeavalue.outid = this.id; |
| | | opeavalue.type = 3; |
| | | opeavalue.icd10id = opeavalue.icdid; |
| | | opeavalue.icd10name = opeavalue.icdname; |
| | | opeavalue.icd10code = opeavalue.icdcode; |
| | | if (tagname) { |
| | | this.illnesslist.push(opeavalue); |
| | | } |
| | | }); |
| | | console.log(this.illnesslist); |
| | | this.inputVisibleillness = false; |
| | | this.inputValueillness = ""; |
| | | } |
| | | }, |
| | | // 预览--------------- |
| | | preview() { |
| | |
| | | // 前往测试 |
| | | measurement() { |
| | | this.$modal |
| | | .confirm("即将前往模版测试页面,请确认模版数据已保存。") |
| | | .confirm("即将前往模板测试页面,请确认模板数据已保存。") |
| | | .then((res) => { |
| | | this.$router.push({ |
| | | path: "/knowledge/templateku/configurat/measurement", |
| | | query: { id: this.id, name: this.ruleForm.templateName }, |
| | | query: { |
| | | id: this.id, |
| | | name: this.ruleForm.templateName, |
| | | timeout: this.ruleForm.silencetime, |
| | | }, |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // 新建模板中临时题目 |
| | | // 题目类型更换 |
| | | typeselection(row) { |
| | | if (row == 1 && !this.indexform.ivrLibaScriptTargetoptionList.length) { |
| | | this.indexform.ivrLibaScriptTargetoptionList.push({ |
| | | guid: 1, |
| | | isoperation: 1, |
| | | targetvalue: "", |
| | | targetregex: "", |
| | | targetregex2: "", |
| | | dynamiccruxs: [], |
| | | nodynamiccruxs: [], |
| | | dynamiccruxsJson: "", |
| | | nodynamiccruxsJson: "", |
| | | }); |
| | | } |
| | | this.$forceUpdate(); |
| | | }, |
| | | addoptionson() { |
| | | this.indexform.ivrLibaScriptTargetoptionList.push({ |
| | | guid: 1, |
| | | isoperation: 1, |
| | | targetvalue: "", |
| | | targetregex: "", |
| | | targetregex2: "", |
| | | dynamiccruxs: [], |
| | | nodynamiccruxs: [], |
| | | dynamiccruxsJson: "", |
| | | nodynamiccruxsJson: "", |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .topic-dev { |
| | | .scriptTopic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | .headline { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | font-size: 20px; |
| | | border-left: 3px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin: 15px 0; |
| | | } |
| | | .topicxq { |
| | | background-color: #e2f5fc; |
| | | border-radius: 4px; |
| | | margin-top: 10px; |
| | | padding-left: 10px; |
| | | padding-top: 15px; |
| | | } |
| | | } |
| | | .xinz-inf { |
| | |
| | | vertical-align: bottom; |
| | | } |
| | | } |
| | | |
| | | .xinz-infs { |
| | | font-size: 18px; |
| | | line-height: 48px; |
| | | |
| | | .el-tag + .el-tag { |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | .addtopic { |
| | | margin-top: 30px; |
| | | } |
| | |
| | | color: #f52727; |
| | | } |
| | | } |
| | | .spresentation-left { |
| | | width: 100%; |
| | | // height: 500px; |
| | | .button-textxg { |
| | | color: #024df0; |
| | | } |
| | | .button-textsc { |
| | | color: #f52727; |
| | | } |
| | | } |
| | | .presentation-right { |
| | | width: 55%; |
| | | max-height: 688px; |