Jelajahi Sumber

电签监控--未完

duy 2 hari lalu
induk
melakukan
5212e6fdbe
4 mengubah file dengan 984 tambahan dan 539 penghapusan
  1. 119 93
      src/api/certificate/list.js
  2. 4 2
      src/config/index.json
  3. 535 444
      src/router/views/index.js
  4. 326 0
      src/views/monitor/certificate.vue

+ 119 - 93
src/api/certificate/list.js

@@ -1,142 +1,168 @@
-import request from '@/router/axios';
-
+import request from "@/router/axios";
 
 //获取所有有效项目
 export const queryProjectList = (params) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/queryProjectList',
-        method: 'get',
-        params
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/queryProjectList",
+    method: "get",
+    params,
+  });
+};
 
 //分页获取证书列表数据
 export const listpage = (params) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/page',
-        method: 'get',
-        params
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/page",
+    method: "get",
+    params,
+  });
+};
 
 //注册
 export const goRegister = (data) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/goRegister',
-        method: 'post',
-        data
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/goRegister",
+    method: "post",
+    data,
+  });
+};
 
 //删除数据
 export const remove = (data) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/remove',
-        method: 'post',
-        params: data
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/remove",
+    method: "post",
+    params: data,
+  });
+};
 
 //获取详情数据
 export const getById = (data) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/getById',
-        method: 'post',
-        params: data
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/getById",
+    method: "post",
+    params: data,
+  });
+};
 
 //新增
 export const save = (data) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/save',
-        method: 'post',
-        data
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/save",
+    method: "post",
+    data,
+  });
+};
 
 //获取当前系统下所有用户
 export const findUserByName = (params) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/findUserByName',
-        method: 'get',
-        params
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/findUserByName",
+    method: "get",
+    params,
+  });
+};
 
 //获取角色方
 export const queryRole = (params) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/queryRole',
-        method: 'get',
-        params
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/queryRole",
+    method: "get",
+    params,
+  });
+};
 
 //获取项目和合同段
 export const queryProjectAndContract = (params) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/queryProjectAndContract',
-        method: 'get',
-        params
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/queryProjectAndContract",
+    method: "get",
+    params,
+  });
+};
 
 //上传图片
 export const addFileInfo = (data) => {
-    return request({
-        url: '/api/blade-resource/client/addFileInfo',
-        method: 'post',
-        data
-    })
-}
+  return request({
+    url: "/api/blade-resource/client/addFileInfo",
+    method: "post",
+    data,
+  });
+};
 
 //上传签名体图片
 export const compressAndUpload = (data) => {
   return request({
-    url: '/api/blade-manager/signPfxFile/compressAndUpload',
-    method: 'post',
-    data
-  })
-}
+    url: "/api/blade-manager/signPfxFile/compressAndUpload",
+    method: "post",
+    data,
+  });
+};
 
 //修改
 export const update = (data) => {
-    return request({
-        url: '/api/blade-manager/signPfxFile/update',
-        method: 'post',
-        data
-    })
-}
+  return request({
+    url: "/api/blade-manager/signPfxFile/update",
+    method: "post",
+    data,
+  });
+};
 
 export const findPfxType = (params) => {
   return request({
-    url: '/api/blade-business/task/query-task-type-status',
-    method: 'get',
-    params
-  })
-}
+    url: "/api/blade-business/task/query-task-type-status",
+    method: "get",
+    params,
+  });
+};
 
 export const getPriwbsPdf = (pkeyId) => {
   return request({
-    url: '/api/blade-manager/exceltab/get-priwbs-pdf',
-    method: 'get',
-    params: {pkeyId}
-  })
-}
+    url: "/api/blade-manager/exceltab/get-priwbs-pdf",
+    method: "get",
+    params: { pkeyId },
+  });
+};
 
 export const picPresave = (form) => {
   return request({
-    url: '/api/blade-manager/signPfxFile/picPresave',
-    method: 'post',
-    data: form
-  })
-}
+    url: "/api/blade-manager/signPfxFile/picPresave",
+    method: "post",
+    data: form,
+  });
+};
 
 export const prePicture = (form) => {
   return request({
-    url: '/api/blade-manager/signPfxFile/prePicture',
-    method: 'post',
-    data: form
-  })
-}
+    url: "/api/blade-manager/signPfxFile/prePicture",
+    method: "post",
+    data: form,
+  });
+};
+
+// 获取状态统计接口
+export const getTaskBatchCount = (form) => {
+  return request({
+    url: "/api/blade-business/taskBatch/count",
+    method: "post",
+    data: form,
+  });
+};
+
+// 电签监控-运行中接口
+export const getTaskBatchPage = (form) => {
+  return request({
+    url: "/api/blade-business/taskBatch/page",
+    method: "post",
+    data: form,
+  });
+};
+
+// 电签监控-排队中接口
+export const getTaskBatchPageOrder = (form) => {
+  return request({
+    url: "/api/blade-business/taskBatch/pageOrder",
+    method: "post",
+    data: form,
+  });
+};

