diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java
index 52598388..3ee7c644 100644
--- a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java
+++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java
@@ -54,7 +54,7 @@ import java.util.stream.Collectors;
 @Slf4j
 public class DashBoardServiceImpl implements DashBoardService {
 
-    public static final String URL = "http://{0}:{1}/dashboard/consumer/bucket";
+    public static final String URL = "http://{0}:{1}/{2}/dashboard/consumer/bucket";
 
     @Autowired
     private ServerNodeMapper serverNodeMapper;
@@ -180,7 +180,8 @@ public class DashBoardServiceImpl implements DashBoardService {
             ServerNodeExtAttrs serverNodeExtAttrs = JsonUtil.parseObject(serverNodeResponseVO.getExtAttrs(), ServerNodeExtAttrs.class);
             try {
                 // 从远程节点取
-                String format = MessageFormat.format(URL, serverNodeResponseVO.getHostIp(), serverNodeExtAttrs.getWebPort().toString());
+                String format = MessageFormat
+                        .format(URL, serverNodeResponseVO.getHostIp(), serverNodeExtAttrs.getWebPort().toString(), serverNodeResponseVO.getContextPath());
                 Result<List<Integer>> result = restTemplate.getForObject(format, Result.class);
                 List<Integer> data = result.getData();
                 if (!CollectionUtils.isEmpty(data)) {
diff --git a/frontend/src/views/config/GroupList.vue b/frontend/src/views/config/GroupList.vue
index a857664d..7e964bf0 100644
--- a/frontend/src/views/config/GroupList.vue
+++ b/frontend/src/views/config/GroupList.vue
@@ -37,7 +37,7 @@
       :data="loadData"
       :alert="options.alert"
       :rowSelection="options.rowSelection"
-      :scroll="{ x: 1600 }"
+      :scroll="{ x: 1800 }"
     >
       <span slot="groupName" slot-scope="text, record">
         <a href="#" @click="handlerOpenDrawer(record)">{{ text }}</a>
@@ -119,8 +119,8 @@ export default {
         {
           title: '名称',
           dataIndex: 'groupName',
-          scopedSlots: { customRender: 'groupName' }
-
+          scopedSlots: { customRender: 'groupName' },
+          fixed: 'left'
         },
         {
           title: '状态',
diff --git a/frontend/src/views/job/JobBatchList.vue b/frontend/src/views/job/JobBatchList.vue
index b1e42284..89d3fd15 100644
--- a/frontend/src/views/job/JobBatchList.vue
+++ b/frontend/src/views/job/JobBatchList.vue
@@ -87,7 +87,7 @@
       :data="loadData"
       :alert="options.alert"
       :rowSelection="options.rowSelection"
-      :scroll="{ x: 1800 }"
+      :scroll="{ x: 1500 }"
     >
       <span slot="serial" slot-scope="record">
         <a href="#" @click="handlerOpenDrawer(record)">{{ record.id }}</a>
@@ -168,7 +168,7 @@ export default {
         {
           title: 'ID',
           scopedSlots: { customRender: 'serial' },
-          width: '5%'
+          fixed: 'left'
         },
         {
           title: '组名称',
@@ -185,7 +185,7 @@ export default {
         {
           title: '开始执行时间',
           dataIndex: 'executionAt',
-          width: '10%'
+          width: '15%'
         },
         {
           title: '状态',
@@ -203,7 +203,7 @@ export default {
           title: '创建时间',
           dataIndex: 'createDt',
           sorter: true,
-          width: '10%'
+          width: '15%'
         },
         {
           title: '操作',
diff --git a/frontend/src/views/job/JobList.vue b/frontend/src/views/job/JobList.vue
index 33a59761..9fca8e88 100644
--- a/frontend/src/views/job/JobList.vue
+++ b/frontend/src/views/job/JobList.vue
@@ -76,7 +76,7 @@
       :rowKey="(record) => record.id"
       :columns="columns"
       :data="loadData"
-      :scroll="{ x: 2000 }"
+      :scroll="{ x: 1800 }"
     >
       <span slot="serial" slot-scope="text, record">
         {{ record.id }}
@@ -212,23 +212,24 @@ export default {
         {
           title: 'ID',
           scopedSlots: { customRender: 'serial' },
-          width: '4%'
+          fixed: 'left'
+        },
+        {
+          title: '任务名称',
+          dataIndex: 'jobName',
+          scopedSlots: { customRender: 'jobName' },
+          ellipsis: true,
+          fixed: 'left'
         },
         {
           title: '组名称',
           dataIndex: 'groupName',
           width: '10%'
         },
-        {
-          title: '任务名称',
-          dataIndex: 'jobName',
-          scopedSlots: { customRender: 'jobName' },
-          ellipsis: true,
-          width: '10%'
-        },
         {
           title: '触发时间',
           dataIndex: 'nextTriggerAt',
+          width: '10%',
           ellipsis: true
         },
         {
diff --git a/frontend/src/views/job/JobNotifyList.vue b/frontend/src/views/job/JobNotifyList.vue
index 7642084d..39aa60a9 100644
--- a/frontend/src/views/job/JobNotifyList.vue
+++ b/frontend/src/views/job/JobNotifyList.vue
@@ -114,14 +114,14 @@ export default {
           title: '组名',
           dataIndex: 'groupName',
           key: 'groupName',
-          width: '10%',
+          width: '15%',
           scopedSlots: { customRender: 'groupName' }
         },
         {
           title: '任务',
           dataIndex: 'jobName',
           key: 'jobName',
-          width: '10%',
+          width: '15%',
           scopedSlots: { customRender: 'jobName' }
         },
         {
@@ -141,7 +141,7 @@ export default {
           title: '通知场景',
           dataIndex: 'notifyScene',
           key: 'notifyScene',
-          width: '10%',
+          width: '15%',
           scopedSlots: { customRender: 'notifyScene' }
         },
         {
@@ -155,7 +155,7 @@ export default {
           title: '描述',
           dataIndex: 'description',
           key: 'description',
-          width: '20%',
+          width: '15%',
           scopedSlots: { customRender: 'description' }
         },
         {