asd123a20 3 vuotta sitten
vanhempi
commit
b47c435bd1

+ 12 - 0
app/controller/adminnenu.js

@@ -0,0 +1,12 @@
+'use strict';
+
+const Controller = require('egg').Controller;
+const menu = require('../public/adminMenu');
+class AdminMenuController extends Controller {
+  async query() {
+    const { ctx } = this;
+    ctx.body = { errcode: 0, errmsg: '', data: menu };
+  }
+}
+
+module.exports = AdminMenuController;

+ 9 - 4
app/controller/column.js

@@ -5,22 +5,27 @@ const Controller = require('egg').Controller;
 class ColumnController extends Controller {
   async create() {
     const { ctx } = this;
-    const res = await ctx.service.contentType.create(ctx.request.body);
+    const res = await ctx.service.column.create(ctx.request.body);
     ctx.body = res;
   }
   async update() {
     const { ctx } = this;
-    const res = await ctx.service.contentType.update(ctx.request.body);
+    const res = await ctx.service.column.update(ctx.request.body);
     ctx.body = res;
   }
   async del() {
     const { ctx } = this;
-    const res = await ctx.service.contentType.del(ctx.params);
+    const res = await ctx.service.column.del(ctx.params);
     ctx.body = res;
   }
   async query() {
     const { ctx } = this;
-    const res = await ctx.service.contentType.query(ctx.query);
+    const res = await ctx.service.column.query(ctx.query);
+    ctx.body = res;
+  }
+  async menuquery() {
+    const { ctx } = this;
+    const res = await ctx.service.column.menuquery(ctx.query);
     ctx.body = res;
   }
 }

+ 5 - 0
app/controller/content.js

@@ -23,6 +23,11 @@ class ContentController extends Controller {
     const res = await ctx.service.content.query(ctx.query);
     ctx.body = res;
   }
+  async details() {
+    const { ctx } = this;
+    const res = await ctx.service.content.details(ctx.query);
+    ctx.body = res;
+  }
 }
 
 module.exports = ContentController;

+ 1 - 1
app/controller/menu.js

@@ -20,7 +20,7 @@ class MenuController extends Controller {
   }
   async query() {
     const { ctx } = this;
-    const res = await ctx.service.menu.query();
+    const res = await ctx.service.menu.query(ctx.query);
     ctx.body = res;
   }
 }

+ 5 - 0
app/controller/page.js

@@ -23,6 +23,11 @@ class PageController extends Controller {
     const res = await ctx.service.page.query(ctx.query);
     ctx.body = res;
   }
+  async details() {
+    const { ctx } = this;
+    const res = await ctx.service.page.details(ctx.query);
+    ctx.body = res;
+  }
 }
 
 module.exports = PageController;

+ 1 - 1
app/model/Content.js

@@ -25,7 +25,7 @@ module.exports = app => {
     },
     // 内容
     content: {
-      type: Array,
+      type: String,
     },
     // 创建时间
     createAt: {

+ 3 - 0
app/model/Menu.js

@@ -24,6 +24,9 @@ module.exports = app => {
     pid: {
       type: String,
     },
+    en: {
+      type: String,
+    },
   });
   return mongoose.model('Menu', MenuSchema);
 };

+ 1 - 1
app/model/Page.js

