pit-docs-mcp 1.0.2

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 (203) hide show
  1. package/README.md +180 -0
  2. package/dist/codegen.d.ts +5 -0
  3. package/dist/codegen.d.ts.map +1 -0
  4. package/dist/codegen.js +112 -0
  5. package/dist/constants.d.ts +6 -0
  6. package/dist/constants.d.ts.map +1 -0
  7. package/dist/constants.js +10 -0
  8. package/dist/index.d.ts +3 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +115 -0
  11. package/dist/resources.d.ts +3 -0
  12. package/dist/resources.d.ts.map +1 -0
  13. package/dist/resources.js +80 -0
  14. package/dist/tools.d.ts +3 -0
  15. package/dist/tools.d.ts.map +1 -0
  16. package/dist/tools.js +258 -0
  17. package/dist/utils.d.ts +26 -0
  18. package/dist/utils.d.ts.map +1 -0
  19. package/dist/utils.js +198 -0
  20. package/docs/codegen/pit-simplify-web.md +686 -0
  21. package/docs/pitBusinessUi/README.md +102 -0
  22. package/docs/pitBusinessUi/add-date-picker.md +57 -0
  23. package/docs/pitBusinessUi/add-operation.md +64 -0
  24. package/docs/pitBusinessUi/batch-download.md +44 -0
  25. package/docs/pitBusinessUi/bill-tree-dialog.md +82 -0
  26. package/docs/pitBusinessUi/collapse.md +88 -0
  27. package/docs/pitBusinessUi/date-time-picker.md +74 -0
  28. package/docs/pitBusinessUi/design-report-explain.md +47 -0
  29. package/docs/pitBusinessUi/dialog.md +89 -0
  30. package/docs/pitBusinessUi/dic-radio.md +67 -0
  31. package/docs/pitBusinessUi/dic.md +78 -0
  32. package/docs/pitBusinessUi/document-preview.md +54 -0
  33. package/docs/pitBusinessUi/drawer.md +67 -0
  34. package/docs/pitBusinessUi/editor.md +63 -0
  35. package/docs/pitBusinessUi/expand-search-form.md +65 -0
  36. package/docs/pitBusinessUi/file-preview.md +56 -0
  37. package/docs/pitBusinessUi/flow-table-status.md +47 -0
  38. package/docs/pitBusinessUi/icon-box.md +74 -0
  39. package/docs/pitBusinessUi/image-preview.md +55 -0
  40. package/docs/pitBusinessUi/image.md +53 -0
  41. package/docs/pitBusinessUi/input-formatter.md +100 -0
  42. package/docs/pitBusinessUi/input-number.md +47 -0
  43. package/docs/pitBusinessUi/input-select.md +68 -0
  44. package/docs/pitBusinessUi/input.md +56 -0
  45. package/docs/pitBusinessUi/jm-preview.md +47 -0
  46. package/docs/pitBusinessUi/json-editor.md +71 -0
  47. package/docs/pitBusinessUi/loading-btn.md +64 -0
  48. package/docs/pitBusinessUi/monaco.md +82 -0
  49. package/docs/pitBusinessUi/money-input.md +59 -0
  50. package/docs/pitBusinessUi/pagination.md +70 -0
  51. package/docs/pitBusinessUi/password-strength.md +59 -0
  52. package/docs/pitBusinessUi/positive-number.md +63 -0
  53. package/docs/pitBusinessUi/preview-image.md +62 -0
  54. package/docs/pitBusinessUi/preview-office.md +50 -0
  55. package/docs/pitBusinessUi/preview.md +57 -0
  56. package/docs/pitBusinessUi/quill.md +52 -0
  57. package/docs/pitBusinessUi/runflow-btn.md +52 -0
  58. package/docs/pitBusinessUi/search-date-picker.md +60 -0
  59. package/docs/pitBusinessUi/select-bid-list.md +66 -0
  60. package/docs/pitBusinessUi/select-color.md +38 -0
  61. package/docs/pitBusinessUi/select-contract-tree.md +41 -0
  62. package/docs/pitBusinessUi/select-dept.md +38 -0
  63. package/docs/pitBusinessUi/select-project-unit.md +48 -0
  64. package/docs/pitBusinessUi/select-section-tree.md +45 -0
  65. package/docs/pitBusinessUi/select-section.md +66 -0
  66. package/docs/pitBusinessUi/select-string.md +60 -0
  67. package/docs/pitBusinessUi/select-system-unit.md +41 -0
  68. package/docs/pitBusinessUi/select-user-by-role.md +51 -0
  69. package/docs/pitBusinessUi/switch.md +43 -0
  70. package/docs/pitBusinessUi/table-contract.md +66 -0
  71. package/docs/pitBusinessUi/table-operation.md +81 -0
  72. package/docs/pitBusinessUi/table.md +75 -0
  73. package/docs/pitBusinessUi/tag.md +86 -0
  74. package/docs/pitBusinessUi/textarea.md +65 -0
  75. package/docs/pitBusinessUi/transfer-direct.md +57 -0
  76. package/docs/pitBusinessUi/transfer-user-project.md +78 -0
  77. package/docs/pitBusinessUi/transfer.md +68 -0
  78. package/docs/pitBusinessUi/tree-lazy.md +72 -0
  79. package/docs/pitBusinessUi/tree-select-name.md +59 -0
  80. package/docs/pitBusinessUi/tree-select-plus.md +106 -0
  81. package/docs/pitBusinessUi/tree-select.md +86 -0
  82. package/docs/pitBusinessUi/upload-avatar.md +60 -0
  83. package/docs/pitBusinessUi/upload-file-dialog.md +86 -0
  84. package/docs/pitBusinessUi/upload-file.md +77 -0
  85. package/docs/pitBusinessUi/upload-list-card.md +62 -0
  86. package/docs/pitBusinessUi/upload-table.md +77 -0
  87. package/docs/pitBusinessUi/user-transform.md +72 -0
  88. package/docs/pitBusinessUi/utils.md +272 -0
  89. package/docs/pitBusinessUtils/README.md +144 -0
  90. package/docs/pitBusinessUtils/auth.md +170 -0
  91. package/docs/pitBusinessUtils/clipboard.md +72 -0
  92. package/docs/pitBusinessUtils/filePreview.md +60 -0
  93. package/docs/pitBusinessUtils/formValidate.md +75 -0
  94. package/docs/pitBusinessUtils/generateTitle.md +49 -0
  95. package/docs/pitBusinessUtils/get-page-title.md +65 -0
  96. package/docs/pitBusinessUtils/i18n.md +130 -0
  97. package/docs/pitBusinessUtils/jwks.md +82 -0
  98. package/docs/pitBusinessUtils/oss.md +391 -0
  99. package/docs/pitBusinessUtils/passwordValidate.md +120 -0
  100. package/docs/pitBusinessUtils/pit.md +496 -0
  101. package/docs/pitBusinessUtils/print.md +126 -0
  102. package/docs/pitBusinessUtils/request.md +137 -0
  103. package/docs/pitBusinessUtils/scroll-to.md +68 -0
  104. package/docs/pitBusinessUtils/utils.md +762 -0
  105. package/docs/pitBusinessUtils/validate.md +224 -0
  106. package/docs/pitElementUi/alert.md +238 -0
  107. package/docs/pitElementUi/avatar.md +147 -0
  108. package/docs/pitElementUi/backtop.md +60 -0
  109. package/docs/pitElementUi/badge.md +120 -0
  110. package/docs/pitElementUi/base-tabs.md +73 -0
  111. package/docs/pitElementUi/border.md +135 -0
  112. package/docs/pitElementUi/breadcrumb.md +44 -0
  113. package/docs/pitElementUi/button.md +301 -0
  114. package/docs/pitElementUi/calendar.md +66 -0
  115. package/docs/pitElementUi/card.md +170 -0
  116. package/docs/pitElementUi/carousel.md +212 -0
  117. package/docs/pitElementUi/cascader.md +1966 -0
  118. package/docs/pitElementUi/checkbox.md +283 -0
  119. package/docs/pitElementUi/collapse.md +131 -0
  120. package/docs/pitElementUi/color-picker.md +123 -0
  121. package/docs/pitElementUi/color.md +244 -0
  122. package/docs/pitElementUi/container.md +240 -0
  123. package/docs/pitElementUi/custom-theme.md +131 -0
  124. package/docs/pitElementUi/date-picker.md +448 -0
  125. package/docs/pitElementUi/datetime-picker.md +254 -0
  126. package/docs/pitElementUi/descriptions.md +191 -0
  127. package/docs/pitElementUi/dialog-header.md +53 -0
  128. package/docs/pitElementUi/dialog.md +239 -0
  129. package/docs/pitElementUi/divider.md +61 -0
  130. package/docs/pitElementUi/drawer.md +307 -0
  131. package/docs/pitElementUi/dropdown.md +308 -0
  132. package/docs/pitElementUi/empty.md +61 -0
  133. package/docs/pitElementUi/font-family.md +90 -0
  134. package/docs/pitElementUi/form-base.md +1239 -0
  135. package/docs/pitElementUi/form-item-checkbox-group.md +48 -0
  136. package/docs/pitElementUi/form-item-date.md +60 -0
  137. package/docs/pitElementUi/form-item-dic.md +18 -0
  138. package/docs/pitElementUi/form-item-editor.md +16 -0
  139. package/docs/pitElementUi/form-item-input-money.md +19 -0
  140. package/docs/pitElementUi/form-item-input-number.md +20 -0
  141. package/docs/pitElementUi/form-item-input.md +18 -0
  142. package/docs/pitElementUi/form-item-radio-group.md +21 -0
  143. package/docs/pitElementUi/form-item-select.md +21 -0
  144. package/docs/pitElementUi/form-item-switch.md +15 -0
  145. package/docs/pitElementUi/form-item-textarea.md +20 -0
  146. package/docs/pitElementUi/form-item-tree-select.md +27 -0
  147. package/docs/pitElementUi/form-item-upload-card.md +18 -0
  148. package/docs/pitElementUi/form-item-upload.md +1 -0
  149. package/docs/pitElementUi/form-two.md +102 -0
  150. package/docs/pitElementUi/form.md +952 -0
  151. package/docs/pitElementUi/i18n.md +228 -0
  152. package/docs/pitElementUi/icon-custom.md +99 -0
  153. package/docs/pitElementUi/icon-line-custom.md +12 -0
  154. package/docs/pitElementUi/icon.md +28 -0
  155. package/docs/pitElementUi/image.md +178 -0
  156. package/docs/pitElementUi/infiniteScroll.md +87 -0
  157. package/docs/pitElementUi/input-number.md +197 -0
  158. package/docs/pitElementUi/input-select.md +1 -0
  159. package/docs/pitElementUi/input.md +800 -0
  160. package/docs/pitElementUi/installation.md +9 -0
  161. package/docs/pitElementUi/layout-column.md +376 -0
  162. package/docs/pitElementUi/layout-tree.md +715 -0
  163. package/docs/pitElementUi/layout.md +354 -0
  164. package/docs/pitElementUi/link.md +66 -0
  165. package/docs/pitElementUi/loading.md +208 -0
  166. package/docs/pitElementUi/menu.md +403 -0
  167. package/docs/pitElementUi/message-box.md +326 -0
  168. package/docs/pitElementUi/message.md +219 -0
  169. package/docs/pitElementUi/notification.md +311 -0
  170. package/docs/pitElementUi/page-header.md +40 -0
  171. package/docs/pitElementUi/pagination.md +200 -0
  172. package/docs/pitElementUi/popconfirm.md +60 -0
  173. package/docs/pitElementUi/popover.md +167 -0
  174. package/docs/pitElementUi/progress.md +178 -0
  175. package/docs/pitElementUi/quickstart.md +290 -0
  176. package/docs/pitElementUi/radio.md +211 -0
  177. package/docs/pitElementUi/rate.md +135 -0
  178. package/docs/pitElementUi/result.md +76 -0
  179. package/docs/pitElementUi/select-tree.md +661 -0
  180. package/docs/pitElementUi/select.md +586 -0
  181. package/docs/pitElementUi/skeleton.md +316 -0
  182. package/docs/pitElementUi/slider.md +237 -0
  183. package/docs/pitElementUi/steps.md +154 -0
  184. package/docs/pitElementUi/switch.md +142 -0
  185. package/docs/pitElementUi/table.md +4023 -0
  186. package/docs/pitElementUi/tabs.md +303 -0
  187. package/docs/pitElementUi/tag.md +203 -0
  188. package/docs/pitElementUi/time-picker.md +199 -0
  189. package/docs/pitElementUi/timeline.md +154 -0
  190. package/docs/pitElementUi/tooltip.md +177 -0
  191. package/docs/pitElementUi/transfer.md +249 -0
  192. package/docs/pitElementUi/transition.md +155 -0
  193. package/docs/pitElementUi/tree.md +1157 -0
  194. package/docs/pitElementUi/typography.md +151 -0
  195. package/docs/pitElementUi/upload-table.md +39 -0
  196. package/docs/pitElementUi/upload.md +392 -0
  197. package/docs/pitElementUi/virtual-list.md +154 -0
  198. package/docs/pitElementUi/virtual-select-tree.md +243 -0
  199. package/docs/pitElementUi/virtual-select.md +451 -0
  200. package/docs/pitElementUi/virtual-table-column.md +1 -0
  201. package/docs/pitElementUi/virtual-table.md +490 -0
  202. package/docs/pitElementUi/virtual-tree.md +119 -0
  203. package/package.json +33 -0
