liuyg
2021-08-07 49e8a69a09a1b33545b77eb47b3a8f8d1ce0c261
样式
29 files modified
4 files added
9340 ■■■■■ changed files
src/router/views/index.js 1206 ●●●● patch | view | raw | blame | history
src/styles/element-ui.scss 11 ●●●●● patch | view | raw | blame | history
src/views/applyexam/index.vue 1390 ●●●● patch | view | raw | blame | history
src/views/desk/notice.vue 28 ●●●● patch | view | raw | blame | history
src/views/dispatch/data.js 3 ●●●● patch | view | raw | blame | history
src/views/dispatch/dispatch.vue 66 ●●●● patch | view | raw | blame | history
src/views/dispatch/dispatchChildoperable.vue 65 ●●●● patch | view | raw | blame | history
src/views/dispatch/dispatchChildoperableSee.vue 855 ●●●●● patch | view | raw | blame | history
src/views/exam/performance.vue 904 ●●●● patch | view | raw | blame | history
src/views/exam/singleperformance.vue 400 ●●●●● patch | view | raw | blame | history
src/views/exam/startexam.vue 868 ●●●● patch | view | raw | blame | history
src/views/exam/subject.vue 674 ●●●● patch | view | raw | blame | history
src/views/onSiteInspection/company.vue 2 ●●● patch | view | raw | blame | history
src/views/onSiteInspection/securityStaff.vue 2 ●●● patch | view | raw | blame | history
src/views/people/data.js 595 ●●●●● patch | view | raw | blame | history
src/views/people/expression.vue 560 ●●●●● patch | view | raw | blame | history
src/views/people/job.vue 558 ●●●●● patch | view | raw | blame | history
src/views/recruitmentManagement/data.js 3 ●●●● patch | view | raw | blame | history
src/views/recruitmentManagement/index.vue 60 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/car.js 2 ●●● patch | view | raw | blame | history
src/views/securityEquipment/car.vue 60 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/equipments.js 14 ●●●●● patch | view | raw | blame | history
src/views/securityEquipment/equipments.vue 60 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/gun.js 5 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/gun.vue 60 ●●●● patch | view | raw | blame | history
src/views/securityGuard/data.js 5 ●●●● patch | view | raw | blame | history
src/views/securityGuard/securityGuardDetail.vue 4 ●●● patch | view | raw | blame | history
src/views/securityUnit/data.js 6 ●●●● patch | view | raw | blame | history
src/views/securityUnit/index.vue 176 ●●●● patch | view | raw | blame | history
src/views/trainExam/data.js 286 ●●●● patch | view | raw | blame | history
src/views/traincompany/index.vue 1 ●●●● patch | view | raw | blame | history
src/views/trainingRegistration/data.js 312 ●●●● patch | view | raw | blame | history
src/views/trainingRegistration/index.vue 99 ●●●● patch | view | raw | blame | history
src/router/views/index.js
@@ -5,812 +5,812 @@
    component: Layout,
    redirect: '/wel/index',
    children: [{
      path: 'index',
      name: '首页',
      meta: {
        i18n: 'dashboard'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/wel/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: 'dashboard',
        name: '控制台',
        meta: {
            i18n: 'dashboard',
            menu: false,
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
    }]
  }, {
}, {
    path: '/test',
    component: Layout,
    redirect: '/test/index',
    children: [{
      path: 'index',
      name: '测试页',
      meta: {
        i18n: 'test'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/util/test')
        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: '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: '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: '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: '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: '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: 'detail/:processInstanceId/:businessId',
        name: '请假流程详情',
        meta: {
            i18n: 'work'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
    }]
  }, {
}, {
    path: '/securityAnalysis',
    component: Layout,
    redirect: '/securityAnalysis/index',
    children: [{
      path: 'index',
      name: '保安单位情况智能分析',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
        path: 'index',
        name: '保安单位情况智能分析',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
    }]
  }, {
}, {
    path: '/recruitmentManagement',
    component: Layout,
    redirect: '/recruitmentManagement/index',
    children: [{
      path: 'index',
      name: '招聘管理',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
        path: 'index',
        name: '招聘管理',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
    }]
  }, {
}, {
    path: '/securityUnit',
    component: Layout,
    redirect: '/securityUnit/index',
    children: [{
      path: 'index',
      name: '保安单位信息',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
        path: 'index',
        name: '保安单位信息',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
    }]
  }, {
}, {
    path: '/securityGuard',
    component: Layout,
    redirect: '/securityGuard/securityGuard',
    children: [{
      path: 'index',
      name: '保安员查询',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
        path: 'index',
        name: '保安员查询',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
    }]
  }, {
}, {
    path: '/securityGuardDetail',
    component: Layout,
    redirect: '/securityGuardDetail/index',
    children: [{
      path: 'index',
      name: '保安员详情',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
        path: 'index',
        name: '保安员详情',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
    }]
  }, {
}, {
    path: '/resource',
    component: Layout,
    redirect: '/resource/attach',
    children: [{
      path: 'attach',
      name: '附件上传',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/resource/attach')
        path: 'attach',
        name: '附件上传',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/resource/attach')
    }]
  }, {
}, {
    path: '/securityUnitChild',
    component: Layout,
    redirect: '/securityUnitChild/index',
    children: [{
      path: 'index',
      name: '保安单位详情',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
        path: 'index',
        name: '保安单位详情',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
    }]
  }, {
}, {
    path: '/securityGuard',
    component: Layout,
    redirect: '/securityGuard/securityGuard',
    children: [{
      path: 'index',
      name: '保安员管理',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
        path: 'index',
        name: '保安员管理',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
    }]
  },
  // {
  //     path: '/dispatch/dispatch',
  //     component: Layout,
  //     redirect: '/dispatch/dispatch',
  //     children: [{
  //         path: 'index',
  //         name: '派遣服务管理',
  //         meta: {
  //             i18n: 'dict'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
  //     }]
  // },
  {
},
// {
//     path: '/dispatch/dispatch',
//     component: Layout,
//     redirect: '/dispatch/dispatch',
//     children: [{
//         path: 'index',
//         name: '派遣服务管理',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
//     }]
// },
{
    path: '/desk',
    component: Layout,
    redirect: '/desk/notice',
    children: [{
      path: 'index',
      name: '通知公告',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/desk/notice')
        path: 'index',
        name: '通知公告',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/desk/notice')
    }]
  },
  {
},
{
    path: '/workreport',
    component: Layout,
    redirect: '/workreport/workreport',
    children: [{
      path: 'workreport',
      name: '发起的汇报',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/workreport/workreport')
        path: 'workreport',
        name: '发起的汇报',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/workreport/workreport')
    }]
  },
  {
},
{
    path: '/workreport',
    component: Layout,
    redirect: '/workreport/workreply',
    children: [{
      path: 'workreply',
      name: '接收的汇报',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/workreport/workreply')
        path: 'workreply',
        name: '接收的汇报',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/workreport/workreply')
    }]
  }, {
}, {
    path: '/resource',
    component: Layout,
    redirect: '/resource/attachCopy',
    children: [{
      path: 'attachCopy',
      name: '保安单位附件上传',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/resource/attachCopy')
        path: 'attachCopy',
        name: '保安单位附件上传',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/resource/attachCopy')
    }]
  },
  // {
  //     path: '/dispatch',
  //     component: Layout,
  //     redirect: '/dispatch/dispatch',
  //     children: [{
  //         path: 'dispatch',
  //         name: '派遣单位管理',
  //         meta: {
  //             i18n: 'dispatch'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
  //     }, {
  //         path: 'dispatchChildoperable',
  //         name: '派遣记录管理',
  //         meta: {
  //             i18n: 'dispatch'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
  //     }]
  // },
  // {
  //     path: '/dispatchChild',
  //     component: Layout,
  //     redirect: '/dispatchChild/index',
  //     children: [{
  //         path: 'index',
  //         name: '派遣服务记录',
  //         meta: {
  //             i18n: 'dict'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
  //     }]
  // },
  // {
  //     path: '/equipments',
  //     component: Layout,
  //     redirect: '/equipments/index',
  //     children: [{
  //         path: 'index',
  //         name: '保安公司装备管理',
  //         meta: {
  //             i18n: 'dict'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
  //     }]
  // }, {
  //     path: '/car',
  //     component: Layout,
  //     redirect: '/car/index',
  //     children: [{
  //         path: 'index',
  //         name: '保安公司车辆管理',
  //         meta: {
  //             i18n: 'dict'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/car/index')
  //     }]
  // }, {
  //     path: '/gun',
  //     component: Layout,
  //     redirect: '/gun/index',
  //     children: [{
  //         path: 'index',
  //         name: '保安公司枪支管理',
  //         meta: {
  //             i18n: 'dict'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/gun/index')
  //     }]
  // },
  // {
  //     path: '/securityEquipment',
  //     component: Layout,
  //     redirect: '/securityEquipment',
  //     children: [{
  //         path: 'equipments',
  //         name: '装备管理',
  //         meta: {
  //             i18n: 'securityEquipment'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
  //     }, {
  //         path: 'car',
  //         name: '车辆管理',
  //         meta: {
  //             i18n: 'car'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
  //     }, {
  //         path: 'gun',
  //         name: '车辆管理',
  //         meta: {
  //             i18n: 'gun'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
  //     }]
  // },
  {
},
// {
//     path: '/dispatch',
//     component: Layout,
//     redirect: '/dispatch/dispatch',
//     children: [{
//         path: 'dispatch',
//         name: '派遣单位管理',
//         meta: {
//             i18n: 'dispatch'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
//     }, {
//         path: 'dispatchChildoperable',
//         name: '派遣记录管理',
//         meta: {
//             i18n: 'dispatch'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
//     }]
// },
// {
//     path: '/dispatchChild',
//     component: Layout,
//     redirect: '/dispatchChild/index',
//     children: [{
//         path: 'index',
//         name: '派遣服务记录',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
//     }]
// },
// {
//     path: '/equipments',
//     component: Layout,
//     redirect: '/equipments/index',
//     children: [{
//         path: 'index',
//         name: '保安公司装备管理',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
//     }]
// }, {
//     path: '/car',
//     component: Layout,
//     redirect: '/car/index',
//     children: [{
//         path: 'index',
//         name: '保安公司车辆管理',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/car/index')
//     }]
// }, {
//     path: '/gun',
//     component: Layout,
//     redirect: '/gun/index',
//     children: [{
//         path: 'index',
//         name: '保安公司枪支管理',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/gun/index')
//     }]
// },
// {
//     path: '/securityEquipment',
//     component: Layout,
//     redirect: '/securityEquipment',
//     children: [{
//         path: 'equipments',
//         name: '装备管理',
//         meta: {
//             i18n: 'securityEquipment'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
//     }, {
//         path: 'car',
//         name: '车辆管理',
//         meta: {
//             i18n: 'car'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
//     }, {
//         path: 'gun',
//         name: '车辆管理',
//         meta: {
//             i18n: 'gun'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
//     }]
// },
{
    path: '/trainingRegistration',
    component: Layout,
    redirect: '/trainingRegistration/index',
    children: [{
      path: 'index',
      name: '保安培训报名管理',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
        path: 'index',
        name: '保安培训报名管理',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
    }]
  }, {
}, {
    path: '/securityAnalysis',
    component: Layout,
    redirect: '/securityAnalysis/index',
    children: [{
      path: 'index',
      name: '保安单位情况智能分析',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
        path: 'index',
        name: '保安单位情况智能分析',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
    }]
  }, {
}, {
    path: '/recruitmentManagement',
    component: Layout,
    redirect: '/recruitmentManagement/index',
    children: [{
      path: 'index',
      name: '招聘管理',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
        path: 'index',
        name: '招聘管理',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
    }]
  }, {
}, {
    path: '/securityUnit',
    component: Layout,
    redirect: '/securityUnit/index',
    children: [{
      path: 'index',
      name: '保安单位信息',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
        path: 'index',
        name: '保安单位信息',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
    }]
  }, {
}, {
    path: '/securityGuard',
    component: Layout,
    redirect: '/securityGuard/securityGuard',
    children: [{
      path: 'index',
      name: '保安员查询',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
        path: 'index',
        name: '保安员查询',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
    }]
  }, {
}, {
    path: '/securityGuardDetail',
    component: Layout,
    redirect: '/securityGuardDetail/index',
    children: [{
      path: 'index',
      name: '保安员详情',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
        path: 'index',
        name: '保安员详情',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
    }]
  }, {
}, {
    path: '/resource',
    component: Layout,
    redirect: '/resource/attach',
    children: [{
      path: 'attach',
      name: '附件上传',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/resource/attach')
        path: 'attach',
        name: '附件上传',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/resource/attach')
    }]
  }, {
}, {
    path: '/securityUnitChild',
    component: Layout,
    redirect: '/securityUnitChild/index',
    children: [{
      path: 'index',
      name: '保安单位详情',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
        path: 'index',
        name: '保安单位详情',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
    }]
  }, {
}, {
    path: '/securityGuard',
    component: Layout,
    redirect: '/securityGuard/securityGuard',
    children: [{
      path: 'index',
      name: '保安员管理',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
        path: 'index',
        name: '保安员管理',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
    }]
  },
  // {
  //     path: '/dispatch/dispatch',
  //     component: Layout,
  //     redirect: '/dispatch/dispatch',
  //     children: [{
  //         path: 'index',
  //         name: '派遣服务管理',
  //         meta: {
  //             i18n: 'dict'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
  //     }]
  // },
  {
},
// {
//     path: '/dispatch/dispatch',
//     component: Layout,
//     redirect: '/dispatch/dispatch',
//     children: [{
//         path: 'index',
//         name: '派遣服务管理',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
//     }]
// },
{
    path: '/desk',
    component: Layout,
    redirect: '/desk/notice',
    children: [{
      path: 'index',
      name: '通知公告',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/desk/notice')
        path: 'index',
        name: '通知公告',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/desk/notice')
    }]
  }, {
}, {
    path: '/dispatch',
    component: Layout,
    redirect: '/dispatch/dispatch',
    children: [{
      path: 'dispatch',
      name: '派遣单位管理',
      meta: {
        i18n: 'dispatch'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
        path: 'dispatch',
        name: '派遣单位管理',
        meta: {
            i18n: 'dispatch'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
    }, {
      path: 'dispatchChildoperable',
      name: '派遣记录管理',
      meta: {
        i18n: 'dispatch'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
        path: 'dispatchChildoperable',
        name: '派遣记录管理',
        meta: {
            i18n: 'dispatch'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
    }]
  }, {
}, {
    path: '/dispatchChild',
    component: Layout,
    redirect: '/dispatchChild/index',
    children: [{
      path: 'index',
      name: '派遣服务记录',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
        path: 'index',
        name: '派遣服务记录',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
    }]
  }, {
}, {
    path: '/applyexam',
    redirect: '/applyexam/papers',
    component: Layout,
    children: [{
      path: 'papers',
      name: '准考证信息',
      meta: {
        i18n: 'index',
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/applyexam/papers')
        path: 'papers',
        name: '准考证信息',
        meta: {
            i18n: 'index',
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/applyexam/papers')
    }]
  },
  // {
  //     path: '/equipments',
  //     component: Layout,
  //     redirect: '/equipments/index',
  //     children: [{
  //         path: 'index',
  //         name: '保安公司装备管理',
  //         meta: {
  //             i18n: 'dict'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
  //     }]
  // }, {
  //     path: '/car',
  //     component: Layout,
  //     redirect: '/car/index',
  //     children: [{
  //         path: 'index',
  //         name: '保安公司车辆管理',
  //         meta: {
  //             i18n: 'dict'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/car/index')
  //     }]
  // }, {
  //     path: '/gun',
  //     component: Layout,
  //     redirect: '/gun/index',
  //     children: [{
  //         path: 'index',
  //         name: '保安公司枪支管理',
  //         meta: {
  //             i18n: 'dict'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/gun/index')
  //     }]
  // },
  // {
  //     path: '/securityEquipment',
  //     component: Layout,
  //     redirect: '/securityEquipment',
  //     children: [{
  //         path: 'equipments',
  //         name: '装备管理',
  //         meta: {
  //             i18n: 'securityEquipment'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
  //     }, {
  //         path: 'car',
  //         name: '车辆管理',
  //         meta: {
  //             i18n: 'car'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
  //     }, {
  //         path: 'gun',
  //         name: '车辆管理',
  //         meta: {
  //             i18n: 'gun'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
  //     }]
  // },
  {
},
// {
//     path: '/equipments',
//     component: Layout,
//     redirect: '/equipments/index',
//     children: [{
//         path: 'index',
//         name: '保安公司装备管理',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
//     }]
// }, {
//     path: '/car',
//     component: Layout,
//     redirect: '/car/index',
//     children: [{
//         path: 'index',
//         name: '保安公司车辆管理',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/car/index')
//     }]
// }, {
//     path: '/gun',
//     component: Layout,
//     redirect: '/gun/index',
//     children: [{
//         path: 'index',
//         name: '保安公司枪支管理',
//         meta: {
//             i18n: 'dict'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/gun/index')
//     }]
// },
// {
//     path: '/securityEquipment',
//     component: Layout,
//     redirect: '/securityEquipment',
//     children: [{
//         path: 'equipments',
//         name: '装备管理',
//         meta: {
//             i18n: 'securityEquipment'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
//     }, {
//         path: 'car',
//         name: '车辆管理',
//         meta: {
//             i18n: 'car'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
//     }, {
//         path: 'gun',
//         name: '车辆管理',
//         meta: {
//             i18n: 'gun'
//         },
//         component: () =>
//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
//     }]
// },
{
    path: '/trainingRegistration',
    component: Layout,
    redirect: '/trainingRegistration/index',
    children: [{
      path: 'index',
      name: '保安培训报名',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
        path: 'index',
        name: '保安培训报名',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
    }]
  },
  {
},
{
    path: '/trainExam',
    component: Layout,
    redirect: '/trainExam/index',
    children: [{
      path: 'index',
      name: '考试申请',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/trainExam/index')
        path: 'index',
        name: '考试申请',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/trainExam/index')
    }]
  },
  {
},
{
    path: '/applyexam',
    redirect: '/applyexam/index',
    component: Layout,
    children: [{
      path: 'index',
      name: '报名考试',
      meta: {
        i18n: 'index',
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/applyexam/index')
        path: 'index',
        name: '报名考试',
        meta: {
            i18n: 'index',
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/applyexam/index')
    }]
  },
  {
},
{
    path: '/applydetailed',
    redirect: '/applydetailed/index',
    component: Layout,
    children: [{
      path: 'index',
      name: '报名清册',
      meta: {
        i18n: 'index',
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/applydetailed/index')
        path: 'index',
        name: '报名清册',
        meta: {
            i18n: 'index',
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/applydetailed/index')
    }]
  },
  {
},
{
    path: '/trainApply',
    redirect: '/trainApply/index',
    component: Layout,
    children: [{
      path: 'index',
      name: '报名清册',
      meta: {
        i18n: 'index',
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/trainApply/index')
        path: 'index',
        name: '报名清册',
        meta: {
            i18n: 'index',
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/trainApply/index')
    }]
  },
  {
},
{
    path: '/startexam',
    redirect: '/startexam/index',
    component: Layout,
    children: [{
      path: 'index',
      name: '开始考试',
      meta: {
        i18n: 'index',
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/startexam/index')
        path: 'index',
        name: '开始考试',
        meta: {
            i18n: 'index',
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/startexam/index')
    }]
  },
  {
},
{
    path: '/titleDetails',
    component: () =>
      import( /* webpackChunkName: "views" */ '@/views/exam/topicDetails')
  },
  {
        import( /* webpackChunkName: "views" */ '@/views/exam/topicDetails')
},
{
    path: '',
    component: Layout,
    children: [{
      path: '/exam/subjects/:id',
      component: () =>
        import('@/views/exam/examSubjects'),
      name: '题目管理',
      title: '题目管理',
      noCache: true
        path: '/exam/subjects/:id',
        component: () =>
            import('@/views/exam/examSubjects'),
        name: '题目管理',
        title: '题目管理',
        noCache: true
    }]
  },
  {
},
{
    path: '',
    component: Layout,
    children: [{
      path: '/startexam/:id',
      component: () =>
        import('@/views/startexam/index'),
      name: '开始考试',
      title: '开始考试',
      noCache: true
        path: '/startexam/:id',
        component: () =>
            import('@/views/startexam/index'),
        name: '开始考试',
        title: '开始考试',
        noCache: true
    }]
  },
  {
},
{
    path: '/traincompany',
    component: Layout,
    redirect: '/traincompany/index',
    children: [{
      path: 'index',
      name: '培训公司查询',
      meta: {
        i18n: 'dict'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/traincompany/index')
        path: 'index',
        name: '培训公司查询',
        meta: {
            i18n: 'dict'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/traincompany/index')
    }]
  }, {
}, {
    path: '/dispatchChildoperableSee',
    component: Layout,
    redirect: '/dispatchChildoperableSee/index',
    children: [{
      path: 'index',
      name: '派遣记录',
      meta: {
        i18n: 'index'
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperableSee')
        path: 'index',
        name: '派遣记录',
        meta: {
            i18n: 'index'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperableSee')
    }]
  },
  // {
  //     path: '/people',
  //     component: Layout,
  //     redirect: '/people/expression',
  //     children: [{
  //         path: 'expression',
  //         name: '表现记录查看',
  //         meta: {
  //             i18n: 'expression'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/people/expression')
  //     }]
  // }, {
  //     path: '/people',
  //     component: Layout,
  //     redirect: '/people/job',
  //     children: [{
  //         path: 'job',
  //         name: '从业记录查看',
  //         meta: {
  //             i18n: 'job'
  //         },
  //         component: () =>
  //             import( /* webpackChunkName: "views" */ '@/views/people/job')
  //     }]
  // },
},
{
    path: '/expression',
    component: Layout,
    redirect: '/expression/index',
    children: [{
        path: 'index',
        name: '表现记录查看',
        meta: {
            i18n: 'index'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/people/expression')
    }]
}, {
    path: '/job',
    component: Layout,
    redirect: '/job/index',
    children: [{
        path: 'index',
        name: '从业记录查看',
        meta: {
            i18n: 'index'
        },
        component: () =>
            import( /* webpackChunkName: "views" */ '@/views/people/job')
    }]
},
]
src/styles/element-ui.scss
@@ -217,6 +217,17 @@
//     position: relative;
//     top: 5px;
// }
// 搜索栏按钮左移
// .avue-form__group:nth-last-child() .el-form-item__content {
//   margin-left: 30px !important;
//   width: 165px !important;
// }
.avue-form__menu--center .el-button {
    float: left;
}
.avue-form__menu--center .el-button:nth-child(1) {
    margin-left: 30px;
}
//左侧导航栏
.avue-logo {
src/views/applyexam/index.vue
@@ -6,30 +6,30 @@
 * menu-name 报名考试
 */
<template>
    <el-row class="morpheus-box-apply-exam">
        <el-col :span="24" class="hasButOne">
            <el-card>
                <div class="exam-card-body">
                    <avue-crud v-model="obj"
                               class="company-box"
                               :option="questionBankOption"
                               :search.sync="questionBankSearch"
                               :table-loading="questionBankLoading"
                               :data="questionBankData"
                               ref="questionBankCrud"
                               :page.sync="questionBankPage"
                               @on-load="questionBankOnLoad"
                               @selection-change="questionBankSelectionChange"
                               @search-change="questionBankSearchChange"
                               @search-reset="questionBankSearchReset"
                               @current-change="questionBankCurrentChange"
                               @size-change="questionBankSizeChange"
                               @row-save="questionBankRowSave"
                               @row-del="questionBankRowDel">
                        <!-- 自定义按钮 -->
                        <!-- <template slot="menuLeft">
  <el-row class="morpheus-box-apply-exam">
    <el-col :span="24" class="hasButOne">
      <el-card>
        <div class="exam-card-body">
          <avue-crud
            v-model="obj"
            class="company-box"
            :option="questionBankOption"
            :search.sync="questionBankSearch"
            :table-loading="questionBankLoading"
            :data="questionBankData"
            ref="questionBankCrud"
            :page.sync="questionBankPage"
            @on-load="questionBankOnLoad"
            @selection-change="questionBankSelectionChange"
            @search-change="questionBankSearchChange"
            @search-reset="questionBankSearchReset"
            @current-change="questionBankCurrentChange"
            @size-change="questionBankSizeChange"
            @row-save="questionBankRowSave"
            @row-del="questionBankRowDel"
          >
            <!-- 自定义按钮 -->
            <!-- <template slot="menuLeft">
                            <el-button type="danger"
                                       size="mini"
                                       icon="el-icon-delete"
@@ -50,7 +50,7 @@
                            </el-button>
                        </template> -->
                        <!-- <template slot="menuLeft">
            <!-- <template slot="menuLeft">
                            <el-button type="danger"
                                       size="small"
                                       icon="el-icon-delete"
@@ -58,674 +58,710 @@
                            </el-button>
                        </template> -->
                        <template slot-scope="{ type,row }" slot="menu">
                            <el-button
                            :type="type"
                            size="small"
                            icon="el-icon-refresh-left"
                            :disabled="row.applyStatus==4"
                            @click="handleCancel(row)"
                            >取消报名
                            </el-button>
                            <el-button
                            style="display:none"
                            :type="type"
                            size="small"
                            icon="el-icon-folder-checked"
                            :disabled="row.applyStatus==4"
                            @click="handleAudit(row)"
                            >审核
                            </el-button>
                            <el-button
                            :type="type"
                            size="small"
                            icon="el-icon-receiving"
                            :disabled="row.applyStatus==4"
                            @click="handlePrint(row)"
                            >准考证打印
                            </el-button>
                        </template>
            <template slot-scope="{ type, row }" slot="menu">
              <el-button
                :type="type"
                size="small"
                icon="el-icon-refresh-left"
                :disabled="row.applyStatus == 4"
                @click="handleCancel(row)"
                >取消报名
              </el-button>
              <el-button
                style="display: none"
                :type="type"
                size="small"
                icon="el-icon-folder-checked"
                :disabled="row.applyStatus == 4"
                @click="handleAudit(row)"
                >审核
              </el-button>
              <el-button
                :type="type"
                size="small"
                icon="el-icon-receiving"
                :disabled="row.applyStatus == 4"
                @click="handlePrint(row)"
                >准考证打印
              </el-button>
            </template>
          </avue-crud>
                    </avue-crud>
                    <el-dialog title="考试资格审核"
                                :visible.sync="dialogFormVisible"
                                modal-append-to-body='false'
                                append-to-body='true'
                                :close-on-click-model="true">
                        <avue-form ref="formAudit" v-model="Audit" :option="optionAudit" @reset-change="emptytChange" @submit="submit"></avue-form>
                    </el-dialog>
                </div>
            </el-card>
        </el-col>
    </el-row>
          <el-dialog
            title="考试资格审核"
            :visible.sync="dialogFormVisible"
            modal-append-to-body="false"
            append-to-body="true"
            :close-on-click-model="true"
          >
            <avue-form
              ref="formAudit"
              v-model="Audit"
              :option="optionAudit"
              @reset-change="emptytChange"
              @submit="submit"
            ></avue-form>
          </el-dialog>
        </div>
      </el-card>
    </el-col>
  </el-row>
</template>
<script>
import {
    getApplyList,
    addApply,
    updateApply,
    remove
  getApplyList,
  addApply,
  updateApply,
  remove,
} from "@/api/examapi/applyexam";
import { mapState } from 'vuex'
import { mapState } from "vuex";
var DIC = {
    applyStatus: [{
        label: '已报名',
        value: 2
    }, {
        label: '已取消',
        value: 4
    }]
}
  applyStatus: [
    {
      label: "已报名",
      value: 2,
    },
    {
      label: "已取消",
      value: 4,
    },
  ],
};
export default {
    data () {
        return {
            dialogFormVisible:false,
            Audit:{},
            optionAudit:{
                height: "auto",
                calcHeight: 30,
                dialogWidth: 1000,
                tip: false,
                searchShow: true,
                searchMenuSpan: 6,
                border: false,
                index: true,
                stripe: true,
                viewBtn: true,
                addBtn: true,
                selection: true,
                excelBtn: false,
                menuWidth: 230,
                dialogClickModal: false,
                column: [
                    {
                        label: "审核状态",
                        search: true,
                        searchSpan: 5,
                        span: 24,
                        prop: "auditStatus",
                        slot: true,
                        editDisplay: false,
                        addDisplay: false,
                        type: "select",
                        rules: [{
                            required: true,
                            message: "请选择审核类型",
                            trigger: "blur"
                        }],
                        dicData: [{
                                label: "审核通过",
                                value: 2
                            },
                            {
                                label: "不通过",
                                value: 3
                            }
                        ]
                    },
                    {
                        label: "审核明细",
                        span: 24,
                        type: "textarea",
                        prop: "auditDetail"
                    }
                ],
            },
            questionBankOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: true,
                selection: true,
                menu: true,
                // 导出按钮
                // excelBtn: true,
                viewBtn: false,
                // title: '题库',
                align: 'center',
                height: 'auto',
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                indexLabel: '#',
                //dialogType: 'drawer',
                dialogClickModal: false,
                //tree 默认展开
                defaultExpandAll:true,
                // 操作栏宽度
                menuWidth: 200,
                column: [
                    {
                        label: "保安姓名",
                        prop: "userId",
                        type: 'tree',
                        dicUrl: '',
                        search: true,
                        hide:true,
                        slot: true,
                        searchSpan:5,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        props: {
                            label: "title",
                            value: "id",
                        },
                        rules: [{
                            required: true,
                            message: "请选择保安姓名",
                            trigger: "blur"
                        }],
                        width:80
                    },
                    {
                        label: "保安姓名",
                        prop: "name",
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: false,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        viewDisplay:true,
                        props: {
                            label: "title",
                            value: "id",
                        },
                        rules: [{
                            required: true,
                            message: "请选择保安姓名",
                            trigger: "blur"
                        }]
                    },
                    {
                        label: "考试名称",
                        prop: "examName",
                        type: 'tree',
                        dicUrl: '/api/exampaper/page-tree?examType=1',
                        // search: true,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        props: {
                            label: "examName",
                            value: "id",
                        },
                        rules: [{
                            required: true,
                            message: "请选择试卷名称",
                            trigger: "blur"
                        }],
                        width: 220
                    },
                    {
                        label: "所属公司",
                        prop: "deptName",
                        search: true,
                        slot: true,
                        searchSpan:5,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请选择所属公司",
                            trigger: "blur"
                        }],
                        width: 220
                    },
                    {
                        label: "准考证号",
                        prop: "candidateNo",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请选择准考证号",
                            trigger: "blur"
                        }],
                        width: 100
                    },
                    {
                        label: "身份证号",
                        prop: "idCardNo",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请选择准考证号",
                            trigger: "blur"
                        }],
                        width: 150
                    },
                    {
                        label: "报考证件",
                        prop: "applyCard",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请选择准考证号",
                            trigger: "blur"
                        }],
                    },
                    // {
                    //     label: "试卷分数",
                    //     prop: "paperScore",
                    //     slot: true,
                    //     // 表单新增时是否禁止
                    //     addDisabled: false,
                    //     // 表单新增时是否可见
                    //     addDisplay: false,
                    //     // 表单新增时是否为查看模式
                    //     addDetail: false,
                    //     // 表单编辑时是否禁止
                    //     editDisabled: true,
                    //     // 表单编辑时是否可见
                    //     editDisplay: true,
                    //     // 表单编辑时是否为查看模式
                    //     editDetail: false
                    // },
                    {
                        label: "报名时间",
                        prop: "applyTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
                        // 表单新增时是否禁止
                        addDisabled: true,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        value: (new Date().getFullYear() + '-' + (new Date().getMonth() + 1 < 10
                            ? "0" + (new Date().getMonth() + 1)
                            : new Date().getMonth() + 1) + '-' + (new Date().getDate() < 10
                                ? "0" + new Date().getDate()
                                : new Date().getDate()) + ' ' + (new Date().getHours() < 10
                                    ? "0" + new Date().getHours()
                                    : new Date().getHours()) + ':' + (new Date().getMinutes() < 10
                                        ? "0" + new Date().getMinutes()
                                        : new Date().getMinutes()) + ':' + (new Date().getSeconds() < 10
                                            ? "0" + new Date().getSeconds()
                                            : new Date().getSeconds())),
                        width: 150
                    },
                    {
                        label: "考试时间",
                        prop: "examTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        width: 150
                    },{
                        label: "报名状态",
                        prop: "applyStatus",
                        slot: true,
                        searchSpan:5,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        dicData:DIC.applyStatus,
                        search:true,
                        type:"select"
                    },
                    // {
                    //     label: "审核状态",
                    //     prop: "examinationType",
                    //     slot: true,
                    //     searchSpan:5,
                    //     // 表单新增时是否禁止
                    //     addDisabled: false,
                    //     // 表单新增时是否可见
                    //     addDisplay: false,
                    //     // 表单新增时是否为查看模式
                    //     addDetail: false,
                    //     // 表单编辑时是否禁止
                    //     editDisabled: false,
                    //     // 表单编辑时是否可见
                    //     editDisplay: true,
                    //     // 表单编辑时是否为查看模式
                    //     editDetail: false,
                    //     dicData:[
                    //         {
                    //             label: '待审核',
                    //             value: "1"
                    //         },
                    //         {
                    //             label: '审核通过',
                    //             value: "2"
                    //         },
                    //         {
                    //             label: '审核不通过',
                    //             value: "3"
                    //         }
                    //         ],
                    //     search:true,
                    //     type:"select"
                    // },
                ]
            },
            questionBankSearch: {},
            questionBankLoading: true,
            questionBankData: [
  data() {
    return {
      dialogFormVisible: false,
      Audit: {},
      optionAudit: {
        height: "auto",
        calcHeight: 30,
        dialogWidth: 1000,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
        border: false,
        index: true,
        stripe: true,
        viewBtn: true,
        addBtn: true,
        selection: true,
        excelBtn: false,
        menuWidth: 230,
        dialogClickModal: false,
        column: [
          {
            label: "审核状态",
            search: true,
            searchSpan: 5,
            span: 24,
            prop: "auditStatus",
            slot: true,
            editDisplay: false,
            addDisplay: false,
            type: "select",
            rules: [
              {
                required: true,
                message: "请选择审核类型",
                trigger: "blur",
              },
            ],
            questionBankPage: {
                pageSize: 10,
                currentPage: 1,
                total: 16
            dicData: [
              {
                label: "审核通过",
                value: 2,
              },
              {
                label: "不通过",
                value: 3,
              },
            ],
          },
          {
            label: "审核明细",
            span: 24,
            type: "textarea",
            prop: "auditDetail",
          },
        ],
      },
      questionBankOption: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: true,
        selection: true,
        menu: true,
        // 导出按钮
        // excelBtn: true,
        viewBtn: false,
        // title: '题库',
        align: "center",
        height: "auto",
        calcHeight: 80,
        tip: false,
        searchShow: true,
        searchMenuSpan: 4,
        index: true,
        indexLabel: "#",
        //dialogType: 'drawer',
        dialogClickModal: false,
        //tree 默认展开
        defaultExpandAll: true,
        // 操作栏宽度
        menuWidth: 200,
        column: [
          {
            label: "保安姓名",
            prop: "userId",
            type: "tree",
            dicUrl: "",
            search: true,
            hide: true,
            slot: true,
            searchSpan: 4,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            props: {
              label: "title",
              value: "id",
            },
            questionBankQuery: {},
            questionBankSelectionList: [],
            rules: [
              {
                required: true,
                message: "请选择保安姓名",
                trigger: "blur",
              },
            ],
            width: 80,
          },
          {
            label: "保安姓名",
            prop: "name",
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: false,
            // 表单编辑时是否为查看模式
            editDetail: false,
            viewDisplay: true,
            props: {
              label: "title",
              value: "id",
            },
            rules: [
              {
                required: true,
                message: "请选择保安姓名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "考试名称",
            prop: "examName",
            type: "tree",
            dicUrl: "/api/exampaper/page-tree?examType=1",
            // search: true,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            props: {
              label: "examName",
              value: "id",
            },
            rules: [
              {
                required: true,
                message: "请选择试卷名称",
                trigger: "blur",
              },
            ],
            width: 220,
          },
          {
            label: "所属公司",
            prop: "deptName",
            search: true,
            slot: true,
            searchSpan: 4,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请选择所属公司",
                trigger: "blur",
              },
            ],
            width: 220,
          },
          {
            label: "准考证号",
            prop: "candidateNo",
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请选择准考证号",
                trigger: "blur",
              },
            ],
            width: 100,
          },
          {
            label: "身份证号",
            prop: "idCardNo",
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请选择准考证号",
                trigger: "blur",
              },
            ],
            width: 150,
          },
          {
            label: "报考证件",
            prop: "applyCard",
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请选择准考证号",
                trigger: "blur",
              },
            ],
          },
          // {
          //     label: "试卷分数",
          //     prop: "paperScore",
          //     slot: true,
          //     // 表单新增时是否禁止
          //     addDisabled: false,
          //     // 表单新增时是否可见
          //     addDisplay: false,
          //     // 表单新增时是否为查看模式
          //     addDetail: false,
          //     // 表单编辑时是否禁止
          //     editDisabled: true,
          //     // 表单编辑时是否可见
          //     editDisplay: true,
          //     // 表单编辑时是否为查看模式
          //     editDetail: false
          // },
          {
            label: "报名时间",
            prop: "applyTime",
            type: "datetime",
            // span: 24,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            // 表单新增时是否禁止
            addDisabled: true,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            value:
              new Date().getFullYear() +
              "-" +
              (new Date().getMonth() + 1 < 10
                ? "0" + (new Date().getMonth() + 1)
                : new Date().getMonth() + 1) +
              "-" +
              (new Date().getDate() < 10
                ? "0" + new Date().getDate()
                : new Date().getDate()) +
              " " +
              (new Date().getHours() < 10
                ? "0" + new Date().getHours()
                : new Date().getHours()) +
              ":" +
              (new Date().getMinutes() < 10
                ? "0" + new Date().getMinutes()
                : new Date().getMinutes()) +
              ":" +
              (new Date().getSeconds() < 10
                ? "0" + new Date().getSeconds()
                : new Date().getSeconds()),
            width: 150,
          },
          {
            label: "考试时间",
            prop: "examTime",
            type: "datetime",
            // span: 24,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            width: 150,
          },
          {
            label: "报名状态",
            prop: "applyStatus",
            slot: true,
            searchSpan: 4,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            dicData: DIC.applyStatus,
            search: true,
            type: "select",
          },
          // {
          //     label: "审核状态",
          //     prop: "examinationType",
          //     slot: true,
          //     searchSpan:5,
          //     // 表单新增时是否禁止
          //     addDisabled: false,
          //     // 表单新增时是否可见
          //     addDisplay: false,
          //     // 表单新增时是否为查看模式
          //     addDetail: false,
          //     // 表单编辑时是否禁止
          //     editDisabled: false,
          //     // 表单编辑时是否可见
          //     editDisplay: true,
          //     // 表单编辑时是否为查看模式
          //     editDetail: false,
          //     dicData:[
          //         {
          //             label: '待审核',
          //             value: "1"
          //         },
          //         {
          //             label: '审核通过',
          //             value: "2"
          //         },
          //         {
          //             label: '审核不通过',
          //             value: "3"
          //         }
          //         ],
          //     search:true,
          //     type:"select"
          // },
        ],
      },
      questionBankSearch: {},
      questionBankLoading: true,
      questionBankData: [],
      questionBankPage: {
        pageSize: 10,
        currentPage: 1,
        total: 16,
      },
      questionBankQuery: {},
      questionBankSelectionList: [],
    };
  },
  watch: {
    "form.examname": {
      // form是表单或者表格绑定的数据集,v-model='form'
      handler(val) {
        if (val) {
          //地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始
          var address = val.formattedAddress.toString();
          if (address.search("县") != -1) {
            this.form.address = address.substring(
              address.indexOf("县") + 1,
              address.length
            );
          }
          if (address.search("区") != -1) {
            this.form.address = address.substring(
              address.indexOf("区") + 1,
              address.length
            );
          }
        }
      },
      immediate: true,
    },
  },
  created() {
    console.log(this.userInfo);
    watch: {
        "form.examname": {
            // form是表单或者表格绑定的数据集,v-model='form'
            handler (val) {
                if (val) {
                    //地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始
                    var address = val.formattedAddress.toString();
                    if (address.search("县") != -1) {
                        this.form.address = address.substring(
                            address.indexOf("县") + 1,
                            address.length
                        );
                    }
                    if (address.search("区") != -1) {
                        this.form.address = address.substring(
                            address.indexOf("区") + 1,
                            address.length
                        );
                    }
                }
            },
            immediate: true,
        },
    },
    created () {
      console.log(this.userInfo)
      if (this.userInfo.role_name.indexOf('ksxtadmin') != -1) {
        this.questionBankOption.column[0].dicUrl = "/api/blade-system/dept/lazy-tree-user?parentId="
      } else {
        this.questionBankOption.column[0].dicUrl = "/api/blade-system/dept/lazy-tree-user?parentId=" + this.userInfo.dept_id
      }
    },
    mounted () {
    },
    computed: {
        ...mapState({
            userInfo: state => state.user.userInfo
        }),
        ids () {
            let ids = [];
            this.questionBankSelectionList.forEach(ele => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
    },
    methods: {
        //准考证查看
        handlePrint(row) {
            var obj = row;
            obj["name"] = "准考证信息";
            this.$router.push({
                path: `/applyexam/papers`,
                query: obj,
            });
        },
        questionBankOnLoad (page, params = {}) {
            this.questionBankLoading = false;
            getApplyList(page.currentPage, page.pageSize, Object.assign(params, this.questionBankQuery)).then(res => {
                const data = res.data.data;
                this.questionBankPage.total = data.total;
                this.questionBankData = data.records;
                this.questionBankLoading = false;
                this.questionBankSelectionClear();
            });
        },
        questionBankSelectionClear () {
            this.questionBankSelectionList = [];
            this.$refs.questionBankCrud.toggleSelection();
        },
        questionBankSelectionChange (list) {
            this.questionBankSelectionList = list;
        },
        questionBankSearchChange (params, done) {
            this.questionBankQuery = params;
            this.questionBankPage.currentPage = 1;
            this.questionBankOnLoad(this.questionBankPage, params);
            done();
        },
        questionBankSearchReset () {
            this.questionBankQuery = {};
            this.questionBankOnLoad(this.questionBankPage);
        },
        questionBankCurrentChange (currentPage) {
            this.questionBankPage.currentPage = currentPage;
        },
        questionBankSizeChange (pageSize) {
            this.questionBankPage.pageSize = pageSize;
        },
        // 新增
        questionBankRowSave (row, done, loading) {
            // debugger;
            addApply({ userId: row.userId, examId: row.examName, applyTime: row.applyTime }).then((res) => {
                this.questionBankOnLoad(this.questionBankPage);
                if(res.data.data==201){
                    this.$message({
                    type: "warning",
                    message:"已报名,不能重复报名",
                    });
                }else if(res.data.data==201){
                    this.$message({
                    type: "warning",
                    message:"报名失败",
                    });
                }else{
                    this.$message({
                    type: "success",
                    message:"报名成功",
                    });
                }
                done();
            }, error => {
                window.console.log(error);
                loading();
            });
        },
        questionBankRowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
                    });
                });
        },
        //取消报名
        handleCancel(row){
            this.$confirm("确定取消报名?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            })
                .then(() => {
                    row.applyStatus = 4;
                    return updateApply(row);
                })
                .then(() => {
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
                    });
                });
        },
        questionBankHandleDelete () {
            if (this.questionBankSelectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
                    });
                    this.$refs.questionBankCrud.toggleSelection();
                });
        },
        handleAudit(row){
            this.dialogFormVisible = true;
            this.Audit = row;
        },
    if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) {
      this.questionBankOption.column[0].dicUrl =
        "/api/blade-system/dept/lazy-tree-user?parentId=";
    } else {
      this.questionBankOption.column[0].dicUrl =
        "/api/blade-system/dept/lazy-tree-user?parentId=" +
        this.userInfo.dept_id;
    }
}
  },
  mounted() {},
  computed: {
    ...mapState({
      userInfo: (state) => state.user.userInfo,
    }),
    ids() {
      let ids = [];
      this.questionBankSelectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
  },
  methods: {
    //准考证查看
    handlePrint(row) {
      var obj = row;
      obj["name"] = "准考证信息";
      this.$router.push({
        path: `/applyexam/papers`,
        query: obj,
      });
    },
    questionBankOnLoad(page, params = {}) {
      this.questionBankLoading = false;
      getApplyList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.questionBankQuery)
      ).then((res) => {
        const data = res.data.data;
        this.questionBankPage.total = data.total;
        this.questionBankData = data.records;
        this.questionBankLoading = false;
        this.questionBankSelectionClear();
      });
    },
    questionBankSelectionClear() {
      this.questionBankSelectionList = [];
      this.$refs.questionBankCrud.toggleSelection();
    },
    questionBankSelectionChange(list) {
      this.questionBankSelectionList = list;
    },
    questionBankSearchChange(params, done) {
      this.questionBankQuery = params;
      this.questionBankPage.currentPage = 1;
      this.questionBankOnLoad(this.questionBankPage, params);
      done();
    },
    questionBankSearchReset() {
      this.questionBankQuery = {};
      this.questionBankOnLoad(this.questionBankPage);
    },
    questionBankCurrentChange(currentPage) {
      this.questionBankPage.currentPage = currentPage;
    },
    questionBankSizeChange(pageSize) {
      this.questionBankPage.pageSize = pageSize;
    },
    // 新增
    questionBankRowSave(row, done, loading) {
      // debugger;
      addApply({
        userId: row.userId,
        examId: row.examName,
        applyTime: row.applyTime,
      }).then(
        (res) => {
          this.questionBankOnLoad(this.questionBankPage);
          if (res.data.data == 201) {
            this.$message({
              type: "warning",
              message: "已报名,不能重复报名",
            });
          } else if (res.data.data == 201) {
            this.$message({
              type: "warning",
              message: "报名失败",
            });
          } else {
            this.$message({
              type: "success",
              message: "报名成功",
            });
          }
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    questionBankRowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    //取消报名
    handleCancel(row) {
      this.$confirm("确定取消报名?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          row.applyStatus = 4;
          return updateApply(row);
        })
        .then(() => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    questionBankHandleDelete() {
      if (this.questionBankSelectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.questionBankCrud.toggleSelection();
        });
    },
    handleAudit(row) {
      this.dialogFormVisible = true;
      this.Audit = row;
    },
  },
};
</script>
<style lang="scss" scoped>
src/views/desk/notice.vue
@@ -36,10 +36,7 @@
        <el-tag>{{ row.categoryName }}</el-tag>
      </template>
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          :size="size"
          :type="type"
          @click="handleUploadPage(row)"
        <el-button :size="size" :type="type" @click="handleUploadPage(row)"
          >附件上传
        </el-button>
        <!-- <el-button
@@ -98,6 +95,7 @@
            label: "通知标题",
            prop: "title",
            span: 24,
            searchSpan: 4,
            row: true,
            search: true,
            rules: [
@@ -123,7 +121,7 @@
            defaultValue: "1",
            prop: "category",
            search: true,
            searchSpan:5,
            searchSpan: 4,
            rules: [
              {
                required: true,
@@ -235,10 +233,10 @@
          : (that.deptCategory = false);
        // if (that.deptCategory) {
          that.permissionAdd = this.permission.notice_add;
          that.permissionView = this.permission.notice_view;
          that.permissionDelete = this.permission.notice_delete;
          that.permissionEdit = this.permission.notice_edit;
        that.permissionAdd = this.permission.notice_add;
        that.permissionView = this.permission.notice_view;
        that.permissionDelete = this.permission.notice_delete;
        that.permissionEdit = this.permission.notice_edit;
        // }
      });
    },
@@ -374,16 +372,16 @@
          : (that.deptCategory = false);
        // if (that.deptCategory) {
          that.permissionAdd = this.permission.notice_add;
          that.permissionView = this.permission.notice_view;
          that.permissionDelete = this.permission.notice_delete;
          that.permissionEdit = this.permission.notice_edit;
        that.permissionAdd = this.permission.notice_add;
        that.permissionView = this.permission.notice_view;
        that.permissionDelete = this.permission.notice_delete;
        that.permissionEdit = this.permission.notice_edit;
        // }
        const { releaseTimeRange } = this.query;
        // if (that.deptCategory) {
          params["deptId"] = this.deptId;
          params["jurisdiction"] = this.jurisdiction;
        params["deptId"] = this.deptId;
        params["jurisdiction"] = this.jurisdiction;
        // }
        let values = {
          ...params,
src/views/dispatch/data.js
@@ -14,6 +14,7 @@
        prop: "name",
        search: true,
        searchLabelWidth: 110,
        searchSpan: 4,
        // span: 12,
        labelWidth: 110,
    },
@@ -54,7 +55,7 @@
        // addDisplay: true,
        // editDisplay: true,
        // viewDisplay: true,
        // searchSpan: 5,
        // searchSpan: 4,
        // dicUrl: "/api/blade-system/dict-biz/dictionary?code=experienceType",
        // props: {
        //     label: "dictValue",
src/views/dispatch/dispatch.vue
@@ -1,35 +1,36 @@
<template>
  <div class="dispatch">
    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
  <basic-container>
    <div class="dispatch">
      <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
    <span v-if="typeTABS.prop === 'tab1'"> -->
    <avue-crud
      :option="option"
      :data="data"
      :page.sync="page"
      ref="crudrec"
      @on-load="onLoad"
      :table-loading="loading"
      @row-save="rowSave"
      @search-change="searchChange"
      @search-reset="searchReset"
      @row-update="rowUpdate"
      @row-del="rowDel"
      @selection-change="selectionChange"
      @refresh-change="refreshChange"
      @row-click="rowClick"
    >
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          plain
          icon="el-icon-delete"
          @click="handleDelete"
          >删 除
        </el-button>
      </template>
    </avue-crud>
    <!-- </span>
      <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
        @row-click="rowClick"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud>
      <!-- </span>
    <span v-else-if="typeTABS.prop === 'tab2'">
      <avue-crud
        :option="option1"
@@ -58,8 +59,9 @@
        </template>
      </avue-crud>
    </span> -->
    <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
  </div>
      <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
    </div>
  </basic-container>
</template> 
<script>
src/views/dispatch/dispatchChildoperable.vue
@@ -1,8 +1,9 @@
<template>
  <div class="dispatchChildoperable">
    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs> -->
    <!-- <span v-if="typeTABS.prop === 'tab1'"> -->
    <!-- <avue-crud
  <basic-container>
    <div class="dispatchChildoperable">
      <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs> -->
      <!-- <span v-if="typeTABS.prop === 'tab1'"> -->
      <!-- <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
@@ -28,28 +29,28 @@
          </el-button>
        </template>
      </avue-crud> -->
    <!-- <avue-form ref="form" v-model="obj0" :option="option0"> -->
    <!-- <template slot-scope="scope" slot="menuForm">
      <!-- <avue-form ref="form" v-model="obj0" :option="option0"> -->
      <!-- <template slot-scope="scope" slot="menuForm">
          <el-button @click="tip">自定义按钮</el-button>
        </template> -->
    <!-- </avue-form>
      <!-- </avue-form>
    </span>
    <span v-else-if="typeTABS.prop === 'tab2'"> -->
    <avue-crud
      :option="option1"
      :data="data1"
      :page.sync="page1"
      ref="crudrec1"
      :table-loading="loading1"
      @row-save="rowSave1"
      @search-change="searchChange1"
      @search-reset="searchReset1"
      @row-update="rowUpdate1"
      @row-del="rowDel1"
      @selection-change="selectionChange1"
      @refresh-change="refreshChange1"
    >
      <!-- <template slot="menuLeft">
      <avue-crud
        :option="option1"
        :data="data1"
        :page.sync="page1"
        ref="crudrec1"
        :table-loading="loading1"
        @row-save="rowSave1"
        @search-change="searchChange1"
        @search-reset="searchReset1"
        @row-update="rowUpdate1"
        @row-del="rowDel1"
        @selection-change="selectionChange1"
        @refresh-change="refreshChange1"
      >
        <!-- <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
@@ -59,10 +60,11 @@
            >删 除
          </el-button>
        </template> -->
    </avue-crud>
    <!-- </span> -->
    <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
  </div>
      </avue-crud>
      <!-- </span> -->
      <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
    </div>
  </basic-container>
</template> 
<script>
@@ -228,11 +230,10 @@
            label: "保安公司",
            prop: "deptId",
            labelWidth: 120,
            searchLabelWidth: 120,
            search: true,
            overHidden: true,
            type: "tree",
            searchSpan: 5,
            searchSpan: 4,
            cascaderItem: ["name"],
            // cascaderItem: ["city", "area"],
            props: {
@@ -255,7 +256,7 @@
            labelWidth: 120,
            type: "tree",
            search: true,
            searchSpan: 5,
            searchSpan: 4,
            cell: true,
            props: {
              label: "realName",
@@ -342,7 +343,7 @@
            format: "yyyy-MM-dd hh:mm:ss",
            valueFormat: "yyyy-MM-dd hh:mm:ss",
            labelWidth: 120,
            searchSpan: 4,
            searchSpan: 5,
            // search: true,
            overHidden: true,
            rules: [
@@ -370,7 +371,7 @@
              },
            ],
            // search: true,
            // searchSpan: 5,
            // searchSpan: 4,
            // overHidden: true
          },
          {
@@ -381,7 +382,7 @@
            valueFormat: "yyyy-MM-dd",
            searchValue: [this.getStartTime(), this.getEndTime()],
            searchRange: true,
            searchSpan: 5,
            searchSpan: 4,
            hide: true,
            addDisplay: false,
            editDisplay: false,
src/views/dispatch/dispatchChildoperableSee.vue
@@ -1,10 +1,857 @@
<template>
  <div>543435</div>
</template>
  <basic-container>
    <div class="dispatchChildoperable">
      <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs> -->
      <!-- <span v-if="typeTABS.prop === 'tab1'"> -->
      <!-- <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud> -->
      <!-- <avue-form ref="form" v-model="obj0" :option="option0"> -->
      <!-- <template slot-scope="scope" slot="menuForm">
          <el-button @click="tip">自定义按钮</el-button>
        </template> -->
      <!-- </avue-form>
    </span>
    <span v-else-if="typeTABS.prop === 'tab2'"> -->
      <avue-crud
        :option="option1"
        :data="data1"
        :page.sync="page1"
        ref="crudrec1"
        :table-loading="loading1"
        @row-save="rowSave1"
        @search-change="searchChange1"
        @search-reset="searchReset1"
        @row-update="rowUpdate1"
        @row-del="rowDel1"
        @selection-change="selectionChange1"
        @refresh-change="refreshChange1"
      >
        <!-- <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete1"
            >删 除
          </el-button>
        </template> -->
      </avue-crud>
      <!-- </span> -->
      <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
    </div>
  </basic-container>
</template>
<script>
export default {};
// import { column, column1 } from "./data";
import {
  // getdata,
  // adddata,
  // update,
  // remove,
  getdata1,
  adddata1,
  update1,
  remove1,
} from "@/api/dispatch/dispatch";
import { getDept } from "@/api/system/dept";
import { mapGetters } from "vuex";
export default {
  data() {
    let baseUrl = "https://cli.avuejs.com/api/area";
    return {
      // typeTABS: {}, //标签页
      // optionTABS: {
      //   column: [
      //     {
      //       // icon: "el-icon-info",
      //       label: "派遣服务公司详情",
      //       prop: "tab1",
      //     },
      //     {
      //       // icon: "el-icon-info",
      //       label: "派遣记录",
      //       prop: "tab2",
      //     },
      //     // {
      //     //   icon: "el-icon-info",
      //     //   label: "选项卡3",
      //     //   prop: "tab3",
      //     // },
      //   ],
      // },
      // id: "", //记录归属id
      // //基本信息
      // //保安单位信息表单
      // obj0: {
      //   // title: "我是头部标题",
      // },
      // option0: {
      //   emptyBtn: false,
      //   submitBtn: false,
      //   gutter: 30,
      //   column: column,
      // },
      // loading: true, //派遣服务公司登记
      // selectionList: [],
      // page: {
      //   pageSize: 10,
      //   currentPage: 1,
      //   total: 0,
      // },
      // query: {},
      // data: [],
      // option: {
      //   card: true,
      //   searchSize: "mini",
      //   searchMenuSpan: 6,
      //   height: 547,
      //   menuWidth: 160,
      //   align: "center",
      //   selection: true,
      //   column: column,
      // },
      deptCategory: "",
      deptId: "",
      loading1: true, //派遣记录
      selectionList1: [],
      page1: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query1: {},
      data1: [],
      option1: {
        // card: true,
        tip: false,
        index: true,
        // menu: false,
        searchSize: "mini",
        searchMenuSpan: 8,
        height: 623,
        cellBtn: false,
        // addBtn: false,
        // menuWidth: 160,
        align: "center",
        selection: true,
        column: [
          // 派遣服务公司登记
          // {
          //     label: "id",
          //     prop: "id",
          //     // search: true,
          //     // searchSpan: 4,
          //     // overHidden: true,
          //     // hide: true,
          //     // editDisplay: false,
          //     // addDisplay: false
          // },
          // {
          //   label: "保安公司",
          //   prop: "deptId",
          //   labelWidth: 120,
          //   searchLabelWidth: 120,
          //   searchSpan: 4,
          //   dicUrl:
          //     "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
          //   props: {
          //     label: "title",
          //     value: "id",
          //   },
          //   search: true,
          //   overHidden: true,
          //   type: "select",
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入保安公司",
          //       trigger: "blur",
          //     },
          //   ],
          // },
          {
            label: "派遣单位",
            prop: "dispatcherCompany",
            addDisplay: false,
            editDisplay: false,
          },
          // {
          //   label: "派遣单位",
          //   prop: "dispatcherUnitId",
          //   labelWidth: 120,
          //   searchLabelWidth: 120,
          //   dicUrl: "/api/dispatcherUnit/page-tree",
          //   props: {
          //     label: "name",
          //     value: "id",
          //   },
          //   hide: true,
          //   searchSpan: 4,
          //   search: true,
          //   overHidden: true,
          //   type: "tree",
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入保安公司",
          //       trigger: "blur",
          //     },
          //   ],
          // },
          {
            label: "保安公司",
            prop: "deptId",
            labelWidth: 120,
            search: true,
            overHidden: true,
            type: "tree",
            searchSpan: 4,
            cascaderItem: ["name"],
            // cascaderItem: ["city", "area"],
            props: {
              label: "title",
              value: "id",
            },
            dicUrl: `/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697`,
            rules: [
              {
                required: true,
                message: "请输入保安公司",
                trigger: "blur",
              },
            ],
          },
          {
            width: 120,
            label: "保安员",
            prop: "name",
            labelWidth: 120,
            type: "tree",
            search: true,
            searchSpan: 4,
            cell: true,
            props: {
              label: "realName",
              value: "id",
            },
            dicUrl: `/api/blade-user/page-security-unit?deptId={{deptId}}`,
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          // {
          //   width: 120,
          //   label: "保安人名称",
          //   prop: "area",
          //   cell: true,
          //   props: {
          //     label: "name",
          //     value: "code",
          //   },
          //   type: "select",
          //   dicUrl: `${baseUrl}/getArea/{{key}}`,
          //   rules: [
          //     {
          //       required: true,
          //       message: "请选择地区",
          //       trigger: "blur",
          //     },
          //   ],
          // },
          // {
          //   label: "保安人名称",
          //   prop: "name",
          //   search: true,
          //   searchSpan: 4,
          //   labelWidth: 120,
          //   searchLabelWidth: 120,
          //   // overHidden: true
          //   type: "tree",
          //   dicUrl: "/api/blade-user/page-security",
          //   props: {
          //     label: "realName",
          //     value: "postId",
          //   },
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入保安人名称",
          //       trigger: "click",
          //     },
          //   ],
          // },
          {
            label: "身份证",
            prop: "cardid",
            labelWidth: 120,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入身份证",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          // {
          //     label: "派遣人",
          //     prop: "dispatcher",
          //     // search: true,
          //     // searchSpan: 4,
          //     // overHidden: true
          // },
          {
            label: "派遣时间",
            prop: "dispatchertime",
            type: "date",
            format: "yyyy-MM-dd hh:mm:ss",
            valueFormat: "yyyy-MM-dd hh:mm:ss",
            labelWidth: 120,
            searchSpan: 4,
            // search: true,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入派遣时间",
                trigger: "click",
              },
            ],
            // overHidden: true
          },
          {
            label: "结束时间",
            prop: "endTime",
            type: "date",
            format: "yyyy-MM-dd hh:mm:ss",
            valueFormat: "yyyy-MM-dd hh:mm:ss",
            labelWidth: 120,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入结束时间",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          {
            label: "派遣时间",
            prop: "releaseTimeRange",
            type: "datetime",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            searchValue: [this.getStartTime(), this.getEndTime()],
            searchRange: true,
            searchSpan: 5,
            hide: true,
            addDisplay: false,
            editDisplay: false,
            viewDisplay: false,
            search: true,
            rules: [
              {
                required: true,
                message: "请输入时间",
                trigger: "blur",
              },
            ],
          },
          {
            label: "派遣地址",
            prop: "dispatcheraddress",
            labelWidth: 120,
            rules: [
              {
                required: true,
                message: "请输入派遣地址",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          // {
          //     label: "派遣单位",
          //     // prop: "dispatcherCompany",
          //     prop: "tenantName",
          //     type: "tree",
          //     dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
          //     props: {
          //         label: "title",
          //         value: "id"
          //     },
          //     // hide: !website.tenantMode,
          //     // addDisplay: website.tenantMode,
          //     // editDisplay: website.tenantMode,
          //     // viewDisplay: website.tenantMode,
          //     rules: [{
          //         required: true,
          //         message: "请输入派遣单位",
          //         trigger: "click"
          //     }],
          // search: true,
          // searchSpan: 4,
          // overHidden: true
          // },
        ],
      },
    };
  },
  computed: {
    // ids() {
    //   let ids = [];
    //   this.selectionList.forEach((ele) => {
    //     ids.push(ele.id);
    //   });
    //   return ids.join(",");
    // },
    ...mapGetters(["userInfo"]),
    ids1() {
      let ids1 = [];
      this.selectionList1.forEach((ele) => {
        ids1.push(ele.id);
      });
      return ids1.join(",");
    },
  },
  methods: {
    handleChangeTABS(column) {
      this.typeTABS = column;
      if (column.prop == "tab1") {
        this.loading1 = false;
        // this.onLoad(this.page);
      } else if (column.prop == "tab2") {
        // this.loading = false;
        console.log(document.getElementsByClassName("el-card__body")[0]);
        this.onLoad1(this.page1); //第二个表格不会自动执行
      }
      // this.$message.success(JSON.stringify(column));
    },
    //派遣服务公司登记
    // sizeChange(val) {
    //   this.page1.currentPage = 1;
    //   this.page1.pageSize = val;
    //   // this.getData();
    //   this.onLoad(this.page, this.query);
    //   //   this.$message.success("行数" + val);
    // },
    // currentChange(val) {
    //   this.page1.currentPage = val;
    //   // this.getData();
    //   this.onLoad(this.page, this.query);
    //   //   this.$message.success("页码" + val);
    // },
    // rowSave(form, done, loading) {
    //   var that = this;
    //   var form = this.data[0];
    //   delete form.id;
    //   for (var k = 0; k < 13; k++) {
    //     adddata(form).then(
    //       (res) => {
    //         this.onLoad(this.page);
    //         this.$message({
    //           type: "success",
    //           message: "操作成功!",
    //         });
    //         done();
    //       },
    //       (error) => {
    //         window.console.log(error);
    //         loading();
    //       }
    //     );
    //   }
    // },
    // searchChange(params, done) {
    //   this.query = params;
    //   this.page.currentPage = 1;
    //   this.onLoad(this.page, params);
    //   done();
    // },
    // searchReset() {
    //   this.query = {};
    //   this.onLoad(this.page);
    // },
    // rowUpdate(row, index, done, loading) {
    //   console.log(row);
    //   update(row).then(
    //     () => {
    //       this.onLoad(this.page);
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!",
    //       });
    //       done();
    //     },
    //     (error) => {
    //       window.console.log(error);
    //       loading();
    //     }
    //   );
    // },
    // rowDel(row) {
    //   this.$confirm("确定将选择数据删除?", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning",
    //   })
    //     .then(() => {
    //       return remove(row.id);
    //     })
    //     .then(() => {
    //       this.onLoad(this.page);
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!",
    //       });
    //     });
    // },
    // selectionChange(list) {
    //   this.selectionList = list;
    // },
    // handleDelete() {
    //   if (this.selectionList.length === 0) {
    //     this.$message.warning("请选择至少一条数据");
    //     return;
    //   }
    //   this.$confirm("确定将选择数据删除?", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning",
    //   })
    //     .then(() => {
    //       return remove(this.ids);
    //     })
    //     .then(() => {
    //       this.onLoad(this.page);
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!",
    //       });
    //       this.$refs.crudrec.toggleSelection();
    //     });
    // },
    // refreshChange() {
    //   this.onLoad(this.page, this.query);
    // },
    // onLoad(page, params = {}) {
    //   this.loading = true;
    //   getdata(
    //     page.currentPage,
    //     page.pageSize,
    //     Object.assign(params, this.query)
    //   ).then((res) => {
    //     // console.log(res);
    //     const data = res.data.data;
    //     this.page.total = data.total;
    //     this.data = data.records;
    //     console.log(this.data);
    //     this.loading = false;
    //   });
    // },
    //派遣服务公司登记
    //派遣记录
    sizeChange1(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
      //   this.$message.success("行数" + val);
    },
    currentChange1(val) {
      this.page1.currentPage = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
      //   this.$message.success("页码" + val);
    },
    rowSave1(form, done, loading) {
      // var that = this;
      // var form = this.data1[0];
      // delete form.id;
      // for (var k = 0; k < 13; k++) {
      // form["deptId"] = form.tenantName;
      // form["tenantName"] = form.$tenantName;
      // form["dispatcherUnitId"] = this.id;
      // console.log(form);
      adddata1(form).then(
        (res) => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    searchChange1(params, done) {
      this.query1 = params;
      this.page1.currentPage = 1;
      this.onLoad1(this.page1, params);
      done();
    },
    searchReset1() {
      this.query = {};
      this.onLoad1(this.page1);
    },
    rowUpdate1(row, index, done, loading) {
      // row["deptId"] = row.tenantName;
      // row["tenantName"] = row.$tenantName;
      // row["dispatcherUnitId"] = this.id;
      // console.log(row, "row");
      update1(row).then(
        () => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel1(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove1(row.id);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    selectionChange1(list) {
      this.selectionList1 = list;
      // console.log(this.selectionList1.length);
    },
    handleDelete1() {
      console.log(this.selectionList1);
      if (this.selectionList1.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove1(this.ids1);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec1.toggleSelection();
        });
    },
    refreshChange1() {
      // console.log(4534)
      this.onLoad1(this.page1, this.query1);
    },
    getStartTime() {
      if (
        this.$route.query.startTime != undefined &&
        this.$route.query.startTime != null &&
        this.$route.query.startTime != ""
      ) {
        return this.$route.query.startTime;
      }
      return "";
    },
    getEndTime() {
      if (
        this.$route.query.endTime != undefined &&
        this.$route.query.endTime != null &&
        this.$route.query.endTime != ""
      ) {
        return this.$route.query.endTime;
      }
      return "";
    },
    //
    onLoad1(page, params = {}) {
      this.loading1 = true;
      // params["cardid"] = this.cardid;
      // params["name"] = this.name;
      // params["dispatcherCompany"] = this.dispatcherCompany;
      // params["dispatcherUnitId"] = this.id;
      // console.log(params, "get");
      // console.log(page);
      console.log(this.userInfo, "userInfo");
      var values;
      const { releaseTimeRange } = this.query1;
      if (releaseTimeRange) {
        values = {
          ...params,
          beginTime: releaseTimeRange[0],
          overTime: releaseTimeRange[1],
          ...this.query,
        };
        values.releaseTimeRange = null;
      } else {
        values = {
          ...params,
          ...this.query,
        };
      }
      //   values
      //   console.log(values);
      getdata1(
        page.currentPage,
        page.pageSize,
        // Object.assign(params, this.query)
        values
      ).then((res) => {
        // console.log(res);
        const data = res.data.data;
        this.page1.total = data.total;
        this.data1 = data.records;
        console.log(this.data1, 1);
        this.loading1 = false;
      });
    },
    //派遣记录
    // saveLock(name, val) {
    //   localStorage.setItem(name, val);
    // },
    // readLock(name) {
    //   return localStorage.getItem(name);
    // },
  },
  mounted() {
    this.onLoad1(this.page1, this.query1);
    //去掉缓存
    // this.typeTABS = this.optionTABS.column[0];
    // var row = {};
    // if (this.readLock("paqiandata") != null) {
    //   row = JSON.parse(this.readLock("paqiandata"));
    //   this.obj0.name = row.name;
    //   for (var k in row) {
    //     this.obj0[k] = row[k];
    //   }
    //   console.log(this.obj0, 11111111);
    //   this.id = row.id;
    //   if (this.readLock("paqiandataS") != null) {
    //     var b = JSON.parse(this.readLock("paqiandataS"));
    //     var i = 0;
    //     for (var k in b) {
    //       if (b[k].name == row.name) {
    //         i = 1;
    //       }
    //     }
    //     if (i == 1) {
    //       // console.log("存在");
    //     } else {
    //       // console.log("已删除");
    //       this.obj0 = {};
    //       this.obj0.name = row.name + " 该派遣单位已删除";
    //       window.localStorage.removeItem("paqiandata");
    //       this.id = 1244241;
    //     }
    //   }
    // } else {
    //   // console.log("no");
    //   this.obj0.name = " 未选择派遣单位";
    // }
  },
  // onLoad(page, params = {}) {
  //   this.deptId = JSON.parse(
  //       window.localStorage.getItem("saber-userInfo")
  //     ).content.dept_id;
  //     //获取当前用户部门信息,判断是否为公安,如果是公安,则只能查看公告信息
  //     var that = this;
  //     getDept(this.deptId).then((res) => {
  //       var deptCategory = res.data.data.deptCategory;
  //       deptCategory == 1
  //         ? (that.deptCategory = true)
  //         : (that.deptCategory = false);
  //       if (that.deptCategory) {
  //         params["deptId"] = this.deptId;
  //       }
  //       let values = {
  //         ...params,
  //       };
  //    })
  // }
};
</script>
<style>
<style lang="scss" scoped>
.dispatch {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
}
.el-collapse-item {
  padding-top: 15px !important;
}
</style>
src/views/exam/performance.vue
@@ -6,482 +6,484 @@
 * menu-name 成绩管理
 */
<template>
    <el-row class="morpheus-box">
        <el-col :span="24" class="recruitmentManagement">
            <el-card>
  <el-row class="morpheus-box">
    <el-col :span="24" class="recruitmentManagement">
      <el-card>
        <div class="exam-card-body">
          <avue-crud
            v-model="obj"
            class="company-box"
            :option="questionBankOption"
            :search.sync="questionBankSearch"
            :table-loading="questionBankLoading"
            :data="questionBankData"
            ref="questionBankCrud"
            :page.sync="questionBankPage"
            @on-load="questionBankOnLoad"
            @selection-change="questionBankSelectionChange"
            @search-change="questionBankSearchChange"
            @search-reset="questionBankSearchReset"
            @current-change="questionBankCurrentChange"
            @size-change="questionBankSizeChange"
            @row-update="questionBankRowUpdate"
          >
            <template slot-scope="{ row }" slot="learnGrade">
              {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
            </template>
                <div class="exam-card-body">
                    <avue-crud v-model="obj"
                               class="company-box"
                               :option="questionBankOption"
                               :search.sync="questionBankSearch"
                               :table-loading="questionBankLoading"
                               :data="questionBankData"
                               ref="questionBankCrud"
                               :page.sync="questionBankPage"
                               @on-load="questionBankOnLoad"
                               @selection-change="questionBankSelectionChange"
                               @search-change="questionBankSearchChange"
                               @search-reset="questionBankSearchReset"
                               @current-change="questionBankCurrentChange"
                               @size-change="questionBankSizeChange"
                               @row-update="questionBankRowUpdate">
                        <template slot-scope="{ row }"
                                  slot="learnGrade">
                            {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
                        </template>
                        <!-- 自定义按钮 -->
                        <template slot="menuLeft">
                            <!-- <el-button type="danger"
            <!-- 自定义按钮 -->
            <template slot="menuLeft">
              <!-- <el-button type="danger"
                                       size="mini"
                                       icon="el-icon-delete"
                                       plain
                                       @click="handleDelete">新增
                            </el-button> -->
                            <!-- <el-button type="danger"
              <!-- <el-button type="danger"
                                       size="mini"
                                       icon="el-icon-delete"
                                       plain
                                       @click="handleDelete">删除
                            </el-button> -->
                            <el-button
                                type="success"
                                size="small"
                                plain
                                icon="el-icon-upload2"
                                @click="handleImport"
                                >实操成绩导入
                            </el-button>
                        </template>
              <el-button
                type="success"
                size="small"
                plain
                icon="el-icon-upload2"
                @click="handleImport"
                >实操成绩导入
              </el-button>
            </template>
          </avue-crud>
                    </avue-crud>
                    <el-dialog
                        title="实操成绩导入"
                        append-to-body
                        :visible.sync="excelBox"
                        width="555px"
                        >
                        <avue-form
                            :option="excelOption"
                            v-model="excelForm"
                            :upload-after="uploadAfter"
                        >
                            <template slot="excelTemplate">
                            <el-button type="primary" @click="handleTemplate">
                                点击下载<i class="el-icon-download el-icon--right"></i>
                            </el-button>
                            </template>
                        </avue-form>
                    </el-dialog>
                </div>
            </el-card>
        </el-col>
    </el-row>
          <el-dialog
            title="实操成绩导入"
            append-to-body
            :visible.sync="excelBox"
            width="555px"
          >
            <avue-form
              :option="excelOption"
              v-model="excelForm"
              :upload-after="uploadAfter"
            >
              <template slot="excelTemplate">
                <el-button type="primary" @click="handleTemplate">
                  点击下载<i class="el-icon-download el-icon--right"></i>
                </el-button>
              </template>
            </avue-form>
          </el-dialog>
        </div>
      </el-card>
    </el-col>
  </el-row>
</template>
<script>
import {
    getList,
    update
} from "@/api/examapi/performance";
import { getList, update } from "@/api/examapi/performance";
export default {
  data() {
    var validatePass = (rule, value, callback) => {
      console.log(value);
      if (value == undefined || value == "") {
        callback(new Error("请输入实操成绩"));
        return;
      } else if (value !== "" && isNaN(value) == true) {
        callback(new Error("请输入数字"));
      } else if (value <= 0) {
        callback(new Error("分数设置请大于0"));
      } else if (value > 100) {
        callback(new Error("分数设置请小于100"));
      } else {
        callback();
      }
    };
    return {
      obj: {
        name: "张三",
      },
      excelBox: false,
      questionBankOption: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: true,
        addBtn: false,
        selection: false,
        // 导出按钮
        excelBtn: true,
        excelBtnText: "成绩导出",
        viewBtn: true,
        // title: '成绩',
        align: "center",
        height: "auto",
        calcHeight: 80,
        tip: false,
        searchShow: true,
        searchMenuSpan: 4,
        index: true,
        indexLabel: "序号",
        //dialogType: 'drawer',
        dialogClickModal: false,
        // 操作栏宽度
        menu: true,
        menuWidth: 136,
        labelWidth: 120,
    data () {
        var validatePass = (rule, value, callback) => {
            console.log(value)
            if (value == undefined || value == '') {
                callback(new Error('请输入实操成绩'));
                return;
            } else if (value !== '' && isNaN(value) == true) {
                callback(new Error('请输入数字'));
            } else if (value <= 0) {
                callback(new Error('分数设置请大于0'));
            } else if (value > 100) {
                callback(new Error('分数设置请小于100'));
            } else {
                callback();
            }
        };
        return {
            obj: {
                name: '张三',
            },
            excelBox:false,
            questionBankOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: true,
                addBtn: false,
                selection: false,
                // 导出按钮
                excelBtn: true,
                excelBtnText: '成绩导出',
                viewBtn: true,
                // title: '成绩',
                align: 'center',
                height: 'auto',
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                indexLabel: '序号',
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menu: true,
                menuWidth: 136,
                labelWidth: 120,
                column: [
                    {
                        label: "试卷名称",
                        prop: "examName",
                        search: true,
                        searchSpan: 5,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请输入试卷名称",
                            trigger: "blur"
                        }]
                    },
                    {
                        label: "保安姓名",
                        prop: "securityName",
                        search: true,
                        searchSpan: 4,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请输入保安姓名",
                            trigger: "blur"
                        }]
                    },
                    {
                        label: "所属公司",
                        prop: "companyName",
                        search: true,
                        searchSpan: 5,
                        // dicUrl: '/api/blade-system/dept/tree',
                        // props: {
                        //     label: "title",
                        //     value: "id",
                        // },
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请输入所属公司",
                            trigger: "blur"
                        }]
                    },
                    {
                        label: "考试时间",
                        prop: "examTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
                        width: 250,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                    },
                    {
                        label: "理论成绩",
                        prop: "theoryGrade",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                    },
                    {
                        label: "实操成绩",
                        prop: "learnGrade",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{ validator: validatePass, required: true, trigger: 'blur' }],
                    },
                    // {
                    //     label: "总成绩",
                    //     prop: "allGrade",
                    //     slot: true,
                    //     hide:true,
                    //     // 表单新增时是否禁止
                    //     addDisabled: false,
                    //     viewDisplay:false,
                    //     // 表单新增时是否可见
                    //     addDisplay: false,
                    //     // 表单新增时是否为查看模式
                    //     addDetail: false,
                    //     // 表单编辑时是否禁止
                    //     editDisabled: false,
                    //     // 表单编辑时是否可见
                    //     editDisplay: false,
                    //     // 表单编辑时是否为查看模式
                    //     editDetail: false,
                    //     rules: [{
                    //         required: true,
                    //         message: "请输入考试名称",
                    //         trigger: "blur"
                    //     }]
                    // },
                    {
                        label: "是否合格",
                        prop: "qualified",
                        type: 'select',
                        slot: true,
                        search: true,
                        searchSpan: 4,
                        dicData: [{
                            label: '合格',
                            value: 0
                        }, {
                            label: '不合格',
                            value: 1,
                        }, {
                            label: '暂未录实操成绩',
                            value: 2,
                        }],
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请输入考试名称",
                            trigger: "blur"
                        }]
                    },
                ]
            },
            questionBankSearch: {},
            questionBankLoading: true,
            questionBankData: [
        column: [
          {
            label: "试卷名称",
            prop: "examName",
            search: true,
            searchSpan: 4,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入试卷名称",
                trigger: "blur",
              },
            ],
            questionBankPage: {
                pageSize: 10,
                currentPage: 1,
                total: 16
          },
          {
            label: "保安姓名",
            prop: "securityName",
            search: true,
            searchSpan: 4,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入保安姓名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "所属公司",
            prop: "companyName",
            search: true,
            searchSpan: 4,
            // dicUrl: '/api/blade-system/dept/tree',
            // props: {
            //     label: "title",
            //     value: "id",
            // },
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入所属公司",
                trigger: "blur",
              },
            ],
          },
          {
            label: "考试时间",
            prop: "examTime",
            type: "datetime",
            // span: 24,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            width: 250,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
          },
          {
            label: "理论成绩",
            prop: "theoryGrade",
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
          },
          {
            label: "实操成绩",
            prop: "learnGrade",
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              { validator: validatePass, required: true, trigger: "blur" },
            ],
          },
          // {
          //     label: "总成绩",
          //     prop: "allGrade",
          //     slot: true,
          //     hide:true,
          //     // 表单新增时是否禁止
          //     addDisabled: false,
          //     viewDisplay:false,
          //     // 表单新增时是否可见
          //     addDisplay: false,
          //     // 表单新增时是否为查看模式
          //     addDetail: false,
          //     // 表单编辑时是否禁止
          //     editDisabled: false,
          //     // 表单编辑时是否可见
          //     editDisplay: false,
          //     // 表单编辑时是否为查看模式
          //     editDetail: false,
          //     rules: [{
          //         required: true,
          //         message: "请输入考试名称",
          //         trigger: "blur"
          //     }]
          // },
          {
            label: "是否合格",
            prop: "qualified",
            type: "select",
            slot: true,
            search: true,
            searchSpan: 4,
            dicData: [
              {
                label: "合格",
                value: 0,
              },
              {
                label: "不合格",
                value: 1,
              },
              {
                label: "暂未录实操成绩",
                value: 2,
              },
            ],
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入考试名称",
                trigger: "blur",
              },
            ],
          },
        ],
      },
      questionBankSearch: {},
      questionBankLoading: true,
      questionBankData: [],
      questionBankPage: {
        pageSize: 10,
        currentPage: 1,
        total: 16,
      },
      questionBankQuery: {},
      questionBankSelectionList: [],
      excelForm: {},
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "模板上传",
            prop: "excelFile",
            type: "upload",
            drag: true,
            loadText: "模板上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
            },
            questionBankQuery: {},
            questionBankSelectionList: [],
            excelForm: {},
            excelOption: {
                submitBtn: false,
                emptyBtn: false,
                column: [
                {
                    label: "模板上传",
                    prop: "excelFile",
                    type: "upload",
                    drag: true,
                    loadText: "模板上传中,请稍等",
                    span: 24,
                    propsHttp: {
                    res: "data",
                    },
                    tip: "请上传 .xls,.xlsx 标准格式文件",
                    action: "/api/examScore/import-examScore",
                },
                // {
                //     label: "数据覆盖",
                //     prop: "isCovered",
                //     type: "switch",
                //     align: "center",
                //     width: 80,
                //     dicData: [
                //     {
                //         label: "否",
                //         value: 0,
                //     },
                //     {
                //         label: "是",
                //         value: 1,
                //     },
                //     ],
                //     value: 0,
                //     slot: true,
                //     rules: [
                //     {
                //         required: true,
                //         message: "请选择是否覆盖",
                //         trigger: "blur",
                //     },
                //     ],
                // },
                {
                    label: "模板下载",
                    prop: "excelTemplate",
                    formslot: true,
                    span: 24,
                },
                ],
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/examScore/import-examScore",
          },
          // {
          //     label: "数据覆盖",
          //     prop: "isCovered",
          //     type: "switch",
          //     align: "center",
          //     width: 80,
          //     dicData: [
          //     {
          //         label: "否",
          //         value: 0,
          //     },
          //     {
          //         label: "是",
          //         value: 1,
          //     },
          //     ],
          //     value: 0,
          //     slot: true,
          //     rules: [
          //     {
          //         required: true,
          //         message: "请选择是否覆盖",
          //         trigger: "blur",
          //     },
          //     ],
          // },
          {
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24,
          },
        ],
      },
    };
  },
  created() {},
  mounted() {},
  methods: {
    questionBankOnLoad(page, params = {}) {
      this.questionBankLoading = false;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.questionBankPage.total = data.total;
        this.questionBankData = data.records;
        this.questionBankLoading = false;
        this.questionBankSelectionClear();
      });
    },
    questionBankSelectionClear() {
      this.questionBankSelectionList = [];
      this.$refs.questionBankCrud.toggleSelection();
    },
    questionBankSelectionChange(list) {
      this.questionBankSelectionList = list;
    },
    questionBankSearchChange(params, done) {
      this.questionBankQuery = params;
      this.questionBankPage.currentPage = 1;
      this.questionBankOnLoad(this.questionBankPage, params);
      done();
    },
    questionBankSearchReset() {
      this.questionBankQuery = {};
      this.questionBankOnLoad(this.questionBankPage);
    },
    questionBankCurrentChange(currentPage) {
      this.questionBankPage.currentPage = currentPage;
    },
    questionBankSizeChange(pageSize) {
      this.questionBankPage.pageSize = pageSize;
    },
    questionBankRowUpdate(row, index, done, loading) {
      update({
        theoryGrade: row.theoryGrade,
        learnGrade: row.learnGrade,
        id: row.id,
      }).then(
        () => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    created () {
    handleTemplate() {
      window.open(`/api/examScore/export-template`);
    },
    mounted () {
    handleImport() {
      this.excelBox = true;
    },
    methods: {
        questionBankOnLoad (page, params = {}) {
            this.questionBankLoading = false;
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
                const data = res.data.data;
                this.questionBankPage.total = data.total;
                this.questionBankData = data.records;
                this.questionBankLoading = false;
                this.questionBankSelectionClear();
            });
        },
        questionBankSelectionClear () {
            this.questionBankSelectionList = [];
            this.$refs.questionBankCrud.toggleSelection();
        },
        questionBankSelectionChange (list) {
            this.questionBankSelectionList = list;
        },
        questionBankSearchChange (params, done) {
            this.questionBankQuery = params;
            this.questionBankPage.currentPage = 1;
            this.questionBankOnLoad(this.questionBankPage, params);
            done();
        },
        questionBankSearchReset () {
            this.questionBankQuery = {};
            this.questionBankOnLoad(this.questionBankPage);
        },
        questionBankCurrentChange (currentPage) {
            this.questionBankPage.currentPage = currentPage;
        },
        questionBankSizeChange (pageSize) {
            this.questionBankPage.pageSize = pageSize;
        },
        questionBankRowUpdate (row, index, done, loading) {
            update({ theoryGrade: row.theoryGrade, learnGrade: row.learnGrade, id: row.id }).then(() => {
                this.questionBankOnLoad(this.questionBankPage);
                this.$message({
                    type: "success",
                    message: "操作成功!"
                });
                done();
            }, error => {
                window.console.log(error);
                loading();
            });
        },
        handleTemplate() {
            window.open(`/api/examScore/export-template`);
        },
        handleImport() {
            this.excelBox = true;
        },
        uploadAfter(res, done, loading, column) {
            window.console.log(column);
            this.excelBox = false;
            this.refreshChange();
            done();
        },
        refreshChange() {
            this.questionBankOnLoad(this.page, this.query);
        },
    }
}
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      this.refreshChange();
      done();
    },
    refreshChange() {
      this.questionBankOnLoad(this.page, this.query);
    },
  },
};
</script>
<style lang="scss" scoped>
src/views/exam/singleperformance.vue
New file
@@ -0,0 +1,400 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-18 21:02:10
 * menu-name 成绩管理
 */
