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,67 @@
1
+ # pit-dic-radio 字典单选组
2
+
3
+ 从 Vuex store 加载字典数据并渲染为 `el-radio-group`,默认自动选中第一项。
4
+
5
+ ## 前置依赖
6
+
7
+ > 同 `PitDic`:项目 Vuex store 中需实现 `base/getDictionaryData` action,接收 `{ sort: string }` 并返回包含 `enCode`/`fullName` 字段的字典数组。
8
+
9
+ ## Props
10
+
11
+ | 参数 | 说明 | 类型 | 必填 | 默认值 |
12
+ | --- | --- | --- | --- | --- |
13
+ | value / v-model | 绑定值 | String | — | `""` |
14
+ | code | 字典 code | String | ✅ | `""` |
15
+ | options | 字典字段映射(label 与 value 对应的字段名) | Object | — | `{ label: 'fullName', value: 'enCode' }` |
16
+
17
+ > 其余 `el-radio-group` 属性通过 `v-bind="$attrs"` 透传,事件通过 `v-on="$listeners"` 透传。
18
+
19
+ ## Events
20
+
21
+ | 事件名 | 说明 | 参数 |
22
+ | --- | --- | --- |
23
+ | input | 值变化(v-model) | `String` |
24
+ | change | 选中项变化 | `String`(选中值),`Array`(完整字典列表) |
25
+
26
+ ## 示例
27
+
28
+ ### 基础用法
29
+
30
+ ```vue
31
+ <pit-dic-radio v-model="form.status" code="APPROVE_STATUS" />
32
+ ```
33
+
34
+ ### 自定义字段映射
35
+
36
+ ```vue
37
+ <!-- 字典列表字段非 enCode/fullName 时使用 -->
38
+ <pit-dic-radio
39
+ v-model="form.type"
40
+ code="MY_DICT"
41
+ :options="{ label: 'name', value: 'code' }" />
42
+ ```
43
+
44
+ ### 获取变化时的完整字典列表
45
+
46
+ ```vue
47
+ <pit-dic-radio
48
+ v-model="form.status"
49
+ code="APPROVE_STATUS"
50
+ @change="onStatusChange" />
51
+
52
+ <script>
53
+ methods: {
54
+ onStatusChange(value, list) {
55
+ // value: 当前选中值
56
+ // list: 完整字典数组
57
+ const selected = list.find(item => item.enCode === value)
58
+ console.log(selected.fullName)
59
+ }
60
+ }
61
+ </script>
62
+ ```
63
+
64
+ ## 注意事项
65
+
66
+ - 字典加载完成后,若当前 `value` 为空,组件会**自动选中第一项**并触发 `input`。
67
+ - 如需禁用自动选中,请在父组件初始化时手动设置 `value`。
@@ -0,0 +1,78 @@
1
+ # pit-dic 字典下拉选择
2
+
3
+ 从 Vuex store 中加载字典数据并渲染为 `el-select`,支持单选/多选。
4
+
5
+ ## 前置依赖
6
+
7
+ > **必须**:项目 Vuex store 中需实现 `base/getDictionaryData` action,接收 `{ sort: string }` 并返回字典数组(每项含 `enCode`、`fullName` 字段)。
8
+
9
+ ## Props
10
+
11
+ | 参数 | 说明 | 类型 | 默认值 |
12
+ | --- | --- | --- | --- |
13
+ | value / v-model | 绑定值(单选为 string,多选为逗号分隔的 string) | String | `""` |
14
+ | code | 字典 code,对应 store 中的 sort 参数 | String | `""` |
15
+ | placeholder | 占位文本 | String | — |
16
+ | clearable | 是否可清空 | Boolean | `true` |
17
+ | multiple | 是否多选 | Boolean | `false` |
18
+ | disabled | 是否禁用 | Boolean | `false` |
19
+ | filterable | 是否可搜索 | Boolean | `true` |
20
+ | handleList | 外部直接传入选项数组(优先级高于 store 请求) | Array | `[]` |
21
+ | changeCallBack | 选项变化回调函数(优先级高于 elForm 联动搜索) | Function | — |
22
+
23
+ ## Events
24
+
25
+ | 事件名 | 说明 | 参数 |
26
+ | --- | --- | --- |
27
+ | input | 值变化(v-model) | `String` |
28
+ | change | 选项变化 | `String` |
29
+ | resultData | 字典数据加载完成 | `Array`(完整字典数组) |
30
+
31
+ ## 示例
32
+
33
+ ### 基础单选
34
+
35
+ ```vue
36
+ <pit-dic v-model="form.status" code="APPROVE_STATUS" />
37
+ ```
38
+
39
+ ### 多选
40
+
41
+ ```vue
42
+ <pit-dic v-model="form.tags" code="PROJECT_TAG" :multiple="true" />
43
+ ```
44
+
45
+ ### 外部传入选项(不走 store 请求)
46
+
47
+ ```vue
48
+ <pit-dic
49
+ v-model="form.type"
50
+ :handle-list="[
51
+ { enCode: '1', fullName: '类型A' },
52
+ { enCode: '2', fullName: '类型B' }
53
+ ]" />
54
+ ```
55
+
56
+ ### 获取字典加载结果
57
+
58
+ ```vue
59
+ <pit-dic
60
+ v-model="form.status"
61
+ code="APPROVE_STATUS"
62
+ @result-data="onDicLoaded" />
63
+
64
+ <script>
65
+ methods: {
66
+ onDicLoaded(list) {
67
+ // list: [{ enCode, fullName }, ...]
68
+ this.dicOptions = list
69
+ }
70
+ }
71
+ </script>
72
+ ```
73
+
74
+ ## 注意事项
75
+
76
+ - 使用 `handleList` 时不会发起 store 请求,适合静态选项或接口自取场景。
77
+ - 多选值固定以英文逗号拼接字符串存储,绑定时无需手动处理数组/字符串转换。
78
+ - 当在 `el-form` 内且配合搜索时,`changeCallBack` 可接管默认的表单联动搜索行为。
@@ -0,0 +1,54 @@
1
+ # pit-document-preview 文档预览
2
+
3
+ 在 `<iframe>` 中渲染文档预览,支持两种预览引擎(LibreOffice → PDF 或永中 Office),引擎由系统配置决定。挂载时自动读取水印配置并叠加。
4
+
5
+ ## 前置依赖
6
+
7
+ - `pit-business-utils` — `reqFileTransform`、`reqOssInfo`、`reqOssInfoByYz`、`getPreviewUrl`
8
+ - 后端接口:`/api/permission/sysConfig/getFileEngine`(获取预览引擎配置)
9
+ - `this.$store.state.settings.title` — 应用标题(用于设置 document.title)
10
+ - `localStorage.isOpenWatermark` / `localStorage.watermark` — 水印配置
11
+ - `this.$setWatermark` / `this.$clearWatermark` — 全局水印方法
12
+
13
+ ## Props
14
+
15
+ | 参数 | 说明 | 类型 | 默认值 |
16
+ | --- | --- | --- | --- |
17
+ | documentObj | 文件对象(须含 `fileUploadRecordId`、`originalFilename`、`format` 等字段) | Object | `{}` |
18
+ | title | 页面标题(为空时自动降级到文件名或路由标题) | String | `""` |
19
+
20
+ ## 预览引擎
21
+
22
+ | fileEngine 值 | 引擎 | 说明 |
23
+ | --- | --- | --- |
24
+ | `1`(默认) | 永中 Office | 调用 `reqOssInfoByYz` 获取预览 URL |
25
+ | 其他 | LibreOffice(转 PDF) | 调用 `getPreviewUrl` 获取 presigned URL |
26
+
27
+ ## 示例
28
+
29
+ ### 在 PitPreview 弹窗中内嵌(推荐通过 PitPreview 间接使用)
30
+
31
+ ```vue
32
+ <!-- PitPreview 内部会根据文件类型自动调用 PitDocumentPreview -->
33
+ <pit-preview
34
+ :visible.sync="previewVisible"
35
+ :file-obj="fileObj"
36
+ :is-open="false" />
37
+ ```
38
+
39
+ ### 直接使用(如独立预览页面)
40
+
41
+ ```vue
42
+ <pit-document-preview
43
+ :document-obj="{
44
+ fileUploadRecordId: 'abc123',
45
+ originalFilename: '合同.docx',
46
+ format: 'docx'
47
+ }" />
48
+ ```
49
+
50
+ ## 注意事项
51
+
52
+ - 组件挂载时自动读取 `localStorage.isOpenWatermark`,若为 `"true"` 则叠加登录用户信息水印,销毁时自动清除。
53
+ - `document.title` 在 `mounted` 时被修改为当前文件名;在需要保留原有标题的场景(SPA 路由)需注意副作用。
54
+ - 预览 URL 通过异步接口获取,首次渲染时 `iframe` 为空,加载完成后自动填入 `src`。
@@ -0,0 +1,67 @@
1
+ # pit-drawer 抽屉
2
+
3
+ 对 `el-drawer` 的封装,默认禁止点击外部关闭,支持全局 `drawerSize` 配置。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | visible | 控制显隐,支持 `.sync` | Boolean | `false` |
10
+ | title | 标题 | String | `"标题"` |
11
+ | size | 抽屉宽度(不传则读取 `$Business.drawerSize`) | String / Number | — |
12
+ | fullscreen | 是否全屏 | Boolean | `false` |
13
+ | beforeClose | 关闭前回调,接管关闭逻辑 | Function | — |
14
+
15
+ > 其余 `el-drawer` 属性可通过 `v-bind="$attrs"` 透传。
16
+
17
+ ## Events
18
+
19
+ | 事件名 | 说明 | 参数 |
20
+ | --- | --- | --- |
21
+ | update:visible | 关闭时触发,配合 `.sync` 使用 | `false` |
22
+
23
+ ## Slots
24
+
25
+ | 插槽名 | 说明 |
26
+ | --- | --- |
27
+ | default | 抽屉主体内容 |
28
+
29
+ ## 示例
30
+
31
+ ### 基础用法
32
+
33
+ ```vue
34
+ <template>
35
+ <div>
36
+ <el-button @click="drawerVisible = true">打开抽屉</el-button>
37
+ <pit-drawer :visible.sync="drawerVisible" title="详情">
38
+ <p>抽屉内容</p>
39
+ </pit-drawer>
40
+ </div>
41
+ </template>
42
+
43
+ <script>
44
+ export default {
45
+ data() {
46
+ return { drawerVisible: false }
47
+ }
48
+ }
49
+ </script>
50
+ ```
51
+
52
+ ### 自定义宽度与 beforeClose
53
+
54
+ ```vue
55
+ <pit-drawer
56
+ :visible.sync="drawerVisible"
57
+ title="编辑"
58
+ size="900px"
59
+ :before-close="handleClose">
60
+ <form-component />
61
+ </pit-drawer>
62
+ ```
63
+
64
+ ## 注意事项
65
+
66
+ - `wrapperClosable` 固定为 `false`(点击外部不关闭),不可通过 props 覆盖。
67
+ - 全局默认宽度通过 `Vue.use(PitBusinessUI, { drawerSize: '800px' })` 统一配置。
@@ -0,0 +1,63 @@
1
+ # pit-editor 富文本编辑器(WangEditor)
2
+
3
+ 基于 `@wangeditor/editor-for-vue` 封装的富文本编辑器,支持图片/视频上传、完整工具栏、禁用只读模式,注入 `el-form` 状态感知。
4
+
5
+ ## 前置依赖
6
+
7
+ - `@wangeditor/editor-for-vue`(`^1.0.2`)
8
+ - `pit-business-utils` — `getToken`(图片/视频上传鉴权)
9
+ - `this.env.VUE_APP_BASE_API` — 上传接口 Base URL
10
+
11
+ ## Props
12
+
13
+ | 参数 | 说明 | 类型 | 默认值 |
14
+ | --- | --- | --- | --- |
15
+ | value / v-model | 编辑器 HTML 内容 | String | `""` |
16
+ | disabled | 是否禁用(只读模式) | Boolean | `false` |
17
+ | height | 编辑区域高度 | String | `"500px"` |
18
+
19
+ ## Events
20
+
21
+ | 事件名 | 说明 | 参数 |
22
+ | --- | --- | --- |
23
+ | input | 内容变化(v-model) | `String`(HTML) |
24
+
25
+ ## 工具栏功能
26
+
27
+ 内置以下工具组:标题、引用、加粗、下划线、斜体、更多样式(删除线/行内代码/上下标/清除格式)、字体颜色/背景色、字号、字体、行高、列表(无序/有序/待办)、对齐方式、缩进、表情、插入链接、**上传图片**、**上传视频**、表格、代码块。
28
+
29
+ ## 示例
30
+
31
+ ### 基础用法
32
+
33
+ ```vue
34
+ <pit-editor v-model="form.content" />
35
+ ```
36
+
37
+ ### 指定高度
38
+
39
+ ```vue
40
+ <pit-editor v-model="form.content" height="300px" />
41
+ ```
42
+
43
+ ### 只读显示
44
+
45
+ ```vue
46
+ <pit-editor v-model="form.content" :disabled="true" />
47
+ ```
48
+
49
+ ### 在表单中使用
50
+
51
+ ```vue
52
+ <el-form-item label="项目描述" prop="description">
53
+ <pit-editor v-model="form.description" height="400px" />
54
+ </el-form-item>
55
+ ```
56
+
57
+ ## 注意事项
58
+
59
+ - `disabled` 为 `true` 时,编辑区高度变为 `auto`(内容高度),工具栏隐藏。
60
+ - 图片/视频上传接口为 `${VUE_APP_BASE_API}/api/oss/upload`,使用 `getToken()` 鉴权。
61
+ - 编辑器销毁时需手动调用 `this.editor.destroy()`,组件在 `beforeDestroy` 钩子中已自动处理。
62
+ - 组件注入 `elForm` / `elFormItem`,在 `el-form` 的 `disabled` 状态下自动切为只读。
63
+ - 组件 name 为 `pitEditor`(小写 `p`),注册时注意区分。
@@ -0,0 +1,65 @@
1
+ # pit-expand-search-form 可展开搜索表单
2
+
3
+ 将搜索条件分为"常驻区"与"展开区",通过展开/折叠按钮控制显示,适合条件较多的列表页。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | isShowBtn | 是否显示展开/折叠按钮 | Boolean | `true` |
10
+ | styles | 外层容器自定义样式 | Object | — |
11
+
12
+ ## Events
13
+
14
+ 无自定义事件。
15
+
16
+ ## Slots
17
+
18
+ | 插槽名 | 说明 |
19
+ | --- | --- |
20
+ | default | 常驻搜索条件(始终显示) |
21
+ | expanded | 展开后显示的附加搜索条件 |
22
+
23
+ ## 示例
24
+
25
+ ### 基础用法
26
+
27
+ ```vue
28
+ <template>
29
+ <pit-expand-search-form>
30
+ <!-- 常驻区 -->
31
+ <el-form-item label="项目名称">
32
+ <pit-input v-model="query.name" />
33
+ </el-form-item>
34
+ <el-form-item label="状态">
35
+ <pit-dic v-model="query.status" code="PROJECT_STATUS" />
36
+ </el-form-item>
37
+
38
+ <!-- 展开区 -->
39
+ <template slot="expanded">
40
+ <el-form-item label="创建时间">
41
+ <pit-date-time-picker v-model="query.createTime" />
42
+ </el-form-item>
43
+ <el-form-item label="负责人">
44
+ <pit-input v-model="query.owner" />
45
+ </el-form-item>
46
+ </template>
47
+ </pit-expand-search-form>
48
+ </template>
49
+ ```
50
+
51
+ ### 隐藏展开按钮(展示所有条件)
52
+
53
+ ```vue
54
+ <pit-expand-search-form :is-show-btn="false">
55
+ <el-form-item label="名称">
56
+ <pit-input v-model="query.name" />
57
+ </el-form-item>
58
+ </pit-expand-search-form>
59
+ ```
60
+
61
+ ## 注意事项
62
+
63
+ - 展开/折叠状态由组件内部维护,无需外部控制。
64
+ - `slot="expanded"` 内的条件初始为折叠隐藏状态。
65
+ - 组件内部使用了 `el-form--inline` 样式类,建议父层不要重复设置。
@@ -0,0 +1,56 @@
1
+ # pit-file-preview 文件预览(内嵌 Popover)
2
+
3
+ 以文字链接形式展示文件名,鼠标悬停弹出文件列表(支持多文件),列表中每项可点击预览或下载,无需打开新弹窗即可操作。
4
+
5
+ ## 前置依赖
6
+
7
+ - `pit-business-utils` — `reqOssList`、`reqOssPresignedObjectUrl`、`downloadUrlFile`、`fileType`
8
+ - `PitPreview` — 内部调用用于不支持类型的预览弹窗
9
+
10
+ ## Props
11
+
12
+ | 参数 | 说明 | 类型 | 默认值 |
13
+ | --- | --- | --- | --- |
14
+ | fileId | 文件 ID(逗号分隔字符串,支持多文件) | String | — |
15
+ | disabled | 是否禁用(仅展示,不可交互) | Boolean | `false` |
16
+ | rowObj | 所在行数据对象(预留,用于扩展场景) | Object | `{}` |
17
+ | placement | Popover 弹出方向(同 `el-popover` placement) | String | `"top"` |
18
+ | modelKey | 模型 ID 字段名(预留) | String | `"modelId"` |
19
+
20
+ ## 特性
21
+
22
+ - `fileId` 变化时自动调用 `reqOssList` 获取文件列表并更新展示文件名。
23
+ - Popover 中展示每个文件的**预览**(眼睛图标)和**下载**(下载图标)操作。
24
+ - 不支持预览类型时弹出 warning 提示;图片类型通过 `PitPreview` 弹窗渲染。
25
+
26
+ ## 示例
27
+
28
+ ### 表格列中使用
29
+
30
+ ```vue
31
+ <el-table-column label="附件" width="200">
32
+ <template slot-scope="{ row }">
33
+ <pit-file-preview :file-id="row.fileId" />
34
+ </template>
35
+ </el-table-column>
36
+ ```
37
+
38
+ ### 自定义弹出方向
39
+
40
+ ```vue
41
+ <pit-file-preview :file-id="form.fileId" placement="bottom" />
42
+ ```
43
+
44
+ ## 与其他预览组件的区别
45
+
46
+ | 组件 | 触发方式 | 适用场景 |
47
+ | --- | --- | --- |
48
+ | PitFilePreview | 悬停 Popover | 表格列内嵌、轻量展示 |
49
+ | PitPreview | 编程调用 / v-model | 按钮触发的独立预览弹窗 |
50
+ | PitImagePreview | 内嵌图片 + 点击放大 | 纯图片展示区域 |
51
+
52
+ ## 注意事项
53
+
54
+ - `fileId` 为空时组件不渲染(`v-if="fileId"`)。
55
+ - 触发器为文字链接(`<a>` 标签),悬停显示全部文件名 title。
56
+ - 多文件逗号分隔时,Popover 列表会展示所有文件;单文件时文本缩略显示。
@@ -0,0 +1,47 @@
1
+ # pit-flow-table-status 流程状态标签
2
+
3
+ 根据流程审批状态值渲染带语义颜色的 `el-tag`,内置状态文字和颜色映射,无需调用方自行维护映射表。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | status | 流程状态值(见下方状态表) | String | `""` |
10
+
11
+ ## 状态映射表
12
+
13
+ | status 值 | 显示文字 | Tag 类型(颜色) |
14
+ | --- | --- | --- |
15
+ | `"draft"` | 等待提交 | `info`(灰色) |
16
+ | `"approval"` | 等待审核 | `primary`(蓝色) |
17
+ | `"reject"` | 审核驳回 | `danger`(红色) |
18
+ | `"end"` | 流程结束 | `success`(绿色) |
19
+ | `"withdraw"` | 流程撤回 | `danger`(红色) |
20
+ | `"pass"` | 审核通过 | `success`(绿色) |
21
+ | `"termination"` | 流程作废 | `danger`(红色) |
22
+ | 其他/空 | 等待提交 | `info`(灰色) |
23
+
24
+ ## 示例
25
+
26
+ ### 在表格列中使用
27
+
28
+ ```vue
29
+ <el-table-column label="审批状态" width="100" align="center">
30
+ <template slot-scope="{ row }">
31
+ <pit-flow-table-status :status="row.approvalStatus" />
32
+ </template>
33
+ </el-table-column>
34
+ ```
35
+
36
+ ### 独立展示
37
+
38
+ ```vue
39
+ <pit-flow-table-status status="approval" />
40
+ <pit-flow-table-status status="end" />
41
+ <pit-flow-table-status status="reject" />
42
+ ```
43
+
44
+ ## 注意事项
45
+
46
+ - `status` 值区分大小写,需与常量严格匹配(均为小写英文)。
47
+ - 文字和颜色映射固定在组件内部,若业务需要不同颜色/文字,可改用 `PitTag` 组件自定义 `tagObj`。
@@ -0,0 +1,74 @@
1
+ # pit-icon-box 图标选择器
2
+
3
+ 带搜索的图标选择弹窗,提供"菜单图标"和"基础图标"两个分类 Tab,选中后通过 `choiceIcon` 事件返回图标 class 名称。使用 `.sync` 控制显示状态。
4
+
5
+ ## Props
6
+
7
+ | 参数 | 说明 | 类型 | 默认值 |
8
+ | --- | --- | --- | --- |
9
+ | visible | 弹窗是否可见(支持 `.sync`) | Boolean | `false` |
10
+ | current | 当前已选图标的 class 名称(用于高亮显示) | String | `""` |
11
+
12
+ ## Events
13
+
14
+ | 事件名 | 说明 | 参数 |
15
+ | --- | --- | --- |
16
+ | choiceIcon | 点击图标时触发 | `iconClass: String`(如 `"el-icon-star-on"`) |
17
+ | update:visible | `.sync` 支持(点击关闭时触发) | `Boolean` |
18
+
19
+ ## 示例
20
+
21
+ ### 基础用法
22
+
23
+ ```vue
24
+ <pit-icon-box
25
+ :visible.sync="iconPickerVisible"
26
+ :current="form.icon"
27
+ @choiceIcon="handleChoiceIcon" />
28
+
29
+ <el-button @click="iconPickerVisible = true">
30
+ <i :class="form.icon" />
31
+ 选择图标
32
+ </el-button>
33
+
34
+ <script>
35
+ export default {
36
+ data() {
37
+ return {
38
+ iconPickerVisible: false,
39
+ form: { icon: 'el-icon-star-on' }
40
+ }
41
+ },
42
+ methods: {
43
+ handleChoiceIcon(iconClass) {
44
+ this.form.icon = iconClass
45
+ this.iconPickerVisible = false
46
+ }
47
+ }
48
+ }
49
+ </script>
50
+ ```
51
+
52
+ ### 在菜单管理表单中使用
53
+
54
+ ```vue
55
+ <el-form-item label="菜单图标">
56
+ <div style="display:flex; align-items:center; gap:8px;">
57
+ <i :class="menuForm.icon" style="font-size:20px;" />
58
+ <span>{{ menuForm.icon || '未选择' }}</span>
59
+ <el-button size="small" @click="showIconPicker = true">选择</el-button>
60
+ </div>
61
+ </el-form-item>
62
+
63
+ <pit-icon-box
64
+ :visible.sync="showIconPicker"
65
+ :current="menuForm.icon"
66
+ @choiceIcon="icon => { menuForm.icon = icon; showIconPicker = false }" />
67
+ ```
68
+
69
+ ## 注意事项
70
+
71
+ - 图标数据从静态 JSON 文件加载(`icon-custom.json` 菜单图标 / `icon-basics.json` 基础图标),不需要网络请求。
72
+ - 搜索按 Tab 独立过滤,切换 Tab 时搜索关键词不共享。
73
+ - `choiceIcon` 事件不会自动关闭弹窗,需在事件回调中手动将 `visible` 设为 `false`。
74
+ - 内部使用 `pit-dialog` 组件,弹窗尺寸已内置,不支持自定义宽度。
@@ -0,0 +1,55 @@
1
+ # pit-image-preview 图片预览
2
+
3
+ 将文件 ID(OSS Record ID)转换为预签名 URL 后渲染 `el-image`,支持单图/列表展示、自动预览放大。
4
+
5
+ ## 前置依赖
6
+
7
+ - `pit-business-utils` — `reqOssPresignedObjectUrl`(批量获取预签名 URL)
8
+
9
+ ## Props
10
+
11
+ | 参数 | 说明 | 类型 | 默认值 |
12
+ | --- | --- | --- | --- |
13
+ | value | 文件 ID(字符串逗号分隔)或 ID 数组 | Array / String | — |
14
+ | size | 图片宽高(正方形,CSS 值如 `"80px"`) | String | — |
15
+ | width | 图片宽度(优先级高于 size) | String | `""` |
16
+ | height | 图片高度(优先级高于 size) | String | `""` |
17
+ | showList | 是否展示全部图片列表(`false` 只显示第一张) | Boolean | `false` |
18
+ | noPreview | 是否禁用点击放大预览 | Boolean | `false` |
19
+ | cacheImages | 外部传入缓存 URL 列表(覆盖内部自动获取的 URL) | Array | `[]` |
20
+ | cacheId | 预留字段(内部未使用) | String | `"id"` |
21
+
22
+ ## Events
23
+
24
+ | 事件名 | 说明 | 参数 |
25
+ | --- | --- | --- |
26
+ | click | 点击图片时触发 | — |
27
+
28
+ ## 示例
29
+
30
+ ### 单图显示(ID 字符串)
31
+
32
+ ```vue
33
+ <pit-image-preview :value="row.thumbnailId" size="60px" />
34
+ ```
35
+
36
+ ### 多图列表展示
37
+
38
+ ```vue
39
+ <pit-image-preview
40
+ :value="form.photoIds"
41
+ size="80px"
42
+ show-list />
43
+ ```
44
+
45
+ ### 禁止预览放大
46
+
47
+ ```vue
48
+ <pit-image-preview :value="form.coverId" size="100px" no-preview />
49
+ ```
50
+
51
+ ## 注意事项
52
+
53
+ - `value` 为空时组件不渲染(`v-if="urls.length"`)。
54
+ - 每个文件 ID 会异步调用一次 `reqOssPresignedObjectUrl`,多图时为并行请求(`Promise.all`)。
55
+ - `cacheImages` 优先级高于内部获取的 URL 列表,传入后跳过 OSS 请求。
@@ -0,0 +1,53 @@
1
+ # pit-image 图片显示
2
+
3
+ 将 OSS 存储的图片 ID(或数组)转换为 presigned URL 并展示,支持 `el-image` 内置预览功能。
4
+
5
+ > 与 `PitImagePreview` 的主要区别:使用 `isPreview`(而非 `noPreview`),且不支持缓存复用(`cacheImages`)。对于新功能优先使用 `PitImagePreview`。
6
+
7
+ ## 前置依赖
8
+
9
+ - `pit-business-utils` — `reqOssPresignedObjectUrl`(生成图片 presigned 访问 URL)
10
+
11
+ ## Props
12
+
13
+ | 参数 | 说明 | 类型 | 默认值 |
14
+ | --- | --- | --- | --- |
15
+ | value / v-model | 图片 ID 或 ID 数组 | String / Array | — |
16
+ | size | 图片尺寸快捷设置(如 `"80px"`,同时设置宽高) | String | — |
17
+ | width | 图片宽度 | String | `""` |
18
+ | height | 图片高度 | String | `""` |
19
+ | showList | 是否显示 `value` 为数组时的图片列表(多张) | Boolean | `false` |
20
+ | isPreview | 是否启用点击预览(`el-image` 预览功能) | Boolean | `true` |
21
+
22
+ ## 示例
23
+
24
+ ### 显示单张图片
25
+
26
+ ```vue
27
+ <pit-image :value="avatarId" size="80px" />
28
+ ```
29
+
30
+ ### 显示图片列表
31
+
32
+ ```vue
33
+ <pit-image :value="imageIds" :show-list="true" width="60px" height="60px" />
34
+ ```
35
+
36
+ ### 禁用点击预览
37
+
38
+ ```vue
39
+ <pit-image :value="imageId" :is-preview="false" size="100px" />
40
+ ```
41
+
42
+ ## 与 PitImagePreview 对比
43
+
44
+ | 特性 | PitImage | PitImagePreview |
45
+ | --- | --- | --- |
46
+ | 启用预览 prop | `isPreview: true` | `noPreview: false`(逻辑相反) |
47
+ | OSS URL 缓存 | ❌ | ✅ `cacheImages` |
48
+ | 推荐程度 | 旧版,兼容保留 | 推荐新项目使用 |
49
+
50
+ ## 注意事项
51
+
52
+ - `size` 同时覆盖宽高,若同时指定 `size` 和 `width`/`height`,`size` 优先。
53
+ - 组件在 `created()` 钩子中发起 OSS presigned URL 请求,URL 有有效期(通常 15 分钟),长时间展示页面需自行刷新。