diff --git a/data-room-ui/package-lock.json b/data-room-ui/package-lock.json
index 461524b7..7a45c3e0 100644
--- a/data-room-ui/package-lock.json
+++ b/data-room-ui/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "@gcpaas/data-room-ui",
-  "version": "0.0.1-2023070501-Alpha",
+  "version": "0.0.1-2023070601-Alpha",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -30,6 +30,14 @@
         "@jridgewell/trace-mapping": "^0.3.9"
       }
     },
+    "@ant-design/colors": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-4.0.5.tgz",
+      "integrity": "sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==",
+      "requires": {
+        "tinycolor2": "^1.4.1"
+      }
+    },
     "@antv/adjust": {
       "version": "0.2.5",
       "resolved": "https://registry.npmmirror.com/@antv/adjust/-/adjust-0.2.5.tgz",
@@ -46,6 +54,15 @@
         }
       }
     },
+    "@antv/algorithm": {
+      "version": "0.1.25",
+      "resolved": "https://registry.npmjs.org/@antv/algorithm/-/algorithm-0.1.25.tgz",
+      "integrity": "sha512-TGwPyFoAu4+iEJd0y1l0gHdBXCbUj8a4gR7P3GzZRfEfRnWfk+gswApzOSTd7c6HP402JOEF64PAJQKxQgSPSQ==",
+      "requires": {
+        "@antv/util": "^2.0.13",
+        "tslib": "^2.0.0"
+      }
+    },
     "@antv/attr": {
       "version": "0.3.5",
       "resolved": "https://registry.npmmirror.com/@antv/attr/-/attr-0.3.5.tgz",
@@ -158,6 +175,40 @@
         "tslib": "^2.0.3"
       }
     },
+    "@antv/g-webgpu": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/@antv/g-webgpu/-/g-webgpu-0.7.2.tgz",
+      "integrity": "sha512-kw+oYGsdvj5qeUfy5DPb/jztZBV+2fmqBd3Vv8NlKatfBmv8AirYX/CCW74AUSdWm99rEiLyxFB1VdRZ6b/wnQ==",
+      "requires": {
+        "@antv/g-webgpu-core": "^0.7.2",
+        "@antv/g-webgpu-engine": "^0.7.2",
+        "gl-matrix": "^3.1.0",
+        "gl-vec2": "^1.3.0",
+        "lodash": "^4.17.15"
+      }
+    },
+    "@antv/g-webgpu-core": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/@antv/g-webgpu-core/-/g-webgpu-core-0.7.2.tgz",
+      "integrity": "sha512-xUMmop7f3Rs34zFYKXLqHhDR1CQTeDl/7vI7Sn3X/73BqJc3X3HIIRvm83Fg2CjVACaOzw4WeLRXNaOCp9fz9w==",
+      "requires": {
+        "eventemitter3": "^4.0.0",
+        "gl-matrix": "^3.1.0",
+        "lodash": "^4.17.15",
+        "probe.gl": "^3.1.1"
+      }
+    },
+    "@antv/g-webgpu-engine": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/@antv/g-webgpu-engine/-/g-webgpu-engine-0.7.2.tgz",
+      "integrity": "sha512-lx8Y93IW2cnJvdoDRKyMmTdYqSC1pOmF0nyG3PGGyA0NI9vBYVgO0KTF6hkyWjdTWVq7XDZyf/h8CJridLh3lg==",
+      "requires": {
+        "@antv/g-webgpu-core": "^0.7.2",
+        "gl-matrix": "^3.1.0",
+        "lodash": "^4.17.15",
+        "regl": "^1.3.11"
+      }
+    },
     "@antv/g2": {
       "version": "4.2.10",
       "resolved": "https://registry.npmmirror.com/@antv/g2/-/g2-4.2.10.tgz",
@@ -195,6 +246,126 @@
         "tslib": "^2.0.3"
       }
     },
+    "@antv/g6": {
+      "version": "4.8.19",
+      "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-4.8.19.tgz",
+      "integrity": "sha512-VBs45lAnxjjfDu6CTDdb/nMJRYcwAG4K5MWZiVf+vq4789rtElm7q2GKV5zVChadtrqcUt/dCjKp56zR5/foaA==",
+      "requires": {
+        "@antv/g6-pc": "0.8.19"
+      }
+    },
+    "@antv/g6-core": {
+      "version": "0.8.19",
+      "resolved": "https://registry.npmjs.org/@antv/g6-core/-/g6-core-0.8.19.tgz",
+      "integrity": "sha512-JBpmdMuHOLCOvoF3EReCH3w1jTsZ/GL6Kl0aYNGEAlAeKVTT3iqHgXUAim3G49RKELXRfhit+IsYTRN1jboF9A==",
+      "requires": {
+        "@antv/algorithm": "^0.1.8",
+        "@antv/dom-util": "^2.0.1",
+        "@antv/event-emitter": "~0.1.0",
+        "@antv/g-base": "^0.5.1",
+        "@antv/g-math": "^0.1.1",
+        "@antv/matrix-util": "^3.1.0-beta.3",
+        "@antv/path-util": "^2.0.3",
+        "@antv/util": "~2.0.5",
+        "ml-matrix": "^6.5.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "@antv/g6-element": {
+      "version": "0.8.19",
+      "resolved": "https://registry.npmjs.org/@antv/g6-element/-/g6-element-0.8.19.tgz",
+      "integrity": "sha512-q22KlMHlFjR+hUMeHJyDt1NDsuMB6YBGSV/AgJRcaoatNQRHqdUBDQuwoNhw40tjVs4OJQsWwJ/6PI0zlA3LwQ==",
+      "requires": {
+        "@antv/g-base": "^0.5.1",
+        "@antv/g6-core": "0.8.19",
+        "@antv/util": "~2.0.5"
+      }
+    },
+    "@antv/g6-pc": {
+      "version": "0.8.19",
+      "resolved": "https://registry.npmjs.org/@antv/g6-pc/-/g6-pc-0.8.19.tgz",
+      "integrity": "sha512-dxaFGQlT7NGQ6kWweBYaBd0hwW7OQtQfT6DB/r431gP02vbXkl3C2Nnjw1rtOeSVBI7PcWOX9T9yHZglM0GsHg==",
+      "requires": {
+        "@ant-design/colors": "^4.0.5",
+        "@antv/algorithm": "^0.1.8",
+        "@antv/dom-util": "^2.0.1",
+        "@antv/event-emitter": "~0.1.0",
+        "@antv/g-base": "^0.5.1",
+        "@antv/g-canvas": "^0.5.2",
+        "@antv/g-math": "^0.1.1",
+        "@antv/g-svg": "^0.5.1",
+        "@antv/g6-core": "0.8.19",
+        "@antv/g6-element": "0.8.19",
+        "@antv/g6-plugin": "0.8.19",
+        "@antv/hierarchy": "^0.6.10",
+        "@antv/layout": "^0.3.0",
+        "@antv/matrix-util": "^3.1.0-beta.3",
+        "@antv/path-util": "^2.0.3",
+        "@antv/util": "~2.0.5",
+        "color": "^3.1.3",
+        "d3-force": "^2.0.1",
+        "dagre": "^0.8.5",
+        "insert-css": "^2.0.0",
+        "ml-matrix": "^6.5.0"
+      }
+    },
+    "@antv/g6-plugin": {
+      "version": "0.8.19",
+      "resolved": "https://registry.npmjs.org/@antv/g6-plugin/-/g6-plugin-0.8.19.tgz",
+      "integrity": "sha512-vPDko7gdrszRp/2OlYwxyWOAFiW/mn/I798s689KsC7/e/YSOuq94TdmdZHulNLOlT6zqqYwIP3JQG6YxdyPTQ==",
+      "requires": {
+        "@antv/dom-util": "^2.0.2",
+        "@antv/g-base": "^0.5.1",
+        "@antv/g-canvas": "^0.5.2",
+        "@antv/g-svg": "^0.5.2",
+        "@antv/g6-core": "0.8.19",
+        "@antv/g6-element": "0.8.19",
+        "@antv/matrix-util": "^3.1.0-beta.3",
+        "@antv/path-util": "^2.0.3",
+        "@antv/scale": "^0.3.4",
+        "@antv/util": "^2.0.9",
+        "insert-css": "^2.0.0"
+      }
+    },
+    "@antv/graphlib": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-1.2.0.tgz",
+      "integrity": "sha512-hhJOMThec51nU4Fe5p/viLlNIL71uDEgYFzKPajWjr2715SFG1HAgiP6AVylIeqBcAZ04u3Lw7usjl/TuI5RuQ=="
+    },
+    "@antv/hierarchy": {
+      "version": "0.6.11",
+      "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.11.tgz",
+      "integrity": "sha512-RJVhEMCuu4vj+Dt25lXIiNdd7jaqm/fqWGYikiELha4S5tnzdJoTUaUvvpfWlxLx4B0RsS9XRwBs1bOKN71TKg==",
+      "requires": {
+        "@antv/util": "^2.0.7"
+      }
+    },
+    "@antv/layout": {
+      "version": "0.3.23",
+      "resolved": "https://registry.npmjs.org/@antv/layout/-/layout-0.3.23.tgz",
+      "integrity": "sha512-F/CyfQuc1WSgCVemX0jA3pE3XuDRbDJmMueY1cL8WgL6nhdzm3/jg5UPamwbBVnhLk+rzNUDYdEIyX+RJbpcMA==",
+      "requires": {
+        "@antv/g-webgpu": "0.7.2",
+        "@antv/graphlib": "^1.0.0",
+        "@antv/util": "^3.3.2",
+        "d3-force": "^2.1.1",
+        "d3-quadtree": "^2.0.0",
+        "dagre-compound": "^0.0.11",
+        "ml-matrix": "^6.5.0"
+      },
+      "dependencies": {
+        "@antv/util": {
+          "version": "3.3.2",
+          "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.2.tgz",
+          "integrity": "sha512-uvyQxEOugdJs/FVlpz/+8pKxn70z8jEVydPqv+LI62cpIF7YDjVnMfNIsoMqwEoTzPUJ9TJalyLqZhT5rYez0w==",
+          "requires": {
+            "fast-deep-equal": "^3.1.3",
+            "gl-matrix": "^3.3.0",
+            "tslib": "^2.3.1"
+          }
+        }
+      }
+    },
     "@antv/matrix-util": {
       "version": "3.1.0-beta.3",
       "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz",
@@ -2424,6 +2595,31 @@
       "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
       "dev": true
     },
