message.js 4.8 KB

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