feat(generate): 优化代码生成逻辑
- 新增公共字段配置,统一处理常见字段的生成规则 - 修复模板中的一些错误,如变量名、函数名等 - 优化代码结构,提高可读性和可维护性
This commit is contained in:
@@ -79,7 +79,7 @@ async def delete_{{ name }}_list(request: Request, params: DeleteListParams):
|
||||
async def update_{{ name }}(request: Request, params: Update{{ class_name }}Params, id: str = Path(description="{{ description }}ID")):
|
||||
if {{ name }} := await {{ class_name }}.get_or_none(id=id, del_flag=1):
|
||||
{% for column in columns if column.is_edit %}
|
||||
{{ name }}.{{ column.python_name }} = params.{{ column.python_name }},
|
||||
{{ name }}.{{ column.python_name }} = params.{{ column.python_name }}
|
||||
{% endfor %}
|
||||
await {{ name }}.save()
|
||||
return Response.success(msg="修改成功")
|
||||
|
||||
@@ -14,7 +14,7 @@ class {{ class_name }}(BaseModel):
|
||||
"""
|
||||
{{ table_comment }}模型
|
||||
"""
|
||||
{% for column in columns %}
|
||||
{% for column in columns if column.is_common == false %}
|
||||
{%- set params = [] %}
|
||||
{%- if column.max_length is not none %}{% set params = params + ["max_length=" ~ column.max_length] %}{% endif %}
|
||||
{%- if column.is_nullable %}{% set params = params + ["null=True"] %}{% endif %}
|
||||
|
||||
@@ -14,7 +14,7 @@ from schemas.common import BaseResponse, ListQueryResult
|
||||
class {{ class_name }}Info(BaseModel):
|
||||
"""{{ description }}信息"""
|
||||
model_config = ConfigDict(alias_generator=to_snake, populate_by_name=True)
|
||||
{% for column in columns %}
|
||||
{% for column in columns if column.is_list %}
|
||||
{{ column.python_name }}: {% if not column.is_required %}Optional[{% endif %}{{ column.python_type }}{% if not column.is_required %}]{% endif %} = Field(
|
||||
{% if column.default is not none %}default={{ column.default }}, {% endif %}title="{{ column.column_comment }}"
|
||||
)
|
||||
@@ -46,6 +46,6 @@ class Get{{ class_name }}InfoListResult(ListQueryResult):
|
||||
"""获取{{ description }}信息列表响应结果"""
|
||||
result: List[{{ class_name }}Info] = Field(None, title="{{ table_comment }}信息列表")
|
||||
|
||||
class Get{{ class_name }}InfoListResponse(BaseResponse):
|
||||
class Get{{ class_name }}ListResponse(BaseResponse):
|
||||
"""获取{{ description }}信息列表响应"""
|
||||
data: Get{{ class_name }}InfoListResult = Field(None, title="{{ table_comment }}信息列表")
|
||||
|
||||
@@ -184,9 +184,7 @@ export const use{{ class_name }} = (tableRef: Ref) => {
|
||||
const onbatchDel = async () => {
|
||||
// 返回当前选中的行
|
||||
const curSelected = tableRef.value.getTableRef().getSelectionRows();
|
||||
const res = await delete{{ class_name }}ListAPI({
|
||||
ids: getKeyList(curSelected, "id")
|
||||
});
|
||||
const res = await delete{{ class_name }}ListAPI(getKeyList(curSelected, "id"));
|
||||
if (res.success) {
|
||||
message(res.msg, {
|
||||
type: "success"
|
||||
@@ -235,7 +233,7 @@ export const use{{ class_name }} = (tableRef: Ref) => {
|
||||
{{ column.python_name }}: FormData.{{ column.python_name }} ?? "",
|
||||
{% endfor %}
|
||||
};
|
||||
const res = await postAdd{{ class_name }}PI(addForm);
|
||||
const res = await postAdd{{ class_name }}API(addForm);
|
||||
if (res.success) {
|
||||
done();
|
||||
await onSearch();
|
||||
@@ -243,7 +241,7 @@ export const use{{ class_name }} = (tableRef: Ref) => {
|
||||
message(res.msg, { type: res.success ? "success" : "error" });
|
||||
} else {
|
||||
let updateForm = {
|
||||
{% for column in columns if column.is_update %}
|
||||
{% for column in columns if column.is_edit %}
|
||||
/** {{ column.column_comment }} */
|
||||
{{ column.python_name }}: FormData.{{ column.python_name }} ?? "",
|
||||
{% endfor %}
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<template>
|
||||
<el-form ref="ruleFormRef" :model="newFormInline" label-width="82px">
|
||||
<el-form
|
||||
ref="ruleFormRef"
|
||||
:model="newFormInline"
|
||||
:rules="formRules"
|
||||
label-width="82px"
|
||||
>
|
||||
<el-row :gutter="30">
|
||||
[% for column in columns if column.is_insert or column.is_edit %]
|
||||
<re-col :value="24" :xm="24" :sm="24">
|
||||
@@ -63,7 +68,7 @@
|
||||
</el-form>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import ReCol from "@/components/ReCol";
|
||||
import type { FormRules } from "element-plus";
|
||||
import { [[ class_name ]]Info } from "types/[[ name ]]";
|
||||
@@ -84,7 +89,7 @@ const props = withDefaults(defineProps<FormProps>(), {
|
||||
[% endfor %]
|
||||
})
|
||||
});
|
||||
const newFormInline = ref<ConfigInfo>(props.formInline);
|
||||
const newFormInline = ref<[[ class_name ]]Info>(props.formInline);
|
||||
/** 自定义表单规则校验 */
|
||||
const formRules = reactive<FormRules>({
|
||||
[% for column in columns if column.is_insert or column.is_edit %]
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<PureTableBar title="{{ description }}管理" :columns="columns" @refresh="onSearch">
|
||||
<PureTableBar title="[[ description ]]管理" :columns="columns" @refresh="onSearch">
|
||||
<template #buttons>
|
||||
<el-button
|
||||
v-if="hasAuth('[[ name ]]:btn:add')"
|
||||
@@ -179,7 +179,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
defineOptions({
|
||||
name: "{{ class_name }}Index"
|
||||
name: "[[ class_name ]]Index"
|
||||
});
|
||||
import { ref } from "vue";
|
||||
import { use[[ class_name ]] } from "./utils/hook";
|
||||
|
||||
Reference in New Issue
Block a user