<template>
  <el-row class="morpheus-box-score">
    <el-col :span="24">
      <el-card>
        <div class="exam-card-body">
          <avue-crud
            v-model="obj"
            class="company-box"
            :option="questionBankOption"
            :search.sync="questionBankSearch"
            :table-loading="questionBankLoading"
            :data="questionBankData"
            ref="questionBankCrud"
            :page.sync="questionBankPage"
            @on-load="questionBankOnLoad"
            @selection-change="questionBankSelectionChange"
            @search-change="questionBankSearchChange"
            @search-reset="questionBankSearchReset"
            @current-change="questionBankCurrentChange"
            @size-change="questionBankSizeChange"
            @row-update="questionBankRowUpdate"
          >
            <template slot-scope="{ row }" slot="learnGrade">
              {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
            </template>
            <!-- 自定义按钮 -->
            <!-- <template slot="menuLeft">
                            <el-button type="danger"
                                       size="mini"
                                       icon="el-icon-delete"
                                       plain
                                       @click="handleDelete">新增
                            </el-button>
                            <el-button type="danger"
                                       size="mini"
                                       icon="el-icon-delete"
                                       plain
                                       @click="handleDelete">删除
                            </el-button>
                            <el-button type="danger"
                                       size="mini"
                                       icon="el-icon-delete"
                                       plain
                                       @click="handleDelete">导出
                            </el-button>
                        </template> -->
          </avue-crud>
        </div>
      </el-card>
    </el-col>
  </el-row>
</template>
<script>
import { getList, update } from "@/api/examapi/performance";
export default {
  data() {
    var validatePass = (rule, value, callback) => {
      console.log(value);
      if (value == undefined || value == "") {
        callback(new Error("请输入实操成绩"));
        return;
      } else if (value !== "" && isNaN(value) == true) {
        callback(new Error("请输入数字"));
      } else if (value <= 0) {
        callback(new Error("分数设置请大于0"));
      } else if (value > 100) {
        callback(new Error("分数设置请小于100"));
      } else {
        callback();
      }
    };
    return {
      obj: {
        name: "张三",
      },
      questionBankOption: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: true,
        addBtn: false,
        selection: false,
        // 导出按钮
        excelBtn: true,
        excelBtnText: "成绩导出",
        viewBtn: true,
        // title: '成绩',
        align: "center",
        height: "auto",
        calcHeight: 80,
        tip: false,
        searchShow: true,
        searchMenuSpan: 4,
        index: true,
        indexLabel: "序号",
        //dialogType: 'drawer',
        dialogClickModal: false,
        // 操作栏宽度
        menu: false,
        menuWidth: 136,
        labelWidth: 120,
        column: [
          {
            label: "试卷名称",
            prop: "examName",
            search: true,
            searchSpan: 4,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入试卷名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安姓名",
            prop: "securityName",
            search: true,
            searchSpan: 4,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入保安姓名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "所属公司",
            prop: "companyName",
            search: true,
            searchSpan: 4,
            // dicUrl: '/api/blade-system/dept/tree',
            // props: {
            //     label: "title",
            //     value: "id",
            // },
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入所属公司",
                trigger: "blur",
              },
            ],
          },
          {
            label: "考试时间",
            prop: "examTime",
            type: "datetime",
            // span: 24,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            width: 250,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
          },
          {
            label: "理论成绩",
            prop: "theoryGrade",
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
          },
          {
            label: "实操成绩",
            prop: "learnGrade",
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              { validator: validatePass, required: true, trigger: "blur" },
            ],
          },
          // {
          //     label: "总成绩",
          //     prop: "allGrade",
          //     slot: true,
          //     // 表单新增时是否禁止
          //     addDisabled: false,
          //     // 表单新增时是否可见
          //     addDisplay: true,
          //     // 表单新增时是否为查看模式
          //     addDetail: false,
          //     // 表单编辑时是否禁止
          //     editDisabled: true,
          //     // 表单编辑时是否可见
          //     editDisplay: true,
          //     // 表单编辑时是否为查看模式
          //     editDetail: false,
          //     rules: [{
          //         required: true,
          //         message: "请输入考试名称",
          //         trigger: "blur"
          //     }]
          // },
          {
            label: "是否合格",
            prop: "qualified",
            type: "select",
            slot: true,
            search: true,
            searchSpan: 4,
            dicData: [
              {
                label: "合格",
                value: 0,
              },
              {
                label: "不合格",
                value: 1,
              },
              {
                label: "暂未录实操成绩",
                value: 2,
              },
            ],
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入考试名称",
                trigger: "blur",
              },
            ],
          },
        ],
      },
      questionBankSearch: {},
      questionBankLoading: true,
      questionBankData: [],
      questionBankPage: {
        pageSize: 10,
        currentPage: 1,
        total: 16,
      },
      questionBankQuery: {},
      questionBankSelectionList: [],
    };
  },
  created() {},
  mounted() {},
  methods: {
    questionBankOnLoad(page, params = {}) {
      this.questionBankLoading = false;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.questionBankPage.total = data.total;
        this.questionBankData = data.records;
        this.questionBankLoading = false;
        this.questionBankSelectionClear();
      });
    },
    questionBankSelectionClear() {
      this.questionBankSelectionList = [];
      this.$refs.questionBankCrud.toggleSelection();
    },
    questionBankSelectionChange(list) {
      this.questionBankSelectionList = list;
    },
    questionBankSearchChange(params, done) {
      this.questionBankQuery = params;
      this.questionBankPage.currentPage = 1;
      this.questionBankOnLoad(this.questionBankPage, params);
      done();
    },
    questionBankSearchReset() {
      this.questionBankQuery = {};
      this.questionBankOnLoad(this.questionBankPage);
    },
    questionBankCurrentChange(currentPage) {
      this.questionBankPage.currentPage = currentPage;
    },
    questionBankSizeChange(pageSize) {
      this.questionBankPage.pageSize = pageSize;
    },
    questionBankRowUpdate(row, index, done, loading) {
      update({
        theoryGrade: row.theoryGrade,
        learnGrade: row.learnGrade,
        id: row.id,
      }).then(
        () => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
  },
};
</script>
<style lang="scss" scoped>
</style>
src/views/exam/startexam.vue
@@ -6,32 +6,31 @@
 * menu-name 考试管理
 */
