@ibiz-template/vue3-components 0.7.41-alpha.41 → 0.7.41-alpha.43

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 (48) hide show
  1. package/dist/ibiz-markdown-editor-DJ662N4_.js +1 -0
  2. package/dist/{index-CaWTEUU1.js → index-CG3sQH0b.js} +1 -1
  3. package/dist/index-D3x_MFr-.js +11 -0
  4. package/dist/{index-CD2XM6M6.js → index-kZrZndeH.js} +1 -1
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/wang-editor-DDSO3Ha9.js +1 -0
  8. package/dist/{xlsx-util-Dvg2kWh7.js → xlsx-util-8YSXhmdI.js} +1 -1
  9. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.controller.mjs +16 -6
  10. package/es/control/toolbar/export-excel/export-excel.mjs +19 -4
  11. package/es/editor/code/monaco-editor/monaco-editor.mjs +13 -195
  12. package/es/editor/html/wang-editor/module/ai-module.mjs +1 -1
  13. package/es/editor/html/wang-editor/wang-editor.mjs +31 -202
  14. package/es/editor/markdown/ibiz-markdown-editor/custom-menu.mjs +16 -223
  15. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  16. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +2 -1
  17. package/es/editor/text-box/input/input.mjs +9 -197
  18. package/es/locale/en/index.mjs +24 -1
  19. package/es/locale/zh-CN/index.mjs +24 -1
  20. package/es/panel-component/panel-app-title/panel-app-title.mjs +19 -42
  21. package/es/util/ai-chat-util/ai-chat-util.mjs +644 -15
  22. package/es/util/ai-chat-util/ai-feedback/ai-feedback.css +1 -0
  23. package/es/util/ai-chat-util/ai-feedback/ai-feedback.mjs +130 -0
  24. package/es/util/app-util/app-util.mjs +24 -246
  25. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.mjs +12 -4
  26. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.mjs +3 -1
  27. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.controller.cjs +16 -6
  28. package/lib/control/toolbar/export-excel/export-excel.cjs +18 -3
  29. package/lib/editor/code/monaco-editor/monaco-editor.cjs +13 -195
  30. package/lib/editor/html/wang-editor/module/ai-module.cjs +1 -1
  31. package/lib/editor/html/wang-editor/wang-editor.cjs +30 -201
  32. package/lib/editor/markdown/ibiz-markdown-editor/custom-menu.cjs +16 -223
  33. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +2 -1
  34. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  35. package/lib/editor/text-box/input/input.cjs +8 -196
  36. package/lib/locale/en/index.cjs +24 -1
  37. package/lib/locale/zh-CN/index.cjs +24 -1
  38. package/lib/panel-component/panel-app-title/panel-app-title.cjs +18 -41
  39. package/lib/util/ai-chat-util/ai-chat-util.cjs +642 -13
  40. package/lib/util/ai-chat-util/ai-feedback/ai-feedback.cjs +132 -0
  41. package/lib/util/ai-chat-util/ai-feedback/ai-feedback.css +1 -0
  42. package/lib/util/app-util/app-util.cjs +23 -245
  43. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.cjs +3 -1
  44. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.cjs +12 -4
  45. package/package.json +7 -7
  46. package/dist/ibiz-markdown-editor-DEV-iSvz.js +0 -1
  47. package/dist/index-Bv2fgePf.js +0 -11
  48. package/dist/wang-editor-4cNAgOaJ.js +0 -1
@@ -1,9 +1,6 @@
1
1
  import Cherry from 'cherry-markdown';
2
2
  import { nextTick } from 'vue';
3
- import { createUUID } from 'qx-util';
4
3
  import { useUIStore } from '@ibiz-template/vue3-util';
5
- import { IBizContext } from '@ibiz-template/core';
6
- import { UIActionUtil, SysUIActionTag } from '@ibiz-template/runtime';
7
4
 
8
5
  "use strict";
9
6
  function initCustomMenu(c, opts) {
@@ -32,12 +29,20 @@ function initCustomMenu(c, opts) {
32
29
  );
33
30
  if (items.length === 0)
34
31
  return;
32
+ const { zIndex } = useUIStore();
33
+ const popoverZIndex = zIndex.increment();
35
34
  ibiz.inLineAIUtil.showContextMenus(
36
35
  // 浮动工具栏的左侧距离
37
36
  selectionPosition.left,
38
37
  // 浮动工具栏的顶部距离 + 浮动工具栏的高度
39
38
  selectionPosition.top + 43,
40
- items
39
+ items,
40
+ {
41
+ zIndex: popoverZIndex,
42
+ onClose: () => {
43
+ zIndex.decrement();
44
+ }
45
+ }
41
46
  );
42
47
  }
43
48
  });
