@steedos-widgets/amis-lib 1.3.3 → 1.3.4-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/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs.js +232 -195
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +232 -195
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +110 -111
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/header.d.ts +1 -7
- package/dist/types/lib/converter/amis/index.d.ts +2 -6
- package/dist/types/lib/objects.d.ts +6 -6
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -444,7 +444,7 @@ function getLookupListView(refObjectConfig) {
|
|
|
444
444
|
* @Author: baozhoutao@steedos.com
|
|
445
445
|
* @Date: 2022-05-23 09:53:08
|
|
446
446
|
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
447
|
-
* @LastEditTime: 2023-
|
|
447
|
+
* @LastEditTime: 2023-09-19 14:38:39
|
|
448
448
|
* @Description:
|
|
449
449
|
*/
|
|
450
450
|
|
|
@@ -624,9 +624,13 @@ async function getLookupTpl(field, ctx){
|
|
|
624
624
|
}
|
|
625
625
|
|
|
626
626
|
function getSwitchTpl(field){
|
|
627
|
+
let fieldDataStrTpl = `data._display.${field.name}`;
|
|
628
|
+
if(field.isTableField){
|
|
629
|
+
fieldDataStrTpl = `data.${field.name}`;
|
|
630
|
+
}
|
|
627
631
|
return `<% if (data.${field.name}) { %>
|
|
628
|
-
<span class="slds-icon_container slds-icon-utility-check slds-current-color" title="
|
|
629
|
-
<span ><%=
|
|
632
|
+
<span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=${fieldDataStrTpl}%>">
|
|
633
|
+
<span ><%= ${fieldDataStrTpl} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : ${fieldDataStrTpl} %></span>
|
|
630
634
|
</span>
|
|
631
635
|
<% } %>`
|
|
632
636
|
}
|
|
@@ -1204,7 +1208,7 @@ var frontend_display_type_is_split = "分栏视图";
|
|
|
1204
1208
|
var frontend_display_as = "显示为";
|
|
1205
1209
|
var frontend_record_sum = "个项目";
|
|
1206
1210
|
var frontend_button_reload_tooltip = "刷新";
|
|
1207
|
-
var frontend_button_search_tooltip = "
|
|
1211
|
+
var frontend_button_search_tooltip = "筛选";
|
|
1208
1212
|
var frontend_fields_filter_button_search = "搜索";
|
|
1209
1213
|
var frontend_fields_filter_button_settings = "设置搜索项";
|
|
1210
1214
|
var frontend_button_listview_control_tooltip = "列表视图控制";
|
|
@@ -2912,7 +2916,7 @@ const getObjectDetailButtonsSchemas = (objectSchema, recordId, ctx)=>{
|
|
|
2912
2916
|
type: "steedos-dropdown-button",
|
|
2913
2917
|
label: "",
|
|
2914
2918
|
buttons: moreButtons,
|
|
2915
|
-
className: 'slds-icon',
|
|
2919
|
+
className: 'slds-icon ml-1',
|
|
2916
2920
|
visibleOn: moreButtonsVisibleOn
|
|
2917
2921
|
};
|
|
2918
2922
|
buttons.push(dropdownButtonsSchema);
|
|
@@ -3655,13 +3659,15 @@ function getObjectListHeaderFirstLine(objectSchema, listViewName, ctx) {
|
|
|
3655
3659
|
"visibleOn": "${display == 'split'?false:true}"
|
|
3656
3660
|
}];
|
|
3657
3661
|
if(ctx.formFactor !== 'SMALL'){
|
|
3662
|
+
const restButtons = Array.isArray(amisButtonsSchema) ? amisButtonsSchema.filter(obj => obj.name !== "standard_new"):[];
|
|
3658
3663
|
buttonSchema.push({
|
|
3659
3664
|
"type": "flex",
|
|
3660
3665
|
"items":[
|
|
3661
3666
|
standardNewButton,
|
|
3662
|
-
{
|
|
3667
|
+
(restButtons.length > 0) && {
|
|
3663
3668
|
"type": "dropdown-button",
|
|
3664
|
-
"buttons":
|
|
3669
|
+
"buttons": restButtons,
|
|
3670
|
+
"className": " ml-1",
|
|
3665
3671
|
"menuClassName": "p-none split-dropdown-buttons",
|
|
3666
3672
|
"align": "right",
|
|
3667
3673
|
"size": "sm"
|
|
@@ -3793,7 +3799,6 @@ async function getObjectListHeaderSecordLine(objectSchema, listViewName, ctx) {
|
|
|
3793
3799
|
},
|
|
3794
3800
|
{
|
|
3795
3801
|
"body": [
|
|
3796
|
-
fieldsFilterButtonSchema,
|
|
3797
3802
|
{
|
|
3798
3803
|
"type": "button",
|
|
3799
3804
|
"label": "",
|
|
@@ -3802,6 +3807,7 @@ async function getObjectListHeaderSecordLine(objectSchema, listViewName, ctx) {
|
|
|
3802
3807
|
"target": amisListViewId,
|
|
3803
3808
|
"className": "bg-white p-2 rounded border-gray-300 text-gray-500"
|
|
3804
3809
|
},
|
|
3810
|
+
fieldsFilterButtonSchema,
|
|
3805
3811
|
// {
|
|
3806
3812
|
// "type": "button",
|
|
3807
3813
|
// "label": "",
|
|
@@ -4049,7 +4055,7 @@ async function getObjectRecordDetailRelatedListHeader(relatedObjectSchema, relat
|
|
|
4049
4055
|
"body": [
|
|
4050
4056
|
{
|
|
4051
4057
|
"type": "tpl",
|
|
4052
|
-
"tpl": `<a class="text-black text-base font-bold" href="/app/\${appId}/\${_master.objectName}/\${_master.recordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${relatedLabel}(\${$count})</a>`,
|
|
4058
|
+
"tpl": `<a class="text-black text-base font-bold hover:font-bold" href="/app/\${appId}/\${_master.objectName}/\${_master.recordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${relatedLabel}(\${$count})</a>`,
|
|
4053
4059
|
"inline": false,
|
|
4054
4060
|
"wrapperComponent": "",
|
|
4055
4061
|
"className": "",
|
|
@@ -5138,7 +5144,7 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
5138
5144
|
{
|
|
5139
5145
|
"type": "search-box",
|
|
5140
5146
|
"name": keywordsSearchBoxName,
|
|
5141
|
-
"placeholder": "
|
|
5147
|
+
"placeholder": "搜索此列表",
|
|
5142
5148
|
"value": crudKeywords,
|
|
5143
5149
|
"clearable": true,
|
|
5144
5150
|
"clearAndSubmit": true
|
|
@@ -5261,10 +5267,10 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
5261
5267
|
if(toolbarCount){
|
|
5262
5268
|
toolbars.push(toolbarCount);
|
|
5263
5269
|
}
|
|
5264
|
-
toolbars.push(toolbarReloadButton);
|
|
5265
5270
|
if(toolbarFilter){
|
|
5266
5271
|
toolbars.push(toolbarFilter);
|
|
5267
5272
|
}
|
|
5273
|
+
toolbars.push(toolbarReloadButton);
|
|
5268
5274
|
toolbars.push(toolbarDisplayAsButton);
|
|
5269
5275
|
toolbars.push(toolbarDQuickSearchBox);
|
|
5270
5276
|
return [
|
|
@@ -5280,10 +5286,10 @@ function getObjectHeaderToolbar(mainObject, fields, formFactor, {
|
|
|
5280
5286
|
toolbars.push(toolbarFilter);
|
|
5281
5287
|
}
|
|
5282
5288
|
toolbars.push(toolbarReloadButton);
|
|
5289
|
+
toolbars.push(toolbarDisplayAsButton);
|
|
5283
5290
|
if(mainObject?.permissions?.allowCreateListViews){
|
|
5284
5291
|
toolbars.push(getSettingListviewToolbarButtonSchema());
|
|
5285
5292
|
}
|
|
5286
|
-
toolbars.push(toolbarDisplayAsButton);
|
|
5287
5293
|
toolbars.push(toolbarDQuickSearchBox);
|
|
5288
5294
|
return [
|
|
5289
5295
|
// "filter-toggler",
|
|
@@ -7329,7 +7335,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
7329
7335
|
label: subField.label,
|
|
7330
7336
|
quickEdit: readonly ? false : gridSub
|
|
7331
7337
|
};
|
|
7332
|
-
if(subField.type
|
|
7338
|
+
if(["lookup", "boolean", "toggle"].indexOf(subField.type) > -1){
|
|
7333
7339
|
gridItemSchema.type = gridSub.type;
|
|
7334
7340
|
gridItemSchema.tpl = gridSub.tpl;
|
|
7335
7341
|
}
|
|
@@ -8263,7 +8269,7 @@ async function getTableOperation(ctx){
|
|
|
8263
8269
|
label: i18next.t('frontend_operation'),
|
|
8264
8270
|
fixed: 'right',
|
|
8265
8271
|
labelClassName: 'text-center',
|
|
8266
|
-
className: 'text-center steedos-listview-operation w-
|
|
8272
|
+
className: 'text-center steedos-listview-operation w-10',
|
|
8267
8273
|
buttons: [
|
|
8268
8274
|
{
|
|
8269
8275
|
"type": "steedos-dropdown-button",
|
|
@@ -8295,11 +8301,10 @@ async function getTableOperation(ctx){
|
|
|
8295
8301
|
}
|
|
8296
8302
|
|
|
8297
8303
|
async function getTableSchema$1(fields, options){
|
|
8298
|
-
let isLookup = options && options.isLookup;
|
|
8299
|
-
let hiddenColumnOperation = options && options.hiddenColumnOperation;
|
|
8300
8304
|
if(!options){
|
|
8301
8305
|
options = {};
|
|
8302
8306
|
}
|
|
8307
|
+
let { isLookup, hiddenColumnOperation } = options;
|
|
8303
8308
|
let columns = [];
|
|
8304
8309
|
let useMobileColumns = options.formFactor === 'SMALL' || ["split"].indexOf(options.displayAs) > -1;
|
|
8305
8310
|
if(isLookup){
|
|
@@ -8311,6 +8316,7 @@ async function getTableSchema$1(fields, options){
|
|
|
8311
8316
|
}
|
|
8312
8317
|
else {
|
|
8313
8318
|
columns = await getTableColumns(fields, options);
|
|
8319
|
+
|
|
8314
8320
|
if(!isLookup && !hiddenColumnOperation){
|
|
8315
8321
|
columns.push(await getTableOperation(options));
|
|
8316
8322
|
}
|
|
@@ -8319,7 +8325,7 @@ async function getTableSchema$1(fields, options){
|
|
|
8319
8325
|
return {
|
|
8320
8326
|
mode: "table",
|
|
8321
8327
|
name: "thelist",
|
|
8322
|
-
headerToolbarClassName: "py-2 px-2 border-gray-300
|
|
8328
|
+
headerToolbarClassName: "py-2 px-2 border-gray-300 border-solid border-b",
|
|
8323
8329
|
className: "",
|
|
8324
8330
|
draggable: false,
|
|
8325
8331
|
defaultParams: getDefaultParams(options),
|
|
@@ -9615,6 +9621,161 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
|
|
|
9615
9621
|
return amisSchema;
|
|
9616
9622
|
}
|
|
9617
9623
|
|
|
9624
|
+
/******************************************************************************
|
|
9625
|
+
Copyright (c) Microsoft Corporation.
|
|
9626
|
+
|
|
9627
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
9628
|
+
purpose with or without fee is hereby granted.
|
|
9629
|
+
|
|
9630
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9631
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
9632
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
9633
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
9634
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
9635
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
9636
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
9637
|
+
***************************************************************************** */
|
|
9638
|
+
|
|
9639
|
+
var __assign = function() {
|
|
9640
|
+
__assign = Object.assign || function __assign(t) {
|
|
9641
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9642
|
+
s = arguments[i];
|
|
9643
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
9644
|
+
}
|
|
9645
|
+
return t;
|
|
9646
|
+
};
|
|
9647
|
+
return __assign.apply(this, arguments);
|
|
9648
|
+
};
|
|
9649
|
+
|
|
9650
|
+
/**
|
|
9651
|
+
* 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组
|
|
9652
|
+
*
|
|
9653
|
+
* @param string 要转换的字符串
|
|
9654
|
+
*/
|
|
9655
|
+
var keyToPath = function (string) {
|
|
9656
|
+
var result = [];
|
|
9657
|
+
if (string.charCodeAt(0) === '.'.charCodeAt(0)) {
|
|
9658
|
+
result.push('');
|
|
9659
|
+
}
|
|
9660
|
+
string.replace(new RegExp('[^.[\\]]+|\\[(?:([^"\'][^[]*)|(["\'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))', 'g'), function (match, expression, quote, subString) {
|
|
9661
|
+
var key = match;
|
|
9662
|
+
if (quote) {
|
|
9663
|
+
key = subString.replace(/\\(\\)?/g, '$1');
|
|
9664
|
+
}
|
|
9665
|
+
else if (expression) {
|
|
9666
|
+
key = expression.trim();
|
|
9667
|
+
}
|
|
9668
|
+
result.push(key);
|
|
9669
|
+
return '';
|
|
9670
|
+
});
|
|
9671
|
+
return result;
|
|
9672
|
+
};
|
|
9673
|
+
|
|
9674
|
+
// 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。
|
|
9675
|
+
function createObject(superProps, props, properties) {
|
|
9676
|
+
if (superProps && Object.isFrozen(superProps)) {
|
|
9677
|
+
superProps = cloneObject(superProps);
|
|
9678
|
+
}
|
|
9679
|
+
var obj = superProps
|
|
9680
|
+
? Object.create(superProps, __assign(__assign({}, properties), { __super: {
|
|
9681
|
+
value: superProps,
|
|
9682
|
+
writable: false,
|
|
9683
|
+
enumerable: false
|
|
9684
|
+
} }))
|
|
9685
|
+
: Object.create(Object.prototype, properties);
|
|
9686
|
+
props &&
|
|
9687
|
+
isObject(props) &&
|
|
9688
|
+
Object.keys(props).forEach(function (key) { return (obj[key] = props[key]); });
|
|
9689
|
+
return obj;
|
|
9690
|
+
}
|
|
9691
|
+
function cloneObject(target, persistOwnProps) {
|
|
9692
|
+
if (persistOwnProps === void 0) { persistOwnProps = true; }
|
|
9693
|
+
var obj = target && target.__super
|
|
9694
|
+
? Object.create(target.__super, {
|
|
9695
|
+
__super: {
|
|
9696
|
+
value: target.__super,
|
|
9697
|
+
writable: false,
|
|
9698
|
+
enumerable: false
|
|
9699
|
+
}
|
|
9700
|
+
})
|
|
9701
|
+
: Object.create(Object.prototype);
|
|
9702
|
+
persistOwnProps &&
|
|
9703
|
+
target &&
|
|
9704
|
+
Object.keys(target).forEach(function (key) { return (obj[key] = target[key]); });
|
|
9705
|
+
return obj;
|
|
9706
|
+
}
|
|
9707
|
+
function extendObject(target, src, persistOwnProps) {
|
|
9708
|
+
if (persistOwnProps === void 0) { persistOwnProps = true; }
|
|
9709
|
+
var obj = cloneObject(target, persistOwnProps);
|
|
9710
|
+
src && Object.keys(src).forEach(function (key) { return (obj[key] = src[key]); });
|
|
9711
|
+
return obj;
|
|
9712
|
+
}
|
|
9713
|
+
function isObject(obj) {
|
|
9714
|
+
var typename = typeof obj;
|
|
9715
|
+
return (obj &&
|
|
9716
|
+
typename !== 'string' &&
|
|
9717
|
+
typename !== 'number' &&
|
|
9718
|
+
typename !== 'boolean' &&
|
|
9719
|
+
typename !== 'function' &&
|
|
9720
|
+
!Array.isArray(obj));
|
|
9721
|
+
}
|
|
9722
|
+
function setVariable(data, key, value, convertKeyToPath) {
|
|
9723
|
+
data = data || {};
|
|
9724
|
+
if (key in data) {
|
|
9725
|
+
data[key] = value;
|
|
9726
|
+
return;
|
|
9727
|
+
}
|
|
9728
|
+
var parts = convertKeyToPath !== false ? keyToPath(key) : [key];
|
|
9729
|
+
var last = parts.pop();
|
|
9730
|
+
while (parts.length) {
|
|
9731
|
+
var key_1 = parts.shift();
|
|
9732
|
+
if (isPlainObject(data[key_1])) {
|
|
9733
|
+
data = data[key_1] = __assign({}, data[key_1]);
|
|
9734
|
+
}
|
|
9735
|
+
else if (Array.isArray(data[key_1])) {
|
|
9736
|
+
data[key_1] = data[key_1].concat();
|
|
9737
|
+
data = data[key_1];
|
|
9738
|
+
}
|
|
9739
|
+
else if (data[key_1]) {
|
|
9740
|
+
// throw new Error(`目标路径不是纯对象,不能覆盖`);
|
|
9741
|
+
// 强行转成对象
|
|
9742
|
+
data[key_1] = {};
|
|
9743
|
+
data = data[key_1];
|
|
9744
|
+
}
|
|
9745
|
+
else {
|
|
9746
|
+
data[key_1] = {};
|
|
9747
|
+
data = data[key_1];
|
|
9748
|
+
}
|
|
9749
|
+
}
|
|
9750
|
+
data[last] = value;
|
|
9751
|
+
}
|
|
9752
|
+
function deleteVariable(data, key) {
|
|
9753
|
+
if (!data) {
|
|
9754
|
+
return;
|
|
9755
|
+
}
|
|
9756
|
+
else if (data.hasOwnProperty(key)) {
|
|
9757
|
+
delete data[key];
|
|
9758
|
+
return;
|
|
9759
|
+
}
|
|
9760
|
+
var parts = keyToPath(key);
|
|
9761
|
+
var last = parts.pop();
|
|
9762
|
+
while (parts.length) {
|
|
9763
|
+
var key_2 = parts.shift();
|
|
9764
|
+
if (isPlainObject(data[key_2])) {
|
|
9765
|
+
data = data[key_2] = __assign({}, data[key_2]);
|
|
9766
|
+
}
|
|
9767
|
+
else if (data[key_2]) {
|
|
9768
|
+
throw new Error("\u76EE\u6807\u8DEF\u5F84\u4E0D\u662F\u7EAF\u5BF9\u8C61\uFF0C\u4E0D\u80FD\u4FEE\u6539");
|
|
9769
|
+
}
|
|
9770
|
+
else {
|
|
9771
|
+
break;
|
|
9772
|
+
}
|
|
9773
|
+
}
|
|
9774
|
+
if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {
|
|
9775
|
+
delete data[last];
|
|
9776
|
+
}
|
|
9777
|
+
}
|
|
9778
|
+
|
|
9618
9779
|
/*
|
|
9619
9780
|
* @Author: baozhoutao@steedos.com
|
|
9620
9781
|
* @Date: 2022-05-26 16:02:08
|
|
@@ -9855,9 +10016,30 @@ function getBulkActions(objectSchema){
|
|
|
9855
10016
|
]
|
|
9856
10017
|
}
|
|
9857
10018
|
|
|
10019
|
+
async function getCrudSchemaWithDataFilter(crud, options = {}){
|
|
10020
|
+
const { crudDataFilter, amisData, env } = options;
|
|
10021
|
+
let onCrudDataFilter = options.onCrudDataFilter;
|
|
10022
|
+
if (!onCrudDataFilter && typeof crudDataFilter === 'string') {
|
|
10023
|
+
onCrudDataFilter = new Function(
|
|
10024
|
+
'crud',
|
|
10025
|
+
'env',
|
|
10026
|
+
'data',
|
|
10027
|
+
crudDataFilter
|
|
10028
|
+
);
|
|
10029
|
+
}
|
|
10030
|
+
|
|
10031
|
+
try {
|
|
10032
|
+
onCrudDataFilter && (crud = await onCrudDataFilter(crud, env, amisData) || crud);
|
|
10033
|
+
} catch (e) {
|
|
10034
|
+
console.warn(e);
|
|
10035
|
+
}
|
|
10036
|
+
return crud;
|
|
10037
|
+
}
|
|
10038
|
+
|
|
9858
10039
|
async function getObjectCRUD(objectSchema, fields, options){
|
|
9859
10040
|
// console.time('getObjectCRUD');
|
|
9860
|
-
const { top, perPage, showDisplayAs = false, displayAs, crudClassName = ""
|
|
10041
|
+
const { top, perPage, showDisplayAs = false, displayAs, crudClassName = "",
|
|
10042
|
+
crudDataFilter, onCrudDataFilter, amisData, env } = options;
|
|
9861
10043
|
const nonpaged = objectSchema.paging && objectSchema.paging.enabled === false;
|
|
9862
10044
|
const isTreeObject = objectSchema.enable_tree;
|
|
9863
10045
|
const bulkActions = getBulkActions(objectSchema);
|
|
@@ -9898,6 +10080,14 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
9898
10080
|
filterVisible: options.filterVisible
|
|
9899
10081
|
});
|
|
9900
10082
|
|
|
10083
|
+
options.amisData = createObject(options.amisData, {
|
|
10084
|
+
objectName: objectSchema.name,
|
|
10085
|
+
// _id: null,
|
|
10086
|
+
recordPermissions: objectSchema.permissions,
|
|
10087
|
+
uiSchema: objectSchema,
|
|
10088
|
+
// loaded: false //crud接收适配器中设置为true,否则就是刷新浏览器第一次加载
|
|
10089
|
+
});
|
|
10090
|
+
|
|
9901
10091
|
|
|
9902
10092
|
let body = null;
|
|
9903
10093
|
const id = `listview_${objectSchema.name}`;
|
|
@@ -9923,7 +10113,12 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
9923
10113
|
if(objectSchema.name === 'organizations'){
|
|
9924
10114
|
labelFieldName = 'name';
|
|
9925
10115
|
}
|
|
9926
|
-
|
|
10116
|
+
let tableOptions = Object.assign({
|
|
10117
|
+
idFieldName: objectSchema.idFieldName, labelFieldName: labelFieldName,
|
|
10118
|
+
permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit
|
|
10119
|
+
}, options);
|
|
10120
|
+
tableOptions.amisData = createObject(options.amisData || {}, {}).__super;
|
|
10121
|
+
const table = await getTableSchema$1(fields, tableOptions);
|
|
9927
10122
|
delete table.mode;
|
|
9928
10123
|
//image与avatar需要在提交修改时特别处理
|
|
9929
10124
|
const imageNames = ___default.compact(___default.map(___default.filter(fields, (field) => ["image","avatar"].includes(field.type)), 'name'));
|
|
@@ -9983,9 +10178,9 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
9983
10178
|
requestAdaptor: quickSaveApiRequestAdaptor,
|
|
9984
10179
|
},
|
|
9985
10180
|
rowClassNameExpr: options.rowClassNameExpr
|
|
9986
|
-
},
|
|
9987
|
-
|
|
9988
|
-
|
|
10181
|
+
}, bodyProps);
|
|
10182
|
+
|
|
10183
|
+
body = await getCrudSchemaWithDataFilter(body, { crudDataFilter, onCrudDataFilter, amisData, env });
|
|
9989
10184
|
}
|
|
9990
10185
|
|
|
9991
10186
|
const defaults = options.defaults;
|
|
@@ -10020,16 +10215,10 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
10020
10215
|
return {
|
|
10021
10216
|
type: 'service',
|
|
10022
10217
|
className: '',
|
|
10023
|
-
//目前crud的service层id不认用户自定义id,只支持默认规则id
|
|
10218
|
+
//目前crud的service层id不认用户自定义id,只支持默认规则id,许多地方的格式都写死了service_listview_${objectname}
|
|
10024
10219
|
id: `service_${id}`,
|
|
10025
10220
|
name: `page`,
|
|
10026
|
-
data:
|
|
10027
|
-
objectName: objectSchema.name,
|
|
10028
|
-
// _id: null,
|
|
10029
|
-
recordPermissions: objectSchema.permissions,
|
|
10030
|
-
uiSchema: objectSchema,
|
|
10031
|
-
// loaded: false //crud接收适配器中设置为true,否则就是刷新浏览器第一次加载
|
|
10032
|
-
},
|
|
10221
|
+
data: options.amisData,
|
|
10033
10222
|
body: body
|
|
10034
10223
|
}
|
|
10035
10224
|
}
|
|
@@ -10504,7 +10693,7 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
10504
10693
|
setDataToComponentId: componentId,
|
|
10505
10694
|
// tableHiddenOn: hiddenEmptyTable ? "this.$count === 0" : null,
|
|
10506
10695
|
appId: appId,
|
|
10507
|
-
crudClassName: 'border-t border-
|
|
10696
|
+
crudClassName: 'border-t border-gray-300 hidden',
|
|
10508
10697
|
...ctx
|
|
10509
10698
|
};
|
|
10510
10699
|
const amisSchema= (await getRelatedListSchema(relatedObjectName, 'all', options)).amisSchema;
|
|
@@ -10516,7 +10705,7 @@ async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObj
|
|
|
10516
10705
|
amisSchema: {
|
|
10517
10706
|
type: "service",
|
|
10518
10707
|
id: componentId,
|
|
10519
|
-
className: `steedos-record-related-list ${componentId} rounded border border-
|
|
10708
|
+
className: `steedos-record-related-list ${componentId} rounded border border-gray-300 bg-gray-100 mb-4 ${className}`,
|
|
10520
10709
|
data: {
|
|
10521
10710
|
relatedKey: relatedKey,
|
|
10522
10711
|
listViewId: `amis-\${appId}-${relatedObjectName}-listview`,
|
|
@@ -10681,7 +10870,7 @@ async function getRelatedListSchema(
|
|
|
10681
10870
|
* @Author: baozhoutao@steedos.com
|
|
10682
10871
|
* @Date: 2022-07-05 15:55:39
|
|
10683
10872
|
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
10684
|
-
* @LastEditTime: 2023-09-
|
|
10873
|
+
* @LastEditTime: 2023-09-15 09:04:49
|
|
10685
10874
|
* @Description:
|
|
10686
10875
|
*/
|
|
10687
10876
|
|
|
@@ -11014,7 +11203,9 @@ async function getListSchema(
|
|
|
11014
11203
|
"adaptor": listView.adaptor,
|
|
11015
11204
|
"headerToolbarItems": ctx.headerToolbarItems,
|
|
11016
11205
|
"filterVisible": ctx.filterVisible,
|
|
11017
|
-
"rowClassNameExpr": ctx.rowClassNameExpr
|
|
11206
|
+
"rowClassNameExpr": ctx.rowClassNameExpr,
|
|
11207
|
+
"crudDataFilter": ctx.crudDataFilter,
|
|
11208
|
+
"onCrudDataFilter": ctx.onCrudDataFilter
|
|
11018
11209
|
};
|
|
11019
11210
|
// console.log(`getListSchema===>`,amisSchema)
|
|
11020
11211
|
return {
|
|
@@ -11117,7 +11308,7 @@ async function getTableSchema(
|
|
|
11117
11308
|
fields = fields.concat(extraFields);
|
|
11118
11309
|
}
|
|
11119
11310
|
|
|
11120
|
-
|
|
11311
|
+
let crudOptions = {
|
|
11121
11312
|
tabId: objectName,
|
|
11122
11313
|
appId: appName,
|
|
11123
11314
|
objectName: objectName,
|
|
@@ -11126,8 +11317,9 @@ async function getTableSchema(
|
|
|
11126
11317
|
sort,
|
|
11127
11318
|
headerToolbarItems: ctx.headerToolbarItems,
|
|
11128
11319
|
buttons: await getListViewItemButtons(uiSchema, ctx)
|
|
11129
|
-
}
|
|
11130
|
-
|
|
11320
|
+
};
|
|
11321
|
+
crudOptions.amisData = createObject(ctx.amisData || {}, {}).__super;
|
|
11322
|
+
const amisSchema = await getObjectCRUD(uiSchema, fields, crudOptions);
|
|
11131
11323
|
// console.timeEnd('getTableSchema');
|
|
11132
11324
|
return {
|
|
11133
11325
|
uiSchema,
|
|
@@ -11199,7 +11391,7 @@ async function getRecordDetailSchema(objectName, appId, props = {}){
|
|
|
11199
11391
|
};
|
|
11200
11392
|
const content = {
|
|
11201
11393
|
"type": "tabs",
|
|
11202
|
-
"className": "sm:mt-3 bg-white sm:shadow sm:rounded sm:border border-
|
|
11394
|
+
"className": "sm:mt-3 bg-white sm:shadow sm:rounded sm:border border-gray-300 p-4",
|
|
11203
11395
|
"tabs": [
|
|
11204
11396
|
detailed
|
|
11205
11397
|
],
|
|
@@ -11386,7 +11578,7 @@ async function getListPageInitSchema(objectApiName, formFactor, userSession) {
|
|
|
11386
11578
|
"columnsTogglable": false,
|
|
11387
11579
|
"showHeader": true,
|
|
11388
11580
|
// "headerSchema": headerSchema
|
|
11389
|
-
className: "sm:border bg-white sm:shadow sm:rounded border-
|
|
11581
|
+
className: "sm:border bg-white sm:shadow sm:rounded border-gray-300 border-solid"
|
|
11390
11582
|
}]
|
|
11391
11583
|
}
|
|
11392
11584
|
}
|
|
@@ -11444,7 +11636,7 @@ async function getRecordPageInitSchema(objectApiName){
|
|
|
11444
11636
|
]
|
|
11445
11637
|
}
|
|
11446
11638
|
],
|
|
11447
|
-
"className": "sm:mt-3 flex flex-col region-main bg-white sm:shadow sm:rounded sm:border border-
|
|
11639
|
+
"className": "sm:mt-3 flex flex-col region-main bg-white sm:shadow sm:rounded sm:border border-gray-300",
|
|
11448
11640
|
"linksClassName": "pl-4 pt-2"
|
|
11449
11641
|
};
|
|
11450
11642
|
if(relatedList.length){
|
|
@@ -11911,161 +12103,6 @@ const registerRemoteAssets = async (assetUrls)=>{
|
|
|
11911
12103
|
}
|
|
11912
12104
|
};
|
|
11913
12105
|
|
|
11914
|
-
/******************************************************************************
|
|
11915
|
-
Copyright (c) Microsoft Corporation.
|
|
11916
|
-
|
|
11917
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
11918
|
-
purpose with or without fee is hereby granted.
|
|
11919
|
-
|
|
11920
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
11921
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
11922
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11923
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
11924
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
11925
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
11926
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
11927
|
-
***************************************************************************** */
|
|
11928
|
-
|
|
11929
|
-
var __assign = function() {
|
|
11930
|
-
__assign = Object.assign || function __assign(t) {
|
|
11931
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
11932
|
-
s = arguments[i];
|
|
11933
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
11934
|
-
}
|
|
11935
|
-
return t;
|
|
11936
|
-
};
|
|
11937
|
-
return __assign.apply(this, arguments);
|
|
11938
|
-
};
|
|
11939
|
-
|
|
11940
|
-
/**
|
|
11941
|
-
* 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组
|
|
11942
|
-
*
|
|
11943
|
-
* @param string 要转换的字符串
|
|
11944
|
-
*/
|
|
11945
|
-
var keyToPath = function (string) {
|
|
11946
|
-
var result = [];
|
|
11947
|
-
if (string.charCodeAt(0) === '.'.charCodeAt(0)) {
|
|
11948
|
-
result.push('');
|
|
11949
|
-
}
|
|
11950
|
-
string.replace(new RegExp('[^.[\\]]+|\\[(?:([^"\'][^[]*)|(["\'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))', 'g'), function (match, expression, quote, subString) {
|
|
11951
|
-
var key = match;
|
|
11952
|
-
if (quote) {
|
|
11953
|
-
key = subString.replace(/\\(\\)?/g, '$1');
|
|
11954
|
-
}
|
|
11955
|
-
else if (expression) {
|
|
11956
|
-
key = expression.trim();
|
|
11957
|
-
}
|
|
11958
|
-
result.push(key);
|
|
11959
|
-
return '';
|
|
11960
|
-
});
|
|
11961
|
-
return result;
|
|
11962
|
-
};
|
|
11963
|
-
|
|
11964
|
-
// 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。
|
|
11965
|
-
function createObject(superProps, props, properties) {
|
|
11966
|
-
if (superProps && Object.isFrozen(superProps)) {
|
|
11967
|
-
superProps = cloneObject(superProps);
|
|
11968
|
-
}
|
|
11969
|
-
var obj = superProps
|
|
11970
|
-
? Object.create(superProps, __assign(__assign({}, properties), { __super: {
|
|
11971
|
-
value: superProps,
|
|
11972
|
-
writable: false,
|
|
11973
|
-
enumerable: false
|
|
11974
|
-
} }))
|
|
11975
|
-
: Object.create(Object.prototype, properties);
|
|
11976
|
-
props &&
|
|
11977
|
-
isObject(props) &&
|
|
11978
|
-
Object.keys(props).forEach(function (key) { return (obj[key] = props[key]); });
|
|
11979
|
-
return obj;
|
|
11980
|
-
}
|
|
11981
|
-
function cloneObject(target, persistOwnProps) {
|
|
11982
|
-
if (persistOwnProps === void 0) { persistOwnProps = true; }
|
|
11983
|
-
var obj = target && target.__super
|
|
11984
|
-
? Object.create(target.__super, {
|
|
11985
|
-
__super: {
|
|
11986
|
-
value: target.__super,
|
|
11987
|
-
writable: false,
|
|
11988
|
-
enumerable: false
|
|
11989
|
-
}
|
|
11990
|
-
})
|
|
11991
|
-
: Object.create(Object.prototype);
|
|
11992
|
-
persistOwnProps &&
|
|
11993
|
-
target &&
|
|
11994
|
-
Object.keys(target).forEach(function (key) { return (obj[key] = target[key]); });
|
|
11995
|
-
return obj;
|
|
11996
|
-
}
|
|
11997
|
-
function extendObject(target, src, persistOwnProps) {
|
|
11998
|
-
if (persistOwnProps === void 0) { persistOwnProps = true; }
|
|
11999
|
-
var obj = cloneObject(target, persistOwnProps);
|
|
12000
|
-
src && Object.keys(src).forEach(function (key) { return (obj[key] = src[key]); });
|
|
12001
|
-
return obj;
|
|
12002
|
-
}
|
|
12003
|
-
function isObject(obj) {
|
|
12004
|
-
var typename = typeof obj;
|
|
12005
|
-
return (obj &&
|
|
12006
|
-
typename !== 'string' &&
|
|
12007
|
-
typename !== 'number' &&
|
|
12008
|
-
typename !== 'boolean' &&
|
|
12009
|
-
typename !== 'function' &&
|
|
12010
|
-
!Array.isArray(obj));
|
|
12011
|
-
}
|
|
12012
|
-
function setVariable(data, key, value, convertKeyToPath) {
|
|
12013
|
-
data = data || {};
|
|
12014
|
-
if (key in data) {
|
|
12015
|
-
data[key] = value;
|
|
12016
|
-
return;
|
|
12017
|
-
}
|
|
12018
|
-
var parts = convertKeyToPath !== false ? keyToPath(key) : [key];
|
|
12019
|
-
var last = parts.pop();
|
|
12020
|
-
while (parts.length) {
|
|
12021
|
-
var key_1 = parts.shift();
|
|
12022
|
-
if (isPlainObject(data[key_1])) {
|
|
12023
|
-
data = data[key_1] = __assign({}, data[key_1]);
|
|
12024
|
-
}
|
|
12025
|
-
else if (Array.isArray(data[key_1])) {
|
|
12026
|
-
data[key_1] = data[key_1].concat();
|
|
12027
|
-
data = data[key_1];
|
|
12028
|
-
}
|
|
12029
|
-
else if (data[key_1]) {
|
|
12030
|
-
// throw new Error(`目标路径不是纯对象,不能覆盖`);
|
|
12031
|
-
// 强行转成对象
|
|
12032
|
-
data[key_1] = {};
|
|
12033
|
-
data = data[key_1];
|
|
12034
|
-
}
|
|
12035
|
-
else {
|
|
12036
|
-
data[key_1] = {};
|
|
12037
|
-
data = data[key_1];
|
|
12038
|
-
}
|
|
12039
|
-
}
|
|
12040
|
-
data[last] = value;
|
|
12041
|
-
}
|
|
12042
|
-
function deleteVariable(data, key) {
|
|
12043
|
-
if (!data) {
|
|
12044
|
-
return;
|
|
12045
|
-
}
|
|
12046
|
-
else if (data.hasOwnProperty(key)) {
|
|
12047
|
-
delete data[key];
|
|
12048
|
-
return;
|
|
12049
|
-
}
|
|
12050
|
-
var parts = keyToPath(key);
|
|
12051
|
-
var last = parts.pop();
|
|
12052
|
-
while (parts.length) {
|
|
12053
|
-
var key_2 = parts.shift();
|
|
12054
|
-
if (isPlainObject(data[key_2])) {
|
|
12055
|
-
data = data[key_2] = __assign({}, data[key_2]);
|
|
12056
|
-
}
|
|
12057
|
-
else if (data[key_2]) {
|
|
12058
|
-
throw new Error("\u76EE\u6807\u8DEF\u5F84\u4E0D\u662F\u7EAF\u5BF9\u8C61\uFF0C\u4E0D\u80FD\u4FEE\u6539");
|
|
12059
|
-
}
|
|
12060
|
-
else {
|
|
12061
|
-
break;
|
|
12062
|
-
}
|
|
12063
|
-
}
|
|
12064
|
-
if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {
|
|
12065
|
-
delete data[last];
|
|
12066
|
-
}
|
|
12067
|
-
}
|
|
12068
|
-
|
|
12069
12106
|
/*
|
|
12070
12107
|
* @Author: baozhoutao@steedos.com
|
|
12071
12108
|
* @Date: 2022-12-17 17:03:40
|