@ibiz-template/runtime 0.7.41-alpha.42 → 0.7.41-alpha.44

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 (45) hide show
  1. package/dist/index.esm.js +167 -64
  2. package/dist/index.system.min.js +1 -1
  3. package/out/command/app/open-app-view/open-app-view.d.ts.map +1 -1
  4. package/out/command/app/open-app-view/open-app-view.js +9 -0
  5. package/out/config/global-config.d.ts.map +1 -1
  6. package/out/config/global-config.js +1 -0
  7. package/out/controller/common/view/view.controller.d.ts +6 -0
  8. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  9. package/out/controller/common/view/view.controller.js +13 -0
  10. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.d.ts.map +1 -1
  11. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.js +10 -0
  12. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  13. package/out/controller/control/grid/grid/grid.controller.js +1 -4
  14. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts.map +1 -1
  15. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +3 -1
  16. package/out/interface/api/common/global-config/i-api-global-common-config.d.ts +8 -0
  17. package/out/interface/api/common/global-config/i-api-global-common-config.d.ts.map +1 -1
  18. package/out/interface/api/controller/control/i-api-tree.controller.d.ts +1 -1
  19. package/out/interface/api/controller/view/i-api-view.controller.d.ts +6 -0
  20. package/out/interface/api/controller/view/i-api-view.controller.d.ts.map +1 -1
  21. package/out/interface/api/util/i-api-file-util.d.ts +59 -34
  22. package/out/interface/api/util/i-api-file-util.d.ts.map +1 -1
  23. package/out/interface/api/util/i-api-screen-shot-util.d.ts +19 -0
  24. package/out/interface/api/util/i-api-screen-shot-util.d.ts.map +1 -0
  25. package/out/interface/api/util/i-api-screen-shot-util.js +1 -0
  26. package/out/interface/api/util/index.d.ts +2 -1
  27. package/out/interface/api/util/index.d.ts.map +1 -1
  28. package/out/interface/common/i-open-view-options/i-open-view-options.d.ts +6 -0
  29. package/out/interface/common/i-open-view-options/i-open-view-options.d.ts.map +1 -1
  30. package/out/interface/util/i-screen-shot-util/i-screen-shot-util.d.ts +10 -0
  31. package/out/interface/util/i-screen-shot-util/i-screen-shot-util.d.ts.map +1 -0
  32. package/out/interface/util/i-screen-shot-util/i-screen-shot-util.js +1 -0
  33. package/out/interface/util/index.d.ts +1 -0
  34. package/out/interface/util/index.d.ts.map +1 -1
  35. package/out/service/service/util/ai-util.service.d.ts +25 -11
  36. package/out/service/service/util/ai-util.service.d.ts.map +1 -1
  37. package/out/service/service/util/ai-util.service.js +70 -31
  38. package/out/types.d.ts +7 -1
  39. package/out/types.d.ts.map +1 -1
  40. package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
  41. package/out/ui-action/provider/front-ui-action-provider.js +3 -2
  42. package/out/utils/file-util/file-util.d.ts +23 -17
  43. package/out/utils/file-util/file-util.d.ts.map +1 -1
  44. package/out/utils/file-util/file-util.js +33 -19
  45. package/package.json +2 -2
package/dist/index.esm.js CHANGED
@@ -19433,7 +19433,8 @@ var GlobalConfig = class {
19433
19433
  mergeAppMenu: "default",
19434
19434
  enableAIMinimize: true,
19435
19435
  aiChatTopicCaptionMode: "default",
19436
- aiResourceMode: void 0
19436
+ aiResourceMode: void 0,
19437
+ enableAIAgentChange: true
19437
19438
  };
19438
19439
  // 全局分页流布局配置
