Browse Source

版本日历

qinqiao_v@didichuxing.com 5 years ago
parent
commit
502de8f03d

+ 2 - 0
package.json

@@ -15,6 +15,8 @@
     "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
     "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
   },
   },
   "dependencies": {
   "dependencies": {
+    "@fullcalendar/core": "^4.3.1",
+    "@fullcalendar/daygrid": "^4.3.0",
     "axios": "^0.19.0",
     "axios": "^0.19.0",
     "dayjs": "^1.8.17",
     "dayjs": "^1.8.17",
     "echarts": "^4.2.1",
     "echarts": "^4.2.1",

+ 67 - 0
src/api/versionsCalendar.js

@@ -0,0 +1,67 @@
+import request from '@/utils/request'
+import { mockUrl } from '@/apiConfig/api'
+
+// 列表
+export function getEvent(id) {
+  return request({
+    url: mockUrl + `/VersionSchedule/listByVersionId?id=` + id,
+    method: 'get'
+  })
+}
+// 获取客户端
+export function showAppClientEnum() {
+  return request({
+    url: mockUrl + `/config/showAppClientEnum`,
+    method: 'get'
+  })
+}
+// 首页获取排期
+export function listByVersionType(type) {
+  return request({
+    url: mockUrl + `/VersionSchedule/listByVersionTypeV2?type=` + type,
+    method: 'get'
+  })
+}
+
+// 新增版本
+export function createVersion(data) {
+  return request({
+    url: mockUrl + `/Version/create`,
+    method: 'post',
+    data
+  })
+}
+// 根据端类型获取所有版本
+export function listByType(type) {
+  return request({
+    url: mockUrl + `/Version/listByType?type=` + type,
+    method: 'get'
+  })
+}
+
+// 删除版本
+export function deleteVersion(id, data) {
+  return request({
+    url: mockUrl + `/Version/delete?id=` + id,
+    method: 'post',
+    data
+  })
+}
+
+// 新增事件
+export function createEvent(data) {
+  return request({
+    url: mockUrl + `/VersionSchedule/create`,
+    method: 'post',
+    data
+  })
+}
+
+// 删除事件
+export function deleteEvent(id, data) {
+  return request({
+    url: mockUrl + `/VersionSchedule/delete?id=` + id,
+    method: 'post',
+    data
+  })
+}

+ 1 - 1
src/apiConfig/api.js

@@ -1,5 +1,5 @@
 /*eslint-disable*/ //规避eslint的检查,如没有eslint可不写
 /*eslint-disable*/ //规避eslint的检查,如没有eslint可不写
-export const mockUrl = 'http://10.179.24.176:8980' // 线下
+export const mockUrl = 'http://10.179.24.176:8990' // 线下
   // export const mockUrl = 'http://10.179.24.123:8980' // 线上
   // export const mockUrl = 'http://10.179.24.123:8980' // 线上
 
 
 // export const mockUrl = 'http://172.23.162.226:8980' // 舒宁本地
 // export const mockUrl = 'http://172.23.162.226:8980' // 舒宁本地

+ 219 - 152
src/router/index.js

@@ -1,4 +1,3 @@
-
 import Vue from 'vue'
 import Vue from 'vue'
 import Router from 'vue-router'
 import Router from 'vue-router'
 
 
@@ -34,16 +33,17 @@ import Home from '@/views/home/index'
  * a base page that does not have permission requirements
  * a base page that does not have permission requirements
  * all roles can be accessed
  * all roles can be accessed
  */
  */
-export const constantRoutes = [
-  {
+export const constantRoutes = [{
     path: '/login',
     path: '/login',
-    component: () => import('@/views/login/index'),
+    component: () =>
+      import ('@/views/login/index'),
     hidden: true
     hidden: true
   },
   },
 
 
   {
   {
     path: '/404',
     path: '/404',
-    component: () => import('@/views/404'),
+    component: () =>
+      import ('@/views/404'),
     hidden: true
     hidden: true
   },
   },
 
 
@@ -77,108 +77,128 @@ export const constantRoutes = [
     redirect: '/Platform/useCasePage',
     redirect: '/Platform/useCasePage',
     name: '质惠平台',
     name: '质惠平台',
     meta: { title: '质惠平台', icon: '质惠平台' },
     meta: { title: '质惠平台', icon: '质惠平台' },
-    children: [
-      {
+    children: [{
         path: '/Platform/projectManage',
         path: '/Platform/projectManage',
         name: '项目管理',
         name: '项目管理',
-        component: () => import('@/views/projectManage/projectList/testa'),
+        component: () =>
+          import ('@/views/projectManage/projectList/testa'),
         redirect: '/Platform/projectManage/projectList/projectIndex',
         redirect: '/Platform/projectManage/projectList/projectIndex',
         meta: { title: '项目管理', icon: '项目管理' },
         meta: { title: '项目管理', icon: '项目管理' },
-        children: [
-          {
+        children: [{
             path: 'projectIndex',
             path: 'projectIndex',
             name: '项目列表',
             name: '项目列表',
-            component: () => import('@/views/projectManage/projectList/projectIndex'),
+            component: () =>
+              import ('@/views/projectManage/projectList/projectIndex'),
             meta: { title: '项目' }
             meta: { title: '项目' }
           },
           },
           {
           {
             path: 'projectViewDetails',
             path: 'projectViewDetails',
             name: '项目详情',
             name: '项目详情',
-            component: () => import('@/views/projectManage/projectList/projectViewDetails'),
+            component: () =>
+              import ('@/views/projectManage/projectList/projectViewDetails'),
             meta: { title: '项目详情' }
             meta: { title: '项目详情' }
           },
           },
           {
           {
             path: 'projectList',
             path: 'projectList',
             name: '项目列表',
             name: '项目列表',
             // hidden: true,
             // hidden: true,
-            component: () => import('@/views/projectManage/projectList/projectListIndex'),
+            component: () =>
+              import ('@/views/projectManage/projectList/projectListIndex'),
             meta: { title: '项目列表' }
             meta: { title: '项目列表' }
           },
           },
           {
           {
             path: 'projectCreate',
             path: 'projectCreate',
             hidden: true,
             hidden: true,
             name: '项目创建',
             name: '项目创建',
-            component: () => import('@/views/projectManage/projectList/projectCreate'),
+            component: () =>
+              import ('@/views/projectManage/projectList/projectCreate'),
             meta: { title: '项目创建' }
             meta: { title: '项目创建' }
           },
           },
           {
           {
             path: 'projectPreview',
             path: 'projectPreview',
             hidden: true,
             hidden: true,
             name: '项目查看',
             name: '项目查看',
-            component: () => import('@/views/projectManage/projectList/projectPreview'),
+            component: () =>
+              import ('@/views/projectManage/projectList/projectPreview'),
             meta: { title: '项目查看' }
             meta: { title: '项目查看' }
           },
           },
           {
           {
             path: 'taskList',
             path: 'taskList',
             name: '任务列表',
             name: '任务列表',
-            component: () => import('@/views/projectManage/taskList/taskListIndex'),
+            component: () =>
+              import ('@/views/projectManage/taskList/taskListIndex'),
             meta: { title: '任务列表' }
             meta: { title: '任务列表' }
           },
           },
           {
           {
             path: 'taskCreate',
             path: 'taskCreate',
             hidden: true,
             hidden: true,
             name: '任务创建',
             name: '任务创建',
-            component: () => import('@/views/projectManage/taskList/taskCreate'),
+            component: () =>
+              import ('@/views/projectManage/taskList/taskCreate'),
             meta: { title: '任务创建' }
             meta: { title: '任务创建' }
           },
           },
           {
           {
             path: 'taskPreview',
             path: 'taskPreview',
             hidden: true,
             hidden: true,
             name: '任务查看',
             name: '任务查看',
-            component: () => import('@/views/projectManage/taskList/taskPreview'),
+            component: () =>
+              import ('@/views/projectManage/taskList/taskPreview'),
             meta: { title: '任务查看' }
             meta: { title: '任务查看' }
           },
           },
           {
           {
             path: 'taskUpdate',
             path: 'taskUpdate',
             hidden: true,
             hidden: true,
             name: '任务更新',
             name: '任务更新',
-            component: () => import('@/views/projectManage/taskList/taskUpdateCreate'),
+            component: () =>
+              import ('@/views/projectManage/taskList/taskUpdateCreate'),
             meta: { title: '任务更新' }
             meta: { title: '任务更新' }
+          },
+          {
+            path: 'versionsCalendar',
+            // hidden: true,
+            name: '版本日历',
+            component: () =>
+              import ('@/views/projectManage/taskList/versionsCalendar'),
+            meta: { title: '版本日历' }
           }
           }
         ]
         ]
       },
       },
       {
       {
         path: '/Platform/useCasePage',
         path: '/Platform/useCasePage',
         name: '测试计划管理',
         name: '测试计划管理',
-        component: () => import('@/views/Platform/useCasePage'),
+        component: () =>
+          import ('@/views/Platform/useCasePage'),
         meta: { title: '测试计划管理' },
         meta: { title: '测试计划管理' },
-        children: [
-          {
+        children: [{
             path: 'useCasePage',
             path: 'useCasePage',
             name: '用例管理',
             name: '用例管理',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/useCasePage'),
+            component: () =>
+              import ('@/views/Platform/useCasePage'),
             meta: { title: '用例管理' }
             meta: { title: '用例管理' }
           },
           },
           {
           {
             path: 'createUse',
             path: 'createUse',
             name: '用例新增',
             name: '用例新增',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/useCase/createUse'),
+            component: () =>
+              import ('@/views/Platform/useCase/createUse'),
             meta: { title: '用例新增' }
             meta: { title: '用例新增' }
           },
           },
           {
           {
             path: 'queryUse',
             path: 'queryUse',
             name: '用例查看',
             name: '用例查看',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/useCase/queryUse'),
+            component: () =>
+              import ('@/views/Platform/useCase/queryUse'),
             meta: { title: '用例查看' }
             meta: { title: '用例查看' }
           },
           },
           {
           {
             path: 'testPageData',
             path: 'testPageData',
             name: '测试计划',
             name: '测试计划',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/testPage.vue'),
+            component: () =>
+              import ('@/views/Platform/testPage.vue'),
             meta: { title: '测试计划' }
             meta: { title: '测试计划' }
           }
           }
         ]
         ]
@@ -188,85 +208,96 @@ export const constantRoutes = [
         path: '/Platform/presentation',
         path: '/Platform/presentation',
         name: '报告管理',
         name: '报告管理',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/Platform/presentation/testa'),
+        component: () =>
+          import ('@/views/Platform/presentation/testa'),
         redirect: '/Platform/presentation/testPresentation',
         redirect: '/Platform/presentation/testPresentation',
         meta: { title: '报告管理' },
         meta: { title: '报告管理' },
-        children: [
-          {
+        children: [{
             path: 'testPresentation',
             path: 'testPresentation',
             name: '日报报告',
             name: '日报报告',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/testPresentation'),
+            component: () =>
+              import ('@/views/Platform/presentation/testPresentation'),
             meta: { title: '日报报告' }
             meta: { title: '日报报告' }
           },
           },
           {
           {
             path: 'ResultPage',
             path: 'ResultPage',
             name: '准出报告',
             name: '准出报告',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/ResultPage'),
+            component: () =>
+              import ('@/views/Platform/presentation/ResultPage'),
             meta: { title: '准出报告' }
             meta: { title: '准出报告' }
           },
           },
           {
           {
             path: 'Assumptions',
             path: 'Assumptions',
             name: '提测报告',
             name: '提测报告',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/Assumptions'),
+            component: () =>
+              import ('@/views/Platform/presentation/Assumptions'),
             meta: { title: '提测报告' }
             meta: { title: '提测报告' }
           },
           },
           {
           {
             path: 'DailyNewsAdded',
             path: 'DailyNewsAdded',
             name: '日报报告',
             name: '日报报告',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/DailyNewsAdded'),
+            component: () =>
+              import ('@/views/Platform/presentation/DailyNewsAdded'),
             meta: { title: '新增日报报告' }
             meta: { title: '新增日报报告' }
           },
           },
           {
           {
             path: 'presentationReport',
             path: 'presentationReport',
             name: '提测报告',
             name: '提测报告',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/presentationReport'),
+            component: () =>
+              import ('@/views/Platform/presentation/presentationReport'),
             meta: { title: '新增服务器提测报告' }
             meta: { title: '新增服务器提测报告' }
           },
           },
           {
           {
             path: 'acceptTheReport',
             path: 'acceptTheReport',
             name: '提测预览',
             name: '提测预览',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/acceptTheReport'),
+            component: () =>
+              import ('@/views/Platform/presentation/acceptTheReport'),
             meta: { title: '提测预览' }
             meta: { title: '提测预览' }
           },
           },
           {
           {
             path: 'testPresenyL',
             path: 'testPresenyL',
             name: '日报预览',
             name: '日报预览',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/testPresenyL'),
+            component: () =>
+              import ('@/views/Platform/presentation/testPresenyL'),
             meta: { title: '日报预览' }
             meta: { title: '日报预览' }
           },
           },
           {
           {
             path: 'ResultPageyL',
             path: 'ResultPageyL',
             name: '准出预览',
             name: '准出预览',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/ResultPageyL'),
+            component: () =>
+              import ('@/views/Platform/presentation/ResultPageyL'),
             meta: { title: '准出预览' }
             meta: { title: '准出预览' }
           },
           },
           {
           {
             path: 'Acceptance',
             path: 'Acceptance',
             name: '准出报告',
             name: '准出报告',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/Acceptance'),
+            component: () =>
+              import ('@/views/Platform/presentation/Acceptance'),
             meta: { title: '准出报告,新增服务器端报告' }
             meta: { title: '准出报告,新增服务器端报告' }
           },
           },
           {
           {
             path: 'ClientAcceptance',
             path: 'ClientAcceptance',
             name: '准出报告',
             name: '准出报告',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/ClientAcceptance'),
+            component: () =>
+              import ('@/views/Platform/presentation/ClientAcceptance'),
             meta: { title: '准出报告,新增客户端报告' }
             meta: { title: '准出报告,新增客户端报告' }
           },
           },
           {
           {
             path: 'PresentReport',
             path: 'PresentReport',
             name: '提测报告,新增报告',
             name: '提测报告,新增报告',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/presentation/PresentReport'),
+            component: () =>
+              import ('@/views/Platform/presentation/PresentReport'),
             meta: { title: '新增客户端提测报告' }
             meta: { title: '新增客户端提测报告' }
           }
           }
         ]
         ]
@@ -275,28 +306,32 @@ export const constantRoutes = [
         path: '/Platform/defectManagement',
         path: '/Platform/defectManagement',
         name: '缺陷管理',
         name: '缺陷管理',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/Platform/defectManagement'),
+        component: () =>
+          import ('@/views/Platform/defectManagement'),
         meta: { title: '缺陷管理' }
         meta: { title: '缺陷管理' }
       },
       },
       {
       {
         path: '/Platform/defectManagement/bugCreate',
         path: '/Platform/defectManagement/bugCreate',
         name: '新建Bug',
         name: '新建Bug',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/Platform/bugManage/bugCreate'),
+        component: () =>
+          import ('@/views/Platform/bugManage/bugCreate'),
         meta: { title: '新建Bug' }
         meta: { title: '新建Bug' }
       },
       },
       {
       {
         path: '/Platform/defectManagement/bugQuery',
         path: '/Platform/defectManagement/bugQuery',
         name: '查看Bug',
         name: '查看Bug',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/Platform/bugManage/bugQuery'),
+        component: () =>
+          import ('@/views/Platform/bugManage/bugQuery'),
         meta: { title: '查看Bug' }
         meta: { title: '查看Bug' }
       },
       },
       {
       {
         path: '/Platform/defectManagement/bugUpdate',
         path: '/Platform/defectManagement/bugUpdate',
         name: '更新Bug',
         name: '更新Bug',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/Platform/bugManage/bugUpdate'),
+        component: () =>
+          import ('@/views/Platform/bugManage/bugUpdate'),
         meta: { title: '更新Bug' }
         meta: { title: '更新Bug' }
       },
       },
       {
       {
@@ -305,66 +340,75 @@ export const constantRoutes = [
         name: '设置',
         name: '设置',
         hidden: true,
         hidden: true,
         // meta: { title: '设置' },
         // meta: { title: '设置' },
-        component: () => import('@/views/Platform/setUp/testa'),
+        component: () =>
+          import ('@/views/Platform/setUp/testa'),
         meta: { title: '设置' },
         meta: { title: '设置' },
         children: [{
         children: [{
-          path: 'systemSetup',
-          name: '系统设置',
-          hidden: true,
-          component: () => import('@/views/Platform/setUp/systemSetup/testa'),
-          meta: { title: '系统设置' },
-          children: [{
-            path: 'bizPage',
-            name: '业务线',
-            hidden: true,
-            component: () => import('@/views/Platform/setUp/systemSetup/bizPage'),
-            meta: { title: '业务线' }
-          },
-          {
-            path: 'platformPage',
-            name: '平台类型',
-            hidden: true,
-            component: () => import('@/views/Platform/setUp/systemSetup/platformPage'),
-            meta: { title: '平台类型' }
-          },
-          {
-            path: 'modulePage',
-            name: '业务模块',
+            path: 'systemSetup',
+            name: '系统设置',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/setUp/systemSetup/modulePage'),
-            meta: { title: '业务模块' }
-          },
-          {
-            path: 'projectPage',
-            name: '工程模块',
-            hidden: true,
-            component: () => import('@/views/Platform/setUp/systemSetup/projectPage'),
-            meta: { title: '工程模块' }
-          },
-          {
-            path: 'confList',
-            name: '业务配置列表',
-            hidden: true,
-            component: () => import('@/views/Platform/setUp/systemSetup/confList'),
-            meta: { title: '业务配置列表' }
+            component: () =>
+              import ('@/views/Platform/setUp/systemSetup/testa'),
+            meta: { title: '系统设置' },
+            children: [{
+                path: 'bizPage',
+                name: '业务线',
+                hidden: true,
+                component: () =>
+                  import ('@/views/Platform/setUp/systemSetup/bizPage'),
+                meta: { title: '业务线' }
+              },
+              {
+                path: 'platformPage',
+                name: '平台类型',
+                hidden: true,
+                component: () =>
+                  import ('@/views/Platform/setUp/systemSetup/platformPage'),
+                meta: { title: '平台类型' }
+              },
+              {
+                path: 'modulePage',
+                name: '业务模块',
+                hidden: true,
+                component: () =>
+                  import ('@/views/Platform/setUp/systemSetup/modulePage'),
+                meta: { title: '业务模块' }
+              },
+              {
+                path: 'projectPage',
+                name: '工程模块',
+                hidden: true,
+                component: () =>
+                  import ('@/views/Platform/setUp/systemSetup/projectPage'),
+                meta: { title: '工程模块' }
+              },
+              {
+                path: 'confList',
+                name: '业务配置列表',
+                hidden: true,
+                component: () =>
+                  import ('@/views/Platform/setUp/systemSetup/confList'),
+                meta: { title: '业务配置列表' }
+              },
+              {
+                path: 'addConf',
+                name: '新增配置',
+                hidden: true,
+                component: () =>
+                  import ('@/views/Platform/setUp/systemSetup/addConf'),
+                meta: { title: '新增配置' }
+              }
+
+            ]
           },
           },
           {
           {
-            path: 'addConf',
-            name: '新增配置',
+            path: 'teamPage',
+            name: '团队设置',
             hidden: true,
             hidden: true,
-            component: () => import('@/views/Platform/setUp/systemSetup/addConf'),
-            meta: { title: '新增配置' }
+            component: () =>
+              import ('@/views/Platform/setUp/teamPage'),
+            meta: { title: '团队设置' }
           }
           }
-
-          ]
-        },
-        {
-          path: 'teamPage',
-          name: '团队设置',
-          hidden: true,
-          component: () => import('@/views/Platform/setUp/teamPage'),
-          meta: { title: '团队设置' }
-        }
         ]
         ]
       }
       }
     ]
     ]
@@ -375,11 +419,11 @@ export const constantRoutes = [
     component: Layout,
     component: Layout,
     redirect: '/Platform/Workbench/PersonalWorkbench',
     redirect: '/Platform/Workbench/PersonalWorkbench',
     meta: { title: '工作台', icon: '工作台' },
     meta: { title: '工作台', icon: '工作台' },
-    children: [
-      {
+    children: [{
         path: 'PersonalWorkbench',
         path: 'PersonalWorkbench',
         name: '个人工作台',
         name: '个人工作台',
-        component: () => import('@/views/Platform/Workbench/PersonalWorkbench'),
+        component: () =>
+          import ('@/views/Platform/Workbench/PersonalWorkbench'),
         meta: { title: '个人工作台' }
         meta: { title: '个人工作台' }
       },
       },
       {
       {
@@ -390,7 +434,8 @@ export const constantRoutes = [
         path: 'TeamWorkbench',
         path: 'TeamWorkbench',
         name: '团队工作台',
         name: '团队工作台',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/Platform/Workbench/TeamWorkbench'),
+        component: () =>
+          import ('@/views/Platform/Workbench/TeamWorkbench'),
         meta: { title: '团队工作台' }
         meta: { title: '团队工作台' }
       }
       }
     ]
     ]
@@ -403,54 +448,61 @@ export const constantRoutes = [
     redirect: '/env-platform/env',
     redirect: '/env-platform/env',
     name: '环境',
     name: '环境',
     meta: { title: '环境平台', icon: 'env_platform' },
     meta: { title: '环境平台', icon: 'env_platform' },
-    children: [
-      {
+    children: [{
         path: 'env',
         path: 'env',
         name: 'env',
         name: 'env',
-        component: () => import('@/views/env/index.vue'),
+        component: () =>
+          import ('@/views/env/index.vue'),
         meta: { title: '环境管理' }
         meta: { title: '环境管理' }
 
 
       },
       },
       {
       {
         path: 'businessline',
         path: 'businessline',
         name: 'businessline',
         name: 'businessline',
-        component: () => import('@/views/env/index.vue'),
+        component: () =>
+          import ('@/views/env/index.vue'),
         meta: { title: '业务线管理' }
         meta: { title: '业务线管理' }
       },
       },
       {
       {
         path: 'whitelist',
         path: 'whitelist',
         name: 'whitelist',
         name: 'whitelist',
-        component: () => import('@/views/env/index.vue'),
+        component: () =>
+          import ('@/views/env/index.vue'),
         meta: { title: '白名单管理' }
         meta: { title: '白名单管理' }
       },
       },
       {
       {
         path: 'module',
         path: 'module',
         name: 'module',
         name: 'module',
-        component: () => import('@/views/env/index.vue'),
+        component: () =>
+          import ('@/views/env/index.vue'),
         meta: { title: '模块管理' }
         meta: { title: '模块管理' }
       },
       },
       {
       {
         path: 'group',
         path: 'group',
         name: 'group',
         name: 'group',
-        component: () => import('@/views/env/index.vue'),
+        component: () =>
+          import ('@/views/env/index.vue'),
         meta: { title: 'Group管理' }
         meta: { title: 'Group管理' }
       },
       },
       {
       {
         path: 'topic',
         path: 'topic',
         name: 'topic',
         name: 'topic',
-        component: () => import('@/views/env/index.vue'),
+        component: () =>
+          import ('@/views/env/index.vue'),
         meta: { title: 'Topic管理' }
         meta: { title: 'Topic管理' }
       },
       },
       {
       {
         path: 'mq',
         path: 'mq',
         name: 'mq',
         name: 'mq',
-        component: () => import('@/views/env/index.vue'),
+        component: () =>
+          import ('@/views/env/index.vue'),
         meta: { title: 'MQ管理' }
         meta: { title: 'MQ管理' }
       },
       },
       {
       {
         path: 'data',
         path: 'data',
         name: 'data',
         name: 'data',
-        component: () => import('@/views/env/index.vue'),
+        component: () =>
+          import ('@/views/env/index.vue'),
         meta: { title: '数据统计' }
         meta: { title: '数据统计' }
       }
       }
     ]
     ]
@@ -463,31 +515,34 @@ export const constantRoutes = [
     redirect: '/mock/interface',
     redirect: '/mock/interface',
     name: 'Mock',
     name: 'Mock',
     meta: { title: 'Mock服务', icon: 'MQ' },
     meta: { title: 'Mock服务', icon: 'MQ' },
-    children: [
-      {
+    children: [{
         path: 'interface',
         path: 'interface',
         name: 'Interface',
         name: 'Interface',
-        component: () => import('@/views/mock/interface'),
+        component: () =>
+          import ('@/views/mock/interface'),
         meta: { title: 'dubbo mock' }
         meta: { title: 'dubbo mock' }
       },
       },
       {
       {
         path: 'interface/:rule',
         path: 'interface/:rule',
         name: 'Rule',
         name: 'Rule',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/mock/rule'),
+        component: () =>
+          import ('@/views/mock/rule'),
         meta: { title: 'dubbo规则' }
         meta: { title: 'dubbo规则' }
       },
       },
       {
       {
         path: 'httpmock',
         path: 'httpmock',
         name: 'httpmock',
         name: 'httpmock',
-        component: () => import('@/views/mock/httpmock'),
+        component: () =>
+          import ('@/views/mock/httpmock'),
         meta: { title: 'http mock' }
         meta: { title: 'http mock' }
       },
       },
       {
       {
         path: 'httpmock/:httprule',
         path: 'httpmock/:httprule',
         name: 'Httprule',
         name: 'Httprule',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/mock/httprule'),
+        component: () =>
+          import ('@/views/mock/httprule'),
         meta: { title: 'httpmock规则' }
         meta: { title: 'httpmock规则' }
       }
       }
     ]
     ]
@@ -500,17 +555,18 @@ export const constantRoutes = [
     redirect: '/data/upload-file',
     redirect: '/data/upload-file',
     name: '数据中心',
     name: '数据中心',
     meta: { title: '数据中心', icon: 'examlpe' },
     meta: { title: '数据中心', icon: 'examlpe' },
-    children: [
-      {
+    children: [{
         path: 'upload-file',
         path: 'upload-file',
         name: 'jar包管理',
         name: 'jar包管理',
-        component: () => import('@/views/data/upload.vue'),
+        component: () =>
+          import ('@/views/data/upload.vue'),
         meta: { title: 'jar包管理' }
         meta: { title: 'jar包管理' }
       },
       },
       {
       {
         path: 'item',
         path: 'item',
         name: '动态数据',
         name: '动态数据',
-        component: () => import('@/views/data/index.vue'),
+        component: () =>
+          import ('@/views/data/index.vue'),
         meta: { title: '动态数据' }
         meta: { title: '动态数据' }
       }
       }
     ]
     ]
@@ -523,24 +579,26 @@ export const constantRoutes = [
     redirect: '/virtualDevices/HTvehicle',
     redirect: '/virtualDevices/HTvehicle',
     name: '虚拟硬件',
     name: '虚拟硬件',
     meta: { title: '虚拟硬件', icon: 'zhiliangdapan' },
     meta: { title: '虚拟硬件', icon: 'zhiliangdapan' },
-    children: [
-      {
+    children: [{
         path: 'HTvehicle',
         path: 'HTvehicle',
         name: '单车',
         name: '单车',
-        component: () => import('@/views/virtualDevices/HTvehicle'),
+        component: () =>
+          import ('@/views/virtualDevices/HTvehicle'),
         meta: { title: '单车' }
         meta: { title: '单车' }
       },
       },
       {
       {
         path: 'ebike',
         path: 'ebike',
         name: '电单车',
         name: '电单车',
-        component: () => import('@/views/virtualDevices/HMvehicle.vue'),
+        component: () =>
+          import ('@/views/virtualDevices/HMvehicle.vue'),
         meta: { title: '电单车' }
         meta: { title: '电单车' }
       },
       },
       {
       {
         path: 'ebike/ebikeCreate',
         path: 'ebike/ebikeCreate',
         name: '新增电单车',
         name: '新增电单车',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/virtualDevices/HMvehicleCreate.vue'),
+        component: () =>
+          import ('@/views/virtualDevices/HMvehicleCreate.vue'),
         meta: { title: '新增电单车' }
         meta: { title: '新增电单车' }
       }
       }
     ]
     ]
@@ -553,17 +611,18 @@ export const constantRoutes = [
     redirect: '/online-quality/check-list',
     redirect: '/online-quality/check-list',
     name: '上线质检',
     name: '上线质检',
     meta: { title: '上线质检', icon: '上线质检' },
     meta: { title: '上线质检', icon: '上线质检' },
-    children: [
-      {
+    children: [{
         path: 'check-list',
         path: 'check-list',
         name: '模板管理',
         name: '模板管理',
-        component: () => import('@/views/online-quality/CheckConfig/index.vue'),
+        component: () =>
+          import ('@/views/online-quality/CheckConfig/index.vue'),
         meta: { title: '模板管理' }
         meta: { title: '模板管理' }
       },
       },
       {
       {
         path: 'history-task',
         path: 'history-task',
         name: '历史任务',
         name: '历史任务',
-        component: () => import('@/views/online-quality/HistoryTask/index.vue'),
+        component: () =>
+          import ('@/views/online-quality/HistoryTask/index.vue'),
         meta: { title: '历史任务' }
         meta: { title: '历史任务' }
       },
       },
       {
       {
@@ -571,13 +630,15 @@ export const constantRoutes = [
         props: true,
         props: true,
         name: '历史任务详情',
         name: '历史任务详情',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/online-quality/HistoryTask/taskDetails.vue'),
+        component: () =>
+          import ('@/views/online-quality/HistoryTask/taskDetails.vue'),
         meta: { title: '历史任务详情' }
         meta: { title: '历史任务详情' }
       },
       },
       {
       {
         path: 'block-server',
         path: 'block-server',
         name: '阻断服务',
         name: '阻断服务',
-        component: () => import('@/views/online-quality/BlockServer/index.vue'),
+        component: () =>
+          import ('@/views/online-quality/BlockServer/index.vue'),
         meta: { title: '阻断服务' }
         meta: { title: '阻断服务' }
       }
       }
     ]
     ]
@@ -591,59 +652,66 @@ export const constantRoutes = [
     redirect: '/quality/qualityMeasurement',
     redirect: '/quality/qualityMeasurement',
     name: '质量度量',
     name: '质量度量',
     meta: { title: '质量度量', icon: '质量度量' },
     meta: { title: '质量度量', icon: '质量度量' },
-    children: [
-      {
+    children: [{
         path: 'qualityMeasurement',
         path: 'qualityMeasurement',
         name: '质量大盘',
         name: '质量大盘',
-        component: () => import('@/views/quality/qualityMeasurement.vue'),
+        component: () =>
+          import ('@/views/quality/qualityMeasurement.vue'),
         meta: { title: '质量大盘' }
         meta: { title: '质量大盘' }
       },
       },
       {
       {
         path: 'qualityProcess',
         path: 'qualityProcess',
         name: '上线过程',
         name: '上线过程',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/quality/qualityProcess.vue'),
+        component: () =>
+          import ('@/views/quality/qualityProcess.vue'),
         meta: { title: '上线过程' }
         meta: { title: '上线过程' }
       },
       },
       {
       {
         path: 'qualityDefectProcess',
         path: 'qualityDefectProcess',
         name: '缺陷过程',
         name: '缺陷过程',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/quality/qualityDefectProcess.vue'),
+        component: () =>
+          import ('@/views/quality/qualityDefectProcess.vue'),
         meta: { title: '缺陷过程' }
         meta: { title: '缺陷过程' }
       },
       },
       {
       {
         path: 'qualityHotpatchProcess',
         path: 'qualityHotpatchProcess',
         name: '热修复过程',
         name: '热修复过程',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/quality/qualityHotpatchProcess.vue'),
+        component: () =>
+          import ('@/views/quality/qualityHotpatchProcess.vue'),
         meta: { title: '热修复过程' }
         meta: { title: '热修复过程' }
       },
       },
       {
       {
         path: 'problemList',
         path: 'problemList',
         name: '线上问题',
         name: '线上问题',
-        component: () => import('@/views/onlineProblem/problemList.vue'),
+        component: () =>
+          import ('@/views/onlineProblem/problemList.vue'),
         meta: { title: '线上问题' }
         meta: { title: '线上问题' }
       },
       },
       {
       {
         path: '/Platform/defectManagement/problemCreate',
         path: '/Platform/defectManagement/problemCreate',
         name: '新建线上问题',
         name: '新建线上问题',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/onlineProblem/problemCreate'),
+        component: () =>
+          import ('@/views/onlineProblem/problemCreate'),
         meta: { title: '新建线上问题' }
         meta: { title: '新建线上问题' }
       },
       },
       {
       {
         path: '/Platform/defectManagement/problemQuery',
         path: '/Platform/defectManagement/problemQuery',
         name: '查看线上问题',
         name: '查看线上问题',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/onlineProblem/problemQuery'),
+        component: () =>
+          import ('@/views/onlineProblem/problemQuery'),
         meta: { title: '查看线上问题' }
         meta: { title: '查看线上问题' }
       },
       },
       {
       {
         path: '/Platform/defectManagement/problemUpdate',
         path: '/Platform/defectManagement/problemUpdate',
         name: '更新线上问题',
         name: '更新线上问题',
         hidden: true,
         hidden: true,
-        component: () => import('@/views/onlineProblem/problemUpdate'),
+        component: () =>
+          import ('@/views/onlineProblem/problemUpdate'),
         meta: { title: '更新线上问题' }
         meta: { title: '更新线上问题' }
       }
       }
     ]
     ]
@@ -655,15 +723,14 @@ export const constantRoutes = [
     redirect: '/ToConfigure/configure',
     redirect: '/ToConfigure/configure',
     // hidden: true,
     // hidden: true,
     meta: { title: '组织配置', icon: '上线质检' },
     meta: { title: '组织配置', icon: '上线质检' },
-    children: [
-      {
-        path: 'configure',
-        name: '组织配置',
-        // hidden: true,
-        component: () => import('@/views/ToConfigure/configure'),
-        meta: { title: '组织配置', icon: '组织配置' }
-      }
-    ]
+    children: [{
+      path: 'configure',
+      name: '组织配置',
+      // hidden: true,
+      component: () =>
+        import ('@/views/ToConfigure/configure'),
+      meta: { title: '组织配置', icon: '组织配置' }
+    }]
   }
   }
 ]
 ]
 
 
@@ -680,4 +747,4 @@ export function resetRouter() {
   router.matcher = newRouter.matcher // reset router
   router.matcher = newRouter.matcher // reset router
 }
 }
 
 
-export default router
+export default router

+ 514 - 0
src/views/projectManage/taskList/versionsCalendar.vue

@@ -0,0 +1,514 @@
+<template>
+  <div style="background-color:#F2F3F6;display:flex;align-items: center;justify-content: center;">
+    <el-container>
+      <el-header class="bgborder" style=" margin: 2%;align-items: center;justify-content: space-between;">
+        <div style="margin-left:1%;margin-top:1.5%">
+          <el-dropdown @command="handleCommand">
+            <span class="el-dropdown-link drop_down" style="cursor: pointer;">{{ isCommand === '' ? typeOpt[0].msg : clientType }}<i class="el-icon-arrow-down el-icon--right" /></span>
+            <el-dropdown-menu slot="dropdown" align="center">
+              <el-dropdown-item v-for="item in typeOpt" :key="item.code" :command="{value:item.code,flag:item}">{{ item.msg }}</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </div>
+      </el-header>
+
+      <el-main class="bgborder" style=" margin: 0 2%;min-height: 120.5vh;padding:0 !important">
+        <div style="margin: 1.9%; font-weight: 600; white-space: nowrap;"><b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>版本日历 <el-button type="primary" size="mini" icon="el-icon-plus" style="float: right;" @click="adds()">添加版本事件</el-button></div>
+        <div class="bgColorSz">
+          <full-calendar :events="events" lang="zh" class="test-fc" first-day="1" locale="fr" style="width:100%" @changeMonth="changeMonth" @eventClick="eventClick" @dayClick="dayClick" @moreClick="moreClick"> />
+            <div id="calendar" style="height: 800px;" />
+          </full-calendar></div>
+
+      </el-main>
+
+      <el-dialog title="版本管理" :visible.sync="dialogFormVisible" width="80%">
+        <el-dialog :title="dialogStatus" width="35%" :visible.sync="dialogCraeteVisible" append-to-body>
+          <div style="margin-left:30px">
+            <el-form ref="addVersionForms" :rules="addVersionDataRules" :model="addVersionData">
+              <el-form-item label="版本号" prop="version">
+                <el-input v-model="addVersionData.version" placeholder="请填写" style="margin-left:7px;width:70%;" />
+              </el-form-item>
+            </el-form>
+          </div>
+          <div style="margin-top:10%;margin-left:60%">
+            <el-button type="info" plain size="mini" @click="dialogCraeteVisible=false">取消</el-button>
+            <el-button type="primary" size="mini" @click="addVersion(addVersionData)">确定</el-button>
+          </div>
+          <div style="margin-top:6%" />
+        </el-dialog>
+
+        <el-dialog :title="dialogStatus" width="40%" :visible.sync="dialogEventVisible" append-to-body>
+          <div style="margin-left:30px">
+            <el-form ref="addEventForms" :rules="addEventDataRules" :model="addEventData">
+              <el-form-item label="事件名称" prop="name">
+                <el-input v-model="addEventData.name" placeholder="请输入事件名称" style="margin-left:7px;width:70%;" />
+              </el-form-item>
+              <el-form-item label="时间" prop="name">
+                <el-date-picker
+                  v-model="addEventData.time"
+                  clearable
+                  type="datetimerange"
+                  style="width:70%;margin-left:7%"
+                  range-separator="-"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                />
+              </el-form-item>
+            </el-form>
+          </div>
+          <div style="margin-top:10%;margin-left:60%">
+            <el-button type="info" plain size="mini" @click="dialogEventVisible=false">取消</el-button>
+            <el-button type="primary" size="mini" @click="addEvents(addEventData)">确定</el-button>
+          </div>
+          <div style="margin-top:6%" />
+        </el-dialog>
+
+        <el-dialog :visible.sync="dialogDeleteVerVisible" width="35%" append-to-body>
+          <div align="center" style="margin-top:2%">
+            <b>是否删除当前版本?</b>
+          </div>
+          <div style="margin-top:15%;margin-left:50%">
+
+            <el-button type="info" plain size="mini" @click="dialogDeleteVerVisible=false">取消</el-button>
+            <el-button type="primary" size="mini" @click="deleteBizType()">确定</el-button>
+          </div>
+          <div style="margin-top:4%" />
+        </el-dialog>
+        <el-dialog :visible.sync="dialogDeleteEveVisible" width="30%" append-to-body>
+          <div align="center" style="margin-top:2%">
+            <b>是否删除当前事件?</b>
+          </div>
+          <div style="margin-top:15%;margin-left:50%">
+            <el-button type="info" plain size="mini" @click="dialogDeleteEveVisible=false">取消</el-button>
+            <el-button type="primary" size="mini" @click="deleteEventTpye()">确定</el-button>
+          </div>
+          <div style="margin-top:4%" />
+        </el-dialog>
+
+        <div style="display:flex;margin-top:3%">
+          <div style="margin-left:120px">
+            <template>
+              <div slot="footer" class="dialog-footer">
+                <el-button type="primary" style="margin-left:70%" @click="handleVersionadd()">添加版本</el-button>
+              </div>
+              <el-table :data="tableData" fit highlight-current-row style="width: 100%;margin-top:3%" border :header-cell-style="{background:'#F0F2F4',color:'#606266'}" @row-click="cellBack">
+                <el-table-column prop="version" label="版本号" width="160%" align="center"><template slot-scope="scope"><span>{{ scope.row.version }}</span></template></el-table-column>
+                <el-table-column
+                  label="操作"
+                  width="160%"
+                  align="center"
+                >
+                  <template slot-scope="{row}">
+                    <el-button type="info" plain size="mini" @click="handelDeleteVer(row)">删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </template>
+          </div>
+          <div style="margin-top:15%;margin-left:8%">   <el-button type="primary" icon="el-icon-arrow-right" circle /></div>
+          <div style="margin-left:80px">
+            <template>
+              <div slot="footer" class="dialog-footer">
+                <div style="display:flex">
+                  <div style="font-size:17px;margin-top:4%">
+                    版本 : {{ versionNum === '' ? "-" :versionNum }}
+                  </div>
+                  <div>
+                    <el-button :disabled="!versionNum" type="primary" style="margin-left:220%" @click="handleAddEvent()">添加事件</el-button>
+                  </div>
+                </div>
+              </div>
+              <!-- <el-table
+                :data="tableData"
+                border
+                max-height="250"
+                style="width: 100%;margin-top:3%;"
+              > -->
+              <el-table :data="tableData1" fit highlight-current-row style="width: 100%;margin-top:3%" border :header-cell-style="{background:'#F0F2F4',color:'#606266'}">
+                <el-table-column
+                  prop="name"
+                  label="事件"
+                  width="100%"
+                  align="center"
+                />
+                <el-table-column
+                  prop="time"
+                  label="时间"
+                  width="180%"
+                  align="center"
+                >
+                  <!-- <template slot-scope="scope"><span>{{ scope.row.time }}</span></template> -->
+                </el-table-column>
+                <el-table-column
+                  label="操作"
+                  width="120%"
+                  align="center"
+                >
+                  <template slot-scope="{row}">
+                    <el-button type="info" plain size="mini" @click="handelDeleteEvent(row)">删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <el-row style="margin-top:20%;margin-left:85%">
+                <el-button @click="getVersionList(),dialogFormVisible=false">关闭</el-button>
+                <!-- <el-button type="primary">确定</el-button> -->
+              </el-row>
+              <div style="margin-top:20%;margin-left:50%" />
+            </template>
+          </div>
+        </div>
+      </el-dialog>
+
+    </el-container></div></el-container>
+
+  </div>
+</template>
+
+<script>
+import { getEvent, showAppClientEnum, listByVersionType, createVersion, listByType, deleteVersion, createEvent, deleteEvent } from '@/api/versionsCalendar'
+import dayjs from 'dayjs'
+export default {
+  components: {
+    'full-calendar': require('vue-fullcalendar')
+  },
+
+  data() {
+    return {
+      userInformation: localStorage.getItem('username'),
+      userName: localStorage.getItem('realname'),
+      curIndex: 1,
+      pageSize: 15,
+      isCommand: '',
+      options: [],
+      value1: [],
+      list: [],
+      form: {},
+      form_all: {
+        all_bizId: '客户端'
+      },
+      loading: false,
+      dialogCraeteVisible: false,
+      dialogEventVisible: false,
+      dialogFormVisible: false,
+      dialogDeleteVerVisible: false,
+      dialogDeleteEveVisible: false,
+      formLabelWidth: '100px',
+      currentPage: 0,
+      eventData: [],
+      dialogStatus: '',
+      versionNum: '',
+      versionId: '',
+      vid: '',
+      events: [],
+      events1: [],
+      tableData: [],
+      tableData1: [],
+      addData: {},
+      addEveData: {},
+      clientType: '',
+      deleteVer: {},
+      items: [
+        { type: '' },
+        { type: 'success' },
+        { type: 'info' },
+        { type: 'danger' },
+        { type: 'warning' }
+      ],
+      value: '',
+      user: {},
+      deleteEve: {},
+      typeOpt: [],
+      orginName: '代驾乘客端',
+      orginType: 1,
+      addVersionData: {
+        version: ''
+      },
+      addEventData: {
+        name: ''
+      },
+      addVersionDataRules: {
+        version: [{ required: true, message: '请输入版本号', trigger: 'change' }]
+      },
+      addEventDataRules: {
+        name: [{ required: true, message: '请输入事件名称', trigger: 'change' }],
+        time: [{ required: true, message: '请选择开始结束时间', trigger: 'change' }]
+      },
+      all_opt: [{ value: 1, label: '客户端' }, { value: 2, label: '服务端' }, { value: 3, label: '小程序' }]
+    }
+  },
+  created() {
+    this.getVersionType()
+    this.getVersionList()
+  },
+  methods: {
+    handleCommand(command) {
+      this.isCommand = command.value
+      this.clientType = command.flag.msg
+      console.log('isCommand' + this.isCommand)
+      console.log('clientType' + this.clientType)
+      this.getVersionList()
+    },
+    random(index) {
+      const number = Math.random() * 10
+      const a = Math.floor(number)
+      return this.items[a % 5].type
+    },
+    remoteMethod(query) {
+      if (query !== '') {
+        this.loading = true
+        setTimeout(() => {
+          this.loading = false
+          this.options = this.list.filter(item => {
+            return item.label.toLowerCase()
+              .indexOf(query.toLowerCase()) > -1
+          })
+        }, 200)
+      } else {
+        this.options = []
+      }
+    },
+    tableRowClassName({ row, rowIndex }) {
+      if (rowIndex === 1) {
+        return 'warning-row'
+      } else if (rowIndex === 3) {
+        return 'success-row'
+      }
+      return ''
+    },
+    link_project() {
+      window.open('http://localhost:9528/#/Platform/projectManage/projectViewDetails', '_blank')
+    },
+    handleSizeChange(size) { //  分页
+      this.pageSize = size
+      // this.get_list()
+    },
+    handleCurrentChange(curIndex) { //  分页
+      this.curIndex = curIndex
+      // this.get_list()
+    },
+    formatDate(e) {
+      return dayjs(e).format('YYYY-MM-DD')
+    },
+    formatDate1(e) {
+      return dayjs(e).format('YYYY/MM/DD')
+    },
+    // 进首页
+    getVersionList(ele) {
+      listByVersionType(this.isCommand === '' ? 1 : this.isCommand).then(res => {
+        this.eventData = res.data
+        this.versionlist()
+      })
+    },
+    getVersionType() {
+      showAppClientEnum().then(res => {
+        this.typeOpt = res.data.appClient
+      })
+    },
+    handelDeleteBiz(ele) {
+
+    },
+    // 点击版本后回调
+    cellBack(row, column, event) {
+      console.log(row)
+      this.getEventList(row.id)
+      this.versionNum = row.version
+      this.vid = row.id
+      console.log('1s11' + this.vid)
+    },
+    // 遍历首页列表
+    versionlist() {
+      this.events = []
+      for (var j = 0; j < this.eventData.length; j++) {
+        var event = {}
+        event.title = this.eventData[j].version + this.eventData[j].name
+        event.start = this.formatDate(this.eventData[j].startTime)
+        event.end = this.formatDate(this.eventData[j].endTime)
+        this.events.push(event)
+        console.log('2222' + JSON.stringify(this.events))
+      }
+    },
+
+    adds() {
+      this.versionNum = ''
+      this.tableData1 = []
+      this.dialogFormVisible = true
+      this.getVersionBytpye(this.isCommand === '' ? this.typeOpt[0].code : this.isCommand)
+      this.versionlist()
+      this.getAllVersionList()
+      // console.log('tableData' + JSON.stringify(this.tableData))
+    },
+    // 获取所有版本
+    getVersionBytpye(ele) {
+      listByType(ele).then(response => {
+        this.tableData = response.data
+        this.tableData.version = response.data.version
+      })
+    },
+    // 获取版本的所有事件
+    getEventList(ele) {
+      this.tableData1 = []
+      getEvent(ele).then(response => {
+        for (var j = 0; j < this.eventData.length; j++) {
+          var data1 = {}
+          data1.name = response.data[j].name
+          data1.id = response.data[j].id
+          if (response.data[j].startTime === response.data[j].endTime) {
+            data1.time = this.formatDate1(response.data[j].startTime)
+          }
+          data1.time = this.formatDate1(response.data[j].startTime) + ' - ' + this.formatDate1(response.data[j].endTime)
+          this.tableData1.push(data1)
+        }
+        console.log('time' + this.tableData1.time)
+      })
+    },
+    // 新增
+    handleVersionadd() {
+      this.dialogStatus = '新建版本'
+      this.dialogCraeteVisible = true
+      this.$refs.addVersionForms.resetFields()
+      this.$set(this.addVersionData, 'version', '')
+      this.addBizData = {}
+      console.log('1111' + this.typeOpt[0].msg)
+    },
+
+    // 添加版本
+    addVersion(ele) {
+      this.$refs['addVersionForms'].validate((valid) => {
+        if (valid) {
+          this.addData = ele
+          this.addData.version = ele.version
+          if (this.clientType !== '' && this.isCommand !== '') {
+            this.addData.appName = this.clientType
+            this.addData.type = this.isCommand
+          } else {
+            this.addData.appName = this.orginName
+            this.addData.type = this.orginType
+          }
+          this.user = { id: '', ename: this.userInformation, name: this.userName }
+          this.VersionCreateRequest = { versionInfoRequest: this.addData, user: this.user }
+          createVersion(this.VersionCreateRequest).then(response => {
+            if (response.code === 200) {
+              this.successFun()
+              this.dialogCraeteVisible = false
+              this.getVersionBytpye(this.isCommand === '' ? 1 : this.isCommand)
+            } else {
+              this.errorFun(response.msg)
+            }
+          })
+        }
+      })
+    },
+    // 删除版本
+    handelDeleteVer(ele) {
+      this.deleteVer = ele
+      console.log('000' + JSON.stringify(this.deleteVer))
+      console.log('id' + JSON.stringify(this.deleteVer.id))
+      this.dialogDeleteVerVisible = true
+    },
+    deleteBizType() {
+      this.user = { id: '', ename: this.userInformation, name: this.userName }
+      deleteVersion(this.deleteVer.id, this.user).then(response => {
+        if (response.code === 200) {
+          this.successFun()
+          this.versionNum = ''
+          this.dialogDeleteVerVisible = false
+          this.getVersionBytpye(this.isCommand === '' ? 1 : this.isCommand)
+        } else {
+          this.errorFun(response.msg)
+        }
+      })
+    },
+    // 新增 事件
+    handleAddEvent() {
+      // this.$refs.addEventForms.resetFields()
+      this.dialogStatus = '新建版本事件'
+      this.dialogEventVisible = true
+    },
+
+    // 新增版本事件接口
+    addEvents(ele) {
+      this.$refs['addEventForms'].validate((valid) => {
+        if (valid) {
+          this.addEveData.name = ele.name
+          this.addEveData.version = this.versionNum
+          this.addEveData.versionId = this.vid
+          this.addEveData.startTime = ele.time === null || ele.time.length === 0 ? '' : ele.time[0]
+          this.addEveData.endTime = ele.time === null || ele.time.length === 0 ? '' : ele.time[1]
+          this.addEveData.creator = this.userInformation
+          this.user = { id: '', ename: this.userInformation, name: this.userName }
+          this.VersionScheduleRequest = { versionScheduleDO: this.addEveData, user: this.user }
+          createEvent(this.VersionScheduleRequest).then(response => {
+            if (response.code === 200) {
+              this.successFun()
+              this.getEventList(this.vid)
+              this.dialogEventVisible = false
+              // this.getVersionBytpye(this.isCommand === '' ? 1 : this.isCommand)
+            } else {
+              this.errorFun(response.msg)
+            }
+          })
+        }
+      })
+    },
+    // 删除事件
+    handelDeleteEvent(ele) {
+      this.deleteEve = ele
+      this.dialogDeleteVerVisible = true
+      console.log('id' + this.deleteEve.id)
+    },
+    deleteEventTpye() {
+      this.user = { id: '', ename: this.userInformation, name: this.userName }
+      deleteEvent(this.deleteEve.id, this.user).then(response => {
+        if (response.code === 200) {
+          this.successFun()
+          this.getEventList(this.vid)
+          this.dialogDeleteEveVisible = false
+          this.deleteEve = {}
+
+          // this.getVersionBytpye(this.isCommand === '' ? 1 : this.isCommand)
+        } else {
+          this.errorFun(response.msg)
+        }
+      })
+    },
+
+    successFun() {
+      this.$notify({ title: 'Success', message: 'Created Successfully', type: 'success', duration: 5000 })
+    },
+    errorFun(msg) {
+      this.$notify({ title: 'Failed', message: msg, type: 'error', duration: 5000 })
+    }
+
+  }
+}
+</script>
+
+<style>
+  .footer { text-align: right; margin: 1%; background-color: #FFFFFF; border-radius: 8px; }
+
+  .bgborder { background-color: #FFFFFF; border-radius: 8px;}
+
+  .bgborder .el-input__inner { border: none; padding: 0px 50px 0px 0px;}
+
+  .bgborder .el-select .el-input .el-select__caret { color: #333333 !important; }
+
+  .bgborder .el-table .el-table__body tr:hover td { color: #409EFF; background: #EEF0F5; font-size: 13px !important;} /*hover时字体, 背景颜色*/
+
+  .bgborder .el-input__icon { width: 77px !important; }
+
+  .bgborder .el-link { font-size: 13px !important; }
+
+  .el-table .warning-row { background: oldlace; }
+   .is-selected {
+    color: #1989FA;
+  }
+
+  #basicName::-webkit-input-placeholder {
+    color: #333333;
+  }
+  .drop_down {
+     font-size: 13px;
+     color: #333333;
+     /* white-space: nowrap; */
+  }
+</style>