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.
Files changed (44) hide show
  1. package/README.md +263 -0
  2. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850271.351149.dcm +0 -0
  3. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850274.917499.dcm +0 -0
  4. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850277.40207.dcm +0 -0
  5. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850308.974979.dcm +0 -0
  6. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850310.485717.dcm +0 -0
  7. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850313.23182.dcm +0 -0
  8. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850316.129502.dcm +0 -0
  9. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850343.942703.dcm +0 -0
  10. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850345.403408.dcm +0 -0
  11. package/dist/dicom/1.2.392.200036.9116.2.5.1.144.3427962750.1321850348.880170.dcm +0 -0
  12. package/dist/dicom/1.dcm +0 -0
  13. package/dist/dicom/2.dcm +0 -0
  14. package/dist/font/demo.css +539 -0
  15. package/dist/font/demo_index.html +2005 -0
  16. package/dist/font/iconfont.css +331 -0
  17. package/dist/font/iconfont.js +1 -0
  18. package/dist/font/iconfont.json +562 -0
  19. package/dist/font/iconfont.ttf +0 -0
  20. package/dist/font/iconfont.woff +0 -0
  21. package/dist/font/iconfont.woff2 +0 -0
  22. package/dist/gzkx-package.css +7 -0
  23. package/dist/index.cjs +7 -0
  24. package/dist/index.cjs.map +1 -0
  25. package/dist/index.d.ts +150 -0
  26. package/dist/index.mjs +14631 -0
  27. package/dist/index.mjs.map +1 -0
  28. package/dist/loginBg.jpg +0 -0
  29. package/dist/logo.png +0 -0
  30. package/dist/logotrp.png +0 -0
  31. package/dist/pacs/CT.svg +1 -0
  32. package/dist/pacs/abnormal.svg +1 -0
  33. package/dist/pacs/addFolder.svg +1 -0
  34. package/dist/pacs/addTemplate.svg +1 -0
  35. package/dist/pacs/deleteFolder.svg +1 -0
  36. package/dist/pacs/deleteTemplate.svg +1 -0
  37. package/dist/pacs/folder.svg +1 -0
  38. package/dist/pacs/normal.svg +1 -0
  39. package/dist/pacs/port.svg +1 -0
  40. package/dist/pacs/updateFolder.svg +1 -0
  41. package/dist/pacs/updateTemplate.svg +1 -0
  42. package/dist/pacs/xt.svg +1 -0
  43. package/dist/vite.svg +1 -0
  44. 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
Binary file
Binary file