# flow-page
**Repository Path**: sstscode/flow-page
## Basic Information
- **Project Name**: flow-page
- **Description**: 智能终端源码-流程页面
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2025-02-07
- **Last Updated**: 2025-02-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: ssts, flow-page
## README
# @sstscode/flow-page
Flow page management module for SSTS system, providing flow configuration and page rendering capabilities.
## Features
- Flow configuration management
- Dynamic page rendering based on flow configuration
- Device status checking integration
- Custom display information support
## Installation
```bash
npm install @sstscode/flow-page
```
## Usage
### Example Usage (Vue Composition API)
Here's a example showing how to use @sstscode/flow-page in a Vue application:
```vue
```
## API Documentation
### FlowPage Class
#### Methods
- `async getFlowConfigInUse(serveFile, flowDir, flowFileName, flowKey)`:
- `serveFile`: A function that loads a specific file from the server.
- `flowDir`: The directory where the flow configuration files are stored.
- `flowFileName`: The name of the flow configuration file.
- `flowKey`: The identifier for the flow configuration to be retrieved.
- `async getFlowPageByConfig(flowConfig, flowKey, pageName, customDisplayInfo, checkDeviceStatusMapper)`:
- `flowConfig`: Flow configuration object
- `flowKey`: Identifier for the flow
- `pageName`: Target page name
- `customDisplayInfo`: Custom display information object
- `checkDeviceStatusMapper`: Function mapper for device status checking (e.g., CheckDoFunctionMapper)
### Type Definitions
- `FlowConfig`: Flow configuration type
- `PageConfig`: Page configuration type
- `FlowPageEvent`: Flow page event type
- `CheckDeviceStatusMapper`: A type definition for a function mapper that maps function names to their implementations.
## Configuration
Create a flow configuration file following the Note.json format:
```json
{
"root": {
"flow": [
{
"use": "1-启用;0-不启用",
"key": "流程键",
"name": "流程名称",
"value": "以“/”分割的流程导航",
"comment": "默认的流程说明内容",
"remark": "备注",
"pages": [
{
"name": "页面名称",
"description": "单页面描述(匹配属性value中被分割后的部分,页面显示流程的当前步骤)",
"title": "标题内容(不为空时,覆盖原内容)",
"value": "为空时,读取流程节点的属性value",
"comment": "为空时,读取流程节点的属性comment",
"showInfo": "显示用户信息(1-显示;0-不显示)",
"msg": "页面加载时的文字提示内容(为空时,取默认值)",
"voice": "页面加载时的语音提示内容(为空时,取默认值)",
"currentUrl": "如果不是按正常的流程顺序跳转页面,假定当前页为另一页面,跳转到另一页面的下一页",
"checkDo": [
{
"function": "检查设备状态或调用设备驱动函数(主要用于“设备操作页面”(如获取信息、输密码等)和“结束页面”(完成、失败、错误等))",
"meaning": "含义",
"msg": "检测不通过或执行失败时,自定义文字提示内容(为空时,取函数指定的默认值)",
"voice": "检测不通过或执行失败时,自定义语音提示内容(为空时,无语音)"
}
]
}
]
}
]
}
}
```
### Example Configuration Files
- `IDCardSign.json`: Example flow configuration for ID card signing
```json
{
"root": {
"flow": [
{
"use": "1",
"key": "IDCardSign",
"name": "自助建档",
"value": "选择就诊方式",
"comment": "",
"remark": "标准",
"pages": [
{
"name": "SelectCardType",
"description": "选择就诊方式",
"title": "请选择就诊方式",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "请选择就诊方式"
}
]
}
]
}
}
```
- `RealTimeRegister.json`: Example flow configuration for real-time registration
```json
{
"root": {
"flow": [
{
"use": "1",
"key": "RealTimeRegister",
"name": "当日挂号",
"value": "获取信息/选择科室/选择医生/确认挂号信息/付款",
"comment": "",
"remark": "标准",
"pages": [
{
"name": "SelectCardType",
"description": "获取信息",
"title": "请选择就诊方式",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "请选择就诊方式",
"checkDo": [
{
"function": "CheckDeviceStatus('凭条打印机')",
"meaning": "检测设备状态",
"msg": "",
"voice": ""
}
]
},
{
"name": "ReadIDCardYB",
"description": "获取信息",
"title": "请插入您的医保卡",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "请插入您的医保卡"
},
{
"name": "InputSSCardPwd",
"description": "获取信息",
"title": "请输入您的医保卡密码",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "请输入您的医保卡密码",
"currentUrl": "ReadIDCard"
},
{
"name": "ReadIDCard",
"description": "获取信息",
"title": "[读身份证提示]",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "[读身份证提示]"
},
{
"name": "ConfirmIDCardInfo",
"description": "获取信息",
"title": "请确认您的身份信息",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "请确认您的身份信息"
},
{
"name": "RegisterSelectDepartment",
"description": "选择科室",
"title": "请选择挂号科室",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "请选择挂号科室"
},
{
"name": "RegisterSelectDoctor",
"description": "选择医生",
"title": "请选择挂号医生",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "请选择挂号医生"
},
{
"name": "ConfirmRegisterInfo",
"description": "确认挂号信息",
"title": "请确认您的挂号信息",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "请确认您的挂号信息"
},
{
"name": "SelectPayWay",
"description": "付款",
"title": "请选择支付方式",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "请选择支付方式"
},
{
"name": "Successful",
"description": "完成",
"title": "挂号成功,请取走您的卡和凭条",
"value": "",
"comment": "",
"showInfo": "",
"msg": "",
"voice": "挂号成功,请取走您的卡和凭条"
}
]
}
]
}
}
```
## Development
1. Clone the repository
2. Install dependencies: `npm install`
3. Build the project: `npm run build`
4. Run tests: `npm test`
## License
This project is licensed under the MIT License.