@ibiz-template/vue3-components 0.7.41-alpha.145 → 0.7.41-alpha.147
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-B_sVovOS.js → index-B-mkNJ8X.js} +1 -1
- package/dist/index-BAfdAw1V.js +339 -0
- package/dist/{index-Qf-i9QxK.js → index-DA2x586m.js} +1 -1
- package/dist/{index.es-CfZdec4G.js → index.es-CSMb33DK.js} +1 -1
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/{wang-editor-CUGqp4Uw.js → wang-editor-LyrHDNOt.js} +1 -1
- package/dist/{xlsx-util-C9Q58lgT.js → xlsx-util-DcIFyyjA.js} +1 -1
- package/es/common/html-doc-preview/html-doc-preview.mjs +3 -0
- package/es/common/no-data/no-data.css +1 -1
- package/es/common/no-data/no-data.mjs +3 -4
- package/es/control/app-menu/app-menu.css +1 -1
- package/es/control/app-menu/app-menu.mjs +40 -8
- package/es/control/calendar/calendar.mjs +17 -21
- package/es/control/drbar/drbar.controller.mjs +12 -1
- package/es/control/drtab/drtab.controller.mjs +12 -1
- package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +1 -14
- package/es/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.mjs +44 -9
- package/es/control/tree/tree.mjs +7 -1
- package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.mjs +2 -1
- package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/cell-edit.mjs +2 -1
- package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/row-edit.mjs +2 -1
- package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/tree-grid-ex-edit-column.mjs +50 -14
- package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.mjs +40 -8
- package/es/editor/ai-chat/embed-ai-chat/embed-ai-chat.mjs +24 -1
- package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
- package/es/editor/text-box/input/input.mjs +8 -1
- package/es/locale/en/index.mjs +0 -6
- package/es/locale/zh-CN/index.mjs +0 -6
- package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.mjs +1 -0
- package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.mjs +6 -0
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.css +1 -1
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.mjs +38 -4
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.mjs +29 -1
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -1
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.mjs +45 -7
- package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.mjs +1 -0
- package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.mjs +1 -0
- package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.mjs +1 -0
- package/es/util/ai-chat-util/ai-chat-util.mjs +124 -24
- package/lib/common/html-doc-preview/html-doc-preview.cjs +3 -0
- package/lib/common/no-data/no-data.cjs +3 -4
- package/lib/common/no-data/no-data.css +1 -1
- package/lib/control/app-menu/app-menu.cjs +40 -8
- package/lib/control/app-menu/app-menu.css +1 -1
- package/lib/control/calendar/calendar.cjs +17 -21
- package/lib/control/drbar/drbar.controller.cjs +12 -1
- package/lib/control/drtab/drtab.controller.cjs +12 -1
- package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +1 -14
- package/lib/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.cjs +42 -7
- package/lib/control/tree/tree.cjs +7 -1
- package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.cjs +2 -1
- package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/cell-edit.cjs +2 -1
- package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/row-edit.cjs +2 -1
- package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/tree-grid-ex-edit-column.cjs +49 -13
- package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.cjs +39 -7
- package/lib/editor/ai-chat/embed-ai-chat/embed-ai-chat.cjs +23 -0
- package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
- package/lib/editor/text-box/input/input.cjs +8 -1
- package/lib/locale/en/index.cjs +0 -6
- package/lib/locale/zh-CN/index.cjs +0 -6
- package/lib/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.cjs +1 -0
- package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.cjs +6 -0
- package/lib/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.cjs +38 -4
- package/lib/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.css +1 -1
- package/lib/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.cjs +28 -0
- package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.cjs +45 -7
- package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -1
- package/lib/panel-component/app-extend-menu/left-side-menu/left-side-menu.cjs +1 -0
- package/lib/panel-component/app-extend-menu/right-side-menu/right-side-menu.cjs +1 -0
- package/lib/panel-component/app-extend-menu/top-side-menu/top-side-menu.cjs +1 -0
- package/lib/util/ai-chat-util/ai-chat-util.cjs +124 -24
- package/package.json +5 -5
- package/src/common/html-doc-preview/html-doc-preview.tsx +4 -0
- package/src/common/no-data/no-data.scss +1 -1
- package/src/common/no-data/no-data.tsx +4 -5
- package/src/control/app-menu/app-menu.scss +4 -0
- package/src/control/app-menu/app-menu.tsx +39 -11
- package/src/control/calendar/calendar.tsx +24 -27
- package/src/control/drbar/drbar.controller.ts +12 -0
- package/src/control/drtab/drtab.controller.ts +12 -0
- package/src/control/grid/grid-column/grid-field-column/grid-field-column.tsx +2 -19
- package/src/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.tsx +60 -13
- package/src/control/tree/tree.tsx +8 -1
- package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.ts +1 -0
- package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/cell-edit.ts +1 -0
- package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/row-edit.ts +1 -0
- package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/tree-grid-ex-edit-column.tsx +60 -14
- package/src/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.tsx +44 -4
- package/src/editor/ai-chat/embed-ai-chat/embed-ai-chat.tsx +37 -2
- package/src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.scss +2 -1
- package/src/editor/text-box/input/input.tsx +10 -1
- package/src/locale/en/index.ts +0 -8
- package/src/locale/zh-CN/index.ts +0 -6
- package/src/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.tsx +1 -0
- package/src/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.tsx +7 -0
- package/src/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.scss +4 -0
- package/src/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.tsx +30 -1
- package/src/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.controller.ts +29 -0
- package/src/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.util.ts +3 -0
- package/src/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.scss +4 -0
- package/src/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.tsx +43 -5
- package/src/panel-component/app-extend-menu/left-side-menu/left-side-menu.tsx +1 -0
- package/src/panel-component/app-extend-menu/right-side-menu/right-side-menu.tsx +1 -0
- package/src/panel-component/app-extend-menu/top-side-menu/top-side-menu.tsx +1 -0
- package/src/util/ai-chat-util/ai-chat-util.ts +161 -25
- package/dist/index-DrjG63wY.js +0 -339
|
@@ -662,6 +662,7 @@ export const CalendarControl = defineComponent({
|
|
|
662
662
|
const findIndex = this.c.state.selectedData.findIndex((data: IData) => {
|
|
663
663
|
return data.deData.srfkey === item.deData.srfkey;
|
|
664
664
|
});
|
|
665
|
+
const htmlCode = this.c.getCustomHtml(item);
|
|
665
666
|
const itemClass = [
|
|
666
667
|
this.ns.b('item'),
|
|
667
668
|
this.semanticClass('item', { item }),
|
|
@@ -671,6 +672,7 @@ export const CalendarControl = defineComponent({
|
|
|
671
672
|
'begin-time',
|
|
672
673
|
date && dayjs(date).isSame(item.beginTime, 'day'),
|
|
673
674
|
),
|
|
675
|
+
this.ns.is('script', !!htmlCode),
|
|
674
676
|
this.ns.is(
|
|
675
677
|
'hidden',
|
|
676
678
|
this.showDateRange &&
|
|
@@ -685,24 +687,28 @@ export const CalendarControl = defineComponent({
|
|
|
685
687
|
this.ns.is('end-time', date && dayjs(date).isSame(item.endTime, 'day')),
|
|
686
688
|
];
|
|
687
689
|
const style = this.calcItemStyle(item);
|
|
690
|
+
let content;
|
|
691
|
+
if (!htmlCode)
|
|
692
|
+
content = this.showDateRange
|
|
693
|
+
? date &&
|
|
694
|
+
(dayjs(date).isSame(item.beginTime, 'day') ||
|
|
695
|
+
dayjs(date).day() === 0 ||
|
|
696
|
+
(!item.beginTime && dayjs(date).isSame(item.endTime, 'day')))
|
|
697
|
+
? item.text
|
|
698
|
+
: ''
|
|
699
|
+
: item.text;
|
|
688
700
|
return (
|
|
689
701
|
<div
|
|
690
702
|
class={itemClass}
|
|
691
|
-
key={item.deData.srfkey}
|
|
692
703
|
style={style}
|
|
704
|
+
key={item.deData.srfkey}
|
|
705
|
+
v-html={htmlCode}
|
|
693
706
|
title={showTitle(item.tips || item.text)}
|
|
694
707
|
onClick={(): Promise<void> => this.c.onRowClick(item)}
|
|
695
708
|
onDblclick={(): Promise<void> => this.c.onDbRowClick(item)}
|
|
696
709
|
onContextmenu={evt => this.onNodeContextmenu(item, evt)}
|
|
697
710
|
>
|
|
698
|
-
{
|
|
699
|
-
? date &&
|
|
700
|
-
(dayjs(date).isSame(item.beginTime, 'day') ||
|
|
701
|
-
dayjs(date).day() === 0 ||
|
|
702
|
-
(!item.beginTime && dayjs(date).isSame(item.endTime, 'day')))
|
|
703
|
-
? item.text
|
|
704
|
-
: ''
|
|
705
|
-
: item.text}
|
|
711
|
+
{content}
|
|
706
712
|
</div>
|
|
707
713
|
);
|
|
708
714
|
};
|
|
@@ -711,16 +717,20 @@ export const CalendarControl = defineComponent({
|
|
|
711
717
|
* 绘制日历项
|
|
712
718
|
*
|
|
713
719
|
* @param {ICalendarItemData} item
|
|
714
|
-
* @param {Date} date
|
|
720
|
+
* @param {[Date]} date
|
|
715
721
|
* @return {*}
|
|
716
722
|
*/
|
|
717
|
-
const renderCalendarItem = (item: ICalendarItemData, date
|
|
723
|
+
const renderCalendarItem = (item: ICalendarItemData, date?: Date) => {
|
|
718
724
|
const model = this.c.model.sysCalendarItems?.find(
|
|
719
725
|
(calendarItems: IData) => {
|
|
720
726
|
return item.itemType === calendarItems.itemType;
|
|
721
727
|
},
|
|
722
728
|
);
|
|
723
|
-
const panel =
|
|
729
|
+
const panel =
|
|
730
|
+
model!.layoutPanel ||
|
|
731
|
+
model!.controlRenders?.find(
|
|
732
|
+
render => render.renderType === 'LAYOUTPANEL',
|
|
733
|
+
)?.layoutPanel;
|
|
724
734
|
return panel
|
|
725
735
|
? renderPanelItem(item, panel, date)
|
|
726
736
|
: renderDefaultItem(item, date);
|
|
@@ -1010,15 +1020,9 @@ export const CalendarControl = defineComponent({
|
|
|
1010
1020
|
* @returns {*}
|
|
1011
1021
|
*/
|
|
1012
1022
|
const renderSlots = () => {
|
|
1013
|
-
const { sysCalendarItems = [] } = this.c.model;
|
|
1014
1023
|
return {
|
|
1015
1024
|
event: ({ data }: { data: ICalendarItemData }) => {
|
|
1016
|
-
|
|
1017
|
-
item => data.itemType === item.itemType,
|
|
1018
|
-
);
|
|
1019
|
-
if (model?.layoutPanel)
|
|
1020
|
-
return renderPanelItem(data, model.layoutPanel);
|
|
1021
|
-
return renderDefaultItem(data);
|
|
1025
|
+
return renderCalendarItem(data);
|
|
1022
1026
|
},
|
|
1023
1027
|
};
|
|
1024
1028
|
};
|
|
@@ -1085,11 +1089,6 @@ export const CalendarControl = defineComponent({
|
|
|
1085
1089
|
<el-timeline class={this.ns.e('timeline')}>
|
|
1086
1090
|
{this.c.state.items.length > 0
|
|
1087
1091
|
? this.c.state.items.map((item: ICalendarItemData) => {
|
|
1088
|
-
const model = this.c.model.sysCalendarItems?.find(
|
|
1089
|
-
(calendarItems: IData) => {
|
|
1090
|
-
return item.itemType === calendarItems.itemType;
|
|
1091
|
-
},
|
|
1092
|
-
);
|
|
1093
1092
|
const time = item[this.c.groupTimeField];
|
|
1094
1093
|
const temptime = time
|
|
1095
1094
|
? dayjs(time).format(this.c.timelineCaptionFormat)
|
|
@@ -1101,9 +1100,7 @@ export const CalendarControl = defineComponent({
|
|
|
1101
1100
|
color={item.bkColor}
|
|
1102
1101
|
timestamp={temptime}
|
|
1103
1102
|
>
|
|
1104
|
-
{
|
|
1105
|
-
? renderPanelItem(item, model.layoutPanel)
|
|
1106
|
-
: renderDefaultItem(item)}
|
|
1103
|
+
{renderCalendarItem(item)}
|
|
1107
1104
|
</el-timeline-item>
|
|
1108
1105
|
);
|
|
1109
1106
|
})
|
|
@@ -122,6 +122,17 @@ export class DRBarController
|
|
|
122
122
|
return this.view.modal.routeDepth;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
/**
|
|
126
|
+
* @description 缓存项集合
|
|
127
|
+
* @readonly
|
|
128
|
+
* @type {string[]}
|
|
129
|
+
* @memberof DRBarController
|
|
130
|
+
*/
|
|
131
|
+
get cacheItems(): string[] {
|
|
132
|
+
const { cacheitems = '' } = this.controlParams;
|
|
133
|
+
return cacheitems.split(',');
|
|
134
|
+
}
|
|
135
|
+
|
|
125
136
|
/**
|
|
126
137
|
* 初始化state的属性
|
|
127
138
|
*
|
|
@@ -550,6 +561,7 @@ export class DRBarController
|
|
|
550
561
|
params,
|
|
551
562
|
viewId: drBarItem.appViewId,
|
|
552
563
|
isRoutePushed,
|
|
564
|
+
isCache: this.cacheItems.includes(drBarItem.id!),
|
|
553
565
|
});
|
|
554
566
|
}
|
|
555
567
|
|
|
@@ -163,6 +163,17 @@ export class DRTabController
|
|
|
163
163
|
return this.controlParams.navbarwidth || ibiz.config.drtab.navbarWidth;
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
+
/**
|
|
167
|
+
* @description 缓存项集合
|
|
168
|
+
* @readonly
|
|
169
|
+
* @type {string[]}
|
|
170
|
+
* @memberof DRBarController
|
|
171
|
+
*/
|
|
172
|
+
get cacheItems(): string[] {
|
|
173
|
+
const { cacheitems = '' } = this.controlParams;
|
|
174
|
+
return cacheitems.split(',');
|
|
175
|
+
}
|
|
176
|
+
|
|
166
177
|
/**
|
|
167
178
|
* Router 对象
|
|
168
179
|
*
|
|
@@ -605,6 +616,7 @@ export class DRTabController
|
|
|
605
616
|
params,
|
|
606
617
|
viewId: drTabPage.appViewId,
|
|
607
618
|
isRoutePushed,
|
|
619
|
+
isCache: this.cacheItems.includes(drTabPage.id!),
|
|
608
620
|
});
|
|
609
621
|
}
|
|
610
622
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { computed, defineComponent, ref
|
|
1
|
+
import { IPanel, IUIActionGroupDetail } from '@ibiz/model-core';
|
|
2
|
+
import { computed, defineComponent, ref } from 'vue';
|
|
3
3
|
import {
|
|
4
4
|
useNamespace,
|
|
5
5
|
computedAsync,
|
|
@@ -171,22 +171,6 @@ export const GridFieldColumn = defineComponent({
|
|
|
171
171
|
)?.layoutPanel;
|
|
172
172
|
};
|
|
173
173
|
|
|
174
|
-
// 绘制项布局面板
|
|
175
|
-
const renderPanelItemLayout = (
|
|
176
|
-
item: IData,
|
|
177
|
-
modelData: ILayoutPanel,
|
|
178
|
-
): VNode => {
|
|
179
|
-
const { context, params } = props.controller;
|
|
180
|
-
return (
|
|
181
|
-
<iBizControlShell
|
|
182
|
-
data={item}
|
|
183
|
-
modelData={modelData}
|
|
184
|
-
context={context}
|
|
185
|
-
params={params}
|
|
186
|
-
></iBizControlShell>
|
|
187
|
-
);
|
|
188
|
-
};
|
|
189
|
-
|
|
190
174
|
return {
|
|
191
175
|
ns,
|
|
192
176
|
zIndex,
|
|
@@ -204,7 +188,6 @@ export const GridFieldColumn = defineComponent({
|
|
|
204
188
|
onActionClick,
|
|
205
189
|
findLayoutPanel,
|
|
206
190
|
onInfoTextChange,
|
|
207
|
-
renderPanelItemLayout,
|
|
208
191
|
};
|
|
209
192
|
},
|
|
210
193
|
render() {
|
|
@@ -12,9 +12,11 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
useNamespace,
|
|
14
14
|
renderTooltip,
|
|
15
|
+
computedAsync,
|
|
15
16
|
useSemanticNode,
|
|
16
17
|
} from '@ibiz-template/vue3-util';
|
|
17
18
|
import { RuntimeError } from '@ibiz-template/core';
|
|
19
|
+
import { IPanel } from '@ibiz/model-core';
|
|
18
20
|
import {
|
|
19
21
|
GridRowState,
|
|
20
22
|
GridFieldEditColumnController,
|
|
@@ -123,16 +125,36 @@ export const GridFieldEditColumn = defineComponent({
|
|
|
123
125
|
: `${id?.toLowerCase()}_tooltip`;
|
|
124
126
|
});
|
|
125
127
|
|
|
128
|
+
const CustomHtml = computedAsync(async () => {
|
|
129
|
+
const html = await props.controller.getCustomHtml(props.row);
|
|
130
|
+
return html;
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
const findLayoutPanel = (): IPanel | undefined => {
|
|
134
|
+
const { controlRenders = [], id } = props.controller.model;
|
|
135
|
+
return controlRenders.find(
|
|
136
|
+
renderItem =>
|
|
137
|
+
renderItem.renderType === 'LAYOUTPANEL' &&
|
|
138
|
+
![
|
|
139
|
+
`${id?.toLowerCase()}_tooltip`,
|
|
140
|
+
`${id?.toLowerCase()}_edit_tooltip`,
|
|
141
|
+
].includes(renderItem.id!),
|
|
142
|
+
)?.layoutPanel;
|
|
143
|
+
};
|
|
144
|
+
|
|
126
145
|
return {
|
|
127
146
|
c,
|
|
128
147
|
ns,
|
|
129
148
|
tooltip,
|
|
149
|
+
editable,
|
|
130
150
|
tooltipId,
|
|
131
151
|
showTitle,
|
|
152
|
+
CustomHtml,
|
|
132
153
|
editorProps,
|
|
133
154
|
componentRef,
|
|
134
155
|
gridEditItemProps,
|
|
135
156
|
rowDataChange,
|
|
157
|
+
findLayoutPanel,
|
|
136
158
|
onInfoTextChange,
|
|
137
159
|
semanticClass,
|
|
138
160
|
semanticStyle,
|
|
@@ -142,6 +164,25 @@ export const GridFieldEditColumn = defineComponent({
|
|
|
142
164
|
const val = this.row.data[this.c.fieldName];
|
|
143
165
|
let content = null;
|
|
144
166
|
const editorSlot = `${this.controller.model.codeName}_editor`;
|
|
167
|
+
|
|
168
|
+
const renderEditor = () => {
|
|
169
|
+
return this.c.editorProvider
|
|
170
|
+
? h(resolveComponent(this.c.editorProvider.gridEditor), {
|
|
171
|
+
class: this.ns.e('editor'),
|
|
172
|
+
value: val,
|
|
173
|
+
data: this.row.data,
|
|
174
|
+
controller: this.c.editor,
|
|
175
|
+
showTitle: this.showTitle,
|
|
176
|
+
overflowMode: this.c.grid.overflowMode,
|
|
177
|
+
onChange: this.rowDataChange,
|
|
178
|
+
onInfoTextChange: this.onInfoTextChange,
|
|
179
|
+
title: this.tooltip,
|
|
180
|
+
...this.editorProps,
|
|
181
|
+
...this.attrs,
|
|
182
|
+
})
|
|
183
|
+
: undefined;
|
|
184
|
+
};
|
|
185
|
+
|
|
145
186
|
if (this.$slots[editorSlot]) {
|
|
146
187
|
content = renderSlot(this.$slots, editorSlot!, {
|
|
147
188
|
class: this.ns.e('editor'),
|
|
@@ -157,19 +198,25 @@ export const GridFieldEditColumn = defineComponent({
|
|
|
157
198
|
...this.attrs,
|
|
158
199
|
});
|
|
159
200
|
} else if (this.c.editorProvider) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
201
|
+
const panel = this.findLayoutPanel();
|
|
202
|
+
if (this.editable) {
|
|
203
|
+
content = renderEditor();
|
|
204
|
+
} else if (this.c.isCustomCode) {
|
|
205
|
+
content = (
|
|
206
|
+
<span class={this.ns.e('script')} v-html={this.CustomHtml}></span>
|
|
207
|
+
);
|
|
208
|
+
} else if (panel) {
|
|
209
|
+
content = (
|
|
210
|
+
<iBizControlShell
|
|
211
|
+
data={this.row.data}
|
|
212
|
+
modelData={panel}
|
|
213
|
+
context={this.c.context}
|
|
214
|
+
params={this.c.params}
|
|
215
|
+
/>
|
|
216
|
+
);
|
|
217
|
+
} else {
|
|
218
|
+
content = renderEditor();
|
|
219
|
+
}
|
|
173
220
|
}
|
|
174
221
|
|
|
175
222
|
return (
|
|
@@ -1139,7 +1139,14 @@ export const TreeControl = defineComponent({
|
|
|
1139
1139
|
const layoutPanel = getNodeControlPanel(nodeModel);
|
|
1140
1140
|
|
|
1141
1141
|
let content;
|
|
1142
|
-
|
|
1142
|
+
|
|
1143
|
+
const htmlCode = this.c.getCustomHtml(nodeModel, nodeData);
|
|
1144
|
+
|
|
1145
|
+
if (htmlCode) {
|
|
1146
|
+
content = (
|
|
1147
|
+
<div class={this.ns.e('script')} v-html={htmlCode}></div>
|
|
1148
|
+
);
|
|
1149
|
+
} else if (layoutPanel) {
|
|
1143
1150
|
content = (
|
|
1144
1151
|
<iBizControlShell
|
|
1145
1152
|
data={nodeData}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
h,
|
|
3
|
+
ref,
|
|
4
|
+
computed,
|
|
5
|
+
PropType,
|
|
6
|
+
ComputedRef,
|
|
7
|
+
defineComponent,
|
|
8
|
+
resolveComponent,
|
|
9
|
+
} from 'vue';
|
|
2
10
|
import { useNamespace, useSemanticNode } from '@ibiz-template/vue3-util';
|
|
3
11
|
import { RuntimeError } from '@ibiz-template/core';
|
|
12
|
+
import { IPanel } from '@ibiz/model-core';
|
|
4
13
|
import {
|
|
5
14
|
TreeGridExNodeColumnController,
|
|
6
15
|
TreeGridExRowState,
|
|
@@ -22,6 +31,16 @@ export const TreeGridExEditColumn = defineComponent({
|
|
|
22
31
|
type: TreeGridExRowState,
|
|
23
32
|
required: true,
|
|
24
33
|
},
|
|
34
|
+
isCustomCode: {
|
|
35
|
+
type: Boolean,
|
|
36
|
+
default: false,
|
|
37
|
+
},
|
|
38
|
+
panelModel: {
|
|
39
|
+
type: Object as PropType<IPanel>,
|
|
40
|
+
},
|
|
41
|
+
customHtml: {
|
|
42
|
+
type: String,
|
|
43
|
+
},
|
|
25
44
|
},
|
|
26
45
|
setup(props) {
|
|
27
46
|
/** 行数据对应属性列的值 */
|
|
@@ -52,6 +71,7 @@ export const TreeGridExEditColumn = defineComponent({
|
|
|
52
71
|
const useByShowMode = (): {
|
|
53
72
|
gridEditItemProps: IData;
|
|
54
73
|
editorProps: IData;
|
|
74
|
+
editable: ComputedRef<boolean>;
|
|
55
75
|
} => {
|
|
56
76
|
switch (c.treeGrid.editShowMode) {
|
|
57
77
|
case 'cell':
|
|
@@ -68,7 +88,7 @@ export const TreeGridExEditColumn = defineComponent({
|
|
|
68
88
|
);
|
|
69
89
|
}
|
|
70
90
|
};
|
|
71
|
-
const { gridEditItemProps, editorProps } = useByShowMode();
|
|
91
|
+
const { gridEditItemProps, editorProps, editable } = useByShowMode();
|
|
72
92
|
|
|
73
93
|
const infoText = ref<string | undefined>(undefined);
|
|
74
94
|
const onInfoTextChange = (text: string) => {
|
|
@@ -90,6 +110,7 @@ export const TreeGridExEditColumn = defineComponent({
|
|
|
90
110
|
fieldValue,
|
|
91
111
|
componentRef,
|
|
92
112
|
tooltip,
|
|
113
|
+
editable,
|
|
93
114
|
rowDataChange,
|
|
94
115
|
onInfoTextChange,
|
|
95
116
|
gridEditItemProps,
|
|
@@ -99,6 +120,42 @@ export const TreeGridExEditColumn = defineComponent({
|
|
|
99
120
|
};
|
|
100
121
|
},
|
|
101
122
|
render() {
|
|
123
|
+
const renderEditor = () => {
|
|
124
|
+
return this.controller.editorProvider
|
|
125
|
+
? h(resolveComponent(this.controller.editorProvider.gridEditor), {
|
|
126
|
+
class: this.ns.e('editor'),
|
|
127
|
+
value: this.fieldValue,
|
|
128
|
+
data: this.row.data,
|
|
129
|
+
controller: this.controller.editor,
|
|
130
|
+
overflowMode: this.controller.treeGrid.overflowMode,
|
|
131
|
+
onChange: this.rowDataChange,
|
|
132
|
+
onInfoTextChange: this.onInfoTextChange,
|
|
133
|
+
title: this.tooltip,
|
|
134
|
+
...this.editorProps,
|
|
135
|
+
})
|
|
136
|
+
: undefined;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
let content = null;
|
|
140
|
+
if (this.editable) {
|
|
141
|
+
content = renderEditor();
|
|
142
|
+
} else if (this.isCustomCode) {
|
|
143
|
+
content = (
|
|
144
|
+
<span class={this.ns.e('script')} v-html={this.customHtml}></span>
|
|
145
|
+
);
|
|
146
|
+
} else if (this.panelModel) {
|
|
147
|
+
content = (
|
|
148
|
+
<iBizControlShell
|
|
149
|
+
data={this.row.data}
|
|
150
|
+
modelData={this.panelModel}
|
|
151
|
+
context={this.controller.context}
|
|
152
|
+
params={this.controller.params}
|
|
153
|
+
/>
|
|
154
|
+
);
|
|
155
|
+
} else {
|
|
156
|
+
content = renderEditor();
|
|
157
|
+
}
|
|
158
|
+
|
|
102
159
|
return (
|
|
103
160
|
<iBizGridEditItem
|
|
104
161
|
{...{
|
|
@@ -114,18 +171,7 @@ export const TreeGridExEditColumn = defineComponent({
|
|
|
114
171
|
...this.gridEditItemProps,
|
|
115
172
|
}}
|
|
116
173
|
>
|
|
117
|
-
{
|
|
118
|
-
h(resolveComponent(this.controller.editorProvider.gridEditor), {
|
|
119
|
-
class: this.ns.e('editor'),
|
|
120
|
-
value: this.fieldValue,
|
|
121
|
-
data: this.row.data,
|
|
122
|
-
controller: this.controller.editor,
|
|
123
|
-
overflowMode: this.controller.treeGrid.overflowMode,
|
|
124
|
-
onChange: this.rowDataChange,
|
|
125
|
-
onInfoTextChange: this.onInfoTextChange,
|
|
126
|
-
title: this.tooltip,
|
|
127
|
-
...this.editorProps,
|
|
128
|
-
})}
|
|
174
|
+
{content}
|
|
129
175
|
</iBizGridEditItem>
|
|
130
176
|
);
|
|
131
177
|
},
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { computed, defineComponent, ref } from 'vue';
|
|
2
|
-
import { IUIActionGroupDetail } from '@ibiz/model-core';
|
|
3
|
-
import { useNamespace } from '@ibiz-template/vue3-util';
|
|
2
|
+
import { IPanel, IUIActionGroupDetail } from '@ibiz/model-core';
|
|
3
|
+
import { computedAsync, useNamespace } from '@ibiz-template/vue3-util';
|
|
4
4
|
import {
|
|
5
5
|
TreeGridExFieldColumnController,
|
|
6
6
|
TreeGridExRowState,
|
|
7
7
|
} from '@ibiz-template/runtime';
|
|
8
8
|
import { isNotNil } from 'ramda';
|
|
9
|
-
import './tree-grid-ex-field-column.scss';
|
|
10
9
|
import { showTitle } from '@ibiz-template/core';
|
|
10
|
+
import './tree-grid-ex-field-column.scss';
|
|
11
11
|
|
|
12
12
|
export const TreeGridExFieldColumn = defineComponent({
|
|
13
13
|
name: 'IBizTreeGridExFieldColumn',
|
|
@@ -53,6 +53,11 @@ export const TreeGridExFieldColumn = defineComponent({
|
|
|
53
53
|
codeListText.value = text;
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
+
const CustomHtml = computedAsync(async () => {
|
|
57
|
+
const html = await nodeColumn.value?.getCustomHtml(props.row);
|
|
58
|
+
return html;
|
|
59
|
+
});
|
|
60
|
+
|
|
56
61
|
const showText = computed(() => {
|
|
57
62
|
const nodeColumnC = nodeColumn.value;
|
|
58
63
|
if (nodeColumnC) {
|
|
@@ -129,6 +134,22 @@ export const TreeGridExFieldColumn = defineComponent({
|
|
|
129
134
|
await nodeColumn.value?.onActionClick(detail, props.row, event);
|
|
130
135
|
};
|
|
131
136
|
|
|
137
|
+
/**
|
|
138
|
+
* @description 查找视图布局面板
|
|
139
|
+
* @returns {*} {(IPanel | undefined)}
|
|
140
|
+
*/
|
|
141
|
+
const findLayoutPanel = (): IPanel | undefined => {
|
|
142
|
+
const { controlRenders = [], id } = nodeColumn.value?.nodeColumn || {};
|
|
143
|
+
return controlRenders.find(
|
|
144
|
+
renderItem =>
|
|
145
|
+
renderItem.renderType === 'LAYOUTPANEL' &&
|
|
146
|
+
![
|
|
147
|
+
`${id?.toLowerCase()}_tooltip`,
|
|
148
|
+
`${id?.toLowerCase()}_edit_tooltip`,
|
|
149
|
+
].includes(renderItem.id!),
|
|
150
|
+
)?.layoutPanel;
|
|
151
|
+
};
|
|
152
|
+
|
|
132
153
|
return {
|
|
133
154
|
ns,
|
|
134
155
|
zIndex,
|
|
@@ -137,21 +158,40 @@ export const TreeGridExFieldColumn = defineComponent({
|
|
|
137
158
|
clickable,
|
|
138
159
|
nodeColumn,
|
|
139
160
|
fieldValue,
|
|
161
|
+
CustomHtml,
|
|
140
162
|
onTextClick,
|
|
141
163
|
onActionClick,
|
|
142
164
|
onInfoTextChange,
|
|
165
|
+
findLayoutPanel,
|
|
143
166
|
};
|
|
144
167
|
},
|
|
145
168
|
render() {
|
|
146
169
|
let content = null;
|
|
147
|
-
|
|
170
|
+
const panel = this.findLayoutPanel();
|
|
148
171
|
if (this.nodeColumn?.nodeEditItem) {
|
|
149
172
|
content = (
|
|
150
173
|
<iBizTreeGridExEditColumn
|
|
151
174
|
controller={this.nodeColumn}
|
|
152
175
|
row={this.row}
|
|
176
|
+
panelModel={panel}
|
|
177
|
+
customHtml={this.CustomHtml}
|
|
178
|
+
isCustomCode={this.nodeColumn.isCustomCode}
|
|
153
179
|
></iBizTreeGridExEditColumn>
|
|
154
180
|
);
|
|
181
|
+
} else if (this.nodeColumn?.isCustomCode) {
|
|
182
|
+
content = (
|
|
183
|
+
<span class={this.ns.e('script')} v-html={this.CustomHtml}></span>
|
|
184
|
+
);
|
|
185
|
+
} else if (panel) {
|
|
186
|
+
content = (
|
|
187
|
+
<iBizControlShell
|
|
188
|
+
data={this.row.data}
|
|
189
|
+
modelData={panel}
|
|
190
|
+
class={this.ns.e('panel')}
|
|
191
|
+
context={this.controller.context}
|
|
192
|
+
params={this.controller.params}
|
|
193
|
+
></iBizControlShell>
|
|
194
|
+
);
|
|
155
195
|
} else if (this.nodeColumn?.codeList) {
|
|
156
196
|
content = (
|
|
157
197
|
<iBizCodeList
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
/* eslint-disable no-nested-ternary */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
defineComponent,
|
|
5
|
+
onActivated,
|
|
6
|
+
onDeactivated,
|
|
7
|
+
onMounted,
|
|
8
|
+
onUnmounted,
|
|
9
|
+
Ref,
|
|
10
|
+
ref,
|
|
11
|
+
watch,
|
|
12
|
+
} from 'vue';
|
|
4
13
|
import { createUUID } from 'qx-util';
|
|
5
14
|
import { ITextArea } from '@ibiz/model-core';
|
|
6
15
|
import {
|
|
@@ -27,7 +36,7 @@ export const IBizEmbedAIChat = defineComponent({
|
|
|
27
36
|
const ctrl = c.ctrl as EditFormController;
|
|
28
37
|
const agentMap: Map<string | undefined, IData[]> = new Map();
|
|
29
38
|
const knowledgeMap: Map<string | undefined, IData[]> = new Map();
|
|
30
|
-
|
|
39
|
+
const projectMap: Map<string | undefined, IData[]> = new Map();
|
|
31
40
|
// AI聊天框挂载元素
|
|
32
41
|
const aiChatElementRef: Ref<HTMLElement | null> = ref(null);
|
|
33
42
|
let mountedFlag: boolean = false;
|
|
@@ -164,6 +173,18 @@ export const IBizEmbedAIChat = defineComponent({
|
|
|
164
173
|
if (knowledge) knowledgeMap.set(key, knowledge);
|
|
165
174
|
return knowledge;
|
|
166
175
|
},
|
|
176
|
+
fetchProject: async (
|
|
177
|
+
ctx: IContext,
|
|
178
|
+
param: IParams,
|
|
179
|
+
other: IParams,
|
|
180
|
+
) => {
|
|
181
|
+
const key = JSON.stringify(other);
|
|
182
|
+
let projects = projectMap.get(key);
|
|
183
|
+
if (projects?.length) return projects;
|
|
184
|
+
projects = await chatOptions.fetchProject(ctx, param, other);
|
|
185
|
+
if (projects) projectMap.set(key, projects);
|
|
186
|
+
return projects;
|
|
187
|
+
},
|
|
167
188
|
action: (action: string, message: IData) => {
|
|
168
189
|
if (action === 'send')
|
|
169
190
|
ctrl.evt.emit('onFormDetailEvent', {
|
|
@@ -221,6 +242,20 @@ export const IBizEmbedAIChat = defineComponent({
|
|
|
221
242
|
mountedFlag = false;
|
|
222
243
|
});
|
|
223
244
|
|
|
245
|
+
onDeactivated(() => {
|
|
246
|
+
const chatInstance = c.chatInstance;
|
|
247
|
+
if (chatInstance) {
|
|
248
|
+
chatInstance.onDeactivated();
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
onActivated(() => {
|
|
253
|
+
const chatInstance = c.chatInstance;
|
|
254
|
+
if (chatInstance) {
|
|
255
|
+
chatInstance.onActivated();
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
|
|
224
259
|
return {
|
|
225
260
|
c,
|
|
226
261
|
ns,
|
|
@@ -189,7 +189,8 @@ $markdown-footer-button: (
|
|
|
189
189
|
border-top: 1px solid getCssVar(markdown, border-color);
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
.cherry-previewer{
|
|
192
|
+
.cherry-previewer {
|
|
193
|
+
min-height: 58px;
|
|
193
194
|
border-top: 1px solid getCssVar(markdown, border-color);
|
|
194
195
|
|
|
195
196
|
// 调整预览区图片鼠标移入样式
|
|
@@ -52,6 +52,7 @@ import './input.scss';
|
|
|
52
52
|
* @editorparams {"name":"srfaichunkview","parameterType":"string", "description":"知识切片视图,用于定义AI交谈打开目标知识切片视图"}
|
|
53
53
|
* @editorparams {"name":"srfaichunkentity","parameterType":"string", "description":"知识切片实体,用于定义AI交谈打开知识切片视图数据主键key"}
|
|
54
54
|
* @editorparams {"name":"srfaichatcaption","parameterType":"string", "description":"自定义AI交谈框标题"}
|
|
55
|
+
* @editorparams {"name":"showpassword","parameterType":"boolean", "description":"密码框是否显示切换密码图标"}
|
|
55
56
|
* @ignoreprops overflowMode
|
|
56
57
|
* @ignoreemits infoTextChange
|
|
57
58
|
*/
|
|
@@ -164,6 +165,13 @@ export const IBizInput = defineComponent({
|
|
|
164
165
|
}
|
|
165
166
|
});
|
|
166
167
|
|
|
168
|
+
const showPassword = computed(() => {
|
|
169
|
+
if (c.editorParams.showpassword) {
|
|
170
|
+
return c.toBoolean(c.editorParams.showpassword);
|
|
171
|
+
}
|
|
172
|
+
return type.value === 'password';
|
|
173
|
+
});
|
|
174
|
+
|
|
167
175
|
// 是否显示表单默认内容
|
|
168
176
|
const showFormDefaultContent = computed(() => {
|
|
169
177
|
if (
|
|
@@ -436,6 +444,7 @@ export const IBizInput = defineComponent({
|
|
|
436
444
|
isAuto,
|
|
437
445
|
editorRef,
|
|
438
446
|
showLimit,
|
|
447
|
+
showPassword,
|
|
439
448
|
childClass,
|
|
440
449
|
childStyle,
|
|
441
450
|
isEditable,
|
|
@@ -520,7 +529,7 @@ export const IBizInput = defineComponent({
|
|
|
520
529
|
class={[this.ns.b('input'), this.semanticClass('editor.content')]}
|
|
521
530
|
disabled={this.disabled}
|
|
522
531
|
style={this.semanticStyle('editor.content')}
|
|
523
|
-
show-password={this.
|
|
532
|
+
show-password={this.showPassword}
|
|
524
533
|
autocomplete={this.shouldAutoComplete}
|
|
525
534
|
v-child-class={this.childClass}
|
|
526
535
|
v-child-style={this.childStyle}
|