| | |
| | | title="宣教对象" |
| | | description="在本部选择宣教病人" |
| | | ></el-step> |
| | | <el-step icon="el-icon-user" title="模版确认"></el-step> |
| | | </el-steps> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="jic-value"> |
| | | <el-form ref="form" :model="form" label-width="105px"> |
| | | <el-form-item label="发送时间:"> |
| | | <el-form-item label="模版名称:"> |
| | | <el-input |
| | | style="width: 220px" |
| | | v-model="form.templatename" |
| | | placeholder="请在下列选择" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="发送设置:" v-if="currenttype != 2"> |
| | | <el-radio-group v-model="form.sendType"> |
| | | <el-radio :label="1">时间段发送</el-radio> |
| | | <el-radio :label="3">即刻发送</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="发送日期:" |
| | | v-if="currenttype != 2 && form.sendType == 1" |
| | | > |
| | | <el-date-picker |
| | | v-model="form.name" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | v-model="daytime" |
| | | @change="changeTimeday" |
| | | type="daterange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | value-format="yyyy-MM-dd" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="发送时间段:"> |
| | | <el-form-item |
| | | label="发送时间段:" |
| | | v-if="currenttype != 2 && form.sendType == 1" |
| | | > |
| | | <div style="display: flex"> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >上午</span |
| | | > |
| | | <el-time-picker |
| | | is-range |
| | | @change="changeTime" |
| | | v-model="time1" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | placeholder="选择时间范围" |
| | | value-format="HH:mm:ss" |
| | | > |
| | | </el-time-picker> |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >下午</span |
| | | > |
| | | <el-time-picker |
| | | is-range |
| | | @change="changeTime" |
| | | v-model="time2" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | placeholder="选择时间范围" |
| | | value-format="HH:mm:ss" |
| | | > |
| | | </el-time-picker> |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >晚间</span |
| | | > |
| | | <el-time-picker |
| | | is-range |
| | | @change="changeTime" |
| | | v-model="time3" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | placeholder="选择时间范围" |
| | | value-format="HH:mm:ss" |
| | | > |
| | | </el-time-picker> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="服务形式"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox label="上午(8:30-11:30)"></el-checkbox> |
| | | <el-checkbox label="下午(14:30-16:30)"></el-checkbox> |
| | | <el-checkbox label="夜间(18:30-20:30)"></el-checkbox> |
| | | <el-checkbox |
| | | v-for="(item, index) in checkboxlist" |
| | | :key="index" |
| | | :label="item" |
| | | ></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="宣教形式"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox label="当面"></el-checkbox> |
| | | <el-checkbox label="多媒体"></el-checkbox> |
| | | <el-checkbox label="纸质"></el-checkbox> |
| | | <el-checkbox label="电话"></el-checkbox> |
| | | <el-checkbox label="短信"></el-checkbox> |
| | | <el-checkbox label="微信公众号"></el-checkbox> |
| | | <el-checkbox label="微信小程序"></el-checkbox> |
| | | <el-checkbox label="钉钉"></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="发送时间段:"> |
| | | <el-radio-group v-model="form.radio"> |
| | | <el-radio :label="3">单人</el-radio> |
| | | <el-radio :label="6">多人</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="语音模版" prop="region"> |
| | | <el-select v-model="form.region" placeholder="请选择模版"> |
| | | <el-option label="一号模版" value="shanghai"></el-option> |
| | | <el-option label="二号模版" value="beijing"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="headline"> |
| | | <div>宣教内容列表</div> |
| | | <div>{{ title }}</div> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="jic-value"> |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="宣教主题"> |
| | | <el-form-item label="宣教主题" v-if="currenttype == 1"> |
| | | <el-input v-model="topqueryParams.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="适用疾病"> |
| | | <el-form-item |
| | | label="随访名称" |
| | | v-if="currenttype == 2 || currenttype == 3" |
| | | > |
| | | <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"> |
| | | <el-form-item |
| | | label="宣教类型" |
| | | prop="status" |
| | | v-if="currenttype == 1" |
| | | > |
| | | <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" |
| | | > |
| | | <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-form-item> |
| | | </el-form> |
| | | <el-divider></el-divider> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | width="50" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="序号" |
| | | align="center" |
| | | key="id" |
| | | prop="id" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="宣教名称" |
| | | align="center" |
| | | sortable |
| | | key="name" |
| | | prop="name" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="宣教模板" |
| | | align="center" |
| | | key="impTemplate" |
| | | prop="impTemplate" |
| | | /> |
| | | <el-table-column |
| | | label="创建日期" |
| | | align="center" |
| | | key="create_time" |
| | | prop="create_time" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="创建人" |
| | | align="center" |
| | | key="update_by" |
| | | prop="update_by" |
| | | sortable |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | width="120" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-zx" |
| | | ><i class="el-icon-s-promotion"></i>开始执行</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="任务详情" |
| | | align="center" |
| | | width="200" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-xq" |
| | | ><i class="el-icon-s-data"></i>选择</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <!-- 选择模版列表 --> |
| | | <SFtable |
| | | @selectfn="selectfn" |
| | | :currentList="userList" |
| | | :tableLabel="tableLabel" |
| | | :controlsc="false" |
| | | :multiplechoice="false" |
| | | :typeinfo="1" |
| | | /> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-button type="success" @click="submitForm('ruleForm')">{{ |
| | | <el-button type="success" @click="nextstep('ruleForm')">{{ |
| | | quote ? "立即创建" : "任务详情设置" |
| | | }}</el-button> |
| | | <el-button @click="resetForm('ruleForm')">重置</el-button> |
| | |
| | | <el-alert title="在本阶段选择宣教病人" type="success" effect="dark"> |
| | | </el-alert> |
| | | <div class="leftvlue-jbxx"> |
| | | <div class="examine-jic"> |
| | | <div class="headline"> |
| | | <div>变量匹配量参</div> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="jic-value"> |
| | | <el-row :gutter="20"> |
| | | <el-table :data="variableList" style="width: 100%"> |
| | | <el-table-column |
| | | prop="variablename" |
| | | align="center" |
| | | label="变量名称" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="character" |
| | | align="center" |
| | | label="匹配符" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column label="替换值" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.Replacementvalue" |
| | | placeholder="请输入内容" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | @click="variableEdit(scope.$index, scope.row)" |
| | | >编辑</el-button |
| | | > |
| | | <el-button |
| | | size="mini" |
| | | type="danger" |
| | | @click="variableDelete(scope.$index, scope.row)" |
| | | >删除</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="headline"> |
| | | <div>患者列表</div> |
| | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-select |
| | | v-model="tasktopic" |
| | | v-model="patientqueryParams.allhosp" |
| | | placeholder="请选择新增类型" |
| | | > |
| | | <el-option |
| | |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | :disabled="!tasktopic" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | :disabled="!patientqueryParams.allhosp" |
| | | @click="handleAddpatient" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >删除</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <!-- <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | :columns="columns" |
| | | ></right-toolbar> --> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | width="50" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="序号" |
| | | align="center" |
| | | key="id" |
| | | prop="id" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="任务名称" |
| | | align="center" |
| | | sortable |
| | | key="name" |
| | | prop="name" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="服务模板" |
| | | align="center" |
| | | key="impTemplate" |
| | | prop="impTemplate" |
| | | /> |
| | | <el-table-column |
| | | label="创建日期" |
| | | align="center" |
| | | key="create_time" |
| | | prop="create_time" |
| | | /> |
| | | <el-table-column |
| | | label="执行状态" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="执行状态" |
| | | align="center" |
| | | key="topicnumber" |
| | | prop="topicnumber" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div>执行完成/执行失败</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="更新人" |
| | | align="center" |
| | | key="update_by" |
| | | prop="update_by" |
| | | sortable |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="更新时间" |
| | | sortable |
| | | align="center" |
| | | prop="update_time" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | width="120" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-zx" |
| | | ><i class="el-icon-s-promotion"></i>开始执行</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="任务详情" |
| | | align="center" |
| | | width="200" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-xq" |
| | | ><i class="el-icon-s-data"></i>详情</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-bb" |
| | | ><i class="el-icon-s-order"></i>报表</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-sc" |
| | | ><i class="el-icon-delete"></i>删除</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <!-- 选中患者列表 --> |
| | | <SFtable |
| | | @handleUpdate="handleUpdate" |
| | | @handleSelectionChange="handleSelectionChange" |
| | | :currentList="form.patTaskRelevances" |
| | | :tableLabel="tableLabelhz" |
| | | :controlxz="false" |
| | | :typeinfo="2" |
| | | /> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-table |
| | | v-loading="patientloading" |
| | | :data="patientuserList" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="序号" |
| | | align="center" |
| | | key="patid" |
| | | prop="patid" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="患者名称" |
| | | align="center" |
| | | sortable |
| | | key="name" |
| | | prop="name" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="患者来源" |
| | | align="center" |
| | | key="source" |
| | | prop="source" |
| | | /> |
| | | <el-table-column |
| | | label="手机号码" |
| | | align="center" |
| | | key="telcode" |
| | | prop="telcode" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="任务详情" |
| | | align="center" |
| | | width="200" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-xq" |
| | | ><i class="el-icon-s-data"></i>详情</span |
| | | ></el-button |
| | | > |
| | | |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-sc" |
| | | ><i class="el-icon-delete"></i>删除</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- 选择患者列表 --> |
| | | <SFtable |
| | | @handleUpdate="handleUpdate" |
| | | @handleSelectionChange="handleSelectionChange" |
| | | :currentList="patientuserList" |
| | | :tableLabel="tableLabelhz" |
| | | :serialnumber="false" |
| | | :controlsc="false" |
| | | :typeinfo="3" |
| | | /> |
| | | </el-row> |
| | | <pagination |
| | | v-show="patienttotal > 0" |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { messagelistpatient } from "@/api/patient/homepage"; |
| | | import store from "@/store"; |
| | | import { |
| | | listsvr_prjtask, |
| | | getsvr_prjtask, |
| | | addsvr_prjtask, |
| | | updatesvr_prjtask, |
| | | delsvr_prjtask, |
| | | Addpatienttask, |
| | | } from "@/api/smartorpor/svr_prjtask"; |
| | | import { listpat_archive } from "@/api/smartorpor/pat_archive"; |
| | | import { listsvr_prjtaskline } from "@/api/smartorpor/svr_prjtaskline"; |
| | | getTaskpatient, |
| | | getlibrarylist, |
| | | getFollowuplist, |
| | | getQtemplatelist, |
| | | edithetask, |
| | | addhetask, |
| | | gethetaskinfo, |
| | | delhetaskinfo, |
| | | Editsingletask, |
| | | } from "@/api/AiCentre/index"; |
| | | import SFtable from "@/components/SFtable"; //表格组件 |
| | | |
| | | export default { |
| | | name: "ServiceDetails", |
| | | data() { |
| | | return { |
| | | title: "宣教内容列表", |
| | | currenttype: 1, //1宣教2门诊3出院4复诊5体检6问卷 |
| | | id: "", |
| | | Editprogress: 1, //编辑进度 |
| | | loading: false, // 遮罩层 |
| | | patientloading: false, // 遮罩层 |
| | | dialogVisible: false, //任务详情弹框 |
| | | dialogVisiblepatient: false, //添加患者弹框 |
| | | radio: 1, |
| | | checkboxlist: [], |
| | | tableLabel: [], |
| | | // 患者表单 |
| | | tableLabelhz: [ |
| | | { label: "序号", width: "", prop: "patid" }, |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "就诊科室", width: "", prop: "impTemplate" }, |
| | | { label: "入院日期", width: "", prop: "uploadTime" }, |
| | | { label: "创建人(缺)", width: "", prop: "update_by" }, |
| | | ], |
| | | tableLabelxj: [ |
| | | { label: "宣教名称", width: "", prop: "preachname" }, |
| | | { label: "宣教描述", width: "", prop: "note" }, |
| | | { label: "宣教形式", width: "", prop: "playType" }, |
| | | { label: "适用方式", width: "", prop: "suitway" }, |
| | | { label: "创建日期", width: "", prop: "uploadTime" }, |
| | | { label: "创建人(缺)", width: "", prop: "update_by" }, |
| | | ], |
| | | tableLabelmz: [ |
| | | { label: "随访名称", width: "118", prop: "templateName" }, |
| | | { label: "随访模版", width: "130", prop: "impTemplate" }, |
| | | { label: "创建日期", width: "136", prop: "uploadTime" }, |
| | | { label: "创建人(缺)", width: "130", prop: "update_by" }, |
| | | ], |
| | | tableLabelcy: [ |
| | | { label: "随访名称", width: "118", prop: "templateName" }, |
| | | { label: "随访计划", width: "130", prop: "impTemplate" }, |
| | | { label: "创建日期", width: "136", prop: "uploadTime" }, |
| | | { label: "创建人(缺)", width: "130", prop: "update_by" }, |
| | | ], |
| | | tableLabelfz: [ |
| | | { label: "通知名称", width: "118", prop: "templateName" }, |
| | | { label: "通知模版", width: "130", prop: "impTemplate" }, |
| | | { label: "创建日期", width: "136", prop: "uploadTime" }, |
| | | { label: "创建人(缺)", width: "130", prop: "update_by" }, |
| | | ], |
| | | tableLabeltj: [ |
| | | { label: "通知名称", width: "118", prop: "name" }, |
| | | { label: "通知模版", width: "130", prop: "impTemplate" }, |
| | | { label: "创建日期", width: "136", prop: "uploadTime" }, |
| | | { label: "创建人(缺)", width: "130", prop: "update_by" }, |
| | | ], |
| | | tableLabelwj: [ |
| | | { label: "问卷名称", width: "118", prop: "name" }, |
| | | { label: "问卷模版", width: "130", prop: "impTemplate" }, |
| | | { label: "创建日期", width: "136", prop: "uploadTime" }, |
| | | { label: "创建人(缺)", width: "130", prop: "update_by" }, |
| | | ], |
| | | // 变量 |
| | | tableLabelvariable: [ |
| | | { label: "变量名称", width: "", prop: "variablename" }, |
| | | { label: "匹配符", width: "", prop: "character" }, |
| | | { label: "替换值", width: "", prop: "Replacementvalue" }, |
| | | ], |
| | | // 时间处理 |
| | | daytime: [], //日期 |
| | | applydaytime: [], //计算日期 |
| | | time1: "", //上午时间段 |
| | | time2: "", //下午时间段 |
| | | time3: "", //晚上时间段 |
| | | topqueryParams: { |
| | | pageNum: 1, // |
| | | pageSize: 10, |
| | |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 用户表格数据 |
| | | userList: null, |
| | | patientuserList: null, |
| | | sonuserList: null, |
| | | userList: [], //模版列表 |
| | | patientuserList: [], //选择患者列表 |
| | | sonuserList: [], //选中患者列表 |
| | | variableList: [ |
| | | { |
| | | variablename: "姓名", |
| | | character: "${name}", |
| | | Replacementvalue: "龙傲天", |
| | | }, |
| | | { |
| | | variablename: "地址", |
| | | character: "${dzz}", |
| | | Replacementvalue: "龙宫", |
| | | }, |
| | | { |
| | | variablename: "电话", |
| | | character: "${dhh}", |
| | | Replacementvalue: "八个八", |
| | | }, |
| | | ], //变量列表 |
| | | variableListTime: [], |
| | | tasktopic: null, //新增类型 |
| | | SelectPatientslist: [], |
| | | form: { |
| | | name: "", |
| | | region: "", |
| | | date1: "", |
| | | date2: "", |
| | | delivery: false, |
| | | type: [], |
| | | resource: "", |
| | | desc: "", |
| | | serviceform: [], |
| | | patTaskRelevances: [], |
| | | sendType: 1, |
| | | templatename: "", |
| | | templateid: null, |
| | | }, |
| | | options: [ |
| | | { |
| | | value: "选项1", |
| | | label: "黄金糕", |
| | | }, |
| | | { |
| | | value: "选项2", |
| | | label: "双皮奶", |
| | | }, |
| | | { |
| | | value: "选项3", |
| | | label: "蚵仔煎", |
| | | }, |
| | | { |
| | | value: "选项4", |
| | | label: "龙须面", |
| | | }, |
| | | { |
| | | value: "选项5", |
| | | label: "北京烤鸭", |
| | | }, |
| | | ], |
| | | taskoptions: [ |
| | | { |
| | | value: "1", |
| | | label: "通知", |
| | | label: "出院病人", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "随访", |
| | | label: "门诊病人", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "问卷", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "宣教", |
| | | label: "体检病人", |
| | | }, |
| | | ], |
| | | quote: false, |
| | | }; |
| | | }, |
| | | components: { SFtable }, |
| | | |
| | | created() { |
| | | this.id = this.$route.query.id; |
| | | this.form.type = this.$route.query.type; |
| | | this.Addsubtask(); |
| | | this.Getsubtask(); |
| | | this.Acquisitiontype(); |
| | | }, |
| | | |
| | | methods: { |
| | | // 下一步 |
| | | submitForm(formName) { |
| | | // { |
| | | // 姓名: { "${name}": "龙傲天" }, |
| | | // 地址: { "${dzz}": "龙宫" }, |
| | | // 电话: { "${dhh}": "八个八" }, |
| | | // } |
| | | // 变量转换对象转数组 |
| | | convertFormat1ToFormat2(data) { |
| | | let result = []; |
| | | for (let key in data) { |
| | | let innerKey = Object.keys(data[key])[0]; |
| | | result.push({ |
| | | name: key, |
| | | value: innerKey, |
| | | fill: data[key][innerKey], |
| | | }); |
| | | } |
| | | return result; |
| | | }, |
| | | // 数组转对象 |
| | | convertFormat2ToFormat1(data) { |
| | | let result = {}; |
| | | data.forEach((item) => { |
| | | let innerObj = {}; |
| | | innerObj[item.value] = item.fill; |
| | | result[item.name] = innerObj; |
| | | }); |
| | | return result; |
| | | }, |
| | | // 获取当前类型 |
| | | Acquisitiontype() { |
| | | let queryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | isavailable: "", |
| | | }; |
| | | this.currenttype = this.$route.query.type; |
| | | console.log(this.currenttype, "1"); |
| | | if (this.currenttype == 1) { |
| | | this.title = "宣教内容列表"; |
| | | this.tableLabel = this.tableLabelxj; |
| | | this.checkboxlist = [ |
| | | "线下", |
| | | "视频", |
| | | "纸质", |
| | | "语音", |
| | | "短信", |
| | | "微信公众号", |
| | | "微信小程序", |
| | | "支付宝", |
| | | "二维码", |
| | | "钉钉", |
| | | ]; |
| | | getlibrarylist(queryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | }); |
| | | } else if (this.currenttype == 2) { |
| | | this.title = "随访内容列表"; |
| | | this.tableLabel = this.tableLabelmz; |
| | | this.checkboxlist = ["线下", "纸质", "语音", "短信", "微信公众号"]; |
| | | getFollowuplist(queryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | }); |
| | | } else if (this.currenttype == 3) { |
| | | this.title = "随访计划列表"; |
| | | this.tableLabel = this.tableLabelcy; |
| | | this.checkboxlist = ["线下", "纸质", "语音", "短信", "微信公众号"]; |
| | | getFollowuplist(queryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | }); |
| | | } else if (this.currenttype == 4) { |
| | | this.title = "通知内容列表"; |
| | | this.tableLabel = this.tableLabelfz; |
| | | this.checkboxlist = ["语音", "短信", "微信公众号"]; |
| | | getFollowuplist(queryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | }); |
| | | } else if (this.currenttype == 5) { |
| | | this.title = "通知内容列表"; |
| | | this.tableLabel = this.tableLabeltj; |
| | | this.checkboxlist = ["纸质", "语音", "短信", "微信公众号"]; |
| | | getFollowuplist(queryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | }); |
| | | } else if (this.currenttype == 6) { |
| | | this.title = "问卷内容列表"; |
| | | this.tableLabel = this.tableLabelwj; |
| | | this.checkboxlist = [ |
| | | "线下", |
| | | "视频", |
| | | "纸质", |
| | | "语音", |
| | | "短信", |
| | | "微信公众号", |
| | | "微信小程序", |
| | | "钉钉", |
| | | ]; |
| | | getQtemplatelist(queryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | }); |
| | | } |
| | | }, |
| | | nextstep() { |
| | | if (this.Editprogress <= 3) { |
| | | return this.Editprogress++; |
| | | } |
| | | }, |
| | | // 保存 |
| | | submitForm(formName) { |
| | | this.form.serviceform = this.checkList.join(","); |
| | | this.form.textParam = { |
| | | 姓名: { "${name}": "龙傲天" }, |
| | | 地址: { "${dzz}": "龙宫" }, |
| | | 电话: { "${dhh}": "八个八" }, |
| | | }; |
| | | if (this.form.id) { |
| | | this.form.isoperation = 2; |
| | | } else { |
| | | this.form.isoperation = 1; |
| | | } |
| | | Editsingletask(this.form).then((response) => { |
| | | if (res.code == 200) { |
| | | if (this.form.id) { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | } else { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | } |
| | | this.$router.go(-1); |
| | | } |
| | | }); |
| | | // 提交 |
| | | // this.$refs[formName].validate((valid, object) => { |
| | | // if (valid) { |
| | |
| | | // } |
| | | // }); |
| | | }, |
| | | // 子任务一级弹框 |
| | | handleAdd() { |
| | | this.multiple = true; |
| | | listsvr_prjtaskline(this.deliverytopqueryParams).then((response) => { |
| | | console.log(response); |
| | | this.sonuserList = response.rows; |
| | | this.sontotal = response.total; |
| | | this.loading = false; |
| | | }); |
| | | this.dialogVisible = true; |
| | | // ----------------------表格子组件事件 |
| | | // 选择 |
| | | selectfn(row, type) { |
| | | console.log(row); |
| | | console.log(type); |
| | | if (type == 1) { |
| | | this.form.templatename = row.preachname; |
| | | this.form.templateid = row.templateid; |
| | | } else if (type == 2) { |
| | | } else if (type == 3) { |
| | | } |
| | | }, |
| | | // 子任务二级弹框 |
| | | handleAddpatient() { |
| | | console.log(this.multiple); |
| | | listpat_archive(this.patientqueryParams).then((response) => { |
| | | handleAddpatient(row) { |
| | | getTaskpatient(this.patientqueryParams).then((response) => { |
| | | console.log(response); |
| | | this.patientuserList = response.rows; |
| | | this.patienttotal = response.total; |
| | |
| | | handleExport() {}, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | console.log("多选患者"); |
| | | this.SelectPatientslist = selection; |
| | | this.ids = null; |
| | | this.ids = selection.map((item) => item.patid).join(","); |
| | | // let result = this.ids.join(","); |
| | |
| | | getList() {}, |
| | | handleQuery() {}, |
| | | resetQuery() {}, |
| | | handleCloserw() { |
| | | this.dialogVisible = false; |
| | | }, |
| | | handleClosehz() { |
| | | this.dialogVisiblepatient = false; |
| | | }, |
| | |
| | | }, |
| | | // 新增派送患者 |
| | | AddDispatchpatients() { |
| | | let objictpint = {}; |
| | | objictpint.patientes = this.ids; |
| | | objictpint.pguid = 2; |
| | | Addpatienttask(objictpint).then((res) => { |
| | | console.log(res); |
| | | this.SelectPatientslist.forEach((item) => { |
| | | item.isoperation = 1; |
| | | }); |
| | | this.form.patTaskRelevances.push(...this.SelectPatientslist); |
| | | this.dialogVisiblepatient = false; |
| | | }, |
| | | |
| | | // 查询子任务列表 |
| | | Getsubtask() { |
| | | this.topqueryParams.pguid = 2; |
| | | console.log(this.topqueryParams); |
| | | // this.topqueryParams.pid = this.$route.query.id; |
| | | // console.log(this.topqueryParams.pid); |
| | | listsvr_prjtask(this.topqueryParams).then((res) => { |
| | | console.log(this.topqueryParams, "aa"); |
| | | messagelistpatient(this.topqueryParams).then((res) => { |
| | | this.userList = res.rows; |
| | | this.total = res.total; |
| | | console.log(this.userList); |
| | | console.log(this.userList, "ss"); |
| | | }); |
| | | }, |
| | | /** 查询患者列表 */ |
| | | // 变量--------------- |
| | | variableEdit(index, row) { |
| | | console.log(index, row); |
| | | }, |
| | | variableDelete(index, row) { |
| | | console.log(index, row); |
| | | }, |
| | | // 时间---------- |
| | | changeTime(row) { |
| | | console.log(row, "时间"); |
| | | this.processingTime(); |
| | | }, |
| | | changeTimeday(row) { |
| | | const startDate = new Date(row[0]); |
| | | const endDate = new Date(row[1]); |
| | | this.applydaytime = this.getDates(startDate, endDate); |
| | | this.processingTime(); |
| | | }, |
| | | getDates(startDate, endDate) { |
| | | const dates = []; |
| | | let currentDate = new Date(startDate); |
| | | |
| | | while (currentDate <= endDate) { |
| | | dates.push(this.$moment(currentDate).format("YYYY-MM-DD")); |
| | | currentDate.setDate(currentDate.getDate() + 1); |
| | | } |
| | | |
| | | return dates; |
| | | }, |
| | | // 时间最终处理方法 |
| | | processingTime() { |
| | | const combinedData = []; |
| | | let serialnumber = 1; |
| | | if (this.time3[0]) { |
| | | serialnumber = 3; |
| | | } else if (this.time2[0]) { |
| | | serialnumber = 2; |
| | | } else if (this.time1[0]) { |
| | | serialnumber = 1; |
| | | } else { |
| | | return; |
| | | } |
| | | |
| | | for (let i = 0; i < this.applydaytime.length; i++) { |
| | | combinedData.push({ |
| | | begantime: `${this.applydaytime[i]} ${this.time1[0]}`, |
| | | endtime: `${this.applydaytime[i]} ${this.time1[1]}`, |
| | | xh: serialnumber * i + 1, |
| | | }); |
| | | if (serialnumber >= 2) { |
| | | combinedData.push({ |
| | | begantime: `${this.applydaytime[i]} ${this.time2[0]}`, |
| | | endtime: `${this.applydaytime[i]} ${this.time2[1]}`, |
| | | xh: serialnumber * i + 2, |
| | | }); |
| | | } |
| | | if (serialnumber >= 3) { |
| | | combinedData.push({ |
| | | begantime: `${this.applydaytime[i]} ${this.time3[0]}`, |
| | | endtime: `${this.applydaytime[i]} ${this.time3[1]}`, |
| | | xh: serialnumber * i + 3, |
| | | }); |
| | | } |
| | | } |
| | | this.form.sendTimeslot = combinedData; |
| | | console.log(combinedData, "combinedData"); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |