filter.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. angular.module('push')
  2. .filter('substring', function () {
  3. return function (str) {
  4. if (str.length >= 40) {
  5. return str.substr(0, 40) + "...";
  6. }
  7. return str;
  8. }
  9. })
  10. // 字符串最后一位不取
  11. .filter('substringExceptEnd', function () {
  12. return function (str) {
  13. if (str.length >= 1) {
  14. return str.substr(0, str.length - 1);
  15. }
  16. return str;
  17. }
  18. })
  19. .filter('toSex', function () {
  20. return function (gender) {
  21. if (gender) {
  22. return "男";
  23. }
  24. return "女";
  25. }
  26. })
  27. .filter('toDate', function () {
  28. return function (date) {
  29. var dt = new Date(date.replace(/-/, "/"));
  30. var targetday_milliseconds = new Date().getTime();
  31. var flag = targetday_milliseconds - dt.getTime();
  32. if (flag >= 0 && flag <= 1000 * 60) {
  33. //0-1分钟 ___ 刚刚
  34. return "刚刚";
  35. } else if (flag > 1000 * 60 && flag < 1000 * 60 * 60) {
  36. //1-59分钟 ___ 对应的n分钟前
  37. return parseInt(flag / (1000 * 60)) + "分钟前";
  38. } else if (flag >= 1000 * 60 * 60 && flag <= 1000 * 60 * 60 * 24) {
  39. //60-当天 ___ 对应的n小时前,如130分钟为2小时前
  40. return parseInt(flag / (1000 * 60 * 60)) + "小时前";
  41. } else if (flag > 1000 * 60 * 60 * 24) {
  42. // 超过当天 ___ 显示具体时间,如12-01 23:55
  43. // var fbdate = new Date().setTime(date);
  44. var tYear = dt.getFullYear();
  45. var tMonth = dt.getMonth();
  46. tMonth = doHandleMonth(tMonth + 1);
  47. var tDate = dt.getDate();
  48. tDate = doHandleMonth(tDate);
  49. var tHour = dt.getHours();
  50. tHour = doHandleMonth(tHour);
  51. var tMinute = dt.getMinutes();
  52. tMinute = doHandleMonth(tMinute);
  53. // return new Date(parseInt(dt)).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");
  54. return tYear + "-" + tMonth + "-" + tDate + " " + tHour + ":" + tMinute;
  55. }
  56. }
  57. })
  58. .filter('toDetailDate', function () {
  59. return function (date) {
  60. var dt = new Date(date.replace(/-/, "/"));
  61. var tYear = dt.getFullYear();
  62. var tMonth = dt.getMonth();
  63. tMonth = doHandleMonth(tMonth + 1);
  64. var tDate = dt.getDate();
  65. tDate = doHandleMonth(tDate);
  66. var tHour = dt.getHours();
  67. tHour = doHandleMonth(tHour);
  68. var tMinute = dt.getMinutes();
  69. tMinute = doHandleMonth(tMinute);
  70. return tYear + "-" + tMonth + "-" + tDate + " " + tHour + ":" + tMinute;
  71. }
  72. })
  73. .filter('searchFilter', function () {
  74. return function (date) {
  75. alert(date);
  76. return date;
  77. }
  78. })
  79. .filter('highlight', function ($sce) {
  80. return function (input, word) {
  81. if (!word)
  82. return input;
  83. var result = input.replace(word, "<span style='color:red;'>" + word + "</span>");
  84. return $sce.trustAsHtml(result);
  85. };
  86. })
  87. //截取日期 保留 hh:mm
  88. .filter('substrdate', function () {
  89. return function (str) {
  90. return str.substr(11, 5);
  91. }
  92. })
  93. //日期转 yyyy年MM月dd日 星期日 格式
  94. .filter('formatdate', function () {
  95. return function (str) {
  96. var tempdate = new Date(str);
  97. var weekArray = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
  98. str = str.replace("-", "年");
  99. str = str.replace("-", "月");
  100. str = str + "日";
  101. return str + " " + weekArray[tempdate.getDay()]
  102. }
  103. })
  104. //图片地址过滤
  105. .filter('picturefilter', function (ConfigService, UtilService) {
  106. return function (str) {
  107. if (!UtilService.isDefined(str)) {
  108. return ConfigService.imgurl;
  109. } else if(str.indexOf("file:") !=-1||str.indexOf("blob:")!=-1){
  110. return str
  111. } else {
  112. return ConfigService.imgurl + str;
  113. }
  114. }
  115. })
  116. //日期过滤
  117. .filter('datesubstring', function () {
  118. return function (str) {
  119. str=str?str:'';
  120. return str.substring(0, 16);
  121. }
  122. })
  123. //日期过滤
  124. .filter('datesubstring10', function () {
  125. return function (str) {
  126. if(str){
  127. console.log(str.split(' ')[0])
  128. // return str.substring(0, 10);
  129. return str.split(' ')[0];
  130. }else{
  131. return '';
  132. }
  133. }
  134. })
  135. //证件号码加 *** 过滤
  136. .filter('cardnofilter', function () {
  137. return function (str) {
  138. var len = str.length;
  139. var str1 = str.substr(0, 1);
  140. var str2 = str.substr(1, len - 2);
  141. var str3 = str.substr(len - 1, 1);
  142. var restr = str1 + str2.replace(/[A-Za-z0-9]/g, "*") + str3;
  143. return restr;
  144. }
  145. })
  146. //手机号码加 *** 过滤
  147. .filter('mobilefilter', function () {
  148. return function (str) {
  149. var len = str.length;
  150. var str1 = str.substr(0, 3);
  151. var str3 = str.substr(len - 4, 4);
  152. var restr = str1 + "****" + str3;
  153. return restr;
  154. }
  155. })
  156. //图片过滤
  157. .filter('imgfilter', function (ConfigService) {
  158. return function (str) {
  159. // console.log(angular.isDefined(str));
  160. // str = angular.isDefined(str) ? str : "";
  161. str = str ? str : "";
  162. //str = str.replace("http://192.168.1.28:12345/", "");
  163. str = str.replace("http://pic.ubittc.com/", "");
  164. str = /http/g.test(str)?str:ConfigService.imgurl + str;
  165. return str;
  166. }
  167. })
  168. //小数百分比过滤
  169. .filter('percentfilter', function (ConfigService) {
  170. return function (point) {
  171. if (point == 0) {
  172. return 0;
  173. }
  174. if (point == 1) {
  175. return "100%";
  176. }
  177. var str = String(point.toFixed(2) * 100).slice(0, 2) + "%";
  178. return str;
  179. }
  180. })
  181. // 聊天日期格式化
  182. .filter('chatdate', function (UtilService) {
  183. return function (time) {
  184. //今天
  185. var day = new Date(new Date().toLocaleDateString());
  186. //昨天
  187. var day1 = new Date(new Date().toLocaleDateString());
  188. day1.setTime(day1.getTime() - 24 * 60 * 60 * 1000);
  189. //今天起之前的7天
  190. var day2 = new Date(new Date().toLocaleDateString());
  191. day2.setTime(day2.getTime() - 7 * 24 * 60 * 60 * 1000);
  192. /*if (device.platform != "Android") {
  193. time = time.replace("-", "/");
  194. time = time.replace("-", "/");
  195. time = time.substr(0, 19);
  196. }*/
  197. if (UtilService.compareDate(time, day)) {
  198. return time.substr(11, 5);
  199. } else if (UtilService.compareDate(time, day1)) {
  200. return "昨天 " + time.substr(11, 5);
  201. } else if (UtilService.compareDate(time, day2)) {
  202. return getWeek(time) + " " + time.substr(11, 5);
  203. } else {
  204. return new Date(time).Format("yyyy年MM月dd日 hh:mm");
  205. }
  206. }
  207. })
  208. .filter('duration', function (){
  209. return function(starttime,endtime,format){
  210. // 处理时间
  211. var bgTime=$scope.detail.begintime.split(' ');
  212. var edTime=$scope.detail.endtime.split(' ');
  213. $scope.organizeTime='';
  214. if(bgTime[0]===edTime[0]){
  215. $scope.organizeTime=bgTime[0]+' '+bgTime.replace(/:00/,'')+' ~ '+edTime.replace(/:00/,'');
  216. }else{
  217. $scope.organizeTime=$scope.detail.begintime.replace(/:00/,'')+' ~ '+$scope.detail.endtime.replace(/:00/,'');
  218. }
  219. }
  220. });
  221. function getWeek(date) {
  222. var tempdate = new Date(date).getDay();
  223. return "星期" + "日一二三四五六".charAt(tempdate);
  224. }
  225. function doHandleMonth(month) {
  226. var m = month;
  227. if (month.toString().length == 1) {
  228. m = "0" + month;
  229. }
  230. return m;
  231. }