8 changed files with 278 additions and 5 deletions
			
			
		| @ -0,0 +1,86 @@ | |||
| 'use strict'; | |||
| const moment = require('moment') | |||
| 
 | |||
| async function assessGet (ctx) { | |||
|     try { | |||
|         const models = ctx.fs.dc.models; | |||
|         const { unit, month } = ctx.query; | |||
| 
 | |||
|         let findOption = { | |||
|             where: { | |||
| 
 | |||
|             }, | |||
|             order: [['id', 'DESC']] | |||
|         } | |||
|         if (month) { | |||
|             findOption.where.month = { | |||
|                 $between: [moment(month).startOf('month').format(), moment(month).endOf('month').format()] | |||
|             } | |||
|         } | |||
|         if (unit) { | |||
|             findOption.where.unit = unit | |||
|         } | |||
| 
 | |||
|         const roadRes = await models.Assess.findAll(findOption) | |||
| 
 | |||
|         ctx.status = 200; | |||
|         ctx.body = roadRes | |||
|     } catch (error) { | |||
|         ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); | |||
|         ctx.status = 400; | |||
|         ctx.body = { | |||
|             message: typeof error == 'string' ? error : undefined | |||
|         } | |||
|     } | |||
| } | |||
| 
 | |||
| async function assessEdit (ctx) { | |||
|     try { | |||
|         const models = ctx.fs.dc.models; | |||
|         const data = ctx.request.body; | |||
| 
 | |||
|         if (!data.assessId) { | |||
|             await models.Assess.create(data) | |||
|         } else { | |||
|             await models.Assess.update( | |||
|                 data, { | |||
|                 where: { | |||
|                     id: data.assessId | |||
|                 } | |||
|             }) | |||
|         } | |||
| 
 | |||
|         ctx.status = 204 | |||
|     } catch (error) { | |||
|         ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); | |||
|         ctx.status = 400; | |||
|         ctx.body = { | |||
|             message: typeof error == 'string' ? error : undefined | |||
|         } | |||
|     } | |||
| } | |||
| 
 | |||
| async function assessDel (ctx) { | |||
|     try { | |||
|         const models = ctx.fs.dc.models; | |||
|         const { assessId } = ctx.params; | |||
| 
 | |||
|         await models.Assess.destroy({ | |||
|             where: { | |||
|                 id: assessId | |||
|             } | |||
|         }) | |||
| 
 | |||
|         ctx.status = 204 | |||
|     } catch (error) { | |||
|         ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); | |||
|         ctx.status = 400; | |||
|         ctx.body = { | |||
|             message: typeof error == 'string' ? error : undefined | |||
|         } | |||
|     } | |||
| } | |||
| 
 | |||
| module.exports = { | |||
|     assessGet, assessEdit, assessDel, | |||
| }; | |||
| @ -0,0 +1,106 @@ | |||
| /* eslint-disable*/ | |||
| 'use strict'; | |||
| 
 | |||
