@steedos-widgets/amis-lib 3.6.2-beta.13 → 3.6.2-beta.15

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/index.umd.js CHANGED
@@ -38,14 +38,18 @@ var value=sessionStorage.getItem(key);var defaultDisplay="grid";if(uiSchema.enab
38
38
  },getObjectListViewPath:function getObjectListViewPath(_ref3){var formFactor=_ref3.formFactor,appId=_ref3.appId,objectName=_ref3.objectName,listViewName=_ref3.listViewName;return"/app/".concat(appId,"/").concat(objectName,"/grid/").concat(listViewName);},getObjectDetailPath:function getObjectDetailPath(props){var formFactor=props.formFactor,appId=props.appId,objectName=props.objectName,recordId=props.recordId,listViewName=props.listViewName,_templateType=props._templateType;if(_templateType==='JavaScript'){return"/app/".concat(appId,"/").concat(objectName,"/view/").concat(recordId,"?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>");}return"/app/".concat(appId,"/").concat(objectName,"/view/").concat(recordId,"?side_object=${objectName}&side_listview_id=${listName}");},getObjectRelatedViewPath:function getObjectRelatedViewPath(_ref4){var formFactor=_ref4.formFactor,appId=_ref4.appId,masterObjectName=_ref4.masterObjectName,masterRecordId=_ref4.masterRecordId,objectName=_ref4.objectName,foreignKey=_ref4.foreignKey;return"/app/".concat(appId,"/").concat(masterObjectName,"/").concat(masterRecordId,"/").concat(objectName,"/grid?related_field_name=").concat(foreignKey);}};/*
39
39
  * @Author: baozhoutao@steedos.com
40
40
  * @Date: 2022-07-20 16:29:22
41
- * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
42
- * @LastEditTime: 2023-12-28 14:59:08
41
+ * @LastEditors: liaodaxue
42
+ * @LastEditTime: 2024-01-25 14:44:17
43
43
  * @Description:
44
44
  */function getImageFieldUrl(url){if(window.Meteor&&window.Meteor.isCordova!=true){// '//'的位置
45
45
  var doubleSlashIndex=url.indexOf('//');var urlIndex=url.indexOf('/',doubleSlashIndex+2);var rootUrl=url.substring(urlIndex);return rootUrl;}return url;}if(typeof window!='undefined'){window.getImageFieldUrl=getImageFieldUrl;}function getContrastColor(bgColor){var backgroundColor=bgColor.charAt(0)==='#'?bgColor.substring(1,7):bgColor;var r=parseInt(backgroundColor.substr(0,2),16);var g=parseInt(backgroundColor.substr(2,2),16);var b=parseInt(backgroundColor.substr(4,2),16);var brightness=(r*299+g*587+b*114)/1000;return brightness<128?"#ffffff":"#000000";}function getLookupListView(refObjectConfig){if(!refObjectConfig){return null;}var listNameAll="all";var listNameLookup="lookup";var listViewAll,listViewLookup;_.each(refObjectConfig.list_views,function(view,name){if(name===listNameAll){listViewAll=view;if(!listViewAll.name){listViewAll.name=name;}}else if(name===listNameLookup){listViewLookup=view;if(!listViewLookup.name){listViewLookup.name=name;}}});var listView=listViewLookup||listViewAll;return listView;}/**
46
46
  * 获取可比较的amis版本号
47
47
  * @returns 只返回前两位版本,第三位忽略,比如3.6.3返回3.6
48
- */function getComparableAmisVersion(){var amis=window.amisRequire&&window.amisRequire('amis')||window.Amis;var amisVersion=amis&&amis.version;if(amisVersion){var comparableVersions=amisVersion.split(".");var comparableVersion=parseFloat(comparableVersions[0].toString()+"."+comparableVersions[1].toString());return comparableVersion;}}/*
48
+ */function getComparableAmisVersion(){var amis=window.amisRequire&&window.amisRequire('amis')||window.Amis;var amisVersion=amis&&amis.version;if(amisVersion){var comparableVersions=amisVersion.split(".");var comparableVersion=parseFloat(comparableVersions[0].toString()+"."+comparableVersions[1].toString());return comparableVersion;}}/**
49
+ * 判断浏览器类型
50
+ * @returns 按需返回浏览器类型;
51
+ */function getBowserType(){var userAgent=navigator.userAgent;if(userAgent.indexOf("Chrome")!==-1&&userAgent.indexOf("Safari")!==-1&&userAgent.indexOf("Edg")===-1){return"Chrome";}else if(userAgent.indexOf("Firefox")!==-1){return"Firefox";}else if(userAgent.indexOf("Safari")!==-1&&userAgent.indexOf("Chrome")===-1&&userAgent.indexOf("Edge")===-1){return"Safari";}else if(userAgent.indexOf("Edg")!==-1){return"Edge";}else{return"Unknown browser";// 其他浏览器...(可根据自己需要确定是否新增其他浏览器的判断)
52
+ }}/*
49
53
  * @Author: baozhoutao@steedos.com
50
54
  * @Date: 2022-05-23 09:53:08
51
55
  * @LastEditors: liaodaxue
@@ -92,7 +96,7 @@ TempDisplayField="";quickEditSchema.body[0].onEvent={};quickEditOnEvent=function
92
96
  第一种是减少选项时(判断新的数据是否比老的数据短),按照index删除_display中对应选项,保证回显没问题;
93
97
  第二种是增加选项时,按照value的值,找到对应选项,并按照_display的规则为其赋值
94
98
  */TempDisplayField="\n const preData = _.cloneDeep(event.data.__super.".concat(field.name,");\n if(preData && event.data.").concat(field.name,".length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.").concat(field.name,", item) == -1) _display[\"").concat(field.name,"\"].splice(index, 1);\n })\n }else{\n _display[\"").concat(field.name,"\"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ").concat(valueField,": val });\n _display[\"").concat(field.name,"\"].push(\n {\n \"label\": item.").concat(labelField,",\n \"value\": item[event.data.uiSchema.idFieldName],\n \"objectName\": \"").concat(field.reference_to,"\"\n }\n )\n })\n }\n \n ");}else{TempDisplayField="\n if(event.data.value){\n _display[\"".concat(field.name,"\"] = {\n \"label\": event.data.selectedItems.").concat(labelField,",\n \"value\": event.data.selectedItems[event.data.uiSchema.idFieldName],\n \"objectName\": \"").concat(field.reference_to,"\"\n }\n }else{\n _display[\"").concat(field.name,"\"] = {}\n }\n ");}quickEditSchema.body[0].onEvent["change"]=quickEditOnEvent(TempDisplayField);return _context55.abrupt("break",53);case 25:TempDisplayField="\n _display[\"".concat(field.name,"\"] = event.data.selectedItems.label;\n ");quickEditSchema.body[0].onEvent["change"]=quickEditOnEvent(TempDisplayField);return _context55.abrupt("break",53);case 28:TempDisplayField="\n _display[\"".concat(field.name,"\"] = event.data.value.toFixed(").concat(field.scale,") + '%';\n ");quickEditSchema.body[0].onEvent["change"]=quickEditOnEvent(TempDisplayField);return _context55.abrupt("break",53);case 31:TempDisplayField="\n _display[\"".concat(field.name,"\"] = moment(event.data.value).utc().format('HH:mm');\n ");quickEditSchema.body[0].onEvent["change"]=quickEditOnEvent(TempDisplayField);return _context55.abrupt("break",53);case 34:TempDisplayField="\n _display[\"".concat(field.name,"\"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n ");quickEditSchema.body[0].onEvent["change"]=quickEditOnEvent(TempDisplayField);return _context55.abrupt("break",53);case 37:TempDisplayField="\n _display[\"".concat(field.name,"\"] = moment(event.data.value).format('YYYY-MM-DD HH:mm');\n ");quickEditSchema.body[0].onEvent["change"]=quickEditOnEvent(TempDisplayField);return _context55.abrupt("break",53);case 40:TempDisplayField="\n _display[\"".concat(field.name,"\"] = event.data.value?\"\u221A\":\"\";\n ");quickEditSchema.body[0].onEvent["change"]=quickEditOnEvent(TempDisplayField);return _context55.abrupt("break",53);case 43:TempDisplayField="\n _display[\"".concat(field.name,"\"] = event.data.value && event.data.value.toFixed(").concat(field.scale,");\n ");quickEditSchema.body[0].onEvent["change"]=quickEditOnEvent(TempDisplayField);return _context55.abrupt("break",53);case 46:removeDisplayField="";if(field.multiple){TempDisplayField="\n _display[\"".concat(field.name,"\"].push({\n \"name\": event.data.result.name,\n \"url\": event.data.result.url,\n \"type\": event.data.item.type,\n \"size\": event.data.item.size\n });\n ");removeDisplayField="\n _.remove(_display[\"".concat(field.name,"\"], function(file){return file.url == event.data.item.url});\n ");}else{TempDisplayField=" \n _display[\"".concat(field.name,"\"] = {\n \"name\": event.data.result.name,\n \"url\": event.data.result.url,\n \"type\": event.data.item.type,\n \"size\": event.data.item.size\n };\n ");removeDisplayField="\n if(_display[\"".concat(field.name,"\"].url == event.data.item.url){\n _display[\"").concat(field.name,"\"] = {};\n }\n ");}quickEditSchema.body[0].onEvent["success"]=quickEditOnEvent(TempDisplayField);quickEditSchema.body[0].onEvent["remove"]=quickEditOnEvent(removeDisplayField);return _context55.abrupt("break",53);case 51:quickEditSchema.body[0].receiver.adaptor="\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { context:pageContext } = superData; \n var rootUrl = pageContext.rootUrl + \"/api/files/".concat(field.type,"s/\";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: rootUrl + payload._id,//\u4E3A\u4E86\u5B9E\u73B0\u56FE\u7247crud\u7684\u56DE\u663E\uFF0C\u9700\u8981\u5C06value\u4ECEid\u6539\u4E3Aurl\uFF0C\u5F53\u4FDD\u5B58\u6570\u636E\u6570\u636E\u65F6\uFF0C\u518D\u5728\u53D1\u9001\u9002\u914D\u5668\u5185\u91CD\u65B0\u5C06id\u63D0\u53D6\u51FA\u6765\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n ");return _context55.abrupt("break",53);case 53:quickEditSchema.body[0].visibleOn="${quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}";quickEditSchema.body.push({"type":"service","body":[{"type":"tpl","tpl":i18next__default["default"].t('frontend_records_no_allowedit'),"visibleOn":"${!quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}"},{"type":"spinner","showOn":"${quickedit_record_permissions_loading}"}],"onEvent":{"init":{"actions":[//amis3.6无法从数据域中直接拿到正确的selectitems,需要通过crud组件的getSelected()函数获取
95
- {"actionType":"custom","script":"\n crudScoped = event.context.scoped.getComponentById('".concat(options.crudId,"');\n const selectedItems = crudScoped && crudScoped.control.getSelected();\n doAction({\n \"componentId\": \"").concat(quickEditId,"\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": {\n selectedItems\n }\n }\n });\n ")},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"quickedit_record_permissions_loading":true}}},{"actionType":"ajax","args":{"api":{"url":"${context.rootUrl}/service/api/@\${objectName}/recordPermissions/${_id}","method":"get","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"},"cache":30000,"messages":{"failed":"失败了呢。。"}}}},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"quickedit_record_permissions_loading":false}}},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"quickedit_record_permissions":"${event.data}"}}}]}}});if(field.type!='avatar'&&field.type!='image'&&field.type!='file'&&isAmisVersionforBatchEdit){quickEditSchema.body.push({"name":"isBatchEdit","type":"checkbox","option":[{"type":"tpl","tpl":"更新${COUNT(selectedItems)}个选定记录"},{"type":"spinner","showOn":"${batchPermissionLoading}","size":"sm","className":"mr-4"}],"visibleOn":"${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1 && quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}","disabledOn":"${batchPermissionLoading}","onEvent":{"change":{"actions":[{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"batchPermissionLoading":true}},"expression":"${event.data.value}"},{"actionType":"ajax","args":{"api":{"url":"${context.rootUrl}/graphql","method":"post","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"},"data":{"query":"{rows:${objectName}(filters:[\"_id\",\"in\",${selectedItems | pick:_id | split | json}]){_id,_permissions{allowEdit}}}"},"adaptor":"\n const noPermission = [];\n payload.data.rows.forEach(function (row) {\n if(!row._permissions.allowEdit){\n noPermission.push(row._id);\n }\n })\n payload.data.noPermission = noPermission;\n return payload;\n "}},"expression":"${event.data.value}"},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"batchPermissionLoading":false}},"expression":"${event.data.value}"},{"actionType":"dialog","dialog":{"title":"记录权限","showCloseButton":false,"body":[{"type":"tpl","tpl":"当前选中记录中,有${COUNT(noPermission)}条记录无编辑权限,是否需要批量编辑其他记录?"}],"onEvent":{"confirm":{"actions":[{"actionType":"custom","script":"\n const noPermission = event.data.noPermission;\n const crudComponent = event.context.scoped.getComponentById(\"".concat(options.crudId,"\");\n const selectedItems = crudComponent && crudComponent.props.store.selectedItems.concat();\n noPermission.forEach(function (item) {\n crudComponent && crudComponent.unSelectItem(_.find(selectedItems,{_id:item}));\n })\n ")},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"isBatchEdit":true}}}]},"cancel":{"actions":[{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"isBatchEdit":false}}}]}}},"expression":"${COUNT(event.data.noPermission)>0}"}]}}});}_context55.next=59;break;case 58:quickEditSchema=false;case 59://amis3.2以下禁用lookup的单元格编辑
99
+ {"actionType":"custom","script":"\n crudScoped = event.context.scoped.getComponentById('".concat(options.crudId,"');\n const selectedItems = crudScoped && crudScoped.control.getSelected();\n doAction({\n \"componentId\": \"").concat(quickEditId,"\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": {\n selectedItems\n }\n }\n });\n ")},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"quickedit_record_permissions_loading":true}}},{"actionType":"ajax","args":{"api":{"url":"${context.rootUrl}/service/api/@\${objectName}/recordPermissions/${_id}","method":"get","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"},"cache":30000,"messages":{"failed":"失败了呢。。"}}},"expression":"${!recordPermissions.modifyAllRecords}"},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"quickedit_record_permissions_loading":false}}},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"quickedit_record_permissions":"${recordPermissions.modifyAllRecords ? {'allowEdit': true} : event.data}"}}}]}}});if(field.type!='avatar'&&field.type!='image'&&field.type!='file'&&isAmisVersionforBatchEdit){quickEditSchema.body.push({"name":"isBatchEdit","type":"checkbox","option":[{"type":"tpl","tpl":"更新${COUNT(selectedItems)}个选定记录"},{"type":"spinner","showOn":"${batchPermissionLoading}","size":"sm","className":"mr-4"}],"visibleOn":"${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1 && quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}","disabledOn":"${batchPermissionLoading}","onEvent":{"change":{"actions":[{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"batchPermissionLoading":true}},"expression":"${event.data.value}"},{"actionType":"ajax","args":{"api":{"url":"${context.rootUrl}/graphql","method":"post","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"},"data":{"query":"{rows:${objectName}(filters:[\"_id\",\"in\",${selectedItems | pick:_id | split | json}]){_id,_permissions{allowEdit}}}"},"adaptor":"\n const noPermission = [];\n payload.data.rows.forEach(function (row) {\n if(!row._permissions.allowEdit){\n noPermission.push(row._id);\n }\n })\n payload.data.noPermission = noPermission;\n return payload;\n "}},"expression":"${event.data.value && !recordPermissions.modifyAllRecords}"},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"batchPermissionLoading":false}},"expression":"${event.data.value}"},{"actionType":"dialog","dialog":{"title":"记录权限","showCloseButton":false,"body":[{"type":"tpl","tpl":"当前选中记录中,有${COUNT(noPermission)}条记录无编辑权限,是否需要批量编辑其他记录?"}],"onEvent":{"confirm":{"actions":[{"actionType":"custom","script":"\n const noPermission = event.data.noPermission;\n const crudComponent = event.context.scoped.getComponentById(\"".concat(options.crudId,"\");\n let selectedItems = crudComponent && crudComponent.props.store.selectedItems.concat();\n noPermission.forEach(function (item) {\n crudComponent && crudComponent.unSelectItem(_.find(selectedItems,{_id:item}));\n _.remove(selectedItems, (selected) => selected._id === item);\n })\n doAction({\n \"componentId\": \"").concat(quickEditId,"\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": {\n selectedItems\n }\n }\n });\n ")},{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"isBatchEdit":true}}}]},"cancel":{"actions":[{"actionType":"setValue","componentId":quickEditId,"args":{"value":{"isBatchEdit":false}}}]}}},"expression":"${COUNT(event.data.noPermission)>0}"}]}}});}_context55.next=59;break;case 58:quickEditSchema=false;case 59://amis3.2以下禁用lookup的单元格编辑
96
100
  if(field.type=="lookup"&&!isAmisVersionforBatchEdit){quickEditSchema=false;}//TODO:附件多选时会覆盖老数据,暂时禁用
97
101
  if(field.type=="file"&&field.multiple){quickEditSchema=false;}//TODO:location字段在列表中快速编辑后存在bug,保存时可能会丢失部分数据,暂时禁用
98
102
  if(field.type=="location"){quickEditSchema=false;}if(field.type=="color"){quickEditSchema={type:"input-color"};}case 63:return _context55.abrupt("return",quickEditSchema);case 64:case"end":return _context55.stop();}}},_callee55);}));return _getQuickEditSchema.apply(this,arguments);}function getFieldWidth(width){var defaultWidth=null;if(typeof width=='string'){if(isNaN(width)){return width||defaultWidth;}else{return Number(width)||defaultWidth;}}else if(typeof width=='number'){return width;}else{return defaultWidth;}}function getTableColumns(_x19,_x20){return _getTableColumns.apply(this,arguments);}/**
@@ -112,22 +116,22 @@ if(field.type=="location"){quickEditSchema=false;}if(field.type=="color"){quickE
112
116
  "size": "none",
113
117
  "className": "flex items-center justify-between"//每行样式类
114
118
  }
115
- */function _getTableColumns(){_getTableColumns=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee56(fields,options){var _options$permissions;var columns,allowEdit,_iterator6,_step7,field,quickEditSchema,className,columnItem,previewFileScript,map,_field$amis,_field$amis2,_field$amis3,tpl,type,href;return _regeneratorRuntime().wrap(function _callee56$(_context56){while(1){switch(_context56.prev=_context56.next){case 0:columns=[];if(!options.isLookup&&!options.isInputTable){if(!options.enable_tree){columns.push({name:'_index',type:'text',width:32,placeholder:""});}}allowEdit=((_options$permissions=options.permissions)===null||_options$permissions===void 0?void 0:_options$permissions.allowEdit)&&!options.isLookup&&options.enable_inline_edit!=false;_iterator6=_createForOfIteratorHelper(fields);_context56.prev=4;_iterator6.s();case 6:if((_step7=_iterator6.n()).done){_context56.next=51;break;}field=_step7.value;if(!(field.hidden||field.extra)){_context56.next=10;break;}return _context56.abrupt("continue",49);case 10:if(!allowEdit){_context56.next=16;break;}_context56.next=13;return getQuickEditSchema(field,options);case 13:_context56.t0=_context56.sent;_context56.next=17;break;case 16:_context56.t0=allowEdit;case 17:quickEditSchema=_context56.t0;className="";if(/Safari/.test(navigator.userAgent)){className+=" whitespace-nowrap ";}else{if(field.wrap!=true){className+=" whitespace-nowrap ";}else{className+=" break-words ";}}columnItem=void 0;if(!((field.is_name||field.name===options.labelFieldName)&&options.objectName==='cms_files')){_context56.next=26;break;}previewFileScript="\n var data = event.data;\n var file_name = data.versions ? data.name : \"".concat(field.label,"\";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n ");columnItem={"type":"button","label":"<%=data.versions ? data.name : \"".concat(field.label,"\"%>"),className:className,"level":"link","onEvent":{"click":{"actions":[{"args":{"api":{"url":"${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}","method":"get","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"}}},"actionType":"download",// "expression": "!!!window?.nw?.require"//浏览器上直接下载
119
+ */function _getTableColumns(){_getTableColumns=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee56(fields,options){var _options$permissions;var columns,allowEdit,_iterator6,_step7,_field$amis,_field$amis2,field,quickEditSchema,className,bowserType,fieldAmis,columnItem,previewFileScript,map,tpl,type,href;return _regeneratorRuntime().wrap(function _callee56$(_context56){while(1){switch(_context56.prev=_context56.next){case 0:columns=[];if(!options.isLookup&&!options.isInputTable){if(!options.enable_tree){columns.push({name:'_index',type:'text',width:32,placeholder:""});}}allowEdit=((_options$permissions=options.permissions)===null||_options$permissions===void 0?void 0:_options$permissions.allowEdit)&&!options.isLookup&&options.enable_inline_edit!=false;_iterator6=_createForOfIteratorHelper(fields);_context56.prev=4;_iterator6.s();case 6:if((_step7=_iterator6.n()).done){_context56.next=53;break;}field=_step7.value;if(!(field.hidden||field.extra)){_context56.next=10;break;}return _context56.abrupt("continue",51);case 10:if(!allowEdit){_context56.next=16;break;}_context56.next=13;return getQuickEditSchema(field,options);case 13:_context56.t0=_context56.sent;_context56.next=17;break;case 16:_context56.t0=allowEdit;case 17:quickEditSchema=_context56.t0;className="";bowserType=getBowserType();if(bowserType==="Safari"){className+=" whitespace-nowrap ";}else{if(field.wrap!=true){className+=" whitespace-nowrap ";}else{className+=" break-words ";}}if(_typeof((_field$amis=field.amis)===null||_field$amis===void 0?void 0:_field$amis.className)=="object"){className=_objectSpread(_defineProperty({},className,"true"),field.amis.className);}else if(typeof((_field$amis2=field.amis)===null||_field$amis2===void 0?void 0:_field$amis2.className)=="string"){className="".concat(className," ").concat(field.amis.className," ");}fieldAmis=___namespace.clone(field.amis);fieldAmis===null||fieldAmis===void 0?true:delete fieldAmis.className;columnItem=void 0;if(!((field.is_name||field.name===options.labelFieldName)&&options.objectName==='cms_files')){_context56.next=30;break;}previewFileScript="\n var data = event.data;\n var file_name = data.versions ? data.name : \"".concat(field.label,"\";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n ");columnItem={"type":"button","label":"<%=data.versions ? data.name : \"".concat(field.label,"\"%>"),className:className,"level":"link","onEvent":{"click":{"actions":[{"args":{"api":{"url":"${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}","method":"get","headers":{"Authorization":"Bearer ${context.tenantId},${context.authToken}"}}},"actionType":"download",// "expression": "!!!window?.nw?.require"//浏览器上直接下载
116
120
  "expression":"!!!(window && window.nw && window.nw.require)"//浏览器上直接下载
117
121
  },{"args":{},"actionType":"custom","script":previewFileScript,// "expression": "!!window?.nw?.require" //PC客户端预览附件
118
122
  "expression":"!!!(window && window.nw && window.nw.require)"//PC客户端预览附件
119
- }]}}};_context56.next=48;break;case 26:if(!(field.type==='toggle')){_context56.next=30;break;}columnItem=Object.assign({},{type:"switch",name:field.name,label:field.label,width:getFieldWidth(field.width),toggled:field.toggled,"static":true,className:className},field.amis,{name:field.name});_context56.next=48;break;case 30:if(!(field.type==='avatar'||field.type==='image'||field.type==='file')){_context56.next=34;break;}columnItem=Object.assign({},_objectSpread({type:"switch",name:field.name,label:field.label,width:getFieldWidth(field.width),toggled:field.toggled,"static":true,className:className},getAmisFileReadonlySchema(field)),field.amis,{name:field.name});_context56.next=48;break;case 34:if(!(field.type==='select')){_context56.next=39;break;}map=getSelectMap(field.options);columnItem=Object.assign({},{type:"static-mapping",name:field.name,label:field.label,map:map,sortable:field.sortable,width:getFieldWidth(field.width),toggled:field.toggled,className:className,inputClassName:"inline","static":true},field.amis,{name:field.name});_context56.next=48;break;case 39:_context56.next=41;return getFieldTpl(field,options);case 41:tpl=_context56.sent;type='static-text';if(tpl){type='static';}else if(field.type==='html'){type='static-markdown';}else if(field.type==='url'){if(field.show_as_qr){type='static-qr-code';}else{type='input-url';}}if(field.type==='textarea'){className+='min-w-56';}// if(field.type === 'date'){
123
+ }]}}};_context56.next=50;break;case 30:if(!(field.type==='toggle')){_context56.next=34;break;}columnItem=Object.assign({},{type:"switch",name:field.name,label:field.label,width:getFieldWidth(field.width),toggled:field.toggled,"static":true,className:className},fieldAmis,{name:field.name});_context56.next=50;break;case 34:if(!(field.type==='avatar'||field.type==='image'||field.type==='file')){_context56.next=38;break;}columnItem=Object.assign({},_objectSpread({type:"switch",name:field.name,label:field.label,width:getFieldWidth(field.width),toggled:field.toggled,"static":true,className:className},getAmisFileReadonlySchema(field)),fieldAmis,{name:field.name});_context56.next=50;break;case 38:if(!(field.type==='select')){_context56.next=43;break;}map=getSelectMap(field.options);columnItem=Object.assign({},{type:"static-mapping",name:field.name,label:field.label,map:map,sortable:field.sortable,width:getFieldWidth(field.width),toggled:field.toggled,className:className,inputClassName:"inline","static":true},fieldAmis,{name:field.name});_context56.next=50;break;case 43:_context56.next=45;return getFieldTpl(field,options);case 45:tpl=_context56.sent;type='static-text';if(tpl){type='static';}else if(field.type==='html'){type='static-markdown';}else if(field.type==='url'){if(field.show_as_qr){type='static-qr-code';}else{type='input-url';}}if(field.type==='textarea'){className+='min-w-56';}// if(field.type === 'date'){
120
124
  // className += 'date-min-w';
121
125
  // }
122
126
  // if(field.type === 'datetime'){
123
127
  // className += 'datetime-min-w';
124
128
  // }
125
129
  //field上的amis属性里的clssname需要单独判断类型合并
126
- if(_typeof((_field$amis=field.amis)===null||_field$amis===void 0?void 0:_field$amis.className)=="object"){className=_objectSpread(_defineProperty({},className,"true"),field.amis.className);}else if(typeof((_field$amis2=field.amis)===null||_field$amis2===void 0?void 0:_field$amis2.className)=="string"){className="".concat(className," ").concat(field.amis.className," ");}(_field$amis3=field.amis)===null||_field$amis3===void 0?true:delete _field$amis3.className;if(!field.hidden&&!field.extra){columnItem=Object.assign({},{name:field.name,label:field.label,sortable:field.sortable,// searchable: field.searchable,
130
+ if(!field.hidden&&!field.extra){columnItem=Object.assign({},{name:field.name,label:field.label,sortable:field.sortable,// searchable: field.searchable,
127
131
  width:getFieldWidth(field.width),type:type,tpl:tpl,toggled:field.toggled,className:className,inputClassName:"inline","static":true,options:field.type==='html'?{html:true}:null// toggled: true
128
- },field.amis,{name:field.name});if(field.type==='color'){columnItem.type='color';columnItem.defaultColor=null;}}case 48:if(columnItem){if(quickEditSchema){columnItem.quickEdit=quickEditSchema;columnItem.quickEditEnabledOn="${is_system !== true}";}columnItem.id="".concat(options.objectName,"_").concat(field.name,"_${_index}");columns.push(columnItem);}case 49:_context56.next=6;break;case 51:_context56.next=56;break;case 53:_context56.prev=53;_context56.t1=_context56["catch"](4);_iterator6.e(_context56.t1);case 56:_context56.prev=56;_iterator6.f();return _context56.finish(56);case 59:// columns.push(getOperation(fields));
132
+ },fieldAmis,{name:field.name});if(field.type==='color'){columnItem.type='color';columnItem.defaultColor=null;}}case 50:if(columnItem){if(quickEditSchema){columnItem.quickEdit=quickEditSchema;columnItem.quickEditEnabledOn="${is_system !== true}";}columnItem.id="".concat(options.objectName,"_").concat(field.name,"_${_index}");columns.push(columnItem);}case 51:_context56.next=6;break;case 53:_context56.next=58;break;case 55:_context56.prev=55;_context56.t1=_context56["catch"](4);_iterator6.e(_context56.t1);case 58:_context56.prev=58;_iterator6.f();return _context56.finish(58);case 61:// columns.push(getOperation(fields));
129
133
  if(!options.isLookup&&!options.isInputTable&&!___namespace.some(columns,{name:options.labelFieldName})){// 没有名称字段时显示序号字段为链接,lookup弹出的picker不需要此功能
130
- href=Router.getObjectDetailPath(_objectSpread(_objectSpread({},options),{},{formFactor:options.formFactor,appId:"${appId}",objectName:options.objectName||"${objectName}",recordId:"${".concat(options.idFieldName,"}")}));columns[0].type="tpl";columns[0].tpl="<a href=\"".concat(href,"\">${").concat(columns[0].name,"}</a>");}return _context56.abrupt("return",columns);case 61:case"end":return _context56.stop();}}},_callee56,null,[[4,53,56,59]]);}));return _getTableColumns.apply(this,arguments);}function getMobileLines(tpls){var lines=[];var maxLineCount=3;var lineChildren=[];var isNewLine=false;var isLeft=true;var lineChildrenClassName="";var lineClassName="flex items-center justify-between";tpls.forEach(function(item){var _item$field$amis,_item$field$amis2;if(isNewLine&&lines.length<maxLineCount){lines.push({"type":"wrapper","body":lineChildren,"size":"none","className":lineClassName});lineChildren=[];}if(isLeft){// 左侧半行
134
+ href=Router.getObjectDetailPath(_objectSpread(_objectSpread({},options),{},{formFactor:options.formFactor,appId:"${appId}",objectName:options.objectName||"${objectName}",recordId:"${".concat(options.idFieldName,"}")}));columns[0].type="tpl";columns[0].tpl="<a href=\"".concat(href,"\">${").concat(columns[0].name,"}</a>");}return _context56.abrupt("return",columns);case 63:case"end":return _context56.stop();}}},_callee56,null,[[4,55,58,61]]);}));return _getTableColumns.apply(this,arguments);}function getMobileLines(tpls){var lines=[];var maxLineCount=3;var lineChildren=[];var isNewLine=false;var isLeft=true;var lineChildrenClassName="";var lineClassName="flex items-center justify-between";tpls.forEach(function(item){var _item$field$amis,_item$field$amis2;if(isNewLine&&lines.length<maxLineCount){lines.push({"type":"wrapper","body":lineChildren,"size":"none","className":lineClassName});lineChildren=[];}if(isLeft){// 左侧半行
131
135
  lineChildrenClassName="steedos-listview-item-left truncate h-5";if(item.field.is_wide){// 左侧全行样式可以单独写,如果需要配置两行省略号效果,可以加样式类 two-lines-truncate
132
136
  lineChildrenClassName="steedos-listview-item-wide";}if(lines.length===0){// 第一个字段加粗黑色显示
133
137
  lineChildrenClassName+=" font-bold text-gray-800";}}else{// 右侧半行,这里加样式类 flex flex-shrink-0,是为了省略号只显示在左半行,右半行文字一般比较短,如果也加省略号效果的话,左侧文字多的话,右侧没几个字就显示省略号了
@@ -528,12 +532,12 @@ recordPermissions:objectSchema.permissions,uiSchema:objectSchema// loaded: false
528
532
  });body=null;id="listview_".concat(objectSchema.name);if(!(options.formFactor==='SMALL'&&false)){_context81.next=42;break;}delete bodyProps.bulkActions;delete bodyProps.headerToolbar;delete bodyProps.footerToolbar;_context81.next=27;return getCardSchema(fields,Object.assign({idFieldName:objectSchema.idFieldName,labelFieldName:objectSchema.NAME_FIELD_KEY||'name'},options,{actions:false}));case 27:card=_context81.sent;_context81.t3=Object;_context81.t4={};_context81.t5=card;_context81.t6=id;_context81.t7=id;_context81.next=35;return getTableApi(objectSchema,fields,options);case 35:_context81.t8=_context81.sent;_context81.t9=options.tableHiddenOn;_context81.t10={type:'crud',primaryField:'_id',id:_context81.t6,name:_context81.t7,keepItemSelectionOnPageChange:false,api:_context81.t8,hiddenOn:_context81.t9};_context81.t11=bodyProps;body=_context81.t3.assign.call(_context81.t3,_context81.t4,_context81.t5,_context81.t10,_context81.t11);_context81.next=71;break;case 42:labelFieldName=objectSchema.NAME_FIELD_KEY||'name';// organizations 对象的历史遗留问题, fullname 被标记为了 名称字段. 在此处特殊处理.
529
533
  if(objectSchema.name==='organizations'){labelFieldName='name';}tableOptions=Object.assign({idFieldName:objectSchema.idFieldName,labelFieldName:labelFieldName,permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit,crudId:listSchema.id||id,enable_tree:objectSchema.enable_tree},options);tableOptions.amisData=createObject(options.amisData||{},{});_context81.next=48;return getTableSchema$1(fields,tableOptions);case 48:table=_context81.sent;// delete table.mode;
530
534
  //image与avatar需要在提交修改时特别处理
531
- imageNames=___default["default"].compact(___default["default"].map(___default["default"].filter(fields,function(field){return["image","avatar"].includes(field.type);}),'name'));quickSaveApiRequestAdaptor="\n var graphqlOrder = \"\";\n var imageNames = ".concat(JSON.stringify(imageNames),";\n const rowsDiff = _.cloneDeep(api.data.rowsDiff);\n rowsDiff.forEach(function (item, index) {\n for(key in item){\n // image\u3001select\u7B49\u5B57\u6BB5\u6E05\u7A7A\u503C\u540E\u4FDD\u5B58\u7684\u7A7A\u5B57\u7B26\u4E32\u8F6C\u6362\u4E3Anull\u3002\n if(item[key] === ''){\n item[key] = null;\n }\n if(_.includes(imageNames, key)){\n if(typeof item[key] == \"string\"){\n const match = item[key].match(/\\/([^\\/]+)$/);\n item[key] = match && match.length > 1?match[1]:\"\";\n }else{\n item[key] = _.map(item[key], function(ele){\n const match = ele.match(/\\/([^\\/]+)$/);\n return match && match.length > 1?match[1]:\"\";\n })\n }\n }\n }\n item = _.omit(item, '_display');\n const itemOrder = 'update' + index + ':' + api.data.objectName + '__update(id:\"' + item._id + '\", doc:' + JSON.stringify(JSON.stringify(_.omit(item, '_id'))) + ') {_id}';\n graphqlOrder += itemOrder;\n })\n graphqlOrder = 'mutation {' + graphqlOrder + '}';\n return {\n ...api,\n data: {\n query: graphqlOrder\n }\n }\n ");autoFillHeight=true;if(options.isRelated||window.innerWidth<768){autoFillHeight=false;}_context81.t12=Object;_context81.t13={};_context81.t14=table;_context81.t15=id;_context81.t16=id;_context81.next=60;return getTableApi(objectSchema,fields,options);case 60:_context81.t17=_context81.sent;_context81.t18=options.tableHiddenOn;_context81.t19=autoFillHeight;_context81.t20="flex-auto ".concat(crudClassName||"");_context81.t21={"mb-0":true,"is-steedos-crud-data-empty":"${!items || COUNT(items) == 0}"};_context81.t22=crudClassName;_context81.t23={url:"${context.rootUrl}/graphql",method:"post",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:quickSaveApiRequestAdaptor,adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n return payload;\n "};_context81.t24=options.rowClassNameExpr||"<%= data._id === data.recordId ? 'steedos-record-tr steedos-record-tr-' + data._id + ' steedos-record-selected' : 'steedos-record-tr steedos-record-tr-' + data._id %>";_context81.t25={type:'crud',primaryField:'_id',affixHeader:false,id:_context81.t15,name:_context81.t16,keepItemSelectionOnPageChange:true,api:_context81.t17,hiddenOn:_context81.t18,autoFillHeight:_context81.t19,className:_context81.t20,bodyClassName:_context81.t21,crudClassName:_context81.t22,quickSaveApi:_context81.t23,rowClassNameExpr:_context81.t24};_context81.t26=bodyProps;body=_context81.t12.assign.call(_context81.t12,_context81.t13,_context81.t14,_context81.t25,_context81.t26);case 71:body=defaultsDeep({},listSchema,body);_context81.next=74;return getCrudSchemaWithDataFilter(body,{crudDataFilter:crudDataFilter,onCrudDataFilter:onCrudDataFilter,amisData:amisData,env:env});case 74:body=_context81.sent;crudModeClassName="";if(body.mode){crudModeClassName="steedos-crud-mode-".concat(body.mode);}if(body.columns&&options.formFactor!='SMALL'){//将_display放入crud的columns的倒数第二列中(最后一列会影响固定列),可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑
535
+ imageNames=___default["default"].compact(___default["default"].map(___default["default"].filter(fields,function(field){return["image","avatar"].includes(field.type);}),'name'));quickSaveApiRequestAdaptor="\n var graphqlOrder = \"\";\n var imageNames = ".concat(JSON.stringify(imageNames),";\n const rowsDiff = _.cloneDeep(api.data.rowsDiff);\n rowsDiff.forEach(function (item, index) {\n for(key in item){\n // image\u3001select\u7B49\u5B57\u6BB5\u6E05\u7A7A\u503C\u540E\u4FDD\u5B58\u7684\u7A7A\u5B57\u7B26\u4E32\u8F6C\u6362\u4E3Anull\u3002\n if(item[key] === ''){\n item[key] = null;\n }\n if(_.includes(imageNames, key)){\n if(typeof item[key] == \"string\"){\n const match = item[key].match(/\\/([^\\/]+)$/);\n item[key] = match && match.length > 1?match[1]:\"\";\n }else{\n item[key] = _.map(item[key], function(ele){\n const match = ele.match(/\\/([^\\/]+)$/);\n return match && match.length > 1?match[1]:\"\";\n })\n }\n }\n }\n item = _.omit(item, '_display');\n const itemOrder = 'update' + index + ':' + api.data.objectName + '__update(id:\"' + item._id + '\", doc:' + JSON.stringify(JSON.stringify(_.omit(item, '_id'))) + ') {_id}';\n graphqlOrder += itemOrder;\n })\n graphqlOrder = 'mutation {' + graphqlOrder + '}';\n return {\n ...api,\n data: {\n query: graphqlOrder\n }\n }\n ");autoFillHeight=true;if(options.isRelated||window.innerWidth<768){autoFillHeight=false;}_context81.t12=Object;_context81.t13={};_context81.t14=table;_context81.t15=id;_context81.t16=id;_context81.next=60;return getTableApi(objectSchema,fields,options);case 60:_context81.t17=_context81.sent;_context81.t18=options.tableHiddenOn;_context81.t19=autoFillHeight;_context81.t20="flex-auto ".concat(crudClassName||"");_context81.t21={"mb-0":true,"is-steedos-crud-data-empty":"${!items || COUNT(items) == 0}"};_context81.t22=crudClassName;_context81.t23={url:"${context.rootUrl}/graphql",method:"post",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:quickSaveApiRequestAdaptor};_context81.t24=options.rowClassNameExpr||"<%= data._id === data.recordId ? 'steedos-record-tr steedos-record-tr-' + data._id + ' steedos-record-selected' : 'steedos-record-tr steedos-record-tr-' + data._id %>";_context81.t25={type:'crud',primaryField:'_id',affixHeader:false,id:_context81.t15,name:_context81.t16,keepItemSelectionOnPageChange:true,api:_context81.t17,hiddenOn:_context81.t18,autoFillHeight:_context81.t19,className:_context81.t20,bodyClassName:_context81.t21,crudClassName:_context81.t22,quickSaveApi:_context81.t23,rowClassNameExpr:_context81.t24};_context81.t26=bodyProps;body=_context81.t12.assign.call(_context81.t12,_context81.t13,_context81.t14,_context81.t25,_context81.t26);case 71:body=defaultsDeep({},listSchema,body);_context81.next=74;return getCrudSchemaWithDataFilter(body,{crudDataFilter:crudDataFilter,onCrudDataFilter:onCrudDataFilter,amisData:amisData,env:env});case 74:body=_context81.sent;crudModeClassName="";if(body.mode){crudModeClassName="steedos-crud-mode-".concat(body.mode);}body.quickSaveApi.adaptor="\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n debugger;\n var scope = SteedosUI.getRef(context.scopeId);\n var scopeParent = scope && scope.parent;\n var crudScoped = scopeParent.getComponentById('".concat(body.id,"');\n setTimeout(()=>{\n crudScoped && crudScoped.control.updateAutoFillHeight();\n }, 500);\n return payload;\n ");if(body.columns&&options.formFactor!='SMALL'){//将_display放入crud的columns的倒数第二列中(最后一列会影响固定列),可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑
532
536
  body.columns.splice(body.columns.length-1,0,{name:'_display',type:'static',width:1,placeholder:"",id:objectSchema.name+"_display_${_index}",tpl:"${''}"});}if(defaults){headerSchema=defaults.headerSchema;footerSchema=defaults.footerSchema;if(headerSchema||footerSchema){wrappedBody=[body];if(headerSchema){if(___default["default"].isArray(headerSchema)){wrappedBody=___default["default"].union(headerSchema,wrappedBody);}else{wrappedBody.unshift(headerSchema);}}if(footerSchema){if(___default["default"].isArray(footerSchema)){wrappedBody=___default["default"].union(wrappedBody,footerSchema);}else{wrappedBody.push(footerSchema);}}body=wrappedBody;}}// console.timeEnd('getObjectCRUD');
533
537
  // TODO: data应该只留loaded,其他属性都改为从上层传递下来
534
538
  return _context81.abrupt("return",{type:'service',className:crudModeClassName,//目前crud的service层id不认用户自定义id,只支持默认规则id,许多地方的格式都写死了service_listview_${objectname}
535
539
  id:"service_".concat(id),name:"page",data:options.amisData,body:body,//监听广播事件,重算crud高度
536
- onEvent:_defineProperty({},"@height.changed.".concat(objectSchema.name),{"actions":[{"actionType":"custom","script":"\n var crudScoped = event.context.scoped.getComponentById('".concat(body.id,"');\n var timeOut = event.data.timeOut || 500;\n setTimeout(()=>{\n crudScoped && crudScoped.control.updateAutoFillHeight();\n }, timeOut);\n ")}]})});case 80:case"end":return _context81.stop();}}},_callee81);}));return _getObjectCRUD.apply(this,arguments);}var getFormFields$1=function getFormFields$1(objectSchema,formProps){/**
540
+ onEvent:_defineProperty({},"@height.changed.".concat(objectSchema.name),{"actions":[{"actionType":"custom","script":"\n var crudScoped = event.context.scoped.getComponentById('".concat(body.id,"');\n var timeOut = event.data.timeOut || 500;\n setTimeout(()=>{\n crudScoped && crudScoped.control.updateAutoFillHeight();\n }, timeOut);\n ")}]})});case 81:case"end":return _context81.stop();}}},_callee81);}));return _getObjectCRUD.apply(this,arguments);}var getFormFields$1=function getFormFields$1(objectSchema,formProps){/**
537
541
  * fieldsExtend: 重写字段定义
538
542
  * fields: 包含的字段
539
543
  * excludedFields: 排除的字段
@@ -811,7 +815,7 @@ convertData={type:getAmisStaticFieldType('date',readonly),inputFormat:"YYYY-MM-D
811
815
  // tpl: readonly ? Tpl.getDateTimeTpl(field) : null,
812
816
  // utc: true,
813
817
  // }
814
- convertData={type:getAmisStaticFieldType('datetime',readonly),inputFormat:'YYYY-MM-DD HH:mm',format:'YYYY-MM-DDTHH:mm:ss.SSSZ',tpl:readonly?getDateTimeTpl(field):null,utc:true};return _context116.abrupt("break",142);case 32:convertData={type:'input-time-range',inputFormat:'HH:mm',timeFormat:'HH:mm',format:'1970-01-01THH:mm:00.000[Z]',tpl:readonly?getDateTimeTpl(field):null,// utc: true,
818
+ convertData={type:getAmisStaticFieldType('datetime',readonly),inputFormat:'YYYY-MM-DD HH:mm',format:'YYYY-MM-DDTHH:mm:00.000Z',tpl:readonly?getDateTimeTpl(field):null,utc:true};return _context116.abrupt("break",142);case 32:convertData={type:'input-time-range',inputFormat:'HH:mm',timeFormat:'HH:mm',format:'1970-01-01THH:mm:00.000[Z]',tpl:readonly?getDateTimeTpl(field):null,// utc: true,
815
819
  joinValues:false};return _context116.abrupt("break",142);case 34:// convertData = isMobile && !readonly ? {
816
820
  // type: "native-time",
817
821
  // pipeIn: (value, data) => {
@@ -899,8 +903,24 @@ sectionFieldsVisibleOn=___namespace.map(___namespace.compact(___namespace.map(fi
899
903
  * @Author: 殷亮辉 yinlianghui@hotoa.com
900
904
  * @Date: 2023-11-15 09:50:22
901
905
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
902
- * @LastEditTime: 2024-01-24 14:56:03
903
- */function getTablePrimaryKey(props){return props.primaryKey||"_id";}/**
906
+ * @LastEditTime: 2024-01-26 17:47:16
907
+ */ /**
908
+ * 子表组件字段值中每行数据补上字段值为空的的字段值,把值统一设置为空字符串,是为了解决amis amis 3.6/6.0 input-table组件bug:行中字段值为空时会显示为父作用域中的同名变量值,见:https://github.com/baidu/amis/issues/9520
909
+ * amis #9520修正后此函数及相关代码可以移除
910
+ * @param {*} value 子表组件字段值,数组
911
+ * @param {*} fields 子表组件fields属性,数组
912
+ * @returns 转换后的子表组件字段值
913
+ */function getTableValueWithEmptyValue(value,fields){return(value||[]).map(function(itemValue){//这里不clone的话,会造成在pipeIn函数执行该函数后像pipeOut一样最终输出到表单项中,即库里字段值会被改了
914
+ var newItemValue=_$1.clone(itemValue);(fields||[]).forEach(function(itemField){if(itemField.name&&(newItemValue[itemField.name]===undefined||newItemValue[itemField.name]===null)){// 这里newItemValue中不存在 itemField.name 属性,或者值为null时都会有“显示为父作用域中的同名变量值”的问题,所以null和undefined都要重置为空字符串
915
+ // 实测数字、下拉框、多选lookup等字段类型重置为空字符串都不会有问题,而且实测amis from组件的清空表单字段值功能就是把表单中的各种字段类型设置为空字符串,所以看起来也符合amis规范
916
+ newItemValue[itemField.name]="";}if(newItemValue.children){newItemValue.children=getTableValueWithEmptyValue(newItemValue.children,fields);}});return newItemValue;});}/**
917
+ * 把子表组件字段值中每行数据中经过上面getTableValueWithEmptyValue函数空字段值移除
918
+ * amis #9520修正后此函数及相关代码可以移除
919
+ * @param {*} value 子表组件字段值,数组
920
+ * @param {*} fields 子表组件fields属性,数组
921
+ * @returns 转换后的子表组件字段值
922
+ */function getTableValueWithoutEmptyValue(value,fields){return(value||[]).map(function(itemValue){var newItemValue=_$1.clone(itemValue);(fields||[]).forEach(function(itemField){if(itemField.name&&(newItemValue[itemField.name]===""||newItemValue[itemField.name]===undefined||newItemValue[itemField.name]===null)){// 这里额外把null和undefined值也删除掉纯粹是没必要输出保存它们
923
+ delete newItemValue[itemField.name];}if(newItemValue.children){newItemValue.children=getTableValueWithoutEmptyValue(newItemValue.children,fields);}});return newItemValue;});}function getTablePrimaryKey(props){return props.primaryKey||"_id";}/**
904
924
  * 子表组件字段值中每行数据的补上唯一标识字段值,其值为随机uuid
905
925
  * @param {*} value 子表组件字段值,数组
906
926
  * @param {*} primaryKey 主键字段名,一般为_id
@@ -921,6 +941,7 @@ var newItemValue=_$1.clone(itemValue);if(newItemValue.children){newItemValue.chi
921
941
  * 子表组件字段值中每行数据的键值key补上指定前缀
922
942
  * @param {*} value 子表组件字段值,数组
923
943
  * @param {*} fieldPrefix 字段前缀
944
+ * @param {*} primaryKey 主键字段名,主键不参与被键值key规则,需要排除,审批王amis表单也是这个规则
924
945
  * @returns 转换后的子表组件字段值
925
946
  */function getTableValuePrependFieldPrefix(value,fieldPrefix,primaryKey){var convertedValue=[];(value||[]).forEach(function(itemValue){var newItemValue={};for(var n in itemValue){if(itemValue.hasOwnProperty(n)&&_typeof(itemValue[n])!==undefined&&n!==primaryKey){newItemValue["".concat(fieldPrefix).concat(n)]=itemValue[n];}}if(primaryKey&&itemValue[primaryKey]){newItemValue[primaryKey]=itemValue[primaryKey];}convertedValue.push(newItemValue);});return convertedValue;}/**
926
947
  * 子表组件字段集合属性中每个字段name移除指定前缀
@@ -944,10 +965,12 @@ field=fields.find(function(fieldItem){return fieldItem.name===column;});}else{//
944
965
  field=fields.find(function(fieldItem){return fieldItem.name===column.name;});if(field){// field.amis = Object.assign({}, field.amis, column);
945
966
  // 如果把column合并到field.amis,column的label/width等属性不会生效,只能放外层合并
946
967
  extendColumnProps=column;}}if(field){var mode=typeof extendColumnProps.inlineEditMode==="boolean"?extendColumnProps.inlineEditMode:showAsInlineEditMode;var tableCell=getInputTableCell(field,mode);return Object.assign({},tableCell,extendColumnProps);}else{return column;}}));case 10:return _context119.abrupt("return",fields.map(function(field){var tableCell=getInputTableCell(field,showAsInlineEditMode);return tableCell;})||[]);case 11:case"end":return _context119.stop();}}},_callee119);}));return _getInputTableColumns.apply(this,arguments);}function getFormPagination(props,mode){var showPagination=true;if(mode==="new"&&!!!props.editable){//不允许编辑只允许新建时不应该让用户操作翻页
947
- showPagination=false;}var buttonPrevId=getComponentId("button_prev",props.id);var buttonNextId=getComponentId("button_next",props.id);var formId=getComponentId("form",props.id);var tableServiceId=getComponentId("table_service",props.id);var formPaginationId=getComponentId("form_pagination",props.id);var onPageChangeScript="\n let scope = event.context.scoped;\n let __paginationServiceId = \"".concat(formPaginationId,"\";\n let __wrapperServiceId = \"").concat(tableServiceId,"\";\n let __formId = \"").concat(formId,"\";\n let fieldValue = event.data.__tableItems;//\u8FD9\u91CC\u4E0D\u53EF\u4EE5_.cloneDeep\uFF0C\u56E0\u4E3A\u7FFB\u9875form\u4E2D\u7528\u7684\u662Fevent.data.__tableItems\uFF0C\u76F4\u63A5\u53D8\u66F4\u5176\u503C\u5373\u53EF\u6539\u53D8\u8868\u5355\u4E2D\u7684\u503C\n let pageChangeDirection = context.props.pageChangeDirection;\n let mode = \"").concat(mode,"\";\n // event.data\u4E2D\u7684index\u548C__page\u5206\u522B\u8868\u793A\u5F53\u524D\u8981\u628A\u8868\u5355\u6570\u636E\u63D0\u4EA4\u5230\u7684\u884C\u7D22\u5F15\u548C\u7528\u4E8E\u6807\u5B9A\u4E0B\u4E00\u9875\u9875\u7801\u7684\u5F53\u524D\u9875\u9875\u7801\n // \u4E00\u822C\u6765\u8BF4__page = index + 1\uFF0C\u4F46\u662F\u53EF\u4EE5\u8BA9event.data\u4E2D\u4F20\u5165__page\u548Cindex\u503C\u4E0D\u662F\u8FD9\u79CD\u8054\u7CFB\u3002\n // \u6BD4\u5982__page\u8BBE\u7F6E\u4E3A3\uFF0Cindex\u8BBE\u7F6E\u4E3A0\u8868\u793A\u628A\u5F53\u524D\u8868\u5355\u6570\u636E\u63D0\u4EA4\u5230\u7B2C\u4E00\u9875\uFF0C\u4F46\u662F\u8DF3\u8F6C\u5230\u7B2C4\u9875\uFF0C\u5F39\u51FA\u7684\u8868\u5355\u4E2D\u5E95\u4E0B\u7684\u65B0\u589E\u548C\u590D\u5236\u6309\u94AE\u4F9D\u8D56\u4E86\u6B64\u529F\u80FD\n // let currentPage = currentIndex + 1;\n let currentPage = event.data.__page;\n let currentIndex = event.data.index;\n if(mode !== \"readonly\"){\n // \u65B0\u5EFA\u7F16\u8F91\u65F6\uFF0C\u7FFB\u9875\u624D\u9700\u8981\u628A\u5F53\u524D\u9875\u8868\u5355\u4FDD\u5B58\uFF0C\u53EA\u8BFB\u65F6\u76F4\u63A5\u7FFB\u9875\u5373\u53EF\n // \u7FFB\u9875\u5230\u4E0B\u4E00\u9875\u4E4B\u524D\u9700\u8981\u5148\u628A\u5F53\u524D\u9875\u6539\u52A8\u7684\u5185\u5BB9\u4FDD\u5B58\u5230\u4E2D\u95F4\u53D8\u91CF__tableItems\u4E2D\n let currentFormValues = scope.getComponentById(__formId).getValues();\n // \u8FD9\u91CC\u4E0Dclone\u7684\u8BDD\uFF0C\u5176\u503C\u4F1A\u5E26\u4E0A__super\u5C5E\u6027\n currentFormValues = _.clone(currentFormValues);\n var parent = event.data.parent;\n var __parentIndex = event.data.__parentIndex;\n if(parent){\n fieldValue[__parentIndex].children[currentIndex] = currentFormValues;\n // \u91CD\u5199\u7236\u8282\u70B9\uFF0C\u5E76\u4E14\u6539\u53D8\u5176\u67D0\u4E2A\u5C5E\u6027\u4EE5\u8BA9\u5B50\u8282\u70B9\u4FEE\u6539\u7684\u5185\u5BB9\u56DE\u663E\u5230\u754C\u9762\u4E0A\n fieldValue[__parentIndex] = Object.assign({}, fieldValue[__parentIndex], {\n children: fieldValue[__parentIndex].children,\n __fix_rerender_after_children_modified_tag: new Date().getTime()\n });\n }\n else{\n fieldValue[currentIndex] = currentFormValues;\n }\n // \u7FFB\u9875\u5230\u4E0B\u4E00\u9875\u524D\u9700\u8981\u540C\u65F6\u628A\u6539\u52A8\u7684\u5185\u5BB9\u4FDD\u5B58\u5230\u6700\u7EC8\u6B63\u5F0F\u7684\u8868\u5355\u5B57\u6BB5\u4E2D\uFF0C\u6240\u4EE5\u989D\u5916\u7ED9\u6B63\u5F0F\u8868\u5355\u5B57\u6BB5\u6267\u884C\u4E00\u6B21setValue\n doAction({\n \"componentId\": \"").concat(props.id,"\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": fieldValue\n }\n });\n }\n\n // \u4EE5\u4E0B\u662F\u7FFB\u9875\u903B\u8F91\uFF0C\u7FFB\u5230\u4E0B\u4E00\u9875\u5E76\u628A\u4E0B\u4E00\u9875\u5185\u5BB9\u663E\u793A\u5230\u8868\u5355\u4E0A\n let targetPage;\n if(pageChangeDirection === \"next\"){\n targetPage = currentPage + 1;\n }\n else{\n targetPage = currentPage - 1;\n }\n let targetIndex = targetPage - 1;//input-table\u7EC4\u4EF6\u884C\u7D22\u5F15\uFF0C\u4ECE0\u5F00\u59CB\u7684\u7D22\u5F15\n // let targetFormData = __tableItems[targetIndex];\n doAction({\n \"actionType\": \"setValue\",\n \"componentId\": __paginationServiceId,\n \"args\": {\n \"value\": {\n \"__page\": targetPage,\n \"index\": targetIndex\n }\n }\n });\n // \u8FD9\u91CC\u4E0D\u7528\u8FDB\u4E00\u6B65\u628A\u8868\u5355\u5185\u5BB9setValue\u5230form\u4E2D\uFF0C\u662F\u56E0\u4E3A\u7F16\u8F91\u8868\u5355\u4E2DschemaApi\u76D1\u542C\u4E86\u884C\u7D22\u5F15index\u7684\u53D8\u5316\uFF0C\u5176\u503C\u53D8\u5316\u65F6\u4F1A\u91CD\u65B0build\u6574\u4E2Aform\n // doAction({\n // \"actionType\": \"setValue\",\n // \"componentId\": __formId,\n // \"args\": {\n // \"value\": targetFormData\n // },\n // \"dataMergeMode\": \"override\"// amis 3.2\u4E0D\u652F\u6301override\u6A21\u5F0F\uFF0C\u9AD8\u7248\u672C\u624D\u652F\u6301\n // });\n ");return{"type":"wrapper","size":"none","className":"mr-1","body":[{"type":"button","label":"","icon":"fa fa-angle-left","level":"link","pageChangeDirection":"prev","disabledOn":showPagination?"${__page <= 1}":"true","size":"sm","id":buttonPrevId,"onEvent":{"click":{"actions":[{"actionType":"custom","script":onPageChangeScript}]}}},{"type":"tpl",// 这里用__super.parent,加__super是为了防止当前记录有字段名为parent的重名变量
968
+ showPagination=false;}var buttonPrevId=getComponentId("button_prev",props.id);var buttonNextId=getComponentId("button_next",props.id);var formId=getComponentId("form",props.id);var tableServiceId=getComponentId("table_service",props.id);var formPaginationId=getComponentId("form_pagination",props.id);var onPageChangeScript="\n let scope = event.context.scoped;\n let __paginationServiceId = \"".concat(formPaginationId,"\";\n let __wrapperServiceId = \"").concat(tableServiceId,"\";\n let __formId = \"").concat(formId,"\";\n let fieldValue = event.data.__tableItems;//\u8FD9\u91CC\u4E0D\u53EF\u4EE5_.cloneDeep\uFF0C\u56E0\u4E3A\u7FFB\u9875form\u4E2D\u7528\u7684\u662Fevent.data.__tableItems\uFF0C\u76F4\u63A5\u53D8\u66F4\u5176\u503C\u5373\u53EF\u6539\u53D8\u8868\u5355\u4E2D\u7684\u503C\n let pageChangeDirection = context.props.pageChangeDirection;\n let mode = \"").concat(mode,"\";\n // event.data\u4E2D\u7684index\u548C__page\u5206\u522B\u8868\u793A\u5F53\u524D\u8981\u628A\u8868\u5355\u6570\u636E\u63D0\u4EA4\u5230\u7684\u884C\u7D22\u5F15\u548C\u7528\u4E8E\u6807\u5B9A\u4E0B\u4E00\u9875\u9875\u7801\u7684\u5F53\u524D\u9875\u9875\u7801\n // \u4E00\u822C\u6765\u8BF4__page = index + 1\uFF0C\u4F46\u662F\u53EF\u4EE5\u8BA9event.data\u4E2D\u4F20\u5165__page\u548Cindex\u503C\u4E0D\u662F\u8FD9\u79CD\u8054\u7CFB\u3002\n // \u6BD4\u5982__page\u8BBE\u7F6E\u4E3A3\uFF0Cindex\u8BBE\u7F6E\u4E3A0\u8868\u793A\u628A\u5F53\u524D\u8868\u5355\u6570\u636E\u63D0\u4EA4\u5230\u7B2C\u4E00\u9875\uFF0C\u4F46\u662F\u8DF3\u8F6C\u5230\u7B2C4\u9875\uFF0C\u5F39\u51FA\u7684\u8868\u5355\u4E2D\u5E95\u4E0B\u7684\u65B0\u589E\u548C\u590D\u5236\u6309\u94AE\u4F9D\u8D56\u4E86\u6B64\u529F\u80FD\n // let currentPage = currentIndex + 1;\n let currentPage = event.data.__page;\n let currentIndex = event.data.index;\n if(mode !== \"readonly\"){\n // \u65B0\u5EFA\u7F16\u8F91\u65F6\uFF0C\u7FFB\u9875\u624D\u9700\u8981\u628A\u5F53\u524D\u9875\u8868\u5355\u4FDD\u5B58\uFF0C\u53EA\u8BFB\u65F6\u76F4\u63A5\u7FFB\u9875\u5373\u53EF\n // \u7FFB\u9875\u5230\u4E0B\u4E00\u9875\u4E4B\u524D\u9700\u8981\u5148\u628A\u5F53\u524D\u9875\u6539\u52A8\u7684\u5185\u5BB9\u4FDD\u5B58\u5230\u4E2D\u95F4\u53D8\u91CF__tableItems\u4E2D\n let currentFormValues = scope.getComponentById(__formId).getValues();\n // \u8FD9\u91CC\u4E0Dclone\u7684\u8BDD\uFF0C\u5176\u503C\u4F1A\u5E26\u4E0A__super\u5C5E\u6027\n currentFormValues = _.clone(currentFormValues);\n var parent = event.data.parent;\n var __parentIndex = event.data.__parentIndex;\n if(parent){\n fieldValue[__parentIndex].children[currentIndex] = currentFormValues;\n // \u91CD\u5199\u7236\u8282\u70B9\uFF0C\u5E76\u4E14\u6539\u53D8\u5176\u67D0\u4E2A\u5C5E\u6027\u4EE5\u8BA9\u5B50\u8282\u70B9\u4FEE\u6539\u7684\u5185\u5BB9\u56DE\u663E\u5230\u754C\u9762\u4E0A\n fieldValue[__parentIndex] = Object.assign({}, fieldValue[__parentIndex], {\n children: fieldValue[__parentIndex].children,\n __fix_rerender_after_children_modified_tag: new Date().getTime()\n });\n }\n else{\n fieldValue[currentIndex] = currentFormValues;\n }\n // \u7FFB\u9875\u5230\u4E0B\u4E00\u9875\u524D\u9700\u8981\u540C\u65F6\u628A\u6539\u52A8\u7684\u5185\u5BB9\u4FDD\u5B58\u5230\u6700\u7EC8\u6B63\u5F0F\u7684\u8868\u5355\u5B57\u6BB5\u4E2D\uFF0C\u6240\u4EE5\u989D\u5916\u7ED9\u6B63\u5F0F\u8868\u5355\u5B57\u6BB5\u6267\u884C\u4E00\u6B21setValue\n doAction({\n \"componentId\": \"").concat(props.id,"\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": fieldValue\n }\n });\n }\n\n // \u4EE5\u4E0B\u662F\u7FFB\u9875\u903B\u8F91\uFF0C\u7FFB\u5230\u4E0B\u4E00\u9875\u5E76\u628A\u4E0B\u4E00\u9875\u5185\u5BB9\u663E\u793A\u5230\u8868\u5355\u4E0A\n let targetPage;\n if(pageChangeDirection === \"next\"){\n targetPage = currentPage + 1;\n }\n else{\n targetPage = currentPage - 1;\n }\n let targetIndex = targetPage - 1;//input-table\u7EC4\u4EF6\u884C\u7D22\u5F15\uFF0C\u4ECE0\u5F00\u59CB\u7684\u7D22\u5F15\n // let targetFormData = __tableItems[targetIndex];\n doAction({\n \"actionType\": \"setValue\",\n \"componentId\": __paginationServiceId,\n \"args\": {\n \"value\": {\n \"__page\": targetPage,\n \"index\": targetIndex\n }\n }\n });\n // \u8FD9\u91CC\u4E0D\u7528\u8FDB\u4E00\u6B65\u628A\u8868\u5355\u5185\u5BB9setValue\u5230form\u4E2D\uFF0C\u662F\u56E0\u4E3A\u7F16\u8F91\u8868\u5355\u4E2DschemaApi\u76D1\u542C\u4E86\u884C\u7D22\u5F15index\u7684\u53D8\u5316\uFF0C\u5176\u503C\u53D8\u5316\u65F6\u4F1A\u91CD\u65B0build\u6574\u4E2Aform\n // doAction({\n // \"actionType\": \"setValue\",\n // \"componentId\": __formId,\n // \"args\": {\n // \"value\": targetFormData\n // },\n // \"dataMergeMode\": \"override\"// amis 3.2\u4E0D\u652F\u6301override\u6A21\u5F0F\uFF0C\u9AD8\u7248\u672C\u624D\u652F\u6301\n // });\n ");return{"type":"wrapper","size":"none","className":"mr-1","body":[{"type":"button","label":"","icon":"fa fa-angle-left","level":"link","pageChangeDirection":"prev","disabledOn":showPagination?"${__page <= 1}":"true","size":"sm","id":buttonPrevId,"onEvent":{"click":{"actions":[{"actionType":"validate","componentId":formId},{"actionType":"custom","script":onPageChangeScript,"expression":"${!!!event.data.validateResult.error}"//触发表单校验结果会存入validateResult,amis 3.2不支持,高版本比如 3.5.3支持
969
+ }]}}},{"type":"tpl",// 这里用__super.parent,加__super是为了防止当前记录有字段名为parent的重名变量
948
970
  "tpl":"${__page}/${__super.parent ? COMPACT(__tableItems[__parentIndex]['children']).length : COMPACT(__tableItems).length}"},{"type":"button","label":"","icon":"fa fa-angle-right","level":"link","pageChangeDirection":"next",// "disabledOn": showPagination ? "${__page >= __tableItems.length}" : "true",
949
971
  // 这里用__super.parent,加__super是为了防止当前记录有字段名为parent的重名变量
950
- "disabledOn":showPagination?"${__page >= (__super.parent ? COMPACT(__tableItems[__parentIndex]['children']).length : COMPACT(__tableItems).length)}":"true","size":"sm","id":buttonNextId,"onEvent":{"click":{"actions":[{"actionType":"custom","script":onPageChangeScript}]}}}]};}/**
972
+ "disabledOn":showPagination?"${__page >= (__super.parent ? COMPACT(__tableItems[__parentIndex]['children']).length : COMPACT(__tableItems).length)}":"true","size":"sm","id":buttonNextId,"onEvent":{"click":{"actions":[{"actionType":"validate","componentId":formId},{"actionType":"custom","script":onPageChangeScript,"expression":"${!!!event.data.validateResult.error}"//触发表单校验结果会存入validateResult,amis 3.2不支持,高版本比如 3.5.3支持
973
+ }]}}}]};}/**
951
974
  * 传入formSchema输出带翻页容器的wrapper
952
975
  * @param {*} props input-table组件props
953
976
  * @param {*} form formSchema
@@ -1063,7 +1086,9 @@ schema=getFormPaginationWrapper(props,schema,mode);return _context120.abrupt("re
1063
1086
  // }
1064
1087
  // };
1065
1088
  onSaveAndNewItemScript="\n let scope = event.context.scoped;\n let removeEmptyItems = function(items){\n let i = _.findIndex(items, function(item){\n return item === undefined\n });\n if(i > -1){\n items.splice(i, 1);\n removeEmptyItems(items);\n }\n }\n // \u56E0\u4E3A\u5220\u9664\u65F6\u53EA\u662F\u628Ainput-table\u7EC4\u4EF6\u4E2D\u7684\u884C\u6570\u636E\u5220\u9664\u4E86\uFF0C\u5E76\u6CA1\u6709\u628A\u7236\u5C42service\u4E2D\u7684\u884C\u5220\u9664\uFF0C\u6240\u4EE5__tableItems\u4F1A\u6709\u503C\u4E3Aundefined\u7684\u6570\u636E\uFF0C\u9700\u8981\u79FB\u9664\u6389\n // \u4E0D\u7528event.data.__tableItems = _.compact(event.data.__tableItems)\u662F\u56E0\u4E3A\u4F1A\u628A__tableItems\u53D8\u91CF\u4FDD\u5B58\u5230\u8868\u5355\u4E2D\n removeEmptyItems(event.data.__tableItems);\n let fieldValue = event.data.__tableItems;//\u8FD9\u91CC\u4E0D\u53EF\u4EE5_.cloneDeep\uFF0C\u56E0\u4E3A\u7FFB\u9875form\u4E2D\u7528\u7684\u662Fevent.data.__tableItems\uFF0C\u76F4\u63A5\u53D8\u66F4\u5176\u503C\u5373\u53EF\u6539\u53D8\u8868\u5355\u4E2D\u7684\u503C\n // \u65B0\u5EFA\u4E00\u6761\u7A7A\u767D\u884C\u5E76\u4FDD\u5B58\u5230\u5B50\u8868\u7EC4\u4EF6\n var parent = event.data.__super.parent;\n var primaryKey = \"".concat(primaryKey,"\";\n var __parentIndex = parent && _.findIndex(fieldValue, function(item){\n return item[primaryKey] == parent[primaryKey];\n });\n if(parent && __parentIndex < 0){\n let tableId = \"").concat(props.id,"\";\n let table = scope.getComponentById(tableId)\n // autoGeneratePrimaryKeyValue\u4E0D\u4E3Atrue\u7684\u60C5\u51B5\u4E0B\uFF0C\u5373\u5B50\u8868\u7EC4\u4EF6input-table\u7684pipeOut\u51FD\u6570\u4E2D\u4F1A\u79FB\u9664\u8868\u5355\u4E86\u5B50\u8868\u5B57\u6BB5\u7684primaryKey\u5B57\u6BB5\u503C\uFF0C\n // \u6B64\u65F6\u884CprimaryKey\u5B57\u6BB5\u503C\u4E3A\u7A7A\uFF0C\u4F46\u662FpipeIn\u51FD\u6570\u4E2D\u5DF2\u7ECF\u4E3Ainput-table\u81EA\u52A8\u751F\u6210\u8FC7primaryKey\u5B57\u6BB5\u503C\u4E86\uFF0C\u53EA\u662F\u6CA1\u6709\u8F93\u51FA\u5230\u8868\u5355\u5B57\u6BB5\u503C\u4E2D\u800C\u5DF2\n // \u6240\u4EE5\u4E0A\u9762\u4ECE\u8868\u5355\u5B57\u6BB5\u503C\u4E2D\u6CA1\u627E\u5230__parentIndex\uFF0C\u662F\u56E0\u4E3A\u6B64\u65F6\u884CprimaryKey\u5B57\u6BB5\u503C\u53EA\u7ECF\u8FC7pipeIn\u4FDD\u5B58\u5230table\u7EC4\u4EF6\u5185\u800C\u6CA1\u6709\u4FDD\u5B58\u5230tableService\n __parentIndex = _.findIndex(table.props.value, function(item){\n return item[primaryKey] == parent[primaryKey];\n });\n }\n if(parent){\n fieldValue[__parentIndex].children.push({});\n // \u8FD9\u91CC\u5B9E\u6D4B\u4E0D\u9700\u8981fieldValue[__parentIndex] = ... \u6765\u91CD\u5199\u6574\u4E2A\u7236\u884C\u8BA9\u5B50\u8868\u56DE\u663E\uFF0C\u6240\u4EE5\u6CA1\u52A0\u76F8\u5173\u4EE3\u7801\n }\n else{\n fieldValue.push({});\n }\n doAction({\n \"componentId\": \"").concat(props.id,"\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": fieldValue\n }\n });\n let buttonNextId = \"").concat(buttonNextId,"\";\n let __paginationServiceId = \"").concat(formPaginationId,"\";\n let __paginationData = scope.getComponentById(__paginationServiceId).getData();\n event.data.index = __paginationData.index;\n if(parent){\n event.data.__page = fieldValue[__parentIndex].children.length - 1;//\u8FD9\u91CC\u4E0D\u53EF\u4EE5\u7528Object.assign\u5426\u5219\uFF0Cevent.data\u4E2D\u4E0A\u5C42\u4F5C\u7528\u57DF\u6570\u636E\u4F1A\u4E22\u5931\n event.data.__parentIndex = __parentIndex; //\u6267\u884C\u4E0B\u9762\u7684\u7FFB\u9875\u6309\u94AE\u4E8B\u4EF6\u4E2D\u4F9D\u8D56\u4E86__parentIndex\u503C\n }\n else{\n event.data.__page = fieldValue.length - 1;//\u8FD9\u91CC\u4E0D\u53EF\u4EE5\u7528Object.assign\u5426\u5219\uFF0Cevent.data\u4E2D\u4E0A\u5C42\u4F5C\u7528\u57DF\u6570\u636E\u4F1A\u4E22\u5931\n }\n // \u89E6\u53D1\u7FFB\u9875\u6309\u94AE\u4E8B\u4EF6\uFF0C\u5B9E\u73B0\u4FDD\u5B58\u5F53\u524D\u9875\u6570\u636E\u5E76\u8DF3\u8F6C\u5230\u6700\u540E\u4E00\u884C\n scope.getComponentById(buttonNextId).props.dispatchEvent(\"click\", event.data);\n ");onSaveAndCopyItemScript="\n let scope = event.context.scoped;\n let __formId = \"".concat(formId,"\";\n // let newItem = JSON.parse(JSON.stringify(event.data));\n let newItem = scope.getComponentById(__formId).getValues();//\u8FD9\u91CC\u4E0D\u53EF\u4EE5\u7528event.data\uFF0C\u56E0\u4E3A\u5176\u62FF\u5230\u7684\u662F\u5F39\u51FA\u8868\u5355\u65F6\u7684\u521D\u59CB\u503C\uFF0C\u4E0D\u662F\u7528\u6237\u5B9E\u65F6\u586B\u5199\u7684\u6570\u636E\n newItem = _.clone(newItem);\n let removeEmptyItems = function(items){\n let i = _.findIndex(items, function(item){\n return item === undefined\n });\n if(i > -1){\n items.splice(i, 1);\n removeEmptyItems(items);\n }\n }\n // \u56E0\u4E3A\u5220\u9664\u65F6\u53EA\u662F\u628Ainput-table\u7EC4\u4EF6\u4E2D\u7684\u884C\u6570\u636E\u5220\u9664\u4E86\uFF0C\u5E76\u6CA1\u6709\u628A\u7236\u5C42service\u4E2D\u7684\u884C\u5220\u9664\uFF0C\u6240\u4EE5__tableItems\u4F1A\u6709\u503C\u4E3Aundefined\u7684\u6570\u636E\uFF0C\u9700\u8981\u79FB\u9664\u6389\n // \u4E0D\u7528event.data.__tableItems = _.compact(event.data.__tableItems)\u662F\u56E0\u4E3A\u4F1A\u628A__tableItems\u53D8\u91CF\u4FDD\u5B58\u5230\u8868\u5355\u4E2D\n removeEmptyItems(event.data.__tableItems);\n let fieldValue = event.data.__tableItems;//\u8FD9\u91CC\u4E0D\u53EF\u4EE5_.cloneDeep\uFF0C\u56E0\u4E3A\u7FFB\u9875form\u4E2D\u7528\u7684\u662Fevent.data.__tableItems\uFF0C\u76F4\u63A5\u53D8\u66F4\u5176\u503C\u5373\u53EF\u6539\u53D8\u8868\u5355\u4E2D\u7684\u503C\n // \u590D\u5236\u5F53\u524D\u9875\u6570\u636E\u5230\u65B0\u5EFA\u884C\u5E76\u4FDD\u5B58\u5230\u5B50\u8868\u7EC4\u4EF6\n // fieldValue.push(newItem);\n var parent = event.data.__super.parent;\n var primaryKey = \"").concat(primaryKey,"\";\n var __parentIndex = parent && _.findIndex(fieldValue, function(item){\n return item[primaryKey] == parent[primaryKey];\n });\n if(parent && __parentIndex < 0){\n let tableId = \"").concat(props.id,"\";\n let table = scope.getComponentById(tableId)\n // autoGeneratePrimaryKeyValue\u4E0D\u4E3Atrue\u7684\u60C5\u51B5\u4E0B\uFF0C\u5373\u5B50\u8868\u7EC4\u4EF6input-table\u7684pipeOut\u51FD\u6570\u4E2D\u4F1A\u79FB\u9664\u8868\u5355\u4E86\u5B50\u8868\u5B57\u6BB5\u7684primaryKey\u5B57\u6BB5\u503C\uFF0C\n // \u6B64\u65F6\u884CprimaryKey\u5B57\u6BB5\u503C\u4E3A\u7A7A\uFF0C\u4F46\u662FpipeIn\u51FD\u6570\u4E2D\u5DF2\u7ECF\u4E3Ainput-table\u81EA\u52A8\u751F\u6210\u8FC7primaryKey\u5B57\u6BB5\u503C\u4E86\uFF0C\u53EA\u662F\u6CA1\u6709\u8F93\u51FA\u5230\u8868\u5355\u5B57\u6BB5\u503C\u4E2D\u800C\u5DF2\n // \u6240\u4EE5\u4E0A\u9762\u4ECE\u8868\u5355\u5B57\u6BB5\u503C\u4E2D\u6CA1\u627E\u5230__parentIndex\uFF0C\u662F\u56E0\u4E3A\u6B64\u65F6\u884CprimaryKey\u5B57\u6BB5\u503C\u53EA\u7ECF\u8FC7pipeIn\u4FDD\u5B58\u5230table\u7EC4\u4EF6\u5185\u800C\u6CA1\u6709\u4FDD\u5B58\u5230tableService\n __parentIndex = _.findIndex(table.props.value, function(item){\n return item[primaryKey] == parent[primaryKey];\n });\n }\n if(newItem[primaryKey]){\n // \u5982\u679CnewItem\u5DF2\u7ECF\u6709\u4E3B\u952E\u5B57\u6BB5\u503C\uFF0C\u5219\u91CD\u65B0\u751F\u6210\u65B0\u7684\u4E3B\u952E\u503C\uFF0C\u5426\u5219\u4F1A\u91CD\u590D\u3002\n let uuidv4 = new Function(\"return (\" + ").concat(uuidv4.toString()," + \")()\");\n newItem[primaryKey] = uuidv4();\n }\n if(parent){\n fieldValue[__parentIndex].children.push(newItem);\n // \u8FD9\u91CC\u5B9E\u6D4B\u4E0D\u9700\u8981fieldValue[__parentIndex] = ... \u6765\u91CD\u5199\u6574\u4E2A\u7236\u884C\u8BA9\u5B50\u8868\u56DE\u663E\uFF0C\u6240\u4EE5\u6CA1\u52A0\u76F8\u5173\u4EE3\u7801\n }\n else{\n fieldValue.push(newItem);\n }\n doAction({\n \"componentId\": \"").concat(props.id,"\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": fieldValue\n }\n });\n let buttonNextId = \"").concat(buttonNextId,"\";\n let __paginationServiceId = \"").concat(formPaginationId,"\";\n let __paginationData = scope.getComponentById(__paginationServiceId).getData();\n event.data.index = __paginationData.index;\n if(parent){\n event.data.__page = fieldValue[__parentIndex].children.length - 1;//\u8FD9\u91CC\u4E0D\u53EF\u4EE5\u7528Object.assign\u5426\u5219\uFF0Cevent.data\u4E2D\u4E0A\u5C42\u4F5C\u7528\u57DF\u6570\u636E\u4F1A\u4E22\u5931\n event.data.__parentIndex = __parentIndex; //\u6267\u884C\u4E0B\u9762\u7684\u7FFB\u9875\u6309\u94AE\u4E8B\u4EF6\u4E2D\u4F9D\u8D56\u4E86__parentIndex\u503C\n }\n else{\n event.data.__page = fieldValue.length - 1;//\u8FD9\u91CC\u4E0D\u53EF\u4EE5\u7528Object.assign\u5426\u5219\uFF0Cevent.data\u4E2D\u4E0A\u5C42\u4F5C\u7528\u57DF\u6570\u636E\u4F1A\u4E22\u5931\n }\n // \u89E6\u53D1\u7FFB\u9875\u6309\u94AE\u4E8B\u4EF6\uFF0C\u5B9E\u73B0\u4FDD\u5B58\u5F53\u524D\u9875\u6570\u636E\u5E76\u8DF3\u8F6C\u5230\u6700\u540E\u4E00\u884C\n scope.getComponentById(buttonNextId).props.dispatchEvent(\"click\", event.data);\n ");dialogButtons=[{"type":"button","label":"完成","actionType":"confirm","level":"primary"}];if(props.addable){// 有新增行权限时额外添加新增和复制按钮
1066
- dialogButtons=[{"type":"button","label":"新增","tooltip":"保存并新增一行,即保存当前行数据并新增一条空白行","onEvent":{"click":{"actions":[{"actionType":"custom","script":onSaveAndNewItemScript}]}}},{"type":"button","label":"复制","tooltip":"复制并新增一行,即保存当前行数据并复制当前行数据到新增行","onEvent":{"click":{"actions":[{"actionType":"custom","script":onSaveAndCopyItemScript}]}}},dialogButtons[0]];}_context121.t0=dialogId;_context121.t1="${uiSchema.fields.".concat(props.name,".label} \u660E\u7EC6");_context121.next=18;return getForm(props,mode,formId);case 18:_context121.t2=_context121.sent;_context121.t3=[_context121.t2];_context121.t4={// 这里必须加data数据映射,否则翻页功能中取__tableItems值时会乱,比如翻页编辑后会把上一页中没改过的字段值带过去
1089
+ dialogButtons=[{"type":"button","label":"新增","tooltip":"保存并新增一行,即保存当前行数据并新增一条空白行","onEvent":{"click":{"actions":[{"actionType":"validate","componentId":formId},{"actionType":"custom","script":onSaveAndNewItemScript,"expression":"${!!!event.data.validateResult.error}"//触发表单校验结果会存入validateResult,amis 3.2不支持,高版本比如 3.5.3支持
1090
+ }]}}},{"type":"button","label":"复制","tooltip":"复制并新增一行,即保存当前行数据并复制当前行数据到新增行","onEvent":{"click":{"actions":[{"actionType":"validate","componentId":formId},{"actionType":"custom","script":onSaveAndCopyItemScript,"expression":"${!!!event.data.validateResult.error}"//触发表单校验结果会存入validateResult,amis 3.2不支持,高版本比如 3.5.3支持
1091
+ }]}}},dialogButtons[0]];}_context121.t0=dialogId;_context121.t1="${uiSchema.fields.".concat(props.name,".label} \u660E\u7EC6");_context121.next=18;return getForm(props,mode,formId);case 18:_context121.t2=_context121.sent;_context121.t3=[_context121.t2];_context121.t4={// 这里必须加data数据映射,否则翻页功能中取__tableItems值时会乱,比如翻页编辑后会把上一页中没改过的字段值带过去
1067
1092
  // 额外把华炎魔方主表记录ObjectForm中的字段值从record变量中映射到子表form中,因为子表lookup字段filtersFunction中可能依赖了主表记录中的字段值,比如“工作流规则”对象“时间触发器”字段中的“日期字段”字段
1068
1093
  // 额外把global、uiSchema也映射过去,有可能要用,后续需要用到其他变更可以这里加映射
1069
1094
  // "&": "${record || {}}",
@@ -1137,7 +1162,7 @@ actions=[actionShowEditDialog];}else if(mode=="edit"){actions=[actionShowEditDia
1137
1162
  // },
1138
1163
  // "componentId": props.id
1139
1164
  // },
1140
- {"actionType":"custom","script":onDeleteItemScript}];}case 43:return _context121.abrupt("return",actions);case 44:case"end":return _context121.stop();}}},_callee121);}));return _getButtonActions.apply(this,arguments);}function getButtonNew(_x222){return _getButtonNew.apply(this,arguments);}function _getButtonNew(){_getButtonNew=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee122(props){return _regeneratorRuntime().wrap(function _callee122$(_context122){while(1){switch(_context122.prev=_context122.next){case 0:_context122.next=2;return getButtonActions(props,"new");case 2:_context122.t0=_context122.sent;_context122.t1={"actions":_context122.t0};_context122.t2={"click":_context122.t1};return _context122.abrupt("return",{"label":"新增","type":"button","icon":"fa fa-plus","onEvent":_context122.t2,"level":"primary"});case 6:case"end":return _context122.stop();}}},_callee122);}));return _getButtonNew.apply(this,arguments);}function getButtonEdit(_x223,_x224){return _getButtonEdit.apply(this,arguments);}function _getButtonEdit(){_getButtonEdit=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee123(props,showAsInlineEditMode){return _regeneratorRuntime().wrap(function _callee123$(_context123){while(1){switch(_context123.prev=_context123.next){case 0:_context123.t0="fa fa-".concat(showAsInlineEditMode?"expand-alt":"pencil");_context123.next=3;return getButtonActions(props,"edit");case 3:_context123.t1=_context123.sent;_context123.t2={"actions":_context123.t1};_context123.t3={"click":_context123.t2};return _context123.abrupt("return",{"type":"button","label":"","icon":_context123.t0,"level":"link","onEvent":_context123.t3});case 7:case"end":return _context123.stop();}}},_callee123);}));return _getButtonEdit.apply(this,arguments);}function getButtonView(_x225){return _getButtonView.apply(this,arguments);}function _getButtonView(){_getButtonView=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee124(props){return _regeneratorRuntime().wrap(function _callee124$(_context124){while(1){switch(_context124.prev=_context124.next){case 0:_context124.next=2;return getButtonActions(props,"readonly");case 2:_context124.t0=_context124.sent;_context124.t1={"actions":_context124.t0};_context124.t2={"click":_context124.t1};return _context124.abrupt("return",{"type":"button","label":"","icon":"fa fa-expand-alt","level":"link","onEvent":_context124.t2});case 6:case"end":return _context124.stop();}}},_callee124);}));return _getButtonView.apply(this,arguments);}function getButtonDelete(_x226){return _getButtonDelete.apply(this,arguments);}function _getButtonDelete(){_getButtonDelete=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee125(props){return _regeneratorRuntime().wrap(function _callee125$(_context125){while(1){switch(_context125.prev=_context125.next){case 0:_context125.next=2;return getButtonActions(props,"delete");case 2:_context125.t0=_context125.sent;_context125.t1={"actions":_context125.t0};_context125.t2={"click":_context125.t1};return _context125.abrupt("return",{"type":"button","label":"","icon":"fa fa-trash-alt","level":"link","onEvent":_context125.t2});case 6:case"end":return _context125.stop();}}},_callee125);}));return _getButtonDelete.apply(this,arguments);}var getAmisInputTableSchema=/*#__PURE__*/function(){var _ref20=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee19(props){var primaryKey,showOperation,fieldPrefix,fields,serviceId,buttonsForColumnOperations,inlineEditMode,showAsInlineEditMode,showEditButton,buttonEditSchema,buttonViewSchema,buttonDeleteSchema,amis,inputTableSchema,isAnyFieldHasDependOn,schemaBody,footerToolbar,buttonNewSchema,headerToolbar,schema;return _regeneratorRuntime().wrap(function _callee19$(_context19){while(1){switch(_context19.prev=_context19.next){case 0:if(!props.id){props.id="steedos_input_table_"+props.name+"_"+Math.random().toString(36).substr(2,9);}primaryKey=getTablePrimaryKey(props);showOperation=props.showOperation;if(showOperation!==false){showOperation=true;}fieldPrefix=props.fieldPrefix;fields=props.fields||[];if(fieldPrefix){fields=getTableFieldsWithoutFieldPrefix(fields,fieldPrefix);}serviceId=getComponentId("table_service",props.id);buttonsForColumnOperations=[];inlineEditMode=props.inlineEditMode;showAsInlineEditMode=inlineEditMode&&props.editable;if(!showOperation){_context19.next=31;break;}if(!props.editable){_context19.next=22;break;}showEditButton=true;if(showAsInlineEditMode){// 始终显示弹出子表表单按钮,如果需要判断只在有列被隐藏时才需要显示弹出表单按钮放开下面的if逻辑就好
1165
+ {"actionType":"custom","script":onDeleteItemScript}];}case 43:return _context121.abrupt("return",actions);case 44:case"end":return _context121.stop();}}},_callee121);}));return _getButtonActions.apply(this,arguments);}function getButtonNew(_x222){return _getButtonNew.apply(this,arguments);}function _getButtonNew(){_getButtonNew=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee122(props){return _regeneratorRuntime().wrap(function _callee122$(_context122){while(1){switch(_context122.prev=_context122.next){case 0:_context122.next=2;return getButtonActions(props,"new");case 2:_context122.t0=_context122.sent;_context122.t1={"actions":_context122.t0};_context122.t2={"click":_context122.t1};return _context122.abrupt("return",{"label":"新增","type":"button","icon":"fa fa-plus","onEvent":_context122.t2,"level":"primary"});case 6:case"end":return _context122.stop();}}},_callee122);}));return _getButtonNew.apply(this,arguments);}function getButtonEdit(_x223,_x224){return _getButtonEdit.apply(this,arguments);}function _getButtonEdit(){_getButtonEdit=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee123(props,showAsInlineEditMode){return _regeneratorRuntime().wrap(function _callee123$(_context123){while(1){switch(_context123.prev=_context123.next){case 0:_context123.t0="fa fa-".concat(showAsInlineEditMode?"expand-alt":"pencil");_context123.next=3;return getButtonActions(props,"edit");case 3:_context123.t1=_context123.sent;_context123.t2={"actions":_context123.t1};_context123.t3={"click":_context123.t2};return _context123.abrupt("return",{"type":"button","label":"","icon":_context123.t0,"level":"link","onEvent":_context123.t3});case 7:case"end":return _context123.stop();}}},_callee123);}));return _getButtonEdit.apply(this,arguments);}function getButtonView(_x225){return _getButtonView.apply(this,arguments);}function _getButtonView(){_getButtonView=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee124(props){return _regeneratorRuntime().wrap(function _callee124$(_context124){while(1){switch(_context124.prev=_context124.next){case 0:_context124.next=2;return getButtonActions(props,"readonly");case 2:_context124.t0=_context124.sent;_context124.t1={"actions":_context124.t0};_context124.t2={"click":_context124.t1};return _context124.abrupt("return",{"type":"button","label":"","icon":"fa fa-expand-alt","level":"link","onEvent":_context124.t2});case 6:case"end":return _context124.stop();}}},_callee124);}));return _getButtonView.apply(this,arguments);}function getButtonDelete(_x226){return _getButtonDelete.apply(this,arguments);}function _getButtonDelete(){_getButtonDelete=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee125(props){return _regeneratorRuntime().wrap(function _callee125$(_context125){while(1){switch(_context125.prev=_context125.next){case 0:_context125.t0={"tpl":"确定要删除吗?","type":"tpl"};_context125.t1={"type":"button","label":"取消","className":"mr-2"};_context125.next=4;return getButtonActions(props,"delete");case 4:_context125.t2=_context125.sent;_context125.t3={"actions":_context125.t2};_context125.t4={"click":_context125.t3};_context125.t5={"type":"button","label":"删除","level":"danger","onEvent":_context125.t4};_context125.t6=[_context125.t1,_context125.t5];_context125.t7={"type":"flex","justify":"flex-end","className":"mt-3","items":_context125.t6};_context125.t8=[_context125.t0,_context125.t7];_context125.t9={"type":"wrapper","size":"md","className":"w-80","body":_context125.t8};_context125.t10=[_context125.t9];return _context125.abrupt("return",{"type":"dropdown-button","level":"link","icon":"fa fa-trash-alt","size":"xs","hideCaret":true,"closeOnClick":true,"body":_context125.t10});case 14:case"end":return _context125.stop();}}},_callee125);}));return _getButtonDelete.apply(this,arguments);}var getAmisInputTableSchema=/*#__PURE__*/function(){var _ref20=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee19(props){var primaryKey,showOperation,fieldPrefix,fields,serviceId,buttonsForColumnOperations,inlineEditMode,showAsInlineEditMode,showEditButton,buttonEditSchema,buttonViewSchema,buttonDeleteSchema,amis,inputTableSchema,isAnyFieldHasDependOn,schemaBody,footerToolbar,buttonNewSchema,headerToolbar,className,schema;return _regeneratorRuntime().wrap(function _callee19$(_context19){while(1){switch(_context19.prev=_context19.next){case 0:if(!props.id){props.id="steedos_input_table_"+props.name+"_"+Math.random().toString(36).substr(2,9);}primaryKey=getTablePrimaryKey(props);showOperation=props.showOperation;if(showOperation!==false){showOperation=true;}fieldPrefix=props.fieldPrefix;fields=props.fields||[];if(fieldPrefix){fields=getTableFieldsWithoutFieldPrefix(fields,fieldPrefix);}serviceId=getComponentId("table_service",props.id);buttonsForColumnOperations=[];inlineEditMode=props.inlineEditMode;showAsInlineEditMode=inlineEditMode&&props.editable;if(!showOperation){_context19.next=31;break;}if(!props.editable){_context19.next=22;break;}showEditButton=true;if(showAsInlineEditMode){// 始终显示弹出子表表单按钮,如果需要判断只在有列被隐藏时才需要显示弹出表单按钮放开下面的if逻辑就好
1141
1166
  showEditButton=true;// // inline edit模式下只在有列被隐藏时才需要显示编辑按钮
1142
1167
  // if (props.columns && props.columns.length > 0 && props.columns.length < fields.length) {
1143
1168
  // showEditButton = true;
@@ -1147,16 +1172,20 @@ showEditButton=true;// // inline edit模式下只在有列被隐藏时才需要
1147
1172
  // }
1148
1173
  }// 编辑时显示编辑按钮
1149
1174
  if(!showEditButton){_context19.next=20;break;}_context19.next=18;return getButtonEdit(props,showAsInlineEditMode);case 18:buttonEditSchema=_context19.sent;buttonsForColumnOperations.push(buttonEditSchema);case 20:_context19.next=26;break;case 22:_context19.next=24;return getButtonView(props);case 24:buttonViewSchema=_context19.sent;buttonsForColumnOperations.push(buttonViewSchema);case 26:if(!props.removable){_context19.next=31;break;}_context19.next=29;return getButtonDelete(props);case 29:buttonDeleteSchema=_context19.sent;buttonsForColumnOperations.push(buttonDeleteSchema);case 31:amis=props["input-table"]||props.amis||{};//额外支持"input-table"代替amis属性,是因为在字段yml文件中用amis作为key不好理解
1150
- _context19.t0=props.name;_context19.t1=props.draggable;_context19.t2=props.showIndex;_context19.t3=props.perPage;_context19.t4=props.id;_context19.next=39;return getInputTableColumns(props);case 39:_context19.t5=_context19.sent;_context19.t6=props.strictMode;_context19.t7=props.tableClassName;_context19.t8=function pipeIn(value,data){if(fieldPrefix){value=getTableValueWithoutFieldPrefix(value,fieldPrefix);}if(primaryKey){// 这里临时给每行数据补上primaryKey字段值,如果库里不需要保存这里补上的字段值,pipeOut中会识别autoGeneratePrimaryKeyValue属性选择最终移除这里补上的字段值
1175
+ _context19.t0=props.name;_context19.t1=props.draggable;_context19.t2=props.showIndex;_context19.t3=props.perPage;_context19.t4=props.id;_context19.next=39;return getInputTableColumns(props);case 39:_context19.t5=_context19.sent;_context19.t6=props.strictMode;_context19.t7=props.tableClassName;_context19.t8=function pipeIn(value,data){if(fieldPrefix){value=getTableValueWithoutFieldPrefix(value,fieldPrefix);}value=getTableValueWithEmptyValue(value,fields);if(primaryKey){// 这里临时给每行数据补上primaryKey字段值,如果库里不需要保存这里补上的字段值,pipeOut中会识别autoGeneratePrimaryKeyValue属性选择最终移除这里补上的字段值
1151
1176
  // 这里始终自动生成primaryKey字段值,而不是只在pipeOut输出整个子表字段值时才生成,是因为要支持当数据库里保存的子表字段行数据没有primaryKey字段值时的行嵌套模式(即节点的children属性)功能
1152
1177
  // 这里要注意,流程详细设置界面的字段设置功能中的子表组件中,数据库里保存的子表字段行数据是有primaryKey字段值的,它不依赖这里自动生成行primaryKey值功能
1153
- value=getTableValueWithPrimaryKeyValue(value,primaryKey);}if(amis.pipeIn){if(typeof amis.pipeIn==='function'){return amis.pipeIn(value,data);}}return value;};_context19.t9=function pipeOut(value,data){value=(value||[]).map(function(item){delete item.__fix_rerender_after_children_modified_tag;return item;});if(fieldPrefix){value=getTableValuePrependFieldPrefix(value,fieldPrefix,primaryKey);}if(props.autoGeneratePrimaryKeyValue===true){// 如果需要把自动生成的primaryKey值输出保存的库中,则补全所有行中的primaryKey值
1178
+ value=getTableValueWithPrimaryKeyValue(value,primaryKey);}if(amis.pipeIn){if(typeof amis.pipeIn==='function'){return amis.pipeIn(value,data);}}return value;};_context19.t9=function pipeOut(value,data){value=(value||[]).map(function(item){delete item.__fix_rerender_after_children_modified_tag;return item;});if(fieldPrefix){value=getTableValuePrependFieldPrefix(value,fieldPrefix,primaryKey);}value=getTableValueWithoutEmptyValue(value,fields);if(props.autoGeneratePrimaryKeyValue===true){// 如果需要把自动生成的primaryKey值输出保存的库中,则补全所有行中的primaryKey值
1154
1179
  // 这里如果不全部补全的话,初始从库里返回的字段值中拿到的行没primaryKey值的话就不会自动补上
1155
1180
  value=getTableValueWithPrimaryKeyValue(value,primaryKey);}else{// 默认情况下,也就是没有配置autoGeneratePrimaryKey时,最终输出的字段值要移除行中的primaryKey值
1156
1181
  // 需要注意如果没有配置autoGeneratePrimaryKey时,因为每次弹出行编辑窗口保存后都会先后进入pipeOut和pipeIn,
1157
1182
  // 这里删除掉了primaryKey值,所以primaryKey值每次弹出编辑窗口保存后都会给每行重新生成新的primaryKey值
1158
1183
  // 只有autoGeneratePrimaryKey配置为true时,每行的primaryKey字段值才会始终保持不变
1159
- value=getTableValueWithoutPrimaryKeyValue(value,primaryKey);}if(amis.pipeOut){if(typeof amis.pipeOut==='function'){return amis.pipeOut(value,data);}}return value;};inputTableSchema={"type":"input-table","mode":"normal","name":_context19.t0,"draggable":_context19.t1,"showIndex":_context19.t2,"perPage":_context19.t3,"id":_context19.t4,"columns":_context19.t5,"strictMode":_context19.t6,"showTableAddBtn":false,"showFooterAddBtn":false,"className":_context19.t7,"pipeIn":_context19.t8,"pipeOut":_context19.t9};if(buttonsForColumnOperations.length){inputTableSchema.columns.push({"name":"__op__","type":"operation","buttons":buttonsForColumnOperations,"width":buttonsForColumnOperations.length>1?"60px":"20px"});}if(amis){// 支持配置amis属性重写或添加最终生成的input-table中任何属性。
1184
+ value=getTableValueWithoutPrimaryKeyValue(value,primaryKey);}if(amis.pipeOut){if(typeof amis.pipeOut==='function'){return amis.pipeOut(value,data);}}return value;};inputTableSchema={"type":"input-table","mode":"normal","name":_context19.t0,"draggable":_context19.t1,"showIndex":_context19.t2,"perPage":_context19.t3,"id":_context19.t4,"columns":_context19.t5,"strictMode":_context19.t6,"showTableAddBtn":false,"showFooterAddBtn":false,"className":_context19.t7,"pipeIn":_context19.t8,"pipeOut":_context19.t9};if(buttonsForColumnOperations.length){inputTableSchema.columns.push({"name":"__op__","type":"operation","buttons":buttonsForColumnOperations,"width":buttonsForColumnOperations.length>1?"60px":"20px"});}// if (showAsInlineEditMode) {
1185
+ // // 因为要支持不同的列上配置inlineEditMode属性,所有不可以把整个子表组件都设置为inlineEditMode
1186
+ // inputTableSchema.needConfirm = false;
1187
+ // }
1188
+ if(amis){// 支持配置amis属性重写或添加最终生成的input-table中任何属性。
1160
1189
  delete amis.id;//如果steedos-input-table组件配置了amis.id属性,会造成新建编辑行功能不生效
1161
1190
  delete amis.pipeIn;//该属性在上面合并过了
1162
1191
  delete amis.pipeOut;//该属性在上面合并过了
@@ -1166,9 +1195,9 @@ if(!props.addable){_context19.next=56;break;}_context19.next=54;return getButton
1166
1195
  // 看起来amis官方后续会支持给input-table组件配置headerToolbar,见:https://github.com/baidu/amis/issues/7246
1167
1196
  // 不过依然放开此功能的意义在于有的场景字段label本来就不需要显示出来,此时headerToolbar就有意义
1168
1197
  headerToolbar=_$1.clone(props.headerToolbar||[]);//这里不clone的话,会造成死循环,应该是因为props属性变更会让组件重新渲染
1169
- if(headerToolbar.length){schemaBody.unshift({"type":"wrapper","size":"none","body":headerToolbar});}schema={"type":"control","body":{"type":"service","body":schemaBody,"id":serviceId},"label":props.label,"labelClassName":props.label?props.labelClassName:"none","labelRemark":props.labelRemark,"labelAlign":props.labelAlign,//控制control的mode属性,https://aisuda.bce.baidu.com/amis/zh-CN/components/form/formitem#表单项展示
1170
- "mode":props.mode||null,"className":props.className};// console.log("===schema===", schema);
1171
- return _context19.abrupt("return",schema);case 61:case"end":return _context19.stop();}}},_callee19);}));return function getAmisInputTableSchema(_x227){return _ref20.apply(this,arguments);};}();// import { getListSchema } from './objects';
1198
+ if(headerToolbar.length){schemaBody.unshift({"type":"wrapper","size":"none","body":headerToolbar});}className="steedos-input-table";if(_typeof(props.className)=="object"){className=_objectSpread(_defineProperty({},className,"true"),props.className);}else if(typeof props.className=="string"){className="".concat(className," ").concat(props.className," ");}schema={"type":"control","body":{"type":"service","body":schemaBody,"id":serviceId},"label":props.label,"labelClassName":props.label?props.labelClassName:"none","labelRemark":props.labelRemark,"labelAlign":props.labelAlign,//控制control的mode属性,https://aisuda.bce.baidu.com/amis/zh-CN/components/form/formitem#表单项展示
1199
+ "mode":props.mode||null,className:className};// console.log("===schema===", schema);
1200
+ return _context19.abrupt("return",schema);case 63:case"end":return _context19.stop();}}},_callee19);}));return function getAmisInputTableSchema(_x227){return _ref20.apply(this,arguments);};}();// import { getListSchema } from './objects';
1172
1201
  function getScopeId(objectApiName,type){return"page_".concat(objectApiName,"_").concat(type);}// 获取表单初始化amisSchema
1173
1202
  function getFormPageInitSchema(_x228){return _getFormPageInitSchema.apply(this,arguments);}// 获取列表页面初始化amisSchema
1174
1203
  function _getFormPageInitSchema(){_getFormPageInitSchema=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee126(objectApiName){var schema;return _regeneratorRuntime().wrap(function _callee126$(_context126){while(1){switch(_context126.prev=_context126.next){case 0:_context126.next=2;return getFormSchema(objectApiName,{recordId:'${recordId}'});case 2:schema=_context126.sent;return _context126.abrupt("return",{type:'page',name:getScopeId(objectApiName,"form"),bodyClassName:'',regions:["body"],body:[schema.amisSchema]});case 4:case"end":return _context126.stop();}}},_callee126);}));return _getFormPageInitSchema.apply(this,arguments);}function getListPageInitSchema(_x229,_x230,_x231){return _getListPageInitSchema.apply(this,arguments);}// 获取