app-base-react
Version:
react development common base package.
592 lines (523 loc) • 19.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _table = require('antd/lib/table');
var _table2 = _interopRequireDefault(_table);
var _input = require('antd/lib/input');
var _input2 = _interopRequireDefault(_input);
var _row = require('antd/lib/row');
var _row2 = _interopRequireDefault(_row);
var _col = require('antd/lib/col');
var _col2 = _interopRequireDefault(_col);
var _modal = require('antd/lib/modal');
var _modal2 = _interopRequireDefault(_modal);
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _button = require('antd/lib/button');
var _button2 = _interopRequireDefault(_button);
var _message2 = require('antd/lib/message');
var _message3 = _interopRequireDefault(_message2);
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
require('antd/lib/table/style/css');
require('antd/lib/input/style/css');
require('antd/lib/row/style/css');
require('antd/lib/col/style/css');
require('antd/lib/modal/style/css');
require('antd/lib/button/style/css');
require('antd/lib/message/style/css');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _index = require('../../../library/generator/index.js');
var _index2 = _interopRequireDefault(_index);
var _index3 = require('../../../library/generator/index1.js');
var _index4 = _interopRequireDefault(_index3);
var _utilAxios = require('../../../library/util-axios');
var _utilAxios2 = _interopRequireDefault(_utilAxios);
var _utilModal = require('../../../library/util-modal');
var _utilModal2 = _interopRequireDefault(_utilModal);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
// import * as api from '@/api';
// import { UtilModal } from 'app-base-react';
// 系统配置-申报模板
var title = '申报模板';
var url = 'CfgDictionary/';
// const FormView = lazy(() => import('./DeclTemplateView'));
var FormEdit = (0, _react.lazy)(function () {
return import('./DeclTemplateEdit');
});
var CfgDictionaryList = function (_React$Component) {
_inherits(CfgDictionaryList, _React$Component);
function CfgDictionaryList(props) {
_classCallCheck(this, CfgDictionaryList);
var _this2 = _possibleConstructorReturn(this, (CfgDictionaryList.__proto__ || Object.getPrototypeOf(CfgDictionaryList)).call(this, props));
_this2.onChange = function (pagination, filters, sorter) {
var params = _this2.state.params;
params.pageSize = pagination.pageSize;
params.pageIndex = pagination.current;
_this2.onLoad(params);
};
_this2.onSearch = function (value) {
var params = _this2.state.params;
params.name = value;
_this2.onLoad(params);
};
_this2.onAdd = function () {
var values = {};
Object.keys(_this2.state.values).forEach(function (key) {
return values[key] = undefined;
});
_this2.setState({
showView: false,
showEdit: true,
values: values
});
};
_this2.onView = function (values) {
_this2.setState({
showView: true,
loading: false,
values: values
});
};
_this2.onEdit = function (values) {
var me = _this2;
_utilAxios2.default.get(url + 'getModel?id=' + values.id, {}, function (rs) {
me.setState({
showEdit: true,
showView: false,
values: rs.data
});
});
};
_this2.onSave = function (values) {
_this2.onLoad(_this2.state.params);
};
_this2.saveForm = function (val) {
try {
var options = _this2.formRef2.current.getValue();
var isEmpty = Object.keys(options).length < 2;
var me = _this2;
if (isEmpty) {
_utilModal2.default.confirm({
content: '表单为空,确定保存吗',
onOk: function onOk() {
me.saveAPI('');
}
});
} else {
me.saveAPI(JSON.stringify(options));
}
} catch (e) {
console.log('ERROR:' + e);
}
};
_this2.saveAPI = function (values) {
var me = _this2;
var params = _extends({}, _this2.state.record, {
memo: values
});
_utilAxios2.default.post(url + 'save', params).then(function (rs) {
if (rs.success) {
_message3.default.info(rs.msg);
me.setState({ isModalOpen: false }, function () {
return me.onSave();
});
} else {
_message3.default.error(rs.msg);
}
});
};
_this2.handleCancel = function () {
_this2.setState({
isModalOpen: false
});
};
_this2.onDel = function () {
var me = _this2;
var _this2$state = _this2.state,
selected = _this2$state.selected,
selectedRows = _this2$state.selectedRows;
if (selected.length == 0) {
_message3.default.error('请选择记录!');
return;
}
var text = '';
_this2.state.hasUseKey.map(function (item) {
selectedRows.map(function (item2) {
if (item === item2.value) {
text += item2.zh_CN + '、';
}
});
});
if (text) {
_message3.default.error(text + '已被使用,无法删除!');
text = text.slice(-1);
return;
}
_utilModal2.default.confirm({
content: '确定删除?',
okText: '确认',
cancelText: '取消',
onOk: function onOk() {
_utilAxios2.default.delete(url + 'delete?id=' + selected).then(function (rs) {
if (rs.success) {
_message3.default.info(rs.msg);
me.onLoad(me.state.params || {});
} else {
_message3.default.error(rs.msg);
}
});
}
});
};
_this2.state = {
params: {
app: 'project',
type: '表单模板'
},
data: [],
pagination: {},
loading: false,
selected: [], //Table checked
selectedRows: [], //Table checked
//显藏控制
showView: false,
showEdit: false,
//values
values: {},
tempValue: '{}',
record: {},
isModalOpen: false,
optionsTitle: '编辑模板',
isReadOnly: false,
defaultSettings: [{
title: '基础组件',
widgets: [{
text: '输入框',
name: 'input',
schema: {
title: '输入框',
type: 'string'
},
setting: {
props: {
title: '选项',
type: 'object',
labelWidth: 80,
properties: {
// allowClear: {
// title: '是否带清除按钮',
// description: '填写内容后才会出现x哦',
// type: 'boolean',
// },
addonBefore: {
title: '前tab',
type: 'string'
},
addonAfter: {
title: '后tab',
type: 'string'
},
prefix: {
title: '前缀',
type: 'string'
},
suffix: {
title: '后缀',
type: 'string'
}
}
},
minLength: {
title: '最短字数',
type: 'number'
},
maxLength: {
title: '最长字数',
type: 'number'
},
pattern: {
title: '校验正则表达式',
type: 'string',
props: {
placeholder: '填写正则表达式'
}
}
}
}],
show: true,
useCommon: true // TODO: 是否将common
}],
hasUseKey: []
};
_this2.columns = [{
title: '序号',
width: 50,
fixed: 'left',
render: function render(text, record, index) {
return index + 1;
}
}, {
title: '模板应用',
dataIndex: 'app',
width: 100,
render: function render(text, record) {
return _react2.default.createElement(
'a',
{ className: 'btn-detail', onClick: function onClick() {
return _this2.onEdit(record);
} },
text
);
}
}, {
title: '模板名称',
dataIndex: 'zh_CN',
width: 120
}, {
title: '编辑/预览',
dataIndex: 'memo',
width: 100,
render: function render(text, record) {
var ifhasUse = false;
_this2.state.hasUseKey.map(function (item) {
if (item === record.value) {
ifhasUse = true;
}
});
if (ifhasUse) {
return _react2.default.createElement(
_button2.default,
{ onClick: function onClick() {
return _this2.setState({ isModalOpen: true, optionsTitle: record.zh_CN, record: record, tempValue: text, isReadOnly: true });
} },
'\u9884\u89C8\u8868\u5355'
);
} else {
return _react2.default.createElement(
_button2.default,
{ onClick: function onClick() {
return _this2.setState({ isModalOpen: true, optionsTitle: record.zh_CN, record: record, tempValue: text, isReadOnly: false });
} },
'\u7F16\u8F91/\u9884\u89C8\u8868\u5355'
);
}
}
}];
_this2.formRef2 = _react2.default.createRef();
return _this2;
}
_createClass(CfgDictionaryList, [{
key: 'componentDidMount',
value: function componentDidMount() {
this.onLoad(this.state.params);
this.getTemplateMap();
}
/*** Table ***/
}, {
key: 'onLoad',
value: function () {
var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(params) {
var rs, pagination;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
this.setState({ loading: true });
_context.next = 3;
return _utilAxios2.default.get(url + 'getList', params);
case 3:
rs = _context.sent;
pagination = {
pageSizeOptions: ['20', '100', '200', '500', '1000'],
pageSize: params.pageSize || 20,
defaultPageSize: params.pageSize || 20,
showSizeChanger: true,
showQuickJumper: true,
total: rs.total,
showTotal: function showTotal(total) {
return '\u603B\u8BB0\u5F55 ' + total + ' ';
}
};
this.setState({
loading: false,
showEdit: false,
params: params,
data: rs.data,
pagination: pagination
});
case 6:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
function onLoad(_x) {
return _ref.apply(this, arguments);
}
return onLoad;
}()
}, {
key: 'getTemplateMap',
value: function getTemplateMap() {
var params = {
pageIndex: 1,
pageSize: 99999
};
var _this = this;
_utilAxios2.default.get('ProjectManagement/getTemplateMap', params).then(function (rs) {
if (rs.success) {
var value = rs.data;
var res = [];
if (value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Object) {
for (var key in value) {
if (value[key]) {
res.push(key);
}
}
}
_this.setState({
hasUseKey: res
});
}
});
}
}, {
key: 'render',
value: function render() {
var _this3 = this;
var tableCfg = {
scroll: { y: this.props.height - 210 },
size: 'middle',
rowKey: 'id',
columns: this.columns,
rowSelection: {
selectedRowKeys: this.state.selected,
onChange: function onChange(selectedRowKeys, selectedRows) {
_this3.setState({
selected: selectedRowKeys,
selectedRows: selectedRows
});
}
},
rowClassName: function rowClassName(record) {
return record.id === _this3.state.selectedRowId ? 'row-selected' : '';
},
onRow: function onRow(record) {
return {
onClick: function onClick(event) {
_this3.setState({ selectedRowId: record.id });
}
};
},
dataSource: this.state.data,
pagination: this.state.pagination,
loading: this.state.loading,
onChange: this.onChange
};
return _react2.default.createElement(
_react.Fragment,
null,
_react2.default.createElement(
_modal2.default,
{ title: this.state.optionsTitle, visible: this.state.isModalOpen, onCancel: this.handleCancel, width: '90%', centered: true, destroyOnClose: true, footer: null, bodyStyle: { padding: '0' } },
_react2.default.createElement(
'div',
{ style: { height: '90vh' } },
this.state.isReadOnly ? _react2.default.createElement(_index4.default, {
showDefaultForm: true, defaultValue: this.state.tempValue ? JSON.parse(this.state.tempValue) : undefined
}) : _react2.default.createElement(_index2.default, {
ref: this.formRef2,
showDefaultForm: true,
defaultValue: this.state.tempValue ? JSON.parse(this.state.tempValue) : undefined,
settings: this.state.defaultSettings,
extraButtons: [{ text: '保存', onClick: function onClick() {
return _this3.saveForm();
} }]
})
)
),
_react2.default.createElement(
'div',
{ className: 'app-admin' },
_react2.default.createElement(
'div',
{ className: this.state.showView || this.state.showEdit ? 'hide' : '' },
_react2.default.createElement(
_row2.default,
null,
_react2.default.createElement(
_col2.default,
{ className: 'main-title' },
_react2.default.createElement('i', { className: 'iconfont icon-title' }),
title
)
),
_react2.default.createElement(
_row2.default,
{ className: 'main-toolbar' },
_react2.default.createElement(
_col2.default,
{ className: 'text-left', xs: 12 },
_react2.default.createElement(
_button2.default,
{ className: 'btn-add', onClick: this.onAdd },
_react2.default.createElement('i', { className: 'iconfont icon-add' }),
'\u5F55\u5165'
),
_react2.default.createElement(
_button2.default,
{ className: 'btn-del', onClick: this.onDel },
_react2.default.createElement('i', { className: 'iconfont icon-del' }),
'\u5220\u9664'
)
),
_react2.default.createElement(_col2.default, { className: 'text-left', xs: 6 }),
_react2.default.createElement(
_col2.default,
{ className: 'text-right', xs: 6 },
_react2.default.createElement(_input2.default.Search, {
placeholder: '\u8BF7\u8F93\u5165\u6A21\u677F\u540D\u79F0',
onSearch: function onSearch(value) {
var params = _this3.state.params;
params.zh_CN = value;
_this3.setState({ params: params }, function () {
return _this3.onLoad(_this3.state.params);
});
},
enterButton: true
})
)
),
_react2.default.createElement(_table2.default, tableCfg)
),
_react2.default.createElement(
_react.Suspense,
{ fallback: _react2.default.createElement('div', null) },
this.state.showEdit ? _react2.default.createElement(FormEdit, {
height: this.props.height - 140,
values: this.state.values,
onSave: this.onSave,
onCancel: function onCancel() {
_this3.setState({ showEdit: false });
},
onEditReturn: function onEditReturn() {
_this3.setState({ showEdit: false, showView: true });
}
}) : ''
)
)
);
}
}]);
return CfgDictionaryList;
}(_react2.default.Component);
exports.default = CfgDictionaryList;