/*
* Copyright (c) 2020. bmy
*/
module.exports = {
pageConfig: (name) => {
return `
import "@pageLess/${ name }.less";
import { Component } from 'vue-property-decorator';
import { ${ name }Logic } from "@logic/page/${ name }.logic";
import { RouterMeta, VueCustomize } from "@logic/Base.type";
import { Route, RawLocation } from 'vue-router';
@Component
export default class ${ name } extends VueCustomize {
private logic: ${ name }Logic<${ name }> = new ${ name }Logic(this);
private RouterMeta: RouterMeta = {
title: '${ name }',
isLogin: true
};
public async created() {
await this.logic.StartUp();
};
// 路由拦截器
beforeRouteEnter(to: Route, from: Route, next: (to?: RawLocation | false | ((vm: Vue) => void)) => void) {
next();
}
protected render() {
return (
${ name }
)
}
}
`
},
logicConfig: (name) => {
return `
import { BaseLogic } from "@logic/Base.logic";
import { Autowired } from "@ann/Ioc.annotation";
import { Methods, VueCustomize } from "@logic/Base.type";
import { UserServiceImpl } from "@impl/User.service.impl";
export class ${ name }Logic extends BaseLogic implements Methods {
@Autowired
public readonly UserServiceImpl!: UserServiceImpl;
constructor(_: T) {
super();
this._ = _;
}
public async StartUp(): Promise {
}
}
`
},
serviceConfig: (name) => {
return `
export interface ${ name }Service {
IndexClass(params: object): Promise;
}
`
},
implPathConfig: (name) => {
return `
import { ${ name }Service } from "@service/${ name }.service";
import { Injectable } from "@ann/Ioc.annotation";
import { GET } from "@ann/Http.annotation";
@Injectable()
export class ${ name }ServiceImpl implements ${ name }Service {
@GET({ useHandle: false })
public async IndexClass(params: object): Promise { }
}
`
},
lessConfig: (name) => {
return `
@import "../mixin/index";
.${ name } {
}
`
}
}