nihao 5 лет назад
Родитель
Сommit
3a11356f4e
6 измененных файлов с 46 добавлено и 37 удалено
  1. 2 2
      app/controller/.column.js
  2. 2 2
      app/controller/.menu.js
  3. 7 5
      app/model/column.js
  4. 8 1
      app/model/menu.js
  5. 25 25
      app/router.js
  6. 2 2
      app/service/menu.js

+ 2 - 2
app/controller/.column.js

@@ -4,14 +4,14 @@ module.exports = {
     "parameters": {
       "query": ["!site"],
     },
-    "requestBody": ["!moudle", "!name", "picurl", "description", "inMenu", "showModes", "isAudit", "issuer"],
+    "requestBody": ["!moudle", "!name", "picurl", "description", "inMenu", "showModes", "isAudit", "attachment", "issuer"],
   },
   // 修改栏目
   "update": {
     "parameters": {
       "params": ["!id"],
     },
-    "requestBody": ["moudle", "name", "picurl", "description", "inMenu", "showModes", "isAudit", "issuer"],
+    "requestBody": ["moudle", "name", "picurl", "description", "inMenu", "showModes", "isAudit", "attachment", "issuer"],
     // "options": {
     //   "projection": "+name",
     // },

+ 2 - 2
app/controller/.menu.js

@@ -4,14 +4,14 @@ module.exports = {
     "parameters": {
       "query": ["!site"],
     },
-    "requestBody": ["!parentId", "!name", "picurl", "description", "isShow", "issuer"],
+    "requestBody": ["parentId", "!name", "picurl", "description", "isShow", "attachment", "issuer"],
   },
   // 修改菜单
   "update": {
     "parameters": {
       "params": ["!id"],
     },
-    "requestBody": ["!parentId", "!name", "picurl", "description", "isShow", "issuer"],
+    "requestBody": ["parentId", "!name", "picurl", "description", "isShow", "attachment", "issuer"],
     // "options": {
     //   "projection": "+name",
     // },

+ 7 - 5
app/model/column.js

@@ -4,11 +4,12 @@
 'use strict';
 const Schema = require('mongoose').Schema;
 const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
-// // 附件信息
-// const Attachment = new Schema({
-//   name: { type: String, maxLength: 128 },
-//   uri: { type: String, maxLength: 128 },
-// }, { _id: false });
+
+// 附件信息
+const Attachment = new Schema({
+  name: { type: String, maxLength: 128 },
+  uri: { type: String, maxLength: 128 },
+}, { _id: false });
 
 // 栏目信息
 const SchemaDefine = {
@@ -20,6 +21,7 @@ const SchemaDefine = {
   inMenu: { type: String, required: false, maxLength: 5 }, // 是否在菜单中显示
   showModes: { type: String, required: false, maxLength: 5 }, // 展现方式
   isAudit: { type: String, required: false, maxLength: 5 }, // 是否需要审核
+  attachment: [ Attachment ], // 附件
   issuer: String, // 栏目单位
   meta: {
     createdBy: String, // 创建用户

+ 8 - 1
app/model/menu.js

@@ -5,14 +5,21 @@
 const Schema = require('mongoose').Schema;
 const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
 
+// 附件信息
+const Attachment = new Schema({
+  name: { type: String, maxLength: 128 },
+  uri: { type: String, maxLength: 128 },
+}, { _id: false });
+
 // 栏目信息
 const SchemaDefine = {
   site: { type: String, required: true, maxLength: 64 }, // 归属站点
-  parentId: { type: String, required: true, maxLength: 64 }, // 父级ID
+  parentId: { type: String, required: false, maxLength: 64 }, // 父级ID
   name: { type: String, required: true, maxLength: 100 }, // 菜单名称
   picurl: { type: String, required: false, maxLength: 256 }, // 栏目图片URL
   description: { type: String, required: false, maxLength: 256 }, // 栏目描述
   isShow: { type: String, required: false, maxLength: 5 }, // 是否需要审核
+  attachment: [ Attachment ], // 附件
   issuer: String, // 栏目单位
   meta: {
     createdBy: String, // 创建用户

+ 25 - 25
app/router.js

@@ -20,38 +20,38 @@ module.exports = app => {
 
   // 管理接口
   // 【分站】新闻接口
-  router.get('/admin/news/query', controller.news.query);// 查询新闻信息
-  router.get('/admin/news/fetch', controller.news.fetch);// 获得新闻详情
-  router.post('/admin/news/create', controller.news.create);// 发布新闻信息
-  router.post('/admin/news/update', controller.news.update);// 修改新闻信息
-  router.post('/admin/news/delete', controller.news.delete);// 删除新闻信息
-  router.post('/admin/news/restore', controller.news.restore);// 恢复新闻信息
+  router.get('/adminapi/news/query', controller.news.query);// 查询新闻信息
+  router.get('/adminapi/news/fetch', controller.news.fetch);// 获得新闻详情
+  router.post('/adminapi/news/create', controller.news.create);// 发布新闻信息
+  router.post('/adminapi/news/update', controller.news.update);// 修改新闻信息
+  router.post('/adminapi/news/delete', controller.news.delete);// 删除新闻信息
+  router.post('/adminapi/news/restore', controller.news.restore);// 恢复新闻信息
 
   // 栏目接口
   // 【分站】栏目接口
-  router.get('/admin/column/query', controller.column.query);// 查询栏目信息
-  router.get('/admin/column/fetch/:id', controller.column.fetch);// 获得栏目详情
-  router.post('/admin/column/create', controller.column.create);// 发布栏目信息
-  router.post('/admin/column/update/:id', controller.column.update);// 修改栏目信息
-  router.post('/admin/column/delete/:id', controller.column.delete);// 删除栏目信息
-  router.post('/admin/column/restore/:id', controller.column.restore);// 恢复栏目信息
+  router.get('/adminapi/column/query', controller.column.query);// 查询栏目信息
+  router.get('/adminapi/column/fetch/:id', controller.column.fetch);// 获得栏目详情
+  router.post('/adminapi/column/create', controller.column.create);// 发布栏目信息
+  router.post('/adminapi/column/update/:id', controller.column.update);// 修改栏目信息
+  router.post('/adminapi/column/delete/:id', controller.column.delete);// 删除栏目信息
+  router.post('/adminapi/column/restore/:id', controller.column.restore);// 恢复栏目信息
 
   // 菜单接口
   // 【分站】菜单接口
-  router.get('/admin/menu/query', controller.menu.query);// 查询菜单信息
-  router.get('/admin/menu/fetch/:id', controller.menu.fetch);// 获得菜单详情
-  router.post('/admin/menu/create', controller.menu.create);// 发布菜单信息
-  router.post('/admin/menu/update/:id', controller.menu.update);// 修改菜单信息
-  router.post('/admin/menu/delete/:id', controller.menu.delete);// 删除菜单信息
-  router.post('/admin/menu/restore/:id', controller.menu.restore);// 恢复菜单信息
+  router.get('/adminapi/menu/query', controller.menu.query);// 查询菜单信息
+  router.get('/adminapi/menu/fetch/:id', controller.menu.fetch);// 获得菜单详情
+  router.post('/adminapi/menu/create', controller.menu.create);// 发布菜单信息
+  router.post('/adminapi/menu/update/:id', controller.menu.update);// 修改菜单信息
+  router.post('/adminapi/menu/delete/:id', controller.menu.delete);// 删除菜单信息
+  router.post('/adminapi/menu/restore/:id', controller.menu.restore);// 恢复菜单信息
 
   // 分站配置接口,用于分站管理员配置本分站信息
-  router.get('/admin/site/config', controller.site.config_fetch);// 分站获取自身配置
-  router.post('/admin/site/config', controller.site.config_set);// 分站配置自身
+  router.get('/adminapi/site/config', controller.site.config_fetch);// 分站获取自身配置
+  router.post('/adminapi/site/config', controller.site.config_set);// 分站配置自身
   // 系统管理员管理接口
-  router.get('/admin/site/query', controller.site.query);// 查询分站信息
-  router.get('/admin/site/fetch', controller.site.fetch);// 获得分站详情
-  router.post('/admin/site/create', controller.site.create);// 发布分站信息
-  router.post('/admin/site/update', controller.site.update);// 修改分站信息
-  router.post('/admin/site/delete', controller.site.delete);// 删除分站信息
+  router.get('/adminapi/site/query', controller.site.query);// 查询分站信息
+  router.get('/adminapi/site/fetch', controller.site.fetch);// 获得分站详情
+  router.post('/adminapi/site/create', controller.site.create);// 发布分站信息
+  router.post('/adminapi/site/update', controller.site.update);// 修改分站信息
+  router.post('/adminapi/site/delete', controller.site.delete);// 删除分站信息
 };

+ 2 - 2
app/service/menu.js

@@ -15,7 +15,7 @@ class MenuService extends CrudService {
   async create({ site }, { parentId, name, picurl, description, isShow,  issuer }) {
     // 检查数据
     assert(_.isString(site), 'site不能为空');
-    assert(_.isString(parentId), 'parentId不能为空');
+    assert(!parentId || _.isString(parentId), 'parentId不能为空');
     assert(_.isString(name), 'name不能为空');
     assert(!picurl || _.isString(picurl), 'picurl必须为字符串');
     assert(!description || _.isString(description), 'description必须为字符串');
@@ -40,7 +40,7 @@ class MenuService extends CrudService {
     // 检查数据
     const { parentId, name, picurl, description, isShow, issuer } = payload;
     assert(id, 'id不能为空');
-    assert(_.isString(parentId), 'parentId不能为空');
+    assert(!parentId || _.isString(parentId), 'parentId不能为空');
     assert(_.isString(name), 'name不能为空');
     assert(!picurl || _.isString(picurl), 'picurl必须为字符串');
     assert(!description || _.isString(description), 'description必须为字符串');