cnhis-design-vue 3.1.31-beta.8 → 3.1.31
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.
- package/README.md +123 -123
- package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
- package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
- package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
- package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
- package/es/components/fabric-chart/src/FabricChart.vue.d.ts +4 -4
- package/es/components/fabric-chart/src/hooks/useCenter.js +5 -6
- package/es/components/fabric-chart/src/hooks/useGrid.js +3 -3
- package/es/components/fabric-chart/src/interface.d.ts +1 -1
- package/es/components/fabric-chart/src/utils/index.d.ts +6823 -0
- package/es/components/form-render/src/components/renderer/checkbox.js +3 -5
- package/es/components/form-render/src/components/renderer/index.js +2 -0
- package/es/components/form-render/src/components/renderer/recommendSelect.d.ts +131 -0
- package/es/components/form-render/src/components/renderer/recommendSelect.js +213 -0
- package/es/components/form-render/src/components/renderer/remoteSearch.js +0 -1
- package/es/components/form-render/src/components/renderer/select.js +0 -2
- package/es/components/form-render/src/hooks/useAsyncQueue.js +2 -1
- package/es/components/form-render/src/hooks/useAutographOptions.js +3 -5
- package/es/components/form-render/src/hooks/useFieldListAdaptor.js +7 -0
- package/es/components/form-render/src/hooks/useFormRequest.d.ts +8 -1
- package/es/components/form-render/src/hooks/useFormRequest.js +24 -1
- package/es/components/form-render/style/index.css +1 -1
- package/es/components/index.css +1 -1
- package/es/components/recommend-search/index.d.ts +586 -51
- package/es/components/recommend-search/src/RecommendSearch.vue.d.ts +596 -59
- package/es/components/recommend-search/src/RecommendSearch.vue.js +36 -8
- package/es/components/recommend-search/src/components/BaseSearch.vue.d.ts +31 -16
- package/es/components/recommend-search/src/components/BaseSearch.vue.js +27 -23
- package/es/components/recommend-search/src/components/RecommendInput.vue.d.ts +136 -53
- package/es/components/recommend-search/src/components/RecommendInput.vue.js +66 -41
- package/es/components/recommend-search/src/components/RecommendMenu.vue.d.ts +14 -3
- package/es/components/recommend-search/src/components/RecommendMenu.vue.js +35 -25
- package/es/components/recommend-search/src/components/RecommendSelect.vue.d.ts +300 -1
- package/es/components/recommend-search/src/components/RecommendSelect.vue.js +81 -51
- package/es/components/recommend-search/style/index.css +1 -1
- package/es/shared/assets/img/failure.js +1 -1
- package/es/shared/assets/img/failure.png.js +1 -1
- package/es/shared/assets/img/icon-asc.js +1 -1
- package/es/shared/assets/img/icon-desc.js +1 -1
- package/es/shared/assets/img/no-permission.js +1 -1
- package/es/shared/assets/img/no-permission.png.js +1 -1
- package/es/shared/assets/img/nodata.js +1 -1
- package/es/shared/assets/img/nodata.png.js +1 -1
- package/es/shared/assets/img/notfound.js +1 -1
- package/es/shared/assets/img/notfound.png.js +1 -1
- package/es/shared/assets/img/qr.js +1 -1
- package/es/shared/assets/img/qr.png.js +1 -1
- package/es/shared/assets/img/success.js +1 -1
- package/es/shared/assets/img/success.png.js +1 -1
- package/es/shared/assets/img/video.js +1 -1
- package/es/shared/assets/img/video.png.js +1 -1
- package/es/shared/assets/img/video_default_cover.js +1 -1
- package/es/shared/assets/img/video_default_cover.png.js +1 -1
- package/es/shared/assets/img/video_hover.js +1 -1
- package/es/shared/assets/img/video_play_hover.js +1 -1
- package/es/shared/assets/img/xb_big.js +1 -1
- package/es/shared/assets/img/xb_big.png.js +1 -1
- package/es/shared/assets/img/xb_small.js +1 -1
- package/es/shared/assets/img/xb_small.png.js +1 -1
- package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
- package/es/shared/utils/tapable/index.d.ts +139 -0
- package/package.json +2 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, createVNode } from 'vue';
|
|
2
|
+
import { useVModel } from '@vueuse/core';
|
|
2
3
|
import '../../../index.js';
|
|
3
4
|
import '../../utils/index.js';
|
|
4
5
|
import { connect, mapProps } from '@formily/vue';
|
|
@@ -39,10 +40,7 @@ const script = defineComponent({
|
|
|
39
40
|
setup(props, {
|
|
40
41
|
emit
|
|
41
42
|
}) {
|
|
42
|
-
const valueRef =
|
|
43
|
-
get: () => props.value,
|
|
44
|
-
set: (v) => emit("update:value", v)
|
|
45
|
-
});
|
|
43
|
+
const valueRef = useVModel(props, "value", emit);
|
|
46
44
|
const {
|
|
47
45
|
labelKey,
|
|
48
46
|
valueKey,
|
|
@@ -11,6 +11,7 @@ import * as labelSelect from './labelSelect.js';
|
|
|
11
11
|
import * as levelSearchCascader from './levelSearchCascader.js';
|
|
12
12
|
import * as index$1 from './lineBar/index.js';
|
|
13
13
|
import * as radio from './radio.js';
|
|
14
|
+
import * as recommendSelect from './recommendSelect.js';
|
|
14
15
|
import * as remoteSearch from './remoteSearch.js';
|
|
15
16
|
import * as search from './search.js';
|
|
16
17
|
import * as searchCascade from './searchCascade.js';
|
|
@@ -35,6 +36,7 @@ const modules = Object.assign({
|
|
|
35
36
|
"./levelSearchCascader.tsx": levelSearchCascader,
|
|
36
37
|
"./lineBar/index.ts": index$1,
|
|
37
38
|
"./radio.tsx": radio,
|
|
39
|
+
"./recommendSelect.tsx": recommendSelect,
|
|
38
40
|
"./remoteSearch.tsx": remoteSearch,
|
|
39
41
|
"./search.tsx": search,
|
|
40
42
|
"./searchCascade.tsx": searchCascade,
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { AnyObject } from '../../../../../../es/shared/types';
|
|
2
|
+
import { PropType } from 'vue';
|
|
3
|
+
import { RecommendIds } from '../../../../../../es/components/form-render';
|
|
4
|
+
export declare const RECOMMEND_SELECT: import("vue").DefineComponent<{
|
|
5
|
+
value: {
|
|
6
|
+
type: StringConstructor;
|
|
7
|
+
};
|
|
8
|
+
commonList: {
|
|
9
|
+
type: PropType<AnyObject[]>;
|
|
10
|
+
};
|
|
11
|
+
recentList: {
|
|
12
|
+
type: PropType<AnyObject[]>;
|
|
13
|
+
};
|
|
14
|
+
options: {
|
|
15
|
+
type: PropType<AnyObject[]>;
|
|
16
|
+
default: () => never[];
|
|
17
|
+
};
|
|
18
|
+
autograph: {
|
|
19
|
+
type: StringConstructor;
|
|
20
|
+
};
|
|
21
|
+
lazyRequest: {
|
|
22
|
+
type: BooleanConstructor;
|
|
23
|
+
default: boolean;
|
|
24
|
+
};
|
|
25
|
+
requestCache: {
|
|
26
|
+
type: BooleanConstructor;
|
|
27
|
+
default: boolean;
|
|
28
|
+
};
|
|
29
|
+
wordbook: {
|
|
30
|
+
type: PropType<Partial<{
|
|
31
|
+
level_num: number;
|
|
32
|
+
id: string;
|
|
33
|
+
name: string;
|
|
34
|
+
render_key: string[];
|
|
35
|
+
search_key: string[];
|
|
36
|
+
primary_key: string;
|
|
37
|
+
type: string;
|
|
38
|
+
value_key: string;
|
|
39
|
+
level_key: string;
|
|
40
|
+
link_key: string;
|
|
41
|
+
link_key_split: string;
|
|
42
|
+
show_key: string[];
|
|
43
|
+
conObj: AnyObject[];
|
|
44
|
+
conObjFirstLevel: AnyObject[];
|
|
45
|
+
}>>;
|
|
46
|
+
};
|
|
47
|
+
getRecommendInfo: {
|
|
48
|
+
type: PropType<() => RecommendIds>;
|
|
49
|
+
};
|
|
50
|
+
recommendNum: {
|
|
51
|
+
type: NumberConstructor;
|
|
52
|
+
default: number;
|
|
53
|
+
};
|
|
54
|
+
recommendCache: {
|
|
55
|
+
type: BooleanConstructor;
|
|
56
|
+
default: boolean;
|
|
57
|
+
};
|
|
58
|
+
recommendDeletable: {
|
|
59
|
+
type: BooleanConstructor;
|
|
60
|
+
default: boolean;
|
|
61
|
+
};
|
|
62
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:value" | "postRecommend" | "deleteRecommend")[], "update:value" | "postRecommend" | "deleteRecommend", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
63
|
+
value: {
|
|
64
|
+
type: StringConstructor;
|
|
65
|
+
};
|
|
66
|
+
commonList: {
|
|
67
|
+
type: PropType<AnyObject[]>;
|
|
68
|
+
};
|
|
69
|
+
recentList: {
|
|
70
|
+
type: PropType<AnyObject[]>;
|
|
71
|
+
};
|
|
72
|
+
options: {
|
|
73
|
+
type: PropType<AnyObject[]>;
|
|
74
|
+
default: () => never[];
|
|
75
|
+
};
|
|
76
|
+
autograph: {
|
|
77
|
+
type: StringConstructor;
|
|
78
|
+
};
|
|
79
|
+
lazyRequest: {
|
|
80
|
+
type: BooleanConstructor;
|
|
81
|
+
default: boolean;
|
|
82
|
+
};
|
|
83
|
+
requestCache: {
|
|
84
|
+
type: BooleanConstructor;
|
|
85
|
+
default: boolean;
|
|
86
|
+
};
|
|
87
|
+
wordbook: {
|
|
88
|
+
type: PropType<Partial<{
|
|
89
|
+
level_num: number;
|
|
90
|
+
id: string;
|
|
91
|
+
name: string;
|
|
92
|
+
render_key: string[];
|
|
93
|
+
search_key: string[];
|
|
94
|
+
primary_key: string;
|
|
95
|
+
type: string;
|
|
96
|
+
value_key: string;
|
|
97
|
+
level_key: string;
|
|
98
|
+
link_key: string;
|
|
99
|
+
link_key_split: string;
|
|
100
|
+
show_key: string[];
|
|
101
|
+
conObj: AnyObject[];
|
|
102
|
+
conObjFirstLevel: AnyObject[];
|
|
103
|
+
}>>;
|
|
104
|
+
};
|
|
105
|
+
getRecommendInfo: {
|
|
106
|
+
type: PropType<() => RecommendIds>;
|
|
107
|
+
};
|
|
108
|
+
recommendNum: {
|
|
109
|
+
type: NumberConstructor;
|
|
110
|
+
default: number;
|
|
111
|
+
};
|
|
112
|
+
recommendCache: {
|
|
113
|
+
type: BooleanConstructor;
|
|
114
|
+
default: boolean;
|
|
115
|
+
};
|
|
116
|
+
recommendDeletable: {
|
|
117
|
+
type: BooleanConstructor;
|
|
118
|
+
default: boolean;
|
|
119
|
+
};
|
|
120
|
+
}>> & {
|
|
121
|
+
"onUpdate:value"?: ((...args: any[]) => any) | undefined;
|
|
122
|
+
onPostRecommend?: ((...args: any[]) => any) | undefined;
|
|
123
|
+
onDeleteRecommend?: ((...args: any[]) => any) | undefined;
|
|
124
|
+
}, {
|
|
125
|
+
options: AnyObject[];
|
|
126
|
+
lazyRequest: boolean;
|
|
127
|
+
requestCache: boolean;
|
|
128
|
+
recommendDeletable: boolean;
|
|
129
|
+
recommendNum: number;
|
|
130
|
+
recommendCache: boolean;
|
|
131
|
+
}>;
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { defineComponent, inject, createVNode, ref, computed } from 'vue';
|
|
2
|
+
import { connect, mapProps } from '@formily/vue';
|
|
3
|
+
import { useVModel } from '@vueuse/core';
|
|
4
|
+
import { isFunction, omit } from 'lodash-es';
|
|
5
|
+
import '../../../index.js';
|
|
6
|
+
import { InjectionAsyncQueue } from '../../constants/index.js';
|
|
7
|
+
import RecommendSearch from '../../../../recommend-search/index.js';
|
|
8
|
+
import { useFormField } from '../../hooks/useFormField.js';
|
|
9
|
+
import { useAutographOptions } from '../../hooks/useAutographOptions.js';
|
|
10
|
+
import { assignUpdateValue, assignClearBindVisited } from '../../utils/schema.js';
|
|
11
|
+
import { useCommonInjection } from '../../hooks/useCommonInjection.js';
|
|
12
|
+
import { useFormRequest } from '../../hooks/useFormRequest.js';
|
|
13
|
+
|
|
14
|
+
function createPropRef(props, key) {
|
|
15
|
+
const _list = ref();
|
|
16
|
+
return computed({
|
|
17
|
+
get() {
|
|
18
|
+
if (_list.value)
|
|
19
|
+
return _list.value;
|
|
20
|
+
return props[key];
|
|
21
|
+
},
|
|
22
|
+
set(value) {
|
|
23
|
+
_list.value = value;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const script = defineComponent({
|
|
28
|
+
name: "FormRecommendSearch",
|
|
29
|
+
props: {
|
|
30
|
+
value: {
|
|
31
|
+
type: String
|
|
32
|
+
},
|
|
33
|
+
commonList: {
|
|
34
|
+
type: Array
|
|
35
|
+
},
|
|
36
|
+
recentList: {
|
|
37
|
+
type: Array
|
|
38
|
+
},
|
|
39
|
+
options: {
|
|
40
|
+
type: Array,
|
|
41
|
+
default: () => []
|
|
42
|
+
},
|
|
43
|
+
autograph: {
|
|
44
|
+
type: String
|
|
45
|
+
},
|
|
46
|
+
lazyRequest: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
default: false
|
|
49
|
+
},
|
|
50
|
+
requestCache: {
|
|
51
|
+
type: Boolean,
|
|
52
|
+
default: true
|
|
53
|
+
},
|
|
54
|
+
wordbook: {
|
|
55
|
+
type: Object
|
|
56
|
+
},
|
|
57
|
+
getRecommendInfo: {
|
|
58
|
+
type: Function
|
|
59
|
+
},
|
|
60
|
+
recommendNum: {
|
|
61
|
+
type: Number,
|
|
62
|
+
default: 5
|
|
63
|
+
},
|
|
64
|
+
recommendCache: {
|
|
65
|
+
type: Boolean,
|
|
66
|
+
default: false
|
|
67
|
+
},
|
|
68
|
+
recommendDeletable: {
|
|
69
|
+
type: Boolean,
|
|
70
|
+
default: true
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
emits: ["update:value", "postRecommend", "deleteRecommend"],
|
|
74
|
+
setup(props, {
|
|
75
|
+
emit
|
|
76
|
+
}) {
|
|
77
|
+
const valueRef = useVModel(props, "value", emit);
|
|
78
|
+
const {
|
|
79
|
+
fieldKey
|
|
80
|
+
} = useFormField();
|
|
81
|
+
const {
|
|
82
|
+
labelKey,
|
|
83
|
+
valueKey,
|
|
84
|
+
options,
|
|
85
|
+
fetchData: fetchOptions
|
|
86
|
+
} = useAutographOptions(props, valueRef);
|
|
87
|
+
const commonListRef = createPropRef(props, "commonList");
|
|
88
|
+
const recentListRef = createPropRef(props, "recentList");
|
|
89
|
+
const asyncQueue = inject(InjectionAsyncQueue);
|
|
90
|
+
const {
|
|
91
|
+
getRecommendRequestInfo,
|
|
92
|
+
getHttpInstance
|
|
93
|
+
} = useFormRequest();
|
|
94
|
+
function getRecommendConfig(type) {
|
|
95
|
+
const {
|
|
96
|
+
url,
|
|
97
|
+
getRecommendIds
|
|
98
|
+
} = getRecommendRequestInfo();
|
|
99
|
+
const globInfo = isFunction(getRecommendIds) ? getRecommendIds() : {};
|
|
100
|
+
const widgetInfo = isFunction(props.getRecommendInfo) ? props.getRecommendInfo() : {};
|
|
101
|
+
return {
|
|
102
|
+
url: url[type],
|
|
103
|
+
info: Object.assign({}, globInfo, widgetInfo)
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
async function getRecommend() {
|
|
107
|
+
if (commonListRef.value && recentListRef.value && props.recommendCache)
|
|
108
|
+
return;
|
|
109
|
+
const list = await asyncQueue.addAsync(createParams(fieldKey.value, props.recommendCache));
|
|
110
|
+
const {
|
|
111
|
+
commonly,
|
|
112
|
+
recently
|
|
113
|
+
} = classifyList(list);
|
|
114
|
+
commonListRef.value = commonly;
|
|
115
|
+
recentListRef.value = recently;
|
|
116
|
+
function classifyList(list2) {
|
|
117
|
+
return list2.reduce((res, item) => {
|
|
118
|
+
if (item.type === "commonly") {
|
|
119
|
+
res.commonly.push(omit(item, ["type"]));
|
|
120
|
+
} else if (item.type === "recently") {
|
|
121
|
+
res.recently.push(omit(item, ["type"]));
|
|
122
|
+
}
|
|
123
|
+
return res;
|
|
124
|
+
}, {
|
|
125
|
+
commonly: [],
|
|
126
|
+
recently: []
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function createParams(key2, cache) {
|
|
130
|
+
const {
|
|
131
|
+
url,
|
|
132
|
+
info
|
|
133
|
+
} = getRecommendConfig("get");
|
|
134
|
+
return {
|
|
135
|
+
url,
|
|
136
|
+
method: "get",
|
|
137
|
+
key: key2,
|
|
138
|
+
cache,
|
|
139
|
+
params: {
|
|
140
|
+
...info,
|
|
141
|
+
recNum: props.recommendNum,
|
|
142
|
+
keyword: ""
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
async function postRecommend({
|
|
148
|
+
option
|
|
149
|
+
}) {
|
|
150
|
+
const http = getHttpInstance();
|
|
151
|
+
if (!http)
|
|
152
|
+
return;
|
|
153
|
+
const {
|
|
154
|
+
url,
|
|
155
|
+
info
|
|
156
|
+
} = getRecommendConfig("post");
|
|
157
|
+
emit("postRecommend", await http.post(url, {
|
|
158
|
+
...info,
|
|
159
|
+
keyword: "",
|
|
160
|
+
itemId: valueKey.value,
|
|
161
|
+
itemObj: JSON.stringify(option)
|
|
162
|
+
}));
|
|
163
|
+
}
|
|
164
|
+
async function deleteRecommend(recType) {
|
|
165
|
+
const http = getHttpInstance();
|
|
166
|
+
if (!http)
|
|
167
|
+
return;
|
|
168
|
+
const {
|
|
169
|
+
url,
|
|
170
|
+
info
|
|
171
|
+
} = getRecommendConfig("delete");
|
|
172
|
+
if (recType === "COMMONLY")
|
|
173
|
+
commonListRef.value = [];
|
|
174
|
+
else if (recType === "RECENTLY")
|
|
175
|
+
recentListRef.value = [];
|
|
176
|
+
emit("deleteRecommend", await http.delete(url, {
|
|
177
|
+
...info,
|
|
178
|
+
keyword: "",
|
|
179
|
+
recType
|
|
180
|
+
}));
|
|
181
|
+
}
|
|
182
|
+
async function fetchData(content = "") {
|
|
183
|
+
fetchOptions(content);
|
|
184
|
+
getRecommend();
|
|
185
|
+
}
|
|
186
|
+
const {
|
|
187
|
+
injectValueBindKey
|
|
188
|
+
} = useCommonInjection();
|
|
189
|
+
const key = injectValueBindKey(valueRef);
|
|
190
|
+
return () => {
|
|
191
|
+
return createVNode(RecommendSearch, {
|
|
192
|
+
"mode": "select",
|
|
193
|
+
"value": valueRef.value,
|
|
194
|
+
"onUpdate:value": ($event) => valueRef.value = $event,
|
|
195
|
+
"label-key": labelKey.value,
|
|
196
|
+
"value-key": valueKey.value,
|
|
197
|
+
"key": key.value,
|
|
198
|
+
"options": options.value,
|
|
199
|
+
"common-list": commonListRef.value,
|
|
200
|
+
"recent-list": recentListRef.value,
|
|
201
|
+
"recommend-deletable": props.recommendDeletable,
|
|
202
|
+
"onSearch": fetchData,
|
|
203
|
+
"onChoose": postRecommend,
|
|
204
|
+
"onDelete": deleteRecommend
|
|
205
|
+
}, null);
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
const RECOMMEND_SELECT = connect(script, mapProps({
|
|
210
|
+
dataSource: "options"
|
|
211
|
+
}, assignUpdateValue, assignClearBindVisited));
|
|
212
|
+
|
|
213
|
+
export { RECOMMEND_SELECT };
|
|
@@ -77,8 +77,6 @@ const script = defineComponent({
|
|
|
77
77
|
if (!props.urlConfig) {
|
|
78
78
|
return remoteOptions.value = null;
|
|
79
79
|
}
|
|
80
|
-
if (remoteOptions.value && props.requestCache)
|
|
81
|
-
return;
|
|
82
80
|
try {
|
|
83
81
|
remoteOptions.value = await asyncQueue.addAsync(await createUrlConfigParams({
|
|
84
82
|
config: props.urlConfig,
|
|
@@ -116,7 +116,7 @@ function useAsyncQueue(requestInstance) {
|
|
|
116
116
|
return new AsyncQueue({
|
|
117
117
|
name: "FormRenderAsyncQueue",
|
|
118
118
|
parallelism,
|
|
119
|
-
async processor({ key, method = "post", params, url }, cb, removeCache) {
|
|
119
|
+
async processor({ key, method = "post", cache, params, url }, cb, removeCache) {
|
|
120
120
|
var _a, _b;
|
|
121
121
|
const http = (_a = unref(requestInstance)) != null ? _a : getHttpInstance();
|
|
122
122
|
if (!http) {
|
|
@@ -134,6 +134,7 @@ function useAsyncQueue(requestInstance) {
|
|
|
134
134
|
res = option.afterRequest(key, res);
|
|
135
135
|
}
|
|
136
136
|
cb(void 0, Array.isArray(res) ? res : []);
|
|
137
|
+
!cache && removeCache();
|
|
137
138
|
} catch (e) {
|
|
138
139
|
cb(new Error(`Request error => ${e}`));
|
|
139
140
|
removeCache();
|
|
@@ -21,22 +21,20 @@ function useAutographOptions(props, valueRef) {
|
|
|
21
21
|
});
|
|
22
22
|
const remoteOptions = ref(null);
|
|
23
23
|
const lastSearch = ref("");
|
|
24
|
-
const {
|
|
24
|
+
const { fieldKey } = useFormField();
|
|
25
25
|
const { getSearchRequestInfo } = useFormRequest();
|
|
26
26
|
const fetchData = useDebounceFn(async function(content) {
|
|
27
27
|
if (!props.autograph || !props.wordbook)
|
|
28
28
|
return;
|
|
29
29
|
lastSearch.value = content || "";
|
|
30
|
-
if (remoteOptions.value && props.requestCache)
|
|
31
|
-
return;
|
|
32
30
|
try {
|
|
33
31
|
remoteOptions.value = await asyncQueue.addAsync(
|
|
34
|
-
createParams(props.wordbook, props.autograph,
|
|
32
|
+
createParams(props.wordbook, props.autograph, fieldKey.value)
|
|
35
33
|
);
|
|
36
34
|
} catch (e) {
|
|
37
35
|
isString(e) && formRenderLog(e);
|
|
38
36
|
}
|
|
39
|
-
function createParams(wordbook, autograph,
|
|
37
|
+
function createParams(wordbook, autograph, key) {
|
|
40
38
|
const params = {
|
|
41
39
|
autograph,
|
|
42
40
|
wordbookId: wordbook.id,
|
|
@@ -89,6 +89,12 @@ function useFieldListAdaptor(collector) {
|
|
|
89
89
|
multiple && (schema2.type = "array");
|
|
90
90
|
}
|
|
91
91
|
};
|
|
92
|
+
const createRecommendSelectSchema = (item) => {
|
|
93
|
+
const schema = createSelectSchema(item);
|
|
94
|
+
schema["x-component"] = "RECOMMEND_SELECT";
|
|
95
|
+
Object.assign(schema["x-component-props"], pick(item, ["commonList", "recentList"]));
|
|
96
|
+
return schema;
|
|
97
|
+
};
|
|
92
98
|
const createRadioSchema = (item) => {
|
|
93
99
|
const schema = createStandardSchema(item);
|
|
94
100
|
Object.assign(schema["x-component-props"], {
|
|
@@ -219,6 +225,7 @@ function useFieldListAdaptor(collector) {
|
|
|
219
225
|
["INPUT", createInputSchema],
|
|
220
226
|
["INPUT_NUMBER", createInputNumberSchema],
|
|
221
227
|
["SELECT", createSelectSchema],
|
|
228
|
+
["RECOMMEND_SELECT", createRecommendSelectSchema],
|
|
222
229
|
["REMOTE_SEARCH", createSelectSchema],
|
|
223
230
|
["DATE", createDateSchema],
|
|
224
231
|
["LEVEL_SEARCH_CASCADER", createLevelSearchCascadeSchema],
|
|
@@ -6,14 +6,21 @@ declare type SearchRequestInfo = {
|
|
|
6
6
|
url: string;
|
|
7
7
|
primaryKeyUrl?: string;
|
|
8
8
|
};
|
|
9
|
+
export declare type RecommendIds = Partial<Record<'businessId' | 'componentId' | 'deptId' | 'userId', string>>;
|
|
10
|
+
declare type RecommendRequestInfo = {
|
|
11
|
+
getRecommendIds(): RecommendIds;
|
|
12
|
+
url: Record<'get' | 'post' | 'delete', string>;
|
|
13
|
+
};
|
|
9
14
|
export declare function useFormRequest(): {
|
|
10
15
|
getHttpInstance: () => Nullable<RequestInstance>;
|
|
11
16
|
registGlobHttpInstance: (instance: RequestInstance) => void;
|
|
17
|
+
registGlobRecommendInfo: (info: Partial<RecommendRequestInfo>) => void;
|
|
18
|
+
registGlobSearchInfo: (info: SearchRequestInfo) => void;
|
|
12
19
|
getSearchRequestInfo: () => {
|
|
13
20
|
method: FormRequestType;
|
|
14
21
|
url: string;
|
|
15
22
|
primaryKeyUrl?: string | undefined;
|
|
16
23
|
};
|
|
17
|
-
|
|
24
|
+
getRecommendRequestInfo: () => RecommendRequestInfo;
|
|
18
25
|
};
|
|
19
26
|
export {};
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
+
import { cloneDeep } from 'lodash-es';
|
|
2
|
+
|
|
1
3
|
let http = null;
|
|
2
4
|
const searchRequestInfo = { method: "post", url: "", primaryKeyUrl: "" };
|
|
5
|
+
const recommendRequestInfo = {
|
|
6
|
+
url: {
|
|
7
|
+
get: "/fdp-api/fdp/aiRec/search",
|
|
8
|
+
post: "/fdp-api/fdp/aiRec/sendBehaviorData",
|
|
9
|
+
delete: "/fdp-api/fdp/aiRec/delete"
|
|
10
|
+
},
|
|
11
|
+
getRecommendIds: () => ({})
|
|
12
|
+
};
|
|
3
13
|
function useFormRequest() {
|
|
4
14
|
function getHttpInstance() {
|
|
5
15
|
return http;
|
|
@@ -10,10 +20,23 @@ function useFormRequest() {
|
|
|
10
20
|
function getSearchRequestInfo() {
|
|
11
21
|
return { ...searchRequestInfo };
|
|
12
22
|
}
|
|
23
|
+
function getRecommendRequestInfo() {
|
|
24
|
+
return cloneDeep(recommendRequestInfo);
|
|
25
|
+
}
|
|
13
26
|
function registGlobSearchInfo(info) {
|
|
14
27
|
Object.assign(searchRequestInfo, info);
|
|
15
28
|
}
|
|
16
|
-
|
|
29
|
+
function registGlobRecommendInfo(info) {
|
|
30
|
+
Object.assign(recommendRequestInfo, info);
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
getHttpInstance,
|
|
34
|
+
registGlobHttpInstance,
|
|
35
|
+
registGlobRecommendInfo,
|
|
36
|
+
registGlobSearchInfo,
|
|
37
|
+
getSearchRequestInfo,
|
|
38
|
+
getRecommendRequestInfo
|
|
39
|
+
};
|
|
17
40
|
}
|
|
18
41
|
|
|
19
42
|
export { useFormRequest };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;position:relative}.form-render__formItemLabel--text.has-annotation{margin-right:15px}.form-render__formItemLabel--annotation{position:absolute;right:calc(var(--icon-right)*1px);top:50%;transform:translateY(-50%)}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}
|
|
1
|
+
.annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.recommend-search__menu{min-height:100px}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:space-between;padding:0 8px}.recommend-search__optionText{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommend-search__option.is-active{color:var(--n-color)!important}.recommend-search__option.is-active .n-icon{font-size:20px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{margin:-8px -10px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;padding:0 8px 0 16px;width:100%}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 20px)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;position:relative}.form-render__formItemLabel--text.has-annotation{margin-right:15px}.form-render__formItemLabel--annotation{position:absolute;right:calc(var(--icon-right)*1px);top:50%;transform:translateY(-50%)}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}
|