| 1 |
- import{z as e,a1 as a,a2 as l,y as t,_ as n,d as o,aK as s,A as i,t as m,B as u,b as r}from"./element-plus.DUy1TWHM.js";import{aa as d,_ as p}from"./index.B1CvNv-2.js";import{M as _,af as c,bE as f,aI as b,aL as h,s as g,bJ as v,I as j,v as V,bb as k,H as w,bk as x,u as y,t as U,q as $,aU as B}from"./@vue.DbmRtknU.js";import"./lodash-es.DaM9m3L-.js";import"./async-validator.j0i5Y79Y.js";import"./@popperjs.DxtSUbXb.js";import"./@ctrl.BEgk5vdO.js";import"./dayjs.DCWbrgJ0.js";import"./memoize-one.BAtLgO95.js";import"./normalize-wheel-es.TzhA1irr.js";import"./@floating-ui.8vigAAFV.js";import"./pinia.BlfmsheH.js";import"./@vueuse.Dnsd2JKX.js";import"./vue-i18n.DXLOBfKS.js";import"./@intlify.DPMNdUn_.js";import"./nprogress.BTjJXJ-u.js";import"./codemirror.CYSLATvI.js";import"./diff-match-patch.DkK4wJpa.js";import"./vue-web-terminal.D-rog7dz.js";import"./vue.MGxsMDTR.js";/* empty css */import"./axios.Da-QW0H8.js";import"./qs.BQjOrGHM.js";import"./side-channel.4q28KFJj.js";import"./es-errors.DTEWvbA_.js";import"./object-inspect.DvQZIv3_.js";import"./side-channel-list.Do0-XmF5.js";import"./side-channel-map.DNHQ53lO.js";import"./get-intrinsic.Bbe5x-9b.js";import"./es-object-atoms.CyiuHMUS.js";import"./math-intrinsics.pM-JTNwN.js";import"./gopd.BudZp56J.js";import"./es-define-property.F0aoeP8o.js";import"./has-symbols.BcO-SUVM.js";import"./get-proto.Cb_fpw-j.js";import"./dunder-proto.WEH3rgQR.js";import"./call-bind-apply-helpers.DJjIjCF_.js";import"./function-bind.DrnB-baK.js";import"./hasown.BXcyoiLU.js";import"./call-bound.22gFUC2Q.js";import"./side-channel-weakmap.DpSeWE6i.js";import"./vue-router.yxIMtaxH.js";import"./pinia-plugin-persistedstate.COWkwNh5.js";const q={class:"gen-echo-grid"},z={class:"gen-echo-item"},I={class:"gen-echo-item__v"},S={class:"gen-echo-item"},W={class:"gen-echo-item__v"},A={class:"gen-echo-item"},G={class:"gen-echo-item__v"},L={class:"gen-echo-item"},O={class:"gen-echo-item__k gen-echo-item__k--with-tip"},C={class:"gen-echo-item__v"},E={key:0,class:"gen-echo-warn"},H={class:"gen-package-row"},J=p(_({name:"GenBasicStep",__name:"GenBasicStep",props:{info:{},rules:{},menuOptions:{}},emits:["clear-master-sub","master-sub-blur"],setup(p,{emit:_}){const J=p;function K(e,a){var l;for(const t of e){if(String(t.value)===String(a))return t;if(null==(l=t.children)?void 0:l.length){const e=K(t.children,a);if(e)return e}}return null}function D(){var e;const a=J.info.parent_menu_id;if(null==a)return null;const l=K(J.menuOptions||[],a),t=((null==l?void 0:l.route_path)??"").toString().trim();if(!t)return null;const n=null==(e=t.replace(/^\/+/,"").split("/",1)[0])?void 0:e.trim();return n?n.startsWith("module_")?n:`module_${n}`:null}const F=$(()=>D()||(J.info.package_name||"").trim()),M=$(()=>{const e=F.value,a=(J.info.module_name||"").trim();return e&&a?`${e}:${a}:query`:"<module_xxx>:<module>:<操作>"}),P=$(()=>{const e=F.value,a=(J.info.module_name||"").trim();return e&&a?`backend/app/plugin/${e}/${a}/`:"backend/app/plugin/<module_xxx>/<module>/"}),R=$(()=>{const e=F.value,a=(J.info.module_name||"").trim();return e&&a?`frontend/src/views/${e}/${a}/`:"frontend/src/views/<module_xxx>/<module>/"}),N=$(()=>{const e=F.value,a=(J.info.module_name||"").trim();return e&&a?`frontend/src/api/${e}/${a}.ts`:"frontend/src/api/<module_xxx>/<module>.ts"}),Q=_,T=B(),X=c(d,void 0);return f(()=>[J.info.parent_menu_id,J.info.module_name,J.info.table_name],()=>{if(null!=J.info.parent_menu_id)return;const e=(J.info.package_name||"").trim();if(e&&"gencode"!==e&&"module_gencode"!==e)return;const a=(J.info.module_name||"").trim(),l=(J.info.table_name||"").trim(),t=l?function(e){let a=e.trim().toLowerCase();return a?(a.startsWith("gen_")?a=a.slice(4):a.startsWith("tb_")&&(a=a.slice(3)),a=a.replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,""),a||"table"):""}(l):"",n=a?a.startsWith("module_")?a:`module_${a}`:t?`module_${t}`:"";n&&(J.info.package_name=n)},{immediate:!0}),f(T,e=>{X&&(X.value=e)},{immediate:!0}),b(()=>{X&&(X.value=void 0)}),(d,_)=>{const c=o,f=n,b=t,$=l,B=a,J=m,K=i,D=u,F=r,X=e;return h(),g(X,{ref_key:"formRef",ref:T,class:"gen-basic-step",model:p.info,rules:p.rules,"label-width":"120px"},{default:v(()=>[j(B,{gutter:12,class:"mb-3"},{default:v(()=>[j($,{span:24},{default:v(()=>[j(b,{shadow:"never",class:"gen-echo-card"},{default:v(()=>[_[17]||(_[17]=V("div",{class:"gen-echo-card__title"},"生成回显 / 生成文件路径",-1)),V("div",q,[V("div",z,[_[13]||(_[13]=V("div",{class:"gen-echo-item__k"},"后端路径",-1)),V("code",I,k(P.value),1)]),V("div",S,[_[14]||(_[14]=V("div",{class:"gen-echo-item__k"},"前端视图路径",-1)),V("code",W,k(R.value),1)]),V("div",A,[_[15]||(_[15]=V("div",{class:"gen-echo-item__k"},"前端 API 文件",-1)),V("code",G,k(N.value),1)]),V("div",L,[V("div",O,[_[16]||(_[16]=w(" 权限 ",-1)),j(f,{content:"前两段为包名、模块名;第三段为操作类型(与接口/按钮一致):query、detail、create、update、delete、patch、export、import、download。",placement:"top"},{default:v(()=>[j(c,{class:"gen-echo-item__tip"},{default:v(()=>[j(x(s))]),_:1})]),_:1})]),V("code",C,k(M.value),1)])]),p.info.sub_table_name&&p.info.sub_table_fk_name&&!p.info.master_sub_hint?(h(),y("div",E," 将额外生成子表代码(不创建子表菜单) ")):U("",!0)]),_:1})]),_:1})]),_:1}),j(B,{gutter:16,class:"gen-layout-row"},{default:v(()=>[j($,{span:24,class:"gen-layout-left"},{default:v(()=>[j(b,{shadow:"never",class:"gen-form-card"},{header:v(()=>[..._[18]||(_[18]=[V("div",{class:"gen-form-card__header"},[V("span",{class:"font-medium"},"基础信息"),V("span",{class:"gen-form-card__hint"},"切换步骤会先保存当前页")],-1)])]),default:v(()=>[j(B,{gutter:16},{default:v(()=>[j($,{span:12},{default:v(()=>[j(K,{label:"表名称",prop:"table_name"},{default:v(()=>[j(J,{modelValue:p.info.table_name,"onUpdate:modelValue":_[0]||(_[0]=e=>p.info.table_name=e),placeholder:"请输入表名称"},null,8,["modelValue"])]),_:1})]),_:1}),j($,{span:12},{default:v(()=>[j(K,{label:"表描述",prop:"table_comment"},{default:v(()=>[j(J,{modelValue:p.info.table_comment,"onUpdate:modelValue":_[1]||(_[1]=e=>p.info.table_comment=e),placeholder:"请输入表描述"},null,8,["modelValue"])]),_:1})]),_:1}),j($,{span:12},{default:v(()=>[j(K,{label:"实体类名称",prop:"class_name"},{default:v(()=>[j(J,{modelValue:p.info.class_name,"onUpdate:modelValue":_[2]||(_[2]=e=>p.info.class_name=e),placeholder:"请输入"},null,8,["modelValue"])]),_:1})]),_:1}),j($,{span:12},{default:v(()=>[j(K,{prop:"package_name"},{label:v(()=>[_[19]||(_[19]=w(" 包名 ",-1)),j(f,{content:"插件包名(plugin 顶层目录)。三段式示例:module_example",placement:"top"},{default:v(()=>[j(c,null,{default:v(()=>[j(x(s))]),_:1})]),_:1})]),default:v(()=>[V("div",H,[j(J,{modelValue:p.info.package_name,"onUpdate:modelValue":_[3]||(_[3]=e=>p.info.package_name=e),class:"gen-package-row__input",placeholder:"例如 module_example",clearable:""},null,8,["modelValue"])])]),_:1})]),_:1}),j($,{span:12},{default:v(()=>[j(K,{prop:"module_name"},{label:v(()=>[_[20]||(_[20]=w(" 模块名 ",-1)),j(f,{content:"包名下第二层目录。示例:demo / gen_demo02",placement:"top"},{default:v(()=>[j(c,null,{default:v(()=>[j(x(s))]),_:1})]),_:1})]),default:v(()=>[j(J,{modelValue:p.info.module_name,"onUpdate:modelValue":_[4]||(_[4]=e=>p.info.module_name=e),placeholder:"例如 demo",clearable:""},null,8,["modelValue"])]),_:1})]),_:1}),j($,{span:12},{default:v(()=>[j(K,{prop:"business_name"},{label:v(()=>[_[21]||(_[21]=w(" 业务名 ",-1)),j(f,{content:"模块下第三层目录(可为空)。示例:demo01;留空表示仅到模块目录",placement:"top"},{default:v(()=>[j(c,null,{default:v(()=>[j(x(s))]),_:1})]),_:1})]),default:v(()=>[j(J,{modelValue:p.info.business_name,"onUpdate:modelValue":_[5]||(_[5]=e=>p.info.business_name=e),placeholder:"例如 demo01(可留空)",clearable:""},null,8,["modelValue"])]),_:1})]),_:1}),j($,{span:12},{default:v(()=>[j(K,{prop:"function_name"},{label:v(()=>[_[22]||(_[22]=w(" 功能名 ",-1)),j(f,{content:"写入本地时作为菜单名称,例如 用户管理",placement:"top"},{default:v(()=>[j(c,null,{default:v(()=>[j(x(s))]),_:1})]),_:1})]),default:v(()=>[j(J,{modelValue:p.info.function_name,"onUpdate:modelValue":_[6]||(_[6]=e=>p.info.function_name=e),placeholder:"例如 用户管理"},null,8,["modelValue"])]),_:1})]),_:1}),j($,{span:12},{default:v(()=>[j(K,null,{label:v(()=>[_[23]||(_[23]=w(" 上级菜单 ",-1)),j(f,{content:"仅可选目录;留空则在侧栏根下创建模块目录",placement:"top"},{default:v(()=>[j(c,null,{default:v(()=>[j(x(s))]),_:1})]),_:1})]),default:v(()=>[j(D,{modelValue:p.info.parent_menu_id,"onUpdate:modelValue":_[7]||(_[7]=e=>p.info.parent_menu_id=e),data:p.menuOptions,placeholder:"不选=根目录下挂模块目录;选=挂到该目录下","check-strictly":"",filterable:"","default-expand-all":"","render-after-expand":!1,clearable:"",style:{width:"100%"}},null,8,["modelValue","data"])]),_:1})]),_:1}),j($,{span:24},{default:v(()=>[j(K,{label:"备注",prop:"description"},{default:v(()=>[j(J,{modelValue:p.info.description,"onUpdate:modelValue":_[8]||(_[8]=e=>p.info.description=e),type:"textarea",rows:3},null,8,["modelValue"])]),_:1})]),_:1}),j($,{span:24},{default:v(()=>[j(b,{shadow:"never",class:"master-sub-card mb-4"},{default:v(()=>[j(B,{gutter:16},{default:v(()=>[j($,{span:12},{default:v(()=>[j(K,{prop:"sub_table_name"},{label:v(()=>[_[24]||(_[24]=w(" 子表表名 ",-1)),j(f,{content:"数据库中已存在的物理表名,例如 gen_order_item",placement:"top"},{default:v(()=>[j(c,null,{default:v(()=>[j(x(s))]),_:1})]),_:1})]),default:v(()=>[j(J,{modelValue:p.info.sub_table_name,"onUpdate:modelValue":_[9]||(_[9]=e=>p.info.sub_table_name=e),placeholder:"与下栏同时填写,如 gen_order_item",clearable:"",onBlur:_[10]||(_[10]=e=>Q("master-sub-blur"))},null,8,["modelValue"])]),_:1})]),_:1}),j($,{span:12},{default:v(()=>[j(K,{prop:"sub_table_fk_name"},{label:v(()=>[_[25]||(_[25]=w(" 子表外键列 ",-1)),j(f,{content:"子表中指向主表主键的列名,例如 order_id(类型需与主键匹配)",placement:"top"},{default:v(()=>[j(c,null,{default:v(()=>[j(x(s))]),_:1})]),_:1})]),default:v(()=>[j(J,{modelValue:p.info.sub_table_fk_name,"onUpdate:modelValue":_[11]||(_[11]=e=>p.info.sub_table_fk_name=e),placeholder:"与上栏同时填写,如 order_id",clearable:"",onBlur:_[12]||(_[12]=e=>Q("master-sub-blur"))},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),p.info.master_sub_hint?(h(),g(F,{key:0,class:"mt-1",type:"warning",closable:!1,"show-icon":"",title:p.info.master_sub_hint},null,8,["title"])):p.info.sub&&p.info.sub_table_name&&p.info.sub_table_fk_name?(h(),g(F,{key:1,class:"mt-1",type:"success",closable:!1,"show-icon":"",title:"主子表结构已从数据库加载,预览与生成将包含子表代码。"})):U("",!0)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["model","rules"])}}}),[["__scopeId","data-v-d7ee0a7c"]]);export{J as default};
|