@steedos-widgets/amis-lib 6.10.1-beta.31 → 6.10.1-beta.33
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/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs.js +237 -58
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +237 -58
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +95 -49
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/fields_filter.d.ts +4 -14
- package/dist/types/lib/converter/amis/header.d.ts +4 -14
- package/dist/types/lib/converter/amis/toolbar.d.ts +4 -14
- package/dist/types/lib/converter/amis/toolbars/setting_listview/filters.d.ts +0 -1
- package/dist/types/lib/converter/amis/toolbars/setting_listview.d.ts +0 -1
- package/dist/types/lib/objects.d.ts +2 -0
- package/dist/types/schema/standard_delete.amis.d.ts +13 -0
- package/dist/types/schema/standard_new.amis.d.ts +1 -1
- package/dist/types/standard/button.d.ts +14 -1
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -532,8 +532,8 @@ function getComparableAmisVersion() {
|
|
|
532
532
|
/*
|
|
533
533
|
* @Author: baozhoutao@steedos.com
|
|
534
534
|
* @Date: 2022-05-23 09:53:08
|
|
535
|
-
* @LastEditors:
|
|
536
|
-
* @LastEditTime:
|
|
535
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
536
|
+
* @LastEditTime: 2025-04-08 10:55:41
|
|
537
537
|
* @Description:
|
|
538
538
|
*/
|
|
539
539
|
|
|
@@ -687,9 +687,10 @@ function getRelatedFieldTpl(field, ctx){
|
|
|
687
687
|
const href = Router.getObjectDetailPath({
|
|
688
688
|
formFactor: ctx.formFactor, appId: "${appId}", objectName: `${objectNameTpl}`, recordId: `${recordIdTpl}`
|
|
689
689
|
});
|
|
690
|
-
if(ctx.isRelated && window.innerWidth >= 768
|
|
690
|
+
if (window.innerWidth >= 768) { //(ctx.isRelated || isObjectListview) && window.innerWidth >= 768
|
|
691
|
+
// 相关表字段,包括列表视图、对象表格组件中的lookup/master_detail字段,在PC端显示时,点击字段值,不跳转到详情页而是右侧弹出drawer
|
|
691
692
|
labelTpl = `<a href="${href}" ${linkTarget} onclick="return false;">${labelTpl}</a>`;
|
|
692
|
-
}else {
|
|
693
|
+
} else {
|
|
693
694
|
labelTpl = `<a href="${href}" ${linkTarget}>${labelTpl}</a>`;
|
|
694
695
|
}
|
|
695
696
|
|
|
@@ -1487,6 +1488,7 @@ var frontend_download$1 = "Download";
|
|
|
1487
1488
|
var frontend_form_save$1 = "Save";
|
|
1488
1489
|
var frontend_form_save_and_new$1 = "Save and New";
|
|
1489
1490
|
var frontend_form_cancel$1 = "Cancel";
|
|
1491
|
+
var frontend_form_reset$1 = "Reset";
|
|
1490
1492
|
var frontend_form_new$1 = "New";
|
|
1491
1493
|
var frontend_form_edit$1 = "Edit";
|
|
1492
1494
|
var frontend_form_preview$1 = "Preview";
|
|
@@ -1505,7 +1507,7 @@ var frontend_display_type_is_split$1 = "Split View";
|
|
|
1505
1507
|
var frontend_display_as$1 = "Displayed as";
|
|
1506
1508
|
var frontend_record_sum$1 = "items";
|
|
1507
1509
|
var frontend_button_reload_tooltip$1 = "Refresh";
|
|
1508
|
-
var frontend_button_search_tooltip$1 = "
|
|
1510
|
+
var frontend_button_search_tooltip$1 = "Filter";
|
|
1509
1511
|
var frontend_fields_filter_button_search$1 = "Search";
|
|
1510
1512
|
var frontend_fields_filter_button_settings$1 = "Set search options";
|
|
1511
1513
|
var frontend_button_listview_control_tooltip$1 = "List View Controls";
|
|
@@ -1577,6 +1579,7 @@ var en_us = {
|
|
|
1577
1579
|
frontend_form_save: frontend_form_save$1,
|
|
1578
1580
|
frontend_form_save_and_new: frontend_form_save_and_new$1,
|
|
1579
1581
|
frontend_form_cancel: frontend_form_cancel$1,
|
|
1582
|
+
frontend_form_reset: frontend_form_reset$1,
|
|
1580
1583
|
frontend_form_new: frontend_form_new$1,
|
|
1581
1584
|
frontend_form_edit: frontend_form_edit$1,
|
|
1582
1585
|
frontend_form_preview: frontend_form_preview$1,
|
|
@@ -1668,6 +1671,7 @@ var frontend_download = "下载";
|
|
|
1668
1671
|
var frontend_form_save = "保存";
|
|
1669
1672
|
var frontend_form_save_and_new = "保存并新建";
|
|
1670
1673
|
var frontend_form_cancel = "取消";
|
|
1674
|
+
var frontend_form_reset = "重置";
|
|
1671
1675
|
var frontend_form_new = "新建";
|
|
1672
1676
|
var frontend_form_edit = "编辑";
|
|
1673
1677
|
var frontend_form_preview = "预览";
|
|
@@ -1686,7 +1690,7 @@ var frontend_display_type_is_split = "分栏视图";
|
|
|
1686
1690
|
var frontend_display_as = "显示为";
|
|
1687
1691
|
var frontend_record_sum = "个项目";
|
|
1688
1692
|
var frontend_button_reload_tooltip = "刷新";
|
|
1689
|
-
var frontend_button_search_tooltip = "
|
|
1693
|
+
var frontend_button_search_tooltip = "筛选";
|
|
1690
1694
|
var frontend_fields_filter_button_search = "搜索";
|
|
1691
1695
|
var frontend_fields_filter_button_settings = "选择搜索项";
|
|
1692
1696
|
var frontend_button_listview_control_tooltip = "列表视图控制";
|
|
@@ -1759,6 +1763,7 @@ var zh_cn = {
|
|
|
1759
1763
|
frontend_form_save: frontend_form_save,
|
|
1760
1764
|
frontend_form_save_and_new: frontend_form_save_and_new,
|
|
1761
1765
|
frontend_form_cancel: frontend_form_cancel,
|
|
1766
|
+
frontend_form_reset: frontend_form_reset,
|
|
1762
1767
|
frontend_form_new: frontend_form_new,
|
|
1763
1768
|
frontend_form_edit: frontend_form_edit,
|
|
1764
1769
|
frontend_form_preview: frontend_form_preview,
|
|
@@ -1926,7 +1931,12 @@ async function getQuickEditSchema(object, columnField, options){
|
|
|
1926
1931
|
if (field.disabled) {
|
|
1927
1932
|
quickEditSchema = false;
|
|
1928
1933
|
} else {
|
|
1929
|
-
var
|
|
1934
|
+
var fieldCtx = Object.assign({}, ___namespace.omit(options, 'buttons'), {
|
|
1935
|
+
defaults: Object.assign({}, options.defaults, {
|
|
1936
|
+
formSchema: quickEditSchema
|
|
1937
|
+
})
|
|
1938
|
+
});
|
|
1939
|
+
var fieldSchema = await convertSFieldToAmisField(field, false, fieldCtx);
|
|
1930
1940
|
//存在属性上可编辑,实际不可编辑的字段,convertSFieldToAmisField函数可能会返回undefined,如summary
|
|
1931
1941
|
if (!!fieldSchema) {
|
|
1932
1942
|
quickEditSchema.body.push(fieldSchema);
|
|
@@ -2359,14 +2369,19 @@ function getFieldWidth(width){
|
|
|
2359
2369
|
}
|
|
2360
2370
|
|
|
2361
2371
|
async function getColumnItemOnClick(field, options){
|
|
2362
|
-
|
|
2372
|
+
let objectApiName = options.objectName;
|
|
2373
|
+
if(!(field.is_name || field.name === options.labelFieldName)){
|
|
2374
|
+
objectApiName = field.reference_to;
|
|
2375
|
+
}
|
|
2376
|
+
const recordPage = await getPage({ type: 'record', appId: options.appId, objectName: objectApiName, formFactor: options.formFactor });
|
|
2363
2377
|
const drawerRecordDetailSchema = recordPage ? Object.assign({}, recordPage.schema, {
|
|
2364
2378
|
"recordId": `\${${options.idFieldName}}`,
|
|
2365
2379
|
"data": {
|
|
2366
2380
|
...recordPage.schema.data,
|
|
2367
2381
|
"_inDrawer": true, // 用于判断是否在抽屉中
|
|
2368
2382
|
"recordLoaded": false, // 重置数据加载状态
|
|
2369
|
-
"recordId": `\${${options.idFieldName}}
|
|
2383
|
+
"recordId": `\${${options.idFieldName}}`,//审批微页面依赖了作用域中的recordId
|
|
2384
|
+
"_tableObjectName": options.objectName
|
|
2370
2385
|
}
|
|
2371
2386
|
}) : {
|
|
2372
2387
|
"type": "steedos-record-detail",
|
|
@@ -2377,12 +2392,16 @@ async function getColumnItemOnClick(field, options){
|
|
|
2377
2392
|
"data": {
|
|
2378
2393
|
"_inDrawer": true, // 用于判断是否在抽屉中
|
|
2379
2394
|
"recordLoaded": false, // 重置数据加载状态
|
|
2395
|
+
"_tableObjectName": options.objectName
|
|
2380
2396
|
}
|
|
2381
2397
|
};
|
|
2382
2398
|
|
|
2383
2399
|
if(!(field.is_name || field.name === options.labelFieldName)){
|
|
2384
2400
|
drawerRecordDetailSchema.objectApiName = field.reference_to;
|
|
2385
2401
|
drawerRecordDetailSchema.recordId = `\${_display.${field.name}.value}`;
|
|
2402
|
+
// if (recordPage){
|
|
2403
|
+
// drawerRecordDetailSchema.data.recordId = `\${_display.${field.name}.value}`
|
|
2404
|
+
// }
|
|
2386
2405
|
}
|
|
2387
2406
|
return {
|
|
2388
2407
|
"click": {
|
|
@@ -2532,6 +2551,33 @@ async function getTableColumns(object, fields, options){
|
|
|
2532
2551
|
static: true,
|
|
2533
2552
|
}, fieldAmis, {name: field.name});
|
|
2534
2553
|
}
|
|
2554
|
+
else if(field.type === 'lookup' || field.type === 'master_detail'){
|
|
2555
|
+
columnItem = Object.assign({}, {
|
|
2556
|
+
type: "static-wrapper",
|
|
2557
|
+
name: field.name,
|
|
2558
|
+
label: field.label,
|
|
2559
|
+
sortable: field.sortable,
|
|
2560
|
+
width: getFieldWidth(field.width),
|
|
2561
|
+
toggled: field.toggled,
|
|
2562
|
+
className,
|
|
2563
|
+
size: "none",
|
|
2564
|
+
inputClassName: "inline",
|
|
2565
|
+
body: {
|
|
2566
|
+
type: "steedos-field",
|
|
2567
|
+
static: true,
|
|
2568
|
+
tableObjectName: options.objectName,
|
|
2569
|
+
config: {
|
|
2570
|
+
type: "lookup",
|
|
2571
|
+
reference_to: field.reference_to,
|
|
2572
|
+
name: field.name,
|
|
2573
|
+
is_name: field.is_name,
|
|
2574
|
+
label: null,
|
|
2575
|
+
multiple: field.multiple,
|
|
2576
|
+
amis: Object.assign({}, fieldAmis, { label: null })
|
|
2577
|
+
}
|
|
2578
|
+
}
|
|
2579
|
+
}, fieldAmis, {name: field.name});
|
|
2580
|
+
}
|
|
2535
2581
|
else {
|
|
2536
2582
|
const tpl = await getFieldTpl(field, options);
|
|
2537
2583
|
let type = 'static-text';
|
|
@@ -2580,10 +2626,20 @@ async function getTableColumns(object, fields, options){
|
|
|
2580
2626
|
columnItem.defaultColor = null;
|
|
2581
2627
|
}
|
|
2582
2628
|
|
|
2583
|
-
|
|
2629
|
+
let needClickEvent = false;
|
|
2630
|
+
// if (options.isRelated){
|
|
2631
|
+
// // 子表列表上,Lookup字段和名称字段都需要点击事件
|
|
2632
|
+
// needClickEvent = ((field.is_name || field.name === options.labelFieldName) || ((field.type == 'lookup' || field.type == 'master_detail') && _.isString(field.reference_to) && field.multiple != true));
|
|
2633
|
+
// }
|
|
2634
|
+
// else {// if (isObjectListview)
|
|
2635
|
+
// // 列表视图、对象表格中,Lookup字段需要点击事件
|
|
2636
|
+
// needClickEvent = (field.type == 'lookup' || field.type == 'master_detail') && _.isString(field.reference_to) && field.multiple != true;
|
|
2637
|
+
// }
|
|
2638
|
+
// lookup字段走steedos-field组件了,所以这里只需要判断子表名称字段才额外加点击事件弹出右侧详情
|
|
2639
|
+
needClickEvent = options.isRelated && (field.is_name || field.name === options.labelFieldName);
|
|
2640
|
+
if(window.innerWidth >= 768 && needClickEvent){
|
|
2584
2641
|
columnItem.onEvent = await getColumnItemOnClick(field, options);
|
|
2585
2642
|
}
|
|
2586
|
-
|
|
2587
2643
|
}
|
|
2588
2644
|
}
|
|
2589
2645
|
if(columnItem){
|
|
@@ -4935,9 +4991,9 @@ const getSchema$5 = async (uiSchema, ctx) => {
|
|
|
4935
4991
|
"body": [
|
|
4936
4992
|
{
|
|
4937
4993
|
"type": "button",
|
|
4994
|
+
"level": "primary",
|
|
4938
4995
|
"label": i18next__default["default"].t('frontend_form_new'),
|
|
4939
4996
|
"id": "u:standard_new",
|
|
4940
|
-
"level": "default",
|
|
4941
4997
|
"onEvent": {
|
|
4942
4998
|
"click": {
|
|
4943
4999
|
"weight": 0,
|
|
@@ -5138,8 +5194,8 @@ const getSchema$4 = async (uiSchema, ctx) => {
|
|
|
5138
5194
|
/*
|
|
5139
5195
|
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
5140
5196
|
* @Date: 2023-03-22 09:31:21
|
|
5141
|
-
* @LastEditors:
|
|
5142
|
-
* @LastEditTime:
|
|
5197
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
5198
|
+
* @LastEditTime: 2025-04-07 16:02:53
|
|
5143
5199
|
*/
|
|
5144
5200
|
const getSchema$3 = (uiSchema)=>{
|
|
5145
5201
|
return {
|
|
@@ -5199,6 +5255,17 @@ const getSchema$3 = (uiSchema)=>{
|
|
|
5199
5255
|
"_isRelated": "${_isRelated}"
|
|
5200
5256
|
},
|
|
5201
5257
|
"expression": `\${_master.objectName != '${uiSchema.name}' && _master.objectName}`
|
|
5258
|
+
},
|
|
5259
|
+
// 列表视图、对象表格组件上的lookup字段,点开右侧弹出drawer窗口,删除记录后刷新列表
|
|
5260
|
+
{
|
|
5261
|
+
"actionType": "broadcast",
|
|
5262
|
+
"args": {
|
|
5263
|
+
"eventName": "@data.changed.${_tableObjectName}"
|
|
5264
|
+
},
|
|
5265
|
+
"data": {
|
|
5266
|
+
"objectName": "${_tableObjectName}"
|
|
5267
|
+
},
|
|
5268
|
+
"expression": `\${_tableObjectName != '${uiSchema.name}' && _tableObjectName}`
|
|
5202
5269
|
}
|
|
5203
5270
|
]
|
|
5204
5271
|
}
|
|
@@ -6113,7 +6180,7 @@ async function getObjectFieldsFilterFormSchema(ctx) {
|
|
|
6113
6180
|
const formSchema = {
|
|
6114
6181
|
"type": "service",
|
|
6115
6182
|
"visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
|
|
6116
|
-
"className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden" : "slds-filters__body p-0 sm:grid sm:gap-4 sm:grid-cols-2
|
|
6183
|
+
"className": ctx.formFactor === 'SMALL' ? "slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden" : "slds-filters__body p-0 sm:grid sm:gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 p-1",
|
|
6117
6184
|
"style":{
|
|
6118
6185
|
"max-height":ctx.formFactor === 'SMALL'?"30vh":"unset"
|
|
6119
6186
|
},
|
|
@@ -6348,6 +6415,21 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6348
6415
|
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
|
|
6349
6416
|
crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
|
|
6350
6417
|
`;
|
|
6418
|
+
/**
|
|
6419
|
+
给lookup字段配置filter_form_data时可以配置为amis变量,也可以配置为事态key-value键值对象值:
|
|
6420
|
+
```
|
|
6421
|
+
"filter_form_data": "${selectedPublicGroupFilterFormData|toJson}"
|
|
6422
|
+
```
|
|
6423
|
+
or
|
|
6424
|
+
```
|
|
6425
|
+
"filter_form_data": {
|
|
6426
|
+
"public_group_ids": [
|
|
6427
|
+
"67addbef39f9a4503789b38d"
|
|
6428
|
+
]
|
|
6429
|
+
}
|
|
6430
|
+
```
|
|
6431
|
+
*/
|
|
6432
|
+
const filterFormValues = ctx.filter_form_data;
|
|
6351
6433
|
const dataProviderInited = `
|
|
6352
6434
|
const searchableFields = ${JSON.stringify(searchableFields)};
|
|
6353
6435
|
const autoOpenFilter = ${autoOpenFilter};
|
|
@@ -6385,6 +6467,16 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6385
6467
|
}
|
|
6386
6468
|
setData({ filterFormSearchableFields: defaultSearchableFields });
|
|
6387
6469
|
if(isLookup){
|
|
6470
|
+
let filterFormValues = ${_.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
|
|
6471
|
+
const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
|
|
6472
|
+
if (isAmisFormula){
|
|
6473
|
+
filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};
|
|
6474
|
+
}
|
|
6475
|
+
if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
|
|
6476
|
+
let fields = data.uiSchema && data.uiSchema.fields;
|
|
6477
|
+
filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
|
|
6478
|
+
setData({ ...filterFormValues });
|
|
6479
|
+
}
|
|
6388
6480
|
// looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器
|
|
6389
6481
|
setData({ showFieldsFilter: autoOpenFilter });
|
|
6390
6482
|
}
|
|
@@ -6541,6 +6633,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6541
6633
|
"body": [
|
|
6542
6634
|
{
|
|
6543
6635
|
"type": "button",
|
|
6636
|
+
"level": "primary",
|
|
6544
6637
|
"id": btnSearchId,
|
|
6545
6638
|
"label": i18next__default["default"].t('frontend_fields_filter_button_search'),
|
|
6546
6639
|
"icon": "fa fa-search",
|
|
@@ -6558,7 +6651,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6558
6651
|
},
|
|
6559
6652
|
{
|
|
6560
6653
|
"type": "button",
|
|
6561
|
-
"label": i18next__default["default"].t('
|
|
6654
|
+
"label": i18next__default["default"].t('frontend_form_reset'),
|
|
6562
6655
|
"name": "btn_filter_form_cancel",
|
|
6563
6656
|
// "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
|
|
6564
6657
|
"onEvent": {
|
|
@@ -6648,7 +6741,6 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6648
6741
|
"className": "steedos-amis-form"
|
|
6649
6742
|
}
|
|
6650
6743
|
],
|
|
6651
|
-
"id": "u:ca99fa9fe1b1",
|
|
6652
6744
|
"actions": [
|
|
6653
6745
|
{
|
|
6654
6746
|
"type": "button",
|
|
@@ -6676,13 +6768,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6676
6768
|
"actionType": "custom",
|
|
6677
6769
|
"script": onSearchableFieldsChangeScript
|
|
6678
6770
|
},
|
|
6679
|
-
|
|
6680
|
-
|
|
6681
|
-
|
|
6682
|
-
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6771
|
+
// 自动触发搜索事件会造成bug,应该是升级amis到6.4造成的,见:https://github.com/steedos/steedos-platform/issues/7121
|
|
6772
|
+
// 变更搜索项后,用户一般会点击搜索按钮,所以这里不自动触发搜索事件
|
|
6773
|
+
// {
|
|
6774
|
+
// "actionType": "click",
|
|
6775
|
+
// "componentId": btnSearchId,
|
|
6776
|
+
// "args": {
|
|
6777
|
+
// "__from_fields_filter_settings_confirm": true
|
|
6778
|
+
// }
|
|
6779
|
+
// },
|
|
6686
6780
|
{
|
|
6687
6781
|
"componentId": "",
|
|
6688
6782
|
"args": {},
|
|
@@ -6713,12 +6807,11 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6713
6807
|
]
|
|
6714
6808
|
}
|
|
6715
6809
|
},
|
|
6716
|
-
"id": "u:b96d84868a5a",
|
|
6717
6810
|
"level": "link"
|
|
6718
6811
|
}
|
|
6719
6812
|
],
|
|
6720
6813
|
"size": "xs",
|
|
6721
|
-
"className": "space-x-
|
|
6814
|
+
"className": "space-x-2"
|
|
6722
6815
|
},
|
|
6723
6816
|
"size": "xs",
|
|
6724
6817
|
"className": "slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"
|
|
@@ -7422,7 +7515,6 @@ function getObjectListHeaderFirstLine(objectSchema, listViewName, ctx) {
|
|
|
7422
7515
|
"id": "u:ce9e3fcc411a"
|
|
7423
7516
|
}
|
|
7424
7517
|
],
|
|
7425
|
-
"className": "steedos-overflow-visible-dialog",
|
|
7426
7518
|
"showCloseButton": true,
|
|
7427
7519
|
"showErrorMsg": true,
|
|
7428
7520
|
"showLoading": true,
|
|
@@ -7664,7 +7756,7 @@ function getObjectListHeader(objectSchema, listViewName, ctx) {
|
|
|
7664
7756
|
let headerSchema = [{
|
|
7665
7757
|
"type": "wrapper",
|
|
7666
7758
|
"body": body,
|
|
7667
|
-
"className": `
|
|
7759
|
+
"className": `px-3 pt-3 pb-0 m-1 bg-white`
|
|
7668
7760
|
}];
|
|
7669
7761
|
// console.log(`getObjectListHeader`, objectSchema, listViewName, ctx)
|
|
7670
7762
|
return headerSchema;
|
|
@@ -8412,7 +8504,6 @@ const getSetListviewFiltersButtonSchema = ()=>{
|
|
|
8412
8504
|
}
|
|
8413
8505
|
}
|
|
8414
8506
|
],
|
|
8415
|
-
"className": "steedos-overflow-visible-dialog",
|
|
8416
8507
|
"showCloseButton": true,
|
|
8417
8508
|
"showErrorMsg": true,
|
|
8418
8509
|
"showLoading": true,
|
|
@@ -9046,7 +9137,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
9046
9137
|
return {
|
|
9047
9138
|
"type": "tooltip-wrapper",
|
|
9048
9139
|
"id": "steedos_crud_toolbar_quick_search",
|
|
9049
|
-
"align": "
|
|
9140
|
+
"align": "right",
|
|
9050
9141
|
"title": "",
|
|
9051
9142
|
"content": "可搜索字段:" + searchableFieldsLabel.join(","),
|
|
9052
9143
|
"placement": "bottom",
|
|
@@ -9060,6 +9151,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
9060
9151
|
"name": keywordsSearchBoxName,
|
|
9061
9152
|
"placeholder": "快捷搜索",
|
|
9062
9153
|
"value": crudKeywords,
|
|
9154
|
+
"mini": true,
|
|
9063
9155
|
"clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
|
|
9064
9156
|
"clearAndSubmit": true,
|
|
9065
9157
|
"searchImediately": false,
|
|
@@ -9108,7 +9200,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
9108
9200
|
if(!hiddenCount){
|
|
9109
9201
|
toolbarCount = {
|
|
9110
9202
|
"type": "tpl",
|
|
9111
|
-
"align": "
|
|
9203
|
+
"align": "left",
|
|
9112
9204
|
"className": "text-gray-500 mr-2",
|
|
9113
9205
|
"tpl": "${count} " + i18next__default["default"].t('frontend_record_sum')
|
|
9114
9206
|
};
|
|
@@ -9192,7 +9284,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
9192
9284
|
"animation": true,
|
|
9193
9285
|
"visibleOn": "${isFieldsFilterEmpty == false && isLookup != true}"
|
|
9194
9286
|
},
|
|
9195
|
-
"align": "
|
|
9287
|
+
"align": "right",
|
|
9196
9288
|
"className": "bg-white p-2 rounded text-gray-500",
|
|
9197
9289
|
"onEvent": {
|
|
9198
9290
|
"click": {
|
|
@@ -9214,27 +9306,27 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
9214
9306
|
// 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中
|
|
9215
9307
|
let toolbars = [];
|
|
9216
9308
|
if(formFactor === 'SMALL'){
|
|
9217
|
-
if(toolbarCount){
|
|
9218
|
-
|
|
9219
|
-
}
|
|
9220
|
-
toolbars.push(toolbarReloadButton);
|
|
9221
|
-
toolbars.push(
|
|
9309
|
+
// if(toolbarCount){
|
|
9310
|
+
// toolbars.push(toolbarCount);
|
|
9311
|
+
// }
|
|
9312
|
+
// toolbars.push(toolbarReloadButton);
|
|
9313
|
+
toolbars.push(toolbarDQuickSearchBox);
|
|
9222
9314
|
if(toolbarFilter){
|
|
9223
9315
|
toolbars.push(toolbarFilter);
|
|
9224
9316
|
}
|
|
9225
|
-
toolbars.push(
|
|
9317
|
+
toolbars.push(toolbarDisplayAsButton);
|
|
9226
9318
|
return [
|
|
9227
9319
|
// "bulkActions",
|
|
9228
9320
|
...(headerToolbarItems || []),
|
|
9229
9321
|
...toolbars,
|
|
9230
9322
|
]
|
|
9231
9323
|
}else {
|
|
9324
|
+
toolbars.push(toolbarDQuickSearchBox);
|
|
9232
9325
|
toolbars.push(toolbarReloadButton);
|
|
9233
9326
|
toolbars.push(toolbarDisplayAsButton);
|
|
9234
9327
|
if(mainObject?.permissions?.allowCreateListViews){
|
|
9235
9328
|
toolbars.push(getSettingListviewToolbarButtonSchema());
|
|
9236
9329
|
}
|
|
9237
|
-
toolbars.push(toolbarDQuickSearchBox);
|
|
9238
9330
|
if(toolbarFilter){
|
|
9239
9331
|
toolbars.push(toolbarFilter);
|
|
9240
9332
|
}
|
|
@@ -9914,6 +10006,17 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
9914
10006
|
},
|
|
9915
10007
|
"expression": `\${_master.objectName != '${objectSchema.name}' && _master.objectName}`
|
|
9916
10008
|
},
|
|
10009
|
+
// 列表视图、对象表格组件上的lookup字段,点开右侧弹出drawer窗口,修改记录后刷新列表
|
|
10010
|
+
{
|
|
10011
|
+
"actionType": "broadcast",
|
|
10012
|
+
"args": {
|
|
10013
|
+
"eventName": "@data.changed.${_tableObjectName}"
|
|
10014
|
+
},
|
|
10015
|
+
"data": {
|
|
10016
|
+
"objectName": "${_tableObjectName}"
|
|
10017
|
+
},
|
|
10018
|
+
"expression": `\${_tableObjectName != '${objectSchema.name}' && _tableObjectName}`
|
|
10019
|
+
},
|
|
9917
10020
|
...submitSuccActions,
|
|
9918
10021
|
// {
|
|
9919
10022
|
// "actionType": "custom",
|
|
@@ -10516,7 +10619,7 @@ async function getObjectRelatedListsMiniSchema(objectApiName){
|
|
|
10516
10619
|
* @Author: baozhoutao@steedos.com
|
|
10517
10620
|
* @Date: 2022-07-05 15:55:39
|
|
10518
10621
|
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
10519
|
-
* @LastEditTime: 2025-
|
|
10622
|
+
* @LastEditTime: 2025-06-17 20:18:18
|
|
10520
10623
|
* @Description:
|
|
10521
10624
|
*/
|
|
10522
10625
|
|
|
@@ -10872,12 +10975,13 @@ async function getListSchema(
|
|
|
10872
10975
|
"filtersFunction": listview_filters,
|
|
10873
10976
|
"sort": sort,
|
|
10874
10977
|
"ctx": ctx,
|
|
10875
|
-
"requestAdaptor":
|
|
10876
|
-
"adaptor":
|
|
10978
|
+
"requestAdaptor": ctx.requestAdaptor || listView.requestAdaptor,
|
|
10979
|
+
"adaptor": ctx.adaptor || listView.adaptor,
|
|
10877
10980
|
"headerToolbarItems": ctx.headerToolbarItems,
|
|
10878
10981
|
"filterVisible": ctx.filterVisible,
|
|
10879
10982
|
"rowClassNameExpr": ctx.rowClassNameExpr,
|
|
10880
|
-
"
|
|
10983
|
+
"crud": ctx.crud || listView.crud,
|
|
10984
|
+
"crudDataFilter": ctx.crudDataFilter || listView.crudDataFilter ,
|
|
10881
10985
|
"onCrudDataFilter": ctx.onCrudDataFilter
|
|
10882
10986
|
};
|
|
10883
10987
|
// console.log(`getListSchema===>`,amisSchema)
|
|
@@ -11042,7 +11146,8 @@ async function getRecordDetailHeaderSchema(objectName,recordId, options){
|
|
|
11042
11146
|
}
|
|
11043
11147
|
|
|
11044
11148
|
async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
11045
|
-
const uiSchema = await getUISchema(objectName);
|
|
11149
|
+
const uiSchema = await getUISchema(objectName);
|
|
11150
|
+
|
|
11046
11151
|
const relatedLists = await getObjectRelatedList(objectName);
|
|
11047
11152
|
const detailed = {
|
|
11048
11153
|
"title": i18next__default["default"].t('frontend_record_detail_tab_detailed'),
|
|
@@ -11083,6 +11188,21 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
11083
11188
|
if(relatedLists.length){
|
|
11084
11189
|
content.tabs.push(related);
|
|
11085
11190
|
}
|
|
11191
|
+
const contents = [content];
|
|
11192
|
+
if (uiSchema.enable_chatter && window.BuilderLiveblocks) {
|
|
11193
|
+
const chatter = {
|
|
11194
|
+
"type": "rooms-provider",
|
|
11195
|
+
"baseUrl": "${context.rootUrl}",
|
|
11196
|
+
"body": [
|
|
11197
|
+
{
|
|
11198
|
+
"type": "rooms-comments",
|
|
11199
|
+
"className": "flex flex-col gap-3 m-4",
|
|
11200
|
+
"roomId": "objects:${objectName}:${recordId}",
|
|
11201
|
+
}
|
|
11202
|
+
]
|
|
11203
|
+
};
|
|
11204
|
+
contents.push(chatter);
|
|
11205
|
+
}
|
|
11086
11206
|
// content.tabs = reverse(content.tabs)
|
|
11087
11207
|
if(content.tabs.length == 1){
|
|
11088
11208
|
content.className += " steedos-record-tabs--single";
|
|
@@ -11102,7 +11222,7 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
11102
11222
|
"showBackButton": props.showBackButton,
|
|
11103
11223
|
_reloadKey: props._reloadKey
|
|
11104
11224
|
},
|
|
11105
|
-
|
|
11225
|
+
...contents,
|
|
11106
11226
|
],
|
|
11107
11227
|
"objectApiName": "${objectName}",
|
|
11108
11228
|
"recordId": "${recordId}",
|
|
@@ -11886,14 +12006,42 @@ function getLookupSapceUserTreeSchema(isMobile){
|
|
|
11886
12006
|
{
|
|
11887
12007
|
"actionType": "custom",
|
|
11888
12008
|
"script": `
|
|
12009
|
+
console.log("lookup-tree-event.data:",event.data);
|
|
12010
|
+
console.log("lookup-tree-event.data.value.label:",event.data.value.label);
|
|
12011
|
+
console.log("lookup-tree-event.data.value.value:",event.data.value.value);
|
|
11889
12012
|
const scope = event.context.scoped;
|
|
11890
|
-
var
|
|
12013
|
+
var treeFilterFormValues={
|
|
11891
12014
|
"__searchable__organizations_parents":event.data.value.value
|
|
11892
12015
|
}
|
|
11893
|
-
var listView = scope.parent.getComponents().find(function(n){
|
|
11894
|
-
|
|
12016
|
+
// var listView = scope.parent.getComponents().find(function(n){
|
|
12017
|
+
// return n.props.type === "crud";
|
|
12018
|
+
// });
|
|
12019
|
+
// listView.handleFilterSubmit(Object.assign({}, filterFormValues));
|
|
12020
|
+
let __lookupField = event.data.__lookupField;
|
|
12021
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
12022
|
+
var filterForm = scope.getComponents().find(function(n){
|
|
12023
|
+
return n.props.type === "form";
|
|
11895
12024
|
});
|
|
11896
|
-
|
|
12025
|
+
let filterFormValues = filterForm.getData();
|
|
12026
|
+
filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
|
|
12027
|
+
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});
|
|
12028
|
+
Object.assign(changedFilterFormValues, treeFilterFormValues);
|
|
12029
|
+
// 同步__changedFilterFormValues中的值
|
|
12030
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
12031
|
+
if(__lookupField){
|
|
12032
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
12033
|
+
if(__lookupField.reference_to_field){
|
|
12034
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
12035
|
+
}
|
|
12036
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
12037
|
+
}
|
|
12038
|
+
if(crud){
|
|
12039
|
+
let crudData = crud.getData();
|
|
12040
|
+
crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
|
|
12041
|
+
crud.setData(crudData);
|
|
12042
|
+
}
|
|
12043
|
+
filterForm.setData(treeFilterFormValues);
|
|
12044
|
+
filterForm.handleFormSubmit(event);
|
|
11897
12045
|
`
|
|
11898
12046
|
},
|
|
11899
12047
|
{
|
|
@@ -12111,6 +12259,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12111
12259
|
// field.name可能是带点的名称,比如审批王中子表字段'instances.instances_submitter',如果不替换掉点,会造成审批王表单中新建子表行时报错
|
|
12112
12260
|
let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
|
|
12113
12261
|
|
|
12262
|
+
const filterFormValues = field.filter_form_data;
|
|
12114
12263
|
source.requestAdaptor = `
|
|
12115
12264
|
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
12116
12265
|
let __lookupField = api.data.$self.__lookupField;
|
|
@@ -12153,7 +12302,20 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12153
12302
|
}
|
|
12154
12303
|
}
|
|
12155
12304
|
|
|
12156
|
-
|
|
12305
|
+
let filterFormValues = {};
|
|
12306
|
+
if (selfData.op !== 'loadOptions'){
|
|
12307
|
+
filterFormValues = ${___namespace.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
|
|
12308
|
+
const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
|
|
12309
|
+
if (isAmisFormula){
|
|
12310
|
+
filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};
|
|
12311
|
+
}
|
|
12312
|
+
if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
|
|
12313
|
+
let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;
|
|
12314
|
+
filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
|
|
12315
|
+
}
|
|
12316
|
+
}
|
|
12317
|
+
|
|
12318
|
+
var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, selfData)) || [];
|
|
12157
12319
|
|
|
12158
12320
|
if(searchableFilter.length > 0){
|
|
12159
12321
|
if(filters.length > 0 ){
|
|
@@ -12343,7 +12505,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12343
12505
|
return payload;
|
|
12344
12506
|
`;
|
|
12345
12507
|
}
|
|
12346
|
-
let top =
|
|
12508
|
+
let top = 500;
|
|
12347
12509
|
|
|
12348
12510
|
if(refObjectConfig.paging && refObjectConfig.paging.enabled === false){
|
|
12349
12511
|
top = 1000;
|
|
@@ -12393,7 +12555,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12393
12555
|
keywordsSearchBoxName,
|
|
12394
12556
|
searchable_fields: field.searchable_fields,
|
|
12395
12557
|
auto_open_filter: field.auto_open_filter,
|
|
12396
|
-
show_left_filter: field.show_left_filter
|
|
12558
|
+
show_left_filter: field.show_left_filter,
|
|
12559
|
+
filter_form_data: field.filter_form_data
|
|
12397
12560
|
});
|
|
12398
12561
|
}
|
|
12399
12562
|
pickerSchema.data = Object.assign({}, pickerSchema.data, {
|
|
@@ -12427,7 +12590,9 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12427
12590
|
{
|
|
12428
12591
|
"actionType": "custom",
|
|
12429
12592
|
"script": `
|
|
12430
|
-
|
|
12593
|
+
// lookup字段弹出列表,点击新建按钮,新建记录成功后,触发@data.changed.xxx,
|
|
12594
|
+
// 此时context.props.data值是lookup字段所在表单数据,经测试多层lookup弹出列表新建记录成功后context.props.data始终取的是最近一层的lookup字段所在表单数据,符合预期
|
|
12595
|
+
const masterRecord = context.props.data;//event.data._master && event.data._master.record;
|
|
12431
12596
|
const fieldConfig = ${JSON.stringify(field)};
|
|
12432
12597
|
let reference_to = fieldConfig.reference_to;
|
|
12433
12598
|
let saveValue;
|
|
@@ -12437,7 +12602,6 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12437
12602
|
}
|
|
12438
12603
|
const saveField = fieldConfig.reference_to_field || '_id';
|
|
12439
12604
|
const saveFieldValue = newRecord[saveField];
|
|
12440
|
-
|
|
12441
12605
|
if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){
|
|
12442
12606
|
|
|
12443
12607
|
const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};
|
|
@@ -12457,8 +12621,10 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12457
12621
|
|
|
12458
12622
|
}else{
|
|
12459
12623
|
if(fieldConfig.multiple){
|
|
12460
|
-
//
|
|
12461
|
-
|
|
12624
|
+
// const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];
|
|
12625
|
+
// 连续新建多个记录时,因为masterRecord获取的主记录不是实时的,所以只会勾选最后一个新建的记录
|
|
12626
|
+
// 而下面context.context.component指向的是lookup picker组件,可以直接取到用户实时勾选的记录。
|
|
12627
|
+
const fieldValue = context.context.component.props.store.toJSON().selectedItems
|
|
12462
12628
|
saveValue = fieldValue.concat(saveFieldValue);
|
|
12463
12629
|
}else{
|
|
12464
12630
|
saveValue = saveFieldValue;
|
|
@@ -12466,7 +12632,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12466
12632
|
}
|
|
12467
12633
|
|
|
12468
12634
|
const ctx = ${JSON.stringify(ctx)};
|
|
12469
|
-
const componentId = ctx.defaults.formSchema.id;
|
|
12635
|
+
const componentId = ctx.defaults && ctx.defaults.formSchema && ctx.defaults.formSchema.id;
|
|
12470
12636
|
doAction({
|
|
12471
12637
|
actionType: 'setValue',
|
|
12472
12638
|
componentId: componentId,
|
|
@@ -12893,6 +13059,10 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
12893
13059
|
}
|
|
12894
13060
|
let amisSchema;
|
|
12895
13061
|
// 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
|
|
13062
|
+
if(enableEnhancedLookup == true && field.amis && field.amis.type && field.amis.type !== 'picker'){
|
|
13063
|
+
// 如果配置了amis.type且其值不是picker,则不使用弹出增强模式
|
|
13064
|
+
enableEnhancedLookup = false;
|
|
13065
|
+
}
|
|
12896
13066
|
if(enableEnhancedLookup == true){
|
|
12897
13067
|
amisSchema = await lookupToAmisPicker(field, readonly, ctx);
|
|
12898
13068
|
}else if(refObject.enable_tree) {
|
|
@@ -14024,7 +14194,16 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
14024
14194
|
return convertData
|
|
14025
14195
|
}
|
|
14026
14196
|
// if(ctx.mode === 'edit'){
|
|
14027
|
-
let convertDataResult
|
|
14197
|
+
let convertDataResult;
|
|
14198
|
+
if(convertData.type == "steedos-field"){
|
|
14199
|
+
// 如果是steedos-field,不能把amis属性合并到steedos-field根属性中,要合并也是合并到steedos-field的config.amis中
|
|
14200
|
+
// 而steedos-field字段的amis属性本身就在config.amis中了,所以这里不需要再合并field.amis
|
|
14201
|
+
// 目前测试到受影响的是,把字段的amis属性配置为{"type": "checkboxes"}时,ObjectForm只读模式下,lookup字段返回的是type为steedos-field的组件,此时field.amis中的type不应该合并到steedos-field根属性中
|
|
14202
|
+
convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, {name: baseData.name});
|
|
14203
|
+
}
|
|
14204
|
+
else {
|
|
14205
|
+
convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});
|
|
14206
|
+
}
|
|
14028
14207
|
// 只读时file字段的外层control层若存在name,内部each组件存在问题
|
|
14029
14208
|
if(readonly && field.type == "file") {
|
|
14030
14209
|
convertDataResult.name = "";
|