liuyg
2021-08-07 49e8a69a09a1b33545b77eb47b3a8f8d1ce0c261
样式
29 files modified
4 files added
3900 ■■■■ changed files
src/router/views/index.js 54 ●●●● patch | view | raw | blame | history
src/styles/element-ui.scss 11 ●●●●● patch | view | raw | blame | history
src/views/applyexam/index.vue 276 ●●●●● patch | view | raw | blame | history
src/views/desk/notice.vue 8 ●●●●● patch | view | raw | blame | history
src/views/dispatch/data.js 3 ●●●● patch | view | raw | blame | history
src/views/dispatch/dispatch.vue 2 ●●●●● patch | view | raw | blame | history
src/views/dispatch/dispatchChildoperable.vue 13 ●●●● patch | view | raw | blame | history
src/views/dispatch/dispatchChildoperableSee.vue 853 ●●●●● patch | view | raw | blame | history
src/views/exam/performance.vue 162 ●●●● patch | view | raw | blame | history
src/views/exam/singleperformance.vue 400 ●●●●● patch | view | raw | blame | history
src/views/exam/startexam.vue 194 ●●●● patch | view | raw | blame | history
src/views/exam/subject.vue 126 ●●●● 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 4 ●●● patch | view | raw | blame | history
src/views/securityEquipment/car.js 2 ●●● patch | view | raw | blame | history
src/views/securityEquipment/car.vue 4 ●●● patch | view | raw | blame | history
src/views/securityEquipment/equipments.js 6 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/equipments.vue 4 ●●● patch | view | raw | blame | history
src/views/securityEquipment/gun.js 5 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/gun.vue 4 ●●● 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 4 ●●● patch | view | raw | blame | history
src/views/trainExam/data.js 4 ●●●● patch | view | raw | blame | history
src/views/traincompany/index.vue 1 ●●●● patch | view | raw | blame | history
src/views/trainingRegistration/data.js 8 ●●●● patch | view | raw | blame | history
src/views/trainingRegistration/index.vue 17 ●●●●● patch | view | raw | blame | history
src/router/views/index.js
@@ -786,31 +786,31 @@
        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
@@ -10,8 +10,8 @@
        <el-col :span="24" class="hasButOne">
            <el-card>
                <div class="exam-card-body">
                    <avue-crud v-model="obj"
          <avue-crud
            v-model="obj"
                               class="company-box"
                               :option="questionBankOption"
                               :search.sync="questionBankSearch"
@@ -26,8 +26,8 @@
                               @current-change="questionBankCurrentChange"
                               @size-change="questionBankSizeChange"
                               @row-save="questionBankRowSave"
                               @row-del="questionBankRowDel">
            @row-del="questionBankRowDel"
          >
                        <!-- 自定义按钮 -->
                        <!-- <template slot="menuLeft">
                            <el-button type="danger"
@@ -85,50 +85,53 @@
                            >准考证打印
                            </el-button>
                        </template>
                    </avue-crud>
                    <el-dialog title="考试资格审核"
          <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>
            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
  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:{},
