liuyg
2021-07-29 2ff59bd14d4b8f2ec46a80190ef540e6d88f3766
Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises
12 files modified
2 files added
871 ■■■■ changed files
public/papers.html 200 ●●●●● patch | view | raw | blame | history
src/api/exam/exam.js 2 ●●● patch | view | raw | blame | history
src/router/views/index.js 72 ●●●●● patch | view | raw | blame | history
src/styles/element-ui.scss 193 ●●●●● patch | view | raw | blame | history
src/util/util.js 40 ●●●●● patch | view | raw | blame | history
src/views/applyexam/index.vue 57 ●●●●● patch | view | raw | blame | history
src/views/applyexam/papers.vue 40 ●●●●● patch | view | raw | blame | history
src/views/exam/examination.vue 4 ●●●● patch | view | raw | blame | history
src/views/exam/performance.vue 175 ●●●● patch | view | raw | blame | history
src/views/exam/startexam.vue 4 ●●●● patch | view | raw | blame | history
src/views/exam/subject.vue 2 ●●● patch | view | raw | blame | history
src/views/singleperformance/index.vue 64 ●●●● patch | view | raw | blame | history
src/views/startexam/index.vue 16 ●●●●● patch | view | raw | blame | history
src/views/trainingRegistration/data.js 2 ●●● patch | view | raw | blame | history
public/papers.html
New file
@@ -0,0 +1,200 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        #table {
            color: #000;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-direction: column;
        }
        .user-info-table {
            margin-top: 30px;
            width: 60%;
            height: 60%;
            border: 1px solid #000;
            background-color: #fff;
        }
        .user-info-tr {
            height: 50px;
        }
        .avatar {
            width: 140px;
            height: 190px;
        }
        .title {
            margin-top: 20px;
        }
        .avatar {
            width: 140px;
            height: 190px;
        }
    </style>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
</head>
<body>
    <div>
        <div>
            <button onclick="preview(1)">打印</button>
        </div>
        <!--startprint-->
        <div id="table">
            <!-- <span class="title">准考证信息</span>
            <table class="user-info-table" border="1px" align="center" cellspacing="0" cellpadding="10">
                <tr class="user-info-tr">
                    <td width="150px">姓名</td>
                    <td width="150px"></td>
                    <td width="150px">身份证号</td>
                    <td width="150px"></td>
                    <td rowspan="4" align="center" width="150px" v-if="data.avatar == ''">
                        照片
                    </td>
                </tr>
                <tr class="user-info-tr">
                    <td>准考证号</td>
                    <td></td>
                    <td width="150px">性别</td>
                    <td width="150px" v-if="data.sex == 1">男</td>
                </tr>
                <tr class="user-info-tr">
                    <td>考点名称</td>
                    <td colspan="3"></td>
                </tr>
                <tr class="user-info-tr">
                    <td>考点地址</td>
                    <td colspan="3"></td>
                </tr>
                <tr class="user-info-tr" style="height:5px">
                    <td colspan="5"></td>
                </tr>
                <tr class="user-info-tr">
                    <td>考试名称</td>
                    <td>考试类型</td>
                    <td>考试时间</td>
                    <td>考场号</td>
                    <td>座位号</td>
                </tr>
                <tr class="user-info-tr">
                    <td>{{data.examName}}</td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
            </table>
        </div> -->
            <!--endprint-->
        </div>
        <script>
            var getData = function(name) {
                var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
                var r = window.location.search.substr(1).match(reg);
                if (r != null) return unescape(r[2]);
                return null;
            };
            var id = JSON.parse(getData("data")).id;
            axios.get('http://192.168.0.114:81/apply/getApplyInfo?id=' + id).then(function(res) {
                var data = res.data.data;
                var str = `<span class="title">${data.examName}</span>
                    <span class="title">准考证信息</span>
                    <table class="user-info-table" border="1px" align="center" cellspacing="0" cellpadding="10">
                        <tr class="user-info-tr">
                            <td width="150px">姓名</td>
                            <td width="150px">${data.realName}</td>
                            <td width="150px">身份证号</td>
                            <td width="150px">${data.idCardNo}</td>
                            <td rowspan="4" align="center" width="150px"">
                                照片
                            </td>
                        </tr>
                        <tr class="user-info-tr">
                            <td>准考证号</td>
                            <td>${data.candidateNo}</td>
                            <td width="150px">性别</td>
                            <td width="150px">${data.sex==1?"男":(data.sex==2?"女":"")}</td>
                        </tr>
                        <tr class="user-info-tr">
                            <td>考点名称</td>
                            <td colspan="3"></td>
                        </tr>
                        <tr class="user-info-tr">
                            <td>考点地址</td>
                            <td colspan="3"></td>
                        </tr>
                        <tr class="user-info-tr" style="height:5px">
                            <td colspan="5"></td>
                        </tr>
                        <tr class="user-info-tr">
                            <td>考试名称</td>
                            <td width="120px">考试类型</td>
                            <td width="180px">考试时间</td>
                            <td>考场号</td>
                            <td>座位号</td>
                        </tr>
                        <tr class="user-info-tr">
                            <td>${data.examName}</td>
                            <td width="120px"></td>
                            <td width="180px">${data.stringTime}</td>
                            <td></td>
                            <td></td>
                        </tr>
                    </table>
                </div>`
                var dom = $('#table');
                dom.empty();
                dom.append(str);
            })
            function preview(oper) {
                if (oper < 10) {
                    bdhtml = window.document.body.innerHTML;
                    // 打印开始的标志
                    sprnstr = "<!--startprint-->";
                    // 打印结束的标志
                    eprnstr = "<!--endprint-->";
                    // 从打印开始的位置截取到末尾
                    prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr));
                    // 从开始截取到打印结束的位置
                    prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
                    // 替换html
                    window.document.body.innerHTML = prnhtml;
                    // 打印
                    window.print();
                    window.document.body.innerHTML = bdhtml;
                } else {
                    window.print();
                }
            }
        </script>
