ls-pro-common 1.0.1 → 1.0.5

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.
package/es/utils/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
1
2
  import "antd/es/modal/style";
2
3
  import _Modal from "antd/es/modal";
3
4
  import "antd/es/message/style";
@@ -202,4 +203,79 @@ export var yesnoList = [{
202
203
  value: 0,
203
204
  text: '否',
204
205
  label: '0→否'
205
- }];
206
+ }];
207
+ /**
208
+ * 遍历树
209
+ * @param list 树对象
210
+ * @param fn 回调函数
211
+ * @param children 树属性字段
212
+ */
213
+
214
+ export var treeEach = function treeEach(list, fn) {
215
+ var children = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "children";
216
+ list.forEach(function (item, index) {
217
+ fn(item, index, list); // @ts-ignore
218
+
219
+ if (Array.isArray(list[children]) && list[children].length) {
220
+ // @ts-ignore
221
+ treeEach(list[children], fn, children);
222
+ }
223
+ });
224
+ };
225
+ /**
226
+ * 查询数
227
+ * @param list 树对象
228
+ * @param key 查询属性
229
+ * @param val 查询值
230
+ * @param children 树属性字段
231
+ * @returns 返回符合条件的第一条对象
232
+ */
233
+
234
+ export var treeFind = function treeFind(list, key, val) {
235
+ var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "children";
236
+ var item = null;
237
+
238
+ var _iterator = _createForOfIteratorHelper(list),
239
+ _step;
240
+
241
+ try {
242
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
243
+ var row = _step.value;
244
+
245
+ if (row[key] === val) {
246
+ item = row;
247
+ break;
248
+ } else if (row[children] && row[children].length) {
249
+ item = treeFind(row[children], key, val);
250
+
251
+ if (item) {
252
+ break;
253
+ }
254
+ }
255
+ }
256
+ } catch (err) {
257
+ _iterator.e(err);
258
+ } finally {
259
+ _iterator.f();
260
+ }
261
+
262
+ return item;
263
+ };
264
+ export var getUserInfo = function getUserInfo() {
265
+ return getCache('user');
266
+ };
267
+ export var getUserName = function getUserName() {
268
+ var _getUserInfo;
269
+
270
+ return (_getUserInfo = getUserInfo()) === null || _getUserInfo === void 0 ? void 0 : _getUserInfo.userName;
271
+ };
272
+ export var getLoginName = function getLoginName() {
273
+ var _getUserInfo2;
274
+
275
+ return (_getUserInfo2 = getUserInfo()) === null || _getUserInfo2 === void 0 ? void 0 : _getUserInfo2.loginName;
276
+ };
277
+ export var getCompanyId = function getCompanyId() {
278
+ var _getUserInfo3;
279
+
280
+ return (_getUserInfo3 = getUserInfo()) === null || _getUserInfo3 === void 0 ? void 0 : _getUserInfo3.companyId;
281
+ };
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { ProFormInstance } from 'ls-pro-form';
3
+ import './common.less';
4
+ export declare type DtlLyaoutProps = Record<string, any> & {
5
+ onExit: (visible?: boolean) => void;
6
+ onSave?: () => void;
7
+ renderButton?: (defaultBtn: JSX.Element[]) => JSX.Element[];
8
+ btnSaveText?: string;
9
+ btnExitText?: string;
10
+ title?: string;
11
+ masterObject?: any;
12
+ keyField?: string;
13
+ bodyClass?: string;
14
+ headerClass?: string;
15
+ bodyStyle?: React.CSSProperties;
16
+ headerStyle?: React.CSSProperties;
17
+ formRef?: React.MutableRefObject<ProFormInstance | undefined>;
18
+ };
19
+ declare function DtlLayout(props: DtlLyaoutProps): JSX.Element;
20
+ export default DtlLayout;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
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 _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _icons = require("@ant-design/icons");
21
+
22
+ require("./common.less");
23
+
24
+ function DtlLayout(props) {
25
+ var renderButton = props.renderButton,
26
+ title = props.title,
27
+ _props$keyField = props.keyField,
28
+ keyField = _props$keyField === void 0 ? 'id' : _props$keyField,
29
+ masterObject = props.masterObject,
30
+ children = props.children,
31
+ headerClass = props.headerClass,
32
+ headerStyle = props.headerStyle,
33
+ bodyClass = props.bodyClass,
34
+ bodyStyle = props.bodyStyle,
35
+ formRef = props.formRef,
36
+ _props$btnSaveText = props.btnSaveText,
37
+ btnSaveText = _props$btnSaveText === void 0 ? '保存' : _props$btnSaveText,
38
+ _props$btnExitText = props.btnExitText,
39
+ btnExitText = _props$btnExitText === void 0 ? '返回' : _props$btnExitText;
40
+ var dtlTitle = (0, _react.useMemo)(function () {
41
+ if (title) return title;
42
+ if (!masterObject) return '';
43
+ return masterObject[keyField] ? '编辑' : '新增';
44
+ }, [title, masterObject, keyField]);
45
+ var btns = [/*#__PURE__*/_react.default.createElement(_button.default, {
46
+ key: "btnSave",
47
+ onClick: function onClick() {
48
+ var _formRef$current;
49
+
50
+ if (props.onSave) {
51
+ return props.onSave();
52
+ }
53
+
54
+ formRef === null || formRef === void 0 ? void 0 : (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.submit();
55
+ },
56
+ icon: /*#__PURE__*/_react.default.createElement(_icons.SaveOutlined, null)
57
+ }, " ", btnSaveText, " "), /*#__PURE__*/_react.default.createElement(_button.default, {
58
+ key: "btnBack",
59
+ onClick: function onClick() {
60
+ return props.onExit(false);
61
+ },
62
+ icon: /*#__PURE__*/_react.default.createElement(_icons.ArrowLeftOutlined, null)
63
+ }, " ", btnExitText, " ")];
64
+ var buttons = renderButton ? renderButton(btns) : btns;
65
+ return /*#__PURE__*/_react.default.createElement("div", {
66
+ className: "dtl-layout"
67
+ }, /*#__PURE__*/_react.default.createElement("div", {
68
+ className: (0, _classnames.default)('dtl-header', headerClass),
69
+ style: headerStyle
70
+ }, /*#__PURE__*/_react.default.createElement("div", {
71
+ className: "dtl-title"
72
+ }, dtlTitle), /*#__PURE__*/_react.default.createElement("div", {
73
+ className: "dtl-btns"
74
+ }, buttons)), /*#__PURE__*/_react.default.createElement("div", {
75
+ className: (0, _classnames.default)('dtl-body', bodyClass),
76
+ style: bodyStyle
77
+ }, children));
78
+ }
79
+
80
+ var _default = DtlLayout;
81
+ exports.default = _default;
@@ -0,0 +1,64 @@
1
+ .dtl-layout {
2
+ position : absolute;
3
+ top : 0;
4
+ left : 0;
5
+ right : 0;
6
+ bottom : 0;
7
+ background : white;
8
+ display : flex;
9
+ flex-direction: column;
10
+
11
+ .dtl-header {
12
+ display : flex;
13
+ justify-items: center;
14
+ padding : 5px 14px;
15
+ border-bottom: 1px solid #f0f0f0;
16
+
17
+ .dtl-title {
18
+ font-size: 14pt;
19
+ }
20
+
21
+ .dtl-btns {
22
+ flex : 1;
23
+ text-align: right;
24
+
25
+ button+button {
26
+ margin-left: 8px;
27
+ }
28
+ }
29
+ }
30
+
31
+ .dtl-body {
32
+ height : 0;
33
+ flex : 1;
34
+ overflow: auto;
35
+ padding : 12px;
36
+ }
37
+
38
+ .dtl-flex {
39
+ display : flex;
40
+ flex-direction: column;
41
+ }
42
+ }
43
+
44
+ .flex {
45
+ flex: 1;
46
+ }
47
+
48
+ .flex-column {
49
+ display : flex;
50
+ flex-direction: column;
51
+
52
+ .flex {
53
+ height: 0;
54
+ }
55
+ }
56
+
57
+ .flex-row {
58
+ display : flex;
59
+ flex-direction: row;
60
+
61
+ .flex {
62
+ width: 0;
63
+ }
64
+ }
@@ -0,0 +1,29 @@
1
+ import type { ActionType } from 'ls-pro-table';
2
+ import type { ProFormInstance } from 'ls-pro-form';
3
+ import type { SingleParamType } from '../useSingle';
4
+ export declare type DtlParamType = SingleParamType & {
5
+ mstKeyField: string;
6
+ dtlService: any;
7
+ relationField: string;
8
+ dtlItem: any;
9
+ };
10
+ declare function useDtl(dtlParam: DtlParamType): {
11
+ formRef: import("react").MutableRefObject<ProFormInstance<any> | undefined>;
12
+ tableRef: import("react").MutableRefObject<ActionType | undefined>;
13
+ dtlFormRef: import("react").MutableRefObject<ProFormInstance<any> | undefined>;
14
+ selectedRows: any;
15
+ showEdit: boolean;
16
+ editItem: any;
17
+ tableTools: JSX.Element[];
18
+ setSelectedRows: import("react").Dispatch<any>;
19
+ setShowEdit: import("react").Dispatch<import("react").SetStateAction<boolean>>;
20
+ setEditItem: import("react").Dispatch<any>;
21
+ onRemoveDtl: () => void;
22
+ onSaveDtl: (formData: any) => Promise<boolean>;
23
+ onLoadDtl: (params: Record<string, any>, sort: Record<string, any>, filter: Record<string, any>) => Promise<any>;
24
+ onAddDtl: () => Promise<boolean>;
25
+ onEditDtl: () => Promise<boolean>;
26
+ onSaveMst: (values: any) => Promise<void>;
27
+ onRemoveMst: () => Promise<boolean | undefined>;
28
+ };
29
+ export default useDtl;