@ibiz-template/vue3-components 0.6.12 → 0.6.14
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-i8g3CeYA.js +4 -0
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/{xlsx-util-u4LQibbt.js → xlsx-util-eoOYCW_R.js} +1 -1
- package/es/common/data-import/data-import.mjs +1 -1
- package/es/control/form/form/form.mjs +3 -2
- package/es/control/form/form-detail/form-item/form-item.mjs +1 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +1 -1
- package/es/control/grid/grid/grid-control.util.mjs +7 -1
- package/es/control/grid/grid-column/grid-field-edit-column/cell-edit.mjs +1 -1
- package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.mjs +2 -3
- package/es/editor/date-range/date-range-editor.controller.d.ts +9 -0
- package/es/editor/date-range/date-range-editor.controller.mjs +18 -0
- package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.d.ts +1 -0
- package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.mjs +8 -2
- package/es/panel-component/index.mjs +3 -1
- package/es/panel-component/user-message/async-action/async-action-preview/async-action-preview.mjs +5 -2
- package/es/view-engine/edit-view.engine.mjs +11 -5
- package/es/view-engine/tab-search-view.engine.d.ts +15 -3
- package/es/view-engine/tab-search-view.engine.mjs +30 -0
- package/lib/common/data-import/data-import.cjs +1 -1
- package/lib/control/form/form/form.cjs +2 -1
- package/lib/control/form/form-detail/form-item/form-item.cjs +1 -1
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +1 -1
- package/lib/control/grid/grid/grid-control.util.cjs +6 -0
- package/lib/control/grid/grid-column/grid-field-edit-column/cell-edit.cjs +1 -1
- package/lib/editor/date-picker/ibiz-date-picker/ibiz-date-picker.cjs +2 -3
- package/lib/editor/date-range/date-range-editor.controller.cjs +18 -0
- package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.cjs +8 -2
- package/lib/panel-component/index.cjs +2 -0
- package/lib/panel-component/user-message/async-action/async-action-preview/async-action-preview.cjs +5 -2
- package/lib/view-engine/edit-view.engine.cjs +11 -5
- package/lib/view-engine/tab-search-view.engine.cjs +30 -0
- package/package.json +8 -8
- package/dist/index-225rMkM4.js +0 -4
|
@@ -65,7 +65,7 @@ const DataImport = /* @__PURE__ */ defineComponent({
|
|
|
65
65
|
result = await importData(selectedFile, props.appDataEntity, props.dataImport, props.context);
|
|
66
66
|
ibiz.mc.command.send({
|
|
67
67
|
srfdecodename: props.appDataEntity.codeName
|
|
68
|
-
}, "OBJECTCREATED");
|
|
68
|
+
}, "OBJECTCREATED", "DATAIMPORT");
|
|
69
69
|
const {
|
|
70
70
|
success,
|
|
71
71
|
total,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isVNode, renderSlot, createVNode, resolveComponent, h, defineComponent } from 'vue';
|
|
2
|
-
import { ScriptFactory, findChildFormDetails } from '@ibiz-template/runtime';
|
|
2
|
+
import { ScriptFactory, findChildFormDetails, ControlType } from '@ibiz-template/runtime';
|
|
3
3
|
import { useNamespace } from '@ibiz-template/vue3-util';
|
|
4
4
|
import './form.css';
|
|
5
5
|
|
|
@@ -113,7 +113,8 @@ const FormControl = /* @__PURE__ */ defineComponent({
|
|
|
113
113
|
});
|
|
114
114
|
};
|
|
115
115
|
} else {
|
|
116
|
-
const
|
|
116
|
+
const formSlotKey = model.controlType === ControlType.SEARCHFORM ? "searchform" : "form";
|
|
117
|
+
const key = controlPanel ? formSlotKey : "default";
|
|
117
118
|
slots[key] = () => {
|
|
118
119
|
return createVNode(resolveComponent("iBizFormPage"), {
|
|
119
120
|
"modelData": this.c.model,
|
|
@@ -42,7 +42,7 @@ const FormItem = /* @__PURE__ */ defineComponent({
|
|
|
42
42
|
data: this.controller.data,
|
|
43
43
|
controller: this.controller.editor,
|
|
44
44
|
disabled: this.controller.state.disabled,
|
|
45
|
-
readonly: this.controller.
|
|
45
|
+
readonly: this.controller.state.readonly,
|
|
46
46
|
onChange: this.onValueChange,
|
|
47
47
|
controlParams: this.controller.form.controlParams,
|
|
48
48
|
onFocus: (event) => this.c.onFocus(event),
|
package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs
CHANGED
|
@@ -187,7 +187,7 @@ const RepeaterGrid = /* @__PURE__ */ defineComponent({
|
|
|
187
187
|
data: formItemC.data,
|
|
188
188
|
controller: formItemC.editor,
|
|
189
189
|
disabled: formItemC.state.disabled,
|
|
190
|
-
readonly: formItemC.
|
|
190
|
+
readonly: formItemC.state.readonly,
|
|
191
191
|
onChange: (val, name) => {
|
|
192
192
|
formItemC.setDataValue(val, name);
|
|
193
193
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ControlVO, GridRowState } from '@ibiz-template/runtime';
|
|
1
|
+
import { Srfuf, ControlVO, GridRowState } from '@ibiz-template/runtime';
|
|
2
2
|
import { ref, watch, nextTick, computed, watchEffect, onUnmounted } from 'vue';
|
|
3
3
|
|
|
4
4
|
"use strict";
|
|
@@ -7,6 +7,9 @@ function useITableEvent(c) {
|
|
|
7
7
|
let forbidChange = false;
|
|
8
8
|
let isGridUISort = false;
|
|
9
9
|
async function onRowClick(data, _column, _event) {
|
|
10
|
+
if (data.srfuf === Srfuf.CREATE) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
10
13
|
if (ibiz.config.grid.editShowMode === "row" && c.model.enableRowEdit) {
|
|
11
14
|
const row = c.findRowState(data);
|
|
12
15
|
if (row && row.showRowEdit !== true) {
|
|
@@ -17,6 +20,9 @@ function useITableEvent(c) {
|
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
function onDbRowClick(data) {
|
|
23
|
+
if (data.srfuf === Srfuf.CREATE) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
20
26
|
c.onDbRowClick(data);
|
|
21
27
|
}
|
|
22
28
|
function onSelectionChange(selection) {
|
|
@@ -32,7 +32,7 @@ function useCellEdit(props, componentRef) {
|
|
|
32
32
|
return cellEditable.value && !editable.value;
|
|
33
33
|
});
|
|
34
34
|
const stopPropagation = computed(() => {
|
|
35
|
-
return cellEditable.value;
|
|
35
|
+
return cellEditable.value || editorShowEdit.value;
|
|
36
36
|
});
|
|
37
37
|
let funcs;
|
|
38
38
|
const onMaskClick = () => {
|
|
@@ -77,9 +77,8 @@ const IBizDatePicker = /* @__PURE__ */ defineComponent({
|
|
|
77
77
|
};
|
|
78
78
|
if (props.autoFocus) {
|
|
79
79
|
watch(editorRef, (newVal) => {
|
|
80
|
-
if (newVal) {
|
|
81
|
-
|
|
82
|
-
input.click();
|
|
80
|
+
if (newVal && newVal.focus) {
|
|
81
|
+
newVal.focus();
|
|
83
82
|
}
|
|
84
83
|
});
|
|
85
84
|
}
|
|
@@ -8,6 +8,15 @@ import { IDateRange } from '@ibiz/model-core';
|
|
|
8
8
|
* @extends {EditorController}
|
|
9
9
|
*/
|
|
10
10
|
export declare class DateRangeEditorController extends EditorController<IDateRange> {
|
|
11
|
+
/**
|
|
12
|
+
* 日期选择弹框内选中的时间值
|
|
13
|
+
*
|
|
14
|
+
* @author ljx
|
|
15
|
+
* @date 2024-03-28 16:11:21
|
|
16
|
+
* @public
|
|
17
|
+
* @returns {*} {string}
|
|
18
|
+
*/
|
|
19
|
+
dateRange: IData;
|
|
11
20
|
/**
|
|
12
21
|
* 根据编辑器类型获取格式化
|
|
13
22
|
*
|
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
import { EditorController } from '@ibiz-template/runtime';
|
|
2
2
|
|
|
3
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
|
+
};
|
|
4
10
|
class DateRangeEditorController extends EditorController {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
/**
|
|
14
|
+
* 日期选择弹框内选中的时间值
|
|
15
|
+
*
|
|
16
|
+
* @author ljx
|
|
17
|
+
* @date 2024-03-28 16:11:21
|
|
18
|
+
* @public
|
|
19
|
+
* @returns {*} {string}
|
|
20
|
+
*/
|
|
21
|
+
__publicField(this, "dateRange", []);
|
|
22
|
+
}
|
|
5
23
|
/**
|
|
6
24
|
* 根据编辑器类型获取格式化
|
|
7
25
|
*
|
|
@@ -43,6 +43,7 @@ export declare const IBizDateRangePicker: import("vue").DefineComponent<{
|
|
|
43
43
|
setEditable: (flag: boolean) => void;
|
|
44
44
|
showFormDefaultContent: import("vue").ComputedRef<boolean>;
|
|
45
45
|
handleKeyUp: (e: KeyboardEvent) => void;
|
|
46
|
+
onCalendarChange: (val: IData) => void;
|
|
46
47
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
47
48
|
change: (_value: unknown, _name?: string | undefined) => boolean;
|
|
48
49
|
blur: (_event?: IData | undefined) => boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ref, computed, resolveComponent, mergeProps, createVNode, defineComponent } from 'vue';
|
|
2
2
|
import { getDateRangeProps, getEditorEmits, useNamespace } from '@ibiz-template/vue3-util';
|
|
3
|
+
import { clone } from 'ramda';
|
|
3
4
|
import './ibiz-date-range-picker.css';
|
|
4
5
|
|
|
5
6
|
"use strict";
|
|
@@ -109,6 +110,9 @@ const IBizDateRangePicker = /* @__PURE__ */ defineComponent({
|
|
|
109
110
|
emit("blur", e);
|
|
110
111
|
setEditable(false);
|
|
111
112
|
};
|
|
113
|
+
const onCalendarChange = (val) => {
|
|
114
|
+
c.dateRange = clone(val);
|
|
115
|
+
};
|
|
112
116
|
const valueText = computed(() => {
|
|
113
117
|
if (curValue.value.length > 0) {
|
|
114
118
|
return "".concat(curValue.value[0], " ").concat(rangeSeparator, " ").concat(curValue.value[1]);
|
|
@@ -139,7 +143,8 @@ const IBizDateRangePicker = /* @__PURE__ */ defineComponent({
|
|
|
139
143
|
isEditable,
|
|
140
144
|
setEditable,
|
|
141
145
|
showFormDefaultContent,
|
|
142
|
-
handleKeyUp
|
|
146
|
+
handleKeyUp,
|
|
147
|
+
onCalendarChange
|
|
143
148
|
};
|
|
144
149
|
},
|
|
145
150
|
render() {
|
|
@@ -159,7 +164,8 @@ const IBizDateRangePicker = /* @__PURE__ */ defineComponent({
|
|
|
159
164
|
"end-placeholder": this.endPlaceHolder,
|
|
160
165
|
"unlink-panels": this.unlinkPanels,
|
|
161
166
|
"onFocus": this.onFocus,
|
|
162
|
-
"onBlur": this.onBlur
|
|
167
|
+
"onBlur": this.onBlur,
|
|
168
|
+
"onCalendarChange": this.onCalendarChange
|
|
163
169
|
}, this.$attrs), null);
|
|
164
170
|
const readonlyContent = createVNode("div", {
|
|
165
171
|
"class": (this.ns.b(), this.ns.m("readonly"))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IBizPanelContainer, IBizPanelCtrlPos, IBizScrollContainer, IBizNavPos, IBizSingleDataContainer, IBizMultiDataContainer, IBizPanelField, IBizPanelRawItem, IBizGridContainer, IBizPanelTabPage, IBizPanelContainerGroup, IBizPanelContainerImage, IBizPanelItemRender } from '@ibiz-template/vue3-util';
|
|
1
|
+
import { IBizPanelContainer, IBizPanelCtrlPos, IBizScrollContainer, IBizNavPos, IBizSingleDataContainer, IBizMultiDataContainer, IBizPanelField, IBizPanelRawItem, IBizGridContainer, IBizPanelTabPage, IBizPanelContainerGroup, IBizPanelContainerImage, IBizPanelItemRender, IBizTeleportPlaceholder, IBizPanelContainerTabs } from '@ibiz-template/vue3-util';
|
|
2
2
|
import { IBizAuthUserinfo } from './auth-userinfo/index.mjs';
|
|
3
3
|
import { IBizNavPosIndex } from './nav-pos-index/index.mjs';
|
|
4
4
|
import { IBizNavTabs } from './nav-tabs/index.mjs';
|
|
@@ -59,6 +59,8 @@ const IBizPanelComponents = {
|
|
|
59
59
|
v.use(IBizPanelItemRender);
|
|
60
60
|
v.use(IBizViewMessage);
|
|
61
61
|
v.use(IBizPanelStaticCarousel);
|
|
62
|
+
v.use(IBizTeleportPlaceholder);
|
|
63
|
+
v.use(IBizPanelContainerTabs);
|
|
62
64
|
}
|
|
63
65
|
};
|
|
64
66
|
|
package/es/panel-component/user-message/async-action/async-action-preview/async-action-preview.mjs
CHANGED
|
@@ -12,10 +12,13 @@ function fileDownload(file) {
|
|
|
12
12
|
baseURL: ""
|
|
13
13
|
// 已经有baseURL了,这里无需再写
|
|
14
14
|
}).then((response) => {
|
|
15
|
-
|
|
15
|
+
let filename = qs.parse(response.headers["content-disposition"], {
|
|
16
16
|
delimiter: ";"
|
|
17
17
|
}).filename;
|
|
18
18
|
if (filename) {
|
|
19
|
+
if (filename.startsWith('"') && filename.endsWith('"')) {
|
|
20
|
+
filename = filename.substring(1, filename.length - 1);
|
|
21
|
+
}
|
|
19
22
|
file.name += ".".concat(filename.split(".")[1]);
|
|
20
23
|
}
|
|
21
24
|
if (response.status !== 200) {
|
|
@@ -85,7 +88,7 @@ const AsyncActionPreview = /* @__PURE__ */ defineComponent({
|
|
|
85
88
|
info.errorDetails = [];
|
|
86
89
|
}
|
|
87
90
|
if (actionResult.errorfile) {
|
|
88
|
-
info.errorFileUrl = "".concat(ibiz.env.baseUrl, "/").concat(ibiz.env.appId).concat(ibiz.env.downloadFileUrl, "/").concat(actionResult.errorfile.folder, "/").concat(actionResult.errorfile.fileid);
|
|
91
|
+
info.errorFileUrl = "".concat(ibiz.env.baseUrl, "/").concat(ibiz.env.appId).concat(ibiz.env.downloadFileUrl, "/").concat(actionResult.errorfile.folder, "/").concat(actionResult.errorfile.fileid).replace("/{cat}", "");
|
|
89
92
|
}
|
|
90
93
|
}
|
|
91
94
|
const onDownLoad = () => {
|
|
@@ -81,10 +81,12 @@ class EditViewEngine extends ViewEngineBase {
|
|
|
81
81
|
var _a;
|
|
82
82
|
const data = event.data[0];
|
|
83
83
|
(_a = this.toolbar) == null ? void 0 : _a.calcButtonState(data, formDeId);
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
if (model.showDataInfoBar) {
|
|
85
|
+
if (data.srfkey) {
|
|
86
|
+
evt.emit("onViewInfoChange", { dataInfo: data.srfmajortext || "" });
|
|
87
|
+
} else {
|
|
88
|
+
evt.emit("onViewInfoChange", { dataInfo: "\u65B0\u5EFA" });
|
|
89
|
+
}
|
|
88
90
|
}
|
|
89
91
|
};
|
|
90
92
|
this.form.evt.on("onLoadSuccess", (event) => {
|
|
@@ -261,7 +263,11 @@ class EditViewEngine extends ViewEngineBase {
|
|
|
261
263
|
},
|
|
262
264
|
data instanceof ControlVO ? data.getOrigin() : data
|
|
263
265
|
);
|
|
264
|
-
ibiz.mc.command.send(
|
|
266
|
+
ibiz.mc.command.send(
|
|
267
|
+
{ srfdecodename: "SysTodo" },
|
|
268
|
+
"OBJECTUPDATED",
|
|
269
|
+
"WITHDRAW"
|
|
270
|
+
);
|
|
265
271
|
}
|
|
266
272
|
/**
|
|
267
273
|
* 初始化标记打开数据相关逻辑
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ISearchBarController, ISearchFormController, ITabExpPanelController, ITabSearchViewEvent, ITabSearchViewState, ViewController } from '@ibiz-template/runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { IAppDETabSearchView } from '@ibiz/model-core';
|
|
3
3
|
import { TabExpViewEngine } from './tab-exp-view.engine';
|
|
4
4
|
/**
|
|
5
5
|
* 编辑视图3(分页关系)
|
|
@@ -14,13 +14,13 @@ export declare class TabSearchViewEngine extends TabExpViewEngine {
|
|
|
14
14
|
*
|
|
15
15
|
* @protected
|
|
16
16
|
* @type {ViewController<
|
|
17
|
-
*
|
|
17
|
+
* IAppDETabSearchView,
|
|
18
18
|
* ITabSearchViewState,
|
|
19
19
|
* ITabSearchViewEvent
|
|
20
20
|
* >}
|
|
21
21
|
* @memberof TabSearchViewEngine
|
|
22
22
|
*/
|
|
23
|
-
protected view: ViewController<
|
|
23
|
+
protected view: ViewController<IAppDETabSearchView, ITabSearchViewState, ITabSearchViewEvent>;
|
|
24
24
|
/**
|
|
25
25
|
* 搜索表单控制器
|
|
26
26
|
* @author lxm
|
|
@@ -42,6 +42,7 @@ export declare class TabSearchViewEngine extends TabExpViewEngine {
|
|
|
42
42
|
* @readonly
|
|
43
43
|
*/
|
|
44
44
|
get tabExpPanel(): ITabExpPanelController;
|
|
45
|
+
protected preprocessTabExpModelLayout(): void;
|
|
45
46
|
onCreated(): Promise<void>;
|
|
46
47
|
onMounted(): Promise<void>;
|
|
47
48
|
call(key: string, args: any): Promise<IData | null | undefined>;
|
|
@@ -52,6 +53,17 @@ export declare class TabSearchViewEngine extends TabExpViewEngine {
|
|
|
52
53
|
* @return {*} {IParams}
|
|
53
54
|
*/
|
|
54
55
|
protected getSearchParams(): IParams;
|
|
56
|
+
/**
|
|
57
|
+
* 计算视图头部元素的显示与否
|
|
58
|
+
* 所有部件容器名称均为:view_部件名称
|
|
59
|
+
* - 注意 分页导航和分页搜索的默认布局不一致
|
|
60
|
+
*
|
|
61
|
+
* 分页导航:分页导航栏在视图头中
|
|
62
|
+
*
|
|
63
|
+
* 分页搜索:分页导航栏不在视图头中
|
|
64
|
+
* @protected
|
|
65
|
+
*/
|
|
66
|
+
protected calcViewHeaderVisible(): boolean;
|
|
55
67
|
/**
|
|
56
68
|
* 重新计算视图参数
|
|
57
69
|
* @author lxm
|
|
@@ -30,6 +30,8 @@ class TabSearchViewEngine extends TabExpViewEngine {
|
|
|
30
30
|
get tabExpPanel() {
|
|
31
31
|
return this.view.getController("tabexppanel");
|
|
32
32
|
}
|
|
33
|
+
preprocessTabExpModelLayout() {
|
|
34
|
+
}
|
|
33
35
|
async onCreated() {
|
|
34
36
|
await super.onCreated();
|
|
35
37
|
const { childNames } = this.view;
|
|
@@ -91,6 +93,34 @@ class TabSearchViewEngine extends TabExpViewEngine {
|
|
|
91
93
|
}
|
|
92
94
|
return params;
|
|
93
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* 计算视图头部元素的显示与否
|
|
98
|
+
* 所有部件容器名称均为:view_部件名称
|
|
99
|
+
* - 注意 分页导航和分页搜索的默认布局不一致
|
|
100
|
+
*
|
|
101
|
+
* 分页导航:分页导航栏在视图头中
|
|
102
|
+
*
|
|
103
|
+
* 分页搜索:分页导航栏不在视图头中
|
|
104
|
+
* @protected
|
|
105
|
+
*/
|
|
106
|
+
calcViewHeaderVisible() {
|
|
107
|
+
let showHeader = false;
|
|
108
|
+
const { model } = this.view;
|
|
109
|
+
if (model.showCaptionBar) {
|
|
110
|
+
showHeader = true;
|
|
111
|
+
}
|
|
112
|
+
if (ibiz.env.isMob) {
|
|
113
|
+
if (this.isExistAndInLayout("lefttoolbar")) {
|
|
114
|
+
showHeader = true;
|
|
115
|
+
}
|
|
116
|
+
if (this.isExistAndInLayout("righttoolbar")) {
|
|
117
|
+
showHeader = true;
|
|
118
|
+
}
|
|
119
|
+
} else if (this.isExistAndInLayout("toolbar")) {
|
|
120
|
+
showHeader = true;
|
|
121
|
+
}
|
|
122
|
+
return showHeader;
|
|
123
|
+
}
|
|
94
124
|
/**
|
|
95
125
|
* 重新计算视图参数
|
|
96
126
|
* @author lxm
|
|
@@ -67,7 +67,7 @@ const DataImport = /* @__PURE__ */ vue.defineComponent({
|
|
|
67
67
|
result = await runtime.importData(selectedFile, props.appDataEntity, props.dataImport, props.context);
|
|
68
68
|
ibiz.mc.command.send({
|
|
69
69
|
srfdecodename: props.appDataEntity.codeName
|
|
70
|
-
}, "OBJECTCREATED");
|
|
70
|
+
}, "OBJECTCREATED", "DATAIMPORT");
|
|
71
71
|
const {
|
|
72
72
|
success,
|
|
73
73
|
total,
|
|
@@ -115,7 +115,8 @@ const FormControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
115
115
|
});
|
|
116
116
|
};
|
|
117
117
|
} else {
|
|
118
|
-
const
|
|
118
|
+
const formSlotKey = model.controlType === runtime.ControlType.SEARCHFORM ? "searchform" : "form";
|
|
119
|
+
const key = controlPanel ? formSlotKey : "default";
|
|
119
120
|
slots[key] = () => {
|
|
120
121
|
return vue.createVNode(vue.resolveComponent("iBizFormPage"), {
|
|
121
122
|
"modelData": this.c.model,
|
|
@@ -46,7 +46,7 @@ const FormItem = /* @__PURE__ */ vue.defineComponent({
|
|
|
46
46
|
data: this.controller.data,
|
|
47
47
|
controller: this.controller.editor,
|
|
48
48
|
disabled: this.controller.state.disabled,
|
|
49
|
-
readonly: this.controller.
|
|
49
|
+
readonly: this.controller.state.readonly,
|
|
50
50
|
onChange: this.onValueChange,
|
|
51
51
|
controlParams: this.controller.form.controlParams,
|
|
52
52
|
onFocus: (event) => this.c.onFocus(event),
|
|
@@ -189,7 +189,7 @@ const RepeaterGrid = /* @__PURE__ */ vue.defineComponent({
|
|
|
189
189
|
data: formItemC.data,
|
|
190
190
|
controller: formItemC.editor,
|
|
191
191
|
disabled: formItemC.state.disabled,
|
|
192
|
-
readonly: formItemC.
|
|
192
|
+
readonly: formItemC.state.readonly,
|
|
193
193
|
onChange: (val, name) => {
|
|
194
194
|
formItemC.setDataValue(val, name);
|
|
195
195
|
}
|
|
@@ -9,6 +9,9 @@ function useITableEvent(c) {
|
|
|
9
9
|
let forbidChange = false;
|
|
10
10
|
let isGridUISort = false;
|
|
11
11
|
async function onRowClick(data, _column, _event) {
|
|
12
|
+
if (data.srfuf === runtime.Srfuf.CREATE) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
12
15
|
if (ibiz.config.grid.editShowMode === "row" && c.model.enableRowEdit) {
|
|
13
16
|
const row = c.findRowState(data);
|
|
14
17
|
if (row && row.showRowEdit !== true) {
|
|
@@ -19,6 +22,9 @@ function useITableEvent(c) {
|
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
function onDbRowClick(data) {
|
|
25
|
+
if (data.srfuf === runtime.Srfuf.CREATE) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
22
28
|
c.onDbRowClick(data);
|
|
23
29
|
}
|
|
24
30
|
function onSelectionChange(selection) {
|
|
@@ -34,7 +34,7 @@ function useCellEdit(props, componentRef) {
|
|
|
34
34
|
return cellEditable.value && !editable.value;
|
|
35
35
|
});
|
|
36
36
|
const stopPropagation = vue.computed(() => {
|
|
37
|
-
return cellEditable.value;
|
|
37
|
+
return cellEditable.value || editorShowEdit.value;
|
|
38
38
|
});
|
|
39
39
|
let funcs;
|
|
40
40
|
const onMaskClick = () => {
|
|
@@ -79,9 +79,8 @@ const IBizDatePicker = /* @__PURE__ */ vue.defineComponent({
|
|
|
79
79
|
};
|
|
80
80
|
if (props.autoFocus) {
|
|
81
81
|
vue.watch(editorRef, (newVal) => {
|
|
82
|
-
if (newVal) {
|
|
83
|
-
|
|
84
|
-
input.click();
|
|
82
|
+
if (newVal && newVal.focus) {
|
|
83
|
+
newVal.focus();
|
|
85
84
|
}
|
|
86
85
|
});
|
|
87
86
|
}
|
|
@@ -3,7 +3,25 @@
|
|
|
3
3
|
var runtime = require('@ibiz-template/runtime');
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __publicField = (obj, key, value) => {
|
|
9
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
10
|
+
return value;
|
|
11
|
+
};
|
|
6
12
|
class DateRangeEditorController extends runtime.EditorController {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
/**
|
|
16
|
+
* 日期选择弹框内选中的时间值
|
|
17
|
+
*
|
|
18
|
+
* @author ljx
|
|
19
|
+
* @date 2024-03-28 16:11:21
|
|
20
|
+
* @public
|
|
21
|
+
* @returns {*} {string}
|
|
22
|
+
*/
|
|
23
|
+
__publicField(this, "dateRange", []);
|
|
24
|
+
}
|
|
7
25
|
/**
|
|
8
26
|
* 根据编辑器类型获取格式化
|
|
9
27
|
*
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var vue = require('vue');
|
|
4
4
|
var vue3Util = require('@ibiz-template/vue3-util');
|
|
5
|
+
var ramda = require('ramda');
|
|
5
6
|
require('./ibiz-date-range-picker.css');
|
|
6
7
|
|
|
7
8
|
"use strict";
|
|
@@ -111,6 +112,9 @@ const IBizDateRangePicker = /* @__PURE__ */ vue.defineComponent({
|
|
|
111
112
|
emit("blur", e);
|
|
112
113
|
setEditable(false);
|
|
113
114
|
};
|
|
115
|
+
const onCalendarChange = (val) => {
|
|
116
|
+
c.dateRange = ramda.clone(val);
|
|
117
|
+
};
|
|
114
118
|
const valueText = vue.computed(() => {
|
|
115
119
|
if (curValue.value.length > 0) {
|
|
116
120
|
return "".concat(curValue.value[0], " ").concat(rangeSeparator, " ").concat(curValue.value[1]);
|
|
@@ -141,7 +145,8 @@ const IBizDateRangePicker = /* @__PURE__ */ vue.defineComponent({
|
|
|
141
145
|
isEditable,
|
|
142
146
|
setEditable,
|
|
143
147
|
showFormDefaultContent,
|
|
144
|
-
handleKeyUp
|
|
148
|
+
handleKeyUp,
|
|
149
|
+
onCalendarChange
|
|
145
150
|
};
|
|
146
151
|
},
|
|
147
152
|
render() {
|
|
@@ -161,7 +166,8 @@ const IBizDateRangePicker = /* @__PURE__ */ vue.defineComponent({
|
|
|
161
166
|
"end-placeholder": this.endPlaceHolder,
|
|
162
167
|
"unlink-panels": this.unlinkPanels,
|
|
163
168
|
"onFocus": this.onFocus,
|
|
164
|
-
"onBlur": this.onBlur
|
|
169
|
+
"onBlur": this.onBlur,
|
|
170
|
+
"onCalendarChange": this.onCalendarChange
|
|
165
171
|
}, this.$attrs), null);
|
|
166
172
|
const readonlyContent = vue.createVNode("div", {
|
|
167
173
|
"class": (this.ns.b(), this.ns.m("readonly"))
|
package/lib/panel-component/user-message/async-action/async-action-preview/async-action-preview.cjs
CHANGED
|
@@ -14,10 +14,13 @@ function fileDownload(file) {
|
|
|
14
14
|
baseURL: ""
|
|
15
15
|
// 已经有baseURL了,这里无需再写
|
|
16
16
|
}).then((response) => {
|
|
17
|
-
|
|
17
|
+
let filename = qs.parse(response.headers["content-disposition"], {
|
|
18
18
|
delimiter: ";"
|
|
19
19
|
}).filename;
|
|
20
20
|
if (filename) {
|
|
21
|
+
if (filename.startsWith('"') && filename.endsWith('"')) {
|
|
22
|
+
filename = filename.substring(1, filename.length - 1);
|
|
23
|
+
}
|
|
21
24
|
file.name += ".".concat(filename.split(".")[1]);
|
|
22
25
|
}
|
|
23
26
|
if (response.status !== 200) {
|
|
@@ -87,7 +90,7 @@ const AsyncActionPreview = /* @__PURE__ */ vue.defineComponent({
|
|
|
87
90
|
info.errorDetails = [];
|
|
88
91
|
}
|
|
89
92
|
if (actionResult.errorfile) {
|
|
90
|
-
info.errorFileUrl = "".concat(ibiz.env.baseUrl, "/").concat(ibiz.env.appId).concat(ibiz.env.downloadFileUrl, "/").concat(actionResult.errorfile.folder, "/").concat(actionResult.errorfile.fileid);
|
|
93
|
+
info.errorFileUrl = "".concat(ibiz.env.baseUrl, "/").concat(ibiz.env.appId).concat(ibiz.env.downloadFileUrl, "/").concat(actionResult.errorfile.folder, "/").concat(actionResult.errorfile.fileid).replace("/{cat}", "");
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
96
|
const onDownLoad = () => {
|
|
@@ -83,10 +83,12 @@ class EditViewEngine extends runtime.ViewEngineBase {
|
|
|
83
83
|
var _a;
|
|
84
84
|
const data = event.data[0];
|
|
85
85
|
(_a = this.toolbar) == null ? void 0 : _a.calcButtonState(data, formDeId);
|
|
86
|
-
if (
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
if (model.showDataInfoBar) {
|
|
87
|
+
if (data.srfkey) {
|
|
88
|
+
evt.emit("onViewInfoChange", { dataInfo: data.srfmajortext || "" });
|
|
89
|
+
} else {
|
|
90
|
+
evt.emit("onViewInfoChange", { dataInfo: "\u65B0\u5EFA" });
|
|
91
|
+
}
|
|
90
92
|
}
|
|
91
93
|
};
|
|
92
94
|
this.form.evt.on("onLoadSuccess", (event) => {
|
|
@@ -263,7 +265,11 @@ class EditViewEngine extends runtime.ViewEngineBase {
|
|
|
263
265
|
},
|
|
264
266
|
data instanceof runtime.ControlVO ? data.getOrigin() : data
|
|
265
267
|
);
|
|
266
|
-
ibiz.mc.command.send(
|
|
268
|
+
ibiz.mc.command.send(
|
|
269
|
+
{ srfdecodename: "SysTodo" },
|
|
270
|
+
"OBJECTUPDATED",
|
|
271
|
+
"WITHDRAW"
|
|
272
|
+
);
|
|
267
273
|
}
|
|
268
274
|
/**
|
|
269
275
|
* 初始化标记打开数据相关逻辑
|
|
@@ -32,6 +32,8 @@ class TabSearchViewEngine extends tabExpView_engine.TabExpViewEngine {
|
|
|
32
32
|
get tabExpPanel() {
|
|
33
33
|
return this.view.getController("tabexppanel");
|
|
34
34
|
}
|
|
35
|
+
preprocessTabExpModelLayout() {
|
|
36
|
+
}
|
|
35
37
|
async onCreated() {
|
|
36
38
|
await super.onCreated();
|
|
37
39
|
const { childNames } = this.view;
|
|
@@ -93,6 +95,34 @@ class TabSearchViewEngine extends tabExpView_engine.TabExpViewEngine {
|
|
|
93
95
|
}
|
|
94
96
|
return params;
|
|
95
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* 计算视图头部元素的显示与否
|
|
100
|
+
* 所有部件容器名称均为:view_部件名称
|
|
101
|
+
* - 注意 分页导航和分页搜索的默认布局不一致
|
|
102
|
+
*
|
|
103
|
+
* 分页导航:分页导航栏在视图头中
|
|
104
|
+
*
|
|
105
|
+
* 分页搜索:分页导航栏不在视图头中
|
|
106
|
+
* @protected
|
|
107
|
+
*/
|
|
108
|
+
calcViewHeaderVisible() {
|
|
109
|
+
let showHeader = false;
|
|
110
|
+
const { model } = this.view;
|
|
111
|
+
if (model.showCaptionBar) {
|
|
112
|
+
showHeader = true;
|
|
113
|
+
}
|
|
114
|
+
if (ibiz.env.isMob) {
|
|
115
|
+
if (this.isExistAndInLayout("lefttoolbar")) {
|
|
116
|
+
showHeader = true;
|
|
117
|
+
}
|
|
118
|
+
if (this.isExistAndInLayout("righttoolbar")) {
|
|
119
|
+
showHeader = true;
|
|
120
|
+
}
|
|
121
|
+
} else if (this.isExistAndInLayout("toolbar")) {
|
|
122
|
+
showHeader = true;
|
|
123
|
+
}
|
|
124
|
+
return showHeader;
|
|
125
|
+
}
|
|
96
126
|
/**
|
|
97
127
|
* 重新计算视图参数
|
|
98
128
|
* @author lxm
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/vue3-components",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.14",
|
|
4
4
|
"description": "使用 rollup 编译 vue 组件或者 jsx",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"module": "es/index.mjs",
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
"@floating-ui/dom": "^1.5.3",
|
|
31
31
|
"@ibiz-template-plugin/ai-chat": "^0.0.1",
|
|
32
32
|
"@ibiz-template-plugin/gantt": "0.1.3-alpha.46",
|
|
33
|
-
"@ibiz-template/core": "0.6.
|
|
33
|
+
"@ibiz-template/core": "0.6.15",
|
|
34
34
|
"@ibiz-template/devtool": "0.0.1-dev.6",
|
|
35
|
-
"@ibiz-template/model-helper": "0.6.
|
|
36
|
-
"@ibiz-template/runtime": "0.6.
|
|
35
|
+
"@ibiz-template/model-helper": "0.6.15",
|
|
36
|
+
"@ibiz-template/runtime": "0.6.15",
|
|
37
37
|
"@ibiz-template/theme": "^0.6.0",
|
|
38
|
-
"@ibiz-template/vue3-util": "0.6.
|
|
39
|
-
"@ibiz-template/web-theme": "^1.1.
|
|
40
|
-
"@ibiz/model-core": "^0.1.
|
|
38
|
+
"@ibiz-template/vue3-util": "0.6.15",
|
|
39
|
+
"@ibiz-template/web-theme": "^1.1.14",
|
|
40
|
+
"@ibiz/model-core": "^0.1.19",
|
|
41
41
|
"@imengyu/vue3-context-menu": "^1.3.5",
|
|
42
42
|
"@monaco-editor/loader": "^1.4.0",
|
|
43
43
|
"@wangeditor/editor": "^5.1.23",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"@ibiz-template/runtime": "^0.6.0",
|
|
101
101
|
"@ibiz-template/theme": "^0.6.0",
|
|
102
102
|
"@ibiz-template/vue3-util": "^0.6.0",
|
|
103
|
-
"@ibiz/model-core": "^0.1.
|
|
103
|
+
"@ibiz/model-core": "^0.1.19",
|
|
104
104
|
"@imengyu/vue3-context-menu": "^1.3.3",
|
|
105
105
|
"@monaco-editor/loader": "^1.3.3",
|
|
106
106
|
"@wangeditor/editor": "^5.1.23",
|