+ 4 - 2
src/config/index.json

@@ -1,9 +1,11 @@
 {
-  "target22": "http://39.108.216.210:8090",
+  "target111": "http://127.0.0.1:8090",
+
   "target": "http://192.168.0.109:8090",
+  
+  "target22": "http://39.108.216.210:8090",
   "target11": "http://219.151.181.73:8090",
   "target3": "http://183.247.216.148:28090",
-  "target2": "http://192.168.0.109:8090",
   "dev": {
     "port": 1888
   }

+ 535 - 444
src/router/views/index.js

@@ -1,467 +1,558 @@
-import Layout from '@/page/index/'
+import Layout from "@/page/index/";
 
-export default [{
-        path: '/wel',
-        component: Layout,
-        redirect: '/wel/index',
-        children: [{
-                path: '/certificate/list',
-                name: '电签列表',
-                meta: {
-                    i18n: 'ElectricSignaturelist'
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/certificate/list')
-            }, {
-                path: '/certificate/list/addList',
-                name: '新增电签',
-                meta: {
-                    i18n: 'AddATelegram'
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/certificate/lists/addList')
-            },
-            {
-                path: '/certificate/management/see',
-                name: '查看证书',
-                meta: {
-                    i18n: 'ViewCertificate'
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/certificate/managements/see')
-            },
-            {
-                path: '/certificate/management',
-                name: '电签管理',
-                meta: {
-                    i18n: 'ElectricitySignManagement'
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/certificate/management')
-            },
-            {
-                path: '/AssessmentArea',
-                name: '考核区',
-                meta: {
-                    i18n: 'AssessmentArea'
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/AssessmentArea/index')
-            },
-            {
-                path: 'index',
-                name: '首页',
-                meta: {
-                    i18n: 'dashboard'
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/wel/index')
-            },
-            {
-                path: 'dashboard',
-                name: '控制台',
-                meta: {
-                    i18n: 'dashboard',
-                    menu: false,
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
-            },
-          {
-            path: '/manager/projectinfo/detail',
-            name: '项目详情',
-            meta: {
-              i18n: 'projectinfodetail',
-              menu: false,
-            },
-            component: () =>
-              import ( /* webpackChunkName: "views" */ '@/views/manager/projectinfo/detail.vue')
-          },
-                {
-            path: '/manager/projectinfo/ledger',
-            name: '同步台账',
-            meta: {
-              i18n: 'projectinfoledger',
-              menu: false,
-            },
-            component: () =>
-              import ( /* webpackChunkName: "views" */ '@/views/manager/projectinfo/ledger.vue')
-          },
-          
-          //归档树配置规则
-          {
-            path: '/manager/projectinfo/archivetreeRule',
-            name: '归档树配置',
-            meta: {
-              i18n: 'archivetreeRule',
-              menu: false,
-            },
-            component: () =>
-              import ( /* webpackChunkName: "views" */ '@/views/manager/projectinfo/archivetreeRule.vue')
-          },
+export default [
+  {
+    path: "/wel",
+    component: Layout,
+    redirect: "/wel/index",
+    children: [
+      {
+        path: "/certificate/list",
+        name: "电签列表",
+        meta: {
+          i18n: "ElectricSignaturelist",
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/certificate/list"),
+      },
+      {
+        path: "/certificate/list/addList",
+        name: "新增电签",
+        meta: {
+          i18n: "AddATelegram",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/certificate/lists/addList"
+          ),
+      },
+      {
+        path: "/certificate/management/see",
+        name: "查看证书",
+        meta: {
+          i18n: "ViewCertificate",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/certificate/managements/see"
+          ),
+      },
+      {
+        path: "/certificate/management",
+        name: "电签管理",
+        meta: {
+          i18n: "ElectricitySignManagement",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/certificate/management"
+          ),
+      },
+      {
+        path: "/AssessmentArea",
+        name: "考核区",
+        meta: {
+          i18n: "AssessmentArea",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/AssessmentArea/index"
+          ),
+      },
+      {
+        path: "index",
+        name: "首页",
+        meta: {
+          i18n: "dashboard",
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/wel/index"),
+      },
+      {
+        path: "dashboard",
+        name: "控制台",
+        meta: {
+          i18n: "dashboard",
+          menu: false,
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/wel/dashboard"),
+      },
+      {
+        path: "/manager/projectinfo/detail",
+        name: "项目详情",
+        meta: {
+          i18n: "projectinfodetail",
+          menu: false,
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/projectinfo/detail.vue"
+          ),
+      },
+      {
+        path: "/manager/projectinfo/ledger",
+        name: "同步台账",
+        meta: {
+          i18n: "projectinfoledger",
+          menu: false,
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/projectinfo/ledger.vue"
+          ),
+      },
+
+      //归档树配置规则
+      {
+        path: "/manager/projectinfo/archivetreeRule",
+        name: "归档树配置",
+        meta: {
+          i18n: "archivetreeRule",
+          menu: false,
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/projectinfo/archivetreeRule.vue"
+          ),
+      },
+
+      //电签角色库
+      {
+        path: "/digital/signer",
+        name: "电签角色库",
+        meta: {
+          i18n: "signer",
+          menu: false,
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/digital/signer.vue"),
+      },
+      //电签角色库
+      {
+        path: "/rule/manager",
+        name: "规范参数管理",
+        meta: {
+          i18n: "ruleManager",
+          menu: false,
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/codeRule/ruleManage.vue"
+          ),
+      },
+    ],
+  },
+  {
+    path: "/test",
+    component: Layout,
+    redirect: "/test/index",
+    children: [
+      {
+        path: "index",
+        name: "测试页",
+        meta: {
+          i18n: "test",
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/util/test"),
+      },
+    ],
+  },
 
-            //电签角色库
-            {
-            path: '/digital/signer',
-            name: '电签角色库',
-            meta: {
-                i18n: 'signer',
-                menu: false,
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */'@/views/digital/signer.vue')
-            },
-                //电签角色库
-            {
-            path: '/rule/manager',
-            name: '规范参数管理',
-            meta: {
-                i18n: 'ruleManager',
-                menu: false,
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */'@/views/codeRule/ruleManage.vue')
-            },
-        ]
-    }, {
-        path: '/test',
-        component: Layout,
-        redirect: '/test/index',
-        children: [{
-            path: 'index',
-            name: '测试页',
-            meta: {
-                i18n: 'test'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/util/test')
-        }]
-    }, 
-       
-    
-    {
-        path: '/dict-horizontal',
-        component: Layout,
-        redirect: '/dict-horizontal/index',
-        children: [{
-            path: 'index',
-            name: '字典管理',
-            meta: {
-                i18n: 'dict'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
-        }]
-    }, {
-        path: '/dict-vertical',
-        component: Layout,
-        redirect: '/dict-vertical/index',
-        children: [{
-            path: 'index',
-            name: '字典管理',
-            meta: {
-                i18n: 'dict'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
-        }]
-    }, {
-        path: '/info',
-        component: Layout,
-        redirect: '/info/index',
-        children: [{
-            path: 'index',
-            name: '个人信息',
-            meta: {
-                i18n: 'info'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/system/userinfo')
-        }]
-    }, {
-        path: '/work/process/leave',
-        component: Layout,
-        redirect: '/work/process/leave/form',
-        children: [{
-            path: 'form/:processDefinitionId',
-            name: '请假流程',
-            meta: {
-                i18n: 'work'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
-        }, {
-            path: 'handle/:taskId/:processInstanceId/:businessId',
-            name: '处理请假流程',
-            meta: {
-                i18n: 'work'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
-        }, {
-            path: 'detail/:processInstanceId/:businessId',
-            name: '请假流程详情',
-            meta: {
-                i18n: 'work'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
-        }]
-    }, {
-        path: '/wbs',
-        component: Layout,
-        redirect: '/wbs/edit',
-        children: [{
-            path: 'edit/:id',
-            name: '编辑WBS树',
-            meta: {
-                i18n: 'edit',
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/manager/wbsinfo/edit')
-        },
-          {
-            path: '/wbs/edit',
-            name: '编辑WBS树',
-            meta: {
-              i18n: 'edit',
-            },
-            component: () =>
-              import ( /* webpackChunkName: "views" */ '@/views/manager/wbsinfo/edit')
-          },
-          {
-            path: '/wbs/element',
-            name: '元素库',
-            meta: {
-              i18n: 'element',
-            },
-            component: () =>
-              import ( /* webpackChunkName: "views" */ '@/views/manager/wbsinfo/element')
-          },
-          {
-            path: '/wbs/parameter',
-            name: '参数库',
-            meta: {
-              i18n: 'parameter',
-            },
-            component: () =>
-              import ( /* webpackChunkName: "views" */ '@/views/manager/wbsinfo/parameter')
-          },
-        ]
-    }, {
-        path: '/contract',
-        component: Layout,
-        redirect: '/contract/detail',
-        children: [{
-            path: 'detail',
-            name: '创建合同段',
-            meta: {
-                i18n: 'edit'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/manager/contractinfo/detail')
-        }]
-    },
-    {
-        path: '/contract',
-        component: Layout,
-        redirect: '/contract/detail1',
-        children: [{
-            path: 'detail1',
-            name: '编辑合同段',
-            meta: {
-                i18n: 'edit'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/manager/contractinfo/detail')
-        }]
-    },
-     {
-        path: '/excel',
-        component: Layout,
-        redirect: '/excel/excelmodel',
-        children: [{
-            path: 'excelmodel/:id',
-            name: '清表模板',
-            meta: {
-                i18n: 'excelmodel'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/exctab/excelmodel/excelmodel')
-        }]
-    },
-    {
-        path: '/excels',
-        component: Layout,
-        redirect: '/excels/ElementIdentification',
-        children: [{
-            path: 'ElementIdentification/:id',
-            name: '元素识别',
-            meta: {
-                i18n: 'ElementIdentification'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/exctab/ElementIdentification/index')
-        }]
-    },
-    {
-        path: '/project',
-        component: Layout,
-        redirect: '/project/tree',
-        children: [{
-                path: 'tree',
-                name: '私有WBS',
-                meta: {
-                    i18n: 'privateTree',
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/manager/projectinfo/tree')
-            },
-            {
-                path: 'editElement',
-                name: '编辑元素',
-                meta: {
-                    i18n: 'editElement'
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/manager/projectinfo/editElement/editElement')
-            },
-            {
-                path: 'independent',
-                name: '独立表单库',
-                meta: {
-                    i18n: 'independent'
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/manager/projectinfo/independent')
-            },
-            {
-                path: 'archiveTime',
-                name: '归档文件时间设置',
-                meta: {
-                    i18n: 'archiveTime'
-                },
-                component: () =>
-                    import ( /* webpackChunkName: "views" */ '@/views/manager/projectinfo/archiveTime')
-            }
-        ]
-    }, {
-        path: '/formula',
-        component: Layout,
-        redirect: '/formula/edit',
-        children: [{
-            path: 'edit',
-            name: '编辑公式',
-            meta: {
-                i18n: 'formula'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/formula/edit')
-        },
-        // {
-        //     path: 'edit2',
-        //     name: '编辑公式',
-        //     meta: {
-        //         i18n: 'formula'
-        //     },
-        //     component: () =>
-        //         import ( /* webpackChunkName: "views" */ '@/views/formula2/edit')
-        // }
-    ]
-    },
   {
-    path: '/tentative',
+    path: "/dict-horizontal",
     component: Layout,
-    redirect: '/tentative/testclassify',
-    children: [{
-      path: '/tentative/testclassify',
-      name: '试验外委/第三方试验分类配置',
-      meta: {
-        i18n: 'testclassify'
+    redirect: "/dict-horizontal/index",
+    children: [
+      {
+        path: "index",
+        name: "字典管理",
+        meta: {
+          i18n: "dict",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/util/demo/dict-horizontal"
+          ),
       },
-      component: () =>
-        import ( /* webpackChunkName: "views" */ '@/views/tentative/testclassify')
-    }, {
-      path: '/tentative/testcollect',
-      name: '试验汇总分类配置',
-      meta: {
-        i18n: 'testcollect'
+    ],
+  },
+  {
+    path: "/dict-vertical",
+    component: Layout,
+    redirect: "/dict-vertical/index",
+    children: [
+      {
+        path: "index",
+        name: "字典管理",
+        meta: {
+          i18n: "dict",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/util/demo/dict-vertical"
+          ),
       },
-      component: () =>
-        import ( /* webpackChunkName: "views" */ '@/views/tentative/testclassifyset')
-    },
-    // {
-    //     path: '/tentative/testclassifyset',
-    //     name: '试验汇总分类配置',
-    //     meta: {
-    //       i18n: 'testclassifyset'
-    //     },
-    //     component: () =>
-    //       import ( /* webpackChunkName: "views" */ '@/views/tentative/testclassifyset')
-    // },
-    {
-        path: '/tentative/dataMap',
-        name: '数据映射配置',
+    ],
+  },
+  {
+    path: "/info",
+    component: Layout,
+    redirect: "/info/index",
+    children: [
+      {
+        path: "index",
+        name: "个人信息",
+        meta: {
+          i18n: "info",
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/system/userinfo"),
+      },
+    ],
+  },
+  {
+    path: "/work/process/leave",
+    component: Layout,
+    redirect: "/work/process/leave/form",
+    children: [
+      {
+        path: "form/:processDefinitionId",
+        name: "请假流程",
         meta: {
-          i18n: 'dataMap'
+          i18n: "work",
         },
         component: () =>
-          import ( /* webpackChunkName: "views" */ '@/views/tentative/components/dataMap')
+          import(
+            /* webpackChunkName: "views" */ "@/views/work/process/leave/form"
+          ),
       },
-    {
-        path: '/tentative/parameter',
-        name: '试验参数配置',
+      {
+        path: "handle/:taskId/:processInstanceId/:businessId",
+        name: "处理请假流程",
         meta: {
-          i18n: 'parameter'
+          i18n: "work",
         },
         component: () =>
-          import ( /* webpackChunkName: "views" */ '@/views/tentative/parameter')
+          import(
+            /* webpackChunkName: "views" */ "@/views/work/process/leave/handle"
+          ),
       },
       {
-        path: '/tentative/metadata',
-        name: '元数据管理',
+        path: "detail/:processInstanceId/:businessId",
+        name: "请假流程详情",
         meta: {
-          i18n: 'metadata'
+          i18n: "work",
         },
         component: () =>
-          import ( /* webpackChunkName: "views" */ '@/views/tentative/metadata')
+          import(
+            /* webpackChunkName: "views" */ "@/views/work/process/leave/detail"
+          ),
       },
-      
-    ]
+    ],
   },
   {
-    path: '/measure',
+    path: "/wbs",
     component: Layout,
-    redirect: '/measure/systemUnit',
-    children: [{
-            path: 'systemUnit',
-            name: '系统计量单元',
-            meta: {
-                i18n: 'systemUnit',
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/measure/template')
-        },
-        {
-            path: 'template',
-            name: '系统计量单元',
-            meta: {
-                i18n: 'template',
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/measure/systemUnit.vue')
-        },
-      
-  
-        {
-            path: 'interimPay',
-            name: '系统中期支付项',
-            meta: {
-                i18n: 'interimPay'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */  '@/views/measure/interimPay')
-        }
-    ]
+    redirect: "/wbs/edit",
+    children: [
+      {
+        path: "edit/:id",
+        name: "编辑WBS树",
+        meta: {
+          i18n: "edit",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/wbsinfo/edit"
+          ),
+      },
+      {
+        path: "/wbs/edit",
+        name: "编辑WBS树",
+        meta: {
+          i18n: "edit",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/wbsinfo/edit"
+          ),
+      },
+      {
+        path: "/wbs/element",
+        name: "元素库",
+        meta: {
+          i18n: "element",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/wbsinfo/element"
+          ),
+      },
+      {
+        path: "/wbs/parameter",
+        name: "参数库",
+        meta: {
+          i18n: "parameter",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/wbsinfo/parameter"
+          ),
+      },
+    ],
+  },
+  {
+    path: "/contract",
+    component: Layout,
+    redirect: "/contract/detail",
+    children: [
+      {
+        path: "detail",
+        name: "创建合同段",
+        meta: {
+          i18n: "edit",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/contractinfo/detail"
+          ),
+      },
+    ],
+  },
+  {
+    path: "/contract",
+    component: Layout,
+    redirect: "/contract/detail1",
+    children: [
+      {
+        path: "detail1",
+        name: "编辑合同段",
+        meta: {
+          i18n: "edit",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/contractinfo/detail"
+          ),
+      },
+    ],
+  },
+  {
+    path: "/excel",
+    component: Layout,
+    redirect: "/excel/excelmodel",
+    children: [
+      {
+        path: "excelmodel/:id",
+        name: "清表模板",
+        meta: {
+          i18n: "excelmodel",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/exctab/excelmodel/excelmodel"
+          ),
+      },
+    ],
+  },
+  {
+    path: "/excels",
+    component: Layout,
+    redirect: "/excels/ElementIdentification",
+    children: [
+      {
+        path: "ElementIdentification/:id",
+        name: "元素识别",
+        meta: {
+          i18n: "ElementIdentification",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/exctab/ElementIdentification/index"
+          ),
+      },
+    ],
+  },
+  {
+    path: "/project",
+    component: Layout,
+    redirect: "/project/tree",
+    children: [
+      {
+        path: "tree",
+        name: "私有WBS",
+        meta: {
+          i18n: "privateTree",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/projectinfo/tree"
+          ),
+      },
+      {
+        path: "editElement",
+        name: "编辑元素",
+        meta: {
+          i18n: "editElement",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/projectinfo/editElement/editElement"
+          ),
+      },
+      {
+        path: "independent",
+        name: "独立表单库",
+        meta: {
+          i18n: "independent",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/projectinfo/independent"
+          ),
+      },
+      {
+        path: "archiveTime",
+        name: "归档文件时间设置",
+        meta: {
+          i18n: "archiveTime",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/manager/projectinfo/archiveTime"
+          ),
+      },
+    ],
+  },
+  {
+    path: "/formula",
+    component: Layout,
+    redirect: "/formula/edit",
+    children: [
+      {
+        path: "edit",
+        name: "编辑公式",
+        meta: {
+          i18n: "formula",
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/formula/edit"),
+      },
+      // {
+      //     path: 'edit2',
+      //     name: '编辑公式',
+      //     meta: {
+      //         i18n: 'formula'
+      //     },
+      //     component: () =>
+      //         import ( /* webpackChunkName: "views" */ '@/views/formula2/edit')
+      // }
+    ],
+  },
+  {
+    path: "/tentative",
+    component: Layout,
+    redirect: "/tentative/testclassify",
+    children: [
+      {
+        path: "/tentative/testclassify",
+        name: "试验外委/第三方试验分类配置",
+        meta: {
+          i18n: "testclassify",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/tentative/testclassify"
+          ),
+      },
+      {
+        path: "/tentative/testcollect",
+        name: "试验汇总分类配置",
+        meta: {
+          i18n: "testcollect",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/tentative/testclassifyset"
+          ),
+      },
+      // {
+      //     path: '/tentative/testclassifyset',
+      //     name: '试验汇总分类配置',
+      //     meta: {
+      //       i18n: 'testclassifyset'
+      //     },
+      //     component: () =>
+      //       import ( /* webpackChunkName: "views" */ '@/views/tentative/testclassifyset')
+      // },
+      {
+        path: "/tentative/dataMap",
+        name: "数据映射配置",
+        meta: {
+          i18n: "dataMap",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/tentative/components/dataMap"
+          ),
+      },
+      {
+        path: "/tentative/parameter",
+        name: "试验参数配置",
+        meta: {
+          i18n: "parameter",
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/tentative/parameter"),
+      },
+      {
+        path: "/tentative/metadata",
+        name: "元数据管理",
+        meta: {
+          i18n: "metadata",
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/tentative/metadata"),
+      },
+    ],
+  },
+  {
+    path: "/measure",
+    component: Layout,
+    redirect: "/measure/systemUnit",
+    children: [
+      {
+        path: "systemUnit",
+        name: "系统计量单元",
+        meta: {
+          i18n: "systemUnit",
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/measure/template"),
+      },
+      {
+        path: "template",
+        name: "系统计量单元",
+        meta: {
+          i18n: "template",
+        },
+        component: () =>
+          import(
+            /* webpackChunkName: "views" */ "@/views/measure/systemUnit.vue"
+          ),
+      },
+
+      {
+        path: "interimPay",
+        name: "系统中期支付项",
+        meta: {
+          i18n: "interimPay",
+        },
+        component: () =>
+          import(/* webpackChunkName: "views" */ "@/views/measure/interimPay"),
+      },
+    ],
   },
-]
+];

+ 326 - 0
src/views/monitor/certificate.vue

@@ -0,0 +1,326 @@
+<template>
+  <basic-container class="certificate-monitor-container">
+    <div class="title-box">
+      <div
+        v-if="status != null"
+        class="tag"
+        :style="{ background: status ? '#67C23B' : '#949494' }"
+      >
+        {{ status ? "正在运行" : "已停止" }}
+      </div>
+      <div class="box-title">电签队列详情</div>
+    </div>
+
+    <div class="table-box">
+      <div class="search-box">
+        <el-select
+          size="small"
+          v-model="query.type"
+          filterable
+          style="width: 150px"
+          placeholder="所属系统"
+          clearable
+        >
+          <el-option label="质检" :value="1"> </el-option>
+          <el-option label="试验" :value="2"> </el-option>
+        </el-select>
+        <el-select
+          size="small"
+          v-model="query.projectId"
+          filterable
+          style="width: 200px"
+          placeholder="项目名称"
+          clearable
+          @change="(id) => queryContractList(id)"
+        >
+          <el-option
+            v-for="item in projectOptions"
+            :key="item.id"
+            :label="item.projectName"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+        <el-select
+          size="small"
+          v-model="query.contractId"
+          filterable
+          style="width: 200px"
+          placeholder="合同段"
+          clearable
+        >
+          <el-option
+            v-for="item in contractOptions"
+            :key="item.id"
+            :label="item.contractName"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+
+        <div>
+          <el-input
+            size="small"
+            v-model="query.taskName"
+            style="width: 240px; margin-right: 10px"
+            placeholder="搜索任务名称/ID"
+            clearable
+          />
+          <el-button type="primary" size="small" @click="listPage">
+            搜索
+          </el-button>
+          <el-button
+            type="primary"
+            size="small"
+            @click="initSearch"
+            icon="el-icon-refresh"
+          >
+            数据刷新
+          </el-button>
+        </div>
+      </div>
+      <el-tabs v-model="query.taskType" @tab-click="listPage">
+        <el-tab-pane :label="`正在处理(${runTotal})`" :name="1"></el-tab-pane>
+        <el-tab-pane :label="`排队中(${orderTotal})`" :name="2"></el-tab-pane>
+      </el-tabs>
+    </div>
+
+    <el-table
+      class="martop20 tableList"
+      :data="tableData"
+      style="width: 100%"
+      max-height="550"
+    >
+      <el-table-column type="index" label="序号" width="80"> </el-table-column>
+      <el-table-column prop="type" label="所属系统" width="100">
+        <template slot-scope="{ row }">
+          <span v-if="row.type == 1">质检</span>
+          <span v-else>试验</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="projectName" label="项目名称" width="280">
+        <template slot-scope="{ row }">
+          <span style="color: #979797">{{ row.projectName }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="contractName" label="合同段" width="150">
+        <template slot-scope="{ row }">
+          <span style="color: #979797">{{ row.contractName }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="taskName" label="任务名称">
+        <template slot-scope="{ row }">
+          <span style="font-weight: bolder">{{ row.taskName }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="userName" label="任务人" width="120">
+         <template slot-scope="{ row }">
+          <span style="font-weight: bolder">{{ row.userName }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="signType" label="任务类型" width="120">
+        <template slot-scope="{ row }">
+          <span v-if="row.type == 1" class="task-tag">个人证书</span>
+          <span v-else class="task-tag">企业证书</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="createTime" label="任务开始时间" width="120">
+      </el-table-column>
+      <el-table-column prop="startTime" label="电签开始时间" width="120">
+      </el-table-column>
+      <el-table-column prop="finishTime" label="预计完成时间" width="120">
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      v-if="query.taskType == 2"
+      hide-on-single-page
+      style="float: right"
+      background
+      class="martop20 marbottom20"
+      layout="total, prev, pager, next, jumper, sizes"
+      :total="orderTotal"
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page="query.pageIndex"
+      :page-size="query.pageSize"
+    >
+    </el-pagination>
+  </basic-container>
+</template>
+
+<script>
+import {
+  getTaskBatchCount,
+  getTaskBatchPage,
+  getTaskBatchPageOrder,
+  queryProjectList,
+} from "@/api/certificate/list";
+import { findContractByProjectId } from "@/api/manager/contractinfo";
+
+export default {
+  data() {
+    return {
+      query: {
+        pageIndex: 1,
+        pageSize: 20,
+        contractId: null,
+        projectId: null,
+        taskName: "",
+        taskType: 1,
+        type: null,
+      },
+      projectOptions: [],
+      contractOptions: [],
+      tableData: [],
+      orderTotal: 0,
+      runTotal: 0,
+      status: null,
+    };
+  },
+  created() {
+    this.init();
+  },
+  methods: {
+    init() {
+      this.queryProjectList();
+      this.getCount();
+      this.listPage();
+    },
+    async getCount() {
+      const { data: res } = await getTaskBatchCount({
+        projectId: this.query.projectId,
+        contractId: this.query.contractId,
+        type: this.query.type,
+        taskName: this.query.taskName,
+      });
+
+      this.orderTotal = res.data.orderTotal;
+      this.runTotal = res.data.runTotal;
+      this.status = res.data.status;
+    },
+    async queryProjectList() {
+      const { data: res } = await queryProjectList();
+      if (res.code == 200) {
+        this.projectOptions = res.data;
+      }
+    },
+    // 根据项目ID获取合同段选项
+    async queryContractList(pId) {
+      const { data: res } = await findContractByProjectId(pId);
+      if (res.code === 200) {
+        this.contractOptions = res.data;
+      }
+    },
+    handleSizeChange(val) {
+      this.query.pageSize = val;
+      this.listPage();
+    },
+    handleCurrentChange(val) {
+      this.query.pageIndex = val;
+      this.listPage();
+    },
+    taskTypeChange(el) {
+      this.query.taskType = el.name;
+      this.listPage();
+    },
+    initSearch() {
+      this.query = {
+        ...this.query,
+        pageIndex: 1,
+        pageSize: 20,
+        contractId: null,
+        projectId: null,
+        taskName: "",
+        type: null,
+      };
+      this.listPage();
+      this.getCount();
+    },
+
+    async listPage() {
+      if (this.query.taskType == 1) {
+        this.listPageRun();
+      } else {
+        this.listPageOrder();
+      }
+    },
+    async listPageRun() {
+      const { data: res } = await getTaskBatchPage({
+        projectId: this.query.projectId,
+        contractId: this.query.contractId,
+        type: this.query.type,
+        taskType: this.query.taskType,
+        taskName: this.query.taskName,
+      });
+
+      if (res.code === 200) {
+        this.tableData = res.data;
+        this.runTotal = res.data.length;
+      }
+    },
+    async listPageOrder() {
+      //分页获取证书列表数据
+      const { data: res } = await getTaskBatchPageOrder({
+        current: this.query.pageIndex,
+        size: this.query.pageSize,
+        projectId: this.query.projectId,
+        contractId: this.query.contractId,
+        type: this.query.type,
+        taskType: this.query.taskType,
+        taskName: this.query.taskName,
+      });
+
+      if (res.code === 200) {
+        this.tableData = res.data.records;
+        this.orderTotal = res.data.total;
+      }
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.certificate-monitor-container {
+  .title-box {
+    display: flex;
+    align-items: center;
+    margin-bottom: 12px;
+    .tag {
+      padding: 6px 12px;
+      font-size: 12px;
+      color: #fff;
+      border-radius: 20px;
+      line-height: 1;
+    }
+    .box-title {
+      font-size: 20px;
+      font-weight: 700;
+      margin-left: 10px;
+    }
+  }
+
+  .table-box {
+    position: relative;
+    .search-box {
+      position: absolute;
+      z-index: 1;
+      right: 0;
+      display: flex;
+      align-items: center;
+      gap: 10px;
+    }
+
+    .task-tag{
+      background-color: #1369e9;
+      padding: 2px 10px;
+      border-radius: 4px;
+    }
+  }
+}
+
+// .tableList {
+//   ::v-deep th.el-table__cell {
+//     font-size: 16px !important;
+//   }
+// }
+</style>