@ibiz-template/vue3-components 0.7.8 → 0.7.9

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 (42) hide show
  1. package/dist/index-GAvjatsT.js +4 -0
  2. package/dist/index-dsmTOMa5.js +1 -0
  3. package/dist/index-sGpuIVYT.js +1 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/wang-editor-mq8sQSDK.js +1 -0
  7. package/dist/{xlsx-util-3My8gW7-.js → xlsx-util-Fc3O95jH.js} +1 -1
  8. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +2 -1
  9. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.mjs +7 -3
  10. package/es/control/dashboard/dashboard-design/dashboard-design.mjs +22 -28
  11. package/es/control/dashboard/portlet/chart-portlet/chart-portlet.mjs +13 -1
  12. package/es/control/dashboard/portlet/list-portlet/list-portlet.mjs +13 -1
  13. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.d.ts +1 -0
  14. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.mjs +10 -1
  15. package/es/control/dashboard/portlet/view-portlet/view-portlet.mjs +13 -1
  16. package/es/editor/html/html-editor.controller.d.ts +25 -2
  17. package/es/editor/html/html-editor.controller.mjs +38 -1
  18. package/es/editor/html/wang-editor/ai/ai-modules.d.ts +9 -0
  19. package/es/editor/html/wang-editor/ai/ai-modules.mjs +32 -0
  20. package/es/editor/html/wang-editor/wang-editor.mjs +96 -3
  21. package/es/editor/text-box/input/input.mjs +9 -5
  22. package/es/locale/en/index.d.ts +204 -0
  23. package/es/locale/en/index.mjs +205 -0
  24. package/es/locale/zh-CN/index.d.ts +204 -0
  25. package/es/locale/zh-CN/index.mjs +205 -0
  26. package/lib/control/dashboard/custom-dashboard-container/custom-dashboard-container.cjs +6 -2
  27. package/lib/control/dashboard/dashboard-design/dashboard-design.cjs +22 -28
  28. package/lib/control/dashboard/portlet/chart-portlet/chart-portlet.cjs +12 -0
  29. package/lib/control/dashboard/portlet/list-portlet/list-portlet.cjs +12 -0
  30. package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.cjs +10 -1
  31. package/lib/control/dashboard/portlet/view-portlet/view-portlet.cjs +12 -0
  32. package/lib/editor/html/html-editor.controller.cjs +37 -0
  33. package/lib/editor/html/wang-editor/ai/ai-modules.cjs +34 -0
  34. package/lib/editor/html/wang-editor/wang-editor.cjs +95 -2
  35. package/lib/editor/text-box/input/input.cjs +9 -5
  36. package/lib/locale/en/index.cjs +205 -0
  37. package/lib/locale/zh-CN/index.cjs +205 -0
  38. package/package.json +7 -7
  39. package/dist/index-Rqr5SnvQ.js +0 -1
  40. package/dist/index-oydyrl0O.js +0 -4
  41. package/dist/index-x-jLCilD.js +0 -1
  42. package/dist/wang-editor-XnzvMz46.js +0 -1
@@ -117,6 +117,211 @@ var index = {
117
117
  cancelEditPrompt: "\u53D6\u6D88\u7F16\u8F91\u5C06\u65E0\u6CD5\u4FDD\u5B58\u4FEE\u6539\u7684\u5185\u5BB9\uFF0C\u4E14\u4E0D\u80FD\u627E\u56DE\u3002",
118
118
  confirmCancel: "\u786E\u8BA4\u53D6\u6D88"
119
119
  }
