message.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. import request from '@/axios';
  2. import store from '@/store';
  3. import dayjs from 'dayjs';
  4. const messageType = [{
  5. id: 2,
  6. name: '审核消息',
  7. dataType: [{
  8. id: 1,
  9. title: '资产登记',
  10. content: '的资产登记流程'
  11. }, {
  12. id: 2,
  13. title: '资产变更',
  14. content: '的资产变更流程'
  15. }, {
  16. id: 3,
  17. title: '资产折旧',
  18. content: '的资产折旧流程'
  19. }, {
  20. id: 4,
  21. title: '资产盘点',
  22. content: '的资产盘点流程'
  23. }, {
  24. id: 5,
  25. title: '设备管理',
  26. content: '的设备管理流程'
  27. }]
  28. }, {
  29. id: 3,
  30. name: '巡查消息',
  31. dataType: [{
  32. id: 1,
  33. title: '巡查记录',
  34. content: '的巡查记录'
  35. }]
  36. }, {
  37. id: 4,
  38. name: '工单消息',
  39. dataType: [{
  40. id: 1,
  41. title: '工单记录',
  42. content: '的工单记录'
  43. }]
  44. }, {
  45. id: 5,
  46. name: '数据中心',
  47. dataType: [{
  48. id: 1,
  49. title: '项目中心',
  50. content: '文件夹',
  51. type: 'access'
  52. }, {
  53. id: 2,
  54. title: '项目中心',
  55. content: '文件夹',
  56. type: 'create'
  57. }, {
  58. id: 3,
  59. title: '项目中心',
  60. content: '文件夹',
  61. type: 'delete'
  62. }, {
  63. id: 4,
  64. title: '项目中心',
  65. content: '文件夹',
  66. type: 'edit'
  67. }, {
  68. id: 5,
  69. title: '项目中心',
  70. content: '文件',
  71. type: 'fileDelete'
  72. }, {
  73. id: 6,
  74. title: '项目中心',
  75. content: '文件',
  76. type: 'fileDownload'
  77. }, {
  78. id: 7,
  79. title: '项目中心',
  80. content: '文件',
  81. type: 'fileUpload'
  82. }, , {
  83. id: 8,
  84. title: '项目中心',
  85. content: '文件',
  86. type: 'fileView'
  87. }, {
  88. id: 9,
  89. title: '企业中心',
  90. content: '文件夹',
  91. type: 'access'
  92. }, {
  93. id: 10,
  94. title: '企业中心',
  95. content: '文件夹',
  96. type: 'create'
  97. }, {
  98. id: 11,
  99. title: '企业中心',
  100. content: '文件夹',
  101. type: 'delete'
  102. }, {
  103. id: 12,
  104. title: '企业中心',
  105. content: '文件夹',
  106. type: 'edit'
  107. }, {
  108. id: 13,
  109. title: '企业中心',
  110. content: '文件',
  111. type: 'fileDelete'
  112. }, {
  113. id: 14,
  114. title: '企业中心',
  115. content: '文件',
  116. type: 'fileDownload'
  117. }, {
  118. id: 15,
  119. title: '企业中心',
  120. content: '文件',
  121. type: 'fileUpload'
  122. }, , {
  123. id: 16,
  124. title: '企业中心',
  125. content: '文件',
  126. type: 'fileView'
  127. }]
  128. }, {
  129. id: 6,
  130. name: '项目邀请'
  131. }];
  132. export default {
  133. send(sendData = {}, params = {}) {
  134. let date = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss');
  135. let obj = {
  136. projectId: store.getters.project.id,
  137. organizationId: store.getters.organization.id,
  138. date: date
  139. }
  140. params['time'] = date;
  141. obj = Object.assign(obj, sendData);
  142. let postData = {
  143. sender: store.getters.user.userId,
  144. messageType: params.messageType,
  145. message: this.messageContent(params),
  146. json: JSON.stringify(obj),
  147. viewed: 0
  148. }
  149. return request({
  150. url: `/manager/message/${params.userIds}`,
  151. method: 'post',
  152. data: postData
  153. })
  154. },
  155. viewed(messageId, callback) {
  156. if (!messageId) return;
  157. return request({
  158. url: `/manager/message/${messageId}`,
  159. method: 'put',
  160. }).then(res => {
  161. if (res.state && callback) callback()
  162. })
  163. },
  164. sendFlowMessage(data = {}, params = {}) {
  165. let date = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss');
  166. let obj = {
  167. projectId: store.getters.project.id,
  168. organizationId: store.getters.organization.id,
  169. date: date,
  170. dataId: params.dataId,
  171. dataType: params.dataType
  172. }
  173. let newData = this.data(data, params);
  174. obj = Object.assign(obj, newData.data);
  175. let postData = {
  176. sender: store.getters.user.userId,
  177. messageType: params.messageType,
  178. message: newData.message,
  179. json: JSON.stringify(obj),
  180. viewed: 0,
  181. isCC: params.isCC
  182. }
  183. return request({
  184. url: `/manager/message/${params.receiver}`,
  185. method: 'post',
  186. data: postData
  187. })
  188. },
  189. messageContent(params) {
  190. let message = '';
  191. if (params.messageType === 6) {
  192. message =
  193. `【项目邀请】${store.getters.user.name}在${dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')}邀请加入<${store.getters.project.name}>项目,请及时处理。`
  194. }
  195. return message;
  196. },
  197. data(data = {}, params = {}) {
  198. let obj = {},
  199. msg = '',
  200. type = messageType.filter(res => res.id === params.messageType)[0].dataType.filter(res => res.id === params
  201. .dataType)[0];
  202. if (data.projectItemName) {
  203. msg += data.projectItemName;
  204. obj['projectItemId'] = data.projectItemId;
  205. }
  206. if (data.projectItemTargetName) {
  207. msg += ('-' + data.projectItemTargetName);
  208. obj['projectItemTargetId'] = data.projectItemTargetId;
  209. }
  210. let message =
  211. `【${type.title}】${store.getters.user.name}在${dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')}${params.operation}${msg}${type.content}`
  212. if (params.isCC === 1) message += ',并抄送给你';
  213. return {
  214. message: message,
  215. data: obj
  216. }
  217. },
  218. messageType
  219. }