<template>
    <el-row class="morpheus-box-paper">
        <el-col :span="24">
            <el-card>
                <div class="exam-card-body">
                    <avue-crud v-model="form"
                               class="company-box"
                               :option="questionBankOption"
                               :search.sync="questionBankSearch"
                               :table-loading="questionBankLoading"
                               :data="questionBankData"
                               ref="questionBankCrud"
                               :page.sync="questionBankPage"
                               @on-load="questionBankOnLoad"
                               @selection-change="questionBankSelectionChange"
                               @search-change="questionBankSearchChange"
                               @search-reset="questionBankSearchReset"
                               @current-change="questionBankCurrentChange"
                               @size-change="questionBankSizeChange"
                               @row-save="questionBankRowSave"
                               @row-update="questionBankRowUpdate"
                               @row-del="questionBankRowDel">
                        <!-- 自定义按钮 -->
                        <!-- <template slot="menuLeft">
  <el-row class="morpheus-box-paper">
    <el-col :span="24">
      <el-card>
        <div class="exam-card-body">
          <avue-crud
            v-model="form"
            class="company-box"
            :option="questionBankOption"
            :search.sync="questionBankSearch"
            :table-loading="questionBankLoading"
            :data="questionBankData"
            ref="questionBankCrud"
            :page.sync="questionBankPage"
            @on-load="questionBankOnLoad"
            @selection-change="questionBankSelectionChange"
            @search-change="questionBankSearchChange"
            @search-reset="questionBankSearchReset"
            @current-change="questionBankCurrentChange"
            @size-change="questionBankSizeChange"
            @row-save="questionBankRowSave"
            @row-update="questionBankRowUpdate"
            @row-del="questionBankRowDel"
          >
            <!-- 自定义按钮 -->
            <!-- <template slot="menuLeft">
                            <el-button type="danger"
                                       size="mini"
                                       icon="el-icon-delete"
