@steedos-widgets/amis-lib 1.3.4-beta.17 → 1.3.4-beta.19
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 +154 -22
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +154 -22
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +89 -79
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/fields/file.d.ts +4 -8
- package/dist/types/lib/converter/amis/fields/lookup.d.ts +4 -0
- package/dist/types/lib/converter/amis/fields/table.d.ts +2 -0
- package/dist/types/lib/converter/amis/index.d.ts +1 -3
- package/dist/types/lib/converter/amis/toolbars/setting_listview/copy.d.ts +1 -0
- package/dist/types/lib/converter/amis/toolbars/setting_listview.d.ts +1 -0
- package/dist/types/lib/objects.d.ts +1 -3
- package/dist/types/lib/page_init.d.ts +1 -3
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -1764,6 +1764,13 @@ async function getSelectUserSchema(field, readonly, ctx) {
|
|
|
1764
1764
|
return amisSchema;
|
|
1765
1765
|
}
|
|
1766
1766
|
|
|
1767
|
+
/*
|
|
1768
|
+
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
1769
|
+
* @Date: 2023-03-22 09:31:21
|
|
1770
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
1771
|
+
* @LastEditTime: 2023-11-03 17:27:37
|
|
1772
|
+
*/
|
|
1773
|
+
|
|
1767
1774
|
const globalTag = '__G_L_O_B_A_L__';
|
|
1768
1775
|
|
|
1769
1776
|
const getParentPath = function (path) {
|
|
@@ -1803,7 +1810,39 @@ const isExpression = function (func) {
|
|
|
1803
1810
|
return false;
|
|
1804
1811
|
};
|
|
1805
1812
|
|
|
1813
|
+
const getMoment$1 = () => {
|
|
1814
|
+
if (window.amisRequire) {
|
|
1815
|
+
return window.amisRequire("moment");
|
|
1816
|
+
} else if (window.moment) {
|
|
1817
|
+
return window.moment;
|
|
1818
|
+
}
|
|
1819
|
+
};
|
|
1820
|
+
|
|
1806
1821
|
const parseSingleExpression = function (func, formData, dataPath, global, userSession = {}) {
|
|
1822
|
+
if (global) {
|
|
1823
|
+
let now = new Date();
|
|
1824
|
+
let moment = getMoment$1();
|
|
1825
|
+
let today = moment().utc();
|
|
1826
|
+
today.set("hours", 0);
|
|
1827
|
+
today.set("minutes", 0);
|
|
1828
|
+
today.set("seconds", 0);
|
|
1829
|
+
today.set("milliseconds", 0);
|
|
1830
|
+
today = today.toDate();
|
|
1831
|
+
let timeNow = moment();
|
|
1832
|
+
timeNow.set("year", 1970);
|
|
1833
|
+
timeNow.set("month", 0);
|
|
1834
|
+
timeNow.set("date", 1);
|
|
1835
|
+
timeNow.set("hours", timeNow.hours() + timeNow.utcOffset() / 60);
|
|
1836
|
+
timeNow.set("seconds", 0);
|
|
1837
|
+
timeNow.set("milliseconds", 0);
|
|
1838
|
+
timeNow = timeNow.toDate();
|
|
1839
|
+
Object.assign(global, {
|
|
1840
|
+
now,
|
|
1841
|
+
today,
|
|
1842
|
+
timeNow
|
|
1843
|
+
});
|
|
1844
|
+
}
|
|
1845
|
+
|
|
1807
1846
|
var error, funcBody, parent, parentPath, str;
|
|
1808
1847
|
|
|
1809
1848
|
if (formData === void 0) {
|
|
@@ -4363,7 +4402,8 @@ const getCopyListviewButtonSchema = ()=>{
|
|
|
4363
4402
|
"&": "${list_view}",
|
|
4364
4403
|
"name":"",
|
|
4365
4404
|
"label": i18next.t('frontend_listview_control_clone_defaultData_label_start') + " ${list_view.label} " + i18next.t('frontend_listview_control_clone_defaultData_label_end'),
|
|
4366
|
-
"shared":false
|
|
4405
|
+
"shared":false,
|
|
4406
|
+
"object_name": "${targetObjectName}",
|
|
4367
4407
|
},
|
|
4368
4408
|
"fieldsExtend": fieldsExtend$3(),
|
|
4369
4409
|
"fields": fields(),
|
|
@@ -6071,7 +6111,9 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
6071
6111
|
pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });
|
|
6072
6112
|
const isAllowCreate = refObjectConfig.permissions.allowCreate;
|
|
6073
6113
|
const isCreate = _$1.isBoolean(field.create) ? field.create : true;
|
|
6074
|
-
|
|
6114
|
+
// lookup字段配置过滤条件就强制不显示新建按钮
|
|
6115
|
+
let isHasFilters = (field.filters || field._filtersFunction) ? true : false;
|
|
6116
|
+
if (isAllowCreate && isCreate && !isHasFilters) {
|
|
6075
6117
|
const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
|
|
6076
6118
|
new_button.align = "right";
|
|
6077
6119
|
// 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后
|
|
@@ -6445,10 +6487,10 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
6445
6487
|
|
|
6446
6488
|
const refObject = await getUISchema(referenceTo.objectName);
|
|
6447
6489
|
|
|
6448
|
-
//
|
|
6449
|
-
|
|
6450
|
-
//
|
|
6451
|
-
if(
|
|
6490
|
+
// 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
|
|
6491
|
+
let enableEnhancedLookup = _$1.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;
|
|
6492
|
+
// 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
|
|
6493
|
+
if(enableEnhancedLookup == true){
|
|
6452
6494
|
return await lookupToAmisPicker(field, readonly, ctx);
|
|
6453
6495
|
}else if(refObject.enable_tree) {
|
|
6454
6496
|
return await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
|
|
@@ -6765,8 +6807,8 @@ function getAmisStaticFieldType(type, readonly, options){
|
|
|
6765
6807
|
/*
|
|
6766
6808
|
* @Author: baozhoutao@steedos.com
|
|
6767
6809
|
* @Date: 2022-10-28 14:15:09
|
|
6768
|
-
* @LastEditors:
|
|
6769
|
-
* @LastEditTime:
|
|
6810
|
+
* @LastEditors: liaodaxue
|
|
6811
|
+
* @LastEditTime: 2023-10-30 17:51:54
|
|
6770
6812
|
* @Description:
|
|
6771
6813
|
*/
|
|
6772
6814
|
|
|
@@ -6817,11 +6859,26 @@ const getAmisFileEditSchema = (steedosField)=>{
|
|
|
6817
6859
|
useChunk: false, // 关闭分块上传
|
|
6818
6860
|
receiver: {
|
|
6819
6861
|
method: "post",
|
|
6862
|
+
dataType: "form-data",
|
|
6820
6863
|
url: `\${context.rootUrl}/s3/${tableName}`,
|
|
6821
|
-
|
|
6822
|
-
|
|
6823
|
-
|
|
6824
|
-
|
|
6864
|
+
requestAdaptor: `
|
|
6865
|
+
const { _master, global,context } = api.body;
|
|
6866
|
+
// const { recordId, objectName } = _master;
|
|
6867
|
+
const { spaceId, userId, user } = global;
|
|
6868
|
+
/*
|
|
6869
|
+
record_id: recordId,
|
|
6870
|
+
parent: recordId,
|
|
6871
|
+
object_name: objectName,
|
|
6872
|
+
owner_name: user.name,
|
|
6873
|
+
space: spaceId,
|
|
6874
|
+
owner: userId
|
|
6875
|
+
*/
|
|
6876
|
+
// 参考platform 2.2版本,附件字段保存时cfs.files.filerecord、cfs.images.filerecord表中的metadata下只保存space、owner两个属性值。
|
|
6877
|
+
api.data.append('space', spaceId);
|
|
6878
|
+
api.data.append('owner', userId);
|
|
6879
|
+
|
|
6880
|
+
return api;
|
|
6881
|
+
`,
|
|
6825
6882
|
adaptor: `
|
|
6826
6883
|
const { context } = api.body;
|
|
6827
6884
|
var rootUrl = context.rootUrl + "/api/files/${tableName}/";
|
|
@@ -7685,8 +7742,44 @@ var config = {
|
|
|
7685
7742
|
};
|
|
7686
7743
|
|
|
7687
7744
|
async function getQuickEditSchema(field, options){
|
|
7745
|
+
//判断在amis3.2以上环境下,放开批量编辑
|
|
7746
|
+
const isAmisVersionforBatchEdit = amisRequire('amis').version[0] >= 3 && amisRequire('amis').version[2] >= 2;
|
|
7688
7747
|
const quickEditId = options.objectName + "_" + field.name + "QuickEdit";//定义快速编辑的表单id,用于setvalue传值
|
|
7689
7748
|
var quickEditSchema = { body: [], id: quickEditId };
|
|
7749
|
+
//select,avatar,image,file等组件无法行记录字段赋值,暂不支持批量编辑;
|
|
7750
|
+
if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){
|
|
7751
|
+
const submitEvent = {
|
|
7752
|
+
submit: {
|
|
7753
|
+
actions: [
|
|
7754
|
+
{
|
|
7755
|
+
actionType: "custom",
|
|
7756
|
+
script: `
|
|
7757
|
+
const items = event.data.items;
|
|
7758
|
+
const selectedItems = event.data.selectedItems;
|
|
7759
|
+
if(event.data.isBatchEdit){
|
|
7760
|
+
selectedItems.forEach(function(selectedItem){
|
|
7761
|
+
items[selectedItem._index-1]._display.${field.name} = event.data._display.${field.name};
|
|
7762
|
+
})
|
|
7763
|
+
doAction({actionType: 'setValue', "args": {"value": {items}},componentId: "${options.crudId}","dataMergeMode": "override"});
|
|
7764
|
+
selectedItems.forEach(function(selectedItem){
|
|
7765
|
+
doAction({actionType: 'setValue', "args": {"value": event.data.${field.name}},componentId: "${options.objectName + "_" + field.name + "_"}" + selectedItem._index});
|
|
7766
|
+
})
|
|
7767
|
+
}else{
|
|
7768
|
+
items[event.data._index-1]._display.${field.name} = event.data._display.${field.name};
|
|
7769
|
+
doAction({actionType: 'setValue', "args": {"value": {items}},componentId: "${options.crudId}","dataMergeMode": "override"});
|
|
7770
|
+
doAction({actionType: 'setValue', "args": {"value": event.data.${field.name}},componentId: "${options.objectName + "_" + field.name + "_"}" + event.data._index});
|
|
7771
|
+
}
|
|
7772
|
+
`
|
|
7773
|
+
},
|
|
7774
|
+
{
|
|
7775
|
+
"actionType": "closeDialog"
|
|
7776
|
+
}
|
|
7777
|
+
]
|
|
7778
|
+
}
|
|
7779
|
+
};
|
|
7780
|
+
quickEditSchema.onEvent = submitEvent;
|
|
7781
|
+
}
|
|
7782
|
+
|
|
7690
7783
|
if (field.disabled) {
|
|
7691
7784
|
quickEditSchema = false;
|
|
7692
7785
|
} else {
|
|
@@ -7920,6 +8013,14 @@ async function getQuickEditSchema(field, options){
|
|
|
7920
8013
|
}
|
|
7921
8014
|
|
|
7922
8015
|
});
|
|
8016
|
+
if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){
|
|
8017
|
+
quickEditSchema.body.push({
|
|
8018
|
+
"name": "isBatchEdit",
|
|
8019
|
+
"type": "checkbox",
|
|
8020
|
+
"option": "更新${COUNT(selectedItems)}个选定记录",
|
|
8021
|
+
"visibleOn": "${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1}"
|
|
8022
|
+
});
|
|
8023
|
+
}
|
|
7923
8024
|
} else {
|
|
7924
8025
|
quickEditSchema = false;
|
|
7925
8026
|
}
|
|
@@ -7985,7 +8086,7 @@ async function getTableColumns(fields, options){
|
|
|
7985
8086
|
{
|
|
7986
8087
|
"args": {
|
|
7987
8088
|
"api": {
|
|
7988
|
-
"url": "${context.rootUrl
|
|
8089
|
+
"url": "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}",
|
|
7989
8090
|
"method": "get",
|
|
7990
8091
|
"headers": {
|
|
7991
8092
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
@@ -8032,7 +8133,7 @@ async function getTableColumns(fields, options){
|
|
|
8032
8133
|
else if(field.type === 'select'){
|
|
8033
8134
|
const map = getSelectMap(field.options);
|
|
8034
8135
|
columnItem = Object.assign({}, {
|
|
8035
|
-
type: "mapping",
|
|
8136
|
+
type: "static-mapping",
|
|
8036
8137
|
name: field.name,
|
|
8037
8138
|
label: field.label,
|
|
8038
8139
|
map: map,
|
|
@@ -8047,7 +8148,7 @@ async function getTableColumns(fields, options){
|
|
|
8047
8148
|
const tpl = await getFieldTpl(field, options);
|
|
8048
8149
|
let type = 'text';
|
|
8049
8150
|
if(tpl){
|
|
8050
|
-
type = '
|
|
8151
|
+
type = 'static';
|
|
8051
8152
|
}else if(field.type === 'html'){
|
|
8052
8153
|
type = 'markdown';
|
|
8053
8154
|
}else if(field.type === 'url'){
|
|
@@ -8088,6 +8189,7 @@ async function getTableColumns(fields, options){
|
|
|
8088
8189
|
columnItem.quickEdit = quickEditSchema;
|
|
8089
8190
|
columnItem.quickEditEnabledOn = "${is_system !== true}";
|
|
8090
8191
|
}
|
|
8192
|
+
columnItem.id = `${options.objectName}_${field.name}_\${_index}`;
|
|
8091
8193
|
columns.push(columnItem);
|
|
8092
8194
|
}
|
|
8093
8195
|
}
|
|
@@ -8465,6 +8567,7 @@ async function getTableSchema$1(fields, options){
|
|
|
8465
8567
|
}
|
|
8466
8568
|
return {
|
|
8467
8569
|
mode: "cards",
|
|
8570
|
+
perPageAvailable: [5, 10, 20, 50, 100, 500],
|
|
8468
8571
|
name: "thelist",
|
|
8469
8572
|
headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
|
|
8470
8573
|
className: "",
|
|
@@ -8487,6 +8590,7 @@ async function getTableSchema$1(fields, options){
|
|
|
8487
8590
|
|
|
8488
8591
|
return {
|
|
8489
8592
|
mode: "table",
|
|
8593
|
+
perPageAvailable: [5, 10, 20, 50, 100, 500],
|
|
8490
8594
|
name: "thelist",
|
|
8491
8595
|
headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
|
|
8492
8596
|
className: "",
|
|
@@ -9121,7 +9225,7 @@ async function getEditFormInitApi(object, recordId, fields, options){
|
|
|
9121
9225
|
${getScriptForRewriteValueForFileFields(fields)}
|
|
9122
9226
|
|
|
9123
9227
|
_.each(dataKeys, function(key){
|
|
9124
|
-
if(fieldKeys.indexOf(key)<0){
|
|
9228
|
+
if(fieldKeys.indexOf(key)<0 && key !== "_display"){
|
|
9125
9229
|
delete data[key];
|
|
9126
9230
|
}
|
|
9127
9231
|
})
|
|
@@ -10297,7 +10401,8 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
10297
10401
|
}
|
|
10298
10402
|
let tableOptions = Object.assign({
|
|
10299
10403
|
idFieldName: objectSchema.idFieldName, labelFieldName: labelFieldName,
|
|
10300
|
-
permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit
|
|
10404
|
+
permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit,
|
|
10405
|
+
crudId: listSchema.id || id
|
|
10301
10406
|
}, options);
|
|
10302
10407
|
tableOptions.amisData = createObject(options.amisData || {}, {});
|
|
10303
10408
|
const table = await getTableSchema$1(fields, tableOptions);
|
|
@@ -10461,8 +10566,29 @@ const getFormFields = (objectSchema, formProps)=>{
|
|
|
10461
10566
|
return lodash.sortBy(___default.values(fields), "sort_no");
|
|
10462
10567
|
};
|
|
10463
10568
|
|
|
10569
|
+
async function getFormSchemaWithDataFilter(form, options = {}){
|
|
10570
|
+
const { formDataFilter, amisData, env } = options;
|
|
10571
|
+
let onFormDataFilter = options.onFormDataFilter;
|
|
10572
|
+
if (!onFormDataFilter && typeof formDataFilter === 'string') {
|
|
10573
|
+
onFormDataFilter = new Function(
|
|
10574
|
+
'form',
|
|
10575
|
+
'env',
|
|
10576
|
+
'data',
|
|
10577
|
+
formDataFilter
|
|
10578
|
+
);
|
|
10579
|
+
}
|
|
10580
|
+
|
|
10581
|
+
try {
|
|
10582
|
+
onFormDataFilter && (form = await onFormDataFilter(form, env, amisData) || form);
|
|
10583
|
+
} catch (e) {
|
|
10584
|
+
console.warn(e);
|
|
10585
|
+
}
|
|
10586
|
+
return form;
|
|
10587
|
+
}
|
|
10588
|
+
|
|
10464
10589
|
async function getObjectForm(objectSchema, ctx){
|
|
10465
|
-
const { recordId, formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign, tabId, appId, defaults, submitSuccActions = []
|
|
10590
|
+
const { recordId, formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign, tabId, appId, defaults, submitSuccActions = [],
|
|
10591
|
+
formDataFilter, onFormDataFilter, amisData, env } = ctx;
|
|
10466
10592
|
const fields = ___default.values(objectSchema.fields);
|
|
10467
10593
|
const formFields = getFormFields(objectSchema, ctx);
|
|
10468
10594
|
const formSchema = defaults && defaults.formSchema || {};
|
|
@@ -10479,7 +10605,8 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
10479
10605
|
name: `page_edit_${recordId}`,
|
|
10480
10606
|
api: await getEditFormInitApi(objectSchema, recordId, fields, ctx),
|
|
10481
10607
|
data:{
|
|
10482
|
-
editFormInited: false
|
|
10608
|
+
editFormInited: false,
|
|
10609
|
+
...amisData
|
|
10483
10610
|
},
|
|
10484
10611
|
// data: {global: getGlobalData('edit'), recordId: recordId, objectName: objectSchema.name, context: {rootUrl: getRootUrl(), tenantId: getTenantId(), authToken: getAuthToken()}},
|
|
10485
10612
|
initApi: null,
|
|
@@ -10546,15 +10673,17 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
10546
10673
|
}
|
|
10547
10674
|
})]
|
|
10548
10675
|
};
|
|
10676
|
+
amisSchema.body[0] = await getFormSchemaWithDataFilter(amisSchema.body[0], { formDataFilter, onFormDataFilter, amisData, env });
|
|
10549
10677
|
return amisSchema;
|
|
10550
10678
|
}
|
|
10551
10679
|
|
|
10552
10680
|
async function getObjectDetail(objectSchema, recordId, ctx){
|
|
10553
|
-
const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign
|
|
10681
|
+
const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign,
|
|
10682
|
+
formDataFilter, onFormDataFilter, amisData, env } = ctx;
|
|
10554
10683
|
const fields = ___default.values(objectSchema.fields);
|
|
10555
10684
|
const formFields = getFormFields(objectSchema, ctx);
|
|
10556
10685
|
const serviceId = `service_detail_page`;
|
|
10557
|
-
|
|
10686
|
+
const amisSchema = {
|
|
10558
10687
|
type: 'service',
|
|
10559
10688
|
name: `page_readonly_${recordId}`,
|
|
10560
10689
|
id: serviceId,
|
|
@@ -10636,7 +10765,10 @@ async function getObjectDetail(objectSchema, recordId, ctx){
|
|
|
10636
10765
|
]
|
|
10637
10766
|
}
|
|
10638
10767
|
}
|
|
10639
|
-
}
|
|
10768
|
+
};
|
|
10769
|
+
|
|
10770
|
+
amisSchema.body[0].body = await getFormSchemaWithDataFilter(amisSchema.body[0].body, { formDataFilter, onFormDataFilter, amisData, env });
|
|
10771
|
+
return amisSchema;
|
|
10640
10772
|
}
|
|
10641
10773
|
|
|
10642
10774
|
/*
|