@@ -159,27 +162,30 @@
                        editDisplay: false,
                        addDisplay: false,
                        type: "select",
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请选择审核类型",
                            trigger: "blur"
                        }],
                        dicData: [{
                trigger: "blur",
              },
            ],
            dicData: [
              {
                                label: "审核通过",
                                value: 2
                value: 2,
                            },
                            {
                                label: "不通过",
                                value: 3
                            }
                        ]
                value: 3,
              },
            ],
                    },
                    {
                        label: "审核明细",
                        span: 24,
                        type: "textarea",
                        prop: "auditDetail"
                    }
            prop: "auditDetail",
          },
                ],
            },
            questionBankOption: {
@@ -195,14 +201,14 @@
                // title: '题库',
                align: 'center',
                height: 'auto',
        align: "center",
        height: "auto",
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                indexLabel: '#',
        indexLabel: "#",
                //dialogType: 'drawer',
                dialogClickModal: false,
                //tree 默认展开
@@ -214,12 +220,12 @@
                    {
                        label: "保安姓名",
                        prop: "userId",
                        type: 'tree',
                        dicUrl: '',
            type: "tree",
            dicUrl: "",
                        search: true,
                        hide:true,
                        slot: true,
                        searchSpan:5,
            searchSpan: 4,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
@@ -236,12 +242,14 @@
                            label: "title",
                            value: "id",
                        },
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请选择保安姓名",
                            trigger: "blur"
                        }],
                        width:80
                trigger: "blur",
              },
            ],
            width: 80,
                    },
                    {
                        label: "保安姓名",
@@ -263,17 +271,19 @@
                            label: "title",
                            value: "id",
                        },
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请选择保安姓名",
                            trigger: "blur"
                        }]
                trigger: "blur",
              },
            ],
                    },
                    {
                        label: "考试名称",
                        prop: "examName",
                        type: 'tree',
                        dicUrl: '/api/exampaper/page-tree?examType=1',
            type: "tree",
            dicUrl: "/api/exampaper/page-tree?examType=1",
                        // search: true,
                        slot: true,
                        // 表单新增时是否禁止
@@ -292,19 +302,21 @@
                            label: "examName",
                            value: "id",
                        },
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请选择试卷名称",
                            trigger: "blur"
                        }],
                        width: 220
                trigger: "blur",
              },
            ],
            width: 220,
                    },
                    {
                        label: "所属公司",
                        prop: "deptName",
                        search: true,
                        slot: true,
                        searchSpan:5,
            searchSpan: 4,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
@@ -317,12 +329,14 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请选择所属公司",
                            trigger: "blur"
                        }],
                        width: 220
                trigger: "blur",
              },
            ],
            width: 220,
                    },
                    {
                        label: "准考证号",
@@ -340,12 +354,14 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请选择准考证号",
                            trigger: "blur"
                        }],
                        width: 100
                trigger: "blur",
              },
            ],
            width: 100,
                    },
                    {
                        label: "身份证号",
@@ -363,12 +379,14 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请选择准考证号",
                            trigger: "blur"
                        }],
                        width: 150
                trigger: "blur",
              },
            ],
            width: 150,
                    },
                    {
                        label: "报考证件",
@@ -386,11 +404,13 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请选择准考证号",
                            trigger: "blur"
                        }],
                trigger: "blur",
              },
            ],
                    },
                    // {
                    //     label: "试卷分数",
@@ -414,8 +434,8 @@
                        prop: "applyTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
                        // 表单新增时是否禁止
                        addDisabled: true,
                        // 表单新增时是否可见
@@ -428,27 +448,38 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        value: (new Date().getFullYear() + '-' + (new Date().getMonth() + 1 < 10
            value:
              new Date().getFullYear() +
              "-" +
              (new Date().getMonth() + 1 < 10
                            ? "0" + (new Date().getMonth() + 1)
                            : new Date().getMonth() + 1) + '-' + (new Date().getDate() < 10
                : new Date().getMonth() + 1) +
              "-" +
              (new Date().getDate() < 10
                                ? "0" + new Date().getDate()
                                : new Date().getDate()) + ' ' + (new Date().getHours() < 10
                : new Date().getDate()) +
              " " +
              (new Date().getHours() < 10
                                    ? "0" + new Date().getHours()
                                    : new Date().getHours()) + ':' + (new Date().getMinutes() < 10
                : new Date().getHours()) +
              ":" +
              (new Date().getMinutes() < 10
                                        ? "0" + new Date().getMinutes()
                                        : new Date().getMinutes()) + ':' + (new Date().getSeconds() < 10
                : new Date().getMinutes()) +
              ":" +
              (new Date().getSeconds() < 10
                                            ? "0" + new Date().getSeconds()
                                            : new Date().getSeconds())),
                : new Date().getSeconds()),
                        width: 150
            width: 150,
                    },
                    {
                        label: "考试时间",
                        prop: "examTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
@@ -461,12 +492,13 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        width: 150
                    },{
            width: 150,
          },
          {
                        label: "报名状态",
                        prop: "applyStatus", 
                        slot: true,
                        searchSpan:5,
            searchSpan: 4,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
@@ -481,7 +513,7 @@
                        editDetail: false,
                        dicData:DIC.applyStatus,
                        search:true,
                        type:"select"
            type: "select",
                    },
                    // {
                    //     label: "审核状态",
