feat(borrow,outbound): 申请预检按需显示审批人——默认不显示,命中需审批才出现并必选
- 后端新增 /borrow/request/check-approval 与 /outbound/request/check-approval 预检接口 - 申请弹窗默认隐藏审批人;提交前预检:命中需审批→显示审批人并红字列物料、未选拦截;未命中→隐藏并直接提交(approver=null) - 申请 items 补传 base_id 供后端 ID 精确判定
This commit is contained in:
@ -429,6 +429,28 @@ def create_outbound_request():
|
||||
return jsonify({'code': 500, 'msg': f'服务器内部错误: {str(e)}'}), 500
|
||||
|
||||
|
||||
# --------------------------------------------------------
|
||||
# 4.1 出库申请预检(判断所选物料是否需审批,驱动前端是否显示审批人)
|
||||
# POST /api/v1/outbound/request/check-approval
|
||||
# --------------------------------------------------------
|
||||
@outbound_bp.route('/request/check-approval', methods=['POST'])
|
||||
@jwt_required()
|
||||
@permission_required('outbound_selection')
|
||||
def check_outbound_approval():
|
||||
try:
|
||||
data = request.get_json() or {}
|
||||
items = data.get('items', []) or []
|
||||
from app.services.approval_control import resolve_approval_control
|
||||
need_approval, flagged = resolve_approval_control(items)
|
||||
return jsonify({
|
||||
"code": 200, "msg": "success",
|
||||
"data": {"need_approval": need_approval, "materials": flagged}
|
||||
}), 200
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
return jsonify({"code": 500, "msg": f"预检失败: {str(e)}"}), 500
|
||||
|
||||
|
||||
# --------------------------------------------------------
|
||||
# 5. 审批出库申请
|
||||
# PATCH /api/v1/outbound/request/<id>/approve
|
||||
|
||||
@ -311,6 +311,25 @@ def close_borrow_request(request_id):
|
||||
return jsonify({'code': 500, 'msg': f'服务器内部错误: {str(e)}'}), 500
|
||||
|
||||
|
||||
# --- 借库申请预检(判断所选物料是否需审批,驱动前端是否显示审批人) ---
|
||||
@trans_bp.route('/borrow/request/check-approval', methods=['POST'])
|
||||
@jwt_required()
|
||||
@permission_required('op_borrow_apply')
|
||||
def check_borrow_approval():
|
||||
try:
|
||||
data = request.get_json() or {}
|
||||
items = data.get('items', []) or []
|
||||
from app.services.approval_control import resolve_approval_control
|
||||
need_approval, flagged = resolve_approval_control(items)
|
||||
return jsonify({
|
||||
"code": 200, "msg": "success",
|
||||
"data": {"need_approval": need_approval, "materials": flagged}
|
||||
}), 200
|
||||
except Exception as e:
|
||||
import traceback; traceback.print_exc()
|
||||
return jsonify({"code": 500, "msg": f"预检失败: {str(e)}"}), 500
|
||||
|
||||
|
||||
# --- 获取借库审批单列表 ---
|
||||
@trans_bp.route('/borrow/request', methods=['GET'])
|
||||
@jwt_required()
|
||||
|
||||
Reference in New Issue
Block a user