wzj-vue/src/components/BpmnDesign/hooks/useParseElement.ts

40 lines
823 B
TypeScript
Raw Normal View History

2024-01-21 15:59:33 +08:00
interface Options {
modeler: any;
element: any;
}
export default <T>(ops: Options) => {
const { modeler, element } = ops;
const formData = ref<T>();
const parse = () => {
const result = {
...element.businessObject,
...element.businessObject.$attrs
};
// 移除flowable前缀格式化数组
for (const key in result) {
if (key.indexOf('flowable:') === 0) {
const newKey = key.replace('flowable:', '');
result[newKey] = result[key];
delete result[key];
}
}
if ('documentation' in result) {
let str = '';
result.documentation.forEach((item: any) => {
str += item.text;
});
result.documentation = str;
}
formData.value = result;
return formData;
};
return {
parse,
formData
};
};