tntd 3.0.0-beta.10 → 3.0.0-beta.11

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.
Files changed (125) hide show
  1. package/es/modal/style/confirm.less +6 -6
  2. package/es/query-form/Field/Checkbox.js +1 -1
  3. package/es/query-form/Field/Checkbox.js.map +1 -1
  4. package/es/query-form/Field/Composition/FieldPopover.js +53 -34
  5. package/es/query-form/Field/Composition/FieldPopover.js.map +1 -1
  6. package/es/query-form/Field/Composition/Select.js +17 -14
  7. package/es/query-form/Field/Composition/Select.js.map +1 -1
  8. package/es/query-form/Field/Composition/index.js +16 -105
  9. package/es/query-form/Field/Composition/index.js.map +1 -1
  10. package/es/query-form/Field/Composition/index.less +0 -1
  11. package/es/query-form/Field/Composition/utils.js +107 -0
  12. package/es/query-form/Field/Composition/utils.js.map +1 -1
  13. package/es/query-form/index.js +145 -319
  14. package/es/query-form/index.js.map +1 -1
  15. package/es/query-form/index.less +16 -56
  16. package/es/query-form2/Field/Checkbox.js +23 -0
  17. package/es/query-form2/Field/Checkbox.js.map +1 -0
  18. package/es/query-form2/Field/Composition/FieldPopover.js +308 -0
  19. package/es/query-form2/Field/Composition/FieldPopover.js.map +1 -0
  20. package/es/query-form2/Field/Composition/FieldPopover.less +35 -0
  21. package/es/query-form2/Field/Composition/Select.js +104 -0
  22. package/es/query-form2/Field/Composition/Select.js.map +1 -0
  23. package/es/query-form2/Field/Composition/index.js +299 -0
  24. package/es/query-form2/Field/Composition/index.js.map +1 -0
  25. package/es/query-form2/Field/Composition/index.less +114 -0
  26. package/es/query-form2/Field/Composition/utils.js +19 -0
  27. package/es/query-form2/Field/Composition/utils.js.map +1 -0
  28. package/es/query-form2/Field/Select.js +59 -0
  29. package/es/query-form2/Field/Select.js.map +1 -0
  30. package/es/query-form2/Field/SelectInput.js +87 -0
  31. package/es/query-form2/Field/SelectInput.js.map +1 -0
  32. package/es/query-form2/Field/fieldsMap.js +28 -0
  33. package/es/query-form2/Field/fieldsMap.js.map +1 -0
  34. package/es/query-form2/Field/index.js +117 -0
  35. package/es/query-form2/Field/index.js.map +1 -0
  36. package/es/query-form2/createActions.js +47 -0
  37. package/es/query-form2/createActions.js.map +1 -0
  38. package/es/query-form2/index.js +345 -0
  39. package/es/query-form2/index.js.map +1 -0
  40. package/es/query-form2/index.less +136 -0
  41. package/es/query-form2/useForm.js +6 -0
  42. package/es/query-form2/useForm.js.map +1 -0
  43. package/es/query-list-scene/QueryForm.js +1 -3
  44. package/es/query-list-scene/QueryForm.js.map +1 -1
  45. package/es/select/select.less +1 -0
  46. package/es/tag/color.less +28 -18
  47. package/es/tag/tag.less +42 -6
  48. package/lib/modal/style/confirm.less +6 -6
  49. package/lib/query-form/Field/Checkbox.js +1 -1
  50. package/lib/query-form/Field/Checkbox.js.map +1 -1
  51. package/lib/query-form/Field/Composition/FieldPopover.js +83 -65
  52. package/lib/query-form/Field/Composition/FieldPopover.js.map +1 -1
  53. package/lib/query-form/Field/Composition/Select.d.ts.map +1 -1
  54. package/lib/query-form/Field/Composition/Select.js +18 -15
  55. package/lib/query-form/Field/Composition/Select.js.map +1 -1
  56. package/lib/query-form/Field/Composition/index.d.ts +0 -4
  57. package/lib/query-form/Field/Composition/index.js +29 -121
  58. package/lib/query-form/Field/Composition/index.js.map +1 -1
  59. package/lib/query-form/Field/Composition/index.less +0 -1
  60. package/lib/query-form/Field/Composition/utils.d.ts +16 -0
  61. package/lib/query-form/Field/Composition/utils.d.ts.map +1 -1
  62. package/lib/query-form/Field/Composition/utils.js +114 -0
  63. package/lib/query-form/Field/Composition/utils.js.map +1 -1
  64. package/lib/query-form/index.d.ts +15 -24
  65. package/lib/query-form/index.d.ts.map +1 -1
  66. package/lib/query-form/index.js +164 -344
  67. package/lib/query-form/index.js.map +1 -1
  68. package/lib/query-form/index.less +16 -56
  69. package/lib/query-form2/Field/Checkbox.d.ts +8 -0
  70. package/lib/query-form2/Field/Checkbox.d.ts.map +1 -0
  71. package/lib/query-form2/Field/Checkbox.js +28 -0
  72. package/lib/query-form2/Field/Checkbox.js.map +1 -0
  73. package/lib/query-form2/Field/Composition/FieldPopover.d.ts +19 -0
  74. package/lib/query-form2/Field/Composition/FieldPopover.d.ts.map +1 -0
  75. package/lib/query-form2/Field/Composition/FieldPopover.js +347 -0
  76. package/lib/query-form2/Field/Composition/FieldPopover.js.map +1 -0
  77. package/lib/query-form2/Field/Composition/FieldPopover.less +35 -0
  78. package/lib/query-form2/Field/Composition/Select.d.ts +4 -0
  79. package/lib/query-form2/Field/Composition/Select.d.ts.map +1 -0
  80. package/lib/query-form2/Field/Composition/Select.js +128 -0
  81. package/lib/query-form2/Field/Composition/Select.js.map +1 -0
  82. package/lib/query-form2/Field/Composition/index.d.ts +14 -0
  83. package/lib/query-form2/Field/Composition/index.d.ts.map +1 -0
  84. package/lib/query-form2/Field/Composition/index.js +349 -0
  85. package/lib/query-form2/Field/Composition/index.js.map +1 -0
  86. package/lib/query-form2/Field/Composition/index.less +114 -0
  87. package/lib/query-form2/Field/Composition/utils.d.ts +6 -0
  88. package/lib/query-form2/Field/Composition/utils.d.ts.map +1 -0
  89. package/lib/query-form2/Field/Composition/utils.js +27 -0
  90. package/lib/query-form2/Field/Composition/utils.js.map +1 -0
  91. package/lib/query-form2/Field/Select.d.ts +4 -0
  92. package/lib/query-form2/Field/Select.d.ts.map +1 -0
  93. package/lib/query-form2/Field/Select.js +80 -0
  94. package/lib/query-form2/Field/Select.js.map +1 -0
  95. package/lib/query-form2/Field/SelectInput.d.ts +4 -0
  96. package/lib/query-form2/Field/SelectInput.d.ts.map +1 -0
  97. package/lib/query-form2/Field/SelectInput.js +100 -0
  98. package/lib/query-form2/Field/SelectInput.js.map +1 -0
  99. package/lib/query-form2/Field/fieldsMap.d.ts +27 -0
  100. package/lib/query-form2/Field/fieldsMap.d.ts.map +1 -0
  101. package/lib/query-form2/Field/fieldsMap.js +35 -0
  102. package/lib/query-form2/Field/fieldsMap.js.map +1 -0
  103. package/lib/query-form2/Field/index.d.ts +14 -0
  104. package/lib/query-form2/Field/index.d.ts.map +1 -0
  105. package/lib/query-form2/Field/index.js +147 -0
  106. package/lib/query-form2/Field/index.js.map +1 -0
  107. package/lib/query-form2/createActions.d.ts +14 -0
  108. package/lib/query-form2/createActions.d.ts.map +1 -0
  109. package/lib/query-form2/createActions.js +54 -0
  110. package/lib/query-form2/createActions.js.map +1 -0
  111. package/lib/query-form2/index.d.ts +36 -0
  112. package/lib/query-form2/index.d.ts.map +1 -0
  113. package/lib/query-form2/index.js +385 -0
  114. package/lib/query-form2/index.js.map +1 -0
  115. package/lib/query-form2/index.less +136 -0
  116. package/lib/query-form2/useForm.d.ts +13 -0
  117. package/lib/query-form2/useForm.d.ts.map +1 -0
  118. package/lib/query-form2/useForm.js +13 -0
  119. package/lib/query-form2/useForm.js.map +1 -0
  120. package/lib/query-list-scene/QueryForm.js +2 -3
  121. package/lib/query-list-scene/QueryForm.js.map +1 -1
  122. package/lib/select/select.less +1 -0
  123. package/lib/tag/color.less +28 -18
  124. package/lib/tag/tag.less +42 -6
  125. package/package.json +1 -1