@@ -517,21 +549,19 @@
                    //     search:true,
                    //     type:"select"
                    // },
                ]
        ],
            },
            questionBankSearch: {},
            questionBankLoading: true,
            questionBankData: [
            ],
      questionBankData: [],
            questionBankPage: {
                pageSize: 10,
                currentPage: 1,
                total: 16
        total: 16,
            },
            questionBankQuery: {},
            questionBankSelectionList: [],
        }
    };
    },
    watch: {
@@ -559,30 +589,25 @@
        },
    },
    created () {
    console.log(this.userInfo);
      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="
    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
      this.questionBankOption.column[0].dicUrl =
        "/api/blade-system/dept/lazy-tree-user?parentId=" +
        this.userInfo.dept_id;
      }
    },
    mounted () {
    },
  mounted() {},
    computed: {
        ...mapState({
            userInfo: state => state.user.userInfo
      userInfo: (state) => state.user.userInfo,
        }),
        ids () {
            let ids = [];
            this.questionBankSelectionList.forEach(ele => {
      this.questionBankSelectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
@@ -600,7 +625,11 @@
        },
        questionBankOnLoad (page, params = {}) {
            this.questionBankLoading = false;
            getApplyList(page.currentPage, page.pageSize, Object.assign(params, this.questionBankQuery)).then(res => {
      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;
@@ -635,7 +664,12 @@
        // 新增
        questionBankRowSave (row, done, loading) {
            // debugger;
            addApply({ userId: row.userId, examId: row.examName, applyTime: row.applyTime }).then((res) => {
      addApply({
        userId: row.userId,
        examId: row.examName,
        applyTime: row.applyTime,
      }).then(
        (res) => {
                this.questionBankOnLoad(this.questionBankPage);
                if(res.data.data==201){
                    this.$message({
@@ -654,17 +688,19 @@
                    });
                }
                done();
            }, error => {
        },
        (error) => {
                window.console.log(error);
                loading();
            });
        }
      );
        },
        questionBankRowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
        type: "warning",
            })
                .then(() => {
                    return remove(row.id);
@@ -673,7 +709,7 @@
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
            message: "操作成功!",
                    });
                });
        },
@@ -683,7 +719,7 @@
            this.$confirm("确定取消报名?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
        type: "warning",
            })
                .then(() => {
                    row.applyStatus = 4;
@@ -693,7 +729,7 @@
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
            message: "操作成功!",
                    });
                });
        },
@@ -706,7 +742,7 @@
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
        type: "warning",
            })
                .then(() => {
                    return remove(this.ids);
@@ -715,7 +751,7 @@
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
            message: "操作成功!",
                    });
                    this.$refs.questionBankCrud.toggleSelection();
                });
@@ -724,8 +760,8 @@
            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,
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,4 +1,5 @@
<template>
  <basic-container>
  <div class="dispatch">
    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
    <span v-if="typeTABS.prop === 'tab1'"> -->
@@ -60,6 +61,7 @@
    </span> -->
    <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
  </div>
  </basic-container>
</template> 
<script>
src/views/dispatch/dispatchChildoperable.vue
@@ -1,4 +1,5 @@
<template>
  <basic-container>
  <div class="dispatchChildoperable">
    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs> -->
    <!-- <span v-if="typeTABS.prop === 'tab1'"> -->
@@ -63,6 +64,7 @@
    <!-- </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>
  <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
@@ -9,10 +9,9 @@
    <el-row class="morpheus-box">
        <el-col :span="24" class="recruitmentManagement">
            <el-card>
                <div class="exam-card-body">
                    <avue-crud v-model="obj"
          <avue-crud
            v-model="obj"
                               class="company-box"
                               :option="questionBankOption"
                               :search.sync="questionBankSearch"
