lrf402788946 4 年 前
コミット
f651eee9fe

+ 57 - 0
app/controller/client/.client.js

@@ -0,0 +1,57 @@
+module.exports = {
+  create: {
+    requestBody: [
+      "!name",
+      "!legal",
+      "!mobile",
+      "address",
+      "account_bank",
+      "account",
+      "taxes_no",
+      "!type",
+      "status",
+    ],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: [
+      "!name",
+      "!legal",
+      "!mobile",
+      "address",
+      "account_bank",
+      "account",
+      "taxes_no",
+      "!type",
+      "status",
+    ],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        name: "name",
+        legal: "legal",
+        mobile: "mobile",
+        type: "type",
+        status: "status",
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      desc: true,
+      count: true,
+    },
+  },
+};

+ 16 - 0
app/controller/client/client.js

@@ -0,0 +1,16 @@
+'use strict';
+
+// const _ = require('lodash');
+const meta = require('./.client.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+// 客户/供应商
+class ClientController extends Controller {
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.client.client;
+  }
+}
+
+module.exports = CrudController(ClientController, meta);

+ 78 - 0
app/model/client.js

@@ -0,0 +1,78 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+// 字典
+const Client = {
+  name: {
+    type: String,
+    required: true,
+    maxLength: 200,
+    field: { label: '企业名称', filter: true, required: true },
+  },
+  legal: {
+    type: String,
+    required: true,
+    maxLength: 200,
+    field: { label: '联系人', filter: true, required: true },
+  },
+  mobile: {
+    type: String,
+    required: true,
+    maxLength: 200,
+    field: { label: '联系电话', filter: true, required: true },
+  },
+  address: {
+    type: String,
+    maxLength: 200,
+    field: { label: '地址' },
+  }, // 存储内容
+  account_bank: {
+    type: String,
+    maxLength: 200,
+    field: { label: '开户行' },
+  },
+  account: { type: String, maxLength: 200, field: { label: '银行账号' } },
+  taxes_no: { type: String, maxLength: 200, field: { label: '税号' } },
+  type: {
+    type: String,
+    maxLength: 200,
+    field: {
+      label: '类型',
+      notable: true,
+      noform: true,
+      list: [
+        { label: '客户', value: '客户' },
+        { label: '供应商', value: '供应商' },
+      ],
+    },
+  },
+  status: {
+    type: String,
+    maxLength: 200,
+    default: '0',
+    field: {
+      label: '状态',
+      filter: 'select',
+      type: 'select',
+      format: (i => (i === '0' ? '使用' : '禁用')).toString(),
+      list: [
+        { label: '使用', value: '0' },
+        { label: '禁用', value: '1' },
+      ],
+    },
+  }, // 状态:0=>使用;1禁用
+};
+
+const schema = new Schema(Client, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.index({ name: 1 });
+schema.index({ legal: 1 });
+schema.index({ mobile: 1 });
+schema.index({ type: 1 });
+
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Client', schema, 'client');
+};

+ 3 - 2
app/router.js

@@ -18,7 +18,8 @@ module.exports = app => {
   router.post('zhwlcar', '/api/servicezhwl/zhwlcar/update/:id', controller.zhwlcar.update);
 
   // 系统设置路由
-  require('./router/system')(app);
-  require('./router/personnel')(app);
+  require('./router/system')(app); // 系统设置
+  require('./router/personnel')(app); // 人员设置
+  require('./router/client')(app); // 客户/供应商相关
 
 };

+ 11 - 0
app/router/client.js

@@ -0,0 +1,11 @@
+'use strict';
+/**
+ * @param {Egg.Application} app - egg application
+ */
+module.exports = app => {
+  const prefix = '/api/servicezhwl';
+  const index = 'client';
+  const { router, controller } = app;
+  router.resources('client', `${prefix}/client`, controller[index].client); // index、create、show、destroy
+  router.post('client', `${prefix}/client/update/:id`, controller[index].client.update);
+};

+ 16 - 0
app/service/client/client.js

@@ -0,0 +1,16 @@
+'use strict';
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { ZhwldriverError, ErrorCode } = require('naf-core').Error;
+
+class ClientService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'client');
+    this.model = this.ctx.model.Client;
+  }
+}
+
+module.exports = ClientService;