| | |
| | | <!-- 模板绑定表单区:填报项 + 审批流程 + 附件(须挂在外层 el-form 下) --> |
| | | <template> |
| | | <template v-if="activeTemplate"> |
| | | <el-form-item v-if="showTemplateName" label="审批模板"> |
| | | <el-form-item |
| | | v-if="showTemplateName && !hideTemplateName && !flowAttachmentsOnly && !flowOnly" |
| | | label="审批模板" |
| | | > |
| | | <span class="template-name">{{ activeTemplate.label }}</span> |
| | | <el-button v-if="allowChangeTemplate" type="primary" link class="ml12" @click="emit('change-template')"> |
| | | 更换模板 |
| | | </el-button> |
| | | </el-form-item> |
| | | |
| | | <FormPayloadFields :fields="fields" :form-payload="formPayload" /> |
| | | <FormPayloadFields |
| | | v-if="!hideFormFields && !flowAttachmentsOnly && !flowOnly" |
| | | :fields="fields" |
| | | :form-payload="formPayload" |
| | | /> |
| | | |
| | | <el-form-item label="审批流程" required> |
| | | <TemplateFlowEditor v-model="flowNodesModel" :user-options="userOptions" /> |
| | | <p class="section-tip">流程与审批人由模板预置,可按需微调节点审批人。</p> |
| | | <TemplateFlowEditor |
| | | v-model="flowNodesModel" |
| | | :user-options="userOptions" |
| | | :readonly="!flowEditable" |
| | | /> |
| | | <p class="section-tip"> |
| | | {{ |
| | | flowEditable |
| | | ? "流程与审批人由模板预置,可按需微调节点审批人。" |
| | | : "流程与审批人由所选模板固定,不可修改。" |
| | | }} |
| | | </p> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-if="templateAttachments.length" label="模板参考"> |
| | | <el-form-item v-if="!flowOnly && templateAttachments.length" label="模板参考"> |
| | | <el-tag |
| | | v-for="(f, i) in templateAttachments" |
| | | :key="`tpl-${i}`" |
| | |
| | | <p class="section-tip">以上为模板附带文件,仅供参考;提交附件请在下方上传。</p> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="附件"> |
| | | <el-form-item v-if="!flowOnly" label="附件"> |
| | | <FileUpload |
| | | v-model:file-list="attachmentsModel" |
| | | :limit="uploadLimit" |
| | |
| | | userOptions: { type: Array, default: () => [] }, |
| | | showTemplateName: { type: Boolean, default: true }, |
| | | allowChangeTemplate: { type: Boolean, default: true }, |
| | | /** 为 true 时不展示模板自定义填报项(仅保留审批流程与附件) */ |
| | | hideFormFields: { type: Boolean, default: false }, |
| | | /** 为 true 时不展示审批模板名称行(由父级置顶展示) */ |
| | | hideTemplateName: { type: Boolean, default: false }, |
| | | /** 为 true 时仅展示审批流程与附件(填报项由父级单独渲染) */ |
| | | flowAttachmentsOnly: { type: Boolean, default: false }, |
| | | /** 为 true 时仅展示审批流程(不展示模板填报项、附件等) */ |
| | | flowOnly: { type: Boolean, default: false }, |
| | | uploadLimit: { type: Number, default: 10 }, |
| | | /** 为 true 时可编辑模板预置的审批人(仅审批模板管理页使用) */ |
| | | flowEditable: { type: Boolean, default: false }, |
| | | }); |
| | | |
| | | const emit = defineEmits(["update:flowNodes", "update:attachments", "change-template"]); |