@@ -26,10 +25,9 @@
                               @search-reset="questionBankSearchReset"
                               @current-change="questionBankCurrentChange"
                               @size-change="questionBankSizeChange"
                               @row-update="questionBankRowUpdate">
                        <template slot-scope="{ row }"
                                  slot="learnGrade">
            @row-update="questionBankRowUpdate"
          >
            <template slot-scope="{ row }" slot="learnGrade">
                            {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
                        </template>
@@ -56,7 +54,6 @@
                                >实操成绩导入
                            </el-button>
                        </template>
                    </avue-crud>
                    <el-dialog
@@ -77,38 +74,28 @@
                            </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('请输入实操成绩'));
      console.log(value);
      if (value == undefined || value == "") {
        callback(new Error("请输入实操成绩"));
                return;
            } else if (value !== '' && isNaN(value) == true) {
                callback(new Error('请输入数字'));
      } else if (value !== "" && isNaN(value) == true) {
        callback(new Error("请输入数字"));
            } else if (value <= 0) {
                callback(new Error('分数设置请大于0'));
        callback(new Error("分数设置请大于0"));
            } else if (value > 100) {
                callback(new Error('分数设置请小于100'));
        callback(new Error("分数设置请小于100"));
            } else {
                callback();
            }
@@ -116,7 +103,7 @@
        return {
            obj: {
                name: '张三',
        name: "张三",
            },
            excelBox:false,
            questionBankOption: {
@@ -127,17 +114,17 @@
                selection: false,
                // 导出按钮
                excelBtn: true,
                excelBtnText: '成绩导出',
        excelBtnText: "成绩导出",
                viewBtn: true,
                // title: '成绩',
                align: 'center',
                height: 'auto',
        align: "center",
        height: "auto",
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                indexLabel: '序号',
        indexLabel: "序号",
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
@@ -150,7 +137,7 @@
                        label: "试卷名称",
                        prop: "examName",
                        search: true,
                        searchSpan: 5,
            searchSpan: 4,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
@@ -164,11 +151,13 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请输入试卷名称",
                            trigger: "blur"
                        }]
                trigger: "blur",
              },
            ],
                    },
                    {
                        label: "保安姓名",
@@ -188,17 +177,19 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请输入保安姓名",
                            trigger: "blur"
                        }]
                trigger: "blur",
              },
            ],
                    },
                    {
                        label: "所属公司",
                        prop: "companyName",
                        search: true,
                        searchSpan: 5,
            searchSpan: 4,
                        // dicUrl: '/api/blade-system/dept/tree',
                        // props: {
                        //     label: "title",
@@ -217,19 +208,21 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请输入所属公司",
                            trigger: "blur"
                        }]
                trigger: "blur",
              },
            ],
                    },
                    {
                        label: "考试时间",
                        prop: "examTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
                        width: 250,
                        slot: true,
                        // 表单新增时是否禁止
@@ -261,7 +254,6 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                    },
                    {
                        label: "实操成绩",
@@ -279,7 +271,9 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{ validator: validatePass, required: true, trigger: 'blur' }],
            rules: [
              { validator: validatePass, required: true, trigger: "blur" },
            ],
                    },
                    // {
                    //     label: "总成绩",
@@ -308,20 +302,24 @@
                    {
                        label: "是否合格",
                        prop: "qualified",
                        type: 'select',
            type: "select",
                        slot: true,
                        search: true,
                        searchSpan: 4,
                        dicData: [{
                            label: '合格',
                            value: 0
                        }, {
                            label: '不合格',
            dicData: [
              {
                label: "合格",
                value: 0,
              },
              {
                label: "不合格",
                            value: 1,
                        }, {
                            label: '暂未录实操成绩',
              },
              {
                label: "暂未录实操成绩",
                            value: 2,
                        }],
              },
            ],
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
@@ -334,22 +332,23 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请输入考试名称",
                            trigger: "blur"
                        }]
                trigger: "blur",
                    },
                ]
            ],
          },
        ],
            },
            questionBankSearch: {},
            questionBankLoading: true,
            questionBankData: [
            ],
      questionBankData: [],
            questionBankPage: {
                pageSize: 10,
                currentPage: 1,
                total: 16
        total: 16,
            },
            questionBankQuery: {},
            questionBankSelectionList: [],
