Browse Source

去掉domain

tongshangming 11 months ago
parent
commit
c4d41a8c29

+ 2 - 2
package.json

@@ -1,6 +1,6 @@
 {
   "name": "fs-admin",
-  "version": "2.2.0",
+  "version": "2.2.1",
   "type": "module",
   "scripts": {
     "dev": "vite --host",
@@ -10,7 +10,7 @@
     "build-test": "vite build --mode test",
     "type-check": "vue-tsc --noEmit",
     "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
-    "domain": "plop domain",
+    "module": "plop module",
     "micro": "plop micro"
   },
   "dependencies": {

+ 5 - 5
plop-template/api.hbs

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

+ 5 - 9
plop-template/view.hbs

@@ -1,23 +1,19 @@
 <script setup lang="ts">
-import { use{{pascalCase name}}Service } from '@/domains/{{name}}/service'
-// import { {{pascalCase name}}Entity } from '@/domains/{{name}}/entity'
+import { create{{pascalCase name}}, update{{pascalCase name}}, get{{pascalCase name}}List, del{{pascalCase name}} } from '@/api/{{name}}.ts'
 import type { BasicForm, ICRUD } from '@/types/form'
 
-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) {
-    return {{camelCase name}}Service.create(data)
+    return create{{pascalCase name}}(data)
   },
   update(data: any) {
-    return {{camelCase name}}Service.update(data)
+    return update{{pascalCase name}}(data)
   },
   getList(data: any) {
-    return {{camelCase name}}Service.getList(data)
+    return get{{pascalCase name}}List(data)
   },
   delete(data: any) {
-    return {{camelCase name}}Service.del(data)
+    return del{{pascalCase name}}(data)
   }
 }
 

+ 4 - 14
plopfile.js