</body>
</html>
src/api/exam/exam.js
@@ -36,7 +36,7 @@
export const getSubjectIds = (param) => {
  return request({
    url: '/api/exampaper/queryPagerSubject/',
    url: '/api/exampaper/queryRandomSubject/',
    method: 'get',
    params: {
      ...param
src/router/views/index.js
@@ -549,6 +549,19 @@
            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: '/equipments',
@@ -647,5 +660,60 @@
            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: '/startexam',
    redirect: '/startexam/index',
    component: Layout,
    children: [{
      path: 'index',
      name: '开始考试',
      meta: {
        i18n: 'index',
      },
      component: () =>
        import( /* webpackChunkName: "views" */ '@/views/startexam/index')
    }]
  },
  {
    path: '/titleDetails',
    component: () =>
      import( /* webpackChunkName: "views" */ '@/views/exam/topicDetails')
  },
  {
    path: '',
    component: Layout,
    children: [{
      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
    }]
  },
]
src/styles/element-ui.scss
@@ -1,204 +1,243 @@
.el-dropdown-menu__item {
  font-size: 12px !important;
  line-height: 28px !important;
    font-size: 12px !important;
    line-height: 28px !important;
}
//.el-card.is-always-shadow {
//  box-shadow: none;
//  border: none !important;
//}
.el-scrollbar__view {
  height: 100%;
    height: 100%;
}
.el-menu--horizontal {
  border-bottom: none !important;
    border-bottom: none !important;
}
.el-menu {
  border-right: none !important;
    border-right: none !important;
}
.el-menu--display,
.el-menu--display + .el-submenu__icon-arrow {
  display: none;
.el-menu--display+.el-submenu__icon-arrow {
    display: none;
}
.el-message__icon,
.el-message__content {
  display: inline-block;
    display: inline-block;
}
.el-date-editor .el-range-input,
.el-date-editor .el-range-separator {
  height: auto;
  overflow: hidden;
    height: auto;
    overflow: hidden;
}
.el-dialog__wrapper {
  z-index: 2048;
    z-index: 2048;
}
.el-col {
  margin-bottom: 8px;
    margin-bottom: 8px;
}
.el-main {
  padding: 0 !important;
    padding: 0 !important;
}
.el-dropdown-menu__item--divided:before,
.el-menu,
.el-menu--horizontal > .el-menu-item:not(.is-disabled):focus,
.el-menu--horizontal > .el-menu-item:not(.is-disabled):hover,
.el-menu--horizontal > .el-submenu .el-submenu__title:hover {
  background-color: transparent;
.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,
.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,
.el-menu--horizontal>.el-submenu .el-submenu__title:hover {
    background-color: transparent;
}
.el-dropdown-menu__item--divided:before,
.el-menu,
.el-menu--horizontal > .el-menu-item:not(.is-disabled):focus,
.el-menu--horizontal > .el-menu-item:not(.is-disabled):hover,
.el-menu--horizontal > .el-submenu .el-submenu__title:hover {
  background-color: transparent !important;
.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,
.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,
.el-menu--horizontal>.el-submenu .el-submenu__title:hover {
    background-color: transparent !important;
}
.el-card__header {
  padding: 6px 18px !important;
    padding: 6px 18px !important;
}
.el-card__body {
  //padding: 16px !important;
    //padding: 16px !important;
}
.el-divider--horizontal {
  margin: 12px 0 !important;
    margin: 12px 0 !important;
}
//表格斑马纹
.el-table tr:nth-child(2n -1) {
  // background-color: rgba($color: #000000, $alpha: 0.1) !important;
    // background-color: rgba($color: #000000, $alpha: 0.1) !important;
}
//顶部搜索栏
.el-card.is-never-shadow.avue-crud__search {
  position: absolute !important;
  width: calc(100% - 220px) !important;
  z-index: 500 !important;
  border: none !important;
  box-shadow: none !important;
  height: 40px;
    position: absolute !important;
    width: calc(100% - 220px) !important;
    z-index: 500 !important;
    border: none !important;
    box-shadow: none !important;
    height: 40px;
}
//取消顶部搜索栏
.user .el-card.is-never-shadow.avue-crud__search {
  position: relative !important;
  width: auto !important;
  z-index: 500 !important;
  border: none !important;
  box-shadow: none !important;
  height: auto;
    position: relative !important;
    width: auto !important;
    z-index: 500 !important;
    border: none !important;
    box-shadow: none !important;
    height: auto;
}
.desk .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 360px) !important;
    width: calc(100% - 360px) !important;
}
.securityGuard .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 300px) !important;
  left: 120px;
    width: calc(100% - 300px) !important;
    left: 120px;
}
.securityUnit .el-card.is-never-shadow.avue-crud__search {
  left: 200px;
  width: calc(100% - 380px) !important;
    left: 200px;
    width: calc(100% - 380px) !important;
}
.equipments .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 380px) !important;
  left: 200px;
    width: calc(100% - 380px) !important;
    left: 200px;
}
.dispatch .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 380px) !important;
  left: 200px;
    width: calc(100% - 380px) !important;
    left: 200px;
}
.dispatchChildoperable .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 280px) !important;
  left: 90px;
    width: calc(100% - 280px) !important;
    left: 90px;
}
.workreply .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 380px) !important;
  left: 200px !important;
    width: calc(100% - 380px) !important;
    left: 200px !important;
}
.recruitmentManagement .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 380px) !important;
  left: 200px !important;
    width: calc(100% - 380px) !important;
    left: 200px !important;
}
.hasButOne .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 300px) !important;
  left: 120px !important;
    width: calc(100% - 300px) !important;
    left: 120px !important;
}
.hasButTwo .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 380px) !important;
  left: 200px !important;
    width: calc(100% - 380px) !important;
    left: 200px !important;
}
.topmenu .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 390px) !important;
  left: 220px !important;
    width: calc(100% - 390px) !important;
    left: 220px !important;
}
.hasButThree .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 510px) !important;
  left: 310px !important;
    width: calc(100% - 510px) !important;
    left: 310px !important;
}
.morpheus-box .el-card.is-never-shadow.avue-crud__search {
    width: calc(100% - 390px) !important;
    left: 270px !important;
}
.morpheus-box-exam .el-card.is-never-shadow.avue-crud__search {
    width: calc(100% - 390px) !important;
    left: 20px !important;
}
.morpheus-box-paper .el-card.is-never-shadow.avue-crud__search {
    width: calc(100% - 390px) !important;
    left: 220px !important;
}
.morpheus-box-score .el-card.is-never-shadow.avue-crud__search {
    width: calc(100% - 390px) !important;
    left: 150px !important;
}
.morpheus-box-apply-exam .el-card.is-never-shadow.avue-crud__search {
    width: calc(100% - 390px) !important;
    left: 300px !important;
}
.avue-form {
  position: relative;
  top: -10px;
    position: relative;
    top: -10px;
}
//顶部按钮栏
.avue-crud__menu {
  height: 60px;
    height: 60px;
}
//顶部按钮
.avue-crud .avue-crud__left .el-button,
.avue-crud .avue-crud__right .el-button,
.avue-form .avue-crud__left .el-button,
.avue-form .avue-crud__right .el-button {
  position: relative;
  top: 5px;
    position: relative;
    top: 5px;
}
//左侧导航栏
.avue-logo {
  background-color: #409eff !important;
  color: #fff !important;
    background-color: #409eff !important;
    color: #fff !important;
}
.avue-sidebar {
  background-color: #fff !important;
    background-color: #fff !important;
}
.avue-header {
  background-color: #409eff !important;
  color: #fff !important;
    background-color: #409eff !important;
    color: #fff !important;
}
.avue-sidebar .el-menu-item span,
.avue-sidebar .el-submenu__title span,
.avue-sidebar .el-submenu__title i,
.avue-sidebar .el-menu-item i {
  color: #000 !important;
    color: #000 !important;
}
// 菜单 活动背景
.avue-sidebar .el-menu-item.is-active {
  background-color: #409eff !important;
    background-color: #409eff !important;
}
.avue-sidebar .el-menu-item.is-active span,
.el-menu-item.is-active i {
  color: #fff !important;
    color: #fff !important;
}
//top 导航 按钮
.el-menu--horizontal > .el-menu-item.is-active,
.el-menu--horizontal>.el-menu-item.is-active,
.avue-top,
.el-dropdown {
  color: #fff !important;
}
    color: #fff !important;
}
src/util/util.js
@@ -365,3 +365,43 @@
    }
  };
}
/**
 * 判断对象是否为空
 * @param obj
 * @returns {boolean}
 */
