From 0982698cc4391175a2de368e5fdee81a6390b56d Mon Sep 17 00:00:00 2001 From: zhanglei Date: Fri, 3 Apr 2026 13:35:28 +0800 Subject: [PATCH] =?UTF-8?q?vue=20=E5=92=8C=20main=20=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 4 ++-- utils.py | 2 +- vue.py | 30 +++++++++++++++++++++--------- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/main.py b/main.py index 3fc129f..6e6e3d8 100644 --- a/main.py +++ b/main.py @@ -87,7 +87,7 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove cfg = yaml.safe_load(f) cfg = resolve_config(cfg) if (vue != ""): - generate_vue(vue, cfg) + generate_vue(vue, cfg, over_write) else: context = { "mainModule": cfg["mainModule"], @@ -366,7 +366,7 @@ if __name__ == "__main__": models = [m.strip() for m in args.model.split(",") if m.strip()] conf = args.conf version = args.jdk - rew = args.rew + rew = args.re generate( table_names=tables, diff --git a/utils.py b/utils.py index 6acb403..471c8d9 100644 --- a/utils.py +++ b/utils.py @@ -72,7 +72,7 @@ def parse_args(): ) parser.add_argument( - "--rew", + "--re", action="store_true", help="是否覆盖已存在文件(默认不覆盖),不覆盖:false,覆盖:true" ) diff --git a/vue.py b/vue.py index 88b785b..202e93b 100644 --- a/vue.py +++ b/vue.py @@ -1,11 +1,17 @@ import os +import logging from jinja2 import Environment, FileSystemLoader from db import get_table, get_columns from utils import * import yaml env = Environment(loader=FileSystemLoader("templates/vue")) -def render(template, out, ctx): +def render(template, out, ctx, overwrite=False): + + # 文件存在且不允许覆盖 → 跳过 + if os.path.exists(out) and not overwrite: + logging.info("Skip exists file: %s", out) + return tpl = env.get_template(template) content = tpl.render(**ctx) @@ -32,7 +38,7 @@ def build_fields(table): return fields -def generate_vue(table, cfg): +def generate_vue(table, cfg , overwrite=False): API_DIR = cfg["frontend"]["root"]+"/"+cfg["frontend"]["api"] VIEW_DIR = cfg["frontend"]["root"]+"/"+cfg["frontend"]["views"] @@ -41,7 +47,7 @@ def generate_vue(table, cfg): EDIT_FIELDS = cfg["frontend"]["editFields"] table_info = get_table(table) - entity = table # table.replace("health_","") + entity = table ctx = { "table":table, "table_comment":table_info["table_comment"], @@ -54,35 +60,41 @@ def generate_vue(table, cfg): render( "api.ts.j2", f"{API_DIR}/{entity}.ts", - ctx + ctx, + overwrite ) render( "index.vue.j2", f"{VIEW_DIR}/{entity}/index.vue", - ctx + ctx, + overwrite ) render( "data.ts.j2", f"{VIEW_DIR}/{entity}/data.ts", - ctx + ctx, + overwrite ) render( "form.ts.j2", f"{VIEW_DIR}/{entity}/form.ts", - ctx + ctx, + overwrite ) render( "router.ts.j2", f"{ROUTER_DIR}/{entity}.ts", - ctx + ctx, + overwrite ) render( "mock.ts.j2", f"{MOCK_DIR}/{entity}.ts", - ctx + ctx, + overwrite ) \ No newline at end of file