@@ -1,11 +1,11 @@
 export default plop => {
-  plop.setGenerator('domain', {
-    description: '生成一个领域',
+  plop.setGenerator('module', {
+    description: '生成一个模块',
     prompts: [
       {
         type: 'input',
         name: 'name',
-        message: '领域名称: '
+        message: '模块名称: '
       },
       {
         type: 'checkbox',
@@ -17,16 +17,6 @@ export default plop => {
             value: 'api',
             checked: true
           },
-          {
-            name: 'entity',
-            value: 'entity',
-            checked: true
-          },
-          {
-            name: 'service',
-            value: 'service',
-            checked: true
-          },
           {
             name: 'view',
             value: 'view',
@@ -59,7 +49,7 @@ export default plop => {
         } else {
           actions.push({
             type: 'add',
-            path: `src/domains/{{camelCase name}}/${type}.ts`,
+            path: `src/api/{{camelCase name}}.ts`,
             templateFile: `plop-template/${type}.hbs`
           })
         }

+ 3 - 3
src/domains/role/api.ts → src/api/role.ts

@@ -1,15 +1,15 @@
 import request from '@/utils/request'
 
 // 角色管理列表
-export function getList(data: any) {
+export function getRoleList(data: any) {
   return request.post('/sys/role/data', data)
 }
 // 新增角色
-export function create(data: any) {
+export function createRole(data: any) {
   return request.post('/sys/role/save', data)
 }
 //删除角色
-export function del(data: any) {
+export function delRole(data: any) {
   return request.get('/sys/role/delete', {
     params: data
   })

+ 12 - 3
src/domains/user/api.ts → src/api/user.ts

@@ -9,15 +9,19 @@ export function getUserInfo() {
 }
 
 // 用户列表
-export function getList(data?: any) {
+export function getUserList(data?: any) {
   return request.post('/sys/user/list', data)
 }
 // 新增用户
-export function create(data: any) {
+export function createUser(data: any) {
   return request.post('/sys/user/save', data)
 }
+// 修改用户
+export function updateUser(data: any) {
+  return request.post('/sys/user/update', data)
+}
 //删除用户
-export function del(data: any) {
+export function delUser(data: any) {
   return request.get('/sys/user/deleteAll', {
     params: data
   })
@@ -28,3 +32,8 @@ export function checkLoginName(data: any) {
     params: data
   })
 }
+
+// 获取用户菜单列表
+export function getMenuList(data?: any) {
+  return request.get('/sys/user/menu', data)
+}

+ 2 - 1
src/config/defaultSetting.ts

@@ -11,5 +11,6 @@ export default {
   oss: true,
   ossHost: 'https://fskj-res.oss-cn-zhangjiakou.aliyuncs.com/',
   uploadSuccessCb: (res: any) => import.meta.env.VITE_BASE_PATH + res.data,
-  multiTenant: false
+  multiTenant: false, // 开启多租户
+  isDynamicRouter: false // 开启动态路由
 }

+ 0 - 39
src/domains/role/service.ts

@@ -1,39 +0,0 @@
-import * as api from './api'
-
-export const useRoleService = () => {
-  const create = (data: any) => {
-    return api.create(data)
-  }
-  const update = (data: any) => {
-    return api.create(data)
-  }
-  const del = (data: any) => {
-    return api.del(data)
-  }
-
-  const getList = (data: any) => {
-    return api.getList(data)
-  }
-
-  const createRoleUser = (data: any) => {
-    return api.createRoleUser(data)
-  }
-
-  const getRoleUserList = (data: any) => {
-    return api.getRoleUserList(data)
-  }
-
-  const delRoleUser = (data: any) => {
-    return api.delRoleUser(data)
-  }
-
-  return {
-    create,
-    update,
-    del,
-    getList,
-    createRoleUser,
-    getRoleUserList,
-    delRoleUser
-  }
-}

+ 0 - 45
src/domains/user/service.ts

@@ -1,45 +0,0 @@
-import * as api from './api'
-
-export const useUserService = () => {
-  const create = (data: any) => {
-    return api.create(data)
-  }
-  const update = (data: any) => {
-    if (data.password) {
-      data.newPassword = data.password
-    } else {
-      delete data.password
-    }
-    delete data.roleList
-    return api.create(data)
-  }
-  const del = (data: any) => {
-    return api.del(data)
-  }
-
-  const getList = (data: any) => {
-    return api.getList(data)
-  }
-
-  const checkLoginName = (data: any) => {
-    return api.checkLoginName(data)
-  }
-
-  const login = (data: any) => {
-    return api.login(data)
-  }
-
-  const getUserInfo = () => {
-    return api.getUserInfo()
-  }
-
-  return {
-    create,
-    update,
-    del,
-    getList,
-    checkLoginName,
-    login,
-    getUserInfo
-  }
-}

+ 1 - 0
src/router/asyncRouter.ts

@@ -10,6 +10,7 @@ const asyncRouter: RouteRecordRaw[] = [
       icon: 'House'
     }
   },
+
   // -- APPEND HERE --
   {
     path: 'https://jijian.sxidc.com/',

+ 8 - 3
src/stores/router.ts

@@ -1,6 +1,7 @@
 import type { RouteRecordRaw } from 'vue-router'
 import { asyncRouter } from '@/router'
-// import { generatorDynamicRouter } from '@/utils/dynamicRouter'
+import config from '@/config/defaultSetting'
+import { generatorDynamicRouter } from '@/utils/dynamicRouter'
 
 // eslint-disable-next-line
 function hasPermission(route: RouteRecordRaw, permission: any[]) {
@@ -84,8 +85,12 @@ export const useRouterStore = defineStore({
   actions: {
     generatorRouter(role?: any[]): Promise<RouteRecordRaw[]> {
       return new Promise(resolve => {
-        this.asyncRouter = role ? filterAsyncRouter(asyncRouter, role) : asyncRouter
-        // this.asyncRouter = generatorDynamicRouter(this.dynamicRouter)
+        if (config.isDynamicRouter) {
+          this.asyncRouter = generatorDynamicRouter(this.dynamicRouter)
+        } else {
+          this.asyncRouter = role ? filterAsyncRouter(asyncRouter, role) : asyncRouter
+        }
+
         this.menuRouter = filterMenuRouter(this.asyncRouter)
         this.keepAliveRouter = filterKeepAliveRouter(this.menuRouter)
         resolve(this.asyncRouter)

+ 7 - 2
src/stores/user.ts

@@ -1,7 +1,8 @@
 import router from '@/router'
-import { useUserService } from '@/domains/user/service'
+import config from '@/config/defaultSetting'
+import { useRouterStore } from '@/stores/router'
+import { getMenuList, login } from '@/api/user'
 
-const { login } = useUserService()
 export const useUserStore = defineStore({
   id: 'user',
   state: () => ({
@@ -17,6 +18,10 @@ export const useUserStore = defineStore({
       // const userRes: any = await getUserInfo()
       // this.user = userRes.infos[0]
       // 这里可以添加从后台获取菜单的接口
+      if (config.isDynamicRouter) {
+        const res: any = await getMenuList()
+        useRouterStore().setDynamicRouter(res.data)
+      }
       this.flag = true
     },
     async login(data: any) {

+ 0 - 1
src/views/system/Area.vue

@@ -36,7 +36,6 @@ const filterNode = (value: string, data: any) => {
 }
 const menuId = ref('')
 const handleNodeClick = (val: any) => {
-  console.log(val)
   formData.name = val.label
   formData.encoded = val.id
   formData.type = 2

+ 23 - 29
src/views/system/Role.vue

@@ -1,27 +1,26 @@
 <script setup lang="ts">
 import type { BasicForm, ICRUD } from '@/types/form'
-import { useRoleService } from '@/domains/role/service'
-import { useUserService } from '@/domains/user/service'
+import { getUserList } from '@/api/user'
+import { createRole, getRoleList, delRole, createRoleUser, getRoleUserList, delRoleUser } from '@/api/role'
 
-const roleService = useRoleService()
 const CRUD: ICRUD = {
   create(data: any) {
-    return roleService.create(data)
+    return createRole(data)
   },
   update(data: any) {
-    return roleService.create(data)
+    return createRole(data)
   },
   getList(data: any) {
-    return roleService.getList({
+    return getRoleList({
       name: '',
       ...data
     })
   },
   delete(data: any) {
-    return roleService.del({ ids: data.id })
+    return delRole({ ids: data.id })
   },
   deleteBatch(data: any) {
-    return roleService.del(data)
+    return delRole(data)
   }
 }
 
@@ -58,19 +57,19 @@ const handleUser = (row: any) => {
 // 用户table
 const UserCRUD: ICRUD = {
   create(data: any) {
-    return roleService.createRoleUser(data)
+    return createRoleUser(data)
   },
   update(data: any) {
-    return roleService.createRoleUser(data)
+    return createRoleUser(data)
   },
   getList(data: any) {
-    return roleService.getRoleUserList({ id: curRole.value.id, ...data }).then((res: any) => {
+    return getRoleUserList({ id: curRole.value.id, ...data }).then((res: any) => {
       slectedUser.value = res.rows.map((item: any) => item.id)
       return res
     })
   },
   delete(data: any) {
-    return roleService.delRoleUser({ roleId: curRole.value.id, userId: data.id })
+    return delRoleUser({ roleId: curRole.value.id, userId: data.id })
   }
 }
 const userFormConfig = reactive<BasicForm>({
@@ -83,30 +82,25 @@ const slectedUser = ref<any>([])
 const userList = ref<any>([])
 const userRef = ref<any>(null)
 
-const userService = useUserService()
 const handleAddUser = () => {
   dialogVisible.value = true
-  userService
-    .getList({
-      pageSize: -1
-    })
-    .then((res: any) => {
-      userList.value = res.rows
-    })
+  getUserList({
+    pageSize: -1
+  }).then((res: any) => {
+    userList.value = res.rows
+  })
 }
 const closeDialog = () => {
   dialogVisible.value = false
 }
 const handleSubmit = () => {
-  roleService
-    .createRoleUser({
-      role: { id: curRole.value.id },
-      ids: slectedUser.value
-    })
-    .then(() => {
-      userRef.value.refresh()
-      dialogVisible.value = false
-    })
+  createRoleUser({
+    role: { id: curRole.value.id },
+    ids: slectedUser.value
+  }).then(() => {
+    userRef.value.refresh()
+    dialogVisible.value = false
+  })
 }
 </script>
 

+ 27 - 33
src/views/system/User.vue

@@ -1,46 +1,42 @@
 <script setup lang="ts">
 import type { BasicForm, ICRUD } from '@/types/form'
-import { useUserService } from '@/domains/user/service'
-import { useRoleService } from '@/domains/role/service'
+import { createUser, updateUser, getUserList, delUser, checkLoginName } from '@/api/user'
+import { getRoleList } from '@/api/role'
 
 const curRow = ref<any>(null)
 
-const userService = useUserService()
 const CRUD: ICRUD = {
   create(data: any) {
-    return userService.create(data)
+    return createUser(data)
   },
   update(data: any) {
     data.oldLoginName = curRow.value.loginName
-    return userService.update(data)
+    return updateUser(data)
   },
   getList(data: any) {
-    return userService.getList(data)
+    return getUserList(data)
   },
   delete(data: any) {
-    return userService.del({ ids: data.id })
+    return delUser({ ids: data.id })
   },
   deleteBatch(data: any) {
-    return userService.del({ ids: data.id })
+    return delUser({ ids: data.id })
   }
 }
 
 const duplicate = (rule: any, value: any, callback: any) => {
-  userService
-    .checkLoginName({
-      oldLoginName: curRow.value?.loginName || '',
-      loginName: value
-    })
-    .then((res: any) => {
-      if (res === 'true') {
-        callback()
-      } else {
-        callback(new Error('此登录名已存在'))
-      }
-    })
+  checkLoginName({
+    oldLoginName: curRow.value?.loginName || '',
+    loginName: value
+  }).then((res: any) => {
+    if (res === 'true') {
+      callback()
+    } else {
+      callback(new Error('此登录名已存在'))
+    }
+  })
 }
 
-const roleService = useRoleService()
 const formConfig = reactive<BasicForm>({
   formItems: [
     {
@@ -85,19 +81,17 @@ const formConfig = reactive<BasicForm>({
       name: 'roleIdList',
       type: 'select',
       request: () => {
-        return roleService
-          .getList({
-            pageSize: -1,
-            name: ''
-          })
-          .then((res: any) => {
-            return res.rows.map((item: any) => {
-              return {
-                value: item.id,
-                label: item.name
-              }
-            })
+        return getRoleList({
+          pageSize: -1,
+          name: ''
+        }).then((res: any) => {
+          return res.rows.map((item: any) => {
+            return {
+              value: item.id,
+              label: item.name
+            }
           })
+        })
       },
       rules: [{ required: true, message: '请选择角色', trigger: 'blur' }],
       props: {

+ 1 - 0
src/views/system/menu.vue

@@ -3,6 +3,7 @@ import PaneModel from '@/components/splitpanes/PaneModel.vue'
 import { ElTree } from 'element-plus'
 import type { BasicForm, ICRUD } from '@/types/form'
 import SelIcon from '@/components/SelIcon.vue'
+
 interface Tree {
   id: number
   label: string