@ibiz-template/vue3-components 0.7.41-alpha.152 → 0.7.41-alpha.154
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/dist/{index-Cs2bf-qT.js → index-CCjwOWuI.js} +6 -6
- package/dist/{index-DA2x586m.js → index-Cv6Yk83f.js} +1 -1
- package/dist/{index-B-mkNJ8X.js → index-DxYqmpkw.js} +1 -1
- package/dist/{index.es-CZeEzytG.js → index.es-CWquGkZQ.js} +1 -1
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/{wang-editor-C09nwfM5.js → wang-editor-DoBDjJq7.js} +1 -1
- package/dist/{xlsx-util-C0viiHdq.js → xlsx-util-CQznxxzl.js} +1 -1
- package/es/common/rawitem/rawitem.mjs +38 -12
- package/es/editor/ai-chat/embed-ai-chat/embed-ai-chat.mjs +2 -1
- package/es/locale/en/index.mjs +2 -1
- package/es/locale/zh-CN/index.mjs +2 -1
- package/es/util/ai-chat-util/ai-chat-util.mjs +135 -26
- package/lib/common/rawitem/rawitem.cjs +38 -12
- package/lib/editor/ai-chat/embed-ai-chat/embed-ai-chat.cjs +2 -1
- package/lib/locale/en/index.cjs +2 -1
- package/lib/locale/zh-CN/index.cjs +2 -1
- package/lib/util/ai-chat-util/ai-chat-util.cjs +135 -26
- package/package.json +5 -5
- package/src/common/rawitem/rawitem.tsx +50 -19
- package/src/editor/ai-chat/embed-ai-chat/embed-ai-chat.tsx +3 -0
- package/src/locale/en/index.ts +2 -0
- package/src/locale/zh-CN/index.ts +1 -0
- package/src/util/ai-chat-util/ai-chat-util.ts +195 -28
|
@@ -225,6 +225,11 @@ class AIChatUtil {
|
|
|
225
225
|
} else {
|
|
226
226
|
chatOptions.chatMessagePageSize = ibiz.config.common.aiChatMessagePageSize;
|
|
227
227
|
}
|
|
228
|
+
if (editorParams.srfaienableworkspace) {
|
|
229
|
+
chatOptions.enableWorkSpace = editorParams.srfaienableworkspace === "true";
|
|
230
|
+
} else {
|
|
231
|
+
chatOptions.enableWorkSpace = ibiz.config.common.aiEnableWorkSpace;
|
|
232
|
+
}
|
|
228
233
|
chatOptions.fetchAgentList = (args2 = {}) => {
|
|
229
234
|
const { query, agentid } = args2;
|
|
230
235
|
return this.getAIAgentList(
|
|
@@ -250,10 +255,21 @@ class AIChatUtil {
|
|
|
250
255
|
}
|
|
251
256
|
const sessionid = this.getChatSessionId("TEMP");
|
|
252
257
|
chatOptions.sessionid = sessionid;
|
|
253
|
-
|
|
254
|
-
|
|
258
|
+
const chatStateMap = /* @__PURE__ */ new WeakMap();
|
|
259
|
+
const getChatState = (aiChat) => {
|
|
260
|
+
let state = chatStateMap.get(aiChat);
|
|
261
|
+
if (!state) {
|
|
262
|
+
state = { id: "", abortController: new AbortController() };
|
|
263
|
+
chatStateMap.set(aiChat, state);
|
|
264
|
+
}
|
|
265
|
+
return state;
|
|
266
|
+
};
|
|
255
267
|
const { chatInstance, view, ctrl } = args;
|
|
256
|
-
|
|
268
|
+
let filePreviewMode = ibiz.config.common.aiFilePreviewMode;
|
|
269
|
+
if (editorParams.srfaifilepreviewmode) {
|
|
270
|
+
filePreviewMode = editorParams.srfaifilepreviewmode;
|
|
271
|
+
}
|
|
272
|
+
const fileSystemOptions = await this.getAIFileSystemOptions(filePreviewMode);
|
|
257
273
|
chatOptions.fileSystemOptions = fileSystemOptions;
|
|
258
274
|
chatOptions.history = async (ctx, param, other) => {
|
|
259
275
|
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
|
|
@@ -316,8 +332,10 @@ class AIChatUtil {
|
|
|
316
332
|
};
|
|
317
333
|
chatOptions.question = async (aiChat, ctx, param, other, arr, sessionid2, srfaiagent, srfmode, srfscope, srfknowledgebases, srfaiagentconfig, appendcurdata, mcpservers, sessionmeta, srfproject, localMsgID) => {
|
|
318
334
|
let updateFlag = true;
|
|
319
|
-
|
|
320
|
-
|
|
335
|
+
const state = getChatState(aiChat);
|
|
336
|
+
state.id = qxUtil.createUUID();
|
|
337
|
+
state.abortController = new AbortController();
|
|
338
|
+
const { id, abortController } = state;
|
|
321
339
|
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
|
|
322
340
|
try {
|
|
323
341
|
const questionRequestData = {
|
|
@@ -439,6 +457,7 @@ class AIChatUtil {
|
|
|
439
457
|
}
|
|
440
458
|
};
|
|
441
459
|
chatOptions.abortQuestion = async (aiChat, ctx, param, other) => {
|
|
460
|
+
const { id, abortController } = getChatState(aiChat);
|
|
442
461
|
abortController == null ? void 0 : abortController.abort();
|
|
443
462
|
const asyncacitonid = aiChat.getActiveAsyncacitonId();
|
|
444
463
|
if (asyncacitonid) {
|
|
@@ -473,8 +492,10 @@ class AIChatUtil {
|
|
|
473
492
|
};
|
|
474
493
|
chatOptions.resumeQuestion = async (aiChat, ctx, param, other, arr) => {
|
|
475
494
|
if (other.asyncacitonid) {
|
|
476
|
-
|
|
477
|
-
|
|
495
|
+
const state = getChatState(aiChat);
|
|
496
|
+
state.id = qxUtil.createUUID();
|
|
497
|
+
state.abortController = new AbortController();
|
|
498
|
+
const { id, abortController } = state;
|
|
478
499
|
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
|
|
479
500
|
const resumeRequestData = { asyncacitonid: other.asyncacitonid };
|
|
480
501
|
if (other.sessionid) {
|
|
@@ -492,11 +513,9 @@ class AIChatUtil {
|
|
|
492
513
|
srfproject: other.srfproject
|
|
493
514
|
});
|
|
494
515
|
try {
|
|
495
|
-
aiChat.addWaitingMessage(id);
|
|
496
516
|
await deService.aiResumeSse(
|
|
497
517
|
(msg) => {
|
|
498
518
|
if (msg.actionstate === 20 && msg.actionresult) {
|
|
499
|
-
aiChat.removeWaitingMessage(id);
|
|
500
519
|
aiChat.isLoading.value = true;
|
|
501
520
|
if (!aiChat.getActiveAsyncacitonId()) {
|
|
502
521
|
aiChat.setActiveAsyncacitonId(msg.asyncacitonid);
|
|
@@ -566,7 +585,6 @@ class AIChatUtil {
|
|
|
566
585
|
}
|
|
567
586
|
abortController == null ? void 0 : abortController.abort();
|
|
568
587
|
} finally {
|
|
569
|
-
aiChat.removeWaitingMessage(id);
|
|
570
588
|
aiChat.isLoading.value = false;
|
|
571
589
|
aiChat.completeMessage(id, true);
|
|
572
590
|
aiChat.setActiveAsyncacitonId("");
|
|
@@ -726,7 +744,7 @@ class AIChatUtil {
|
|
|
726
744
|
chatOptions.uploader.maxSize = uploadMaxSize;
|
|
727
745
|
chatOptions.extendToolbarClick = async (event, source, context2, params2, data2) => {
|
|
728
746
|
var _a2, _b, _c;
|
|
729
|
-
const { id
|
|
747
|
+
const { id, isPluginApp } = source;
|
|
730
748
|
let appId = source.appId;
|
|
731
749
|
const tempContext = core.IBizContext.create(context2);
|
|
732
750
|
if (isPluginApp) {
|
|
@@ -741,7 +759,7 @@ class AIChatUtil {
|
|
|
741
759
|
}
|
|
742
760
|
}
|
|
743
761
|
const result = await runtime.UIActionUtil.exec(
|
|
744
|
-
|
|
762
|
+
id,
|
|
745
763
|
{
|
|
746
764
|
view,
|
|
747
765
|
ctrl,
|
|
@@ -1030,6 +1048,12 @@ class AIChatUtil {
|
|
|
1030
1048
|
} else {
|
|
1031
1049
|
chatOptions.chatMessagePageSize = ibiz.config.common.aiChatMessagePageSize;
|
|
1032
1050
|
}
|
|
1051
|
+
if (params.hasOwnProperty("srfaienableworkspace")) {
|
|
1052
|
+
chatOptions.enableWorkSpace = params.srfaienableworkspace === "true";
|
|
1053
|
+
delete params.srfaienableworkspace;
|
|
1054
|
+
} else {
|
|
1055
|
+
chatOptions.enableWorkSpace = ibiz.config.common.aiEnableWorkSpace;
|
|
1056
|
+
}
|
|
1033
1057
|
chatOptions.fetchAgentList = (args2 = {}) => {
|
|
1034
1058
|
const { query, agentid } = args2;
|
|
1035
1059
|
return this.getAIAgentList(context, {
|
|
@@ -1053,10 +1077,22 @@ class AIChatUtil {
|
|
|
1053
1077
|
chatOptions.questionToolbarItems = questionToolbarItems;
|
|
1054
1078
|
chatOptions.otherToolbarItems = otherToolbarItems;
|
|
1055
1079
|
}
|
|
1056
|
-
|
|
1057
|
-
|
|
1080
|
+
const chatStateMap = /* @__PURE__ */ new WeakMap();
|
|
1081
|
+
const getChatState = (aiChat) => {
|
|
1082
|
+
let state = chatStateMap.get(aiChat);
|
|
1083
|
+
if (!state) {
|
|
1084
|
+
state = { id: "", abortController: new AbortController() };
|
|
1085
|
+
chatStateMap.set(aiChat, state);
|
|
1086
|
+
}
|
|
1087
|
+
return state;
|
|
1088
|
+
};
|
|
1058
1089
|
const { chatInstance, view, ctrl } = args;
|
|
1059
|
-
|
|
1090
|
+
let filePreviewMode = ibiz.config.common.aiFilePreviewMode;
|
|
1091
|
+
if (params.hasOwnProperty("srfaifilepreviewmode")) {
|
|
1092
|
+
filePreviewMode = params.srfaifilepreviewmode;
|
|
1093
|
+
delete params.srfaifilepreviewmode;
|
|
1094
|
+
}
|
|
1095
|
+
const fileSystemOptions = await this.getAIFileSystemOptions(filePreviewMode);
|
|
1060
1096
|
chatOptions.fileSystemOptions = fileSystemOptions;
|
|
1061
1097
|
chatOptions.history = async (ctx, param, other) => {
|
|
1062
1098
|
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
|
|
@@ -1119,8 +1155,10 @@ class AIChatUtil {
|
|
|
1119
1155
|
};
|
|
1120
1156
|
chatOptions.question = async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode, srfscope, srfknowledgebases, srfaiagentconfig, appendcurdata, mcpservers, sessionmeta, srfproject, localMsgID) => {
|
|
1121
1157
|
let updateFlag = true;
|
|
1122
|
-
|
|
1123
|
-
|
|
1158
|
+
const state = getChatState(aiChat);
|
|
1159
|
+
state.id = qxUtil.createUUID();
|
|
1160
|
+
state.abortController = new AbortController();
|
|
1161
|
+
const { id, abortController } = state;
|
|
1124
1162
|
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
|
|
1125
1163
|
try {
|
|
1126
1164
|
const questionRequestData = {
|
|
@@ -1240,6 +1278,7 @@ class AIChatUtil {
|
|
|
1240
1278
|
}
|
|
1241
1279
|
};
|
|
1242
1280
|
chatOptions.abortQuestion = async (aiChat, ctx, param, other) => {
|
|
1281
|
+
const { id, abortController } = getChatState(aiChat);
|
|
1243
1282
|
abortController == null ? void 0 : abortController.abort();
|
|
1244
1283
|
const asyncacitonid = aiChat.getActiveAsyncacitonId();
|
|
1245
1284
|
if (asyncacitonid) {
|
|
@@ -1274,8 +1313,10 @@ class AIChatUtil {
|
|
|
1274
1313
|
};
|
|
1275
1314
|
chatOptions.resumeQuestion = async (aiChat, ctx, param, other, arr) => {
|
|
1276
1315
|
if (other.asyncacitonid) {
|
|
1277
|
-
|
|
1278
|
-
|
|
1316
|
+
const state = getChatState(aiChat);
|
|
1317
|
+
state.id = qxUtil.createUUID();
|
|
1318
|
+
state.abortController = new AbortController();
|
|
1319
|
+
const { id, abortController } = state;
|
|
1279
1320
|
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
|
|
1280
1321
|
const resumeRequestData = { asyncacitonid: other.asyncacitonid };
|
|
1281
1322
|
if (other.sessionid) {
|
|
@@ -1293,11 +1334,9 @@ class AIChatUtil {
|
|
|
1293
1334
|
srfproject: other.srfproject
|
|
1294
1335
|
});
|
|
1295
1336
|
try {
|
|
1296
|
-
aiChat.addWaitingMessage(id);
|
|
1297
1337
|
await deService.aiResumeSse(
|
|
1298
1338
|
(msg) => {
|
|
1299
1339
|
if (msg.actionstate === 20 && msg.actionresult) {
|
|
1300
|
-
aiChat.removeWaitingMessage(id);
|
|
1301
1340
|
aiChat.isLoading.value = true;
|
|
1302
1341
|
if (!aiChat.getActiveAsyncacitonId()) {
|
|
1303
1342
|
aiChat.setActiveAsyncacitonId(msg.asyncacitonid);
|
|
@@ -1367,7 +1406,6 @@ class AIChatUtil {
|
|
|
1367
1406
|
}
|
|
1368
1407
|
abortController == null ? void 0 : abortController.abort();
|
|
1369
1408
|
} finally {
|
|
1370
|
-
aiChat.removeWaitingMessage(id);
|
|
1371
1409
|
aiChat.isLoading.value = false;
|
|
1372
1410
|
aiChat.completeMessage(id, true);
|
|
1373
1411
|
aiChat.setActiveAsyncacitonId("");
|
|
@@ -1529,7 +1567,7 @@ class AIChatUtil {
|
|
|
1529
1567
|
chatOptions.uploader.maxSize = uploadMaxSize;
|
|
1530
1568
|
chatOptions.extendToolbarClick = async (event, source, context2, params2, data2) => {
|
|
1531
1569
|
var _a2, _b, _c;
|
|
1532
|
-
const { id
|
|
1570
|
+
const { id, isPluginApp } = source;
|
|
1533
1571
|
let appId = source.appId;
|
|
1534
1572
|
const tempContext = core.IBizContext.create(context2);
|
|
1535
1573
|
if (isPluginApp) {
|
|
@@ -1544,7 +1582,7 @@ class AIChatUtil {
|
|
|
1544
1582
|
}
|
|
1545
1583
|
}
|
|
1546
1584
|
const result = await runtime.UIActionUtil.exec(
|
|
1547
|
-
|
|
1585
|
+
id,
|
|
1548
1586
|
{
|
|
1549
1587
|
view,
|
|
1550
1588
|
ctrl,
|
|
@@ -1893,8 +1931,34 @@ class AIChatUtil {
|
|
|
1893
1931
|
* @returns {*} {Promise<IData>}
|
|
1894
1932
|
* @memberof AIChatUtil
|
|
1895
1933
|
*/
|
|
1896
|
-
async getAIFileSystemOptions() {
|
|
1934
|
+
async getAIFileSystemOptions(filePreviewMode) {
|
|
1897
1935
|
const fileSystemOptions = {};
|
|
1936
|
+
fileSystemOptions.filePreviewMode = filePreviewMode;
|
|
1937
|
+
fileSystemOptions.getCustomFilePreviewUrl = async (ctx, param, other) => {
|
|
1938
|
+
var _a;
|
|
1939
|
+
const filePreviewAddress = (_a = ibiz.env.customParams) == null ? void 0 : _a.file_preview_address;
|
|
1940
|
+
if (!filePreviewAddress) {
|
|
1941
|
+
ibiz.message.error(
|
|
1942
|
+
ibiz.i18n.t("util.aiChartUtil.noFilePreviewAddress")
|
|
1943
|
+
);
|
|
1944
|
+
return "";
|
|
1945
|
+
}
|
|
1946
|
+
const { id, name, folder } = other;
|
|
1947
|
+
let { downloadUrl } = ibiz.util.file.calcFileUpDownUrl(
|
|
1948
|
+
ctx,
|
|
1949
|
+
param,
|
|
1950
|
+
{},
|
|
1951
|
+
{ osscat: folder }
|
|
1952
|
+
);
|
|
1953
|
+
downloadUrl = downloadUrl.replace("%fileId%", id);
|
|
1954
|
+
const { protocol, hostname, port } = window.location;
|
|
1955
|
+
const actualPort = port || (protocol === "https:" ? "443" : "80");
|
|
1956
|
+
const windowInfo = "".concat(protocol, "//").concat(hostname, ":").concat(actualPort);
|
|
1957
|
+
const filedownloadurl = "".concat(windowInfo).concat(downloadUrl, "?fullfilename=").concat(name);
|
|
1958
|
+
const b64Encoded = ibiz.util.base64.encode(filedownloadurl);
|
|
1959
|
+
const previewUrl = "".concat(filePreviewAddress, "/onlinePreview?url=").concat(encodeURIComponent(b64Encoded));
|
|
1960
|
+
return previewUrl;
|
|
1961
|
+
};
|
|
1898
1962
|
fileSystemOptions.getFileList = async (ctx, param, other) => {
|
|
1899
1963
|
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, param.appDataEntityId);
|
|
1900
1964
|
const response = await deService.aiChatProject(
|
|
@@ -1911,12 +1975,57 @@ class AIChatUtil {
|
|
|
1911
1975
|
const response = await deService.aiChatProject(
|
|
1912
1976
|
ctx,
|
|
1913
1977
|
{ srfactag: param.srfactag },
|
|
1914
|
-
{
|
|
1978
|
+
{ action: "UPLOAD", ...other }
|
|
1915
1979
|
);
|
|
1916
1980
|
if (response.ok)
|
|
1917
1981
|
return response.data;
|
|
1918
1982
|
return void 0;
|
|
1919
1983
|
};
|
|
1984
|
+
fileSystemOptions.createFolder = async (ctx, param, other) => {
|
|
1985
|
+
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, param.appDataEntityId);
|
|
1986
|
+
const response = await deService.aiChatProject(
|
|
1987
|
+
ctx,
|
|
1988
|
+
{ srfactag: param.srfactag },
|
|
1989
|
+
{ action: "MKDIR", ...other }
|
|
1990
|
+
);
|
|
1991
|
+
return response.data;
|
|
1992
|
+
};
|
|
1993
|
+
fileSystemOptions.createFile = async (ctx, param, other) => {
|
|
1994
|
+
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, param.appDataEntityId);
|
|
1995
|
+
const response = await deService.aiChatProject(
|
|
1996
|
+
ctx,
|
|
1997
|
+
{ srfactag: param.srfactag },
|
|
1998
|
+
{ action: "WRITE", ...other }
|
|
1999
|
+
);
|
|
2000
|
+
return response.data;
|
|
2001
|
+
};
|
|
2002
|
+
fileSystemOptions.move = async (ctx, param, other) => {
|
|
2003
|
+
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, param.appDataEntityId);
|
|
2004
|
+
const response = await deService.aiChatProject(
|
|
2005
|
+
ctx,
|
|
2006
|
+
{ srfactag: param.srfactag },
|
|
2007
|
+
{ action: "MOVE", ...other }
|
|
2008
|
+
);
|
|
2009
|
+
return response.data;
|
|
2010
|
+
};
|
|
2011
|
+
fileSystemOptions.delete = async (ctx, param, other) => {
|
|
2012
|
+
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, param.appDataEntityId);
|
|
2013
|
+
const response = await deService.aiChatProject(
|
|
2014
|
+
ctx,
|
|
2015
|
+
{ srfactag: param.srfactag },
|
|
2016
|
+
{ recursive: true, action: "DELETE", ...other }
|
|
2017
|
+
);
|
|
2018
|
+
return response.data;
|
|
2019
|
+
};
|
|
2020
|
+
fileSystemOptions.readFile = async (ctx, param, other) => {
|
|
2021
|
+
const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, param.appDataEntityId);
|
|
2022
|
+
const response = await deService.aiChatProject(
|
|
2023
|
+
ctx,
|
|
2024
|
+
{ srfactag: param.srfactag },
|
|
2025
|
+
{ action: "READ", ...other }
|
|
2026
|
+
);
|
|
2027
|
+
return response.data;
|
|
2028
|
+
};
|
|
1920
2029
|
fileSystemOptions.getContent = async (ctx, param, id, type, cat) => {
|
|
1921
2030
|
const app = await ibiz.hub.getAppAsync(ctx.appId);
|
|
1922
2031
|
const requestUrl = "/ibizutil/downloadtxt/".concat(cat ? "".concat(cat, "/") : "").concat(id, "?type=").concat(type);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/vue3-components",
|
|
3
|
-
"version": "0.7.41-alpha.
|
|
3
|
+
"version": "0.7.41-alpha.154",
|
|
4
4
|
"description": "web端组件库(vue3)",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"module": "es/index.mjs",
|
|
@@ -31,16 +31,16 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@amap/amap-jsapi-loader": "^1.0.1",
|
|
33
33
|
"@floating-ui/dom": "^1.5.3",
|
|
34
|
-
"@ibiz-template-plugin/ai-chat": "^0.0.
|
|
34
|
+
"@ibiz-template-plugin/ai-chat": "^0.0.119",
|
|
35
35
|
"@ibiz-template-plugin/gantt": "0.1.8-alpha.468",
|
|
36
36
|
"@ibiz-template-plugin/bi-report": "0.0.32",
|
|
37
37
|
"@ibiz-template-plugin/data-view": "0.0.8",
|
|
38
38
|
"@ibiz-template/core": "0.7.41-alpha.152",
|
|
39
39
|
"@ibiz-template/devtool": "0.0.17",
|
|
40
|
-
"@ibiz-template/model-helper": "0.7.41-alpha.
|
|
41
|
-
"@ibiz-template/runtime": "0.7.41-alpha.
|
|
40
|
+
"@ibiz-template/model-helper": "0.7.41-alpha.154",
|
|
41
|
+
"@ibiz-template/runtime": "0.7.41-alpha.154",
|
|
42
42
|
"@ibiz-template/theme": "0.7.39",
|
|
43
|
-
"@ibiz-template/vue3-util": "0.7.41-alpha.
|
|
43
|
+
"@ibiz-template/vue3-util": "0.7.41-alpha.154",
|
|
44
44
|
"@ibiz-template/web-theme": "3.16.0",
|
|
45
45
|
"@ibiz/model-core": "^0.1.89",
|
|
46
46
|
"@imengyu/vue3-context-menu": "^1.3.5",
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
IRawItemContainer,
|
|
11
11
|
} from '@ibiz/model-core';
|
|
12
12
|
import { isBase64, isBase64Image, isSvg } from '@ibiz-template/core';
|
|
13
|
+
import { isObject } from 'lodash-es';
|
|
13
14
|
import { IControlController, IViewController } from '@ibiz-template/runtime';
|
|
14
15
|
import { parseHtml } from '../../util';
|
|
15
16
|
import './rawitem.scss';
|
|
@@ -119,8 +120,9 @@ export const IBizRawItem = defineComponent({
|
|
|
119
120
|
}
|
|
120
121
|
} else if (['INFO', 'WARNING', 'ERROR'].includes(contentType!)) {
|
|
121
122
|
rawItemContent.value = (rawItem as IUnkownItem).rawContent!;
|
|
122
|
-
|
|
123
|
-
|
|
123
|
+
// 分割线内容解析,视频模型缺少,暂不处理(有rawItemParams则为面板直接内容)
|
|
124
|
+
} else if (contentType === 'DIVIDER' && !rawItem!.rawItemParams) {
|
|
125
|
+
rawItemContent.value = (rawItem as IUnkownItem).rawContent!;
|
|
124
126
|
} else if (contentType === 'IMAGE' && sysImage) {
|
|
125
127
|
rawItemContent.value = sysImage;
|
|
126
128
|
}
|
|
@@ -179,6 +181,21 @@ export const IBizRawItem = defineComponent({
|
|
|
179
181
|
// 文本类型显示值
|
|
180
182
|
const rawItemText: Ref<string | number | IData> = ref('');
|
|
181
183
|
|
|
184
|
+
// 获取面板项直接内容项参数
|
|
185
|
+
const getRawItemParams = () => {
|
|
186
|
+
const tempParams: IData = {};
|
|
187
|
+
if (
|
|
188
|
+
rawItem &&
|
|
189
|
+
rawItem.rawItemParams &&
|
|
190
|
+
rawItem.rawItemParams.length > 0
|
|
191
|
+
) {
|
|
192
|
+
rawItem.rawItemParams.forEach((item: IData) => {
|
|
193
|
+
tempParams[item.key] = item.value;
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return tempParams;
|
|
197
|
+
};
|
|
198
|
+
|
|
182
199
|
// 转换各类值操作
|
|
183
200
|
const convertValue = () => {
|
|
184
201
|
// 图片类型
|
|
@@ -243,25 +260,43 @@ export const IBizRawItem = defineComponent({
|
|
|
243
260
|
)
|
|
244
261
|
) {
|
|
245
262
|
if (rawItemContent.value) {
|
|
246
|
-
let rawConfig = {};
|
|
263
|
+
let rawConfig: IData | string = {};
|
|
247
264
|
try {
|
|
265
|
+
// 兼容json字符串格式与字符串文本模式
|
|
248
266
|
if (typeof rawItemContent.value === 'string') {
|
|
249
|
-
//
|
|
250
|
-
|
|
251
|
-
|
|
267
|
+
// 以 { 或 [ 开头的使用脚本解析,不是则做为文本字符串
|
|
268
|
+
if (/^[[{]/.test(rawItemContent.value)) {
|
|
269
|
+
// eslint-disable-next-line no-new-func
|
|
270
|
+
const func = new Function(`return (${rawItemContent.value});`);
|
|
271
|
+
rawConfig = func();
|
|
272
|
+
} else {
|
|
273
|
+
rawConfig = rawItemContent.value;
|
|
274
|
+
}
|
|
252
275
|
switch (rawItemType.value) {
|
|
253
276
|
case 'VIDEO':
|
|
254
|
-
|
|
277
|
+
if (isObject(rawConfig)) {
|
|
278
|
+
Object.assign(playerParams.value, rawConfig);
|
|
279
|
+
} else {
|
|
280
|
+
playerParams.value.path = rawConfig;
|
|
281
|
+
}
|
|
255
282
|
break;
|
|
256
283
|
case 'DIVIDER':
|
|
257
|
-
|
|
284
|
+
if (isObject(rawConfig)) {
|
|
285
|
+
Object.assign(dividerParams.value, rawConfig);
|
|
286
|
+
} else {
|
|
287
|
+
dividerParams.value.html = rawConfig;
|
|
288
|
+
}
|
|
258
289
|
break;
|
|
259
290
|
case 'INFO':
|
|
260
291
|
case 'WARNING':
|
|
261
292
|
case 'ERROR':
|
|
262
293
|
alertParams.value.type =
|
|
263
294
|
rawItemType.value.toLocaleLowerCase();
|
|
264
|
-
|
|
295
|
+
if (isObject(rawConfig)) {
|
|
296
|
+
Object.assign(alertParams.value, rawConfig);
|
|
297
|
+
} else {
|
|
298
|
+
alertParams.value.title = rawConfig;
|
|
299
|
+
}
|
|
265
300
|
break;
|
|
266
301
|
default:
|
|
267
302
|
break;
|
|
@@ -274,17 +309,13 @@ export const IBizRawItem = defineComponent({
|
|
|
274
309
|
}),
|
|
275
310
|
);
|
|
276
311
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
rawItem.rawItemParams.length > 0
|
|
282
|
-
) {
|
|
283
|
-
const tempParams: IData = {};
|
|
284
|
-
rawItem.rawItemParams.forEach((item: IData) => {
|
|
285
|
-
tempParams[item.key] = item.value;
|
|
286
|
-
});
|
|
312
|
+
// 面板中分割线、视频支持直接内容项参数
|
|
313
|
+
} else if (['DIVIDER', 'VIDEO'].includes(rawItemType.value)) {
|
|
314
|
+
const tempParams = getRawItemParams();
|
|
315
|
+
if (rawItemType.value === 'VIDEO') {
|
|
287
316
|
Object.assign(playerParams.value, tempParams);
|
|
317
|
+
} else {
|
|
318
|
+
Object.assign(dividerParams.value, tempParams);
|
|
288
319
|
}
|
|
289
320
|
}
|
|
290
321
|
}
|
|
@@ -130,6 +130,9 @@ export const IBizEmbedAIChat = defineComponent({
|
|
|
130
130
|
container: aiChatElementRef.value,
|
|
131
131
|
compWrapperId: editorParams.compwrapperid || 'DEFAULT',
|
|
132
132
|
enableBackFill: false,
|
|
133
|
+
isEmbedAiHeaderHidden: editorParams.isembedaiheaderhidden
|
|
134
|
+
? editorParams.isembedaiheaderhidden === 'true'
|
|
135
|
+
: ibiz.config.common.isEmbedAiHeaderHidden,
|
|
133
136
|
},
|
|
134
137
|
topicOptions: {
|
|
135
138
|
appid: ibiz.env.appId,
|
package/src/locale/en/index.ts
CHANGED
|
@@ -979,6 +979,8 @@ export default {
|
|
|
979
979
|
violationPrivacy: 'Violation of Privacy',
|
|
980
980
|
contentInfringement: 'Content infringement',
|
|
981
981
|
placeholder: 'Please enter',
|
|
982
|
+
noFilePreviewAddress:
|
|
983
|
+
'No attachment preview service. Please contact the administrator to add it!',
|
|
982
984
|
},
|
|
983
985
|
screenShotUtil: {
|
|
984
986
|
prepareCanvas: 'Prepare the canvas...',
|