@@ -52,437 +51,430 @@
                            </el-button>
                        </template> -->
                        <template slot="menuLeft">
                            <el-button type="danger"
                                       size="small"
                                       icon="el-icon-delete"
                                       @click="questionBankHandleDelete">删 除
                            </el-button>
                        </template>
            <template slot="menuLeft">
              <el-button
                type="danger"
                size="small"
                icon="el-icon-delete"
                @click="questionBankHandleDelete"
                >删 除
              </el-button>
            </template>
                        <template slot-scope="{row}"
                                  slot="examStatus">
                            <el-tag>{{row.examStatus == 0 ? '已发布' : '草稿'}}</el-tag>
                        </template>
            <template slot-scope="{ row }" slot="examStatus">
              <el-tag>{{ row.examStatus == 0 ? "已发布" : "草稿" }}</el-tag>
            </template>
                        <template slot-scope="{row}"
                                  slot="menu">
                            <el-button type="text"
                                       size="mini"
                                       icon="el-icon-collection"
                                       class="start-kaoshi"
                                       @click="startExam(row)">报名清册
                            </el-button>
                        </template>
                    </avue-crud>
                </div>
            </el-card>
        </el-col>
    </el-row>
            <template slot-scope="{ row }" slot="menu">
              <el-button
                type="text"
                size="mini"
                icon="el-icon-collection"
                class="start-kaoshi"
                @click="startExam(row)"
                >报名清册
              </el-button>
            </template>
          </avue-crud>
        </div>
      </el-card>
    </el-col>
  </el-row>
