jpc_rte.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. 'use strict';
  2. /**
  3. * Created by Tony on 2016/12/28.
  4. */
  5. const strUtil = require('../public/stringUtil');
  6. const JV = require('./jpc_value_define');
  7. const JE = {
  8. $STR_UTIL: strUtil,
  9. F(fID, $CURRENT_RPT) {
  10. let rst = null;
  11. if ($CURRENT_RPT) {
  12. if ($CURRENT_RPT.fields[JV.NODE_DETAIL_FIELDS][JV.PROP_ID + '_' + fID]) {
  13. rst = $CURRENT_RPT.fields[JV.NODE_DETAIL_FIELDS][JV.PROP_ID + '_' + fID];
  14. } else if ($CURRENT_RPT.fields[JV.NODE_MASTER_FIELDS][JV.PROP_ID + '_' + fID]) {
  15. rst = $CURRENT_RPT.fields[JV.NODE_MASTER_FIELDS][JV.PROP_ID + '_' + fID];
  16. } else if ($CURRENT_RPT.fields[JV.NODE_MASTER_FIELDS_EX][JV.PROP_ID + '_' + fID]) {
  17. rst = $CURRENT_RPT.fields[JV.NODE_MASTER_FIELDS_EX][JV.PROP_ID + '_' + fID];
  18. } else if ($CURRENT_RPT.fields[JV.NODE_DETAIL_FIELDS_EX][JV.PROP_ID + '_' + fID]) {
  19. rst = $CURRENT_RPT.fields[JV.NODE_DETAIL_FIELDS_EX][JV.PROP_ID + '_' + fID];
  20. } else if ($CURRENT_RPT.fields[JV.NODE_DISCRETE_FIELDS][JV.PROP_ID + '_' + fID]) {
  21. rst = $CURRENT_RPT.fields[JV.NODE_DISCRETE_FIELDS][JV.PROP_ID + '_' + fID];
  22. } else if ($CURRENT_RPT.fields[JV.NODE_NO_MAPPING_FIELDS][JV.PROP_ID + '_' + fID]) {
  23. rst = $CURRENT_RPT.fields[JV.NODE_NO_MAPPING_FIELDS][JV.PROP_ID + '_' + fID];
  24. } else if ($CURRENT_RPT.fields[JV.NODE_SIGNATURE_FIELDS][JV.PROP_ID + '_' + fID]) {
  25. rst = $CURRENT_RPT.fields[JV.NODE_SIGNATURE_FIELDS][JV.PROP_ID + '_' + fID];
  26. } else {
  27. rst = { msg: 'the Field-ID is not valid, no result could be found!' };
  28. }
  29. }
  30. return rst;
  31. },
  32. F_NAME(fNAME, $CURRENT_RPT) {
  33. // 临时顶用方法,通过名称找指标
  34. const getFieldFrom = fCollections => {
  35. let fRst = null;
  36. if (fCollections) {
  37. for (const prop in fCollections) {
  38. if (fCollections[prop] && fCollections[prop].Name === fNAME) {
  39. fRst = fCollections[prop];
  40. break;
  41. }
  42. }
  43. }
  44. return fRst;
  45. };
  46. let rst = getFieldFrom($CURRENT_RPT.fields[JV.NODE_DETAIL_FIELDS]);
  47. if (!rst) rst = getFieldFrom($CURRENT_RPT.fields[JV.NODE_MASTER_FIELDS]);
  48. if (!rst) rst = getFieldFrom($CURRENT_RPT.fields[JV.NODE_DETAIL_FIELDS_EX]);
  49. if (!rst) rst = getFieldFrom($CURRENT_RPT.fields[JV.NODE_DISCRETE_FIELDS]);
  50. if (!rst) rst = getFieldFrom($CURRENT_RPT.fields[JV.NODE_NO_MAPPING_FIELDS]);
  51. if (!rst) rst = getFieldFrom($CURRENT_RPT.fields[JV.NODE_SIGNATURE_FIELDS]);
  52. if (!rst) rst = { msg: 'the Field-ID is not valid, no result could be found!' };
  53. return rst;
  54. },
  55. P(pID, $CURRENT_RPT) {
  56. let rst = null;
  57. if ($CURRENT_RPT && ($CURRENT_RPT.params[JV.PROP_ID + '_' + pID])) {
  58. rst = $CURRENT_RPT.params[JV.PROP_ID + '_' + pID];
  59. } else if ($CURRENT_RPT && $CURRENT_RPT.params[JV.NODE_DYNAMIC_DATE_PARAMS] && $CURRENT_RPT.params[JV.NODE_DYNAMIC_DATE_PARAMS][JV.PROP_ID + '_' + pID]) {
  60. rst = $CURRENT_RPT.params[JV.NODE_DYNAMIC_DATE_PARAMS][JV.PROP_ID + '_' + pID];
  61. } else if ($CURRENT_RPT && $CURRENT_RPT.params[JV.NODE_SIGNATURE_AUDIT_PARAMS] && $CURRENT_RPT.params[JV.NODE_SIGNATURE_AUDIT_PARAMS][JV.PROP_ID + '_' + pID]) {
  62. rst = $CURRENT_RPT.params[JV.NODE_SIGNATURE_AUDIT_PARAMS][JV.PROP_ID + '_' + pID];
  63. } else if ($CURRENT_RPT && $CURRENT_RPT.params[JV.NODE_INTERACTION_PARAMS] && $CURRENT_RPT.params[JV.NODE_INTERACTION_PARAMS][JV.PROP_ID + '_' + pID]) {
  64. rst = $CURRENT_RPT.params[JV.NODE_INTERACTION_PARAMS][JV.PROP_ID + '_' + pID];
  65. } else {
  66. rst = { msg: 'the Param-ID is not valid, no result was found!' };
  67. }
  68. return rst;
  69. },
  70. getCurrentPage($CURRENT_RPT) {
  71. let rst = 0;
  72. if ($CURRENT_RPT) {
  73. rst = $CURRENT_RPT.runTimePageData.currentPage;
  74. }
  75. return rst;
  76. },
  77. getTotalPage($CURRENT_RPT) {
  78. let rst = 0;
  79. if ($CURRENT_RPT) {
  80. rst = $CURRENT_RPT.totalPages;
  81. }
  82. return rst;
  83. },
  84. getFieldDataLen(field, dataObj) {
  85. let rst = 0;
  86. if (field.DataNodeName === 'NA') {
  87. if (!field[JV.PROP_AD_HOC_DATA]) {
  88. field[JV.PROP_AD_HOC_DATA] = [];
  89. }
  90. rst = field[JV.PROP_AD_HOC_DATA].length;
  91. } else {
  92. if (!field.DataNodeName) {
  93. // that means this is a self-defined discrete field!
  94. field.DataNodeName = JV.DATA_DISCRETE_DATA;
  95. field.DataSeq = dataObj[JV.DATA_DISCRETE_DATA];
  96. dataObj[JV.DATA_DISCRETE_DATA].push([]);
  97. }
  98. rst = dataObj[field.DataNodeName][field.DataSeq].length;
  99. }
  100. return rst;
  101. },
  102. setFieldValue(field, dataObj, valIdx, newValue) {
  103. if (field.DataNodeName === 'NA') {
  104. if (!field[JV.PROP_AD_HOC_DATA]) {
  105. field[JV.PROP_AD_HOC_DATA] = [];
  106. }
  107. field[JV.PROP_AD_HOC_DATA][valIdx] = newValue;
  108. } else if (!field.DataNodeName) {
  109. // that means this is a self-defined discrete field!
  110. field.DataNodeName = JV.DATA_DISCRETE_DATA;
  111. field.DataSeq = dataObj[JV.DATA_DISCRETE_DATA].length;
  112. dataObj[JV.DATA_DISCRETE_DATA].push([]);
  113. dataObj[field.DataNodeName][field.DataSeq][valIdx] = newValue;
  114. } else {
  115. dataObj[field.DataNodeName][field.DataSeq][valIdx] = newValue;
  116. }
  117. },
  118. getFieldValueArray(field, dataObj) {
  119. let rst = null;
  120. if (field.DataNodeName === 'NA') {
  121. if (!field[JV.PROP_AD_HOC_DATA]) {
  122. field[JV.PROP_AD_HOC_DATA] = [];
  123. }
  124. rst = field[JV.PROP_AD_HOC_DATA];
  125. } else {
  126. if (!field.DataNodeName) {
  127. // that means this is a self-defined discrete field!
  128. field.DataNodeName = JV.DATA_DISCRETE_DATA;
  129. field.DataSeq = dataObj[JV.DATA_DISCRETE_DATA];
  130. dataObj[JV.DATA_DISCRETE_DATA].push([]);
  131. }
  132. rst = dataObj[field.DataNodeName][field.DataSeq];
  133. }
  134. if (rst === null || rst === undefined) rst = [];
  135. return rst;
  136. },
  137. setFieldValueArray(field, dataObj, newArr) {
  138. if (newArr instanceof Array) {
  139. if (field.DataNodeName === 'NA') {
  140. field[JV.PROP_AD_HOC_DATA] = newArr;
  141. } else {
  142. if (!field.DataNodeName) {
  143. // that means this is a self-defined discrete field!
  144. field.DataNodeName = JV.DATA_DISCRETE_DATA;
  145. field.DataSeq = dataObj[JV.DATA_DISCRETE_DATA].length;
  146. dataObj[JV.DATA_DISCRETE_DATA].push([]);
  147. }
  148. dataObj[field.DataNodeName][field.DataSeq] = newArr;
  149. }
  150. }
  151. },
  152. getFieldValue(field, dataObj, valIdx, newVal) {
  153. let rst = null;
  154. if (field.DataNodeName === 'NA') {
  155. if (!field[JV.PROP_AD_HOC_DATA]) {
  156. field[JV.PROP_AD_HOC_DATA] = [];
  157. }
  158. if (field[JV.PROP_AD_HOC_DATA].length > valIdx) {
  159. rst = field[JV.PROP_AD_HOC_DATA][valIdx];
  160. } else {
  161. if (newVal === null && field[JV.PROP_AD_HOC_DATA].length > 0) {
  162. rst = field[JV.PROP_AD_HOC_DATA][field[JV.PROP_AD_HOC_DATA].length - 1];
  163. }
  164. }
  165. } else {
  166. if (!field.DataNodeName) {
  167. // that means this is a self-defined discrete field!
  168. field.DataNodeName = JV.DATA_DISCRETE_DATA;
  169. field.DataSeq = dataObj[JV.DATA_DISCRETE_DATA];
  170. dataObj[JV.DATA_DISCRETE_DATA].push([]);
  171. }
  172. if (dataObj[field.DataNodeName][field.DataSeq].length > valIdx) {
  173. rst = dataObj[field.DataNodeName][field.DataSeq][valIdx];
  174. } else {
  175. if (newVal === null && dataObj[field.DataNodeName][field.DataSeq].length > 0) {
  176. rst = dataObj[field.DataNodeName][field.DataSeq][dataObj[field.DataNodeName][field.DataSeq].length - 1];
  177. }
  178. }
  179. }
  180. if (rst === null || rst === undefined) rst = newVal;
  181. return rst;
  182. },
  183. removeFieldValue(field, dataObj, valIdx) {
  184. if (field.DataNodeName === 'NA') {
  185. if (field[JV.PROP_AD_HOC_DATA].length > valIdx && valIdx >= 0) {
  186. field[JV.PROP_AD_HOC_DATA].splice(valIdx, 1);
  187. }
  188. } else {
  189. if (dataObj[field.DataNodeName][field.DataSeq].length > valIdx && valIdx >= 0) {
  190. dataObj[field.DataNodeName][field.DataSeq].splice(valIdx, 1);
  191. }
  192. }
  193. },
  194. insertFieldValue(field, dataObj, valIdx, newValue) {
  195. if (field.DataNodeName === 'NA') {
  196. if (field[JV.PROP_AD_HOC_DATA].length > valIdx && valIdx >= 0) {
  197. field[JV.PROP_AD_HOC_DATA].splice(valIdx, 0, newValue);
  198. } else if (field[JV.PROP_AD_HOC_DATA].length <= valIdx) {
  199. field[JV.PROP_AD_HOC_DATA][field[JV.PROP_AD_HOC_DATA].length] = newValue;
  200. }
  201. } else {
  202. if (dataObj[field.DataNodeName][field.DataSeq].length > valIdx && valIdx >= 0) {
  203. dataObj[field.DataNodeName][field.DataSeq].splice(valIdx, 0, newValue);
  204. } else if (dataObj[field.DataNodeName][field.DataSeq].length <= valIdx) {
  205. dataObj[field.DataNodeName][field.DataSeq][dataObj[field.DataNodeName][field.DataSeq].length] = newValue;
  206. }
  207. }
  208. },
  209. isSignature(fID, $CURRENT_RPT) {
  210. let rst = false;
  211. if ($CURRENT_RPT.fields[JV.NODE_SIGNATURE_FIELDS]) {
  212. rst = $CURRENT_RPT.fields[JV.NODE_SIGNATURE_FIELDS][JV.PROP_ID + '_' + fID] !== undefined;
  213. }
  214. return rst;
  215. },
  216. isDynamicParam(pID, $CURRENT_RPT) {
  217. let rst = false;
  218. if ($CURRENT_RPT.params[JV.NODE_DYNAMIC_DATE_PARAMS]) {
  219. rst = $CURRENT_RPT.params[JV.NODE_DYNAMIC_DATE_PARAMS][JV.PROP_ID + '_' + pID] !== undefined;
  220. }
  221. return rst;
  222. },
  223. isSignatureAudit(pID, $CURRENT_RPT) {
  224. let rst = false;
  225. if ($CURRENT_RPT.params[JV.NODE_SIGNATURE_AUDIT_PARAMS]) {
  226. rst = $CURRENT_RPT.params[JV.NODE_SIGNATURE_AUDIT_PARAMS][JV.PROP_ID + '_' + pID] !== undefined;
  227. }
  228. return rst;
  229. },
  230. isInterActionParam(pID, $CURRENT_RPT) {
  231. let rst = false;
  232. if ($CURRENT_RPT.params[JV.NODE_INTERACTION_PARAMS]) {
  233. rst = $CURRENT_RPT.params[JV.NODE_INTERACTION_PARAMS][JV.PROP_ID + '_' + pID] !== undefined;
  234. }
  235. return rst;
  236. },
  237. };
  238. module.exports = JE;