Tang 4 lat temu
rodzic
commit
0a6f71de45

+ 5 - 0
package-lock.json

@@ -6658,6 +6658,11 @@
         "set-blocking": "~2.0.0"
       }
     },
+    "nprogress": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
+      "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E="
+    },
     "nth-check": {
       "version": "1.0.2",
       "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz?cache=0&sync_timestamp=1606860731740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz",

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
     "build": "node build/build.js"
   },
   "dependencies": {
+    "@riophae/vue-treeselect": "^0.4.0",
     "axios": "^0.21.1",
     "element-ui": "^2.15.0",
     "nprogress": "^0.2.0",

+ 3 - 1
src/api/api.js

@@ -10,6 +10,7 @@ import roleInfoManagement from './roleInfoManagement'//角色信息管理
 import department from './department'//部门信息管理
 import universityType from './universityType'//高校类型管理
 import ossUpload from './ossUpload'//上传文件
+import arrangement from './arrangement'//考试安排
 
 // 导入对应模块------------------------
 export default {
@@ -23,5 +24,6 @@ export default {
     ...roleInfoManagement,
     ...department,
     ...universityType,
-    ...ossUpload
+    ...ossUpload,
+    ...arrangement,
 }

+ 42 - 0
src/api/arrangement.js

@@ -0,0 +1,42 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    // 查询考试安排,包含考试指引列表
+    arrangementList() {
+        return request({
+            url: '/modules.exam/arrangement/list',
+            method: 'get'
+        })
+    },
+    //获取考试安排,包含考试指引详细信息
+    obtainArrangementid(data) {
+        return request({
+            url: `
+            /modules.exam/arrangement/${data}`,
+            method: 'get',
+        })
+    },
+    //新增考试安排,包含考试指引
+    arrangementAddExam(data) {
+        return request({
+            url: '/modules.exam/arrangement/addExam',
+            method: 'post',
+            data
+        })
+    },
+    //修改考试安排,包含考试指引
+    arrangementEditExam(data) {
+        return request({
+            url: '/modules.exam/arrangement/editExam',
+            method: 'post',
+            data
+        })
+    },
+    //删除考试安排,包含考试指引
+    arrangemenDelExam(data) {
+        return request({
+            url: '/modules.exam/arrangement/ids',
+            method: 'post',
+            data
+        })
+    },
+}

+ 8 - 9
src/api/menuManagement.js

@@ -9,7 +9,7 @@ export default {
         })
     },
     //修改菜单