</template>
<script>
import {
    getList,
    add,
    remove,
    update
} from "@/api/examapi/examination";
import { getList, add, remove, update } from "@/api/examapi/examination";
export default {
    data () {
  data() {
    var validatePass = (rule, value, callback) => {
      console.log(value);
      if (value == undefined || value == "") {
        callback(new Error("请输入分数"));
        return;
      } else if (value !== "" && isNaN(value) == true) {
        callback(new Error("请输入数字"));
      } else if (value <= 0) {
        callback(new Error("分数设置请大于0"));
      } else {
        callback();
      }
    };
        var validatePass = (rule, value, callback) => {
            console.log(value)
            if (value == undefined || value == '') {
                callback(new Error('请输入分数'));
                return;
            } else if (value !== '' && isNaN(value) == true) {
                callback(new Error('请输入数字'));
            } else if (value <= 0) {
                callback(new Error('分数设置请大于0'));
            } else {
                callback();
            }
        };
    return {
      form: {},
      questionBankOption: {
        // 操作栏多余按钮去除
        delBtn: true,
        editBtn: true,
        addBtn: true,
        selection: true,
        menu: true,
        // 导出按钮
        excelBtn: false,
        viewBtn: true,
        return {
            form: {},
            questionBankOption: {
                // 操作栏多余按钮去除
                delBtn: true,
                editBtn: true,
                addBtn: true,
                selection: true,
                menu: true,
                // 导出按钮
                excelBtn: false,
                viewBtn: true,
        // title: '题库',
                // title: '题库',
        align: "center",
        height: "auto",
        calcHeight: 80,
        tip: false,
        searchShow: true,
        searchMenuSpan: 4,
        index: true,
        indexLabel: "序号",
        //dialogType: 'drawer',
        dialogClickModal: false,
        // 操作栏宽度
        menuWidth: 280,
                align: 'center',
                height: 'auto',
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                indexLabel: '序号',
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 280,
        labelWidth: 140,
                labelWidth: 140,
                column: [
                    {
                        label: "考试名称",
                        prop: "examName",
                        search: true,
                        searchSpan: 5,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请输入试卷名称",
                            trigger: "blur"
                        }]
                    },
                    // {
                    //     label: "试卷分数",
                    //     prop: "totalScore",
                    //     slot: true,
                    //     // 表单新增时是否禁止
                    //     addDisabled: false,
                    //     // 表单新增时是否可见
                    //     addDisplay: true,
                    //     // 表单新增时是否为查看模式
                    //     addDetail: false,
                    //     // 表单编辑时是否禁止
                    //     editDisabled: false,
                    //     // 表单编辑时是否可见
                    //     editDisplay: true,
                    //     // 表单编辑时是否为查看模式
                    //     editDetail: false,
                    //     rules: [{ validator: validatePass, required: true, trigger: 'blur' }],
                    //     width: 100
                    // },
                    {
                        label: "考试时间",
                        prop: "examTime",
                        type: "daterange",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
                        startPlaceholder: '考试开始时间',
                        endPlaceholder: '考试结束时间',
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        // display: false,
                        hide: true,
                        rules: [{
                            required: true,
                            message: "请选择考试时间",
                            trigger: "blur"
                        }],
                        width: 250
                    },
                    {
                        label: "考试开始时间",
                        prop: "startTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: false,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        width: 180
                    },
                    {
                        label: "考试结束时间",
                        prop: "endTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: false,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        width: 180
                    },
                    {
                        label: "创建人",
                        prop: "creator",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: true,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: false,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        hide: true,
                        display: false,
                    },
                    {
                        label: "备注",
                        prop: "remark",
                        span: 24,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false
                    },
                    {
                        label: "注意事项",
                        prop: "examAttention",
                        type: "textarea",
                        span: 24,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        width: 240
                    },
                ]
            },
            questionBankSearch: {},
            questionBankLoading: true,
            questionBankData: [
        column: [
          {
            label: "考试名称",
            prop: "examName",
            search: true,
            searchSpan: 4,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入试卷名称",
                trigger: "blur",
              },
            ],
            questionBankPage: {
                pageSize: 10,
                currentPage: 1,
                total: 16
            },
            questionBankQuery: {},
            questionBankSelectionList: [],
          },
          // {
          //     label: "试卷分数",
          //     prop: "totalScore",
          //     slot: true,
          //     // 表单新增时是否禁止
          //     addDisabled: false,
          //     // 表单新增时是否可见
          //     addDisplay: true,
          //     // 表单新增时是否为查看模式
          //     addDetail: false,
          //     // 表单编辑时是否禁止
          //     editDisabled: false,
          //     // 表单编辑时是否可见
          //     editDisplay: true,
          //     // 表单编辑时是否为查看模式
          //     editDetail: false,
          //     rules: [{ validator: validatePass, required: true, trigger: 'blur' }],
          //     width: 100
          // },
          {
            label: "考试时间",
            prop: "examTime",
            type: "daterange",
            // span: 24,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            startPlaceholder: "考试开始时间",
            endPlaceholder: "考试结束时间",
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            // display: false,
            hide: true,
            rules: [
              {
                required: true,
                message: "请选择考试时间",
                trigger: "blur",
              },
            ],
            width: 250,
          },
          {
            label: "考试开始时间",
            prop: "startTime",
            type: "datetime",
            // span: 24,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: false,
            // 表单编辑时是否为查看模式
            editDetail: false,
            width: 180,
          },
          {
            label: "考试结束时间",
            prop: "endTime",
            type: "datetime",
            // span: 24,
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: false,
            // 表单编辑时是否为查看模式
            editDetail: false,
            width: 180,
          },
          {
            label: "创建人",
            prop: "creator",
            slot: true,
            // 表单新增时是否禁止
            addDisabled: true,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: false,
            // 表单编辑时是否为查看模式
            editDetail: false,
            hide: true,
            display: false,
          },
          {
            label: "备注",
            prop: "remark",
            span: 24,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
          },
          {
            label: "注意事项",
            prop: "examAttention",
            type: "textarea",
            span: 24,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: true,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            width: 240,
          },
        ],
      },
      questionBankSearch: {},
      questionBankLoading: true,
      questionBankData: [],
      questionBankPage: {
        pageSize: 10,
        currentPage: 1,
        total: 16,
      },
      questionBankQuery: {},
      questionBankSelectionList: [],
    };
  },
  created() {},
  mounted() {},
  computed: {
    ids() {
      let ids = [];
      this.questionBankSelectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
  },
  watch: {},
  methods: {
    questionBankOnLoad(page, params = {}) {
      this.questionBankLoading = false;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.questionBankQuery)
      ).then((res) => {
        const data = res.data.data;
        this.questionBankPage.total = data.total;
        this.questionBankData = data.records;
        this.questionBankLoading = false;
        this.questionBankSelectionClear();
      });
    },
    questionBankSelectionClear() {
      this.questionBankSelectionList = [];
      this.$refs.questionBankCrud.toggleSelection();
    },
    questionBankSelectionChange(list) {
      this.questionBankSelectionList = list;
    },
    questionBankSearchChange(params, done) {
      this.questionBankQuery = params;
      this.questionBankPage.currentPage = 1;
      this.questionBankOnLoad(this.questionBankPage, params);
      done();
    },
    questionBankSearchReset() {
      this.questionBankQuery = {};
      this.questionBankOnLoad(this.questionBankPage);
    },
    questionBankCurrentChange(currentPage) {
      this.questionBankPage.currentPage = currentPage;
    },
    questionBankSizeChange(pageSize) {
      this.questionBankPage.pageSize = pageSize;
    },
    startExam(row) {
      //正式考试
      if (row.examType == 1) {
        this.$router.push({
          path: `/applydetailed`,
          query: row,
        });
      }
      //模拟考试
      if (row.examType == 2) {
        this.$router.push({
          path: `/trainApply`,
          query: row,
        });
      }
    },
    // 新增
    questionBankRowSave(row, done, loading) {
      row.startTime = row.examTime[0];
      row.endTime = row.examTime[1];
      row.examTime = JSON.stringify(row.examTime);
      add(row).then(
        () => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    created () {
    questionBankRowUpdate(row, index, done, loading) {
      if (Array.isArray(row.examTime) != true) {
        row.examTime = row.examTime.split(",");
      }
      row.startTime = row.examTime[0];
      row.endTime = row.examTime[1];
      row.examTime = JSON.stringify(row.examTime);
      update(row).then(
        () => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    mounted () {
    questionBankRowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    computed: {
        ids () {
            let ids = [];
            this.questionBankSelectionList.forEach(ele => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
    questionBankHandleDelete() {
      if (this.questionBankSelectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.questionBankCrud.toggleSelection();
        });
    },
    watch: {
    },
    methods: {
        questionBankOnLoad (page, params = {}) {
            this.questionBankLoading = false;
            getList(page.currentPage, page.pageSize, Object.assign(params, this.questionBankQuery)).then(res => {
                const data = res.data.data;
                this.questionBankPage.total = data.total;
                this.questionBankData = data.records;
                this.questionBankLoading = false;
                this.questionBankSelectionClear();
            });
        },
        questionBankSelectionClear () {
            this.questionBankSelectionList = [];
            this.$refs.questionBankCrud.toggleSelection();
        },
        questionBankSelectionChange (list) {
            this.questionBankSelectionList = list;
        },
        questionBankSearchChange (params, done) {
            this.questionBankQuery = params;
            this.questionBankPage.currentPage = 1;
            this.questionBankOnLoad(this.questionBankPage, params);
            done();
        },
        questionBankSearchReset () {
            this.questionBankQuery = {};
            this.questionBankOnLoad(this.questionBankPage);
        },
        questionBankCurrentChange (currentPage) {
            this.questionBankPage.currentPage = currentPage;
        },
        questionBankSizeChange (pageSize) {
            this.questionBankPage.pageSize = pageSize;
        },
        startExam (row) {
            //正式考试
            if(row.examType==1){
                this.$router.push({
                    path: `/applydetailed`,
                    query: row
                })
            }
            //模拟考试
            if(row.examType==2){
                this.$router.push({
                    path: `/trainApply`,
                    query: row
                })
            }
        },
        // 新增
        questionBankRowSave (row, done, loading) {
            row.startTime = row.examTime[0]
            row.endTime = row.examTime[1]
            row.examTime = JSON.stringify(row.examTime)
            add(row).then(() => {
                this.questionBankOnLoad(this.questionBankPage);
                this.$message({
                    type: "success",
                    message: "操作成功!"
                });
                done();
            }, error => {
                window.console.log(error);
                loading();
            });
        },
        questionBankRowUpdate (row, index, done, loading) {
            if (Array.isArray(row.examTime) != true) {
                row.examTime = row.examTime.split(",")
            }
            row.startTime = row.examTime[0]
            row.endTime = row.examTime[1]
            row.examTime = JSON.stringify(row.examTime)
            update(row).then(() => {
                this.questionBankOnLoad(this.questionBankPage);
                this.$message({
                    type: "success",
                    message: "操作成功!"
                });
                done();
            }, error => {
                window.console.log(error);
                loading();
            });
        },
        questionBankRowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
                    });
                });
        },
        questionBankHandleDelete () {
            if (this.questionBankSelectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
                    });
                    this.$refs.questionBankCrud.toggleSelection();
                });
        },
    }
}
  },
};
</script>
<style lang="scss" scoped>
</style>
src/views/exam/subject.vue
@@ -6,364 +6,364 @@
 * menu-name 题库查询
 */
<template>
    <div>
  <div>
    <el-row class="morpheus-box">
        <el-col :span="24">
            <el-card>
      <el-col :span="24">
        <el-card>
          <div class="exam-card-body">
            <avue-crud
              class="company-box"
              :option="questionBankOption"
              :search.sync="questionBankSearch"
              :table-loading="questionBankLoading"
              :data="questionBankData"
              ref="questionBankCrud"
              :page.sync="questionBankPage"
              @on-load="questionBankOnLoad"
              @selection-change="questionBankSelectionChange"
              @search-change="questionBankSearchChange"
              @search-reset="questionBankSearchReset"
              @current-change="questionBankCurrentChange"
              @size-change="questionBankSizeChange"
              @row-del="questionBankHandleDel"
            >
              <template slot="menuLeft">
                <el-button
                  type="primary"
                  size="small"
                  icon="el-icon-plus"
                  @click="questionBankHandleAdd"
                  >新 增
                </el-button>
                <el-button
                  type="success"
                  size="small"
                  plain
                  icon="el-icon-upload2"
                  @click="handleImport"
                  >题库导入
                </el-button>
                <el-button
                  type="danger"
                  size="small"
                  icon="el-icon-delete"
                  @click="questionBankHandleDelete"
                  >删 除
                </el-button>
              </template>
                <div class="exam-card-body">
              <template slot-scope="{ row }" slot="menu">
                <el-button
                  type="text"
                  size="mini"
                  icon="el-icon-edit"
                  @click="questionBankHandleAdd(row)"
                  >编辑
                </el-button>
                <el-button
                  type="text"
                  size="mini"
                  icon="el-icon-delete"
                  @click="questionBankHandleDel(row)"
                  >删除
                </el-button>
              </template>
            </avue-crud>
                    <avue-crud class="company-box"
                               :option="questionBankOption"
                               :search.sync="questionBankSearch"
                               :table-loading="questionBankLoading"
                               :data="questionBankData"
                               ref="questionBankCrud"
                               :page.sync="questionBankPage"
                               @on-load="questionBankOnLoad"
                               @selection-change="questionBankSelectionChange"
                               @search-change="questionBankSearchChange"
                               @search-reset="questionBankSearchReset"
                               @current-change="questionBankCurrentChange"
                               @size-change="questionBankSizeChange"
                               @row-del="questionBankHandleDel">
                        <template slot="menuLeft">
                            <el-button type="primary"
                                       size="small"
                                       icon="el-icon-plus"
                                       @click="questionBankHandleAdd">新 增
                            </el-button>
                            <el-button
                                type="success"
                                size="small"
                                plain
                                icon="el-icon-upload2"
                                @click="handleImport"
                                >题库导入
                            </el-button>
                            <el-button type="danger"
                                       size="small"
                                       icon="el-icon-delete"
                                       @click="questionBankHandleDelete">删 除
                            </el-button>
                        </template>
                        <template slot-scope="{row}" slot="menu">
                            <el-button type="text"
                                       size="mini"
                                       icon="el-icon-edit"
                                       @click="questionBankHandleAdd(row)">编辑
                            </el-button>
                            <el-button type="text"
                                       size="mini"
                                       icon="el-icon-delete"
                                       @click="questionBankHandleDel(row)">删除
                            </el-button>
                        </template>
                    </avue-crud>
                    <el-dialog
                        title="题库导入"
                        append-to-body
                        :visible.sync="excelBox"
                        width="555px"
                        >
                        <avue-form
                            :option="excelOption"
                            v-model="excelForm"
                            :upload-after="uploadAfter"
                        >
                            <template slot="excelTemplate">
                            <el-button type="primary" @click="handleTemplate">
                                点击下载<i class="el-icon-download el-icon--right"></i>
                            </el-button>
                            </template>
                        </avue-form>
                    </el-dialog>
                </div>
            </el-card>
        </el-col>
            <el-dialog
              title="题库导入"
              append-to-body
              :visible.sync="excelBox"
              width="555px"
            >
              <avue-form
                :option="excelOption"
                v-model="excelForm"
                :upload-after="uploadAfter"
              >
                <template slot="excelTemplate">
                  <el-button type="primary" @click="handleTemplate">
                    点击下载<i class="el-icon-download el-icon--right"></i>
                  </el-button>
                </template>
              </avue-form>
            </el-dialog>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <addsubject ref="addsubject"></addsubject>
</div>
  </div>