@@ -0,0 +1,65 @@
1
+ # pit-textarea 文本域
2
+
3
+ 对 `el-input` `type="textarea"` 的封装,统一 `maxlength`、`rows`、`show-word-limit`,均可从全局配置读取默认值。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | value / v-model | 绑定值 | String / Number | `""` |
10
+ | rows | 显示行数(未传则读取 `$Business.textareaRow`) | Number | — |
11
+ | maxlength | 最大字符数(未传则读取 `$Business.textareaMaxlength`) | Number | — |
12
+ | autosize | 自适应高度配置 | Object | `{ minRows: 2, maxRows: 8 }` |
13
+ | disabled | 是否禁用 | Boolean | `false` |
14
+ | readonly | 是否只读 | Boolean | `false` |
15
+ | clearable | 是否可清空 | Boolean | `true` |
16
+ | placeholder | 占位文本 | String | — |
17
+
18
+ > 其余 `el-input` 属性通过 `v-bind="$attrs"` 透传。
19
+
20
+ ## Events
21
+
22
+ | 事件名 | 说明 | 参数 |
23
+ | --- | --- | --- |
24
+ | input | 值变化(v-model) | `String / Number` |
25
+ | change | 值变化 | `String / Number` |
26
+
27
+ ## 示例
28
+
29
+ ### 基础用法
30
+
31
+ ```vue
32
+ <pit-textarea v-model="form.remark" placeholder="请输入备注" />
33
+ ```
34
+
35
+ ### 指定行数与最大长度
36
+
37
+ ```vue
38
+ <pit-textarea v-model="form.desc" :rows="5" :maxlength="500" />
39
+ ```
40
+
41
+ ### 固定高度(禁用自适应)
42
+
43
+ ```vue
44
+ <pit-textarea v-model="form.content" :autosize="false" :rows="8" />
45
+ ```
46
+
47
+ ### 只读展示
48
+
49
+ ```vue
50
+ <pit-textarea v-model="form.content" readonly />
51
+ ```
52
+
53
+ ### 修改全局默认配置
54
+
55
+ ```js
56
+ Vue.use(PitBusinessUI, {
57
+ textareaMaxlength: 200,
58
+ textareaRow: 4
59
+ })
60
+ ```
61
+
62
+ ## 注意事项
63
+
64
+ - 组件已默认开启 `show-word-limit`,不需要额外配置。
65
+ - `autosize` 默认为 `{ minRows: 2, maxRows: 8 }`;如需禁用自适应,传 `:autosize="false"`。
@@ -0,0 +1,57 @@
1
+ # pit-transfer-direct 直接穿梭框
2
+
3
+ 功能更丰富的穿梭框,左侧支持标签页切换(流程中用户 / 全部用户 / 常用人员),右侧展示已选人员,支持单击直接选中、双击快速添加。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | value / v-model | 已选项数组 | Array | `[]` |
10
+ | treeData | 左侧树形数据 | Array | `[]` |
11
+ | selectedRoot | 初始已选根节点数据 | Object | `{}` |
12
+ | lazyLoad | 树懒加载函数(`el-tree` load 签名) | Function | `null` |
13
+ | rowSelectable | 节点是否可选回调 `(data) => Boolean` | Function | — |
14
+ | isHiddenTab | 是否隐藏标签页(直接显示树,不显示 tab) | Boolean | `true` |
15
+ | isInProcess | 是否展示"流程中用户"标签页 | Boolean | `false` |
16
+ | processParams | 获取流程中用户的参数(`{ procDefId, activityId }`) | Object | `{}` |
17
+ | isShowCommonUser | 是否展示"常用人员"标签页 | Boolean | `false` |
18
+ | multiple | 是否多选 | Boolean | `false` |
19
+ | defaultExpandAll | 是否默认展开所有节点 | Boolean | `true` |
20
+ | lazy | 是否懒加载 | Boolean | `false` |
21
+ | iconFun | 节点图标回调 `(data) => String` | Function | `() => ''` |
22
+
23
+ ## Events
24
+
25
+ | 事件名 | 说明 | 参数 |
26
+ | --- | --- | --- |
27
+ | input | 值变化(v-model) | `Array` |
28
+ | changeTab | 切换标签页时触发 | `tabName: String` |
29
+
30
+ ## Slots
31
+
32
+ | 插槽名 | 说明 |
33
+ | --- | --- |
34
+ | search | 左侧顶部搜索区域 |
35
+
36
+ ## 示例
37
+
38
+ ```vue
39
+ <pit-transfer-direct
40
+ v-model="selectedUsers"
41
+ :tree-data="userTree"
42
+ :multiple="true"
43
+ :is-in-process="true"
44
+ :process-params="{ procDefId: procId, activityId: actId }">
45
+ <template #search>
46
+ <el-input v-model="keyword" placeholder="搜索姓名" @keyup.enter.native="doSearch">
47
+ <el-button slot="append" icon="el-icon-search" @click="doSearch" />
48
+ </el-input>
49
+ </template>
50
+ </pit-transfer-direct>
51
+ ```
52
+
53
+ ## 注意事项
54
+
55
+ - `isHiddenTab="true"`(默认)时直接展示单棵树;设为 `false` 时显示标签页。
56
+ - 双击节点(`treeDblclick`)在单选模式下可直接确认选中。
57
+ - 常用人员数据通过内部 API 获取(`reqApiGetCommonUserListByBusiness`),使用该功能需确保后端接口可用。
@@ -0,0 +1,78 @@
1
+ # pit-transfer-user-project 用户选择器(弹窗)
2
+
3
+ 将 `PitTransferDirect` 封装在弹窗内,通过输入框触发打开,选中人员后回显名称、提交 ID(逗号字符串)。支持单选/多选,内部自动拉取项目用户树。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | value / v-model | 已选人员 ID(逗号分隔字符串,多选时回显名称拼接) | String / Array | `""` |
10
+ | placeholder | 输入框占位文字 | String | 国际化默认值 |
11
+ | disabled | 是否禁用 | Boolean | `false` |
12
+ | multiple | 是否多选 | Boolean | `false` |
13
+ | clearable | 是否在输入框显示清空图标 | Boolean | `true` |
14
+ | title | 弹窗标题 | String | 国际化"选择用户" |
15
+ | isApprove | 是否在审批界面使用(影响内部逻辑) | Boolean | `false` |
16
+ | acquiesceVal | 导入数据时的默认显示名(无 ID 但需回显) | String | `""` |
17
+ | isDisabled | 与 disabled 相同,兼容旧用法 | Boolean | `false` |
18
+ | isInProcess | 是否显示"流程中用户"标签页 | Boolean | `false` |
19
+ | processParams | 获取流程中用户的参数 | Object | `{ procDefId: '', activityId: '' }` |
20
+ | isShowCommonUser | 是否显示"常用人员"标签页 | Boolean | `false` |
21
+ | rowSelectable | 节点是否可选回调 `(data) => Boolean` | Function | — |
22
+ | iconFun | 节点图标回调 `(data) => String` | Function | — |
23
+
24
+ ## Events
25
+
26
+ | 事件名 | 说明 | 参数 |
27
+ | --- | --- | --- |
28
+ | input | 值变化(v-model) | `value`(ID 字符串) |
29
+
30
+ ## Slots
31
+
32
+ | 插槽名 | 说明 | 作用域 |
33
+ | --- | --- | --- |
34
+ | activator | 自定义触发区域(替换默认输入框) | `{ open }` |
35
+
36
+ ## 示例
37
+
38
+ ### 单选
39
+
40
+ ```vue
41
+ <pit-transfer-user-project
42
+ v-model="form.userId"
43
+ title="选择负责人" />
44
+ ```
45
+
46
+ ### 多选(选多人,逗号分隔)
47
+
48
+ ```vue
49
+ <pit-transfer-user-project
50
+ v-model="form.userIds"
51
+ :multiple="true"
52
+ title="选择审批人" />
53
+ ```
54
+
55
+ ### 流程场景(显示流程中进行人)
56
+
57
+ ```vue
58
+ <pit-transfer-user-project
59
+ v-model="form.nextUserId"
60
+ :is-in-process="true"
61
+ :process-params="{ procDefId: procId, activityId: nodeId }"
62
+ title="选择下一审批人" />
63
+ ```
64
+
65
+ ### 自定义触发器
66
+
67
+ ```vue
68
+ <pit-transfer-user-project v-model="form.userId">
69
+ <template #activator="{ open }">
70
+ <el-button @click="open">选择人员</el-button>
71
+ </template>
72
+ </pit-transfer-user-project>
73
+ ```
74
+
75
+ ## 注意事项
76
+
77
+ - 组件内部自动调用 `getUserSelectorProject` API 获取项目用户树,使用前请确保登录态和 `localStorage.projectId` 存在。
78
+ - `value` 回显时,若为导入数据(无匹配 ID),可通过 `acquiesceVal` 传入显示名。
@@ -0,0 +1,68 @@
1
+ # pit-transfer 树形穿梭框
2
+
3
+ 左侧显示树形结构(支持搜索过滤),右侧展示已选项列表,支持逐项删除或清空。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | value / v-model | 已选节点 ID 数组 | Array | `[]` |
10
+ | treeData | 树形数据 | Array | `[]` |
11
+ | props | 字段映射(value/label/children) | Object | `{ value: 'id', label: 'fullName', children: 'children' }` |
12
+ | height | 穿梭框总高度 | String | `"380px"` |
13
+ | loading | 左侧树是否加载中 | Boolean | `false` |
14
+ | type | 业务类型标识(预留,用于区分不同业务场景) | String | `""` |
15
+ | limit | 最多可选数量(`"all"` 表示无限制) | String / Number | `"all"` |
16
+
17
+ ## Events
18
+
19
+ | 事件名 | 说明 | 参数 |
20
+ | --- | --- | --- |
21
+ | input | 值变化(v-model) | `Array`(已选 ID 数组) |
22
+ | change | 值变化 | `Array` |
23
+
24
+ ## 示例
25
+
26
+ ### 基础用法
27
+
28
+ ```vue
29
+ <template>
30
+ <pit-transfer
31
+ v-model="selectedIds"
32
+ :tree-data="orgTree"
33
+ :loading="treeLoading" />
34
+ </template>
35
+
36
+ <script>
37
+ export default {
38
+ data() {
39
+ return {
40
+ selectedIds: [],
41
+ orgTree: [],
42
+ treeLoading: false
43
+ }
44
+ },
45
+ async created() {
46
+ this.treeLoading = true
47
+ const res = await this.$api.getOrgTree()
48
+ this.orgTree = res.data
49
+ this.treeLoading = false
50
+ }
51
+ }
52
+ </script>
53
+ ```
54
+
55
+ ### 限制选择数量
56
+
57
+ ```vue
58
+ <pit-transfer
59
+ v-model="selectedIds"
60
+ :tree-data="userTree"
61
+ :limit="5" />
62
+ ```
63
+
64
+ ## 注意事项
65
+
66
+ - 左侧树仅勾选叶子节点(`getCheckedNodes(true)`)。
67
+ - 右侧展示 `fullName` 字段,若数据结构不同,可在父组件处理后传入。
68
+ - 需要与 `limit` 配合时,超出限制后不会选中新项(逻辑需在父组件中处理)。
@@ -0,0 +1,72 @@
1
+ # pit-tree-lazy 懒加载树
2
+
3
+ 基于 `el-popover` + `el-tree(lazy)` 实现的懒加载树形选择器,支持单选/多选,使用 Popover 浮层展示树结构,选中值回显在 `el-select` 中。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | disabled | 是否禁用 | Boolean | `false` |
10
+ | placeholder | 占位文字 | String | 国际化默认值 |
11
+ | getGroupSequence | 懒加载数据获取函数(接收节点参数,返回 Promise) | Function | `() => {}` |
12
+ | defaultProps | 树字段映射(value/label/children/isLeaf) | Object | `{ value: 'id', label: 'billName', children: 'children', isLeaf: 'isLeaf' }` |
13
+ | isActiveLeaf | 是否只能选叶子节点 | Boolean | `false` |
14
+ | multiple | 是否多选 | Boolean | `false` |
15
+ | clearable | 是否可清空 | Boolean | `false` |
16
+ | collapseTags | 多选时是否折叠 Tag | Boolean | `false` |
17
+ | nodeKey | 节点唯一键字段名 | String | `"id"` |
18
+ | checkStrictly | 父子不互相关联 | Boolean | `false` |
19
+ | checkedKeys | 默认选中节点 key 数组 | Array | `[]` |
20
+ | size | 尺寸(medium/small/mini) | String | `"medium"` |
21
+ | width | 树面板宽度 | String | `"250px"` |
22
+ | height | 树面板高度 | String | `"300px"` |
23
+ | defaultExpand | 默认展开节点 key 数组 | Array | `[]` |
24
+ | maxHeight | 下拉最大高度 | String | `"400px"` |
25
+ | pId | 根节点 ID(懒加载时传递的父级 ID) | String | `"-1"` |
26
+ | clear | 是否清空选中(外部触发清空) | Boolean | `false` |
27
+
28
+ ## Events
29
+
30
+ | 事件名 | 说明 | 参数 |
31
+ | --- | --- | --- |
32
+ | node-click | 点击节点时触发 | `nodeData, node, component` |
33
+ | check-change | 节点勾选状态改变(多选) | `nodeData, checked, indeterminate` |
34
+
35
+ ## 示例
36
+
37
+ ### 单选懒加载
38
+
39
+ ```vue
40
+ <pit-tree-lazy
41
+ :get-group-sequence="loadBillTree"
42
+ :default-props="{ value: 'id', label: 'name', isLeaf: 'isLeaf' }"
43
+ @node-click="handleNodeClick" />
44
+
45
+ <script>
46
+ methods: {
47
+ async loadBillTree(node, resolve) {
48
+ const res = await this.$api.getBillTree({ pId: node.data?.id || '-1' })
49
+ resolve(res.data || [])
50
+ },
51
+ handleNodeClick(data) {
52
+ this.form.billId = data.id
53
+ }
54
+ }
55
+ </script>
56
+ ```
57
+
58
+ ### 多选 + 折叠标签
59
+
60
+ ```vue
61
+ <pit-tree-lazy
62
+ multiple
63
+ collapse-tags
64
+ :get-group-sequence="loadTree"
65
+ @check-change="handleCheck" />
66
+ ```
67
+
68
+ ## 注意事项
69
+
70
+ - 懒加载通过 `getGroupSequence` prop 传入,函数签名同 `el-tree` 的 `load`:`(node, resolve) => void`。
71
+ - 点击已选项旁的遮罩层(mask)可以关闭下拉 Popover。
72
+ - 与 `PitTreeSelectPlus` 的 `lazy` 模式不同:本组件使用 `el-popover` 展示树,而非 `vue-treeselect`,适合需要更灵活树行为的场景。
@@ -0,0 +1,59 @@
1
+ # pit-tree-select-name 树形下拉(名称显示版)
2
+
3
+ `PitTreeSelectPlus` 的变体,在已选值的展示标签上调用 `getFullName(node.raw)` 方法,将节点数据拼接为完整名称显示(适用于需要显示单位全称或带层级路径的场景)。
4
+
5
+ ## Props
6
+
7
+ 与 `PitTreeSelectPlus` 相同,但不支持 `lazy`/`loadOptions` 懒加载。
8
+
9
+ | 参数 | 说明 | 类型 | 默认值 |
10
+ | --- | --- | --- | --- |
11
+ | value / v-model | 绑定值(ID 字符串,多选逗号分隔) | String | `""` |
12
+ | options | 树形数据 | Array | `[]` |
13
+ | props | 字段映射 | Object | `{ value: 'id', label: 'fullName', children: 'children', disabled: 'disabled' }` |
14
+ | label | 显示字段名 | String | `""` |
15
+ | nodeKey | 主键字段名 | String | `""` |
16
+ | placeholder | 占位文字 | String | 国际化默认值 |
17
+ | disabled | 是否禁用 | Boolean | `false` |
18
+ | clearable | 是否可清空 | Boolean | `true` |
19
+ | multiple | 是否多选 | Boolean | `false` |
20
+ | flat | 是否平级模式 | Boolean | `false` |
21
+ | lastLevel | 是否只能选叶子节点 | Boolean | `false` |
22
+ | maxHeight | 最大高度(px) | Number | `200` |
23
+ | isAll | 显示全选 | Boolean | `false` |
24
+ | appendToBody | 插入 body | Boolean | `true` |
25
+ | selfAndBelow | 过滤自身及下级 | Boolean | `false` |
26
+ | selfAndBelowId | 自身节点 ID | String | `""` |
27
+ | disabledFn | 节点禁用回调 | Function | `null` |
28
+
29
+ ## Events
30
+
31
+ | 事件名 | 说明 | 参数 |
32
+ | --- | --- | --- |
33
+ | input | 值变化(v-model) | `value` |
34
+ | change | 值变化 | `value, nodeData` |
35
+
36
+ ## Slots
37
+
38
+ | 插槽名 | 说明 |
39
+ | --- | --- |
40
+ | option-label | 自定义下拉选项标签(作用域同 PitTreeSelectPlus) |
41
+
42
+ ## 与 PitTreeSelectPlus 的区别
43
+
44
+ | 特性 | PitTreeSelectPlus | PitTreeSelectName |
45
+ | --- | --- | --- |
46
+ | 已选标签展示 | `labelAlias \|\| label` 字段值 | `getFullName(node.raw)` 拼接结果 |
47
+ | 懒加载 | ✅ 支持 | ❌ 不支持 |
48
+
49
+ > `getFullName` 是全局混入方法,通常将单位名称、层级路径等拼接,具体规则由各项目定义。
50
+
51
+ ## 示例
52
+
53
+ ```vue
54
+ <pit-tree-select-name
55
+ v-model="form.unitId"
56
+ :options="unitTree"
57
+ label="fullName"
58
+ node-key="id" />
59
+ ```
@@ -0,0 +1,106 @@
1
+ # pit-tree-select-plus 树形下拉(增强版)
2
+
3
+ 基于 `@riophae/vue-treeselect` 封装的增强树形下拉,支持多选、懒加载、全选、搜索嵌套等高级功能。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | value / v-model | 绑定值(单选为 ID 字符串;多选为逗号分隔字符串) | String | `""` |
10
+ | options | 树形数据 | Array | `[]` |
11
+ | props | 字段映射(value/label/children/disabled) | Object | `{ value: 'id', label: 'fullName', children: 'children', disabled: 'disabled' }` |
12
+ | label | 显示字段名(会覆盖 props.label) | String | `""` |
13
+ | labelAlias | 显示字段别名(优先级高于 label) | String | `""` |
14
+ | nodeKey | 主键字段名(会覆盖 props.value) | String | `""` |
15
+ | placeholder | 占位文字 | String | 国际化默认值 |
16
+ | disabled | 是否禁用 | Boolean | `false` |
17
+ | clearable | 是否可清空 | Boolean | `true` |
18
+ | multiple | 是否多选 | Boolean | `false` |
19
+ | flat | 是否启用平级模式(父子不联动) | Boolean | `false` |
20
+ | lastLevel | 是否只能选叶子节点 | Boolean | `false` |
21
+ | maxHeight | 下拉面板最大高度(px) | Number | `200` |
22
+ | isAll | 多选时是否显示全选复选框 | Boolean | `false` |
23
+ | appendToBody | 下拉面板是否插入 body | Boolean | `true` |
24
+ | lazy | 是否懒加载 | Boolean | `false` |
25
+ | loadOptions | 懒加载方法(lazy=true 时必填) | Function | — |
26
+ | limit | 多选最多显示标签数 | Number | — |
27
+ | disabledFn | 节点禁用回调 `(node) => Boolean` | Function | `null` |
28
+ | selfAndBelow | 是否过滤自身及下级节点 | Boolean | `false` |
29
+ | selfAndBelowId | 自身节点 ID | String | `""` |
30
+ | defaultExpandLevel | 默认展开层级 | Number | — |
31
+
32
+ ## Events
33
+
34
+ | 事件名 | 说明 | 参数 |
35
+ | --- | --- | --- |
36
+ | input | 值变化(v-model) | `value` |
37
+ | change | 值变化 | `value, nodeData` |
38
+ | clearData | 清空事件 | — |
39
+
40
+ ## Slots
41
+
42
+ | 插槽名 | 说明 |
43
+ | --- | --- |
44
+ | option-label | 自定义选项标签内容(作用域:`{ node, shouldShowCount, count, labelClassName, countClassName }`) |
45
+
46
+ ## 示例
47
+
48
+ ### 单选
49
+
50
+ ```vue
51
+ <pit-tree-select-plus
52
+ v-model="form.orgId"
53
+ :options="orgTree"
54
+ :props="{ value: 'id', label: 'orgName', children: 'children' }" />
55
+ ```
56
+
57
+ ### 多选 + 全选
58
+
59
+ ```vue
60
+ <pit-tree-select-plus
61
+ v-model="form.bidIds"
62
+ :options="bidTree"
63
+ multiple
64
+ is-all
65
+ :flat="true" />
66
+ ```
67
+
68
+ ### 懒加载模式
69
+
70
+ ```vue
71
+ <pit-tree-select-plus
72
+ v-model="form.id"
73
+ :options="rootNodes"
74
+ :lazy="true"
75
+ :load-options="handleLoadOptions" />
76
+
77
+ <script>
78
+ import { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
79
+ methods: {
80
+ async handleLoadOptions({ action, parentNode, callback }) {
81
+ if (action === LOAD_CHILDREN_OPTIONS) {
82
+ const children = await this.$api.getChildren(parentNode.id)
83
+ parentNode.children = children
84
+ callback()
85
+ }
86
+ }
87
+ }
88
+ </script>
89
+ ```
90
+
91
+ ### 显示别名(bidShortName 优先,其次 bidName)
92
+
93
+ ```vue
94
+ <pit-tree-select-plus
95
+ v-model="form.bidId"
96
+ :options="bidTree"
97
+ label="bidName"
98
+ label-alias="bidShortName"
99
+ node-key="bidId" />
100
+ ```
101
+
102
+ ## 注意事项
103
+
104
+ - `labelAlias` 字段优先级高于 `label`,若节点数据有 `labelAlias` 字段则展示 alias,否则降级到 `label`。
105
+ - `flat` 模式下父子节点互不影响,多选时可独立勾选任意层级。
106
+ - 与 `PitTreeSelect` 的区别:本组件底层是 `vue-treeselect`,UI/交互更丰富(搜索嵌套、全选、限制数量等),但对大数据量的渲染性能略低于基于 `el-tree` 的 `PitTreeSelect`。
@@ -0,0 +1,86 @@
1
+ # pit-tree-select 树形下拉
2
+
3
+ 基于 `el-select` + `el-tree` 实现的树形结构下拉选择器,支持单选/多选、搜索过滤。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | value / v-model | 绑定值(单选为节点 value 字段值;多选为逗号分隔的字符串) | String | `""` |
10
+ | options | 树形数据 | Array | `[]` |
11
+ | props | 字段映射配置 | Object | `{ value: 'id', label: 'fullName', children: 'children' }` |
12
+ | placeholder | 占位文字 | String | 国际化默认值 |
13
+ | disabled | 是否禁用 | Boolean | `false` |
14
+ | clearable | 是否可清空 | Boolean | `false` |
15
+ | filterable | 是否可搜索 | Boolean | `true` |
16
+ | multiple | 是否多选 | Boolean | `false` |
17
+ | accordion | 是否手风琴模式 | Boolean | `false` |
18
+ | defaultExpandAll | 默认展开所有节点 | Boolean | `true` |
19
+ | lastLevel | 是否只能选叶子节点 | Boolean | `false` |
20
+ | lastLevelKey | 判断叶子节点的字段名 | String | `"hasChildren"` |
21
+ | lastLevelValue | 叶子节点判断值 | any | `false` |
22
+ | treeNodeKey | 自定义树节点 node-key(默认取 props.value) | String / Number | — |
23
+ | dropdownWidth | 下拉面板宽度 | String | — |
24
+
25
+ ## Events
26
+
27
+ | 事件名 | 说明 | 参数 |
28
+ | --- | --- | --- |
29
+ | input | 值变化(v-model) | `value, nodeData` |
30
+ | change | 值变化 | `value, nodeData` |
31
+ | visible-change | 下拉显示/隐藏 | `Boolean` |
32
+
33
+ ## Slots
34
+
35
+ | 插槽名 | 说明 | 作用域 |
36
+ | --- | --- | --- |
37
+ | default | 自定义树节点内容 | `{ node, data }` |
38
+
39
+ ## 示例
40
+
41
+ ### 单选
42
+
43
+ ```vue
44
+ <pit-tree-select
45
+ v-model="form.orgId"
46
+ :options="orgTree"
47
+ :props="{ value: 'id', label: 'name', children: 'children' }" />
48
+ ```
49
+
50
+ ### 多选(逗号分隔字符串)
51
+
52
+ ```vue
53
+ <pit-tree-select
54
+ v-model="form.bidIds"
55
+ :options="bidTree"
56
+ multiple
57
+ clearable />
58
+ ```
59
+
60
+ ### 只能选叶子节点
61
+
62
+ ```vue
63
+ <pit-tree-select
64
+ v-model="form.sectionId"
65
+ :options="sectionTree"
66
+ :last-level="true"
67
+ last-level-key="hasChildren"
68
+ :last-level-value="false" />
69
+ ```
70
+
71
+ ### 自定义节点内容
72
+
73
+ ```vue
74
+ <pit-tree-select v-model="form.id" :options="tree">
75
+ <template v-slot="{ data }">
76
+ <i :class="data.icon"></i>
77
+ <span>{{ data.name }}</span>
78
+ </template>
79
+ </pit-tree-select>
80
+ ```
81
+
82
+ ## 注意事项
83
+
84
+ - 多选时 `value` 为英文逗号拼接的 ID 字符串(`"id1,id2,id3"`),非数组。
85
+ - 下拉宽度默认跟随触发元素宽度,可通过 `dropdownWidth` 自定义(如 `"300px"`)。
86
+ - `lastLevel` 与 `lastLevelKey`/`lastLevelValue` 配合使用:当节点的 `lastLevelKey` 字段值 === `lastLevelValue` 时,该节点可被选中;否则点击无效。
@@ -0,0 +1,60 @@
1
+ # pit-upload-avatar 头像上传
2
+
3
+ 正方形头像上传组件,支持预览、删除;禁用状态下仅展示图片(不可上传/删除)。
4
+
5
+ ## 前置依赖
6
+
7
+ - `this.request` — 全局请求实例(用于 `getToken`)
8
+ - `pit-business-utils` — `getToken`、`reqOssPresignedObjectUrl`
9
+ - OSS 上传接口 `this.env.VUE_APP_BASE_API + /api/oss/upload`
10
+
11
+ ## Props
12
+
13
+ | 参数 | 说明 | 类型 | 默认值 |
14
+ | --- | --- | --- | --- |
15
+ | value / v-model | 已上传文件 ID(OSS record ID) | String | `""` |
16
+ | size | 头像宽高(正方形,单位 px) | Number | `126` |
17
+ | disabled | 是否禁用(只读展示) | Boolean | `false` |
18
+ | fileSize | 文件大小上限(MB) | Number | `5` |
19
+ | fileType | 允许上传的图片格式数组(空数组不限制) | Array | `[]` |
20
+ | formatMsg | 格式校验失败提示文字 | String | 国际化默认值 |
21
+ | sizeMsg | 大小校验失败提示文字 | String | 国际化默认值 |
22
+ | bucketAccessPolicy | OSS Bucket 访问策略 | String / Number | — |
23
+
24
+ ## Events
25
+
26
+ | 事件名 | 说明 | 参数 |
27
+ | --- | --- | --- |
28
+ | input | 上传成功或删除后触发(v-model) | `String`(文件 ID,删除时为 `""`) |
29
+
30
+ ## 示例
31
+
32
+ ### 基础用法
33
+
34
+ ```vue
35
+ <pit-upload-avatar v-model="form.avatarId" />
36
+ ```
37
+
38
+ ### 自定义尺寸与格式限制
39
+
40
+ ```vue
41
+ <pit-upload-avatar
42
+ v-model="form.photoId"
43
+ :size="80"
44
+ :file-size="2"
45
+ :file-type="['jpg', 'png']" />
46
+ ```
47
+
48
+ ### 只读展示
49
+
50
+ ```vue
51
+ <pit-upload-avatar
52
+ v-model="form.avatarId"
53
+ :disabled="true" />
54
+ ```
55
+
56
+ ## 注意事项
57
+
58
+ - 组件注入 `elForm` / `elFormItem`,在 `el-form` 的 `disabled` 状态下自动切换为只读模式。
59
+ - 禁用时头像可通过 `el-image` 内置预览放大,但不可上传/删除。
60
+ - 上传前调用 `reqOssPresignedObjectUrl` 生成预签名 URL 用于预览回显。