cloud-web-corejs 1.0.54-dev.786 → 1.0.54-dev.788
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/package.json +2 -1
- package/src/components/VabUpload/index.vue +1 -1
- package/src/components/baseInputExport/mixins.js +13 -2
- package/src/components/code-editor/async.js +29 -0
- package/src/components/code-editor/index.vue +65 -6
- package/src/components/excelImport/index.js +69 -7
- package/src/components/excelImport/mixins.js +841 -9
- package/src/components/fileLibrary/fileHistoryDialog.vue +1 -1
- package/src/components/fileLibrary/fileObjAuthEdit.vue +1 -1
- package/src/components/fileLibrary/filterDialog.vue +1 -1
- package/src/components/formDialog/README.md +324 -241
- package/src/components/formDialog/actionButtons.js +90 -0
- package/src/components/formDialog/index.js +48 -35
- package/src/components/formDialog/index.vue +802 -724
- package/src/components/formDrawer/drawer.vue +719 -0
- package/src/components/formDrawer/index.js +50 -0
- package/src/components/onlineTalk/talkUserDialog.vue +1 -1
- package/src/components/table/index.js +4 -0
- package/src/components/tempStorage/tempStorageDialog.vue +1 -1
- package/src/components/wf/addTaskUserdialog.vue +1 -1
- package/src/components/xform/docs/2026-08 /345/210/227/350/241/250/345/257/274/345/207/272/350/204/261/346/225/217/345/210/227/345/211/224/351/231/244/350/220/275/345/234/260/346/226/207/346/241/243.md" +165 -0
- package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +115 -4
- package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +102 -5
- package/src/components/xform/form-designer/form-widget/dialog/formFieldDialog.vue +1 -1
- package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +18 -73
- package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +3 -0
- package/src/components/xform/form-designer/setting-panel/action-button-config-dialog.vue +241 -0
- package/src/components/xform/form-designer/setting-panel/form-setting.vue +116 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +6 -0
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +1 -0
- package/src/components/xform/form-render/container-item/data-table-mixin.js +1480 -1460
- package/src/components/xform/form-render/container-item/detail-item.vue +11 -2
- package/src/components/xform/form-render/container-item/list-h5-item.vue +12 -0
- package/src/components/xform/form-render/indexMixin.js +5 -0
- package/src/components/xform/utils/textMaskUtil.js +186 -0
- package/src/index.js +505 -472
- package/src/store/config/index.js +224 -0
- package/src/store/modules/tagsView.js +4 -2
- package/src/utils/lazyPlugin.js +66 -0
- package/src/views/bd/project/branch/bd_branch/edit.vue +145 -0
- package/src/views/bd/project/branch/bd_branch/list.vue +72 -0
- package/src/views/bd/project/branch/bd_branch/menuKindDialog.vue +106 -0
- package/src/views/bd/project/branch/bd_branch/mixins/edit.js +189 -0
- package/src/views/bd/project/branch/bd_branch/mixins/list.js +124 -0
- package/src/views/bd/project/branch/bd_branch/mixins/menuKindDialog.js +85 -0
- package/src/views/bd/project/branch/form_script/list.vue +22 -0
- package/src/views/bd/project/branch/form_template/list.vue +21 -0
- package/src/views/bd/project/branch/menu_kind/list.vue +21 -0
- package/src/views/bd/project/common/form_script/list.vue +16 -0
- package/src/views/bd/project/common/form_template/list.vue +15 -0
- package/src/views/bd/project/common/menu_kind/list.vue +15 -0
- package/src/views/bd/project/core/branchContext.js +100 -0
- package/src/views/bd/project/core/branchPage.js +78 -0
- package/src/views/bd/project/core/branchPageWrap.vue +216 -0
- package/src/views/bd/project/core/branchScope.js +44 -0
- package/src/views/bd/project/core/branchSelect.vue +106 -0
- package/src/views/bd/project/core/httpBranchPatch.js +58 -0
- package/src/views/bd/project/datatable/menu_kind/list.vue +15 -0
- package/src/views/bd/project/datatable/table_model/list.vue +15 -0
- package/src/views/bd/setting/bd_attach_setting/dialog.vue +1 -1
- package/src/views/bd/setting/bd_attach_setting/list.vue +1 -1
- package/src/views/bd/setting/bd_company_env/dialog.vue +1 -1
- package/src/views/bd/setting/bd_company_env/list.vue +1 -1
- package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +1 -1
- package/src/views/bd/setting/form_import_log/list.vue +1 -1
- package/src/views/bd/setting/form_script/dialog.vue +1 -1
- package/src/views/bd/setting/form_script/form_list.vue +1 -1
- package/src/views/bd/setting/form_script/list.vue +1 -1
- package/src/views/bd/setting/form_script/list1.vue +1 -1
- package/src/views/bd/setting/form_template/dialog.vue +1 -1
- package/src/views/bd/setting/form_template/formDesignerDialog.vue +1 -0
- package/src/views/bd/setting/form_template/ftHistoryDialog.vue +1 -1
- package/src/views/bd/setting/form_template/itemList.vue +1 -1
- package/src/views/bd/setting/form_template/list.vue +3 -3
- package/src/views/bd/setting/form_template/mixins/edit.js +3 -3
- package/src/views/bd/setting/form_template/mixins/list.js +3 -3
- package/src/views/bd/setting/form_template/mixins/list2.js +3 -3
- package/src/views/bd/setting/form_template/mixins/wf_list.js +3 -3
- package/src/views/bd/setting/form_template/wf_list.vue +3 -3
- package/src/views/bd/setting/logic_param/list.vue +1 -1
- package/src/views/bd/setting/menu_kind/dialog.vue +1 -1
- package/src/views/bd/setting/menu_kind/list.vue +1 -1
- package/src/views/bd/setting/push_data/list.vue +1 -1
- package/src/views/bd/setting/push_data_h/list.vue +1 -1
- package/src/views/bd/setting/request_async_setting/list.vue +1 -1
- package/src/views/bd/setting/request_setting/list.vue +1 -1
- package/src/views/bd/setting/table_model/dialog.vue +1 -1
- package/src/views/bd/setting/table_model/list.vue +1 -1
- package/src/views/bd/setting/table_model/zdDialog.vue +1 -1
- package/src/views/support/export_template/list.vue +1 -1
- package/src/views/user/access_log/list.vue +1 -1
- package/src/views/user/access_log/list2.vue +1 -1
- package/src/views/user/api_request/list.vue +1 -1
- package/src/views/user/area/dialog.vue +1 -1
- package/src/views/user/area/list.vue +1 -1
- package/src/views/user/bill_setting/list.vue +1 -1
- package/src/views/user/bill_setting/userDialog.vue +1 -1
- package/src/views/user/code_rules/list.vue +1 -1
- package/src/views/user/common_attribute/list.vue +1 -1
- package/src/views/user/common_script/list.vue +1 -1
- package/src/views/user/company_info/dialog.vue +1 -1
- package/src/views/user/country/dialog.vue +1 -1
- package/src/views/user/country/list.vue +1 -1
- package/src/views/user/data_type_setting/dialog.vue +1 -1
- package/src/views/user/extend_datasource/dialog.vue +1 -1
- package/src/views/user/extend_datasource/list.vue +1 -1
- package/src/views/user/fieldTranslation/list.vue +1 -1
- package/src/views/user/field_values_invisible/list.vue +1 -1
- package/src/views/user/file_type/list.vue +1 -1
- package/src/views/user/file_view_area/list.vue +1 -1
- package/src/views/user/form/form_template/dialog.vue +1 -1
- package/src/views/user/form/form_template/itemList.vue +1 -1
- package/src/views/user/form/form_template/list.vue +1 -1
- package/src/views/user/form/form_template_field/dialog.vue +1 -1
- package/src/views/user/form/form_type/dialog.vue +1 -1
- package/src/views/user/form/form_type/list.vue +1 -1
- package/src/views/user/form/report_requestaccess/dialog.vue +1 -1
- package/src/views/user/form/report_requestaccess/list.vue +1 -1
- package/src/views/user/form/vform/designer.vue +51 -22
- package/src/views/user/groups/dialog.vue +1 -1
- package/src/views/user/groups/list.vue +1 -1
- package/src/views/user/lang_tag/dialog.vue +1 -1
- package/src/views/user/lang_tag/list.vue +1 -1
- package/src/views/user/language_setting/list.vue +1 -1
- package/src/views/user/menu/list.vue +1 -1
- package/src/views/user/mobile_menu/list.vue +1 -1
- package/src/views/user/notify_message/list.vue +1 -1
- package/src/views/user/notify_template/list.vue +1 -1
- package/src/views/user/notify_template/list2.vue +1 -1
- package/src/views/user/oplog/list.vue +1 -1
- package/src/views/user/position/dialog.vue +1 -1
- package/src/views/user/position/list.vue +1 -1
- package/src/views/user/project_tag/dialog.vue +1 -1
- package/src/views/user/project_tag/list.vue +1 -1
- package/src/views/user/push_setting/list.vue +1 -1
- package/src/views/user/request_setting/list.vue +1 -1
- package/src/views/user/role/dialog.vue +1 -1
- package/src/views/user/role/list.vue +1 -1
- package/src/views/user/sale_org/dialog.vue +1 -1
- package/src/views/user/sale_org/list.vue +1 -1
- package/src/views/user/system_notice/list.vue +1 -1
- package/src/views/user/system_parameter/list.vue +1 -1
- package/src/views/user/user/dialog.vue +1 -1
- package/src/views/user/user/form_dialog.vue +1 -1
- package/src/views/user/user/form_list.vue +1 -1
- package/src/views/user/user/list.vue +2 -2
- package/src/views/user/user_log_classify/list.vue +1 -1
- package/src/views/user/wf/wfReport/index.vue +2 -2
- package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -2
- package/src/views/user/wf/wf_manage/list.vue +2 -2
- package/src/views/user/wf/wf_manage/list2.vue +2 -2
- package/src/views/user/wf/wf_obj_config/dialog.vue +1 -1
- package/src/views/user/wf/wf_obj_config/list.vue +1 -1
- package/src/views/user/wf/wf_obj_config/list_form.vue +1 -1
- package/src/views/user/wf/wf_transfer_setting/list.vue +1 -1
- package/src/views/user/workbench_menu/list.vue +1 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* formConfig.actionButtons 公共逻辑:formDialog / formDrawer 共用。
|
|
3
|
+
* 配置结构(存表单模板 formViewContent 的 formConfig 上,设计器"操作按钮"面板维护):
|
|
4
|
+
* { code, label, type, plain, icon, authName, needValidate, closeAfter, visible, onClick }
|
|
5
|
+
* 语义约定见 docs/formDrawer抽屉与formDialog按钮配置改造方案.md §3.1。
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/** 调用方 buttons 覆盖模板配置;两者都没有则返回 null(壳回退默认取消/确定) */
|
|
9
|
+
export function resolveActionButtons(callerButtons, formConfig) {
|
|
10
|
+
const raw
|
|
11
|
+
= (Array.isArray(callerButtons) && callerButtons.length && callerButtons)
|
|
12
|
+
|| (formConfig
|
|
13
|
+
&& Array.isArray(formConfig.actionButtons)
|
|
14
|
+
&& formConfig.actionButtons.length
|
|
15
|
+
&& formConfig.actionButtons)
|
|
16
|
+
|| null;
|
|
17
|
+
if (!raw) return null;
|
|
18
|
+
return raw.map((btn, index) => ({
|
|
19
|
+
needValidate: false,
|
|
20
|
+
closeAfter: true,
|
|
21
|
+
...btn,
|
|
22
|
+
code: btn.code || `button_${index}`,
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** 按钮权限:denylist——formCode:authName 在 dispermissions 中则无权;未配 authName 放行 */
|
|
27
|
+
export function hasButtonPermission(btn, formCode, vm) {
|
|
28
|
+
if (!btn.authName || !formCode) return true;
|
|
29
|
+
const dispermissions
|
|
30
|
+
= (vm && vm.$store && vm.$store.getters.dispermissions) || [];
|
|
31
|
+
return !dispermissions.includes(`${formCode}:${btn.authName}`);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** visible 脚本:handleCustomEvent 执行(this = 表单实例),显式返回 false 才隐藏 */
|
|
35
|
+
export function isButtonVisible(btn, formRef) {
|
|
36
|
+
if (!btn.visible) return true;
|
|
37
|
+
if (!formRef) return true; // 表单未挂载前先渲染,挂载后重渲染时再求值
|
|
38
|
+
return formRef.handleCustomEvent(btn.visible, ["button"], [btn]) !== false;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 执行按钮:needValidate 校验 → onClick 脚本 → done/closeAfter 收口。
|
|
43
|
+
* 脚本签名 onClick(formData, dialog, done, selection),this = VFormRender 实例。
|
|
44
|
+
* 返回 false / reject 均不关闭;未显式调 done 且 closeAfter 时自动以表单数据收口。
|
|
45
|
+
* @returns {Promise} 完成(无论是否收口)后 resolve,供壳侧解除按钮 loading
|
|
46
|
+
*/
|
|
47
|
+
export function runActionButton(btn, { formRef, host, getSelection, onSettle }) {
|
|
48
|
+
if (!formRef) return Promise.resolve();
|
|
49
|
+
|
|
50
|
+
const validate = () =>
|
|
51
|
+
new Promise((resolve) => {
|
|
52
|
+
if (!btn.needValidate) return resolve(true);
|
|
53
|
+
formRef.validateForm((valid) => resolve(!!valid));
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const getFormData = () =>
|
|
57
|
+
host.$baseLodash
|
|
58
|
+
? host.$baseLodash.cloneDeep(formRef.getFormData(false))
|
|
59
|
+
: formRef.getFormData(false);
|
|
60
|
+
|
|
61
|
+
return validate().then((valid) => {
|
|
62
|
+
if (!valid) return;
|
|
63
|
+
let doneCalled = false;
|
|
64
|
+
const done = (data) => {
|
|
65
|
+
doneCalled = true;
|
|
66
|
+
onSettle(
|
|
67
|
+
{ action: btn.code, data: data === undefined ? getFormData() : data },
|
|
68
|
+
btn.closeAfter !== false
|
|
69
|
+
);
|
|
70
|
+
};
|
|
71
|
+
const selection
|
|
72
|
+
= typeof getSelection === "function" ? getSelection() || [] : [];
|
|
73
|
+
const result = formRef.handleCustomEvent(
|
|
74
|
+
btn.onClick,
|
|
75
|
+
["formData", "dialog", "done", "selection"],
|
|
76
|
+
[formRef.getFormData(false), host, done, selection]
|
|
77
|
+
);
|
|
78
|
+
if (result === false) return;
|
|
79
|
+
return Promise.resolve(result)
|
|
80
|
+
.then(() => {
|
|
81
|
+
// 脚本成功且未手动收口:closeAfter 时自动以表单数据收口,否则保持打开
|
|
82
|
+
if (!doneCalled && btn.closeAfter !== false) {
|
|
83
|
+
onSettle({ action: btn.code, data: getFormData() }, true);
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
.catch(() => {
|
|
87
|
+
// 脚本 reject:不关闭,由脚本自行提示错误
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
@@ -1,35 +1,48 @@
|
|
|
1
|
-
const modules = {};
|
|
2
|
-
import vue from "vue";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
1
|
+
const modules = {};
|
|
2
|
+
import vue from "vue";
|
|
3
|
+
|
|
4
|
+
// 壳组件懒加载:首屏只留本入口几十行,index.vue(含 xform 渲染链路)随首次调用进独立 chunk
|
|
5
|
+
let FormDialogCtor = null;
|
|
6
|
+
|
|
7
|
+
function loadCtor() {
|
|
8
|
+
if (FormDialogCtor) return Promise.resolve(FormDialogCtor);
|
|
9
|
+
return import(
|
|
10
|
+
/* webpackChunkName: "form-dialog" */ "./index.vue"
|
|
11
|
+
).then((m) => {
|
|
12
|
+
FormDialogCtor = vue.extend(m.default);
|
|
13
|
+
return FormDialogCtor;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* JS 调用打开表单弹框。每次调用创建独立实例,支持叠开多层。
|
|
19
|
+
* 确定(校验通过)resolve 表单数据,取消/关闭 resolve(null),不使用 reject。
|
|
20
|
+
* 配置了自定义按钮(formConfig.actionButtons / options.buttons)时 resolve {action, data}。
|
|
21
|
+
*/
|
|
22
|
+
function open(options = {}) {
|
|
23
|
+
return loadCtor().then((Ctor) => {
|
|
24
|
+
const parent
|
|
25
|
+
= typeof window !== "undefined" && window.$vueRoot ? window.$vueRoot : null;
|
|
26
|
+
const instanceOptions = {};
|
|
27
|
+
if (parent) {
|
|
28
|
+
instanceOptions.parent = parent;
|
|
29
|
+
if (parent._i18n) {
|
|
30
|
+
instanceOptions.i18n = parent._i18n;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const instance = new Ctor(instanceOptions);
|
|
34
|
+
instance.$mount();
|
|
35
|
+
document.body.appendChild(instance.$el);
|
|
36
|
+
return instance.open(options);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// 定义插件对象
|
|
41
|
+
// vue的install方法,用于定义vue插件
|
|
42
|
+
modules.install = function (Vue) {
|
|
43
|
+
// 在Vue的原型上添加实例方法,以全局调用
|
|
44
|
+
Vue.prototype.$formDialog = open;
|
|
45
|
+
};
|
|
46
|
+
modules.open = open;
|
|
47
|
+
|
|
48
|
+
export default modules;
|