增加代码生成功能

 根据eslint优化代码
This commit is contained in:
smallchill 2019-01-21 11:06:19 +08:00
parent a8e2799709
commit 5accc5fdf3
8 changed files with 76 additions and 21 deletions

View File

@ -31,7 +31,8 @@ module.exports = {
'jsx-a11y/click-events-have-key-events': 0,
'jsx-a11y/no-static-element-interactions': 0,
'jsx-a11y/anchor-is-valid': 0,
'linebreak-style': ['off'],
'no-nested-ternary': 0,
'linebreak-style': 0,
},
settings: {
polyfills: ['fetch', 'promises', 'url'],

View File

@ -48,5 +48,6 @@ const proxy = {
'GET /api/blade-system/code/detail': getFakeDetail,
'POST /api/blade-system/code/submit': fakeSuccess,
'POST /api/blade-system/code/remove': fakeSuccess,
'POST /api/blade-system/code/gen-code': fakeSuccess,
};
export default delay(proxy, 500);

View File

@ -47,10 +47,9 @@ class NoticeAdd extends PureComponent {
});
};
disabledDate = current => {
disabledDate = current =>
// Can not select days before today
return current && current < moment().endOf('day');
};
current && current < moment().endOf('day');
render() {
const {

View File

@ -1,9 +1,10 @@
import React, { PureComponent } from 'react';
import { connect } from 'dva';
import { Button, Col, Form, Input, Row } from 'antd';
import { Button, Col, Form, Input, message, Modal, Row } from 'antd';
import Panel from '../../../components/Panel';
import Grid from '../../../components/Sword/Grid';
import { CODE_LIST } from '../../../actions/code';
import { genCodes } from '../../../services/code';
const FormItem = Form.Item;
@ -13,12 +14,52 @@ const FormItem = Form.Item;
}))
@Form.create()
class Code extends PureComponent {
state = {
selectedRows: [],
};
// ============ 查询 ===============
handleSearch = params => {
const { dispatch } = this.props;
dispatch(CODE_LIST(params));
};
onSelectRow = rows => {
this.setState({
selectedRows: rows,
});
};
getSelectKeys = () => {
const { selectedRows } = this.state;
return selectedRows.map(row => row.id);
};
// ============ 代码生成 ===============
genCode = () => {
const keys = this.getSelectKeys();
if (keys.length === 0) {
message.warn('请先选择一条数据!');
return;
}
Modal.confirm({
title: '代码生成确认',
content: '是否生成选中模块的代码?',
okText: '确定',
okType: 'danger',
cancelText: '取消',
async onOk() {
const response = await genCodes({ ids: keys });
if (response.success) {
message.success(response.msg);
} else {
message.error(response.msg || '生成失败');
}
},
onCancel() {},
});
};
// ============ 查询表单 ===============
renderSearchForm = onReset => {
const { form } = this.props;
@ -55,6 +96,12 @@ class Code extends PureComponent {
);
};
renderLeftButton = () => (
<Button icon="tool" onClick={this.genCode}>
代码生成
</Button>
);
render() {
const code = 'code';
@ -92,8 +139,10 @@ class Code extends PureComponent {
<Grid
code={code}
form={form}
onSelectRow={this.onSelectRow}
onSearch={this.handleSearch}
renderSearchForm={this.renderSearchForm}
renderLeftButton={this.renderLeftButton}
loading={loading}
data={data}
columns={columns}

View File

@ -40,9 +40,7 @@ class Role extends PureComponent {
getSelectKeys = () => {
const { selectedRows } = this.state;
return selectedRows.map(row => {
return row.id;
});
return selectedRows.map(row => row.id);
};
// ============ 查询 ===============
@ -79,6 +77,7 @@ class Role extends PureComponent {
dispatch(MENU_REFRESH_DATA());
})
);
return true;
};
showModal = () => {
@ -142,7 +141,11 @@ class Role extends PureComponent {
);
};
renderLeftButton = () => <Button onClick={this.showModal}>权限设置</Button>;
renderLeftButton = () => (
<Button icon="user-add" onClick={this.showModal}>
权限设置
</Button>
);
renderTreeNodes = data =>
data.map(item => {

View File

@ -35,9 +35,7 @@ class User extends PureComponent {
getSelectKeys = () => {
const { selectedRows } = this.state;
return selectedRows.map(row => {
return row.id;
});
return selectedRows.map(row => row.id);
};
// ============ 查询 ===============
@ -55,7 +53,7 @@ class User extends PureComponent {
return;
}
this.showModal();
return false;
return;
}
if (btn.code === 'user_reset') {
if (keys.length === 0) {
@ -78,7 +76,6 @@ class User extends PureComponent {
},
onCancel() {},
});
return false;
}
};

View File

@ -25,3 +25,10 @@ export async function submit(params) {
export async function detail(params) {
return request(`/api/blade-system/code/detail?${stringify(params)}`);
}
export async function genCodes(params) {
return request('/api/blade-system/code/gen-code', {
method: 'POST',
body: params,
});
}

View File

@ -25,9 +25,8 @@ export default class Func {
(typeof val === 'string' && val === '' && val !== 'undefined')
) {
return true;
} else {
return false;
}
return false;
}
/**
@ -39,10 +38,9 @@ export default class Func {
static toInt(val, defaultValue) {
if (this.isEmpty(val)) {
return defaultValue === undefined ? -1 : defaultValue;
} else {
const num = parseInt(val, 0);
return Number.isNaN(num) ? (defaultValue === undefined ? -1 : defaultValue) : num;
}
const num = parseInt(val, 0);
return Number.isNaN(num) ? (defaultValue === undefined ? -1 : defaultValue) : num;
}
/**
@ -52,9 +50,9 @@ export default class Func {
*/
static toFormData(obj) {
const data = new FormData();
for (const key of Object.keys(obj)) {
Object.keys(obj).forEach(key => {
data.append(key, Array.isArray(obj[key]) ? obj[key].join(',') : obj[key]);
}
});
return data;
}