@steedos-widgets/amis-object 1.3.1 → 1.3.2-beta.3
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/amis-object.cjs.js +94 -54
- package/dist/amis-object.cjs.js.map +1 -1
- package/dist/amis-object.esm.js +95 -55
- package/dist/amis-object.esm.js.map +1 -1
- package/dist/amis-object.umd.js +58 -56
- package/dist/amis-object.umd.js.map +1 -1
- package/dist/assets.json +16 -16
- package/dist/pages/PageRecordDetail.d.ts +8 -0
- package/package.json +3 -3
package/dist/amis-object.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { createContext, useState, useEffect, createElement } from 'react';
|
|
2
2
|
import * as _$1 from 'lodash';
|
|
3
|
-
import _$1__default, { isEmpty, isArray, each, find, endsWith, cloneDeep, includes, toArray, mergeWith, isString, union, has, slice, defaultsDeep as defaultsDeep$1,
|
|
3
|
+
import _$1__default, { isEmpty, isArray, each, find, endsWith, cloneDeep, includes, toArray, mergeWith, isString, union, has, slice, defaultsDeep as defaultsDeep$1, map, filter, get as get$1, isBoolean, omitBy, isNil, isObject as isObject$1, forEach, trimEnd, startsWith, isFunction, compact, difference, keys, pick, first, values, pickBy, random, assign } from 'lodash';
|
|
4
4
|
import { Dropdown, Tabs, Spin, Badge, Skeleton, Modal as Modal$1, message, notification, Button, Space, Drawer as Drawer$1 } from 'antd';
|
|
5
5
|
import ReactDOM, { createRoot } from 'react-dom';
|
|
6
6
|
|
|
@@ -3523,11 +3523,26 @@ const Router$1 = {
|
|
|
3523
3523
|
/*
|
|
3524
3524
|
* @Author: baozhoutao@steedos.com
|
|
3525
3525
|
* @Date: 2022-07-20 16:29:22
|
|
3526
|
-
* @LastEditors:
|
|
3527
|
-
* @LastEditTime: 2023-09-
|
|
3526
|
+
* @LastEditors: liaodaxue
|
|
3527
|
+
* @LastEditTime: 2023-09-11 17:19:53
|
|
3528
3528
|
* @Description:
|
|
3529
3529
|
*/
|
|
3530
3530
|
|
|
3531
|
+
function getImageFieldUrl(url) {
|
|
3532
|
+
if (window.Meteor && window.Meteor.isCordova != true) {
|
|
3533
|
+
// '//'的位置
|
|
3534
|
+
const doubleSlashIndex = url.indexOf('//');
|
|
3535
|
+
const urlIndex = url.indexOf('/', doubleSlashIndex + 2);
|
|
3536
|
+
const rootUrl = url.substring(urlIndex);
|
|
3537
|
+
return rootUrl;
|
|
3538
|
+
}
|
|
3539
|
+
return url;
|
|
3540
|
+
}
|
|
3541
|
+
|
|
3542
|
+
if(typeof window != 'undefined'){
|
|
3543
|
+
window.getImageFieldUrl = getImageFieldUrl;
|
|
3544
|
+
}
|
|
3545
|
+
|
|
3531
3546
|
function getContrastColor(bgColor) {
|
|
3532
3547
|
var backgroundColor = (bgColor.charAt(0) === '#') ? bgColor.substring(1, 7) : bgColor;
|
|
3533
3548
|
var r = parseInt(backgroundColor.substr(0, 2), 16);
|
|
@@ -9093,7 +9108,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
9093
9108
|
|
|
9094
9109
|
pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });
|
|
9095
9110
|
const isAllowCreate = refObjectConfig.permissions.allowCreate;
|
|
9096
|
-
|
|
9111
|
+
const isCreate = _$1.isBoolean(field.create) ? field.create : true;
|
|
9112
|
+
if (isAllowCreate && isCreate) {
|
|
9097
9113
|
const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
|
|
9098
9114
|
new_button.align = "right";
|
|
9099
9115
|
// 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后
|
|
@@ -11689,7 +11705,13 @@ async function getTableApi(mainObject, fields, options){
|
|
|
11689
11705
|
if(field.type === 'file'){
|
|
11690
11706
|
item[key] = value
|
|
11691
11707
|
}else{
|
|
11692
|
-
item[key] = _.map(value,
|
|
11708
|
+
item[key] = _.map(value, (item)=>{
|
|
11709
|
+
if(field.type === 'image'){
|
|
11710
|
+
const url = window.getImageFieldUrl(item.url);
|
|
11711
|
+
return url;
|
|
11712
|
+
}
|
|
11713
|
+
return item.url;
|
|
11714
|
+
})
|
|
11693
11715
|
}
|
|
11694
11716
|
}
|
|
11695
11717
|
})
|
|
@@ -11931,10 +11953,14 @@ function getScriptForAddUrlPrefixForImgFields(fields){
|
|
|
11931
11953
|
let fieldProps = imgFields[item];
|
|
11932
11954
|
if(fieldProps.multiple){
|
|
11933
11955
|
if(imgFieldDisplayValue instanceof Array){
|
|
11934
|
-
data[item] = imgFieldDisplayValue.map((i)=>{
|
|
11956
|
+
data[item] = imgFieldDisplayValue.map((i)=>{
|
|
11957
|
+
const url = window.getImageFieldUrl(i.url);
|
|
11958
|
+
return url;
|
|
11959
|
+
});
|
|
11935
11960
|
}
|
|
11936
11961
|
}else{
|
|
11937
|
-
|
|
11962
|
+
const url = imgFieldDisplayValue && window.getImageFieldUrl(imgFieldDisplayValue.url);
|
|
11963
|
+
data[item] = url;
|
|
11938
11964
|
}
|
|
11939
11965
|
}
|
|
11940
11966
|
})
|
|
@@ -14095,53 +14121,34 @@ async function getListSchema(
|
|
|
14095
14121
|
};
|
|
14096
14122
|
}
|
|
14097
14123
|
|
|
14098
|
-
|
|
14099
|
-
async function getTableSchema(
|
|
14100
|
-
appName,
|
|
14101
|
-
objectName,
|
|
14102
|
-
columns,
|
|
14103
|
-
ctx = {}
|
|
14104
|
-
) {
|
|
14105
|
-
// console.time('getTableSchema', columns);
|
|
14106
|
-
const uiSchema = await getUISchema(objectName);
|
|
14107
|
-
|
|
14108
|
-
let sort = ctx.sort;
|
|
14109
|
-
if(!sort){
|
|
14110
|
-
const sortField = ctx.sortField;
|
|
14111
|
-
const sortOrder = ctx.sortOrder;
|
|
14112
|
-
if(sortField){
|
|
14113
|
-
let sortStr = sortField + ' ' + sortOrder || 'asc';
|
|
14114
|
-
sort = sortStr;
|
|
14115
|
-
}
|
|
14116
|
-
}
|
|
14117
|
-
|
|
14124
|
+
async function convertColumnsToTableFields(columns, uiSchema, ctx = {}) {
|
|
14118
14125
|
let fields = [];
|
|
14119
|
-
for(const column of columns){
|
|
14126
|
+
for (const column of columns) {
|
|
14120
14127
|
if (isString(column)) {
|
|
14121
|
-
if(column.indexOf('.') > 0){
|
|
14128
|
+
if (column.indexOf('.') > 0) {
|
|
14122
14129
|
const fieldName = column.split('.')[0];
|
|
14123
14130
|
const displayName = column.split('.')[1];
|
|
14124
14131
|
const filedInfo = uiSchema.fields[fieldName];
|
|
14125
|
-
if(filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)
|
|
14132
|
+
if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {
|
|
14126
14133
|
const rfUiSchema = await getUISchema(filedInfo.reference_to);
|
|
14127
14134
|
const rfFieldInfo = rfUiSchema.fields[displayName];
|
|
14128
|
-
fields.push(Object.assign({}, rfFieldInfo, {name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: {fieldName, displayName}}));
|
|
14135
|
+
fields.push(Object.assign({}, rfFieldInfo, { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } }, ctx));
|
|
14129
14136
|
}
|
|
14130
|
-
}else {
|
|
14131
|
-
if(uiSchema.fields[column]){
|
|
14132
|
-
fields.push(uiSchema.fields[column]);
|
|
14137
|
+
} else {
|
|
14138
|
+
if (uiSchema.fields[column]) {
|
|
14139
|
+
fields.push(Object.assign({}, uiSchema.fields[column], ctx));
|
|
14133
14140
|
}
|
|
14134
14141
|
}
|
|
14135
14142
|
} else if (isObject$1(column)) {
|
|
14136
|
-
if(column.field.indexOf('.') > 0){
|
|
14143
|
+
if (column.field.indexOf('.') > 0) {
|
|
14137
14144
|
const fieldName = column.field.split('.')[0];
|
|
14138
14145
|
const displayName = column.field.split('.')[1];
|
|
14139
14146
|
const filedInfo = uiSchema.fields[fieldName];
|
|
14140
|
-
if(filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)
|
|
14147
|
+
if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {
|
|
14141
14148
|
const rfUiSchema = await getUISchema(filedInfo.reference_to);
|
|
14142
14149
|
const rfFieldInfo = rfUiSchema.fields[displayName];
|
|
14143
|
-
fields.push(Object.assign({}, rfFieldInfo,
|
|
14144
|
-
{name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: {fieldName, displayName}},
|
|
14150
|
+
fields.push(Object.assign({}, rfFieldInfo, ctx,
|
|
14151
|
+
{ name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } },
|
|
14145
14152
|
{
|
|
14146
14153
|
width: column.width,
|
|
14147
14154
|
wrap: column.wrap, // wrap = true 是没效果的
|
|
@@ -14149,10 +14156,10 @@ async function getTableSchema(
|
|
|
14149
14156
|
}
|
|
14150
14157
|
));
|
|
14151
14158
|
}
|
|
14152
|
-
}else {
|
|
14153
|
-
if(uiSchema.fields[column.field]){
|
|
14159
|
+
} else {
|
|
14160
|
+
if (uiSchema.fields[column.field]) {
|
|
14154
14161
|
fields.push(
|
|
14155
|
-
Object.assign({}, uiSchema.fields[column.field], {
|
|
14162
|
+
Object.assign({}, uiSchema.fields[column.field], ctx, {
|
|
14156
14163
|
width: column.width,
|
|
14157
14164
|
wrap: column.wrap, // wrap = true 是没效果的
|
|
14158
14165
|
amis: column.amis
|
|
@@ -14162,17 +14169,36 @@ async function getTableSchema(
|
|
|
14162
14169
|
}
|
|
14163
14170
|
}
|
|
14164
14171
|
}
|
|
14172
|
+
return fields;
|
|
14173
|
+
}
|
|
14174
|
+
|
|
14175
|
+
// 获取对象表格
|
|
14176
|
+
async function getTableSchema(
|
|
14177
|
+
appName,
|
|
14178
|
+
objectName,
|
|
14179
|
+
columns,
|
|
14180
|
+
ctx = {}
|
|
14181
|
+
) {
|
|
14182
|
+
// console.time('getTableSchema', columns);
|
|
14183
|
+
const uiSchema = await getUISchema(objectName);
|
|
14184
|
+
|
|
14185
|
+
let sort = ctx.sort;
|
|
14186
|
+
if(!sort){
|
|
14187
|
+
const sortField = ctx.sortField;
|
|
14188
|
+
const sortOrder = ctx.sortOrder;
|
|
14189
|
+
if(sortField){
|
|
14190
|
+
let sortStr = sortField + ' ' + sortOrder || 'asc';
|
|
14191
|
+
sort = sortStr;
|
|
14192
|
+
}
|
|
14193
|
+
}
|
|
14194
|
+
|
|
14195
|
+
let fields = await convertColumnsToTableFields(columns, uiSchema);
|
|
14165
14196
|
|
|
14166
14197
|
const extraColumns = ctx.extraColumns;
|
|
14167
14198
|
|
|
14168
14199
|
if (extraColumns) {
|
|
14169
|
-
|
|
14170
|
-
|
|
14171
|
-
fields.push({ extra: true, name: column });
|
|
14172
|
-
} else if (isObject$1(column)) {
|
|
14173
|
-
fields.push({ extra: true, name: column.field });
|
|
14174
|
-
}
|
|
14175
|
-
});
|
|
14200
|
+
let extraFields = await convertColumnsToTableFields(extraColumns, uiSchema, {extra: true});
|
|
14201
|
+
fields = fields.concat(extraFields);
|
|
14176
14202
|
}
|
|
14177
14203
|
|
|
14178
14204
|
const amisSchema = await getObjectCRUD(uiSchema, fields, {
|
|
@@ -17789,6 +17815,8 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
|
|
|
17789
17815
|
return __generator(this, function (_j) {
|
|
17790
17816
|
switch (_j.label) {
|
|
17791
17817
|
case 0:
|
|
17818
|
+
// console.time('AmisObjectListView')
|
|
17819
|
+
console.log("AmisObjectListView props", props);
|
|
17792
17820
|
$schema = props.$schema, top = props.top, perPage = props.perPage, _a = props.showHeader, showHeader = _a === void 0 ? true : _a, data = props.data, defaultData = props.defaultData, _b = props.crud, crud = _b === void 0 ? {} : _b, _c = props.className, className = _c === void 0 ? "" : _c, crudClassName = props.crudClassName, _d = props.showDisplayAs, showDisplayAs = _d === void 0 ? false : _d, sideSchema = props.sideSchema, props.columnsTogglable, _f = props.filterVisible, filterVisible = _f === void 0 ? true : _f, headerToolbarItems = props.headerToolbarItems, rowClassNameExpr = props.rowClassNameExpr, _g = props.hiddenColumnOperation, hiddenColumnOperation = _g === void 0 ? false : _g;
|
|
17793
17821
|
headerSchema = props.headerSchema;
|
|
17794
17822
|
ctx = props.ctx;
|
|
@@ -17921,7 +17949,7 @@ var AmisObjectListView = function (props) { return __awaiter(void 0, void 0, voi
|
|
|
17921
17949
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
17922
17950
|
},
|
|
17923
17951
|
"requestAdaptor": "api.data={query: '{spaces__findOne(id: \"none\"){_id,name}}'};return api;",
|
|
17924
|
-
"adaptor": "\n // console.log('service listview schemaApi adaptor....', api.body); \n let { appId, objectName, defaultListName: listName, display, formFactor: defaultFormFactor} = api.body;\n if(api.body.listName){\n listName = api.body.listName;\n }\n return new Promise((resolve)=>{\n const listViewSchemaProps = ".concat(JSON.stringify(listViewSchemaProps), ";\n const formFactor = ([\"split\"].indexOf(display) > -1) ? 'SMALL': defaultFormFactor;\n listViewSchemaProps.formFactor = formFactor;\n listViewSchemaProps.displayAs = display;\n
|
|
17952
|
+
"adaptor": "\n // console.log('service listview schemaApi adaptor....', api.body); \n let { appId, objectName, defaultListName: listName, display, formFactor: defaultFormFactor} = api.body;\n if(api.body.listName){\n listName = api.body.listName;\n }\n return new Promise((resolve)=>{\n const listViewSchemaProps = ".concat(JSON.stringify(listViewSchemaProps), ";\n const formFactor = ([\"split\"].indexOf(display) > -1) ? 'SMALL': defaultFormFactor;\n listViewSchemaProps.formFactor = formFactor;\n listViewSchemaProps.displayAs = display;\n \n window.getListSchema(appId, objectName, listName, listViewSchemaProps).then((schema)=>{\n try{\n const uiSchema = schema.uiSchema;\n const listView = _.find(\n uiSchema.list_views,\n (listView, name) => {\n // \u4F20\u5165listViewName\u7A7A\u503C\u5219\u53D6\u7B2C\u4E00\u4E2A\n if(!listName){\n listName = name;\n }\n return name === listName || listView._id === listName;\n }\n );\n if(listView){\n window.Steedos && window.Steedos.setDocumentTitle && window.Steedos.setDocumentTitle({pageName: listView.label || listView.name})\n }\n }catch(e){\n console.error(e)\n }\n payload.data = schema.amisSchema;\n // console.log(\"schema================>\", schema)\n resolve(payload)\n });\n });\n ")
|
|
17925
17953
|
},
|
|
17926
17954
|
// "body": body,
|
|
17927
17955
|
// "data": serviceData
|
|
@@ -18765,8 +18793,8 @@ var AmisGlobalFooter = function (props) { return __awaiter(void 0, void 0, void
|
|
|
18765
18793
|
/*
|
|
18766
18794
|
* @Author: baozhoutao@steedos.com
|
|
18767
18795
|
* @Date: 2022-09-01 14:44:57
|
|
18768
|
-
* @LastEditors:
|
|
18769
|
-
* @LastEditTime: 2023-08
|
|
18796
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
18797
|
+
* @LastEditTime: 2023-09-08 17:54:54
|
|
18770
18798
|
* @Description:
|
|
18771
18799
|
*/
|
|
18772
18800
|
var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -18786,7 +18814,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
|
|
|
18786
18814
|
"body": __spreadArray(__spreadArray([], __read(customButtons), false), [
|
|
18787
18815
|
{
|
|
18788
18816
|
"type": "button",
|
|
18789
|
-
"hiddenOn": "window
|
|
18817
|
+
"hiddenOn": "${window:innerWidth < 768 || (window:Meteor.settings.public && window:Meteor.settings.public.platform && window:Meteor.settings.public.platform.is_oem)}",
|
|
18790
18818
|
"id": "u:267a7e84a89d",
|
|
18791
18819
|
"onEvent": {
|
|
18792
18820
|
"click": {
|
|
@@ -19101,6 +19129,7 @@ var AmisGlobalHeaderToolbar = function (props) { return __awaiter(void 0, void 0
|
|
|
19101
19129
|
"type": "button",
|
|
19102
19130
|
"label": instance.t('frontend_about'),
|
|
19103
19131
|
"className": "flex",
|
|
19132
|
+
"hiddenOn": "${window:Meteor.settings.public && window:Meteor.settings.public.platform && window:Meteor.settings.public.platform.is_oem}",
|
|
19104
19133
|
"onEvent": {
|
|
19105
19134
|
"click": {
|
|
19106
19135
|
"actions": [
|
|
@@ -19462,7 +19491,7 @@ var AmisSteedosField = function (props) { return __awaiter(void 0, void 0, void
|
|
|
19462
19491
|
* @Author: baozhoutao@steedos.com
|
|
19463
19492
|
* @Date: 2023-01-14 16:41:24
|
|
19464
19493
|
* @LastEditors: baozhoutao@steedos.com
|
|
19465
|
-
* @LastEditTime: 2023-09-
|
|
19494
|
+
* @LastEditTime: 2023-09-11 16:48:35
|
|
19466
19495
|
* @Description:
|
|
19467
19496
|
*/
|
|
19468
19497
|
var getSelectFlowSchema = function (id, props) {
|
|
@@ -19610,7 +19639,7 @@ var getSelectFlowSchema = function (id, props) {
|
|
|
19610
19639
|
method: "post",
|
|
19611
19640
|
url: "${context.rootUrl}/graphql?keywords=${keywords}",
|
|
19612
19641
|
requestAdaptor: "\n const keywords = api.body.keywords || '';\n const appId = '".concat(data.app_id || "", "';\n api.data = {\n query: `\n {\n options: flows__getList(action: \"").concat(action, "\", keywords: \"${keywords}\", appId: \"${appId}\", distributeInstanceId: \"").concat(distributeInstanceId, "\", distributeStepId: \"").concat(distributeStepId, "\"){\n value:_id\n label:name\n children: flows{\n value: _id,\n label: name\n }\n }\n }\n `\n }\n "),
|
|
19613
|
-
adaptor: "\n var options = payload.data.options;\n if(options){\n options.forEach(function(item,index) {\n if(item.value != 'startFlows' && (!item.children || item.children.length == 0)){\n payload.data.options.splice(index,1)\n }\n })\n }\n if(payload.data.options.length === 1 && payload.data.options[0].children.length === 1){\n
|
|
19642
|
+
adaptor: "\n var options = payload.data.options;\n if(options){\n options.forEach(function(item,index) {\n if(item.value != 'startFlows' && (!item.children || item.children.length == 0)){\n payload.data.options.splice(index,1)\n }\n })\n }\n // if(payload.data.options.length === 1 && payload.data.options[0].children.length === 1){\n // payload.data.value = payload.data.options[0].children[0].value\n // }\n return payload;\n ",
|
|
19614
19643
|
"headers": {
|
|
19615
19644
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
19616
19645
|
}
|
|
@@ -19776,7 +19805,17 @@ var PageRecordDetail = function (props) { return __awaiter(void 0, void 0, void
|
|
|
19776
19805
|
case 2: return [2 /*return*/, {
|
|
19777
19806
|
type: 'service',
|
|
19778
19807
|
"className": 'h-full',
|
|
19779
|
-
body: recordSchema
|
|
19808
|
+
body: recordSchema,
|
|
19809
|
+
"onEvent": {
|
|
19810
|
+
"recordLoaded": {
|
|
19811
|
+
"actions": [
|
|
19812
|
+
{
|
|
19813
|
+
"actionType": "custom",
|
|
19814
|
+
"script": "window.Steedos && window.Steedos.setDocumentTitle && Steedos.setDocumentTitle({pageName: event.data.record.name})"
|
|
19815
|
+
}
|
|
19816
|
+
]
|
|
19817
|
+
}
|
|
19818
|
+
}
|
|
19780
19819
|
}];
|
|
19781
19820
|
}
|
|
19782
19821
|
});
|
|
@@ -19792,6 +19831,7 @@ var PageObject = function (props) { return __awaiter(void 0, void 0, void 0, fun
|
|
|
19792
19831
|
case 1:
|
|
19793
19832
|
uiSchema = _b.sent();
|
|
19794
19833
|
delete $schema.data.recordId;
|
|
19834
|
+
window.Steedos && window.Steedos.setDocumentTitle && window.Steedos.setDocumentTitle({ tabName: uiSchema.label || uiSchema.name });
|
|
19795
19835
|
// 最外层的data是render data, 会被updateProps data覆盖, 所以组件data需要单开一个数据域. 所以此处有2层service
|
|
19796
19836
|
return [2 /*return*/, {
|
|
19797
19837
|
type: "service",
|