feat: add table sorting and advanced filtering for products
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
This commit is contained in:
@ -78,7 +78,40 @@ def get_list():
|
||||
category = request.args.get('category', '')
|
||||
material_type = request.args.get('material_type', '')
|
||||
company = request.args.get('company', '')
|
||||
result = ProductInboundService.get_list(page, limit, keyword, statuses, category, material_type, company)
|
||||
order_by_column = request.args.get('orderByColumn', '')
|
||||
is_asc = request.args.get('isAsc', '')
|
||||
advanced_filters_str = request.args.get('advancedFilters', '')
|
||||
|
||||
# 准备额外筛选字典
|
||||
extra_filters = {}
|
||||
if company:
|
||||
extra_filters['company'] = company
|
||||
if category:
|
||||
extra_filters['category'] = category
|
||||
if material_type:
|
||||
extra_filters['material_type'] = material_type
|
||||
if order_by_column:
|
||||
extra_filters['order_by_column'] = order_by_column
|
||||
if is_asc:
|
||||
extra_filters['is_asc'] = is_asc
|
||||
if advanced_filters_str:
|
||||
try:
|
||||
import json
|
||||
advanced_filters = json.loads(advanced_filters_str)
|
||||
extra_filters['advanced_filters'] = advanced_filters
|
||||
except Exception:
|
||||
extra_filters['advanced_filters'] = []
|
||||
|
||||
# 调用服务,传入所有参数
|
||||
result = ProductInboundService.get_list(
|
||||
page, limit, keyword, statuses,
|
||||
category=extra_filters.get('category'),
|
||||
material_type=extra_filters.get('material_type'),
|
||||
company=extra_filters.get('company'),
|
||||
order_by_column=extra_filters.get('order_by_column'),
|
||||
is_asc=extra_filters.get('is_asc'),
|
||||
advanced_filters=extra_filters.get('advanced_filters')
|
||||
)
|
||||
user_permissions = get_current_user_permissions()
|
||||
if result.get('items'):
|
||||
result['items'] = [filter_item_by_permissions(item, user_permissions) for item in result['items']]
|
||||
@ -184,4 +217,4 @@ def calculate_bom_cost():
|
||||
return jsonify({"code": 200, "msg": "success", "data": cost})
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
return jsonify({"code": 500, "msg": str(e)}), 500
|
||||
return jsonify({"code": 500, "msg": str(e)}), 500
|
||||
|
||||
Reference in New Issue
Block a user