export const isNotEmpty = (obj) => {
  let flag = true
  if (obj === '' || obj == null || obj === undefined || obj === 'undefined') {
    flag = false
  }
  return flag
}
/**
 * 警告消息提示
 * @param obj
 * @param message
 */
export const messageWarn = (obj, message) => {
  obj.$message({ message: message, type: 'warning', offset: 70 })
}
/**
 * 失败消息提示
 * @param obj
 * @param message
 */
export const messageFail = (obj, message) => {
  obj.$message({ message: message, type: 'error', offset: 70 })
}
/**
 * 成功消息提示
 * @param obj
 * @param message
 */
export const messageSuccess = (obj, message) => {
  obj.$message({ message: message, type: 'success', offset: 70 })
}
src/views/applyexam/index.vue
@@ -6,7 +6,7 @@
 * menu-name 报名考试
 */
<template>
    <el-row class="morpheus-box">
    <el-row class="morpheus-box-apply-exam">
        <el-col :span="24" class="hasButOne">
            <el-card>
                <div class="exam-card-body">
@@ -55,6 +55,16 @@
                                       size="small"
                                       icon="el-icon-delete"
                                       @click="questionBankHandleDelete">删 除
                            </el-button>
                        </template>
                        <template slot-scope="{ type,row }" slot="menu">
                            <el-button
                            :type="type"
                            size="small"
                            icon="el-icon-receiving"
                            @click="handlePrint(row)"
                            >准考证打印
                            </el-button>
                        </template>