19439
19440
  this.drtab = {
@@ -33850,10 +33851,14 @@ var AIUtilService = class {
33850
33851
  if (!data) {
33851
33852
  throw new Error(ibiz.i18n.t("runtime.service.dataException"));
33852
33853
  }
33853
- if (Array.isArray(data) && data.length > 0) {
33854
- result = data.map((item) => {
33855
- return convertData(item);
33856
- });
33854
+ if (Array.isArray(data)) {
33855
+ if (data.length > 0) {
33856
+ result = data.map((item) => {
33857
+ return convertData(item);
33858
+ });
33859
+ } else {
33860
+ result = [];
33861
+ }
33857
33862
  return result;
33858
33863
  }
33859
33864
  result = convertData(data);
@@ -33893,7 +33898,7 @@ var AIUtilService = class {
33893
33898
  * @param data
33894
33899
  * @returns
33895
33900
  */
33896
- async updateSession(context, params, sessionID, data) {
33901
+ async updateSession(context, params, realID, data) {
33897
33902
  var _a3;
33898
33903
  const updateSessionAppDEActionId = (_a3 = this.utilParams) == null ? void 0 : _a3.updateSessionAppDEActionId;
33899
33904
  if (!updateSessionAppDEActionId)
@@ -33904,7 +33909,7 @@ var AIUtilService = class {
33904
33909
  if (!sessionService)
33905
33910
  throw new RuntimeError23("sessionService is null");
33906
33911
  const tempContext = context.clone();
33907
- tempContext[this.sessionAppEntityName.toLowerCase()] = sessionID;
33912
+ tempContext[this.sessionAppEntityName.toLowerCase()] = realID;
33908
33913
  const tempData = this.handleUserRequestData(data, "sessionmodelMapping");
33909
33914
  const response = await sessionService.exec(
33910
33915
  updateSessionAppDEActionId,
@@ -33926,19 +33931,19 @@ var AIUtilService = class {
33926
33931
  * @param params
33927
33932
  * @returns
33928
33933
  */
33929
- async deleteSession(context, params, sessionID) {
33934
+ async deleteSession(context, params, realID) {
33930
33935
  var _a3;
33931
- if (!sessionID)
33936
+ if (!realID)
33932
33937
  return false;
33933
- const sessionIDs = sessionID.split(",").filter((session) => {
33938
+ const sessionIDs = realID.split(",").filter((session) => {
33934
33939
  return !!session;
33935
33940
  });
33936
33941
  const deleteSessionAppDEActionId = (_a3 = this.utilParams) == null ? void 0 : _a3.deleteSessionAppDEActionId;
33937
33942
  if (!deleteSessionAppDEActionId)
33938
- throw new RuntimeError23("deleteSessionAppDEActionId is null");
33943
+ return false;
33939
33944
  const sessionService = await this.getSessionService(context);
33940
33945
  if (!sessionService)
33941
- throw new RuntimeError23("sessionService is null");
33946
+ return false;
33942
33947
  await handleAllSettled(
33943
33948
  sessionIDs.map(async (sessionid) => {
33944
33949
  const tempContext = context.clone();
@@ -33962,7 +33967,7 @@ var AIUtilService = class {
33962
33967
  * @param sessionID
33963
33968
  * @returns
33964
33969
  */
33965
- async getMessageList(context, params, sessionID) {
33970
+ async getMessageList(context, params) {
33966
33971
  var _a3;
33967
33972
  const getMessageAppDEActionId = (_a3 = this.utilParams) == null ? void 0 : _a3.getMessageAppDEActionId;
33968
33973
  if (!getMessageAppDEActionId)
@@ -33974,8 +33979,7 @@ var AIUtilService = class {
33974
33979
  getMessageAppDEActionId,
33975
33980
  context,
33976
33981
  {
33977
- ...params,
33978
- n_conversation_id_eq: sessionID
33982
+ ...params
33979
33983
  }
33980
33984
  );
33981
33985
  const result = this.handleUserResponse(
@@ -33988,23 +33992,21 @@ var AIUtilService = class {
33988
33992
  * 删除消息(多个以逗号分割)
33989
33993
  * @param context
33990
33994
  * @param params
33991
- * @param sessionID
33992
33995
  * @param messageID
33993
33996
  */
33994
- async deleteMessage(context, params, sessionID, messageID) {
33995
- if (!sessionID || !messageID)
33997
+ async deleteMessage(context, params, messageID) {
33998
+ if (!messageID)
33996
33999
  return false;
33997
34000
  const { deleteMessageAppDEActionId } = this.utilParams;
33998
34001
  if (!deleteMessageAppDEActionId)
33999
- throw new RuntimeError23("deleteMessageAppDEActionId is null");
34002
+ return false;
34000
34003
  const messageService = await this.getMessageService(context);
34001
34004
  if (!messageService)
34002
- throw new RuntimeError23("messageService is null");
34005
+ return false;
34003
34006
  const messageIDs = messageID.split(",").filter((message) => {
34004
34007
  return !!message;
34005
34008
  });
34006
34009
  const tempContext = context.clone();
34007
- tempContext[this.sessionAppEntityName.toLowerCase()] = sessionID;
34008
34010
  await handleAllSettled(
34009
34011
  messageIDs.map(async (messageid) => {
34010
34012
  tempContext[this.messageAppEntityName.toLowerCase()] = messageid;
@@ -34019,12 +34021,11 @@ var AIUtilService = class {
34019
34021
  * 点赞
34020
34022
  * @param context
34021
34023
  * @param params
34022
- * @param sessionID
34023
34024
  * @param messageID
34024
34025
  * @returns
34025
34026
  */
34026
- async likeMessage(context, params, sessionID, messageID) {
34027
- if (!sessionID || !messageID)
34027
+ async likeMessage(context, params, messageID) {
34028
+ if (!messageID)
34028
34029
  return false;
34029
34030
  const { likeMessageAppDEActionId } = this.utilParams;
34030
34031
  if (!likeMessageAppDEActionId)
@@ -34033,7 +34034,6 @@ var AIUtilService = class {
34033
34034
  if (!messageService)
34034
34035
  throw new RuntimeError23("messageService is null");
34035
34036
  const tempContext = context.clone();
34036
- tempContext[this.sessionAppEntityName.toLowerCase()] = sessionID;
34037
34037
  tempContext[this.messageAppEntityName.toLowerCase()] = messageID;
34038
34038
  await messageService.exec(
34039
34039
  likeMessageAppDEActionId,
@@ -34049,12 +34049,11 @@ var AIUtilService = class {
34049
34049
  * 点踩
34050
34050
  * @param context
34051
34051
  * @param params
34052
- * @param sessionID
34053
34052
  * @param messageID
34054
34053
  * @returns
34055
34054
  */
34056
- async dislikeMessage(context, params, sessionID, messageID, feedbackContent) {
34057
- if (!sessionID || !messageID)
34055
+ async dislikeMessage(context, params, messageID, feedbackContent) {
34056
+ if (!messageID)
34058
34057
  return false;
34059
34058
  const { dislikeMessageAppDEActionId } = this.utilParams;
34060
34059
  if (!dislikeMessageAppDEActionId)
@@ -34063,7 +34062,6 @@ var AIUtilService = class {
34063
34062
  if (!messageService)
34064
34063
  throw new RuntimeError23("messageService is null");
34065
34064
  const tempContext = context.clone();
34066
- tempContext[this.sessionAppEntityName.toLowerCase()] = sessionID;
34067
34065
  tempContext[this.messageAppEntityName.toLowerCase()] = messageID;
34068
34066
  await messageService.exec(
34069
34067
  dislikeMessageAppDEActionId,
@@ -34079,12 +34077,11 @@ var AIUtilService = class {
34079
34077
  * 取消点赞或者点踩
34080
34078
  * @param context
34081
34079
  * @param params
34082
- * @param sessionID
34083
34080
  * @param messageID
34084
34081
  * @returns
34085
34082
  */
34086
- async cancelFeedback(context, params, sessionID, messageID) {
34087
- if (!sessionID || !messageID)
34083
+ async cancelFeedback(context, params, messageID) {
34084
+ if (!messageID)
34088
34085
  return false;
34089
34086
  const { cancelFeedbackMessageAppDEActionId } = this.utilParams;
34090
34087
  if (!cancelFeedbackMessageAppDEActionId)
@@ -34093,7 +34090,6 @@ var AIUtilService = class {
34093
34090
  if (!messageService)
34094
34091
  throw new RuntimeError23("messageService is null");
34095
34092
  const tempContext = context.clone();
34096
- tempContext[this.sessionAppEntityName.toLowerCase()] = sessionID;
34097
34093
  tempContext[this.messageAppEntityName.toLowerCase()] = messageID;
34098
34094
  await messageService.exec(
34099
34095
  cancelFeedbackMessageAppDEActionId,
@@ -34105,6 +34101,60 @@ var AIUtilService = class {
34105
34101
  );
34106
34102
  return true;
34107
34103
  }
34104
+ /**
34105
+ * 清空所有会话
34106
+ * @param context
34107
+ * @param params
34108
+ * @param excludeSessionID 排除的sessionid
34109
+ * @returns
34110
+ */
34111
+ async clearAllSession(context, params, excludeSessionID) {
34112
+ if (!excludeSessionID)
34113
+ return false;
34114
+ const { clearAllSessionAppDEActionId } = this.utilParams;
34115
+ if (!clearAllSessionAppDEActionId)
34116
+ return false;
34117
+ const sessionService = await this.getSessionService(context);
34118
+ if (!sessionService)
34119
+ return false;
34120
+ await sessionService.exec(
34121
+ clearAllSessionAppDEActionId,
34122
+ context,
34123
+ { session_id: excludeSessionID },
34124
+ {
34125
+ ...params
34126
+ }
34127
+ );
34128
+ return true;
34129
+ }
34130
+ /**
34131
+ * 删除指定会话的所有的消息
34132
+ * @param context
34133
+ * @param params
34134
+ * @param sessionid 会话真实id
34135
+ * @returns
34136
+ */
34137
+ async clearAllMessageBySessionId(context, params, realID) {
34138
+ if (!realID)
34139
+ return false;
34140
+ const { clearAllMessageSessionAppDEActionId } = this.utilParams;
34141
+ if (!clearAllMessageSessionAppDEActionId)
34142
+ return false;
34143
+ const sessionService = await this.getSessionService(context);
34144
+ if (!sessionService)
34145
+ return false;
34146
+ const tempContext = context.clone();
34147
+ tempContext[this.sessionAppEntityName.toLowerCase()] = realID;
34148
+ await sessionService.exec(
34149
+ clearAllMessageSessionAppDEActionId,
34150
+ tempContext,
34151
+ { id: realID },
34152
+ {
34153
+ ...params
34154
+ }
34155
+ );
34156
+ return true;
34157
+ }
34108
34158
  };
34109
34159
 
34110
34160
  // src/service/mqtt/mqtt.service.ts
@@ -37074,6 +37124,15 @@ var ViewController = class extends BaseController {
37074
37124
  * @param {CTX} [ctx]
37075
37125
  */
37076
37126
  constructor(model, context, params, ctx) {
37127
+ let parentData;
37128
+ if (params && params.parentData) {
37129
+ try {
37130
+ parentData = JSON.parse(params.parentData);
37131
+ } catch (err) {
37132
+ ibiz.log.error(err);
37133
+ }
37134
+ delete params.parentData;
37135
+ }
37077
37136
  const _model = ibiz.util.layoutPanel.fill(model);
37078
37137
  super(_model, IBizContext4.create({}, context), params || {}, new CTX(ctx));
37079
37138
  this.session = {};
@@ -37133,6 +37192,9 @@ var ViewController = class extends BaseController {
37133
37192
  * @memberof ViewController
37134
37193
  */
37135
37194
  this.hasPermErrPending = false;
37195
+ if (parentData) {
37196
+ this.parentData = parentData;
37197
+ }
37136
37198
  if (ctx) {
37137
37199
  ctx.registerController(this.model.name, this);
37138
37200
  }
@@ -43030,12 +43092,7 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
43030
43092
  ibiz.i18n.t("runtime.uiAction.noConfiguredopenView")
43031
43093
  );
43032
43094
  }
43033
- const { resultContext, resultParams } = await this.handleParams(
43034
- action,
43035
- context,
43036
- data,
43037
- params
43038
- );
43095
+ const { resultContext, resultParams, resultData } = await this.handleParams(action, context, data, params);
43039
43096
  const { xdataControlName = "" } = view.model;
43040
43097
  const xdataControl = view.getController(
43041
43098
  xdataControlName
@@ -43049,7 +43106,13 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
43049
43106
  frontPSAppView,
43050
43107
  resultContext,
43051
43108
  resultParams,
43052
- { ctx: view.getCtx(), event, noWaitRoute, ...options }
43109
+ {
43110
+ ctx: view.getCtx(),
43111
+ event,
43112
+ noWaitRoute,
43113
+ parentData: resultData,
43114
+ ...options
43115
+ }
43053
43116
  );
43054
43117
  if (!(res == null ? void 0 : res.ok)) {
43055
43118
  actionResult.cancel = true;
@@ -56728,6 +56791,14 @@ var FormMDCtrlRepeaterController = class extends FormMDCtrlController {
56728
56791
  (item) => this.setDefaultValue(item, "update")
56729
56792
  ) : this.setDefaultValue(this.value, "update");
56730
56793
  }
56794
+ if (state === "DRAFT" /* DRAFT */ && this.isSingleData) {
56795
+ let item = {};
56796
+ if (this.value) {
56797
+ item = { ...this.value };
56798
+ }
56799
+ this.setDefaultValue(item, "create");
56800
+ this.setValue(item);
56801
+ }
56731
56802
  }
56732
56803
  /**
56733
56804
  * @description 设置默认值
@@ -59733,10 +59804,7 @@ var GridController = class extends MDControlController {
59733
59804
  */
59734
59805
  calcAggResult(items) {
59735
59806
  Object.values(this.fieldColumns).forEach((column) => {
59736
- const result = column.calcFieldAgg(items);
59737
- if (result) {
59738
- this.state.aggResult[column.model.id] = result;
59739
- }
59807
+ this.state.aggResult[column.model.id] = column.calcFieldAgg(items);
59740
59808
  });
59741
59809
  }
59742
59810
  /**
@@ -61148,7 +61216,9 @@ var GridFieldColumnController = class extends GridColumnController {
61148
61216
  if (!this.grid.state.remoteAggResult) {
61149
61217
  return;
61150
61218
  }
61151
- aggValue = this.grid.state.remoteAggResult[fieldName] || "";
61219
+ aggValue = this.grid.state.remoteAggResult[fieldName];
61220
+ if (isNil34(aggValue))
61221
+ aggValue = "";
61152
61222
  } else {
61153
61223
  if (isNil34(aggMode) || aggMode === "NONE") {
61154
61224
  return;
@@ -76010,20 +76080,22 @@ var FileUtil = class {
76010
76080
  return uploadHeaders;
76011
76081
  }
76012
76082
  /**
76013
- * @description 计算OSSCat参数
76014
- * @protected
76015
- * @param {string} url
76016
- * @param {IContext} context
76017
- * @param {string} [OSSCatName]
76018
- * @returns {*} {string}
76019
- * @memberof FileUtil
76083
+ * 计算OSSCat参数
76084
+ * @param url
76085
+ * @param context
76086
+ * @param OSSCatName
76087
+ * @param enableNoAccess 若启用无权限模式则在文件存储目录后面拼接特殊字符'$'
76088
+ * @returns
76020
76089
  */
76021
- calcOSSCatUrl(url, context, OSSCatName) {
76090
+ calcOSSCatUrl(url, context, OSSCatName, enableNoAccess = false) {
76022
76091
  var _a3;
76023
76092
  let uploadUrl = "".concat(ibiz.env.baseUrl, "/").concat(ibiz.env.appId).concat(url);
76024
76093
  const app = ibiz.hub.getApp(context.srfappid);
76025
76094
  const OSSCat = OSSCatName || app.model.defaultOSSCat || ((_a3 = app.model.userParam) == null ? void 0 : _a3.DefaultOSSCat);
76026
- uploadUrl = uploadUrl.replace("/{cat}", OSSCat ? "/".concat(OSSCat) : "");
76095
+ uploadUrl = uploadUrl.replace(
76096
+ "/{cat}",
76097
+ OSSCat ? "/".concat(OSSCat).concat(enableNoAccess ? "$" : "") : ""
76098
+ );
76027
76099
  return uploadUrl;
76028
76100
  }
76029
76101
  /**
@@ -76031,7 +76103,7 @@ var FileUtil = class {
76031
76103
  * @param {IContext} context
76032
76104
  * @param {IParams} params
76033
76105
  * @param {IData} [data={}]
76034
- * @param {IData} [extraParams={}]
76106
+ * @param {IApiFileUpDownExtraParams} [extraParams={}]
76035
76107
  * @returns {*} {{
76036
76108
  * uploadUrl: string;
76037
76109
  * downloadUrl: string;
@@ -76039,16 +76111,23 @@ var FileUtil = class {
76039
76111
  * @memberof FileUtil
76040
76112
  */
76041
76113
  calcFileUpDownUrl(context, params, data = {}, extraParams = {}) {
76042
- const { uploadParams, exportParams, osscat: OSSCatName } = extraParams;
76114
+ const {
76115
+ uploadParams,
76116
+ exportParams,
76117
+ osscat: OSSCatName,
76118
+ enableNoAccess
76119
+ } = extraParams;
76043
76120
  let uploadUrl = this.calcOSSCatUrl(
76044
76121
  ibiz.env.uploadFileUrl,
76045
76122
  context,
76046
- OSSCatName
76123
+ OSSCatName,
76124
+ enableNoAccess
76047
76125
  );
76048
76126
  let downloadUrl = this.calcOSSCatUrl(
76049
76127
  "".concat(ibiz.env.downloadFileUrl, "/%fileId%"),
76050
76128
  context,
76051
- OSSCatName
76129
+ OSSCatName,
76130
+ enableNoAccess
76052
76131
  );
76053
76132
  let _uploadParams = {};
76054
76133
  let _exportParams = {};
@@ -76102,15 +76181,15 @@ var FileUtil = class {
76102
76181
  * params: IParams;
76103
76182
  * data: IData;
76104
76183
  * file: { fileId: string } & IData;
76105
- * extraParams?: IData;
76184
+ * extraParams?: IApiFileUpDownExtraParams;
76106
76185
  * downloadTicketParams?: { appEntityTag?: string; dataFieldTag?: string };
76107
76186
  * })} [downloadParams]
76108
76187
  * @param {boolean} [enableDownloadTicket]
76109
76188
  * @returns {*} {Promise<void>}
76110
76189
  * @memberof FileUtil
76111
76190
  */
76112
- async fileDownload(url, name2, downloadParams, enableDownloadTicket) {
76113
- const tempEnableDownloadTicket = this.getEnableDownloadTicket(enableDownloadTicket);
76191
+ async fileDownload(url, name2, downloadParams, enableDownloadTicket, enableNoAccess) {
76192
+ const tempEnableDownloadTicket = !enableNoAccess && this.getEnableDownloadTicket(enableDownloadTicket);
76114
76193
  let tempDownloadUrl = url;
76115
76194
  if (tempEnableDownloadTicket && downloadParams) {
76116
76195
  const { context, params, data, file, extraParams, downloadTicketParams } = downloadParams;
@@ -76285,16 +76364,16 @@ var FileUtil = class {
76285
76364
  * params: IParams;
76286
76365
  * data: IData;
76287
76366
  * file: { fileId: string } & IData;
76288
- * extraParams?: IData;
76367
+ * extraParams?: IApiFileUpDownExtraParams;
76289
76368
  * downloadTicketParams?: { appEntityTag?: string; dataFieldTag?: string };
76290
76369
  * })} [downloadParams]
76291
76370
  * @param {boolean} [enableDownloadTicket]
76292
76371
  * @returns {*} {Promise<IData>}
76293
76372
  * @memberof FileUtil
76294
76373
  */
76295
- async requestFile(url, responseType, downloadParams, enableDownloadTicket) {
76374
+ async requestFile(url, responseType, downloadParams, enableDownloadTicket, enableNoAccess) {
76296
76375
  let tempDownloadUrl = url;
76297
- const tempEnableDownloadTicket = this.getEnableDownloadTicket(enableDownloadTicket);
76376
+ const tempEnableDownloadTicket = !enableNoAccess && this.getEnableDownloadTicket(enableDownloadTicket);
76298
76377
  if (tempEnableDownloadTicket && downloadParams) {
76299
76378
  const { context, params, data, file, extraParams, downloadTicketParams } = downloadParams;
76300
76379
  const { downloadUrl } = ibiz.util.file.calcFileUpDownUrl(
@@ -76331,6 +76410,21 @@ var FileUtil = class {
76331
76410
  }
76332
76411
  return response.data;
76333
76412
  }
76413
+ /**
76414
+ * @description base64字符串转Blob对象
76415
+ * @param {string} base64
76416
+ * @returns {*} {Blob}
76417
+ * @memberof FileUtil
76418
+ */
76419
+ base64ToBlob(base64) {
76420
+ const binStr = atob(base64.split(",")[1]);
76421
+ const len = binStr.length;
76422
+ const arr = new Uint8Array(len);
76423
+ for (let i = 0; i < len; i++) {
76424
+ arr[i] = binStr.charCodeAt(i);
76425
+ }
76426
+ return new Blob([arr]);
76427
+ }
76334
76428
  };
76335
76429
 
76336
76430
  // src/utils/short-cut/short-cut-util.ts
@@ -82988,6 +83082,9 @@ var _OpenAppViewCommand = class _OpenAppViewCommand {
82988
83082
  */
82989
83083
  async openModal(appView, context, params = {}, opts = {}) {
82990
83084
  const { modalOption } = opts;
83085
+ if (opts.parentData) {
83086
+ params.parentData = JSON.stringify(opts.parentData);
83087
+ }
82991
83088
  return ibiz.openView.modal(appView.id, context, params, {
82992
83089
  ...modalOption,
82993
83090
  ctx: opts.ctx
@@ -83010,6 +83107,9 @@ var _OpenAppViewCommand = class _OpenAppViewCommand {
83010
83107
  if (!event) {
83011
83108
  throw new RuntimeError70(ibiz.i18n.t("runtime.command.app.missingEvent"));
83012
83109
  }
83110
+ if (opts.parentData) {
83111
+ params.parentData = JSON.stringify(opts.parentData);
83112
+ }
83013
83113
  return ibiz.openView.popover(appView.id, event, context, params, {
83014
83114
  ...modalOption,
83015
83115
  ctx: opts.ctx
@@ -83029,6 +83129,9 @@ var _OpenAppViewCommand = class _OpenAppViewCommand {
83029
83129
  */
83030
83130
  async openDrawer(appView, context, params = {}, opts = {}) {
83031
83131
  const { modalOption } = opts;
83132
+ if (opts.parentData) {
83133
+ params.parentData = JSON.stringify(opts.parentData);
83134
+ }
83032
83135
  return ibiz.openView.drawer(appView.id, context, params, {
83033
83136
  ...modalOption,
83034
83137
  ctx: opts.ctx