這里主要談論的是產品設計里面的文件管理,比如文件的上傳交互及背后影響到的前后端設計。
上傳文件
場景:一條記錄,比如個人信息,有姓名,出生年月,性別等一般的字段,還可以允許用戶上傳附件作為補充,比如上傳個人的學歷證明等。
版本一
【平臺】-【基金管理】-【產品信息】舊頁面(現已廢棄)
后端
用戶上傳文件,會將文件存在一個路徑下。
前端
這里的交互設計其實和后端的做法沒有什么關聯。就是設計的不合理。
交互設計
新建彈窗分多步完成。
- 點擊新增,第一步只允許編輯一般字段,點擊下一步之后,先調用一次 Create 接口,后端返回該新增記錄的ID;
- 第二步,允許用戶上傳附件,并且不用用戶點擊確定按鈕就已經調用了上傳接口。刪除附件也是立即調用刪除附件的接口。
- 點擊確定,更新附件的信息到該記錄的附件字段。
導致的問題:所有的用戶下的附件不能重名。
優點: -
缺點:用戶交互麻煩,如果在上傳附件的時候,想要放棄該條數據,就要關閉彈窗再去刪除這條數據。(或者在第二步的彈窗中有取消按鈕,點擊取消就去刪除第一步跳轉過來時候 create 接口新增的數據)
版本二
【平臺】-【基金管理】-【產品信息(新)】
后端
在版本一的基礎上,會在文件名前生成一個uuid,存到路徑中。
并根據文件內容生成一個md5信息,在調用上傳文件的接口后,會將文件的這些信息返回。
前端
交互設計
新建彈窗中,附件也和其他字段一樣管理。在點擊“確定”之后,attachments
字段數組存放的是上傳文件接口返回的文件信息,將這個字段和其他字段一起在調用 create 接口的時候作為 payload 傳下去。
缺點:文件會越來越多,一直是增量的,即使在記錄中刪除了附件,也沒有在數據(文件路徑下)中真正的刪除。
采用理由:在產品信息新頁面中,是需要記錄修改歷史記錄的,沒有物理刪除。所以該方案合理。
版本三
【平臺】-【OA】-【表單設計】-【上傳組件】