message.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  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. id: 7,
  133. name: '提醒消息'
  134. }];
  135. export default {
  136. send(sendData = {}, params = {}) {
  137. let date = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss');
  138. let obj = {
  139. projectId: store.getters.project.id,
  140. organizationId: store.getters.organization.id,
  141. date: date
  142. }
  143. params['time'] = date;
  144. obj = Object.assign(obj, sendData);
  145. let postData = {
  146. sender: store.getters.user.userId,
  147. messageType: params.messageType,
  148. message: this.messageContent(params),
  149. json: JSON.stringify(obj),
  150. viewed: 0
  151. }
  152. return request({
  153. url: `/manager/message/${params.userIds}`,
  154. method: 'post',
  155. data: postData
  156. })
  157. },
  158. viewed(messageId, callback) {
  159. if (!messageId) return;
  160. return request({
  161. url: `/manager/message/${messageId}`,
  162. method: 'put',
  163. }).then(res => {
  164. if (res.state && callback) callback()
  165. })
  166. },
  167. sendFlowMessage(data = {}, params = {}) {
  168. let date = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss');
  169. let obj = {
  170. projectId: store.getters.project.id,
  171. organizationId: store.getters.organization.id,
  172. date: date,
  173. dataId: params.dataId,
  174. dataType: params.dataType
  175. }
  176. let newData = this.data(data, params);
  177. obj = Object.assign(obj, newData.data);
  178. let postData = {
  179. sender: store.getters.user.userId,
  180. messageType: params.messageType,
  181. message: newData.message,
  182. json: JSON.stringify(obj),
  183. viewed: 0,
  184. isCC: params.isCC
  185. }
  186. return request({
  187. url: `/manager/message/${params.receiver}`,
  188. method: 'post',
  189. data: postData
  190. })
  191. },
  192. messageContent(params) {
  193. let message = '';
  194. if (params.messageType === 6) {
  195. message =
  196. `【项目邀请】${store.getters.user.name}在${dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')}邀请加入<${store.getters.project.name}>项目,请及时处理。`
  197. }
  198. return message;
  199. },
  200. data(data = {}, params = {}) {
  201. let obj = {},
  202. msg = '',
  203. type = messageType.filter(res => res.id === params.messageType)[0].dataType.filter(res => res.id === params
  204. .dataType)[0];
  205. if (data.projectItemName) {
  206. msg += data.projectItemName;
  207. obj['projectItemId'] = data.projectItemId;
  208. }
  209. if (data.projectItemTargetName) {
  210. msg += ('-' + data.projectItemTargetName);
  211. obj['projectItemTargetId'] = data.projectItemTargetId;
  212. }
  213. let message =
  214. `【${type.title}】${store.getters.user.name}在${dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')}${params.operation}${msg}${type.content}`
  215. if (params.isCC === 1) message += ',并抄送给你';
  216. return {
  217. message: message,
  218. data: obj
  219. }
  220. },
  221. messageType
  222. }