@jiaozhiye/qm-design-react 1.3.0-beta.9 → 1.4.0-beta.2

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 (80) hide show
  1. package/lib/_utils/util.d.ts +2 -2
  2. package/lib/antd/Calendar.d.ts +1 -1
  3. package/lib/antd/DatePicker.d.ts +1 -1
  4. package/lib/antd/TimePicker.d.ts +2 -2
  5. package/lib/antd/index.less +9 -7
  6. package/lib/drawer/style/index.less +2 -1
  7. package/lib/form/src/form-item-view.d.ts +1 -0
  8. package/lib/form/src/form-search-helper.d.ts +1 -0
  9. package/lib/form/src/form.d.ts +7 -1
  10. package/lib/form/src/types.d.ts +17 -2
  11. package/lib/form/src/utils.d.ts +5 -2
  12. package/lib/form/style/index.less +59 -12
  13. package/lib/hoc/outsideClick.d.ts +1 -0
  14. package/lib/index.d.ts +2 -0
  15. package/lib/index.esm.js +2 -2
  16. package/lib/index.full.js +1 -1
  17. package/lib/index.js +2 -2
  18. package/lib/locale/lang/en.d.ts +9 -0
  19. package/lib/locale/lang/en.js +12 -3
  20. package/lib/locale/lang/zh-cn.d.ts +9 -0
  21. package/lib/locale/lang/zh-cn.js +12 -3
  22. package/lib/modal/src/modal.d.ts +4 -0
  23. package/lib/modal/style/index.less +2 -1
  24. package/lib/search-tree/index.d.ts +3 -0
  25. package/lib/search-tree/src/search-tree.d.ts +51 -0
  26. package/lib/search-tree/style/index.less +21 -0
  27. package/lib/spin/src/spin.d.ts +4 -1
  28. package/lib/spin/style/index.less +18 -12
  29. package/lib/style/compact.css +26330 -0
  30. package/lib/style/compact.less +9 -0
  31. package/lib/style/compact.min.css +1 -0
  32. package/lib/style/index.css +964 -780
  33. package/lib/style/index.less +4 -5
  34. package/lib/style/index.min.css +1 -1
  35. package/lib/style/reset.less +0 -1
  36. package/lib/style/themes/compact.less +296 -0
  37. package/lib/style/themes/default.less +116 -113
  38. package/lib/table/src/body/useValueFormat.d.ts +2 -2
  39. package/lib/table/src/clipboard/index.d.ts +3 -2
  40. package/lib/table/src/edit/InputNumber.d.ts +7 -2
  41. package/lib/table/src/export/index.d.ts +3 -2
  42. package/lib/table/src/fast-search/index.d.ts +5 -1
  43. package/lib/table/src/full-screen/index.d.ts +3 -1
  44. package/lib/table/src/group-summary/index.d.ts +5 -1
  45. package/lib/table/src/hooks/useImperativeMethod.d.ts +4 -1
  46. package/lib/table/src/hooks/useTableCore.d.ts +8 -17
  47. package/lib/table/src/hooks/useTableEffect.d.ts +2 -0
  48. package/lib/table/src/hooks/useTableRef.d.ts +7 -7
  49. package/lib/table/src/import/index.d.ts +3 -2
  50. package/lib/table/src/print/index.d.ts +3 -2
  51. package/lib/table/src/reload/index.d.ts +5 -1
  52. package/lib/table/src/select-collection/index.d.ts +3 -2
  53. package/lib/table/src/store/index.d.ts +7 -3
  54. package/lib/table/src/super-search/index.d.ts +5 -1
  55. package/lib/table/src/table/props.d.ts +10 -2
  56. package/lib/table/src/table/types.d.ts +19 -2
  57. package/lib/table/src/toolbox/index.d.ts +18 -0
  58. package/lib/table/style/body.less +13 -6
  59. package/lib/table/style/clipboard.less +3 -0
  60. package/lib/table/style/column-filter.less +8 -2
  61. package/lib/table/style/export.less +1 -5
  62. package/lib/table/style/fast-search.less +2 -2
  63. package/lib/table/style/group-summary.less +2 -2
  64. package/lib/table/style/header.less +17 -1
  65. package/lib/table/style/import.less +3 -0
  66. package/lib/table/style/index.less +1 -0
  67. package/lib/table/style/size.less +3 -0
  68. package/lib/table/style/super-search.less +2 -2
  69. package/lib/table/style/table.less +374 -372
  70. package/lib/table/style/tollbox.less +39 -0
  71. package/lib/tinymce/src/Events.d.ts +8 -1
  72. package/lib/tinymce/src/TinyMCE.d.ts +8 -1
  73. package/lib/tinymce/src/Utils.d.ts +1 -0
  74. package/lib/tinymce/src/components/Editor.d.ts +12 -5
  75. package/lib/tinymce/src/index.d.ts +11 -5
  76. package/lib/tree-helper/style/index.less +4 -4
  77. package/lib/tree-table-helper/style/index.less +8 -1
  78. package/lib/upload-file/src/upload-file.d.ts +5 -1
  79. package/lib/upload-img/src/upload-img.d.ts +3 -0
  80. package/package.json +16 -16
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { isNumber, isString, isUndefined, isFunction, isArray, isPlainObject as isObject, debounce, throttle, get } from 'lodash-es';
2
+ import { isNumber, isString, isUndefined, isFunction, isArray, isPlainObject as isObject, debounce, throttle, get, set } from 'lodash-es';
3
3
  import type { AnyFunction, AnyObject } from './types';
