fix: 多个filter之间修改为与逻辑 (#4885)
This commit is contained in:
parent
afefce80cc
commit
8881b5953d
|
|
@ -130,20 +130,27 @@ module.exports = async (ctx, next) => {
|
|||
}
|
||||
};
|
||||
|
||||
if (ctx.query.filter || ctx.query.filter_title || ctx.query.filter_description || ctx.query.filter_author) {
|
||||
if (ctx.query.filter) {
|
||||
ctx.query.filter_title = ctx.query.filter;
|
||||
ctx.query.filter_description = ctx.query.filter;
|
||||
}
|
||||
if (ctx.query.filter) {
|
||||
ctx.state.data.item = ctx.state.data.item.filter((item) => {
|
||||
const title = item.title || '';
|
||||
const description = item.description || title;
|
||||
const author = item.author || '';
|
||||
const isFilter = title.match(makeRegex(ctx.query.filter)) || description.match(makeRegex(ctx.query.filter)) || author.match(makeRegex(ctx.query.filter));
|
||||
return isFilter !== null;
|
||||
});
|
||||
}
|
||||
|
||||
// 启用filter参数时,无效filter_title/description/author
|
||||
if (!ctx.query.filter && (ctx.query.filter_title || ctx.query.filter_description || ctx.query.filter_author)) {
|
||||
ctx.state.data.item = ctx.state.data.item.filter((item) => {
|
||||
const title = item.title || '';
|
||||
const description = item.description || title;
|
||||
const author = item.author || '';
|
||||
let isFilter = true;
|
||||
ctx.query.filter_title && (isFilter = isFilter && !title.match(makeRegex(ctx.query.filter_title)));
|
||||
ctx.query.filter_description && (isFilter = isFilter && !description.match(makeRegex(ctx.query.filter_description)));
|
||||
ctx.query.filter_author && (isFilter = isFilter && !author.match(makeRegex(ctx.query.filter_author)));
|
||||
return !isFilter;
|
||||
ctx.query.filter_title && (isFilter = isFilter && title.match(makeRegex(ctx.query.filter_title)));
|
||||
ctx.query.filter_description && (isFilter = isFilter && description.match(makeRegex(ctx.query.filter_description)));
|
||||
ctx.query.filter_author && (isFilter = isFilter && author.match(makeRegex(ctx.query.filter_author)));
|
||||
return isFilter !== null;
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue