feat: add advanced filtering and full-field sorting to material list

Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
This commit is contained in:
dxc
2026-03-02 15:22:04 +08:00
parent 9b794d7f64
commit c5872aed3c
2 changed files with 83 additions and 13 deletions

View File

@ -5,6 +5,7 @@ from app.services.inbound.base_service import MaterialBaseService
from app.utils.decorators import login_required, permission_required
import traceback
import datetime
import json
inbound_base_bp = Blueprint('stock_base', __name__)
@ -105,6 +106,13 @@ def get_list():
page = request.args.get('pageNum', 1, type=int)
limit = request.args.get('pageSize', 10, type=int)
# 解析高级筛选条件
advanced_filters_raw = request.args.get('advancedFilters', '[]')
try:
advanced_filters_list = json.loads(advanced_filters_raw)
except:
advanced_filters_list = []
# 构造筛选条件
filters = {
'keyword': request.args.get('keyword', ''),
@ -113,7 +121,8 @@ def get_list():
'type': request.args.get('type', ''),
'isEnabled': request.args.get('isEnabled', None),
'orderByColumn': request.args.get('orderByColumn', ''),
'isAsc': request.args.get('isAsc', None)
'isAsc': request.args.get('isAsc', None),
'advancedFilters': advanced_filters_list
}
result = MaterialBaseService.get_list(page, limit, filters)