Merge branch 'master' of https://codeup.aliyun.com/61c0318acd8b75daa5a125f7/medical/openhis
This commit is contained in:
@@ -3,11 +3,21 @@
|
||||
*/
|
||||
package com.openhis.web.outpatientservice.controller;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.AccountStatus;
|
||||
import com.openhis.common.enums.PriorityLevel;
|
||||
import com.openhis.web.basicservice.dto.HealthcareServiceInitDto;
|
||||
import com.openhis.web.outpatientservice.dto.OutpatientRegistrationInitDto;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* 门诊挂号 controller
|
||||
*/
|
||||
@@ -17,6 +27,18 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
@AllArgsConstructor
|
||||
public class OutpatientRegistrationController {
|
||||
|
||||
|
||||
/**
|
||||
* 门诊挂号基础数据初始化
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
OutpatientRegistrationInitDto outpatientRegistrationInitDto = new OutpatientRegistrationInitDto();
|
||||
// 优先级
|
||||
List<OutpatientRegistrationInitDto.priorityLevelOption> priorityLevelOptionOptions = Stream.of(PriorityLevel.values())
|
||||
.map(e -> new OutpatientRegistrationInitDto.priorityLevelOption(e.getValue(), e.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
outpatientRegistrationInitDto.setPriorityLevelOptionOptions(priorityLevelOptionOptions);
|
||||
return R.ok(outpatientRegistrationInitDto);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.outpatientservice.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 门诊挂号 新增数据
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OutpatientRegistrationAddDto {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.openhis.web.outpatientservice.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 门诊挂号 init基础数据
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OutpatientRegistrationInitDto {
|
||||
|
||||
private List<priorityLevelOption> priorityLevelOptionOptions;
|
||||
|
||||
/**
|
||||
* 优先级
|
||||
*/
|
||||
@Data
|
||||
public static class priorityLevelOption {
|
||||
private Integer value;
|
||||
private String label;
|
||||
|
||||
public priorityLevelOption(Integer value, String label) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.openhis.web.patientmanage.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -13,9 +11,10 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.AdministrativeGender;
|
||||
import com.openhis.common.enums.EncounterSubjectStatus;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.patientmanage.dto.OutpatientRecordDto;
|
||||
import com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam;
|
||||
import com.openhis.web.patientmanage.dto.PatientListDto;
|
||||
import com.openhis.web.patientmanage.mapper.PatientManageMapper;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -45,24 +44,6 @@ public class OutpatientRecordController {
|
||||
return R.ok(listDoctorNames);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取性别列表
|
||||
*/
|
||||
@GetMapping("/list-administrativegender")
|
||||
public R<?> getAdministrativeGender() {
|
||||
// 获取性别
|
||||
List<AdministrativeGender> statusList = Arrays.asList(AdministrativeGender.values());
|
||||
List<PatientListDto> dtos = new ArrayList<>();
|
||||
// 取得更新值
|
||||
for (AdministrativeGender status : statusList) {
|
||||
PatientListDto dto = new PatientListDto();
|
||||
dto.setValue(status.getValue());
|
||||
dto.setInfo(status.getInfo());
|
||||
dtos.add(dto);
|
||||
}
|
||||
return R.ok(dtos);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询门诊记录,可选条件
|
||||
*
|
||||
@@ -83,10 +64,17 @@ public class OutpatientRecordController {
|
||||
// 查询总记录数
|
||||
long total = patientManageMapper.countOutpatientRecords(outpatientRecordSearchParam);
|
||||
// 创建Page对象并设置属性
|
||||
Page<OutpatientRecordDto> OutpatientRecordPage = new Page<>(pageNo, pageSize, total);
|
||||
OutpatientRecordPage.setRecords(listOutpatientRecords);
|
||||
Page<OutpatientRecordDto> outpatientRecordPage = new Page<>(pageNo, pageSize, total);
|
||||
outpatientRecordPage.setRecords(listOutpatientRecords);
|
||||
outpatientRecordPage.getRecords().forEach(e -> {
|
||||
// 性别枚举类回显赋值
|
||||
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
|
||||
// 就诊对象状态枚举类回显赋值
|
||||
e.setSubjectStatusEnum_enumText(
|
||||
EnumUtils.getInfoByValue(EncounterSubjectStatus.class, e.getSubjectStatusEnum()));
|
||||
});
|
||||
|
||||
return R.ok(OutpatientRecordPage);
|
||||
return R.ok(outpatientRecordPage);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -30,12 +30,14 @@ public class OutpatientRecordDto {
|
||||
|
||||
/** 性别编码 */
|
||||
private Integer genderEnum;
|
||||
private String genderEnum_enumText;
|
||||
|
||||
/** 就诊时间 */
|
||||
private Date encounterTime;
|
||||
|
||||
/** 就诊对象状态 */
|
||||
private Integer subjectStatusEnum;
|
||||
private String subjectStatusEnum_enumText;
|
||||
|
||||
/** 机构名称/接诊医院 */
|
||||
private String organizationName;
|
||||
|
||||
@@ -25,7 +25,7 @@ public class OutpatientRecordSearchParam {
|
||||
private String doctorName;
|
||||
|
||||
/** 筛选开始时间 */
|
||||
private Date startTime;
|
||||
private Date beginTime;
|
||||
|
||||
/** 筛选结束时间 */
|
||||
private Date endTime;
|
||||
|
||||
@@ -106,13 +106,13 @@
|
||||
pt.name,
|
||||
pt.id_card,
|
||||
c.description,
|
||||
pt.bus_no,
|
||||
e.bus_no,
|
||||
pt.bus_no as patientBusNo,
|
||||
e.bus_no as encounterBusNo,
|
||||
pt.gender_enum,
|
||||
e.start_time,
|
||||
e.start_time as encounterTime,
|
||||
e.subject_status_enum,
|
||||
ogt.name,
|
||||
p.name,
|
||||
ogt.name as organizationName,
|
||||
p.name as doctorName,
|
||||
pt.phone
|
||||
FROM
|
||||
adm_encounter e
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
package com.openhis.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@@ -8,7 +9,7 @@ import lombok.Getter;
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum EncounterClass {
|
||||
public enum EncounterClass implements HisEnumInterface {
|
||||
IMP(1, "IMP", "住院"),
|
||||
|
||||
AMB(2, "AMB", "门诊"),
|
||||
|
||||
@@ -6,7 +6,7 @@ import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum EncounterStatus {
|
||||
public enum EncounterStatus implements HisEnumInterface {
|
||||
PLANNED(1, "draft", "已安排"),
|
||||
|
||||
IN_PROGRESS(2, "in-progress", "进行中"),
|
||||
|
||||
@@ -3,10 +3,12 @@ import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
|
||||
/**
|
||||
* 就诊对象状态
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum EncounterSubjectStatus {
|
||||
public enum EncounterSubjectStatus implements HisEnumInterface {
|
||||
PLANNED(1, "arrived", "已到达"),
|
||||
|
||||
TRIAGED(2, "triaged", "已分诊"),
|
||||
|
||||
@@ -3,38 +3,12 @@ import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/*代码值 代码名称 对应7.28医疗类别med_type 在2203接口用到此信息
|
||||
25 异地住院
|
||||
26 单病种住院
|
||||
27 自主就医
|
||||
81 意外伤害门诊
|
||||
15 特药
|
||||
28 日间手术
|
||||
61 照护保险
|
||||
11 普通门诊
|
||||
12 门诊挂号
|
||||
13 急诊
|
||||
14 门诊慢特病
|
||||
990404 门诊特检特治(限吉林市)
|
||||
21 普通住院
|
||||
22 外伤住院
|
||||
23 转外诊治住院
|
||||
24 急诊转住院
|
||||
41 定点药店购药
|
||||
51 生育门诊
|
||||
52 生育住院
|
||||
5212 生育新生儿费用
|
||||
16 中医特色门诊
|
||||
29 起付线治疗
|
||||
9107 体检
|
||||
3101 低自付住院
|
||||
3102 低自付门诊
|
||||
140104 门诊慢病
|
||||
140201 门诊特病
|
||||
2114 舒缓疗护住院*/
|
||||
/**
|
||||
* 医保类别
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum EncounterYbClass {
|
||||
public enum EncounterYbClass implements HisEnumInterface {
|
||||
// 住院服务
|
||||
ORDINARY_HOSPITALIZATION(21, "21" , "普通住院"),
|
||||
FOREIGN_HOSPITALIZATION(25,"25", "异地住院"),
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
package com.openhis.administration.domain;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import com.core.common.core.domain.HisBaseEntity;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.enums.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 就诊管理Entity实体
|
||||
*
|
||||
@@ -25,54 +23,86 @@ import lombok.experimental.Accessors;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class Encounter extends HisBaseEntity {
|
||||
|
||||
/** ID */
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 患者ID */
|
||||
/**
|
||||
* 患者ID
|
||||
*/
|
||||
private Long patientId;
|
||||
|
||||
/** 群组ID */
|
||||
/**
|
||||
* 群组ID
|
||||
*/
|
||||
private Long groupId;
|
||||
|
||||
/** 就诊编码 */
|
||||
/**
|
||||
* 就诊编码
|
||||
*/
|
||||
private String busNo;
|
||||
|
||||
/** 状态编码 */
|
||||
/**
|
||||
* 状态编码
|
||||
*/
|
||||
private Integer statusEnum;
|
||||
|
||||
/** 类别编码 */
|
||||
/**
|
||||
* 类别编码
|
||||
*/
|
||||
private Integer classEnum;
|
||||
|
||||
/** 类别医保编码 */
|
||||
/**
|
||||
* 类别医保编码
|
||||
*/
|
||||
private Integer ybClassEnum;
|
||||
|
||||
/** 类别编码补充 */
|
||||
/**
|
||||
* 类别编码补充
|
||||
*/
|
||||
private String classJson;
|
||||
|
||||
/** 优先级编码 */
|
||||
/**
|
||||
* 优先级编码
|
||||
*/
|
||||
private Integer priorityEnum;
|
||||
|
||||
/** 分类编码 */
|
||||
/**
|
||||
* 分类编码
|
||||
*/
|
||||
private Integer typeEnum;
|
||||
|
||||
/** 服务ID */
|
||||
/**
|
||||
* 服务ID
|
||||
*/
|
||||
private Long serviceTypeId;
|
||||
|
||||
/** 就诊对象状态 */
|
||||
/**
|
||||
* 就诊对象状态
|
||||
*/
|
||||
private Integer subjectStatusEnum;
|
||||
|
||||
/** 开始时间 */
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private Date startTime;
|
||||
|
||||
/** 结束时间 */
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private Date endTime;
|
||||
|
||||
/** 机构id */
|
||||
/**
|
||||
* 机构id
|
||||
*/
|
||||
private Long organizationId;
|
||||
|
||||
/** 就诊序号 */
|
||||
/**
|
||||
* 就诊序号
|
||||
*/
|
||||
private Integer displayOrder;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import request from '@/utils/request'
|
||||
import { parseStrEmpty } from "@/utils/openhis";
|
||||
|
||||
// 查询病种目录列表
|
||||
// 查询厂商列表
|
||||
export function getSupplierList(query) {
|
||||
return request({
|
||||
url: '/data-dictionary/supplier/get-supplier-list',
|
||||
@@ -10,7 +10,7 @@ export function getSupplierList(query) {
|
||||
})
|
||||
}
|
||||
|
||||
// 查询病种目录详细
|
||||
// 查询厂商详细
|
||||
export function getSupplierOne(id) {
|
||||
return request({
|
||||
url: '/data-dictionary/supplier/get-supplier-detail/' + parseStrEmpty(id),
|
||||
@@ -18,7 +18,7 @@ export function getSupplierOne(id) {
|
||||
})
|
||||
}
|
||||
|
||||
// 新增病种目录
|
||||
// 新增厂商
|
||||
export function addSupplier(data) {
|
||||
return request({
|
||||
url: '/data-dictionary/supplier/add-supplier',
|
||||
@@ -27,7 +27,7 @@ export function addSupplier(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 修改病种目录
|
||||
// 修改厂商
|
||||
export function editSupplier(data) {
|
||||
return request({
|
||||
url: '/data-dictionary/supplier/edit-supplier',
|
||||
@@ -36,7 +36,7 @@ export function editSupplier(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// // 删除病种目录
|
||||
// // 删除厂商
|
||||
// export function delUser(userId) {
|
||||
// return request({
|
||||
// url: '/system/user/' + userId,
|
||||
@@ -44,7 +44,7 @@ export function editSupplier(data) {
|
||||
// })
|
||||
// }
|
||||
|
||||
// 停用病种目录
|
||||
// 停用厂商
|
||||
export function stopSupplier(ids) {
|
||||
return request({
|
||||
url: '/data-dictionary/supplier/information-stop',
|
||||
@@ -53,7 +53,7 @@ export function stopSupplier(ids) {
|
||||
})
|
||||
}
|
||||
|
||||
// 启用病种目录
|
||||
// 启用厂商
|
||||
export function startSupplier(ids) {
|
||||
return request({
|
||||
url: '/data-dictionary/supplier/information-start',
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
import request from '@/utils/request'
|
||||
import { parseStrEmpty } from "@/utils/openhis";
|
||||
|
||||
// 查询服务管理列表
|
||||
export function getRegistrationfeeList(query) {
|
||||
return request({
|
||||
url: '/basic-service/healthcare/healthcare-service-page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询服务管理详细
|
||||
export function getRegistrationfeeOne(id) {
|
||||
return request({
|
||||
url: '/basic-service/healthcare/healthcare-service-detail/' + parseStrEmpty(id),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增服务管理
|
||||
export function addRegistrationfee(data) {
|
||||
return request({
|
||||
url: '/basic-service/healthcare/healthcare-service',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改服务管理
|
||||
export function editRegistrationfee(data) {
|
||||
return request({
|
||||
url: '/basic-service/healthcare/healthcare-service',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询厂商类型
|
||||
export function getInit() {
|
||||
return request({
|
||||
url: '/basic-service/healthcare/init',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询部门树形数据
|
||||
export function deptTreeSelect(queryParams) {
|
||||
return request({
|
||||
url: '/basedatamanage/organization/organization',
|
||||
method: 'get',
|
||||
param: queryParams
|
||||
})
|
||||
}
|
||||
|
||||
// 查询地点树形数据
|
||||
export function locationTreeSelect(queryParams) {
|
||||
return request({
|
||||
url: '/basedatamanage/organization/organization',
|
||||
method: 'get',
|
||||
param: queryParams
|
||||
})
|
||||
}
|
||||
|
||||
// 删除收费挂号项目
|
||||
export function delRegistrationfee(param) {
|
||||
return request({
|
||||
url: '/basedatamanage/organization/healthcare-service',
|
||||
method: 'delete',
|
||||
params: param
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,835 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="90px"
|
||||
>
|
||||
<el-form-item label="服务名称:" prop="searchKey">
|
||||
<el-input
|
||||
v-model="queryParams.searchKey"
|
||||
placeholder="服务名称"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="是否需要预约:"
|
||||
prop="appointmentRequiredFlag"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-select
|
||||
v-model="queryParams.appointmentRequiredFlag"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in appointmentRequiredFlagOptions"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动标记:" prop="activeFlag">
|
||||
<el-select
|
||||
v-model="queryParams.activeFlag"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in activeFlagOptions"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:user:add']"
|
||||
>添加</el-button
|
||||
>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Remove"
|
||||
:disabled="multiple"
|
||||
@click="handleClose"
|
||||
v-hasPermi="['system:user:edit']"
|
||||
>停用</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="CirclePlus"
|
||||
:disabled="multiple"
|
||||
@click="handleStart"
|
||||
v-hasPermi="['system:user:remove']"
|
||||
>启用</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['monitor:job:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Search"
|
||||
@click="getList"
|
||||
v-hasPermi="['system:user:import']"
|
||||
>查询</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="CircleClose"
|
||||
@click="handleClear"
|
||||
v-hasPermi="['system:user:export']"
|
||||
>清空条件</el-button
|
||||
>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="registrationfeeList"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<el-table-column label="服务名称" align="center" key="name" prop="name" />
|
||||
<el-table-column
|
||||
label="活动标记"
|
||||
align="center"
|
||||
key="activeFlag_enumText"
|
||||
prop="activeFlag_enumText"
|
||||
/>
|
||||
<el-table-column
|
||||
label="提供部门"
|
||||
align="center"
|
||||
key="offeredOrgId_dictText"
|
||||
prop="offeredOrgId_dictText"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="服务分类"
|
||||
align="center"
|
||||
key="categoryCode_dictText"
|
||||
prop="categoryCode_dictText"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="服务类型 "
|
||||
align="center"
|
||||
key="typeCode_dictText"
|
||||
prop="typeCode_dictText"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="服务专业"
|
||||
align="center"
|
||||
key="specialtyCode_dictText"
|
||||
prop="specialtyCode_dictText"
|
||||
/>
|
||||
<el-table-column
|
||||
label="地点"
|
||||
align="center"
|
||||
key="locationId_dictText"
|
||||
prop="locationId_dictText"
|
||||
/>
|
||||
<el-table-column
|
||||
label="说明"
|
||||
align="center"
|
||||
key="comment"
|
||||
prop="comment"
|
||||
/>
|
||||
<el-table-column
|
||||
label="额外细节"
|
||||
align="center"
|
||||
key="extraDetails"
|
||||
prop="extraDetails"
|
||||
/>
|
||||
<el-table-column
|
||||
label="联系方式"
|
||||
align="center"
|
||||
key="contact"
|
||||
prop="contact"
|
||||
width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
label="预约要求"
|
||||
align="center"
|
||||
key="appointmentRequiredFlag_enumText"
|
||||
prop="appointmentRequiredFlag_enumText"
|
||||
/>
|
||||
<el-table-column
|
||||
label="名称"
|
||||
align="center"
|
||||
key="chargeName"
|
||||
prop="chargeName"
|
||||
/>
|
||||
<el-table-column
|
||||
label="基础价格"
|
||||
align="center"
|
||||
key="price"
|
||||
prop="price"
|
||||
/>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
width="140"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
icon="Edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:user:edit']"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
icon="View"
|
||||
@click="handleView(scope.row)"
|
||||
v-hasPermi="['system:user:remove']"
|
||||
>查看</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNo"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改服务管理对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="600px" append-to-body>
|
||||
<el-form
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
ref="registrationfeeRef"
|
||||
label-width="100px"
|
||||
>
|
||||
<div class="title">服务管理</div>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="服务名称" prop="name">
|
||||
<el-input
|
||||
v-model="form.name"
|
||||
placeholder="请输入服务名称"
|
||||
maxlength="30"
|
||||
:disabled="form.id != undefined"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="服务分类" prop="categoryCode">
|
||||
<el-select v-model="form.categoryCode" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="dict in category_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="服务类型" prop="fwTypeCode">
|
||||
<el-select v-model="form.fwTypeCode" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="dict in service_type_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="服务专业" prop="specialtyCode">
|
||||
<el-select v-model="form.specialtyCode" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="dict in specialty_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="地点" prop="locationId">
|
||||
<el-tree-select
|
||||
v-model="form.locationId"
|
||||
:data="deptOptions"
|
||||
:props="{ value: 'id', label: 'name', children: 'children' }"
|
||||
value-key="id"
|
||||
placeholder="请选择地点"
|
||||
check-strictly
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="提供部门" prop="offeredOrgId">
|
||||
<el-tree-select
|
||||
v-model="form.offeredOrgId"
|
||||
:data="deptOptions"
|
||||
:props="{ value: 'id', label: 'name', children: 'children' }"
|
||||
value-key="id"
|
||||
placeholder="请选择提供部门"
|
||||
check-strictly
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动标记" prop="activeFlag">
|
||||
<el-select v-model="form.activeFlag" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in activeFlagOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="额外细节" prop="extraDetails;">
|
||||
<el-input v-model="form.extraDetails" maxlength="11" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系方式" prop="contact">
|
||||
<el-input v-model="form.contact" maxlength="11" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预约要求" prop="appointmentRequiredFlag">
|
||||
<el-select
|
||||
v-model="form.appointmentRequiredFlag"
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in appointmentRequiredFlagOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="16">
|
||||
<el-form-item label="服务说明" prop="description">
|
||||
<el-input
|
||||
v-model="form.description"
|
||||
:autosize="{ minRows: 4, maxRows: 10 }"
|
||||
type="textarea"
|
||||
placeholder=""
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="title">费用管理</div>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="名称" prop="chargeName;">
|
||||
<el-input
|
||||
v-model="form.chargeName"
|
||||
:disabled="form.id != undefined"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="基础价格" prop="price">
|
||||
<el-input v-model="form.price" :disabled="form.id != undefined" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="form.id == undefined">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="收费项目标题" prop="title">
|
||||
<el-input v-model="form.title" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="医保类别" prop="ybType">
|
||||
<el-select
|
||||
v-model="form.ybType"
|
||||
placeholder="医保类别"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in med_chrgitm_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="form.id == undefined">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="财务类型" prop="cwTypeCode">
|
||||
<el-select v-model="form.cwTypeCode" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="dict in financial_type_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" v-if="form.id == undefined">
|
||||
<el-col :span="16">
|
||||
<el-form-item label="收费说明" prop="comment">
|
||||
<el-input
|
||||
v-model="form.comment"
|
||||
:autosize="{ minRows: 4, maxRows: 10 }"
|
||||
type="textarea"
|
||||
placeholder=""
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer v-if="title != '查看'">
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Registrationfee">
|
||||
import {
|
||||
getRegistrationfeeList,
|
||||
editRegistrationfee,
|
||||
addRegistrationfee,
|
||||
getRegistrationfeeOne,
|
||||
getInit,
|
||||
deptTreeSelect,
|
||||
locationTreeSelect,
|
||||
delRegistrationfee,
|
||||
} from "./components/registrationfee";
|
||||
|
||||
const router = useRouter();
|
||||
const { proxy } = getCurrentInstance();
|
||||
const {
|
||||
adm_location,
|
||||
category_code,
|
||||
service_type_code,
|
||||
specialty_code,
|
||||
med_chrgitm_type,
|
||||
financial_type_code,
|
||||
} = proxy.useDict(
|
||||
"adm_location",
|
||||
"category_code",
|
||||
"service_type_code",
|
||||
"specialty_code",
|
||||
"med_chrgitm_type",
|
||||
"financial_type_code"
|
||||
);
|
||||
|
||||
const registrationfeeList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
const activeFlagOptions = ref(undefined);
|
||||
const appointmentRequiredFlagOptions = ref(undefined);
|
||||
const deptOptions = ref(undefined); // 部门树选项
|
||||
const locationOptions = ref(undefined); // 地点树选项
|
||||
|
||||
// 是否停用
|
||||
const statusFlagOptions = ref(undefined);
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 50,
|
||||
searchKey: undefined, // 供应商名称
|
||||
busNo: undefined, // 编码
|
||||
statusEnum: undefined, // 状态(包括 1:预置,2:启用,3:停用)
|
||||
sourceEnum: undefined, // 来源(包括 1:厂商/产地目录分类,2:自定义)
|
||||
},
|
||||
rules: {
|
||||
offeredOrgId: [
|
||||
{ required: true, message: "提供部门不能为空", trigger: "blur" },
|
||||
],
|
||||
categoryCode: [
|
||||
{ required: true, message: "服务分类不能为空", trigger: "blur" },
|
||||
],
|
||||
fwTypeCode: [
|
||||
{ required: true, message: "服务类型不能为空", trigger: "blur" },
|
||||
],
|
||||
specialtyCode: [
|
||||
{ required: true, message: "服务专业不能为空", trigger: "blur" },
|
||||
],
|
||||
locationId: [{ required: true, message: "地点不能为空", trigger: "blur" }],
|
||||
name: [{ required: true, message: "服务名称不能为空", trigger: "blur" }],
|
||||
contact: [
|
||||
{ required: true, message: "联系人电话不能为空", trigger: "blur" },
|
||||
],
|
||||
appointmentRequiredFlag: [
|
||||
{ required: true, message: "预约要求不能为空", trigger: "blur" },
|
||||
],
|
||||
activeFlag: [
|
||||
{ required: true, message: "活动标识不能为空", trigger: "blur" },
|
||||
],
|
||||
chargeName: [{ required: true, message: "名称不能为空", trigger: "blur" }],
|
||||
description: [{ required: true, message: "描述不能为空", trigger: "blur" }],
|
||||
cwTypeCode: [
|
||||
{ required: true, message: "财务类别不能为空", trigger: "blur" },
|
||||
],
|
||||
ybType: [{ required: true, message: "医保类别不能为空", trigger: "blur" }],
|
||||
price: [{ required: true, message: "基础价格不能为空", trigger: "blur" }],
|
||||
},
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 挂号收费查询下拉树结构 */
|
||||
function getregistrationfeeTypeList() {
|
||||
getInit().then((response) => {
|
||||
console.log(response, "response");
|
||||
activeFlagOptions.value = response.data.activeFlagOptions; // 活动标记
|
||||
appointmentRequiredFlagOptions.value =
|
||||
response.data.appointmentRequiredFlagOptions; // 预约必填标记
|
||||
});
|
||||
}
|
||||
|
||||
/** 查询部门下拉树结构 */
|
||||
function getDeptTree() {
|
||||
deptTreeSelect().then((response) => {
|
||||
console.log(response, "response查询部门下拉树结构");
|
||||
|
||||
deptOptions.value = response.data.records;
|
||||
console.log(deptOptions.value, "部门下拉树结构");
|
||||
});
|
||||
}
|
||||
|
||||
/** 查询地点下拉树结构 */
|
||||
function getLocationTree() {
|
||||
locationTreeSelect().then((response) => {
|
||||
console.log(response, "response查询部门下拉树结构");
|
||||
locationOptions.value = response.data.records;
|
||||
console.log(locationOptions.value, "部门下拉树结构");
|
||||
});
|
||||
}
|
||||
|
||||
/** 查询挂号收费项目列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
// queryParams.value.statusEnum = +queryParams.value.statusEnum
|
||||
console.log(queryParams.value, "queryParams.value");
|
||||
getRegistrationfeeList(queryParams.value).then((res) => {
|
||||
loading.value = false;
|
||||
console.log(res, "res");
|
||||
registrationfeeList.value = res.data.records;
|
||||
total.value = res.data.total;
|
||||
console.log(total.value, "total.value");
|
||||
});
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNo = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 清空条件按钮操作 */
|
||||
function handleClear() {
|
||||
// 清空查询条件
|
||||
proxy.resetForm("queryRef");
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 选择条数 */
|
||||
function handleSelectionChange(selection) {
|
||||
console.log(selection, "selection");
|
||||
// selectedData.value = selection.map((item) => ({ ...item })); // 存储选择的行数据
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 重置操作表单 */
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: undefined,
|
||||
name: undefined,
|
||||
categoryCode: undefined,
|
||||
cwTypeCode: undefined,
|
||||
fwTypeCode: undefined,
|
||||
specialtyCode: undefined,
|
||||
locationId: 1,
|
||||
offeredOrgId: undefined,
|
||||
activeFlag: undefined,
|
||||
extraDetails: undefined,
|
||||
contact: undefined,
|
||||
appointmentRequiredFlag: undefined,
|
||||
chargeName: undefined,
|
||||
price: undefined,
|
||||
description: undefined,
|
||||
ybType: undefined,
|
||||
title: undefined,
|
||||
};
|
||||
proxy.resetForm("registrationfeeRef");
|
||||
}
|
||||
/** 取消按钮 */
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
// 恢复规则
|
||||
rules.value.cwTypeCode = [
|
||||
{ required: true, message: "财务类别不能为空", trigger: "blur" },
|
||||
];
|
||||
rules.value.ybType = [
|
||||
{ required: true, message: "医保类别不能为空", trigger: "blur" },
|
||||
];
|
||||
rules.value.price = [
|
||||
{ required: true, message: "基础价格不能为空", trigger: "blur" },
|
||||
];
|
||||
|
||||
rules.value.chargeName = [
|
||||
{ required: true, message: "名称不能为空", trigger: "blur" },
|
||||
];
|
||||
rules.value.description = [
|
||||
{ required: true, message: "描述不能为空", trigger: "blur" },
|
||||
];
|
||||
|
||||
open.value = true;
|
||||
title.value = "新增";
|
||||
}
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
// 移除规则
|
||||
rules.value.chargeName = [];
|
||||
rules.value.description = [];
|
||||
rules.value.cwTypeCode = [];
|
||||
rules.value.ybType = [];
|
||||
rules.value.price = [];
|
||||
console.log(row, "row");
|
||||
form.value = JSON.parse(JSON.stringify(row));
|
||||
form.value.fwTypeCode = form.value.typeCode;
|
||||
open.value = true;
|
||||
title.value = "编辑";
|
||||
}
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["registrationfeeRef"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != undefined) {
|
||||
// 调用转换函数
|
||||
const transformFormEditParam = transformFormEditData(form);
|
||||
console.log(transformFormEditData, "transformFormEditData");
|
||||
console.log(form.value, "editRegistrationfee", form.value.statusEnum);
|
||||
editRegistrationfee(transformFormEditParam).then((response) => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
// 调用转换函数
|
||||
const transformedData = transformFormData(form);
|
||||
console.log(transformedData, "transformedData");
|
||||
addRegistrationfee(transformedData).then((response) => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 详细按钮操作 */
|
||||
function handleView(row) {
|
||||
reset();
|
||||
title.value = "查看";
|
||||
open.value = true;
|
||||
getRegistrationfeeOne(row.id).then((response) => {
|
||||
console.log(response, "responsebbbb", row.id);
|
||||
form.value = response.data;
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const delId = row.id || ids.value;
|
||||
proxy.$modal
|
||||
.confirm("是否确认删除以上数据?")
|
||||
.then(function () {
|
||||
return delRegistrationfee({ ids: delId.join(",") });
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
// 转换insert参数函数
|
||||
const transformFormData = (form) => {
|
||||
const {
|
||||
id,
|
||||
name,
|
||||
categoryCode,
|
||||
// typeCode,
|
||||
cwTypeCode,
|
||||
fwTypeCode,
|
||||
specialtyCode,
|
||||
locationId,
|
||||
offeredOrgId,
|
||||
activeFlag,
|
||||
extraDetails,
|
||||
contact,
|
||||
appointmentRequiredFlag,
|
||||
chargeName,
|
||||
price,
|
||||
description,
|
||||
ybType,
|
||||
title,
|
||||
} = form.value;
|
||||
|
||||
return {
|
||||
healthcareServiceFormData: {
|
||||
id,
|
||||
activeFlag,
|
||||
offeredOrgId,
|
||||
categoryCode,
|
||||
typeCode: fwTypeCode,
|
||||
specialtyCode,
|
||||
locationId,
|
||||
name,
|
||||
contact,
|
||||
appointmentRequiredFlag,
|
||||
extraDetails,
|
||||
},
|
||||
chargeItemDefinitionFormData: {
|
||||
id,
|
||||
chargeName,
|
||||
title,
|
||||
orgId: offeredOrgId,
|
||||
description,
|
||||
typeCode: cwTypeCode,
|
||||
ybType,
|
||||
price,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
// 转换insert参数函数
|
||||
const transformFormEditData = (form) => {
|
||||
const {
|
||||
id,
|
||||
name,
|
||||
categoryCode,
|
||||
// typeCode,
|
||||
cwTypeCode,
|
||||
fwTypeCode,
|
||||
specialtyCode,
|
||||
locationId,
|
||||
offeredOrgId,
|
||||
activeFlag,
|
||||
extraDetails,
|
||||
contact,
|
||||
appointmentRequiredFlag,
|
||||
chargeName,
|
||||
price,
|
||||
description,
|
||||
ybType,
|
||||
title,
|
||||
} = form.value;
|
||||
|
||||
return {
|
||||
healthcareServiceFormData: {
|
||||
id,
|
||||
activeFlag,
|
||||
offeredOrgId,
|
||||
categoryCode,
|
||||
typeCode: fwTypeCode,
|
||||
specialtyCode,
|
||||
locationId,
|
||||
name,
|
||||
contact,
|
||||
appointmentRequiredFlag,
|
||||
extraDetails,
|
||||
},
|
||||
};
|
||||
};
|
||||
getregistrationfeeTypeList();
|
||||
getDeptTree();
|
||||
getList();
|
||||
</script>
|
||||
<style scoped>
|
||||
.custom-tree-node {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-weight: bold;
|
||||
font-size: large;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,18 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function listOutpatienRecords(query) {
|
||||
return request({
|
||||
url: '/patientmanage/records/outpatient-record-page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function listDoctorNames() {
|
||||
return request({
|
||||
url: '/patientmanage/records/list-doctornames',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
|
||||
<el-form-item label="查询内容" prop="searchKey">
|
||||
<el-input v-model="queryParams.searchKey" placeholder="身份证号/病人ID/门诊号/姓名" clearable style="width: 210px"
|
||||
@keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="电话" prop="phone">
|
||||
<el-input v-model="queryParams.phone" placeholder="请输入联系方式" clearable style="width: 200px"
|
||||
@keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="病人名称" prop="patientname">
|
||||
<el-date-picker v-model="dateRange" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
|
||||
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="医生" prop="patientid">
|
||||
<el-select v-model="queryParams.doctorName" placeholder="请选择医生" clearable @keyup.enter="handleQuery"
|
||||
style="width: 160px">
|
||||
<el-option v-for="item in doctorOptions" :key="item.value" :label="item.label"
|
||||
:value="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-table :data="outpatienRecordsList" border style="width: 100%">
|
||||
<el-table-column prop="name" label="患者" width="180" />
|
||||
<el-table-column prop="idCard" label="身份证" width="180" />
|
||||
<el-table-column prop="description" label="疾病" width="180" />
|
||||
<el-table-column prop="patientBusNo" label="病人ID" width="180" />
|
||||
<el-table-column prop="genderEnum_enumText" label="性别" width="80" />
|
||||
<el-table-column prop="phone" label="电话" width="120" />
|
||||
<el-table-column prop="encounterTime" label="就诊时间" width="180" />
|
||||
<el-table-column prop="subjectStatusEnum_enumText" label="状态" width="120" />
|
||||
<el-table-column prop="organizationName" label="接诊医院" width="180" />
|
||||
<el-table-column prop="doctorName" label="接诊医生" width="180" />
|
||||
<!-- <el-table-column prop="address" label="会诊医院" width="180" />
|
||||
<el-table-column prop="workCompany" label="会诊医生工作单位" width="180" />
|
||||
<el-table-column prop="organizationName" label="协同服务" width="180" /> -->
|
||||
</el-table>
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="outpatienRecords">
|
||||
import { ref, computed } from 'vue';
|
||||
import { listOutpatienRecords, listDoctorNames } from "./component/api"
|
||||
|
||||
const showSearch = ref(true);
|
||||
const total = ref(0);
|
||||
const dateRange = ref([]);
|
||||
const outpatienRecordsList = ref([]);
|
||||
const doctorList = ref([]);
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
doctorName: undefined,
|
||||
searchKey: undefined,
|
||||
phone: undefined,
|
||||
patientid: undefined
|
||||
},
|
||||
});
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
const doctorOptions = computed(() => {
|
||||
return doctorList.value.map((name, index) => ({
|
||||
value: index, // 使用索引作为 value
|
||||
label: name // 使用名字作为 label
|
||||
}));
|
||||
});
|
||||
|
||||
/** 查询门诊记录列表 */
|
||||
function getList() {
|
||||
listOutpatienRecords(proxy.addDateRange(queryParams.value, dateRange.value)).then(response => {
|
||||
console.log(response);
|
||||
outpatienRecordsList.value = response.data.records;
|
||||
total.value = response.data.total;
|
||||
});
|
||||
listDoctorNames().then(response => {
|
||||
doctorList.value = response.data;
|
||||
});
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
console.log("123",queryParams.value)
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
getList();
|
||||
|
||||
</script>
|
||||
@@ -26,18 +26,18 @@
|
||||
<el-table-column prop="idCard" label="身份证号" width="180" />
|
||||
<el-table-column prop="busNo" label="病人ID" width="180" />
|
||||
<el-table-column prop="name" label="病人名称" width="180" />
|
||||
<el-table-column prop="genderEnum_text" label="性别" width="180" />
|
||||
<el-table-column prop="maritalStatusEnum_text" label="婚姻状况" width="180" /><!--:formatter="formatMaritalStatus"-->
|
||||
<el-table-column prop="genderEnum_enumText" label="性别" width="180" />
|
||||
<el-table-column prop="maritalStatusEnum_enumText" label="婚姻状况" width="180" /><!--:formatter="formatMaritalStatus"-->
|
||||
<el-table-column prop="nationalityCode" label="民族" width="180" />
|
||||
<el-table-column prop="birthDate" label="生日" width="160" />
|
||||
<el-table-column prop="phone" label="电话" width="140" />
|
||||
<el-table-column prop="bloodAbo_text" label="血型ABO" width="140" />
|
||||
<el-table-column prop="bloodRh_text" label="血型RH" width="140" />
|
||||
<el-table-column prop="bloodRh_enumText" label="血型RH" width="140" />
|
||||
<el-table-column prop="linkName" label="联系人" width="180" />
|
||||
<el-table-column prop="linkTelcom" label="联系人电话" width="180" />
|
||||
<el-table-column prop="linkRelationCode_text" label="联系人关系" width="180" />
|
||||
<el-table-column prop="linkRelationCode_enumText" label="联系人关系" width="180" />
|
||||
<el-table-column prop="address" label="家庭地址" width="180" />
|
||||
<el-table-column prop="prfsEnum_text" label="职业" width="180" />
|
||||
<el-table-column prop="prfsEnum_enumText" label="职业" width="180" />
|
||||
<el-table-column prop="workCompany" label="工作单位" width="180" />
|
||||
<el-table-column prop="organizationName" label="登记医院" width="180" />
|
||||
<el-table-column prop="deceasedDate" label="死亡时间" width="180" />
|
||||
@@ -238,7 +238,7 @@ const administrativegenderList = ref([]) //性别
|
||||
const bloodtypeaboList = ref([]) //血型abo
|
||||
const bloodtypearhList = ref([]) //血型RH
|
||||
const familyrelationshiptypeList = ref([]) //家庭关系
|
||||
const addressCom = ref("");
|
||||
const addressCom = ref(""); //地址
|
||||
|
||||
const options = ref(pcas); // 地区数据
|
||||
const selectedOptions = ref([]); // v-model 绑定的选中值
|
||||
@@ -295,7 +295,6 @@ const findNodeByCode = (data, code) => {
|
||||
/** 查询菜单列表 */
|
||||
function getList() {
|
||||
listPatient(queryParams.value).then(response => {
|
||||
console.log("res",response,queryParams.value)
|
||||
patientList.value = response.data.records
|
||||
total.value = response.data.total;
|
||||
});
|
||||
@@ -386,7 +385,6 @@ function handleUpdate(row) {
|
||||
const codes = convertAddressToCodes(selectedOptions1.value);
|
||||
selectedOptions.value = codes.filter(code => code !== null);
|
||||
isViewMode.value = false;
|
||||
console.log("form.value12",form.value)
|
||||
open.value = true;
|
||||
title.value = "修改菜单";
|
||||
}
|
||||
@@ -422,25 +420,18 @@ function submitForm() {
|
||||
if (form.value.busNo != undefined) {
|
||||
const newAddress = form.value.addressProvince+form.value.addressCity + form.value.addressDistrict + form.value.addressStreet + form.value.address
|
||||
if (addressCom.value !== newAddress) {
|
||||
console.log("6666666666", form.value.address,addressCom.value);
|
||||
// 如果不一致,清空并重新赋值
|
||||
form.value.address = newAddress;
|
||||
console.log("地址已更新为:", form.value.address);
|
||||
}
|
||||
console.log("form.value.up",form.value)
|
||||
}
|
||||
updatePatient(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
reset()
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
form.value.address = form.value.addressProvince+form.value.addressCity + form.value.addressDistrict + form.value.addressStreet + form.value.address
|
||||
console.log("form.value",form.value)
|
||||
addPatient(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
open.value = false;
|
||||
reset()
|
||||
getList();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ export default defineConfig (({mode, command}) => {
|
||||
},
|
||||
// vite 相关配置
|
||||
server: {
|
||||
port: 80,
|
||||
port: 81,
|
||||
host: true,
|
||||
open: true,
|
||||
proxy: {
|
||||
|
||||
Reference in New Issue
Block a user