公共业务组件
这篇解决什么
选人、附件、单据壳、流程设计器控件分别用哪一套。读完先搜 apps/web-antd/src/components/,不要在业务页再造一个上传或人员弹窗。
表格和弹窗底座见 表格 VxeGrid 和 弹窗与表单。本篇只谈跨模块复用的业务组件。
示意图:业务单据走 BasicForm。流程表单(formType=10)走 form-create。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 单据壳 | 顶栏、审批按钮、字段权限 | ruoyi-office-vben/apps/web-antd/src/components/basic-form/ |
| 附件 | v-model 文件列表,可只读 | src/components/attachment-list/ |
| 字典标签 | 列表、描述 | src/components/dict-tag/ |
| 选人 | 左树右表 | src/components/user-select/ |
| 上传 | 文件 / 图片 | src/components/upload/ |
| 预览 | 弹窗看文件 | src/components/file-preview/ |
| 操作列 | 权限字 + 图标 | src/components/table-action/ |
| 流程控件 | 设计器里的部门 / 字典 | src/components/form-create/ |
| 对照 | 业务单据怎么接审批 | ruoyi-office/yudao-module-oa/ 用车用印 |
BasicForm 给 list / info 单据用:自己的表、FlowBillService 回写状态。它会拉审批详情和字段权限,不要在 info 页再抄一套底栏。
form-create 给流程设计器拖控件。不要把用车 info 改成 form-create 页面。两类接法见 业务表单开发。
附件默认 maxCount=10、maxSize=10(MB)。只读审批详情传 readonly。预览走 FilePreviewModal,不要 window.open 裸链。
OnlyOffice、合同模板编辑器也在 components/,合同篇再写,这里不要当通用上传用。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
readonly | 附件、部分输入只读 | AttachmentList |
auth | 操作列权限字 | TableAction |
useBusinessFieldPermission | 节点可编辑字段 | BasicForm |
不要改通用组件去捂脏菜单
菜单 component 仍指向已删的 apply/detail 时,改库或改页面路径。禁止在 registerComponent / BasicForm 加别名。
先搜再拷贝
选车辆、选印章是模块内组件(views/oa/car/components)。选人、附件才是公共的。
vue
<AttachmentList v-model="formData.attachments" :readonly="!editable" />