@@ -405,20 +404,18 @@
                },
                ],
            },
        }
    };
    },
    created () {
    },
    mounted () {
    },
  created() {},
  mounted() {},
    methods: {
        questionBankOnLoad (page, params = {}) {
            this.questionBankLoading = false;
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
      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;
@@ -451,18 +448,24 @@
        },
        questionBankRowUpdate (row, index, done, loading) {
            update({ theoryGrade: row.theoryGrade, learnGrade: row.learnGrade, id: row.id }).then(() => {
      update({
        theoryGrade: row.theoryGrade,
        learnGrade: row.learnGrade,
        id: row.id,
      }).then(
        () => {
                this.questionBankOnLoad(this.questionBankPage);
                this.$message({
                    type: "success",
                    message: "操作成功!"
            message: "操作成功!",
                });
                done();
            }, error => {
        },
        (error) => {
                window.console.log(error);
                loading();
            });
        }
      );
        },
        handleTemplate() {
            window.open(`/api/examScore/export-template`);
@@ -479,9 +482,8 @@
        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
@@ -9,10 +9,9 @@
    <el-row class="morpheus-box-paper">
        <el-col :span="24">
            <el-card>
                <div class="exam-card-body">
                    <avue-crud v-model="form"
          <avue-crud
            v-model="form"
                               class="company-box"
                               :option="questionBankOption"
                               :search.sync="questionBankSearch"
@@ -28,8 +27,8 @@
                               @size-change="questionBankSizeChange"
                               @row-save="questionBankRowSave"
                               @row-update="questionBankRowUpdate"
                               @row-del="questionBankRowDel">
            @row-del="questionBankRowDel"
          >
                        <!-- 自定义按钮 -->
                        <!-- <template slot="menuLeft">
                            <el-button type="danger"
@@ -53,60 +52,50 @@
                        </template> -->
                        <template slot="menuLeft">
                            <el-button type="danger"
              <el-button
                type="danger"
                                       size="small"
                                       icon="el-icon-delete"
                                       @click="questionBankHandleDelete">删 除
                @click="questionBankHandleDelete"
                >删 除
                            </el-button>
                        </template>
                        <template slot-scope="{row}"
                                  slot="examStatus">
                            <el-tag>{{row.examStatus == 0 ? '已发布' : '草稿'}}</el-tag>
            <template slot-scope="{ row }" slot="examStatus">
              <el-tag>{{ row.examStatus == 0 ? "已发布" : "草稿" }}</el-tag>
                        </template>
                        <template slot-scope="{row}"
                                  slot="menu">
                            <el-button type="text"
            <template slot-scope="{ row }" slot="menu">
              <el-button
                type="text"
                                       size="mini"
                                       icon="el-icon-collection"
                                       class="start-kaoshi"
                                       @click="startExam(row)">报名清册
                @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 () {
        var validatePass = (rule, value, callback) => {
            console.log(value)
            if (value == undefined || value == '') {
                callback(new Error('请输入分数'));
      console.log(value);
      if (value == undefined || value == "") {
        callback(new Error("请输入分数"));
                return;
            } else if (value !== '' && isNaN(value) == true) {
                callback(new Error('请输入数字'));
      } else if (value !== "" && isNaN(value) == true) {
        callback(new Error("请输入数字"));
            } else if (value <= 0) {
                callback(new Error('分数设置请大于0'));
        callback(new Error("分数设置请大于0"));
            } else {
                callback();
            }
@@ -127,14 +116,14 @@
                // title: '题库',
                align: 'center',
                height: 'auto',
        align: "center",
        height: "auto",
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                indexLabel: '序号',
        indexLabel: "序号",
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
@@ -147,7 +136,7 @@
                        label: "考试名称",
                        prop: "examName",
                        search: true,
                        searchSpan: 5,
            searchSpan: 4,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
@@ -161,11 +150,13 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请输入试卷名称",
                            trigger: "blur"
                        }]
                trigger: "blur",
              },
            ],
                    },
                    // {
                    //     label: "试卷分数",