-    editMenu(data) {
+    updateMenu(data) {
         return request({
             url: '/system/menu/edit',
             method: 'post',
@@ -17,7 +17,7 @@ export default {
         })
     },
     //获取菜单列表
-    obtainMenuList() {
+    listMenu() {
         return request({
             url: '/system/menu/list',
             method: 'get',
@@ -31,25 +31,24 @@ export default {
         })
     },
     //获取菜单下拉树列表
-    obtainTreeselect() {
+    treeselect() {
         return request({
             url: '/system/menu/treeselect',
             method: 'get',
         })
     },
-    //根据菜单编号获取详细信息
-    accordingMenuMenuId(data) {
+    //根据菜单编号获取详细信息 查询菜单详细
+    getMenu(data) {
         return request({
             url: `/system/menu/${data}`,
             method: 'get',
         })
     },
     //删除菜单
-    addUser(data) {
+    delMenu(data) {
         return request({
-            url: '/system/menu/delete',
-            method: 'post',
-            data
+            url: '/system/menu/' + data,
+            method: 'delete',
         })
     },
 }

+ 13 - 5
src/components/component.md

@@ -1,15 +1,23 @@
 # 组件传入数据参考表
 
-# formList
+### formList
   :formList="搜索菜单"
   @search="搜索事件"
   @init="重置事件"
-# table-list 
+### table-list 
   :tableSet="表头数据"
   :tableData="表单数据"
   :navText="头部信息"
+  @addClick="新增"
   @emitData="接收多选数组事件"
-# formList: [
+  @initTableset="接收调用初始化方法"
+### pagination
+  :total="总数量"
+  :pageSize="当前每页几条数据"
+  :currentPage="当前位于第几页"
+  @handleSizeChange="切换X条/页触发"
+  @handleCurrentChange="切换页码触发"
+#### formList: [
         {
           label: "菜单名称",
           prop: "menuName",
@@ -79,7 +87,7 @@
           scope: "datePicker",
         },
 ],
-# tableSet: [
+#### tableSet: [
         {
           label: "姓名",
           prop: "name",
@@ -124,7 +132,7 @@
           hidden: false,
         },
       ],
-#  tableData: [
+####  tableData: [
         {
           name: "唐某某",
           class: "高一16班",

+ 43 - 0
src/components/pagination.vue

@@ -0,0 +1,43 @@
+<template>
+  <div id="agination">
+    <el-pagination
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page="currentPage"
+      :page-sizes="pageSizes"
+      :page-size="pageSize"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="total"
+    >
+    </el-pagination>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ["total", "pageSize", "currentPage"],
+  data() {
+    return {
+      //   currentPage: 1, //当前位于页
+      pageSizes: [5, 10, 15, 20], //每页多少条分组
+    };
+  },
+  methods: {
+    //切换X条/页触发
+    handleSizeChange(val) {
+      this.$emit("handleSizeChange", val);
+    },
+    //跳转页触发
+    handleCurrentChange(val) {
+      this.$emit("handleCurrentChange", val);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+#agination {
+  margin-left: 26px;
+  margin-top: 16px;
+}
+</style>

+ 1 - 0
src/components/searchBox.vue

@@ -26,6 +26,7 @@
             :options="item.options"
             @change="handleChange"
             :size="size"
+            :props="item.props"
           ></el-cascader>
           <el-date-picker
             v-else-if="item.scope === 'datePicker'"

+ 219 - 22
src/components/tableList.vue

@@ -2,24 +2,58 @@
   <div id="tableList">
     <div class="headerNavTool">
       <div class="leftIndexText">
-        {{navText.title}} <strong>{{navText.index}}</strong> 项
+        {{ navText.title }} <strong>{{ navText.index }}</strong> {{navText.ch}}
       </div>
       <div class="rightBtnBox">
-        <el-button size="medium" type="primary" @click="addClick">新增</el-button>
+        <el-button size="medium" type="primary" @click="addClick"
+          >新增</el-button
+        >
         <el-button size="medium" type="warning" @click="backFather"
           >未定义</el-button
         >
-        <el-popover placement="bottom" trigger="click" title="勾选隐藏">
+        <el-popover
+          popper-class="slotPopper"
+          placement="bottom-end"
+          trigger="click"
+        >
           <div class="popoverDis">
-            <!-- <el-checkbox-group v-model="checkList"> -->
-            <el-checkbox
-              v-for="(item, index) in tableSet"
-              :key="index"
-              :checked="item.hidden"
-              @change="getNewStatus(item, $event)"
-              >{{ item.label }}</el-checkbox
+            <div class="checkboxHeader">
+              <el-checkbox
+                :indeterminate="isIndeterminate"
+                v-model="checkAll"
+                @change="handleCheckAllChange"
+                >列展示</el-checkbox
+              >
+              <div class="initbtns" @click="initVue">重置</div>
+            </div>
+
+            <div
+              style="height: 1px; width: 100%; background-color: #eaeefb"
+            ></div>
+            <el-checkbox-group
+              class="checkboxGroup"
+              v-model="checkedCities"
+              @change="handleCheckedCitiesChange"
             >
-            <!-- </el-checkbox-group> -->
+              <div
+                class="checkboxchild"
+                v-for="(item, index) in cities"
+                :key="index"
+              >
+                <el-checkbox
+                  :label="item"
+                  @change="checkboxChange(item, $event)"
+                  >{{ item }}</el-checkbox
+                >
+                <div class="icon-right">
+                  <i class="el-icon-upload2" @click="upMove(item, index)"></i>
+                  <i
+                    class="el-icon-download"
+                    @click="downMove(item, index)"
+                  ></i>
+                </div>
+              </div>
+            </el-checkbox-group>
           </div>
           <el-button style="margin-left: 10px" size="medium" slot="reference"
             >自定义列</el-button
@@ -40,14 +74,24 @@
       </el-table-column>
       <template v-for="(item, index) in tableSet">
         <el-table-column
-          v-if="!item.hidden"
+          v-if="item.hidden"
           :width="item.width"
           :key="index"
           :label="item.label"
           align="center"
         >
           <template slot-scope="scope">
-            <span>{{ scope.row[item.prop] }}</span>
+            <div class="imgboxsq" v-if="item.socpe === 'img'">
+              <!-- <img :src="scope.row[item.prop]" alt="" /> -->
+              <el-image
+              class="el_images"
+                style="width: 100%; height: 100%"
+                :src="scope.row[item.prop][0]"
+                :preview-src-list="scope.row[item.prop]"
+              >
+              </el-image>
+            </div>
+            <span v-else>{{ scope.row[item.prop] }}</span>
           </template>
         </el-table-column>
       </template>
@@ -62,25 +106,111 @@
 
 <script>
 export default {
-  props: ["tableSet", "tableData","navText"],
+  props: ["tableSets", "tableData", "navText"],
   data() {
     return {
-      allCheckData: [],
+      tableSet: this.tableSets,
+      allCheckData: [], //表格多选
+      checkAll: true,
+      checkedCities: [], //自定义列 选中数组
+      cities: [], //自定义列 总数组
+      isIndeterminate: false,
     };
   },
+  created() {
+    this.inittableSet = JSON.stringify(this.tableSet);
+    this.initTR();
+  },
   methods: {
+    initTR() {
+      this.cities = [];
+      this.checkedCities = [];
+      this.checkAll = true;
+      this.isIndeterminate = false;
+      this.tableSet.forEach((item, index) => {
+        this.cities.push(item.label);
+        if (item.hidden) {
+          this.checkedCities.push(item.label);
+        }
+      });
+      if (this.checkedCities.length === 0) {
+        this.isIndeterminate = false;
+      } else if (this.checkedCities.length === this.cities.length) {
+        this.isIndeterminate = false;
+        this.checkAll = true;
+      } else {
+        this.isIndeterminate = true;
+        this.checkAll = false;
+      }
+    },
+    handleCheckAllChange(val) {
+      this.checkedCities = val ? this.cities : [];
+      this.isIndeterminate = false;
+      if (val) {
+        this.tableSet.forEach((item, index) => {
+          item.hidden = true;
+        });
+      } else {
+        this.tableSet.forEach((item, index) => {
+          item.hidden = false;
+        });
+      }
+    },
+    handleCheckedCitiesChange(value) {
+      let checkedCount = value.length;
+      this.checkAll = checkedCount === this.cities.length;
+      this.isIndeterminate =
+        checkedCount > 0 && checkedCount < this.cities.length;
+    },
+    checkboxChange(v, e) {
+      this.tableSet.forEach((item) => {
+        if (item.label === v) {
+          item.hidden = e;
+        }
+      });
+    },
+    downMove(option, index) {
+      if (index !== this.tableSet.length - 1) {
+        this.tableSet[index] = this.tableSet.splice(
+          index + 1,
+          1,
+          this.tableSet[index]
+        )[0];
+        this.cities[index] = this.cities.splice(
+          index + 1,
+          1,
+          this.cities[index]
+        )[0];
+      } else {
+        this.tableSet.unshift(this.tableSet.splice(index, 1)[0]);
+        this.cities.unshift(this.cities.splice(index, 1)[0]);
+      }
+    },
+    upMove(option, index) {
+      if (index != 0) {
+        this.tableSet[index] = this.tableSet.splice(
+          index - 1,
+          1,
+          this.tableSet[index]
+        )[0];
+        this.cities[index] = this.cities.splice(
+          index - 1,
+          1,
+          this.cities[index]
+        )[0];
+      } else {
+        this.tableSet.push(this.tableSet.shift());
+        this.cities.push(this.cities.shift());
+      }
+    },
     //新增按钮
-    addClick(){
-      this.$emit('addClick')
+    addClick() {
+      this.$emit("addClick");
     },
     //将选中值传回调用组件
     backFather() {
       this.$emit("emitData", this.allCheckData);
     },
-    //自定义列 选中触发
-    getNewStatus(options, e) {
-      options.hidden = e;
-    },
     edit() {},
     selectAll(value) {
       this.allCheckData = value;
@@ -88,10 +218,20 @@ export default {
     select(value) {
       this.allCheckData = value;
     },
+    //重置
+    initVue() {
+      this.$emit("initTableset");
+      this.tableSet = JSON.parse(this.inittableSet);
+      this.initTR();
+    },
   },
 };
 </script>
-
+<style lang="less">
+.slotPopper {
+  padding: 0px!important;
+}
+</style>
 <style lang="less" scoped>
 #tableList {
   padding: 0px 16px 16px;
@@ -113,5 +253,62 @@ export default {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
+  font-size: 14px;
+  .checkboxHeader {
+    height: 40px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding-left: 13px;
+    padding-right: 15px;
+    width: 100%;
+    .initbtns {
+      color: #47a6ff;
+      cursor: pointer;
+    }
+  }
+  .checkboxGroup {
+    display: flex;
+    flex-direction: column;
+    width: 100%;
+    .checkboxchild {
+      width: 100%;
+      justify-content: space-between;
+      height: 40px;
+      display: flex;
+      align-items: center;
+      padding: 0px 15px 0px 13px;
+      transition: all 0.4s;
+      &:hover {
+        background-color: #ecf5ff;
+      }
+      &:hover .icon-right {
+        display: flex;
+      }
+      .icon-right {
+        display: flex;
+        align-items: center;
+        width: 30px;
+        height: 30px;
+        color: #666;
+        font-size: 14px;
+        display: none;
+        i {
+          cursor: pointer;
+          margin: 0px 3px;
+          &:hover {
+            color: #47a6ff;
+          }
+        }
+      }
+    }
+  }
+}
+/deep/.el-checkbox__input.is-checked + .el-checkbox__label {
+  color: #666;
+}
+.imgboxsq {
+  max-height: 100px;
 }
 </style>
+

+ 2 - 2
src/layout/structure/content/navigationBar.vue

@@ -19,7 +19,7 @@
           :key="index"
         >
           <template slot="title">
-            <i class="el-icon-location"></i>
+            <i :class="item.meta.icon"></i>
             <span>{{ item.meta.title }}</span>
           </template>
           <template v-for="(items, indexs) in item.children">
@@ -36,7 +36,7 @@
           :index="item.path"
           :key="index"
         >
-          <i class="el-icon-menu"></i>
+          <i :class="item.meta.icon"></i>
           <span slot="title">{{ item.meta.title }}</span>
         </el-menu-item>
       </template>

+ 5 - 4
src/router/index.js

@@ -1,6 +1,7 @@
 import Vue from 'vue'
 import Router from 'vue-router'
 import path from '@/router/RoutingPath'
+const Layout = () => import("@/layout/index.vue")
 
 Vue.use(Router)
 
@@ -33,7 +34,7 @@ export const constantRouterMap = [
     path: "/error",
     hidden: true,
     redirect: "404",
-    component: path.layout,
+    component: Layout,
     // alwaysShow: true,
     // meta: { title: "报错", icon: "system", noCache: false },
     children: [
@@ -51,16 +52,16 @@ export const constantRouterMap = [
     path: "/home",
     hidden: false,
     redirect: "home",
-    component: path.layout,
+    component: Layout,
     alwaysShow: true,
-    meta: { title: "工作台", icon: "system", noCache: false },
+    meta: { title: "工作台", icon: "el-icon-menu", noCache: false },
     children: [
       {
         name: "home",
         path: "/home",
         hidden: false,
         component: path.home,
-        meta: { title: "工作台", icon: "user", noCache: false },
+        meta: { title: "工作台", icon: "el-icon-menu", noCache: false },
       }
     ],
   },

+ 40 - 7
src/store/index.js

@@ -5,6 +5,7 @@ import router from '@/router'
 import cookie from '@/utils/cookie'
 import path from '@/router/RoutingPath'
 import { constantRouterMap } from '@/router'
+const Layout = () => import("@/layout/index.vue")
 //挂载Vuex
 Vue.use(Vuex)
 //创建VueX对象
@@ -143,12 +144,44 @@ const store = new Vuex.Store({
                 })
                 // 模拟数据👇
                 let newRouters = [
+                    {
+                        name: "examManagement",
+                        path: "/examManagement",
+                        hidden: false,
+                        redirect: "collegePlan",
+                        component: Layout,
+                        alwaysShow: true,
+                        meta: { title: "考试安排", icon: "el-icon-date", noCache: true },
+                        children: [
+                            {
+                                name: "collegePlan",
+                                path: "/collegePlan",
+                                hidden: false,
+                                component: path.collegePlan,
+                                meta: { title: "学员考试计划", icon: "user", noCache: false },
+                            },
+                            {
+                                name: "examArrangement",
+                                path: "/examArrangement",
+                                hidden: false,
+                                component: path.examArrangement,
+                                meta: { title: "考试安排", icon: "user", noCache: false },
+                            },
+                            {
+                                name: "examGuide",
+                                path: "/examGuide",
+                                hidden: false,
+                                component: path.examGuide,
+                                meta: { title: "报名指引", icon: "user", noCache: false },
+                            },
+                        ], 
+                    },
                     {
                         name: "systemSettings",
                         path: "/systemSettings",
                         hidden: false,
                         redirect: "orderList",
-                        component: path.layout,
+                        component: Layout,
                         alwaysShow: true,
                         meta: { title: "系统管理", icon: "system", noCache: true },
                         children: [
@@ -166,7 +199,7 @@ const store = new Vuex.Store({
                         path: "/orderManagement",
                         hidden: false,
                         redirect: "orderList",
-                        component: path.layout,
+                        component: Layout,
                         alwaysShow: true,
                         meta: { title: "订单管理", icon: "system", noCache: true },
                         children: [
@@ -183,7 +216,7 @@ const store = new Vuex.Store({
                         path: "/jobSearchManagement",
                         hidden: false,
                         redirect: "resumeManagement",
-                        component: path.layout,
+                        component: Layout,
                         alwaysShow: true,
                         meta: { title: "求职管理", icon: "system", noCache: true },
                         children: [
@@ -210,16 +243,16 @@ const store = new Vuex.Store({
                             }
                         ],
                     }, {
-                        name: "courseQuestionBank",
+                        name: "CourseQuestionBank",
                         path: "/courseQuestionBank",
                         hidden: false,
-                        redirect: "resumeManagement",
-                        component: path.layout,
+                        redirect: "noRedirect",
+                        component: Layout,
                         alwaysShow: true,
                         meta: { title: "课程题库", icon: "system", noCache: true },
                         children: [
                             {
-                                name: "courseManagement",
+                                name: "/courseManagement",
                                 path: "/courseManagement",
                                 hidden: false,
                                 component: path.courseManagement,

+ 1 - 1
src/utils/cookie.js

@@ -3,7 +3,7 @@ export default {
     setCookie: function (key, val, days) {
         let date = new Date(); //获取当前时间
         let expiresHours = parseInt(days); //将date设置为N天以后的时间
-        date.setTime(date.getTime() + (expiresHours * 24 * 60 * 60 * 1000)); //格式化cookie识别的时间
+        date.setTime(date.getTime() + expiresHours * 24 * 60 * 60 * 1000); //格式化cookie识别的时间
         document.cookie = key + "=" + val + ";expires=" + date.toGMTString(); //设置cookie
     },
     //删除cookie (名称)

+ 116 - 4
src/view/examManagement/collegePlan/index.vue

@@ -1,14 +1,126 @@
 <template>
-  <!-- 学院计划 -->
-  <div id="collegePlan">学院计划</div>
+  <!-- 学员计划 -->
+  <div id="collegePlan">
+    <search-box :formList="formList" @search="search" @init="init"></search-box>
+  </div>
 </template>
 
 <script>
+import searchBox from "@/components/searchBox";
 export default {
+  components: { searchBox },
   data() {
-    return {};
+    return {
+      formList: [
+        {
+          label: "考试类型",
+          prop: "typeExam",
+          scope: "cascader",
+          placeholder: "选择考试类型",
+          options: [],
+          props: {
+            label: "categoryName",
+            value: "categoryId",
+          },
+        },
+        {
+          label: "考试时间",
+          prop: "dateTime",
+          scope: "datePicker",
+        },
+        {
+          label: "考试期次",
+          prop: "menuName",
+          placeholder: "输入考试期次",
+        },
+      ],
+    };
+  },
+  mounted() {
+    this.initCascader();
+    this.search()
+  },
+  methods: {
+    //级联选择器数据
+    initCascader() {
+      this.$api
+        .inquireProfessionClassification()
+        .then((res) => {
+          console.log(res);
+          this.arrayChangeType(res.rows);
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    // 接口数据转换级联类型
+    arrayChangeType(options) {
+      let result = [];
+      if (!Array.isArray(options)) {
+        return result;
+      }
+      options.forEach((item) => {
+        delete item.children;
+      });
+      let map = {};
+      options.forEach((item) => {
+        map[item.categoryId] = item;
+      });
+      options.forEach((item) => {
+        let parent = map[item.pid];
+        if (parent) {
+          (parent.children || (parent.children = [])).push(item);
+        } else {
+          result.push(item);
+        }
+      });
+      result = result.sort(this.sortBy("sort", true));
+      result.forEach((item,index) => {
+        if(item.children){
+          item.children.sort(this.sortBy("sort", true))
+        }
+      })
+      this.formList.forEach((item, index) => {
+        if (item.prop === "typeExam") {
+          item.options = result;
+        }
+      });
+      return result;
+    },
+    sortBy(attr, rev) {
+      //第二个参数没有传递 默认升序排列
+      if (rev == undefined) {
+        rev = 1;
+      } else {
+        rev = rev ? 1 : -1;
+      }
+
+      return function (a, b) {
+        a = a[attr];
+        b = b[attr];
+        if (a < b) {
+          return rev * -1;
+        }
+        if (a > b) {
+          return rev * 1;
+        }
+        return 0;
+      };
+    },
+    tableDataApi(){
+      this.$api.arrangementList().then(res => {
+        console.log(res);
+      })
+    },
+    search(data) {
+      this.$message.success("触发搜索" + JSON.stringify(data));
+      this.tableDataApi()
+    },
+    init() {
+      this.$message.success("重置成功");
+      console.log(this.tableSet);
+    },
   },
-  methods: {},
 };
 </script>
 

+ 55 - 10
src/view/systemSettings/menu/index.vue

@@ -2,26 +2,36 @@
   <div id="menu">
     <search-box :formList="formList" @search="search" @init="init"></search-box>
     <table-list
-      :tableSet="tableSet"
+      :tableSets="tableSet"
       :tableData="tableData"
       :navText="navText"
       @addClick="addClick"
       @emitData="emitData"
+      @initTableset="initTableset"
     ></table-list>
-    <div class="tableBox">表单栏</div>
+    <pagination
+      :total="total"
+      :pageSize="pageSize"
+      :currentPage="currentPage"
+      @handleSizeChange="handleSizeChange"
+      @handleCurrentChange="handleCurrentChange"
+    />
+    <button @click="changes">点击</button>
   </div>
 </template>
 
 <script>
 import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
 export default {
-  components: { searchBox, tableList },
+  components: { searchBox, tableList, pagination },
   data() {
     return {
       navText: {
         title: "二级建造师/市政工程学员考试计划合计",
         index: 90,
+        ch: '项'
       },
       formList: [
         {
@@ -51,44 +61,51 @@ export default {
           label: "姓名",
           prop: "name",
           width: "100px",
-          hidden: false,
+          hidden: true,
         },
         {
           label: "班级",
           prop: "class",
           width: "100px",
-          hidden: false,
+          hidden: true,
         },
         {
           label: "语文",
           prop: "yuwen",
           width: "80px",
           scope: "sortable",
-          hidden: false,
+          hidden: true,
+        },
+        {
+          label: "照片",
+          prop: "imgBoxs",
+          width: "80px",
+          socpe: "img",
+          hidden: true,
         },
         {
           label: "数学",
           prop: "shuxue",
           width: "100px",
-          hidden: false,
+          hidden: true,
         },
         {
           label: "英语",
           prop: "yingyu",
           width: "80px",
-          hidden: false,
+          hidden: true,
         },
         {
           label: "物理",
           prop: "wl",
           width: "100px",
-          hidden: false,
+          hidden: true,
         },
         {
           label: "化学",
           prop: "hx",
           width: "80px",
-          hidden: false,
+          hidden: true,
         },
       ],
       tableData: [
@@ -99,6 +116,9 @@ export default {
           shuxue: 88,
           yingyu: 92,
           wl: 79,
+          imgBoxs: [
+            "https://iconfont.alicdn.com/t/99f04a00-49de-4c2c-818c-e639c95959f1.png",
+          ],
           hx: 98,
         },
         {
@@ -108,6 +128,9 @@ export default {
           shuxue: 94,
           yingyu: 83,
           wl: 82,
+          imgBoxs: [
+            "https://iconfont.alicdn.com/t/1c64ddbc-ec98-456b-9c10-fce6604df255.png",
+          ],
           hx: 79,
         },
         {
@@ -117,17 +140,35 @@ export default {
           shuxue: 99,
           yingyu: 100,
           wl: 74,
+          imgBoxs: [
+            "https://iconfont.alicdn.com/t/91678189-8dcc-46ce-8543-c8087214dd6b.png",
+          ],
           hx: 69,
         },
       ],
+      total: 0,
+      pageSize: 5,
+      currentPage: 1,
     };
   },
   methods: {
+    handleSizeChange(v) {
+      this.pageSize = v;
+      console.log(this.currentPage, this.pageSize);
+    },
+    handleCurrentChange(v) {
+      this.currentPage = v;
+      console.log(this.currentPage, this.pageSize);
+    },
+    changes() {
+      this.total = 36;
+    },
     search(data) {
       this.$message.success("触发搜索" + JSON.stringify(data));
     },
     init() {
       this.$message.success("重置成功");
+      console.log(this.tableSet);
     },
     addClick() {
       this.$message.success("触发新增");
@@ -135,6 +176,10 @@ export default {
     emitData(v) {
       this.$message.success(JSON.stringify(v));
     },
+    initTableset() {
+      var a = Object.assign(this.$data, this.$options.data());
+      this.tableSet = a.tableSet;
+    },
   },
 };
 </script>