</template>
<script>
import {
    getList,
    remove,
} from "@/api/examapi/subject";
import { getList, remove } from "@/api/examapi/subject";
import addsubject from "./addsubject.vue";
export default {
    components:{
        addsubject
    },
    data () {
        return {
            excelBox:false,
            excelForm: {},
            excelOption: {
                submitBtn: false,
                emptyBtn: false,
                column: [
                {
                    label: "模板上传",
                    prop: "excelFile",
                    type: "upload",
                    drag: true,
                    loadText: "模板上传中,请稍等",
                    span: 24,
                    propsHttp: {
                    res: "data",
                    },
                    tip: "请上传 .xls,.xlsx 标准格式文件",
                    action: "/api/examSubjectChoices/import-examSubject",
                },
                {
                    label: "模板下载",
                    prop: "excelTemplate",
                    formslot: true,
                    span: 24,
                },
                ],
  components: {
    addsubject,
  },
  data() {
    return {
      excelBox: false,
      excelForm: {},
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "模板上传",
            prop: "excelFile",
            type: "upload",
            drag: true,
            loadText: "模板上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
            },
            questionBankOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: false,
                selection: true,
                menu: true,
                // 导出按钮
                excelBtn: true,
                excelBtnText: '题库导出',
                // title: '题库',
                align: 'center',
                height: 'auto',
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                indexLabel: '序号',
                viewBtn: true,
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 226,
                column: [
                    {
                        label: "题目名称",
                        prop: "subjectName",
                        search: true,
                        slot: true,
                    },
                    {
                        label: "题目类型",
                        prop: "choicesType",
                        search: true,
                        type: "select",
                        dicData: [{
                            label: '单选题',
                            value: 0
                        }, {
                            label: '多选题',
                            value: 1,
                        }, {
                            label: '判断题',
                            value: 2,
                        }, {
                            label: '实操题',
                            value: 3,
                        }],
                        slot: true,
                        width: 96,
                    },
                    {
                        label: "题目分值",
                        prop: "score",
                        slot: true,
                        width: 96,
                    },
                    {
                        label: "参考答案",
                        prop: "answer",
                        slot: true,
                        width: 96,
                    },
                    {
                        label: "创建人",
                        prop: "creator",
                        slot: true,
                        width: 96,
                    },
                    {
                        label: "创建时间",
                        prop: "createDate",
                        slot: true,
                        width: 130,
                    },
                    {
                        label: "修改人",
                        prop: "modifier",
                        slot: true,
                        width: 96,
                    },
                    {
                        label: "修改时间",
                        prop: "modifyDate",
                        slot: true,
                        width: 130,
                    }
                ]
            },
            questionBankSearch: {},
            questionBankLoading: true,
            questionBankData: [
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/examSubjectChoices/import-examSubject",
          },
          {
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24,
          },
        ],
      },
      questionBankOption: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: true,
        // 导出按钮
        excelBtn: true,
        excelBtnText: "题库导出",
        // title: '题库',
        align: "center",
        height: "auto",
        calcHeight: 80,
        tip: false,
        searchShow: true,
        searchMenuSpan: 4,
        index: true,
        indexLabel: "序号",
        viewBtn: true,
        //dialogType: 'drawer',
        dialogClickModal: false,
        // 操作栏宽度
        menuWidth: 226,
        column: [
          {
            label: "题目名称",
            prop: "subjectName",
            searchSpan: 4,
            search: true,
            slot: true,
          },
          {
            label: "题目类型",
            prop: "choicesType",
            search: true,
            type: "select",
            searchSpan: 4,
            dicData: [
              {
                label: "单选题",
                value: 0,
              },
              {
                label: "多选题",
                value: 1,
              },
              {
                label: "判断题",
                value: 2,
              },
              {
                label: "实操题",
                value: 3,
              },
            ],
            questionBankPage: {
                pageSize: 10,
                currentPage: 1,
                total: 16
            },
            questionBankQuery: {},
            questionBankSelectionList: [],
        }
            slot: true,
            width: 96,
          },
          {
            label: "题目分值",
            prop: "score",
            slot: true,
            width: 96,
          },
          {
            label: "参考答案",
            prop: "answer",
            slot: true,
            width: 96,
          },
          {
            label: "创建人",
            prop: "creator",
            slot: true,
            width: 96,
          },
          {
            label: "创建时间",
            prop: "createDate",
            slot: true,
            width: 130,
          },
          {
            label: "修改人",
            prop: "modifier",
            slot: true,
            width: 96,
          },
          {
            label: "修改时间",
            prop: "modifyDate",
            slot: true,
            width: 130,
          },
        ],
      },
      questionBankSearch: {},
      questionBankLoading: true,
      questionBankData: [],
      questionBankPage: {
        pageSize: 10,
        currentPage: 1,
        total: 16,
      },
      questionBankQuery: {},
      questionBankSelectionList: [],
    };
  },
  created() {},
  mounted() {},
  computed: {
    ids() {
      let ids = [];
      this.questionBankSelectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
    created () {
  },
  methods: {
    questionBankHandleAdd(row) {
      this.$refs.addsubject.inits(row.id);
    },
    mounted () {
    questionBankOnLoad(page, params = {}) {
      this.questionBankLoading = false;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.questionBankPage.total = data.total;
        this.questionBankData = data.records;
        this.questionBankLoading = false;
        this.questionBankSelectionClear();
      });
    },
     computed: {
        ids () {
            let ids = [];
            this.questionBankSelectionList.forEach(ele => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
    questionBankSelectionClear() {
      this.questionBankSelectionList = [];
      this.$refs.questionBankCrud.toggleSelection();
    },
    methods: {
        questionBankHandleAdd(row){
            this.$refs.addsubject.inits(row.id);
        },
        questionBankOnLoad (page, params = {}) {
            this.questionBankLoading = false;
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
                const data = res.data.data;
                this.questionBankPage.total = data.total;
                this.questionBankData = data.records;
                this.questionBankLoading = false;
                this.questionBankSelectionClear();
            });
        },
        questionBankSelectionClear () {
            this.questionBankSelectionList = [];
            this.$refs.questionBankCrud.toggleSelection();
        },
        questionBankSelectionChange (list) {
            this.questionBankSelectionList = list;
        },
        questionBankSearchChange (params, done) {
            this.questionBankQuery = params;
            this.questionBankPage.currentPage = 1;
            this.questionBankOnLoad(this.questionBankPage, params);
            done();
        },
        questionBankSearchReset () {
            this.questionBankQuery = {};
            this.questionBankOnLoad(this.questionBankPage);
        },
        questionBankCurrentChange (currentPage) {
            this.questionBankPage.currentPage = currentPage;
        },
        questionBankSizeChange (pageSize) {
            this.questionBankPage.pageSize = pageSize;
        },
    questionBankSelectionChange(list) {
      this.questionBankSelectionList = list;
    },
    questionBankSearchChange(params, done) {
      this.questionBankQuery = params;
      this.questionBankPage.currentPage = 1;
      this.questionBankOnLoad(this.questionBankPage, params);
      done();
    },
    questionBankSearchReset() {
      this.questionBankQuery = {};
      this.questionBankOnLoad(this.questionBankPage);
    },
    questionBankCurrentChange(currentPage) {
      this.questionBankPage.currentPage = currentPage;
    },
    questionBankSizeChange(pageSize) {
      this.questionBankPage.pageSize = pageSize;
    },
        questionBankHandleDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
    questionBankHandleDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
                    });
                });
        },
    questionBankHandleDelete() {
      if (this.questionBankSelectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.questionBankOnLoad(this.questionBankPage);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.questionBankCrud.toggleSelection();
        });
    },
        questionBankHandleDelete () {
            if (this.questionBankSelectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
                    });
                    this.$refs.questionBankCrud.toggleSelection();
                });
        },
        //导出数据
        handleExport() {
            this.$confirm("是否导出清册数据?", "提示", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            }).then(() => {
                window.open(`/api/apply/export-apply?examId=${this.$route.query.id}`);
            });
        },
        handleImport() {
            this.excelBox = true;
        },
        handleTemplate() {
            window.open(
                `/api/examSubjectChoices/export-template`
            );
        },
        uploadAfter(res, done, loading, column) {
            window.console.log(column);
            this.excelBox = false;
            this.refreshChange();
            done();
        },
        refreshChange() {
            this.questionBankOnLoad(this.page, this.query);
        },
    }
}
    //导出数据
    handleExport() {
      this.$confirm("是否导出清册数据?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      }).then(() => {
        window.open(`/api/apply/export-apply?examId=${this.$route.query.id}`);
      });
    },
    handleImport() {
      this.excelBox = true;
    },
    handleTemplate() {
      window.open(`/api/examSubjectChoices/export-template`);
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      this.refreshChange();
      done();
    },
    refreshChange() {
      this.questionBankOnLoad(this.page, this.query);
    },
  },
};
</script>
<style lang="scss" scoped>
src/views/onSiteInspection/company.vue
@@ -54,7 +54,7 @@
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 693,
        height: 583,
        index: true,
        menuWidth: 160,
        align: "center",
src/views/onSiteInspection/securityStaff.vue
@@ -54,7 +54,7 @@
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 693,
        height: 583,
        index: true,
        menuWidth: 160,
        align: "center",
src/views/people/data.js
New file
@@ -0,0 +1,595 @@
//保安员基本信息
export var securityBaseInfoColumn = [{
    label: "",
    labelWidth: "20",
    type: 'title',
    prop: "title",
    span: 24,
    styles: {
        fontSize: '24px'
    }
},
{
    label: "所属保安公司",
    prop: "deptId",
    type: "tree",
    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
    // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
    props: {
        label: "title",
        value: "id",
    },
    disabled: true,
    span: 24,
},
{
    label: "登录账号",
    prop: "account",
    disabled: true
},
{
    label: "用户姓名",
    prop: "realName",
    disabled: true,
},
{
    label: "用户昵称",
    prop: "name",
    disabled: true
},
{
    label: "手机号码",
    prop: "phone",
    disabled: true
},
{
    label: "电子邮箱",
    prop: "email",
    disabled: true
},
{
    label: "身份证号",
    prop: "cardid",
    disabled: true
},
{
    label: "籍贯",
    prop: "nativeplace",
    disabled: true
},
{
    label: "民族",
    prop: "nation",
    disabled: true
},
{
    label: "是否持证",
    prop: "hold",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
    props: {
        label: "dictValue",
        value: "dictKey",
    },
    type: "select",
    disabled: true
},
{
    label: "保安员证编号",
    prop: "securitynumber",
    disabled: true
},
{
    label: "所属辖区",
    prop: "jurisdiction",
    // multiple: true,
    type: "tree",
    dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
    props: {
        label: "title",
        value: "id",
    },
    disabled: true
},
{
    label: "最高学历",
    prop: "education",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    dataType: "number",
    slot: true,
    disabled: true
},
{
    label: "政治面貌",
    prop: "politicaloutlook",
    disabled: true
},
{
    label: "身高",
    prop: "height",
    disabled: true
},
{
    label: "联系地址",
    prop: "address",
    disabled: true
},
{
    label: "户口所在地",
    prop: "registered",
    disabled: true
},
{
    label: "入职时间",
    prop: "rtime",
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    disabled: true
},
{
    label: "用户性别",
    prop: "sex",
    type: "select",
    dicData: [{
        label: "男",
        value: 1
    },
    {
        label: "女",
        value: 2
    },
    {
        label: "未知",
        value: 3
    }
    ],
    disabled: true
},
{
    label: "用户生日",
    type: "date",
    prop: "birthday",
    disabled: true
}
]
export var securityBaseInfoColumns = [{
    label: "所属保安单位",
    prop: "tenantId",
    type: "tree",
    dicUrl: "/api/blade-system/tenant/select",
    props: {
        label: "tenantName",
        value: "tenantId"
    },
    disabled: true,
    span: 24,
},
{
    label: "登录账号",
    prop: "account",
    disabled: true
},
{
    label: "用户姓名",
    prop: "realName",
    rules: [{
        required: true,
        message: "请输入用户姓名",
        trigger: "blur"
    }, {
        min: 2,
        max: 5,
        message: '姓名长度在2到5个字符'
    }]
},
{
    label: "用户昵称",
    prop: "name"
},
{
    label: "手机号码",
    prop: "phone",
    overHidden: true,
    rules: [{
        required: true,
        message: "请输入手机号",
        trigger: "blur"
    }]
},
{
    label: "电子邮箱",
    prop: "email",
    hide: true,
    overHidden: true
},
{
    label: "身份证号",
    prop: "cardid",
    hide: true,
    overHidden: true,
    rules: [{
        required: true,
        message: "请输入身份证号",
        trigger: "blur"
    }]
},
{
    label: "籍贯",
    prop: "nativeplace",
    hide: true,
    overHidden: true
},
{
    label: "民族",
    prop: "nation",
    hide: true,
    overHidden: true
},
{
    label: "最高学历",
    prop: "education",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    dataType: "number",
    slot: true,
    rules: [{
        required: true,
        message: "请选择学历",
        trigger: "blur"
    }]
},
{
    label: "政治面貌",
    prop: "politicaloutlook",
    hide: true,
    overHidden: true
},
{
    label: "身高",
    prop: "height",
    hide: true,
    overHidden: true
},
{
    label: "联系地址",
    prop: "address",
    hide: true,
    overHidden: true
},
{
    label: "户口所在地",
    prop: "registered",
    hide: true,
    overHidden: true
},
{
    label: "入职时间",
    prop: "rtime",
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    hide: true,
    overHidden: true
},
{
    label: "用户性别",
    prop: "sex",
    type: "select",
    dicData: [{
        label: "男",
        value: 1
    },
    {
        label: "女",
        value: 2
    },
    {
        label: "未知",
        value: 3
    }
    ],
    hide: true
},
{
    label: "用户生日",
    type: "date",
    prop: "birthday",
    hide: true
}
]
//从业记录
export var practitionersColumn = [{
    label: "id",
    prop: "id",
    hide: true,
    editDisplay: false,
    addDisplay: false
}, {
    label: '单位名称',
    prop: "companyname",
    formslot: true,
}, {
    label: '部门',
    prop: "department",
    formslot: true,
}, {
    label: '岗位',
    prop: "post",
    formslot: true,
}, {
    label: '岗位职责',
    prop: "responsibilities",
    formslot: true,
}, {
    label: '入职时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "entryTime",
    formslot: true,
}, {
    label: '离职时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "departureTime",
    formslot: true,
}, {
    label: '离职原因',
    prop: "leaving",
    formslot: true,
}]
export var practitionersColumns = [{
    width: 200,
    label: '单位名称',
    prop: "companyname",
    formslot: true,
}, {
    width: 200,
    label: '部门',
    prop: "department",
    formslot: true,
}, {
    width: 200,
    label: '岗位',
    prop: "post",
    formslot: true,
}, {
    width: 200,
    label: '岗位职责',
    prop: "responsibilities",
    formslot: true,
}, {
    width: 200,
    label: '入职时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "entryTime",
    formslot: true,
}, {
    width: 200,
    label: '离职时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "departureTime",
    formslot: true,
}, {
    width: 200,
    label: '离职原因',
    prop: "leaving",
    formslot: true,
}]
export var trackRecordColumn = [{
    label: "id",
    prop: "id",
    hide: true,
    editDisplay: false,
    addDisplay: false
}, {
    label: '工作态度',
    prop: "workingattitude",
    formslot: true,
}, {
    label: '工作成效',
    prop: "achievements",
    formslot: true,
}, {
    label: '表现',
    prop: "score",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=scoreType",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    dataType: "number",
    slot: true,
    rules: [{
        required: true,
        message: "请选择表现",
        trigger: "blur"
    }]
}, {
    label: '时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "time",
    formslot: true,
}, {
    label: '服务公司',
    prop: "departmentName",
    formslot: true,
}]
export var securityFormPageColumn = [{
    label: "姓名",
    prop: "realName",
    search: true,
    searchSpan: 4,
    display: false
},
{
    label: "性别",
    prop: "sex",
    type: "select",
    dicData: [{
        label: "男",
        value: 1,
    },
    {
        label: "女",
        value: 2,
    },
    {
        label: "未知",
        value: 3,
    },
    ],
    display: false
},
{
    label: "籍贯",
    prop: "nativeplace",
    display: false
},
{
    label: "民族",
    prop: "nation",
    display: false
},
{
    label: "出生日期",
    prop: "birthday",
    type: "date",
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    display: false
},
{
    label: "学历",
    prop: "education",
    display: false,
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    type: "select",
    hide: true,
    rules: [{
        required: true,
        message: "请选择学历",
        trigger: "blur"
    }],
},
{
    label: "联系电话",
    prop: "phone",
    display: false
},
{
    label: "邮箱",
    prop: "email",
    display: false,
    width: 150
},
{
    label: "入职时间",
    prop: "rtime",
    display: false
},
{
    label: "保安公司名称",
    searchLabelWidth: "110",
    // prop: "deptName",
    prop: "deptId",
    type: "tree",
    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
    props: {
        label: "title",
        value: "id",
    },
    slot: true,
    searchSpan: 6,
    display: false,
    search: true,
    width: 260
},
{
    label: "是否持证",
    prop: "hold",
    slot: true,
    display: false,
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    type: "select",
    rules: [{
        required: true,
        message: "请选择",
        trigger: "blur"
    }],
},
// {
//     label: "入职时间",
//     prop: "rtime",
//     type: "datetime",
//     format: "yyyy-MM-dd",
//     valueFormat: "yyyy-MM-dd",
//     searchRange: true,
//     searchSpan: 6,
//     hide: true,
//     addDisplay: false,
//     editDisplay: false,
//     viewDisplay: false,
//     search: true,
//     rules: [{
//         required: true,
//         message: "请输入时间",
//         trigger: "blur"
//     }]
// },
{
    label: "在职状态",
    prop: "status",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    dataType: "number",
    display: false,
    searchSpan: 4,
    search: true,
    rules: [{
        required: true,
        message: "请选择在职状态",
        trigger: "blur"
    }]
},
]
src/views/people/expression.vue
New file
@@ -0,0 +1,560 @@
/**
*liu
**/
<template>
  <div class="dispatchChildoperable">
    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs> -->
    <!-- <span v-if="typeTABS.prop === 'tab1'"> -->
    <!-- <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud> -->
    <!-- <avue-form ref="form" v-model="obj0" :option="option0"> -->
    <!-- <template slot-scope="scope" slot="menuForm">
          <el-button @click="tip">自定义按钮</el-button>
        </template> -->
    <!-- </avue-form>
    </span>
    <span v-else-if="typeTABS.prop === 'tab2'"> -->
    <avue-crud
      :option="option1"
      :data="data1"
      :page.sync="page1"
      ref="crudrec1"
      :table-loading="loading1"
      @row-save="rowSave1"
      @search-change="searchChange1"
      @search-reset="searchReset1"
      @row-update="rowUpdate1"
      @row-del="rowDel1"
      @selection-change="selectionChange1"
      @refresh-change="refreshChange1"
    >
      <!-- <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete1"
            >删 除
          </el-button>
        </template> -->
    </avue-crud>
    <!-- </span> -->
    <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
  </div>
