cnhis-design-vue 3.1.15-beta.7 → 3.1.15

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 (66) hide show
  1. package/es/packages/big-table/src/hooks/useAnnotation.js +1 -2
  2. package/es/packages/big-table/src/hooks/useColumnConfigAdaptor.js +7 -2
  3. package/es/packages/big-table/src/hooks/useEdit.js +16 -8
  4. package/es/packages/fabric-chart/src/hooks/useDraw.js +1 -0
  5. package/es/packages/fabric-chart/src/hooks/useLeft.js +1 -2
  6. package/es/packages/form-config/index.d.ts +13854 -0
  7. package/es/packages/form-config/index.js +10 -0
  8. package/es/packages/form-config/src/FormConfig.js +113 -0
  9. package/es/packages/form-config/src/FormConfig.vue.d.ts +13856 -0
  10. package/es/packages/form-config/src/components/FormConfigCreator.js +97 -0
  11. package/es/packages/form-config/src/components/FormConfigCreator.vue.d.ts +5094 -0
  12. package/es/packages/form-config/src/components/FormConfigEdit.js +81 -0
  13. package/es/packages/form-config/src/components/FormConfigEdit.vue.d.ts +5336 -0
  14. package/es/packages/form-config/src/constants/index.d.ts +28 -0
  15. package/es/packages/form-config/src/constants/index.js +28 -0
  16. package/es/packages/form-config/src/hooks/index.d.ts +2 -0
  17. package/es/packages/form-config/src/hooks/index.js +2 -0
  18. package/es/packages/form-config/src/hooks/useConfigurationField.d.ts +6 -0
  19. package/es/packages/form-config/src/hooks/useConfigurationField.js +103 -0
  20. package/es/packages/form-config/src/hooks/usePresetRenderer.d.ts +5 -0
  21. package/es/packages/form-config/src/hooks/usePresetRenderer.js +117 -0
  22. package/es/packages/form-config/src/hooks/useSortable.d.ts +11 -0
  23. package/es/packages/form-config/src/hooks/useSortable.js +31 -0
  24. package/es/packages/form-config/src/types/index.d.ts +18 -0
  25. package/es/packages/form-config/src/types/index.js +1 -0
  26. package/es/packages/form-config/style/index.css +108 -0
  27. package/es/packages/form-render/index.d.ts +3 -3
  28. package/es/packages/form-render/src/FormRender.vue.d.ts +3 -3
  29. package/es/packages/form-render/src/components/renderer/combination/index.js +3 -3
  30. package/es/packages/form-render/src/components/renderer/date.d.ts +2 -2
  31. package/es/packages/form-render/src/components/renderer/formItem.js +3 -3
  32. package/es/packages/form-render/src/components/renderer/select.js +16 -9
  33. package/es/packages/form-render/src/hooks/useAsyncQueue.d.ts +2 -2
  34. package/es/packages/form-render/src/hooks/useAsyncQueue.js +4 -8
  35. package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +4 -3
  36. package/es/packages/form-render/src/hooks/useFormContext.js +10 -4
  37. package/es/packages/form-render/src/hooks/useFormRenderLifeCycle.d.ts +2 -2
  38. package/es/packages/form-render/src/types/fieldItem.d.ts +8 -0
  39. package/es/packages/form-render/src/types/index.d.ts +7 -3
  40. package/es/packages/form-render/src/utils/index.d.ts +3 -2
  41. package/es/packages/form-render/src/utils/index.js +30 -7
  42. package/es/packages/form-table/src/hooks/useNuiThemeOverrides.js +1 -1
  43. package/es/packages/index.css +108 -0
  44. package/es/packages/index.d.ts +4 -1
  45. package/es/packages/index.js +5 -2
  46. package/es/packages/scale-view/src/hooks/scaleview-init.js +35 -35
  47. package/es/packages/shortcut-provider/index.d.ts +17 -2
  48. package/es/packages/shortcut-provider/index.js +1 -1
  49. package/es/packages/shortcut-provider/src/ShortcutProvider.js +5 -1
  50. package/es/packages/shortcut-provider/src/ShortcutProvider.vue.d.ts +17 -2
  51. package/es/packages/shortcut-provider/src/hooks/index.js +1 -1
  52. package/es/packages/shortcut-provider/src/hooks/useShortcuts.d.ts +10 -10
  53. package/es/packages/shortcut-provider/src/hooks/useShortcuts.js +45 -38
  54. package/es/packages/shortcut-provider/src/types/index.d.ts +2 -19
  55. package/es/packages/shortcut-setter/index.d.ts +1701 -4286
  56. package/es/packages/shortcut-setter/src/ShortcutSetter.js +63 -10
  57. package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +1723 -4306
  58. package/es/packages/shortcut-setter/src/ShortcutSetterItem.js +26 -95
  59. package/es/packages/shortcut-setter/src/ShortcutSetterItem.vue.d.ts +30 -3363
  60. package/es/packages/shortcut-setter/src/types/index.d.ts +6 -0
  61. package/es/packages/shortcut-setter/src/types/index.js +1 -0
  62. package/es/src/utils/state.d.ts +29 -0
  63. package/es/src/utils/state.js +44 -0
  64. package/package.json +2 -1
  65. package/es/packages/shortcut-setter/constant/index.d.ts +0 -4
  66. package/es/packages/shortcut-setter/constant/index.js +0 -7
