parseElement.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. export function commonParse(element) {
  2. const result = {
  3. ...element.businessObject,
  4. ...element.businessObject.$attrs
  5. }
  6. return formatJsonKeyValue(result)
  7. }
  8. export function formatJsonKeyValue(result) {
  9. // 移除flowable前缀,格式化数组
  10. for (const key in result) {
  11. if (key.indexOf('flowable:') === 0) {
  12. const newKey = key.replace('flowable:', '')
  13. result[newKey] = result[key]
  14. delete result[key]
  15. }
  16. }
  17. result = documentationParse(result)
  18. return result
  19. }
  20. export function documentationParse(obj) {
  21. if ('documentation' in obj) {
  22. let str = ''
  23. obj.documentation.forEach(item => {
  24. str += item.text
  25. })
  26. obj.documentation = str
  27. }
  28. return obj
  29. }
  30. export function conditionExpressionParse(obj) {
  31. if ('conditionExpression' in obj) {
  32. obj.conditionExpression = obj.conditionExpression.body
  33. }
  34. return obj
  35. }
  36. export function userTaskParse(obj) {
  37. for (const key in obj) {
  38. if (key === 'candidateUsers') {
  39. obj.userType = 'candidateUsers'
  40. obj[key] = obj[key]?.split(',') || []
  41. } else if (key === 'candidateGroups') {
  42. obj.userType = 'candidateGroups'
  43. obj[key] = obj[key]?.split(',') || []
  44. } else if (key === 'assignee') {
  45. obj.userType = 'assignee'
  46. }
  47. }
  48. return obj
  49. }