@steedos-widgets/amis-lib 6.10.1-beta.31 → 6.10.1-beta.32
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 +225 -48
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +225 -48
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +91 -45
- 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/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.esm.js
CHANGED
|
@@ -505,8 +505,8 @@ function getComparableAmisVersion() {
|
|
|
505
505
|
/*
|
|
506
506
|
* @Author: baozhoutao@steedos.com
|
|
507
507
|
* @Date: 2022-05-23 09:53:08
|
|
508
|
-
* @LastEditors:
|
|
509
|
-
* @LastEditTime:
|
|
508
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
509
|
+
* @LastEditTime: 2025-04-08 10:55:41
|
|
510
510
|
* @Description:
|
|
511
511
|
*/
|
|
512
512
|
|
|
@@ -660,9 +660,10 @@ function getRelatedFieldTpl(field, ctx){
|
|
|
660
660
|
const href = Router.getObjectDetailPath({
|
|
661
661
|
formFactor: ctx.formFactor, appId: "${appId}", objectName: `${objectNameTpl}`, recordId: `${recordIdTpl}`
|
|
662
662
|
});
|
|
663
|
-
if(ctx.isRelated && window.innerWidth >= 768
|
|
663
|
+
if (window.innerWidth >= 768) { //(ctx.isRelated || isObjectListview) && window.innerWidth >= 768
|
|
664
|
+
// 相关表字段,包括列表视图、对象表格组件中的lookup/master_detail字段,在PC端显示时,点击字段值,不跳转到详情页而是右侧弹出drawer
|
|
664
665
|
labelTpl = `<a href="${href}" ${linkTarget} onclick="return false;">${labelTpl}</a>`;
|
|
665
|
-
}else {
|
|
666
|
+
} else {
|
|
666
667
|
labelTpl = `<a href="${href}" ${linkTarget}>${labelTpl}</a>`;
|
|
667
668
|
}
|
|
668
669
|
|
|
@@ -1460,6 +1461,7 @@ var frontend_download$1 = "Download";
|
|
|
1460
1461
|
var frontend_form_save$1 = "Save";
|
|
1461
1462
|
var frontend_form_save_and_new$1 = "Save and New";
|
|
1462
1463
|
var frontend_form_cancel$1 = "Cancel";
|
|
1464
|
+
var frontend_form_reset$1 = "Reset";
|
|
1463
1465
|
var frontend_form_new$1 = "New";
|
|
1464
1466
|
var frontend_form_edit$1 = "Edit";
|
|
1465
1467
|
var frontend_form_preview$1 = "Preview";
|
|
@@ -1478,7 +1480,7 @@ var frontend_display_type_is_split$1 = "Split View";
|
|
|
1478
1480
|
var frontend_display_as$1 = "Displayed as";
|
|
1479
1481
|
var frontend_record_sum$1 = "items";
|
|
1480
1482
|
var frontend_button_reload_tooltip$1 = "Refresh";
|
|
1481
|
-
var frontend_button_search_tooltip$1 = "
|
|
1483
|
+
var frontend_button_search_tooltip$1 = "Filter";
|
|
1482
1484
|
var frontend_fields_filter_button_search$1 = "Search";
|
|
1483
1485
|
var frontend_fields_filter_button_settings$1 = "Set search options";
|
|
1484
1486
|
var frontend_button_listview_control_tooltip$1 = "List View Controls";
|
|
@@ -1550,6 +1552,7 @@ var en_us = {
|
|
|
1550
1552
|
frontend_form_save: frontend_form_save$1,
|
|
1551
1553
|
frontend_form_save_and_new: frontend_form_save_and_new$1,
|
|
1552
1554
|
frontend_form_cancel: frontend_form_cancel$1,
|
|
1555
|
+
frontend_form_reset: frontend_form_reset$1,
|
|
1553
1556
|
frontend_form_new: frontend_form_new$1,
|
|
1554
1557
|
frontend_form_edit: frontend_form_edit$1,
|
|
1555
1558
|
frontend_form_preview: frontend_form_preview$1,
|
|
@@ -1641,6 +1644,7 @@ var frontend_download = "下载";
|
|
|
1641
1644
|
var frontend_form_save = "保存";
|
|
1642
1645
|
var frontend_form_save_and_new = "保存并新建";
|
|
1643
1646
|
var frontend_form_cancel = "取消";
|
|
1647
|
+
var frontend_form_reset = "重置";
|
|
1644
1648
|
var frontend_form_new = "新建";
|
|
1645
1649
|
var frontend_form_edit = "编辑";
|
|
1646
1650
|
var frontend_form_preview = "预览";
|
|
@@ -1659,7 +1663,7 @@ var frontend_display_type_is_split = "分栏视图";
|
|
|
1659
1663
|
var frontend_display_as = "显示为";
|
|
1660
1664
|
var frontend_record_sum = "个项目";
|
|
1661
1665
|
var frontend_button_reload_tooltip = "刷新";
|
|
1662
|
-
var frontend_button_search_tooltip = "
|
|
1666
|
+
var frontend_button_search_tooltip = "筛选";
|
|
1663
1667
|
var frontend_fields_filter_button_search = "搜索";
|
|
1664
1668
|
var frontend_fields_filter_button_settings = "选择搜索项";
|
|
1665
1669
|
var frontend_button_listview_control_tooltip = "列表视图控制";
|
|
@@ -1732,6 +1736,7 @@ var zh_cn = {
|
|
|
1732
1736
|
frontend_form_save: frontend_form_save,
|
|
1733
1737
|
frontend_form_save_and_new: frontend_form_save_and_new,
|
|
1734
1738
|
frontend_form_cancel: frontend_form_cancel,
|
|
1739
|
+
frontend_form_reset: frontend_form_reset,
|
|
1735
1740
|
frontend_form_new: frontend_form_new,
|
|
1736
1741
|
frontend_form_edit: frontend_form_edit,
|
|
1737
1742
|
frontend_form_preview: frontend_form_preview,
|
|
@@ -1899,7 +1904,12 @@ async function getQuickEditSchema(object, columnField, options){
|
|
|
1899
1904
|
if (field.disabled) {
|
|
1900
1905
|
quickEditSchema = false;
|
|
1901
1906
|
} else {
|
|
1902
|
-
var
|
|
1907
|
+
var fieldCtx = Object.assign({}, _$1.omit(options, 'buttons'), {
|
|
1908
|
+
defaults: Object.assign({}, options.defaults, {
|
|
1909
|
+
formSchema: quickEditSchema
|
|
1910
|
+
})
|
|
1911
|
+
});
|
|
1912
|
+
var fieldSchema = await convertSFieldToAmisField(field, false, fieldCtx);
|
|
1903
1913
|
//存在属性上可编辑,实际不可编辑的字段,convertSFieldToAmisField函数可能会返回undefined,如summary
|
|
1904
1914
|
if (!!fieldSchema) {
|
|
1905
1915
|
quickEditSchema.body.push(fieldSchema);
|
|
@@ -2332,14 +2342,19 @@ function getFieldWidth(width){
|
|
|
2332
2342
|
}
|
|
2333
2343
|
|
|
2334
2344
|
async function getColumnItemOnClick(field, options){
|
|
2335
|
-
|
|
2345
|
+
let objectApiName = options.objectName;
|
|
2346
|
+
if(!(field.is_name || field.name === options.labelFieldName)){
|
|
2347
|
+
objectApiName = field.reference_to;
|
|
2348
|
+
}
|
|
2349
|
+
const recordPage = await getPage({ type: 'record', appId: options.appId, objectName: objectApiName, formFactor: options.formFactor });
|
|
2336
2350
|
const drawerRecordDetailSchema = recordPage ? Object.assign({}, recordPage.schema, {
|
|
2337
2351
|
"recordId": `\${${options.idFieldName}}`,
|
|
2338
2352
|
"data": {
|
|
2339
2353
|
...recordPage.schema.data,
|
|
2340
2354
|
"_inDrawer": true, // 用于判断是否在抽屉中
|
|
2341
2355
|
"recordLoaded": false, // 重置数据加载状态
|
|
2342
|
-
"recordId": `\${${options.idFieldName}}
|
|
2356
|
+
"recordId": `\${${options.idFieldName}}`,//审批微页面依赖了作用域中的recordId
|
|
2357
|
+
"_tableObjectName": options.objectName
|
|
2343
2358
|
}
|
|
2344
2359
|
}) : {
|
|
2345
2360
|
"type": "steedos-record-detail",
|
|
@@ -2350,12 +2365,16 @@ async function getColumnItemOnClick(field, options){
|
|
|
2350
2365
|
"data": {
|
|
2351
2366
|
"_inDrawer": true, // 用于判断是否在抽屉中
|
|
2352
2367
|
"recordLoaded": false, // 重置数据加载状态
|
|
2368
|
+
"_tableObjectName": options.objectName
|
|
2353
2369
|
}
|
|
2354
2370
|
};
|
|
2355
2371
|
|
|
2356
2372
|
if(!(field.is_name || field.name === options.labelFieldName)){
|
|
2357
2373
|
drawerRecordDetailSchema.objectApiName = field.reference_to;
|
|
2358
2374
|
drawerRecordDetailSchema.recordId = `\${_display.${field.name}.value}`;
|
|
2375
|
+
// if (recordPage){
|
|
2376
|
+
// drawerRecordDetailSchema.data.recordId = `\${_display.${field.name}.value}`
|
|
2377
|
+
// }
|
|
2359
2378
|
}
|
|
2360
2379
|
return {
|
|
2361
2380
|
"click": {
|
|
@@ -2505,6 +2524,33 @@ async function getTableColumns(object, fields, options){
|
|
|
2505
2524
|
static: true,
|
|
2506
2525
|
}, fieldAmis, {name: field.name});
|
|
2507
2526
|
}
|
|
2527
|
+
else if(field.type === 'lookup' || field.type === 'master_detail'){
|
|
2528
|
+
columnItem = Object.assign({}, {
|
|
2529
|
+
type: "static-wrapper",
|
|
2530
|
+
name: field.name,
|
|
2531
|
+
label: field.label,
|
|
2532
|
+
sortable: field.sortable,
|
|
2533
|
+
width: getFieldWidth(field.width),
|
|
2534
|
+
toggled: field.toggled,
|
|
2535
|
+
className,
|
|
2536
|
+
size: "none",
|
|
2537
|
+
inputClassName: "inline",
|
|
2538
|
+
body: {
|
|
2539
|
+
type: "steedos-field",
|
|
2540
|
+
static: true,
|
|
2541
|
+
tableObjectName: options.objectName,
|
|
2542
|
+
config: {
|
|
2543
|
+
type: "lookup",
|
|
2544
|
+
reference_to: field.reference_to,
|
|
2545
|
+
name: field.name,
|
|
2546
|
+
is_name: field.is_name,
|
|
2547
|
+
label: null,
|
|
2548
|
+
multiple: field.multiple,
|
|
2549
|
+
amis: Object.assign({}, fieldAmis, { label: null })
|
|
2550
|
+
}
|
|
2551
|
+
}
|
|
2552
|
+
}, fieldAmis, {name: field.name});
|
|
2553
|
+
}
|
|
2508
2554
|
else {
|
|
2509
2555
|
const tpl = await getFieldTpl(field, options);
|
|
2510
2556
|
let type = 'static-text';
|
|
@@ -2553,10 +2599,20 @@ async function getTableColumns(object, fields, options){
|
|
|
2553
2599
|
columnItem.defaultColor = null;
|
|
2554
2600
|
}
|
|
2555
2601
|
|
|
2556
|
-
|
|
2602
|
+
let needClickEvent = false;
|
|
2603
|
+
// if (options.isRelated){
|
|
2604
|
+
// // 子表列表上,Lookup字段和名称字段都需要点击事件
|
|
2605
|
+
// needClickEvent = ((field.is_name || field.name === options.labelFieldName) || ((field.type == 'lookup' || field.type == 'master_detail') && _.isString(field.reference_to) && field.multiple != true));
|
|
2606
|
+
// }
|
|
2607
|
+
// else {// if (isObjectListview)
|
|
2608
|
+
// // 列表视图、对象表格中,Lookup字段需要点击事件
|
|
2609
|
+
// needClickEvent = (field.type == 'lookup' || field.type == 'master_detail') && _.isString(field.reference_to) && field.multiple != true;
|
|
2610
|
+
// }
|
|
2611
|
+
// lookup字段走steedos-field组件了,所以这里只需要判断子表名称字段才额外加点击事件弹出右侧详情
|
|
2612
|
+
needClickEvent = options.isRelated && (field.is_name || field.name === options.labelFieldName);
|
|
2613
|
+
if(window.innerWidth >= 768 && needClickEvent){
|
|
2557
2614
|
columnItem.onEvent = await getColumnItemOnClick(field, options);
|
|
2558
2615
|
}
|
|
2559
|
-
|
|
2560
2616
|
}
|
|
2561
2617
|
}
|
|
2562
2618
|
if(columnItem){
|
|
@@ -4908,9 +4964,9 @@ const getSchema$5 = async (uiSchema, ctx) => {
|
|
|
4908
4964
|
"body": [
|
|
4909
4965
|
{
|
|
4910
4966
|
"type": "button",
|
|
4967
|
+
"level": "primary",
|
|
4911
4968
|
"label": i18next.t('frontend_form_new'),
|
|
4912
4969
|
"id": "u:standard_new",
|
|
4913
|
-
"level": "default",
|
|
4914
4970
|
"onEvent": {
|
|
4915
4971
|
"click": {
|
|
4916
4972
|
"weight": 0,
|
|
@@ -5111,8 +5167,8 @@ const getSchema$4 = async (uiSchema, ctx) => {
|
|
|
5111
5167
|
/*
|
|
5112
5168
|
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
5113
5169
|
* @Date: 2023-03-22 09:31:21
|
|
5114
|
-
* @LastEditors:
|
|
5115
|
-
* @LastEditTime:
|
|
5170
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
5171
|
+
* @LastEditTime: 2025-04-07 16:02:53
|
|
5116
5172
|
*/
|
|
5117
5173
|
const getSchema$3 = (uiSchema)=>{
|
|
5118
5174
|
return {
|
|
@@ -5172,6 +5228,17 @@ const getSchema$3 = (uiSchema)=>{
|
|
|
5172
5228
|
"_isRelated": "${_isRelated}"
|
|
5173
5229
|
},
|
|
5174
5230
|
"expression": `\${_master.objectName != '${uiSchema.name}' && _master.objectName}`
|
|
5231
|
+
},
|
|
5232
|
+
// 列表视图、对象表格组件上的lookup字段,点开右侧弹出drawer窗口,删除记录后刷新列表
|
|
5233
|
+
{
|
|
5234
|
+
"actionType": "broadcast",
|
|
5235
|
+
"args": {
|
|
5236
|
+
"eventName": "@data.changed.${_tableObjectName}"
|
|
5237
|
+
},
|
|
5238
|
+
"data": {
|
|
5239
|
+
"objectName": "${_tableObjectName}"
|
|
5240
|
+
},
|
|
5241
|
+
"expression": `\${_tableObjectName != '${uiSchema.name}' && _tableObjectName}`
|
|
5175
5242
|
}
|
|
5176
5243
|
]
|
|
5177
5244
|
}
|
|
@@ -6086,7 +6153,7 @@ async function getObjectFieldsFilterFormSchema(ctx) {
|
|
|
6086
6153
|
const formSchema = {
|
|
6087
6154
|
"type": "service",
|
|
6088
6155
|
"visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
|
|
6089
|
-
"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
|
|
6156
|
+
"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",
|
|
6090
6157
|
"style":{
|
|
6091
6158
|
"max-height":ctx.formFactor === 'SMALL'?"30vh":"unset"
|
|
6092
6159
|
},
|
|
@@ -6321,6 +6388,21 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6321
6388
|
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
|
|
6322
6389
|
crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
|
|
6323
6390
|
`;
|
|
6391
|
+
/**
|
|
6392
|
+
给lookup字段配置filter_form_data时可以配置为amis变量,也可以配置为事态key-value键值对象值:
|
|
6393
|
+
```
|
|
6394
|
+
"filter_form_data": "${selectedPublicGroupFilterFormData|toJson}"
|
|
6395
|
+
```
|
|
6396
|
+
or
|
|
6397
|
+
```
|
|
6398
|
+
"filter_form_data": {
|
|
6399
|
+
"public_group_ids": [
|
|
6400
|
+
"67addbef39f9a4503789b38d"
|
|
6401
|
+
]
|
|
6402
|
+
}
|
|
6403
|
+
```
|
|
6404
|
+
*/
|
|
6405
|
+
const filterFormValues = ctx.filter_form_data;
|
|
6324
6406
|
const dataProviderInited = `
|
|
6325
6407
|
const searchableFields = ${JSON.stringify(searchableFields)};
|
|
6326
6408
|
const autoOpenFilter = ${autoOpenFilter};
|
|
@@ -6358,6 +6440,16 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6358
6440
|
}
|
|
6359
6441
|
setData({ filterFormSearchableFields: defaultSearchableFields });
|
|
6360
6442
|
if(isLookup){
|
|
6443
|
+
let filterFormValues = ${_.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
|
|
6444
|
+
const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
|
|
6445
|
+
if (isAmisFormula){
|
|
6446
|
+
filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};
|
|
6447
|
+
}
|
|
6448
|
+
if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
|
|
6449
|
+
let fields = data.uiSchema && data.uiSchema.fields;
|
|
6450
|
+
filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
|
|
6451
|
+
setData({ ...filterFormValues });
|
|
6452
|
+
}
|
|
6361
6453
|
// looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器
|
|
6362
6454
|
setData({ showFieldsFilter: autoOpenFilter });
|
|
6363
6455
|
}
|
|
@@ -6514,6 +6606,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6514
6606
|
"body": [
|
|
6515
6607
|
{
|
|
6516
6608
|
"type": "button",
|
|
6609
|
+
"level": "primary",
|
|
6517
6610
|
"id": btnSearchId,
|
|
6518
6611
|
"label": i18next.t('frontend_fields_filter_button_search'),
|
|
6519
6612
|
"icon": "fa fa-search",
|
|
@@ -6531,7 +6624,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6531
6624
|
},
|
|
6532
6625
|
{
|
|
6533
6626
|
"type": "button",
|
|
6534
|
-
"label": i18next.t('
|
|
6627
|
+
"label": i18next.t('frontend_form_reset'),
|
|
6535
6628
|
"name": "btn_filter_form_cancel",
|
|
6536
6629
|
// "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
|
|
6537
6630
|
"onEvent": {
|
|
@@ -6621,7 +6714,6 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6621
6714
|
"className": "steedos-amis-form"
|
|
6622
6715
|
}
|
|
6623
6716
|
],
|
|
6624
|
-
"id": "u:ca99fa9fe1b1",
|
|
6625
6717
|
"actions": [
|
|
6626
6718
|
{
|
|
6627
6719
|
"type": "button",
|
|
@@ -6649,13 +6741,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6649
6741
|
"actionType": "custom",
|
|
6650
6742
|
"script": onSearchableFieldsChangeScript
|
|
6651
6743
|
},
|
|
6652
|
-
|
|
6653
|
-
|
|
6654
|
-
|
|
6655
|
-
|
|
6656
|
-
|
|
6657
|
-
|
|
6658
|
-
|
|
6744
|
+
// 自动触发搜索事件会造成bug,应该是升级amis到6.4造成的,见:https://github.com/steedos/steedos-platform/issues/7121
|
|
6745
|
+
// 变更搜索项后,用户一般会点击搜索按钮,所以这里不自动触发搜索事件
|
|
6746
|
+
// {
|
|
6747
|
+
// "actionType": "click",
|
|
6748
|
+
// "componentId": btnSearchId,
|
|
6749
|
+
// "args": {
|
|
6750
|
+
// "__from_fields_filter_settings_confirm": true
|
|
6751
|
+
// }
|
|
6752
|
+
// },
|
|
6659
6753
|
{
|
|
6660
6754
|
"componentId": "",
|
|
6661
6755
|
"args": {},
|
|
@@ -6686,12 +6780,11 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6686
6780
|
]
|
|
6687
6781
|
}
|
|
6688
6782
|
},
|
|
6689
|
-
"id": "u:b96d84868a5a",
|
|
6690
6783
|
"level": "link"
|
|
6691
6784
|
}
|
|
6692
6785
|
],
|
|
6693
6786
|
"size": "xs",
|
|
6694
|
-
"className": "space-x-
|
|
6787
|
+
"className": "space-x-2"
|
|
6695
6788
|
},
|
|
6696
6789
|
"size": "xs",
|
|
6697
6790
|
"className": "slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"
|
|
@@ -7637,7 +7730,7 @@ function getObjectListHeader(objectSchema, listViewName, ctx) {
|
|
|
7637
7730
|
let headerSchema = [{
|
|
7638
7731
|
"type": "wrapper",
|
|
7639
7732
|
"body": body,
|
|
7640
|
-
"className": `
|
|
7733
|
+
"className": `px-3 pt-3 pb-0 m-1 bg-white`
|
|
7641
7734
|
}];
|
|
7642
7735
|
// console.log(`getObjectListHeader`, objectSchema, listViewName, ctx)
|
|
7643
7736
|
return headerSchema;
|
|
@@ -9019,7 +9112,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
9019
9112
|
return {
|
|
9020
9113
|
"type": "tooltip-wrapper",
|
|
9021
9114
|
"id": "steedos_crud_toolbar_quick_search",
|
|
9022
|
-
"align": "
|
|
9115
|
+
"align": "right",
|
|
9023
9116
|
"title": "",
|
|
9024
9117
|
"content": "可搜索字段:" + searchableFieldsLabel.join(","),
|
|
9025
9118
|
"placement": "bottom",
|
|
@@ -9033,6 +9126,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
9033
9126
|
"name": keywordsSearchBoxName,
|
|
9034
9127
|
"placeholder": "快捷搜索",
|
|
9035
9128
|
"value": crudKeywords,
|
|
9129
|
+
"mini": true,
|
|
9036
9130
|
"clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
|
|
9037
9131
|
"clearAndSubmit": true,
|
|
9038
9132
|
"searchImediately": false,
|
|
@@ -9081,7 +9175,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
9081
9175
|
if(!hiddenCount){
|
|
9082
9176
|
toolbarCount = {
|
|
9083
9177
|
"type": "tpl",
|
|
9084
|
-
"align": "
|
|
9178
|
+
"align": "left",
|
|
9085
9179
|
"className": "text-gray-500 mr-2",
|
|
9086
9180
|
"tpl": "${count} " + i18next.t('frontend_record_sum')
|
|
9087
9181
|
};
|
|
@@ -9165,7 +9259,7 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
9165
9259
|
"animation": true,
|
|
9166
9260
|
"visibleOn": "${isFieldsFilterEmpty == false && isLookup != true}"
|
|
9167
9261
|
},
|
|
9168
|
-
"align": "
|
|
9262
|
+
"align": "right",
|
|
9169
9263
|
"className": "bg-white p-2 rounded text-gray-500",
|
|
9170
9264
|
"onEvent": {
|
|
9171
9265
|
"click": {
|
|
@@ -9187,27 +9281,27 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
9187
9281
|
// 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中
|
|
9188
9282
|
let toolbars = [];
|
|
9189
9283
|
if(formFactor === 'SMALL'){
|
|
9190
|
-
if(toolbarCount){
|
|
9191
|
-
|
|
9192
|
-
}
|
|
9193
|
-
toolbars.push(toolbarReloadButton);
|
|
9194
|
-
toolbars.push(
|
|
9284
|
+
// if(toolbarCount){
|
|
9285
|
+
// toolbars.push(toolbarCount);
|
|
9286
|
+
// }
|
|
9287
|
+
// toolbars.push(toolbarReloadButton);
|
|
9288
|
+
toolbars.push(toolbarDQuickSearchBox);
|
|
9195
9289
|
if(toolbarFilter){
|
|
9196
9290
|
toolbars.push(toolbarFilter);
|
|
9197
9291
|
}
|
|
9198
|
-
toolbars.push(
|
|
9292
|
+
toolbars.push(toolbarDisplayAsButton);
|
|
9199
9293
|
return [
|
|
9200
9294
|
// "bulkActions",
|
|
9201
9295
|
...(headerToolbarItems || []),
|
|
9202
9296
|
...toolbars,
|
|
9203
9297
|
]
|
|
9204
9298
|
}else {
|
|
9299
|
+
toolbars.push(toolbarDQuickSearchBox);
|
|
9205
9300
|
toolbars.push(toolbarReloadButton);
|
|
9206
9301
|
toolbars.push(toolbarDisplayAsButton);
|
|
9207
9302
|
if(mainObject?.permissions?.allowCreateListViews){
|
|
9208
9303
|
toolbars.push(getSettingListviewToolbarButtonSchema());
|
|
9209
9304
|
}
|
|
9210
|
-
toolbars.push(toolbarDQuickSearchBox);
|
|
9211
9305
|
if(toolbarFilter){
|
|
9212
9306
|
toolbars.push(toolbarFilter);
|
|
9213
9307
|
}
|
|
@@ -9887,6 +9981,17 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
9887
9981
|
},
|
|
9888
9982
|
"expression": `\${_master.objectName != '${objectSchema.name}' && _master.objectName}`
|
|
9889
9983
|
},
|
|
9984
|
+
// 列表视图、对象表格组件上的lookup字段,点开右侧弹出drawer窗口,修改记录后刷新列表
|
|
9985
|
+
{
|
|
9986
|
+
"actionType": "broadcast",
|
|
9987
|
+
"args": {
|
|
9988
|
+
"eventName": "@data.changed.${_tableObjectName}"
|
|
9989
|
+
},
|
|
9990
|
+
"data": {
|
|
9991
|
+
"objectName": "${_tableObjectName}"
|
|
9992
|
+
},
|
|
9993
|
+
"expression": `\${_tableObjectName != '${objectSchema.name}' && _tableObjectName}`
|
|
9994
|
+
},
|
|
9890
9995
|
...submitSuccActions,
|
|
9891
9996
|
// {
|
|
9892
9997
|
// "actionType": "custom",
|
|
@@ -11015,7 +11120,8 @@ async function getRecordDetailHeaderSchema(objectName,recordId, options){
|
|
|
11015
11120
|
}
|
|
11016
11121
|
|
|
11017
11122
|
async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
11018
|
-
const uiSchema = await getUISchema(objectName);
|
|
11123
|
+
const uiSchema = await getUISchema(objectName);
|
|
11124
|
+
|
|
11019
11125
|
const relatedLists = await getObjectRelatedList(objectName);
|
|
11020
11126
|
const detailed = {
|
|
11021
11127
|
"title": i18next.t('frontend_record_detail_tab_detailed'),
|
|
@@ -11056,6 +11162,21 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
11056
11162
|
if(relatedLists.length){
|
|
11057
11163
|
content.tabs.push(related);
|
|
11058
11164
|
}
|
|
11165
|
+
const contents = [content];
|
|
11166
|
+
if (uiSchema.enable_chatter && window.BuilderLiveblocks) {
|
|
11167
|
+
const chatter = {
|
|
11168
|
+
"type": "rooms-provider",
|
|
11169
|
+
"baseUrl": "${context.rootUrl}",
|
|
11170
|
+
"body": [
|
|
11171
|
+
{
|
|
11172
|
+
"type": "rooms-comments",
|
|
11173
|
+
"className": "flex flex-col gap-3 m-4",
|
|
11174
|
+
"roomId": "objects:${objectName}:${recordId}",
|
|
11175
|
+
}
|
|
11176
|
+
]
|
|
11177
|
+
};
|
|
11178
|
+
contents.push(chatter);
|
|
11179
|
+
}
|
|
11059
11180
|
// content.tabs = reverse(content.tabs)
|
|
11060
11181
|
if(content.tabs.length == 1){
|
|
11061
11182
|
content.className += " steedos-record-tabs--single";
|
|
@@ -11075,7 +11196,7 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
11075
11196
|
"showBackButton": props.showBackButton,
|
|
11076
11197
|
_reloadKey: props._reloadKey
|
|
11077
11198
|
},
|
|
11078
|
-
|
|
11199
|
+
...contents,
|
|
11079
11200
|
],
|
|
11080
11201
|
"objectApiName": "${objectName}",
|
|
11081
11202
|
"recordId": "${recordId}",
|
|
@@ -11859,14 +11980,42 @@ function getLookupSapceUserTreeSchema(isMobile){
|
|
|
11859
11980
|
{
|
|
11860
11981
|
"actionType": "custom",
|
|
11861
11982
|
"script": `
|
|
11983
|
+
console.log("lookup-tree-event.data:",event.data);
|
|
11984
|
+
console.log("lookup-tree-event.data.value.label:",event.data.value.label);
|
|
11985
|
+
console.log("lookup-tree-event.data.value.value:",event.data.value.value);
|
|
11862
11986
|
const scope = event.context.scoped;
|
|
11863
|
-
var
|
|
11987
|
+
var treeFilterFormValues={
|
|
11864
11988
|
"__searchable__organizations_parents":event.data.value.value
|
|
11865
11989
|
}
|
|
11866
|
-
var listView = scope.parent.getComponents().find(function(n){
|
|
11867
|
-
|
|
11990
|
+
// var listView = scope.parent.getComponents().find(function(n){
|
|
11991
|
+
// return n.props.type === "crud";
|
|
11992
|
+
// });
|
|
11993
|
+
// listView.handleFilterSubmit(Object.assign({}, filterFormValues));
|
|
11994
|
+
let __lookupField = event.data.__lookupField;
|
|
11995
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
11996
|
+
var filterForm = scope.getComponents().find(function(n){
|
|
11997
|
+
return n.props.type === "form";
|
|
11868
11998
|
});
|
|
11869
|
-
|
|
11999
|
+
let filterFormValues = filterForm.getData();
|
|
12000
|
+
filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
|
|
12001
|
+
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});
|
|
12002
|
+
Object.assign(changedFilterFormValues, treeFilterFormValues);
|
|
12003
|
+
// 同步__changedFilterFormValues中的值
|
|
12004
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
12005
|
+
if(__lookupField){
|
|
12006
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
12007
|
+
if(__lookupField.reference_to_field){
|
|
12008
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
12009
|
+
}
|
|
12010
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
12011
|
+
}
|
|
12012
|
+
if(crud){
|
|
12013
|
+
let crudData = crud.getData();
|
|
12014
|
+
crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
|
|
12015
|
+
crud.setData(crudData);
|
|
12016
|
+
}
|
|
12017
|
+
filterForm.setData(treeFilterFormValues);
|
|
12018
|
+
filterForm.handleFormSubmit(event);
|
|
11870
12019
|
`
|
|
11871
12020
|
},
|
|
11872
12021
|
{
|
|
@@ -12084,6 +12233,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12084
12233
|
// field.name可能是带点的名称,比如审批王中子表字段'instances.instances_submitter',如果不替换掉点,会造成审批王表单中新建子表行时报错
|
|
12085
12234
|
let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
|
|
12086
12235
|
|
|
12236
|
+
const filterFormValues = field.filter_form_data;
|
|
12087
12237
|
source.requestAdaptor = `
|
|
12088
12238
|
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
12089
12239
|
let __lookupField = api.data.$self.__lookupField;
|
|
@@ -12126,7 +12276,20 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12126
12276
|
}
|
|
12127
12277
|
}
|
|
12128
12278
|
|
|
12129
|
-
|
|
12279
|
+
let filterFormValues = {};
|
|
12280
|
+
if (selfData.op !== 'loadOptions'){
|
|
12281
|
+
filterFormValues = ${_$1.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
|
|
12282
|
+
const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
|
|
12283
|
+
if (isAmisFormula){
|
|
12284
|
+
filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};
|
|
12285
|
+
}
|
|
12286
|
+
if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
|
|
12287
|
+
let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;
|
|
12288
|
+
filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
|
|
12289
|
+
}
|
|
12290
|
+
}
|
|
12291
|
+
|
|
12292
|
+
var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, selfData)) || [];
|
|
12130
12293
|
|
|
12131
12294
|
if(searchableFilter.length > 0){
|
|
12132
12295
|
if(filters.length > 0 ){
|
|
@@ -12316,7 +12479,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12316
12479
|
return payload;
|
|
12317
12480
|
`;
|
|
12318
12481
|
}
|
|
12319
|
-
let top =
|
|
12482
|
+
let top = 500;
|
|
12320
12483
|
|
|
12321
12484
|
if(refObjectConfig.paging && refObjectConfig.paging.enabled === false){
|
|
12322
12485
|
top = 1000;
|
|
@@ -12366,7 +12529,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12366
12529
|
keywordsSearchBoxName,
|
|
12367
12530
|
searchable_fields: field.searchable_fields,
|
|
12368
12531
|
auto_open_filter: field.auto_open_filter,
|
|
12369
|
-
show_left_filter: field.show_left_filter
|
|
12532
|
+
show_left_filter: field.show_left_filter,
|
|
12533
|
+
filter_form_data: field.filter_form_data
|
|
12370
12534
|
});
|
|
12371
12535
|
}
|
|
12372
12536
|
pickerSchema.data = Object.assign({}, pickerSchema.data, {
|
|
@@ -12439,7 +12603,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12439
12603
|
}
|
|
12440
12604
|
|
|
12441
12605
|
const ctx = ${JSON.stringify(ctx)};
|
|
12442
|
-
const componentId = ctx.defaults.formSchema.id;
|
|
12606
|
+
const componentId = ctx.defaults && ctx.defaults.formSchema && ctx.defaults.formSchema.id;
|
|
12443
12607
|
doAction({
|
|
12444
12608
|
actionType: 'setValue',
|
|
12445
12609
|
componentId: componentId,
|
|
@@ -12866,6 +13030,10 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
12866
13030
|
}
|
|
12867
13031
|
let amisSchema;
|
|
12868
13032
|
// 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
|
|
13033
|
+
if(enableEnhancedLookup == true && field.amis && field.amis.type && field.amis.type !== 'picker'){
|
|
13034
|
+
// 如果配置了amis.type且其值不是picker,则不使用弹出增强模式
|
|
13035
|
+
enableEnhancedLookup = false;
|
|
13036
|
+
}
|
|
12869
13037
|
if(enableEnhancedLookup == true){
|
|
12870
13038
|
amisSchema = await lookupToAmisPicker(field, readonly, ctx);
|
|
12871
13039
|
}else if(refObject.enable_tree) {
|
|
@@ -13997,7 +14165,16 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
13997
14165
|
return convertData
|
|
13998
14166
|
}
|
|
13999
14167
|
// if(ctx.mode === 'edit'){
|
|
14000
|
-
let convertDataResult
|
|
14168
|
+
let convertDataResult;
|
|
14169
|
+
if(convertData.type == "steedos-field"){
|
|
14170
|
+
// 如果是steedos-field,不能把amis属性合并到steedos-field根属性中,要合并也是合并到steedos-field的config.amis中
|
|
14171
|
+
// 而steedos-field字段的amis属性本身就在config.amis中了,所以这里不需要再合并field.amis
|
|
14172
|
+
// 目前测试到受影响的是,把字段的amis属性配置为{"type": "checkboxes"}时,ObjectForm只读模式下,lookup字段返回的是type为steedos-field的组件,此时field.amis中的type不应该合并到steedos-field根属性中
|
|
14173
|
+
convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, {name: baseData.name});
|
|
14174
|
+
}
|
|
14175
|
+
else {
|
|
14176
|
+
convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});
|
|
14177
|
+
}
|
|
14001
14178
|
// 只读时file字段的外层control层若存在name,内部each组件存在问题
|
|
14002
14179
|
if(readonly && field.type == "file") {
|
|
14003
14180
|
convertDataResult.name = "";
|