@@ -192,10 +183,10 @@
                        prop: "examTime",
                        type: "daterange",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
                        startPlaceholder: '考试开始时间',
                        endPlaceholder: '考试结束时间',
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
            startPlaceholder: "考试开始时间",
            endPlaceholder: "考试结束时间",
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
@@ -210,20 +201,22 @@
                        editDetail: false,
                        // display: false,
                        hide: true,
                        rules: [{
            rules: [
              {
                            required: true,
                            message: "请选择考试时间",
                            trigger: "blur"
                        }],
                        width: 250
                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',
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
@@ -236,15 +229,15 @@
                        editDisplay: false,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        width: 180
            width: 180,
                    },
                    {
                        label: "考试结束时间",
                        prop: "endTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
@@ -257,7 +250,7 @@
                        editDisplay: false,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        width: 180
            width: 180,
                    },
                    {
                        label: "创建人",
@@ -294,7 +287,7 @@
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false
            editDetail: false,
                    },
                    {
                        label: "注意事项",
@@ -314,48 +307,42 @@
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        width: 240
            width: 240,
                    },
                ]
        ],
            },
            questionBankSearch: {},
            questionBankLoading: true,
            questionBankData: [
            ],
      questionBankData: [],
            questionBankPage: {
                pageSize: 10,
                currentPage: 1,
                total: 16
        total: 16,
            },
            questionBankQuery: {},
            questionBankSelectionList: [],
        }
    };
    },
    created () {
    },
    mounted () {
    },
  created() {},
  mounted() {},
    computed: {
        ids () {
            let ids = [];
            this.questionBankSelectionList.forEach(ele => {
      this.questionBankSelectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
    },
    watch: {
    },
  watch: {},
    methods: {
        questionBankOnLoad (page, params = {}) {
            this.questionBankLoading = false;
            getList(page.currentPage, page.pageSize, Object.assign(params, this.questionBankQuery)).then(res => {
      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;
@@ -392,59 +379,65 @@
            if(row.examType==1){
                this.$router.push({
                    path: `/applydetailed`,
                    query: row
                })
          query: row,
        });
            }
            //模拟考试
            if(row.examType==2){
                this.$router.push({
                    path: `/trainApply`,
                    query: row
                })
          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(() => {
      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: "操作成功!"
            message: "操作成功!",
                });
                done();
            }, error => {
        },
        (error) => {
                window.console.log(error);
                loading();
            });
        }
      );
        },
        questionBankRowUpdate (row, index, done, loading) {
            if (Array.isArray(row.examTime) != true) {
                row.examTime = row.examTime.split(",")
        row.examTime = row.examTime.split(",");
            }
            row.startTime = row.examTime[0]
            row.endTime = row.examTime[1]
            row.examTime = JSON.stringify(row.examTime)
            update(row).then(() => {
      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: "操作成功!"
            message: "操作成功!",
                });
                done();
            }, error => {
        },
        (error) => {
                window.console.log(error);
                loading();
            });
        }
      );
        },
        questionBankRowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
        type: "warning",
            })
                .then(() => {
                    return remove(row.id);
@@ -453,7 +446,7 @@
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
            message: "操作成功!",
                    });
                });
        },
@@ -465,7 +458,7 @@
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
        type: "warning",
            })
                .then(() => {
                    return remove(this.ids);
@@ -474,15 +467,14 @@
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
            message: "操作成功!",
                    });
                    this.$refs.questionBankCrud.toggleSelection();
                });
        },
    }
}
  },
};
</script>
<style lang="scss" scoped>
</style>
src/views/exam/subject.vue
@@ -10,10 +10,9 @@
    <el-row class="morpheus-box">
        <el-col :span="24">
            <el-card>
                <div class="exam-card-body">
                    <avue-crud class="company-box"
            <avue-crud
              class="company-box"
                               :option="questionBankOption"
                               :search.sync="questionBankSearch"
                               :table-loading="questionBankLoading"