+    "@probe.gl/env": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.6.0.tgz",
+      "integrity": "sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==",
+      "requires": {
+        "@babel/runtime": "^7.0.0"
+      }
+    },
+    "@probe.gl/log": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.6.0.tgz",
+      "integrity": "sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==",
+      "requires": {
+        "@babel/runtime": "^7.0.0",
+        "@probe.gl/env": "3.6.0"
+      }
+    },
+    "@probe.gl/stats": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.6.0.tgz",
+      "integrity": "sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==",
+      "requires": {
+        "@babel/runtime": "^7.0.0"
+      }
+    },
     "@sideway/address": {
       "version": "4.1.4",
       "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz",
@@ -3307,27 +3503,6 @@
         "whatwg-fetch": "^3.6.2"
       },
       "dependencies": {
-        "@vue/vue-loader-v15": {
-          "version": "npm:vue-loader@15.10.1",
-          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.1.tgz",
-          "integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==",
-          "dev": true,
-          "requires": {
-            "@vue/component-compiler-utils": "^3.1.0",
-            "hash-sum": "^1.0.2",
-            "loader-utils": "^1.1.0",
-            "vue-hot-reload-api": "^2.3.0",
-            "vue-style-loader": "^4.1.0"
-          },
-          "dependencies": {
-            "hash-sum": {
-              "version": "1.0.2",
-              "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
-              "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
-              "dev": true
-            }
-          }
-        },
         "acorn-walk": {
           "version": "8.2.0",
           "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz",
@@ -3399,26 +3574,6 @@
             "tapable": "^2.0.0"
           }
         },
-        "json5": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
-          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "loader-utils": {
-          "version": "1.4.2",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
-          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.1"
-          }
-        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
@@ -3636,6 +3791,47 @@
         "lodash": "^4.17.4"
       }
     },
+    "@vue/vue-loader-v15": {
+      "version": "npm:vue-loader@15.10.1",
+      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.1.tgz",
+      "integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==",
+      "dev": true,
+      "requires": {
+        "@vue/component-compiler-utils": "^3.1.0",
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.1.0",
+        "vue-hot-reload-api": "^2.3.0",
+        "vue-style-loader": "^4.1.0"
+      },
+      "dependencies": {
+        "hash-sum": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+          "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+          "dev": true
+        },
+        "json5": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.2",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        }
+      }
+    },
     "@vue/vue2-jest": {
       "version": "27.0.0",
       "resolved": "https://registry.npmmirror.com/@vue/vue2-jest/-/vue2-jest-27.0.0.tgz",
@@ -5781,11 +5977,19 @@
         "object-visit": "^1.0.0"
       }
     },
+    "color": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+      "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+      "requires": {
+        "color-convert": "^1.9.3",
+        "color-string": "^1.6.0"
+      }
+    },
     "color-convert": {
       "version": "1.9.3",
       "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
       "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-      "dev": true,
       "requires": {
         "color-name": "1.1.3"
       }
@@ -5793,8 +5997,16 @@
     "color-name": {
       "version": "1.1.3",
       "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
-      "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-      "dev": true
+      "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+    },
+    "color-string": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+      "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+      "requires": {
+        "color-name": "^1.0.0",
+        "simple-swizzle": "^0.2.2"
+      }
     },
     "colord": {
       "version": "2.9.3",
@@ -6883,11 +7095,26 @@
       "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz",
       "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="
     },
+    "d3-dispatch": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz",
+      "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA=="
+    },
     "d3-ease": {
       "version": "1.0.7",
       "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz",
       "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ=="
     },
+    "d3-force": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz",
+      "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==",
+      "requires": {
+        "d3-dispatch": "1 - 2",
+        "d3-quadtree": "1 - 2",
+        "d3-timer": "1 - 2"
+      }
+    },
     "d3-hierarchy": {
       "version": "2.0.0",
       "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz",
@@ -6901,6 +7128,11 @@
         "d3-color": "1 - 3"
       }
     },
+    "d3-quadtree": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz",
+      "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw=="
+    },
     "d3-regression": {
       "version": "1.3.10",
       "resolved": "https://registry.npmmirror.com/d3-regression/-/d3-regression-1.3.10.tgz",
@@ -6911,6 +7143,20 @@
       "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz",
       "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw=="
     },
