jingrow/apps/jingrow/frontend/dist/assets/CreateAppTemplate-4a358f5d.js

2 lines
5.6 KiB
JavaScript

import{I as x}from"./iconify-30ae5ba5.js";import{d as S,u as M,r as b,t as a,e as F,f as u,g as i,j as t,h as e,w as l,D as G,y as V,x as o,l as P,p as v,a0 as j}from"./index-7b482730.js";import{_ as R}from"./_plugin-vue_export-helper-c27b6911.js";const Y={class:"create-app-template"},O={class:"page-header"},$={class:"header-content"},H={class:"header-text"},J={class:"description"},K={class:"content"},Q={class:"form-actions"},W={class:"flex items-center gap-2"},X=S({__name:"CreateAppTemplate",setup(Z){const h=M(),A=b(),g=b(!1),d=b(null),p=b({appName:"",appTitle:"",publisher:"Your Company",description:"",email:"support@yourcompany.com",license:"MIT"}),w=[{label:"MIT",value:"MIT"},{label:"Apache 2.0",value:"Apache 2.0"},{label:"GPL v3",value:"GPL v3"},{label:"AGPL v3",value:"AGPL v3"},{label:"BSD 3-Clause",value:"BSD 3-Clause"}],k={appName:[{required:!0,message:a("App name is required")},{pattern:/^[a-z][a-z0-9_]*$/,message:a("App name must start with lowercase letter and contain only lowercase letters, numbers, and underscores")}],appTitle:[{required:!0,message:a("App title is required")}],publisher:[{required:!0,message:a("Publisher is required")}],description:[{required:!0,message:a("Description is required")}],email:[{required:!0,message:a("Email is required")},{type:"email",message:a("Please enter a valid email")}]},q=()=>{p.value.appName?(p.value.appName=p.value.appName.toLowerCase().replace(/\s+/g,"_").replace(/[^a-z0-9_]/g,""),p.value.appTitle=p.value.appName.split("_").map(m=>m.charAt(0).toUpperCase()+m.slice(1)).join(" ")):p.value.appTitle=""},I=()=>{p.value={appName:"",appTitle:"",publisher:"Your Company",description:"",email:"support@yourcompany.com",license:"MIT"},d.value=null},B=async()=>{var m,n,c;try{await((m=A.value)==null?void 0:m.validate()),g.value=!0;const s=await j.post("/jingrow/dev/create-app-template",p.value);s.data.success?(d.value=s.data,h.success(a("App template created successfully"))):h.error(s.data.error||a("Failed to create app template"))}catch(s){console.error("Create app template error:",s),h.error(((c=(n=s.response)==null?void 0:n.data)==null?void 0:c.detail)||s.message||a("Failed to create app template"))}finally{g.value=!1}};return(m,n)=>{const c=o("n-input"),s=o("n-form-item"),_=o("n-form-item-grid-item"),E=o("n-select"),U=o("n-grid"),T=o("n-button"),C=o("n-icon"),z=o("n-space"),D=o("n-form"),N=o("n-card"),f=o("n-descriptions-item"),y=o("n-text"),L=o("n-descriptions");return P(),F("div",Y,[u("div",O,[u("div",$,[u("div",H,[u("h1",null,i(t(a)("Create App Template")),1),u("p",J,i(t(a)("Create a modern, efficient template app")),1)])])]),u("div",K,[e(N,null,{default:l(()=>[e(D,{ref_key:"formRef",ref:A,model:p.value,rules:k,"label-placement":"left","label-width":"140px",size:"large"},{default:l(()=>[e(U,{cols:3,"x-gap":24,responsive:"screen"},{default:l(()=>[e(_,null,{default:l(()=>[e(s,{label:t(a)("App Name"),path:"appName"},{default:l(()=>[e(c,{value:p.value.appName,"onUpdate:value":n[0]||(n[0]=r=>p.value.appName=r),placeholder:t(a)("Enter app name (spaces auto-converted to underscores)"),onInput:q},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("App Title"),path:"appTitle"},{default:l(()=>[e(c,{value:p.value.appTitle,"onUpdate:value":n[1]||(n[1]=r=>p.value.appTitle=r),placeholder:t(a)("App title (auto-generated from app name)")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("Publisher"),path:"publisher"},{default:l(()=>[e(c,{value:p.value.publisher,"onUpdate:value":n[2]||(n[2]=r=>p.value.publisher=r),placeholder:t(a)("Enter publisher name")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("Description"),path:"description"},{default:l(()=>[e(c,{value:p.value.description,"onUpdate:value":n[3]||(n[3]=r=>p.value.description=r),placeholder:t(a)("Enter app description")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("Email"),path:"email"},{default:l(()=>[e(c,{value:p.value.email,"onUpdate:value":n[4]||(n[4]=r=>p.value.email=r),placeholder:t(a)("Enter support email")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("License"),path:"license"},{default:l(()=>[e(E,{value:p.value.license,"onUpdate:value":n[5]||(n[5]=r=>p.value.license=r),options:w,placeholder:t(a)("Select license")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1}),u("div",Q,[e(z,null,{default:l(()=>[e(T,{onClick:I,size:"large"},{default:l(()=>[v(i(t(a)("Reset")),1)]),_:1}),e(T,{type:"primary",size:"large",loading:g.value,onClick:B},{icon:l(()=>[e(C,null,{default:l(()=>[e(t(x),{icon:"tabler:app-window"})]),_:1})]),default:l(()=>[v(" "+i(t(a)("Create App Template")),1)]),_:1},8,["loading"])]),_:1})])]),_:1},8,["model"])]),_:1}),d.value?(P(),G(N,{key:0,class:"mt-6"},{header:l(()=>[u("div",W,[e(C,{color:"#18a058"},{default:l(()=>[e(t(x),{icon:"tabler:check"})]),_:1}),u("span",null,i(t(a)("App Template Created Successfully")),1)])]),default:l(()=>[e(L,{column:2,bordered:""},{default:l(()=>[e(f,{label:t(a)("App Name")},{default:l(()=>[v(i(d.value.appName),1)]),_:1},8,["label"]),e(f,{label:t(a)("App Path")},{default:l(()=>[e(y,{code:""},{default:l(()=>[v(i(d.value.appPath),1)]),_:1})]),_:1},8,["label"]),e(f,{label:t(a)("Backend Path")},{default:l(()=>[e(y,{code:""},{default:l(()=>[v(i(d.value.backendPath),1)]),_:1})]),_:1},8,["label"]),e(f,{label:t(a)("Frontend Path")},{default:l(()=>[e(y,{code:""},{default:l(()=>[v(i(d.value.frontendPath),1)]),_:1})]),_:1},8,["label"])]),_:1})]),_:1})):V("",!0)])])}}});const te=R(X,[["__scopeId","data-v-17fe66dc"]]);export{te as default};