contract_attach.ui: 附件管理页面(Tabular文件列表 + 上传按钮) contract_attach_list.dspy: 查询合同附件列表 init.py: ensure_contract_folder() 自动创建附件目录 supply_contracts_list + distribution_agreements_list: 新增'合同附件'toolbar 实现: filemgr folder(contract_id=id, fiid=type)自动管理
30 lines
889 B
Plaintext
30 lines
889 B
Plaintext
# coding=utf-8
|
|
"""获取合同附件文件列表。
|
|
输入: folderid, fiid
|
|
输出: {rows: [{id, filename, filesize, filetype, webpath}]}
|
|
"""
|
|
folderid = params_kw.get('folderid', '')
|
|
fiid = params_kw.get('fiid', '')
|
|
|
|
if not folderid:
|
|
return json.dumps({'total': 0, 'rows': []})
|
|
|
|
dbname = get_module_dbname('supplychain')
|
|
db = DBPools()
|
|
|
|
async with db.sqlorContext(dbname) as sor:
|
|
recs = await sor.sqlExe(
|
|
"SELECT id, name, filesize, filetype, webpath FROM file WHERE folderid=${folderid}$ AND fiid=${fiid}$ ORDER BY id",
|
|
{'folderid': folderid, 'fiid': fiid}
|
|
)
|
|
rows = []
|
|
for r in recs:
|
|
rows.append({
|
|
'id': r.id,
|
|
'filename': r.name,
|
|
'filesize': r.filesize or 0,
|
|
'filetype': r.filetype or '',
|
|
'webpath': r.webpath or ''
|
|
})
|
|
return json.dumps({'total': len(rows), 'rows': rows})
|