添加登录日志

This commit is contained in:
xie7654
2025-07-02 17:17:17 +08:00
parent 6cd05925ff
commit eace8a524d
19 changed files with 443 additions and 23 deletions

View File

@@ -23,7 +23,7 @@ def gen_menu(app_name, model_name, parent_menu_name, creator='admin'):
meta = MenuMeta.objects.create(
title=f"{app_name}.{model_lower}.title",
icon="",
order=0,
sort=0,
affix_tab=False,
badge="",
badge_type="",
@@ -38,7 +38,7 @@ def gen_menu(app_name, model_name, parent_menu_name, creator='admin'):
name=model_title,
status=1,
type="menu",
sort=50,
sort=100,
path=f"/{app_name}/{model_lower}",
component=f"/{app_name}/{model_lower}/list",
auth_code="",
@@ -56,7 +56,7 @@ def gen_menu(app_name, model_name, parent_menu_name, creator='admin'):
btn_meta = MenuMeta.objects.create(
title=btn["title"],
icon="",
order=0,
sort=0,
affix_tab=False,
badge="",
badge_type="",

View File

@@ -77,7 +77,7 @@ class Command(BaseCommand):
raise CommandError(f'模型 {app_name}.{model_name} 不存在')
# 生成后端代码
# self.generate_backend_code(app_name, model_name, model, model_name_snake)
self.generate_backend_code(app_name, model_name, model, model_name_snake)
if generate_frontend:
# 生成前端代码
@@ -210,14 +210,13 @@ class Command(BaseCommand):
"""生成表单字段配置"""
field_name = field.name
field_label = getattr(field, 'verbose_name', field_name)
col_props = ",\n colProps: { span: 12 }"
if isinstance(field, models.CharField):
return f''' {{\n component: 'Input',\n fieldName: '{field_name}',\n label: '{field_label}',{col_props}\n rules: z\n .string()\n .min(1, $t('ui.formRules.required', ['{field_label}']))\n .max(100, $t('ui.formRules.maxLength', ['{field_label}', 100])),\n }},'''
return f''' {{\n component: 'Input',\n fieldName: '{field_name}',\n label: '{field_label}',\n rules: z\n .string()\n .min(1, $t('ui.formRules.required', ['{field_label}']))\n .max(100, $t('ui.formRules.maxLength', ['{field_label}', 100])),\n }},'''
elif isinstance(field, models.TextField):
return f''' {{\n component: 'Input',\n componentProps: {{\n rows: 3,\n showCount: true,\n }},\n fieldName: '{field_name}',\n label: '{field_label}',{col_props}\n rules: z\n .string()\n .max(500, $t('ui.formRules.maxLength', ['{field_label}', 500]))\n .optional(),\n }},'''
return f''' {{\n component: 'Input',\n componentProps: {{\n rows: 3,\n showCount: true,\n }},\n fieldName: '{field_name}',\n label: '{field_label}',\n rules: z\n .string()\n .max(500, $t('ui.formRules.maxLength', ['{field_label}', 500]))\n .optional(),\n }},'''
elif isinstance(field, models.IntegerField):
return f''' {{\n component: 'InputNumber',\n fieldName: '{field_name}',\n label: '{field_label}',{col_props}\n }},'''
return f''' {{\n component: 'InputNumber',\n fieldName: '{field_name}',\n label: '{field_label}',\n }},'''
elif isinstance(field, models.BooleanField):
return f''' {{\n component: 'RadioGroup',\n componentProps: {{\n buttonStyle: 'solid',\n options: [\n {{ label: '开启', value: 1 }},\n {{ label: '关闭', value: 0 }},\n ],\n optionType: 'button',\n }},{col_props}\n defaultValue: 1,\n fieldName: '{field_name}',\n label: '{field_label}',\n }},'''
return f''' {{\n component: 'RadioGroup',\n componentProps: {{\n buttonStyle: 'solid',\n options: [\n {{ label: '开启', value: 1 }},\n {{ label: '关闭', value: 0 }},\n ],\n optionType: 'button',\n }},\n defaultValue: 1,\n fieldName: '{field_name}',\n label: '{field_label}',\n }},'''
else:
return f''' {{\n component: 'Input',\n fieldName: '{field_name}',\n label: '{field_label}',{col_props}\n }},'''
return f''' {{\n component: 'Input',\n fieldName: '{field_name}',\n label: '{field_label}',\n }},'''

View File

@@ -32,7 +32,7 @@ ${columns}
cellRender: {
attrs: {
nameField: 'name',
nameTitle: $t('${app_name}.${model_name_snake}.name'),
nameTitle: $$t('${app_name}.${model_name_snake}.name'),
onClick: onActionClick,
},
name: 'CellOperation',

View File

@@ -8,6 +8,6 @@ $interface_fields
export class ${app_name_camel}${model_name}Model extends BaseModel<${app_name_camel}${model_name}Api.${app_name_camel}${model_name}> {
constructor() {
super('/$app_name/${model_name_lower}/');
super('/$app_name/${model_name_snake}/');
}
}