useParseElement.ts 650 B

12345678910111213141516171819202122232425262728293031323334
  1. import type { ModdleElement } from 'bpmn';
  2. interface Options {
  3. element: ModdleElement;
  4. }
  5. interface Data {
  6. id: string;
  7. }
  8. export default (ops: Options) => {
  9. const { element } = ops;
  10. const parseData = <T>(): T => {
  11. const result = {
  12. ...element.businessObject,
  13. ...element.businessObject.$attrs
  14. };
  15. // 移除flowable前缀,格式化数组
  16. for (const key in result) {
  17. if (key.indexOf('flowable:') === 0) {
  18. const newKey = key.replace('flowable:', '');
  19. result[newKey] = result[key];
  20. delete result[key];
  21. }
  22. }
  23. return { ...result } as T;
  24. };
  25. return {
  26. parseData
  27. };
  28. };