|
|
2 ヶ月 前 | |
|---|---|---|
| config | 3 ヶ月 前 | |
| hook | 2 ヶ月 前 | |
| service | 2 ヶ月 前 | |
| store | 3 ヶ月 前 | |
| utils | 3 ヶ月 前 | |
| .gitignore | 3 ヶ月 前 | |
| README.md | 3 ヶ月 前 | |
| index.ts | 3 ヶ月 前 | |
| package.json | 3 ヶ月 前 |
@kasite/uni-app-base 是智医科技(Kasite)公司开发的 uni-app 基础包,为医院信息化系统提供统一的基础功能模块。该包封装了小程序登录、网络请求、配置管理、工具函数等核心功能,支持微信小程序和公众号两种平台。
npm install @kasite/uni-app-base
import {
request,
useSmallProgramLogin,
useAppStatus,
useSetFrontEndConfig,
useGetUpdateManager,
usePreserMember,
frontEndConfig,
common
} from '@kasite/uni-app-base';
// 应用启动时的初始化流程
export default {
async onLaunch() {
// 1. 设置前端配置
await useSetFrontEndConfig();
// 2. 检查应用状态
await useAppStatus();
// 3. 检查版本更新
await useGetUpdateManager();
// 4. 获取就诊人信息
await usePreserMember();
// 5. 小程序登录
await useSmallProgramLogin(getApp());
}
}
// 获取域名信息
const domain = useDomain();
// 设置菜单
const menuList = await useSetMenuList(defaultMenu);
// 设置表单配置
await useSetFrontEndForm();
// 获取系统页面列表
await useGetSysAppPageList();
request.doPost(url, data, options?, complete?)发起 HTTP POST 请求,支持自动重试和加密传输
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
url |
string |
✅ | 请求地址 |
data |
object |
✅ | 请求数据 |
options |
object |
❌ | 请求选项 |
complete |
function |
❌ | 完成回调函数 |
Options 选项:
interface RequestOptions {
showLoading?: boolean; // 是否显示加载提示,默认 true
timeout?: number; // 超时时间(毫秒)
responseType?: string; // 响应类型
onChunkReceived?: function; // 分块传输监听
}
使用示例:
// 基础 POST 请求
const response = await request.doPost('/api/login', {
username: 'user',
password: 'pass'
});
// 带选项的请求
const response = await request.doPost('/api/data', data, {
showLoading: false,
timeout: 30000
});
request.doGet(url, data, options?)发起 HTTP GET 请求
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
url |
string |
✅ | 请求地址 |
data |
object |
✅ | 请求参数 |
options |
object |
❌ | 请求选项 |
使用示例:
// 基础 GET 请求
const response = await request.doGet('/api/user', {
userId: '123'
});
Hook 是本基础包的核心功能模块,提供了丰富的业务逻辑封装。
useSmallProgramLogin(app)小程序登录,支持微信小程序和公众号平台
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
app |
App.AppInstance |
✅ | 应用实例对象 |
返回值:
Promise<boolean> - 登录结果功能特性:
使用示例:
// 小程序登录
const loginResult = await useSmallProgramLogin(getApp());
if (loginResult) {
console.log('登录成功');
}
useAppStatus()检查应用状态并进行相应跳转
功能特性:
状态类型:
maintain - 维护状态,跳转到维护页面offline - 下线状态,跳转到下线页面使用示例:
// 应用启动时检查状态
await useAppStatus();
useDomain()获取当前域名信息,支持KasiteWeb路径处理
返回值:
string - 当前域名地址使用示例:
const domain = useDomain();
console.log('当前域名:', domain);
useSetFrontEndConfig()设置前端配置信息,初始化全局配置数据
功能特性:
使用示例:
// 应用启动时设置配置
await useSetFrontEndConfig();
useFrontEndConfigVersion()获取前端配置版本信息,控制缓存更新策略
功能特性:
使用示例:
// 检查配置版本
await useFrontEndConfigVersion();
useGetSysAppPageList()获取系统应用页面列表,转换为页面消息映射
功能特性:
使用示例:
// 获取系统页面列表
await useGetSysAppPageList();
useGetUpdateManager()检查小程序版本更新,自动处理更新流程
功能特性:
更新流程:
使用示例:
// 检查版本更新
const hasUpdate = await useGetUpdateManager();
usePreserMember()查询并保存就诊人数据,管理用户就诊信息
功能特性:
使用示例:
// 获取就诊人信息
const memberList = await usePreserMember();
useSetFrontEndForm()设置前端表单配置,管理动态表单
功能特性:
使用示例:
// 设置表单配置
await useSetFrontEndForm();
useSetMenuList(menu)设置应用菜单列表,支持线上线下菜单合并
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
menu |
array |
✅ | 本地菜单数组 |
功能特性:
使用示例:
// 设置菜单
const defaultMenu = [
{ name: '首页', path: '/pages/home' },
{ name: '预约', path: '/pages/appointment' }
];
const menuList = await useSetMenuList(defaultMenu);
工具函数库提供了丰富的通用功能,包括UI交互、数据验证、加密解密等。
common.showLoading(title?)显示加载提示,支持防重复显示
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
title |
string |
❌ | 加载提示文字 |
common.hideLoading()隐藏加载提示,智能处理多接口并发
common.showToast(msg, fn?, duration?)显示提示消息
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
msg |
string |
✅ | 提示消息内容 |
fn |
function |
❌ | 回调函数 |
duration |
number |
❌ | 显示时长(毫秒),默认1500 |
common.showModal(content, callBack?, data?)显示模态框
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
content |
string |
✅ | 模态框内容 |
callBack |
function |
❌ | 确认回调函数 |
data |
object |
❌ | 模态框配置 |
common.isEmpty(obj)判断对象是否为空
支持类型:
undefined / null / ''Array - 检查长度Object - 检查键数量common.isNotEmpty(obj)判断对象是否不为空(isEmpty的反向)
common.desEncrypt(message, key)DES 加密
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
message |
string |
✅ | 待加密内容 |
key |
string |
✅ | 加密密钥 |
common.desDecrypt(str, key, exportType?)DES 解密
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
str |
string |
✅ | 加密字符串 |
key |
string |
✅ | 解密密钥 |
exportType |
string |
❌ | 输出方式 |
// UI 交互
common.showLoading('加载中...');
common.showToast('操作成功', () => {
console.log('提示完成');
});
common.showModal('确定要删除吗?', () => {
console.log('用户确认删除');
});
// 数据验证
if (common.isNotEmpty(userData)) {
console.log('用户数据有效');
}
// 加密解密
const encrypted = common.desEncrypt('敏感数据', 'secretKey');
const decrypted = common.desDecrypt(encrypted, 'secretKey');
export const BASE_URL = 'https://cs001.kasitesoft.com/'; // 接口请求地址
export const IS_ENCRYPT = false; // 是否加密
export const TIMEOUT = 60000; // 超时时间
包含以下主要配置:
fixedAppjsGlobalData): 医院ID、配置密钥等固定信息appjsGlobalData): 医院信息、功能开关等可配置项webUiDiy): 各业务页面的个性化配置├── config/ # 配置文件
│ ├── config.ts # 基础配置
│ ├── frontEndConfig.ts # 前端配置
│ └── index.ts # 配置导出
├── hook/ # 自定义 Hook
│ ├── use-app-status/ # 应用状态管理
│ ├── use-domain/ # 域名管理
│ ├── use-front-end-config/ # 前端配置管理
│ ├── use-front-end-config-version/ # 前端配置版本管理
│ ├── use-get-sys-app-page-list/ # 系统页面列表管理
│ ├── use-get-update-manager/ # 更新管理
│ ├── use-preser-member/ # 就诊人管理
│ ├── use-set-front-end-form/ # 表单配置管理
│ ├── use-set-menu-list/ # 菜单管理
│ └── use-small-program-login/ # 小程序登录
├── service/ # 服务层
│ ├── base/ # 基础服务
│ ├── request.ts # 网络请求封装
│ └── handle.js # 请求处理
├── utils/ # 工具函数
│ ├── common.ts # 通用工具
│ ├── crypto-js.min.js # 加密库
│ └── sseParse.ts # SSE 解析
└── index.ts # 主入口文件
hook/ 目录下创建新的 Hook 文件夹hook/index.ts 中导出utils/common.ts 中添加函数utils/index.ts 中导出所有配置都集中在 config/ 目录下,支持:
如有问题或建议,请联系智医科技开发团队。
本项目为私有包,仅供智医科技内部使用。