/**
* 首页、header生成器
*/
import { AmUtil } from "./util";
export class AMIndexGenerator{
/**
* 存储路径
*/
private savePath:string;
/**
* 应用title
*/
private appTitle:string;
constructor(path,title){
this.savePath = path;
this.appTitle = title;
}
public genCode(){
this.genHome(this.savePath,this.appTitle);
this.genHeader(this.savePath,this.appTitle);
}
/**
* 生成首页
* @param path 存储路径
* @param title 项目title
*/
genHome(path,title){
let templateStr = `
`
let fileStr = `
import{GlobalCache, Module,nuitip,Nodom} from "../../js/nodomui.js"
export class MAmHome extends Module{
template(){
return \`
${AmUtil.formatHtml(templateStr)}
\`
}
login() {
const uName = this.model.userName
? this.model.userName.trim()
: undefined;
const pwd = this.model.userPwd ? this.model.userPwd.trim() : undefined;
if (!uName) {
nuitip({ text: "用户名不能为空!", theme: "error", closable: true });
return;
}
if (!pwd) {
nuitip({ text: "密码不能为空!", theme: "error", closable: true });
return;
}
Nodom.request({
url: "/__auth/login",
params: {
userName: uName,
pwd: pwd
},
type: "json"
}).then((r) => {
if (!r.success) {
nuitip({
text: r.result.message,
theme: "error"
});
return;
}
GlobalCache.set("logon", r.result);
Nodom['$Router'].go("/main");
});
}
}`;
require('fs').writeFileSync(require('path').resolve(path,'home.js'),AmUtil.formatTs(fileStr));
}
/**
* 生成顶部
* @param path 存储路径
* @param title 项目title
*/
genHeader(path,title){
let templateStr = `
`
let fileStr = `
import { GlobalCache, Module, Nodom } from "../../js/nodomui.js";
import { AmUtil } from "./util.js";
export class MAmHeader extends Module{
template(){
return \`
${templateStr}
\`
}
data() {
return {
userName: "访客",
showList: false,
closed:true
};
}
onBeforeRender() {
let info = GlobalCache.get("logon");
if (info) {
this.model.userName = info.realName || info.userName;
}
}
showList() {
this.model.showList = true;
}
hideList() {
this.model.showList = false;
}
/**
* 登出
*/
logout() {
this.hideList();
// 监听关闭tab
GlobalCache.set('maintab.closeall',{});
Nodom['$Router'].go("/home");
}
/**
* 修改密码
*/
updatePwd() {
this.hideList();
AmUtil.addTab('修改密码','/pages/module/__base/changepwd.js');
}
clickMenu(){
this.model.closed = !this.model.closed;
}
workTable(){
this.hideList();
AmUtil.addTab('我的工作台','/pages/module/__base/workflow/myflow.js');
}
}`;
require('fs').writeFileSync(require('path').resolve(path,'header.js'),AmUtil.formatTs(fileStr));
}
}