77 lines
2.5 KiB
Plaintext
77 lines
2.5 KiB
Plaintext
const {<%=table_name%>, op } = require('../../middleware/baseModel');
|
|
|
|
module.exports = {
|
|
'GET /<%=table_name%>/all' : async (ctx, next) => {
|
|
const res = await <%=table_name%>.findAll();
|
|
return ctx.success(res);
|
|
},
|
|
|
|
'GET /<%=table_name%>/detail' : async (ctx, next) => {
|
|
let id = ctx.get('id')
|
|
const res = await <%=table_name%>.findOne({where:{id:id}});
|
|
return ctx.success(res);
|
|
},
|
|
|
|
|
|
"POST /<%=table_name%>/export": async (ctx, next) => {
|
|
let rows = [];
|
|
let cols = [];
|
|
let title='<%=table_name%>';
|
|
|
|
let tableAttributes = <%=table_name%>.tableAttributes;
|
|
let colKeys = Object.keys(tableAttributes);
|
|
|
|
colKeys.forEach((key) => {
|
|
let row = tableAttributes[key];
|
|
let caption = row.comment ? row.comment : row.fieldName;
|
|
cols.push({ caption, type: row.type.__proto__.key === "INTEGER" ? "number" : "string", key: row.field });
|
|
});
|
|
|
|
const dbRows = await <%=table_name%>.findAll({});
|
|
rows = dbRows.map((p) => {
|
|
let tempRow = p.toJSON();
|
|
let row = [];
|
|
cols.forEach((col) => {
|
|
row.push(tempRow[col.key]);
|
|
});
|
|
return row;
|
|
});
|
|
|
|
return ctx.downFile({title, rows, cols });
|
|
},
|
|
|
|
'POST /<%=table_name%>/page' : async (ctx, next) => {
|
|
let param = ctx.getPageSize()
|
|
let row = ctx.getBody();
|
|
let {key,value}=row.seachOption
|
|
let where={}
|
|
if(key&&value){
|
|
where[key]={ [op.like]:'%' +value + '%'}
|
|
}
|
|
|
|
const res = await <%=table_name%>.findAndCountAll({
|
|
where,
|
|
order: [["id", "DESC"]],
|
|
...param,
|
|
});
|
|
return ctx.success(res);
|
|
},
|
|
|
|
'POST /<%=table_name%>/add': async (ctx, next) => {
|
|
let row = ctx.getBody();
|
|
const res = await <%=table_name%>.create(row);
|
|
return ctx.success(res);
|
|
},
|
|
'POST /<%=table_name%>/edit': async (ctx, next) => {
|
|
let row = ctx.getBody();
|
|
let id = ctx.get('id')
|
|
const res = await <%=table_name%>.update(row, { where: { id: id }, individualHooks: true });
|
|
return ctx.success(res);
|
|
},
|
|
|
|
'POST /<%=table_name%>/del': async (ctx, next) => {
|
|
let id = ctx.get('id')
|
|
const res = await <%=table_name%>.destroy({ where: { id: id }, individualHooks: true });
|
|
return ctx.success(res);
|
|
}
|
|
}; |