ls-pro-common 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,205 @@
1
+ import "antd/es/modal/style";
2
+ import _Modal from "antd/es/modal";
3
+ import "antd/es/message/style";
4
+ import _message from "antd/es/message";
5
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
6
+ import React from "react";
7
+ import { QuestionCircleOutlined } from '@ant-design/icons';
8
+ export var getUrlQuery = function getUrlQuery(name) {
9
+ var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.search.substr(1) || '';
10
+ var reg = new RegExp('(^|[&|?])' + name + '=([^&]*)(&|$)'),
11
+ r = url.match(reg);
12
+ if (r != null) return unescape(decodeURI(r[2]));
13
+ return '';
14
+ };
15
+ /**
16
+ * 设置url传参
17
+ * @param {*} url
18
+ * @param {*} keyvals
19
+ * @returns
20
+ */
21
+
22
+ export var setUrlQuery = function setUrlQuery(url) {
23
+ var keyvals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
24
+ var newUrl = url;
25
+
26
+ for (var name in keyvals) {
27
+ var reg = new RegExp('(^|)' + name + '=([^&]*)(|$)');
28
+ var tmp = name + '=' + keyvals[name];
29
+
30
+ if (newUrl.match(reg) != null) {
31
+ // @ts-ignore
32
+ newUrl = newUrl.replace(eval(reg), tmp);
33
+ } else {
34
+ newUrl = newUrl + (newUrl.match('[\?]') ? '&' : '?') + tmp;
35
+ }
36
+ }
37
+
38
+ return newUrl;
39
+ };
40
+ /**
41
+ * 设置文档title
42
+ * @param {*} title
43
+ * @returns
44
+ */
45
+
46
+ export var setTitle = function setTitle(title) {
47
+ if (!title) return;
48
+ title = title.length > 10 ? title.substring(0, 10) + '...' : title;
49
+ document.title = title;
50
+ };
51
+ /**
52
+ * 获取Cookie
53
+ * @param {String} name cookie名
54
+ * @returns
55
+ */
56
+
57
+ export var getCookie = function getCookie(name) {
58
+ var arr,
59
+ reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
60
+ if (arr = document.cookie.match(reg)) return arr[2];else return null;
61
+ };
62
+ /**
63
+ * 设置Cookie
64
+ * @param {*} key Cookie名称
65
+ * @param {*} value Cookie 值
66
+ * @param { Number } day 有效天数 默认1天,
67
+ */
68
+
69
+ export var setCookie = function setCookie(key, value) {
70
+ var day = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
71
+
72
+ if (day !== 0) {
73
+ var d = new Date(Date.now() + day * 24 * 60 * 60 * 1000);
74
+ document.cookie = "".concat(key, "=").concat(value, ";expires=").concat(d.toUTCString(), ";path=/");
75
+ } else {
76
+ document.cookie = key + "=;path=/";
77
+ }
78
+ };
79
+ /**
80
+ * 判断是否登录
81
+ * @returns
82
+ */
83
+
84
+ export var isLogin = function isLogin() {
85
+ return !!getCookie('token');
86
+ };
87
+ /**
88
+ * 设置本地缓存
89
+ * @param { String } key 关键字
90
+ * @param { Object } data 值
91
+ */
92
+
93
+ export var setCache = function setCache(key, data) {
94
+ if (_typeof(data) === 'object') {
95
+ data = JSON.stringify(data);
96
+ }
97
+
98
+ localStorage.setItem(key, data);
99
+ };
100
+ /**
101
+ * 读取本地缓存
102
+ * @param { String } key 关键字
103
+ * @returns 关键字对应的值
104
+ */
105
+
106
+ export var getCache = function getCache(key) {
107
+ var data = localStorage.getItem(key);
108
+
109
+ if (data && (data.startsWith('{') || data.startsWith('['))) {
110
+ data = JSON.parse(data);
111
+ }
112
+
113
+ return data;
114
+ };
115
+ /**
116
+ * 简单日期格式化
117
+ * @param {*} dt 传入时间参数,若不传取当前时间
118
+ * @param {*} showTime 是否返回当前时间,默认返回时间
119
+ * @returns xxxx年-xx月-xx日 [xx时:xx分:xx秒]
120
+ */
121
+
122
+ export var dateFormat = function dateFormat(dt) {
123
+ var showTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
124
+ var ct = dt ? dt : new Date(Date.now());
125
+ var str = ct.getFullYear() + '-' + ('' + (ct.getMonth() + 1)).padStart(2, '0') + '-' + ('' + ct.getDate()).padStart(2, '0');
126
+
127
+ if (showTime) {
128
+ str += ' ' + (ct.getHours() + '').padStart(2, '0') + ':' + (ct.getMinutes() + '').padStart(2, '0') + ":" + (ct.getSeconds() + '').padStart(2, '0');
129
+ }
130
+
131
+ return str;
132
+ };
133
+ /** @name 显示错误 */
134
+
135
+ export var showError = function showError(text) {
136
+ _message.error(text);
137
+ };
138
+ /** @name 显示警示 */
139
+
140
+ export var showWarn = function showWarn(text) {
141
+ _message.warn(text);
142
+ };
143
+ /** @name 显示成功 */
144
+
145
+ export var showSuccess = function showSuccess(text) {
146
+ _message.success(text);
147
+ };
148
+ /** @name 显示确认 */
149
+
150
+ export var showConfirm = function showConfirm(text) {
151
+ var title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '系统提示';
152
+ return new Promise(function (resolve, reject) {
153
+ _Modal.confirm({
154
+ title: title,
155
+ content: text,
156
+ icon: /*#__PURE__*/React.createElement(QuestionCircleOutlined, null),
157
+ okType: 'danger',
158
+ closable: true,
159
+ onOk: function onOk() {
160
+ resolve(true);
161
+ },
162
+ onCancel: function onCancel() {
163
+ reject(false);
164
+ }
165
+ });
166
+ });
167
+ };
168
+ /**
169
+ * 日期组选择转换
170
+ * @param values 选择的值
171
+ * @param startField 第一个字段
172
+ * @param endField 第二个字段
173
+ * @param endSuffix
174
+ * @returns
175
+ */
176
+
177
+ export var rangeToSearch = function rangeToSearch(values, startField, endField) {
178
+ var endSuffix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
179
+ var data = {};
180
+ Array.isArray(values) && values[0] && (data[startField] = values[0]);
181
+ Array.isArray(values) && values[1] && (data[endField] = values[1] + endSuffix);
182
+ return data;
183
+ };
184
+ /** @name 状态列表 */
185
+
186
+ export var statusList = [{
187
+ value: 1,
188
+ text: '启用',
189
+ label: '1→启用'
190
+ }, {
191
+ value: 0,
192
+ text: '禁用',
193
+ label: '0→禁用'
194
+ }];
195
+ /** @name 是否列表 */
196
+
197
+ export var yesnoList = [{
198
+ value: 1,
199
+ text: '是',
200
+ label: '1→是'
201
+ }, {
202
+ value: 0,
203
+ text: '否',
204
+ label: '0→否'
205
+ }];
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import type { ModalFormProps } from 'ls-pro-form';
3
+ export declare type EditModalFormProps<T = Record<string, any>> = ModalFormProps & {
4
+ labelWidth: number | undefined;
5
+ };
6
+ declare function EditModalForm<T = Record<string, any>>({ labelWidth, ...rest }: EditModalFormProps<T>): JSX.Element;
7
+ export default EditModalForm;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _lsProForm = require("ls-pro-form");
17
+
18
+ var _excluded = ["labelWidth"];
19
+
20
+ function EditModalForm(_ref) {
21
+ var labelWidth = _ref.labelWidth,
22
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
23
+ var defProps = (0, _objectSpread2.default)({
24
+ layout: 'horizontal'
25
+ }, rest);
26
+
27
+ if (labelWidth) {
28
+ defProps.labelCol = {
29
+ flex: "0 0 ".concat(labelWidth, "px")
30
+ };
31
+ defProps.wrapperCol = {
32
+ style: {
33
+ maxWidth: 'calc(100% - 100px)'
34
+ }
35
+ };
36
+ }
37
+
38
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, rest.visible ? /*#__PURE__*/_react.default.createElement(_lsProForm.ModalForm, defProps) : null);
39
+ }
40
+
41
+ var _default = EditModalForm;
42
+ exports.default = _default;
@@ -0,0 +1,29 @@
1
+ import type { TableToolbar } from '../../typing';
2
+ interface ActionType {
3
+ reload: (resetPageIndex?: boolean) => void;
4
+ }
5
+ /**
6
+ * 单表基本增删改查 hooks
7
+ * @param service 单表服务
8
+ * @param toolbar 定义基础功能按钮
9
+ * @param initItem 对象初始值,新增时设置默认值
10
+ * @param onBeforeSave 保存之前方法,开放给每个模块重写
11
+ * @param onBeforeRemove 删除之前方法,开放给每个模块重写
12
+ * @returns
13
+ */
14
+ declare function useSingle(service: any, toolbar?: TableToolbar, initItem?: any, beforeSave?: Function, beforeRemove?: Function): {
15
+ tableRef: import("react").MutableRefObject<ActionType | undefined>;
16
+ selectRows: any;
17
+ showEdit: boolean;
18
+ editItem: any;
19
+ baseToolBar: JSX.Element[];
20
+ setSelectedRows: import("react").Dispatch<any>;
21
+ setShowEdit: import("react").Dispatch<import("react").SetStateAction<boolean>>;
22
+ setEditItem: import("react").Dispatch<any>;
23
+ onRemove: () => void;
24
+ onSave: (formData: any) => Promise<boolean>;
25
+ onLoad: (params: Record<string, any>, sort: Record<string, any>, filter: Record<string, any>) => Promise<any>;
26
+ onAdd: () => void;
27
+ onEdit: () => void;
28
+ };
29
+ export default useSingle;
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ require("antd/es/button/style");
13
+
14
+ var _button = _interopRequireDefault(require("antd/es/button"));
15
+
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
+
18
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
19
+
20
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
21
+
22
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
23
+
24
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
25
+
26
+ var _react = _interopRequireWildcard(require("react"));
27
+
28
+ var _icons = require("@ant-design/icons");
29
+
30
+ var _utils = require("../../utils");
31
+
32
+ var _excluded = ["current", "pageSize"];
33
+
34
+ /**
35
+ * 单表基本增删改查 hooks
36
+ * @param service 单表服务
37
+ * @param toolbar 定义基础功能按钮
38
+ * @param initItem 对象初始值,新增时设置默认值
39
+ * @param onBeforeSave 保存之前方法,开放给每个模块重写
40
+ * @param onBeforeRemove 删除之前方法,开放给每个模块重写
41
+ * @returns
42
+ */
43
+ function useSingle(service, toolbar, initItem, beforeSave, beforeRemove) {
44
+ /** 选中行数据 */
45
+ var _useState = (0, _react.useState)([]),
46
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
47
+ selectRows = _useState2[0],
48
+ setSelectedRows = _useState2[1];
49
+ /** 显示新增编辑框 */
50
+
51
+
52
+ var _useState3 = (0, _react.useState)(false),
53
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
54
+ showEdit = _useState4[0],
55
+ setShowEdit = _useState4[1];
56
+ /** 新增或编辑对象初始值 */
57
+
58
+
59
+ var _useState5 = (0, _react.useState)(initItem),
60
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
61
+ editItem = _useState6[0],
62
+ setEditItem = _useState6[1];
63
+ /** 表格ref */
64
+
65
+
66
+ var tableRef = (0, _react.useRef)();
67
+ /** 新增按钮事件 */
68
+
69
+ var onAdd = function onAdd() {
70
+ setEditItem(initItem);
71
+ setShowEdit(true);
72
+ };
73
+ /** 编辑按钮事件 */
74
+
75
+
76
+ var onEdit = function onEdit() {
77
+ if (!selectRows.length) {
78
+ (0, _utils.showWarn)('请先选择需要更改的数据');
79
+ return;
80
+ }
81
+
82
+ setEditItem(selectRows[0]);
83
+ setShowEdit(true);
84
+ };
85
+ /** 删除按钮事件 */
86
+
87
+
88
+ var onRemove = function onRemove() {
89
+ if (!selectRows.length) {
90
+ (0, _utils.showWarn)('请选择需要删除的数据');
91
+ return;
92
+ }
93
+
94
+ (0, _utils.showConfirm)('确认要删除选择的数据?').then(function () {
95
+ var ids = selectRows.map(function (o) {
96
+ return o.id;
97
+ });
98
+ service.remove(ids).then(function (result) {
99
+ var _result$flag;
100
+
101
+ if ((result === null || result === void 0 ? void 0 : (_result$flag = result.flag) === null || _result$flag === void 0 ? void 0 : _result$flag.retCode) === '0') {
102
+ (0, _utils.showSuccess)(result.flag.retMsg);
103
+
104
+ if (tableRef.current) {
105
+ tableRef.current.reload(false);
106
+ }
107
+ }
108
+ });
109
+ });
110
+ };
111
+ /** 新增,更改对应的保存事件 */
112
+
113
+
114
+ var onSave = /*#__PURE__*/function () {
115
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(formData) {
116
+ var _result$flag2;
117
+
118
+ var data, result;
119
+ return _regenerator.default.wrap(function _callee$(_context) {
120
+ while (1) {
121
+ switch (_context.prev = _context.next) {
122
+ case 0:
123
+ data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, initItem), formData);
124
+ _context.t0 = beforeSave;
125
+
126
+ if (!_context.t0) {
127
+ _context.next = 7;
128
+ break;
129
+ }
130
+
131
+ _context.next = 5;
132
+ return beforeSave(data);
133
+
134
+ case 5:
135
+ _context.t1 = _context.sent;
136
+ _context.t0 = _context.t1 === false;
137
+
138
+ case 7:
139
+ if (!_context.t0) {
140
+ _context.next = 9;
141
+ break;
142
+ }
143
+
144
+ return _context.abrupt("return", false);
145
+
146
+ case 9:
147
+ _context.next = 11;
148
+ return service.save(data);
149
+
150
+ case 11:
151
+ result = _context.sent;
152
+
153
+ if (!((result === null || result === void 0 ? void 0 : (_result$flag2 = result.flag) === null || _result$flag2 === void 0 ? void 0 : _result$flag2.retCode) === '0')) {
154
+ _context.next = 16;
155
+ break;
156
+ }
157
+
158
+ (0, _utils.showSuccess)(result.flag.retMsg);
159
+
160
+ if (tableRef.current) {
161
+ tableRef.current.reload(false);
162
+ }
163
+
164
+ return _context.abrupt("return", true);
165
+
166
+ case 16:
167
+ return _context.abrupt("return", false);
168
+
169
+ case 17:
170
+ case "end":
171
+ return _context.stop();
172
+ }
173
+ }
174
+ }, _callee);
175
+ }));
176
+
177
+ return function onSave(_x) {
178
+ return _ref.apply(this, arguments);
179
+ };
180
+ }();
181
+ /** 加载数据方法 */
182
+
183
+
184
+ var onLoad = /*#__PURE__*/function () {
185
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(params, sort, filter) {
186
+ var current, pageSize, rest, param, result;
187
+ return _regenerator.default.wrap(function _callee2$(_context2) {
188
+ while (1) {
189
+ switch (_context2.prev = _context2.next) {
190
+ case 0:
191
+ current = params.current, pageSize = params.pageSize, rest = (0, _objectWithoutProperties2.default)(params, _excluded);
192
+ param = {};
193
+
194
+ if (current) {
195
+ param.page = current;
196
+ param.pageSize = pageSize;
197
+ }
198
+
199
+ if (Object.keys(rest).length) {
200
+ param.where = rest;
201
+ }
202
+
203
+ console.log("useSingle", param, sort, filter);
204
+ _context2.next = 7;
205
+ return service.load(param);
206
+
207
+ case 7:
208
+ result = _context2.sent;
209
+ result.data = result.rows;
210
+ result.success = true;
211
+ return _context2.abrupt("return", result);
212
+
213
+ case 11:
214
+ case "end":
215
+ return _context2.stop();
216
+ }
217
+ }
218
+ }, _callee2);
219
+ }));
220
+
221
+ return function onLoad(_x2, _x3, _x4) {
222
+ return _ref2.apply(this, arguments);
223
+ };
224
+ }();
225
+
226
+ var baseToolBar = [];
227
+
228
+ if (toolbar === null || toolbar === void 0 ? void 0 : toolbar.add) {
229
+ baseToolBar.push( /*#__PURE__*/_react.default.createElement(_button.default, {
230
+ key: "add",
231
+ onClick: onAdd,
232
+ icon: /*#__PURE__*/_react.default.createElement(_icons.PlusOutlined, null)
233
+ }, "\u65B0\u589E"));
234
+ }
235
+
236
+ if (toolbar === null || toolbar === void 0 ? void 0 : toolbar.edit) {
237
+ baseToolBar.push( /*#__PURE__*/_react.default.createElement(_button.default, {
238
+ key: "edit",
239
+ disabled: selectRows.length === 0,
240
+ onClick: onEdit,
241
+ icon: /*#__PURE__*/_react.default.createElement(_icons.EditOutlined, null)
242
+ }, "\u7F16\u8F91"));
243
+ }
244
+
245
+ if (toolbar === null || toolbar === void 0 ? void 0 : toolbar.remove) {
246
+ baseToolBar.push( /*#__PURE__*/_react.default.createElement(_button.default, {
247
+ key: "remove",
248
+ onClick: onRemove,
249
+ danger: true,
250
+ disabled: selectRows.length === 0,
251
+ icon: /*#__PURE__*/_react.default.createElement(_icons.DeleteOutlined, null)
252
+ }, "\u5220\u9664"));
253
+ }
254
+
255
+ if (toolbar === null || toolbar === void 0 ? void 0 : toolbar.import) {
256
+ baseToolBar.push( /*#__PURE__*/_react.default.createElement(_button.default, {
257
+ key: "import",
258
+ icon: /*#__PURE__*/_react.default.createElement(_icons.ImportOutlined, null)
259
+ }, "\u5BFC\u5165"));
260
+ }
261
+
262
+ if (toolbar === null || toolbar === void 0 ? void 0 : toolbar.export) {
263
+ baseToolBar.push( /*#__PURE__*/_react.default.createElement(_button.default, {
264
+ key: "export",
265
+ icon: /*#__PURE__*/_react.default.createElement(_icons.ExportOutlined, null)
266
+ }, "\u5BFC\u51FA"));
267
+ }
268
+
269
+ return {
270
+ tableRef: tableRef,
271
+ selectRows: selectRows,
272
+ showEdit: showEdit,
273
+ editItem: editItem,
274
+ baseToolBar: baseToolBar,
275
+ setSelectedRows: setSelectedRows,
276
+ setShowEdit: setShowEdit,
277
+ setEditItem: setEditItem,
278
+ onRemove: onRemove,
279
+ onSave: onSave,
280
+ onLoad: onLoad,
281
+ onAdd: onAdd,
282
+ onEdit: onEdit
283
+ };
284
+ }
285
+
286
+ ;
287
+ var _default = useSingle;
288
+ exports.default = _default;
@@ -0,0 +1,47 @@
1
+ declare const request: import("umi-request").RequestMethod<false>;
2
+ /**
3
+ * get请求
4
+ * @param url 接口
5
+ * @param params 参数{key:value}
6
+ * @returns Promise<ApiResponse>
7
+ */
8
+ export declare function httpGet(url: string, params?: Record<string, any>): Promise<any>;
9
+ /**
10
+ * post请求
11
+ * @param url 接口
12
+ * @param data 参数{key:value}
13
+ * @param isJson json请求还是form请求,默认为json请求
14
+ * @returns Promise<ApiResponse>
15
+ */
16
+ export declare function httpPost(url: string, data?: Record<string, any>, isJson?: boolean): Promise<any>;
17
+ /**
18
+ * put 请求
19
+ * @param url 接口
20
+ * @param data 参数{key:value}
21
+ * @returns Promise<ApiResponse>
22
+ */
23
+ export declare function httpPut(url: string, data?: Record<string, any>): Promise<any>;
24
+ /**
25
+ * delete 请求
26
+ * @param url 接口
27
+ * @param data 参数[]
28
+ * @returns Promise<ApiResponse>
29
+ */
30
+ export declare function httpDelete(url: string, data: any): Promise<any>;
31
+ /**
32
+ * 读取数据字典
33
+ * @param dictCode 字典编码
34
+ * @returns Promise<Record<string,string>>
35
+ */
36
+ export declare function getDict(dictCode: string): Promise<any>;
37
+ /**
38
+ * 加载下拉框的数据源
39
+ * @param url 后端接口
40
+ * @param param 请求参数
41
+ * @param valueField 值字段
42
+ * @param labelField 显示字段
43
+ * @param showValue 显示值
44
+ * @returns
45
+ */
46
+ export declare function fetchOptions(url: string, param: any, valueField: string, labelField: string, showValue?: boolean): Promise<any>;
47
+ export default request;