120
+ },
121
+ // runtime
122
+ runtime: {
123
+ common: {
124
+ unrealized: "\u672A\u5B9E\u73B0"
125
+ },
126
+ command: {
127
+ app: {
128
+ notFindApplicationFunction: "\u627E\u4E0D\u5230\u53EB{appFuncId}\u7684\u5E94\u7528\u529F\u80FD",
129
+ notFindApplicationFunctionYype: "\u672A\u652F\u6301\u7684\u5E94\u7528\u529F\u80FD\u7C7B\u578B:{appFuncType}",
130
+ notFindApplicationView: "\u5E94\u7528\u89C6\u56FE[{appViewId}]\u4E0D\u5B58\u5728"
131
+ }
132
+ },
133
+ controller: {
134
+ common: {
135
+ control: {
136
+ componentActivation: "\u90E8\u4EF6[{name}]({id})\u6FC0\u6D3B",
137
+ componentPause: "\u90E8\u4EF6[{name}]({id})\u6682\u505C",
138
+ unsupportedType: "\u4E0D\u652F\u6301\u7684\u5B9E\u4F53\u6570\u636E\u53D8\u66F4\u7C7B\u578B: {type}",
139
+ uncheckedData: "\u672A\u9009\u4E2D\u6570\u636E",
140
+ dataDeletion: "\u6570\u636E\u5220\u9664",
141
+ confirmDataDeletion: "\u786E\u8BA4\u5220\u9664\u6570\u636E\uFF1F",
142
+ noImportModel: "\u6CA1\u6709\u914D\u7F6E\u5BFC\u5165\u6A21\u578B\uFF01"
143
+ },
144
+ editor: {
145
+ editorNotConfigured: "\u7F16\u8F91\u5668\u7C7B\u578B[{editorType}]\uFF0C\u672A\u914D\u7F6E\u4EE3\u7801\u8868"
146
+ },
147
+ view: {
148
+ viewActivation: "\u89C6\u56FE[{name}]({id})\u6FC0\u6D3B",
149
+ viewPause: "\u89C6\u56FE[{name}]({id})\u6682\u505C",
150
+ viewDestroy: "\u89C6\u56FE[{name}]({id})\u9500\u6BC1",
151
+ notFoundViewEngine: "\u672A\u627E\u5230\u89C6\u56FE\u5F15\u64CE\u5B9E\u73B0\uFF1A",
152
+ noSupportBehavior: "\u6CA1\u6709\u5F15\u64CE\u652F\u6301\u9884\u7F6E\u754C\u9762\u884C\u4E3A{key}"
153
+ }
154
+ },
155
+ control: {
156
+ menu: {
157
+ notFindMenu: "\u627E\u4E0D\u5230\u540D\u4E3A{id}\u7684\u83DC\u5355\u9879",
158
+ noConfigured: "\u6CA1\u6709\u914D\u7F6E\u5E94\u7528\u529F\u80FD"
159
+ },
160
+ calendar: {
161
+ missingViewLogic: "\u7F3A\u5C11{itemType}_opendata\u7684\u89C6\u56FE\u903B\u8F91",
162
+ notFoundModel: "\u672A\u627E\u5230\u65E5\u5386\u9879\u6A21\u578B"
163
+ },
164
+ chart: {
165
+ notConfiguredX: "\u5E8F\u5217\u6CA1\u6709\u914D\u7F6EX\u5750\u6807\u8F74",
166
+ notConfiguredY: "\u5E8F\u5217\u6CA1\u6709\u914D\u7F6EY\u5750\u6807\u8F74",
167
+ missingClassification: "\u7F3A\u5C11\u5206\u7C7B\u5C5E\u6027\u914D\u7F6E",
168
+ missingValue: "\u7F3A\u5C11\u503C\u5C5E\u6027\u914D\u7F6E",
169
+ notSupportSequence: "\u56FE\u8868\u6682\u672A\u652F\u6301\u5E8F\u5217\u7C7B\u578B{seriesType}",
170
+ notFindSequence: "\u627E\u4E0D\u5230{seriesIndex}\u5E8F\u5217\u7684generator\uFF01",
171
+ notInitialised: "chart\u5BF9\u8C61\u6CA1\u6709\u6B63\u786E\u521D\u59CB\u5316",
172
+ notCalculated: "options\u8FD8\u6CA1\u8BA1\u7B97"
173
+ },
174
+ dataView: {
175
+ noBehaviourGroup: "\u64CD\u4F5C\u9879\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A\u7EC4",
176
+ noBehaviourGroupAction: "\u64CD\u4F5C\u9879\u754C\u9762\u884C\u4E3A\u7EC4\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A",
177
+ propertiesNotConfigured: "\u5206\u7EC4\u5C5E\u6027\u6CA1\u6709\u914D\u7F6E",
178
+ tableNotConfigured: "\u5206\u7EC4\u4EE3\u7801\u8868\u6CA1\u6709\u914D\u7F6E",
179
+ sortingItems: "\u542F\u7528\u6392\u5E8F\u7684\u9879\u5FC5\u987B\u5173\u8054\u5B9E\u4F53\u5C5E\u6027"
180
+ },
181
+ expBar: {
182
+ unableMore: "\u65E0\u6CD5\u83B7\u53D6\u591A\u6570\u636E\u90E8\u4EF6[{xdataControlName}]\u63A7\u5236\u5668",
183
+ multiNode: "\u591A\u8282\u70B9\u89C6\u56FE\u7531\u5B50\u7C7B\u5B9E\u73B0",
184
+ notFindNodeModel: "\u627E\u4E0D\u5230{nodeId}\u7684\u8282\u70B9\u6A21\u578B"
185
+ },
186
+ form: {
187
+ formCompletion: "\u8BF7\u68C0\u67E5\u8868\u5355\u586B\u5199\uFF01",
188
+ savedSuccessfully: "{srfmajortext}\u4FDD\u5B58\u6210\u529F",
189
+ prompt: "\u63D0\u793A",
190
+ deletion: "\u786E\u8BA4\u5220\u9664\u5417\uFF1F",
191
+ itemUpdate: "\u6CA1\u627E\u5230{formItemUpdateId}\u8868\u5355\u9879\u66F4\u65B0",
192
+ processStarted: "\u6D41\u7A0B\u542F\u52A8\u6210\u529F",
193
+ processSubmitted: "\u6D41\u7A0B\u63D0\u4EA4\u6210\u529F",
194
+ lackBehavior: "\u7F3A\u5C11\u8FD4\u56DE\u64CD\u4F5C\u5B9E\u4F53\u884C\u4E3A",
195
+ initializationException: "\u521D\u59CB\u5316\u5F02\u5E38: \u8868\u5355\u6210\u5458[{id}]({detailType})\u5DF2\u5B58\u5728\uFF0C\u8868\u5355\u9879\u6807\u8BC6\u91CD\u590D\u8BF7\u68C0\u67E5\u914D\u7F6E",
196
+ relationshipInterface: "\u63A5\u6536\u5230\u5173\u7CFB\u754C\u9762\u7684\u6570\u636E\u53D8\u66F4\u4E8B\u4EF6",
197
+ fillIn: "\u8BF7\u586B\u5199{caption}",
198
+ unconfiguredWidgets: "\u591A\u6570\u636E\u90E8\u4EF6\u672A\u914D\u7F6E\u5185\u5BB9\u90E8\u4EF6",
199
+ noFoundFormController: "\u6CA1\u6709\u627E\u5230\u5BF9\u5E94{id}\u7684\u8868\u5355\u63A7\u5236\u5668",
200
+ multiDataAddData: "\u591A\u6570\u636E\u90E8\u4EF6\u7C7B\u578B{contentType}\u6682\u4E0D\u652F\u6301\u6DFB\u52A0\u6570\u636E",
201
+ mdControllerNotExist: "mdController\u4E0D\u5B58\u5728",
202
+ repeaterNotSupported: "\u6682\u4E0D\u652F\u6301\u91CD\u590D\u5668\u6837\u5F0F{detailStyle}",
203
+ searchTerms: "\u6CA1\u6709\u627E\u5230\u53EF\u4EE5\u5E94\u7528\u7684\u641C\u7D22\u6761\u4EF6",
204
+ saveSearch: "\u6CA1\u6709\u627E\u5230\u4FDD\u5B58\u7684\u641C\u7D22\u6761\u4EF6"
205
+ },
206
+ gantt: {
207
+ notNode: "\u4E0D\u662F\u5B9E\u4F53\u7518\u7279\u8282\u70B9\u6570\u636E",
208
+ rowData: "\u884C\u6570\u636E\u4E0D\u5B58\u5728",
209
+ simpleMode: "\u7B80\u5355\u6A21\u5F0F\uFF0C\u4E0D\u4FDD\u5B58",
210
+ nonentity: "\u975E\u5B9E\u4F53\u8282\u70B9\u6570\u636E\u4E0D\u80FD\u4FDD\u5B58",
211
+ notChange: "\u503C\u6CA1\u6709\u53D1\u751F\u6539\u53D8",
212
+ dataDeleted: "\u6570\u636E[{str}]\u5220\u9664\u6210\u529F!",
213
+ firstComplete: "\u8BF7\u5148\u5B8C\u6210\u5F53\u524D\u884C\u7F16\u8F91\u4E2D\u7684\u884C\u7684\u64CD\u4F5C",
214
+ notSupport: "{treeNodeType}\u8282\u70B9\u7C7B\u578B\u672A\u652F\u6301"
215
+ },
216
+ grid: {
217
+ unsupported: "\u672A\u652F\u6301\u7684\u7C7B\u578B{type}",
218
+ attributeColumns: "\u6CA1\u6709\u914D\u7F6E\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217",
219
+ notCodeTable: "\u5206\u7EC4\u5C5E\u6027\u7684\u5C5E\u6027\u5217{groupFieldName}\u6CA1\u6709\u914D\u7F6E\u4EE3\u7801\u8868",
220
+ configureFirstColumn: "\u8BF7\u5C06\u5206\u7EC4\u5C5E\u6027\u5217{groupFieldName}\u914D\u7F6E\u4E3A\u7B2C\u4E00\u5217",
221
+ requiresCodeTable: "\u4EE3\u7801\u8868\u5206\u7EC4\u6A21\u5F0F\u9700\u8981\u914D\u7F6E\u4EE3\u7801\u8868",
222
+ notMatchCodeTable: "\u5206\u7EC4\u4EE3\u7801\u8868\u4E0E\u5C5E\u6027\u5217{groupFieldName}\u7684\u4EE3\u7801\u8868\u4E0D\u4E00\u81F4",
223
+ convertedValue: "{srfmajortext}\u7684\u6392\u5E8F\u5C5E\u6027\u65E0\u6CD5\u8F6C\u6362\u6210\u6570\u503C",
224
+ missingConfiguration: "\u7F3A\u5C11\u914D\u7F6E\u805A\u5408\u5B9E\u4F53\u6216\u805A\u5408\u6570\u636E\u96C6",
225
+ newRows: "\u4E0D\u652F\u6301\u65B0\u5EFA\u884C",
226
+ saveCancel: "\u884C\u6570\u636E\u6821\u9A8C\u4E0D\u901A\u8FC7\uFF0C\u4FDD\u5B58\u53D6\u6D88",
227
+ notSupportRowEditing: "\u5F53\u524D\u8868\u683C\u4E0D\u652F\u6301\u884C\u7F16\u8F91\uFF0C\u65E0\u6CD5\u5207\u6362\u5F00\u542F\u884C\u7F16\u8F91",
228
+ lineEditing: "\u540C\u65F6\u53EA\u80FD\u6709\u4E00\u884C\u5F00\u542F\u884C\u7F16\u8F91",
229
+ updateColumns: "\u6CA1\u627E\u5230{updateId}\u7F16\u8F91\u5217\u66F4\u65B0",
230
+ exported: "\u65E0\u5BFC\u51FA\u6570\u636E",
231
+ tabularColumns: "\u65E0\u8868\u683C\u5217",
232
+ corresponding: "\u672A\u627E\u5230\u5BF9\u5E94\u7684\u8868\u683C\u6570\u636E\u9879[{deField}]",
233
+ pickedUpData: "\u672A\u5728\u884C\u6570\u636E\u4E2D\u53D6\u5230 {valueItem} \u7684\u503C",
234
+ notSupportedMode: "\u6682\u672A\u652F\u6301\u5C5E\u6027\u5217\u805A\u5408\u6A21\u5F0F{aggMode}",
235
+ remoteAggregation: "\u8FDC\u7A0B\u805A\u5408\u6682\u672A\u652F\u6301",
236
+ aggregateMode: "\u6682\u672A\u652F\u6301\u805A\u5408\u6A21\u5F0F{aggMode}",
237
+ formattingError: "{aggValue} \u503C\u683C\u5F0F\u5316\u9519\u8BEF",
238
+ checksumErrors: "{codeName}\u6821\u9A8C\u62A5\u9519,{fieldName}",
239
+ behaviorGroup: "\u64CD\u4F5C\u5217\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A\u7EC4",
240
+ interfaceBehavior: "\u64CD\u4F5C\u5217\u754C\u9762\u884C\u4E3A\u7EC4\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A"
241
+ },
242
+ kanban: {
243
+ sortingProperties: "\u6392\u5E8F\u5C5E\u6027\u6CA1\u914D\u7F6E",
244
+ sortDirection: "\u6392\u5E8F\u65B9\u5411\u6CA1\u914D\u7F6E",
245
+ groupedOn: "\u770B\u677F\u90E8\u4EF6\u5FC5\u987B\u5F00\u542F\u5206\u7EC4",
246
+ adjustmentsGroup: "\u5F53\u524D\u770B\u677F\u4E0D\u5141\u8BB8\u8C03\u6574\u5206\u7EC4\uFF01",
247
+ notAllowReorder: "\u5F53\u524D\u770B\u677F\u4E0D\u5141\u8BB8\u8C03\u6574\u6B21\u5E8F\uFF01"
248
+ },
249
+ meditViewPanel: {
250
+ DraftNew: "\u8349\u7A3F--\u65B0\u5EFA",
251
+ dataExist: "\u7F16\u8F91\u89C6\u56FE\u9762\u677F\u90E8\u4EF6UI\u6570\u636E\u4E0D\u5B58\u5728"
252
+ },
253
+ panel: {
254
+ panelData: "\u672A\u83B7\u53D6\u5230\u9762\u677F\u6570\u636E"
255
+ },
256
+ reportPanel: {
257
+ reportType: "\u62A5\u8868\u9762\u677F\u751F\u6210\u5668\u5DE5\u5382\u53C2\u6570\u9519\u8BEF\uFF0C\u62A5\u8868\u9762\u677F\u672A\u6307\u5B9A\u62A5\u8868\u7C7B\u578B",
258
+ notImplemented: "\u6307\u5B9A\u62A5\u8868{reportType}\u7C7B\u578B\u62A5\u8868\u9762\u677F\u751F\u6210\u5668\u6682\u672A\u5B9E\u73B0"
259
+ },
260
+ searchBar: {
261
+ notFoundEntity: "\u627E\u4E0D\u5230\u5C5E\u6027{targetField}\u5BF9\u5E94\u7684\u5173\u8054\u5B9E\u4F53",
262
+ missingModel: "\u7F3A\u5C11\u7F16\u8F91\u5668\u6A21\u578B",
263
+ JSONFormat: "{data}\u975E\u6807\u51C6JSON\u683C\u5F0F:"
264
+ },
265
+ toolbar: {
266
+ notFound: "\u6CA1\u6709\u627E\u5230\u754C\u9762\u884C\u4E3A\u6A21\u578B{actionId}"
267
+ },
268
+ tree: {
269
+ notFoundTreeData: "\u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u6811\u8282\u70B9\u6570\u636E",
270
+ sortAttribute: "\u7F3A\u5C11\u914D\u7F6E\u6392\u5E8F\u5C5E\u6027",
271
+ editMode: "\u6811\u8282\u70B9\u6CA1\u6709\u914D\u7F6E\u7F16\u8F91\u6A21\u5F0F\uFF1A\u540D\u79F0",
272
+ nodeData: "\u4E0D\u662F\u5B9E\u4F53\u6811\u8282\u70B9\u6570\u636E",
273
+ notFoundTreeNode: "\u672A\u627E\u5230\u6811\u8282\u70B9"
274
+ },
275
+ treeGrid: {
276
+ columnsSchema: "\u6811\u8868\u683C\u65E0\u503C\u5217\u6A21\u5F0F",
277
+ columnMode: "\u6811\u8868\u683C\u65E0\u7236\u503C\u5217\u6A21\u5F0F"
278
+ },
279
+ treeGridEx: {
280
+ notConfigured: "\u8282\u70B9\u6CA1\u6709\u914D\u7F6E\u5BF9\u5E94\u8868\u683C\u5217{name}\u7684\u6570\u636E\u9879",
281
+ editItem: "\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u8868\u683C\u5217{name}\u7684\u7F16\u8F91\u9879\u6A21\u578B",
282
+ notPickedUp: "\u672A\u5728\u884C\u6570\u636E\u4E2D\u53D6\u5230 {valueItem} \u7684\u503C",
283
+ behaviorGroup: "{id}\u64CD\u4F5C\u5217\u6CA1\u6709\u914D\u7F6E\u754C\u9762\u884C\u4E3A\u7EC4",
284
+ notSupportCreation: "\u6682\u4E0D\u652F\u6301\u65B0\u5EFA",
285
+ updateBehavior: "\u6811\u8282\u70B9\u6CA1\u6709\u914D\u7F6E\u66F4\u65B0\u5B9E\u4F53\u884C\u4E3A"
286
+ },
287
+ wizardPanel: {
288
+ wizardForm: "\u627E\u4E0D\u5230{activeFormTag}\u7684\u5411\u5BFC\u8868\u5355",
289
+ formController: "\u627E\u4E0D\u5230{activeFormTag}\u7684\u8868\u5355\u63A7\u5236\u5668",
290
+ noConfiguration: "\u6CA1\u6709\u914D\u7F6E\u5411\u5BFC\u8868\u5355\u96C6\u5408",
291
+ wizardFormIdentifier: "\u627E\u4E0D\u5230\u6807\u8BC6\u4E3A{tag}\u7684\u5411\u5BFC\u8868\u5355",
292
+ noPreviousForm: "\u6CA1\u6709\u4E0A\u4E00\u4E2A\u8868\u5355",
293
+ nextStep: "\u627E\u4E0D\u5230\u4E0B\u4E00\u4E2A\u5411\u5BFC\u6B65\u9AA4",
294
+ nextForm: "\u627E\u4E0D\u5230\u4E0B\u4E00\u4E2A\u5411\u5BFC\u8868\u5355"
295
+ }
296
+ },
297
+ utils: {
298
+ buttonState: {
299
+ isFinitenconsistency: "{uiActionId}\u754C\u9762\u884C\u4E3A\u7684\u5B9E\u4F53{appDeName}\u548C\u6570\u636E\u7684\u5B9E\u4F53{appDeId}\u4E0D\u4E00\u81F4"
300
+ },
301
+ counter: {
302
+ decrement: "\u9519\u8BEF\u7684\u8C03\u7528\uFF01decrement\u4E0D\u80FD\u5BF9count\u4E3A0\u8C03\u7528"
303
+ },
304
+ dataFileUtil: {
305
+ notExist: "ibiz.util.getExportExcel\u4E0D\u5B58\u5728",
306
+ loadError: "\u5BFC\u51FA\u6A21\u5757\u52A0\u8F7D\u9519\u8BEF",
307
+ importData: "\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u5BFC\u5165\u6570\u636E\u6A21\u578B"
308
+ },
309
+ valueDefault: {
310
+ notExist: "appdata.context\u4E0D\u5B58\u5728",
311
+ notsupported: "\u9ED8\u8BA4\u503C\u7C7B\u578B[{valueType}]\u672A\u652F\u6301"
312
+ },
313
+ valueEx: {
314
+ objectNameField: "\u7F3A\u5C11objectNameField"
315
+ },
316
+ valueRule: {
317
+ length: "\u5185\u5BB9\u957F\u5EA6\u5FC5\u987B\u5C0F\u4E8E\u7B49\u4E8E{maxLength},\u5F53\u524D\u957F\u5EA6\u4E3A{length}"
318
+ },
319
+ viewMsg: {
320
+ message: "\u627E\u4E0D\u5230\u89C6\u56FE\u6D88\u606F\u7EC4{msgGroupId}\u7684\u6A21\u578B",
321
+ noFound: "\u6CA1\u6709\u627E\u5230{message}\u89C6\u56FE\u6D88\u606F\u6A21\u578B"
322
+ }
323
+ }
324
+ }
120
325
  }