</template>
<script>
// import { column, column1 } from "./data";
import {
  securityBaseInfoColumn,
  practitionersColumn,
  trackRecordColumn,
} from "./data";
import { getUserPractitionersInfo } from "@/api/system/user";
import { add, update, page, remove } from "@/api/performance/performance";
import { mapGetters } from "vuex";
export default {
  data() {
    let baseUrl = "https://cli.avuejs.com/api/area";
    return {
      // typeTABS: {}, //标签页
      // optionTABS: {
      //   column: [
      //     {
      //       // icon: "el-icon-info",
      //       label: "派遣服务公司详情",
      //       prop: "tab1",
      //     },
      //     {
      //       // icon: "el-icon-info",
      //       label: "派遣记录",
      //       prop: "tab2",
      //     },
      //     // {
      //     //   icon: "el-icon-info",
      //     //   label: "选项卡3",
      //     //   prop: "tab3",
      //     // },
      //   ],
      // },
      // id: "", //记录归属id
      // //基本信息
      // //保安单位信息表单
      // obj0: {
      //   // title: "我是头部标题",
      // },
      // option0: {
      //   emptyBtn: false,
      //   submitBtn: false,
      //   gutter: 30,
      //   column: column,
      // },
      // loading: true, //派遣服务公司登记
      // selectionList: [],
      // page: {
      //   pageSize: 10,
      //   currentPage: 1,
      //   total: 0,
      // },
      // query: {},
      // data: [],
      // option: {
      //   card: true,
      //   searchSize: "mini",
      //   searchMenuSpan: 6,
      //   height: 547,
      //   menuWidth: 160,
      //   align: "center",
      //   selection: true,
      //   column: column,
      // },
      deptCategory: "",
      deptId: "",
      loading1: true, //派遣记录
      selectionList1: [],
      page1: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query1: {},
      data1: [],
      option1: {
        card: true,
        menu: false,
        addBtn: false,
        height: "auto",
        widtd: "auto",
        calcHeight: 54,
        border: false,
        stripe: true,
        tip: false,
        index: true,
        dialogClickModal: false,
        headerAlign: "center",
        align: "center",
        column: trackRecordColumn,
      },
    };
  },
  computed: {
    ...mapGetters(["userInfo"]),
    // ids() {
    //   let ids = [];
    //   this.selectionList.forEach((ele) => {
    //     ids.push(ele.id);
    //   });
    //   return ids.join(",");
    // },
    ids1() {
      let ids1 = [];
      this.selectionList1.forEach((ele) => {
        ids1.push(ele.id);
      });
      return ids1.join(",");
    },
  },
  methods: {
    handleChangeTABS(column) {
      this.typeTABS = column;
      if (column.prop == "tab1") {
        this.loading1 = false;
        // this.onLoad(this.page);
      } else if (column.prop == "tab2") {
        // this.loading = false;
        console.log(document.getElementsByClassName("el-card__body")[0]);
        this.onLoad1(this.page1); //第二个表格不会自动执行
      }
      // this.$message.success(JSON.stringify(column));
    },
    //派遣服务公司登记
    // sizeChange(val) {
    //   this.page1.currentPage = 1;
    //   this.page1.pageSize = val;
    //   // this.getData();
    //   this.onLoad(this.page, this.query);
    //   //   this.$message.success("行数" + val);
    // },
    // currentChange(val) {
    //   this.page1.currentPage = val;
    //   // this.getData();
    //   this.onLoad(this.page, this.query);
    //   //   this.$message.success("页码" + val);
    // },
    // rowSave(form, done, loading) {
    //   var that = this;
    //   var form = this.data[0];
    //   delete form.id;
    //   for (var k = 0; k < 13; k++) {
    //     adddata(form).then(
    //       (res) => {
    //         this.onLoad(this.page);
    //         this.$message({
    //           type: "success",
    //           message: "操作成功!",
    //         });
    //         done();
    //       },
    //       (error) => {
    //         window.console.log(error);
    //         loading();
    //       }
    //     );
    //   }
    // },
    // searchChange(params, done) {
    //   this.query = params;
    //   this.page.currentPage = 1;
    //   this.onLoad(this.page, params);
    //   done();
    // },
    // searchReset() {
    //   this.query = {};
    //   this.onLoad(this.page);
    // },
    // rowUpdate(row, index, done, loading) {
    //   console.log(row);
    //   update(row).then(
    //     () => {
    //       this.onLoad(this.page);
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!",
    //       });
    //       done();
    //     },
    //     (error) => {
    //       window.console.log(error);
    //       loading();
    //     }
    //   );
    // },
    // rowDel(row) {
    //   this.$confirm("确定将选择数据删除?", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning",
    //   })
    //     .then(() => {
    //       return remove(row.id);
    //     })
    //     .then(() => {
    //       this.onLoad(this.page);
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!",
    //       });
    //     });
    // },
    // selectionChange(list) {
    //   this.selectionList = list;
    // },
    // handleDelete() {
    //   if (this.selectionList.length === 0) {
    //     this.$message.warning("请选择至少一条数据");
    //     return;
    //   }
    //   this.$confirm("确定将选择数据删除?", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning",
    //   })
    //     .then(() => {
    //       return remove(this.ids);
    //     })
    //     .then(() => {
    //       this.onLoad(this.page);
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!",
    //       });
    //       this.$refs.crudrec.toggleSelection();
    //     });
    // },
    // refreshChange() {
    //   this.onLoad(this.page, this.query);
    // },
    // onLoad(page, params = {}) {
    //   this.loading = true;
    //   getdata(
    //     page.currentPage,
    //     page.pageSize,
    //     Object.assign(params, this.query)
    //   ).then((res) => {
    //     // console.log(res);
    //     const data = res.data.data;
    //     this.page.total = data.total;
    //     this.data = data.records;
    //     console.log(this.data);
    //     this.loading = false;
    //   });
    // },
    //派遣服务公司登记
    //派遣记录
    sizeChange1(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
      //   this.$message.success("行数" + val);
    },
    currentChange1(val) {
      this.page1.currentPage = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
      //   this.$message.success("页码" + val);
    },
    rowSave1(form, done, loading) {
      // var that = this;
      // var form = this.data1[0];
      // delete form.id;
      // for (var k = 0; k < 13; k++) {
      // form["deptId"] = form.tenantName;
      // form["tenantName"] = form.$tenantName;
      // form["dispatcherUnitId"] = this.id;
      // console.log(form);
      adddata1(form).then(
        (res) => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    searchChange1(params, done) {
      this.query1 = params;
      this.page1.currentPage = 1;
      this.onLoad1(this.page1, params);
      done();
    },
    searchReset1() {
      this.query = {};
      this.onLoad1(this.page1);
    },
    rowUpdate1(row, index, done, loading) {
      // row["deptId"] = row.tenantName;
      // row["tenantName"] = row.$tenantName;
      // row["dispatcherUnitId"] = this.id;
      // console.log(row, "row");
      update1(row).then(
        () => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel1(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove1(row.id);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    selectionChange1(list) {
      this.selectionList1 = list;
      // console.log(this.selectionList1.length);
    },
    handleDelete1() {
      console.log(this.selectionList1);
      if (this.selectionList1.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove1(this.ids1);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec1.toggleSelection();
        });
    },
    refreshChange1() {
      // console.log(4534)
      this.onLoad1(this.page1, this.query1);
    },
    getStartTime() {
      if (
        this.$route.query.startTime != undefined &&
        this.$route.query.startTime != null &&
        this.$route.query.startTime != ""
      ) {
        return this.$route.query.startTime;
      }
      return "";
    },
    getEndTime() {
      if (
        this.$route.query.endTime != undefined &&
        this.$route.query.endTime != null &&
        this.$route.query.endTime != ""
      ) {
        return this.$route.query.endTime;
      }
      return "";
    },
    //
    onLoad1(page, params = {}) {
      this.loading1 = true;
      // params["cardid"] = this.cardid;
      // params["name"] = this.name;
      // params["dispatcherCompany"] = this.dispatcherCompany;
      // params["dispatcherUnitId"] = this.id;
      // console.log(params, "get");
      // console.log(page);
      // var values;
      // const { releaseTimeRange } = this.query1;
      // if (releaseTimeRange) {
      //   values = {
      //     ...params,
      //     beginTime: releaseTimeRange[0],
      //     overTime: releaseTimeRange[1],
      //     ...this.query,
      //   };
      //   values.releaseTimeRange = null;
      // } else {
      //   values = {
      //     ...params,
      //     ...this.query,
      //   };
      // }
      var cardid = this.userInfo.user_id;
      console.log(this.userInfo, "111111111111");
      getPerformancePageInfo(cardid).then((res) => {
        //   // page.currentPage,
        //   // page.pageSize,
        //   // Object.assign(params, this.query)
        //   // values
        console.log(res);
        //   const data = res.data.data;
        //   this.page1.total = data.total;
        //   this.data1 = data.records;
        //   console.log(this.data1, 1);
        //   this.loading1 = false;
      });
    },
    //派遣记录
    // saveLock(name, val) {
    //   localStorage.setItem(name, val);
    // },
    // readLock(name) {
    //   return localStorage.getItem(name);
    // },
  },
  mounted() {
    this.onLoad1(this.page1, this.query1);
    //去掉缓存
    // this.typeTABS = this.optionTABS.column[0];
    // var row = {};
    // if (this.readLock("paqiandata") != null) {
    //   row = JSON.parse(this.readLock("paqiandata"));
    //   this.obj0.name = row.name;
    //   for (var k in row) {
    //     this.obj0[k] = row[k];
    //   }
    //   console.log(this.obj0, 11111111);
    //   this.id = row.id;
    //   if (this.readLock("paqiandataS") != null) {
    //     var b = JSON.parse(this.readLock("paqiandataS"));
    //     var i = 0;
    //     for (var k in b) {
    //       if (b[k].name == row.name) {
    //         i = 1;
    //       }
    //     }
    //     if (i == 1) {
    //       // console.log("存在");
    //     } else {
    //       // console.log("已删除");
    //       this.obj0 = {};
    //       this.obj0.name = row.name + " 该派遣单位已删除";
    //       window.localStorage.removeItem("paqiandata");
    //       this.id = 1244241;
    //     }
    //   }
    // } else {
    //   // console.log("no");
    //   this.obj0.name = " 未选择派遣单位";
    // }
  },
};
</script>
<style lang="scss" scoped>
.dispatch {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
}
.el-collapse-item {
  padding-top: 15px !important;
}
</style>
src/views/people/job.vue
New file
@@ -0,0 +1,558 @@
/**
*liu
**/
<template>
  <div class="dispatchChildoperable">
    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs> -->
    <!-- <span v-if="typeTABS.prop === 'tab1'"> -->
    <!-- <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud> -->
    <!-- <avue-form ref="form" v-model="obj0" :option="option0"> -->
    <!-- <template slot-scope="scope" slot="menuForm">
          <el-button @click="tip">自定义按钮</el-button>
        </template> -->
    <!-- </avue-form>
    </span>
    <span v-else-if="typeTABS.prop === 'tab2'"> -->
    <avue-crud
      :option="option1"
      :data="data1"
      :page.sync="page1"
      ref="crudrec1"
      :table-loading="loading1"
      @row-save="rowSave1"
      @search-change="searchChange1"
      @search-reset="searchReset1"
      @row-update="rowUpdate1"
      @row-del="rowDel1"
      @selection-change="selectionChange1"
      @refresh-change="refreshChange1"
    >
      <!-- <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete1"
            >删 除
          </el-button>
        </template> -->
    </avue-crud>
    <!-- </span> -->
    <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
  </div>
</template>
<script>
// import { column, column1 } from "./data";
import {
  securityBaseInfoColumn,
  practitionersColumn,
  trackRecordColumn,
} from "./data";
import { getUserPractitionersInfo } from "@/api/system/user";
import { add, update, page, remove } from "@/api/performance/performance";
import { mapGetters } from "vuex";
export default {
  data() {
    let baseUrl = "https://cli.avuejs.com/api/area";
    return {
      // typeTABS: {}, //标签页
      // optionTABS: {
      //   column: [
      //     {
      //       // icon: "el-icon-info",
      //       label: "派遣服务公司详情",
      //       prop: "tab1",
      //     },
      //     {
      //       // icon: "el-icon-info",
      //       label: "派遣记录",
      //       prop: "tab2",
      //     },
      //     // {
      //     //   icon: "el-icon-info",
      //     //   label: "选项卡3",
      //     //   prop: "tab3",
      //     // },
      //   ],
      // },
      // id: "", //记录归属id
      // //基本信息
      // //保安单位信息表单
      // obj0: {
      //   // title: "我是头部标题",
      // },
      // option0: {
      //   emptyBtn: false,
      //   submitBtn: false,
      //   gutter: 30,
      //   column: column,
      // },
      // loading: true, //派遣服务公司登记
      // selectionList: [],
      // page: {
      //   pageSize: 10,
      //   currentPage: 1,
      //   total: 0,
      // },
      // query: {},
      // data: [],
      // option: {
      //   card: true,
      //   searchSize: "mini",
      //   searchMenuSpan: 6,
      //   height: 547,
      //   menuWidth: 160,
      //   align: "center",
      //   selection: true,
      //   column: column,
      // },
      deptCategory: "",
      deptId: "",
      loading1: true, //派遣记录
      selectionList1: [],
      page1: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query1: {},
      data1: [],
      option1: {
        card: true,
        menu: false,
        addBtn: false,
        height: "auto",
        widtd: "auto",
        calcHeight: 54,
        border: false,
        stripe: true,
        tip: false,
        index: true,
        dialogClickModal: false,
        headerAlign: "center",
        align: "center",
        column: practitionersColumn,
      },
    };
  },
  computed: {
    ...mapGetters(["userInfo"]),
    // ids() {
    //   let ids = [];
    //   this.selectionList.forEach((ele) => {
    //     ids.push(ele.id);
    //   });
    //   return ids.join(",");
    // },
    ids1() {
      let ids1 = [];
      this.selectionList1.forEach((ele) => {
        ids1.push(ele.id);
      });
      return ids1.join(",");
    },
  },
  methods: {
    handleChangeTABS(column) {
      this.typeTABS = column;
      if (column.prop == "tab1") {
        this.loading1 = false;
        // this.onLoad(this.page);
      } else if (column.prop == "tab2") {
        // this.loading = false;
        console.log(document.getElementsByClassName("el-card__body")[0]);
        this.onLoad1(this.page1); //第二个表格不会自动执行
      }
      // this.$message.success(JSON.stringify(column));
    },
    //派遣服务公司登记
    // sizeChange(val) {
    //   this.page1.currentPage = 1;
    //   this.page1.pageSize = val;
    //   // this.getData();
    //   this.onLoad(this.page, this.query);
    //   //   this.$message.success("行数" + val);
    // },
    // currentChange(val) {
    //   this.page1.currentPage = val;
    //   // this.getData();
    //   this.onLoad(this.page, this.query);
    //   //   this.$message.success("页码" + val);
    // },
    // rowSave(form, done, loading) {
    //   var that = this;
    //   var form = this.data[0];
    //   delete form.id;
    //   for (var k = 0; k < 13; k++) {
    //     adddata(form).then(
    //       (res) => {
    //         this.onLoad(this.page);
    //         this.$message({
    //           type: "success",
    //           message: "操作成功!",
    //         });
    //         done();
    //       },
    //       (error) => {
    //         window.console.log(error);
    //         loading();
    //       }
    //     );
    //   }
    // },
    // searchChange(params, done) {
    //   this.query = params;
    //   this.page.currentPage = 1;
    //   this.onLoad(this.page, params);
    //   done();
    // },
    // searchReset() {
    //   this.query = {};
    //   this.onLoad(this.page);
    // },
    // rowUpdate(row, index, done, loading) {
    //   console.log(row);
    //   update(row).then(
    //     () => {
    //       this.onLoad(this.page);
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!",
    //       });
    //       done();
    //     },
    //     (error) => {
    //       window.console.log(error);
    //       loading();
    //     }
    //   );
    // },
    // rowDel(row) {
    //   this.$confirm("确定将选择数据删除?", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning",
    //   })
    //     .then(() => {
    //       return remove(row.id);
    //     })
    //     .then(() => {
    //       this.onLoad(this.page);
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!",
    //       });
    //     });
    // },
    // selectionChange(list) {
    //   this.selectionList = list;
    // },
    // handleDelete() {
    //   if (this.selectionList.length === 0) {
    //     this.$message.warning("请选择至少一条数据");
    //     return;
    //   }
    //   this.$confirm("确定将选择数据删除?", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning",
    //   })
    //     .then(() => {
    //       return remove(this.ids);
    //     })
    //     .then(() => {
    //       this.onLoad(this.page);
    //       this.$message({
    //         type: "success",
    //         message: "操作成功!",
    //       });
    //       this.$refs.crudrec.toggleSelection();
    //     });
    // },
    // refreshChange() {
    //   this.onLoad(this.page, this.query);
    // },
    // onLoad(page, params = {}) {
    //   this.loading = true;
    //   getdata(
    //     page.currentPage,
    //     page.pageSize,
    //     Object.assign(params, this.query)
    //   ).then((res) => {
    //     // console.log(res);
    //     const data = res.data.data;
    //     this.page.total = data.total;
    //     this.data = data.records;
    //     console.log(this.data);
    //     this.loading = false;
    //   });
    // },
    //派遣服务公司登记
    //派遣记录
    sizeChange1(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
      //   this.$message.success("行数" + val);
    },
    currentChange1(val) {
      this.page1.currentPage = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
      //   this.$message.success("页码" + val);
    },
    rowSave1(form, done, loading) {
      // var that = this;
      // var form = this.data1[0];
      // delete form.id;
      // for (var k = 0; k < 13; k++) {
      // form["deptId"] = form.tenantName;
      // form["tenantName"] = form.$tenantName;
      // form["dispatcherUnitId"] = this.id;
      // console.log(form);
      adddata1(form).then(
        (res) => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    searchChange1(params, done) {
      this.query1 = params;
      this.page1.currentPage = 1;
      this.onLoad1(this.page1, params);
      done();
    },
    searchReset1() {
      this.query = {};
      this.onLoad1(this.page1);
    },
    rowUpdate1(row, index, done, loading) {
      // row["deptId"] = row.tenantName;
      // row["tenantName"] = row.$tenantName;
      // row["dispatcherUnitId"] = this.id;
      // console.log(row, "row");
      update1(row).then(
        () => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel1(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove1(row.id);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    selectionChange1(list) {
      this.selectionList1 = list;
      // console.log(this.selectionList1.length);
    },
    handleDelete1() {
      console.log(this.selectionList1);
      if (this.selectionList1.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove1(this.ids1);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec1.toggleSelection();
        });
    },
    refreshChange1() {
      // console.log(4534)
      this.onLoad1(this.page1, this.query1);
    },
    getStartTime() {
      if (
        this.$route.query.startTime != undefined &&
        this.$route.query.startTime != null &&
        this.$route.query.startTime != ""
      ) {
        return this.$route.query.startTime;
      }
      return "";
    },
    getEndTime() {
      if (
        this.$route.query.endTime != undefined &&
        this.$route.query.endTime != null &&
        this.$route.query.endTime != ""
      ) {
        return this.$route.query.endTime;
      }
      return "";
    },
    //
    onLoad1(page, params = {}) {
      this.loading1 = true;
      // params["cardid"] = this.cardid;
      // params["name"] = this.name;
      // params["dispatcherCompany"] = this.dispatcherCompany;
      // params["dispatcherUnitId"] = this.id;
      // console.log(params, "get");
      // console.log(page);
      // var values;
      // const { releaseTimeRange } = this.query1;
      // if (releaseTimeRange) {
      //   values = {
      //     ...params,
      //     beginTime: releaseTimeRange[0],
      //     overTime: releaseTimeRange[1],
      //     ...this.query,
      //   };
      //   values.releaseTimeRange = null;
      // } else {
      //   values = {
      //     ...params,
      //     ...this.query,
      //   };
      // }
      var cardid = this.userInfo.user_id;
      console.log(this.userInfo, "111111111111");
      getUserPractitionersInfo(cardid).then((res) => {
        //   // page.currentPage,
        //   // page.pageSize,
        //   // Object.assign(params, this.query)
        //   // values
        console.log(res);
        //   const data = res.data.data;
        //   this.page1.total = data.total;
        //   this.data1 = data.records;
        //   console.log(this.data1, 1);
        //   this.loading1 = false;
      });
    },
    //派遣记录
    // saveLock(name, val) {
    //   localStorage.setItem(name, val);
    // },
    // readLock(name) {
    //   return localStorage.getItem(name);
    // },
  },
  mounted() {
    this.onLoad1(this.page1, this.query1);
    //去掉缓存
    // this.typeTABS = this.optionTABS.column[0];
    // var row = {};
    // if (this.readLock("paqiandata") != null) {
    //   row = JSON.parse(this.readLock("paqiandata"));
    //   this.obj0.name = row.name;
    //   for (var k in row) {
    //     this.obj0[k] = row[k];
    //   }
    //   console.log(this.obj0, 11111111);
    //   this.id = row.id;
    //   if (this.readLock("paqiandataS") != null) {
    //     var b = JSON.parse(this.readLock("paqiandataS"));
    //     var i = 0;
    //     for (var k in b) {
    //       if (b[k].name == row.name) {
    //         i = 1;
    //       }
    //     }
    //     if (i == 1) {
    //       // console.log("存在");
    //     } else {
    //       // console.log("已删除");
    //       this.obj0 = {};
    //       this.obj0.name = row.name + " 该派遣单位已删除";
    //       window.localStorage.removeItem("paqiandata");
    //       this.id = 1244241;
    //     }
    //   }
    // } else {
    //   // console.log("no");
    //   this.obj0.name = " 未选择派遣单位";
    // }
  },
};
</script>
<style lang="scss" scoped>
.dispatch {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
}
.el-collapse-item {
  padding-top: 15px !important;
}
</style>
src/views/recruitmentManagement/data.js
@@ -150,7 +150,8 @@
        label: "福利",
        prop: "welfare",
        search: true,
        searchSpan: 5,
        searchLabelWidth: 50,
        searchSpan: 4,
        overHidden: true
    },
    {
src/views/recruitmentManagement/index.vue
@@ -1,32 +1,34 @@
<template>
  <div class="recruitmentManagement">
    <avue-crud
      :option="option"
      :data="data"
      :page.sync="page"
      ref="crudrec"
      @on-load="onLoad"
      :table-loading="loading"
      @row-save="rowSave"
      @search-change="searchChange"
      @search-reset="searchReset"
      @row-update="rowUpdate"
      @row-del="rowDel"
      @selection-change="selectionChange"
      @refresh-change="refreshChange"
    >
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          plain
          icon="el-icon-delete"
          @click="handleDelete"
          >删 除
        </el-button>
      </template>
    </avue-crud>
  </div>
  <basic-container>
    <div class="recruitmentManagement">
      <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud>
    </div>
  </basic-container>
</template>
<script>
@@ -56,7 +58,7 @@
        viewBtn: true,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 693,
        height: 583,
        menuWidth: 210,
        align: "center",
        selection: true,
src/views/securityEquipment/car.js
@@ -74,7 +74,7 @@
        // editDisplay: true,
        // viewDisplay: true,
        overHidden: true,
        // searchSpan: 5,
        // searchSpan: 4,
        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
        props: {
            label: "title",
src/views/securityEquipment/car.vue
@@ -1,32 +1,34 @@
<template>
  <div class="equipments">
    <avue-crud
      :option="option"
      :data="data"
      :page.sync="page"
      ref="crudrec"
      @on-load="onLoad"
      :table-loading="loading"
      @row-save="rowSave"
      @search-change="searchChange"
      @search-reset="searchReset"
      @row-update="rowUpdate"
      @row-del="rowDel"
      @selection-change="selectionChange"
      @refresh-change="refreshChange"
    >
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          plain
          icon="el-icon-delete"
          @click="handleDelete"
          >删 除
        </el-button>
      </template>
    </avue-crud>
  </div>
  <basic-container>
    <div class="equipments">
      <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud>
    </div>
  </basic-container>
</template>
<script>
@@ -51,7 +53,7 @@
        index: true,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 693,
        height: 583,
        menuWidth: 160,
        align: "center",
        selection: true,
src/views/securityEquipment/equipments.js
@@ -20,7 +20,9 @@
        label: "名称",
        prop: "name",
        search: true,
         rules: [{
        searchSpan: 4,
        searchLabelWidth: 50,
        rules: [{
            required: true,
            message: "请输入名称",
            trigger: "blur"
@@ -29,7 +31,8 @@
    {
        label: "编号",
        prop: "number",
         rules: [{
        searchSpan: 4,
        rules: [{
            required: true,
            message: "请输入编号",
            trigger: "blur"
@@ -39,7 +42,7 @@
    {
        label: "规格",
        prop: "specifications",
         rules: [{
        rules: [{
            required: true,
            message: "请输入规格",
            trigger: "blur"
@@ -50,7 +53,7 @@
        label: "型号",
        prop: "mode",
        width: 70,
         rules: [{
        rules: [{
            required: true,
            message: "请输入型号",
            trigger: "blur"
@@ -69,7 +72,7 @@
        // addDisplay: true,
        // editDisplay: true,
        // viewDisplay: true,
        // searchSpan: 5,
        // searchSpan: 4,
        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
        props: {
            label: "title",
@@ -97,6 +100,7 @@
        prop: "brand",
        // search: true,
        width: 110,
        searchSpan: 4,
        overHidden: true,
        search: true,
        rules: [{
src/views/securityEquipment/equipments.vue
@@ -1,32 +1,34 @@
<template>
  <div class="equipments">
    <avue-crud
      :option="option"
      :data="data"
      :page.sync="page"
      ref="crudrec"
      @on-load="onLoad"
      :table-loading="loading"
      @row-save="rowSave"
      @search-change="searchChange"
      @search-reset="searchReset"
      @row-update="rowUpdate"
      @row-del="rowDel"
      @selection-change="selectionChange"
      @refresh-change="refreshChange"
    >
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          plain
          icon="el-icon-delete"
          @click="handleDelete"
          >删 除
        </el-button>
      </template>
    </avue-crud>
  </div>
  <basic-container>
    <div class="equipments">
      <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud>
    </div>
  </basic-container>
</template>
<script>
@@ -50,7 +52,7 @@
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 693,
        height: 583,
        index: true,
        menuWidth: 160,
        align: "center",
src/views/securityEquipment/gun.js
@@ -21,6 +21,7 @@
        label: "公务用枪证编号",
        prop: "gunCardNumber",
        labelWidth: 160,
        searchSpan: 4,
        searchLabelWidth: 130,
        search: true,
        rules: [{
@@ -34,6 +35,7 @@
        searchLabelWidth: 110,
        labelWidth: 160,
        prop: "issueUnit",
        searchSpan: 4,
        rules: [{
            required: true,
            message: "请输入发证单位名称",
@@ -56,6 +58,7 @@
    {
        label: "枪型",
        prop: "gunMode",
        searchSpan: 4,
        width: 70,
        labelWidth: 160,
        rules: [{
@@ -78,7 +81,7 @@
        // editDisplay: true,
        // viewDisplay: true,
        overHidden: true,
        // searchSpan: 5,
        // searchSpan: 4,
        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
        props: {
            label: "title",
src/views/securityEquipment/gun.vue
@@ -1,32 +1,34 @@
<template>
  <div class="equipments">
    <avue-crud
      :option="option"
      :data="data"
      :page.sync="page"
      ref="crudrec"
      @on-load="onLoad"
      :table-loading="loading"
      @row-save="rowSave"
      @search-change="searchChange"
      @search-reset="searchReset"
      @row-update="rowUpdate"
      @row-del="rowDel"
      @selection-change="selectionChange"
      @refresh-change="refreshChange"
    >
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          plain
          icon="el-icon-delete"
          @click="handleDelete"
          >删 除
        </el-button>
      </template>
    </avue-crud>
  </div>
  <basic-container>
    <div class="equipments">
      <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud>
    </div>
  </basic-container>
</template>
<script>
@@ -50,7 +52,7 @@
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 693,
        height: 583,
        index: true,
        menuWidth: 160,
        align: "center",
src/views/securityGuard/data.js
@@ -398,6 +398,8 @@
    formslot: true,
}]
//表现
export var trackRecordColumn = [{
    label: "id",
    prop: "id",
@@ -447,6 +449,7 @@
    prop: "realName",
    search: true,
    searchSpan: 4,
    searchLabelWidth: 50,
    display: false
},
{
@@ -532,7 +535,7 @@
        value: "id",
    },
    slot: true,
    searchSpan: 6,
    searchSpan: 4,
    display: false,
    search: true,
    width: 260
src/views/securityGuard/securityGuardDetail.vue
@@ -154,6 +154,7 @@
    getPractitionersPageInfo() {
      var that = this;
      //获取用户从业信息
      console.log(this.cardid, "cid");
      getUserPractitionersInfo(this.cardid).then((res1) => {
        that.data1 = res1.data.data;
      });
@@ -228,6 +229,7 @@
  mounted() {
    this.typeTABS = this.optionTABS.column[0];
    var data = JSON.parse(this.$route.query.row);
    // console.log(data);
    if (data) {
      var row = data;
      // var row = this.$route.query.row;
@@ -235,7 +237,7 @@
        this.obj0[k] = row[k];
      }
      this.obj0.title = "";
      this.cardid = row.cardid;
      this.cardid = row.id;
      this.name = row.name;
      this.dispatcherCompany = row.dispatcherCompany;
      this.id = row.id;
src/views/securityUnit/data.js
@@ -57,7 +57,7 @@
        label: "企业名称",
        prop: "enterprisename",
        search: true,
        searchSpan: 6,
        searchSpan: 4,
        labelWidth: 160,
        // width: 130,
        overHidden: true
@@ -87,7 +87,7 @@
        prop: "representative",
        width: 80,
        search: true,
        searchSpan: 6,
        searchSpan: 4,
        searchLabelWidth: 100
    },
    // {
@@ -96,7 +96,7 @@
    //     // addDisplay: true, 
    //     // editDisplay: true,
    //     // viewDisplay: true,
    //     // searchSpan: 5,
    //     // searchSpan: 4,
    //     // dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
    //     // props: {
    //     //     label: "dictValue",
src/views/securityUnit/index.vue
@@ -1,54 +1,55 @@
<template>
  <div class="securityUnit">
    <avue-crud
      :option="option"
      :data="data"
      :page.sync="page"
      ref="crudrec"
      @on-load="onLoad"
      :table-loading="loading"
      @row-save="rowSave"
      @search-change="searchChange"
      @search-reset="searchReset"
      @row-update="rowUpdate"
      @row-del="rowDel"
      @selection-change="selectionChange"
      @refresh-change="refreshChange"
      @row-click="rowClick"
    >
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          :size="size"
          :type="type"
          @click="handleUploadPage(row)"
          icon="el-icon-circle-check"
          >单位装备清单附件上传
        </el-button>
      </template>
      <template slot="menuLeft">
        <el-button
          type="primary"
          icon="el-icon-plus"
          size="small"
          plain
          @click.stop="rowSave"
          >新增</el-button
        >
      </template>
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          plain
          icon="el-icon-delete"
          @click="handleDelete"
          >删 除
        </el-button>
      </template>
    </avue-crud>
    <div class="lod" v-show="forms != -1">
      <div class="lod-in">
        <!-- <el-col class="trees" v-if="forms == 0">
  <basic-container>
    <div class="securityUnit">
      <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
        @row-click="rowClick"
      >
        <template slot-scope="{ type, size, row }" slot="menu">
          <el-button
            :size="size"
            :type="type"
            @click="handleUploadPage(row)"
            icon="el-icon-circle-check"
            >单位装备清单附件上传
          </el-button>
        </template>
        <template slot="menuLeft">
          <el-button
            type="primary"
            icon="el-icon-plus"
            size="small"
            plain
            @click.stop="rowSave"
            >新增</el-button
          >
        </template>
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud>
      <div class="lod" v-show="forms != -1">
        <div class="lod-in">
          <!-- <el-col class="trees" v-if="forms == 0">
          <div class="box">
            <el-scrollbar>
              <basic-container>
@@ -61,44 +62,45 @@
            </el-scrollbar>
          </div>
        </el-col> -->
        <avue-form
          ref="form"
          v-model="obj0"
          :option="option0"
          v-if="forms == 0"
        >
          <template slot="menuForm">
            <el-button type="primary" @click="tip0">下一页</el-button>
            <el-button type="info" @click="tipover">取消</el-button>
          </template>
        </avue-form>
        <avue-form
          ref="form1"
          v-model="obj1"
          :option="option1"
          v-else-if="forms == 1"
        >
          <template slot="menuForm">
            <el-button type="primary" @click="tip1up1">上一页</el-button>
            <el-button type="primary" @click="tip1">下一页</el-button>
            <el-button type="info" @click="tipover">取消</el-button>
          </template>
        </avue-form>
        <avue-form
          ref="form2"
          v-model="obj2"
          :option="option2"
          v-else-if="forms == 2"
        >
          <template slot="menuForm">
            <el-button type="primary" @click="tip2up2">上一页</el-button>
            <el-button type="primary" @click="tip2">提交</el-button>
            <el-button type="info" @click="tipover">取消</el-button>
          </template>
        </avue-form>
          <avue-form
            ref="form"
            v-model="obj0"
            :option="option0"
            v-if="forms == 0"
          >
            <template slot="menuForm">
              <el-button type="primary" @click="tip0">下一页</el-button>
              <el-button type="info" @click="tipover">取消</el-button>
            </template>
          </avue-form>
          <avue-form
            ref="form1"
            v-model="obj1"
            :option="option1"
            v-else-if="forms == 1"
          >
            <template slot="menuForm">
              <el-button type="primary" @click="tip1up1">上一页</el-button>
              <el-button type="primary" @click="tip1">下一页</el-button>
              <el-button type="info" @click="tipover">取消</el-button>
            </template>
          </avue-form>
          <avue-form
            ref="form2"
            v-model="obj2"
            :option="option2"
            v-else-if="forms == 2"
          >
            <template slot="menuForm">
              <el-button type="primary" @click="tip2up2">上一页</el-button>
              <el-button type="primary" @click="tip2">提交</el-button>
              <el-button type="info" @click="tipover">取消</el-button>
            </template>
          </avue-form>
        </div>
      </div>
    </div>
  </div>
  </basic-container>
</template> 
<script>
@@ -228,7 +230,7 @@
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 693,
        height: 583,
        menuWidth: 290,
        align: "center",
        selection: true,
src/views/trainExam/data.js
@@ -1,160 +1,160 @@
export var infoColumn = [{
        label: "申请单位名称",
    label: "申请单位名称",
        prop: "deptId",
        type: "tree",
        dicUrl: "/api/blade-system/dept/lazy-tree-type?deptCategory=3&parentId=1418458374477549569",
        width: 180,
        hide: true,
        viewDisplay: false,
        props: {
            label: "title",
            value: "id"
        },
        rules: [{
            required: true,
            message: "请选择申请单位名称",
            trigger: "blur"
        }]
    }, {
        label: "申请单位名称",
        prop: "deptName",
        type: "select",
        dicUrl: "/api/blade-system/dept/tree",
        width: 180,
        editDisplay: false,
        addDisplay: false
    prop: "deptId",
    type: "tree",
    dicUrl: "/api/blade-system/dept/lazy-tree-type?deptCategory=3&parentId=1418458374477549569",
    width: 180,
    hide: true,
    viewDisplay: false,
    props: {
        label: "title",
        value: "id"
    },
    {
        label: "考试名称",
        searchSpan: 5,
        width: 180,
        prop: "trainExamName",
        search: true,
    },
    rules: [{
        required: true,
        message: "请选择申请单位名称",
        trigger: "blur"
    }]
}, {
    label: "申请单位名称",
    prop: "deptName",
    type: "select",
    dicUrl: "/api/blade-system/dept/tree",
    width: 180,
    editDisplay: false,
    addDisplay: false
},
{
    label: "考试名称",
    searchSpan: 4,
    width: 180,
    prop: "trainExamName",
    search: true,
},
    {
        label: "开始时间",
        prop: "startTime",
        type: "datetime",
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        width: 180,
        rules: [{
            required: true,
            message: "请选择开始时间",
            trigger: "blur"
        }]
{
    label: "开始时间",
    prop: "startTime",
    type: "datetime",
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    width: 180,
    rules: [{
        required: true,
        message: "请选择开始时间",
        trigger: "blur"
    }]
},
{
    label: "结束时间",
    prop: "endTime",
    type: "datetime",
    width: 180,
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    rules: [{
        required: true,
        message: "请选择结束时间",
        trigger: "click"
    }]
},
{
    label: "申请时间",
    prop: "createTime",
    type: "datetime",
    width: 180,
    editDisplay: false,
    addDisplay: false,
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    rules: [{
        required: true,
        message: "请选择结束时间",
        trigger: "click"
    }]
},
{
    label: "审核时间",
    prop: "auditTime",
    type: "datetime",
    width: 180,
    editDisplay: false,
    addDisplay: false,
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    rules: [{
        required: true,
        message: "请选择结束时间",
        trigger: "click"
    }]
},
{
    label: "审核状态",
    search: true,
    searchSpan: 4,
    prop: "auditStatus",
    slot: true,
    editDisplay: false,
    addDisplay: false,
    type: "select",
    rules: [{
        required: true,
        message: "请选择审核类型",
        trigger: "blur"
    }],
    dicData: [{
        label: "审核通过",
        value: 1
    },
    {
        label: "结束时间",
        prop: "endTime",
        type: "datetime",
        width: 180,
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        rules: [{
            required: true,
            message: "请选择结束时间",
            trigger: "click"
        }]
        label: "不通过",
        value: 2
    },
    {
        label: "申请时间",
        prop: "createTime",
        type: "datetime",
        width: 180,
        editDisplay: false,
        addDisplay: false,
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        rules: [{
            required: true,
            message: "请选择结束时间",
            trigger: "click"
        }]
    },
    {
        label: "审核时间",
        prop: "auditTime",
        type: "datetime",
        width: 180,
        editDisplay: false,
        addDisplay: false,
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        rules: [{
            required: true,
            message: "请选择结束时间",
            trigger: "click"
        }]
    },
    {
        label: "审核状态",
        search: true,
        searchSpan: 5,
        prop: "auditStatus",
        slot: true,
        editDisplay: false,
        addDisplay: false,
        type: "select",
        rules: [{
            required: true,
            message: "请选择审核类型",
            trigger: "blur"
        }],
        dicData: [{
                label: "审核通过",
                value: 1
            },
            {
                label: "不通过",
                value: 2
            },
            {
                label: "待审核",
                value: 3
            }
        ]
    },
    {
        label: "审核明细",
        editDisplay: false,
        addDisplay: false,
        prop: "auditDetail"
        label: "待审核",
        value: 3
    }
    ]
},
{
    label: "审核明细",
    editDisplay: false,
    addDisplay: false,
    prop: "auditDetail"
}
]
export var auditColumn = [{
        label: "审核状态",
        search: true,
        searchSpan: 5,
        span: 24,
        prop: "auditStatus",
        slot: true,
        editDisplay: false,
        addDisplay: false,
        type: "select",
        rules: [{
            required: true,
            message: "请选择审核类型",
            trigger: "blur"
        }],
        dicData: [{
                label: "审核通过",
                value: 1
            },
            {
                label: "不通过",
                value: 2
            }
        ]
    label: "审核状态",
    search: true,
    searchSpan: 5,
    span: 24,
    prop: "auditStatus",
    slot: true,
    editDisplay: false,
    addDisplay: false,
    type: "select",
    rules: [{
        required: true,
        message: "请选择审核类型",
        trigger: "blur"
    }],
    dicData: [{
        label: "审核通过",
        value: 1
    },
    {
        label: "审核明细",
        span: 24,
        type: "textarea",
        prop: "auditDetail"
        label: "不通过",
        value: 2
    }
    ]
},
{
    label: "审核明细",
    span: 24,
    type: "textarea",
    prop: "auditDetail"
}
]
src/views/traincompany/index.vue
@@ -87,6 +87,7 @@
            display: false,
            search: true,
            searchSpan: 4,
            searchLabelWidth: 95,
            width: 120,
          },
          {
src/views/trainingRegistration/data.js
@@ -19,165 +19,165 @@
var w = 160,
    s = 12;
export var column = [{
        label: "单位名称",
        prop: "deptId",
        // width: 70,
        // search: true,
        // searchSpan: 4,
        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
        cascaderItem: ["userId"],
        props: {
            label: "title",
            value: "id"
        },
        // search: true,
        type: "select",
        // hide: true,
        rules: [{
            required: true,
            message: "请输入单位名称",
            trigger: "blur"
        }],
        overHidden: true
    }, {
        label: "姓名",
        prop: "userId",
        type: "select",
        hide: true,
        dicUrl: "/api/blade-user/page-security-unit?deptId={{key}}",
        props: {
            label: "realName",
            value: "id"
        },
        searchSpan: 5,
        rules: [{
            required: true,
            message: "请输入姓名",
            trigger: "blur"
        }],
    }, {
        label: "姓名",
        prop: "realName",
        search: true,
        editDisplay: false,
        addDisplay: false,
        searchSpan: 5,
    label: "单位名称",
    prop: "deptId",
    // width: 70,
    // search: true,
    // searchSpan: 4,
    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
    cascaderItem: ["userId"],
    props: {
        label: "title",
        value: "id"
    },
    {
        label: "身份证号",
        prop: "idCardNo",
        rules: [{
            required: true,
            message: "请输入身份证号",
            trigger: "blur"
        }],
        editDisplay: false,
        addDisplay: false,
        width: 160
    // search: true,
    type: "select",
    // hide: true,
    rules: [{
        required: true,
        message: "请输入单位名称",
        trigger: "blur"
    }],
    overHidden: true
}, {
    label: "姓名",
    prop: "userId",
    type: "select",
    hide: true,
    dicUrl: "/api/blade-user/page-security-unit?deptId={{key}}",
    props: {
        label: "realName",
        value: "id"
    },
    {
        label: "电话",
        prop: "phone",
        hide: true,
        rules: [{
            required: true,
            message: "请输入电话",
            trigger: "blur"
        }],
        editDisplay: false,
        addDisplay: false,
        width: 110,
    searchSpan: 4,
    rules: [{
        required: true,
        message: "请输入姓名",
        trigger: "blur"
    }],
}, {
    label: "姓名",
    prop: "realName",
    search: true,
    editDisplay: false,
    addDisplay: false,
    searchSpan: 4,
},
{
    label: "身份证号",
    prop: "idCardNo",
    rules: [{
        required: true,
        message: "请输入身份证号",
        trigger: "blur"
    }],
    editDisplay: false,
    addDisplay: false,
    width: 160
},
{
    label: "电话",
    prop: "phone",
    hide: true,
    rules: [{
        required: true,
        message: "请输入电话",
        trigger: "blur"
    }],
    editDisplay: false,
    addDisplay: false,
    width: 110,
},
{
    label: "培训公司名称",
    prop: "trainingUnitId",
    dicUrl: "/api/blade-system/dept/lazy-tree-type?parentId=1418458374477549569",
    cascaderItem: ["trainExamId"],
    props: {
        label: "title",
        value: "id"
    },
    {
        label: "培训公司名称",
        prop: "trainingUnitId",
        dicUrl: "/api/blade-system/dept/lazy-tree-type?parentId=1418458374477549569",
        cascaderItem: ["trainExamId"],
        props: {
            label: "title",
            value: "id"
        },
        type: "select",
        rules: [{
            required: true,
            message: "请输入培训公司名称",
            trigger: "blur"
        }],
        searchSpan: 6,
        searchLabelWidth: 110,
        search: true,
    type: "select",
    rules: [{
        required: true,
        message: "请输入培训公司名称",
        trigger: "blur"
    }],
    searchSpan: 5,
    searchLabelWidth: 110,
    search: true,
},
{
    label: "考试名称",
    prop: "trainExamId",
    dicUrl: "/api/trainExam/page-tree?deptId={{key}}",
    props: {
        label: "trainExamName",
        value: "id"
    },
    {
        label: "考试名称",
        prop: "trainExamId",
        dicUrl: "/api/trainExam/page-tree?deptId={{key}}",
        props: {
            label: "trainExamName",
            value: "id"
        },
        type: "select",
        rules: [{
            required: true,
            message: "请输入考试名称",
            trigger: "blur"
        }],
        hide: true,
    type: "select",
    rules: [{
        required: true,
        message: "请输入考试名称",
        trigger: "blur"
    }],
    hide: true,
},
{
    label: "考试名称",
    prop: "trainExamName",
    editDisplay: false,
    addDisplay: false,
    searchLabelWidth: 110,
},
{
    label: "报名时间",
    prop: "trainingTime",
    type: "date",
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    rules: [{
        required: true,
        message: "请输入报名时间",
        trigger: "blur"
    }],
    editDisplay: false,
    addDisplay: false,
    width: 160
},
{
    label: "培训考试时间",
    prop: "trainExamTime",
    type: "date",
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    rules: [{
        required: true,
        message: "请输入培训考试时间",
        trigger: "blur"
    }],
    editDisplay: false,
    addDisplay: false,
    width: 160
},
{
    label: "报名状态",
    prop: "cancel",
    // search: true,
    dicData: DIC1,
    props: {
        label: "label",
        value: "value"
    },
    {
        label: "考试名称",
        prop: "trainExamName",
        editDisplay: false,
        addDisplay: false,
        searchLabelWidth: 110,
    },
    {
        label: "报名时间",
        prop: "trainingTime",
        type: "date",
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        rules: [{
            required: true,
            message: "请输入报名时间",
            trigger: "blur"
        }],
        editDisplay: false,
        addDisplay: false,
        width: 160
    },
    {
        label: "培训考试时间",
        prop: "trainExamTime",
        type: "date",
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        rules: [{
            required: true,
            message: "请输入培训考试时间",
            trigger: "blur"
        }],
        editDisplay: false,
        addDisplay: false,
        width: 160
    },
    {
        label: "报名状态",
        prop: "cancel",
        // search: true,
        dicData: DIC1,
        props: {
            label: "label",
            value: "value"
        },
        editDisplay: false,
        addDisplay: false,
        searchSpan: 5,
        width: 70,
    }, {
        label: "确认截止时间",
        prop: "remainingTime",
        editDisplay: false,
        addDisplay: false,
        width: 160
    }
    editDisplay: false,
    addDisplay: false,
    searchSpan: 4,
    width: 70,
}, {
    label: "确认截止时间",
    prop: "remainingTime",
    editDisplay: false,
    addDisplay: false,
    width: 160
}
]
src/views/trainingRegistration/index.vue
@@ -23,7 +23,7 @@
    >
      <template slot="menuLeft">
        <el-button
          style="display:none"
          style="display: none"
          type="danger"
          size="small"
          plain
@@ -38,7 +38,7 @@
          @click="revoke(row)"
          :size="size"
          :type="type"
           :disabled="row.cancel==2"
          :disabled="row.cancel == 2"
          >取消报名</el-button
        >
        <el-button
@@ -46,11 +46,11 @@
          @click="affirmApply(row)"
          :size="size"
          :type="type"
          :disabled="row.cancel==2"
          >确认报名</el-button>
          :disabled="row.cancel == 2"
          >确认报名</el-button
        >
      </template>
    </avue-crud>
  </basic-container>
</template>
@@ -80,7 +80,7 @@
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 693,
        height: 583,
        index: true,
        labelWidth: "120",
        menuWidth: 230,
@@ -118,20 +118,20 @@
      adddata(form).then(
        (res) => {
          this.onLoad(this.page);
          if(res.data.data==201){
          if (res.data.data == 201) {
            this.$message({
              type: "warning",
              message:"已报名,不能重复报名",
              message: "已报名,不能重复报名",
            });
          }else if(res.data.data==201){
          } else if (res.data.data == 201) {
            this.$message({
              type: "warning",
              message:"报名失败",
              message: "报名失败",
            });
          }else{
          } else {
            this.$message({
              type: "success",
              message:"报名成功",
              message: "报名成功",
            });
          }
          done();
@@ -171,54 +171,51 @@
      );
    },
    //确认报名
    affirmApply(row,done,loading){
    affirmApply(row, done, loading) {
      this.$confirm("确认报名?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          row.cancel = 3;
          update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "确认报名成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      })
      }).then(() => {
        row.cancel = 3;
        update(row).then(
          () => {
            this.onLoad(this.page);
            this.$message({
              type: "success",
              message: "确认报名成功!",
            });
            done();
          },
          (error) => {
            window.console.log(error);
            loading();
          }
        );
      });
    },
    revoke(row,done,loading) {
    revoke(row, done, loading) {
      this.$confirm("确定取消报名?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
      row.cancel = 2;
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "取消报名成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      })
      }).then(() => {
        row.cancel = 2;
        update(row).then(
          () => {
            this.onLoad(this.page);
            this.$message({
              type: "success",
              message: "取消报名成功!",
            });
            done();
          },
          (error) => {
            window.console.log(error);
            loading();
          }
        );
      });
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {