| | |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ item.value ? item.value : 0 }} |
| | | {{ item.value ? item.value : 0 ? item.value : 0 }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <!-- <el-col :span="2.5"> |
| | | <el-col :span="2.5"> |
| | | <div class="ysfleftvlue"> |
| | | <el-card shadow="hover"> |
| | | <div style="padding: 8px"> |
| | |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> --> |
| | | </el-col> |
| | | <el-col :span="2.5"> |
| | | <div class="errleftvlue"> |
| | | <el-card shadow="hover"> |
| | |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="体检时间"> |
| | | <el-form-item label="复诊通知时间"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="应随访时间"> |
| | | <el-date-picker |
| | | v-model="dateRangefs" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | |
| | | placeholder="请输入患者姓名" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="诊断名称" prop="leavediagname"> |
| | | <el-input |
| | | v-model="topqueryParams.leavediagname" |
| | | placeholder="请输入诊断名称" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="随访人员" prop="updateBy"> |
| | | <el-input |
| | | v-model="topqueryParams.updateBy" |
| | | placeholder="请输入随访人员" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="主治医生" prop="drname"> |
| | | <el-input |
| | | v-model="topqueryParams.drname" |
| | | placeholder="请输入主治医生" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="经管医生" prop="managementDoctor"> |
| | | <el-input |
| | | v-model="topqueryParams.managementDoctor" |
| | | placeholder="请输入主治医生" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="患者范围" prop="status"> |
| | | <el-cascader |
| | | v-model="topqueryParams.scopetype" |
| | |
| | | <el-select v-model="topqueryParams.sendstate" 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.sort" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in topicoptionssort" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | |
| | | </el-form> |
| | | <el-divider></el-divider> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <!-- <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> --> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | size="medium" |
| | | @click="buidegetTasklist()" |
| | | >待办服务</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button type="primary" size="medium" @click="affiliation()" |
| | | >本人所属服务</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button type="success" size="medium" @click="onthatday()" |
| | | >今日服务</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | height="808" |
| | | :row-class-name="tableRowClassName" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | |
| | | <el-table-column |
| | | label="任务名称" |
| | | fixed |
| | | width="150" |
| | | show-overflow-tooltip |
| | | align="center" |
| | | key="taskName" |
| | | prop="taskName" |
| | | width="180" |
| | | /> |
| | | <!-- <el-table-column label="序号" fixed align="center" key="id" prop="id" /> --> |
| | | <el-table-column |
| | |
| | | align="center" |
| | | key="sendname" |
| | | prop="sendname" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | $router.push({ |
| | | path: '/patient/indexls/', |
| | | query: { sfzh: scope.row.idcardno }, |
| | | }) |
| | | " |
| | | ><span class="button-textsc">{{ |
| | | scope.row.sendname |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | /> |
| | | <el-table-column |
| | | label="任务状态" |
| | | align="center" |
| | |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.sendstate == 1"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | | >表单已领取</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 2"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | | >待随访</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 3"> |
| | | <el-tag type="success" :disable-transitions="false" |
| | | >表单已发送</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 4"> |
| | | <el-tag type="info" :disable-transitions="false">不执行</el-tag> |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 5"> |
| | | <el-tag type="danger" :disable-transitions="false" |
| | | >发送失败</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 6"> |
| | | <el-tag type="danger" :disable-transitions="false">已完成</el-tag> |
| | | </div> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | :content="scope.row.remark" |
| | | placement="top-start" |
| | | > |
| | | <div v-if="scope.row.sendstate == 1"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | | >表单已领取</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 2"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | | >待随访</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 3"> |
| | | <el-tag type="success" :disable-transitions="false" |
| | | >表单已发送</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 4"> |
| | | <el-tag type="info" :disable-transitions="false">不执行</el-tag> |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 5"> |
| | | <el-tag type="danger" :disable-transitions="false" |
| | | >发送失败</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 6"> |
| | | <el-tag type="success" :disable-transitions="false" |
| | | >已完成</el-tag |
| | | > |
| | | </div> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访人员" |
| | | align="center" |
| | | key="updateBy" |
| | | prop="updateBy" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="随访完成时间" |
| | | sortable |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访结果" |
| | | width="200" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.remark"> |
| | | <el-tag |
| | | type="warning" |
| | | v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4" |
| | | >{{ scope.row.remark }}</el-tag |
| | | > |
| | | <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="检查日期" |
| | | label="复诊通知日期" |
| | | width="200" |
| | | align="center" |
| | | key="endtime" |
| | |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | label="已检查天数" |
| | | label="主治医生" |
| | | width="120" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | <el-table-column |
| | | v-if="orgname != '丽水市中医院'" |
| | | label="随访人员" |
| | | align="center" |
| | | key="updateBy" |
| | | prop="updateBy" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="复诊通知天数" |
| | | width="120" |
| | | align="center" |
| | | key="endDay" |
| | |
| | | key="phone" |
| | | prop="phone" |
| | | /> |
| | | <!-- <el-table-column |
| | | <el-table-column |
| | | label="责任护士" |
| | | width="120" |
| | | align="center" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | /> --> |
| | | <el-table-column |
| | | label="检查医生" |
| | | width="120" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | |
| | | <!-- <el-table-column |
| | |
| | | > |
| | | </el-table-column> |
| | | |
| | | <!-- <el-table-column |
| | | label="疾病名称" |
| | | align="center" |
| | | key="icdName" |
| | | prop="icdName" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </el-table-column> --> |
| | | |
| | | <!-- <el-table-column |
| | | label="体检随访模板名称" |
| | | <el-table-column |
| | | label="复诊通知随访模板名称" |
| | | align="center" |
| | | key="templatename" |
| | | prop="templatename" |
| | |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.preachform">{{ item }}、 </span> |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | label="任务发送流程" |
| | | align="center" |
| | |
| | | </span> |
| | | </template> |
| | | </el-table-column> --> |
| | | |
| | | <el-table-column |
| | | label="任务结果说明" |
| | | width="220" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.remark"> |
| | | <el-tag |
| | | type="warning" |
| | | v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4" |
| | | >{{ scope.row.remark }}</el-tag |
| | | > |
| | | <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | fixed="right" |
| | | width="200" |
| | | width="300" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <!-- <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="重新随访" |
| | | content="再次随访" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | v-if="scope.row.isVisitAgain!=2" |
| | | @click="followupvisit(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-bb" |
| | | ><i class="el-icon-s-promotion"></i></span |
| | | ></el-button> |
| | |
| | | <!-- <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="停止" |
| | | content="暂停服务" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | |
| | | <el-button size="medium" type="text" @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | ><i class="el-icon-s-order"></i>查看详情</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | ><span class="button-textxga" |
| | | ><i class="el-icon-edit"></i>患者过滤</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | |
| | | </el-row> |
| | | <!-- 添加或修改影像随访对话框 --> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="addalteropen" |
| | | width="700px" |
| | | append-to-body |
| | | :title="amendtag ? '修改患者信息' : '新增患者'" |
| | | :visible.sync="Labelchange" |
| | | width="900px" |
| | | > |
| | | <el-form ref="form" :model="form" label-width="100px"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="任务名称"> |
| | | <el-input v-model="form.name"></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><el-form-item label="所属科室"> |
| | | <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-col |
| | | ></el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><el-form-item label="随访类型"> |
| | | <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-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="服务模块"> |
| | | <el-select v-model="form.region" placeholder="请选择模块"> |
| | | <el-option label="区域一" value="shanghai"></el-option> |
| | | <el-option label="区域二" value="beijing"></el-option> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="姓名" width="100" prop="name"> |
| | | <el-input |
| | | v-model="form.name" |
| | | placeholder="请输入姓名" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="性别" width="100" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="请选择性别"> |
| | | <el-option |
| | | v-for="dict in sextype" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="年龄" prop="age"> |
| | | <el-input |
| | | v-model="form.age" |
| | | placeholder="请输入年龄" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="影像随访要求"> |
| | | <el-form-item label="门诊随访要求"> |
| | | <el-input type="textarea" v-model="form.desc"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">提 交</el-button> |
| | | <el-button @click="cancel">返 回</el-button> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 修改发送时间对话框 --> |
| | |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | resetUserPwd, |
| | | changeUserStatus, |
| | | } from "@/api/system/user"; |
| | | import { getTaskservelist } from "@/api/AiCentre/index"; |
| | | import { getTaskservelist, buidegetTasklist } from "@/api/AiCentre/index"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import store from "@/store"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | dialogFormVisible: false, |
| | | // 总条数 |
| | | total: 0, |
| | | // 用户表格数据 |
| | |
| | | initPassword: undefined, |
| | | // 日期范围 |
| | | dateRange: [], |
| | | dateRangefs: [], |
| | | // 岗位选项 |
| | | postOptions: [], |
| | | ruleForm: { |
| | | type: [], |
| | | }, |
| | | zcform: {}, |
| | | dynamicTags: ["选项一", "选项二", "选项三"], //选项 |
| | | inputVisible: false, |
| | | Labelchange: false, |
| | | ycvalue: "", |
| | | yfsvalue: "", |
| | | inputValue: "", |
| | |
| | | }, |
| | | value: [], |
| | | list: [], |
| | | |
| | | topicoptionssort: [ |
| | | { |
| | | value: 0, |
| | | label: "复诊通知时间(正序)", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "复诊通知时间(倒序)", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "发送时间(正序)", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "发送时间(倒序)", |
| | | }, |
| | | ], |
| | | sourcetype: [ |
| | | { |
| | | value: 1, |
| | |
| | | loading: false, |
| | | cardlist: [ |
| | | { |
| | | name: "体检服务总量", |
| | | name: "复诊通知服务总量", |
| | | value: 0, |
| | | }, |
| | | // { |
| | |
| | | name: "需随访", |
| | | value: 0, |
| | | }, |
| | | |
| | | // { |
| | | // name: "异常", |
| | | // value: 0, |
| | | // }, |
| | | // { |
| | | // name: "发送失败", |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "发送失败", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "待随访", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "已随访", |
| | | name: "已发送", |
| | | value: 0, |
| | | }, |
| | | |
| | |
| | | // value: 0, |
| | | // }, |
| | | ], |
| | | |
| | | zcrules: { |
| | | date1: [ |
| | | { required: true, message: "请选择随访方式", trigger: "change" }, |
| | | ], |
| | | resource: [ |
| | | { required: true, message: "请选择随访时间", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | // 表单参数 |
| | | form: { |
| | | phonenumber: "", |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | serviceType: 9, |
| | | sendstate:2, |
| | | visitCount: 1, |
| | | scopetype: [], |
| | | |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }, |
| | | orgname: "", |
| | | propss: { multiple: true }, |
| | | options: [], |
| | | |
| | | topicoptions: [ |
| | | { |
| | | value: null, |
| | | label: "全部", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "表单已领取", |
| | |
| | | label: "已完成", |
| | | }, |
| | | ], |
| | | sextype: [ |
| | | { |
| | | value: 1, |
| | | label: "男", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "女", |
| | | }, |
| | | ], |
| | | topicoptionsyj: [ |
| | | { |
| | | value: 1, |
| | | label: "异常", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "警告", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "正常", |
| | | }, |
| | | ], |
| | | url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo", |
| | | postData: { |
| | | XiaoXiTou: { |
| | | FaSongFCSJC: "ZJHES", |
| | | FaSongJGID: localStorage.getItem("orgid"), |
| | | FaSongJGMC: localStorage.getItem("orgname"), |
| | | FaSongSJ: "2025-01-09 17:29:36", |
| | | FaSongXTJC: "SUIFANGXT", |
| | | FaSongXTMC: "随访系统", |
| | | XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171", |
| | | XiaoXiLX: "SC_LC_360STCX", |
| | | XiaoXiMC: "360 视图查询", |
| | | ZuHuID: localStorage.getItem("ZuHuID"), |
| | | ZuHuMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YeWuXX: { |
| | | BingRenXX: { |
| | | ZhengJianHM: "", |
| | | ZhengJianLXDM: "01", |
| | | ZhengJianLXMC: "居民身份证", |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YongHuXX: { |
| | | XiTongID: "SUIFANGXT", |
| | | XiTongMC: "随访系统", |
| | | YongHuID: localStorage.getItem("YongHuID"), |
| | | YongHuXM: localStorage.getItem("YongHuXM"), |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | idp: "lyra", |
| | | }, |
| | | }, |
| | | }, |
| | | amendtag: false, |
| | | errtype: "", |
| | | leavehospitaldistrictcode: "", |
| | | serviceState: [], |
| | |
| | | this.serviceState = store.getters.serviceState; |
| | | this.checkboxlist = store.getters.checkboxlist; |
| | | this.errtype = this.$route.query.errtype; |
| | | this.orgname = localStorage.getItem("orgname"); |
| | | this.leavehospitaldistrictcode = |
| | | this.$route.query.leavehospitaldistrictcode; |
| | | this.sourcetype[0].children = store.getters.belongDepts.map((dept) => { |
| | |
| | | value: dept.districtCode, |
| | | }; |
| | | }); |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | if (this.errtype) { |
| | | this.toleadExport(2); |
| | | } else { |
| | |
| | | this.getList(1); |
| | | }, |
| | | methods: { |
| | | /** 查询影像随访服务列表 */ |
| | | /** 查询门诊随访服务列表 */ |
| | | getList(refresh) { |
| | | // 默认全部 |
| | | |
| | | // 接受异常跳转 |
| | | |
| | | this.loading = true; |
| | | if (this.topqueryParams.leavehospitaldistrictcodes[0]&&this.topqueryParams.leaveldeptcodes[0]) { |
| | | this.topqueryParams.deptOrDistrict=2; |
| | | }else{ |
| | | this.topqueryParams.deptOrDistrict=1; |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | getTaskservelist(this.topqueryParams).then((response) => { |
| | | // if (this.endOut == 0) { |
| | | // this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS( |
| | | // this.getEndOfDay() |
| | | // ); |
| | | // } else { |
| | | // this.topqueryParams.endSendDateTime = null; |
| | | // } |
| | | // 接受异常跳转 |
| | | if (this.errtype) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push( |
| | | this.leavehospitaldistrictcode |
| | | ); |
| | | } |
| | | // this.loading = true; |
| | | if (!this.topqueryParams.leavehospitaldistrictcodes) |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | if (!this.topqueryParams.leaveldeptcodes) |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | |
| | | // getTaskservelist(this.topqueryParams).then((response) => { |
| | | // this.userList = response.rows[0].serviceSubtaskList; |
| | | // this.total = response.total; |
| | | // if (refresh) { |
| | | // this.cardlist[0].value = |
| | | // Number(response.rows[0].wzx) + Number(response.rows[0].ysf); |
| | | // // this.cardlist[1].value = response.rows[0].wzx; |
| | | // this.cardlist[1].value = response.rows[0].ysf; |
| | | // this.ycvalue = response.rows[0].yc; |
| | | // this.cardlist[2].value = response.rows[0].fssb; |
| | | // this.cardlist[3].value = response.rows[0].dsf; |
| | | // this.cardlist[4].value = response.rows[0].yfs2; |
| | | // this.yfsvalue = response.rows[0].yfs; |
| | | // } |
| | | // this.loading = false; |
| | | // this.userList.forEach((item) => { |
| | | // let idArray = null; |
| | | // if (item.endtime) { |
| | | // item.endDay = this.daysBetween(item.endtime); |
| | | // } |
| | | |
| | | // if (item.preachform) { |
| | | // if (item.endtime) { |
| | | // item.preachformson = item.preachform; |
| | | // idArray = item.preachform.split(","); |
| | | // } |
| | | |
| | | // item.preachform = idArray.map((value) => { |
| | | // // 查找id对应的对象 |
| | | // const item = this.checkboxlist.find( |
| | | // (item) => item.value == value |
| | | // ); |
| | | // // 如果找到对应的id,返回label值,否则返回null |
| | | // return item ? item.label : null; |
| | | // }); |
| | | // } |
| | | // }); |
| | | // this.total = response.total; |
| | | // }); |
| | | this.total = 7; |
| | | this.userList = [ |
| | | { |
| | | taskName: "术后随访-2024111301", |
| | | sendname: "张伟", |
| | | sendstate: 1, |
| | | remark: "患者已确认接收表单", |
| | | suggest: "1", |
| | | finishtime: "2025-11-13 10:23:45", |
| | | endtime: "2025-12-01 00:00:00", |
| | | longSendTime: "2025-11-20 00:00:00", |
| | | drname: "王家美", |
| | | updateBy: "李红梅", |
| | | endDay: 18, |
| | | sfzh: "331081199001011234", |
| | | phone: "13800138000", |
| | | nurseName: "李艳鑫", |
| | | deptname: "心血管内科", |
| | | leavehospitaldistrictname: "第一病区", |
| | | templatename: "标准术后复诊模板V2", |
| | | preachform: ["短信", "微信"], |
| | | }, |
| | | { |
| | | taskName: "慢性病管理-2024111302", |
| | | sendname: "李娜", |
| | | sendstate: 2, |
| | | remark: "等待患者回复可用时间", |
| | | suggest: "2", |
| | | finishtime: null, |
| | | endtime: "2025-11-25 00:00:00", |
| | | longSendTime: "2025-11-18 00:00:00", |
| | | drname: "王章流", |
| | | updateBy: "刘莉", |
| | | endDay: 12, |
| | | sfzh: "331081199112125678", |
| | | phone: "13900139000", |
| | | nurseName: "江赛贞", |
| | | deptname: "内分泌科", |
| | | leavehospitaldistrictname: "第二病区", |
| | | templatename: "慢性病月度随访模板", |
| | | preachform: ["电话"], |
| | | }, |
| | | { |
| | | taskName: "用药指导-2024111303", |
| | | sendname: "王磊", |
| | | sendstate: 3, |
| | | remark: "表单已通过系统发送", |
| | | suggest: "3", |
| | | finishtime: "2025-11-12 15:30:20", |
| | | endtime: "2025-11-30 00:00:00", |
| | | longSendTime: "2025-11-22 00:00:00", |
| | | drname: "丁祎", |
| | | updateBy: "陈振慧", |
| | | endDay: 17, |
| | | sfzh: "331081198805059876", |
| | | phone: "13700137000", |
| | | nurseName: "幸佳颖", |
| | | deptname: "神经内科", |
| | | leavehospitaldistrictname: "第三病区", |
| | | templatename: "用药依从性评估模板", |
| | | preachform: ["微信", "电话"], |
| | | }, |
| | | { |
| | | taskName: "康复评估-2024111304", |
| | | sendname: "刘洋", |
| | | sendstate: 4, |
| | | remark: "患者要求暂停随访服务", |
| | | suggest: "1", |
| | | finishtime: null, |
| | | endtime: null, |
| | | longSendTime: "2025-11-19 00:00:00", |
| | | drname: "陈翠洁", |
| | | updateBy: "张芷若", |
| | | endDay: null, |
| | | sfzh: "331081199508087654", |
| | | phone: "13600136000", |
| | | nurseName: "李林君", |
| | | deptname: "康复科", |
| | | leavehospitaldistrictname: "特需病区", |
| | | templatename: "康复进度评估模板", |
| | | preachform: ["短信"], |
| | | }, |
| | | { |
| | | taskName: "满意度调查-2024111305", |
| | | sendname: "陈静", |
| | | sendstate: 5, |
| | | remark: "患者手机号码已停机", |
| | | suggest: "2", |
| | | finishtime: null, |
| | | endtime: "2025-11-28 00:00:00", |
| | | longSendTime: "2025-11-15 00:00:00", |
| | | drname: "吴巧媚", |
| | | updateBy: "韩琦", |
| | | endDay: 15, |
| | | sfzh: "331081199310203210", |
| | | phone: "13500135000", |
| | | nurseName: "刘冰", |
| | | deptname: "普外科", |
| | | leavehospitaldistrictname: "第五病区", |
| | | templatename: "医疗服务满意度问卷", |
| | | preachform: ["短信", "微信", "电话"], |
| | | }, |
| | | { |
| | | taskName: "出院指导-2024111306", |
| | | sendname: "赵雪", |
| | | sendstate: 6, |
| | | remark: "随访流程已全部完成", |
| | | suggest: "3", |
| | | finishtime: "2025-11-10 14:20:35", |
| | | endtime: "2025-11-29 00:00:00", |
| | | longSendTime: "2025-11-16 00:00:00", |
| | | drname: "张璋", |
| | | updateBy: "李军", |
| | | endDay: 16, |
| | | sfzh: "331081198912124321", |
| | | phone: "13400134000", |
| | | nurseName: "张梅", |
| | | deptname: "消化内科", |
| | | leavehospitaldistrictname: "第六病区", |
| | | templatename: "出院后健康指导模板", |
| | | preachform: ["微信"], |
| | | }, |
| | | ]; |
| | | }, |
| | | // 时间 |
| | | getEndOfDay() { |
| | | const date = new Date(); // 创建一个表示当前时间的Date对象 |
| | | date.setHours(23, 59, 59, 0); // 将时间设置为23:59:59.000 |
| | | return date; |
| | | }, |
| | | formatDateToYYYYMMDDHHMMSS(date) { |
| | | const year = date.getFullYear(); |
| | | const month = String(date.getMonth() + 1).padStart(2, "0"); // 月份补零 |
| | | const day = String(date.getDate()).padStart(2, "0"); // 日期补零 |
| | | const hours = String(date.getHours()).padStart(2, "0"); |
| | | const minutes = String(date.getMinutes()).padStart(2, "0"); |
| | | const seconds = String(date.getSeconds()).padStart(2, "0"); |
| | | |
| | | return `${year}-${month}-${day}`; |
| | | }, |
| | | affiliation() { |
| | | this.topqueryParams.managementDoctorCode = store.getters.hisUserId; |
| | | this.getList(1); |
| | | }, |
| | | onthatday() { |
| | | this.topqueryParams.startSendDateTime = this.getCurrentDate(); |
| | | this.topqueryParams.endSendDateTime = this.getCurrentDate(); |
| | | this.getList(1); |
| | | }, |
| | | getCurrentDate() { |
| | | const now = new Date(); |
| | | return now.toISOString().slice(0, 10); // 截取前10个字符,即 YYYY-MM-DD |
| | | }, |
| | | buidegetTasklist(type) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | // 接受异常跳转 |
| | | if (this.errtype) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push( |
| | | this.leavehospitaldistrictcode |
| | | ); |
| | | } |
| | | let obj = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | leavehospitaldistrictcodes: |
| | | this.topqueryParams.leavehospitaldistrictcodes, |
| | | sendstates: [2, 3], |
| | | leaveldeptcodes: this.topqueryParams.leaveldeptcodes, |
| | | }; |
| | | buidegetTasklist(obj).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.total = response.total; |
| | | if (refresh) { |
| | | this.cardlist[0].value = |
| | | Number(response.rows[0].wzx) + Number(response.rows[0].ysf); |
| | | // this.cardlist[1].value = response.rows[0].wzx; |
| | | // this.cardlist[2].value = response.rows[0].ysf; |
| | | this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[2].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | // this.cardlist[3].value = response.rows[0].fssb; |
| | | // this.cardlist[4].value = response.rows[0].dsf; |
| | | // this.cardlist[5].value = response.rows[0].yfs2; |
| | | this.cardlist[3].value = response.rows[0].fssb; |
| | | this.cardlist[4].value = response.rows[0].dsf; |
| | | this.cardlist[5].value = response.rows[0].yfs2; |
| | | this.yfsvalue = response.rows[0].yfs; |
| | | } |
| | | this.loading = false; |
| | |
| | | this.total = response.total; |
| | | }); |
| | | }, |
| | | // 查看影像随访详情 |
| | | // 查看门诊随访详情 |
| | | Referencequestion(row) { |
| | | this.previewVisible = true; |
| | | }, |
| | |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.addalteropen = false; |
| | | this.reset(); |
| | | }, |
| | | |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery(refresh) { |
| | | |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.topqueryParams.pageNum = 1; |
| | | |
| | | this.topqueryParams.startOutHospTime = this.dateRange[0]; |
| | | this.topqueryParams.endOutHospTime = this.dateRange[1]; |
| | | this.topqueryParams.startSendDateTime = this.dateRangefs[0]; |
| | | this.topqueryParams.endSendDateTime = this.dateRangefs[1]; |
| | | console.log(221); |
| | | |
| | | this.getList(refresh); |
| | | }, |
| | |
| | | handleChange(value) { |
| | | let type = value[0]; |
| | | let code = value.slice(-1)[0]; |
| | | |
| | | |
| | | |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | if (type == 1) { |
| | | this.topqueryParams.leaveldeptcodes.push(code); |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | } else if (type == 2) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push(code); |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | } else { |
| | | } |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.dateRangefs = []; |
| | | this.topqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstate: 2, |
| | | sort: 2, //0 复诊通知时间(正序) 1 复诊通知时间(倒序) 2 发送时间(正序) 3 发送时间(倒序) |
| | | serviceType: 9, |
| | | sendstate:2, |
| | | }; |
| | | this.handleQuery(1); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.userId); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | handleSelectionChange(rows) { |
| | | this.selectedRows = rows.map((row) => { |
| | | // 初始化评分字段 |
| | | return { |
| | | ...row, |
| | | authenticity: row.authenticity || 0, |
| | | weekFinish: row.weekFinish || 0, |
| | | standard: row.standard || 0, |
| | | timeliness: row.timeliness || 0, |
| | | library: row.library || 0, |
| | | environment: row.environment || 0, |
| | | doctorSatisfaction: row.doctorSatisfaction || 0, |
| | | nurseSatisfaction: row.nurseSatisfaction || 0, |
| | | }; |
| | | }); |
| | | |
| | | if (this.selectedRows.length > 0) { |
| | | this.multiple = false; |
| | | } else { |
| | | this.multiple = true; |
| | | } |
| | | }, |
| | | |
| | | // 计算总分 |
| | | calculateTotal(row) { |
| | | return ( |
| | | (row.authenticity || 0) + |
| | | (row.weekFinish || 0) + |
| | | (row.standard || 0) + |
| | | (row.timeliness || 0) + |
| | | (row.library || 0) + |
| | | (row.environment || 0) + |
| | | (row.doctorSatisfaction || 0) + |
| | | (row.nurseSatisfaction || 0) |
| | | ); |
| | | }, |
| | | |
| | | // 保存评分 |
| | | saveScores() { |
| | | this.selectedRows.forEach((item) => { |
| | | item.createBy = null; |
| | | item.patName = item.sendname; |
| | | item.hospitaldistrictname = item.leavehospitaldistrictname; |
| | | }); |
| | | addsatisfaction(this.selectedRows).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message.success("评分保存成功"); |
| | | this.scoreDialogVisible = false; |
| | | this.selectedRows = []; |
| | | this.$refs.userform.clearSelection(); |
| | | } else { |
| | | this.$modal.msgWarning("评分保存失败"); |
| | | this.scoreDialogVisible = false; |
| | | this.selectedRows = []; |
| | | this.$refs.userform.clearSelection(); |
| | | } |
| | | }); |
| | | // 这里可以添加保存逻辑,如调用API保存评分 |
| | | }, |
| | | //删除选项 |
| | | handleClose(tag) { |
| | |
| | | }, |
| | | }); |
| | | }, |
| | | //患者360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | // this.$modal.msgWarning("360功能暂未开通"); |
| | | |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | |
| | | query360PatInfo(this.postData).then((res) => { |
| | | if (res.data.url) { |
| | | window.open(res.data.url, "_blank"); |
| | | // this.linkUrl = res.data.url; |
| | | } else { |
| | | this.$modal.msgWarning("360查询无结果"); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** 重置密码按钮操作 */ |
| | | handleResetPwd(row) { |
| | |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.Labelchange = false; |
| | | this.reset(); |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.userId != undefined) { |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.form.isoperation = 2; |
| | | this.form.notrequiredFlag = 1; |
| | | alterpatient(this.form) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("患者过滤成功"); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(1); |
| | | }); |
| | | } |
| | | |
| | | this.reset(); |
| | | this.Labelchange = false; |
| | | } |
| | | }); |
| | | }, |
| | |
| | | }, |
| | | // 跳转详情页 |
| | | Seedetails(row) { |
| | | let type = ""; |
| | | let type = ""; |
| | | console.log(row, "rwo"); |
| | | if (row.type == 1) { |
| | | type = 1; |
| | | } |
| | | if (row.type == 1) { |
| | | type = 1; |
| | | } |
| | | this.$router.push({ |
| | | path: "/followvisit/record/physical/", |
| | | path: "/followvisit/record/detailpage/", |
| | | query: { |
| | | taskid: row.taskid, |
| | | patid: row.patid, |
| | | id: row.id, |
| | | Voicetype: type, |
| | | visitCount: this.topqueryParams.visitCount, |
| | | }, |
| | | }); |
| | | }, |
| | |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (row.excep == 1) { |
| | | return "warning-row"; |
| | | } else if (row.excep == 2) { |
| | | return "remind-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | |
| | | } |
| | | ::v-deep.el-table .warning-row { |
| | | background: #eec4c4; |
| | | } |
| | | ::v-deep.el-table .remind-row { |
| | | background: #fcf5aa; |
| | | } |
| | | |
| | | .documentf { |
| | |
| | | } |
| | | } |
| | | ::v-deep.leftvlue .el-card__body { |
| | | background: #F2F8FF; |
| | | color: #324A9B; |
| | | background: #f2f8ff; |
| | | color: #324a9b; |
| | | } |
| | | ::v-deep.leftvlue .el-card__body:hover { |
| | | background: #3664D9; |
| | | background: #3664d9; |
| | | color: #fff; |
| | | cursor: pointer; /* 鼠标悬浮时变为手形 */ |
| | | } |
| | |
| | | background: #d0fdd8; |
| | | } |
| | | ::v-deep.ysfleftvlue .el-card__body:hover { |
| | | background: #8df8a4; |
| | | background: #0abc54; |
| | | cursor: pointer; /* 鼠标悬浮时变为手形 */ |
| | | } |
| | | .button-bb { |
| | |
| | | } |
| | | .button-sc { |
| | | font-weight: 500; |
| | | background-color: #dd302a; |
| | | background-color: #b3a21f; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-zx { |
| | | background: #4fabe9; |
| | | background: #324a9b; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | .purple-button { |
| | | background-color: #7e22ce; |
| | | border-color: #7e22ce; |
| | | color: #fff; |
| | | } |
| | | |
| | | .purple-button:hover, |
| | | .purple-button:focus { |
| | | background-color: #9333ea; |
| | | border-color: #9333ea; |
| | | } |
| | | |
| | | .purple-button:active { |
| | | background-color: #6b21a8; |
| | | border-color: #6b21a8; |
| | | } |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .purple-button.is-disabled { |
| | | background-color: #d8b4fe; |
| | | border-color: #d8b4fe; |
| | | opacity: 1; /* 保持禁用状态透明度 */ |
| | | } |
| | | // 选项字体放大 |
| | | // ::v-deep.el-checkbox-group { |
| | | // span { |