@@ -26,13 +25,15 @@
                               @search-reset="questionBankSearchReset"
                               @current-change="questionBankCurrentChange"
                               @size-change="questionBankSizeChange"
                               @row-del="questionBankHandleDel">
              @row-del="questionBankHandleDel"
            >
                        <template slot="menuLeft">
                            <el-button type="primary"
                <el-button
                  type="primary"
                                       size="small"
                                       icon="el-icon-plus"
                                       @click="questionBankHandleAdd">新 增
                  @click="questionBankHandleAdd"
                  >新 增
                            </el-button>
                            <el-button
                                type="success"
@@ -42,26 +43,31 @@
                                @click="handleImport"
                                >题库导入
                            </el-button>
                            <el-button type="danger"
                <el-button
                  type="danger"
                                       size="small"
                                       icon="el-icon-delete"
                                       @click="questionBankHandleDelete">删 除
                  @click="questionBankHandleDelete"
                  >删 除
                            </el-button>
                        </template>
                        <template slot-scope="{row}" slot="menu">
                            <el-button type="text"
                <el-button
                  type="text"
                                       size="mini"
                                       icon="el-icon-edit"
                                       @click="questionBankHandleAdd(row)">编辑
                  @click="questionBankHandleAdd(row)"
                  >编辑
                            </el-button>
                            <el-button type="text"
                <el-button
                  type="text"
                                       size="mini"
                                       icon="el-icon-delete"
                                       @click="questionBankHandleDel(row)">删除
                  @click="questionBankHandleDel(row)"
                  >删除
                            </el-button>
                        </template>
                    </avue-crud>
                    <el-dialog
@@ -82,9 +88,7 @@
                            </template>
                        </avue-form>
                    </el-dialog>
                </div>
            </el-card>
        </el-col>
    </el-row>
@@ -93,16 +97,13 @@
</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
    addsubject,
    },
    data () {
        return {
@@ -142,16 +143,16 @@
                menu: true,
                // 导出按钮
                excelBtn: true,
                excelBtnText: '题库导出',
        excelBtnText: "题库导出",
                // title: '题库',
                align: 'center',
                height: 'auto',
        align: "center",
        height: "auto",
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                indexLabel: '序号',
        indexLabel: "序号",
                viewBtn: true,
                //dialogType: 'drawer',
                dialogClickModal: false,
@@ -161,7 +162,7 @@
                    {
                        label: "题目名称",
                        prop: "subjectName",
            searchSpan: 4,
                        search: true,
                        slot: true,
                    },
@@ -170,19 +171,25 @@
                        prop: "choicesType",
                        search: true,
                        type: "select",
                        dicData: [{
                            label: '单选题',
                            value: 0
                        }, {
                            label: '多选题',
            searchSpan: 4,
            dicData: [
              {
                label: "单选题",
                value: 0,
              },
              {
                label: "多选题",
                            value: 1,
                        }, {
                            label: '判断题',
              },
              {
                label: "判断题",
                            value: 2,
                        }, {
                            label: '实操题',
              },
              {
                label: "实操题",
                            value: 3,
                        }],
              },
            ],
                        slot: true,
                        width: 96,
                    },
@@ -221,35 +228,27 @@
                        prop: "modifyDate",
                        slot: true,
                        width: 130,
                    }
                ]
          },
        ],
            },
            questionBankSearch: {},
            questionBankLoading: true,
            questionBankData: [
            ],
      questionBankData: [],
            questionBankPage: {
                pageSize: 10,
                currentPage: 1,
                total: 16
        total: 16,
            },
            questionBankQuery: {},
            questionBankSelectionList: [],
        }
    };
    },
    created () {
    },
    mounted () {
    },
  created() {},
  mounted() {},
     computed: {
        ids () {
            let ids = [];
            this.questionBankSelectionList.forEach(ele => {
      this.questionBankSelectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
@@ -261,7 +260,11 @@
        },
        questionBankOnLoad (page, params = {}) {
            this.questionBankLoading = false;
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
      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;
@@ -297,17 +300,16 @@
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
        type: "warning",
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
            message: "操作成功!",
                    });
                });
        },