@@ -52,27 +57,17 @@ function initCustomMenu(c, opts) {
52
57
  const appDataEntityId = c.model.appDataEntityId;
53
58
  if (!appDataEntityId || !c.deACMode)
54
59
  return;
55
- const aiAgentlist = await ibiz.aiChatUtil.getAIAgentList(
56
- c.context,
57
- c.params
58
- );
59
- const {
60
- contentToolbarItems,
61
- footerToolbarItems,
62
- questionToolbarItems,
63
- otherToolbarItems
64
- } = ibiz.aiChatUtil.calcAiToolbarItemsByAc(c.deACMode);
65
- const { containerOptions, chatOptions } = ibiz.aiChatUtil.getEditorExAIChatParams(
60
+ const { zIndex } = useUIStore();
61
+ const containerZIndex = zIndex.increment();
62
+ chatInstance = await ibiz.aiChatUtil.getAIChat();
63
+ const { containerOptions, chatOptions } = await ibiz.aiChatUtil.getEditorExAIChatParams(
66
64
  c.editorParams,
67
65
  c.context,
68
66
  c.params,
69
- props.data
67
+ props.data,
68
+ c.deACMode,
69
+ { chatInstance, view: c.view, ctrl: c.ctrl }
70
70
  );
71
- const { zIndex } = useUIStore();
72
- const containerZIndex = zIndex.increment();
73
- chatInstance = await ibiz.aiChatUtil.getAIChat();
74
- let id = "";
75
- let abortController;
76
71
  chatInstance.create({
77
72
  containerOptions: {
78
73
  zIndex: containerZIndex,
@@ -83,89 +78,7 @@ function initCustomMenu(c, opts) {
83
78
  context: { ...c.context },
84
79
  params: { ...c.params, srfactag: c.deACMode.codeName },
85
80
  appDataEntityId,
86
- contentToolbarItems,
87
- footerToolbarItems,
88
- questionToolbarItems,
89
- otherToolbarItems,
90
- aiAgentlist,
91
81
  ...chatOptions,
92
- question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode) => {
93
- id = createUUID();
94
- abortController = new AbortController();
95
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
96
- try {
97
- const questionRequestData = {
98
- messages: arr,
99
- sessionid
100
- };
101
- if (srfaiagent) {
102
- questionRequestData.srfaiagent = srfaiagent;
103
- }
104
- if (srfmode) {
105
- questionRequestData.mode = srfmode;
106
- }
107
- await deService.aiChatSse(
108
- (msg) => {
109
- if (msg.actionstate === 20 && msg.actionresult) {
110
- aiChat.addMessage({
111
- messageid: id,
112
- state: msg.actionstate,
113
- type: "DEFAULT",
114
- role: "ASSISTANT",
115
- content: msg.actionresult
116
- });
117
- } else if (msg.actionstate === 30 && msg.actionresult) {
118
- const result = JSON.parse(msg.actionresult);
119
- const choices = result.choices;
120
- if (choices && choices.length > 0) {
121
- aiChat.replaceMessage({
122
- messageid: id,
123
- state: msg.actionstate,
124
- type: "DEFAULT",
125
- role: "ASSISTANT",
126
- content: choices[0].content || ""
127
- });
128
- }
129
- } else if (msg.actionstate === 40) {
130
- aiChat.replaceMessage({
131
- messageid: id,
132
- state: msg.actionstate,
133
- type: "ERROR",
134
- role: "ASSISTANT",
135
- content: msg.actionresult
136
- });
137
- }
138
- },
139
- abortController,
140
- ctx,
141
- param,
142
- { ...questionRequestData }
143
- );
144
- } catch (error) {
145
- aiChat.replaceMessage({
146
- messageid: id,
147
- state: 40,
148
- type: "ERROR",
149
- role: "ASSISTANT",
150
- content: error.message || ibiz.i18n.t("app.aiError")
151
- });
152
- abortController == null ? void 0 : abortController.abort();
153
- } finally {
154
- aiChat.completeMessage(id, true);
155
- return true;
156
- }
157
- },
158
- abortQuestion: async (aiChat) => {
159
- abortController == null ? void 0 : abortController.abort();
160
- await aiChat.stopMessage({
161
- messageid: id,
162
- state: 30,
163
- type: "DEFAULT",
164
- role: "ASSISTANT",
165
- content: ""
166
- });
167
- await aiChat.completeMessage(id, true);
168
- },
169
82
  action: (action, message) => {
170
83
  if (action === "backfill") {
171
84
  if (isEditing.value) {
@@ -174,126 +87,6 @@ function initCustomMenu(c, opts) {
174
87
  emit("change", message.realcontent);
175
88
  }
176
89
  }
177
- },
178
- history: async (ctx, param, other) => {
179
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
180
- const historyRequestData = {};
181
- if (other.appendCurData) {
182
- Object.assign(historyRequestData, {
183
- ...other.appendCurData
184
- });
185
- }
186
- if (other.srfaiagent) {
187
- Object.assign(historyRequestData, {
188
- srfaiagent: other.srfaiagent
189
- });
190
- }
191
- if (other.srfmode) {
192
- Object.assign(historyRequestData, {
193
- mode: other.srfmode
194
- });
195
- }
196
- const result = await deService.aiChatHistory(
197
- ctx,
198
- param,
199
- historyRequestData
200
- );
201
- if (result.data && Array.isArray(result.data)) {
202
- let preMsg;
203
- result.data.forEach((item) => {
204
- if (item.role === "TOOL") {
205
- if (preMsg && item.content) {
206
- chatInstance.aiChat.updateRecommendPrompt(
207
- preMsg,
208
- item.content
209
- );
210
- }
211
- } else {
212
- const msg = {
213
- messageid: createUUID(),
214
- state: 30,
215
- type: "DEFAULT",
216
- role: item.role,
217
- content: item.content,
218
- completed: true
219
- };
220
- preMsg = msg;
221
- chatInstance.aiChat.addMessage(msg);
222
- }
223
- });
224
- }
225
- return true;
226
- },
227
- recommendPrompt: async (ctx, param, other) => {
228
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
229
- const result = await deService.aiChatRecommendPrompt(
230
- ctx,
231
- param,
232
- other.message
233
- );
234
- if (result.ok && result.data) {
235
- const choices = result.data.choices;
236
- if (choices && choices.length > 0) {
237
- return choices[0];
238
- }
239
- return null;
240
- }
241
- return null;
242
- },
243
- uploader: {
244
- onUpload: async (file, reportProgress, options) => {
245
- const fileMeata = ibiz.util.file.calcFileUpDownUrl(
246
- (options == null ? void 0 : options.context) || c.context,
247
- (options == null ? void 0 : options.params) || c.params,
248
- {}
249
- );
250
- const fielUploadHeaders = ibiz.util.file.getUploadHeaders();
251
- const formData = new FormData();
252
- formData.append("file", file);
253
- const res = await ibiz.net.axios({
254
- url: fileMeata.uploadUrl,
255
- method: "post",
256
- headers: fielUploadHeaders,
257
- data: formData,
258
- onUploadProgress: (progressEvent) => {
259
- const percent = progressEvent.loaded / progressEvent.total * 100;
260
- reportProgress(percent);
261
- }
262
- });
263
- return res.data;
264
- }
265
- },
266
- extendToolbarClick: async (event, source, context, params, data) => {
267
- var _a, _b;
268
- const result = await UIActionUtil.exec(
269
- source.id,
270
- {
271
- view: c.view,
272
- ctrl: c.ctrl,
273
- context: IBizContext.create(context),
274
- params,
275
- data: [data],
276
- event
277
- },
278
- source.appId
279
- );
280
- if (result.closeView) {
281
- c.view.closeView({ ok: true });
282
- } else if (result.refresh) {
283
- switch (result.refreshMode) {
284
- case 1:
285
- c.view.callUIAction(SysUIActionTag.REFRESH);
286
- break;
287
- case 2:
288
- (_a = c.view.parentView) == null ? void 0 : _a.callUIAction(SysUIActionTag.REFRESH);
289
- break;
290
- case 3:
291
- (_b = c.view.getTopView()) == null ? void 0 : _b.callUIAction(SysUIActionTag.REFRESH);
292
- break;
293
- default:
294
- }
295
- }
296
- return result;
297
90
  }
298
91
  }
299
92
  });
@@ -1 +1 @@
1
- .ibiz-markdown{--ibiz-markdown-width:100%;--ibiz-markdown-color-manual-toolbar-bg-save:var(--ibiz-color-primary);--ibiz-markdown-color-manual-toolbar-text-save:var(--ibiz-color-primary-active-text);--ibiz-markdown-color-manual-toolbar-text-cancel:var(--ibiz-color-text-1);--ibiz-markdown-color-manual-toolbar-text-cancel-hover:var(--ibiz-color-primary);--ibiz-markdown-color-dark-scrollbar-thumb-dark:rgb(var(--ibiz-grey-4));--ibiz-markdown-color-light-scrollbar-thumb-dark:rgb(var(--ibiz-grey-4));--ibiz-markdown-color-scrollbar-thumb-dark-hover:rgba(var(--ibiz-grey-4), 0.5);--ibiz-markdown-color-dark-toc-text:var(--ibiz-color-fill-0);--ibiz-markdown-color-toc-header-text:var(--ibiz-color-text-0);--ibiz-markdown-color-dark-mardown-border:rgb(var(--ibiz-grey-2));--ibiz-markdown-spacing-manual-toolbar-height:32px;--ibiz-markdown-spacing-manual-toolbar-gap:var(--ibiz-spacing-base);--ibiz-markdown-spacing-manual-toolbar-item-padding:0 var(--ibiz-spacing-base);--ibiz-markdown-spacing-manual-toolbar-margin:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-tight) 0 0;--ibiz-markdown-spacing-manual-toolbar-fullscreen-height:var(--ibiz-height-control-default);--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding:0 var(--ibiz-spacing-extra-loose);--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header:var(--ibiz-spacing-super-loose);--ibiz-markdown-height-manual-toolbar-height:var(--ibiz-height-control-default);--ibiz-markdown-border-radius-manual-toolbar-item:var(--ibiz-border-radius-small);--ibiz-markdown-border-manual-toolbar-fullscreen-footer:1px solid var(--ibiz-color-border);--ibiz-markdown-img-preview-top:-32px;--ibiz-markdown-img-preview-right:-36px;--ibiz-markdown-img-preview-width:32px;--ibiz-markdown-img-preview-height:32px}.ibiz-markdown__header{display:flex;flex-shrink:0;gap:var(--ibiz-markdown-spacing-manual-toolbar-gap);align-items:center;justify-content:end;height:var(--ibiz-markdown-spacing-manual-toolbar-height)}.ibiz-markdown__header--edit{cursor:pointer}.ibiz-markdown__header--full{cursor:pointer}.ibiz-markdown__header.is-fullscreen{position:fixed;top:0;right:0;left:0;z-index:999;width:100%;height:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header));padding:var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding);margin-top:0;background-color:var(--ibiz-view-bg-color)}.ibiz-markdown__header.is-fullscreen+.ibiz-markdown-cherry .cherry.fullscreen{top:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header));height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header))}.ibiz-markdown__footer{display:flex;gap:var(--ibiz-markdown-spacing-manual-toolbar-gap);align-items:center;justify-content:end;height:var(--ibiz-markdown-spacing-manual-toolbar-height);margin:var(--ibiz-markdown-spacing-manual-toolbar-margin)}.ibiz-markdown__footer--save{height:var(--ibiz-markdown-height-manual-toolbar-height);padding:var(--ibiz-markdown-spacing-manual-toolbar-item-padding);line-height:var(--ibiz-markdown-height-manual-toolbar-height);color:var(--ibiz-markdown-color-manual-toolbar-text-save);text-align:center;cursor:pointer;background-color:var(--ibiz-markdown-color-manual-toolbar-bg-save);border-radius:var(--ibiz-markdown-border-radius-manual-toolbar-item)}.ibiz-markdown__footer--cancel{color:var(--ibiz-markdown-color-manual-toolbar-text-cancel);cursor:pointer}.ibiz-markdown__footer--cancel:hover{color:var(--ibiz-markdown-color-manual-toolbar-text-cancel-hover)}.ibiz-markdown__footer.is-fullscreen{position:fixed;right:0;bottom:0;left:0;z-index:999;width:100%;height:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height) * 2);padding:var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding);margin-top:0;background-color:var(--ibiz-view-bg-color);border-top:var(--ibiz-markdown-border-manual-toolbar-fullscreen-footer)}.ibiz-markdown__footer.is-fullscreen+.ibiz-markdown-cherry .cherry.fullscreen{height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height) * 2)}.ibiz-markdown__img-preview.el-image{position:absolute;height:0}.ibiz-markdown__img-preview .el-image-viewer__wrapper{width:90%;height:90%;margin:auto}.ibiz-markdown__img-preview .el-image-viewer__mask{position:fixed;width:100vw;height:100vh;cursor:zoom-out;opacity:.7}.ibiz-markdown__img-preview .el-image-viewer__close{top:var(--ibiz-markdown-img-preview-top);right:var(--ibiz-markdown-img-preview-right);width:var(--ibiz-markdown-img-preview-width);height:var(--ibiz-markdown-img-preview-height)}.ibiz-markdown .ibiz-markdown-cherry{width:var(--ibiz-markdown-width);outline:0}.ibiz-markdown .ibiz-markdown-cherry .cherry{width:100%;border:1px solid var(--ibiz-color-border);box-shadow:none}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-toolbar{box-shadow:none}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-editor{border-top:1px solid var(--ibiz-color-border)}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-previewer{border-top:1px solid var(--ibiz-color-border)}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-previewer img{cursor:zoom-in}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-sidebar{border-left:1px solid var(--ibiz-color-border);box-shadow:none}.ibiz-markdown.is-disabled .cherry{min-height:auto}.ibiz-markdown.is-disabled .ibiz-markdown__fullscreen{position:absolute;top:8px;right:12px;z-index:98;font-size:var(--ibiz-font-size-regular);line-height:2.8}.ibiz-markdown.is-disabled .theme__dark .ibiz-markdown__fullscreen{color:var(--ibiz-color-text-0)}.ibiz-markdown.is-disabled .theme__dark .ibiz-markdown__fullscreen:hover{background-color:var(--ibiz-color-bg-3)}.ibiz-markdown.is-manual{display:flex;flex-direction:column}.ibiz-markdown.is-manual .ibiz-markdown-cherry{flex-grow:1;height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-height))!important}.ibiz-markdown.is-manual.is-editing{flex-direction:column-reverse}.ibiz-markdown.is-manual .ibiz-markdown-menu{display:none}.ibiz-markdown.is-manual.is-editing .ibiz-markdown-menu{display:block}.ibiz-markdown.is-show-editor-switch-menu .ibiz-composite-form-item-ex-menu{--ibiz-composite-form-item-ex-menu-height:47px;--ibiz-composite-form-item-ex-menu-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-tight) 0;max-height:100%}.ibiz-markdown.is-show-editor-switch-menu .cherry-toolbar{padding-right:calc(var(--ibiz-composite-form-item-ex-menu-width) + 36px)}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu{position:absolute;top:1px;right:37px;z-index:var(--ibiz-composite-form-item-ex-menu-z-index);display:flex;align-items:center;height:calc(var(--ibiz-markdown-toolbar-height) - 1px);background:var(--ibiz-composite-form-item-ex-menu-bg-color);border-right:1px solid var(--ibiz-color-border);border-left:1px solid var(--ibiz-color-border)}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu.is-fullscreen{position:fixed;z-index:1000}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu .ibiz-composite-form-item-ex-menu{position:relative}.ibiz-markdown .cherry-preview--full{border-left:none}.ibiz-markdown .theme__dark,.ibiz-markdown .theme__light{color:var(--ibiz-form-item-text-color)}.ibiz-markdown .cherry-markdown h1 a::before,.ibiz-markdown .cherry-markdown h2 a::before,.ibiz-markdown .cherry-markdown h3 a::before,.ibiz-markdown .cherry-markdown h4 a::before,.ibiz-markdown .cherry-markdown h5 a::before,.ibiz-markdown .cherry-markdown h6 a::before{display:none}.ibiz-markdown .cherry.fullscreen{z-index:999}.ibiz-markdown--light .theme__green .cherry-toolbar,.ibiz-markdown--light .theme__light .cherry-toolbar,.ibiz-markdown--light .theme__violet .cherry-toolbar{background-color:var(--ibiz-color-bg-0)}.ibiz-markdown--light .theme__dark.cherry .cherry-flex-toc{color:var(--ibiz-markdown-color-toc-header-text)}.ibiz-markdown--light .theme__dark.cherry ::-webkit-scrollbar-thumb{background:var(--ibiz-markdown-color-light-scrollbar-thumb-dark)}.ibiz-markdown--light .theme__dark.cherry ::-webkit-scrollbar-thumb:hover{background:var(--ibiz-markdown-color-scrollbar-thumb-dark-hover)}.ibiz-markdown--dark.ibiz-markdown-cherry .cherry{border:1px solid var(--ibiz-markdown-color-dark-mardown-border)}.ibiz-markdown--dark .theme__green .cherry-toolbar,.ibiz-markdown--dark .theme__light .cherry-toolbar,.ibiz-markdown--dark .theme__violet .cherry-toolbar{background-color:var(--ibiz-color-shadow)}.ibiz-markdown--dark .theme__dark.cherry .cherry-toc-head{color:var(--ibiz-markdown-color-dark-toc-text)}.ibiz-markdown--dark .theme__dark.cherry ::-webkit-scrollbar-thumb{background:var(--ibiz-markdown-color-dark-scrollbar-thumb-dark)}.ibiz-markdown--dark .theme__dark.cherry ::-webkit-scrollbar-thumb:hover{background:var(--ibiz-markdown-color-scrollbar-thumb-dark-hover)}
1
+ .ibiz-markdown{--ibiz-markdown-width:100%;--ibiz-markdown-color-manual-toolbar-bg-save:var(--ibiz-color-primary);--ibiz-markdown-color-manual-toolbar-text-save:var(--ibiz-color-primary-active-text);--ibiz-markdown-color-manual-toolbar-text-cancel:var(--ibiz-color-text-1);--ibiz-markdown-color-manual-toolbar-text-cancel-hover:var(--ibiz-color-primary);--ibiz-markdown-color-dark-scrollbar-thumb-dark:rgb(var(--ibiz-grey-4));--ibiz-markdown-color-light-scrollbar-thumb-dark:rgb(var(--ibiz-grey-4));--ibiz-markdown-color-scrollbar-thumb-dark-hover:rgba(var(--ibiz-grey-4), 0.5);--ibiz-markdown-color-dark-toc-text:var(--ibiz-color-fill-0);--ibiz-markdown-color-toc-header-text:var(--ibiz-color-text-0);--ibiz-markdown-color-dark-mardown-border:rgb(var(--ibiz-grey-2));--ibiz-markdown-spacing-manual-toolbar-height:32px;--ibiz-markdown-spacing-manual-toolbar-gap:var(--ibiz-spacing-base);--ibiz-markdown-spacing-manual-toolbar-item-padding:0 var(--ibiz-spacing-base);--ibiz-markdown-spacing-manual-toolbar-margin:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-tight) 0 0;--ibiz-markdown-spacing-manual-toolbar-fullscreen-height:var(--ibiz-height-control-default);--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding:0 var(--ibiz-spacing-extra-loose);--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header:var(--ibiz-spacing-super-loose);--ibiz-markdown-height-manual-toolbar-height:var(--ibiz-height-control-default);--ibiz-markdown-border-radius-manual-toolbar-item:var(--ibiz-border-radius-small);--ibiz-markdown-border-manual-toolbar-fullscreen-footer:1px solid var(--ibiz-color-border);--ibiz-markdown-img-preview-top:-32px;--ibiz-markdown-img-preview-right:-36px;--ibiz-markdown-img-preview-width:32px;--ibiz-markdown-img-preview-height:32px}.ibiz-markdown__header{display:flex;flex-shrink:0;gap:var(--ibiz-markdown-spacing-manual-toolbar-gap);align-items:center;justify-content:end;height:var(--ibiz-markdown-spacing-manual-toolbar-height)}.ibiz-markdown__header--edit{cursor:pointer}.ibiz-markdown__header--full{cursor:pointer}.ibiz-markdown__header.is-fullscreen{position:fixed;top:0;right:0;left:0;z-index:999;width:100%;height:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header));padding:var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding);margin-top:0;background-color:var(--ibiz-view-bg-color)}.ibiz-markdown__header.is-fullscreen+.ibiz-markdown-cherry .cherry.fullscreen{top:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header));height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height-header))}.ibiz-markdown__footer{display:flex;gap:var(--ibiz-markdown-spacing-manual-toolbar-gap);align-items:center;justify-content:end;height:var(--ibiz-markdown-spacing-manual-toolbar-height);margin:var(--ibiz-markdown-spacing-manual-toolbar-margin)}.ibiz-markdown__footer--save{height:var(--ibiz-markdown-height-manual-toolbar-height);padding:var(--ibiz-markdown-spacing-manual-toolbar-item-padding);line-height:var(--ibiz-markdown-height-manual-toolbar-height);color:var(--ibiz-markdown-color-manual-toolbar-text-save);text-align:center;cursor:pointer;background-color:var(--ibiz-markdown-color-manual-toolbar-bg-save);border-radius:var(--ibiz-markdown-border-radius-manual-toolbar-item)}.ibiz-markdown__footer--cancel{color:var(--ibiz-markdown-color-manual-toolbar-text-cancel);cursor:pointer}.ibiz-markdown__footer--cancel:hover{color:var(--ibiz-markdown-color-manual-toolbar-text-cancel-hover)}.ibiz-markdown__footer.is-fullscreen{position:fixed;right:0;bottom:0;left:0;z-index:999;width:100%;height:calc(var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height) * 2);padding:var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-padding);margin-top:0;background-color:var(--ibiz-view-bg-color);border-top:var(--ibiz-markdown-border-manual-toolbar-fullscreen-footer)}.ibiz-markdown__footer.is-fullscreen+.ibiz-markdown-cherry .cherry.fullscreen{height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-fullscreen-height) * 2)}.ibiz-markdown__img-preview.el-image{position:absolute;height:0}.ibiz-markdown__img-preview .el-image-viewer__wrapper{width:90%;height:90%;margin:auto}.ibiz-markdown__img-preview .el-image-viewer__mask{position:fixed;width:100vw;height:100vh;cursor:zoom-out;opacity:.7}.ibiz-markdown__img-preview .el-image-viewer__close{top:var(--ibiz-markdown-img-preview-top);right:var(--ibiz-markdown-img-preview-right);width:var(--ibiz-markdown-img-preview-width);height:var(--ibiz-markdown-img-preview-height)}.ibiz-markdown .ibiz-markdown-cherry{width:var(--ibiz-markdown-width);outline:0}.ibiz-markdown .ibiz-markdown-cherry .cherry{width:100%;border:1px solid var(--ibiz-color-border);box-shadow:none}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-toolbar{box-shadow:none}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-editor{border-top:1px solid var(--ibiz-color-border)}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-previewer{border-top:1px solid var(--ibiz-color-border)}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-previewer img{cursor:zoom-in}.ibiz-markdown .ibiz-markdown-cherry .cherry .cherry-sidebar{top:49px;border-left:1px solid var(--ibiz-color-border);box-shadow:none}.ibiz-markdown.is-disabled .cherry{min-height:auto}.ibiz-markdown.is-disabled .ibiz-markdown__fullscreen{position:absolute;top:8px;right:12px;z-index:98;font-size:var(--ibiz-font-size-regular);line-height:2.8}.ibiz-markdown.is-disabled .theme__dark .ibiz-markdown__fullscreen{color:var(--ibiz-color-text-0)}.ibiz-markdown.is-disabled .theme__dark .ibiz-markdown__fullscreen:hover{background-color:var(--ibiz-color-bg-3)}.ibiz-markdown.is-manual{display:flex;flex-direction:column}.ibiz-markdown.is-manual .ibiz-markdown-cherry{flex-grow:1;height:calc(100% - var(--ibiz-markdown-spacing-manual-toolbar-height))!important}.ibiz-markdown.is-manual.is-editing{flex-direction:column-reverse}.ibiz-markdown.is-manual .ibiz-markdown-menu{display:none}.ibiz-markdown.is-manual.is-editing .ibiz-markdown-menu{display:block}.ibiz-markdown.is-show-editor-switch-menu .ibiz-composite-form-item-ex-menu{--ibiz-composite-form-item-ex-menu-height:47px;--ibiz-composite-form-item-ex-menu-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight) 0;max-height:100%}.ibiz-markdown.is-show-editor-switch-menu .cherry-toolbar{padding-right:calc(var(--ibiz-composite-form-item-ex-menu-width) + var(--ibiz-spacing-extra-tight))}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu{position:absolute;top:1px;right:1px;z-index:var(--ibiz-composite-form-item-ex-menu-z-index);display:flex;align-items:center;height:calc(var(--ibiz-markdown-toolbar-height) - 1px);background:var(--ibiz-composite-form-item-ex-menu-bg-color);border-right:1px solid var(--ibiz-color-border);border-left:1px solid var(--ibiz-color-border)}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu.is-fullscreen{position:fixed;z-index:1000}.ibiz-markdown.is-show-editor-switch-menu .ibiz-markdown-menu .ibiz-composite-form-item-ex-menu{position:relative}.ibiz-markdown .cherry-preview--full{border-left:none}.ibiz-markdown .theme__dark,.ibiz-markdown .theme__light{color:var(--ibiz-form-item-text-color)}.ibiz-markdown .cherry-markdown h1 a::before,.ibiz-markdown .cherry-markdown h2 a::before,.ibiz-markdown .cherry-markdown h3 a::before,.ibiz-markdown .cherry-markdown h4 a::before,.ibiz-markdown .cherry-markdown h5 a::before,.ibiz-markdown .cherry-markdown h6 a::before{display:none}.ibiz-markdown .cherry.fullscreen{z-index:999}.ibiz-markdown--light .theme__green .cherry-toolbar,.ibiz-markdown--light .theme__light .cherry-toolbar,.ibiz-markdown--light .theme__violet .cherry-toolbar{background-color:var(--ibiz-color-bg-0)}.ibiz-markdown--light .theme__dark.cherry .cherry-flex-toc{color:var(--ibiz-markdown-color-toc-header-text)}.ibiz-markdown--light .theme__dark.cherry ::-webkit-scrollbar-thumb{background:var(--ibiz-markdown-color-light-scrollbar-thumb-dark)}.ibiz-markdown--light .theme__dark.cherry ::-webkit-scrollbar-thumb:hover{background:var(--ibiz-markdown-color-scrollbar-thumb-dark-hover)}.ibiz-markdown--dark.ibiz-markdown-cherry .cherry{border:1px solid var(--ibiz-markdown-color-dark-mardown-border)}.ibiz-markdown--dark .theme__green .cherry-toolbar,.ibiz-markdown--dark .theme__light .cherry-toolbar,.ibiz-markdown--dark .theme__violet .cherry-toolbar{background-color:var(--ibiz-color-shadow)}.ibiz-markdown--dark .theme__dark.cherry .cherry-toc-head{color:var(--ibiz-markdown-color-dark-toc-text)}.ibiz-markdown--dark .theme__dark.cherry ::-webkit-scrollbar-thumb{background:var(--ibiz-markdown-color-dark-scrollbar-thumb-dark)}.ibiz-markdown--dark .theme__dark.cherry ::-webkit-scrollbar-thumb:hover{background:var(--ibiz-markdown-color-scrollbar-thumb-dark-hover)}
@@ -47,7 +47,7 @@ const IBizMarkDown = /* @__PURE__ */ defineComponent({
47
47
  let lastMarkDownWidth = 0;
48
48
  const cssVars = ref({});
49
49
  const toolbarCssVars = ref({});
50
- const lastDirectoryState = ref("full");
50
+ const lastDirectoryState = ref("pure");
51
51
  let isIgnoreChange = false;
52
52
  let chatInstance;
53
53
  const [AIMenu, AIChart] = initCustomMenu(c, {
@@ -351,6 +351,7 @@ const IBizMarkDown = /* @__PURE__ */ defineComponent({
351
351
  }
352
352
  }
353
353
  });
354
+ editor.toggleToc("pure");
354
355
  editor.setTheme(theme.value);
355
356
  if (customTheme) {
356
357
  editor.setTheme(customTheme);
@@ -1,9 +1,7 @@
1
1
  import { isVNode, defineComponent, createVNode, resolveComponent, mergeProps, ref, computed, watch, onUnmounted } from 'vue';
2
2
  import { debounce } from 'lodash-es';
3
3
  import { useNamespace, useUIStore, useCodeListListen, getEditorEmits, getInputProps } from '@ibiz-template/vue3-util';
4
- import { UIActionUtil, SysUIActionTag } from '@ibiz-template/runtime';
5
- import { isEmoji, base64ToStr, IBizContext } from '@ibiz-template/core';
6
- import { createUUID } from 'qx-util';
4
+ import { isEmoji, base64ToStr } from '@ibiz-template/core';
7
5
  import './input.css';
8
6
 
9
7
  "use strict";
@@ -164,24 +162,19 @@ const IBizInput = /* @__PURE__ */ defineComponent({
164
162
  const appDataEntityId = c.model.appDataEntityId;
165
163
  if (!appDataEntityId || !c.deACMode)
166
164
  return;
167
- const {
168
- contentToolbarItems,
169
- footerToolbarItems,
170
- questionToolbarItems,
171
- otherToolbarItems
172
- } = ibiz.aiChatUtil.calcAiToolbarItemsByAc(c.deACMode);
173
- const aiAgentlist = await ibiz.aiChatUtil.getAIAgentList(c.context, c.params);
174
- const {
175
- containerOptions,
176
- chatOptions
177
- } = ibiz.aiChatUtil.getEditorExAIChatParams(c.editorParams, c.context, c.params, props.data);
178
165
  const {
179
166
  zIndex
180
167
  } = useUIStore();
181
168
  const containerZIndex = zIndex.increment();
182
169
  chatInstance = await ibiz.aiChatUtil.getAIChat();
183
- let id = "";
184
- let abortController;
170
+ const {
171
+ containerOptions,
172
+ chatOptions
173
+ } = await ibiz.aiChatUtil.getEditorExAIChatParams(c.editorParams, c.context, c.params, props.data, c.deACMode, {
174
+ chatInstance,
175
+ view: c.view,
176
+ ctrl: c.ctrl
177
+ });
185
178
  chatInstance.create({
186
179
  containerOptions: {
187
180
  zIndex: containerZIndex,
@@ -197,191 +190,10 @@ const IBizInput = /* @__PURE__ */ defineComponent({
197
190
  srfactag: c.deACMode.codeName
198
191
  },
199
192
  appDataEntityId,
200
- contentToolbarItems,
201
- footerToolbarItems,
202
- questionToolbarItems,
203
- otherToolbarItems,
204
- aiAgentlist,
205
193
  ...chatOptions,
206
- question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode) => {
207
- id = createUUID();
208
- abortController = new AbortController();
209
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
210
- try {
211
- const questionRequestData = {
212
- messages: arr,
213
- sessionid
214
- };
215
- if (srfaiagent) {
216
- questionRequestData.srfaiagent = srfaiagent;
217
- }
218
- if (srfmode) {
219
- questionRequestData.mode = srfmode;
220
- }
221
- await deService.aiChatSse((msg) => {
222
- if (msg.actionstate === 20 && msg.actionresult) {
223
- aiChat.addMessage({
224
- messageid: id,
225
- state: msg.actionstate,
226
- type: "DEFAULT",
227
- role: "ASSISTANT",
228
- content: msg.actionresult
229
- });
230
- } else if (msg.actionstate === 30 && msg.actionresult) {
231
- const result = JSON.parse(msg.actionresult);
232
- const choices = result.choices;
233
- if (choices && choices.length > 0) {
234
- aiChat.replaceMessage({
235
- messageid: id,
236
- state: msg.actionstate,
237
- type: "DEFAULT",
238
- role: "ASSISTANT",
239
- content: choices[0].content || ""
240
- });
241
- }
242
- } else if (msg.actionstate === 40) {
243
- aiChat.replaceMessage({
244
- messageid: id,
245
- state: msg.actionstate,
246
- type: "ERROR",
247
- role: "ASSISTANT",
248
- content: msg.actionresult
249
- });
250
- }
251
- }, abortController, ctx, param, {
252
- ...questionRequestData
253
- });
254
- } catch (error) {
255
- aiChat.replaceMessage({
256
- messageid: id,
257
- state: 40,
258
- type: "ERROR",
259
- role: "ASSISTANT",
260
- content: error.message || ibiz.i18n.t("app.aiError")
261
- });
262
- abortController == null ? void 0 : abortController.abort();
263
- } finally {
264
- aiChat.completeMessage(id, true);
265
- return true;
266
- }
267
- },
268
- abortQuestion: async (aiChat) => {
269
- abortController == null ? void 0 : abortController.abort();
270
- await aiChat.stopMessage({
271
- messageid: id,
272
- state: 30,
273
- type: "DEFAULT",
274
- role: "ASSISTANT",
275
- content: ""
276
- });
277
- await aiChat.completeMessage(id, true);
278
- },
279
194
  action: (action, message) => {
280
195
  if (action === "backfill")
281
196
  emit("change", message.realcontent);
282
- },
283
- history: async (ctx, param, other) => {
284
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
285
- const historyRequestData = {};
286
- if (other.appendCurData) {
287
- Object.assign(historyRequestData, {
288
- ...other.appendCurData
289
- });
290
- }
291
- if (other.srfaiagent) {
292
- Object.assign(historyRequestData, {
293
- srfaiagent: other.srfaiagent
294
- });
295
- }
296
- if (other.srfmode) {
297
- Object.assign(historyRequestData, {
298
- mode: other.srfmode
299
- });
300
- }
301
- const result = await deService.aiChatHistory(ctx, param, historyRequestData);
302
- if (result.data && Array.isArray(result.data)) {
303
- let preMsg;
304
- result.data.forEach((item) => {
305
- if (item.role === "TOOL") {
306
- if (preMsg && item.content) {
307
- chatInstance.aiChat.updateRecommendPrompt(preMsg, item.content);
308
- }
309
- } else {
310
- const msg = {
311
- messageid: createUUID(),
312
- state: 30,
313
- type: "DEFAULT",
314
- role: item.role,
315
- content: item.content,
316
- completed: true
317
- };
318
- preMsg = msg;
319
- chatInstance.aiChat.addMessage(msg);
320
- }
321
- });
322
- }
323
- return true;
324
- },
325
- recommendPrompt: async (ctx, param, other) => {
326
- const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
327
- const result = await deService.aiChatRecommendPrompt(ctx, param, other.message);
328
- if (result.ok && result.data) {
329
- const choices = result.data.choices;
330
- if (choices && choices.length > 0) {
331
- return choices[0];
332
- }
333
- return null;
334
- }
335
- return null;
336
- },
337
- uploader: {
338
- onUpload: async (file, reportProgress, options) => {
339
- const fileMeata = ibiz.util.file.calcFileUpDownUrl((options == null ? void 0 : options.context) || c.context, (options == null ? void 0 : options.params) || c.params, {});
340
- const uploadHeaders = ibiz.util.file.getUploadHeaders();
341
- const formData = new FormData();
342
- formData.append("file", file);
343
- const res = await ibiz.net.axios({
344
- url: fileMeata.uploadUrl,
345
- method: "post",
346
- headers: uploadHeaders,
347
- data: formData,
348
- onUploadProgress: (progressEvent) => {
349
- const percent = progressEvent.loaded / progressEvent.total * 100;
350
- reportProgress(percent);
351
- }
352
- });
353
- return res.data;
354
- }
355
- },
356
- extendToolbarClick: async (event, source, context, params, data) => {
357
- var _a, _b;
358
- const result = await UIActionUtil.exec(source.id, {
359
- view: c.view,
360
- ctrl: c.ctrl,
361
- context: IBizContext.create(context),
362
- params,
363
- data: [data],
364
- event
365
- }, source.appId);
366
- if (result.closeView) {
367
- c.view.closeView({
368
- ok: true
369
- });
370
- } else if (result.refresh) {
371
- switch (result.refreshMode) {
372
- case 1:
373
- c.view.callUIAction(SysUIActionTag.REFRESH);
374
- break;
375
- case 2:
376
- (_a = c.view.parentView) == null ? void 0 : _a.callUIAction(SysUIActionTag.REFRESH);
377
- break;
378
- case 3:
379
- (_b = c.view.getTopView()) == null ? void 0 : _b.callUIAction(SysUIActionTag.REFRESH);
380
- break;
381
- default:
382
- }
383
- }
384
- return result;
385
197
  }
386
198
  }
387
199
  });
@@ -482,7 +482,7 @@ var index = {
482
482
  },
483
483
  toolbar: {
484
484
  exportExcel: {
485
- exportAll: "Export all(Export up to 1000 rows)",
485
+ exportAll: "Export all(Export up to {maxRowCount} rows)",
486
486
  expCurrentPage: "Export current page",
487
487
  expCurrentSelect: "Export the current selection",
488
488
  page: "Page",
@@ -848,6 +848,29 @@ var index = {
848
848
  warningDesc: "Are you sure to terminate the creation?",
849
849
  thinking: "In depth thinking",
850
850
  thinked: "Deeply pondered"
851
+ },
852
+ aiChartUtil: {
853
+ feedback: "Feedback",
854
+ description: "Description",
855
+ regardingIssue: "Regarding the problem",
856
+ understandProblem: "Not understanding the problem",
857
+ forgotContext: "Forgot the previous text",
858
+ notFollowingRequire: "Not Following Requirements",
859
+ regardingResponse: "Regarding the effectiveness of the answer",
860
+ incorrectAswer: "Incorrect answer",
861
+ logicalConfusion: "Logical confusion",
862
+ poorTimeliness: "Poor timeliness",
863
+ poorReadability: "Poor readability",
864
+ incompleteAnswer: "Incomplete answer",
865
+ unprofessional: "The answer is vague and unprofessional",
866
+ report: "Report",
867
+ pornographicVulgar: "Pornographic Vulgar",
868
+ politicallySensitive: "Politically sensitive",
869
+ illegalCriminal: "Illegal crime",
870
+ discriminationPrejudice: "Discrimination or Prejudice Answer",
871
+ violationPrivacy: "Violation of Privacy",
872
+ contentInfringement: "Content infringement",
873
+ placeholder: "Please enter"
851
874
  }
852
875
  },
853
876
  // runTime
@@ -478,7 +478,7 @@ var index = {
478
478
  },
479
479
  toolbar: {
480
480
  exportExcel: {
481
- exportAll: "\u5BFC\u51FA\u5168\u90E8(\u6700\u5927\u5BFC\u51FA1000\u884C)",
481
+ exportAll: "\u5BFC\u51FA\u5168\u90E8(\u6700\u5927\u5BFC\u51FA{maxRowCount}\u884C)",
482
482
  expCurrentPage: "\u5BFC\u51FA\u5F53\u524D\u9875",
483
483
  expCurrentSelect: "\u5BFC\u51FA\u5F53\u524D\u9009\u4E2D",
484
484
  page: "\u9875",
@@ -844,6 +844,29 @@ var index = {
844
844
  warningDesc: "\u786E\u8BA4\u4E2D\u6B62\u521B\u4F5C\u5417\uFF1F",
845
845
  thinking: "\u6DF1\u5EA6\u601D\u8003\u4E2D",
846
846
  thinked: "\u5DF2\u6DF1\u5EA6\u601D\u8003"
847
+ },
848
+ aiChartUtil: {
849
+ feedback: "\u53CD\u9988",
850
+ description: "\u63CF\u8FF0",
851
+ regardingIssue: "\u9488\u5BF9\u95EE\u9898",
852
+ understandProblem: "\u4E0D\u7406\u89E3\u95EE\u9898",
853
+ forgotContext: "\u9057\u5FD8\u4E86\u4E0A\u6587",
854
+ notFollowingRequire: "\u4E0D\u9075\u5FAA\u8981\u6C42",
855
+ regardingResponse: "\u9488\u5BF9\u56DE\u7B54\u6548\u679C",
856
+ incorrectAswer: "\u56DE\u7B54\u9519\u8BEF",
857
+ logicalConfusion: "\u903B\u8F91\u6DF7\u4E71",
858
+ poorTimeliness: "\u65F6\u6548\u6027\u5DEE",
859
+ poorReadability: "\u53EF\u8BFB\u6027\u5DEE",
860
+ incompleteAnswer: "\u56DE\u7B54\u4E0D\u5B8C\u6574",
861
+ unprofessional: "\u56DE\u7B54\u7B3C\u7EDF\u4E0D\u4E13\u4E1A",
862
+ report: "\u4E3E\u62A5",
863
+ pornographicVulgar: "\u8272\u60C5\u4F4E\u4FD7",
864
+ politicallySensitive: "\u653F\u6CBB\u654F\u611F",
865
+ illegalCriminal: "\u8FDD\u6CD5\u72AF\u7F6A",
866
+ discriminationPrejudice: "\u6B67\u89C6\u6216\u504F\u89C1\u56DE\u7B54",
867
+ violationPrivacy: "\u4FB5\u72AF\u9690\u79C1",
868
+ contentInfringement: "\u5185\u5BB9\u4FB5\u6743",
869
+ placeholder: "\u8BF7\u8F93\u5165"
847
870
  }
848
871
  },
849
872
  // runTime