🐛 修复BUG, 网页控制台选择框也支持输入文字, 数据库搜索模糊匹配

This commit is contained in:
KimigaiiWuyi 2025-03-15 07:30:48 +08:00
parent 2979a39d99
commit a5519ca6c1
3 changed files with 22 additions and 3 deletions

View File

@ -419,7 +419,7 @@ async def draw_plugins_status():
(605 + 210 * indexj, 11), (605 + 210 * indexj, 11),
badge, badge,
) )
if index >= 2: if indexj >= 2:
break break
img.paste( img.paste(

View File

@ -117,7 +117,7 @@ def get_alert(
def get_select_panel(label: str, name: str, value: str, options: List[str]): def get_select_panel(label: str, name: str, value: str, options: List[str]):
return { return {
'type': 'select', 'type': 'input-text',
'label': label, 'label': label,
'name': name, 'name': name,
'options': [{'label': option, 'value': option} for option in options], 'options': [{'label': option, 'value': option} for option in options],

View File

@ -1,6 +1,6 @@
# flake8: noqa # flake8: noqa
import platform import platform
from typing import Any, Callable from typing import Any, Dict, List, Callable
from starlette import status from starlette import status
from pydantic import BaseModel from pydantic import BaseModel
@ -13,11 +13,13 @@ from fastapi_user_auth.auth.models import User
from fastapi_amis_admin.models.fields import Field from fastapi_amis_admin.models.fields import Field
from fastapi import Depends, Request, HTTPException from fastapi import Depends, Request, HTTPException
from fastapi_user_auth.admin.app import UserAuthApp from fastapi_user_auth.admin.app import UserAuthApp
from sqlalchemy.sql.elements import BinaryExpression
from fastapi_amis_admin.admin.settings import Settings from fastapi_amis_admin.admin.settings import Settings
from fastapi_user_auth.admin.site import AuthAdminSite from fastapi_user_auth.admin.site import AuthAdminSite
from fastapi_amis_admin.utils.translation import i18n as _ from fastapi_amis_admin.utils.translation import i18n as _
from fastapi_amis_admin.admin import Settings, PageSchemaAdmin from fastapi_amis_admin.admin import Settings, PageSchemaAdmin
from fastapi_amis_admin.admin.site import FileAdmin, APIDocsApp from fastapi_amis_admin.admin.site import FileAdmin, APIDocsApp
from fastapi_amis_admin.crud.parser import get_python_type_parse
from fastapi_amis_admin.amis.constants import LevelEnum, DisplayModeEnum from fastapi_amis_admin.amis.constants import LevelEnum, DisplayModeEnum
from fastapi_user_auth.admin.admin import ( from fastapi_user_auth.admin.admin import (
FormAdmin, FormAdmin,
@ -329,6 +331,23 @@ class GsAdminModel(admin.ModelAdmin):
request request
) )
def calc_filter_clause(
self, data: Dict[str, Any]
) -> List[BinaryExpression]:
lst = []
for k, v in data.items():
sqlfield = self._filter_entities.get(k)
v = '[~]' + v
if sqlfield is not None:
operator, val = self._parser_query_value(
v,
python_type_parse=get_python_type_parse(sqlfield),
)
if operator:
sql = getattr(sqlfield, operator)(*val)
lst.append(sql)
return lst
class GsAdminPage(admin.PageAdmin): class GsAdminPage(admin.PageAdmin):
async def has_page_permission( async def has_page_permission(