@@ -320,7 +322,7 @@
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
        type: "warning",
            })
                .then(() => {
                    return remove(this.ids);
@@ -329,7 +331,7 @@
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
            message: "操作成功!",
                    });
                    this.$refs.questionBankCrud.toggleSelection();
                });
@@ -349,9 +351,7 @@
            this.excelBox = true;
        },
        handleTemplate() {
            window.open(
                `/api/examSubjectChoices/export-template`
            );
      window.open(`/api/examSubjectChoices/export-template`);
        },
        uploadAfter(res, done, loading, column) {
            window.console.log(column);
@@ -362,8 +362,8 @@
        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,4 +1,5 @@
<template>
  <basic-container>
  <div class="recruitmentManagement">
    <avue-crud
      :option="option"
@@ -27,6 +28,7 @@
      </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,4 +1,5 @@
<template>
  <basic-container>
  <div class="equipments">
    <avue-crud
      :option="option"
@@ -27,6 +28,7 @@
      </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,6 +20,8 @@
        label: "名称",
        prop: "name",
        search: true,
        searchSpan: 4,
        searchLabelWidth: 50,
         rules: [{
            required: true,
            message: "请输入名称",
@@ -29,6 +31,7 @@
    {
        label: "编号",
        prop: "number",
        searchSpan: 4,
         rules: [{
            required: true,
            message: "请输入编号",
@@ -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,4 +1,5 @@
<template>
  <basic-container>
  <div class="equipments">
    <avue-crud
      :option="option"
@@ -27,6 +28,7 @@
      </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,4 +1,5 @@
<template>
  <basic-container>
  <div class="equipments">
    <avue-crud
      :option="option"
@@ -27,6 +28,7 @@
      </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,4 +1,5 @@
<template>
  <basic-container>
  <div class="securityUnit">
    <avue-crud
      :option="option"
@@ -99,6 +100,7 @@
      </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
@@ -27,7 +27,7 @@
    },
    {
        label: "考试名称",
        searchSpan: 5,
    searchSpan: 4,
        width: 180,
        prop: "trainExamName",
        search: true,
@@ -92,7 +92,7 @@
    {
        label: "审核状态",
        search: true,
        searchSpan: 5,
    searchSpan: 4,
        prop: "auditStatus",
        slot: true,
        editDisplay: false,
src/views/traincompany/index.vue
@@ -87,6 +87,7 @@
            display: false,
            search: true,
            searchSpan: 4,
            searchLabelWidth: 95,
            width: 120,
          },
          {
src/views/trainingRegistration/data.js
@@ -49,7 +49,7 @@
            label: "realName",
            value: "id"
        },
        searchSpan: 5,
    searchSpan: 4,
        rules: [{
            required: true,
            message: "请输入姓名",
@@ -61,7 +61,7 @@
        search: true,
        editDisplay: false,
        addDisplay: false,
        searchSpan: 5,
    searchSpan: 4,
    },
    {
        label: "身份证号",
@@ -103,7 +103,7 @@
            message: "请输入培训公司名称",
            trigger: "blur"
        }],
        searchSpan: 6,
    searchSpan: 5,
        searchLabelWidth: 110,
        search: true,
    },
@@ -171,7 +171,7 @@
        },
        editDisplay: false,
        addDisplay: false,
        searchSpan: 5,
    searchSpan: 4,
        width: 70,
    }, {
        label: "确认截止时间",
src/views/trainingRegistration/index.vue
@@ -47,10 +47,10 @@
          :size="size"
          :type="type"
          :disabled="row.cancel==2"
          >确认报名</el-button>
          >确认报名</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,
@@ -176,8 +176,7 @@
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
      }).then(() => {
          row.cancel = 3;
          update(row).then(
        () => {
@@ -193,15 +192,14 @@
          loading();
        }
      );
      })
      });
    },
    revoke(row,done,loading) {
      this.$confirm("确定取消报名?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
      }).then(() => {
      row.cancel = 2;
      update(row).then(
        () => {
@@ -217,8 +215,7 @@
          loading();
        }
      );
      })
      });
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {