@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.cjs.js
CHANGED
|
@@ -1791,6 +1791,13 @@ async function getSelectUserSchema(field, readonly, ctx) {
|
|
|
1791
1791
|
return amisSchema;
|
|
1792
1792
|
}
|
|
1793
1793
|
|
|
1794
|
+
/*
|
|
1795
|
+
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
1796
|
+
* @Date: 2023-03-22 09:31:21
|
|
1797
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
1798
|
+
* @LastEditTime: 2023-11-03 17:27:37
|
|
1799
|
+
*/
|
|
1800
|
+
|
|
1794
1801
|
const globalTag = '__G_L_O_B_A_L__';
|
|
1795
1802
|
|
|
1796
1803
|
const getParentPath = function (path) {
|
|
@@ -1830,7 +1837,39 @@ const isExpression = function (func) {
|
|
|
1830
1837
|
return false;
|
|
1831
1838
|
};
|
|
1832
1839
|
|
|
1840
|
+
const getMoment$1 = () => {
|
|
1841
|
+
if (window.amisRequire) {
|
|
1842
|
+
return window.amisRequire("moment");
|
|
1843
|
+
} else if (window.moment) {
|
|
1844
|
+
return window.moment;
|
|
1845
|
+
}
|
|
1846
|
+
};
|
|
1847
|
+
|
|
1833
1848
|
const parseSingleExpression = function (func, formData, dataPath, global, userSession = {}) {
|
|
1849
|
+
if (global) {
|
|
1850
|
+
let now = new Date();
|
|
1851
|
+
let moment = getMoment$1();
|
|
1852
|
+
let today = moment().utc();
|
|
1853
|
+
today.set("hours", 0);
|
|
1854
|
+
today.set("minutes", 0);
|
|
1855
|
+
today.set("seconds", 0);
|
|
1856
|
+
today.set("milliseconds", 0);
|
|
1857
|
+
today = today.toDate();
|
|
1858
|
+
let timeNow = moment();
|
|
1859
|
+
timeNow.set("year", 1970);
|
|
1860
|
+
timeNow.set("month", 0);
|
|
1861
|
+
timeNow.set("date", 1);
|
|
1862
|
+
timeNow.set("hours", timeNow.hours() + timeNow.utcOffset() / 60);
|
|
1863
|
+
timeNow.set("seconds", 0);
|
|
1864
|
+
timeNow.set("milliseconds", 0);
|
|
1865
|
+
timeNow = timeNow.toDate();
|
|
1866
|
+
Object.assign(global, {
|
|
1867
|
+
now,
|
|
1868
|
+
today,
|
|
1869
|
+
timeNow
|
|
1870
|
+
});
|
|
1871
|
+
}
|
|
1872
|
+
|
|
1834
1873
|
var error, funcBody, parent, parentPath, str;
|
|
1835
1874
|
|
|
1836
1875
|
if (formData === void 0) {
|
|
@@ -4390,7 +4429,8 @@ const getCopyListviewButtonSchema = ()=>{
|
|
|
4390
4429
|
"&": "${list_view}",
|
|
4391
4430
|
"name":"",
|
|
4392
4431
|
"label": i18next__default["default"].t('frontend_listview_control_clone_defaultData_label_start') + " ${list_view.label} " + i18next__default["default"].t('frontend_listview_control_clone_defaultData_label_end'),
|
|
4393
|
-
"shared":false
|
|
4432
|
+
"shared":false,
|
|
4433
|
+
"object_name": "${targetObjectName}",
|
|
4394
4434
|
},
|
|
4395
4435
|
"fieldsExtend": fieldsExtend$3(),
|
|
4396
4436
|
"fields": fields(),
|
|
@@ -6098,7 +6138,9 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
6098
6138
|
pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });
|
|
6099
6139
|
const isAllowCreate = refObjectConfig.permissions.allowCreate;
|
|
6100
6140
|
const isCreate = ___namespace.isBoolean(field.create) ? field.create : true;
|
|
6101
|
-
|
|
6141
|
+
// lookup字段配置过滤条件就强制不显示新建按钮
|
|
6142
|
+
let isHasFilters = (field.filters || field._filtersFunction) ? true : false;
|
|
6143
|
+
if (isAllowCreate && isCreate && !isHasFilters) {
|
|
6102
6144
|
const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
|
|
6103
6145
|
new_button.align = "right";
|
|
6104
6146
|
// 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后
|
|
@@ -6472,10 +6514,10 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
6472
6514
|
|
|
6473
6515
|
const refObject = await getUISchema(referenceTo.objectName);
|
|
6474
6516
|
|
|
6475
|
-
//
|
|
6476
|
-
|
|
6477
|
-
//
|
|
6478
|
-
if(
|
|
6517
|
+
// 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
|
|
6518
|
+
let enableEnhancedLookup = ___namespace.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;
|
|
6519
|
+
// 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
|
|
6520
|
+
if(enableEnhancedLookup == true){
|
|
6479
6521
|
return await lookupToAmisPicker(field, readonly, ctx);
|
|
6480
6522
|
}else if(refObject.enable_tree) {
|
|
6481
6523
|
return await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
|
|
@@ -6792,8 +6834,8 @@ function getAmisStaticFieldType(type, readonly, options){
|
|
|
6792
6834
|
/*
|
|
6793
6835
|
* @Author: baozhoutao@steedos.com
|
|
6794
6836
|
* @Date: 2022-10-28 14:15:09
|
|
6795
|
-
* @LastEditors:
|
|
6796
|
-
* @LastEditTime:
|
|
6837
|
+
* @LastEditors: liaodaxue
|
|
6838
|
+
* @LastEditTime: 2023-10-30 17:51:54
|
|
6797
6839
|
* @Description:
|
|
6798
6840
|
*/
|
|
6799
6841
|
|
|
@@ -6844,11 +6886,26 @@ const getAmisFileEditSchema = (steedosField)=>{
|
|
|
6844
6886
|
useChunk: false, // 关闭分块上传
|
|
6845
6887
|
receiver: {
|
|
6846
6888
|
method: "post",
|
|
6889
|
+
dataType: "form-data",
|
|
6847
6890
|
url: `\${context.rootUrl}/s3/${tableName}`,
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
6891
|
+
requestAdaptor: `
|
|
6892
|
+
const { _master, global,context } = api.body;
|
|
6893
|
+
// const { recordId, objectName } = _master;
|
|
6894
|
+
const { spaceId, userId, user } = global;
|
|
6895
|
+
/*
|
|
6896
|
+
record_id: recordId,
|
|
6897
|
+
parent: recordId,
|
|
6898
|
+
object_name: objectName,
|
|
6899
|
+
owner_name: user.name,
|
|
6900
|
+
space: spaceId,
|
|
6901
|
+
owner: userId
|
|
6902
|
+
*/
|
|
6903
|
+
// 参考platform 2.2版本,附件字段保存时cfs.files.filerecord、cfs.images.filerecord表中的metadata下只保存space、owner两个属性值。
|
|
6904
|
+
api.data.append('space', spaceId);
|
|
6905
|
+
api.data.append('owner', userId);
|
|
6906
|
+
|
|
6907
|
+
return api;
|
|
6908
|
+
`,
|
|
6852
6909
|
adaptor: `
|
|
6853
6910
|
const { context } = api.body;
|
|
6854
6911
|
var rootUrl = context.rootUrl + "/api/files/${tableName}/";
|
|
@@ -7712,8 +7769,44 @@ var config = {
|
|
|
7712
7769
|
};
|
|
7713
7770
|
|
|
7714
7771
|
async function getQuickEditSchema(field, options){
|
|
7772
|
+
//判断在amis3.2以上环境下,放开批量编辑
|
|
7773
|
+
const isAmisVersionforBatchEdit = amisRequire('amis').version[0] >= 3 && amisRequire('amis').version[2] >= 2;
|
|
7715
7774
|
const quickEditId = options.objectName + "_" + field.name + "QuickEdit";//定义快速编辑的表单id,用于setvalue传值
|
|
7716
7775
|
var quickEditSchema = { body: [], id: quickEditId };
|
|
7776
|
+
//select,avatar,image,file等组件无法行记录字段赋值,暂不支持批量编辑;
|
|
7777
|
+
if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){
|
|
7778
|
+
const submitEvent = {
|
|
7779
|
+
submit: {
|
|
7780
|
+
actions: [
|
|
7781
|
+
{
|
|
7782
|
+
actionType: "custom",
|
|
7783
|
+
script: `
|
|
7784
|
+
const items = event.data.items;
|
|
7785
|
+
const selectedItems = event.data.selectedItems;
|
|
7786
|
+
if(event.data.isBatchEdit){
|
|
7787
|
+
selectedItems.forEach(function(selectedItem){
|
|
7788
|
+
items[selectedItem._index-1]._display.${field.name} = event.data._display.${field.name};
|
|
7789
|
+
})
|
|
7790
|
+
doAction({actionType: 'setValue', "args": {"value": {items}},componentId: "${options.crudId}","dataMergeMode": "override"});
|
|
7791
|
+
selectedItems.forEach(function(selectedItem){
|
|
7792
|
+
doAction({actionType: 'setValue', "args": {"value": event.data.${field.name}},componentId: "${options.objectName + "_" + field.name + "_"}" + selectedItem._index});
|
|
7793
|
+
})
|
|
7794
|
+
}else{
|
|
7795
|
+
items[event.data._index-1]._display.${field.name} = event.data._display.${field.name};
|
|
7796
|
+
doAction({actionType: 'setValue', "args": {"value": {items}},componentId: "${options.crudId}","dataMergeMode": "override"});
|
|
7797
|
+
doAction({actionType: 'setValue', "args": {"value": event.data.${field.name}},componentId: "${options.objectName + "_" + field.name + "_"}" + event.data._index});
|
|
7798
|
+
}
|
|
7799
|
+
`
|
|
7800
|
+
},
|
|
7801
|
+
{
|
|
7802
|
+
"actionType": "closeDialog"
|
|
7803
|
+
}
|
|
7804
|
+
]
|
|
7805
|
+
}
|
|
7806
|
+
};
|
|
7807
|
+
quickEditSchema.onEvent = submitEvent;
|
|
7808
|
+
}
|
|
7809
|
+
|
|
7717
7810
|
if (field.disabled) {
|
|
7718
7811
|
quickEditSchema = false;
|
|
7719
7812
|
} else {
|
|
@@ -7947,6 +8040,14 @@ async function getQuickEditSchema(field, options){
|
|
|
7947
8040
|
}
|
|
7948
8041
|
|
|
7949
8042
|
});
|
|
8043
|
+
if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){
|
|
8044
|
+
quickEditSchema.body.push({
|
|
8045
|
+
"name": "isBatchEdit",
|
|
8046
|
+
"type": "checkbox",
|
|
8047
|
+
"option": "更新${COUNT(selectedItems)}个选定记录",
|
|
8048
|
+
"visibleOn": "${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1}"
|
|
8049
|
+
});
|
|
8050
|
+
}
|
|
7950
8051
|
} else {
|
|
7951
8052
|
quickEditSchema = false;
|
|
7952
8053
|
}
|
|
@@ -8012,7 +8113,7 @@ async function getTableColumns(fields, options){
|
|
|
8012
8113
|
{
|
|
8013
8114
|
"args": {
|
|
8014
8115
|
"api": {
|
|
8015
|
-
"url": "${context.rootUrl
|
|
8116
|
+
"url": "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}",
|
|
8016
8117
|
"method": "get",
|
|
8017
8118
|
"headers": {
|
|
8018
8119
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
@@ -8059,7 +8160,7 @@ async function getTableColumns(fields, options){
|
|
|
8059
8160
|
else if(field.type === 'select'){
|
|
8060
8161
|
const map = getSelectMap(field.options);
|
|
8061
8162
|
columnItem = Object.assign({}, {
|
|
8062
|
-
type: "mapping",
|
|
8163
|
+
type: "static-mapping",
|
|
8063
8164
|
name: field.name,
|
|
8064
8165
|
label: field.label,
|
|
8065
8166
|
map: map,
|
|
@@ -8074,7 +8175,7 @@ async function getTableColumns(fields, options){
|
|
|
8074
8175
|
const tpl = await getFieldTpl(field, options);
|
|
8075
8176
|
let type = 'text';
|
|
8076
8177
|
if(tpl){
|
|
8077
|
-
type = '
|
|
8178
|
+
type = 'static';
|
|
8078
8179
|
}else if(field.type === 'html'){
|
|
8079
8180
|
type = 'markdown';
|
|
8080
8181
|
}else if(field.type === 'url'){
|
|
@@ -8115,6 +8216,7 @@ async function getTableColumns(fields, options){
|
|
|
8115
8216
|
columnItem.quickEdit = quickEditSchema;
|
|
8116
8217
|
columnItem.quickEditEnabledOn = "${is_system !== true}";
|
|
8117
8218
|
}
|
|
8219
|
+
columnItem.id = `${options.objectName}_${field.name}_\${_index}`;
|
|
8118
8220
|
columns.push(columnItem);
|
|
8119
8221
|
}
|
|
8120
8222
|
}
|
|
@@ -8492,6 +8594,7 @@ async function getTableSchema$1(fields, options){
|
|
|
8492
8594
|
}
|
|
8493
8595
|
return {
|
|
8494
8596
|
mode: "cards",
|
|
8597
|
+
perPageAvailable: [5, 10, 20, 50, 100, 500],
|
|
8495
8598
|
name: "thelist",
|
|
8496
8599
|
headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
|
|
8497
8600
|
className: "",
|
|
@@ -8514,6 +8617,7 @@ async function getTableSchema$1(fields, options){
|
|
|
8514
8617
|
|
|
8515
8618
|
return {
|
|
8516
8619
|
mode: "table",
|
|
8620
|
+
perPageAvailable: [5, 10, 20, 50, 100, 500],
|
|
8517
8621
|
name: "thelist",
|
|
8518
8622
|
headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
|
|
8519
8623
|
className: "",
|
|
@@ -9148,7 +9252,7 @@ async function getEditFormInitApi(object, recordId, fields, options){
|
|
|
9148
9252
|
${getScriptForRewriteValueForFileFields(fields)}
|
|
9149
9253
|
|
|
9150
9254
|
_.each(dataKeys, function(key){
|
|
9151
|
-
if(fieldKeys.indexOf(key)<0){
|
|
9255
|
+
if(fieldKeys.indexOf(key)<0 && key !== "_display"){
|
|
9152
9256
|
delete data[key];
|
|
9153
9257
|
}
|
|
9154
9258
|
})
|
|
@@ -10324,7 +10428,8 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
10324
10428
|
}
|
|
10325
10429
|
let tableOptions = Object.assign({
|
|
10326
10430
|
idFieldName: objectSchema.idFieldName, labelFieldName: labelFieldName,
|
|
10327
|
-
permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit
|
|
10431
|
+
permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit,
|
|
10432
|
+
crudId: listSchema.id || id
|
|
10328
10433
|
}, options);
|
|
10329
10434
|
tableOptions.amisData = createObject(options.amisData || {}, {});
|
|
10330
10435
|
const table = await getTableSchema$1(fields, tableOptions);
|
|
@@ -10488,8 +10593,29 @@ const getFormFields = (objectSchema, formProps)=>{
|
|
|
10488
10593
|
return lodash.sortBy(___default["default"].values(fields), "sort_no");
|
|
10489
10594
|
};
|
|
10490
10595
|
|
|
10596
|
+
async function getFormSchemaWithDataFilter(form, options = {}){
|
|
10597
|
+
const { formDataFilter, amisData, env } = options;
|
|
10598
|
+
let onFormDataFilter = options.onFormDataFilter;
|
|
10599
|
+
if (!onFormDataFilter && typeof formDataFilter === 'string') {
|
|
10600
|
+
onFormDataFilter = new Function(
|
|
10601
|
+
'form',
|
|
10602
|
+
'env',
|
|
10603
|
+
'data',
|
|
10604
|
+
formDataFilter
|
|
10605
|
+
);
|
|
10606
|
+
}
|
|
10607
|
+
|
|
10608
|
+
try {
|
|
10609
|
+
onFormDataFilter && (form = await onFormDataFilter(form, env, amisData) || form);
|
|
10610
|
+
} catch (e) {
|
|
10611
|
+
console.warn(e);
|
|
10612
|
+
}
|
|
10613
|
+
return form;
|
|
10614
|
+
}
|
|
10615
|
+
|
|
10491
10616
|
async function getObjectForm(objectSchema, ctx){
|
|
10492
|
-
const { recordId, formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign, tabId, appId, defaults, submitSuccActions = []
|
|
10617
|
+
const { recordId, formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign, tabId, appId, defaults, submitSuccActions = [],
|
|
10618
|
+
formDataFilter, onFormDataFilter, amisData, env } = ctx;
|
|
10493
10619
|
const fields = ___default["default"].values(objectSchema.fields);
|
|
10494
10620
|
const formFields = getFormFields(objectSchema, ctx);
|
|
10495
10621
|
const formSchema = defaults && defaults.formSchema || {};
|
|
@@ -10506,7 +10632,8 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
10506
10632
|
name: `page_edit_${recordId}`,
|
|
10507
10633
|
api: await getEditFormInitApi(objectSchema, recordId, fields, ctx),
|
|
10508
10634
|
data:{
|
|
10509
|
-
editFormInited: false
|
|
10635
|
+
editFormInited: false,
|
|
10636
|
+
...amisData
|
|
10510
10637
|
},
|
|
10511
10638
|
// data: {global: getGlobalData('edit'), recordId: recordId, objectName: objectSchema.name, context: {rootUrl: getRootUrl(), tenantId: getTenantId(), authToken: getAuthToken()}},
|
|
10512
10639
|
initApi: null,
|
|
@@ -10573,15 +10700,17 @@ async function getObjectForm(objectSchema, ctx){
|
|
|
10573
10700
|
}
|
|
10574
10701
|
})]
|
|
10575
10702
|
};
|
|
10703
|
+
amisSchema.body[0] = await getFormSchemaWithDataFilter(amisSchema.body[0], { formDataFilter, onFormDataFilter, amisData, env });
|
|
10576
10704
|
return amisSchema;
|
|
10577
10705
|
}
|
|
10578
10706
|
|
|
10579
10707
|
async function getObjectDetail(objectSchema, recordId, ctx){
|
|
10580
|
-
const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign
|
|
10708
|
+
const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign,
|
|
10709
|
+
formDataFilter, onFormDataFilter, amisData, env } = ctx;
|
|
10581
10710
|
const fields = ___default["default"].values(objectSchema.fields);
|
|
10582
10711
|
const formFields = getFormFields(objectSchema, ctx);
|
|
10583
10712
|
const serviceId = `service_detail_page`;
|
|
10584
|
-
|
|
10713
|
+
const amisSchema = {
|
|
10585
10714
|
type: 'service',
|
|
10586
10715
|
name: `page_readonly_${recordId}`,
|
|
10587
10716
|
id: serviceId,
|
|
@@ -10663,7 +10792,10 @@ async function getObjectDetail(objectSchema, recordId, ctx){
|
|
|
10663
10792
|
]
|
|
10664
10793
|
}
|
|
10665
10794
|
}
|
|
10666
|
-
}
|
|
10795
|
+
};
|
|
10796
|
+
|
|
10797
|
+
amisSchema.body[0].body = await getFormSchemaWithDataFilter(amisSchema.body[0].body, { formDataFilter, onFormDataFilter, amisData, env });
|
|
10798
|
+
return amisSchema;
|
|
10667
10799
|
}
|
|
10668
10800
|
|
|
10669
10801
|
/*
|