1 | const fse = require("fs-extra");
|
2 | const mtldev = require("mtl-dev-sdk");
|
3 | const utils = require("./m_util.js");
|
4 | const inquirer = require("inquirer");
|
5 |
|
6 | const promptList = [
|
7 | {
|
8 | type: "list",
|
9 | message: "请选择页面模板:",
|
10 | name: "name",
|
11 | choices: ["html", "react"],
|
12 | filter: function(val) {
|
13 |
|
14 | return val.toLowerCase();
|
15 | }
|
16 | }
|
17 | ];
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 | async function addView(an, tl) {
|
26 |
|
27 | if (!an) {
|
28 | return utils.consoleLog(" 必须录入页面名称");
|
29 | }
|
30 | if (!utils.isMtlProject()) {
|
31 | return;
|
32 | }
|
33 | if (!utils.isVerifyProjectName(an)) {
|
34 | return utils.consoleLog("页面名称不能包含特殊字符,长度不能超过64位。");
|
35 | }
|
36 | if (fse.existsSync(an)) {
|
37 | return utils.consoleLog(
|
38 | "本地已存在- " + an + " - ,同一目录下不能重名!!!"
|
39 | );
|
40 | }
|
41 | let pages = mtldev.getPageInfos(mtldev.technologyStack());
|
42 | if (!pages || pages.length <= 0) {
|
43 | return utils.consoleLog("当前没有模板可用-");
|
44 | }
|
45 | getPagesOptionByTl(tl, pages, an);
|
46 | }
|
47 |
|
48 |
|
49 |
|
50 | function getPagesOptionByTl(tl, pages, an) {
|
51 | if (tl) {
|
52 | downloadPage(tl,an);
|
53 | return;
|
54 | }
|
55 | let list = [];
|
56 |
|
57 | let names ={};
|
58 | for (let key in pages){
|
59 | let va = pages[key].name;
|
60 | names[va] = key;
|
61 | list.push(key)
|
62 | }
|
63 | if(list.length <=0 ){
|
64 | return utils.consoleLog("前没有模板可用");
|
65 | }
|
66 | utils.consoleLog(JSON.stringify(names));
|
67 | promptList[0].choices = list;
|
68 | inquirer.prompt(promptList).then(answers => {
|
69 | utils.consoleLog(answers.name);
|
70 | downloadPage(answers.name,an);
|
71 | });
|
72 | }
|
73 |
|
74 |
|
75 | function downloadPage(tl,newname) {
|
76 | let result = mtldev.downloadPageByTemplate( tl, newname);
|
77 | let code = result.code;
|
78 | if (code == 200) {
|
79 | utils.consoleLog(`添加完成: ${newname}`);
|
80 | } else {
|
81 | utils.consoleLog(JSON.stringify(result));
|
82 | }
|
83 | }
|
84 |
|
85 | module.exports = {
|
86 | addView
|
87 | };
|