121
326
  };
122
327
 
@@ -67,13 +67,17 @@ const CustomDashboardContainer = /* @__PURE__ */ vue.defineComponent({
67
67
  model: tempModelDatas,
68
68
  config: args.config
69
69
  });
70
+ await props.dashboard.evt.emit("onSavePortlet", void 0);
70
71
  emit("changed", {
71
72
  model: tempModelDatas
72
73
  });
73
74
  };
74
- const onReset = () => {
75
+ const onReset = async () => {
76
+ isInited.value = false;
75
77
  isShowDesign.value = false;
76
- props.dashboard.resetPortlets();
78
+ await props.dashboard.resetPortlets();
79
+ await vue.nextTick();
80
+ isInited.value = true;
77
81
  };
78
82
  const isShowDefault = vue.computed(() => {
79
83
  return customC.customModelData.length === 0;
@@ -102,12 +102,25 @@ const DashboardDesign = /* @__PURE__ */ vue.defineComponent({
102
102
  const list2 = [];
103
103
  const app = ibiz.hub.getApp(ibiz.env.appId);
104
104
  if (app.model.appPortletCats && app.model.appPortlets) {
105
+ const isDEView = customC.model.appDataEntityId;
106
+ const categoryTag = props.dashboard.controlParams.categorytag;
105
107
  app.model.appPortlets.forEach((portlet) => {
106
108
  var _a;
109
+ if (!isDEView && !portlet.enableAppDashboard) {
110
+ return;
111
+ }
112
+ if (isDEView && !portlet.enableDEDashboard) {
113
+ return;
114
+ }
107
115
  const portletCat = (_a = app.model.appPortletCats) == null ? void 0 : _a.find((cat) => {
108
116
  var _a2;
109
117
  return cat.codeName === ((_a2 = portlet.appPortletCat) == null ? void 0 : _a2.codeName);
110
118
  });
119
+ if (categoryTag) {
120
+ if (!portletCat || portletCat.codeName !== categoryTag) {
121
+ return;
122
+ }
123
+ }
111
124
  const temp = {
112
125
  type: "app",
113
126
  portletCodeName: portlet.codeName,
@@ -145,11 +158,8 @@ const DashboardDesign = /* @__PURE__ */ vue.defineComponent({
145
158
  if (filterVal.value) {
146
159
  tempOpens = [filterVal.value];
147
160
  } else {
148
- list.value.forEach((item, index) => {
149
- tempOpens.push(item.type + index);
150
- item.children.forEach((child, index2) => {
151
- tempOpens.push(child.type + index2);
152
- });
161
+ groups.value.forEach((item, index) => {
162
+ tempOpens.push(item.value + index);
153
163
  });
154
164
  }
155
165
  return tempOpens;
@@ -222,8 +232,7 @@ const DashboardDesign = /* @__PURE__ */ vue.defineComponent({
222
232
  return !!model;
223
233
  };
224
234
  const onReset = async () => {
225
- customC.portletConfig = {};
226
- const res = await customC.saveCustomModelData([]);
235
+ const res = await customC.resetCustomModelData();
227
236
  layoutModel.value = res.model;
228
237
  layoutConfig.value = res.config;
229
238
  emit("reset");
@@ -364,32 +373,17 @@ const DashboardDesign = /* @__PURE__ */ vue.defineComponent({
364
373
  "class": this.ns.is("no-filter", true),
365
374
  "default-openeds": this.defaultOpens,
366
375
  "key": "default"
367
- }, _isSlot(_slot2 = this.list.map((item, index) => {
376
+ }, _isSlot(_slot2 = this.groups.map((group, index) => {
368
377
  return vue.createVNode(vue.resolveComponent("el-sub-menu"), {
369
- "key": item.type + index,
370
- "index": item.type + index
378
+ "key": group.value + index,
379
+ "index": group.value + index
371
380
  }, {
372
381
  title: () => {
373
- if (item.type === "app") {
374
- return ibiz.i18n.t("control.dashboard.dashboardDesign.global");
375
- }
376
- return item.name;
382
+ return group.name;
377
383
  },
378
384
  default: () => {
379
- return item.children.map((child, index2) => {
380
- return vue.createVNode(vue.resolveComponent("el-sub-menu"), {
381
- "key": child.type + index2,
382
- "index": child.type + index2
383
- }, {
384
- title: () => {
385
- return child.name;
386
- },
387
- default: () => {
388
- return child.children.map((child2) => {
389
- return renderElMenuItem(child2);
390
- });
391
- }
392
- });
385
+ return group.children.map((child) => {
386
+ return renderElMenuItem(child);
393
387
  });
394
388
  }
395
389
  });
@@ -26,6 +26,18 @@ const ChartPortlet = /* @__PURE__ */ vue.defineComponent({
26
26
  const chart = (_b = props.modelData.controls) == null ? void 0 : _b.find((item) => {
27
27
  return item.controlType === runtime.ControlType.CHART;
28
28
  });
29
+ let timerTag;
30
+ vue.onMounted(() => {
31
+ const timer = props.controller.model.timer;
32
+ if (timer && timer > 0) {
33
+ timerTag = setInterval(() => {
34
+ props.controller.refresh();
35
+ }, timer);
36
+ }
37
+ });
38
+ vue.onBeforeUnmount(() => {
39
+ clearInterval(timerTag);
40
+ });
29
41
  return {
30
42
  ns,
31
43
  chart
@@ -26,6 +26,18 @@ const ListPortlet = /* @__PURE__ */ vue.defineComponent({
26
26
  const list = (_b = props.modelData.controls) == null ? void 0 : _b.find((item) => {
27
27
  return item.controlType === runtime.ControlType.LIST;
28
28
  });
29
+ let timerTag;
30
+ vue.onMounted(() => {
31
+ const timer = props.controller.model.timer;
32
+ if (timer && timer > 0) {
33
+ timerTag = setInterval(() => {
34
+ props.controller.refresh();
35
+ }, timer);
36
+ }
37
+ });
38
+ vue.onBeforeUnmount(() => {
39
+ clearInterval(timerTag);
40
+ });
29
41
  return {
30
42
  ns,
31
43
  list
@@ -19,6 +19,14 @@ const PortletLayout = /* @__PURE__ */ vue.defineComponent({
19
19
  const ns = vue3Util.useNamespace("portlet-layout");
20
20
  const portletType = "portlet-".concat((_a = props.controller.model.portletType) == null ? void 0 : _a.toLowerCase());
21
21
  const c = props.controller;
22
+ const popperClass = vue.computed(() => {
23
+ const classNames = [ns.em("toolbar", "".concat(portletType, "-").concat(c.model.id))];
24
+ const {
25
+ codeName
26
+ } = c.dashboard.view.model;
27
+ classNames.push(ns.em("toolbar", codeName));
28
+ return classNames;
29
+ });
22
30
  const isShowHeader = vue.computed(() => {
23
31
  return c.model.showTitleBar && (c.model.title || c.model.sysImage) || c.model.uiactionGroup;
24
32
  });
@@ -28,6 +36,7 @@ const PortletLayout = /* @__PURE__ */ vue.defineComponent({
28
36
  return {
29
37
  c,
30
38
  ns,
39
+ popperClass,
31
40
  portletType,
32
41
  isShowHeader,
33
42
  onActionClick
@@ -61,7 +70,7 @@ const PortletLayout = /* @__PURE__ */ vue.defineComponent({
61
70
  "action-details": model.uiactionGroup.uiactionGroupDetails,
62
71
  "actions-state": state.actionGroupState,
63
72
  "mode": model.actionGroupExtractMode === "ITEMS" ? "dropdown" : "buttons",
64
- "popperClass": this.ns.em("toolbar", "".concat(this.portletType, "-").concat(model.id)),
73
+ "popperClass": this.popperClass,
65
74
  "onActionClick": this.onActionClick
66
75
  }, null)])]), vue.createVNode("div", {
67
76
  "key": "content",
@@ -24,6 +24,18 @@ const ViewPortlet = /* @__PURE__ */ vue.defineComponent({
24
24
  var _a;
25
25
  const ns = vue3Util.useNamespace("portlet-".concat((_a = props.modelData.portletType) == null ? void 0 : _a.toLowerCase()));
26
26
  const view = props.modelData.portletAppView;
27
+ let timerTag;
28
+ vue.onMounted(() => {
29
+ const timer = props.controller.model.timer;
30
+ if (timer && timer > 0) {
31
+ timerTag = setInterval(() => {
32
+ props.controller.refresh();
33
+ }, timer);
34
+ }
35
+ });
36
+ vue.onBeforeUnmount(() => {
37
+ clearInterval(timerTag);
38
+ });
27
39
  return {
28
40
  ns,
29
41
  view
@@ -20,6 +20,29 @@ class HtmlEditorController extends runtime.EditorController {
20
20
  * 下载参数
21
21
  */
22
22
  __publicField(this, "exportParams");
23
+ /**
24
+ * 应用实体服务
25
+ *
26
+ * @type {IAppDEService}
27
+ * @memberof HtmlEditorController
28
+ */
29
+ __publicField(this, "deService");
30
+ /**
31
+ * 自填模式
32
+ *
33
+ * @author chitanda
34
+ * @date 2023-10-12 10:10:52
35
+ * @type {IAppDEACMode}
36
+ */
37
+ __publicField(this, "deACMode");
38
+ /**
39
+ * AI 聊天自填模式
40
+ *
41
+ * @author chitanda
42
+ * @date 2023-10-12 10:10:37
43
+ * @type {boolean}
44
+ */
45
+ __publicField(this, "chatCompletion", false);
23
46
  }
24
47
  async onInit() {
25
48
  await super.onInit();
@@ -48,6 +71,20 @@ class HtmlEditorController extends runtime.EditorController {
48
71
  }
49
72
  }
50
73
  }
74
+ const model = this.model;
75
+ if (model.appDEACModeId) {
76
+ this.deACMode = await runtime.getDeACMode(
77
+ model.appDEACModeId,
78
+ model.appDataEntityId,
79
+ this.context.srfappid
80
+ );
81
+ if (this.deACMode) {
82
+ if (this.deACMode.actype === "CHATCOMPLETION") {
83
+ this.deService = await ibiz.hub.getApp(model.appId).deService.getService(this.context, model.appDataEntityId);
84
+ this.chatCompletion = true;
85
+ }
86
+ }
87
+ }
51
88
  }
52
89
  }
53
90
 
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class AIMenu {
11
+ constructor() {
12
+ // TS 语法
13
+ __publicField(this, "title", "AI");
14
+ __publicField(this, "tag", "button");
15
+ }
16
+ // 菜单是否需要激活(如选中加粗文本,“加粗”菜单会激活),用不到则返回 false
17
+ isActive(editor) {
18
+ return true;
19
+ }
20
+ // 获取菜单执行时的 value ,用不到则返回空 字符串或 false
21
+ getValue(editor) {
22
+ return "aichart";
23
+ }
24
+ // 菜单是否需要禁用(如选中 H1 ,“引用”菜单被禁用),用不到则返回 false
25
+ isDisabled(editor) {
26
+ return false;
27
+ }
28
+ // 点击菜单时触发的函数
29
+ exec(editor, value) {
30
+ editor.emit("aiClick");
31
+ }
32
+ }
33
+
34
+ exports.AIMenu = AIMenu;
@@ -4,12 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
6
  var editorForVue = require('@wangeditor/editor-for-vue');
7
+ var editor = require('@wangeditor/editor');
7
8
  var qxUtil = require('qx-util');
8
9
  var ramda = require('ramda');
9
10
  var vue3Util = require('@ibiz-template/vue3-util');
10
11
  var core = require('@ibiz-template/core');
11
12
  var ElementPlus = require('element-plus');
12
13
  require('./wang-editor.css');
14
+ var aiModules = require('./ai/ai-modules.cjs');
13
15
 
14
16
  "use strict";
15
17
  const IBizHtml = /* @__PURE__ */ vue.defineComponent({
@@ -72,8 +74,18 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
72
74
  const customParseLinkUrl = (url) => {
73
75
  return url;
74
76
  };
77
+ editor.Boot.registerMenu({
78
+ key: "aichart",
79
+ factory() {
80
+ return new aiModules.AIMenu();
81
+ }
82
+ });
75
83
  const toolbarConfig = {
76
- excludeKeys: ["group-video"]
84
+ excludeKeys: ["group-video"],
85
+ insertKeys: {
86
+ index: 60,
87
+ keys: ["|", "aichart"]
88
+ }
77
89
  };
78
90
  const editorConfig = {
79
91
  placeholder: c.placeHolder,
@@ -145,9 +157,87 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
145
157
  return;
146
158
  editor.destroy();
147
159
  });
160
+ let chatInstance;
161
+ const onClickAI = async () => {
162
+ var _a;
163
+ if (c.deService) {
164
+ const module = await import('@ibiz-template-plugin/ai-chat');
165
+ const chat = module.chat || module.default.chat;
166
+ chatInstance = chat;
167
+ const aiChat = chat.create({
168
+ question: async (arr) => {
169
+ var _a2;
170
+ const id = qxUtil.createUUID();
171
+ await ((_a2 = c.deService) == null ? void 0 : _a2.aiChatSse((msg) => {
172
+ ibiz.log.info("aiChatSse", msg);
173
+ if (msg.actionstate === 20 && msg.actionresult) {
174
+ aiChat.addMessage({
175
+ messageid: id,
176
+ state: msg.actionstate,
177
+ type: "DEFAULT",
178
+ role: "ASSISTANT",
179
+ content: msg.actionresult
180
+ });
181
+ } else if (msg.actionstate === 30 && msg.actionresult) {
182
+ const result = JSON.parse(msg.actionresult);
183
+ const choices = result.choices;
184
+ if (choices && choices.length > 0) {
185
+ aiChat.replaceMessage({
186
+ messageid: id,
187
+ state: msg.actionstate,
188
+ type: "DEFAULT",
189
+ role: "ASSISTANT",
190
+ content: choices[0].content || ""
191
+ });
192
+ }
193
+ } else if (msg.actionstate === 40) {
194
+ aiChat.replaceMessage({
195
+ messageid: id,
196
+ state: msg.actionstate,
197
+ type: "ERROR",
198
+ role: "ASSISTANT",
199
+ content: msg.actionresult
200
+ });
201
+ }
202
+ }, c.context, {}, {
203
+ messages: arr
204
+ }));
205
+ aiChat.addMessage({
206
+ messageid: id,
207
+ state: 10,
208
+ type: "DEFAULT",
209
+ role: "ASSISTANT",
210
+ content: ""
211
+ });
212
+ return true;
213
+ },
214
+ action: (action, message) => {
215
+ if (action === "backfill") {
216
+ emit("change", message.content);
217
+ }
218
+ }
219
+ });
220
+ const res = await ((_a = c.deService) == null ? void 0 : _a.aiChatHistory(c.context, {}));
221
+ if (res.data && Array.isArray(res.data)) {
222
+ res.data.forEach((item) => {
223
+ const msg = {
224
+ messageid: qxUtil.createUUID(),
225
+ state: 30,
226
+ type: "DEFAULT",
227
+ role: item.role,
228
+ content: item.content
229
+ };
230
+ aiChat.addMessage(msg);
231
+ });
232
+ }
233
+ }
234
+ };
148
235
  const handleCreated = (editor) => {
149
236
  editorRef.value = editor;
150
237
  editor.setHtml(valueHtml.value);
238
+ editor.on("aiClick", () => {
239
+ onClickAI();
240
+ });
151
241
  };
152
242
  const handleChange = (editor) => {
153
243
  const html = editor.getHtml();
@@ -391,6 +481,9 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
391
481
  if (resizeObserver) {
392
482
  resizeObserver.disconnect();
393
483
  }
484
+ if (chatInstance) {
485
+ chatInstance.close();
486
+ }
394
487
  });
395
488
  return {
396
489
  ns,
@@ -426,7 +519,7 @@ const IBizHtml = /* @__PURE__ */ vue.defineComponent({
426
519
  return !this.isFullScreen ? vue.createVNode("div", {
427
520
  "class": [this.ns.b(), {
428
521
  [this.ns.b("editor-readonly")]: this.readonlyState
429
- }]
522
+ }, this.ns.is("show-ai", true)]
430
523
  }, [this.renderHeaserToolbar(), this.renderEditorContent(), this.hasEnableEdit && !this.readonlyState ? this.renderFooter() : null]) : vue.createVNode(vue.resolveComponent("el-dialog"), {
431
524
  "modelValue": this.isFullScreen,
432
525
  "onUpdate:modelValue": ($event) => this.isFullScreen = $event,