feat: 新增配送合同附件安全上传功能

- 增加合同专用 PDF 上传、鉴权预览和失败清理接口
- 支持草稿附件替换移除、并发保护和启用完整性校验
- 修复循环模板引用导致文件选择器无法打开的问题
- 补充专项测试、中文项目文档和操作日志
This commit is contained in:
czl231
2026-08-12 21:38:49 +08:00
parent deea31d79e
commit 99324acc89
16 changed files with 1379 additions and 16 deletions

View File

@@ -22,7 +22,8 @@ export type ResourceFieldType =
| 'date'
| 'datetime'
| 'textarea'
| 'select';
| 'select'
| 'contract-file';
/** 关联下拉的父子联动配置;未配置的资源继续保持独立选择。 */
export type ResourceRelationLinkage = {
@@ -458,10 +459,12 @@ export const resources: ResourceUiDefinition[] = [
filterKey: 'gas_basic_identities', backfillParent: true,
},
}),
f('title', { required: true }), f('terms'), f('file_uri'), f('default_delivery_fee'),
f('title', { required: true }), f('terms'),
f('file_uri', { label: '合同附件', type: 'contract-file' }),
f('default_delivery_fee'),
f('signed_at', { required: true }), f('effective_at', { required: true }), f('expired_at'),
], 'list', [
{ name: '启用合同', resource: '/gasorder_contract/:identity/activate', fields: reason, visibleFor: { field: 'contract_status', values: [10] } },
{ name: '启用合同', resource: '/gasorder_contract/:identity/activate', fields: reason, visibleFor: { field: 'contract_status', values: [0, 13] } },
{ name: '续签合同', resource: '/gasorder_contract/:identity/renew', fields: [f('effective_at', { required: true }), f('expired_at'), ...reason], visibleFor: { field: 'contract_status', values: [11, 12] } },
{ name: '终止合同', resource: '/gasorder_contract/:identity/terminate', danger: true, fields: reason, visibleFor: { field: 'contract_status', values: [11] } },
], { canCreate: true, canEdit: true }),