// 获取单据关联基础数据的指定属性值 export default { execute:async function(){ console.log("进入到基础数据前端公式"); if(arguments&&arguments[0]&&arguments[0][0]&&arguments[1]){ let selectFileObject = arguments[0][0],//选择的字段 _key = arguments[0][0].FieldCode//字段标识 ,table = arguments[0][0].FieldTableCode//字段所在表 ,mdFieldName = arguments[0][1].StaticValue//基础数据表中属性标识 ,context = arguments[1]; if( selectFileObject instanceof BillDataNode //判断是否为单据字段(双击选择的参数) && selectFileObject.FieldDataType == 10){ // 判断配置字段是否为关联基础数据类型 let table_Obj = context.getTableType(table); let _data = {}; if(table_Obj && table_Obj.type == "master"){//如果是主表字段 //获取字段对应值 _data =context.getMasterData().getValue(_key); }else{//如果是子表字段 //怎样获取光标所在的子表行 } let ret = ''; // 当字段值中无该属性,调用接口获取完整基础数据 if(_data){ if (!(mdFieldName in _data) && _data.code && _data._type && _data._type.indexOf("datamodel") != -1) { _data = await this.getMDObject(_data._type.split(".")[1], _data.code) } // 二次校验 if(!(mdFieldName in _data)){ GAMS.Common.messagePrompt('第二个参数配置的标识在基础数据中未找到对应字段'); }else{ ret = _data[mdFieldName]; } } return ret; }else{ GAMS.Common.messagePrompt('第一个参数需要配置关联基础数据的字段'); return ''; } }else{ GAMS.Common.messagePrompt('GetMDValue公式:参数配置有误'); // this.$Message({ // message:"error", // type:'error'//type 取值 ‘success’(成功) /warning(警告)/info(消息)/error(错误)/; // }) return ''; } }, getResultType:function(){ return FMR.ConstDataTypes.General; }, // 获取基础数据 getMDObject(name, code) { let param = { "limit": 1, "offset": 0, "pagination": true, "tableName": name, "searchKey": code,//按code和name过滤 "queryDataStructure": "ALL"//返回的接口类型 } return new Promise((resolve, reject) => { let promise = GMS.$http.post("/baseData/data/list", param); promise .then((data) => { if (data.data && data.data.rows && data.data.rows.length > 0) { resolve(data.data.rows[0]); } else { resolve([]); } }) .catch((error) => { resolve([]); }); }); } }