4
- export { isNumber, isString, isArray, isUndefined, isFunction, isObject, debounce, throttle, get };
4
+ export { isNumber, isString, isArray, isUndefined, isFunction, isObject, debounce, throttle, get, set };
5
5
  export declare const isIE: () => boolean;
6
6
  export declare const isEdge: () => boolean;
7
7
  export declare const isChrome: () => boolean;
@@ -1,4 +1,4 @@
1
- import { Dayjs } from 'dayjs';
1
+ import type { Dayjs } from 'dayjs';
2
2
  import 'antd/es/calendar/style';
3
3
  declare const Calendar: (props: import("antd/es/calendar/generateCalendar").CalendarProps<Dayjs>) => JSX.Element;
4
4
  export default Calendar;
@@ -1,4 +1,4 @@
1
- import { Dayjs } from 'dayjs';
1
+ import type { Dayjs } from 'dayjs';
2
2
  import 'antd/es/date-picker/style/index';
3
3
  declare const DatePicker: import("antd/es/date-picker/generatePicker/interface").PickerComponentClass<import("antd/es/date-picker/generatePicker").PickerProps<Dayjs> & {
4
4
  status?: "" | "error" | "warning" | undefined;
@@ -1,6 +1,6 @@
1
- import { Dayjs } from 'dayjs';
1
+ import type { Dayjs } from 'dayjs';
2
2
  import * as React from 'react';
3
- import { PickerTimeProps, RangePickerTimeProps } from 'antd/es/date-picker/generatePicker';
3
+ import type { PickerTimeProps, RangePickerTimeProps } from 'antd/es/date-picker/generatePicker';
4
4
  export interface TimePickerProps extends Omit<PickerTimeProps<Dayjs>, 'picker'> {
5
5
  }
6
6
  export interface TimeRangePickerProps extends Omit<RangePickerTimeProps<Dayjs>, 'picker'> {
@@ -1,7 +1,9 @@
1
- /*
2
- * @Author: 焦质晔
3
- * @Date: 2021-07-23 19:41:37
4
- * @Last Modified by: 焦质晔
5
- * @Last Modified time: 2021-07-30 10:47:18
6
- */
7
- @import 'antd/dist/antd.less';
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2021-07-23 19:41:37
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2022-11-26 23:32:46
6
+ */
7
+ @import 'antd/dist/antd.variable.less';
8
+
9
+ @root-entry-name: variable;
@@ -2,7 +2,7 @@
2
2
  * @Author: 焦质晔
3
3
  * @Date: 2021-07-23 19:05:57
4
4
  * @Last Modified by: 焦质晔
5
- * @Last Modified time: 2022-04-19 12:09:14
5
+ * @Last Modified time: 2022-11-26 20:25:11
6
6
  */
7
7
  @import '../../style/common';
8
8
 
@@ -27,6 +27,7 @@
27
27
  padding: @--padding-md 5px @--padding-md @--padding-md;
28
28
  color: @--text-color-secondary;
29
29
  line-height: 1;
30
+ font-size: @--font-size-lg;
30
31
  transition: all 0.3s ease;
31
32
  cursor: pointer;
32
33
  &:hover {
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  declare type IViewProps<T = string> = {
3
3
  value?: T;
4
+ bordered?: boolean;
4
5
  };
5
6
  declare const FormItemView: React.FC<IViewProps>;
6
7
  export default FormItemView;
@@ -9,6 +9,7 @@ declare type IState = {
9
9
  declare class FormSearchHelper extends Component<IProps, IState> {
10
10
  static contextType: React.Context<import("./context").IFormContext | undefined>;
11
11
  private promiseRef;
12
+ searchRef: any;
12
13
  state: IState;
13
14
  constructor(props: IProps, { $$form }: {
14
15
  $$form: any;
@@ -36,6 +36,8 @@ declare class QmForm extends Component<IProps, IState> {
36
36
  uniqueKey: import("prop-types").Requireable<string>;
37
37
  authCode: import("prop-types").Requireable<string>;
38
38
  defaultRows: import("prop-types").Requireable<number>;
39
+ searchButtonCols: import("prop-types").Requireable<number>;
40
+ scrollToFirstError: import("prop-types").Requireable<boolean>;
39
41
  authConfig: import("prop-types").Requireable<import("prop-types").InferProps<{
40
42
  fetch: import("prop-types").Requireable<import("prop-types").InferProps<{
41
43
  api: import("prop-types").Validator<(...args: any[]) => any>;
@@ -177,14 +179,18 @@ declare class QmForm extends Component<IProps, IState> {
177
179
  }) => void;
178
180
  set_fields_other(values: IFormData): void;
179
181
  get_fields_other(fields?: string[]): IFormData;
182
+ scrollToField: (fieldName?: string) => void;
183
+ formValidate(): Promise<IFormData>;
180
184
  SET_FIELDS_VALUE(values: IFormData): void;
181
185
  GET_FIELDS_VALUE(fields?: string[]): IFormData;
182
186
  GET_FORM_DATA(): Promise<[any, any]>;
187
+ VALIDATE_FIELDS(fields?: string[]): Promise<any[]>;
183
188
  SET_FIELDS_EXTRA(values: IExtraData): void;
184
189
  GET_FIELDS_EXTRA(fields?: string[]): IExtraData;
185
190
  GET_FIELDS_TOUCHED(fields?: string[]): boolean;
186
- SUBMIT_FORM(): void;
191
+ SUBMIT_FORM(): Promise<void>;
187
192
  RESET_FORM(): void;
193
+ SET_FORM_ITEM(fieldName: string, option: Record<string, any>, forceUpdate?: boolean): void;
188
194
  render(): JSX.Element;
189
195
  }
190
196
  export default QmForm;
@@ -9,6 +9,7 @@ export declare const DEFAULT_LABEL_WIDTH = 80;
9
9
  export declare const DEFAULT_COL_WIDTH = 300;
10
10
  export declare const DEFAULT_TRUE_VALUE = "1";
11
11
  export declare const DEFAULT_FALSE_VALUE = "0";
12
+ export declare const DEFAULT_LIST_HEIGHT = 400;
12
13
  export declare type IRecord = Record<string, any>;
13
14
  export declare type IFormLayout = 'horizontal' | 'vertical';
14
15
  export declare type ILabelAlign = 'left' | 'right';
@@ -59,7 +60,7 @@ export declare type IFieldData = {
59
60
  validating?: boolean;
60
61
  value?: ValueOf<IFormData>;
61
62
  };
62
- export declare type IExtraData = Record<string, string>;
63
+ export declare type IExtraData = Record<string, string | number>;
63
64
  export declare type IViewData = Record<string, string>;
64
65
  export declare type IExpandData = Record<string, boolean>;
65
66
  export declare type IFetchFn = (params?: Record<string, unknown>) => Promise<AjaxResponse>;
@@ -85,6 +86,7 @@ export declare type IFormItem = {
85
86
  labelWidth?: number | string;
86
87
  hidden?: boolean;
87
88
  noAuth?: boolean;
89
+ noReset?: boolean;
88
90
  invisible?: boolean;
89
91
  rules?: Record<string, any>[];
90
92
  validateTrigger?: IValidateTrigger | IValidateTrigger[];
@@ -111,6 +113,7 @@ export declare type IFormItem = {
111
113
  step?: number;
112
114
  min?: number;
113
115
  max?: number;
116
+ textAlign?: ILabelAlign | 'center';
114
117
  controls?: boolean;
115
118
  precision?: number;
116
119
  formatter?: (value: number | string) => string;
@@ -135,6 +138,7 @@ export declare type IFormItem = {
135
138
  tooltips?: string[];
136
139
  count?: number;
137
140
  filterable?: boolean;
141
+ listHeight?: number;
138
142
  collapseTags?: boolean;
139
143
  maxTagTextLength?: number;
140
144
  openPyt?: boolean;
@@ -155,10 +159,12 @@ export declare type IFormItem = {
155
159
  maxCount?: number;
156
160
  fileTypes?: string[];
157
161
  fileSize?: number;
162
+ openCropper?: boolean;
158
163
  onRemove?: (file: any) => void;
159
164
  fixedSize?: [number, number] | undefined;
160
165
  quality?: number;
161
- tinymceHeight?: number | string;
166
+ tinymce?: Record<string, any>;
167
+ thresholdSize?: number;
162
168
  };
163
169
  searchHelper?: {
164
170
  name?: string;
@@ -206,12 +212,17 @@ export declare type IFormItem = {
206
212
  withCredentials?: boolean;
207
213
  params?: IFetchParams;
208
214
  dataKey?: string;
215
+ button?: {
216
+ text?: string;
217
+ icon?: React.ReactNode;
218
+ };
209
219
  fieldAliasMap?: (() => Record<string, string>) | Record<string, string>;
210
220
  };
211
221
  extra?: {
212
222
  style?: CSSProperties;
213
223
  labelWidth?: number | string;
214
224
  isTooltip?: boolean;
225
+ render?: (options: IFormItem, instance: any) => JSXElement;
215
226
  };
216
227
  buttonAfter?: JSXElement | ((options: IFormItem) => JSXElement);
217
228
  collapse?: {
@@ -243,6 +254,8 @@ export declare type IFormProps = {
243
254
  uniqueKey?: string;
244
255
  authCode?: string;
245
256
  defaultRows?: number;
257
+ searchButtonCols?: number;
258
+ scrollToFirstError?: boolean;
246
259
  authConfig?: IAuthConfig;
247
260
  isAutoFocus?: boolean;
248
261
  isCollapse?: boolean;
@@ -275,6 +288,8 @@ export declare const propTypes: {
275
288
  uniqueKey: PropTypes.Requireable<string>;
276
289
  authCode: PropTypes.Requireable<string>;
277
290
  defaultRows: PropTypes.Requireable<number>;
291
+ searchButtonCols: PropTypes.Requireable<number>;
292
+ scrollToFirstError: PropTypes.Requireable<boolean>;
278
293
  authConfig: PropTypes.Requireable<PropTypes.InferProps<{
279
294
  fetch: PropTypes.Requireable<PropTypes.InferProps<{
280
295
  api: PropTypes.Validator<(...args: any[]) => any>;
@@ -1,9 +1,12 @@
1
1
  import dayjs, { Dayjs } from 'dayjs';
2
2
  import type { IDict } from '../../_utils/types';
3
- import type { IFormItem, IFetchFnMaker } from './types';
3
+ import type { IFormItem, IFetchFnMaker, IRecord } from './types';
4
4
  export declare const getDate: (dateString: string | undefined, format: string) => dayjs.Dayjs | null;
5
5
  export declare const formatDate: (date: Dayjs | null, format: string) => string;
6
6
  export declare const isEmptyValue: (value: unknown) => boolean;
7
+ export declare const getSplitValue: (data: IRecord, path: string) => any;
8
+ export declare const setEchoRecord: (row: IRecord, alias: any, echoAlias: any) => void;
9
+ export declare const setEchoExtras: (row: IRecord, extras: any, echoExtras: any) => void;
7
10
  export declare const deepMapList: (list: any[], valueKey: string, textKey: string) => IDict[];
8
11
  export declare const deepFind: (arr: any[], mark: string) => any;
9
12
  export declare const deepFindValues: <T>(arr: T[], str: string, depth?: number) => T[];
@@ -20,7 +23,7 @@ export declare const createShConfig: (data: any, fieldName: string, createFetch:
20
23
  table?: {
21
24
  fetch?: import("../../table/src/table/types").IFetch | undefined;
22
25
  columns?: import("../..").QmTableColumn[] | undefined;
23
- rowKey?: string | number | ((row: import("./types").IRecord, index: number) => string | number) | undefined;
26
+ rowKey?: string | number | ((row: IRecord, index: number) => string | number) | undefined;
24
27
  webPagination?: boolean | undefined;
25
28
  } | undefined;
26
29
  tree?: {
@@ -2,7 +2,7 @@
2
2
  * @Author: 焦质晔
3
3
  * @Date: 2021-07-23 19:05:57
4
4
  * @Last Modified by: 焦质晔
5
- * @Last Modified time: 2022-02-28 13:36:58
5
+ * @Last Modified time: 2022-11-26 21:27:53
6
6
  */
7
7
  @import '../../style/common';
8
8
 
@@ -13,10 +13,20 @@
13
13
  .ant-form-item {
14
14
  margin-bottom: @--margin-md + 2px;
15
15
  .ant-form-item-label {
16
+ & > label[title=''] {
17
+ width: 100%;
18
+ .ant-select {
19
+ text-align: left;
20
+ }
21
+ }
16
22
  &-wrap {
17
23
  line-height: 1.075;
18
24
  }
19
25
  }
26
+ // placeholder
27
+ input::placeholder {
28
+ text-align: left;
29
+ }
20
30
  // ant-form-inline
21
31
  &-with-help {
22
32
  margin-bottom: @--margin-md + 2px;
@@ -32,8 +42,11 @@
32
42
  line-height: 1;
33
43
  }
34
44
  // search
35
- .ant-input-search > .ant-input-group > .ant-input-group-addon {
36
- line-height: 1;
45
+ .ant-input-search {
46
+ width: calc(100% + 1px);
47
+ & > .ant-input-group > .ant-input-group-addon {
48
+ line-height: 1;
49
+ }
37
50
  }
38
51
  // textarea
39
52
  .ant-input-textarea-show-count {
@@ -63,6 +76,17 @@
63
76
  .ant-select {
64
77
  width: 100%;
65
78
  }
79
+ // input number
80
+ .ant-input-number.right {
81
+ input {
82
+ text-align: right;
83
+ }
84
+ &.controls {
85
+ input {
86
+ padding-right: 30px;
87
+ }
88
+ }
89
+ }
66
90
  // range input
67
91
  .site-input-left {
68
92
  border-right-width: 0;
@@ -98,7 +122,10 @@
98
122
  // select-multiple
99
123
  .ant-select-multiple {
100
124
  .ant-select-selection-overflow-item-rest {
101
- pointer-events: none;
125
+ cursor: pointer;
126
+ * {
127
+ pointer-events: none;
128
+ }
102
129
  }
103
130
  }
104
131
  }
@@ -110,9 +137,21 @@
110
137
  &--lg {
111
138
  }
112
139
  &--sm {
113
- .ant-form-item-label > label,
114
- .ant-form-item-label .ant-form-item-tooltip {
115
- font-size: @--font-size-sm;
140
+ .ant-form-item {
141
+ margin-bottom: @--margin-md;
142
+ // label
143
+ .ant-form-item-label > label,
144
+ .ant-form-item-label .ant-form-item-tooltip {
145
+ font-size: @--font-size-sm;
146
+ }
147
+ // valigator
148
+ .ant-form-item-control {
149
+ // 待优化
150
+ & > div:nth-last-of-type(1)[style*='nowrap'] {
151
+ transform: scale(0.8334);
152
+ transform-origin: 0 50%;
153
+ }
154
+ }
116
155
  }
117
156
  }
118
157
  }
@@ -154,6 +193,7 @@
154
193
  }
155
194
  }
156
195
  &--sm {
196
+ padding: 5px 10px !important;
157
197
  .table {
158
198
  th,
159
199
  td {
@@ -207,19 +247,15 @@
207
247
  margin: 0;
208
248
  dt {
209
249
  float: left;
210
- font-size: 13px;
211
250
  font-weight: 700;
212
- line-height: 20px;
213
251
  }
214
252
  dd {
215
253
  white-space: normal;
216
254
  margin-inline-start: 50px;
217
255
  margin-bottom: 8px;
218
- line-height: 20px;
219
256
  li {
220
257
  display: inline-block;
221
258
  margin-right: 8px;
222
- font-size: 13px;
223
259
  cursor: pointer;
224
260
  &:hover {
225
261
  color: @--primary-color;
@@ -233,6 +269,12 @@
233
269
  }
234
270
  }
235
271
  }
272
+ // 40 32 24
273
+ &--lg {
274
+ }
275
+ &--sm {
276
+ padding: 10px 10px 5px !important;
277
+ }
236
278
  }
237
279
 
238
280
  // region-select
@@ -244,7 +286,6 @@
244
286
  display: flex;
245
287
  flex-wrap: wrap;
246
288
  width: 440px;
247
- line-height: @--line-height-base;
248
289
  &__item {
249
290
  margin: 0 5px;
250
291
  width: 100px;
@@ -259,6 +300,12 @@
259
300
  }
260
301
  }
261
302
  }
303
+ // 40 32 24
304
+ &--lg {
305
+ }
306
+ &--sm {
307
+ padding: 15px 10px 5px !important;
308
+ }
262
309
  }
263
310
 
264
311
  // fields-filter
@@ -0,0 +1 @@
1
+ export declare const OutsideClick: (WrappedComponent: any) => any;
package/lib/index.d.ts CHANGED
@@ -36,6 +36,8 @@ export type { QmUploadFileProps } from './upload-file';
36
36
  export { default as QmUploadFile } from './upload-file';
37
37
  export type { QmUploadImgProps } from './upload-img';
38
38
  export { default as QmUploadImg } from './upload-img';
39
+ export type { QmSearchTreeProps } from './search-tree';
40
+ export { default as QmSearchTree } from './search-tree';
39
41
  export type { QmTableRef, QmTableProps, QmTableColumn } from './table';
40
42
  export { default as QmTable } from './table';
41
43
  export type { QmCopyToClipboardProps } from './copy-to-clipboard';