| | |
| | | <template> |
| | | <div class="stencils"> |
| | | <!-- 上部 --> |
| | | <div class="stencils-top"> |
| | | <div class="basic">待选问题</div> |
| | | <div class="top-menu"> |
| | | <div class="search-box"> |
| | | <el-form :inline="true" :model="formInline" class="demo-form-inline"> |
| | | <el-form-item label="语言" prop="status"> |
| | | <el-select v-model="formInline.status" placeholder="请选择"> |
| | | <div class="Questionnairemanagement"> |
| | | <!-- 左侧栏 --> |
| | | <div class="sidecolumn"> |
| | | <div style="height: 400px"> |
| | | <el-steps direction="vertical" :active="Editprogress"> |
| | | <el-step title="基础信息"></el-step> |
| | | <el-step title="随访模版题目"></el-step> |
| | | <el-step |
| | | title="随访模版预览" |
| | | description="查看随访模版预览,可导出PDF" |
| | | ></el-step> |
| | | </el-steps> |
| | | </div> |
| | | </div> |
| | | <!-- 右侧数据 --> |
| | | <div class="leftvlue"> |
| | | <!-- 基本信息 --> |
| | | <div v-if="Editprogress == 1"> |
| | | <div class="leftvlue-jbxx">基本信息</div> |
| | | <el-divider></el-divider> |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="120px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="模版名称" prop="region"> |
| | | <div style="width: 30%"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="随访模版分类" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.classify" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-form-item label="模版简介" prop="name"> |
| | | <div style="width: 50%"> |
| | | <el-input type="textarea" v-model="ruleForm.name"></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="版本号" prop="name"> |
| | | <el-input v-model="currentVersion"></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="可用状态" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.classify" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="通知变量" prop="name"> |
| | | <el-row v-for="item in variablelist"> |
| | | <el-col :span="4"> |
| | | <el-input v-model="item.variable"></el-input> |
| | | </el-col> |
| | | <el-col :span="8" :offset="1"> |
| | | <el-input v-model="item.value"></el-input> |
| | | </el-col> |
| | | <el-col :span="4" :offset="1"> |
| | | <el-button |
| | | type="success" |
| | | icon="el-icon-plus" |
| | | circle |
| | | @click="addvariable(item)" |
| | | ></el-button> |
| | | <el-button |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click="delvariable(item)" |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="标签" prop="desc"> |
| | | <div class="xinz-inf"> |
| | | <el-tag |
| | | :key="tag" |
| | | type="success" |
| | | v-for="tag in dynamicTags" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleClose(tag)" |
| | | > |
| | | {{ tag }} |
| | | </el-tag> |
| | | <el-select |
| | | v-model="inputValue" |
| | | v-if="inputVisible" |
| | | @change="handleInputConfirm" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in languagelist" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in optionstag" |
| | | :key="item.tagname" |
| | | :label="item.tagname" |
| | | :value="item.tagname" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="问题主旨"> |
| | | <el-input |
| | | v-model="formInline.user" |
| | | placeholder="问题主旨" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="关联指标"> |
| | | <el-input |
| | | v-model="formInline.user" |
| | | placeholder="关联指标" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" @click="onSubmit" |
| | | >搜索</el-button |
| | | <el-button |
| | | v-else |
| | | class="button-new-tag" |
| | | size="small" |
| | | @click="showInput" |
| | | >+ 新增标签</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="语言" prop="name"> |
| | | <el-select |
| | | v-model="ruleForm.language" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in languagelist" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="播报优先" prop="region"> |
| | | <el-radio-group v-model="ruleForm.classify"> |
| | | <el-radio :label="3">语言合成优先</el-radio> |
| | | <el-radio :label="6">语言文件优先</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item></el-col |
| | | > |
| | | </el-row> |
| | | <el-form-item label="随访方式" prop="region"> |
| | | <el-select |
| | | style="width: 500px" |
| | | v-model="ruleForm.way" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类(多选)" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in xjxsoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="适用疾病" prop="region"> |
| | | <el-select |
| | | style="width: 500px" |
| | | v-model="ruleForm.illness" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类(多选)" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="适用院区" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.courtyard" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="适用科室" prop="region"> |
| | | <el-select |
| | | style="width: 500px" |
| | | v-model="ruleForm.administrative" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类(多选)" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="通用库" prop="region"> |
| | | <el-select |
| | | style="width: 500px" |
| | | v-model="ruleForm.way" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择库(多选)" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in xjxsoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="随访前处理" prop="name"> |
| | | <el-select |
| | | v-model="ruleForm.languageq" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in xjxsoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="随访后处理" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.languageh" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in xjxsoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="静默时间(秒)" prop="name"> |
| | | <div style="width: 40%"> |
| | | <el-input |
| | | v-model="ruleForm.name" |
| | | ></el-input></div></el-form-item |
| | | ></el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="无匹配重复(次)" prop="region"> |
| | | <div style="width: 40%"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </div> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item> |
| | | <el-button type="success" @click="nextstep('ruleForm')" |
| | | >下一步</el-button |
| | | > |
| | | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> |
| | | <el-button @click="submitForm('ruleForm')" |
| | | >保存随访模版基础信息</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- 随访模版设置 --> |
| | | <div v-if="Editprogress == 2"> |
| | | <div class="leftvlue-jbxx">随访模版题目设置</div> |
| | | <el-divider></el-divider> |
| | | <div class="addtopic"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | | round |
| | | @click="drawer = true" |
| | | >添加题目</el-button |
| | | > |
| | | </div> |
| | | <div |
| | | style=" |
| | | height: 300px; |
| | | border: 0.5px solid #aeafb1; |
| | | overflow-x: hidden; |
| | | overflow-y: scroll; |
| | | " |
| | | <div class="presentation"> |
| | | <div class="presentation-left"> |
| | | <el-card class="box-card" style="min-height: 688px"> |
| | | <el-table v-loading="loading" :data="userList"> |
| | | <el-table-column |
| | | label="编号" |
| | | align="center" |
| | | key="userid" |
| | | prop="userid" |
| | | /> |
| | | <el-table-column |
| | | label="标题" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="问题话术" |
| | | align="center" |
| | | key="verbaltrick" |
| | | prop="verbaltrick" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | width="250" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | icon="el-icon-edit" |
| | | type="primary" |
| | | circle |
| | | @click="handleUpdate(scope.row)" |
| | | ></el-button> |
| | | <el-button |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click="deloption(scope.row)" |
| | | ></el-button> |
| | | <el-button |
| | | @click="syioption(scope.row)" |
| | | type="success" |
| | | icon="el-icon-top" |
| | | circle |
| | | ></el-button> |
| | | <el-button |
| | | @click="xiayioption(scope.row)" |
| | | type="success" |
| | | icon="el-icon-bottom" |
| | | circle |
| | | ></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </div> |
| | | <div class="presentation-right"> |
| | | <el-card class="box-card"> |
| | | <el-form |
| | | :inline="true" |
| | | :model="topicobj" |
| | | 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.title" |
| | | placeholder="请输入标题" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="是否必答"> |
| | | <el-radio-group v-model="topicobj.resource"> |
| | | <el-radio label="是"></el-radio> |
| | | <el-radio label="否"></el-radio> |
| | | </el-radio-group> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="是否隐藏"> |
| | | <el-radio-group v-model="topicobj.resourcea"> |
| | | <el-radio label="是"></el-radio> |
| | | <el-radio label="否"></el-radio> |
| | | </el-radio-group> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <div class="headline"> |
| | | <div class="basics">选项设置</div> |
| | | <div class="headbottom"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-circle-plus-outline" |
| | | @click="addzbiao" |
| | | >添加指标</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="topicxq" v-for="item in 2"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="处理"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="(默认)无声" |
| | | v-model="queryParams.text" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="节点ID"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入分值" |
| | | v-model="queryParams.text" |
| | | 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="queryParams.text" |
| | | maxlength="10" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="选中跳转"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入题号" |
| | | v-model="queryParams.text" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="语音文本"> |
| | | <el-input |
| | | style="width: 24vw" |
| | | type="textarea" |
| | | placeholder="请输入题号" |
| | | v-model="queryParams.text" |
| | | show-word-limit |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="16"> |
| | | <el-form-item label="语音文件"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | style="display: flex" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | :on-change="handleChange" |
| | | :file-list="fileList" |
| | | :limit="1" |
| | | :on-exceed="handleExceed" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | >点击上传</el-button |
| | | > |
| | | </el-upload> |
| | | </el-form-item></el-col |
| | | > |
| | | <el-col :span="8"> |
| | | <div style="text-align: right; padding-right: 10px"> |
| | | <el-button type="danger" round>删除</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-form> |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-button type="success" @click="nextstep('ruleForm')" |
| | | >下一步</el-button |
| | | > |
| | | <div class="menu-list" v-for="item in 13"> |
| | | <div>用药是否规范</div> |
| | | <div class="menu-icon" @click="menudeletei(index)"> |
| | | <i class="el-icon-plus" /> |
| | | <el-button type="primary" @click="laststep()">上一步</el-button> |
| | | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> |
| | | <el-button @click="Saveproblem('ruleForm')">保存题目数据</el-button> |
| | | </div> |
| | | <!-- 随访模版预览 --> |
| | | <div v-if="Editprogress == 3"> |
| | | <div class="leftvlue-jbxx">随访模版预览</div> |
| | | <el-divider></el-divider> |
| | | <div class="preview-left"> |
| | | <!-- 单选 --> |
| | | <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-radio-group v-model="radio"> |
| | | <el-radio |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items }}</el-radio |
| | | > |
| | | </el-radio-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-checkbox-group v-model="radios"> |
| | | <el-checkbox |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | > |
| | | {{ items }} |
| | | </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="info" @click="closeFm('ruleForm')">关闭</el-button> |
| | | <el-button>导出为pdf</el-button> |
| | | <el-button type="primary" @click="laststep()">上一步</el-button> |
| | | </div> |
| | | </div> |
| | | <!-- 下部 --> |
| | | <div class="stencils-bottom"> |
| | | <div class="issue"> |
| | | <div class="basics">已选择问题</div> |
| | | <div style="margin: 10px; font-size: 20px">体检通知</div> |
| | | <div |
| | | style=" |
| | | height: 350px; |
| | | margin: 10px; |
| | | border: 0.5px solid #aeafb1; |
| | | overflow-x: hidden; |
| | | overflow-y: scroll; |
| | | " |
| | | <!-- 添加题目弹窗 --> |
| | | <el-drawer |
| | | title="添加题目" |
| | | :visible.sync="drawer" |
| | | custom-class="demo-drawer" |
| | | width="50%" |
| | | > |
| | | <div class="preview-left"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | label-width="98px" |
| | | > |
| | | <div class="menu-list" v-for="item in 13"> |
| | | <div>用药是否规范</div> |
| | | <div class="menu-icons" @click="menudeletei(index)"> |
| | | <i class="el-icon-delete" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="issue-button"> |
| | | <el-button type="primary" icon="el-icon-circle-plus-outline" |
| | | >关系图</el-button |
| | | > |
| | | <el-button type="primary" icon="el-icon-s-claim">保存</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="particulars"> |
| | | <div class="headline"> |
| | | <div class="basics">问题配置</div> |
| | | <div class="headbottom"> |
| | | <el-form-item label="标题" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | placeholder="请输入" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="主题" prop="sickness"> |
| | | <el-select |
| | | v-model="ruleForm.classify" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-circle-plus-outline" |
| | | @click="addzbiao" |
| | | >添加指标</el-button |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >搜索</el-button |
| | | > |
| | | <el-button type="primary" icon="el-icon-s-claim">保存</el-button> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="valuetop" |
| | | v-for="(item, index) in deployList" |
| | | :key="item.id" |
| | | > |
| | | <div class="val-text"> |
| | | <div> |
| | | 有无复查 <span>{{ item.name }}</span> |
| | | </div> |
| | | <div class="text-icon" @click="deletei(index)"> |
| | | <i class="el-icon-delete" /> |
| | | </div> |
| | | </div> |
| | | <div class="val-bon"> |
| | | <el-form ref="form" :model="item" label-width="90px"> |
| | | <el-form-item label="节点ID"> |
| | | <el-input v-model="item.id"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="节点描述"> |
| | | <el-input v-model="item.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="文本提示"> |
| | | <el-input type="textarea" v-model="item.valuetop"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="语音地址"> |
| | | <el-input v-model="item.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="跳转问题号"> |
| | | <el-input v-model="item.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="播报类型"> |
| | | <el-radio-group v-model="item.resource"> |
| | | <el-radio label="混合优先"></el-radio> |
| | | <el-radio label="文字优先"></el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="指标类型"> |
| | | <el-radio-group v-model="item.resource"> |
| | | <el-radio label="选项"></el-radio> |
| | | <el-radio label="文本"></el-radio> |
| | | <el-radio label="数组"></el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="指标名称"> |
| | | <el-input v-model="item.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="指标值"> |
| | | <el-input v-model="item.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="适用规则"> |
| | | <el-radio-group v-model="item.resources"> |
| | | <el-radio label="基础"></el-radio> |
| | | <el-radio label="自定义"></el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="自定义规则" |
| | | v-if="item.resources == '自定义'" |
| | | <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="userName" |
| | | prop="userName" |
| | | width="100" |
| | | /> |
| | | <el-table-column |
| | | label="问题话术" |
| | | align="center" |
| | | key="verbaltrick" |
| | | prop="verbaltrick" |
| | | 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="handleUpdate(scope.row)" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-circle-plus-outline"></i>添加</span |
| | | ></el-button |
| | | > |
| | | <el-input type="textarea" v-model="item.valuetop"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-drawer> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listtag } from "@/api/system/label"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | deployList: [ |
| | | sidecolumnrabs: "left", //方向 |
| | | Editprogress: 2, //编辑进度 |
| | | currentVersion: "1.2.3", //当前版本 |
| | | loading: false, // 遮罩层 |
| | | drawer: false, //控制展开 |
| | | radio: "false", //单选题选中 |
| | | radios: [], //多选题选中 |
| | | radioas: "", //填空题答案 |
| | | dynamicTags: ["标签一", "标签二", "标签三"], |
| | | inputVisible: false, |
| | | inputValue: "", |
| | | topicobj: {}, |
| | | // 总条数 |
| | | total: 1, |
| | | ruleForm: { |
| | | name: "", |
| | | region: "", |
| | | date1: "", |
| | | date2: "", |
| | | delivery: false, |
| | | type: [], |
| | | resource: "", |
| | | desc: "", |
| | | templatevalue: "", |
| | | data2: "", |
| | | }, |
| | | rules: {}, |
| | | rulesa: {}, |
| | | optionstag:[], |
| | | xjxsoptions: [ |
| | | { |
| | | id: 1, |
| | | name: "有", |
| | | valuetop: |
| | | "(?!.*忘|.*不|.*没)^.*(是|有|对|做|作|检|查|复诊|好|参加|复诊|去(过|好|了|完|医院)|来(过|了|医院))|没错|对呀|可能|(已经|早)去了|开了药|腰带|吊带|要的|(?<!没)有的|表带,10;要,5", |
| | | value: "选项1", |
| | | label: "图文", |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: "不知道", |
| | | valuetop: |
| | | "(不|没|谁|鬼|怎么).*(病|可能|知道|了解|清楚|懂|明白|确认|确定|晓得|知晓|认得|识得|印象|熟悉|记|会|关心|关注|注意|告诉|通知|听)", |
| | | value: "选项2", |
| | | label: "视频", |
| | | }, |
| | | { |
| | | value: "选项3", |
| | | label: "音频", |
| | | }, |
| | | ], |
| | | fileList: [ |
| | | { |
| | | name: "food.jpeg", |
| | | url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", |
| | | }, |
| | | ], |
| | | options: [ |
| | | { |
| | | value: "选项1", |
| | | label: "疾病随访模版", |
| | | }, |
| | | { |
| | | value: "选项2", |
| | | label: "入院随访模版", |
| | | }, |
| | | { |
| | | value: "选项3", |
| | | label: "手术随访模版", |
| | | }, |
| | | { |
| | | value: "选项4", |
| | | label: "护理随访模版", |
| | | }, |
| | | ], |
| | | languagelist: [ |
| | | { |
| | | value: 1, |
| | | value: "1", |
| | | label: "普通话", |
| | | }, |
| | | { |
| | | value: 2, |
| | | value: "2", |
| | | label: "粤语", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "英语", |
| | | value: "3", |
| | | label: "英文", |
| | | }, |
| | | ], //语言列表 |
| | | formInline: { |
| | | user: "", |
| | | region: "", |
| | | ], |
| | | variablelist: [ |
| | | { |
| | | variable: "paitent", |
| | | value: "表示患者的标识", |
| | | }, |
| | | ], |
| | | |
| | | valssu: [ |
| | | { |
| | | idd: 1, |
| | | wssd: "你最近怎么样", |
| | | sdadd: ["sss", "ssccss", "ssaas", "ss"], |
| | | }, |
| | | ], |
| | | addvalue: "添加题目", |
| | | // 题目表格数据 |
| | | userList: [ |
| | | { |
| | | userid: "1", |
| | | userName: "一号随访模版", |
| | | verbaltrick: "一号随访模版", |
| | | }, |
| | | { |
| | | userid: "2", |
| | | userName: "二号随访模版", |
| | | verbaltrick: "一号随访模版", |
| | | }, |
| | | { |
| | | userid: "3", |
| | | userName: "三号随访模版", |
| | | verbaltrick: "一号随访模版", |
| | | }, |
| | | { |
| | | userid: "4", |
| | | userName: "四号随访模版", |
| | | verbaltrick: "一号随访模版", |
| | | }, |
| | | ], |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | created() {}, |
| | | created() { |
| | | this.gettabList(); |
| | | |
| | | }, |
| | | |
| | | methods: { |
| | | deletei(index) { |
| | | console.log(index); |
| | | this.deployList.splice(index, 1); |
| | | getIndexInArray(arr, obj) { |
| | | return arr.indexOf(obj); |
| | | }, |
| | | addzbiao() { |
| | | const ids = this.deployList.length + 1; |
| | | console.log(ids); |
| | | this.deployList.push({ |
| | | id: ids, |
| | | name: "", |
| | | valuetop: "", |
| | | submitForm(formName) { |
| | | this.rules = this.rulesa; |
| | | // 提交 |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | alert("submit!"); |
| | | } else { |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | onSubmit() { |
| | | console.log("submit!"); |
| | | // 下一步 |
| | | nextstep() { |
| | | if (this.Editprogress <= 2) { |
| | | return this.Editprogress++; |
| | | } |
| | | }, |
| | | // 上一步 |
| | | laststep() { |
| | | this.Editprogress = this.Editprogress - 1; |
| | | }, |
| | | // 关闭 |
| | | closeFm() { |
| | | this.$confirm("退出不会保留页面内容更改, 是否继续?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | this.$router.go(-1); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "已取消", |
| | | }); |
| | | }); |
| | | }, |
| | | // 保存题目信息 |
| | | Saveproblem() {}, |
| | | /** 查询题目列表 */ |
| | | getList() { |
| | | // this.loading = true; |
| | | listUser().then((response) => { |
| | | console.log(response); |
| | | // this.userList = response.data; |
| | | // this.total = response.total; |
| | | // this.loading = false; |
| | | console.log(this.userList); |
| | | }); |
| | | // const { rows } = await listUser(); |
| | | // console.log(rows); |
| | | // this.list = rows; |
| | | }, |
| | | // 修改题目信息 |
| | | Submittopicobj() {}, |
| | | // 新增变量 |
| | | addvariable() { |
| | | this.variablelist.push({ |
| | | variable: "", |
| | | value: "", |
| | | }); |
| | | }, |
| | | // 删除变量 |
| | | delvariable(item) { |
| | | const index = this.variablelist.indexOf(item); |
| | | if (index !== -1) { |
| | | this.variablelist.splice(index, 1); // 从索引位置删除一个元素 |
| | | } else { |
| | | console.log("未找到该对象"); |
| | | } |
| | | }, |
| | | // 控制文件 |
| | | handleChange(file, fileList) { |
| | | this.fileList = fileList.slice(-3); |
| | | }, |
| | | // 文件超出个数限制时的钩子 |
| | | handleExceed(files, fileList) { |
| | | this.$message.warning( |
| | | `当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${ |
| | | files.length + fileList.length |
| | | } 个文件` |
| | | ); |
| | | }, |
| | | // 标签----------------- |
| | | gettabList() { |
| | | const tagqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | tagcategoryid: "0", |
| | | }; |
| | | listtag(tagqueryParams).then((response) => { |
| | | console.log(response); |
| | | this.optionstag = response.rows; |
| | | }); |
| | | }, |
| | | handleClose(tag) { |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | }, |
| | | handleInputConfirm() { |
| | | let inputValue = this.inputValue; |
| | | if (inputValue) { |
| | | this.dynamicTags.push(inputValue); |
| | | } |
| | | this.inputVisible = false; |
| | | this.inputValue = ""; |
| | | }, |
| | | showInput() { |
| | | this.inputVisible = true; |
| | | // 自动获取焦点 |
| | | // this.$nextTick((_) => { |
| | | // this.$refs.saveTagInput.$refs.input.focus(); |
| | | // }); |
| | | }, |
| | | //测试表单 --------------------------------- |
| | | addzbiao() {}, |
| | | handleUpdate() {}, |
| | | deloption(item) { |
| | | const index = this.userList.indexOf(item); |
| | | if (index !== -1) { |
| | | this.userList.splice(index, 1); // 从索引位置删除一个元素 |
| | | this.sortFn(); |
| | | } else { |
| | | console.log("未找到该对象"); |
| | | } |
| | | }, |
| | | syioption(row) { |
| | | const index = this.getIndexInArray(this.userList, row); |
| | | const item = this.userList.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 |
| | | this.userList.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 |
| | | this.sortFn(); |
| | | }, |
| | | xiayioption(row) { |
| | | const index = this.getIndexInArray(this.userList, row); |
| | | const item = this.userList.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 |
| | | this.userList.splice(index + 1, 0, item); // 将item插入到索引位置的前一位 |
| | | this.sortFn(); |
| | | }, |
| | | sortFn() { |
| | | this.userList = this.userList.map((item, index) => { |
| | | return { |
| | | userid: index + 1, |
| | | userName: item.userName, |
| | | verbaltrick: item.verbaltrick, |
| | | }; |
| | | }); |
| | | console.log(this.userList); |
| | | }, |
| | | // --------------------- |
| | | // 查询题库 |
| | | handleQuery() {}, |
| | | resetQuery() {}, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .stencils-top { |
| | | .basic { |
| | | height: 50px; |
| | | margin: 15px; |
| | | margin-bottom: 0; |
| | | padding: 0 20px 20px 20px; |
| | | line-height: 50px; |
| | | background: #92c5f0; |
| | | justify-content: space-between; |
| | | .Questionnairemanagement { |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 300px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | | // margin-top: 20px; |
| | | margin: 20px; |
| | | margin-bottom: 0; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .mulsz { |
| | | font-size: 20px; |
| | | } |
| | | .top-menu { |
| | | margin: 15px; |
| | | margin-top: 0; |
| | | height: 400px; |
| | | padding: 10px 30px 10px 30px; |
| | | background: #f2f5fc; |
| | | 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); |
| | | .menu-list { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 5px; |
| | | border-bottom: 0.5px solid #bfc0c2; |
| | | .leftvlue-jbxx { |
| | | font-size: 24px; |
| | | border-left: 5px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin: 15px 0; |
| | | } |
| | | .demo-cascader { |
| | | margin-right: 20px; |
| | | } |
| | | .PreviewTemplate { |
| | | color: #02a7f0; |
| | | cursor: pointer; |
| | | font-size: 20px; |
| | | margin: 0 20px; |
| | | } |
| | | } |
| | | .preview-left { |
| | | margin: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .topic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | .stencils-bottom { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .issue { |
| | | width: 37%; |
| | | margin-left: 15px; |
| | | height: 500px; |
| | | background: #f2f5fc; |
| | | .menu-list { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 5px; |
| | | border-bottom: 0.5px solid #bfc0c2; |
| | | } |
| | | .basics { |
| | | height: 50px; |
| | | padding-left: 20px; |
| | | line-height: 50px; |
| | | background: #92c5f0; |
| | | justify-content: space-between; |
| | | } |
| | | } |
| | | .issue-button { |
| | | margin: 10px; |
| | | text-align: right; |
| | | } |
| | | .particulars { |
| | | width: 59%; |
| | | margin-right: 15px; |
| | | background: #f2f5fc; |
| | | .xinz-inf { |
| | | font-size: 18px; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | |
| | | line-height: 48px; |
| | | |
| | | .el-tag + .el-tag { |
| | | margin-left: 10px; |
| | | } |
| | | .button-new-tag { |
| | | margin-left: 10px; |
| | | height: 32px; |
| | | line-height: 30px; |
| | | padding-top: 0; |
| | | padding-bottom: 0; |
| | | } |
| | | .input-new-tag { |
| | | width: 90px; |
| | | margin-left: 10px; |
| | | vertical-align: bottom; |
| | | } |
| | | } |
| | | .addtopic { |
| | | margin-top: 30px; |
| | | } |
| | | .presentation { |
| | | margin: 20px 0; |
| | | display: flex; |
| | | .presentation-left { |
| | | width: 45%; |
| | | // height: 500px; |
| | | .button-textxg { |
| | | color: #024df0; |
| | | } |
| | | .button-textsc { |
| | | color: #f52727; |
| | | } |
| | | } |
| | | .presentation-right { |
| | | width: 55%; |
| | | max-height: 688px; |
| | | padding: 0 20px; |
| | | font-size: 18px; |
| | | overflow: auto; |
| | | .headline { |
| | | display: flex; |
| | | height: 50px; |
| | | padding: 0 20px 20px 20px; |
| | | line-height: 50px; |
| | | background: #92c5f0; |
| | | justify-content: space-between; |
| | | font-size: 20px; |
| | | border-left: 3px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin: 15px 0; |
| | | } |
| | | .valuetop { |
| | | .val-text { |
| | | display: flex; |
| | | height: 50px; |
| | | margin: 15px; |
| | | margin-bottom: 0; |
| | | // padding: 0 20px 20px 20px; |
| | | padding: 0 20px; |
| | | align-items: center; |
| | | background: #92c5f0; |
| | | justify-content: space-between; |
| | | .text-icon { |
| | | width: 35px; |
| | | height: 35px; |
| | | line-height: 35px; |
| | | text-align: center; |
| | | background: #fafafa; |
| | | cursor: pointer; |
| | | border-radius: 5px; |
| | | } |
| | | } |
| | | .val-bon { |
| | | margin: 15px; |
| | | margin-top: 0; |
| | | padding: 30px; |
| | | background: #f2f5fc; |
| | | 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); |
| | | } |
| | | .topicxq { |
| | | background-color: #e2f5fc; |
| | | border-radius: 4px; |
| | | margin-top: 10px; |
| | | padding-left: 10px; |
| | | padding-top: 15px; |
| | | } |
| | | } |
| | | } |
| | | .menu-icon { |
| | | cursor: pointer; |
| | | width: 20px; |
| | | height: 20px; |
| | | line-height: 20px; |
| | | text-align: center; |
| | | margin-right: 10px; |
| | | background: #78baf0; |
| | | color: #fff; |
| | | border-radius: 2px; |
| | | ::v-deep .addtopic-input { |
| | | input { |
| | | background: #02a7f0; |
| | | color: #edf1f7; |
| | | width: 150px; |
| | | } |
| | | } |
| | | .menu-icons { |
| | | cursor: pointer; |
| | | width: 20px; |
| | | height: 20px; |
| | | line-height: 20px; |
| | | text-align: center; |
| | | margin-right: 10px; |
| | | background: #f7603a; |
| | | color: #fff; |
| | | border-radius: 2px; |
| | | ::v-deep.el-step.is-vertical .el-step__title { |
| | | font-size: 20px; |
| | | } |
| | | ::v-deep.el-input--medium { |
| | | font-size: 18px !important; |
| | | } |
| | | ::v-deep.ruleFormaa.el-select { |
| | | display: inline-block; |
| | | position: relative; |
| | | width: 700px; |
| | | } |
| | | .el-select__tags { |
| | | font-size: 20px; |
| | | max-width: 888px !important; |
| | | } |
| | | ::v-deep.el-radio__inner { |
| | | width: 22px; |
| | | height: 22px; |
| | | } |
| | | // ::v-deep.topic-dev.el-radio__label { |
| | | // font-size: 24px; |
| | | // } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | ::v-deep.el-checkbox-group { |
| | | span { |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | // ::v-deep.el-form-item--medium .el-form-item__content { |
| | | // line-height: 36px; |
| | | // display: flex; |
| | | // } |
| | | </style> |