@@ -1,74 +1,11 @@
1
- import React, { useEffect, useLayoutEffect, useState, useRef, useImperativeHandle, forwardRef } from 'react';
1
+ import React, { useEffect, useState, useRef, useImperativeHandle, forwardRef } from 'react';
2
2
  import LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver';
3
3
  import Icon from '../../../icon';
4
4
  import Tag from '../../../tag';
5
5
  import Input from '../../../input';
6
6
  import FieldPopover from './FieldPopover';
7
+ import { parseArrayToObject, parseObjectToArray } from './utils';
7
8
  import './index.less';
8
- const parseObjectToArray = (value, data) => {
9
- var _a, _b;
10
- return (_b = (_a = Object.keys(value)) === null || _a === void 0 ? void 0 : _a.map(key => {
11
- var _a, _b, _c;
12
- const target = data === null || data === void 0 ? void 0 : data.find(item => {
13
- var _a;
14
- return ((_a = item.props) === null || _a === void 0 ? void 0 : _a.name) === key;
15
- });
16
- if (!target) return null;
17
- const dataItem = (target === null || target === void 0 ? void 0 : target.props) || {};
18
- const {
19
- type,
20
- component,
21
- setLabel,
22
- props: fieldProps,
23
- propsTitle,
24
- title,
25
- name
26
- } = dataItem || {};
27
- const _propsTitle = propsTitle || title || name;
28
- const {
29
- options
30
- } = fieldProps || {};
31
- const fieldNames = ((_a = dataItem === null || dataItem === void 0 ? void 0 : dataItem.props) === null || _a === void 0 ? void 0 : _a.fieldNames) || {
32
- label: 'label',
33
- value: 'value'
34
- };
35
- let labelValue = value[key];
36
- if (!type && component) {
37
- if (!setLabel) {
38
- console.error('自定义组件需要传入setLabel()方法');
39
- }
40
- } else if (options) {
41
- if (type === 'selectInput') {
42
- const selectKey = (_b = Object.keys(labelValue)) === null || _b === void 0 ? void 0 : _b[0];
43
- const inputValue = labelValue[selectKey];
44
- const selectLabel = (_c = options === null || options === void 0 ? void 0 : options.find(v => v.value === selectKey)) === null || _c === void 0 ? void 0 : _c.label;
45
- return {
46
- key,
47
- value: value[key],
48
- closable: true,
49
- label: selectLabel + ':' + inputValue
50
- };
51
- }
52
- const target = options === null || options === void 0 ? void 0 : options.find(item => {
53
- const valueKey = fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value;
54
- const itemValue = item instanceof Object ? item[valueKey] : item;
55
- return itemValue === value[key];
56
- });
57
- labelValue = target instanceof Object ? target === null || target === void 0 ? void 0 : target[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.label] : target;
58
- }
59
- // setLabel: 对于自定义组件,无法控制label的显示,可以通过setLabel方法控制
60
- return {
61
- key,
62
- value: value[key],
63
- closable: true,
64
- label: setLabel ? setLabel(labelValue) : _propsTitle + ':' + labelValue
65
- };
66
- })) === null || _b === void 0 ? void 0 : _b.filter(item => !!item);
67
- };
68
- const parseArrayToObject = value => value === null || value === void 0 ? void 0 : value.reduce((acc, v) => {
69
- acc[v.key] = v.value;
70
- return acc;
71
- }, {});
72
9
  /**
73
10
  * @param value: [{
74
11
  key: 'key1',
@@ -84,14 +21,10 @@ const parseArrayToObject = value => value === null || value === void 0 ? void 0
84
21
  */
