From a914380a9b249aff7a4e74367927c41d214d3827 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 3 Jul 2026 17:05:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20ContractAttachMgr=20=E2=80=94=20supplyc?= =?UTF-8?q?hain=20=E8=87=AA=E6=9C=89=E9=99=84=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ContractAttachMgr 继承 FileMgr, fiid 从 params_kw 透传 contract_upload.dspy: 自有上传端点 contract_attach.ui: 改用 supplychain 自己的上传 dspy --- scripts/load_path.py | 1 + supplychain/init.py | 7 +++++++ wwwroot/api/.supply_contracts_create.dspy.swp | Bin 0 -> 12288 bytes wwwroot/api/contract_attach.ui | 2 +- wwwroot/api/contract_upload.dspy | 6 ++++++ 5 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 wwwroot/api/.supply_contracts_create.dspy.swp create mode 100644 wwwroot/api/contract_upload.dspy diff --git a/scripts/load_path.py b/scripts/load_path.py index 9a7bd92..8763d97 100755 --- a/scripts/load_path.py +++ b/scripts/load_path.py @@ -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"), diff --git a/supplychain/init.py b/supplychain/init.py index b4a15eb..2ba627e 100644 --- a/supplychain/init.py +++ b/supplychain/init.py @@ -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 diff --git a/wwwroot/api/.supply_contracts_create.dspy.swp b/wwwroot/api/.supply_contracts_create.dspy.swp new file mode 100644 index 0000000000000000000000000000000000000000..2b4d353970da95b312a9f26ce1801b833221b1b7 GIT binary patch literal 12288 zcmeI2!EYNy6vn4;T1pEl5(iYI!429qu^l(%P%H(MCN4xYY1Op!P*v7sckB*c?`~#h z?JSl-;uIl3k>J)tFK|KS#H~e06mbUe2XMkjJ@n8cC-`PTNM zZ(bxTvsQg?X_=m{%o04$6GFqc-{1P;^wW%r z5DsS~PhvHr(j*Bp|27lROt06Iaja)pBF6mcnXAKUXDH|@(3ummgtOTZGa1S|ndz!I(3x~{QrOQ z`~UCf2zdnk27L#81+}1M=mPW-bR7EYBq6^;zd{e8AECR@XV5fs5_)oikYAv0p?lEh zPy{VPCFnHt-GHW{pAhpy$i$wQ`0Zl}SOS)S zC143y0+xU!@b4oaxlUz7`)*GJEv|KzaJS~xrHrLpa^pmcI8tt{?`ok#Gc+FrbTZuG zO0kydZ88z^z#R+-arSq)Jhna1>1yixu)(T3ZvXh<&hY-1!>!HX)~CbGJHrR}|J>Xf zesb3=HSUJ)CQ)J=DCRThy1 z+`R>hrrS>>Z;FjUxv%(ot@?T}aEasK8>61&zPeexRq-QDMU$E)<)PxVTBOtTEDVc~ z(=SL76lye89I0uEphOD^+9TJnEWBC(6UQm6)-Tl;uF-|d*H^B2ujLyvzAs+AyiE5} zqBq{DU#(+N#lw(e1w=H}$9phE=T{c#uHDc}OYhb(oD8N4B`lSPI!AZX0Iu~7?jbWr z$L$=QH%xZ{cgA}+h*uZNeH{lZGidVP0W(FtPZ3`UIm5vVaMUA*X(T6iqbH2Yoj1aT@wZ(5Sn)oLJgP@=FWacf2aug2O*3lEdT%j literal 0 HcmV?d00001 diff --git a/wwwroot/api/contract_attach.ui b/wwwroot/api/contract_attach.ui index 6b5efdb..d7b148d 100644 --- a/wwwroot/api/contract_attach.ui +++ b/wwwroot/api/contract_attach.ui @@ -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", diff --git a/wwwroot/api/contract_upload.dspy b/wwwroot/api/contract_upload.dspy new file mode 100644 index 0000000..e2ff436 --- /dev/null +++ b/wwwroot/api/contract_upload.dspy @@ -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')