Browse Source

fix: `$getLength` function can't get the length of an array

Ahmad Kholid 3 years ago
parent
commit
b087040798

+ 6 - 4
src/components/newtab/workflow/WorkflowBuilder.vue

@@ -749,10 +749,12 @@ export default {
     onBeforeUnmount(() => {
       const element = document.querySelector('#drawflow');
 
-      element.removeEventListener('mousedown', onMousedown);
-      element.removeEventListener('mouseup', onMouseup);
-      element.removeEventListener('click', onClick);
-      element.removeEventListener('keyup', onKeyup);
+      if (element) {
+        element.removeEventListener('mousedown', onMousedown);
+        element.removeEventListener('mouseup', onMouseup);
+        element.removeEventListener('click', onClick);
+        element.removeEventListener('keyup', onKeyup);
+      }
 
       saveEditorState();
     });

+ 4 - 1
src/utils/reference-data/mustache-replacer.js

@@ -1,5 +1,6 @@
 import objectPath from 'object-path';
 import dayjs from '@/lib/dayjs';
+import { parseJSON } from '@/utils/helper';
 
 const refKeys = {
   table: 'table',
@@ -35,7 +36,9 @@ export const functions = {
     return Math.round(Math.random() * (+max - +min) + +min);
   },
   getLength(str) {
-    return str.length ?? str;
+    const value = parseJSON(str, str);
+
+    return value.length ?? value;
   },
 };