+    "dagre": {
+      "version": "0.8.5",
+      "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz",
+      "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==",
+      "requires": {
+        "graphlib": "^2.1.8",
+        "lodash": "^4.17.15"
+      }
+    },
+    "dagre-compound": {
+      "version": "0.0.11",
+      "resolved": "https://registry.npmjs.org/dagre-compound/-/dagre-compound-0.0.11.tgz",
+      "integrity": "sha512-UrSgRP9LtOZCYb9e5doolZXpc7xayyszgyOs7uakTK4n4KsLegLVTRRtq01GpQd/iZjYw5fWMapx9ed+c80MAQ=="
+    },
     "dargs": {
       "version": "7.0.0",
       "resolved": "https://registry.npmmirror.com/dargs/-/dargs-7.0.0.tgz",
@@ -8466,8 +8712,7 @@
     "eventemitter3": {
       "version": "4.0.7",
       "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
-      "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
-      "dev": true
+      "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
     },
     "events": {
       "version": "3.3.0",
@@ -8671,8 +8916,7 @@
     "fast-deep-equal": {
       "version": "3.1.3",
       "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
-      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
-      "dev": true
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
     },
     "fast-glob": {
       "version": "3.2.12",
@@ -9351,6 +9595,11 @@
       "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz",
       "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA=="
     },
+    "gl-vec2": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/gl-vec2/-/gl-vec2-1.3.0.tgz",
+      "integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A=="
+    },
     "glob": {
       "version": "7.2.3",
       "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
@@ -9510,6 +9759,14 @@
       "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
       "dev": true
     },
+    "graphlib": {
+      "version": "2.1.8",
+      "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
+      "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==",
+      "requires": {
+        "lodash": "^4.17.15"
+      }
+    },
     "gzip-size": {
       "version": "6.0.0",
       "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
@@ -10475,6 +10732,11 @@
         "kind-of": "^3.0.2"
       }
     },
+    "is-any-array": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz",
+      "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ=="
+    },
     "is-arguments": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -14208,6 +14470,41 @@
       "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
       "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
     },
+    "ml-array-max": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-1.2.4.tgz",
+      "integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==",
+      "requires": {
+        "is-any-array": "^2.0.0"
+      }
+    },
+    "ml-array-min": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-1.2.3.tgz",
+      "integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==",
+      "requires": {
+        "is-any-array": "^2.0.0"
+      }
+    },
+    "ml-array-rescale": {
+      "version": "1.3.7",
+      "resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz",
+      "integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==",
+      "requires": {
+        "is-any-array": "^2.0.0",
+        "ml-array-max": "^1.2.4",
+        "ml-array-min": "^1.2.3"
+      }
+    },
+    "ml-matrix": {
+      "version": "6.10.4",
+      "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.10.4.tgz",
+      "integrity": "sha512-rUyEhfNPzqFsltYwvjNeYQXlYEaVea3KgzcJKJteQUj2WVAGFx9fLNRjtMR9mg2B6bd5buxlmkZmxM4hmO+SKg==",
+      "requires": {
+        "is-any-array": "^2.0.0",
+        "ml-array-rescale": "^1.3.7"
+      }
+    },
     "modify-values": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/modify-values/-/modify-values-1.0.1.tgz",
@@ -15976,6 +16273,17 @@
         }
       }
     },
+    "probe.gl": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.6.0.tgz",
+      "integrity": "sha512-19JydJWI7+DtR4feV+pu4Mn1I5TAc0xojuxVgZdXIyfmTLfUaFnk4OloWK1bKbPtkgGKLr2lnbnCXmpZEcEp9g==",
+      "requires": {
+        "@babel/runtime": "^7.0.0",
+        "@probe.gl/env": "3.6.0",
+        "@probe.gl/log": "3.6.0",
+        "@probe.gl/stats": "3.6.0"
+      }
+    },
     "process": {
       "version": "0.5.2",
       "resolved": "https://registry.npmmirror.com/process/-/process-0.5.2.tgz",
@@ -16423,6 +16731,11 @@
         }
       }
     },
+    "regl": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz",
+      "integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w=="
+    },
     "relateurl": {
       "version": "0.2.7",
       "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz",
@@ -17438,6 +17751,21 @@
       "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
       "dev": true
     },
+    "simple-swizzle": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+      "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+      "requires": {
+        "is-arrayish": "^0.3.1"
+      },
+      "dependencies": {
+        "is-arrayish": {
+          "version": "0.3.2",
+          "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+          "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+        }
+      }
+    },
     "sirv": {
       "version": "1.0.19",
       "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz",
@@ -18886,6 +19214,11 @@
         }
       }
     },
