gzkx-package 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +263 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850271.351149.dcm +0 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850274.917499.dcm +0 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850277.40207.dcm +0 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850308.974979.dcm +0 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850310.485717.dcm +0 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850313.23182.dcm +0 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850316.129502.dcm +0 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850343.942703.dcm +0 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850345.403408.dcm +0 -0
- package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850348.880170.dcm +0 -0
- package/dist/dicom/1.dcm +0 -0
- package/dist/dicom/2.dcm +0 -0
- package/dist/font/demo.css +539 -0
- package/dist/font/demo_index.html +2005 -0
- package/dist/font/iconfont.css +331 -0
- package/dist/font/iconfont.js +1 -0
- package/dist/font/iconfont.json +562 -0
- package/dist/font/iconfont.ttf +0 -0
- package/dist/font/iconfont.woff +0 -0
- package/dist/font/iconfont.woff2 +0 -0
- package/dist/gzkx-package.css +7 -0
- package/dist/index.cjs +7 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +150 -0
- package/dist/index.mjs +14631 -0
- package/dist/index.mjs.map +1 -0
- package/dist/loginBg.jpg +0 -0
- package/dist/logo.png +0 -0
- package/dist/logotrp.png +0 -0
- package/dist/pacs/CT.svg +1 -0
- package/dist/pacs/abnormal.svg +1 -0
- package/dist/pacs/addFolder.svg +1 -0
- package/dist/pacs/addTemplate.svg +1 -0
- package/dist/pacs/deleteFolder.svg +1 -0
- package/dist/pacs/deleteTemplate.svg +1 -0
- package/dist/pacs/folder.svg +1 -0
- package/dist/pacs/normal.svg +1 -0
- package/dist/pacs/port.svg +1 -0
- package/dist/pacs/updateFolder.svg +1 -0
- package/dist/pacs/updateTemplate.svg +1 -0
- package/dist/pacs/xt.svg +1 -0
- package/dist/vite.svg +1 -0
- package/package.json +111 -0
package/README.md
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
# CommonPage 组件库
|
|
2
|
+
|
|
3
|
+
一个基于 React 和 Ant Design 的通用页面组件库,提供完整的 CRUD 功能。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install gzkx-package
|
|
9
|
+
# 或
|
|
10
|
+
yarn add gzkx-package
|
|
11
|
+
# 或
|
|
12
|
+
pnpm add gzkx-package
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 使用
|
|
16
|
+
|
|
17
|
+
### 基础用法
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
import React from 'react';
|
|
21
|
+
import { CommonPage } from 'gzkx-package';
|
|
22
|
+
import 'gzkx-package/style';
|
|
23
|
+
|
|
24
|
+
// 引入样式文件
|
|
25
|
+
import 'gzkx-package/dist/style.css';
|
|
26
|
+
|
|
27
|
+
function App() {
|
|
28
|
+
const searchFormConfig = [
|
|
29
|
+
{
|
|
30
|
+
type: 'input',
|
|
31
|
+
label: '名称',
|
|
32
|
+
name: 'name',
|
|
33
|
+
placeholder: '请输入名称',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: 'select',
|
|
37
|
+
label: '状态',
|
|
38
|
+
name: 'status',
|
|
39
|
+
options: [
|
|
40
|
+
{ label: '启用', value: '1' },
|
|
41
|
+
{ label: '禁用', value: '0' },
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
const addFormConfig = [
|
|
47
|
+
{
|
|
48
|
+
type: 'input',
|
|
49
|
+
label: '名称',
|
|
50
|
+
name: 'name',
|
|
51
|
+
rules: [{ required: true, message: '请输入名称' }],
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const tableColumns = [
|
|
56
|
+
{
|
|
57
|
+
title: 'ID',
|
|
58
|
+
dataIndex: 'id',
|
|
59
|
+
key: 'id',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
title: '名称',
|
|
63
|
+
dataIndex: 'name',
|
|
64
|
+
key: 'name',
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
|
|
68
|
+
const URL = {
|
|
69
|
+
search: '/api/search',
|
|
70
|
+
add: '/api/add',
|
|
71
|
+
edit: '/api/edit',
|
|
72
|
+
delete: '/api/delete',
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<CommonPage
|
|
77
|
+
searchFormConfig={searchFormConfig}
|
|
78
|
+
addFormConfig={addFormConfig}
|
|
79
|
+
tableColumns={tableColumns}
|
|
80
|
+
URL={URL}
|
|
81
|
+
/>
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export default App;
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 使用 ref 调用组件方法
|
|
89
|
+
|
|
90
|
+
```tsx
|
|
91
|
+
import React, { useRef } from 'react';
|
|
92
|
+
import { CommonPage, CommonPageHandle } from 'gzkx-package';
|
|
93
|
+
|
|
94
|
+
function App() {
|
|
95
|
+
const commonPageRef = useRef<CommonPageHandle>(null);
|
|
96
|
+
|
|
97
|
+
const handleRefresh = () => {
|
|
98
|
+
commonPageRef.current?.reload();
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const handleSetFormValues = () => {
|
|
102
|
+
commonPageRef.current?.setFieldsValue({
|
|
103
|
+
name: '测试名称',
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
return (
|
|
108
|
+
<>
|
|
109
|
+
<button onClick={handleRefresh}>刷新列表</button>
|
|
110
|
+
<button onClick={handleSetFormValues}>设置表单值</button>
|
|
111
|
+
<CommonPage
|
|
112
|
+
ref={commonPageRef}
|
|
113
|
+
searchFormConfig={searchFormConfig}
|
|
114
|
+
addFormConfig={addFormConfig}
|
|
115
|
+
tableColumns={tableColumns}
|
|
116
|
+
URL={URL}
|
|
117
|
+
/>
|
|
118
|
+
</>
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## API
|
|
124
|
+
|
|
125
|
+
### CommonPage Props
|
|
126
|
+
|
|
127
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
128
|
+
|------|------|------|--------|
|
|
129
|
+
| searchFormConfig | 搜索表单配置 | FormItemConfig[] \| null | null |
|
|
130
|
+
| addFormConfig | 新增/编辑表单配置 | AddItemConfig[] | - |
|
|
131
|
+
| tableColumns | 表格列配置 | any[] | - |
|
|
132
|
+
| URL | API 接口地址配置 | { search?: string; add?: string; edit?: string; delete?: string; view?: string } | - |
|
|
133
|
+
| topHeight | 顶部高度 | number | - |
|
|
134
|
+
| isnopage | 是否不分页 | boolean | false |
|
|
135
|
+
| tableHeight | 表格高度 | number | 150 |
|
|
136
|
+
| actionWidth | 操作列宽度 | number | 150 |
|
|
137
|
+
| delText | 删除按钮文本 | string | '删除' |
|
|
138
|
+
| editText | 编辑按钮文本 | string | '编辑' |
|
|
139
|
+
| viewText | 查看按钮文本 | string | '查看' |
|
|
140
|
+
| CustomOperations | 自定义操作列 | React.ReactNode \| ((record: any) => React.ReactNode) | - |
|
|
141
|
+
| PropOtherButton | 其他按钮 | React.ReactNode \| ((record: any) => React.ReactNode) | - |
|
|
142
|
+
| CustomModalFooter | 自定义模态框底部 | ((record: any) => React.ReactNode) | - |
|
|
143
|
+
| addisdisabled | 是否禁用新增按钮 | { isdisabled: boolean; message: string } | { isdisabled: false, message: '' } |
|
|
144
|
+
| postParams | POST 请求参数 | { addParams?: any; delParams?: any; editParams?: any; searchParams?: any } | - |
|
|
145
|
+
| limit | 权限控制 | { addLimit?: boolean; delLimit?: boolean; editLimit?: boolean; searchLimit?: boolean } | { addLimit: true, delLimit: true, editLimit: true, searchLimit: true } |
|
|
146
|
+
| proplist | 假数据(用于测试) | any[] | - |
|
|
147
|
+
| editdclickback | 编辑/新增点击回调 | (record?: any) => void | - |
|
|
148
|
+
| oneditFormChange | 表单值变化回调 | (changedValues: any, allValues: any) => void | - |
|
|
149
|
+
| onRowClick | 行点击回调 | (record: any, event: any) => void | - |
|
|
150
|
+
| tableId | 表格ID(用于保存表格配置) | string | - |
|
|
151
|
+
| isaddtab | 是否使用 Tab 表单 | boolean | false |
|
|
152
|
+
|
|
153
|
+
### CommonPageHandle Methods
|
|
154
|
+
|
|
155
|
+
| 方法 | 说明 | 类型 |
|
|
156
|
+
|------|------|------|
|
|
157
|
+
| getList | 获取列表数据 | (parentParams?: any) => Promise<void> |
|
|
158
|
+
| setFieldsValue | 设置表单值 | (values: any) => void |
|
|
159
|
+
| getFieldsValue | 获取表单值 | () => any |
|
|
160
|
+
| reload | 重新加载列表 | () => void |
|
|
161
|
+
|
|
162
|
+
## 注意事项
|
|
163
|
+
|
|
164
|
+
### 依赖要求
|
|
165
|
+
|
|
166
|
+
本组件库依赖以下 peer dependencies,请确保在使用前已安装:
|
|
167
|
+
|
|
168
|
+
- `react` >= 18.0.0
|
|
169
|
+
- `react-dom` >= 18.0.0
|
|
170
|
+
- `antd` >= 5.0.0
|
|
171
|
+
- `lodash` >= 4.17.0
|
|
172
|
+
- `dayjs` >= 1.11.0
|
|
173
|
+
- `pinyin-pro` >= 3.0.0
|
|
174
|
+
- `axios` >= 1.0.0
|
|
175
|
+
|
|
176
|
+
### API 请求配置
|
|
177
|
+
|
|
178
|
+
组件内部使用 `commonPost` 函数进行 API 请求。由于组件依赖项目特定的 API 函数,您需要:
|
|
179
|
+
|
|
180
|
+
1. **提供 `commonPost` 函数**:组件需要从 `@/api/common` 导入 `commonPost` 函数。如果您的项目结构不同,需要:
|
|
181
|
+
- 创建对应的 API 文件,或
|
|
182
|
+
- 修改组件中的导入路径
|
|
183
|
+
|
|
184
|
+
2. **提供 `auth` 工具**:组件需要从 `@/utils/auth` 导入 `auth` 对象。如果您的项目结构不同,需要:
|
|
185
|
+
- 创建对应的工具文件,或
|
|
186
|
+
- 修改组件中的导入路径
|
|
187
|
+
|
|
188
|
+
3. **API 响应格式**:确保 API 返回符合以下格式:
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
{
|
|
192
|
+
code: 200,
|
|
193
|
+
msg: 'success',
|
|
194
|
+
data: {
|
|
195
|
+
list: [], // 或直接是数组
|
|
196
|
+
pageNum: 1,
|
|
197
|
+
pageSize: 15,
|
|
198
|
+
total: 0
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 项目结构要求
|
|
204
|
+
|
|
205
|
+
组件使用路径别名 `@/` 来导入依赖。如果您的项目结构不同,需要:
|
|
206
|
+
|
|
207
|
+
1. 在 `tsconfig.json` 中配置路径别名:
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"compilerOptions": {
|
|
211
|
+
"paths": {
|
|
212
|
+
"@/*": ["src/*"]
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
2. 确保以下文件存在:
|
|
219
|
+
- `src/api/common.ts` - 包含 `commonPost` 函数
|
|
220
|
+
- `src/utils/auth.ts` - 包含 `auth` 对象
|
|
221
|
+
- `src/utils/request.ts` - 包含 `post` 和 `get` 函数
|
|
222
|
+
- `src/utils/pycode.ts` - 包含拼音转换函数
|
|
223
|
+
- `src/api/table.ts` - 包含表格配置相关的 API 函数
|
|
224
|
+
|
|
225
|
+
### 业务组件依赖
|
|
226
|
+
|
|
227
|
+
组件还依赖以下业务组件(如果使用相关功能):
|
|
228
|
+
- `AreaSelector` - 地址选择器
|
|
229
|
+
- `ImageUploadComponent` - 图片上传组件
|
|
230
|
+
- `FileUploadComponent` - 文件上传组件
|
|
231
|
+
- `RichText` - 富文本编辑器
|
|
232
|
+
|
|
233
|
+
如果您的项目中没有这些组件,需要:
|
|
234
|
+
1. 创建对应的组件,或
|
|
235
|
+
2. 在表单配置中避免使用相关类型(`area`、`upload`、`file`、`richText`)
|
|
236
|
+
|
|
237
|
+
### 样式引入
|
|
238
|
+
|
|
239
|
+
请确保在使用组件前引入样式文件:
|
|
240
|
+
|
|
241
|
+
```tsx
|
|
242
|
+
import 'gzkx-package/dist/style.css';
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## 开发
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
# 安装依赖
|
|
249
|
+
npm install
|
|
250
|
+
|
|
251
|
+
# 开发模式
|
|
252
|
+
npm run dev
|
|
253
|
+
|
|
254
|
+
# 构建库
|
|
255
|
+
npm run build:lib
|
|
256
|
+
|
|
257
|
+
# 发布到 npm
|
|
258
|
+
npm publish
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## License
|
|
262
|
+
|
|
263
|
+
MIT
|
package/dist/dicom/1.dcm
ADDED
|
Binary file
|
package/dist/dicom/2.dcm
ADDED
|
Binary file
|