ls-pro-common 1.0.34 → 1.0.37

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
+ defaultValue?: 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
+ defaultValue?: 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", "defaultValue", "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
+ defaultValue = prop.defaultValue,
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 (defaultValue) {
56
+ setText(defaultValue);
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 };
@@ -1,10 +1,59 @@
1
- export { getUrlQuery, setUrlQuery, dateFormat, toGatewayUrl, getResourceProps } from 'ls-pro-table/lib/utils';
1
+ export { getUrlQuery, setUrlQuery, toGatewayUrl, dateFormat, getResourceProps } from 'ls-pro-table/lib/utils';
2
2
  /**
3
3
  * 设置文档title
4
4
  * @param {*} title
5
5
  * @returns
6
6
  */
7
7
  export declare const setTitle: (title: string) => void;
8
+ /**
9
+ * 日期格式化
10
+ * @param dt 日期
11
+ * @param showTime 是否显示时间 默认true
12
+ * @returns YYYY-MM-DD hh:mm:ss
13
+ */
14
+ export declare const formatDate: (dt: Date | null | undefined, showTime?: boolean | undefined) => string;
15
+ /**
16
+ * 返回当前日期
17
+ * @returns YYYY-MM-DD
18
+ */
19
+ export declare const today: () => string;
20
+ /**
21
+ * 返回当前日期时间
22
+ * @returns YYYY-MM-DD hh:mm:ss
23
+ */
24
+ export declare const now: () => string;
25
+ /**
26
+ * 当前日期加减
27
+ * @param addDay 添加添数,可为负数
28
+ * @param addMonth 添加月数,可为负数
29
+ * @param addYear 添加年数,可以负责
30
+ * @returns YYYY-MM-DD
31
+ */
32
+ export declare const todayAdd: (addDay: number, addMonth?: number, addYear?: number) => string;
33
+ /**
34
+ * 当前时间加减
35
+ * @param addDay 添加添数,可为负数
36
+ * @param addMonth 添加月数,可为负数
37
+ * @param addYear 添加年数,可以负责
38
+ * @returns YYYY-MM-DD hh:mm:ss
39
+ */
40
+ export declare const nowAdd: (addDay: number, addMonth?: number, addYear?: number) => string;
41
+ /**
42
+ * 时间加减
43
+ * @param dt 原始时间,传 null 为当前时间
44
+ * @param addDay 添加添数,可为负数
45
+ * @param addMonth 添加月数,可为负数
46
+ * @param addYear 添加年数,可以负责
47
+ * @returns YYYY-MM-DD hh:mm:ss
48
+ */
49
+ export declare const dateAdd: (dt: Date | null, addDay: number, addMonth?: number, addYear?: number) => string;
50
+ /**
51
+ * 千位符格式化数值
52
+ * @param num 数值
53
+ * @param dec 小数位数,默认为2位小数
54
+ * @returns xx,xxx.xx
55
+ */
56
+ export declare const formatMoney: (num: number, dec?: number) => string;
8
57
  /**
9
58
  * 获取Cookie
10
59
  * @param {String} name cookie名
package/es/utils/index.js CHANGED
@@ -6,7 +6,8 @@ import _message from "antd/es/message";
6
6
  import _typeof from "@babel/runtime/helpers/esm/typeof";
7
7
  import React from "react";
8
8
  import { QuestionCircleOutlined } from '@ant-design/icons';
9
- export { getUrlQuery, setUrlQuery, dateFormat, toGatewayUrl, getResourceProps } from "ls-pro-table/es/utils";
9
+ import { dateFormat } from "ls-pro-table/es/utils";
10
+ export { getUrlQuery, setUrlQuery, toGatewayUrl, dateFormat, getResourceProps } from "ls-pro-table/es/utils";
10
11
  /**
11
12
  * 设置文档title
12
13
  * @param {*} title
@@ -15,9 +16,106 @@ export { getUrlQuery, setUrlQuery, dateFormat, toGatewayUrl, getResourceProps }
15
16
 
16
17
  export var setTitle = function setTitle(title) {
17
18
  if (!title) return;
18
- title = title.length > 10 ? title.substring(0, 10) + '...' : title;
19
19
  document.title = title;
20
20
  };
21
+ /**
22
+ * 日期格式化
23
+ * @param dt 日期
24
+ * @param showTime 是否显示时间 默认true
25
+ * @returns YYYY-MM-DD hh:mm:ss
26
+ */
27
+
28
+ export var formatDate = dateFormat;
29
+ /**
30
+ * 返回当前日期
31
+ * @returns YYYY-MM-DD
32
+ */
33
+
34
+ export var today = function today() {
35
+ return dateFormat(null, false);
36
+ };
37
+ /**
38
+ * 返回当前日期时间
39
+ * @returns YYYY-MM-DD hh:mm:ss
40
+ */
41
+
42
+ export var now = function now() {
43
+ return dateFormat(null, true);
44
+ };
45
+ /**
46
+ * 当前日期加减
47
+ * @param addDay 添加添数,可为负数
48
+ * @param addMonth 添加月数,可为负数
49
+ * @param addYear 添加年数,可以负责
50
+ * @returns YYYY-MM-DD
51
+ */
52
+
53
+ export var todayAdd = function todayAdd(addDay) {
54
+ var addMonth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
55
+ var addYear = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
56
+ return nowAdd(addDay, addMonth, addYear).split(' ')[0];
57
+ };
58
+ /**
59
+ * 当前时间加减
60
+ * @param addDay 添加添数,可为负数
61
+ * @param addMonth 添加月数,可为负数
62
+ * @param addYear 添加年数,可以负责
63
+ * @returns YYYY-MM-DD hh:mm:ss
64
+ */
65
+
66
+ export var nowAdd = function nowAdd(addDay) {
67
+ var addMonth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
68
+ var addYear = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
69
+ return dateAdd(null, addDay, addMonth, addYear);
70
+ };
71
+ /**
72
+ * 时间加减
73
+ * @param dt 原始时间,传 null 为当前时间
74
+ * @param addDay 添加添数,可为负数
75
+ * @param addMonth 添加月数,可为负数
76
+ * @param addYear 添加年数,可以负责
77
+ * @returns YYYY-MM-DD hh:mm:ss
78
+ */
79
+
80
+ export var dateAdd = function dateAdd(dt, addDay) {
81
+ var addMonth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
82
+ var addYear = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
83
+
84
+ if (!dt) {
85
+ dt = new Date();
86
+ }
87
+
88
+ if (addDay) {
89
+ dt.setDate(dt.getDate() + addDay);
90
+ }
91
+
92
+ if (addMonth) {
93
+ dt.setMonth(dt.getMonth() + addMonth);
94
+ }
95
+
96
+ if (addYear) {
97
+ dt.setFullYear(dt.getFullYear() + addYear);
98
+ }
99
+
100
+ return dateFormat(dt, true);
101
+ };
102
+ /**
103
+ * 千位符格式化数值
104
+ * @param num 数值
105
+ * @param dec 小数位数,默认为2位小数
106
+ * @returns xx,xxx.xx
107
+ */
108
+
109
+ export var formatMoney = function formatMoney(num) {
110
+ var dec = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
111
+ var str = num.toFixed(dec);
112
+
113
+ if (str.indexOf('.') === -1) {
114
+ str += '.';
115
+ }
116
+
117
+ return str.replace(/(\d)(?=(\d{3})+\.)/g, '$1,').replace(/\.$/, '');
118
+ };
21
119
  /**
22
120
  * 获取Cookie
23
121
  * @param {String} name cookie名
@@ -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
+ defaultValue?: 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
+ defaultValue?: 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", "defaultValue", "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
+ defaultValue = prop.defaultValue,
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 (defaultValue) {
77
+ setText(defaultValue);
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"));