85
22
  const regex = /^.+:.*$/;
86
23
  const CompositionInput = ({
87
- value: _value,
88
24
  fieldItems,
89
25
  initialValues,
90
26
  onChange,
91
- placeholder,
92
- disabled,
93
27
  form,
94
- style,
95
28
  clsPrefix
96
29
  }, ref) => {
97
30
  const prefix = `${clsPrefix}-composition-input`;
@@ -120,40 +53,20 @@ const CompositionInput = ({
120
53
  }
121
54
  }));
122
55
  useEffect(() => {
123
- let values = form.getValues();
124
- if (values) {
125
- setValue(parseObjectToArray(values, fieldItems));
56
+ if (initialValues) {
57
+ setValue(parseObjectToArray(initialValues, fieldItems));
126
58
  }
127
- }, [fieldItems, form]);
128
- // useEffect(() => {
129
- // if (!visible) {
130
- // const newValues = value?.filter((v) => !!v?.value)
131
- // if (newValues.length !== value?.length) {
132
- // setValue(newValues)
133
- // }
134
- // }
135
- // }, [visible, value])
136
- useLayoutEffect(() => {
137
- const target = document.querySelector(`.${prefix} .inputClass`);
138
- if (!target) return;
139
- if (searchText && widthRef.current.clientWidth > 50) {
140
- target.style.width = widthRef.current.clientWidth + 10 + 'px';
141
- } else if (!(value === null || value === void 0 ? void 0 : value.length)) {
142
- target.style.width = '300px';
143
- } else {
144
- target.style.width = '100px';
145
- }
146
- }, [searchText, value]);
147
- const onFormChange = formData => {
148
- setValue(parseObjectToArray(formData, data));
149
- };
59
+ }, [fieldItems, form, initialValues]);
150
60
  const onClear = e => {
151
61
  e.stopPropagation();
152
- const deleteKeys = value === null || value === void 0 ? void 0 : value.map(({
62
+ const initKeys = Object.keys(initialValues || {});
63
+ const deleteKeys = value === null || value === void 0 ? void 0 : value.filter(({
64
+ key
65
+ }) => !initKeys.includes(key)).map(({
153
66
  key
154
67
  }) => key);
155
- setValue([]);
156
- onChange([], deleteKeys);
68
+ setValue(parseObjectToArray(initialValues || {}, fieldItems));
69
+ onChange(Object.assign({}, initialValues || {}), deleteKeys);
157
70
  };
158
71
  const onDelete = (key, e) => {
159
72
  e.preventDefault();
@@ -227,7 +140,6 @@ const CompositionInput = ({
227
140
  break;
228
141
  }
229
142
  }
230
- // setSearchText(obj.label)
231
143
  fieldRef.current.onPropsClick(curItem.props);
232
144
  };
233
145
  return React.createElement(LocaleReceiver, {
@@ -235,7 +147,6 @@ const CompositionInput = ({
235
147
  }, locale => {
236
148
  return React.createElement("div", {
237
149
  className: prefix,
238
- style: style,
239
150
  onClick: handleFocus
240
151
  }, React.createElement("span", {
241
152
  className: `${prefix}-width`,
@@ -246,7 +157,7 @@ const CompositionInput = ({
246
157
  key: index,
247
158
  className: `${prefix}-items-item`
248
159
  }, React.createElement(Tag, {
249
- closable: !disabled && item.closable,
160
+ closable: item.closable,
250
161
  onClick: e => {
251
162
  e.preventDefault();
252
163
  e.stopPropagation();
@@ -254,7 +165,7 @@ const CompositionInput = ({
254
165
  },
255
166
  onClose: e => onDelete(item.key, e),
256
167
  ellipsisOptions: {
257
- widthLimit: "140px"
168
+ widthLimit: '140px'
258
169
  }
259
170
  }, item === null || item === void 0 ? void 0 : item.label))), React.createElement("li", {
260
171
  className: `${prefix}-items-input`
@@ -271,13 +182,13 @@ const CompositionInput = ({
271
182
  value: value,
272
183
  setVisible: setVisible,
273
184
  searchText: searchText,
274
- locale: locale
185
+ locale: locale,
186
+ placement: "bottomLeft"
275
187
  }, React.createElement(Input, Object.assign({
276
188
  ref: inputRef,
277
189
  value: searchText,
278
190
  className: "inputClass",
279
- placeholder: !(value === null || value === void 0 ? void 0 : value.length) ? placeholder || locale.placeholder : undefined,
280
- disabled: disabled
191
+ placeholder: !(value === null || value === void 0 ? void 0 : value.length) ? locale.placeholder : undefined
281
192
  }, props, {
282
193
  onPressEnter: onPressEnter,
283
194
  onChange: e => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/query-form/Field/Composition/index.js"],"names":[],"mappings":"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","sourcesContent":["import React, {\n useEffect,\n useLayoutEffect,\n useState,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from 'react'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport Icon from '../../../icon'\n\nimport Tag from '../../../tag'\nimport Input from '../../../input'\nimport FieldPopover from './FieldPopover'\nimport './index.less'\n\nconst parseObjectToArray = (value, data) => {\n return Object.keys(value)\n ?.map((key) => {\n const target = data?.find((item) => item.props?.name === key)\n if (!target) return null\n const dataItem = target?.props || {}\n const {\n type,\n component,\n setLabel,\n props: fieldProps,\n propsTitle,\n title,\n name,\n } = dataItem || {}\n const _propsTitle = propsTitle || title || name\n const { options } = fieldProps || {}\n const fieldNames = dataItem?.props?.fieldNames || {\n label: 'label',\n value: 'value',\n }\n let labelValue = value[key]\n if (!type && component) {\n if (!setLabel) {\n console.error('自定义组件需要传入setLabel()方法')\n }\n } else if (options) {\n if (type === 'selectInput') {\n const selectKey = Object.keys(labelValue)?.[0]\n const inputValue = labelValue[selectKey]\n const selectLabel = options?.find((v) => v.value === selectKey)?.label\n return {\n key,\n value: value[key],\n closable: true,\n label: selectLabel + ':' + inputValue,\n }\n }\n const target = options?.find((item) => {\n const valueKey = fieldNames?.value\n const itemValue = item instanceof Object ? item[valueKey] : item\n return itemValue === value[key]\n })\n labelValue = target instanceof Object ? target?.[fieldNames?.label] : target\n }\n // setLabel: 对于自定义组件,无法控制label的显示,可以通过setLabel方法控制\n return {\n key,\n value: value[key],\n closable: true,\n label: setLabel ? setLabel(labelValue) : _propsTitle + ':' + labelValue,\n }\n })\n ?.filter((item) => !!item)\n}\n\nconst parseArrayToObject = (value) =>\n value?.reduce((acc, v) => {\n acc[v.key] = v.value\n return acc\n }, {})\n\n/**\n * @param value: [{\n key: 'key1',\n value: 'value1',\n label: 'key1:value1'\n }, {\n key: 'key2',\n value: ['value2', 'value3'],\n label: 'key1:value2|value3'\n }]\n * @param {*} ref \n * @returns \n */\nconst regex = /^.+:.*$/\n\nconst CompositionInput = (\n { value: _value, fieldItems, initialValues, onChange, placeholder, disabled, form, style, clsPrefix },\n ref\n) => {\n const prefix = `${clsPrefix}-composition-input`;\n const [value, setValue] = useState([])\n const [tempItem, setTempItem] = useState()\n const [searchText, setSearchText] = useState('')\n const [visible, setVisible] = useState(false)\n const [fieldItem, setFieldItem] = useState(undefined)\n const { props } = fieldItem || {}\n\n const inputRef = useRef(null)\n const widthRef = useRef(null)\n const fieldRef = useRef(null)\n\n const handleFocus = (e) => {\n e.preventDefault()\n inputRef?.current?.focus()\n if (!visible && !regex.test(searchText)) {\n setVisible(true)\n }\n }\n useImperativeHandle(ref, () => ({\n changeVal: () => {\n return value\n },\n }))\n\n useEffect(() => {\n let values = form.getValues();\n if (values) {\n setValue(parseObjectToArray(values, fieldItems))\n }\n }, [fieldItems, form])\n\n // useEffect(() => {\n // if (!visible) {\n // const newValues = value?.filter((v) => !!v?.value)\n // if (newValues.length !== value?.length) {\n // setValue(newValues)\n // }\n // }\n // }, [visible, value])\n\n useLayoutEffect(() => {\n const target = document.querySelector(`.${prefix} .inputClass`)\n\n if (!target) return\n if (searchText && widthRef.current.clientWidth > 50) {\n target.style.width = widthRef.current.clientWidth + 10 + 'px'\n } else if (!value?.length) {\n target.style.width = '300px'\n } else {\n target.style.width = '100px'\n }\n }, [searchText, value])\n\n\n const onFormChange = (formData) => {\n setValue(parseObjectToArray(formData, data))\n }\n\n const onClear = (e) => {\n e.stopPropagation()\n const deleteKeys = value?.map(({ key }) => key)\n setValue([])\n onChange([], deleteKeys)\n }\n const onDelete = (key, e) => {\n e.preventDefault()\n if (value.length > 0) {\n const newValue = value.filter((v) => v.key !== key)\n setValue(newValue)\n const deleteKeys = [key]\n onChange(parseArrayToObject(newValue), deleteKeys)\n }\n }\n const handleFieldChange = (value, isInput, hasValue) => {\n if (isInput) {\n setSearchText(value?.label)\n setTempItem(value)\n return\n }\n setValue(value)\n setSearchText('')\n setTempItem()\n if (hasValue) onChange(parseArrayToObject(value))\n }\n\n // 输入框事件方法\n const onInputChange = (e) => {\n const value = e.target.value\n if (tempItem) {\n if (regex.test(value)) {\n // 有输入值\n setSearchText(value)\n } else {\n // 没有输入值, 清空选择的属性类型重新显示属性列表\n setSearchText('')\n setTempItem()\n }\n } else {\n setSearchText(value)\n }\n }\n\n const onPressEnter = (e) => {\n const inputValue = searchText?.match(/[^:]+:(.*)/)?.[1] || null\n if (tempItem && inputValue) {\n setVisible(false)\n tempItem.label = searchText\n tempItem.closable = true\n tempItem.value = inputValue // 得到输入值\n if (!value?.find((v) => v.key === tempItem.key)) {\n const newValue = [...value, tempItem]\n setValue(newValue)\n onChange(parseArrayToObject(newValue))\n } else {\n const newValue = value.map((v) => (v.key === tempItem.key ? tempItem : v))\n setValue(newValue)\n onChange(parseArrayToObject(newValue))\n }\n e.target.value = inputValue\n form.emit('search', { [tempItem.key]: inputValue, current: 1 })\n props?.onPressEnter && props.onPressEnter(e)\n }\n setTempItem()\n setSearchText('')\n }\n\n const handleTag = (obj) => {\n let curItem = undefined\n for (let index = 0; index < fieldItems.length; index++) {\n const item = fieldItems[index];\n if (item.props.name === obj.key) {\n curItem = item\n break;\n }\n }\n // setSearchText(obj.label)\n fieldRef.current.onPropsClick(curItem.props)\n }\n return (\n <LocaleReceiver componentName=\"QueryForm\">\n {(locale) => {\n return (\n <div className={prefix} style={style} onClick={handleFocus}>\n <span className={`${prefix}-width`} ref={widthRef}>\n {searchText}\n </span>\n <ul className={`${prefix}-items`}>\n {value &&\n value.map((item, index) => (\n <li key={index} className={`${prefix}-items-item`}>\n <Tag closable={!disabled && item.closable} onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleTag(item)\n }} onClose={(e) => onDelete(item.key, e)} ellipsisOptions={{widthLimit:\"140px\"}}>\n {item?.label}\n </Tag>\n </li>\n ))}\n <li className={`${prefix}-items-input`}>\n <FieldPopover\n ref={fieldRef}\n onChange={handleFieldChange}\n clsPrefix={clsPrefix}\n fieldItems={fieldItems}\n propItem={fieldItem}\n setFieldItem={setFieldItem}\n form={form}\n regex={regex}\n visible={visible}\n value={value}\n setVisible={setVisible}\n searchText={searchText}\n locale={locale}\n >\n <Input\n ref={inputRef}\n value={searchText}\n className=\"inputClass\"\n placeholder={!value?.length ? placeholder || locale.placeholder : undefined}\n disabled={disabled}\n {...props}\n onPressEnter={onPressEnter}\n onChange={(e) => {\n onInputChange(e)\n }}\n />\n </FieldPopover>\n </li>\n </ul>\n <div className={`${prefix}-prefix`}>\n <Icon type=\"filter\" />\n </div>\n <div className={`${prefix}-clear`}>\n <Icon\n onClick={onClear}\n type=\"close-circle\"\n theme=\"filled\"\n />\n </div>\n </div>\n )\n }}\n </LocaleReceiver>\n )\n}\nexport default forwardRef(CompositionInput)\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/query-form/Field/Composition/index.js"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState, useRef, useImperativeHandle, forwardRef } from 'react'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport Icon from '../../../icon'\nimport Tag from '../../../tag'\nimport Input from '../../../input'\nimport FieldPopover from './FieldPopover'\nimport { parseArrayToObject, parseObjectToArray } from './utils'\nimport './index.less'\n\n/**\n * @param value: [{\n key: 'key1',\n value: 'value1',\n label: 'key1:value1'\n }, {\n key: 'key2',\n value: ['value2', 'value3'],\n label: 'key1:value2|value3'\n }]\n * @param {*} ref \n * @returns \n */\nconst regex = /^.+:.*$/\n\nconst CompositionInput = ({ fieldItems, initialValues, onChange, form, clsPrefix }, ref) => {\n const prefix = `${clsPrefix}-composition-input`\n const [value, setValue] = useState([])\n const [tempItem, setTempItem] = useState()\n const [searchText, setSearchText] = useState('')\n const [visible, setVisible] = useState(false)\n const [fieldItem, setFieldItem] = useState(undefined)\n const { props } = fieldItem || {}\n\n const inputRef = useRef(null)\n const widthRef = useRef(null)\n const fieldRef = useRef(null)\n\n const handleFocus = (e) => {\n e.preventDefault()\n inputRef?.current?.focus()\n if (!visible && !regex.test(searchText)) {\n setVisible(true)\n }\n }\n useImperativeHandle(ref, () => ({\n changeVal: () => {\n return value\n },\n }))\n\n useEffect(() => {\n if (initialValues) {\n setValue(parseObjectToArray(initialValues, fieldItems))\n }\n }, [fieldItems, form, initialValues])\n\n const onClear = (e) => {\n e.stopPropagation()\n const initKeys = Object.keys(initialValues || {})\n const deleteKeys = value?.filter(({ key }) => !initKeys.includes(key)).map(({ key }) => key)\n setValue(parseObjectToArray(initialValues || {}, fieldItems))\n onChange({ ...(initialValues || {}) }, deleteKeys)\n }\n const onDelete = (key, e) => {\n e.preventDefault()\n if (value.length > 0) {\n const newValue = value.filter((v) => v.key !== key)\n setValue(newValue)\n const deleteKeys = [key]\n onChange(parseArrayToObject(newValue), deleteKeys)\n }\n }\n const handleFieldChange = (value, isInput, hasValue) => {\n if (isInput) {\n setSearchText(value?.label)\n setTempItem(value)\n return\n }\n setValue(value)\n setSearchText('')\n setTempItem()\n if (hasValue) onChange(parseArrayToObject(value))\n }\n\n // 输入框事件方法\n const onInputChange = (e) => {\n const value = e.target.value\n if (tempItem) {\n if (regex.test(value)) {\n // 有输入值\n setSearchText(value)\n } else {\n // 没有输入值, 清空选择的属性类型重新显示属性列表\n setSearchText('')\n setTempItem()\n }\n } else {\n setSearchText(value)\n }\n }\n\n const onPressEnter = (e) => {\n const inputValue = searchText?.match(/[^:]+:(.*)/)?.[1] || null\n if (tempItem && inputValue) {\n setVisible(false)\n tempItem.label = searchText\n tempItem.closable = true\n tempItem.value = inputValue // 得到输入值\n if (!value?.find((v) => v.key === tempItem.key)) {\n const newValue = [...value, tempItem]\n setValue(newValue)\n onChange(parseArrayToObject(newValue))\n } else {\n const newValue = value.map((v) => (v.key === tempItem.key ? tempItem : v))\n setValue(newValue)\n onChange(parseArrayToObject(newValue))\n }\n e.target.value = inputValue\n form.emit('search', { [tempItem.key]: inputValue, current: 1 })\n props?.onPressEnter && props.onPressEnter(e)\n }\n setTempItem()\n setSearchText('')\n }\n\n const handleTag = (obj) => {\n let curItem = undefined\n for (let index = 0; index < fieldItems.length; index++) {\n const item = fieldItems[index]\n if (item.props.name === obj.key) {\n curItem = item\n break\n }\n }\n fieldRef.current.onPropsClick(curItem.props)\n }\n return (\n <LocaleReceiver componentName=\"QueryForm\">\n {(locale) => {\n return (\n <div className={prefix} onClick={handleFocus}>\n <span className={`${prefix}-width`} ref={widthRef}>\n {searchText}\n </span>\n <ul className={`${prefix}-items`}>\n {value &&\n value.map((item, index) => (\n <li key={index} className={`${prefix}-items-item`}>\n <Tag\n closable={item.closable}\n onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleTag(item)\n }}\n onClose={(e) => onDelete(item.key, e)}\n ellipsisOptions={{ widthLimit: '140px' }}\n >\n {item?.label}\n </Tag>\n </li>\n ))}\n <li className={`${prefix}-items-input`}>\n <FieldPopover\n ref={fieldRef}\n onChange={handleFieldChange}\n clsPrefix={clsPrefix}\n fieldItems={fieldItems}\n propItem={fieldItem}\n setFieldItem={setFieldItem}\n form={form}\n regex={regex}\n visible={visible}\n value={value}\n setVisible={setVisible}\n searchText={searchText}\n locale={locale}\n placement=\"bottomLeft\"\n >\n <Input\n ref={inputRef}\n value={searchText}\n className=\"inputClass\"\n placeholder={!value?.length ? locale.placeholder : undefined}\n {...props}\n onPressEnter={onPressEnter}\n onChange={(e) => {\n onInputChange(e)\n }}\n />\n </FieldPopover>\n </li>\n </ul>\n <div className={`${prefix}-prefix`}>\n <Icon type=\"filter\" />\n </div>\n <div className={`${prefix}-clear`}>\n <Icon onClick={onClear} type=\"close-circle\" theme=\"filled\" />\n </div>\n </div>\n )\n }}\n </LocaleReceiver>\n )\n}\nexport default forwardRef(CompositionInput)\n"]}
@@ -4,7 +4,6 @@
4
4
 
5
5
  .tnt-queryform-composition-input {
6
6
  // width: 100%;
7
- margin-right: @padding-md;
8
7
  max-height: 162px;
9
8
  overflow-x: hidden;
10
9
  cursor: text;
@@ -1,3 +1,7 @@
1
+ import _flatten from "lodash/flatten";
2
+ import _isString from "lodash/isString";
3
+ import _isArray from "lodash/isArray";
4
+ import React from 'react';
1
5
  export function highlightSubstring(str, substring) {
2
6
  const highlighted = `<span class="tnt-highlight">${substring}</span>`;
3
7
  return str.replace(new RegExp(substring, 'g'), highlighted);
@@ -16,4 +20,107 @@ export function getLabelFromOptions(key, options, fieldNames = {
16
20
  labelValue = target instanceof Object ? target === null || target === void 0 ? void 0 : target[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.label] : target;
17
21
  }
18
22
  return labelValue;
23
+ }
24
+ export function getLabelByValue({
25
+ value,
26
+ options,
27
+ fieldNames = {
28
+ label: 'label',
29
+ value: 'value'
30
+ }
31
+ }) {
32
+ const getLabel = value => {
33
+ const target = options === null || options === void 0 ? void 0 : options.find(item => {
34
+ const valueKey = fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value;
35
+ const itemValue = item instanceof Object ? item[valueKey] : item;
36
+ return itemValue === value;
37
+ });
38
+ return target instanceof Object ? target === null || target === void 0 ? void 0 : target[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.label] : target;
39
+ };
40
+ if (_isArray(value)) {
41
+ return value.map(getLabel).join(' | ');
42
+ } else {
43
+ return getLabel(value);
44
+ }
45
+ }
46
+ export function formatLabel(reactDom) {
47
+ return _flatten(React.Children.map(reactDom.props.children, child => {
48
+ if (React.isValidElement(child)) {
49
+ return formatLabel(child);
50
+ } else if (_isString(child)) {
51
+ return child;
52
+ }
53
+ return '';
54
+ })).join('');
55
+ }
56
+ export function parseObjectToArray(value, data) {
57
+ var _a, _b;
58
+ return (_b = (_a = Object.keys(value)) === null || _a === void 0 ? void 0 : _a.map(key => {
59
+ var _a, _b, _c;
60
+ const target = data === null || data === void 0 ? void 0 : data.find(item => {
61
+ var _a;
62
+ return ((_a = item.props) === null || _a === void 0 ? void 0 : _a.name) === key;
63
+ });
64
+ if (!target) return null;
65
+ const dataItem = (target === null || target === void 0 ? void 0 : target.props) || {};
66
+ const {
67
+ type,
68
+ component,
69
+ setLabel,
70
+ props: fieldProps,
71
+ propsTitle,
72
+ title,
73
+ name
74
+ } = dataItem || {};
75
+ const _propsTitle = propsTitle || title || name;
76
+ const {
77
+ options
78
+ } = fieldProps || {};
79
+ const fieldNames = ((_a = dataItem === null || dataItem === void 0 ? void 0 : dataItem.props) === null || _a === void 0 ? void 0 : _a.fieldNames) || {
80
+ label: 'label',
81
+ value: 'value'
82
+ };
83
+ let labelValue = value[key];
84
+ if (!type && component) {
85
+ if (!setLabel) {
86
+ console.error('自定义组件需要传入setLabel()方法');
87
+ }
88
+ } else if (setLabel) {
89
+ // setLabel: 对于自定义组件,无法控制label的显示,可以通过setLabel方法控制
90
+ labelValue = setLabel(labelValue);
91
+ } else if (options) {
92
+ if (type === 'selectInput') {
93
+ const selectKey = (_b = Object.keys(labelValue)) === null || _b === void 0 ? void 0 : _b[0];
94
+ if (!selectKey) {
95
+ // 17. inputSelect组件,初始值{},展示undefined:undefined
96
+ return false;
97
+ }
98
+ const inputValue = labelValue[selectKey];
99
+ const selectLabel = (_c = options === null || options === void 0 ? void 0 : options.find(v => v.value === selectKey)) === null || _c === void 0 ? void 0 : _c.label;
100
+ return {
101
+ key,
102
+ value: value[key],
103
+ closable: true,
104
+ label: selectLabel + ':' + inputValue
105
+ };
106
+ }
107
+ labelValue = getLabelByValue({
108
+ value: labelValue,
109
+ options,
110
+ fieldNames
111
+ });
112
+ }
113
+ return {
114
+ key,
115
+ value: value[key],
116
+ closable: true,
117
+ label: _propsTitle + ':' + labelValue
118
+ };
119
+ })) === null || _b === void 0 ? void 0 : _b.filter(item => !!item);
120
+ }
121
+ export function parseArrayToObject(value) {
122
+ return value === null || value === void 0 ? void 0 : value.reduce((acc, v) => {
123
+ acc[v.key] = v.value;
124
+ return acc;
125
+ }, {});
19
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/query-form/Field/Composition/utils.js"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,GAAG,EAAE,SAAS;IAC/C,MAAM,WAAW,GAAG,+BAA+B,SAAS,SAAS,CAAA;IACrE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAG,EACH,OAAO,EACP,UAAU,GAAG;IACX,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACf;IAED,IAAI,UAAU,GAAG,GAAG,CAAA;IACpB,IAAI,OAAO,EAAE;QACX,MAAM,MAAM,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAA;YAClC,MAAM,SAAS,GAAG,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAChE,OAAO,SAAS,KAAK,GAAG,CAAA;QAC1B,CAAC,CAAC,CAAA;QACF,UAAU,GAAG,MAAM,YAAY,MAAM,CAAC,CAAC,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;KAC7E;IACD,OAAO,UAAU,CAAA;AACnB,CAAC","sourcesContent":["export function highlightSubstring(str, substring) {\n const highlighted = `<span class=\"tnt-highlight\">${substring}</span>`\n return str.replace(new RegExp(substring, 'g'), highlighted)\n}\n\nexport function getLabelFromOptions(\n key,\n options,\n fieldNames = {\n label: 'label',\n value: 'value',\n }\n) {\n let labelValue = key\n if (options) {\n const target = options?.find((item) => {\n const valueKey = fieldNames?.value\n const itemValue = item instanceof Object ? item[valueKey] : item\n return itemValue === key\n })\n labelValue = target instanceof Object ? target?.[fieldNames?.label] : target\n }\n return labelValue\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/query-form/Field/Composition/utils.js"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { isArray, isString, flatten } from 'lodash'\n\nexport function highlightSubstring(str, substring) {\n const highlighted = `<span class=\"tnt-highlight\">${substring}</span>`\n return str.replace(new RegExp(substring, 'g'), highlighted)\n}\n\nexport function getLabelFromOptions(\n key,\n options,\n fieldNames = {\n label: 'label',\n value: 'value',\n }\n) {\n let labelValue = key\n if (options) {\n const target = options?.find((item) => {\n const valueKey = fieldNames?.value\n const itemValue = item instanceof Object ? item[valueKey] : item\n return itemValue === key\n })\n labelValue = target instanceof Object ? target?.[fieldNames?.label] : target\n }\n return labelValue\n}\n\nexport function getLabelByValue({\n value,\n options,\n fieldNames = {\n label: 'label',\n value: 'value',\n },\n}) {\n const getLabel = (value) => {\n const target = options?.find((item) => {\n const valueKey = fieldNames?.value\n const itemValue = item instanceof Object ? item[valueKey] : item\n return itemValue === value\n })\n return target instanceof Object ? target?.[fieldNames?.label] : target\n }\n if (isArray(value)) {\n return value.map(getLabel).join(' | ')\n } else {\n return getLabel(value)\n }\n}\n\nexport function formatLabel(reactDom) {\n return flatten(\n React.Children.map(reactDom.props.children, (child) => {\n if (React.isValidElement(child)) {\n return formatLabel(child)\n } else if (isString(child)) {\n return child\n }\n return ''\n })\n ).join('')\n}\n\nexport function parseObjectToArray(value, data) {\n return Object.keys(value)\n ?.map((key) => {\n const target = data?.find((item) => item.props?.name === key)\n if (!target) return null\n const dataItem = target?.props || {}\n const {\n type,\n component,\n setLabel,\n props: fieldProps,\n propsTitle,\n title,\n name,\n } = dataItem || {}\n const _propsTitle = propsTitle || title || name\n const { options } = fieldProps || {}\n const fieldNames = dataItem?.props?.fieldNames || {\n label: 'label',\n value: 'value',\n }\n let labelValue = value[key]\n if (!type && component) {\n if (!setLabel) {\n console.error('自定义组件需要传入setLabel()方法')\n }\n } else if (setLabel) {\n // setLabel: 对于自定义组件,无法控制label的显示,可以通过setLabel方法控制\n labelValue = setLabel(labelValue)\n } else if (options) {\n if (type === 'selectInput') {\n const selectKey = Object.keys(labelValue)?.[0]\n if (!selectKey) {\n // 17. inputSelect组件,初始值{},展示undefined:undefined\n return false\n }\n const inputValue = labelValue[selectKey]\n const selectLabel = options?.find((v) => v.value === selectKey)?.label\n return {\n key,\n value: value[key],\n closable: true,\n label: selectLabel + ':' + inputValue,\n }\n }\n labelValue = getLabelByValue({ value: labelValue, options, fieldNames })\n }\n return {\n key,\n value: value[key],\n closable: true,\n label: _propsTitle + ':' + labelValue,\n }\n })\n ?.filter((item) => !!item)\n}\n\nexport function parseArrayToObject(value) {\n return value?.reduce((acc, v) => {\n acc[v.key] = v.value\n return acc\n }, {})\n}\n"]}