@@ -110,7 +120,7 @@
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 100,
                menuWidth: 200,
                column: [
                    {
@@ -263,23 +273,23 @@
                            trigger: "blur"
                        }],
                    },
                    {
                        label: "试卷分数",
                        prop: "paperScore",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false
                    },
                    // {
                    //     label: "试卷分数",
                    //     prop: "paperScore",
                    //     slot: true,
                    //     // 表单新增时是否禁止
                    //     addDisabled: false,
                    //     // 表单新增时是否可见
                    //     addDisplay: false,
                    //     // 表单新增时是否为查看模式
                    //     addDetail: false,
                    //     // 表单编辑时是否禁止
                    //     editDisabled: true,
                    //     // 表单编辑时是否可见
                    //     editDisplay: true,
                    //     // 表单编辑时是否为查看模式
                    //     editDetail: false
                    // },
                    {
                        label: "报名时间",
                        prop: "applyTime",
@@ -406,6 +416,15 @@
        },
    },
    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 => {
src/views/applyexam/papers.vue
New file
@@ -0,0 +1,40 @@
<template>
  <!-- <iframe src="http://124.71.113.22/map/index.html?openid=PatrolManagement" style="width: 100%;height: 100%" frameborder="0"></iframe> -->
  <iframe :src="url" style="width: 100%; height: 100%" frameborder="0"></iframe>
</template>
<script>
//占位路由 巡逻管理
export default {
  data() {
    return {
      url: "/papers.html",
    };
  },
  created(){
      var d = this.$route.query;
      this.url += "?data=" + JSON.stringify(d);
    //   console.log(d);
  },
  mounted() {
    var flag = false,
      i = 0,
      ind = null;
    this.$store.state.tags.tagList.forEach((item, index) => {
      if (item.label == "准考证信息") {
        if (flag == false) {
          ind = index;
          flag = true;
        }
        i++;
      }
    });
    if (i > 1) {
      this.$store.state.tags.tagList.splice(ind, 1);
    }
  },
};
</script>
<style>
</style>
src/views/exam/examination.vue
@@ -6,7 +6,7 @@
 * menu-name 试卷管理
 */
<template>
    <el-row class="morpheus-box">
    <el-row class="morpheus-box-paper">
        <el-col :span="24">
            <el-card>
@@ -144,7 +144,7 @@
                        label: "试卷名称",
                        prop: "examName",
                        search: true,
                        searchSpan: 4,
                        searchSpan: 5,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
src/views/exam/performance.vue
@@ -7,7 +7,7 @@
 */
<template>
    <el-row class="morpheus-box">
        <el-col :span="24">
        <el-col :span="24" class="recruitmentManagement">
            <el-card>
                <div class="exam-card-body">
@@ -34,28 +34,49 @@
                        </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> -->
                            <!-- <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>
                            <el-button type="danger"
                                       size="mini"
                                       icon="el-icon-delete"
                                       plain
                                       @click="handleDelete">导出
                            </el-button>
                        </template> -->
                        </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>
@@ -97,6 +118,7 @@
            obj: {
                name: '张三',
            },
            excelBox:false,
            questionBankOption: {
                // 操作栏多余按钮去除
                delBtn: false,
@@ -107,8 +129,7 @@
                excelBtn: true,
                excelBtnText: '成绩导出',
                viewBtn: true,
                title: '成绩',
                // title: '成绩',
                align: 'center',
                height: 'auto',
                calcHeight: 80,
@@ -129,7 +150,7 @@
                        label: "试卷名称",
                        prop: "examName",
                        search: true,
                        searchSpan: 4,
                        searchSpan: 5,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
@@ -175,14 +196,14 @@
                    },
                    {
                        label: "所属公司",
                        prop: "company",
                        prop: "companyName",
                        search: true,
                        searchSpan: 4,
                        dicUrl: '/api/blade-system/dept/tree',
                        props: {
                            label: "title",
                            value: "id",
                        },
                        searchSpan: 5,
                        // dicUrl: '/api/blade-system/dept/tree',
                        // props: {
                        //     label: "title",
                        //     value: "id",
                        // },
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
@@ -260,28 +281,30 @@
                        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: "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",
@@ -330,6 +353,58 @@
            },
            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,
                },
                ],
            },
        }
    },
    created () {
@@ -389,6 +464,18 @@
                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();
        },
    }
}
src/views/exam/startexam.vue
@@ -6,7 +6,7 @@
 * menu-name 考试管理
 */
