Browse Source

车辆日常维护

lrf402788946 4 years ago
parent
commit
67aff81ba8

+ 37 - 0
app/controller/car/.daily.js

@@ -0,0 +1,37 @@
+module.exports = {
+  create: {
+    requestBody: ["!car_no", "!money", "!item", "!date", "status", "remark"],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: ["!car_no", "!money", "!item", "!date", "status", "remark"],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        car_no: "%car_no%",
+        money: "money",
+        item: "%item%",
+        date: "date",
+        status:"status"
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      desc: true,
+      count: true,
+    },
+  },
+};

+ 16 - 0
app/controller/car/daily.js

@@ -0,0 +1,16 @@
+'use strict';
+
+// const _ = require('lodash');
+const meta = require('./.daily.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+// 车辆表
+class DailyController extends Controller {
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.car.daily;
+  }
+}
+
+module.exports = CrudController(DailyController, meta);

+ 6 - 2
app/model/car.js

@@ -254,7 +254,11 @@ const car = {
     type: String,
     required: false,
     maxLength: 200,
-    field: { label: '备注', required: true },
+    field: {
+      label: '备注',
+      type: 'textarea',
+      options: { autosize: { minRows: 3, maxRows: 5 } },
+    },
     row: 32,
   }, // 备注
   status: {
@@ -264,7 +268,7 @@ const car = {
     field: {
       label: '状态',
       filter: 'select',
-      type: 'select',
+      type: 'radio',
       format: (i => (i === '0' ? '使用' : '禁用')).toString(),
       list: [
         { label: '使用', value: '0' },

+ 1 - 1
app/model/client.js

@@ -1,7 +1,7 @@
 'use strict';
 const Schema = require('mongoose').Schema;
 const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
-// 字典
+// 客户
 const Client = {
   name: {
     type: String,

+ 77 - 0
app/model/daily.js

@@ -0,0 +1,77 @@
+'use strict';
+const moment = require('moment');
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+// 车辆日常维护
+const daily = {
+  car_no: {
+    type: String,
+    required: true,
+    maxLength: 200,
+    field: { label: '车牌号', filter: 'select', required: true, type: 'select', format: true },
+    row: 1,
+  },
+  money: {
+    type: Number,
+    required: true,
+    maxLength: 200,
+    field: { label: '金额', filter: true, required: true, type: 'number' },
+    row: 2,
+  },
+  item: {
+    type: String,
+    required: true,
+    maxLength: 200,
+    field: { label: '项目', filter: true, required: true },
+    row: 3,
+  },
+  date: {
+    type: String,
+    maxLength: 200,
+    default: moment().format('YYYY-MM-DD'),
+    field: { label: '维护时间', type: 'date', required: true, filter: 'date' },
+    row: 4,
+  },
+  remark: {
+    type: String,
+    required: false,
+    maxLength: 200,
+    field: {
+      label: '备注',
+      type: 'textarea',
+      options: { autosize: { minRows: 3, maxRows: 5 } },
+    },
+    row: 5,
+  },
+  status: {
+    type: String,
+    maxLength: 200,
+    default: '0',
+    field: {
+      label: '状态',
+      filter: 'select',
+      type: 'radio',
+      format: (i => (i === '0' ? '未结算' : '已结算')).toString(),
+      list: [
+        { label: '未结算', value: '0' },
+        { label: '已结算', value: '1' },
+      ],
+    },
+    row: 6,
+  },
+};
+
+const schema = new Schema(daily, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.index({ car_no: 1 });
+schema.index({ money: 1 });
+schema.index({ item: 1 });
+schema.index({ date: 1 });
+schema.index({ status: 1 });
+
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Daily', schema, 'daily');
+};

+ 1 - 1
app/model/item.js

@@ -1,7 +1,7 @@
 'use strict';
 const Schema = require('mongoose').Schema;
 const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
-// 合同
+// 项目
 const item = {
   treaty: {
     type: String,

+ 1 - 1
app/model/mode.js

@@ -1,7 +1,7 @@
 'use strict';
 const Schema = require('mongoose').Schema;
 const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
-// 字典
+// 方式
 const mode = {
   name: {
     type: String,

+ 3 - 0
app/router/car.js

@@ -8,4 +8,7 @@ module.exports = app => {
   const { router, controller } = app;
   router.resources('car', `${prefix}/car`, controller[index].car); // index、create、show、destroy
   router.post('car', `${prefix}/car/update/:id`, controller[index].car.update);
+  // 日常维护
+  router.resources('daily', `${prefix}/daily`, controller[index].daily); // index、create、show、destroy
+  router.post('daily', `${prefix}/daily/update/:id`, controller[index].daily.update);
 };

+ 16 - 0
app/service/car/daily.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 { ZhwlcarError, ErrorCode } = require('naf-core').Error;
+
+class DailyService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'daily');
+    this.model = this.ctx.model.Daily;
+  }
+}
+
+module.exports = DailyService;