feat(app): 初始化项目配置和页面结构

- 添加 .dockerignore 和 .env.example 配置文件
- 添加 .gitignore 忽略规则配置
- 创建服务端代理API路由(_file、_modules、_server)
- 集成 Ant Design Vue 组件库并配置SSR样式提取
- 定义API响应类型封装
- 创建基础布局组件(blank、console)
- 实现应用中心页面和组件(AppsCenter)
- 添加文章列表测试页面
- 配置控制台导航菜单结构
- 实现控制台头部组件
- 创建联系页面表单
This commit is contained in:
2026-01-17 18:23:37 +08:00
commit 5e26fdc7fb
439 changed files with 56219 additions and 0 deletions

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicAppointment, ClinicAppointmentParam } from './model';
/**
* 分页查询挂号
*/
export async function pageClinicAppointment(params: ClinicAppointmentParam) {
const res = await request.get<ApiResult<PageResult<ClinicAppointment>>>(
'/clinic/clinic-appointment/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询挂号列表
*/
export async function listClinicAppointment(params?: ClinicAppointmentParam) {
const res = await request.get<ApiResult<ClinicAppointment[]>>(
'/clinic/clinic-appointment',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加挂号
*/
export async function addClinicAppointment(data: ClinicAppointment) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-appointment',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改挂号
*/
export async function updateClinicAppointment(data: ClinicAppointment) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-appointment',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除挂号
*/
export async function removeClinicAppointment(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-appointment/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除挂号
*/
export async function removeBatchClinicAppointment(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-appointment/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询挂号
*/
export async function getClinicAppointment(id: number) {
const res = await request.get<ApiResult<ClinicAppointment>>(
'/clinic/clinic-appointment/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,47 @@
import type { PageParam } from '@/api';
/**
* 挂号
*/
export interface ClinicAppointment {
// 主键ID
id?: number;
// 类型
type?: number;
// 就诊原因
reason?: string;
// 挂号时间
evaluateTime?: string;
// 医生
doctorId?: number;
// 医生名称
doctorName?: string;
// 医生职位
doctorPosition?: string;
// 患者
userId?: number;
// 患者名称
nickname?: string;
// 患者联系电话
phone?: string;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 是否删除
isDelete?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 挂号搜索条件
*/
export interface ClinicAppointmentParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicDoctorApply, ClinicDoctorApplyParam } from './model';
/**
* 分页查询医生入驻申请
*/
export async function pageClinicDoctorApply(params: ClinicDoctorApplyParam) {
const res = await request.get<ApiResult<PageResult<ClinicDoctorApply>>>(
'/clinic/clinic-doctor-apply/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询医生入驻申请列表
*/
export async function listClinicDoctorApply(params?: ClinicDoctorApplyParam) {
const res = await request.get<ApiResult<ClinicDoctorApply[]>>(
'/clinic/clinic-doctor-apply',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加医生入驻申请
*/
export async function addClinicDoctorApply(data: ClinicDoctorApply) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-doctor-apply',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改医生入驻申请
*/
export async function updateClinicDoctorApply(data: ClinicDoctorApply) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-doctor-apply',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除医生入驻申请
*/
export async function removeClinicDoctorApply(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-doctor-apply/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除医生入驻申请
*/
export async function removeBatchClinicDoctorApply(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-doctor-apply/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询医生入驻申请
*/
export async function getClinicDoctorApply(id: number) {
const res = await request.get<ApiResult<ClinicDoctorApply>>(
'/clinic/clinic-doctor-apply/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,75 @@
import type { PageParam } from '@/api';
/**
* 医生入驻申请
*/
export interface ClinicDoctorApply {
// 主键ID
applyId?: number;
// 类型 0医生
type?: number;
// 用户ID
userId?: number;
// 姓名
realName?: string;
// 性别 1男 2女
gender?: number;
// 手机号
mobile?: string;
// 客户名称
dealerName?: string;
// 证件号码
idCard?: string;
// 生日
birthDate?: string;
// 区分职称等级(如主治医师、副主任医师)
professionalTitle?: string;
// 工作单位
workUnit?: string;
// 执业资格核心凭证
practiceLicense?: string;
// 限定可执业科室或疾病类型
practiceScope?: string;
// 开始工作时间
startWorkDate?: string;
// 简历
resume?: string;
// 使用 JSON 存储多个证件文件路径(如执业证、学历证)
certificationFiles?: string;
// 详细地址
address?: string;
// 签约价格
money?: string;
// 推荐人用户ID
refereeId?: number;
// 申请方式(10需后台审核 20无需审核)
applyType?: number;
// 审核状态 (10待审核 20审核通过 30驳回)
applyStatus?: number;
// 申请时间
applyTime?: string;
// 审核时间
auditTime?: string;
// 合同时间
contractTime?: string;
// 过期时间
expirationTime?: string;
// 驳回原因
rejectReason?: string;
// 备注
comments?: string;
// 商城ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 医生入驻申请搜索条件
*/
export interface ClinicDoctorApplyParam extends PageParam {
applyId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicDoctorMedicalRecord, ClinicDoctorMedicalRecordParam } from './model';
/**
* 分页查询医疗记录
*/
export async function pageClinicDoctorMedicalRecord(params: ClinicDoctorMedicalRecordParam) {
const res = await request.get<ApiResult<PageResult<ClinicDoctorMedicalRecord>>>(
'/clinic/clinic-doctor-medical-record/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询医疗记录列表
*/
export async function listClinicDoctorMedicalRecord(params?: ClinicDoctorMedicalRecordParam) {
const res = await request.get<ApiResult<ClinicDoctorMedicalRecord[]>>(
'/clinic/clinic-doctor-medical-record',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加医疗记录
*/
export async function addClinicDoctorMedicalRecord(data: ClinicDoctorMedicalRecord) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-doctor-medical-record',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改医疗记录
*/
export async function updateClinicDoctorMedicalRecord(data: ClinicDoctorMedicalRecord) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-doctor-medical-record',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除医疗记录
*/
export async function removeClinicDoctorMedicalRecord(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-doctor-medical-record/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除医疗记录
*/
export async function removeBatchClinicDoctorMedicalRecord(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-doctor-medical-record/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询医疗记录
*/
export async function getClinicDoctorMedicalRecord(id: number) {
const res = await request.get<ApiResult<ClinicDoctorMedicalRecord>>(
'/clinic/clinic-doctor-medical-record/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,61 @@
import type { PageParam } from '@/api';
/**
* 医疗记录
*/
export interface ClinicDoctorMedicalRecord {
// 主键ID
id?: number;
// 买家用户ID
userId?: number;
// 订单编号
orderNo?: string;
// 分销商用户id(一级)
firstUserId?: number;
// 分销商用户id(二级)
secondUserId?: number;
// 分销商用户id(三级)
thirdUserId?: number;
// 分销佣金(一级)
firstMoney?: string;
// 分销佣金(二级)
secondMoney?: string;
// 分销佣金(三级)
thirdMoney?: string;
// 单价
price?: string;
// 订单总金额
orderPrice?: string;
// 结算金额
settledPrice?: string;
// 换算成度
degreePrice?: string;
// 实发金额
payPrice?: string;
// 税率
rate?: string;
// 结算月份
month?: string;
// 订单是否失效(0未失效 1已失效)
isInvalid?: number;
// 佣金结算(0未结算 1已结算)
isSettled?: number;
// 结算时间
settleTime?: string;
// 备注
comments?: string;
// 商城ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 医疗记录搜索条件
*/
export interface ClinicDoctorMedicalRecordParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicDoctorUser, ClinicDoctorUserParam } from './model';
/**
* 分页查询分销商用户记录表
*/
export async function pageClinicDoctorUser(params: ClinicDoctorUserParam) {
const res = await request.get<ApiResult<PageResult<ClinicDoctorUser>>>(
'/clinic/clinic-doctor-user/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询分销商用户记录表列表
*/
export async function listClinicDoctorUser(params?: ClinicDoctorUserParam) {
const res = await request.get<ApiResult<ClinicDoctorUser[]>>(
'/clinic/clinic-doctor-user',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加分销商用户记录表
*/
export async function addClinicDoctorUser(data: ClinicDoctorUser) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-doctor-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改分销商用户记录表
*/
export async function updateClinicDoctorUser(data: ClinicDoctorUser) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-doctor-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除分销商用户记录表
*/
export async function removeClinicDoctorUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-doctor-user/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除分销商用户记录表
*/
export async function removeBatchClinicDoctorUser(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-doctor-user/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询分销商用户记录表
*/
export async function getClinicDoctorUser(id: number) {
const res = await request.get<ApiResult<ClinicDoctorUser>>(
'/clinic/clinic-doctor-user/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,55 @@
import type { PageParam } from '@/api';
/**
* 分销商用户记录表
*/
export interface ClinicDoctorUser {
// 主键ID
id?: number;
// 类型 0经销商 1企业 2集团
type?: number;
// 自增ID
userId?: number;
// 姓名
realName?: string;
// 手机号
phone?: string;
// 部门
departmentId?: number;
// 专业领域
specialty?: string;
// 职务级别
position?: string;
// 执业资格
qualification?: string;
// 医生简介
introduction?: string;
// 挂号费
consultationFee?: string;
// 工作年限
workYears?: number;
// 问诊人数
consultationCount?: number;
// 专属二维码
qrcode?: string;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 是否删除
isDelete?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 分销商用户记录表搜索条件
*/
export interface ClinicDoctorUserParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicMedicalHistory, ClinicMedicalHistoryParam } from './model';
/**
* 分页查询病例
*/
export async function pageClinicMedicalHistory(params: ClinicMedicalHistoryParam) {
const res = await request.get<ApiResult<PageResult<ClinicMedicalHistory>>>(
'/clinic/clinic-medical-history/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询病例列表
*/
export async function listClinicMedicalHistory(params?: ClinicMedicalHistoryParam) {
const res = await request.get<ApiResult<ClinicMedicalHistory[]>>(
'/clinic/clinic-medical-history',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加病例
*/
export async function addClinicMedicalHistory(data: ClinicMedicalHistory) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-medical-history',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改病例
*/
export async function updateClinicMedicalHistory(data: ClinicMedicalHistory) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-medical-history',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除病例
*/
export async function removeClinicMedicalHistory(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-medical-history/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除病例
*/
export async function removeBatchClinicMedicalHistory(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-medical-history/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询病例
*/
export async function getClinicMedicalHistory(id: number) {
const res = await request.get<ApiResult<ClinicMedicalHistory>>(
'/clinic/clinic-medical-history/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,61 @@
import type { PageParam } from '@/api';
/**
* 病例
*/
export interface ClinicMedicalHistory {
// 主键ID
id?: number;
// 买家用户ID
userId?: number;
// 订单编号
orderNo?: string;
// 分销商用户id(一级)
firstUserId?: number;
// 分销商用户id(二级)
secondUserId?: number;
// 分销商用户id(三级)
thirdUserId?: number;
// 分销佣金(一级)
firstMoney?: string;
// 分销佣金(二级)
secondMoney?: string;
// 分销佣金(三级)
thirdMoney?: string;
// 单价
price?: string;
// 订单总金额
orderPrice?: string;
// 结算金额
settledPrice?: string;
// 换算成度
degreePrice?: string;
// 实发金额
payPrice?: string;
// 税率
rate?: string;
// 结算月份
month?: string;
// 订单是否失效(0未失效 1已失效)
isInvalid?: number;
// 佣金结算(0未结算 1已结算)
isSettled?: number;
// 结算时间
settleTime?: string;
// 备注
comments?: string;
// 商城ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 病例搜索条件
*/
export interface ClinicMedicalHistoryParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicMedicine, ClinicMedicineParam } from './model';
/**
* 分页查询药品库
*/
export async function pageClinicMedicine(params: ClinicMedicineParam) {
const res = await request.get<ApiResult<PageResult<ClinicMedicine>>>(
'/clinic/clinic-medicine/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询药品库列表
*/
export async function listClinicMedicine(params?: ClinicMedicineParam) {
const res = await request.get<ApiResult<ClinicMedicine[]>>(
'/clinic/clinic-medicine',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加药品库
*/
export async function addClinicMedicine(data: ClinicMedicine) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-medicine',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改药品库
*/
export async function updateClinicMedicine(data: ClinicMedicine) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-medicine',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除药品库
*/
export async function removeClinicMedicine(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-medicine/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除药品库
*/
export async function removeBatchClinicMedicine(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-medicine/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询药品库
*/
export async function getClinicMedicine(id: number) {
const res = await request.get<ApiResult<ClinicMedicine>>(
'/clinic/clinic-medicine/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,43 @@
import type { PageParam } from '@/api';
/**
* 药品库
*/
export interface ClinicMedicine {
// 主键ID
id?: number;
// 药名
name?: string;
// 拼音
pinyin?: string;
// 分类(如“清热解毒”、“补气养血”)
category?: string;
// 规格(如“饮片”、“颗粒”)
specification?: string;
// 单位(如“克”、“袋”)
unit?: string;
// 描述
content?: string;
// 单价
pricePerUnit?: string;
// 是否活跃
isActive?: number;
// 买家用户ID
userId?: number;
// 备注
comments?: string;
// 商城ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 药品库搜索条件
*/
export interface ClinicMedicineParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicMedicineInout, ClinicMedicineInoutParam } from './model';
/**
* 分页查询出入库
*/
export async function pageClinicMedicineInout(params: ClinicMedicineInoutParam) {
const res = await request.get<ApiResult<PageResult<ClinicMedicineInout>>>(
'/clinic/clinic-medicine-inout/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询出入库列表
*/
export async function listClinicMedicineInout(params?: ClinicMedicineInoutParam) {
const res = await request.get<ApiResult<ClinicMedicineInout[]>>(
'/clinic/clinic-medicine-inout',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加出入库
*/
export async function addClinicMedicineInout(data: ClinicMedicineInout) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-medicine-inout',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改出入库
*/
export async function updateClinicMedicineInout(data: ClinicMedicineInout) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-medicine-inout',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除出入库
*/
export async function removeClinicMedicineInout(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-medicine-inout/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除出入库
*/
export async function removeBatchClinicMedicineInout(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-medicine-inout/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询出入库
*/
export async function getClinicMedicineInout(id: number) {
const res = await request.get<ApiResult<ClinicMedicineInout>>(
'/clinic/clinic-medicine-inout/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,61 @@
import type { PageParam } from '@/api';
/**
* 出入库
*/
export interface ClinicMedicineInout {
// 主键ID
id?: number;
// 买家用户ID
userId?: number;
// 订单编号
orderNo?: string;
// 分销商用户id(一级)
firstUserId?: number;
// 分销商用户id(二级)
secondUserId?: number;
// 分销商用户id(三级)
thirdUserId?: number;
// 分销佣金(一级)
firstMoney?: string;
// 分销佣金(二级)
secondMoney?: string;
// 分销佣金(三级)
thirdMoney?: string;
// 单价
price?: string;
// 订单总金额
orderPrice?: string;
// 结算金额
settledPrice?: string;
// 换算成度
degreePrice?: string;
// 实发金额
payPrice?: string;
// 税率
rate?: string;
// 结算月份
month?: string;
// 订单是否失效(0未失效 1已失效)
isInvalid?: number;
// 佣金结算(0未结算 1已结算)
isSettled?: number;
// 结算时间
settleTime?: string;
// 备注
comments?: string;
// 商城ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 出入库搜索条件
*/
export interface ClinicMedicineInoutParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicMedicineStock, ClinicMedicineStockParam } from './model';
/**
* 分页查询药品库存
*/
export async function pageClinicMedicineStock(params: ClinicMedicineStockParam) {
const res = await request.get<ApiResult<PageResult<ClinicMedicineStock>>>(
'/clinic/clinic-medicine-stock/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询药品库存列表
*/
export async function listClinicMedicineStock(params?: ClinicMedicineStockParam) {
const res = await request.get<ApiResult<ClinicMedicineStock[]>>(
'/clinic/clinic-medicine-stock',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加药品库存
*/
export async function addClinicMedicineStock(data: ClinicMedicineStock) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-medicine-stock',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改药品库存
*/
export async function updateClinicMedicineStock(data: ClinicMedicineStock) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-medicine-stock',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除药品库存
*/
export async function removeClinicMedicineStock(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-medicine-stock/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除药品库存
*/
export async function removeBatchClinicMedicineStock(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-medicine-stock/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询药品库存
*/
export async function getClinicMedicineStock(id: number) {
const res = await request.get<ApiResult<ClinicMedicineStock>>(
'/clinic/clinic-medicine-stock/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,35 @@
import type { PageParam } from '@/api';
/**
* 药品库存
*/
export interface ClinicMedicineStock {
// 主键ID
id?: number;
// 药品
medicineId?: number;
// 库存数量
stockQuantity?: number;
// 最小库存预警
minStockLevel?: number;
// 上次更新时间
lastUpdated?: string;
// 买家用户ID
userId?: number;
// 备注
comments?: string;
// 商城ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 药品库存搜索条件
*/
export interface ClinicMedicineStockParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicOrder, ClinicOrderParam } from './model';
/**
* 分页查询处方订单
*/
export async function pageClinicOrder(params: ClinicOrderParam) {
const res = await request.get<ApiResult<PageResult<ClinicOrder>>>(
'/clinic/clinic-order/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询处方订单列表
*/
export async function listClinicOrder(params?: ClinicOrderParam) {
const res = await request.get<ApiResult<ClinicOrder[]>>(
'/clinic/clinic-order',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加处方订单
*/
export async function addClinicOrder(data: ClinicOrder) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-order',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改处方订单
*/
export async function updateClinicOrder(data: ClinicOrder) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-order',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除处方订单
*/
export async function removeClinicOrder(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-order/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除处方订单
*/
export async function removeBatchClinicOrder(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-order/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询处方订单
*/
export async function getClinicOrder(id: number) {
const res = await request.get<ApiResult<ClinicOrder>>(
'/clinic/clinic-order/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,167 @@
import type { PageParam } from '@/api';
/**
* 处方订单
*/
export interface ClinicOrder {
// 订单号
orderId?: number;
// 订单编号
orderNo?: string;
// 订单类型0商城订单 1预定订单/外卖 2会员卡
type?: number;
// 订单标题
title?: string;
// 快递/自提
deliveryType?: number;
// 下单渠道0小程序预定 1俱乐部训练场 3活动订场
channel?: number;
// 微信支付交易号号
transactionId?: string;
// 微信退款订单号
refundOrder?: string;
// 商户ID
merchantId?: number;
// 商户名称
merchantName?: string;
// 商户编号
merchantCode?: string;
// 使用的优惠券id
couponId?: number;
// 使用的会员卡id
cardId?: string;
// 关联管理员id
adminId?: number;
// 核销管理员id
confirmId?: number;
// IC卡号
icCard?: string;
// 真实姓名
realName?: string;
// 关联收货地址
addressId?: number;
// 收货地址
address?: string;
//
addressLat?: string;
//
addressLng?: string;
// 买家留言
buyerRemarks?: string;
// 自提店铺id
selfTakeMerchantId?: number;
// 自提店铺
selfTakeMerchantName?: string;
// 配送开始时间
sendStartTime?: string;
// 配送结束时间
sendEndTime?: string;
// 发货店铺id
expressMerchantId?: number;
// 发货店铺
expressMerchantName?: string;
// 订单总额
totalPrice?: string;
// 减少的金额使用VIP会员折扣、优惠券抵扣、优惠券折扣后减去的价格
reducePrice?: string;
// 实际付款
payPrice?: string;
// 用于统计
price?: string;
// 价钱,用于积分赠送
money?: string;
// 取消时间
cancelTime?: string;
// 取消原因
cancelReason?: string;
// 退款金额
refundMoney?: string;
// 教练价格
coachPrice?: string;
// 购买数量
totalNum?: number;
// 教练id
coachId?: number;
// 商品ID
formId?: number;
// 支付的用户id
payUserId?: number;
// 0余额支付1微信支付2支付宝支付3银联支付4现金支付5POS机支付6免费7积分支付
payType?: number;
// 微信支付子类型JSAPI小程序支付NATIVE扫码支付
wechatPayType?: string;
// 0余额支付1微信支付2支付宝支付3银联支付4现金支付5POS机支付6免费7积分支付
friendPayType?: number;
// 0未付款1已付款
payStatus?: string;
// 0未使用1已完成2已取消3取消中4退款申请中5退款被拒绝6退款成功7客户端申请退款
orderStatus?: number;
// 发货状态(10未发货 20已发货 30部分发货)
deliveryStatus?: number;
// 无需发货备注
deliveryNote?: string;
// 发货时间
deliveryTime?: string;
// 评价状态(0未评价 1已评价)
evaluateStatus?: number;
// 评价时间
evaluateTime?: string;
// 优惠类型0无、1抵扣优惠券、2折扣优惠券、3、VIP月卡、4VIP年卡5VIP次卡、6VIP会员卡、7IC月卡、8IC年卡、9IC次卡、10IC会员卡、11免费订单、12VIP充值卡、13IC充值卡、14VIP季卡、15IC季卡
couponType?: number;
// 优惠说明
couponDesc?: string;
// 二维码地址,保存订单号,支付成功后才生成
qrcode?: string;
// vip月卡年卡、ic月卡年卡回退次数
returnNum?: number;
// vip充值回退金额
returnMoney?: string;
// 预约详情开始时间数组
startTime?: string;
// 是否已开具发票0未开发票1已开发票2不能开具发票
isInvoice?: string;
// 发票流水号
invoiceNo?: string;
// 商家留言
merchantRemarks?: string;
// 支付时间
payTime?: string;
// 退款时间
refundTime?: string;
// 申请退款时间
refundApplyTime?: string;
// 过期时间
expirationTime?: string;
// 自提码
selfTakeCode?: string;
// 是否已收到赠品
hasTakeGift?: string;
// 对账情况0=未对账1=已对账3=已对账金额对不上4=未查询到该订单
checkBill?: number;
// 订单是否已结算(0未结算 1已结算)
isSettled?: number;
// 系统版本号 0当前版本 value=其他版本
version?: number;
// 用户id
userId?: number;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 修改时间
updateTime?: string;
// 创建时间
createTime?: string;
}
/**
* 处方订单搜索条件
*/
export interface ClinicOrderParam extends PageParam {
orderId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicPatientUser, ClinicPatientUserParam } from './model';
/**
* 分页查询患者
*/
export async function pageClinicPatientUser(params: ClinicPatientUserParam) {
const res = await request.get<ApiResult<PageResult<ClinicPatientUser>>>(
'/clinic/clinic-patient-user/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询患者列表
*/
export async function listClinicPatientUser(params?: ClinicPatientUserParam) {
const res = await request.get<ApiResult<ClinicPatientUser[]>>(
'/clinic/clinic-patient-user',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加患者
*/
export async function addClinicPatientUser(data: ClinicPatientUser) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-patient-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改患者
*/
export async function updateClinicPatientUser(data: ClinicPatientUser) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-patient-user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除患者
*/
export async function removeClinicPatientUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-patient-user/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除患者
*/
export async function removeBatchClinicPatientUser(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-patient-user/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询患者
*/
export async function getClinicPatientUser(id: number) {
const res = await request.get<ApiResult<ClinicPatientUser>>(
'/clinic/clinic-patient-user/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,49 @@
import type { PageParam } from '@/api';
/**
* 患者
*/
export interface ClinicPatientUser {
// 主键ID
id?: number;
// 类型 0经销商 1企业 2集团
type?: number;
// 自增ID
userId?: number;
// 姓名
realName?: string;
// 性别
sex?: string;
// 手机号
phone?: string;
// 年龄
age?: number;
// 身高
height?: number;
// 体重
weight?: number;
// 过敏史
allergyHistory?: string;
// 专属二维码
qrcode?: string;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 是否删除
isDelete?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 患者搜索条件
*/
export interface ClinicPatientUserParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,112 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicPrescription, ClinicPrescriptionParam } from './model';
/**
* 分页查询处方主表
*/
export async function pageClinicPrescription(params: ClinicPrescriptionParam) {
const res = await request.get<ApiResult<PageResult<ClinicPrescription>>>(
'/clinic/clinic-prescription/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询处方主表
列表
*/
export async function listClinicPrescription(params?: ClinicPrescriptionParam) {
const res = await request.get<ApiResult<ClinicPrescription[]>>(
'/clinic/clinic-prescription',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加处方主表
*/
export async function addClinicPrescription(data: ClinicPrescription) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-prescription',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改处方主表
*/
export async function updateClinicPrescription(data: ClinicPrescription) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-prescription',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除处方主表
*/
export async function removeClinicPrescription(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-prescription/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除处方主表
*/
export async function removeBatchClinicPrescription(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-prescription/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询处方主表
*/
export async function getClinicPrescription(id: number) {
const res = await request.get<ApiResult<ClinicPrescription>>(
'/clinic/clinic-prescription/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,57 @@
import type { PageParam } from '@/api';
/**
* 处方主表
*/
export interface ClinicPrescription {
// 主键ID
id?: number;
// 患者
userId?: number;
// 医生
doctorId?: number;
// 订单编号
orderNo?: string;
// 关联就诊表
visitRecordId?: number;
// 处方类型 0中药 1西药
prescriptionType?: number;
// 诊断结果
diagnosis?: string;
// 治疗方案
treatmentPlan?: string;
// 煎药说明
decoctionInstructions?: string;
// 订单总金额
orderPrice?: string;
// 单价
price?: string;
// 实付金额
payPrice?: string;
// 订单是否失效(0未失效 1已失效)
isInvalid?: number;
// 结算(0未结算 1已结算)
isSettled?: number;
// 结算时间
settleTime?: string;
// 状态, 0正常, 1已完成2已支付3已取消
status?: number;
// 备注
comments?: string;
// 商城ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 处方主表
搜索条件
*/
export interface ClinicPrescriptionParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,112 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicPrescriptionItem, ClinicPrescriptionItemParam } from './model';
/**
* 分页查询处方明细表
*/
export async function pageClinicPrescriptionItem(params: ClinicPrescriptionItemParam) {
const res = await request.get<ApiResult<PageResult<ClinicPrescriptionItem>>>(
'/clinic/clinic-prescription-item/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询处方明细表
列表
*/
export async function listClinicPrescriptionItem(params?: ClinicPrescriptionItemParam) {
const res = await request.get<ApiResult<ClinicPrescriptionItem[]>>(
'/clinic/clinic-prescription-item',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加处方明细表
*/
export async function addClinicPrescriptionItem(data: ClinicPrescriptionItem) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-prescription-item',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改处方明细表
*/
export async function updateClinicPrescriptionItem(data: ClinicPrescriptionItem) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-prescription-item',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除处方明细表
*/
export async function removeClinicPrescriptionItem(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-prescription-item/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除处方明细表
*/
export async function removeBatchClinicPrescriptionItem(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-prescription-item/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询处方明细表
*/
export async function getClinicPrescriptionItem(id: number) {
const res = await request.get<ApiResult<ClinicPrescriptionItem>>(
'/clinic/clinic-prescription-item/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,49 @@
import type { PageParam } from '@/api';
/**
* 处方明细表
*/
export interface ClinicPrescriptionItem {
// 自增ID
id?: number;
// 关联处方
prescriptionId?: number;
// 订单编号
prescriptionNo?: string;
// 关联药品
medicineId?: number;
// 剂量如“10g”
dosage?: string;
// 用法频率(如“每日三次”)
usageFrequency?: string;
// 服用天数
days?: number;
// 购买数量
amount?: number;
// 单价
unitPrice?: string;
// 数量
quantity?: number;
// 排序号
sortNumber?: number;
// 备注
comments?: string;
// 用户id
userId?: number;
// 租户id
tenantId?: number;
// 更新时间
updateTime?: string;
// 创建时间
createTime?: string;
}
/**
* 处方明细表
搜索条件
*/
export interface ClinicPrescriptionItemParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicReport, ClinicReportParam } from './model';
/**
* 分页查询报告
*/
export async function pageClinicReport(params: ClinicReportParam) {
const res = await request.get<ApiResult<PageResult<ClinicReport>>>(
'/clinic/clinic-report/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询报告列表
*/
export async function listClinicReport(params?: ClinicReportParam) {
const res = await request.get<ApiResult<ClinicReport[]>>(
'/clinic/clinic-report',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加报告
*/
export async function addClinicReport(data: ClinicReport) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-report',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改报告
*/
export async function updateClinicReport(data: ClinicReport) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-report',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除报告
*/
export async function removeClinicReport(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-report/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除报告
*/
export async function removeBatchClinicReport(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-report/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询报告
*/
export async function getClinicReport(id: number) {
const res = await request.get<ApiResult<ClinicReport>>(
'/clinic/clinic-report/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,61 @@
import type { PageParam } from '@/api';
/**
* 报告
*/
export interface ClinicReport {
// 主键ID
id?: number;
// 买家用户ID
userId?: number;
// 订单编号
orderNo?: string;
// 分销商用户id(一级)
firstUserId?: number;
// 分销商用户id(二级)
secondUserId?: number;
// 分销商用户id(三级)
thirdUserId?: number;
// 分销佣金(一级)
firstMoney?: string;
// 分销佣金(二级)
secondMoney?: string;
// 分销佣金(三级)
thirdMoney?: string;
// 单价
price?: string;
// 订单总金额
orderPrice?: string;
// 结算金额
settledPrice?: string;
// 换算成度
degreePrice?: string;
// 实发金额
payPrice?: string;
// 税率
rate?: string;
// 结算月份
month?: string;
// 订单是否失效(0未失效 1已失效)
isInvalid?: number;
// 佣金结算(0未结算 1已结算)
isSettled?: number;
// 结算时间
settleTime?: string;
// 备注
comments?: string;
// 商城ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 报告搜索条件
*/
export interface ClinicReportParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ClinicVisitRecord, ClinicVisitRecordParam } from './model';
/**
* 分页查询病例
*/
export async function pageClinicVisitRecord(params: ClinicVisitRecordParam) {
const res = await request.get<ApiResult<PageResult<ClinicVisitRecord>>>(
'/clinic/clinic-visit-record/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询病例列表
*/
export async function listClinicVisitRecord(params?: ClinicVisitRecordParam) {
const res = await request.get<ApiResult<ClinicVisitRecord[]>>(
'/clinic/clinic-visit-record',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加病例
*/
export async function addClinicVisitRecord(data: ClinicVisitRecord) {
const res = await request.post<ApiResult<unknown>>(
'/clinic/clinic-visit-record',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改病例
*/
export async function updateClinicVisitRecord(data: ClinicVisitRecord) {
const res = await request.put<ApiResult<unknown>>(
'/clinic/clinic-visit-record',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除病例
*/
export async function removeClinicVisitRecord(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-visit-record/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除病例
*/
export async function removeBatchClinicVisitRecord(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/clinic/clinic-visit-record/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询病例
*/
export async function getClinicVisitRecord(id: number) {
const res = await request.get<ApiResult<ClinicVisitRecord>>(
'/clinic/clinic-visit-record/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,61 @@
import type { PageParam } from '@/api';
/**
* 病例
*/
export interface ClinicVisitRecord {
// 主键ID
id?: number;
// 买家用户ID
userId?: number;
// 订单编号
orderNo?: string;
// 分销商用户id(一级)
firstUserId?: number;
// 分销商用户id(二级)
secondUserId?: number;
// 分销商用户id(三级)
thirdUserId?: number;
// 分销佣金(一级)
firstMoney?: string;
// 分销佣金(二级)
secondMoney?: string;
// 分销佣金(三级)
thirdMoney?: string;
// 单价
price?: string;
// 订单总金额
orderPrice?: string;
// 结算金额
settledPrice?: string;
// 换算成度
degreePrice?: string;
// 实发金额
payPrice?: string;
// 税率
rate?: string;
// 结算月份
month?: string;
// 订单是否失效(0未失效 1已失效)
isInvalid?: number;
// 佣金结算(0未结算 1已结算)
isSettled?: number;
// 结算时间
settleTime?: string;
// 备注
comments?: string;
// 商城ID
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 病例搜索条件
*/
export interface ClinicVisitRecordParam extends PageParam {
id?: number;
keywords?: string;
}