<template>
    <el-row class="morpheus-box">
    <el-row class="morpheus-box-exam">
        <el-col :span="24">
            <el-card>
@@ -133,7 +133,7 @@
                        label: "试卷名称",
                        prop: "examName",
                        search: true,
                        searchSpan: 4,
                        searchSpan: 5,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
src/views/exam/subject.vue
@@ -67,7 +67,7 @@
                // 导出按钮
                excelBtn: true,
                excelBtnText: '题库导出',
                title: '题库',
                // title: '题库',
                align: 'center',
                height: 'auto',
src/views/singleperformance/index.vue
@@ -6,7 +6,7 @@
 * menu-name 成绩管理
 */
<template>
    <el-row class="morpheus-box">
    <el-row class="morpheus-box-score">
        <el-col :span="24">
            <el-card>
@@ -107,7 +107,7 @@
                excelBtn: true,
                excelBtnText: '成绩导出',
                viewBtn: true,
                title: '成绩',
                // title: '成绩',
                align: 'center',
                height: 'auto',
@@ -129,7 +129,7 @@
                        label: "试卷名称",
                        prop: "examName",
                        search: true,
                        searchSpan: 4,
                        searchSpan: 5,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
@@ -175,14 +175,14 @@
                    },
                    {
                        label: "所属公司",
                        prop: "company",
                        prop: "companyName",
                        search: true,
                        searchSpan: 4,
                        dicUrl: '/api/blade-system/dept/tree',
                        props: {
                            label: "title",
                            value: "id",
                        },
                        searchSpan: 5,
                        // dicUrl: '/api/blade-system/dept/tree',
                        // props: {
                        //     label: "title",
                        //     value: "id",
                        // },
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
@@ -260,28 +260,28 @@
                        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: "allGrade",
                    //     slot: true,
                    //     // 表单新增时是否禁止
                    //     addDisabled: false,
                    //     // 表单新增时是否可见
                    //     addDisplay: true,
                    //     // 表单新增时是否为查看模式
                    //     addDetail: false,
                    //     // 表单编辑时是否禁止
                    //     editDisabled: true,
                    //     // 表单编辑时是否可见
                    //     editDisplay: true,
                    //     // 表单编辑时是否为查看模式
                    //     editDetail: false,
                    //     rules: [{
                    //         required: true,
                    //         message: "请输入考试名称",
                    //         trigger: "blur"
                    //     }]
                    // },
                    {
                        label: "是否合格",
                        prop: "qualified",
src/views/startexam/index.vue
@@ -240,19 +240,18 @@
        },
        startExam () {
            // 获取题目ID列表
            getSubjectIds({ id: this.query.examinationId }).then(subjectResponse => {
                const subjectData = subjectResponse.data.data.examExaminationSubjects
            getSubjectIds().then(subjectResponse => {
                const subjectData = subjectResponse.data.data
                if (subjectData.length > 0) {
                    for (let i = 0; i < subjectData.length; i++) {
                        const { examSubjectChoices } = subjectData[i]
                        this.subjectIds.push({
                            subjectId: subjectResponse.data.data.id,
                            everyID: examSubjectChoices.id,
                            type: examSubjectChoices.choicesType,
                            subjectId: 1,
                            everyID: subjectData[i].id,
                            type: subjectData[i].choicesType,
                            index: i + 1,
                            answered: false,
                            answer: examSubjectChoices.answer,
                            score: examSubjectChoices.score
                            answer: subjectData[i].answer,
                            score: subjectData[i].score
                        })
                    }
@@ -444,7 +443,6 @@
            })
        },
        doSubmitExam () {
            var obj = {
                examName: this.$route.query.examName,
                securityName: this.userInfo.user_name,
src/views/trainingRegistration/data.js
@@ -98,7 +98,7 @@
            message: "请输入培训公司名称",
            trigger: "blur"
        }],
        searchSpan: 5,
        searchSpan: 6,
        searchLabelWidth: 110,
        search: true,
        overHidden: true