| | |
| | | <el-step |
| | | icon="el-icon-edit" |
| | | title="基础信息" |
| | | description="选择模版、形式等基础信息" |
| | | description="选择模板、形式等基础信息" |
| | | ></el-step> |
| | | <el-step |
| | | icon="el-icon-user" |
| | | title="任务主体" |
| | | description="在本部选择服务患者" |
| | | ></el-step> |
| | | <el-step icon="el-icon-user" title="模版确认"></el-step> |
| | | </el-steps> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="leftvlue" style="margin: 0 20px"> |
| | | <!-- 基本信息 --> |
| | | <div v-if="Editprogress == 1"> |
| | | <el-alert title="选择模版、形式等基础信息" type="success" effect="dark"> |
| | | <el-alert title="选择模板、形式等基础信息" type="success" effect="dark"> |
| | | </el-alert> |
| | | <div class="leftvlue-jbxx"> |
| | | <!-- 基础信息 --> |
| | |
| | | <div>基础信息</div> |
| | | </div> |
| | | <div class="jic-value"> |
| | | <el-form ref="form" :model="form" label-width="105px"> |
| | | <el-form |
| | | ref="form" |
| | | :model="form" |
| | | :rules="rules" |
| | | label-width="125px" |
| | | > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="任务名称"> |
| | | ><el-form-item label="任务名称" prop="taskName"> |
| | | <el-input |
| | | style="width: 220px" |
| | | v-model="form.taskName" |
| | | placeholder="请输入任务名称" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="8" |
| | | ><el-form-item label="模版名称"> |
| | | <el-input |
| | | style="width: 220px" |
| | | :disabled="true" |
| | | v-model="form.templatename" |
| | | placeholder="请在下列选择" |
| | | /> </el-form-item |
| | | <el-col :span="12" |
| | | ><el-form-item label="任务类型"> |
| | | <el-select |
| | | v-model="serviceType" |
| | | placeholder="请选择新增类型" |
| | | > |
| | | <el-option |
| | | v-for="item in tasktypes" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="4"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-edit" |
| | | @click="drawermb = true" |
| | | circle |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-form-item label="任务描述"> |
| | | <el-form-item label="任务描述" prop="taskDesc"> |
| | | <el-input |
| | | type="textarea" |
| | | v-model="form.taskDesc" |
| | | placeholder="请输入任务描述" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="发送设置:" v-if="currenttype != 2"> |
| | | <el-form-item label="服务形式"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox |
| | | v-for="(item, index) in checkboxlist" |
| | | :key="index" |
| | | :label="item.value" |
| | | > |
| | | {{ item.label }}</el-checkbox |
| | | > |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="执行设置" prop="sendType"> |
| | | <el-radio-group v-model="form.sendType"> |
| | | <el-radio :label="1">时间段发送</el-radio> |
| | | <el-radio :label="3">时间点发送</el-radio> |
| | | <el-radio :label="2">即刻发送</el-radio> |
| | | <el-radio :label="1">时间段执行</el-radio> |
| | | <el-radio :label="3">时间点执行</el-radio> |
| | | <el-radio :label="2">即刻执行</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="发送日期:" v-if="form.sendType == 1"> |
| | | <el-form-item |
| | | label="执行日期" |
| | | v-if="form.sendType == 1" |
| | | prop="daytime" |
| | | > |
| | | <el-date-picker |
| | | v-model="daytime" |
| | | @change="changeTimeday" |
| | |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="发送时间点:" v-if="form.sendType == 3"> |
| | | <el-form-item |
| | | label="执行时间点" |
| | | v-if="form.sendType == 3" |
| | | prop="daytime" |
| | | > |
| | | <div style="display: flex"> |
| | | <div style="margin-right: 10px"> |
| | | <el-date-picker |
| | |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="发送时间段:" v-if="form.sendType == 1"> |
| | | <el-form-item |
| | | label="执行时间段" |
| | | v-if="form.sendType == 1" |
| | | prop="daytime" |
| | | > |
| | | <div style="display: flex"> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段一</span |
| | | > |
| | | <span style="font-size: 18px; margin-right: 10px">①</span> |
| | | <el-time-picker |
| | | is-range |
| | | arrow-control |
| | |
| | | </el-time-picker> |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段二</span |
| | | > |
| | | <span style="font-size: 18px; margin-right: 10px">②</span> |
| | | <el-time-picker |
| | | is-range |
| | | arrow-control |
| | |
| | | </el-time-picker> |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段三</span |
| | | > |
| | | <span style="font-size: 18px; margin-right: 10px">③</span> |
| | | <el-time-picker |
| | | is-range |
| | | arrow-control |
| | |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="服务形式"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox |
| | | v-for="(item, index) in checkboxlist" |
| | | :key="index" |
| | | :label="item" |
| | | ></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col :span="12" |
| | | ><el-form-item label="开场白" prop="kcb"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="3" |
| | | v-model="form.kcb" |
| | | placeholder="请输入开场白" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="结束语" prop="jsy"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="3" |
| | | v-model="form.jsy" |
| | | placeholder="请输入结束语" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="headline"> |
| | | <div>变量匹配量参</div> |
| | | <div>任务使用模板</div> |
| | | <div style="margin-left: 20px"> |
| | | <el-form ref="forms"> |
| | | <el-form-item label=""> |
| | | <el-input |
| | | style="width: 300px" |
| | | :disabled="true" |
| | | v-model="form.templatename" |
| | | placeholder="请点击右侧选择" |
| | | /> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-edit" |
| | | @click="drawermb = true" |
| | | circle |
| | | ></el-button> |
| | | |
| | | <el-button |
| | | v-if="form.libtemplateid" |
| | | type="success" |
| | | icon="el-icon-search" |
| | | @click="previewfnmb" |
| | | circle |
| | | ></el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="examine-jic"> |
| | | <div class="jic-value"> |
| | | <div style="margin-bottom: 10px">模板中使用的变量:</div> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-table :data="variableList" style="width: 100%"> |
| | | <el-table-column |
| | |
| | | }}</el-button> |
| | | <el-button @click="resetForm('ruleForm')">重置</el-button> |
| | | </div> |
| | | |
| | | <!-- 任务详情 --> |
| | | <div v-if="Editprogress == 2"> |
| | | <el-alert title="在本阶段选择宣教病人" type="success" effect="dark"> |
| | |
| | | <div class="examine-jic"> |
| | | <div class="jic-value"> |
| | | <el-row :gutter="20"> |
| | | <!--用户数据--> |
| | | <el-form |
| | | :model="topqueryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="患者名称"> |
| | | <el-input v-model="topqueryParams.name"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="患者范围" prop="status"> |
| | | <el-select |
| | | v-model="topqueryParams.topic" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in taskoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="患者状态" prop="status"> |
| | | <el-select |
| | | v-model="topqueryParams.topic" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in topicoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="问卷结果" prop="status"> |
| | | <el-select |
| | | v-model="topqueryParams.topic" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in topicoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="患者电话"> |
| | | <el-input v-model="topqueryParams.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >搜索</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="medium" |
| | | @click="resetQuery" |
| | | >重置</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-upload2" |
| | | size="medium" |
| | | type="warning" |
| | | >当前患者一键发送</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-divider></el-divider> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-select |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | :disabled="!patientqueryParams.allhosp" |
| | | @click="handleAddpatient" |
| | | @click="handleQuery" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | |
| | | :currentList="overallCase" |
| | | :tableLabel="tableLabelhz" |
| | | :serialnumber="false" |
| | | :searchTrue="true" |
| | | :multiplechoice="false" |
| | | :controlxz="false" |
| | | :typeinfo="2" |
| | |
| | | </div> |
| | | <!-- 添加患者 --> |
| | | <el-dialog |
| | | title="添加派发患者" |
| | | title="选择患者" |
| | | :visible.sync="dialogVisiblepatient" |
| | | width="70%" |
| | | :before-close="handleClosehz" |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="患者名称:"> |
| | | <el-input v-model="patientqueryParams.name"></el-input> |
| | | <el-form-item label="患者:"> |
| | | <el-input |
| | | v-model="patientqueryParams.name" |
| | | @keyup.enter.native="handleQuery" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="就诊科室" prop="status"> |
| | | <el-select |
| | | v-model="patientqueryParams.topic" |
| | | placeholder="请选择" |
| | | <el-select |
| | | v-model="patientqueryParams.topica" |
| | | placeholder="请选择患者来源" |
| | | > |
| | | <el-option |
| | | v-for="item in source" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | <el-option-group |
| | | v-for="group in topicoptions[0].children" |
| | | :key="group.deptName" |
| | | :label="group.deptName" |
| | | > |
| | | <el-option |
| | | v-for="item in group.children" |
| | | :key="item.deptId" |
| | | :label="item.deptName" |
| | | :value="item.deptId" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-option> |
| | | </el-select> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="模版预览" :visible.sync="previewtf" width="60%"> |
| | | <el-dialog title="模板预览" :visible.sync="previewtf" width="60%"> |
| | | <div class="preview-left"> |
| | | <!-- 单选 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | v-for="item in questionList" |
| | | :key="item.sort" |
| | | v-if="item.scriptType == 1" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span> |
| | | <div v-for="item in questionList"> |
| | | <!-- 单选 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | :key="item.sort" |
| | | v-if="item.scriptType == 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.svyLibTemplateTargetoptions" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items.optioncontent }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="item.remark"> |
| | | <el-radio |
| | | v-for="(items, index) in item.svyLibTemplateTargetoptions" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items.optioncontent }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | <!-- 多选 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | :key="item.sort" |
| | | v-if="item.scriptType == 2" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="qremark"> |
| | | <el-checkbox |
| | | v-for="(items, index) in item.svyLibTemplateTargetoptions" |
| | | :key="index" |
| | | :label="index" |
| | | > |
| | | {{ items.optioncontent }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 多选 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | v-for="item in questionList" |
| | | v-if="item.scriptType == 2" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="multiplechoice"> |
| | | <el-checkbox |
| | | v-for="items in item.svyLibTemplateTargetoptions" |
| | | :key="items.optioncontent" |
| | | :label="items.optioncontent" |
| | | > |
| | | {{ items.optioncontent }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <!-- 填空 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | v-for="item in questionList" |
| | | :key="item.sort" |
| | | v-if="item.scriptType == 3" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-input placeholder="请输入答案" v-model="item.radioas" clearable> |
| | | </el-input> |
| | | <!-- 填空 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | :key="item.sort" |
| | | v-if="item.scriptType == 4" |
| | | > |
| | | <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> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="previewGo">前往模版详情修改</el-button> |
| | | <!-- <el-button @click="previewGo">前往模板详情修改</el-button> --> |
| | | <el-button type="primary" @click="previewFn">确认使用</el-button> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item |
| | | label="宣教主题" |
| | | v-if="currenttype == 1 || currenttype == 8" |
| | | > |
| | | <el-input v-model="topqueryParams.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="问卷名称" |
| | | v-if="currenttype == 2 || currenttype == 3 || currenttype == 7" |
| | | > |
| | | <el-input |
| | | v-model="topqueryParams.name" |
| | | ></el-input> </el-form-item |
| | | ><el-form-item |
| | | label="通知名称" |
| | | v-if="currenttype == 4 || currenttype == 5" |
| | | > |
| | | <el-input |
| | | v-model="topqueryParams.name" |
| | | ></el-input> </el-form-item |
| | | ><el-form-item label="体检套餐" v-if="currenttype == 5"> |
| | | <el-input v-model="topqueryParams.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="问卷主题" v-if="currenttype == 6"> |
| | | <el-input v-model="topqueryParams.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="适用疾病" v-if="currenttype != 5"> |
| | | <el-input v-model="topqueryParams.name"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | label="宣教类型" |
| | | prop="status" |
| | | v-if="currenttype == 1 || currenttype == 8" |
| | | > |
| | | <el-select v-model="topqueryParams.topic" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in taskoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="通知类型" |
| | | prop="status" |
| | | v-if="currenttype == 4 || currenttype == 5" |
| | | > |
| | | <el-select v-model="topqueryParams.topic" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in taskoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="问卷类型" |
| | | prop="status" |
| | | v-if="currenttype == 2 || currenttype == 3 || currenttype == 7" |
| | | > |
| | | <el-select v-model="topqueryParams.topic" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in taskoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="问卷类型" |
| | | prop="status" |
| | | v-if="currenttype == 6" |
| | | > |
| | | <el-select v-model="topqueryParams.topic" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in taskoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <el-form-item label="问卷名称"> |
| | | <el-input v-model="topqueryParams.svyname"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="适用形式" prop="status"> |
| | | <el-select v-model="topqueryParams.topica" placeholder="请选择"> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="适用科室" prop="status"> |
| | | <el-select v-model="topqueryParams.topicd" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in topicoptions" |
| | | :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-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | @click="handleQuerymb" |
| | | >搜索</el-button |
| | | > |
| | | <el-button |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-divider></el-divider> |
| | | <!-- 选择模版列表 --> |
| | | <!-- 选择模板列表 --> |
| | | <SFtable |
| | | @selectfn="selectfn" |
| | | :currentList="userList" |
| | |
| | | getlibrarylist, |
| | | getFollowuplist, |
| | | getQtemplatelist, |
| | | getQtemplateobj, |
| | | TaskQuestioncomit, |
| | | Questionnairetaskget, |
| | | gethetaskinfo, |
| | |
| | | title: "宣教内容列表", |
| | | currenttype: 1, //1宣教2门诊3出院4复诊5体检6问卷 |
| | | id: "", // |
| | | previewid: "", //任务模版传递id |
| | | previewid: "", //任务模板传递id |
| | | libName: "", |
| | | overallCase: [], //选择患者总 |
| | | allpids: [], |
| | | libId: null, //模板库模版id |
| | | libId: null, //模板库模板id |
| | | Editprogress: 1, //编辑进度 |
| | | drawermb: false, //选择模版弹窗 |
| | | drawermb: false, //选择模板弹窗 |
| | | previewtf: false, //预览 |
| | | loading: false, // 遮罩层 |
| | | patientloading: false, // 遮罩层 |
| | |
| | | questionList: [], |
| | | // 患者表单 |
| | | tableLabelhz: [ |
| | | { label: "序号", width: "", prop: "patid" }, |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "就诊科室", width: "", prop: "deptName" }, |
| | | { label: "入院日期", width: "", prop: "inhosptime" }, |
| | | { label: "创建人(缺)", width: "", prop: "update_by" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "", prop: "deptName" }, |
| | | { label: "就诊/出院日期", width: "280", prop: "inhosptime" }, |
| | | ], |
| | | |
| | | tableLabelwj: [ |
| | |
| | | patientqueryParams: { |
| | | pageNum: 1, // |
| | | pageSize: 10, |
| | | topica:0,//0全部1科室2病区 |
| | | }, |
| | | topicoptions: [{ children: [{ children: [] }] }], |
| | | showSearch: true, // |
| | |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 用户表格数据 |
| | | userList: [], //模版列表 |
| | | userList: [], //模板列表 |
| | | multiplechoice: [], //多选结果 |
| | | patientuserList: [], //选择患者列表 |
| | | sonuserList: [], //选中患者列表 |
| | |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | kcb:'亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。', |
| | | jsy:'生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!', |
| | | }, |
| | | taskoptions: [ |
| | | { |
| | |
| | | label: "体检病人", |
| | | }, |
| | | ], |
| | | source: [ |
| | | { |
| | | value: 0, |
| | | label: "所有患者", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "科室患者", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "病区患者", |
| | | }, |
| | | ], |
| | | |
| | | tasktypes: [ |
| | | { |
| | | value: 1, |
| | | label: "监测评估", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "出院随访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "门诊随访", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "宣教关怀", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "复诊管理", |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "满意度调查", |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "患者报告", |
| | | }, |
| | | |
| | | { |
| | | value: 8, |
| | | label: "其他通知", |
| | | }, |
| | | ], |
| | | rules: { |
| | | taskName: [ |
| | | { required: true, message: "任务名称不能为空", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 30, |
| | | message: "任务名称长度必须介于 2 和 30 之间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | taskDesc: [ |
| | | { required: true, message: "任务描述不能为空", trigger: "blur" }, |
| | | ], |
| | | sendType: [ |
| | | { required: true, message: "发送设置不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | quote: false, |
| | | serviceType: null, |
| | | }; |
| | | }, |
| | | components: { SFtable }, |
| | |
| | | this.id = this.$route.query.id; |
| | | this.form.type = this.$route.query.type; |
| | | this.form.typename = this.$route.query.typename; |
| | | this.serviceType = Number(this.$route.query.serviceType); |
| | | this.form.serviceType = Number(this.$route.query.serviceType); |
| | | this.listDept(); |
| | | this.Acquisitiontype(); |
| | | this.Getdetails(); |
| | | }, |
| | | activated() { |
| | | if (this.id != this.$route.query.id) { |
| | | this.listDept(); |
| | | this.Acquisitiontype(); |
| | | this.Getdetails(); |
| | | } |
| | | }, |
| | | |
| | | methods: { |
| | |
| | | this.currenttype = this.$route.query.type; |
| | | this.title = "问卷内容列表"; |
| | | this.tableLabel = this.tableLabelwj; |
| | | this.checkboxlist = ["短信", "微信", "人工电话", "智能机器人"]; |
| | | getQtemplatelist(queryParams).then((response) => { |
| | | if (this.form.serviceType == 1) { |
| | | this.checkboxlist = [ |
| | | { |
| | | value: "1", |
| | | label: "人工", |
| | | }, |
| | | |
| | | { |
| | | value: "2", |
| | | label: "纸质", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "微信公众号", |
| | | }, |
| | | ]; |
| | | } else if (this.form.serviceType == 6) { |
| | | this.checkboxlist = [ |
| | | { |
| | | value: "3", |
| | | label: "电话", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "短信", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "微信公众号", |
| | | }, |
| | | { |
| | | value: "6", |
| | | label: "微信小程序", |
| | | }, |
| | | |
| | | { |
| | | value: "8", |
| | | label: "智能机器人", |
| | | }, |
| | | ]; |
| | | } else if (this.form.serviceType == 7) { |
| | | this.checkboxlist = [ |
| | | { |
| | | value: "1", |
| | | label: "人工", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "纸质", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "电话", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "短信", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "微信公众号", |
| | | }, |
| | | { |
| | | value: "6", |
| | | label: "微信小程序", |
| | | }, |
| | | ]; |
| | | } else if (this.form.serviceType == 2 || this.form.serviceType == 3) { |
| | | this.checkboxlist = [ |
| | | { |
| | | value: "1", |
| | | label: "人工", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "电话", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "短信", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "微信公众号", |
| | | }, |
| | | { |
| | | value: "6", |
| | | label: "微信小程序", |
| | | }, |
| | | |
| | | { |
| | | value: "8", |
| | | label: "智能机器人", |
| | | }, |
| | | ]; |
| | | } |
| | | getQtemplatelist(this.topqueryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | }); |
| | | }, |
| | | nextstep() { |
| | | if (this.Editprogress <= 3) { |
| | | return this.Editprogress++; |
| | | } |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.Editprogress <= 3) { |
| | | return this.Editprogress++; |
| | | } |
| | | } else { |
| | | this.$modal.msgError("表单内容未完善,请检查"); |
| | | } |
| | | }); |
| | | }, |
| | | // 保存 |
| | | submitForm(formName) { |
| | | // this.form.preachform = this.checkList.join(","); |
| | | this.formatFn(1); |
| | | this.form.hospType = this.currenttype; |
| | | if (this.time4 && this.form.sendType == 3) |
| | | this.form.showTimeMorn = this.time4; |
| | | this.form.sendTimeslot = [ |
| | | { |
| | | begantime: this.time4, |
| | | endtime: "", |
| | | xh: 1, |
| | | }, |
| | | ]; |
| | | if (this.checkList[0]) { |
| | | this.form.preachform = this.checkList.join(","); |
| | | } else { |
| | | this.$modal.msgError("请选择服务类型"); |
| | | return; |
| | | } |
| | | if (!this.form.patTaskRelevances[0]) { |
| | | this.$modal.msgError("请选择病人"); |
| | | return; |
| | | } |
| | | if (!this.form.templatename) { |
| | | this.$modal.msgError("未选择模板"); |
| | | return; |
| | | } |
| | | if ((this.form.sendType == 1 && this.time1) || this.form.sendType == 2) { |
| | | } else if (this.form.sendType == 3 && this.time4) { |
| | | } else { |
| | | return this.$modal.msgError("时间信息缺失"); |
| | | } |
| | | |
| | | const filteredArray = this.variableList.filter( |
| | | (item) => |
| | | item.name !== "姓名" && item.name !== "电话" && item.name !== "地址" |
| | | ); |
| | | console.log(filteredArray, "存前变量"); |
| | | this.form.textParam = this.convertFormat2ToFormat1(filteredArray); |
| | | if (this.form.taskid) { |
| | | this.form.isoperation = 2; |
| | |
| | | if (!this.form.type) { |
| | | this.form.type = this.$route.query.type; |
| | | } |
| | | this.form.serviceType = this.serviceType; |
| | | Editsingletask(this.form).then((res) => { |
| | | if (res.code == 200) { |
| | | if (this.form.taskid) { |
| | |
| | | } |
| | | this.$router.push({ |
| | | path: "/followvisit/tasklist", |
| | | query: { tasktopic: 6 }, |
| | | query: { tasktopic: this.form.serviceType }, |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | // ----------------------表格子组件事件 |
| | | // 确认选择模版放入任务模版 |
| | | |
| | | // 确认选择模板放入任务模板 |
| | | selectfn(row, type) { |
| | | // 模版情况下获取模版信息 |
| | | // 模板情况下获取模板信息 |
| | | if (type == 1) { |
| | | this.libName = row.svyname; |
| | | this.libId = row.svyid; |
| | | console.log(row, "row"); |
| | | this.Tasktemplate = row; |
| | | this.questionList = row.svyTemplateLibScripts; |
| | | this.previewtf = true; |
| | | getQtemplateobj({ svyid: row.svyid }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.questionList = res.rows[0].svyTemplateLibScripts; |
| | | this.previewtf = true; |
| | | } |
| | | }); |
| | | console.log(row.svyTemplateLibScripts); |
| | | this.previewid = row.svyid; |
| | | this.Variablehandling(row.svyTemplateLibScripts, 1); |
| | | } else if (type == 2) { |
| | | } else if (type == 3) { |
| | | } |
| | | }, |
| | | // 预览 |
| | | previewfnmb() { |
| | | console.log(this.form); |
| | | |
| | | getQtemplateobj({ svyid: this.form.libtemplateid }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.questionList = res.rows[0].svyTemplateLibScripts; |
| | | this.previewtf = true; |
| | | } |
| | | }); |
| | | }, |
| | | // 处理问题层变量 |
| | | Variablehandling(arr, type) { |
| | |
| | | this.overallCase.forEach((item) => { |
| | | this.allpids.push(item.patid); |
| | | }); |
| | | if (this.patientqueryParams.allhosp == 1) { |
| | | this.tableLabelhz = [ |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "", prop: "deptName" }, |
| | | { label: "就诊/出院日期", width: "280", prop: "inhosptime" }, |
| | | ]; |
| | | } else if (this.patientqueryParams.allhosp == 2) { |
| | | this.tableLabelhz = [ |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "诊断", width: "", prop: "diagname" }, |
| | | { label: "就诊科室", width: "", prop: "deptName" }, |
| | | { label: "入院日期", width: "", prop: "inhosptime" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | ]; |
| | | } |
| | | if (this.allpids[0]) { |
| | | this.patientqueryParams.pids = this.allpids; |
| | | console.log(this.patientqueryParams.pids); |
| | |
| | | handleUpdate() {}, |
| | | handleDelete() {}, |
| | | handleExport() {}, |
| | | |
| | | // 选择患者表数据 |
| | | handleSelectionChange(selection) { |
| | | console.log("多选患者"); |
| | |
| | | const isExist = this.overallCase.find((obj) => obj.name == item.name); |
| | | if (!isExist) { |
| | | item.isoperation = 1; |
| | | item.patid = item.id; |
| | | item.hospType = this.patientqueryParams.allhosp; |
| | | this.overallCase.push(item); |
| | | this.form.patTaskRelevances.push(item); |
| | |
| | | }, |
| | | getList() {}, |
| | | handleQuery() { |
| | | if (this.patientqueryParams.topica == 0) { |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.leavehospitaldistrictcodes; |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes; |
| | | } else if (topica == 1) { |
| | | this.patientqueryParams.leavehospitaldistrictcodes = null; |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes; |
| | | } else if (topica == 2) { |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.leavehospitaldistrictcodes; |
| | | this.patientqueryParams.leaveldeptcodes = null; |
| | | } |
| | | this.handleAddpatient(); |
| | | }, |
| | | resetQuery() {}, |
| | | handleQuerymb() { |
| | | getQtemplatelist(this.topqueryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | }); |
| | | }, |
| | | handleClosehz() { |
| | | this.dialogVisiblepatient = false; |
| | | }, |
| | |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | // 预览模版 |
| | | // 预览模板 |
| | | PreviewTemplate() {}, |
| | | Acknowledgereference() { |
| | | this.quote = true; |
| | | }, |
| | | // 获取详情 |
| | | Getdetails() { |
| | | this.form = { |
| | | patTaskRelevances: [], |
| | | sendType: 1, |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | kcb:'亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。', |
| | | jsy:'生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!', |
| | | }; |
| | | this.questionList = []; |
| | | if (this.id) { |
| | | Questionnairetaskget({ taskid: this.id }).then((res) => { |
| | | let filteredArray = ""; |
| | | console.log(2233); |
| | | if (res.code == 200) { |
| | | this.form = res.data; |
| | | |
| | | this.form.serviceType = this.serviceType; |
| | | this.form.patTaskRelevances = this.form.patTaskRelevances |
| | | ? this.form.patTaskRelevances |
| | | : []; |
| | | this.overallCase = this.form.patTaskRelevances.concat(); |
| | | this.formatFn(2); |
| | | console.log(this.form.showDate, "this.form"); |
| | | this.daytime = this.form.showDate.split(","); |
| | | this.checkList = this.form.preachform.split(","); |
| | | console.log(this.form, "this.form"); |
| | | if (this.form.showDate) |
| | | this.daytime = this.form.showDate.split(","); |
| | | if (this.form.showTimeMorn) { |
| | | if (this.form.sendType == 3) { |
| | | this.time4 = this.form.showTimeMorn; |
| | | console.log(1122); |
| | | } else { |
| | | this.time1 = this.form.showTimeMorn.split(","); |
| | | } |
| | |
| | | if (this.time1) this.form.showTimeMorn = this.time1.join(","); |
| | | if (this.time2) this.form.showTimeNoon = this.time2.join(","); |
| | | if (this.time3) this.form.showTimeNight = this.time3.join(","); |
| | | console.log(combinedData, "combinedData"); |
| | | }, |
| | | // 查看模版 |
| | | // 查看模板 |
| | | previewGo() { |
| | | this.$router.push({ |
| | | path: "/knowledge/templateku/configurat/", |
| | | path: "/knowledge/tpuconfigurat/", |
| | | query: { id: this.previewid, task: true, data: this.form }, |
| | | }); |
| | | }, |
| | |
| | | let id = this.Tasktemplate.id; |
| | | this.Tasktemplate.id = null; |
| | | console.log(this.Tasktemplate); |
| | | this.Tasktemplate.svyTemplateLibScripts.svyTaskTemplateTargetoptions = |
| | | this.Tasktemplate.svyTemplateLibScripts.svyLibTemplateTargetoptions; |
| | | |
| | | this.Tasktemplate.svyTemplateLibScripts.forEach((item) => { |
| | | item.svyTaskTemplateTargetoptions = item.svyLibTemplateTargetoptions; |
| | | }); |
| | | this.Tasktemplate.svyTaskTemplateScriptVOS = |
| | | this.Tasktemplate.svyTemplateLibScripts; |
| | | this.Tasktemplate.templateid = id; |
| | | this.Tasktemplate.isoperation = 1; |
| | | TaskQuestioncomit(this.Tasktemplate).then((response) => { |
| | | console.log(response); |
| | | this.previewtf = false; |
| | | this.form.templateid = response.data; |
| | | this.form.libtemplateid = this.libId; |
| | | this.form.templatename = this.libName; |
| | | this.$modal.msgSuccess("选择模版成功"); |
| | | this.$modal.msgSuccess("选择模板成功"); |
| | | }); |
| | | }, |
| | | // 处理服务形式 |
| | |
| | | margin: 20px; |
| | | .headline { |
| | | font-size: 24px; |
| | | height: 40px; |
| | | border-left: 5px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin-bottom: 10px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | // justify-content: space-between; |
| | | .Add-details { |
| | | font-size: 18px; |
| | | color: #02a7f0; |