| module.exports = dc => { | |||
|   const DataTypes = dc.ORM; | |||
|   const sequelize = dc.orm; | |||
|   const Assess = sequelize.define("assess", { | |||
|     id: { | |||
|       type: DataTypes.INTEGER, | |||
|       allowNull: false, | |||
|       defaultValue: null, | |||
|       comment: null, | |||
|       primaryKey: true, | |||
|       field: "id", | |||
|       autoIncrement: true, | |||
|       unique: "assess_id_uindex" | |||
|     }, | |||
|     unit: { | |||
|       type: DataTypes.STRING, | |||
|       allowNull: true, | |||
|       defaultValue: null, | |||
|       comment: "考核单位", | |||
|       primaryKey: false, | |||
|       field: "unit", | |||
|       autoIncrement: false | |||
|     }, | |||
|     month: { | |||
|       type: DataTypes.DATE, | |||
|       allowNull: true, | |||
|       defaultValue: null, | |||
|       comment: "考核月份", | |||
|       primaryKey: false, | |||
|       field: "month", | |||
|       autoIncrement: false | |||
|     }, | |||
|     totalPoints: { | |||
|       type: DataTypes.DOUBLE, | |||
|       allowNull: true, | |||
|       defaultValue: null, | |||
|       comment: "总分", | |||
|       primaryKey: false, | |||
|       field: "total_points", | |||
|       autoIncrement: false | |||
|     }, | |||
|     industryPoints: { | |||
|       type: DataTypes.DOUBLE, | |||
|       allowNull: true, | |||
|       defaultValue: null, | |||
|       comment: "业内得分", | |||
|       primaryKey: false, | |||
|       field: "industry_points", | |||
|       autoIncrement: false | |||
|     }, | |||
|     industryOutPoints: { | |||
|       type: DataTypes.DOUBLE, | |||
|       allowNull: true, | |||
|       defaultValue: null, | |||
|       comment: "业外得分", | |||
|       primaryKey: false, | |||
|       field: "industry_out_points", | |||
|       autoIncrement: false | |||
|     }, | |||
|     plusOrSubtract: { | |||
|       type: DataTypes.DOUBLE, | |||
|       allowNull: true, | |||
|       defaultValue: null, | |||
|       comment: "加减得分", | |||
|       primaryKey: false, | |||
|       field: "plus_or_subtract", | |||
|       autoIncrement: false | |||
|     }, | |||
|     industryDeductionReason: { | |||
|       type: DataTypes.STRING, | |||
|       allowNull: true, | |||
|       defaultValue: null, | |||
|       comment: "业内扣分原因\n", | |||
|       primaryKey: false, | |||
|       field: "industry_deduction_reason ", | |||
|       autoIncrement: false | |||
|     }, | |||
|     industryOutDeductionReason: { | |||
|       type: DataTypes.STRING, | |||
|       allowNull: true, | |||
|       defaultValue: null, | |||
|       comment: "业外扣分原因", | |||
|       primaryKey: false, | |||
|       field: "industry_out_deduction_reason", | |||
|       autoIncrement: false | |||
|     }, | |||
|     remark: { | |||
|       type: DataTypes.STRING, | |||
|       allowNull: true, | |||
|       defaultValue: null, | |||
|       comment: "备注", | |||
|       primaryKey: false, | |||
|       field: "remark", | |||
|       autoIncrement: false | |||
|     } | |||
|   }, { | |||
|     tableName: "assess", | |||
|     comment: "", | |||
|     indexes: [] | |||
|   }); | |||
|   dc.models.Assess = Assess; | |||
|   return Assess; | |||
| }; | |||
| @ -0,0 +1,35 @@ | |||
| import { basicAction } from '@peace/utils' | |||
| import { ApiTable } from '$utils' | |||
| 
 | |||
| export function getAssess (query) { | |||
|     return dispatch => basicAction({ | |||
|         type: 'get', | |||
|         dispatch: dispatch, | |||
|         query: query, | |||
|         actionType: 'GET_ASSESS', | |||
|         url: ApiTable.getAssess, | |||
|         msg: { error: '获取考核评分信息' }, | |||
|         reducer: { name: 'assess' } | |||
|     }); | |||
| } | |||
| 
 | |||
| export function delAssess (query) { | |||
|     return dispatch => basicAction({ | |||
|         type: 'del', | |||
|         dispatch: dispatch, | |||
|         actionType: 'DEL_ASSESS', | |||
|         url: ApiTable.delAssess.replace("{assessId}", query?.id), | |||
|         msg: { option: '删除考核评分信息' }, | |||
|     }); | |||
| } | |||
| 
 | |||
| export function editAssess (query) { | |||
|     return dispatch => basicAction({ | |||
|         type: 'put', | |||
|         dispatch: dispatch, | |||
|         data: query, | |||
|         actionType: 'PUT_ASSESS', | |||
|         url: ApiTable.editAssess, | |||
|         msg: { option: '编辑或新增考核评分信息' }, | |||
|     }); | |||
| } | |||
| @ -0,0 +1,24 @@ | |||
| import React, { useState, useEffect } from 'react'; | |||
| import { connect } from 'react-redux'; | |||
| 
 | |||
| function Assess () { | |||
| 
 | |||
|     useEffect(() => { | |||
| 
 | |||
|         return () => { | |||
|         }; | |||
|     }, []); | |||
| 
 | |||
|     return ( | |||
|         <div> | |||
|              | |||
|         </div> | |||
|     ); | |||
| } | |||
| function mapStateToProps (state) { | |||
|     const { auth } = state | |||
|     return { | |||
|         user: auth.user, | |||
|     } | |||
| } | |||
| export default connect(mapStateToProps)(Assess); | |||
					Loading…
					
					
				
		Reference in new issue