@mpsc/cli
Version:
2 lines (1 loc) • 10.5 kB
JavaScript
import{d as e,r as a,D as t,F as l,o as r,b as o,e as s,Q as n,ac as i,y as c,Z as d,u,K as p,I as m,V as g,U as f,P as v,_ as h,Y as y,a5 as _,ao as b,ah as k}from"../vender/third_party-DLuX2Pn9.js";import{E as x,a as N,b as I,c as w,d as O,e as P,f as V,g as R,v as U,h as L,i as E,j as T,k as j,l as C,m as q,n as S}from"../vender/element-plus-DAsW63Hw.js";!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))a(e);new MutationObserver((e=>{for(const t of e)if("childList"===t.type)for(const e of t.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&a(e)})).observe(document,{childList:!0,subtree:!0})}function a(e){if(e.ep)return;e.ep=!0;const a=function(e){const a={};return e.integrity&&(a.integrity=e.integrity),e.referrerPolicy&&(a.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?a.credentials="include":"anonymous"===e.crossOrigin?a.credentials="omit":a.credentials="same-origin",a}(e);fetch(e.href,a)}}();var A=(e=>(e.DONE="done",e.INFO="info",e.WARN="warn",e.ERROR="error",e.LOG="log",e.LINK="link",e))(A||{});const F={class:"logger-ui"},B={class:"logger-output-time"},D=["href"],Q=(e,a)=>{const t=e.__vccOpts||e;for(const[l,r]of a)t[l]=r;return t},K=Q(e({__name:"Log",setup(e,{expose:m}){const g=a(null),f=a([]),v={[A.INFO]:"logger-output-info",[A.WARN]:"logger-output-warn",[A.ERROR]:"logger-output-error",[A.DONE]:"logger-output-done",[A.LOG]:"logger-output-log",[A.LINK]:"logger-output-link"};let h=null;const y=()=>{f.value=[{time:(new Date).toLocaleTimeString(),level:A.INFO,message:"小程序构建日志监控"}],h&&h.close()};m({clear:y,startWatch:e=>{y(),_({level:A.INFO,message:"开始监听构建日志"}),k(e)}});const _=e=>{f.value.push({time:(new Date).toLocaleTimeString(),level:e.level,message:e.message}),b()},b=async()=>{await c(),g.value&&(g.value.scrollTop=g.value.scrollHeight)},k=e=>{h=new EventSource("/api/message"),h.onopen=()=>{var a;(a=e,fetch("/api/postBuildInfo",{method:"POST",body:JSON.stringify(a),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).catch((e=>x.error(e)))).then((e=>{0!==e.code&&(x.error(e.message),y())})).catch((e=>{x.error("开始构建失败,打开控制台查看原因"),console.error("开始构建操作失败原因:",e),y()}))},h.onmessage=e=>{try{const a=JSON.parse(e.data);"done"===a.buildStatus?_({level:A.LINK,message:a.url}):_({level:a.level,message:a.message})}catch(a){console.error("本条日志接收失败,原因:",a)}},h.onerror=()=>{y(),x.error("监听构建日志失败")}};return t((()=>{_({level:A.INFO,message:"小程序构建日志监控"})})),l((()=>{h&&h.close()})),(e,a)=>(r(),o("div",F,[s("div",{class:"logger-output",ref_key:"logOutput",ref:g},[(r(!0),o(n,null,i(f.value,((e,a)=>(r(),o("p",{key:a},[s("span",B,d(e.time),1),e.level!==u(A).LINK?(r(),o("span",{key:0,class:p(v[e.level])},d(e.message),3)):(r(),o("a",{key:1,href:e.message,target:"_blank",class:p(v[e.level])},"构建完成,点击 "+d(e.message)+" 查看构建结果",11,D))])))),128))],512)]))}}),[["__scopeId","data-v-d57852f7"]]),G=Q(e({__name:"Config",emits:["clearPage","startBuild"],setup(e,{emit:t}){const l=a(),o=m({desc:[{required:!0,message:"请输入描述",trigger:"blur"}],version:[{validator:(e,a,t)=>{a&&!/^(0|[1-9]\d*)(\.(0|[1-9]\d*))*$/.test(a)?t(new Error("格式为[x.[y.[z]]],不填则以package.json的version字段为准!")):t()},trigger:"blur"}]}),s=m({desc:"",version:"",groupNotice:!1,isProd:!1,isAutoUpdateQrcode:!1,isCreateTag:!1}),n=t;return(e,a)=>{const t=N,i=I,c=w,d=O,u=P;return r(),g(u,{ref_key:"configFormRef",ref:l,model:s,rules:o,"label-width":"200px",style:{"max-width":"600px"},"status-icon":"",class:"config-form"},{default:f((()=>[v(i,{prop:"desc",label:"输入描述"},{default:f((()=>[v(t,{maxlength:"100",type:"textarea",resize:"none",rows:4,placeholder:"请输入描述",modelValue:s.desc,"onUpdate:modelValue":a[0]||(a[0]=e=>s.desc=e)},null,8,["modelValue"])])),_:1}),v(i,{prop:"version",label:"输入版本"},{default:f((()=>[v(t,{maxlength:"20",placeholder:"请输入版本",modelValue:s.version,"onUpdate:modelValue":a[1]||(a[1]=e=>s.version=e)},null,8,["modelValue"])])),_:1}),v(i,{prop:"groupNotice",label:"是否发送群通知"},{default:f((()=>[v(c,{modelValue:s.groupNotice,"onUpdate:modelValue":a[2]||(a[2]=e=>s.groupNotice=e),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue"])])),_:1}),v(i,{prop:"isProd",label:"是否为发布版本"},{default:f((()=>[v(c,{modelValue:s.isProd,"onUpdate:modelValue":a[3]||(a[3]=e=>s.isProd=e),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue"])])),_:1}),s.isProd?h("",!0):(r(),g(i,{key:0,prop:"isAutoUpdateQrcode",label:"是否自动更新本地版二维码 "},{default:f((()=>[v(c,{modelValue:s.isAutoUpdateQrcode,"onUpdate:modelValue":a[4]||(a[4]=e=>s.isAutoUpdateQrcode=e),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue"])])),_:1})),s.isProd?(r(),g(i,{key:1,prop:"isCreateTag",label:"是否打tag"},{default:f((()=>[v(c,{modelValue:s.isCreateTag,"onUpdate:modelValue":a[5]||(a[5]=e=>s.isCreateTag=e),"inline-prompt":"","active-text":"是","inactive-text":"否"},null,8,["modelValue"])])),_:1})):h("",!0),v(i,null,{default:f((()=>[v(d,{class:"config-form-clear",onClick:a[6]||(a[6]=e=>n("clearPage"))},{default:f((()=>a[8]||(a[8]=[y("清空页面内容")]))),_:1}),v(d,{class:"config-form-submit",type:"primary",onClick:a[7]||(a[7]=e=>(async e=>{e&&await e.validate((e=>{e?(s.isProd&&Reflect.deleteProperty(s,"isAutoUpdateQrcode"),s.isProd||Reflect.deleteProperty(s,"isCreateTag"),n("startBuild",s)):x.warning("请完善表单信息!")}))})(l.value))},{default:f((()=>a[9]||(a[9]=[y("开始构建")]))),_:1})])),_:1})])),_:1},8,["model","rules"])}}}),[["__scopeId","data-v-efed8fe0"]]),W={"element-loading-text":"查询中...","element-loading-background":"rgba(122, 122, 122, 0.4)",class:"container"},z={class:"container-qrcode-item-name"},J=Q(e({__name:"Result",setup(e){const l=new URLSearchParams(location.search).get("id")||"",c=a(!1),u=a(),p=a(),m=()=>{(e=>fetch(`/api/getQrcode?id=${e}`,{method:"GET",headers:{"Content-Type":"application/json"}}).then((e=>e.json())).catch((e=>x.error(e))))(l).then((e=>{if(0!==e.code)return x.error(e.message);u.value=e.data}))},h=async()=>{try{const e=p.value;if(e){const a=(await b(e,{ignoreElements:e=>"exportImgBtn"===e.id})).toDataURL("image/png"),t=document.createElement("a");t.href=a,t.download="小程序本地版二维码.png",t.click()}}catch(e){x.error("截图失败")}};return t((()=>{m()})),(e,a)=>{var t,l;const m=V,b=I,k=R,x=P,N=L,w=E,O=U;return r(),o(n,null,[v(x,{"label-width":"auto",style:{"max-width":"600px"}},{default:f((()=>[v(b,{label:"分支:"},{default:f((()=>[v(m,{type:"primary"},{default:f((()=>{var e,a;return[y(d((null==(a=null==(e=u.value)?void 0:e.extraInfo)?void 0:a.branch)??"未知"),1)]})),_:1})])),_:1}),v(b,{label:"仓库:"},{default:f((()=>{var e,a;return[v(k,{href:null==(a=null==(e=u.value)?void 0:e.extraInfo)?void 0:a.reomte,target:"_blank",type:"primary"},{default:f((()=>{var e,a;return[y(d((null==(a=null==(e=u.value)?void 0:e.extraInfo)?void 0:a.reomte)??"未知"),1)]})),_:1},8,["href"])]})),_:1}),v(b,{label:"tag:"},{default:f((()=>[v(m,{type:"primary"},{default:f((()=>{var e,a;return[y(d((null==(a=null==(e=u.value)?void 0:e.extraInfo)?void 0:a.tag)??"未知"),1)]})),_:1})])),_:1}),v(b,{label:"提交者:"},{default:f((()=>[v(m,{type:"primary"},{default:f((()=>{var e,a;return[y(d((null==(a=null==(e=u.value)?void 0:e.extraInfo)?void 0:a.user)??"未知"),1)]})),_:1})])),_:1})])),_:1}),_((r(),o("div",W,[(null==(t=u.value)?void 0:t.qrcodeFiles.length)?(r(),o("div",{key:1,class:"container-qrcode",id:"capture",ref_key:"canvasRef",ref:p},[s("div",{class:"container-qrcode-image-btn",id:"exportImgBtn",onClick:h}," 导出结果为图片 "),(r(!0),o(n,null,i(null==(l=u.value)?void 0:l.qrcodeFiles,((e,a)=>(r(),o("div",{class:"container-qrcode-item",key:a},[s("span",z,d(e.fileName),1),v(w,{class:"container-qrcode-item-image",src:e.baseUrl,"zoom-rate":1.2,"max-scale":7,"min-scale":.2,"initial-index":0,"preview-src-list":[e.baseUrl],fit:"cover"},null,8,["src","preview-src-list"])])))),128))],512)):(r(),g(N,{key:0,description:"暂无数据"}))])),[[O,c.value]])],64)}}}),[["__scopeId","data-v-14e29bbf"]]),M={class:"container"},$={class:"container-header-title"},H={class:"container-header-title-extra"},Y={class:"container-header-title-extra"},Z={class:"container-header-operations"},X={key:0},ee={key:1,class:"container-result"},ae=Q(e({__name:"App",setup(e){const l=new URLSearchParams(location.search).get("id")||"",n=a(null),i=a({version:"",projectName:""}),c=e=>{n.value&&n.value.startWatch(e)},p=()=>{n.value&&n.value.clear()},m=()=>{fetch("/api/getBaseInfo",{method:"GET",headers:{"Content-Type":"application/json"}}).then((e=>e.json())).catch((e=>x.error(e))).then((e=>{if(0!==e.code)return x.error(e.message);i.value={...e.data}}))};return t((()=>{m()})),(e,a)=>{const t=R,m=j,g=C,h=q,_=T;return r(),o("div",M,[v(_,null,{default:f((()=>[v(m,{height:"50px",class:"container-header"},{default:f((()=>[s("div",$,[a[0]||(a[0]=s("span",null,"小程序 ci 构建脚手架工具",-1)),a[1]||(a[1]=s("span",{class:"container-header-title-line"},"|",-1)),s("span",H,d(i.value.version),1),a[2]||(a[2]=s("span",{class:"container-header-title-line"},"|",-1)),s("span",Y,d(i.value.projectName),1)]),s("div",Z,[v(t,{type:"primary",href:"https://github.com/yanquankun/mint-fe-tools/blob/feature/v0.0.5/packages/%40mpsc/cli/README.md",target:"_blank"},{default:f((()=>a[3]||(a[3]=[y("使用手册")]))),_:1}),v(t,{type:"primary",href:"https://github.com/yanquankun/mint-fe-tools/issues",target:"_blank"},{default:f((()=>a[4]||(a[4]=[y("问题反馈")]))),_:1})])])),_:1}),u(l)?(r(),o("div",ee,[v(J)])):(r(),o("div",X,[v(g,{"content-position":"left","border-style":"dashed"},{default:f((()=>a[5]||(a[5]=[y("构建选项")]))),_:1}),v(h,{class:"container-config"},{default:f((()=>[v(G,{onStartBuild:c,onClearPage:p})])),_:1}),v(g,{"content-position":"left","border-style":"dashed"},{default:f((()=>a[6]||(a[6]=[y("输出日志")]))),_:1}),v(h,{class:"container-log"},{default:f((()=>[v(K,{ref_key:"logger",ref:n},null,512)])),_:1})]))])),_:1})])}}}),[["__scopeId","data-v-3b4935c1"]]),te=k(ae);for(const[le,re]of Object.entries(S))te.component(le,re);k(ae).mount("#app");