FieldUtil.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. import Common from '../../common/Common.js';
  2. export default {
  3. /**
  4. * 富文本类型
  5. * @param {Object} field
  6. */
  7. isRichTextAreaEditor: function (field) {
  8. if (field.displayType == undefined) {
  9. return false;
  10. }
  11. if (field.displayType == 'RichTextAreaEditor') {
  12. return true;
  13. }
  14. return false;
  15. },
  16. // 是否是文本类型
  17. isTextType: function (field) {
  18. if (field.displayType == undefined) {
  19. return false;
  20. }
  21. if (field.displayType == 'TextBoxEditor') {
  22. return true;
  23. }
  24. return false;
  25. },
  26. // 是否是数字类型
  27. isNumberType: function (field) {
  28. if (field.displayType == undefined) {
  29. return false;
  30. }
  31. if (field.displayType == 'DoubleBoxEditor' || field.displayType == 'IntegerBoxEditor'
  32. || field.displayType == 'LongBoxEditor' || field.displayType == 'FloatBoxEditor'
  33. || field.displayType == 'BigDecimalEditor') {
  34. return true;
  35. }
  36. return false;
  37. },
  38. // 是否是复选框类型
  39. isCheckBoxType: function (field) {
  40. if (field.displayType == undefined) {
  41. return false;
  42. }
  43. if (field.displayType == 'CheckBoxEditor') {
  44. return true;
  45. }
  46. return false;
  47. },
  48. // 是否是红蓝字框类型
  49. isRedGreenEditorType: function (field) {
  50. if (field.displayType == undefined) {
  51. return false;
  52. }
  53. if (field.displayType == 'RedGreenEditor') {
  54. return true;
  55. }
  56. return false;
  57. },
  58. // 是否是日期类型
  59. isDateType: function (field) {
  60. if (field.displayType == undefined) {
  61. return false;
  62. }
  63. if (field.displayType == 'DateBoxEditor') {
  64. return true;
  65. }
  66. return false;
  67. },
  68. // 是否是时间类型
  69. isTimeType: function (field) {
  70. if (field.displayType == undefined) {
  71. return false;
  72. }
  73. if (field.displayType == 'TimeBoxEditor') {
  74. return true;
  75. }
  76. return false;
  77. },
  78. // 是否是日期时间类型
  79. isDateTimeType: function (field) {
  80. if (field.displayType == undefined) {
  81. return false;
  82. }
  83. if (field.displayType == 'DateTimeBoxEditor') {
  84. return true;
  85. }
  86. return false;
  87. },
  88. // 是否是富文本类型
  89. isTextAreaType: function (field) {
  90. if (field.displayType == undefined) {
  91. return false;
  92. }
  93. if (field.displayType == 'TextAreaEditor') {
  94. return true;
  95. }
  96. return false;
  97. },
  98. // 是否是搜索类型
  99. isSearchType: function (field) {
  100. if (field.displayType == undefined) {
  101. return false;
  102. }
  103. if (field.displayType == 'SearchBoxEditor') {
  104. return true;
  105. }
  106. return false;
  107. },
  108. // 是否是图片类型
  109. isImageType: function (field) {
  110. if (field.displayType == undefined) {
  111. return false;
  112. }
  113. if (field.displayType == 'ImageEditor') {
  114. return true;
  115. }
  116. return false;
  117. },
  118. // 是否是图片组类型
  119. isImageListType: function (field) {
  120. if (field.displayType == undefined) {
  121. return false;
  122. }
  123. if (field.displayType == 'ImageListEditor') {
  124. return true;
  125. }
  126. return false;
  127. },
  128. // 是否是枚举下拉类型
  129. isEnumListType: function (field) {
  130. if (field.displayType == undefined) {
  131. return false;
  132. }
  133. if (field.displayType == 'ListBoxEnumEditor') {
  134. return true;
  135. }
  136. return false;
  137. },
  138. // 是否是枚举多选类型
  139. isEnumMultiType: function (field) {
  140. if (field.displayType == undefined) {
  141. return false;
  142. }
  143. if (field.displayType == 'EnumMultiSelect') {
  144. return true;
  145. }
  146. return false;
  147. },
  148. // 是否是下拉类型
  149. isSelectType: function (field) {
  150. if (field.displayType == undefined) {
  151. return false;
  152. }
  153. if (field.displayType == 'ListBoxEditor') {
  154. return true;
  155. }
  156. return false;
  157. },
  158. // 是否是password类型
  159. isPasswordType: function (field) {
  160. if (field.displayType == undefined) {
  161. return false;
  162. }
  163. if (field.displayType == 'PasswordTextBoxEditor') {
  164. return true;
  165. }
  166. return false;
  167. },
  168. // 是否是RadioButtonGroup类型
  169. isRadioButtonGroupType: function (field) {
  170. if (field.displayType == undefined) {
  171. return false;
  172. }
  173. if (field.displayType == 'RadioButtonGroupEditor') {
  174. return true;
  175. }
  176. return false;
  177. },
  178. // 是否是ManyToManySetBoxEditor类型
  179. isManyToManySetType: function (field) {
  180. if (field.displayType == undefined) {
  181. return false;
  182. }
  183. if (field.displayType == 'ManyToManySetBoxEditor') {
  184. return true;
  185. }
  186. return false;
  187. },
  188. // 判断 FieldValue是否相等
  189. isFieldValueEqual: function (fieldValue1, fieldValue2) {
  190. if (fieldValue1 == undefined && fieldValue2 == undefined) {
  191. return true;
  192. }
  193. if (fieldValue1 == undefined && fieldValue2 != undefined) {
  194. return false;
  195. }
  196. if (fieldValue1 != undefined && fieldValue2 == undefined) {
  197. return false;
  198. }
  199. if (fieldValue1 === fieldValue2) {
  200. return true;
  201. }
  202. if (fieldValue1.fieldType != fieldValue2.fieldType) {
  203. return false;
  204. }
  205. if (fieldValue1.fieldType == 'Key') {
  206. return (fieldValue1.id == fieldValue2.id)
  207. && (fieldValue1.displayValue[0] == fieldValue2.displayValue[0]);
  208. } else if (fieldValue1.fieldType == 'String') {
  209. if(fieldValue1.displayValue !== fieldValue2.displayValue){
  210. return false;
  211. }
  212. if (fieldValue1.displayValue == undefined) {
  213. fieldValue1.displayValue = [];
  214. }
  215. if (fieldValue2.displayValue == undefined) {
  216. fieldValue2.displayValue = [];
  217. }
  218. return fieldValue1.displayValue[0] == fieldValue2.displayValue[0];
  219. } else if (fieldValue1.fieldType == 'ManyToManyKey') {
  220. if (fieldValue1.ids == undefined) {
  221. fieldValue1.ids = [];
  222. }
  223. if (fieldValue2.ids == undefined) {
  224. fieldValue2.ids = [];
  225. }
  226. if (fieldValue1.ids.length != fieldValue2.ids.length) {
  227. return false;
  228. }
  229. for (var i = 0; i < fieldValue1.ids.length; i++) {
  230. if (fieldValue2.ids.indexOf(fieldValue1.ids[i]) < 0) {
  231. return false;
  232. }
  233. }
  234. return true;
  235. }
  236. return false;
  237. },
  238. /**
  239. * 是否是视频框
  240. * @param {Object} field 字段
  241. * @return {Boolean}
  242. */
  243. isVideoType: function (field) {
  244. if (field.displayType == undefined) {
  245. return false;
  246. }
  247. if (field.displayType == 'Video') {
  248. return true;
  249. }
  250. return false;
  251. },
  252. /**
  253. * 是否是文件框
  254. * @param {Object} field 字段
  255. * @return {Boolean}
  256. */
  257. isFileType: function (field) {
  258. if (field.displayType == undefined) {
  259. return false;
  260. }
  261. if (field.displayType == 'File') {
  262. return true;
  263. }
  264. return false;
  265. },
  266. /**
  267. * 是否是年份选择器
  268. */
  269. isYearType: function (field) {
  270. if (field.displayType == undefined) {
  271. return false;
  272. }
  273. if (field.displayType == 'YearEditor') {
  274. return true;
  275. }
  276. return false;
  277. },
  278. /**
  279. * 是否是年月选择器
  280. */
  281. isYearMonthType: function (field) {
  282. if (field.displayType == undefined) {
  283. return false;
  284. }
  285. if (field.displayType == 'YearMonthEditor') {
  286. return true;
  287. }
  288. return false;
  289. },
  290. /**
  291. * 是否是按钮类型
  292. */
  293. isButtonType: function (field) {
  294. if (field.displayType == undefined) {
  295. return false;
  296. }
  297. if (field.displayType == 'ButtonEditor') {
  298. return true;
  299. }
  300. return false;
  301. },
  302. /**
  303. * 格式化数据
  304. * @param {[type]} value [description]
  305. * @param {[type]} pattern [description]
  306. * @param {[type]} successFun [description]
  307. * @return {[type]} [description]
  308. */
  309. formatNumber: function (value, pattern, successFun) {
  310. if (value == undefined || pattern == undefined) {
  311. return;
  312. }
  313. $.ajax({
  314. url: Common.getApiURL('FieldResource/formatNumber'),
  315. type: 'GET',
  316. contentType: 'application/json',
  317. data: {
  318. 'value': value,
  319. 'pattern': pattern,
  320. },
  321. success: function (data) {
  322. successFun(data);
  323. },
  324. error: function (XMLHttpRequest, textStatus, errorThrown) {
  325. Common.processException(XMLHttpRequest, textStatus, errorThrown);
  326. },
  327. });
  328. },
  329. /**
  330. * 格式化数字
  331. * @param {[type]} value [description]
  332. * @param {[type]} pattern [description]
  333. * @return {[type]} [description]
  334. */
  335. formatNumbers: function (value, pattern, displayType) {
  336. if (value == undefined || value == null) {
  337. return;
  338. }
  339. //格式化去掉小数点
  340. if ((displayType == 'DoubleBoxEditor' || displayType == 'IntegerBoxEditor'
  341. || displayType == 'LongBoxEditor' || displayType == 'FloatBoxEditor'
  342. || displayType == 'BigDecimalEditor') && pattern == '0') {
  343. return parseInt(value);
  344. }
  345. //格式化成以","隔开
  346. if ((displayType == 'DoubleBoxEditor' || displayType == 'IntegerBoxEditor'
  347. || displayType == 'LongBoxEditor' || displayType == 'FloatBoxEditor'
  348. || displayType == 'BigDecimalEditor') && value.length > 5) {
  349. var val = this.number_format(value, '.', ',');
  350. return val;
  351. } else {
  352. return value;
  353. }
  354. },
  355. /*
  356. * 参数说明:
  357. * number:要格式化的数字
  358. * decimals:保留几位小数
  359. * dec_point:小数点符号
  360. * thousands_sep:千分位符号
  361. * */
  362. number_format: function (number, decimals, dec_point, thousands_sep) {
  363. number = (number + '').replace(/[^0-9+-Ee.]/g, '');
  364. var n = !isFinite(+number) ? 0 : +number,
  365. prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
  366. sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
  367. dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
  368. s = '',
  369. toFixedFix = function (n, prec) {
  370. var k = Math.pow(10, prec);
  371. return '' + Math.floor(n * k) / k;
  372. };
  373. s = (prec ? toFixedFix(n, prec) : '' + Math.floor(n)).split('.');
  374. var re = /(-?\d+)(\d{3})/;
  375. console.log(s);
  376. while (re.test(s[0])) {
  377. s[0] = s[0].replace(re, '$1' + sep + '$2');
  378. }
  379. if ((s[1] || '').length < prec) {
  380. s[1] = s[1] || '';
  381. s[1] += new Array(prec - s[1].length + 1).join('0');
  382. }
  383. return s.join(dec);
  384. },
  385. /**
  386. * 是否操作列
  387. */
  388. isGridButtonEditor:function(field){
  389. if (field.displayType == undefined) {
  390. return false;
  391. }
  392. if (field.displayType == 'GridButtonEditor') {
  393. return true;
  394. }
  395. return false;
  396. },
  397. };