@steedos-widgets/amis-lib 1.3.22-beta.3 → 3.6.0-beta.10
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 +343 -102
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +343 -102
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +72 -57
- package/dist/index.umd.js.map +1 -1
- package/dist/types/lib/converter/amis/fields/lookup.d.ts +6 -4
- package/dist/types/lib/converter/amis/fields/table.d.ts +3 -1
- package/dist/types/lib/converter/amis/header.d.ts +1 -0
- package/dist/types/lib/converter/amis/index.d.ts +8 -0
- package/dist/types/lib/converter/amis/util.d.ts +5 -0
- package/dist/types/lib/objects.d.ts +9 -0
- package/dist/types/workflow/flow.d.ts +0 -1
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -409,8 +409,8 @@ const Router = {
|
|
|
409
409
|
/*
|
|
410
410
|
* @Author: baozhoutao@steedos.com
|
|
411
411
|
* @Date: 2022-07-20 16:29:22
|
|
412
|
-
* @LastEditors:
|
|
413
|
-
* @LastEditTime: 2023-
|
|
412
|
+
* @LastEditors: 殷亮辉 yinlianghui@hotoa.com
|
|
413
|
+
* @LastEditTime: 2023-12-28 14:59:08
|
|
414
414
|
* @Description:
|
|
415
415
|
*/
|
|
416
416
|
|
|
@@ -467,6 +467,21 @@ function getLookupListView(refObjectConfig) {
|
|
|
467
467
|
return listView;
|
|
468
468
|
}
|
|
469
469
|
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* 获取可比较的amis版本号
|
|
473
|
+
* @returns 只返回前两位版本,第三位忽略,比如3.6.3返回3.6
|
|
474
|
+
*/
|
|
475
|
+
function getComparableAmisVersion() {
|
|
476
|
+
let amis = (window.amisRequire && window.amisRequire('amis')) || window.Amis;
|
|
477
|
+
let amisVersion = amis && amis.version;
|
|
478
|
+
if(amisVersion){
|
|
479
|
+
let comparableVersions = amisVersion.split(".");
|
|
480
|
+
let comparableVersion = parseFloat(comparableVersions[0].toString() + "." + comparableVersions[1].toString());
|
|
481
|
+
return comparableVersion;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
|
|
470
485
|
/*
|
|
471
486
|
* @Author: baozhoutao@steedos.com
|
|
472
487
|
* @Date: 2022-05-23 09:53:08
|
|
@@ -557,7 +572,7 @@ function getNameTpl(field, ctx){
|
|
|
557
572
|
if(ctx && ctx.isLookup){
|
|
558
573
|
linkTarget = "target='_blank'";
|
|
559
574
|
}
|
|
560
|
-
return `<a href="${href}" ${linkTarget}>\${${field.name}}</a>`
|
|
575
|
+
return `<a href="${href}" ${linkTarget}>\${${field.name} | raw}</a>`
|
|
561
576
|
}
|
|
562
577
|
|
|
563
578
|
function getRelatedFieldTpl(field, ctx){
|
|
@@ -1114,7 +1129,7 @@ function getAmisStaticFieldType(type, readonly, options){
|
|
|
1114
1129
|
* @Author: baozhoutao@steedos.com
|
|
1115
1130
|
* @Date: 2022-10-28 14:15:09
|
|
1116
1131
|
* @LastEditors: liaodaxue
|
|
1117
|
-
* @LastEditTime: 2023-
|
|
1132
|
+
* @LastEditTime: 2023-12-29 10:46:50
|
|
1118
1133
|
* @Description:
|
|
1119
1134
|
*/
|
|
1120
1135
|
|
|
@@ -1168,7 +1183,8 @@ const getAmisFileEditSchema = (steedosField)=>{
|
|
|
1168
1183
|
dataType: "form-data",
|
|
1169
1184
|
url: `\${context.rootUrl}/s3/${tableName}`,
|
|
1170
1185
|
requestAdaptor: `
|
|
1171
|
-
const
|
|
1186
|
+
const superData = (typeof context != 'undefined') ? context : api.body;
|
|
1187
|
+
const { _master, global } = superData;
|
|
1172
1188
|
// const { recordId, objectName } = _master;
|
|
1173
1189
|
const { spaceId, userId, user } = global;
|
|
1174
1190
|
/*
|
|
@@ -1186,8 +1202,9 @@ const getAmisFileEditSchema = (steedosField)=>{
|
|
|
1186
1202
|
return api;
|
|
1187
1203
|
`,
|
|
1188
1204
|
adaptor: `
|
|
1189
|
-
const
|
|
1190
|
-
|
|
1205
|
+
const superData = (typeof context != 'undefined') ? context : api.body;
|
|
1206
|
+
const { context:pageContext } = superData;
|
|
1207
|
+
var rootUrl = pageContext.rootUrl + "/api/files/${tableName}/";
|
|
1191
1208
|
payload = {
|
|
1192
1209
|
status: response.status == 200 ? 0 : response.status,
|
|
1193
1210
|
msg: response.statusText,
|
|
@@ -1653,7 +1670,6 @@ async function getQuickEditSchema(field, options){
|
|
|
1653
1670
|
{
|
|
1654
1671
|
"actionType": "custom",
|
|
1655
1672
|
"script": `
|
|
1656
|
-
|
|
1657
1673
|
var _display = _.cloneDeep(event.data._display);
|
|
1658
1674
|
${displayField}
|
|
1659
1675
|
doAction({actionType: 'setValue', "args": {"value": {_display}},componentId: "${quickEditId}"});
|
|
@@ -1791,8 +1807,9 @@ async function getQuickEditSchema(field, options){
|
|
|
1791
1807
|
case "avatar":
|
|
1792
1808
|
case "image":
|
|
1793
1809
|
quickEditSchema.body[0].receiver.adaptor = `
|
|
1794
|
-
const
|
|
1795
|
-
|
|
1810
|
+
const superData = (typeof context != 'undefined') ? context : api.body;
|
|
1811
|
+
const { context:pageContext } = superData;
|
|
1812
|
+
var rootUrl = pageContext.rootUrl + "/api/files/${field.type}s/";
|
|
1796
1813
|
payload = {
|
|
1797
1814
|
status: response.status == 200 ? 0 : response.status,
|
|
1798
1815
|
msg: response.statusText,
|
|
@@ -1823,9 +1840,26 @@ async function getQuickEditSchema(field, options){
|
|
|
1823
1840
|
"onEvent":{
|
|
1824
1841
|
"init":{
|
|
1825
1842
|
"actions":[
|
|
1843
|
+
//amis3.6无法从数据域中直接拿到正确的selectitems,需要通过crud组件的getSelected()函数获取
|
|
1844
|
+
{
|
|
1845
|
+
"actionType": "custom",
|
|
1846
|
+
"script": `
|
|
1847
|
+
crudScoped = event.context.scoped.getComponentById('${options.crudId}');
|
|
1848
|
+
const selectedItems = crudScoped && crudScoped.control.getSelected();
|
|
1849
|
+
doAction({
|
|
1850
|
+
"componentId": "${quickEditId}",
|
|
1851
|
+
"actionType": "setValue",
|
|
1852
|
+
"args": {
|
|
1853
|
+
"value": {
|
|
1854
|
+
selectedItems
|
|
1855
|
+
}
|
|
1856
|
+
}
|
|
1857
|
+
});
|
|
1858
|
+
`
|
|
1859
|
+
},
|
|
1826
1860
|
{
|
|
1827
1861
|
"actionType": "setValue",
|
|
1828
|
-
"componentId":
|
|
1862
|
+
"componentId": quickEditId,
|
|
1829
1863
|
"args": {
|
|
1830
1864
|
"value":{
|
|
1831
1865
|
"quickedit_record_permissions_loading": true
|
|
@@ -1850,7 +1884,7 @@ async function getQuickEditSchema(field, options){
|
|
|
1850
1884
|
},
|
|
1851
1885
|
{
|
|
1852
1886
|
"actionType": "setValue",
|
|
1853
|
-
"componentId":
|
|
1887
|
+
"componentId": quickEditId,
|
|
1854
1888
|
"args": {
|
|
1855
1889
|
"value":{
|
|
1856
1890
|
"quickedit_record_permissions_loading": false
|
|
@@ -1859,7 +1893,7 @@ async function getQuickEditSchema(field, options){
|
|
|
1859
1893
|
},
|
|
1860
1894
|
{
|
|
1861
1895
|
"actionType": "setValue",
|
|
1862
|
-
"componentId":
|
|
1896
|
+
"componentId": quickEditId,
|
|
1863
1897
|
"args": {
|
|
1864
1898
|
"value":{
|
|
1865
1899
|
"quickedit_record_permissions": "${event.data}"
|
|
@@ -2038,8 +2072,6 @@ function getFieldWidth(width){
|
|
|
2038
2072
|
async function getTableColumns(fields, options){
|
|
2039
2073
|
const columns = [];
|
|
2040
2074
|
if(!options.isLookup && !options.isInputTable){
|
|
2041
|
-
//将_display放入crud的columns中,可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑
|
|
2042
|
-
columns.push({name: '_display',type: 'static', width: 32, placeholder: "",id: "_display_${_index}", className: "hidden"});
|
|
2043
2075
|
if(!options.enable_tree){
|
|
2044
2076
|
columns.push({name: '_index',type: 'text', width: 32, placeholder: ""});
|
|
2045
2077
|
}
|
|
@@ -2197,8 +2229,8 @@ async function getTableColumns(fields, options){
|
|
|
2197
2229
|
const href = Router.getObjectDetailPath({
|
|
2198
2230
|
...options, formFactor: options.formFactor, appId: "${appId}", objectName: options.objectName || "${objectName}", recordId: `\${${options.idFieldName}}`
|
|
2199
2231
|
});
|
|
2200
|
-
columns[
|
|
2201
|
-
columns[
|
|
2232
|
+
columns[0].type = "tpl";
|
|
2233
|
+
columns[0].tpl = `<a href="${href}">\${${columns[0].name}}</a>`;
|
|
2202
2234
|
}
|
|
2203
2235
|
return columns;
|
|
2204
2236
|
}
|
|
@@ -2457,7 +2489,7 @@ async function getTableOperation(ctx){
|
|
|
2457
2489
|
type: 'steedos-object-button',
|
|
2458
2490
|
name: button.name,
|
|
2459
2491
|
objectName: button.objectName,
|
|
2460
|
-
|
|
2492
|
+
visibleOnAlias: getButtonVisibleOn$1(button),
|
|
2461
2493
|
className: 'antd-Button--default'
|
|
2462
2494
|
});
|
|
2463
2495
|
});
|
|
@@ -2582,8 +2614,18 @@ async function getTableSchema$1(fields, options){
|
|
|
2582
2614
|
}
|
|
2583
2615
|
|
|
2584
2616
|
if(!isLookup && !hiddenColumnOperation){
|
|
2585
|
-
|
|
2617
|
+
const toolbarOperation = await getTableOperation(options);
|
|
2618
|
+
columns.push(toolbarOperation);
|
|
2586
2619
|
}
|
|
2620
|
+
|
|
2621
|
+
}
|
|
2622
|
+
|
|
2623
|
+
const treeConfig = {};
|
|
2624
|
+
|
|
2625
|
+
if(options.enable_tree){
|
|
2626
|
+
treeConfig.expandConfig = {
|
|
2627
|
+
expand: 'first'
|
|
2628
|
+
};
|
|
2587
2629
|
}
|
|
2588
2630
|
|
|
2589
2631
|
return {
|
|
@@ -2601,6 +2643,7 @@ async function getTableSchema$1(fields, options){
|
|
|
2601
2643
|
labelTpl: `\${${options.labelFieldName}}`,
|
|
2602
2644
|
autoFillHeight: false, // 自动高度效果不理想,先关闭
|
|
2603
2645
|
columnsTogglable: false,
|
|
2646
|
+
...treeConfig
|
|
2604
2647
|
}
|
|
2605
2648
|
}
|
|
2606
2649
|
|
|
@@ -2917,17 +2960,6 @@ async function getTableApi(mainObject, fields, options){
|
|
|
2917
2960
|
payload.data.rows = getTreeOptions(records,{"valueField":"_id"});
|
|
2918
2961
|
assignIndexToTreeRecords(payload.data.rows, '');
|
|
2919
2962
|
}
|
|
2920
|
-
try{
|
|
2921
|
-
setTimeout(() => {
|
|
2922
|
-
let expandBtn = $('.steedos-object-listview-content .antd-Table-content .antd-Table-table thead .antd-Table-expandBtn');
|
|
2923
|
-
if(expandBtn && expandBtn.length > 0 && !expandBtn.hasClass("is-active")){
|
|
2924
|
-
expandBtn[0].click();
|
|
2925
|
-
}
|
|
2926
|
-
}, 600);
|
|
2927
|
-
}
|
|
2928
|
-
catch(ex){
|
|
2929
|
-
console.error("tree数据格式展开异常:", ex);
|
|
2930
|
-
}
|
|
2931
2963
|
}
|
|
2932
2964
|
|
|
2933
2965
|
|
|
@@ -3692,6 +3724,7 @@ async function getObjectCalendar(objectSchema, calendarOptions, options) {
|
|
|
3692
3724
|
"dialog": {
|
|
3693
3725
|
"type": "dialog",
|
|
3694
3726
|
"title": title,
|
|
3727
|
+
data,
|
|
3695
3728
|
"body": [
|
|
3696
3729
|
{
|
|
3697
3730
|
"type": "steedos-object-form",
|
|
@@ -5754,12 +5787,16 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5754
5787
|
// }
|
|
5755
5788
|
// listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
|
|
5756
5789
|
// 点击搜索的时候自动收起搜索栏
|
|
5757
|
-
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
|
|
5762
|
-
|
|
5790
|
+
//触发amis crud 高度重算
|
|
5791
|
+
doAction({
|
|
5792
|
+
"actionType": "broadcast",
|
|
5793
|
+
"args": {
|
|
5794
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
5795
|
+
},
|
|
5796
|
+
"data": {
|
|
5797
|
+
"timeOut": 500
|
|
5798
|
+
}
|
|
5799
|
+
});
|
|
5763
5800
|
const filterService = filterForm.context.getComponents().find(function(n){
|
|
5764
5801
|
return n.props.type === "service";
|
|
5765
5802
|
});
|
|
@@ -5792,6 +5829,8 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5792
5829
|
`;
|
|
5793
5830
|
const onCancelScript = `
|
|
5794
5831
|
// console.log("===onCancelScript=form==");
|
|
5832
|
+
let isLookup = event.data.isLookup;
|
|
5833
|
+
let __lookupField = event.data.__lookupField;
|
|
5795
5834
|
const scope = event.context.scoped;
|
|
5796
5835
|
var filterForm = scope.parent.parent.getComponents().find(function(n){
|
|
5797
5836
|
return n.props.type === "form";
|
|
@@ -5839,16 +5878,36 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
5839
5878
|
// });
|
|
5840
5879
|
|
|
5841
5880
|
// 清除__changedFilterFormValues中的值
|
|
5842
|
-
crud && crud.setData({__changedFilterFormValues: {}});
|
|
5881
|
+
// crud && crud.setData({__changedFilterFormValues: {}});
|
|
5882
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
5883
|
+
if(isLookup && __lookupField){
|
|
5884
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
5885
|
+
if(__lookupField.reference_to_field){
|
|
5886
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
5887
|
+
}
|
|
5888
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
5889
|
+
}
|
|
5890
|
+
if(crud){
|
|
5891
|
+
let crudData = crud.getData();
|
|
5892
|
+
crudData[__changedFilterFormValuesKey] = {};
|
|
5893
|
+
crud.setData(crudData);
|
|
5894
|
+
}
|
|
5843
5895
|
filterForm.handleFormSubmit(event);
|
|
5844
5896
|
// crud.handleFilterSubmit(removedValues);
|
|
5845
5897
|
|
|
5846
5898
|
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
5847
5899
|
filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});
|
|
5848
5900
|
//触发amis crud 高度重算
|
|
5849
|
-
|
|
5850
|
-
|
|
5851
|
-
|
|
5901
|
+
doAction({
|
|
5902
|
+
"actionType": "broadcast",
|
|
5903
|
+
"args": {
|
|
5904
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
5905
|
+
},
|
|
5906
|
+
"data": {
|
|
5907
|
+
"timeOut": 100
|
|
5908
|
+
}
|
|
5909
|
+
});
|
|
5910
|
+
|
|
5852
5911
|
// 移除搜索按钮上的红点
|
|
5853
5912
|
// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
5854
5913
|
let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
@@ -6005,9 +6064,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
|
|
|
6005
6064
|
sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));
|
|
6006
6065
|
}
|
|
6007
6066
|
//触发amis crud 高度重算
|
|
6008
|
-
|
|
6009
|
-
|
|
6010
|
-
|
|
6067
|
+
doAction({
|
|
6068
|
+
"actionType": "broadcast",
|
|
6069
|
+
"args": {
|
|
6070
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
6071
|
+
},
|
|
6072
|
+
"data": {
|
|
6073
|
+
"timeOut": 100
|
|
6074
|
+
}
|
|
6075
|
+
});
|
|
6011
6076
|
// ===END===
|
|
6012
6077
|
`;
|
|
6013
6078
|
return {
|
|
@@ -6502,7 +6567,10 @@ async function getObjectRecordDetailHeader(objectSchema, recordId, options) {
|
|
|
6502
6567
|
"@history_paths.changed": {
|
|
6503
6568
|
"actions": [
|
|
6504
6569
|
{
|
|
6505
|
-
"actionType": "reload"
|
|
6570
|
+
"actionType": "reload",
|
|
6571
|
+
// amis 3.6需要传入data来触发下面的window:historyPaths重新计算,此问题随机偶发,加上data后正常
|
|
6572
|
+
"data": {
|
|
6573
|
+
}
|
|
6506
6574
|
}
|
|
6507
6575
|
]
|
|
6508
6576
|
}
|
|
@@ -7710,13 +7778,16 @@ const filterService = filterForm.context.getComponents().find(function(n){
|
|
|
7710
7778
|
});
|
|
7711
7779
|
let toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;
|
|
7712
7780
|
filterService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
7713
|
-
|
|
7714
|
-
|
|
7715
|
-
|
|
7716
|
-
|
|
7717
|
-
|
|
7718
|
-
}
|
|
7719
|
-
|
|
7781
|
+
//触发amis crud 高度重算
|
|
7782
|
+
doAction({
|
|
7783
|
+
"actionType": "broadcast",
|
|
7784
|
+
"args": {
|
|
7785
|
+
"eventName": "@height.changed." + event.data.objectName
|
|
7786
|
+
},
|
|
7787
|
+
"data": {
|
|
7788
|
+
"timeOut": 1000
|
|
7789
|
+
}
|
|
7790
|
+
});
|
|
7720
7791
|
// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题
|
|
7721
7792
|
let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
|
|
7722
7793
|
crudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});
|
|
@@ -7767,7 +7838,12 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
7767
7838
|
__changedSearchBoxValues["${keywordsSearchBoxName}"] = event.data["${keywordsSearchBoxName}"];
|
|
7768
7839
|
// crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
7769
7840
|
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
7770
|
-
crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
7841
|
+
// crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});
|
|
7842
|
+
if(crud){
|
|
7843
|
+
let crudData = crud.getData();
|
|
7844
|
+
crudData.__changedSearchBoxValues = __changedSearchBoxValues;
|
|
7845
|
+
crud.setData(crudData);
|
|
7846
|
+
}
|
|
7771
7847
|
`;
|
|
7772
7848
|
|
|
7773
7849
|
// onSearchScript中加上了onChangeScript中的脚本,是因为amis 3.2不能用change事件执行onChangeScript
|
|
@@ -7780,9 +7856,19 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
7780
7856
|
// const scope = event.context.scoped;
|
|
7781
7857
|
// 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null
|
|
7782
7858
|
// 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空
|
|
7859
|
+
let isLookup = event.data.isLookup;
|
|
7860
|
+
let __lookupField = event.data.__lookupField;
|
|
7861
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
7862
|
+
if(isLookup && __lookupField){
|
|
7863
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
7864
|
+
if(__lookupField.reference_to_field){
|
|
7865
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
7866
|
+
}
|
|
7867
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
7868
|
+
}
|
|
7783
7869
|
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
7784
7870
|
setTimeout(function(){
|
|
7785
|
-
filterForm.setValues(event.data
|
|
7871
|
+
filterForm.setValues(event.data[__changedFilterFormValuesKey]);
|
|
7786
7872
|
}, 500);
|
|
7787
7873
|
`;
|
|
7788
7874
|
|
|
@@ -7803,8 +7889,8 @@ function getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLooku
|
|
|
7803
7889
|
"name": keywordsSearchBoxName,
|
|
7804
7890
|
"placeholder": "搜索此列表",
|
|
7805
7891
|
"value": crudKeywords,
|
|
7806
|
-
"clearable": true
|
|
7807
|
-
|
|
7892
|
+
// "clearable": true,//因为清除并不会触发失去焦点事件,只有禁用,但是它会触发change事件,所以等升级到amis 3.4+后可以重新放开
|
|
7893
|
+
"clearAndSubmit": true,
|
|
7808
7894
|
"searchImediately": false,
|
|
7809
7895
|
"onEvent": {
|
|
7810
7896
|
"search": {
|
|
@@ -8065,12 +8151,16 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
8065
8151
|
return;
|
|
8066
8152
|
}
|
|
8067
8153
|
// 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏
|
|
8068
|
-
|
|
8069
|
-
|
|
8070
|
-
|
|
8071
|
-
|
|
8072
|
-
|
|
8073
|
-
|
|
8154
|
+
//触发amis crud 高度重算
|
|
8155
|
+
doAction({
|
|
8156
|
+
"actionType": "broadcast",
|
|
8157
|
+
"args": {
|
|
8158
|
+
"eventName": "@height.changed.${objectSchema.name}"
|
|
8159
|
+
},
|
|
8160
|
+
"data": {
|
|
8161
|
+
"timeOut": 1000
|
|
8162
|
+
}
|
|
8163
|
+
});
|
|
8074
8164
|
resizeWindow();
|
|
8075
8165
|
const scope = event.context.scoped;
|
|
8076
8166
|
// let filterFormValues = event.data;
|
|
@@ -8084,18 +8174,34 @@ async function getObjectFilter(objectSchema, fields, options) {
|
|
|
8084
8174
|
crudService && crudService.setData({isFieldsFilterEmpty});
|
|
8085
8175
|
`;
|
|
8086
8176
|
let onChangeScript = `
|
|
8177
|
+
let isLookup = event.data.isLookup;
|
|
8178
|
+
let __lookupField = event.data.__lookupField;
|
|
8087
8179
|
const scope = event.context.scoped;
|
|
8088
8180
|
// let filterFormValues = event.data;
|
|
8089
8181
|
let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");
|
|
8090
8182
|
let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");
|
|
8091
8183
|
// 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。
|
|
8092
8184
|
let filterFormValues = filterFormService.getData();
|
|
8185
|
+
filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据
|
|
8093
8186
|
let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
|
|
8094
8187
|
const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;
|
|
8095
8188
|
// let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
|
|
8096
8189
|
// crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
8097
8190
|
// 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中
|
|
8098
|
-
crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
8191
|
+
// crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});
|
|
8192
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
8193
|
+
if(isLookup && __lookupField){
|
|
8194
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
8195
|
+
if(__lookupField.reference_to_field){
|
|
8196
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
8197
|
+
}
|
|
8198
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
8199
|
+
}
|
|
8200
|
+
if(crud){
|
|
8201
|
+
let crudData = crud.getData();
|
|
8202
|
+
crudData[__changedFilterFormValuesKey] = changedFilterFormValues;
|
|
8203
|
+
crud.setData(crudData);
|
|
8204
|
+
}
|
|
8099
8205
|
`;
|
|
8100
8206
|
return {
|
|
8101
8207
|
"title": "",
|
|
@@ -8364,6 +8470,11 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8364
8470
|
crudModeClassName = `steedos-crud-mode-${body.mode}`;
|
|
8365
8471
|
}
|
|
8366
8472
|
|
|
8473
|
+
if(body.columns && options.formFactor != 'SMALL'){
|
|
8474
|
+
//将_display放入crud的columns的倒数第二列中(最后一列会影响固定列),可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑
|
|
8475
|
+
body.columns.splice(body.columns.length - 1, 0, {name: '_display',type: 'static', width: 32, placeholder: "",id: "_display_${_index}", className: "hidden"});
|
|
8476
|
+
}
|
|
8477
|
+
|
|
8367
8478
|
if (defaults) {
|
|
8368
8479
|
const headerSchema = defaults.headerSchema;
|
|
8369
8480
|
const footerSchema = defaults.footerSchema;
|
|
@@ -8388,6 +8499,7 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8388
8499
|
body = wrappedBody;
|
|
8389
8500
|
}
|
|
8390
8501
|
}
|
|
8502
|
+
|
|
8391
8503
|
// console.timeEnd('getObjectCRUD');
|
|
8392
8504
|
// TODO: data应该只留loaded,其他属性都改为从上层传递下来
|
|
8393
8505
|
return {
|
|
@@ -8397,7 +8509,24 @@ async function getObjectCRUD(objectSchema, fields, options){
|
|
|
8397
8509
|
id: `service_${id}`,
|
|
8398
8510
|
name: `page`,
|
|
8399
8511
|
data: options.amisData,
|
|
8400
|
-
body: body
|
|
8512
|
+
body: body,
|
|
8513
|
+
//监听广播事件,重算crud高度
|
|
8514
|
+
onEvent: {
|
|
8515
|
+
[`@height.changed.${objectSchema.name}`]: {
|
|
8516
|
+
"actions": [
|
|
8517
|
+
{
|
|
8518
|
+
"actionType": "custom",
|
|
8519
|
+
"script": `
|
|
8520
|
+
var crudScoped = event.context.scoped.getComponentById('${body.id}');
|
|
8521
|
+
var timeOut = event.data.timeOut || 500;
|
|
8522
|
+
setTimeout(()=>{
|
|
8523
|
+
crudScoped && crudScoped.control.updateAutoFillHeight();
|
|
8524
|
+
}, timeOut);
|
|
8525
|
+
`
|
|
8526
|
+
}
|
|
8527
|
+
]
|
|
8528
|
+
}
|
|
8529
|
+
}
|
|
8401
8530
|
}
|
|
8402
8531
|
}
|
|
8403
8532
|
|
|
@@ -10275,6 +10404,60 @@ function getReferenceToSync(field) {
|
|
|
10275
10404
|
}
|
|
10276
10405
|
|
|
10277
10406
|
function getLookupSapceUserTreeSchema(isMobile){
|
|
10407
|
+
let apiAdaptor = `
|
|
10408
|
+
// console.log("===getLookupSapceUserTreeSchema===", JSON.stringify(payload));
|
|
10409
|
+
const records = payload.data.options;
|
|
10410
|
+
let isTreeOptionsComputed = false;
|
|
10411
|
+
if(records.length === 1 && records[0].children){
|
|
10412
|
+
isTreeOptionsComputed = true;
|
|
10413
|
+
}
|
|
10414
|
+
if(isTreeOptionsComputed){
|
|
10415
|
+
return payload;
|
|
10416
|
+
}
|
|
10417
|
+
const treeRecords = [];
|
|
10418
|
+
const getChildren = (records, childrenIds) => {
|
|
10419
|
+
if (!childrenIds) {
|
|
10420
|
+
return;
|
|
10421
|
+
}
|
|
10422
|
+
const children = _.filter(records, (record) => {
|
|
10423
|
+
return _.includes(childrenIds, record.value)
|
|
10424
|
+
});
|
|
10425
|
+
_.each(children, (item) => {
|
|
10426
|
+
if (item.children) {
|
|
10427
|
+
item.children = getChildren(records, item.children)
|
|
10428
|
+
}else{
|
|
10429
|
+
item.children = [];
|
|
10430
|
+
}
|
|
10431
|
+
})
|
|
10432
|
+
return children;
|
|
10433
|
+
}
|
|
10434
|
+
|
|
10435
|
+
const getRoot = (records) => {
|
|
10436
|
+
for (var i = 0; i < records.length; i++) {
|
|
10437
|
+
records[i].noParent = 0;
|
|
10438
|
+
if (!!records[i].parent) {
|
|
10439
|
+
biaozhi = 1
|
|
10440
|
+
for (var j = 0; j < records.length; j++) {
|
|
10441
|
+
if (records[i].parent == records[j].value)
|
|
10442
|
+
biaozhi = 0;
|
|
10443
|
+
}
|
|
10444
|
+
if (biaozhi == 1) records[i].noParent = 1;
|
|
10445
|
+
} else records[i].noParent = 1;
|
|
10446
|
+
}
|
|
10447
|
+
}
|
|
10448
|
+
getRoot(records);
|
|
10449
|
+
console.log(records)
|
|
10450
|
+
|
|
10451
|
+
_.each(records, (record) => {
|
|
10452
|
+
if (record.noParent == 1) {
|
|
10453
|
+
treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));
|
|
10454
|
+
}
|
|
10455
|
+
});
|
|
10456
|
+
console.log(treeRecords)
|
|
10457
|
+
|
|
10458
|
+
payload.data.options = treeRecords;
|
|
10459
|
+
return payload;
|
|
10460
|
+
`;
|
|
10278
10461
|
const treeSchema = {
|
|
10279
10462
|
"type": "input-tree",
|
|
10280
10463
|
"className":"steedos-select-user-tree",
|
|
@@ -10285,8 +10468,7 @@ function getLookupSapceUserTreeSchema(isMobile){
|
|
|
10285
10468
|
"headers": {
|
|
10286
10469
|
"Authorization": "Bearer ${context.tenantId},${context.authToken}"
|
|
10287
10470
|
},
|
|
10288
|
-
"adaptor":
|
|
10289
|
-
"requestAdaptor": "\n ",
|
|
10471
|
+
"adaptor": apiAdaptor,
|
|
10290
10472
|
"data": {
|
|
10291
10473
|
"query": "{options:organizations(filters:[\"hidden\", \"!=\", true],sort:\"sort_no desc\"){value:_id label:name,parent,children}}"
|
|
10292
10474
|
},
|
|
@@ -10487,13 +10669,24 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10487
10669
|
let keywordsSearchBoxName = `__keywords_lookup__${field.name.replace(/\./g, "_")}__to__${refObjectConfig.name}`;
|
|
10488
10670
|
|
|
10489
10671
|
source.requestAdaptor = `
|
|
10490
|
-
let
|
|
10672
|
+
let __changedFilterFormValuesKey = "__changedFilterFormValues";
|
|
10673
|
+
let __lookupField = api.data.$self.__lookupField;
|
|
10674
|
+
if(__lookupField){
|
|
10675
|
+
let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;
|
|
10676
|
+
if(__lookupField.reference_to_field){
|
|
10677
|
+
lookupTag += "__" + __lookupField.reference_to_field;
|
|
10678
|
+
}
|
|
10679
|
+
__changedFilterFormValuesKey += lookupTag;
|
|
10680
|
+
}
|
|
10681
|
+
let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};
|
|
10491
10682
|
let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};
|
|
10492
10683
|
// 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:
|
|
10493
10684
|
// 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索
|
|
10494
10685
|
// 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。
|
|
10495
10686
|
// 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。
|
|
10496
|
-
|
|
10687
|
+
if(api.data.$self.op !== 'loadOptions'){
|
|
10688
|
+
Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);
|
|
10689
|
+
}
|
|
10497
10690
|
const selfData = JSON.parse(JSON.stringify(api.data.$self));
|
|
10498
10691
|
var filters = [];
|
|
10499
10692
|
var pageSize = api.data.pageSize || 10;
|
|
@@ -10588,8 +10781,19 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10588
10781
|
})
|
|
10589
10782
|
payload.data.rows = rows;
|
|
10590
10783
|
*/
|
|
10784
|
+
if(enable_tree){
|
|
10785
|
+
const rows = _.map(payload.data.rows, (item)=>{
|
|
10786
|
+
delete item.children;
|
|
10787
|
+
delete item.parent;
|
|
10788
|
+
return item;
|
|
10789
|
+
})
|
|
10790
|
+
payload.data.rows = rows;
|
|
10791
|
+
}
|
|
10591
10792
|
return payload;
|
|
10592
10793
|
}
|
|
10794
|
+
if(!payload.data.rows){
|
|
10795
|
+
payload.data.rows = [];
|
|
10796
|
+
}
|
|
10593
10797
|
if(enable_tree){
|
|
10594
10798
|
const records = payload.data.rows;
|
|
10595
10799
|
const treeRecords = [];
|
|
@@ -10616,6 +10820,8 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10616
10820
|
_.each(children, (item)=>{
|
|
10617
10821
|
if(item.children){
|
|
10618
10822
|
item.children = getChildren(records, item.children)
|
|
10823
|
+
}else{
|
|
10824
|
+
item.children = [];
|
|
10619
10825
|
}
|
|
10620
10826
|
})
|
|
10621
10827
|
return children;
|
|
@@ -10628,14 +10834,6 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10628
10834
|
}
|
|
10629
10835
|
});
|
|
10630
10836
|
payload.data.rows = treeRecords;
|
|
10631
|
-
try{
|
|
10632
|
-
setTimeout(() => {
|
|
10633
|
-
$('.amis-dialog-widget.antd-Modal .antd-Table-content .antd-Table-table thead .antd-Table-expandBtn')[0]?.click();
|
|
10634
|
-
}, 600);
|
|
10635
|
-
}
|
|
10636
|
-
catch(ex){
|
|
10637
|
-
console.error("tree数据格式展开异常:", ex);
|
|
10638
|
-
}
|
|
10639
10837
|
}
|
|
10640
10838
|
return payload;
|
|
10641
10839
|
`;
|
|
@@ -10662,6 +10860,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10662
10860
|
labelFieldName,
|
|
10663
10861
|
top: top,
|
|
10664
10862
|
isLookup: true,
|
|
10863
|
+
enable_tree: refObjectConfig.enable_tree,
|
|
10665
10864
|
...ctx
|
|
10666
10865
|
});
|
|
10667
10866
|
|
|
@@ -10677,7 +10876,7 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10677
10876
|
const isAllowCreate = refObjectConfig.permissions.allowCreate;
|
|
10678
10877
|
const isCreate = ___namespace.isBoolean(field.create) ? field.create : true;
|
|
10679
10878
|
// lookup字段配置过滤条件就强制不显示新建按钮
|
|
10680
|
-
let isHasFilters = (field.filters || field._filtersFunction) ? true : false;
|
|
10879
|
+
let isHasFilters = (field.filters || field.filtersFunction || field._filtersFunction) ? true : false;
|
|
10681
10880
|
if (isAllowCreate && isCreate && !isHasFilters) {
|
|
10682
10881
|
const new_button = await getSchema$5(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });
|
|
10683
10882
|
new_button.align = "right";
|
|
@@ -10697,7 +10896,12 @@ async function lookupToAmisPicker(field, readonly, ctx){
|
|
|
10697
10896
|
"objectName": refObjectConfig.name,
|
|
10698
10897
|
"uiSchema": refObjectConfig,
|
|
10699
10898
|
"listName": listName,// 需要按视图取可搜索项
|
|
10700
|
-
"isLookup": true
|
|
10899
|
+
"isLookup": true,
|
|
10900
|
+
"__lookupField": {
|
|
10901
|
+
"name": field.name,
|
|
10902
|
+
"reference_to": refObjectConfig.name,
|
|
10903
|
+
"reference_to_field": field.reference_to_field
|
|
10904
|
+
}
|
|
10701
10905
|
});
|
|
10702
10906
|
|
|
10703
10907
|
if(!pickerSchema.onEvent){
|
|
@@ -10870,7 +11074,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
10870
11074
|
sendOn.push(`this.${fName}`);
|
|
10871
11075
|
});
|
|
10872
11076
|
if(depend_on.length > 0){
|
|
10873
|
-
apiInfo.url = `${apiInfo.url}
|
|
11077
|
+
apiInfo.url = `${apiInfo.url}&${depend_on.join('&')}`;
|
|
10874
11078
|
apiInfo.sendOn = `${sendOn.join(' && ')}`;
|
|
10875
11079
|
}
|
|
10876
11080
|
}
|
|
@@ -10978,6 +11182,13 @@ async function lookupToAmisSelect(field, readonly, ctx){
|
|
|
10978
11182
|
autoComplete: apiInfo,
|
|
10979
11183
|
searchable: true,
|
|
10980
11184
|
};
|
|
11185
|
+
let amisVersion = getComparableAmisVersion();
|
|
11186
|
+
if(amisVersion >= 3.6){
|
|
11187
|
+
// amis 3.6中不加source会造成子表组件中弹出行编辑窗口的lookup字段有时不请求接口(概率现象,同一个地方反复操作有时请求有时不请求)
|
|
11188
|
+
// 但是同时配置autoComplete和source会多请求一次接口
|
|
11189
|
+
// TODO:应该想办法把是否字段在子表组件内,即ctx.isInputTable,如果不在子表组件内不需要加source
|
|
11190
|
+
data.source = apiInfo;
|
|
11191
|
+
}
|
|
10981
11192
|
//删除xlink:href中的rootUrl前缀,解决客户端svg为空的问题
|
|
10982
11193
|
const select_menuTpl = `<span class='flex items-center mt-0.5'>
|
|
10983
11194
|
<span role='img' aria-label='smile' class='anticon anticon-smile'>
|
|
@@ -11059,18 +11270,37 @@ async function lookupToAmis(field, readonly, ctx){
|
|
|
11059
11270
|
|
|
11060
11271
|
// 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性
|
|
11061
11272
|
let enableEnhancedLookup = ___namespace.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;
|
|
11273
|
+
let amisVersion = getComparableAmisVersion();
|
|
11274
|
+
if(amisVersion >= 3.6){
|
|
11275
|
+
// amis 3.6.3单选和多选的树picker都有bug(https://github.com/baidu/amis/issues/9279,https://github.com/baidu/amis/issues/9295),我们改amis源码修正了
|
|
11276
|
+
// amis 3.6.3多选的下拉树组件有bug,多选树字段的选中值在编辑模式展开树时不会自动勾选树里面的节点,而是始终勾选显示在最外面的选中值选项(即defaultValueOptions),amis 3.2没有这个问题
|
|
11277
|
+
// 这里强制禁用多选下拉树,统一改为弹出树,如果以后需要下拉树功能,可以把下拉树组件改为一次性加载所有树节点数据模式来跳过这个问题
|
|
11278
|
+
if(!enableEnhancedLookup && refObject.enable_tree && field.multiple){
|
|
11279
|
+
enableEnhancedLookup = true;
|
|
11280
|
+
}
|
|
11281
|
+
}
|
|
11282
|
+
let amisSchema;
|
|
11062
11283
|
// 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式
|
|
11063
11284
|
if(enableEnhancedLookup == true){
|
|
11064
|
-
|
|
11285
|
+
amisSchema = await lookupToAmisPicker(field, readonly, ctx);
|
|
11065
11286
|
}else if(refObject.enable_tree) {
|
|
11066
|
-
|
|
11287
|
+
amisSchema = await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {
|
|
11067
11288
|
labelField: referenceTo.labelField?.name || 'name',
|
|
11068
11289
|
valueField: referenceTo.valueField?.name || '_id',
|
|
11069
11290
|
objectName: referenceTo.objectName
|
|
11070
11291
|
}));
|
|
11071
11292
|
}else {
|
|
11072
|
-
|
|
11293
|
+
amisSchema = await lookupToAmisSelect(field, readonly, ctx);
|
|
11294
|
+
}
|
|
11295
|
+
let refLookupPage = refObject.pages && refObject.pages.lookup;
|
|
11296
|
+
if(refLookupPage){
|
|
11297
|
+
if(typeof refLookupPage == 'string'){
|
|
11298
|
+
refLookupPage = JSON.parse(refLookupPage);
|
|
11299
|
+
}
|
|
11300
|
+
// Object.assign(amisSchema, refLookupPage);
|
|
11301
|
+
// amisSchema = _.defaultsDeep({}, refLookupPage, amisSchema);
|
|
11073
11302
|
}
|
|
11303
|
+
return amisSchema;
|
|
11074
11304
|
}
|
|
11075
11305
|
|
|
11076
11306
|
async function lookupToAmisSelectUser(field, readonly, ctx){
|
|
@@ -11337,9 +11567,9 @@ const OMIT_FIELDS = ['created', 'created_by', 'modified', 'modified_by'];
|
|
|
11337
11567
|
// const Lookup = require('./lookup');
|
|
11338
11568
|
|
|
11339
11569
|
function getBaseFields(readonly){
|
|
11340
|
-
let
|
|
11570
|
+
let className = 'm-0';
|
|
11341
11571
|
if(readonly){
|
|
11342
|
-
|
|
11572
|
+
className = `${className}`;
|
|
11343
11573
|
}
|
|
11344
11574
|
return [
|
|
11345
11575
|
{
|
|
@@ -11347,7 +11577,7 @@ function getBaseFields(readonly){
|
|
|
11347
11577
|
label: "创建人",
|
|
11348
11578
|
type: "static",
|
|
11349
11579
|
labelClassName: 'text-left',
|
|
11350
|
-
className:
|
|
11580
|
+
className: className,
|
|
11351
11581
|
tpl: getCreatedInfoTpl()
|
|
11352
11582
|
},
|
|
11353
11583
|
{
|
|
@@ -11355,7 +11585,7 @@ function getBaseFields(readonly){
|
|
|
11355
11585
|
label: "修改人",
|
|
11356
11586
|
type: "static",
|
|
11357
11587
|
labelClassName: 'text-left',
|
|
11358
|
-
className:
|
|
11588
|
+
className: className,
|
|
11359
11589
|
tpl: getModifiedInfoTpl()
|
|
11360
11590
|
}
|
|
11361
11591
|
]
|
|
@@ -11819,7 +12049,8 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
11819
12049
|
},
|
|
11820
12050
|
pipeOut: (value, oldValue, data) => {
|
|
11821
12051
|
if(value){
|
|
11822
|
-
|
|
12052
|
+
const result = value/100;
|
|
12053
|
+
return Number(result.toFixed(field.scale+2));
|
|
11823
12054
|
}
|
|
11824
12055
|
return value;
|
|
11825
12056
|
},
|
|
@@ -12051,7 +12282,7 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
|
|
|
12051
12282
|
}
|
|
12052
12283
|
if(!___namespace.isEmpty(convertData)){
|
|
12053
12284
|
if(field.is_wide || convertData.type === 'group'){
|
|
12054
|
-
convertData.className = 'col-span-2 m-
|
|
12285
|
+
convertData.className = 'col-span-2 m-0';
|
|
12055
12286
|
}else {
|
|
12056
12287
|
convertData.className = 'm-1';
|
|
12057
12288
|
}
|
|
@@ -12458,8 +12689,8 @@ async function getFormBody(permissionFields, formFields, ctx){
|
|
|
12458
12689
|
/*
|
|
12459
12690
|
* @Author: 殷亮辉 yinlianghui@hotoa.com
|
|
12460
12691
|
* @Date: 2023-11-15 09:50:22
|
|
12461
|
-
* @LastEditors:
|
|
12462
|
-
* @LastEditTime:
|
|
12692
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
12693
|
+
* @LastEditTime: 2024-01-02 15:43:50
|
|
12463
12694
|
*/
|
|
12464
12695
|
|
|
12465
12696
|
/**
|
|
@@ -12487,20 +12718,22 @@ function getInputTableCell(field, showAsInlineEditMode) {
|
|
|
12487
12718
|
name: field.name,
|
|
12488
12719
|
quickEdit: {
|
|
12489
12720
|
"type": "steedos-field",
|
|
12490
|
-
"config": field,
|
|
12491
|
-
|
|
12721
|
+
"config": Object.assign({}, field, {
|
|
12722
|
+
label: false
|
|
12723
|
+
})
|
|
12492
12724
|
}
|
|
12493
12725
|
}
|
|
12494
12726
|
}
|
|
12495
12727
|
else {
|
|
12496
12728
|
return {
|
|
12497
12729
|
"type": "steedos-field",
|
|
12498
|
-
"config": field,
|
|
12730
|
+
"config": Object.assign({}, field, {
|
|
12731
|
+
label: false
|
|
12732
|
+
}),
|
|
12499
12733
|
"static": true,
|
|
12500
12734
|
"readonly": true,
|
|
12501
12735
|
label: field.label,
|
|
12502
|
-
name: field.name
|
|
12503
|
-
hideLabel: true
|
|
12736
|
+
name: field.name
|
|
12504
12737
|
}
|
|
12505
12738
|
}
|
|
12506
12739
|
}
|
|
@@ -12746,7 +12979,9 @@ function getFormPaginationWrapper(props, form, mode) {
|
|
|
12746
12979
|
let __wrapperServiceId = "${tableServiceId}";
|
|
12747
12980
|
let wrapperService = scope.getComponentById(__wrapperServiceId);
|
|
12748
12981
|
let wrapperServiceData = wrapperService.getData();
|
|
12749
|
-
|
|
12982
|
+
// 这里不可以用event.data["${props.name}"]因为amis input talbe有一层单独的作用域,其值会延迟一拍
|
|
12983
|
+
// 这里如果不.clone的话,在弹出窗口中显示的子表组件,添加行后点窗口的取消按钮关闭窗口后无法把之前的操作还原,即把之前添加的行自动移除
|
|
12984
|
+
let lastestFieldValue = _.clone(wrapperServiceData["${props.name}"] || []);
|
|
12750
12985
|
//不可以直接像event.data.__tableItems = lastestFieldValue; 这样整个赋值,否则作用域会断
|
|
12751
12986
|
let mode = "${mode}";
|
|
12752
12987
|
if(mode === "new"){
|
|
@@ -12936,6 +13171,11 @@ async function getButtonActions(props, mode) {
|
|
|
12936
13171
|
let dialogId = getComponentId("dialog", props.id);
|
|
12937
13172
|
let buttonNextId = getComponentId("button_next", props.id);
|
|
12938
13173
|
let formPaginationId = getComponentId("form_pagination", props.id);
|
|
13174
|
+
let parentFormData = "${__super.__super.__super.__super || {}}";
|
|
13175
|
+
let amisVersion = getComparableAmisVersion();
|
|
13176
|
+
if(amisVersion < 3.6){
|
|
13177
|
+
parentFormData = "${__super.__super || {}}";
|
|
13178
|
+
}
|
|
12939
13179
|
if (mode == "new" || mode == "edit") {
|
|
12940
13180
|
// let actionShowNewDialog = {
|
|
12941
13181
|
// "actionType": "dialog",
|
|
@@ -13077,7 +13317,9 @@ async function getButtonActions(props, mode) {
|
|
|
13077
13317
|
// 换成从__super来映射上级表单数据是因为对象列表视图界面中每行下拉菜单中的编辑按钮弹出的表单中的子表所在作用域中没有record变量
|
|
13078
13318
|
// 映射到中间变量__parentForm而不是直接用&展开映射是为了避免表单中字段名与作用域中变量重名
|
|
13079
13319
|
// "__parentForm": "${__super.__super || {}}",
|
|
13080
|
-
"__parentForm": mode == "new" ? "$$" : "${__super.__super || {}}",
|
|
13320
|
+
// "__parentForm": mode == "new" ? "$$" : "${__super.__super || {}}",
|
|
13321
|
+
"__parentForm": mode == "new" ? "$$" : parentFormData,
|
|
13322
|
+
"_master": "${_master}",
|
|
13081
13323
|
"global": "${global}",
|
|
13082
13324
|
"uiSchema": "${uiSchema}",
|
|
13083
13325
|
"index": "${index}",
|
|
@@ -13170,7 +13412,7 @@ async function getButtonActions(props, mode) {
|
|
|
13170
13412
|
// 换成从__super来映射上级表单数据是因为对象列表视图界面中每行下拉菜单中的编辑按钮弹出的表单中的子表所在作用域中没有record变量
|
|
13171
13413
|
// 映射到中间变量__parentForm而不是直接用&展开映射是为了避免表单中字段名与作用域中变量重名
|
|
13172
13414
|
// "__parentForm": "${__super.__super || {}}",
|
|
13173
|
-
"__parentForm":
|
|
13415
|
+
"__parentForm": parentFormData,
|
|
13174
13416
|
"global": "${global}",
|
|
13175
13417
|
"uiSchema": "${uiSchema}",
|
|
13176
13418
|
"index": "${index}",
|
|
@@ -13338,7 +13580,7 @@ const getAmisInputTableSchema = async (props) => {
|
|
|
13338
13580
|
"name": "__op__",
|
|
13339
13581
|
"type": "operation",
|
|
13340
13582
|
"buttons": buttonsForColumnOperations,
|
|
13341
|
-
"width": buttonsForColumnOperations.length > 1 ? "
|
|
13583
|
+
"width": buttonsForColumnOperations.length > 1 ? "60px" : "20px"
|
|
13342
13584
|
});
|
|
13343
13585
|
}
|
|
13344
13586
|
if (showAsInlineEditMode) {
|
|
@@ -14787,8 +15029,8 @@ const getInstanceApprovalHistory = async ()=>{
|
|
|
14787
15029
|
/*
|
|
14788
15030
|
* @Author: baozhoutao@steedos.com
|
|
14789
15031
|
* @Date: 2022-09-07 16:20:45
|
|
14790
|
-
* @LastEditors:
|
|
14791
|
-
* @LastEditTime: 2023-
|
|
15032
|
+
* @LastEditors: liaodaxue
|
|
15033
|
+
* @LastEditTime: 2023-12-29 16:06:35
|
|
14792
15034
|
* @Description:
|
|
14793
15035
|
*/
|
|
14794
15036
|
|
|
@@ -15614,7 +15856,6 @@ const getFlowFormSchema = async (instance, box) => {
|
|
|
15614
15856
|
"messages": {
|
|
15615
15857
|
},
|
|
15616
15858
|
"requestAdaptor": `
|
|
15617
|
-
const { context } = api.data;
|
|
15618
15859
|
api.data = {
|
|
15619
15860
|
query: \`
|
|
15620
15861
|
{
|
|
@@ -15637,7 +15878,7 @@ const getFlowFormSchema = async (instance, box) => {
|
|
|
15637
15878
|
`,
|
|
15638
15879
|
"data": {
|
|
15639
15880
|
// "&": "$$",
|
|
15640
|
-
"context": "${context}",
|
|
15881
|
+
// "context": "${context}",
|
|
15641
15882
|
"judge": "${new_judge}",
|
|
15642
15883
|
}
|
|
15643
15884
|
},
|