+    "tinycolor2": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
+      "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
+    },
     "tmpl": {
       "version": "1.0.5",
       "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz",
diff --git a/data-room-ui/package.json b/data-room-ui/package.json
index c85ddedf..7082a2ad 100644
--- a/data-room-ui/package.json
+++ b/data-room-ui/package.json
@@ -48,6 +48,7 @@
     ]
   },
   "dependencies": {
+    "@antv/g6": "4.3.6",
     "@amap/amap-jsapi-loader": "^1.0.1",
     "@antv/g2plot": "2.4.0",
     "@jiaminghi/data-view": "2.10.0",
diff --git a/data-room-ui/packages/BasicComponents/HorizontalLine/setting.vue b/data-room-ui/packages/BasicComponents/HorizontalLine/setting.vue
index 08b0615f..133871fd 100644
--- a/data-room-ui/packages/BasicComponents/HorizontalLine/setting.vue
+++ b/data-room-ui/packages/BasicComponents/HorizontalLine/setting.vue
@@ -59,7 +59,7 @@
             >
               <el-input-number
                 v-model="config.customize.opacity"
-                class="bs-el-input-number db-el-input-number"
+                class="bs-el-input-number"
                 placeholder="请输入不透明度"
                 :min="0.01"
                 :max="1"
diff --git a/data-room-ui/packages/BasicComponents/Picture/setting.vue b/data-room-ui/packages/BasicComponents/Picture/setting.vue
index 5c0f6879..cb1bec53 100644
--- a/data-room-ui/packages/BasicComponents/Picture/setting.vue
+++ b/data-room-ui/packages/BasicComponents/Picture/setting.vue
@@ -91,7 +91,7 @@
         >
           <el-input-number
             v-model="config.customize.opacity"
-            class="bs-el-input-number db-el-input-number"
+            class="bs-el-input-number"
             placeholder="请输入不透明度"
             :min="0.01"
             :max="1"
diff --git a/data-room-ui/packages/BasicComponents/Tables/index.vue b/data-room-ui/packages/BasicComponents/Tables/index.vue
index 9fa7d5c8..9d4f8f43 100644
--- a/data-room-ui/packages/BasicComponents/Tables/index.vue
+++ b/data-room-ui/packages/BasicComponents/Tables/index.vue
@@ -262,7 +262,7 @@ export default {
 }
 
 ::v-deep .el-table {
-  height: 100%;
+  // height: 100%;
   background-color: transparent;
 }
 ::v-deep .el-table tr {
diff --git a/data-room-ui/packages/BasicComponents/VerticalLine/setting.vue b/data-room-ui/packages/BasicComponents/VerticalLine/setting.vue
index 91c6854c..40ade0b2 100644
--- a/data-room-ui/packages/BasicComponents/VerticalLine/setting.vue
+++ b/data-room-ui/packages/BasicComponents/VerticalLine/setting.vue
@@ -59,7 +59,7 @@
           >
             <el-input-number
               v-model="config.customize.opacity"
-              class="bs-el-input-number db-el-input-number"
+              class="bs-el-input-number"
               placeholder="请输入不透明度"
               :min="0.01"
               :max="1"
diff --git a/data-room-ui/packages/BigScreenDesign/RightSetting/PaddingSetting/index.vue b/data-room-ui/packages/BigScreenDesign/RightSetting/PaddingSetting/index.vue
index 42ec417a..c1ddcf45 100644
--- a/data-room-ui/packages/BigScreenDesign/RightSetting/PaddingSetting/index.vue
+++ b/data-room-ui/packages/BigScreenDesign/RightSetting/PaddingSetting/index.vue
@@ -33,7 +33,7 @@
       >
         <el-input-number
           v-model.number="paddingValue[3]"
-          class="bs-el-input-number input-left input-item db-el-input"
+          class="bs-el-input-number input-left input-item"
           size="mini"
           :min="0"
           :step="1"
@@ -58,38 +58,38 @@
 </template>
 
 <script>
-  export default {
-    name: 'PaddingSetting',
-    model: {
-      prop: 'padding',
-      event: 'input'
-    },
-    props: {
-      padding: {
-        type: Array,
-        default: () => []
-      }
-    },
-    data () {
-      return {
-        position: 0
-      }
-    },
-    computed: {
-      paddingValue () {
-        return this.padding
-      }
-    },
-    methods: {
-      paddingChange () {
-        this.$emit('input', this.paddingValue)
-      }
+export default {
+  name: 'PaddingSetting',
+  model: {
+    prop: 'padding',
+    event: 'input'
+  },
+  props: {
+    padding: {
+      type: Array,
+      default: () => []
+    }
+  },
+  data () {
+    return {
+      position: 0
+    }
+  },
+  computed: {
+    paddingValue () {
+      return this.padding
+    }
+  },
+  methods: {
+    paddingChange () {
+      this.$emit('input', this.paddingValue)
     }
   }
+}
 </script>
 
 <style lang="scss" scoped>
-  .db-padding-setting{
+  .bs-padding-setting{
     .padding-box{
       width: 160px;
       height: 190px;
@@ -102,7 +102,7 @@
       transform: translate(-50%,-50%);
       width: 30%;
       height: 30%;
-      background-color: var(--db-background-1);
+      background-color: var(--bs-background-1);
     }
   }
 </style>
diff --git a/data-room-ui/packages/DataSetLabelManagement/src/LabelConfigAddOrUpdate.vue b/data-room-ui/packages/DataSetLabelManagement/src/LabelConfigAddOrUpdate.vue
index be6a11ae..e1927303 100644
--- a/data-room-ui/packages/DataSetLabelManagement/src/LabelConfigAddOrUpdate.vue
+++ b/data-room-ui/packages/DataSetLabelManagement/src/LabelConfigAddOrUpdate.vue
@@ -1,5 +1,6 @@
 <template>
   <el-dialog
+    class="bs-dialog-wrap bs-el-dialog"
     :append-to-body="true"
     :before-close="handleClose"
     :title="dataForm.id!==''?'编辑标签':'新增标签'"
@@ -7,67 +8,137 @@
     :width="relVisible?'1100px':'450px'"
   >
     <el-row>
+      <el-col :span="relVisible ? 8 : 24">
+        <el-divider
+          class="bs-el-divider"
+          content-position="left"
+        >
+          属性信息
+        </el-divider>
 
-      <el-col :span="relVisible?8:24">
-        <el-divider content-position="left">属性信息</el-divider>
-
-        <el-form ref="ruleForm" :model="dataForm" :rules="rules" label-position="right" label-width="90px">
-
-          <el-form-item label="标签名称" prop="labelName">
-            <el-input v-model="dataForm.labelName" clearable maxlength="200"/>
+        <el-form
+          ref="ruleForm"
+          :model="dataForm"
+          :rules="rules"
+          label-position="right"
+          label-width="90px"
+          class="form-container"
+        >
+          <el-form-item
+            label="标签名称"
+            prop="labelName"
+          >
+            <el-input
+              v-model="dataForm.labelName"
+              class="bs-el-input"
+              clearable
+              placeholder="请输入标签名称"
+              maxlength="200"
+            />
           </el-form-item>
 
-          <el-form-item label="标签类型" prop="labelType">
-            <el-select ref="searchSelect"
-                       v-model="dataForm.labelType"
-                       allow-create
-                       clearable
-                       filterable
-                       placeholder="请选择或输入标签类型"
-                       @blur="selectBlur"
-                       @input.native="filterData">
-              <el-option v-for="(item,K) in labelTypeList" :key="K" :label="item"
-                         :value="item"/>
+          <el-form-item
+            label="标签类型"
+            prop="labelType"
+          >
+            <el-select
+              ref="searchSelect"
+              v-model="dataForm.labelType"
+              class="bs-el-select"
+              popper-class="bs-el-select"
+              allow-create
+              clearable
+              filterable
+              placeholder="请选择或输入标签类型"
+              @blur="selectBlur"
+              @input.native="filterData"
+            >
+              <el-option
+                v-for="(item,K) in labelTypeList"
+                :key="K"
+                :label="item"
+                :value="item"
+              />
             </el-select>
           </el-form-item>
 
-          <el-form-item label="标签说明" prop="labelDesc">
-            <el-input v-model="dataForm.labelDesc" clearable type="text"/>
+          <el-form-item
+            label="标签说明"
+            prop="labelDesc"
+          >
+            <el-input
+              v-model="dataForm.labelDesc"
+              clearable
+              placeholder="请输入标签说明"
+              class="bs-el-input"
+              type="text"
+            />
           </el-form-item>
-
         </el-form>
 
-        <el-divider content-position="left">关联数据集信息</el-divider>
-        <el-form>
+        <el-divider
+          class="bs-el-divider"
+          content-position="left"
+        >
+          关联数据集信息
+        </el-divider>
+        <el-form class="form-container">
           <el-form-item align="center">
-            <el-tag effect="plain">标签</el-tag>
+            <el-tag effect="plain">
+              标签
+            </el-tag>
             <span>—————</span>
-            <el-button round size="mini" type="primary" @click="buildRel">添加关联</el-button>
+            <el-button
+              round
+              size="mini"
+              type="primary"
+              @click="buildRel"
+            >
+              添加关联
+            </el-button>
           </el-form-item>
         </el-form>
       </el-col>
 
-      <el-col v-if="relVisible" :span="8">
+      <el-col
+        v-if="relVisible"
+        :span="8"
+      >
         <div>
-          <el-divider content-position="left">添加关联</el-divider>
-          <div class="tree-box full-box--position" style="padding: 0 8px 24px 0">
+          <el-divider
+            class="bs-el-divider"
+            content-position="left"
+          >
+            添加关联
+          </el-divider>
+          <div
+            class="tree-box full-box--position"
+            style="padding: 0 8px 24px 0"
+          >
             <Tree
               ref="tree"
-              :treeData="categoryData"
+              :tree-data="categoryData"
               style="height: 300px;overflow: auto"
               @handleNodeClick="handleNodeClick"
-            >
-            </Tree>
+            />
           </div>
         </div>
       </el-col>
 
-      <el-col v-if="relVisible" :span="8">
-        <el-divider content-position="left">数据集列表:</el-divider>
-        <div>
+      <el-col
+        v-if="relVisible"
+        :span="8"
+      >
+        <el-divider
+          class="bs-el-divider"
+          content-position="left"
+        >
+          数据集列表
+        </el-divider>
+        <div class="bs-table-box">
           <el-table
             ref="mytable"
-            v-loading="loading"
+            class="bs-el-table"
             :data="datasetList"
             height="300"
             @select="handleSelect"
@@ -75,37 +146,42 @@
           >
             <el-table-column
               type="selection"
-              width="55">
-            </el-table-column>
+              width="55"
+            />
 
             <el-table-column
               label="数据集名称"
               prop="name"
               show-overflow-tooltip
-            ></el-table-column>
+            />
           </el-table>
         </div>
       </el-col>
-
     </el-row>
 
-    <span slot="footer" class="dialog-footer">
-        <el-button @click="cancel">取消</el-button>
-        <el-button type="primary" @click="submitForm('ruleForm')">确定</el-button>
-      </span>
+    <span
+      slot="footer"
+      class="dialog-footer"
+    >
+      <el-button @click="cancel">取消</el-button>
+      <el-button
+        type="primary"
+        @click="submitForm('ruleForm')"
+      >确定</el-button>
+    </span>
   </el-dialog>
 </template>
 
 <script>
-import {pageMixins} from 'packages/js/mixins/page'
+import { pageMixins } from 'packages/js/mixins/page'
 import Tree from './Tree'
-import {addOrUpdateLabel, checkRepeatLabel, getDataSetIdListByLabelId} from 'packages/js/utils/LabelConfigService'
-import {datasetList, getCategoryTree} from 'packages/js/utils/datasetConfigService'
+import { addOrUpdateLabel, checkRepeatLabel, getDataSetIdListByLabelId } from 'packages/js/utils/LabelConfigService'
+import { datasetList, getCategoryTree } from 'packages/js/utils/datasetConfigService'
 
 export default {
-  name: "labelConfigAddOrUpdate",
+  name: 'LabelConfigAddOrUpdate',
   mixins: [pageMixins],
-  data() {
+  data () {
     return {
       loading: false,
       datasetList: [],
@@ -117,15 +193,15 @@ export default {
         labelDesc: '',
         relList: []
       },
-      dialogFormVisible: false,
+      dialogFormVisible: true,
       rules: {
         labelName: [
-          {required: true, message: '标签名称不能为空', trigger: 'blur'},
-          {validator: this.validateLabelName, trigger: 'blur'}
+          { required: true, message: '标签名称不能为空', trigger: 'blur' },
+          { validator: this.validateLabelName, trigger: 'blur' }
         ],
         labelType: [
-          {required: true, message: '标签类型不能为空', trigger: 'change'},
-        ],
+          { required: true, message: '标签类型不能为空', trigger: 'change' }
+        ]
       },
       // 分类树数据
       categoryData: [],
@@ -140,9 +216,9 @@ export default {
     Tree
   },
   watch: {
-    "dataForm.labelType": function (val) {
+    'dataForm.labelType': function (val) {
       if (val.length > 20) {
-        this.dataForm.labelType = val.substring(0, 20);
+        this.dataForm.labelType = val.substring(0, 20)
       }
     },
     // datasetList变化时,根据datasetIdList设置其选中状态
@@ -150,11 +226,11 @@ export default {
       handler: function (val) {
         this.$nextTick(() => {
           if (this.$refs.mytable) {
-            this.$refs.mytable.clearSelection();
+            this.$refs.mytable.clearSelection()
           }
           this.datasetList.forEach((item) => {
             if (this.datasetIdList.includes(item.id)) {
-              this.$refs.mytable.toggleRowSelection(item, true);
+              this.$refs.mytable.toggleRowSelection(item, true)
             }
           })
         })
@@ -167,50 +243,50 @@ export default {
      * 初始化
      * @param row 标签信息
      */
-    init(row) {
-      this.dataForm.id = row ? row.id : '';
-      this.dialogFormVisible = true;
+    init (row) {
+      this.dataForm.id = row ? row.id : ''
+      this.dialogFormVisible = true
       if (row) {
-        this.dataForm.id = row.id;
-        this.dataForm.labelName = row.labelName;
-        this.dataForm.labelType = row.labelType;
-        this.dataForm.labelDesc = row.labelDesc;
+        this.dataForm.id = row.id
+        this.dataForm.labelName = row.labelName
+        this.dataForm.labelType = row.labelType
+        this.dataForm.labelDesc = row.labelDesc
         // 获取选中的数据集id列表
         getDataSetIdListByLabelId(row.id).then((list) => {
-          this.datasetIdList = list;
-          this.buildRel();
+          this.datasetIdList = list
+          this.buildRel()
         })
       }
       this.$nextTick(() => {
-        this.getDataList();
+        this.getDataList()
       })
     },
     /**
      * 获取数据集列表
      */
-    getDataList() {
-      this.loading = true;
-      let params = {
+    getDataList () {
+      this.loading = true
+      const params = {
         typeId: this.typeId
-      };
+      }
       datasetList(params).then((list) => {
-        this.datasetList = list;
+        this.datasetList = list
         if (!this.relVisible) {
-          this.loading = false;
+          this.loading = false
           return
         }
-        this.loading = false;
+        this.loading = false
       }).catch(() => {
-        this.loading = false;
+        this.loading = false
       })
     },
 
     /**
      * 获取分类树
      */
-    getTreeList() {
-      getCategoryTree({type: 'dataset'}).then((categoryTree) => {
-        this.categoryData = categoryTree;
+    getTreeList () {
+      getCategoryTree({ type: 'dataset' }).then((categoryTree) => {
+        this.categoryData = categoryTree
       })
     },
     /**
@@ -219,24 +295,24 @@ export default {
      * @param value
      * @param callback
      */
-    validateLabelName(rule, value, callback) {
-      checkRepeatLabel({'id': this.dataForm.id, 'labelName': this.dataForm.labelName}).then(repeat => {
+    validateLabelName (rule, value, callback) {
+      checkRepeatLabel({ id: this.dataForm.id, labelName: this.dataForm.labelName }).then(repeat => {
         if (repeat) {
           callback(new Error('标签名称已存在'))
         } else {
-          callback();
+          callback()
         }
-      });
+      })
     },
     /**
      * 树节点点击事件
      * @param row
      * @param value
      */
-    handleNodeClick(row, value) {
+    handleNodeClick (row, value) {
       this.$nextTick(() => {
-        this.typeId = row.id;
-        this.getDataList();
+        this.typeId = row.id
+        this.getDataList()
       })
     },
     /**
@@ -244,124 +320,124 @@ export default {
      * @param selection 选中的数据集列表
      * @param row 操作行
      */
-    handleSelect(selection, row) {
+    handleSelect (selection, row) {
       // 如row.id存在于datasetIdList中,则将其从datasetIdList中删除
       if (this.datasetIdList.includes(row.id)) {
-        const index = this.datasetIdList.indexOf(row.id);
+        const index = this.datasetIdList.indexOf(row.id)
         if (index > -1) {
-          this.datasetIdList.splice(index, 1);
+          this.datasetIdList.splice(index, 1)
         }
         return
       }
       // 如row.id不存在于datasetIdList中,则将其添加到datasetIdList中
       if (!this.datasetIdList.includes(row.id)) {
-        this.datasetIdList.push(row.id);
+        this.datasetIdList.push(row.id)
       }
     },
     /**
      * 数据集全选
      * @param selection
      */
-    handleSelectionAll(selection) {
+    handleSelectionAll (selection) {
       // 选中项为空,将datasetList中所有项从datasetIdList中删除
       if (selection.length === 0) {
         this.datasetList.forEach((dataset) => {
-          const index = this.datasetIdList.indexOf(dataset.id);
+          const index = this.datasetIdList.indexOf(dataset.id)
           if (index > -1) {
-            this.datasetIdList.splice(index, 1);
+            this.datasetIdList.splice(index, 1)
           }
-        });
+        })
         return
       }
       // 选中项不为空,将datasetList中所有项添加到datasetIdList中
       if (selection.length > 0) {
         this.datasetList.forEach((dataset) => {
           if (!this.datasetIdList.includes(dataset.id)) {
-            this.datasetIdList.push(dataset.id);
+            this.datasetIdList.push(dataset.id)
           }
-        });
+        })
       }
     },
 
     /**
      * 表单关闭
      */
-    handleClose() {
+    handleClose () {
       this.$parent.addOrUpdateVisible = false
     },
     /**
      * 取消按钮
      */
-    cancel() {
-      this.dialogFormVisible = false;
+    cancel () {
+      this.dialogFormVisible = false
       this.$nextTick(() => {
-        this.handleClose();
+        this.handleClose()
       })
     },
     /**
      * 提交按钮
      * @param formName
      */
-    submitForm(formName) {
+    submitForm (formName) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
-          this.saveForm(true);
+          this.saveForm(true)
         } else {
-          return false;
+          return false
         }
-      });
+      })
     },
     /**
      * 保存标签信息
      * @param flag
      */
-    saveForm(flag) {
-      this.dataForm.relList = [];
+    saveForm (flag) {
+      this.dataForm.relList = []
       this.datasetIdList.forEach(id => {
-        let param = {
-          'datasetId': id,
-          'labelId': this.dataForm.id
-        };
-        this.dataForm.relList.push(param);
-      });
+        const param = {
+          datasetId: id,
+          labelId: this.dataForm.id
+        }
+        this.dataForm.relList.push(param)
+      })
       addOrUpdateLabel(this.dataForm).then((r) => {
-        this.$message.success('保存成功');
-        this.cancel();
-        this.$parent.getDataList();
-        //更新一下类型
-        this.$parent.getLabelType();
+        this.$message.success('保存成功')
+        this.cancel()
+        this.$parent.getDataList()
+        // 更新一下类型
+        this.$parent.getLabelType()
       })
     },
     /**
      * 添加关联按钮
      */
-    buildRel() {
-      this.relVisible = !this.relVisible;
+    buildRel () {
+      this.relVisible = !this.relVisible
       if (this.relVisible) {
-        this.getTreeList();
+        this.getTreeList()
         this.$nextTick(() => {
-          this.getDataList();
+          this.getDataList()
         })
       }
     },
-    filterNode(value, data) {
-      if (!value) return true;
+    filterNode (value, data) {
+      if (!value) return true
       return data.name.indexOf(value) !== -1
     },
-    ellipsis(value, len) {
-      if (!value) return '';
+    ellipsis (value, len) {
+      if (!value) return ''
       if (value.length > len) {
         return value.slice(0, len) + '...'
       }
       return value
     },
-    selectBlur(e) {
+    selectBlur (e) {
       this.dataForm.labelType = e.target.value
     },
     // 对输入字符串控制
-    filterData() {
+    filterData () {
       // 此属性得到输入的文字
-      var str = this.$refs.searchSelect.$data.selectedLabel;
+      const str = this.$refs.searchSelect.$data.selectedLabel
       // 控制的js
       if (str.length > 20) {
         this.$refs.searchSelect.$data.selectedLabel = str.substr(0, 20)
@@ -379,4 +455,13 @@ export default {
 .tree-box {
   overflow-x: auto;
 }
+.form-container{
+  padding: 0 8px;
+}
+::v-deep .el-table{
+  border: 1px solid transparent !important;
+}
+::v-deep .el-table th.el-table__cell.is-leaf, .el-table td.el-table__cell{
+  border-bottom: 1px solid transparent  !important;
+}
 </style>
diff --git a/data-room-ui/packages/DataSetLabelManagement/src/LabelConfigDetails.vue b/data-room-ui/packages/DataSetLabelManagement/src/LabelConfigDetails.vue
index b122e5dc..ce8c2363 100644
--- a/data-room-ui/packages/DataSetLabelManagement/src/LabelConfigDetails.vue
+++ b/data-room-ui/packages/DataSetLabelManagement/src/LabelConfigDetails.vue
@@ -124,7 +124,10 @@
       关联数据集信息
     </el-divider>
 
-    <div style="width:90%" id="container" />
+    <div
+      id="container"
+      style="width:90%"
+    />
   </div>
 </template>
 
diff --git a/data-room-ui/packages/DataSetLabelManagement/src/LabelSelect.vue b/data-room-ui/packages/DataSetLabelManagement/src/LabelSelect.vue
index bd666219..e85b7616 100644
--- a/data-room-ui/packages/DataSetLabelManagement/src/LabelSelect.vue
+++ b/data-room-ui/packages/DataSetLabelManagement/src/LabelSelect.vue
@@ -17,6 +17,7 @@
     >
       <el-button
         circle
+        class="bs-el-button-default"
         icon="el-icon-plus"
         style="margin-left: 10px"
         @click="addLabel"
@@ -24,6 +25,7 @@
     </el-tooltip>
     <!-- 标签列表弹窗 -->
     <el-dialog
+      class="bs-dialog-wrap bs-el-dialog"
       :append-to-body="true"
       :before-close="handleClose"
       :visible.sync="dialogFormVisible"
@@ -33,19 +35,22 @@
       <div v-loading="labelCheckLoading">
         <el-form
           :inline="true"
-          class="filter-container"
+          class="bs-el-form filter-container"
         >
-          <el-form-item label="标签名称">
+          <el-form-item label="">
             <el-input
               v-model="searchForm.labelName"
               clearable
+              class="bs-el-input"
               placeholder="请输入标签名称"
             />
           </el-form-item>
 
-          <el-form-item label="标签类型">
+          <el-form-item label="">
             <el-select
               v-model="searchForm.labelType"
+              class="bs-el-select"
+              popper-class="bs-el-select"
               clearable
               filterable
               placeholder="请选择标签类型"
@@ -109,13 +114,17 @@
                 v-else
                 :label="label.id"
                 @change="labelCheckChange(label)"
-              >{{label.labelName}}</el-checkbox>
+              >
+                {{ label.labelName }}
+              </el-checkbox>
             </el-col>
           </el-row>
         </el-checkbox-group>
 
-        <div class="page-container">
+        <div class="bs-pagination">
           <el-pagination
+            class="bs-el-pagination"
+            popper-class="bs-el-pagination"
             :current-page="current"
             :page-size="sizeLabel"
             :page-sizes="[20, 40, 60, 80]"
@@ -127,7 +136,7 @@
           />
         </div>
 
-        <div align="center">
+        <div class="el-dialog__footer">
           <el-button @click="handleClose">
             取消
           </el-button>
@@ -141,8 +150,6 @@
       </div>
     </el-dialog>
   </div>
-
-
 </template>
 
 <script>
@@ -173,7 +180,7 @@ export default {
       idListCopy: this.idList,
       selectLabelList: [],
       // 初始选中的标签列表
-      selectLabelListInitial : [],
+      selectLabelListInitial: [],
       labelList: [],
       dialogFormVisible: false,
       searchForm: {
@@ -186,7 +193,7 @@ export default {
       labelCheckLoading: false
     }
   },
-  mounted() {
+  mounted () {
     // 根据数据集id获取关联的标签列表
     if (this.datasetId) {
       getLabelListByDatasetId(this.datasetId).then((data) => {
@@ -246,7 +253,7 @@ export default {
      */
     getDataList () {
       this.labelCheckLoading = true
-      let params = {
+      const params = {
         current: this.current,
         size: this.sizeLabel,
         labelName: this.searchForm.labelName,
@@ -263,7 +270,7 @@ export default {
     /**
      * 标签选项组选中事件
      */
-    labelCheckChange(label) {
+    labelCheckChange (label) {
       // 如果selectLabelList中包含id相同的项,则从selectLabelList中移除
       if (this.selectLabelList.some(item => item.id === label.id)) {
         this.selectLabelList = this.selectLabelList.filter(item => item.id !== label.id)
@@ -323,10 +330,10 @@ export default {
       if ((!str && typeof (str) !== 'undefined')) {
         return ''
       }
-      var num = 0
-      var str1 = str
+      let num = 0
+      const str1 = str
       var str = ''
-      for (var i = 0, lens = str1.length; i < lens; i++) {
+      for (let i = 0, lens = str1.length; i < lens; i++) {
         num += ((str1.charCodeAt(i) > 255) ? 2 : 1)
         if (num > len - 3) {
           break
@@ -335,11 +342,17 @@ export default {
         }
       }
       return str + '...'
-    },
+    }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-
+@import '../../assets/style/bsTheme.scss';
+.bs-pagination {
+  ::v-deep .el-input__inner {
+    border: none;
+    background: var(--bs-el-background-1);
+  }
+}
 </style>
diff --git a/data-room-ui/packages/DataSetLabelManagement/src/Tree/index.vue b/data-room-ui/packages/DataSetLabelManagement/src/Tree/index.vue
index fd059a34..d96e8946 100644
--- a/data-room-ui/packages/DataSetLabelManagement/src/Tree/index.vue
+++ b/data-room-ui/packages/DataSetLabelManagement/src/Tree/index.vue
@@ -1,6 +1,7 @@
 <template>
   <el-tree
     :ref="treeRef"
+    class="bs-el-tree"
     :data="treeData"
     :default-expand-all="expandAll"
     :expand-on-click-node="false"
@@ -21,20 +22,24 @@
       @mouseleave="mouseLeave(data)"
     >
       <span :style="data.children && data.children.length ? {} : {'padding-left': '12px'}">
-        <i :class="data.children && data.children.length ? 'el-icon el-icon-folder': 'el-icon el-icon-document'"
-           style="margin-right: 8px;"></i>
+        <i
+          :class="data.children && data.children.length ? 'el-icon el-icon-folder': 'el-icon el-icon-document'"
+          style="margin-right: 8px;"
+        />
         <span class="nodeText">{{ data.name }}</span>
       </span>
-      <span v-if="optionShow" class="options">
+      <span
+        v-if="optionShow"
+        class="options"
+      >
         <el-dropdown @command="(command) => { treeCommand(command, data) }">
-          <i class="el-icon-more"></i>
+          <i class="el-icon-more" />
           <el-dropdown-menu slot="dropdown">
-            <slot name="options"></slot>
+            <slot name="options" />
           </el-dropdown-menu>
         </el-dropdown>
       </span>
     </span>
-
   </el-tree>
 </template>
 
@@ -67,7 +72,7 @@ export default {
       default: false
     }
   },
-  data() {
+  data () {
     return {
       defaultProps: {
         children: 'children',
@@ -76,35 +81,35 @@ export default {
     }
   },
   watch: {
-    'treeData': function (val) {
+    treeData: function (val) {
       // console.log('valx', val)
     },
-    filterText(val) {
+    filterText (val) {
       this.$refs[this.treeRef].filter(val)
     }
   },
   methods: {
-    treeCommand(command, nodeData) {
+    treeCommand (command, nodeData) {
       this.$emit('treeCommand', command, nodeData)
     },
-    filterNode(value, data) {
+    filterNode (value, data) {
       if (!value) return true
       return data.name.indexOf(value) !== -1
     },
     // 节点点击
-    handleNodeClick(row, value) {
+    handleNodeClick (row, value) {
       this.$emit('handleNodeClick', row, value)
     },
     // 节点右键
-    rihgtClick(event, object, value, element) {
+    rihgtClick (event, object, value, element) {
       this.$emit('rihgtClick', event, object, value, element)
     },
-    mouseEnter(data) {
+    mouseEnter (data) {
       // this.$set(data, 'show', true)
       // 弹射节点数据
       this.$emit('mouseEnter', data)
     },
-    mouseLeave(data) {
+    mouseLeave (data) {
       // this.$set(data, 'show', false)
     }
   }
diff --git a/data-room-ui/packages/DataSetLabelManagement/src/index.vue b/data-room-ui/packages/DataSetLabelManagement/src/index.vue
index 946c34b1..7099074c 100644
--- a/data-room-ui/packages/DataSetLabelManagement/src/index.vue
+++ b/data-room-ui/packages/DataSetLabelManagement/src/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="db-container">
+  <div class="bs-container">
     <div
       v-if="labelVisible"
       class="inner-container"
@@ -13,9 +13,9 @@
           class="filter-item"
           prop="labelName"
         >
-          标签名称
           <el-input
             v-model="queryForm.labelName"
+            class="bs-el-input"
             clearable
             placeholder="请输入标签名称"
             @clear="reSearch()"
@@ -26,11 +26,12 @@
           class="filter-item"
           prop="labelType"
         >
-          标签类型
           <el-select
             v-model="queryForm.labelType"
             clearable
             filterable
+            class="bs-el-select"
+            popper-class="bs-el-select"
             placeholder="请选择标签类型"
             @change="reSearch()"
           >
@@ -50,11 +51,13 @@
               </span>
               <span style="float: right;padding-right: 20px">
                 <el-button
+                  class="bs-el-button-default"
                   icon="el-icon-edit"
                   type="text"
                   @click.stop="editLabelType(labelType)"
                 />
                 <el-button
+                  class="bs-el-button-default"
                   icon="el-icon-delete"
                   type="text"
                   @click.stop="deleteLabelType(labelType)"
@@ -78,19 +81,20 @@
         >
           <el-button
             type="primary"
+            class="bs-el-button-default"
             @click="addOrUpdateLabel(undefined)"
           >
             新增
           </el-button>
         </el-form-item>
       </el-form>
-      <div class="db-table-box">
+      <div class="bs-table-box">
         <el-table
           v-table
           v-loading="dataListLoading"
           height="0"
           :data="tableData"
-          class="db-el-table db-scrollbar"
+          class="bs-el-table bs-scrollbar"
           :element-loading-text="loadingText"
           :header-cell-style="sortStyle"
           @sort-change="reSort"
@@ -117,15 +121,20 @@
             width="200"
           >
             <template slot-scope="scope">
-              <el-button @click="getDetail(scope.row)">
+              <el-button
+                class="bs-el-button-default"
+                @click="getDetail(scope.row)"
+              >
                 详情
               </el-button>
               <el-button
+                class="bs-el-button-default"
                 @click="addOrUpdateLabel(scope.row)"
               >
                 编辑
               </el-button>
               <el-button
+                class="bs-el-button-default"
                 @click="handleDelete(scope.row.id)"
               >
                 删除
@@ -134,10 +143,10 @@
           </el-table-column>
         </el-table>
       </div>
-      <div class="db-pagination">
+      <div class="bs-pagination">
         <el-pagination
-          class="db-el-pagination"
-          popper-class="db-el-pagination"
+          class="bs-el-pagination"
+          popper-class="bs-el-pagination"
           :current-page="current"
           :next-text="nextText"
           :page-size="size"
@@ -161,8 +170,7 @@
     />
     <label-config-details
       ref="LabelConfigDetails"
-    >
-    </label-config-details>
+    />
   </div>
 </template>
 
@@ -291,7 +299,13 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-::v-deep .el-table{
-  border-color: var(--db-el-border) !important;
-}
+@import '../../assets/style/bsTheme.scss';
+
+.bs-pagination {
+    ::v-deep .el-input__inner {
+      width: 110px !important;
+      border: none;
+      background: var(--bs-el-background-1);
+    }
+  }
 </style>
diff --git a/data-room-ui/packages/DataSetManagement/src/CustomEditForm.vue b/data-room-ui/packages/DataSetManagement/src/CustomEditForm.vue
index 30d823b0..f1c27b2c 100644
--- a/data-room-ui/packages/DataSetManagement/src/CustomEditForm.vue
+++ b/data-room-ui/packages/DataSetManagement/src/CustomEditForm.vue
@@ -160,8 +160,7 @@
                     :dataset-id="datasetId"
                     :id-list="dataForm.labelIds"
                     @commit="(ids) =>{dataForm.labelIds = ids}"
-                  >
-                  </label-select>
+                  />
                 </el-form-item>
               </el-col>
             </el-row>
diff --git a/data-room-ui/packages/DataSetManagement/src/index.vue b/data-room-ui/packages/DataSetManagement/src/index.vue
index aa580f48..b339156d 100644
--- a/data-room-ui/packages/DataSetManagement/src/index.vue
+++ b/data-room-ui/packages/DataSetManagement/src/index.vue
@@ -78,8 +78,9 @@
             prop="labelIds"
           >
             <el-select
-              class="bs-el-select"
               v-model="queryForm.labelIds"
+              class="bs-el-select"
+              popper-class="bs-el-select"
               clearable
               filterable
               multiple
@@ -92,7 +93,7 @@
                 :key="labelItem.id"
                 :label="labelItem.labelName"
                 :value="labelItem.id"
-              ></el-option>
+              />
             </el-select>
           </el-form-item>
           <el-form-item class="filter-item">
@@ -276,9 +277,9 @@ export default {
       type: [Array, Object],
       default: null
     },
-    dataSetList:{
-      type:[Array, Object],
-      default:()=>[]
+    dataSetList: {
+      type: [Array, Object],
+      default: () => []
     },
     appCode: {
       type: String,
@@ -328,9 +329,9 @@ export default {
       }
     }
   },
-  computed:{
-    allType(){
-      return this.datasetTypeList.map(item=>item.datasetType).filter(item=>item!='')
+  computed: {
+    allType () {
+      return this.datasetTypeList.map(item => item.datasetType).filter(item => item != '')
     }
   },
   watch: {
@@ -489,18 +490,18 @@ export default {
         }
       }
       this.current = 1
-      const list=[
-          { name: '全部', datasetType: '' },
-          { name: '原始数据集', datasetType: 'original', componentName: 'OriginalEditForm' },
-          { name: '自助数据集', datasetType: 'custom', componentName: 'CustomEditForm' },
-          { name: '存储过程数据集', datasetType: 'storedProcedure', componentName: 'StoredProcedureEditForm' },
-          { name: 'JSON数据集', datasetType: 'json', componentName: 'JsonEditForm' },
-          { name: '脚本数据集', datasetType: 'script', componentName: 'ScriptEditForm' },
-          { name: 'JS数据集', datasetType: 'js', componentName: 'JsDataSet' }
-        ]
-      if(this.dataSetList.length!=0){
-        this.datasetTypeList=[{ name: '全部', datasetType: '' },...list.filter(item=>this.dataSetList.findIndex(x=>x===item.datasetType)!==-1)]
-      }else{
+      const list = [
+        { name: '全部', datasetType: '' },
+        { name: '原始数据集', datasetType: 'original', componentName: 'OriginalEditForm' },
+        { name: '自助数据集', datasetType: 'custom', componentName: 'CustomEditForm' },
+        { name: '存储过程数据集', datasetType: 'storedProcedure', componentName: 'StoredProcedureEditForm' },
+        { name: 'JSON数据集', datasetType: 'json', componentName: 'JsonEditForm' },
+        { name: '脚本数据集', datasetType: 'script', componentName: 'ScriptEditForm' },
+        { name: 'JS数据集', datasetType: 'js', componentName: 'JsDataSet' }
+      ]
+      if (this.dataSetList.length != 0) {
+        this.datasetTypeList = [{ name: '全部', datasetType: '' }, ...list.filter(item => this.dataSetList.findIndex(x => x === item.datasetType) !== -1)]
+      } else {
         this.datasetTypeList = [
           ...list
         ]
@@ -534,7 +535,7 @@ export default {
         size: this.size,
         moduleCode: this.appCode,
         ...this.queryForm,
-        datasetType:this.queryForm.datasetType===''?[...this.allType]:[this.queryForm.datasetType]
+        datasetType: this.queryForm.datasetType === '' ? [...this.allType] : [this.queryForm.datasetType]
       }).then((data) => {
         this.tableData = data.list
         if (this.isDialog) {
@@ -731,4 +732,8 @@ export default {
   width: 100%;
   height: 100%;
 }
+
+::v-deep .el-table__body-wrapper{
+  max-height: unset !important;
+}
 </style>
diff --git a/data-room-ui/packages/assets/style/bsTheme.scss b/data-room-ui/packages/assets/style/bsTheme.scss
index 7691e5af..1bd86435 100644
--- a/data-room-ui/packages/assets/style/bsTheme.scss
+++ b/data-room-ui/packages/assets/style/bsTheme.scss
@@ -634,3 +634,12 @@
     color: var(--bs-el-color-primary) !important;
   }
 }
+
+
+.bs-el-divider{
+    background-color: var(--bs-background-1) !important;
+    .el-divider__text.is-left{
+      background-color: var(--bs-background-1) !important;
+      color: var(--bs-el-text) !important;
+    }  // background-color: var(--bs-background-2);
+}
\ No newline at end of file
diff --git a/data-room-ui/public/config/index-development.js b/data-room-ui/public/config/index-development.js
index 67c95da5..87f4c10c 100644
--- a/data-room-ui/public/config/index-development.js
+++ b/data-room-ui/public/config/index-development.js
@@ -1,6 +1,6 @@
 window.ENV = 'development'
 var developmentConfig = {
-  baseUrl: 'http://gcpaas.gccloud.com/bigScreenServer'
+  baseUrl: 'http://127.0.0.1:8081/bigScreenServer'
 }
 // 必须的
 window.CONFIG = configDeepMerge(window.CONFIG, developmentConfig)