修改采购件对于两个搜索框的bug修复

This commit is contained in:
dxc
2026-02-11 13:39:02 +08:00
parent 5532c87684
commit 5f3ceef3fd
4 changed files with 233 additions and 110 deletions

View File

@ -1,4 +1,3 @@
# app/api/v1/inbound/buy.py
from flask import Blueprint, request, jsonify
from app.services.inbound.buy_service import BuyInboundService
import traceback
@ -7,14 +6,10 @@ inbound_buy_bp = Blueprint('stock_buy', __name__)
# ------------------------------------------------------------------
# 0. 基础物料搜索 (已修改:支持 page 参数)
# 0. 基础物料搜索
# ------------------------------------------------------------------
@inbound_buy_bp.route('/search-base', methods=['GET'])
def search_base():
"""
供前端下拉框远程搜索使用,支持分页
Query Param: keyword (名称或规格), page (默认1)
"""
try:
keyword = request.args.get('keyword', '')
page = request.args.get('page', 1, type=int)
@ -35,7 +30,7 @@ def search_base():
# ------------------------------------------------------------------
# 1. 获取列表
# 1. 获取列表 (修改:接收 category 和 material_type)
# ------------------------------------------------------------------
@inbound_buy_bp.route('/list', methods=['GET'])
def get_list():
@ -44,11 +39,15 @@ def get_list():
limit = request.args.get('pageSize', 15, type=int)
keyword = request.args.get('keyword', '')
# 获取状态列表参数,前端传参格式: statuses=在库,借库
# 新增筛选参数
category = request.args.get('category', '')
material_type = request.args.get('material_type', '')
# 状态参数处理
statuses_str = request.args.get('statuses', '')
statuses = statuses_str.split(',') if statuses_str else []
result = BuyInboundService.get_list(page, limit, keyword, statuses)
result = BuyInboundService.get_list(page, limit, keyword, statuses, category, material_type)
return jsonify({"code": 200, "msg": "success", "data": result})
except Exception as e:
traceback.print_exc()
@ -103,7 +102,19 @@ def delete_buy(id):
# ------------------------------------------------------------------
# 5. 获取关联的出库历史 (如果有)
# 5. [新增] 获取筛选下拉选项 (修复404的关键)
# ------------------------------------------------------------------
@inbound_buy_bp.route('/options', methods=['GET'])
def get_options():
try:
data = BuyInboundService.get_filter_options()
return jsonify({"code": 200, "msg": "success", "data": data})
except Exception as e:
return jsonify({"code": 500, "msg": str(e)}), 500
# ------------------------------------------------------------------
# 6. 获取关联的出库历史 (如果有)
# ------------------------------------------------------------------
@inbound_buy_bp.route('/<int:id>/history', methods=['GET'])
def get_history(id):
@ -112,7 +123,7 @@ def get_history(id):
# ------------------------------------------------------------------
# 6. 供应商建议
# 7. 供应商建议
# ------------------------------------------------------------------
@inbound_buy_bp.route('/suggestions/suppliers', methods=['GET'])
def get_supplier_suggestions():
@ -124,7 +135,7 @@ def get_supplier_suggestions():
# ------------------------------------------------------------------
# 7. 采购人建议 (全局)
# 8. 采购人建议 (全局)
# ------------------------------------------------------------------
@inbound_buy_bp.route('/suggestions/users', methods=['GET'])
def get_user_suggestions():
@ -134,7 +145,7 @@ def get_user_suggestions():
# ------------------------------------------------------------------
# 8. 链接建议
# 9. 链接建议
# ------------------------------------------------------------------
@inbound_buy_bp.route('/suggestions/links', methods=['GET'])
def get_link_suggestions():
@ -147,7 +158,7 @@ def get_link_suggestions():
# ------------------------------------------------------------------
# 9. [新增] 库位建议
# 10. 库位建议
# ------------------------------------------------------------------
@inbound_buy_bp.route('/suggestions/locations', methods=['GET'])
def get_location_suggestions():