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