@steedos-widgets/amis-lib 6.3.12-beta.2 → 6.3.12-beta.20
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 +156 -34
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +156 -34
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +42 -36
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/fields/file.d.ts +2 -2
- package/dist/types/schema/standard_new.amis.d.ts +3 -0
- package/dist/types/standard/button.d.ts +3 -0
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -1213,7 +1213,7 @@ async function getPage({type, pageId = '', appId, objectName = '', recordId = ''
|
|
|
1213
1213
|
* @Author: baozhoutao@steedos.com
|
|
1214
1214
|
* @Date: 2022-10-28 14:15:09
|
|
1215
1215
|
* @LastEditors: baozhoutao@steedos.com
|
|
1216
|
-
* @LastEditTime:
|
|
1216
|
+
* @LastEditTime: 2025-02-13 09:31:02
|
|
1217
1217
|
* @Description:
|
|
1218
1218
|
*/
|
|
1219
1219
|
|
|
@@ -1272,7 +1272,7 @@ async function getLookupLinkOnClick(field, options) {
|
|
|
1272
1272
|
"title": " ",
|
|
1273
1273
|
"headerClassName": "hidden",
|
|
1274
1274
|
"size": "lg",
|
|
1275
|
-
"width": "70%",
|
|
1275
|
+
"width": window.drawerWidth || "70%",
|
|
1276
1276
|
"bodyClassName": "p-0 m-0 bg-gray-100",
|
|
1277
1277
|
"closeOnEsc": true,
|
|
1278
1278
|
"closeOnOutside": true,
|
|
@@ -1868,7 +1868,6 @@ async function getQuickEditSchema(object, columnField, options){
|
|
|
1868
1868
|
{
|
|
1869
1869
|
actionType: "custom",
|
|
1870
1870
|
script: `
|
|
1871
|
-
console.log("asdasd");
|
|
1872
1871
|
let items = _.cloneDeep(event.data.items);
|
|
1873
1872
|
let selectedItems = _.cloneDeep(event.data.selectedItems);
|
|
1874
1873
|
if(event.data.isBatchEdit){
|
|
@@ -2365,7 +2364,7 @@ async function getColumnItemOnClick(field, options){
|
|
|
2365
2364
|
"title": " ",
|
|
2366
2365
|
"headerClassName": "hidden",
|
|
2367
2366
|
"size": "lg",
|
|
2368
|
-
"width": "70%",
|
|
2367
|
+
"width": window.drawerWidth || "70%",
|
|
2369
2368
|
"bodyClassName": "p-0 m-0 bg-gray-100",
|
|
2370
2369
|
"closeOnEsc": true,
|
|
2371
2370
|
"closeOnOutside": true,
|
|
@@ -3409,6 +3408,11 @@ async function getTableApi(mainObject, fields, options){
|
|
|
3409
3408
|
}, 600);
|
|
3410
3409
|
}
|
|
3411
3410
|
}
|
|
3411
|
+
|
|
3412
|
+
// 列表搜索和快速搜索,有时在某些操作情况下还是会造成crud接口请求使用的过滤条件是上次的,这里强制把正确的过滤条件返回到crud,详细规则见:https://github.com/steedos/steedos-platform/issues/7112
|
|
3413
|
+
// lookup字段的弹出列表搜索不受这里影响,因为lookup字段的弹出列表搜索是单独的接口请求
|
|
3414
|
+
payload.data.__changedFilterFormValues = api.context.__changedFilterFormValues;
|
|
3415
|
+
payload.data.__changedSearchBoxValues = api.context.__changedSearchBoxValues;
|
|
3412
3416
|
${options.adaptor || ''}
|
|
3413
3417
|
return payload;
|
|
3414
3418
|
`;
|
|
@@ -4809,7 +4813,7 @@ const parseSingleExpression = function (func, formData, dataPath, global, userSe
|
|
|
4809
4813
|
* @Author: baozhoutao@steedos.com
|
|
4810
4814
|
* @Date: 2022-11-01 15:51:00
|
|
4811
4815
|
* @LastEditors: baozhoutao@steedos.com
|
|
4812
|
-
* @LastEditTime: 2024-
|
|
4816
|
+
* @LastEditTime: 2024-12-26 20:28:43
|
|
4813
4817
|
* @Description:
|
|
4814
4818
|
*/
|
|
4815
4819
|
|
|
@@ -4969,20 +4973,23 @@ const getSchema$5 = async (uiSchema, ctx) => {
|
|
|
4969
4973
|
{
|
|
4970
4974
|
type: 'button',
|
|
4971
4975
|
actionType: 'cancel',
|
|
4972
|
-
label: i18next.t('frontend_form_cancel')
|
|
4976
|
+
label: i18next.t('frontend_form_cancel'),
|
|
4977
|
+
className: 'form-btn-cancel'
|
|
4973
4978
|
},
|
|
4974
4979
|
{
|
|
4975
4980
|
type: 'button',
|
|
4976
4981
|
label: i18next.t('frontend_form_save_and_new'),
|
|
4977
4982
|
actionType: 'confirm',
|
|
4978
4983
|
close: false,
|
|
4979
|
-
id: "confirmAndNew"
|
|
4984
|
+
id: "confirmAndNew",
|
|
4985
|
+
className: 'form-btn-save_and_new'
|
|
4980
4986
|
},
|
|
4981
4987
|
{
|
|
4982
4988
|
type: 'button',
|
|
4983
4989
|
actionType: 'confirm',
|
|
4984
4990
|
label: i18next.t('frontend_form_save'),
|
|
4985
|
-
primary: true
|
|
4991
|
+
primary: true,
|
|
4992
|
+
className: 'form-btn-save'
|
|
4986
4993
|
},
|
|
4987
4994
|
]
|
|
4988
4995
|
}
|
|
@@ -6137,15 +6144,39 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6137
6144
|
if (!ctx) {
|
|
6138
6145
|
ctx = {};
|
|
6139
6146
|
}
|
|
6147
|
+
console.log("getObjectFieldsFilterBarSchema===", ctx);
|
|
6148
|
+
const searchableFields = ctx.searchable_fields;
|
|
6149
|
+
const autoOpenFilter = !!ctx.auto_open_filter;
|
|
6140
6150
|
const btnSearchId = "btn_filter_form_search_" + new Date().getTime();
|
|
6141
6151
|
const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);
|
|
6142
6152
|
const keywordsSearchBoxName = ctx.keywordsSearchBoxName || "__keywords";
|
|
6143
6153
|
const onSearchScript = `
|
|
6144
|
-
|
|
6154
|
+
let isLookup = event.data.isLookup;
|
|
6155
|
+
let __lookupField = event.data.__lookupField;
|
|
6145
6156
|
const scope = event.context.scoped;
|
|
6157
|
+
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
6146
6158
|
var filterForm = scope.parent.parent.getComponents().find(function(n){
|
|
6147
6159
|
return n.props.type === "form";
|
|
6148
6160
|
});
|
|
6161
|
+
// 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取,因为本地存储中的过滤条件自动填充到表单上时filterForm.getValues()拿不到。
|
|
6162
|
+
let filterFormValues = event.data;
|
|
6163
|
+
filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
|
|
6164
|
+
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});
|
|
6165
|
+
// 同步__changedFilterFormValues中的值
|
|
6166
|
+
// crud && crud.setData({__changedFilterFormValues: {}});
|
|
6167
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
6168
|
+
if(isLookup && __lookupField){
|
|
6169
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
6170
|
+
if(__lookupField.reference_to_field){
|
|
6171
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
6172
|
+
}
|
|
6173
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
6174
|
+
}
|
|
6175
|
+
if(crud){
|
|
6176
|
+
let crudData = crud.getData();
|
|
6177
|
+
crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
|
|
6178
|
+
crud.setData(crudData);
|
|
6179
|
+
}
|
|
6149
6180
|
filterForm.handleFormSubmit(event);
|
|
6150
6181
|
// var filterFormValues = filterForm.getValues();
|
|
6151
6182
|
// var listView = scope.parent.parent.parent.getComponents().find(function(n){
|
|
@@ -6194,11 +6225,8 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6194
6225
|
}
|
|
6195
6226
|
filterService.setData({showFieldsFilter});
|
|
6196
6227
|
// resizeWindow();//已迁移到搜索栏表单提交事件中执行,因为表单项change后也会触发表单提交了
|
|
6197
|
-
// 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。
|
|
6198
|
-
let filterFormValues = event.data;
|
|
6199
6228
|
let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
|
|
6200
|
-
let
|
|
6201
|
-
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
6229
|
+
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
|
|
6202
6230
|
crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});
|
|
6203
6231
|
`;
|
|
6204
6232
|
const onCancelScript = `
|
|
@@ -6284,10 +6312,13 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6284
6312
|
|
|
6285
6313
|
// 移除搜索按钮上的红点
|
|
6286
6314
|
// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
6287
|
-
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
6315
|
+
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
|
|
6288
6316
|
crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
|
|
6289
6317
|
`;
|
|
6318
|
+
const filterFormValues = ctx.filter_form_data;
|
|
6290
6319
|
const dataProviderInited = `
|
|
6320
|
+
const searchableFields = ${JSON.stringify(searchableFields)};
|
|
6321
|
+
const autoOpenFilter = ${autoOpenFilter};
|
|
6291
6322
|
const objectName = data.objectName;
|
|
6292
6323
|
const isLookup = data.isLookup;
|
|
6293
6324
|
const listName = data.listName;
|
|
@@ -6300,6 +6331,11 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6300
6331
|
if(defaultSearchableFields){
|
|
6301
6332
|
defaultSearchableFields = defaultSearchableFields.split(",");
|
|
6302
6333
|
}
|
|
6334
|
+
if(_.isEmpty(defaultSearchableFields) && searchableFields){
|
|
6335
|
+
if(searchableFields.length){
|
|
6336
|
+
defaultSearchableFields = _.map(searchableFields, 'field');
|
|
6337
|
+
}
|
|
6338
|
+
}
|
|
6303
6339
|
if(_.isEmpty(defaultSearchableFields) && data.uiSchema){
|
|
6304
6340
|
let listView = data.uiSchema.list_views[data.listName];
|
|
6305
6341
|
const sFields = listView && listView.searchable_fields;
|
|
@@ -6317,8 +6353,18 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6317
6353
|
}
|
|
6318
6354
|
setData({ filterFormSearchableFields: defaultSearchableFields });
|
|
6319
6355
|
if(isLookup){
|
|
6356
|
+
let filterFormValues = ${_.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
|
|
6357
|
+
const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
|
|
6358
|
+
if (isAmisFormula){
|
|
6359
|
+
filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};
|
|
6360
|
+
}
|
|
6361
|
+
if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
|
|
6362
|
+
let fields = data.uiSchema && data.uiSchema.fields;
|
|
6363
|
+
filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
|
|
6364
|
+
setData({ ...filterFormValues });
|
|
6365
|
+
}
|
|
6320
6366
|
// looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器
|
|
6321
|
-
setData({ showFieldsFilter:
|
|
6367
|
+
setData({ showFieldsFilter: autoOpenFilter });
|
|
6322
6368
|
}
|
|
6323
6369
|
else{
|
|
6324
6370
|
const listViewPropsStoreKey = location.pathname + "/crud";
|
|
@@ -7583,7 +7629,7 @@ async function getObjectListHeaderFieldsFilterBar(objectSchema, listViewName, ct
|
|
|
7583
7629
|
* @param {*} objectSchema 对象UISchema
|
|
7584
7630
|
* @returns amisSchema
|
|
7585
7631
|
*/
|
|
7586
|
-
function getObjectListHeader
|
|
7632
|
+
function getObjectListHeader(objectSchema, listViewName, ctx) {
|
|
7587
7633
|
if (!ctx) {
|
|
7588
7634
|
ctx = {};
|
|
7589
7635
|
}
|
|
@@ -8909,10 +8955,9 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
8909
8955
|
}
|
|
8910
8956
|
|
|
8911
8957
|
const onChangeScript = `
|
|
8912
|
-
// console.log("==search=onChangeScript===");
|
|
8913
8958
|
const scope = event.context.scoped;
|
|
8914
8959
|
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
8915
|
-
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
8960
|
+
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
|
|
8916
8961
|
let __changedSearchBoxValues = {};
|
|
8917
8962
|
__changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
|
|
8918
8963
|
// crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
@@ -9279,10 +9324,28 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
9279
9324
|
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
9280
9325
|
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
9281
9326
|
// 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
|
|
9282
|
-
let filterFormValues = filterFormService.getData()
|
|
9327
|
+
let filterFormValues = filterFormService.getData();
|
|
9328
|
+
filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
|
|
9283
9329
|
let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
|
|
9284
9330
|
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
9285
|
-
|
|
9331
|
+
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});
|
|
9332
|
+
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
9333
|
+
// crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
9334
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
9335
|
+
if(isLookup && __lookupField){
|
|
9336
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
9337
|
+
if(__lookupField.reference_to_field){
|
|
9338
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
9339
|
+
}
|
|
9340
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
9341
|
+
}
|
|
9342
|
+
if(crud){
|
|
9343
|
+
let crudData = crud.getData();
|
|
9344
|
+
crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
|
|
9345
|
+
crud.setData(crudData);
|
|
9346
|
+
}
|
|
9347
|
+
|
|
9348
|
+
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
|
|
9286
9349
|
crudService && crudService.setData({isFieldsFilterEmpty});
|
|
9287
9350
|
`;
|
|
9288
9351
|
let onChangeScript = `
|
|
@@ -9297,7 +9360,7 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
9297
9360
|
filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
|
|
9298
9361
|
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
9299
9362
|
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
|
|
9300
|
-
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
9363
|
+
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});
|
|
9301
9364
|
// crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
9302
9365
|
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
9303
9366
|
// crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
@@ -9653,7 +9716,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
9653
9716
|
className: crudModeClassName,
|
|
9654
9717
|
//目前crud的service层id不认用户自定义id,只支持默认规则id,许多地方的格式都写死了service_listview_${objectname}
|
|
9655
9718
|
id: `service_${id}`,
|
|
9656
|
-
name:
|
|
9719
|
+
name: "service_object_table_crud",
|
|
9657
9720
|
data: options.amisData,
|
|
9658
9721
|
body: body,
|
|
9659
9722
|
//监听广播事件,重算crud高度
|
|
@@ -10000,8 +10063,8 @@ const getRecordPermissions = async (objectName, recordId)=>{
|
|
|
10000
10063
|
/*
|
|
10001
10064
|
* @Author: baozhoutao@steedos.com
|
|
10002
10065
|
* @Date: 2022-07-05 15:55:39
|
|
10003
|
-
* @LastEditors:
|
|
10004
|
-
* @LastEditTime:
|
|
10066
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
10067
|
+
* @LastEditTime: 2025-01-08 13:32:51
|
|
10005
10068
|
* @Description:
|
|
10006
10069
|
*/
|
|
10007
10070
|
|
|
@@ -10075,7 +10138,7 @@ async function getObjectRelatedList(
|
|
|
10075
10138
|
|
|
10076
10139
|
// 获取单个相关表
|
|
10077
10140
|
async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObjectName, relatedKey, ctx){
|
|
10078
|
-
let { top, perPage, appId, relatedLabel, className, columns, sort, filters, visible_on } = ctx;
|
|
10141
|
+
let { top, perPage, appId, relatedLabel, className, columns, sort, filters, visible_on, enableHeaderToolbar } = ctx;
|
|
10079
10142
|
// console.log('getRecordDetailRelatedListSchema==>',objectName,recordId,relatedObjectName)
|
|
10080
10143
|
const relatedObjectUiSchema = await getUISchema(relatedObjectName);
|
|
10081
10144
|
if(!relatedObjectUiSchema){
|
|
@@ -10140,6 +10203,10 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
10140
10203
|
let headerToolbar = [];
|
|
10141
10204
|
if(!isMobile){
|
|
10142
10205
|
headerToolbar.push("bulkActions");
|
|
10206
|
+
if (enableHeaderToolbar) {
|
|
10207
|
+
// 通过 enableHeaderToolbar = true 可以控制是否显示内置的带过滤器的headerToolbar
|
|
10208
|
+
headerToolbar = undefined;
|
|
10209
|
+
}
|
|
10143
10210
|
}
|
|
10144
10211
|
const options = {
|
|
10145
10212
|
globalFilter,
|
|
@@ -10178,7 +10245,7 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
10178
10245
|
amisSchema: {
|
|
10179
10246
|
type: "service",
|
|
10180
10247
|
id: componentId,
|
|
10181
|
-
className: `steedos-record-related-list mb-4 last:mb-0 ${componentId} ${className}`,
|
|
10248
|
+
className: `steedos-record-related-list mb-4 last:mb-0 ${componentId} ${className} ${enableHeaderToolbar ? 'enable-header-toolbar' : ''}`,
|
|
10182
10249
|
data: {
|
|
10183
10250
|
relatedKey: relatedKey,
|
|
10184
10251
|
listViewId: `amis-\${appId}-${relatedObjectName}-listview`,
|
|
@@ -10280,6 +10347,7 @@ async function getRelatedListSchema(
|
|
|
10280
10347
|
listViewName,
|
|
10281
10348
|
ctx
|
|
10282
10349
|
) {
|
|
10350
|
+
const { enableHeaderToolbar } = ctx;
|
|
10283
10351
|
const uiSchema = await getUISchema(objectName);
|
|
10284
10352
|
if(!uiSchema){
|
|
10285
10353
|
return {}
|
|
@@ -10332,10 +10400,14 @@ async function getRelatedListSchema(
|
|
|
10332
10400
|
delete ctx.filters;
|
|
10333
10401
|
|
|
10334
10402
|
delete ctx.globalFilter;
|
|
10403
|
+
delete ctx.enableHeaderToolbar;
|
|
10335
10404
|
|
|
10336
10405
|
const adaptor = `
|
|
10337
10406
|
try{
|
|
10338
10407
|
if(setDataToComponentId){
|
|
10408
|
+
// 子表列表在headerToolbar过滤器中设置过过滤条件的话,始终显示子表列表,无论是否查询到数据
|
|
10409
|
+
// 改为使用css样式控制子表列表放开headerToolbar时,始终显示crud,只隐藏crud内部的表格,从而始终显示headerToolbar不受这里逻辑影响
|
|
10410
|
+
// var headerToolbarFilterChanged = context.isFieldsFilterEmpty === false;
|
|
10339
10411
|
if(payload.data.count){
|
|
10340
10412
|
setTimeout(function(){
|
|
10341
10413
|
// 设计器中获取不到window.$从而导致报错, 所以用纯js替换下。
|
|
@@ -10358,7 +10430,7 @@ async function getRelatedListSchema(
|
|
|
10358
10430
|
"filters": listviewFilter,
|
|
10359
10431
|
"filtersFunction": filtersFunction,
|
|
10360
10432
|
"sort": listViewSort,
|
|
10361
|
-
"filterVisible":
|
|
10433
|
+
"filterVisible": !!enableHeaderToolbar,
|
|
10362
10434
|
"requestAdaptor": ctx.requestAdaptor,
|
|
10363
10435
|
"adaptor": adaptor + ctx.adaptor || '',
|
|
10364
10436
|
"ctx": ctx,
|
|
@@ -11752,6 +11824,7 @@ function getLookupSapceUserTreeSchema(isMobile){
|
|
|
11752
11824
|
{
|
|
11753
11825
|
"actionType": "custom",
|
|
11754
11826
|
"script": `
|
|
11827
|
+
console.log("===__searchable__organizations_parents===",event.data);
|
|
11755
11828
|
const scope = event.context.scoped;
|
|
11756
11829
|
var filterFormValues={
|
|
11757
11830
|
"__searchable__organizations_parents":event.data.value.value
|
|
@@ -11853,6 +11926,9 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
11853
11926
|
ctx.idFieldName = refObjectConfig.idFieldName;
|
|
11854
11927
|
ctx.objectName = refObjectConfig.name;
|
|
11855
11928
|
|
|
11929
|
+
// 是否显示lookup字段左侧的过滤器(如果有的话),默认为true,目前只有lookup选人字段有左侧树过滤器
|
|
11930
|
+
const showLeftFilter = field.show_left_filter !== false;
|
|
11931
|
+
|
|
11856
11932
|
let tableFields = [];
|
|
11857
11933
|
const searchableFields = [];
|
|
11858
11934
|
|
|
@@ -11974,6 +12050,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
11974
12050
|
// field.name可能是带点的名称,比如审批王中子表字段'instances.instances_submitter',如果不替换掉点,会造成审批王表单中新建子表行时报错
|
|
11975
12051
|
let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
|
|
11976
12052
|
|
|
12053
|
+
const filterFormValues = field.filter_form_data;
|
|
11977
12054
|
source.requestAdaptor = `
|
|
11978
12055
|
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
11979
12056
|
let __lookupField = api.data.$self.__lookupField;
|
|
@@ -11995,7 +12072,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
11995
12072
|
}
|
|
11996
12073
|
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
11997
12074
|
${listviewFilter && !ctx.inFilterForm ? `var filters = ${JSON.stringify(listviewFilter)};` : 'var filters = [];'}
|
|
11998
|
-
var pageSize = api.data.pageSize || 10;
|
|
12075
|
+
var pageSize = 500;//api.data.pageSize || 10;
|
|
11999
12076
|
var pageNo = api.data.pageNo || 1;
|
|
12000
12077
|
var skip = (pageNo - 1) * pageSize;
|
|
12001
12078
|
var orderBy = api.data.orderBy || '';
|
|
@@ -12016,7 +12093,20 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12016
12093
|
}
|
|
12017
12094
|
}
|
|
12018
12095
|
|
|
12019
|
-
|
|
12096
|
+
let filterFormValues = {};
|
|
12097
|
+
if (selfData.op !== 'loadOptions'){
|
|
12098
|
+
filterFormValues = ${_$1.isObject(filterFormValues) ? JSON.stringify(filterFormValues) : ('"' + filterFormValues + '"')} || {};
|
|
12099
|
+
const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;
|
|
12100
|
+
if (isAmisFormula){
|
|
12101
|
+
filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};
|
|
12102
|
+
}
|
|
12103
|
+
if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){
|
|
12104
|
+
let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;
|
|
12105
|
+
filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);
|
|
12106
|
+
}
|
|
12107
|
+
}
|
|
12108
|
+
|
|
12109
|
+
var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, selfData)) || [];
|
|
12020
12110
|
|
|
12021
12111
|
if(searchableFilter.length > 0){
|
|
12022
12112
|
if(filters.length > 0 ){
|
|
@@ -12184,6 +12274,20 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12184
12274
|
});
|
|
12185
12275
|
payload.data.rows = updatedResult;
|
|
12186
12276
|
}
|
|
12277
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
12278
|
+
let __lookupField = api.data.$self.__lookupField;
|
|
12279
|
+
if(__lookupField){
|
|
12280
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
12281
|
+
if(__lookupField.reference_to_field){
|
|
12282
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
12283
|
+
}
|
|
12284
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
12285
|
+
}
|
|
12286
|
+
let __changedFilterFormValues = api.context[__changedFilterFormValuesKey] || {};
|
|
12287
|
+
let __changedSearchBoxValues = api.context.__changedSearchBoxValues || {};
|
|
12288
|
+
// 列表搜索和快速搜索,有时在某些操作情况下还是会造成crud接口请求使用的过滤条件是上次的,这里强制把正确的过滤条件返回到crud,详细规则见:https://github.com/steedos/steedos-platform/issues/7112
|
|
12289
|
+
payload.data[__changedFilterFormValuesKey] = __changedFilterFormValues;
|
|
12290
|
+
payload.data.__changedSearchBoxValues = __changedSearchBoxValues;
|
|
12187
12291
|
return payload;
|
|
12188
12292
|
`;
|
|
12189
12293
|
if(field.optionsFunction || field._optionsFunction){
|
|
@@ -12219,7 +12323,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12219
12323
|
|
|
12220
12324
|
pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { isLookup: true, keywordsSearchBoxName });
|
|
12221
12325
|
|
|
12222
|
-
if(referenceTo.objectName === "space_users" && field.reference_to_field === "user"){
|
|
12326
|
+
if(referenceTo.objectName === "space_users" && field.reference_to_field === "user" && showLeftFilter){
|
|
12223
12327
|
pickerSchema.headerToolbar.push(getLookupSapceUserTreeSchema(isMobile));
|
|
12224
12328
|
pickerSchema.className = pickerSchema.className || "" + " steedos-select-user";
|
|
12225
12329
|
}
|
|
@@ -12236,10 +12340,15 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
12236
12340
|
}
|
|
12237
12341
|
pickerSchema.footerToolbar = refObjectConfig.enable_tree ? [] : getObjectFooterToolbar(refObjectConfig,ctx.formFactor,{isLookup: true});
|
|
12238
12342
|
if (ctx.filterVisible !== false) {
|
|
12343
|
+
console.log("lookupToAmisPicker===pickerSchema.filter===field===", field);
|
|
12239
12344
|
pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {
|
|
12240
12345
|
...ctx,
|
|
12241
12346
|
isLookup: true,
|
|
12242
|
-
keywordsSearchBoxName
|
|
12347
|
+
keywordsSearchBoxName,
|
|
12348
|
+
searchable_fields: field.searchable_fields,
|
|
12349
|
+
auto_open_filter: field.auto_open_filter,
|
|
12350
|
+
show_left_filter: field.show_left_filter,
|
|
12351
|
+
filter_form_data: field.filter_form_data
|
|
12243
12352
|
});
|
|
12244
12353
|
}
|
|
12245
12354
|
pickerSchema.data = Object.assign({}, pickerSchema.data, {
|
|
@@ -12733,6 +12842,10 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
12733
12842
|
}
|
|
12734
12843
|
let amisSchema;
|
|
12735
12844
|
// 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
|
|
12845
|
+
if(enableEnhancedLookup == true && field.amis && field.amis.type && field.amis.type !== 'picker'){
|
|
12846
|
+
// 如果配置了amis.type且其值不是picker,则不使用弹出增强模式
|
|
12847
|
+
enableEnhancedLookup = false;
|
|
12848
|
+
}
|
|
12736
12849
|
if(enableEnhancedLookup == true){
|
|
12737
12850
|
amisSchema = await lookupToAmisPicker(field, readonly, ctx);
|
|
12738
12851
|
}else if(refObject.enable_tree) {
|
|
@@ -13864,7 +13977,16 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
13864
13977
|
return convertData
|
|
13865
13978
|
}
|
|
13866
13979
|
// if(ctx.mode === 'edit'){
|
|
13867
|
-
let convertDataResult
|
|
13980
|
+
let convertDataResult;
|
|
13981
|
+
if(convertData.type == "steedos-field"){
|
|
13982
|
+
// 如果是steedos-field,不能把amis属性合并到steedos-field根属性中,要合并也是合并到steedos-field的config.amis中
|
|
13983
|
+
// 而steedos-field字段的amis属性本身就在config.amis中了,所以这里不需要再合并field.amis
|
|
13984
|
+
// 目前测试到受影响的是,把字段的amis属性配置为{"type": "checkboxes"}时,ObjectForm只读模式下,lookup字段返回的是type为steedos-field的组件,此时field.amis中的type不应该合并到steedos-field根属性中
|
|
13985
|
+
convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, {name: baseData.name});
|
|
13986
|
+
}
|
|
13987
|
+
else {
|
|
13988
|
+
convertDataResult = Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});
|
|
13989
|
+
}
|
|
13868
13990
|
// 只读时file字段的外层control层若存在name,内部each组件存在问题
|
|
13869
13991
|
if(readonly && field.type == "file") {
|
|
13870
13992
|
convertDataResult.name = "";
|
|
@@ -16009,7 +16131,7 @@ async function getListviewInitSchema(objectApiName, listViewName, ctx) {
|
|
|
16009
16131
|
const defaults = ctx.defaults || {};
|
|
16010
16132
|
if(!defaults.headerSchema){
|
|
16011
16133
|
//传入isListviewInit是区别于对象列表类型的微页面,即getListPageInitSchema函数中该属性为false
|
|
16012
|
-
const headerSchema = await getObjectListHeader
|
|
16134
|
+
const headerSchema = await getObjectListHeader(uiSchema, listViewName, {
|
|
16013
16135
|
onlySecordLine: true,
|
|
16014
16136
|
isListviewInit: true
|
|
16015
16137
|
});
|
|
@@ -18492,5 +18614,5 @@ const getInstanceInfo = async ({ instanceId, box }) => {
|
|
|
18492
18614
|
};
|
|
18493
18615
|
};
|
|
18494
18616
|
|
|
18495
|
-
export { index as Field, Router, absoluteUrl, amisRender, amisRootClick, cloneObject, conditionsToFilters, createObject, defaultsDeep, deleteVariable, execute, executeButton, extendObject, fetchAPI, filtersToConditions, getAmisInputTableSchema, getApp, getApps, getAuthToken, getAuthorization, getButton, getButtonVisible, getButtonVisibleOn, getButtons, getCalendarSchema, getCreatedInfoTpl, getDateTimeTpl, getDateTpl, getDefaultRenderData, getEnv, getEnvs, getEvn, getField, getFieldTpl, getFileSrc, getFlowFormSchema, getFormPageInitSchema, getFormSchema, getGlobalNowData, getIdsPickerSchema, getImageSrc, getInstanceInfo, getListPageInitSchema, getListSchema, getListViewButtons, getListViewColumns, getListViewFilter, getListViewItemButtons, getListViewSort, getListviewInitSchema, getLocationTpl, getLookupSapceUserTreeSchema, getLookupTpl, getModifiedInfoTpl, getNameTpl, getNameTplUrl, getNotifications, getNumberTpl, getObjectDetailButtons, getObjectDetailButtonsSchemas, getObjectDetailMoreButtons, getObjectFieldsFilterBarSchema, getObjectFieldsFilterButtonSchema, getObjectFieldsFilterFormSchema, getObjectListHeader
|
|
18617
|
+
export { index as Field, Router, absoluteUrl, amisRender, amisRootClick, cloneObject, conditionsToFilters, createObject, defaultsDeep, deleteVariable, execute, executeButton, extendObject, fetchAPI, filtersToConditions, getAmisInputTableSchema, getApp, getApps, getAuthToken, getAuthorization, getButton, getButtonVisible, getButtonVisibleOn, getButtons, getCalendarSchema, getCreatedInfoTpl, getDateTimeTpl, getDateTpl, getDefaultRenderData, getEnv, getEnvs, getEvn, getField, getFieldTpl, getFileSrc, getFlowFormSchema, getFormPageInitSchema, getFormSchema, getGlobalNowData, getIdsPickerSchema, getImageSrc, getInstanceInfo, getListPageInitSchema, getListSchema, getListViewButtons, getListViewColumns, getListViewFilter, getListViewItemButtons, getListViewSort, getListviewInitSchema, getLocationTpl, getLookupSapceUserTreeSchema, getLookupTpl, getModifiedInfoTpl, getNameTpl, getNameTplUrl, getNotifications, getNumberTpl, getObjectDetailButtons, getObjectDetailButtonsSchemas, getObjectDetailMoreButtons, getObjectFieldsFilterBarSchema, getObjectFieldsFilterButtonSchema, getObjectFieldsFilterFormSchema, getObjectListHeader, getObjectListHeaderFieldsFilterBar, getObjectListHeaderFirstLine, getObjectListHeaderSecordLine, getObjectListViewButtonsSchemas, getObjectRecordDetailHeader, getObjectRecordDetailRelatedListButtonsSchemas, getObjectRecordDetailRelatedListHeader, getObjectRelated, getObjectRelatedList, getObjectRelatedListButtons, getObjectRelatedListHeader, getObjectRelatedListsMiniSchema, getPage, getPasswordTpl, getRecord, getRecordDetailHeaderSchema, getRecordDetailMiniSchema, getRecordDetailRelatedListSchema, getRecordDetailSchema, getRecordPageInitSchema, getRecordPermissions, getRecordServiceSchema, getRefObjectNameFieldName, getReferenceTo, getReferenceToFieldSchema, getReferenceToSync, getRelatedFieldTpl, getRelatedFieldValue, getRelatedListSchema, getRelatedsCount, getRootUrl, getSelectMap, getSelectTpl, getSelectUserSchema, getSpaceUsersPickerAmisSchema, getSpaceUsersPickerSchema, getSteedosAuth, getSwitchTpl, getTableSchema, getTenantId, getTimeTpl, getUISchema, getUISchemaSync$1 as getUISchemaSync, getUiFieldTpl, getUiFileSizeTpl, getUserId, getViewSchema, isExpression, isObject, lookupToAmis, lookupToAmisIdsPicker, lookupToAmisPicker, lookupToAmisSelect, lookupToAmisSelectUser, markReadAll, parseSingleExpression, registerRemoteAssets, registerRenders, setEnv, setEnvs, setRootUrl, setSteedosAuth, setUISchemaFunction, setVariable, standardButtonsTodo, uuidv4 };
|
|
18496
18618
|
//# sourceMappingURL=index.esm.js.map
|