Browse Source

plop 优化

tongshangming 1 year ago
parent
commit
1c4541f5b4
5 changed files with 71 additions and 31 deletions
  1. 5 5
      plop-template/api.hbs
  2. 3 0
      plop-template/entity.hbs
  3. 1 1
      plop-template/service.hbs
  4. 4 2
      plop-template/view.hbs
  5. 58 23
      plopfile.js

+ 5 - 5
plop-template/api.hbs

@@ -1,21 +1,21 @@
 import request from '@/utils/request'
 
 export function create(data: any) {
-  return request.post('/create{{upperCase name}}', data)
+  return request.post('/create{{pascalCase name}}', data)
 }
 
 export function update(data: any) {
-  return request.post('/update{{upperCase name}}', data)
+  return request.post('/update{{pascalCase name}}', data)
 }
 
 export function del(data: any) {
-  return request.post('/delete{{upperCase name}}', data)
+  return request.post('/delete{{pascalCase name}}', data)
 }
 
 export function find(data: any) {
-  return request.get('/find{{upperCase name}}', data)
+  return request.get('/find{{pascalCase name}}', data)
 }
 
 export function getList(data?: any) {
-  return request.get('/get{{upperCase name}}List', data)
+  return request.get('/get{{pascalCase name}}List', data)
 }

+ 3 - 0
plop-template/entity.hbs

@@ -0,0 +1,3 @@
+export class {{pascalCase name}}Entity {
+  id = ''
+}

+ 1 - 1
plop-template/service.hbs

@@ -1,6 +1,6 @@
 import * as api from './api'
 
-export const use{{upperCase name}}Service = () => {
+export const use{{pascalCase name}}Service = () => {
   const create = (data: any) => {
     return api.create(data)
   }

+ 4 - 2
plop-template/view.hbs

@@ -1,8 +1,10 @@
 <script setup lang="ts">
-import { use{{upperCase name}}Service } from '@/domain/{{name}}/service'
+import { use{{pascalCase name}}Service } from '@/domain/{{name}}/service'
+// import { {{pascalCase name}}Entity } from '@/domain/{{name}}/entity'
 import type { BasicForm, ICRUD } from '@/types/form'
 
-const {{camelCase name}}Service = use{{upperCase name}}Service()
+const {{camelCase name}}Service = use{{pascalCase name}}Service()
+// const {{camelCase name}}Entity = ref<{{pascalCase name}}Entity>(new {{pascalCase name}}Entity())
 
 const CRUD: ICRUD = {
   create(data: any) {

+ 58 - 23
plopfile.js

@@ -6,31 +6,66 @@ export default plop => {
         type: 'input',
         name: 'name',
         message: '领域名称: '
-      }
-    ],
-    actions: [
-      {
-        type: 'add',
-        path: 'src/views/{{name}}/{{properCase name}}.vue',
-        templateFile: 'plop-template/view.hbs'
-      },
-      {
-        type: 'add',
-        path: 'src/domain/{{name}}/api.ts',
-        templateFile: 'plop-template/api.hbs'
       },
       {
-        type: 'add',
-        path: 'src/domain/{{name}}/service.ts',
-        templateFile: 'plop-template/service.hbs'
-      },
-      {
-        type: 'append',
-        pattern: /(?=(\/\/ -- APPEND HERE --))/gi,
-        path: 'src/router/asyncRouter.ts',
-        templateFile: 'plop-template/router.hbs'
+        type: 'checkbox',
+        name: 'type',
+        message: '勾选需要生成的模板: ',
+        choices: [
+          {
+            name: 'api',
+            value: 'api',
+            checked: true
+          },
+          {
+            name: 'entity',
+            value: 'entity',
+            checked: true
+          },
+          {
+            name: 'service',
+            value: 'service',
+            checked: true
+          },
+          {
+            name: 'view',
+            value: 'view',
+            checked: true
+          },
+          {
+            name: 'router',
+            value: 'router',
+            checked: true
+          }
+        ]
       }
-    ]
+    ],
+    actions: data => {
+      const actions = []
+      data.type.forEach(type => {
+        if (type === 'router') {
+          actions.push({
+            type: 'append',
+            pattern: /(?=(\/\/ -- APPEND HERE --))/gi,
+            path: 'src/router/asyncRouter.ts',
+            templateFile: 'plop-template/router.hbs'
+          })
+        } else if (type === 'view') {
+          actions.push({
+            type: 'add',
+            path: 'src/views/{{camelCase name}}/{{pascalCase name}}.vue',
+            templateFile: `plop-template/${type}.hbs`
+          })
+        } else {
+          actions.push({
+            type: 'add',
+            path: `src/domain/{{camelCase name}}/${type}.ts`,
+            templateFile: `plop-template/${type}.hbs`
+          })
+        }
+      })
+      return actions
+    }
   })
 
   plop.setGenerator('micro', {
@@ -45,7 +80,7 @@ export default plop => {
     actions: [
       {
         type: 'add',
-        path: 'src/views/micro/{{properCase name}}.vue',
+        path: 'src/views/micro/{{pascalCase name}}.vue',
         templateFile: 'plop-template/micro.hbs'
       },
       {