ls-pro-common 1.0.34 → 1.0.35

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,41 @@
1
+ import React from 'react';
2
+ import type { InputProps } from 'antd';
3
+ import type { ProFormItemProps } from 'ls-pro-form';
4
+ export declare type InputMultiLineProps = ProFormItemProps<InputProps> & {
5
+ /**@name 表单项name, 跟 form.item 的 name一致 */
6
+ name: string;
7
+ /**@name 表单值*/
8
+ value?: string;
9
+ /**@name 弹框宽度,默认为400 */
10
+ popWidth?: string;
11
+ /**@name 弹框位置,默认为bottom */
12
+ placement?: string;
13
+ /**@name 多行文本框行数 */
14
+ rows?: number;
15
+ /** @name 最大输入行数 */
16
+ maxRows?: number;
17
+ };
18
+ declare const InputMultiLine: React.ForwardRefExoticComponent<{
19
+ fieldProps?: (import("../../../form/lib/interface").FieldProps & InputProps) | undefined;
20
+ placeholder?: string | string[] | undefined;
21
+ secondary?: boolean | undefined;
22
+ allowClear?: boolean | undefined;
23
+ disabled?: boolean | undefined;
24
+ width?: number | "sm" | "md" | "xl" | "xs" | "lg" | undefined;
25
+ proFieldProps?: import("../../../utils/lib").ProFieldProps | undefined;
26
+ footerRender?: import("../../../form/lib").LightFilterFooterRender | undefined;
27
+ } & Omit<import("../../../form/lib/components/FormItem").ProFormItemProps, "valueType"> & import("../../../form/lib/interface").ExtendsProps & {
28
+ /**@name 表单项name, 跟 form.item 的 name一致 */
29
+ name: string;
30
+ /**@name 表单值*/
31
+ value?: string | undefined;
32
+ /**@name 弹框宽度,默认为400 */
33
+ popWidth?: string | undefined;
34
+ /**@name 弹框位置,默认为bottom */
35
+ placement?: string | undefined;
36
+ /**@name 多行文本框行数 */
37
+ rows?: number | undefined;
38
+ /** @name 最大输入行数 */
39
+ maxRows?: number | undefined;
40
+ } & React.RefAttributes<unknown>>;
41
+ export default InputMultiLine;
@@ -0,0 +1,142 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import "antd/es/popover/style";
3
+ import _Popover from "antd/es/popover";
4
+ import "antd/es/input/style";
5
+ import _Input from "antd/es/input";
6
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
7
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
8
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
9
+ var _excluded = ["name", "rows", "maxRows", "placement", "popWidth", "fieldProps", "value", "allowClear"];
10
+ import React, { useRef, useState, useEffect, useContext, useMemo, useImperativeHandle } from 'react';
11
+ import { ProFormText, ProFormContext } from 'ls-pro-form';
12
+ import { UnorderedListOutlined } from '@ant-design/icons';
13
+ var InputMultiLine = /*#__PURE__*/React.forwardRef(function (prop, ref) {
14
+ //@ts-ignore
15
+ var _useContext = useContext(ProFormContext),
16
+ formRef = _useContext.formRef;
17
+
18
+ var _useState = useState(''),
19
+ _useState2 = _slicedToArray(_useState, 2),
20
+ text = _useState2[0],
21
+ setText = _useState2[1];
22
+
23
+ var _useState3 = useState(''),
24
+ _useState4 = _slicedToArray(_useState3, 2),
25
+ lineText = _useState4[0],
26
+ setLineText = _useState4[1];
27
+
28
+ var _useState5 = useState(false),
29
+ _useState6 = _slicedToArray(_useState5, 2),
30
+ visible = _useState6[0],
31
+ setVisible = _useState6[1];
32
+
33
+ var inputRef = useRef();
34
+ useImperativeHandle(ref, function () {
35
+ return inputRef.current;
36
+ });
37
+
38
+ var name = prop.name,
39
+ _prop$rows = prop.rows,
40
+ rows = _prop$rows === void 0 ? 12 : _prop$rows,
41
+ _prop$maxRows = prop.maxRows,
42
+ maxRows = _prop$maxRows === void 0 ? 20 : _prop$maxRows,
43
+ _prop$placement = prop.placement,
44
+ placement = _prop$placement === void 0 ? 'bottom' : _prop$placement,
45
+ _prop$popWidth = prop.popWidth,
46
+ popWidth = _prop$popWidth === void 0 ? '400px' : _prop$popWidth,
47
+ fieldProps = prop.fieldProps,
48
+ value = prop.value,
49
+ _prop$allowClear = prop.allowClear,
50
+ allowClear = _prop$allowClear === void 0 ? true : _prop$allowClear,
51
+ rest = _objectWithoutProperties(prop, _excluded); // 设置初始值
52
+
53
+
54
+ useEffect(function () {
55
+ if (value) {
56
+ setText(value);
57
+ } else if (name) {
58
+ var _formRef$current;
59
+
60
+ var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.getFieldsValue();
61
+ setText(formValue[name]);
62
+ }
63
+ }, []); // 显示多行输入时,赋值给多行文本框
64
+
65
+ useEffect(function () {
66
+ if (!visible) return;
67
+ var line = (text || '').split(',').join('\n');
68
+ setLineText(line);
69
+ }, [visible, text]); // 输入框值变化时,赋值给表单项
70
+
71
+ useEffect(function () {
72
+ var _formRef$current2, _formRef$current3;
73
+
74
+ var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.getFieldsValue();
75
+ formValue[name] = text;
76
+ (_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : _formRef$current3.setFieldsValue(_objectSpread({}, formValue));
77
+ }, [text]);
78
+
79
+ var lineInput = function lineInput(e) {
80
+ var line = (e.target.value || '').split('\n').filter(function (o, i) {
81
+ return i <= (maxRows < 1 ? 1000 : maxRows);
82
+ }).join('\n');
83
+ var txt = line.split('\n').join(',');
84
+ setLineText(line);
85
+ setText(txt);
86
+ };
87
+
88
+ var textInput = function textInput(e) {
89
+ setText(e.target.value);
90
+ };
91
+
92
+ var clearValue = function clearValue(e) {
93
+ if (!e.target.value) {
94
+ setText('');
95
+ setLineText('');
96
+ }
97
+ };
98
+
99
+ var PopoverDom = useMemo(function () {
100
+ return /*#__PURE__*/React.createElement(_Popover, {
101
+ content: /*#__PURE__*/React.createElement("div", {
102
+ style: {
103
+ width: popWidth
104
+ }
105
+ }, /*#__PURE__*/React.createElement(_Input.TextArea, {
106
+ rows: rows,
107
+ value: lineText,
108
+ onInput: lineInput,
109
+ onKeyPress: function onKeyPress(e) {
110
+ if (e.key === 'Enter') e.stopPropagation();
111
+ }
112
+ })),
113
+ trigger: "click",
114
+ visible: visible,
115
+ onVisibleChange: setVisible
116
+ }, /*#__PURE__*/React.createElement(UnorderedListOutlined, {
117
+ onClick: function onClick(e) {
118
+ if (rest.disabled || (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.disabled)) return;
119
+ setVisible(true);
120
+ }
121
+ }));
122
+ }, [visible, popWidth, lineText, rest]);
123
+ return /*#__PURE__*/React.createElement(React.Fragment, null, rest.label && name ? /*#__PURE__*/React.createElement(ProFormText, _extends({
124
+ name: name
125
+ }, rest), /*#__PURE__*/React.createElement(_Input, _extends({
126
+ suffix: PopoverDom
127
+ }, fieldProps, {
128
+ onChange: clearValue,
129
+ onInput: textInput,
130
+ allowClear: allowClear,
131
+ ref: inputRef
132
+ }))) : /*#__PURE__*/React.createElement(_Input, _extends({
133
+ suffix: PopoverDom,
134
+ allowClear: allowClear
135
+ }, fieldProps, {
136
+ onChange: clearValue,
137
+ onInput: textInput,
138
+ value: text,
139
+ ref: inputRef
140
+ })));
141
+ });
142
+ export default InputMultiLine;
package/es/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import InputTable from './components/InputTable';
3
3
  import Page404 from './components/404';
4
4
  import Loading from './components/Loading';
5
5
  import IconSelector from './components/IconSelector';
6
+ import InputMultiLine from './components/InputMultiLine';
6
7
  import BaseService from './service/BaseService';
7
8
  import request, { httpGet, httpPut, httpPost, httpDelete, getDict, fetchOptions } from './http';
8
9
  import * as utils from './utils';
@@ -14,4 +15,4 @@ import usePermission from './hooks/usePermission';
14
15
  import type { ApiResponse, TableToolbar, BaseApiType, MethodType } from './typing';
15
16
  import type { DtlLyaoutProps } from './components/DtlLayout';
16
17
  export type { ApiResponse, TableToolbar, BaseApiType, MethodType, DtlLyaoutProps };
17
- export { DtlLayout, InputTable, Page404, Loading, IconSelector, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission };
18
+ export { DtlLayout, InputTable, Page404, Loading, IconSelector, InputMultiLine, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission };
package/es/index.js CHANGED
@@ -3,6 +3,7 @@ import InputTable from './components/InputTable';
3
3
  import Page404 from './components/404';
4
4
  import Loading from './components/Loading';
5
5
  import IconSelector from './components/IconSelector';
6
+ import InputMultiLine from './components/InputMultiLine';
6
7
  import BaseService from './service/BaseService';
7
8
  import request, { httpGet, httpPut, httpPost, httpDelete, getDict, fetchOptions } from './http';
8
9
  import * as utils from './utils';
@@ -11,4 +12,4 @@ import * as utils from './utils';
11
12
  import useSingle from './hooks/useSingle';
12
13
  import useDtl from './hooks/useDtl';
13
14
  import usePermission from './hooks/usePermission';
14
- export { DtlLayout, InputTable, Page404, Loading, IconSelector, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission };
15
+ export { DtlLayout, InputTable, Page404, Loading, IconSelector, InputMultiLine, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission };
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import type { InputProps } from 'antd';
3
+ import type { ProFormItemProps } from 'ls-pro-form';
4
+ export declare type InputMultiLineProps = ProFormItemProps<InputProps> & {
5
+ /**@name 表单项name, 跟 form.item 的 name一致 */
6
+ name: string;
7
+ /**@name 表单值*/
8
+ value?: string;
9
+ /**@name 弹框宽度,默认为400 */
10
+ popWidth?: string;
11
+ /**@name 弹框位置,默认为bottom */
12
+ placement?: string;
13
+ /**@name 多行文本框行数 */
14
+ rows?: number;
15
+ /** @name 最大输入行数 */
16
+ maxRows?: number;
17
+ };
18
+ declare const InputMultiLine: React.ForwardRefExoticComponent<{
19
+ fieldProps?: (import("../../../form/lib/interface").FieldProps & InputProps) | undefined;
20
+ placeholder?: string | string[] | undefined;
21
+ secondary?: boolean | undefined;
22
+ allowClear?: boolean | undefined;
23
+ disabled?: boolean | undefined;
24
+ width?: number | "sm" | "md" | "xl" | "xs" | "lg" | undefined;
25
+ proFieldProps?: import("../../../utils/lib").ProFieldProps | undefined;
26
+ footerRender?: import("../../../form/lib").LightFilterFooterRender | undefined;
27
+ } & Omit<import("../../../form/lib/components/FormItem").ProFormItemProps, "valueType"> & import("../../../form/lib/interface").ExtendsProps & {
28
+ /**@name 表单项name, 跟 form.item 的 name一致 */
29
+ name: string;
30
+ /**@name 表单值*/
31
+ value?: string | undefined;
32
+ /**@name 弹框宽度,默认为400 */
33
+ popWidth?: string | undefined;
34
+ /**@name 弹框位置,默认为bottom */
35
+ placement?: string | undefined;
36
+ /**@name 多行文本框行数 */
37
+ rows?: number | undefined;
38
+ /** @name 最大输入行数 */
39
+ maxRows?: number | undefined;
40
+ } & React.RefAttributes<unknown>>;
41
+ export default InputMultiLine;
@@ -0,0 +1,165 @@
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
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ require("antd/es/popover/style");
15
+
16
+ var _popover = _interopRequireDefault(require("antd/es/popover"));
17
+
18
+ require("antd/es/input/style");
19
+
20
+ var _input = _interopRequireDefault(require("antd/es/input"));
21
+
22
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
23
+
24
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
25
+
26
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
27
+
28
+ var _react = _interopRequireWildcard(require("react"));
29
+
30
+ var _lsProForm = require("ls-pro-form");
31
+
32
+ var _icons = require("@ant-design/icons");
33
+
34
+ var _excluded = ["name", "rows", "maxRows", "placement", "popWidth", "fieldProps", "value", "allowClear"];
35
+
36
+ var InputMultiLine = /*#__PURE__*/_react.default.forwardRef(function (prop, ref) {
37
+ //@ts-ignore
38
+ var _useContext = (0, _react.useContext)(_lsProForm.ProFormContext),
39
+ formRef = _useContext.formRef;
40
+
41
+ var _useState = (0, _react.useState)(''),
42
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
43
+ text = _useState2[0],
44
+ setText = _useState2[1];
45
+
46
+ var _useState3 = (0, _react.useState)(''),
47
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
48
+ lineText = _useState4[0],
49
+ setLineText = _useState4[1];
50
+
51
+ var _useState5 = (0, _react.useState)(false),
52
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
53
+ visible = _useState6[0],
54
+ setVisible = _useState6[1];
55
+
56
+ var inputRef = (0, _react.useRef)();
57
+ (0, _react.useImperativeHandle)(ref, function () {
58
+ return inputRef.current;
59
+ });
60
+ var name = prop.name,
61
+ _prop$rows = prop.rows,
62
+ rows = _prop$rows === void 0 ? 12 : _prop$rows,
63
+ _prop$maxRows = prop.maxRows,
64
+ maxRows = _prop$maxRows === void 0 ? 20 : _prop$maxRows,
65
+ _prop$placement = prop.placement,
66
+ placement = _prop$placement === void 0 ? 'bottom' : _prop$placement,
67
+ _prop$popWidth = prop.popWidth,
68
+ popWidth = _prop$popWidth === void 0 ? '400px' : _prop$popWidth,
69
+ fieldProps = prop.fieldProps,
70
+ value = prop.value,
71
+ _prop$allowClear = prop.allowClear,
72
+ allowClear = _prop$allowClear === void 0 ? true : _prop$allowClear,
73
+ rest = (0, _objectWithoutProperties2.default)(prop, _excluded); // 设置初始值
74
+
75
+ (0, _react.useEffect)(function () {
76
+ if (value) {
77
+ setText(value);
78
+ } else if (name) {
79
+ var _formRef$current;
80
+
81
+ var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.getFieldsValue();
82
+ setText(formValue[name]);
83
+ }
84
+ }, []); // 显示多行输入时,赋值给多行文本框
85
+
86
+ (0, _react.useEffect)(function () {
87
+ if (!visible) return;
88
+ var line = (text || '').split(',').join('\n');
89
+ setLineText(line);
90
+ }, [visible, text]); // 输入框值变化时,赋值给表单项
91
+
92
+ (0, _react.useEffect)(function () {
93
+ var _formRef$current2, _formRef$current3;
94
+
95
+ var formValue = formRef === null || formRef === void 0 ? void 0 : (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.getFieldsValue();
96
+ formValue[name] = text;
97
+ (_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : _formRef$current3.setFieldsValue((0, _objectSpread2.default)({}, formValue));
98
+ }, [text]);
99
+
100
+ var lineInput = function lineInput(e) {
101
+ var line = (e.target.value || '').split('\n').filter(function (o, i) {
102
+ return i <= (maxRows < 1 ? 1000 : maxRows);
103
+ }).join('\n');
104
+ var txt = line.split('\n').join(',');
105
+ setLineText(line);
106
+ setText(txt);
107
+ };
108
+
109
+ var textInput = function textInput(e) {
110
+ setText(e.target.value);
111
+ };
112
+
113
+ var clearValue = function clearValue(e) {
114
+ if (!e.target.value) {
115
+ setText('');
116
+ setLineText('');
117
+ }
118
+ };
119
+
120
+ var PopoverDom = (0, _react.useMemo)(function () {
121
+ return /*#__PURE__*/_react.default.createElement(_popover.default, {
122
+ content: /*#__PURE__*/_react.default.createElement("div", {
123
+ style: {
124
+ width: popWidth
125
+ }
126
+ }, /*#__PURE__*/_react.default.createElement(_input.default.TextArea, {
127
+ rows: rows,
128
+ value: lineText,
129
+ onInput: lineInput,
130
+ onKeyPress: function onKeyPress(e) {
131
+ if (e.key === 'Enter') e.stopPropagation();
132
+ }
133
+ })),
134
+ trigger: "click",
135
+ visible: visible,
136
+ onVisibleChange: setVisible
137
+ }, /*#__PURE__*/_react.default.createElement(_icons.UnorderedListOutlined, {
138
+ onClick: function onClick(e) {
139
+ if (rest.disabled || (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.disabled)) return;
140
+ setVisible(true);
141
+ }
142
+ }));
143
+ }, [visible, popWidth, lineText, rest]);
144
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, rest.label && name ? /*#__PURE__*/_react.default.createElement(_lsProForm.ProFormText, (0, _extends2.default)({
145
+ name: name
146
+ }, rest), /*#__PURE__*/_react.default.createElement(_input.default, (0, _extends2.default)({
147
+ suffix: PopoverDom
148
+ }, fieldProps, {
149
+ onChange: clearValue,
150
+ onInput: textInput,
151
+ allowClear: allowClear,
152
+ ref: inputRef
153
+ }))) : /*#__PURE__*/_react.default.createElement(_input.default, (0, _extends2.default)({
154
+ suffix: PopoverDom,
155
+ allowClear: allowClear
156
+ }, fieldProps, {
157
+ onChange: clearValue,
158
+ onInput: textInput,
159
+ value: text,
160
+ ref: inputRef
161
+ })));
162
+ });
163
+
164
+ var _default = InputMultiLine;
165
+ exports.default = _default;
package/lib/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import InputTable from './components/InputTable';
3
3
  import Page404 from './components/404';
4
4
  import Loading from './components/Loading';
5
5
  import IconSelector from './components/IconSelector';
6
+ import InputMultiLine from './components/InputMultiLine';
6
7
  import BaseService from './service/BaseService';
7
8
  import request, { httpGet, httpPut, httpPost, httpDelete, getDict, fetchOptions } from './http';
8
9
  import * as utils from './utils';
@@ -14,4 +15,4 @@ import usePermission from './hooks/usePermission';
14
15
  import type { ApiResponse, TableToolbar, BaseApiType, MethodType } from './typing';
15
16
  import type { DtlLyaoutProps } from './components/DtlLayout';
16
17
  export type { ApiResponse, TableToolbar, BaseApiType, MethodType, DtlLyaoutProps };
17
- export { DtlLayout, InputTable, Page404, Loading, IconSelector, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission };
18
+ export { DtlLayout, InputTable, Page404, Loading, IconSelector, InputMultiLine, BaseService, request, httpDelete, httpGet, httpPost, httpPut, getDict, fetchOptions, utils, useSingle, useDtl, usePermission };
package/lib/index.js CHANGED
@@ -25,6 +25,12 @@ Object.defineProperty(exports, "IconSelector", {
25
25
  return _IconSelector.default;
26
26
  }
27
27
  });
28
+ Object.defineProperty(exports, "InputMultiLine", {
29
+ enumerable: true,
30
+ get: function get() {
31
+ return _InputMultiLine.default;
32
+ }
33
+ });
28
34
  Object.defineProperty(exports, "InputTable", {
29
35
  enumerable: true,
30
36
  get: function get() {
@@ -115,6 +121,8 @@ var _Loading = _interopRequireDefault(require("./components/Loading"));
115
121
 
116
122
  var _IconSelector = _interopRequireDefault(require("./components/IconSelector"));
117
123
 
124
+ var _InputMultiLine = _interopRequireDefault(require("./components/InputMultiLine"));
125
+
118
126
  var _BaseService = _interopRequireDefault(require("./service/BaseService"));
119
127
 
120
128
  var _http = _interopRequireWildcard(require("./http"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ls-pro-common",
3
- "version": "1.0.34",
3
+ "version": "1.0.35",
4
4
  "description": "ls-pro-common",
5
5
  "keywords": [
6
6
  "antd",
@@ -28,7 +28,7 @@
28
28
  ],
29
29
  "dependencies": {
30
30
  "@ant-design/icons": "^4.3.0",
31
- "ls-pro-table": "2.62.27",
31
+ "ls-pro-table": "2.62.28",
32
32
  "ls-pro-form": "1.52.25",
33
33
  "@babel/runtime": "^7.16.3",
34
34
  "classnames": "^2.2.6",