feat: ContractAttachMgr — supplychain 自有附件管理器

ContractAttachMgr 继承 FileMgr, fiid 从 params_kw 透传
contract_upload.dspy: 自有上传端点
contract_attach.ui: 改用 supplychain 自己的上传 dspy
This commit is contained in:
yumoqing 2026-07-03 17:05:24 +08:00
parent 64e240872f
commit a914380a9b
5 changed files with 15 additions and 1 deletions

View File

@ -75,6 +75,7 @@ paths = [
("/supplychain/api/supplychain_accounting_update.dspy", "logined"),
("/supplychain/api/contract_attach_list.dspy", "logined"),
("/supplychain/api/contract_attach.ui", "logined"),
("/supplychain/api/contract_upload.dspy", "logined"),
("/supplychain/distribution_agreement_items_list", "logined"),
("/supplychain/distribution_agreement_items_list/add_distribution_agreement_items.dspy", "logined"),
("/supplychain/distribution_agreement_items_list/delete_distribution_agreement_items.dspy", "logined"),

View File

@ -10,7 +10,13 @@ from appPublic.jsonConfig import getConfig
from appPublic.dictObject import DictObject
from sqlor.dbpools import DBPools
from ahserver.serverenv import ServerEnv
from ahserver.filestorage import FileStorage
from filemgr.filemgr import FileMgr
class ContractAttachMgr(FileMgr):
"""Supplychain attachment manager — fiid from params_kw."""
pass
MODULE_NAME = "supplychain"
@ -926,6 +932,7 @@ def load_supplychain():
env.calculate_sale_amounts = calculate_sale_amounts
# Attachment folder helper
env.ensure_contract_folder = ensure_contract_folder
env.ContractAttachMgr = ContractAttachMgr
return True

Binary file not shown.

View File

@ -6,7 +6,7 @@
{% set fiid = 'dist_agreement_attach' %}
{% endif %}
{% set folder = ensure_contract_folder(request, contract_id, fiid) %}
{% set upload_url = entire_url('/filemgr/upload_file.dspy') %}
{% set upload_url = entire_url('contract_upload.dspy') %}
{% set list_url = entire_url('contract_attach_list.dspy') %}
{
"widgettype": "VBox",

View File

@ -0,0 +1,6 @@
fiid = params_kw.fiid or 'supply_contract_attach'
fmgr = ContractAttachMgr(fiid)
stat = await fmgr.add_file(request, params_kw)
if stat.status == 'success':
return UiMessage(title='上传成功', message='文件已添加')
return UiError(title='上传失败', message=stat.message or 'unknown error')