Browse Source

vue 和 main 合并

master
zhanglei 1 month ago
parent
commit
0982698cc4
  1. 4
      main.py
  2. 2
      utils.py
  3. 30
      vue.py

4
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 = yaml.safe_load(f)
cfg = resolve_config(cfg) cfg = resolve_config(cfg)
if (vue != ""): if (vue != ""):
generate_vue(vue, cfg) generate_vue(vue, cfg, over_write)
else: else:
context = { context = {
"mainModule": cfg["mainModule"], "mainModule": cfg["mainModule"],
@ -366,7 +366,7 @@ if __name__ == "__main__":
models = [m.strip() for m in args.model.split(",") if m.strip()] models = [m.strip() for m in args.model.split(",") if m.strip()]
conf = args.conf conf = args.conf
version = args.jdk version = args.jdk
rew = args.rew rew = args.re
generate( generate(
table_names=tables, table_names=tables,

2
utils.py

@ -72,7 +72,7 @@ def parse_args():
) )
parser.add_argument( parser.add_argument(
"--rew", "--re",
action="store_true", action="store_true",
help="是否覆盖已存在文件(默认不覆盖),不覆盖:false,覆盖:true" help="是否覆盖已存在文件(默认不覆盖),不覆盖:false,覆盖:true"
) )

30
vue.py

@ -1,11 +1,17 @@
import os import os
import logging
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
from db import get_table, get_columns from db import get_table, get_columns
from utils import * from utils import *
import yaml import yaml
env = Environment(loader=FileSystemLoader("templates/vue")) 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) tpl = env.get_template(template)
content = tpl.render(**ctx) content = tpl.render(**ctx)
@ -32,7 +38,7 @@ def build_fields(table):
return fields return fields
def generate_vue(table, cfg): def generate_vue(table, cfg , overwrite=False):
API_DIR = cfg["frontend"]["root"]+"/"+cfg["frontend"]["api"] API_DIR = cfg["frontend"]["root"]+"/"+cfg["frontend"]["api"]
VIEW_DIR = cfg["frontend"]["root"]+"/"+cfg["frontend"]["views"] VIEW_DIR = cfg["frontend"]["root"]+"/"+cfg["frontend"]["views"]
@ -41,7 +47,7 @@ def generate_vue(table, cfg):
EDIT_FIELDS = cfg["frontend"]["editFields"] EDIT_FIELDS = cfg["frontend"]["editFields"]
table_info = get_table(table) table_info = get_table(table)
entity = table # table.replace("health_","") entity = table
ctx = { ctx = {
"table":table, "table":table,
"table_comment":table_info["table_comment"], "table_comment":table_info["table_comment"],
@ -54,35 +60,41 @@ def generate_vue(table, cfg):
render( render(
"api.ts.j2", "api.ts.j2",
f"{API_DIR}/{entity}.ts", f"{API_DIR}/{entity}.ts",
ctx ctx,
overwrite
) )
render( render(
"index.vue.j2", "index.vue.j2",
f"{VIEW_DIR}/{entity}/index.vue", f"{VIEW_DIR}/{entity}/index.vue",
ctx ctx,
overwrite
) )
render( render(
"data.ts.j2", "data.ts.j2",
f"{VIEW_DIR}/{entity}/data.ts", f"{VIEW_DIR}/{entity}/data.ts",
ctx ctx,
overwrite
) )
render( render(
"form.ts.j2", "form.ts.j2",
f"{VIEW_DIR}/{entity}/form.ts", f"{VIEW_DIR}/{entity}/form.ts",
ctx ctx,
overwrite
) )
render( render(
"router.ts.j2", "router.ts.j2",
f"{ROUTER_DIR}/{entity}.ts", f"{ROUTER_DIR}/{entity}.ts",
ctx ctx,
overwrite
) )
render( render(
"mock.ts.j2", "mock.ts.j2",
f"{MOCK_DIR}/{entity}.ts", f"{MOCK_DIR}/{entity}.ts",
ctx ctx,
overwrite
) )
Loading…
Cancel
Save