@steedos-widgets/amis-lib 1.2.26 → 1.2.28
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 +96 -30
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +96 -30
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +96 -30
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/buttons.d.ts +3 -4
- package/dist/types/lib/converter/amis/fields/editor.d.ts +10 -8
- package/dist/types/lib/converter/amis/header.d.ts +18 -8
- package/dist/types/lib/converter/amis/index.d.ts +1 -0
- package/dist/types/lib/objects.d.ts +2 -2
- package/dist/types/lib/page_init.d.ts +1 -0
- package/dist/types/schema/standard_edit.amis.d.ts +9 -0
- package/dist/types/schema/standard_import_data.amis.d.ts +3 -0
- package/dist/types/schema/standard_new.amis.d.ts +9 -0
- package/dist/types/standard/button.d.ts +21 -0
- package/package.json +2 -2
package/dist/index.umd.js
CHANGED
|
@@ -671,6 +671,10 @@
|
|
|
671
671
|
if(_$1.includes(['percent','time','filesize','date','datetime','boolean','number','currency', 'select', 'file', 'image', 'avatar', 'formula', 'summary', 'object', 'grid'], field.type)){
|
|
672
672
|
displayFields.push(`${field.name}`);
|
|
673
673
|
}
|
|
674
|
+
}else {
|
|
675
|
+
objectFieldName = field.name.split('.')[0];
|
|
676
|
+
fieldsName.push(objectFieldName);
|
|
677
|
+
displayFields.push(objectFieldName);
|
|
674
678
|
}
|
|
675
679
|
}
|
|
676
680
|
|
|
@@ -1751,8 +1755,8 @@
|
|
|
1751
1755
|
/*
|
|
1752
1756
|
* @Author: baozhoutao@steedos.com
|
|
1753
1757
|
* @Date: 2022-11-01 15:51:00
|
|
1754
|
-
* @LastEditors:
|
|
1755
|
-
* @LastEditTime: 2023-06-
|
|
1758
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
1759
|
+
* @LastEditTime: 2023-06-28 23:19:41
|
|
1756
1760
|
* @Description:
|
|
1757
1761
|
*/
|
|
1758
1762
|
|
|
@@ -1803,6 +1807,16 @@
|
|
|
1803
1807
|
return {
|
|
1804
1808
|
data: formSchema
|
|
1805
1809
|
};
|
|
1810
|
+
`;
|
|
1811
|
+
const onDialogCancelScript = `
|
|
1812
|
+
// 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口
|
|
1813
|
+
// 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击新建按钮的时候异常
|
|
1814
|
+
setTimeout(function(){
|
|
1815
|
+
doAction({
|
|
1816
|
+
"actionType": "cancel",
|
|
1817
|
+
"componentId": "object_actions_drawer_${uiSchema.name}"
|
|
1818
|
+
});
|
|
1819
|
+
}, 200);
|
|
1806
1820
|
`;
|
|
1807
1821
|
return {
|
|
1808
1822
|
"type": "service",
|
|
@@ -1864,6 +1878,17 @@
|
|
|
1864
1878
|
"closeOnEsc": false,
|
|
1865
1879
|
"closeOnOutside": false,
|
|
1866
1880
|
"size": "lg",
|
|
1881
|
+
"onEvent": {
|
|
1882
|
+
"cancel": {
|
|
1883
|
+
"actions": [
|
|
1884
|
+
{
|
|
1885
|
+
"actionType": "custom",
|
|
1886
|
+
"script": onDialogCancelScript,
|
|
1887
|
+
"expression": "${window:innerWidth < 768}",
|
|
1888
|
+
}
|
|
1889
|
+
]
|
|
1890
|
+
}
|
|
1891
|
+
},
|
|
1867
1892
|
"actions": [
|
|
1868
1893
|
{
|
|
1869
1894
|
type: 'button',
|
|
@@ -1926,7 +1951,7 @@
|
|
|
1926
1951
|
* @Author: baozhoutao@steedos.com
|
|
1927
1952
|
* @Date: 2022-11-01 15:49:58
|
|
1928
1953
|
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
1929
|
-
* @LastEditTime: 2023-
|
|
1954
|
+
* @LastEditTime: 2023-06-28 23:22:31
|
|
1930
1955
|
* @Description:
|
|
1931
1956
|
*/
|
|
1932
1957
|
|
|
@@ -1955,6 +1980,17 @@
|
|
|
1955
1980
|
? JSON.parse(page.schema)
|
|
1956
1981
|
: page.schema;
|
|
1957
1982
|
}
|
|
1983
|
+
|
|
1984
|
+
const onDialogCancelScript = `
|
|
1985
|
+
// 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口
|
|
1986
|
+
// 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击编辑按钮的时候异常
|
|
1987
|
+
setTimeout(function(){
|
|
1988
|
+
doAction({
|
|
1989
|
+
"actionType": "cancel",
|
|
1990
|
+
"componentId": "object_actions_drawer_${uiSchema.name}"
|
|
1991
|
+
});
|
|
1992
|
+
}, 200);
|
|
1993
|
+
`;
|
|
1958
1994
|
|
|
1959
1995
|
return {
|
|
1960
1996
|
type: "service",
|
|
@@ -1978,6 +2014,17 @@
|
|
|
1978
2014
|
closeOnOutside: false,
|
|
1979
2015
|
showCloseButton: true,
|
|
1980
2016
|
size: "lg",
|
|
2017
|
+
"onEvent": {
|
|
2018
|
+
"cancel": {
|
|
2019
|
+
"actions": [
|
|
2020
|
+
{
|
|
2021
|
+
"actionType": "custom",
|
|
2022
|
+
"script": onDialogCancelScript,
|
|
2023
|
+
"expression": "${window:innerWidth < 768}",
|
|
2024
|
+
}
|
|
2025
|
+
]
|
|
2026
|
+
}
|
|
2027
|
+
},
|
|
1981
2028
|
},
|
|
1982
2029
|
},
|
|
1983
2030
|
],
|
|
@@ -2274,6 +2321,7 @@
|
|
|
2274
2321
|
label: i18next__default["default"].t('frontend_import_data_file'),
|
|
2275
2322
|
required: true,
|
|
2276
2323
|
type: "input-file",
|
|
2324
|
+
accept: ".xlsx,.xls",
|
|
2277
2325
|
className: "m-1",
|
|
2278
2326
|
labelClassName: "text-left",
|
|
2279
2327
|
clearValueOnHidden: true,
|
|
@@ -2938,6 +2986,7 @@
|
|
|
2938
2986
|
"drawer": {
|
|
2939
2987
|
"type": "drawer",
|
|
2940
2988
|
"title": "操作",
|
|
2989
|
+
"id": "object_actions_drawer_" + objectSchema.name,
|
|
2941
2990
|
"body": [
|
|
2942
2991
|
{
|
|
2943
2992
|
"type": "button-group",
|
|
@@ -2960,7 +3009,6 @@
|
|
|
2960
3009
|
"size": "lg"
|
|
2961
3010
|
}
|
|
2962
3011
|
],
|
|
2963
|
-
"id": "u:9815f7366b9f",
|
|
2964
3012
|
"position": "bottom",
|
|
2965
3013
|
"closeOnOutside": true,
|
|
2966
3014
|
"resizable": false,
|
|
@@ -2971,8 +3019,7 @@
|
|
|
2971
3019
|
}
|
|
2972
3020
|
]
|
|
2973
3021
|
}
|
|
2974
|
-
}
|
|
2975
|
-
"id": "u:ee7c7929e6ae"
|
|
3022
|
+
}
|
|
2976
3023
|
}
|
|
2977
3024
|
}else {
|
|
2978
3025
|
if(moreButtons.length > 0){
|
|
@@ -3004,6 +3051,7 @@
|
|
|
3004
3051
|
"drawer": {
|
|
3005
3052
|
"type": "drawer",
|
|
3006
3053
|
"title": "操作",
|
|
3054
|
+
"id": "object_actions_drawer_" + objectSchema.name,
|
|
3007
3055
|
"body": [
|
|
3008
3056
|
{
|
|
3009
3057
|
"type": "button-group",
|
|
@@ -3027,7 +3075,6 @@
|
|
|
3027
3075
|
"size": "lg"
|
|
3028
3076
|
}
|
|
3029
3077
|
],
|
|
3030
|
-
"id": "u:9815f7366b9f",
|
|
3031
3078
|
"position": "bottom",
|
|
3032
3079
|
"closeOnOutside": true,
|
|
3033
3080
|
"resizable": false,
|
|
@@ -3038,8 +3085,7 @@
|
|
|
3038
3085
|
}
|
|
3039
3086
|
]
|
|
3040
3087
|
}
|
|
3041
|
-
}
|
|
3042
|
-
"id": "u:ee7c7929e6ae"
|
|
3088
|
+
}
|
|
3043
3089
|
}
|
|
3044
3090
|
}else {
|
|
3045
3091
|
return ___default["default"].map(buttons, (button) => {
|
|
@@ -3068,6 +3114,7 @@
|
|
|
3068
3114
|
"drawer": {
|
|
3069
3115
|
"type": "drawer",
|
|
3070
3116
|
"title": "操作",
|
|
3117
|
+
"id": "object_actions_drawer_" + objectSchema.name,
|
|
3071
3118
|
"body": [
|
|
3072
3119
|
{
|
|
3073
3120
|
"type": "button-group",
|
|
@@ -5644,6 +5691,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5644
5691
|
const fieldsArr = [];
|
|
5645
5692
|
|
|
5646
5693
|
const listName = "all";
|
|
5694
|
+
|
|
5695
|
+
const isMobile = window.innerWidth < 768;
|
|
5647
5696
|
|
|
5648
5697
|
const listView = ___namespace.find(
|
|
5649
5698
|
refObjectConfig.list_views,
|
|
@@ -5720,6 +5769,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5720
5769
|
|
|
5721
5770
|
source.data.$term = "$term";
|
|
5722
5771
|
source.data.$self = "$$";
|
|
5772
|
+
|
|
5723
5773
|
|
|
5724
5774
|
source.requestAdaptor = `
|
|
5725
5775
|
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
@@ -5755,6 +5805,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5755
5805
|
}
|
|
5756
5806
|
}
|
|
5757
5807
|
|
|
5808
|
+
|
|
5758
5809
|
if(allowSearchFields){
|
|
5759
5810
|
allowSearchFields.forEach(function(key){
|
|
5760
5811
|
const keyValue = selfData[key];
|
|
@@ -5870,7 +5921,6 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5870
5921
|
pickerSchema.affixHeader = false;
|
|
5871
5922
|
|
|
5872
5923
|
var headerToolbarItems = [];
|
|
5873
|
-
const isMobile = window.innerWidth < 768;
|
|
5874
5924
|
if(referenceTo.objectName === "space_users" && field.reference_to_field === "user" && !isMobile){
|
|
5875
5925
|
headerToolbarItems = getLookupSapceUserTreeSchema();
|
|
5876
5926
|
pickerSchema["style"] = {
|
|
@@ -5951,7 +6001,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
5951
6001
|
}
|
|
5952
6002
|
|
|
5953
6003
|
const ctx = ${JSON.stringify(ctx)};
|
|
5954
|
-
const componentId = ctx.defaults.formSchema.id
|
|
6004
|
+
const componentId = ctx.defaults.formSchema.id;
|
|
5955
6005
|
doAction({
|
|
5956
6006
|
actionType: 'setValue',
|
|
5957
6007
|
componentId: componentId,
|
|
@@ -6205,6 +6255,11 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
6205
6255
|
// ids人员点选模式
|
|
6206
6256
|
return await lookupToAmisIdsPicker(field, readonly, ctx);
|
|
6207
6257
|
}
|
|
6258
|
+
if(!field.filters || field.filters.length == 0){
|
|
6259
|
+
field.filters = [["user_accepted", "=", true]];
|
|
6260
|
+
}else {
|
|
6261
|
+
field.filters = [ ["user_accepted", "=", true], "and", field.filters ];
|
|
6262
|
+
}
|
|
6208
6263
|
// 左侧树右侧人员列表的下拉框模式,不再支持,而是执行下面的lookupToAmisPicker函数弹出选人窗口
|
|
6209
6264
|
// return await lookupToAmisSelectUser(field, readonly, ctx);
|
|
6210
6265
|
}
|
|
@@ -6345,7 +6400,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
6345
6400
|
* @Author: baozhoutao@steedos.com
|
|
6346
6401
|
* @Date: 2023-01-13 17:27:54
|
|
6347
6402
|
* @LastEditors: liaodaxue
|
|
6348
|
-
* @LastEditTime: 2023-06-
|
|
6403
|
+
* @LastEditTime: 2023-06-30 10:29:52
|
|
6349
6404
|
* @Description:
|
|
6350
6405
|
*/
|
|
6351
6406
|
|
|
@@ -6353,12 +6408,16 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
6353
6408
|
const getMarkdownFieldSchema = (field, readonly, ctx)=>{
|
|
6354
6409
|
if(readonly){
|
|
6355
6410
|
return {
|
|
6356
|
-
"type": "
|
|
6357
|
-
"
|
|
6358
|
-
"
|
|
6359
|
-
|
|
6360
|
-
|
|
6361
|
-
|
|
6411
|
+
"type": "control",
|
|
6412
|
+
"label": field.label,
|
|
6413
|
+
"body": {
|
|
6414
|
+
"type": "markdown",
|
|
6415
|
+
"name": field.name,
|
|
6416
|
+
"options": {
|
|
6417
|
+
"linkify": true,
|
|
6418
|
+
"html": true,
|
|
6419
|
+
"breaks": true
|
|
6420
|
+
}
|
|
6362
6421
|
}
|
|
6363
6422
|
}
|
|
6364
6423
|
}else {
|
|
@@ -7439,6 +7498,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
7439
7498
|
async function getTableColumns(fields, options){
|
|
7440
7499
|
const columns = [{name: '_index',type: 'text', width: 32, placeholder: ""}];
|
|
7441
7500
|
const allowEdit = options.permissions?.allowEdit && options.permissions?.modifyAllRecords && !options.isLookup && options.enable_inline_edit != false;
|
|
7501
|
+
const defaultWidth = "unset";//用于使table内的td标签下生成div,实现将快速编辑按钮固定在右侧的效果,并不是为了unset效果
|
|
7442
7502
|
for (const field of fields) {
|
|
7443
7503
|
//增加quickEdit属性,实现快速编辑
|
|
7444
7504
|
const quickEditSchema = allowEdit ? await getQuickEditSchema(field, options) : allowEdit;
|
|
@@ -7495,7 +7555,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
7495
7555
|
type: "switch",
|
|
7496
7556
|
name: field.name,
|
|
7497
7557
|
label: field.label,
|
|
7498
|
-
width: field.width,
|
|
7558
|
+
width: field.width || defaultWidth,
|
|
7499
7559
|
toggled: field.toggled,
|
|
7500
7560
|
quickEdit: quickEditSchema,
|
|
7501
7561
|
className:"whitespace-nowrap",
|
|
@@ -7510,7 +7570,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
7510
7570
|
label: field.label,
|
|
7511
7571
|
map: map,
|
|
7512
7572
|
sortable: field.sortable,
|
|
7513
|
-
width: field.width,
|
|
7573
|
+
width: field.width || defaultWidth,
|
|
7514
7574
|
toggled: field.toggled,
|
|
7515
7575
|
className:"whitespace-nowrap",
|
|
7516
7576
|
quickEdit: quickEditSchema
|
|
@@ -7539,7 +7599,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
7539
7599
|
label: field.label,
|
|
7540
7600
|
sortable: field.sortable,
|
|
7541
7601
|
// searchable: field.searchable,
|
|
7542
|
-
width: field.width,
|
|
7602
|
+
width: field.width || defaultWidth,
|
|
7543
7603
|
type: type,
|
|
7544
7604
|
tpl: tpl,
|
|
7545
7605
|
toggled: field.toggled,
|
|
@@ -7946,6 +8006,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
7946
8006
|
let valueField = mainObject.key_field || '_id';
|
|
7947
8007
|
const api = await getApi(mainObject, null, fields, {count: options.queryCount, alias: 'rows', limit: top, queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"`});
|
|
7948
8008
|
|
|
8009
|
+
api.url += "&objectName=${objectName}";//设计器上对象表格组件需要切换对象重新请求列表数据
|
|
7949
8010
|
if(options.isRelated){
|
|
7950
8011
|
api.url += "&recordId=${_master.recordId}";
|
|
7951
8012
|
}
|
|
@@ -8275,12 +8336,18 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
8275
8336
|
// }
|
|
8276
8337
|
// })
|
|
8277
8338
|
|
|
8339
|
+
var fieldNames = ___namespace.map(fields, function(n){return n.name});
|
|
8278
8340
|
return `
|
|
8279
8341
|
if(payload.data.data.length === 0){
|
|
8280
8342
|
var isEditor = !!${options && options.isEditor};
|
|
8281
8343
|
if(isEditor){
|
|
8344
|
+
var fieldNames = ${JSON.stringify(fieldNames)};
|
|
8345
|
+
var emptyDoc = {};//这里如果不把每个字段值设置为空的话,表单上会显示上一次表单上的字段值
|
|
8346
|
+
fieldNames.forEach(function(n){
|
|
8347
|
+
emptyDoc[n] = null;
|
|
8348
|
+
});
|
|
8282
8349
|
// 设计器中始终显示表单,有记录则显示第一条记录,没记录时显示为空表单
|
|
8283
|
-
payload.data.data = [
|
|
8350
|
+
payload.data.data = [emptyDoc];
|
|
8284
8351
|
}
|
|
8285
8352
|
else{
|
|
8286
8353
|
return {
|
|
@@ -9084,8 +9151,8 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
9084
9151
|
/*
|
|
9085
9152
|
* @Author: baozhoutao@steedos.com
|
|
9086
9153
|
* @Date: 2022-05-26 16:02:08
|
|
9087
|
-
* @LastEditors:
|
|
9088
|
-
* @LastEditTime: 2023-06-
|
|
9154
|
+
* @LastEditors: liaodaxue
|
|
9155
|
+
* @LastEditTime: 2023-06-29 17:27:19
|
|
9089
9156
|
* @Description:
|
|
9090
9157
|
*/
|
|
9091
9158
|
|
|
@@ -9179,7 +9246,7 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
9179
9246
|
const section = await getSection(formFields, permissionFields, fieldSchemaArray, key, ctx);
|
|
9180
9247
|
if (section.body.length > 0) {
|
|
9181
9248
|
if (section.visibleOn) {
|
|
9182
|
-
sectionVisibleOns.push(section.visibleOn);
|
|
9249
|
+
sectionVisibleOns.push("("+section.visibleOn+")");
|
|
9183
9250
|
}
|
|
9184
9251
|
else {
|
|
9185
9252
|
sectionVisibleOns.push("true");
|
|
@@ -9517,8 +9584,12 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
9517
9584
|
if(___default["default"].has(formSchema, 'className')){
|
|
9518
9585
|
formSchema.className = 'steedos-amis-form';
|
|
9519
9586
|
}
|
|
9587
|
+
if(!formSchema.id){
|
|
9588
|
+
formSchema.id = 'form_' + objectSchema.name;
|
|
9589
|
+
}
|
|
9520
9590
|
const amisSchema = {
|
|
9521
9591
|
type: 'service',
|
|
9592
|
+
id: `service_${formSchema.id}`,
|
|
9522
9593
|
className: 'p-0',
|
|
9523
9594
|
name: `page_edit_${recordId}`,
|
|
9524
9595
|
api: await getEditFormInitApi(objectSchema, recordId, fields, ctx),
|
|
@@ -9589,11 +9660,6 @@ crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
|
9589
9660
|
}
|
|
9590
9661
|
})]
|
|
9591
9662
|
};
|
|
9592
|
-
if(formSchema.id){
|
|
9593
|
-
amisSchema.id = `service-${formSchema.id}`;
|
|
9594
|
-
}else {
|
|
9595
|
-
amisSchema.id = `new-${objectSchema.name}`;
|
|
9596
|
-
}
|
|
9597
9663
|
return amisSchema;
|
|
9598
9664
|
}
|
|
9599
9665
|
|