app-14402c42ca.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. 'use strict';
  2. var appMessage = angular.module('appMessage', ['luegg.directives']);
  3. 'use strict';
  4. angular.module('appMessage').controller('MessageController', ['$scope', function ($scope) {
  5. lxtalkClient.Invoke('{15180DEF-D508-45F7-BAEB-6486CD8752C8}', '_Register', '', $scope);
  6. $scope.glued = true;
  7. $scope.items = [{
  8. "uid": "2636765",
  9. "senderDisplayName": "陆趣趣",
  10. "sender": "0578+002682BECE10-lqq",
  11. "msgType": 0,
  12. "networkType": 1,
  13. "isDes": false,
  14. "length": 0,
  15. "isReaded": false,
  16. "contentType": 1,
  17. "receiver": "0578+002682BECE10-lsws",
  18. "fromClient": 0,
  19. "ts": 1483494160000,
  20. "id": 0,
  21. "content": "111111",
  22. "style": ""
  23. }, {
  24. content: "消息内容",
  25. style: '字体',
  26. fromClient: 2, //消息来源([0:PC],[1:iOS],[2:Android]
  27. id: "616ebe69e1c04c2ea9740a14457aaca6",
  28. isDes: 0, //是否加密消息
  29. contentType: 1, // 消息类型([1,文本消息],[2,图片消息],[3,文件消息],[4,语音消息], [5,位置消息])
  30. networkType: 1, //网络类型([1:wifi],[2:2G],[3:3G],[4:4G])
  31. sender: "0578+0-ls_xxj1",
  32. senderDisplayName: "陆趣趣",
  33. length: 12312,
  34. ts: 12312312412 //时间搓
  35. }, {
  36. content: "http://202.107.249.133:8125/e/8/2/4/f/e824fa94cbacff419a0ad611926710f9.dat?下载文件.docx",
  37. fromClient: 2,
  38. id: "253db476c6d140f0a1b4d4af5fcf2016",
  39. isDes: 0,
  40. contentType: 3,
  41. networkType: 1,
  42. sender: "0578+0-ls_xxj1",
  43. senderDisplayName: "陆趣趣",
  44. length: 17359
  45. }, {
  46. content: "../img/DefaultHeadImage_96.png",
  47. fromClient: 2,
  48. id: "253db476c6d140f0a1b4d4af5fcf2016",
  49. isDes: 0,
  50. contentType: 2,
  51. networkType: 1,
  52. sender: "0578+0-ls_xxj1",
  53. senderDisplayName: "陆趣趣",
  54. length: 17359
  55. }];
  56. $scope.appContent = {};
  57. // $scope.guid = lxtalkClient.Invoke('register', 'talkview', $scope);
  58. $scope.addMessage = function () {
  59. scroll(0, document.body.scrollHeight);
  60. }
  61. $scope.showMessage = function (jsonStr) {
  62. console.log(jsonStr);
  63. var msg = JSON.parse(jsonStr);
  64. $scope.items.push(msg);
  65. }
  66. $scope.showHistoryMessage = function (jsonStr) {
  67. var msg = JOSN.parse(jsonStr);
  68. $scope.items.unshift(msg);
  69. }
  70. $scope.initAppContent = function(appContentJson){
  71. // console.log(appContentJson);
  72. $scope.appContent = JSON.parse(appContentJson);
  73. }
  74. }]);
  75. (function () {
  76. 'use strict';
  77. angular
  78. .module('appMessage')
  79. .directive('ngMsg', Directive);
  80. Directive.inject = [];
  81. function Directive() {
  82. var directive = {
  83. link: link,
  84. restrict: 'A',
  85. scope: {
  86. msg: '=ngMsg',
  87. appContent: '=ngAppContent'
  88. }
  89. };
  90. return directive;
  91. function link(scope, element, attrs) {
  92. var replaceSystemFace = function(content){
  93. scope.appContent.faceConfig.sys.forEach(function(element) {
  94. content = content.replace(element.shortcut,'<img src="local://' + scope.appContent.directory.base + element.image + '">');
  95. }, this);
  96. // var reg = /[(\w+)-src="(http://[\w\W]+?)"]/;
  97. // var reg = new RegExp('\\[(\\w+)\\-src=\\"(http://[\\w\\W]+?)\\"\\]', "i");
  98. var reg = new RegExp('\\[image\\-src=\\"([\\w\\W]+?)\\"\\]', "i");
  99. var g = reg.exec(content);
  100. console.log(JSON.stringify(g));
  101. for(var i = 0; i <= g.length - 1; i++){
  102. console.log(g[i]);
  103. }
  104. return content;
  105. };
  106. var replaceImage = function(content){
  107. }
  108. var html = '';
  109. // 消息类型([1,文本消息],[2,图片消息],[3,文件消息],[4,语音消息], [5,位置消息])
  110. if (scope.appContent === undefined || scope.appContent.faceConfig ===undefined || scope.appContent.faceConfig.sys === undefined){
  111. html = '<span class="text-message">' + scope.msg.content + '</span>';
  112. } else if (scope.msg.contentType == 1) {
  113. html = '<span class="text-message">' + replaceSystemFace(scope.msg.content) + '</span>';
  114. } else if (scope.msg.contentType == 2) {
  115. html = '<span class="text-message">' +
  116. '<a href="#" class="thumbnail" style="width:300px;">' +
  117. '<img src="' + scope.msg.content + '" alt="通用的占位符缩略图">' +
  118. '</a>' +
  119. '</span>';
  120. } else if (scope.msg.contentType == 3) {
  121. element.css({
  122. width: '300px'
  123. });
  124. element.addClass('file-message');
  125. var reg = /\?[\W\w]*/;
  126. var fileName = decodeURIComponent(reg.exec(scope.msg.content).toString().substr(1));
  127. html = '<img src="../img/file/unkown.png" onError=" this.src = \'../img/file/unkown.png\' "/>' +
  128. '<span style="float:left; margin:5px 0px 0px 0px">文件名:' + fileName + '<br/>大小:' + scope.msg.length + '</span>' +
  129. '<div class="p-t-sm text-right">' +
  130. '<a class="text-primary" role="button">打开</a>' +
  131. '<a class="text-primary" role="button">打开文件夹</a>' +
  132. '</div>';
  133. } else if (scope.msg.contentType == 4) {
  134. html = '<span class="text-message">' +
  135. '<iframe class="map" border=0 src="' + scope.msg.content + '" frameBorder=no></iframe>' +
  136. '</span>';
  137. } else if (scope.msg.contentType == 5) {
  138. html = '<span class="text-message">' +
  139. '<audio src="' + scope.msg.content + '" controls="controls">' +
  140. '</audio>' +
  141. '</span>';
  142. }
  143. var newElement = angular.element(html);
  144. element.append(newElement);
  145. }
  146. }
  147. })();