@@ -109,7 +109,7 @@ function useAsyncQueue() {
109
109
  name: "FormRenderAsyncQueue",
110
110
  parallelism,
111
111
  async processor({ key, method = "post", params, url }, cb, removeCache) {
112
- var _a, _b;
112
+ var _a;
113
113
  const http = getHttpInstance();
114
114
  if (!http) {
115
115
  useCommonLog().invalidHttpInstanceLog();
@@ -121,15 +121,11 @@ function useAsyncQueue() {
121
121
  if (option && isFunction(option.beforeRequest)) {
122
122
  params = (_a = option.beforeRequest(key, params)) != null ? _a : {};
123
123
  }
124
- const res = await http[method](url, params);
125
- const { data, success } = res;
126
- if (!success)
127
- throw res;
128
- let payload = Array.isArray(data) ? data : [];
124
+ let res = await http[method](url, params);
129
125
  if (option && isFunction(option.afterRequest)) {
130
- payload = (_b = option.afterRequest(key, payload)) != null ? _b : [];
126
+ res = option.afterRequest(key, res);
131
127
  }
132
- cb(void 0, payload);
128
+ cb(void 0, Array.isArray(res) ? res : []);
133
129
  } catch (e) {
134
130
  cb(new Error(`Request error => ${e}`));
135
131
  removeCache();
@@ -1,7 +1,7 @@
1
1
  import { isObject } from '@vueuse/core';
2
2
  import { pick } from 'lodash-es';
3
3
  import { useFormValidator, useTypeNormalize } from '../../../../packages/form-render';
4
- import { fieldKeyEscape, arrayed, createLinebarId, elementIdEscape, transformDateFormat } from '../utils/index.js';
4
+ import { fieldKeyEscape, arrayed, createLinebarId, elementIdEscape, parseNumberFromMaybeString, transformDateFormat } from '../utils/index.js';
5
5
 
6
6
  function useFieldListAdaptor(collector, uuid) {
7
7
  const { createValidatorSchema } = useFormValidator();
@@ -51,9 +51,10 @@ function useFieldListAdaptor(collector, uuid) {
51
51
  const createSelectSchema = (item) => {
52
52
  const schema = createStandardSchema(item);
53
53
  Object.assign(schema["x-component-props"], {
54
- ...pick(item, ["lazyRequest", "urlConfig", "option"]),
54
+ ...pick(item, ["lazyRequest", "urlConfig"]),
55
+ options: item.option,
55
56
  multiple: item.multi_select === "0",
56
- maxTagCount: +item.multi_select_value
57
+ maxTagCount: parseNumberFromMaybeString(item.multi_select_value)
57
58
  });
58
59
  return schema;
59
60
  };
@@ -13,12 +13,18 @@ function useFormContext(props) {
13
13
  const { callLifeCycle } = useFormRenderLifeCycle(props);
14
14
  const asyncQueue = injectOrProvide(InjectAsyncQueue, () => useAsyncQueue().create(props.parallelism, {
15
15
  beforeRequest(...args) {
16
- var _a;
17
- return (_a = callLifeCycle("beforeRequest", cloneDeep(args))) != null ? _a : args[1];
16
+ return callLifeCycle("beforeRequest", cloneDeep(args)) || args[1];
18
17
  },
19
18
  afterRequest(...args) {
20
- var _a;
21
- return (_a = callLifeCycle("afterRequest", cloneDeep(args))) != null ? _a : args[1];
19
+ return callLifeCycle("afterRequest", cloneDeep(args)) || presetHandler(args[1]);
20
+ function presetHandler(res) {
21
+ if (!isObject(res))
22
+ throw res;
23
+ const { data, success } = res;
24
+ if (!success)
25
+ throw res;
26
+ return data;
27
+ }
22
28
  }
23
29
  }));
24
30
  const SchemaField = injectOrProvide(InjectionSchemaField, () => createSchemaField({
@@ -4,10 +4,10 @@ export declare function useFormRenderLifeCycle(props: FormRenderProps): {
4
4
  callLifeCycle: <T extends "onSetup" | "beforeRequest" | "afterRequest">(lifeCycleName: T, payload?: Parameters<Required<Partial<{
5
5
  onSetup(): void;
6
6
  beforeRequest(fieldKey: string, params?: import("../../../../../es/src/types").AnyObject | undefined): void | WithUndefined<import("../../../../../es/src/types").AnyObject>;
7
- afterRequest(fieldKey: string, payload?: import("../../../../../es/src/types").AnyObject[] | undefined): void | WithUndefined<import("../../../../../es/src/types").AnyObject[]>;
7
+ afterRequest(fieldKey: string, payload?: any): import("../../../../../es/src/types").AnyObject[];
8
8
  }>>[T]> | undefined) => WithUndefined<ReturnType<Required<Partial<{
9
9
  onSetup(): void;
10
10
  beforeRequest(fieldKey: string, params?: import("../../../../../es/src/types").AnyObject | undefined): void | WithUndefined<import("../../../../../es/src/types").AnyObject>;
11
- afterRequest(fieldKey: string, payload?: import("../../../../../es/src/types").AnyObject[] | undefined): void | WithUndefined<import("../../../../../es/src/types").AnyObject[]>;
11
+ afterRequest(fieldKey: string, payload?: any): import("../../../../../es/src/types").AnyObject[];
12
12
  }>>[T]>>;
13
13
  };
@@ -111,6 +111,14 @@ export declare type FieldItem = {
111
111
  placeholder: string;
112
112
  validate: ValidateItem;
113
113
  option: OptionItem[];
114
+ /**
115
+ * 是否开启多选('0'表示开启, 值是反的)
116
+ */
117
+ multi_select: FormCommonState;
118
+ /**
119
+ * 多选时最大选择数量
120
+ */
121
+ multi_select_value: number | string;
114
122
  /**
115
123
  * 用于cascader控件提供层级参数
116
124
  */
@@ -1,4 +1,4 @@
1
- import { AnyObject, ArrayAble, WithUndefined } from '../../../../../es/src/types';
1
+ import { AnyObject, WithUndefined } from '../../../../../es/src/types';
2
2
  import { DataField, Field } from '@formily/core';
3
3
  import { ISchema } from '@formily/json-schema/esm/types';
4
4
  import { Component, FunctionalComponent } from 'vue';
@@ -51,11 +51,15 @@ export declare type FormBusinessFilter = (payload: {
51
51
  type: FIELD_BUSINESS_TYPE;
52
52
  context?: any;
53
53
  }) => unknown;
54
- export declare type DependKeyType = ArrayAble<string> | Record<string, string> | ArrayAble<Record<'paramName' | 'paramValue', string>>;
54
+ export declare type DependKeyType = string | Record<string, string> | Array<{
55
+ paramName: string;
56
+ paramValue?: string;
57
+ required?: boolean;
58
+ } | string>;
55
59
  export declare type FormRenderLifeCycle = Partial<{
56
60
  onSetup(): void;
57
61
  beforeRequest(fieldKey: string, params?: AnyObject): WithUndefined<AnyObject> | void;
58
- afterRequest(fieldKey: string, payload?: AnyObject[]): WithUndefined<AnyObject[]> | void;
62
+ afterRequest(fieldKey: string, payload?: any): AnyObject[];
59
63
  }>;
60
64
  export declare type FormRenderProps = Partial<{
61
65
  fieldList: FieldItem[];
@@ -8,15 +8,16 @@ export declare function arrayed<T>(maybeArray: T): T extends Array<any> ? T : [T
8
8
  export declare function assignUpdateValue(props: AnyObject, field: GeneralField): {
9
9
  [x: string]: any;
10
10
  };
11
- export declare function transformDateFormat(format?: string): "date" | "datetime";
11
+ export declare function transformDateFormat(format?: string): "date" | "datetime" | "month";
12
12
  export declare function isIdCard(idCardNo: string): boolean;
13
13
  export declare function isMobile(mobile: string): boolean;
14
14
  export declare function parseBirthday(birthday: string): AgeContext;
15
15
  export declare function mergeDeepProperties(target: AnyObject, fieldList: FieldItem[], traverseProperties?: string[], property?: string, targetProperty?: string): AnyObject;
16
16
  export declare function parseIdCard(idCardNo: string): IdCardParseInfo;
17
17
  export declare function injectOrProvide<T>(key: InjectionKey<T>, creator: () => T): T;
18
+ export declare function parseNumberFromMaybeString(value: unknown): unknown;
18
19
  export declare function traverseDependKey(dependKeys: DependKeyType, handler: {
19
- (dependKey: string, valueKey: string): void;
20
+ (dependKey: string, valueKey: string, required?: boolean): void;
20
21
  }): void;
21
22
  export declare function traverseSchema(schema: ISchema, handler: (_s: ISchema) => void): void;
22
23
  export declare function uuidGenerator(): string;
@@ -1,6 +1,6 @@
1
1
  import { inject, provide, computed, createVNode, Fragment } from 'vue';
2
2
  import { isObject } from '@vue/shared';
3
- import { isArray, isString, isFunction } from 'lodash-es';
3
+ import { isNumber, isString, isArray, isFunction } from 'lodash-es';
4
4
  import { FIELD_SEX_VALUE } from '../constants/index.js';
5
5
  import { isField } from '@formily/core';
6
6
  import { differenceInDays, differenceInMonths, differenceInYears } from 'date-fns';
@@ -26,7 +26,12 @@ function assignUpdateValue(props, field) {
26
26
  }
27
27
  return _props;
28
28
  }
29
+ function isMonthType(format) {
30
+ return format && format.replace(/yyyy-MM/gi, "YYYY-MM") === "YYYY-MM";
31
+ }
29
32
  function transformDateFormat(format = "") {
33
+ if (isMonthType(format))
34
+ return "month";
30
35
  return format.includes("HH") ? "datetime" : "date";
31
36
  }
32
37
  function isIdCard(idCardNo) {
@@ -96,26 +101,44 @@ function injectOrProvide(key, creator) {
96
101
  }
97
102
  return injected;
98
103
  }
104
+ function parseNumberFromMaybeString(value) {
105
+ if (isNumber(value))
106
+ return value;
107
+ if (isString(value))
108
+ return +value;
109
+ return value;
110
+ }
99
111
  function traverseDependKey(dependKeys, handler) {
100
112
  if (!dependKeys)
101
113
  return;
114
+ createDependKeyMap().forEach((valueKey, dependKey) => {
115
+ if (isString(valueKey))
116
+ return handler(dependKey, valueKey);
117
+ handler(dependKey, valueKey.key, valueKey.required);
118
+ });
102
119
  Object.entries(createDependKeyMap()).forEach(([dependKey, valueKey]) => {
103
120
  handler(dependKey, valueKey);
104
121
  });
105
122
  function createDependKeyMap() {
106
- let result = {};
123
+ const result = /* @__PURE__ */ new Map();
107
124
  if (isArray(dependKeys)) {
108
125
  dependKeys.forEach((k) => {
126
+ var _a;
109
127
  if (isObject(k)) {
110
- result[k.paramName] = k.paramValue;
128
+ result.set(k.paramName, {
129
+ key: (_a = k.paramName) != null ? _a : k.paramValue,
130
+ required: k.required
131
+ });
111
132
  } else {
112
- result[k] = k;
133
+ result.set(k, k);
113
134
  }
114
135
  });
115
136
  } else if (isObject(dependKeys)) {
116
- result = dependKeys;
137
+ Object.entries(dependKeys).forEach(([k, v]) => {
138
+ result.set(k, v);
139
+ });
117
140
  } else if (isString(dependKeys)) {
118
- result[dependKeys] = dependKeys;
141
+ result.set(dependKeys, dependKeys);
119
142
  }
120
143
  return result;
121
144
  }
@@ -197,4 +220,4 @@ function createInputSlot(props) {
197
220
  });
198
221
  }
199
222
 
200
- export { arrayed, assignUpdateValue, createInputSlot, createLinebarId, createSlot, elementIdEscape, fieldKeyEscape, formRenderLog, getParentLinebar, injectOrProvide, isIdCard, isMobile, mergeDeepProperties, parseBirthday, parseIdCard, queryDecorator, queryInput, transformDateFormat, traverseDependKey, traverseSchema, uuidGenerator };
223
+ export { arrayed, assignUpdateValue, createInputSlot, createLinebarId, createSlot, elementIdEscape, fieldKeyEscape, formRenderLog, getParentLinebar, injectOrProvide, isIdCard, isMobile, mergeDeepProperties, parseBirthday, parseIdCard, parseNumberFromMaybeString, queryDecorator, queryInput, transformDateFormat, traverseDependKey, traverseSchema, uuidGenerator };
@@ -1,7 +1,7 @@
1
1
  function useNuiThemeOverrides() {
2
2
  const nuiThemeOverrides = {
3
3
  Input: { paddingMedium: "8px", paddingSmall: "8px", paddingLarge: "8px", paddingTiny: "8px" },
4
- InternalSelection: { paddingSingle: "8px", paddingMultiple: "8px" },
4
+ InternalSelection: { paddingSingle: "8px", paddingMultiple: "2px" },
5
5
  Form: {
6
6
  feedbackHeightMedium: "16px",
7
7
  feedbackHeightLarge: "16px",
@@ -3178,3 +3178,111 @@ body > .vxe-table--tooltip-wrapper {
3178
3178
  .nodeTipContent li p {
3179
3179
  margin: 0;
3180
3180
  }
3181
+ .form-config {
3182
+ display: flex;
3183
+ justify-content: space-between;
3184
+ }
3185
+ .form-config__material {
3186
+ padding: 16px;
3187
+ box-sizing: border-box;
3188
+ width: 200px;
3189
+ background: white;
3190
+ }
3191
+ .form-config__materialHeader {
3192
+ display: flex;
3193
+ align-items: center;
3194
+ justify-content: space-between;
3195
+ height: 40px;
3196
+ }
3197
+ .form-config__materialContent {
3198
+ padding: 8px;
3199
+ min-height: 400px;
3200
+ display: flex;
3201
+ flex-direction: column;
3202
+ gap: 8px;
3203
+ }
3204
+ .form-config__materialContentItem {
3205
+ display: flex;
3206
+ align-items: center;
3207
+ padding: 8px;
3208
+ border: 1px dashed #d9d9d9;
3209
+ box-sizing: border-box;
3210
+ background-color: #fafafa;
3211
+ grid-column: span var(--item-column) / span var(--item-column);
3212
+ }
3213
+ .form-config__displayWrapper {
3214
+ padding: 16px;
3215
+ box-sizing: border-box;
3216
+ flex: 1;
3217
+ padding: 16px 0;
3218
+ }
3219
+ .form-config__displayHeader {
3220
+ display: flex;
3221
+ align-items: center;
3222
+ justify-content: space-between;
3223
+ height: 40px;
3224
+ }
3225
+ .form-config__displayContent {
3226
+ padding: 16px;
3227
+ box-sizing: border-box;
3228
+ height: fit-content;
3229
+ background: #eeeeee;
3230
+ display: grid !important;
3231
+ grid-template-columns: repeat(12, minmax(0px, 1fr));
3232
+ gap: 8px 16px;
3233
+ }
3234
+ .form-config__displayContentItem {
3235
+ grid-column: span var(--item-column) / span var(--item-column);
3236
+ position: relative;
3237
+ }
3238
+ .form-config__config {
3239
+ padding: 16px;
3240
+ box-sizing: border-box;
3241
+ width: 220px;
3242
+ background: white;
3243
+ }
3244
+ .form-config__renderer--default {
3245
+ display: flex;
3246
+ align-items: center;
3247
+ padding: 8px;
3248
+ border: 1px dashed #d9d9d9;
3249
+ box-sizing: border-box;
3250
+ background-color: #fafafa;
3251
+ user-select: none;
3252
+ position: relative;
3253
+ width: 100%;
3254
+ }
3255
+ .form-config__renderer--complex {
3256
+ border: 1px dashed lightblue;
3257
+ padding: 8px;
3258
+ }
3259
+ .form-config__renderer--complex--grid {
3260
+ display: grid !important;
3261
+ grid-template-columns: repeat(12, minmax(0px, 1fr));
3262
+ gap: 8px 16px;
3263
+ grid-column: span var(--item-column) / span var(--item-column);
3264
+ }
3265
+ .form-config__renderer--complex--flex {
3266
+ display: flex;
3267
+ }
3268
+ .form-config .is-disabled {
3269
+ background: #e5e5e5;
3270
+ }
3271
+ .form-config .is-required {
3272
+ padding-left: 16px !important;
3273
+ }
3274
+ .form-config .is-required::before {
3275
+ position: absolute;
3276
+ content: '*';
3277
+ left: 8px;
3278
+ color: red;
3279
+ }
3280
+ .form-config .is-active {
3281
+ color: #5585f5;
3282
+ }
3283
+ .form-config .is-choosing {
3284
+ box-shadow: #5585f5 0 0 0 2px !important;
3285
+ }
3286
+ .form-config .is-choosing-area {
3287
+ background: #f0f7ff;
3288
+ }
@@ -19,12 +19,15 @@ import CFormRender from './form-render';
19
19
  import CFabricChart from './fabric-chart';
20
20
  import CShortcutProvider from './shortcut-provider';
21
21
  import CShortcutSetter from './shortcut-setter';
22
+ import CFormConfig from './form-config';
22
23
  export * from './form-render';
23
24
  export * from './shortcut-provider';
25
+ export * from './shortcut-setter';
24
26
  export * from './big-table';
25
27
  export * from './button-print';
28
+ export * from './form-config';
26
29
  declare function install(app: App): void;
27
- export { CGrid, CBigTable, CFieldSet, CDragLayout, CButtonPrint, CSelectPerson, CSelectLabel, CLabelFormContent, CScaleView, CMap, CVodChunkUpload, CRadio, CCheckbox, CSelect, CDatetime, CFormTable, CInfoHeader, CTimeLine, CBpmnWorkflow, CStepsWheel, Editor, CFormRender, CFabricChart, CShortcutProvider, CShortcutSetter };
30
+ export { CGrid, CBigTable, CFieldSet, CDragLayout, CButtonPrint, CSelectPerson, CSelectLabel, CLabelFormContent, CScaleView, CMap, CVodChunkUpload, CRadio, CCheckbox, CSelect, CDatetime, CFormTable, CInfoHeader, CTimeLine, CBpmnWorkflow, CStepsWheel, Editor, CFormRender, CFabricChart, CShortcutProvider, CShortcutSetter, CFormConfig };
28
31
  declare const _default: {
29
32
  install: typeof install;
30
33
  };
@@ -38,6 +38,8 @@ import ShortcutProvider from './shortcut-provider/index.js';
38
38
  export { default as CShortcutProvider } from './shortcut-provider/index.js';
39
39
  import ShortcutSetter from './shortcut-setter/index.js';
40
40
  export { default as CShortcutSetter } from './shortcut-setter/index.js';
41
+ import FormConfig from './form-config/index.js';
42
+ export { default as CFormConfig } from './form-config/index.js';
41
43
  export { useFieldListAdaptor } from './form-render/src/hooks/useFieldListAdaptor.js';
42
44
  export { useFormRequest } from './form-render/src/hooks/useFormRequest.js';
43
45
  export { useCommonLog } from './form-render/src/hooks/useCommonLog.js';
@@ -52,7 +54,7 @@ export { FormItemDepsCollector, useFormItemDeps } from './form-render/src/hooks/
52
54
  export { useInitialData } from './form-render/src/hooks/useInitialData.js';
53
55
  export { useAnchor } from './form-render/src/hooks/useAnchor.js';
54
56
  export { useFormContext } from './form-render/src/hooks/useFormContext.js';
55
- export { ShortcutManager, useShortcuts } from './shortcut-provider/src/hooks/useShortcuts.js';
57
+ export { GlobalShortcutProvider, ShortcutManager, useShortcuts } from './shortcut-provider/src/hooks/useShortcuts.js';
56
58
  export { useShortcutSignature } from './shortcut-provider/src/hooks/useShortcutSignature.js';
57
59
  export { useColumnConfigAdaptor } from './big-table/src/hooks/useColumnConfigAdaptor.js';
58
60
  export { Print } from './button-print/src/utils/print.js';
@@ -82,7 +84,8 @@ const components = {
82
84
  CFormRender: FormRender,
83
85
  CFabricChart: FabricChart,
84
86
  CShortcutProvider: ShortcutProvider,
85
- CShortcutSetter: ShortcutSetter
87
+ CShortcutSetter: ShortcutSetter,
88
+ CFormConfig: FormConfig
86
89
  };
87
90
  function install(app) {
88
91
  Object.values(components).forEach((component) => {
@@ -14,7 +14,7 @@ const ScaleViewInit = (props, state, emit, config) => {
14
14
  const { formatRules } = ScaleViewValidate(props, state, config);
15
15
  const { nextLogicEvent } = useEvent(props, state);
16
16
  const setEvaluateStartTime = (evaluateResultSetting) => {
17
- let evaluateStartTime = evaluateResultSetting == null ? void 0 : evaluateResultSetting.evaluateStartTime;
17
+ const evaluateStartTime = evaluateResultSetting == null ? void 0 : evaluateResultSetting.evaluateStartTime;
18
18
  if (!evaluateStartTime)
19
19
  return;
20
20
  if (!vexutils.isValidDate(new Date(evaluateStartTime)) && vexutils.isValidDate(new Date(Number(evaluateStartTime)))) {
@@ -57,12 +57,12 @@ const ScaleViewInit = (props, state, emit, config) => {
57
57
  state.showEvaluateCountdownWrap = true;
58
58
  return;
59
59
  }
60
- let { evaluateResultSetting = {} } = state.config;
60
+ const { evaluateResultSetting = {} } = state.config;
61
61
  if (!evaluateResultSetting || !Object.keys(evaluateResultSetting).length)
62
62
  return;
63
63
  state.showEvaluateCountdownWrap = true;
64
- let { evaluateStartTime } = evaluateResultSetting;
65
- let { evaluateName } = ((_a = state.originConfig) == null ? void 0 : _a.evaluateResultSetting) || {};
64
+ const { evaluateStartTime } = evaluateResultSetting;
65
+ const { evaluateName } = ((_a = state.originConfig) == null ? void 0 : _a.evaluateResultSetting) || {};
66
66
  if (!evaluateStartTime) {
67
67
  state.showEvaluatePage = true;
68
68
  return;
@@ -76,7 +76,7 @@ const ScaleViewInit = (props, state, emit, config) => {
76
76
  const initForm = (data) => {
77
77
  var _a;
78
78
  let { list = [], map = {}, isFinished = false } = data;
79
- let curUrl = handleFrontAddress(list);
79
+ const curUrl = handleFrontAddress(list);
80
80
  if (curUrl) {
81
81
  window.location.href = curUrl;
82
82
  return;
@@ -112,13 +112,13 @@ const ScaleViewInit = (props, state, emit, config) => {
112
112
  }
113
113
  state.originConfig = JSON.parse(JSON.stringify(state.config));
114
114
  if (props.params && Object.keys(props.params).length) {
115
- let res = handleBtnParamsEvaluate(props.params);
115
+ const res = handleBtnParamsEvaluate(props.params);
116
116
  res && Object.keys(res).length && (state.paramsEvaluate = res);
117
117
  }
118
118
  handleEvaluateParams(state.config.evaluateResultSetting);
119
119
  handleShowEvaluate();
120
120
  state.defaultFormArray = JSON.parse(JSON.stringify(list));
121
- let filterArr = state.filterArr;
121
+ const filterArr = state.filterArr;
122
122
  list = list.filter((v) => !filterArr.includes(v.type));
123
123
  state.formArray = formatArray(list || []);
124
124
  state.form = defaultFormValue(state.formArray);
@@ -128,13 +128,13 @@ const ScaleViewInit = (props, state, emit, config) => {
128
128
  state.hasFrontAddress = false;
129
129
  };
130
130
  const replaceConditionItem = (options, value) => {
131
- let matchOption = options.find((v) => value === v.value);
131
+ const matchOption = options.find((v) => value === v.value);
132
132
  if (!matchOption)
133
133
  return value;
134
134
  return matchOption.key;
135
135
  };
136
136
  const isRadioOrCheckBox = (options, type) => {
137
- let typeArr = ["RADIO_BLOCK", "CHECKBOX_BLOCK"];
137
+ const typeArr = ["RADIO_BLOCK", "CHECKBOX_BLOCK"];
138
138
  if (!typeArr.includes(type))
139
139
  return;
140
140
  if (!options)
@@ -147,10 +147,10 @@ const ScaleViewInit = (props, state, emit, config) => {
147
147
  return true;
148
148
  };
149
149
  const handLenextLogic = (item) => {
150
- let { nextLogic, options, type } = item || {};
150
+ const { nextLogic, options, type } = item || {};
151
151
  if (!nextLogic || !isRadioOrCheckBox(options, type))
152
152
  return;
153
- let { condition } = nextLogic || {};
153
+ const { condition } = nextLogic || {};
154
154
  if (!condition || !condition.length)
155
155
  return;
156
156
  condition.forEach((c) => {
@@ -166,12 +166,12 @@ const ScaleViewInit = (props, state, emit, config) => {
166
166
  });
167
167
  };
168
168
  const handleRelationLogic = (list, item) => {
169
- let relationLogicObj = vexutils.isString(item.relationLogic) ? JSON.parse(item.relationLogic) : item.relationLogic;
170
- let { condition } = relationLogicObj || {};
169
+ const relationLogicObj = vexutils.isString(item.relationLogic) ? JSON.parse(item.relationLogic) : item.relationLogic;
170
+ const { condition } = relationLogicObj || {};
171
171
  if (!condition || !condition.length)
172
172
  return;
173
173
  condition.forEach((c) => {
174
- let matchItem = list.find((f) => f.seq == c.subject_seq);
174
+ const matchItem = list.find((f) => f.seq == c.subject_seq);
175
175
  if (!matchItem)
176
176
  return;
177
177
  if (!isRadioOrCheckBox(matchItem.options, matchItem.type))
@@ -192,10 +192,10 @@ const ScaleViewInit = (props, state, emit, config) => {
192
192
  var _a, _b;
193
193
  if (!list || !list.length)
194
194
  return;
195
- let query = handleQueryParams();
195
+ const query = handleQueryParams();
196
196
  if ((props == null ? void 0 : props.noBtn) || (query == null ? void 0 : query.noBtn))
197
197
  return;
198
- let matchItem = list.find((item) => item.type === "FRONT_ADDRESS");
198
+ const matchItem = list.find((item) => item.type === "FRONT_ADDRESS");
199
199
  if (!matchItem || !Object.keys(matchItem).length)
200
200
  return;
201
201
  let setting;
@@ -206,22 +206,22 @@ const ScaleViewInit = (props, state, emit, config) => {
206
206
  return;
207
207
  if ((query == null ? void 0 : query.redirect) == 1 || ((_a = props.params) == null ? void 0 : _a.redirect) == 1 || query.isEdit == 3 || ((_b = props.params) == null ? void 0 : _b.isEdit) == 3)
208
208
  return;
209
- let { frontAddress } = setting;
209
+ const { frontAddress } = setting;
210
210
  if (frontAddress) {
211
- let urlHref = window.location.href;
211
+ const urlHref = window.location.href;
212
212
  let preStr = "?";
213
213
  if (frontAddress.includes("?")) {
214
214
  preStr = "&";
215
215
  }
216
- let curUrl = `${frontAddress}${preStr}redirect_url=${encodeURIComponent(urlHref)}`;
216
+ const curUrl = `${frontAddress}${preStr}redirect_url=${encodeURIComponent(urlHref)}`;
217
217
  return curUrl;
218
218
  }
219
219
  };
220
220
  const handleBtnParamsEvaluate = (params) => {
221
- let defaultVariable = ["evaname", "evadesc", "evast", "evadur", "evaan"];
222
- let res = {};
223
- for (let key in params) {
224
- let value = params[key];
221
+ const defaultVariable = ["evaname", "evadesc", "evast", "evadur", "evaan"];
222
+ const res = {};
223
+ for (const key in params) {
224
+ const value = params[key];
225
225
  if (defaultVariable.includes(key) && value) {
226
226
  res[key] = value;
227
227
  }
@@ -235,18 +235,18 @@ const ScaleViewInit = (props, state, emit, config) => {
235
235
  if (hasparamsEvaluate.value) {
236
236
  query = state.paramsEvaluate;
237
237
  }
238
- let obj = {
238
+ const obj = {
239
239
  evaluateName: "evaname",
240
240
  evaluateExplain: "evadesc",
241
241
  evaluateStartTime: "evast",
242
242
  evaluateTime: "evadur",
243
243
  evaluateAnswer: "evaan"
244
244
  };
245
- for (let key in evaluateResultSetting) {
246
- let value = evaluateResultSetting[key];
247
- let isParseKey = value && key != "evaluateAnswer" && typeof value === "string" && value.includes("${");
245
+ for (const key in evaluateResultSetting) {
246
+ const value = evaluateResultSetting[key];
247
+ const isParseKey = value && key != "evaluateAnswer" && typeof value === "string" && value.includes("${");
248
248
  if (isParseKey) {
249
- let parseValue = value.replace(/\$\{([^}]+)\}/g, (_v, $1) => {
249
+ const parseValue = value.replace(/\$\{([^}]+)\}/g, (_v, $1) => {
250
250
  let param;
251
251
  if ($1.startsWith("form.")) {
252
252
  param = query[$1.split(".")[1]];
@@ -263,8 +263,8 @@ const ScaleViewInit = (props, state, emit, config) => {
263
263
  }
264
264
  }
265
265
  if (hasDefault.value) {
266
- let defaultVariable = ["evaname", "evadesc", "evast", "evadur", "evaan"];
267
- let defObj = {
266
+ const defaultVariable = ["evaname", "evadesc", "evast", "evadur", "evaan"];
267
+ const defObj = {
268
268
  evaname: "evaluateName",
269
269
  evadesc: "evaluateExplain",
270
270
  evast: "evaluateStartTime",
@@ -272,7 +272,7 @@ const ScaleViewInit = (props, state, emit, config) => {
272
272
  evaan: "evaluateAnswer"
273
273
  };
274
274
  defaultVariable.forEach((item) => {
275
- let key = defObj[item];
275
+ const key = defObj[item];
276
276
  if (!evaluateResultSetting[key]) {
277
277
  let val = query[item];
278
278
  if (item == "evaan") {
@@ -354,12 +354,12 @@ const ScaleViewInit = (props, state, emit, config) => {
354
354
  defValue = item.dbValue;
355
355
  } else {
356
356
  if (((_a = item.setting) == null ? void 0 : _a.defValType) == 3) {
357
- let urlKey = (_c = (_b = item.setting) == null ? void 0 : _b.outDefaultValue) == null ? void 0 : _c.urlKey;
357
+ const urlKey = (_c = (_b = item.setting) == null ? void 0 : _b.outDefaultValue) == null ? void 0 : _c.urlKey;
358
358
  if (urlKey) {
359
- let list = urlKey.split(",");
359
+ const list = urlKey.split(",");
360
360
  if (list.length > 1) {
361
- let val2 = list.map((l) => {
362
- let tempV = getQueryVariable(l, state, props.params);
361
+ const val2 = list.map((l) => {
362
+ const tempV = getQueryVariable(l, state, props.params);
363
363
  if (tempV)
364
364
  return decodeURIComponent(tempV);
365
365
  return null;
@@ -1,8 +1,23 @@
1
1
  import { SFCWithInstall } from '../../../es/src/types';
2
2
  export * from './src/hooks';
3
3
  export * from './src/types';
4
- declare const ShortcutProvider: SFCWithInstall<import("vue").DefineComponent<{}, {
4
+ declare const ShortcutProvider: SFCWithInstall<import("vue").DefineComponent<{
5
+ scope: {
6
+ type: (SymbolConstructor | StringConstructor)[];
7
+ };
8
+ }, {
9
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
10
+ scope: {
11
+ type: (SymbolConstructor | StringConstructor)[];
12
+ };
13
+ }>> & {
14
+ [x: `on${string}`]: ((...args: any[]) => any) | ((...args: unknown[]) => any) | undefined;
15
+ }>>;
5
16
  shortcutWrapperRef: import("vue").Ref<HTMLElement | undefined>;
6
17
  manager: import("./src/hooks").ShortcutManager;
7
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>>;
18
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
19
+ scope: {
20
+ type: (SymbolConstructor | StringConstructor)[];
21
+ };
22
+ }>>, {}>>;
8
23
  export default ShortcutProvider;
@@ -1,7 +1,7 @@
1
1
  import { COMPONENT_NAMESPACE } from '../../src/global/variable';
2
2
  import { safeComponentRegister } from '../../src/utils';
3
3
  import script from './src/ShortcutProvider.js';
4
- export { ShortcutManager, useShortcuts } from './src/hooks/useShortcuts.js';
4
+ export { GlobalShortcutProvider, ShortcutManager, useShortcuts } from './src/hooks/useShortcuts.js';
5
5
  export { useShortcutSignature } from './src/hooks/useShortcutSignature.js';
6
6
 
7
7
  const ShortcutProvider = script;
@@ -5,9 +5,13 @@ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
5
5
 
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  __name: "ShortcutProvider",
8
+ props: {
9
+ scope: { type: [String, Symbol] }
10
+ },
8
11
  setup(__props) {
12
+ const props = __props;
9
13
  const shortcutWrapperRef = ref();
10
- const manager = new ShortcutManager(shortcutWrapperRef).start();
14
+ const manager = new ShortcutManager(shortcutWrapperRef, props.scope || String(Date.now())).start();
11
15
  provide(InjectionShortcutManager, manager);
12
16
  onBeforeUnmount(() => {
13
17
  manager.destroy();