@@ -25,7 +25,7 @@ module.exports = app => {
     },
     // 内容
     content: {
-      type: Array,
+      type: String,
     },
     // 创建时间
     createAt: {

+ 131 - 0
app/public/adminMenu.js

@@ -0,0 +1,131 @@
+'use strict';
+module.exports = [
+  {
+    title: '系统管理',
+    path: '1',
+    id: '1',
+    icons: 'el-icon-user-solid',
+    parentId: '',
+    module: '@gaf',
+  },
+  {
+    title: '系统用户',
+    path: '/gaf/user',
+    id: '1-1',
+    icons: 'el-icon-user-solid',
+    parentId: '1',
+    module: '@gaf',
+  },
+  {
+    title: '系统角色',
+    path: '/gaf/role',
+    id: '1-2',
+    icons: 'el-icon-user-solid',
+    parentId: '1',
+    module: '@gaf',
+  },
+  {
+    title: '权限管理',
+    path: '/gaf/power',
+    id: '1-3',
+    icons: 'el-icon-user-solid',
+    parentId: '1',
+    module: '@gaf',
+  },
+  {
+    title: '日志审计',
+    path: '/gaf/log',
+    id: '1-4',
+    icons: 'el-icon-user-solid',
+    parentId: '1',
+    module: '@gaf',
+  },
+  {
+    title: '系统配置',
+    path: '2',
+    id: '2',
+    icons: 'el-icon-user-solid',
+    parentId: '',
+    module: '@wokes',
+  },
+  {
+    title: '轮播图配置',
+    path: '/wokes/banner',
+    id: '2-1',
+    icons: 'el-icon-user-solid',
+    parentId: '2',
+    module: '@wokes',
+  },
+  {
+    title: '友情链接配置',
+    path: '/wokes/links',
+    id: '2-2',
+    icons: 'el-icon-user-solid',
+    parentId: '2',
+    module: '@wokes',
+  },
+  {
+    title: '站点配置',
+    path: '/wokes/webconfig',
+    id: '2-3',
+    icons: 'el-icon-user-solid',
+    parentId: '2',
+    module: '@wokes',
+  },
+  {
+    title: '内容管理',
+    path: '3',
+    id: '3',
+    icons: 'el-icon-user-solid',
+    parentId: '',
+    module: '@wokes',
+  },
+  {
+    title: '菜单管理',
+    path: '/wokes/menu',
+    id: '3-1',
+    icons: 'el-icon-user-solid',
+    parentId: '3',
+    module: '@wokes',
+  },
+  {
+    title: '栏目管理',
+    path: '/wokes/column',
+    id: '3-2',
+    icons: 'el-icon-user-solid',
+    parentId: '3',
+    module: '@wokes',
+  },
+  {
+    title: '文章管理',
+    path: '/wokes/content',
+    id: '3-3',
+    icons: 'el-icon-user-solid',
+    parentId: '3',
+    module: '@wokes',
+  },
+  {
+    title: '单页管理',
+    path: '/wokes/pages',
+    id: '3-3',
+    icons: 'el-icon-user-solid',
+    parentId: '3',
+    module: '@wokes',
+  },
+  {
+    title: '文件管理',
+    path: '/wokes/files',
+    id: '3-4',
+    icons: 'el-icon-user-solid',
+    parentId: '3',
+    module: '@wokes',
+  },
+  {
+    title: '资源管理',
+    path: '/wokes/resource',
+    id: '3-5',
+    icons: 'el-icon-user-solid',
+    parentId: '3',
+    module: '@wokes',
+  },
+];

+ 54 - 19
app/router.js

@@ -5,32 +5,67 @@
  */
 module.exports = app => {
   const { router, controller } = app;
-  const jwt = app.middleware.jwt(app.config.jwt);
+  // const jwt = app.middleware.jwt(app.config.jwt);
   // 系统用户
-  router.post('/api/adminUser/create', jwt, controller.adminUser.create);
-  router.post('/api/adminUser/update', jwt, controller.adminUser.update);
-  router.delete('/api/adminUser/delete/:id', jwt, controller.adminUser.del);
-  router.get('/api/adminUser/query', jwt, controller.adminUser.query);
+  router.post('/api/adminUser/create', controller.adminUser.create);
+  router.post('/api/adminUser/update', controller.adminUser.update);
+  router.delete('/api/adminUser/delete/:id', controller.adminUser.del);
+  router.get('/api/adminUser/query', controller.adminUser.query);
   // 角色
-  router.post('/api/role/create', jwt, controller.role.create);
-  router.post('/api/role/update', jwt, controller.role.update);
-  router.delete('/api/role/delete/:id', jwt, controller.role.del);
-  router.get('/api/role/query', jwt, controller.role.query);
+  router.post('/api/role/create', controller.role.create);
+  router.post('/api/role/update', controller.role.update);
+  router.delete('/api/role/delete/:id', controller.role.del);
+  router.get('/api/role/query', controller.role.query);
   // 菜单
-  router.post('/api/menu/create', jwt, controller.menu.create);
-  router.post('/api/menu/update', jwt, controller.menu.update);
-  router.delete('/api/menu/delete/:id', jwt, controller.menu.del);
-  router.get('/api/menu/query', jwt, controller.menu.query);
+  router.post('/api/menu/create', controller.menu.create);
+  router.post('/api/menu/update', controller.menu.update);
+  router.delete('/api/menu/delete/:id', controller.menu.del);
+  router.get('/api/menu/query', controller.menu.query);
   // 栏目
   router.post('/api/column/create', controller.column.create);
   router.post('/api/column/update', controller.column.update);
-  router.delete('/api/column/delete/:id', jwt, controller.column.del);
-  router.get('/api/column/query', jwt, controller.column.query);
+  router.delete('/api/column/delete/:id', controller.column.del);
+  router.get('/api/column/query', controller.column.query);
+  router.get('/api/column/menuquery', controller.column.menuquery);
   // 登录
   router.post('/api/power/login', controller.power.login);
   // 内容
-  router.post('/api/content/create', jwt, controller.content.create);
-  router.post('/api/content/update', jwt, controller.content.update);
-  router.delete('/api/content/delete/:id', jwt, controller.content.del);
-  router.get('/api/content/query', jwt, controller.content.query);
+  router.post('/api/content/create', controller.content.create);
+  router.post('/api/content/update', controller.content.update);
+  router.delete('/api/content/delete/:id', controller.content.del);
+  router.get('/api/content/query', controller.content.query);
+  router.get('/api/content/details', controller.content.details);
+  // 单页
+  router.post('/api/page/create', controller.page.create);
+  router.post('/api/page/update', controller.page.update);
+  router.delete('/api/page/delete/:id', controller.page.del);
+  router.get('/api/page/query', controller.page.query);
+  router.get('/api/page/details', controller.page.details);
+  // 文件
+  router.post('/api/files/create', controller.files.create);
+  router.post('/api/files/update', controller.files.update);
+  router.delete('/api/files/delete/:id', controller.files.del);
+  router.get('/api/files/query', controller.files.query);
+  router.post('/api/files/upload', controller.files.upload);
+  // 资源
+  router.post('/api/resource/create', controller.resource.create);
+  router.post('/api/resource/update', controller.resource.update);
+  router.delete('/api/resource/delete/:id', controller.resource.del);
+  router.get('/api/resource/query', controller.resource.query);
+  // 友情链接
+  router.post('/api/links/create', controller.links.create);
+  router.post('/api/links/update', controller.links.update);
+  router.delete('/api/links/delete/:id', controller.links.del);
+  router.get('/api/links/query', controller.links.query);
+  // banner
+  router.post('/api/banner/create', controller.banner.create);
+  router.post('/api/banner/update', controller.banner.update);
+  router.delete('/api/banner/delete/:id', controller.banner.del);
+  router.get('/api/banner/query', controller.banner.query);
+  // 站点配置
+  router.post('/api/configuration/create', controller.configuration.create);
+  router.post('/api/configuration/update', controller.configuration.update);
+  router.get('/api/configuration/query', controller.configuration.query);
+  // 系统菜单
+  router.get('/api/adminmenu/query', controller.adminnenu.query);
 };

+ 5 - 5
app/service/bannner.js

@@ -4,7 +4,7 @@ const Service = require('egg').Service;
 const assert = require('assert');
 const moment = require('moment');
 class ContentService extends Service {
-  async create({ title, shortTitle, slug, path, annex, content, istop, columnList }) {
+  async create({ title, shortTitle, slug, path, annex, content, istop }) {
     assert(title, '标题不存在');
     assert(shortTitle, '短标题不存在');
     assert(slug, '摘要不存在');
@@ -14,17 +14,17 @@ class ContentService extends Service {
     const { Content: model } = this.ctx.model;
     const createAt = moment().format('x');
     try {
-      await model.create({ title, shortTitle, slug, path, annex, content, istop, columnList, createAt });
+      await model.create({ title, shortTitle, slug, path, annex, content, istop, createAt });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '添加失败' });
     }
   }
-  async update({ title, shortTitle, slug, path, annex, content, istop, columnList, id }) {
+  async update({ title, shortTitle, slug, path, annex, content, istop, id }) {
     assert(id, 'id不存在');
     const { Content: model } = this.ctx.model;
     try {
-      await model.findByIdAndUpdate(id, { title, shortTitle, slug, path, annex, content, istop, columnList });
+      await model.findByIdAndUpdate(id, { title, shortTitle, slug, path, annex, content, istop });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '修改失败' });
@@ -47,7 +47,7 @@ class ContentService extends Service {
       const res = await model.findById(id);
       return { errmsg: '', errcode: 0, data: res };
     } catch (error) {
-      throw new Error({ errcode: -2001, errmsg: '删除失败' });
+      throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }
   }
   async query({ skip, limit }) {

+ 13 - 20
app/service/column.js

@@ -46,35 +46,28 @@ class ColumnService extends Service {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  // async query() {
-  //   const { Column: model } = this.ctx.model;
-  //   const { adminUser: usermodel } = this.ctx.model;
-  //   const jwt = this.app.middleware.jwt(this.app.config.jwt);
+  async menuquery({ code }) {
+    const { Column: model } = this.ctx.model;
 
-  //   try {
-  //     const userInfo = await usermodel.findById(jwt.userId);
-  //     const menus = [];
-  //     userInfo.roleList.forEach(async e => {
-  //       const res = await model.where('roleLise').in(e);
-  //       menus.push(...res);
-  //     });
-  //     const list = _.uniqWith(menus, _.isEqual);
-  //     return { errmsg: '', errcode: 0, data: list };
-  //   } catch (error) {
-  //     throw new Error({ errcode: -2001, errmsg: '查询失败' });
-  //   }
-  // }
-  async query({ skip, limit, filter }) {
+    try {
+      const res = await model.where('menuList').in(code);
+      return { errmsg: '', errcode: 0, data: res };
+    } catch (error) {
+      throw new Error({ errcode: -2001, errmsg: '查询失败' });
+    }
+  }
+  async query({ skip, limit }) {
     const { Column: model } = this.ctx.model;
     try {
       let res;
       if (skip && limit) {
-        res = await model.find(filter).skip(skip * limit).limit(limit);
+        res = await model.find().skip(skip * limit).limit(limit);
       } else {
-        res = await model.find(filter);
+        res = await model.find();
       }
       return { errmsg: '', errcode: 0, data: res };
     } catch (error) {
+      console.log(error, 111);
       throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }
   }

+ 11 - 6
app/service/content.js

@@ -8,8 +8,7 @@ class ContentService extends Service {
     assert(title, '标题不存在');
     assert(shortTitle, '短标题不存在');
     assert(slug, '摘要不存在');
-    assert(thumbnail, '缩略图不存在');
-    assert(istop, '置顶不存在');
+    // assert(thumbnail, '缩略图不存在');
     assert(content, '内容不存在');
     const { Content: model } = this.ctx.model;
     const createAt = moment().format('x');
@@ -50,17 +49,23 @@ class ContentService extends Service {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  async query({ skip, limit }) {
+  async query({ skip, limit, code }) {
+    assert(code, '栏目code不存在');
     const { Content: model } = this.ctx.model;
     try {
       let res;
+      const total = await model.where('columnList').in(code).select({ content: false });
       if (skip && limit) {
-        res = await model.find({ content: false }).skip(skip * limit).limit(limit);
+        res = await model.where('columnList').in(code).select({ content: false })
+          .skip(Number(skip) * Number(limit))
+          .limit(Number(limit));
+        // res = await model.find({ code, content: false }).skip(skip * limit).limit(limit);
       } else {
-        res = await model.find({ content: false });
+        res = await model.where('columnList').in(code).select({ content: false });
       }
-      return { errmsg: '', errcode: 0, data: res };
+      return { errmsg: '', errcode: 0, data: res, total: total.length };
     } catch (error) {
+      console.log(error);
       throw new Error({ errcode: -2001, errmsg: '查询失败' });
     }
   }

+ 6 - 6
app/service/menu.js

@@ -4,7 +4,7 @@ const Service = require('egg').Service;
 const assert = require('assert');
 const moment = require('moment');
 class MenuService extends Service {
-  async create({ name, code, state, type }) {
+  async create({ name, code, state, type, uri }) {
     assert(name, '名称不存在');
     assert(code, '编码不存在');
     assert(state, '状态不存在');
@@ -12,7 +12,7 @@ class MenuService extends Service {
     const { Menu: model } = this.ctx.model;
     const createAt = moment().format('x');
     try {
-      await model.create({ name, code, createAt, state, type });
+      await model.create({ name, code, createAt, state, type, uri });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '添加失败' });
@@ -77,14 +77,14 @@ class MenuService extends Service {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  async query({ skip, limit, filter }) {
+  async query({ skip, limit }) {
     const { Menu: model } = this.ctx.model;
     try {
       let res;
-      if (skip && limit) {
-        res = await model.find(filter).skip(skip * limit).limit(limit);
+      if (skip !== undefined && limit !== undefined) {
+        res = await model.find().skip(skip * limit).limit(limit);
       } else {
-        res = await model.find(filter);
+        res = await model.find();
       }
       return { errmsg: '', errcode: 0, data: res };
     } catch (error) {

+ 3 - 5
app/service/page.js

@@ -8,8 +8,6 @@ class PageService extends Service {
     assert(title, '标题不存在');
     assert(shortTitle, '短标题不存在');
     assert(slug, '摘要不存在');
-    assert(thumbnail, '缩略图不存在');
-    assert(istop, '置顶不存在');
     assert(content, '内容不存在');
     const { Page: model } = this.ctx.model;
     const createAt = moment().format('x');
@@ -40,11 +38,11 @@ class PageService extends Service {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });
     }
   }
-  async details({ id }) {
-    assert(id, 'id不存在');
+  async details({ code }) {
+    assert(code, 'code不存在');
     const { Page: model } = this.ctx.model;
     try {
-      const res = await model.findById(id);
+      const res = await model.where('menu').in(code);
       return { errmsg: '', errcode: 0, data: res };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '删除失败' });

+ 0 - 0
config/adminMenu.json