diff --git a/leave-school-vue/src/api/user-api.js b/leave-school-vue/src/api/user-api.js
index 9b237f3..e91922d 100644
--- a/leave-school-vue/src/api/user-api.js
+++ b/leave-school-vue/src/api/user-api.js
@@ -1,9 +1,40 @@
 import request from '@/utils/request'
 
-export function getList(params) {
+export function getPage(params) {
   return request({
     url: '/api/system/user/list-api',
+    // url: 'http://localhost:8080/leaveschool/api/v1/base/user',
     method: 'get',
     params
   })
 }
+export function getUserList(params) {
+  return request({
+    url: '/api/system/user/user-list',
+    method: 'get',
+    params
+  })
+}
+export function getItem(params) {
+  return request({
+    url: '/api/system/user/get-item',
+    method: 'get',
+    params
+  })
+}
+
+export function createUser(data) {
+  return request({
+    url: '/api/system/user/create-user',
+    method: 'post',
+    data
+  })
+}
+
+export function deleteUser(data) {
+  return request({
+    url: '/api/system/user/delete-user',
+    method: 'delete',
+    data
+  })
+}
diff --git a/leave-school-vue/src/icons/svg/permission.svg b/leave-school-vue/src/icons/svg/permission.svg
new file mode 100644
index 0000000..2af44ab
--- /dev/null
+++ b/leave-school-vue/src/icons/svg/permission.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1535422291727" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3066" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M618.408704 431.7696a342.528 342.528 0 0 1 134.1952-27.1872c4.608 0 9.1904 0.2048 13.7984 0.2048 21.8112-55.1936 27.392-120.3712 16.4096-183.7568C757.416704 75.6736 620.200704-21.504 476.021504 4.096c-144 25.6-265.6 137.5744-240 282.9312 5.4016 31.3856 20.608 80.384 38.6048 115.7632L13.019904 780.0832c-9.6 13.7984-15.2064 38.8096-12.2112 55.808l11.392 64.5632c-10.8032-62.1824 2.9952 22.4 11.392 22.1952l86.1952 1.2032c16.5888-2.9952 37.4016-16.9984 46.592-31.2064l103.3984-161.7408 0.9984-0.9984 90.3936 7.1936 120.7808-189.3376c0.4096 0 0.8192 0.2048 1.2032 0.2048 10.8032-14.7968 22.6048-28.8 35.7888-42.0096a337.8432 337.8432 0 0 1 109.4656-74.1888zM69.621504 819.8656l-12.8 5.4016 1.408-14.0032 250.5984-363.6992 15.0016 14.0032-254.208 358.2976zM450.421504 150.656c39.6032-56.9856 117.5808-71.1936 173.9776-30.976a127.232 127.232 0 0 1 30.7968 175.9488c-39.6032 56.9856-80 16.7936-136.6016-23.1936-56.3712-40.192-107.776-64.5888-68.1728-121.7792z m0 0" fill="#bfcbd9" p-id="3067"></path><path d="M749.224704 474.5728c-151.808 0-274.7904 122.9568-274.7904 274.7392 0 151.7568 122.9824 274.688 274.7904 274.688S1024.015104 901.0432 1024.015104 749.312c0-151.7824-123.008-274.7392-274.7904-274.7392z m158.7968 387.4816c0 41.0112-78.592 50.4064-152.3968 50.4064s-153.3952-9.3952-153.3952-50.4064v-11.3664c0-30.208 54.4-60.8 100.608-77.3888 3.4048-1.2032 19.4048-10.0096 10.3936-33.3824-22.9888-23.3984-40.192-61.3888-40.192-98.7648 0-57.1904 37.8112-87.168 82.2016-87.168 44.2112 0 82.4064 29.9776 82.4064 87.168 0 37.1968-17.408 74.9824-40.192 98.5856h0.2048c-8.8064 26.5728 5.1968 32.9728 7.3984 33.5872 48.5888 16 103.1936 46.4128 103.1936 77.3888l-0.2304 11.3408z m0 0" fill="#bfcbd9" p-id="3068"></path></svg>
\ No newline at end of file
diff --git a/leave-school-vue/src/icons/svg/user.svg b/leave-school-vue/src/icons/svg/user.svg
index 5971dee..0937f8f 100644
--- a/leave-school-vue/src/icons/svg/user.svg
+++ b/leave-school-vue/src/icons/svg/user.svg
@@ -1 +1 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1503993891882" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7986" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M504.951 511.98c93.49 0 169.28-74.002 169.28-165.26 0-91.276-75.79-165.248-169.28-165.248-93.486 0-169.287 73.972-169.279 165.248-0.001 91.258 75.793 165.26 169.28 165.26z m77.6 55.098H441.466c-120.767 0-218.678 95.564-218.678 213.45V794.3c0 48.183 97.911 48.229 218.678 48.229H582.55c120.754 0 218.66-1.78 218.66-48.229v-13.77c0-117.887-97.898-213.45-218.66-213.45z" p-id="7987"></path></svg>
\ No newline at end of file
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1535422508730" class="icon" style="" viewBox="0 0 1181 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8467" xmlns:xlink="http://www.w3.org/1999/xlink" width="230.6640625" height="200"><defs><style type="text/css"></style></defs><path d="M1116.79948438 868.10426187c15.72693187 29.68181531 22.74129187 63.94142438 22.74129187 100.2684225a18.97568813 18.97568813 0 0 1-18.97568812 18.97568813H246.72357312a18.97568813 18.97568813 0 0 1-18.97568906-19.04952375c0-36.32699813 2.5842375-70.14359438 21.33842063-102.3358125 13.88104781-23.99649281 33.96426656-44.59655906 59.51130187-61.28335125 31.01085188-20.08321875 70.21742999-34.40727938 116.65987313-42.45533344a683.86312781 683.86312781 0 0 0 73.09700812-14.61940125c48.87901031-12.84735281 74.13070406-21.78143156 69.33140531-76.27192969-6.20217001-70.21742999-42.82451063-111.71290313-72.21098437-145.0864875a348.05989875 348.05989875 0 0 1-24.80868188-30.27249843 194.92535719 194.92535719 0 0 1-31.89687656-92.737215c0-19.04952375 9.52476187-27.83593125 17.94199312-35.58864563l0.44301282-0.44301187a7.60504219 7.60504219 0 0 0 0.5168475-0.5168475 41.79081563 41.79081563 0 0 0-1.033695-7.16203032A473.28467344 473.28467344 0 0 1 454.939295 216.72869375c2.43656719-51.68475375 46.95929063-91.1866725 48.87901031-92.81105062l0.22150594-0.22150688a84.17231344 84.17231344 0 0 0 18.08966344-19.78787625L521.02194406 101.32402156a41.2001325 41.2001325 0 0 1-4.13478-25.39936406c1.32903657-6.64518281 6.20217001-18.68034656 24.51334032-23.62731656 7.38353625-1.91971969 15.28392-2.28889594 21.04307812-2.58423749l1.10753063-0.07383564a554.50357219 554.50357219 0 0 1 71.62030218-0.29534156c177.50021156 13.58570625 238.63589156 79.88986219 241.22012907 82.69560656l0.36917718 0.5168475c14.250225 16.98213375 24.73484625 38.24671781 31.30619344 63.05539969 2.06739001 7.75271344 3.32259094 14.250225 4.13478 20.37856031 6.20217001 36.03165657 5.168475 73.09700906 3.83943938 97.83185532a483.62162438 483.62162438 0 0 1-4.87313438 45.92559468c-0.73835344 4.72546313 0 5.61148781 0.36917719 5.90682938 0.73835344 0.95985937 1.69821375 1.99355437 2.65807312 3.02725032a47.25463219 47.25463219 0 0 1 12.18283407 19.0495228 50.94640031 50.94640031 0 0 1 2.06739093 15.50542688v0.95985937a195.14686313 195.14686313 0 0 1-31.8968775 91.85119125c-6.71901844 9.74626781-15.50542594 19.64020688-24.73484625 30.19866282-29.46030938 33.37358343-66.00881438 74.8690575-72.21098437 145.0864875-4.87313438 54.63816844 20.67390187 63.49841156 69.62674687 76.34576437 36.32699813 9.5985975 71.69413687 14.39789531 72.06331407 14.47173187 0.29534156 0 0.66451781 0 0.95985937 0.14767032 46.81161937 8.63873719 86.31353906 23.331975 117.39822656 43.56286406 25.47319969 16.68679219 44.22738187 37.87754063 57.14857032 62.24321062zM174.21724625 952.20273969v0.29534156c0.14767031 10.115445-7.16203031 18.68034656-17.27747438 18.68034656H51.05986156a18.97568813 18.97568813 0 0 1-18.97568812-18.97568812v-22.88896219a151.51016345 151.51016345 0 0 1 21.41225531-79.52068594c13.88104781-23.92265719 33.96426656-44.52272343 59.51130281-61.20951562 49.4696925-32.1183825 92.95872187-50.28188156 149.29510219-65.12278969 62.90772844-16.61295657 68.44538062-31.30619344 68.44538156-31.45386375a19.4187 19.4187 0 0 1 1.62437813-4.13478094c0.5168475-2.73190875 1.77204844-13.06885875-0.66451875-40.68328501-6.20217001-70.29126469-42.82451063-103.73868469-72.13714875-137.11226811-9.30325594-10.48462125-18.08966345-20.452395-24.80868188-30.19866281a194.92535719 194.92535719 0 0 1-31.89687656-92.737215c0-19.12335844 9.45092625-27.90976687 17.8681575-35.66248032l0.44301187-0.36917718a8.19572531 8.19572531 0 0 0 0.59068313-0.59068314 43.48902844 43.48902844 0 0 0-1.033695-7.16202936 472.98933188 472.98933188 0 0 1-1.69821281-142.72375594c2.43656719-51.61091812 46.95929063-91.11283781 48.80517375-92.81105063a84.17231344 84.17231344 0 0 0 18.31117031-19.93554843L285.04412562 85.2279125a41.34780281 41.34780281 0 0 1-4.06094437-25.47319969c1.25520094-6.64518281 6.12833531-18.60651094 24.51334031-23.55348093 7.38353625-1.91971969 15.21008438-2.36273156 20.9692425-2.65807313h1.18136625c22.74129187-1.25520094 47.03312625-2.21506125 71.62030125-0.36917625 27.61442531 2.14122563 52.42310719 5.53765219 74.64755157 9.74626781a28.05743813 28.05743813 0 0 0-10.55845688 16.8344625 41.27396719 41.27396719 0 0 0 4.13478 25.47319969l1.10753062 2.65807313a84.02464219 84.02464219 0 0 1-18.31116937 19.93554843c-1.91971969 1.69821375-46.44244313 41.2001325-48.87901031 92.81105063a472.98933188 472.98933188 0 0 0 2.73190875 149.8857853l-0.5168475 0.59068314-0.44301282 0.36917718c-8.41723125 7.75271344-17.94199312 16.53912094-17.94199312 35.66248032v0.88602375c0.14767031 2.06739001 2.80574345 49.83886969 31.89687656 91.85119125 6.79285312 9.74626781 15.50542594 19.71404156 24.80868188 30.27249843 29.38647469 33.29974875 66.00881438 74.79522187 72.21098437 145.0864875 4.79929875 54.78583875-20.30472469 63.35074125-69.40524 76.27192969-36.25316345 9.5985975-71.98947844 14.39789531-72.35865562 14.47173094l-0.73835344 0.14767031c-46.3686075 8.04805406-85.64902031 22.37211469-116.65987313 42.45533344a182.89019344 182.89019344 0 0 0-59.43746625 61.28335125 151.51016345 151.51016345 0 0 0-21.41225531 79.520685v22.8151275z" p-id="8468" fill="#bfcbd9"></path></svg>
\ No newline at end of file
diff --git a/leave-school-vue/src/mock/index.js b/leave-school-vue/src/mock/index.js
index c2ab223..34a75e5 100644
--- a/leave-school-vue/src/mock/index.js
+++ b/leave-school-vue/src/mock/index.js
@@ -21,6 +21,7 @@
 import sectionreportApi from './sectionreport'
 
 import leaveschoolnodeApi from './leaveschoolnode'
+import userApi from './user'
 
 // 登录
 Mock.mock(/\/api\/login\/login/, 'post', loginApi.loginByUsername)
@@ -125,4 +126,11 @@
 Mock.mock(/\/api\/procedures\/node\/delete-node/, 'delete', leaveschoolnodeApi.deleteData)
 Mock.mock(/\/api\/procedures\/node\/get-item/, 'get', leaveschoolnodeApi.getItem)
 
+// 用户管理
+Mock.mock(/\/api\/system\/user\/list-api/, 'get', userApi.getPage)
+Mock.mock(/\/api\/system\/user\/dept-list/, 'get', userApi.getUserList)
+Mock.mock(/\/api\/system\/user\/create-user/, 'post', userApi.createData)
+Mock.mock(/\/api\/system\/user\/delete-user/, 'delete', userApi.deleteData)
+Mock.mock(/\/api\/system\/user\/get-item/, 'get', userApi.getItem)
+
 export default Mock
diff --git a/leave-school-vue/src/mock/menulist.js b/leave-school-vue/src/mock/menulist.js
index 616ae59..55292e5 100644
--- a/leave-school-vue/src/mock/menulist.js
+++ b/leave-school-vue/src/mock/menulist.js
@@ -3,6 +3,19 @@
 
 const menuList = [
   {
+    path: '/permission',
+    code: 'permission',
+    meta: { title: '用户权限管理', icon: 'permission' },
+    children: [
+      {
+        path: 'user',
+        code: 'user',
+        resource: '/views/systemmanagement/user/index',
+        meta: { title: '用户管理', icon: 'user' }
+      }
+    ]
+  },
+  {
     path: '/dictionary',
     code: 'dictionary',
     meta: { title: '数据字典管理', icon: 'dictionary' },
diff --git a/leave-school-vue/src/mock/user.js b/leave-school-vue/src/mock/user.js
new file mode 100644
index 0000000..431f833
--- /dev/null
+++ b/leave-school-vue/src/mock/user.js
@@ -0,0 +1,119 @@
+import Mock from 'mockjs'
+import { param2Obj, parseTime } from '@/utils'
+
+const userList = Mock.mock({
+  'list|26': [{
+    'id': '@increment',
+    'rownum': '@id',
+    'ghxh': '@id',
+    'xm': '000@id',
+    'zhlb|1': ['教职工', '学生', '其他'],
+    'xb|1': ['男', '女'],
+    'zt|1': ['启用', '停用'],
+    'yx': '@cword(3, 5)',
+    'xybm': '@word(6, 10)',
+    'gzdw': '@word(6, 10)',
+    'sj': '@cword(3, 5)',
+    'wx': '@cword(3, 5)',
+    'qq': '@cword(3, 5)'
+  }]
+}).list
+
+const zhlbList = Mock.mock(
+  [{
+    'value': 'teacher',
+    'label': '教职工'
+  },
+  {
+    'value': 'student',
+    'label': '学生'
+  },
+  {
+    'value': 'other',
+    'label': '其他'
+  }]
+)
+
+const xbList = Mock.mock(
+  [{
+    'value': 'male',
+    'label': '男'
+  },
+  {
+    'value': 'female',
+    'label': '女'
+  }]
+)
+const ztList = Mock.mock(
+  [{
+    'value': 'on',
+    'label': '启用'
+  },
+  {
+    'value': 'off',
+    'label': '停用'
+  }]
+)
+export default{
+  getPage: config => {
+    const { zhlb, ghxhxm, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+    const mockList = userList.filter(item => {
+      if (zhlb && item.zhlb !== zhlb) return false
+      if (ghxhxm && item.ghxh + '' !== ghxhxm + '' && item.xm + '' !== ghxhxm + '') return false
+      return true
+    })
+
+    const pageList = mockList.filter((item, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1))
+    return {
+      xbList: xbList,
+      ztList: ztList,
+      zhlbList: zhlbList,
+      items: pageList,
+      recordCount: mockList.length,
+      code: 200
+    }
+  },
+  getItem: config => {
+    const { id } = param2Obj(config.url)
+    const mockList = userList.filter(item => item.id + '' === id + '')
+    return {
+      data: mockList.length > 0 ? mockList[0] : null,
+      code: 200
+    }
+  },
+  createData: config => {
+    const user = JSON.parse(config.body)
+    user.cjsj = parseTime(new Date(), '{y}-{m}-{d}')
+    if (!user.id) {
+      user.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+      userList.unshift(user)
+    } else {
+      for (let i = 0; i < userList.length; i++) {
+        if (userList[i].id + '' === user.id + '') {
+          userList.splice(i, 1, user)
+          break
+        }
+      }
+    }
+    return {
+      item: user,
+      code: 200
+    }
+  },
+  deleteData: config => {
+    const user = JSON.parse(config.body)
+    let index = -1
+    for (let i = 0; i < userList.length; i++) {
+      if (userList[i].id + '' === user.id + '') {
+        index = i
+        break
+      }
+    }
+    if (index > -1) {
+      userList.splice(index, 1)
+    }
+    return {
+      code: 200
+    }
+  }
+}
diff --git a/leave-school-vue/src/utils/crud.js b/leave-school-vue/src/utils/crud.js
index e7639a1..16b9300 100644
--- a/leave-school-vue/src/utils/crud.js
+++ b/leave-school-vue/src/utils/crud.js
@@ -4,6 +4,7 @@
   data() {
     return {
       items: null,
+      pagedata: {},
       recordCount: null,
       listLoading: true,
       dialogStatus: '',
@@ -31,6 +32,7 @@
     page.recordCount = response.recordCount
     page.pageIndex = response.pageIndex
     page.pageSize = response.pageSize
+    page.pagedata = response
     if (typeof _callback === 'function') {
       _callback()
     }
diff --git a/leave-school-vue/src/views/systemmanagement/user/index.vue b/leave-school-vue/src/views/systemmanagement/user/index.vue
new file mode 100644
index 0000000..c069707
--- /dev/null
+++ b/leave-school-vue/src/views/systemmanagement/user/index.vue
@@ -0,0 +1,228 @@
+<template>
+  <div class="app-container">
+    <div class="filter-container">
+      <el-select clearable class="filter-item" v-model="listQuery.zhlb" placeholder="账户类别">
+        <el-option v-for="item in pagedata.zhlbList" :key="item.value" :label="item.label" :value="item.value">
+        </el-option>
+      </el-select>
+      <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="(工号/学号)或姓名" v-model="listQuery.ghxhxm">
+      </el-input>
+      <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查询</el-button>
+      <el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate(null, 'create')" type="primary" icon="el-icon-edit">添加</el-button>
+      <el-button class="filter-item" style="margin-left: 10px;" @click="handleReset" type="primary" icon="el-icon-edit">重置</el-button>
+    </div>
+    <el-table :height="height" :data="items" v-loading="listLoading" element-loading-text="Loading" border fit highlight-current-row>
+      <el-table-column fixed align="center" label='序号' width="95">
+        <template slot-scope="scope">
+          {{scope.row.rownum}}
+        </template>
+      </el-table-column>
+      <el-table-column fixed label="工号/学号">
+        <template slot-scope="scope">
+          {{scope.row.ghxh}}
+        </template>
+      </el-table-column>
+      <el-table-column label="姓名" align="center">
+        <template slot-scope="scope">
+          <span>{{scope.row.xm}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="帐户类别" align="center">
+        <template slot-scope="scope">
+          {{scope.row.zhlb}}
+        </template>
+      </el-table-column>
+      <el-table-column label="性别" align="center">
+        <template slot-scope="scope">
+          {{scope.row.xb}}
+        </template>
+      </el-table-column>
+      <el-table-column label="状态" align="center">
+        <template slot-scope="scope">
+          {{scope.row.zt}}
+        </template>
+      </el-table-column>
+      <el-table-column label="邮箱" align="center">
+        <template slot-scope="scope">
+          {{scope.row.yx}}
+        </template>
+      </el-table-column>
+      <el-table-column label="学院/部门" align="center">
+        <template slot-scope="scope">
+          {{scope.row.xybm}}
+        </template>
+      </el-table-column>
+      <el-table-column label="工作单位" align="center">
+        <template slot-scope="scope">
+          {{scope.row.gzdw}}
+        </template>
+      </el-table-column>
+      <el-table-column label="手机" align="center">
+        <template slot-scope="scope">
+          {{scope.row.sj}}
+        </template>
+      </el-table-column>
+      <el-table-column label="微信" align="center">
+        <template slot-scope="scope">
+          {{scope.row.wx}}
+        </template>
+      </el-table-column>
+      <el-table-column label="QQ" align="center">
+        <template slot-scope="scope">
+          {{scope.row.qq}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        header-align="center"
+        align="center"
+        width="150"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button type="text" size="small" @click="handleCreate(scope.row.id, 'update')">修改</el-button>
+          <el-button type="text" size="small" @click="handleDelete(scope.row.id)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="pagination-container">
+      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listQuery.pageIndex" 
+      :page-sizes="[10,20,30, 50]" :page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="recordCount">
+      </el-pagination>
+    </div>
+    
+    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
+      <el-form :rules="rules" ref="dataForm" :model="temp" label-position="left" label-width="150px" style='width: 400px; margin-left:50px;'>
+        <el-form-item label="账号(工号/学号)" prop="ghxh">
+          <el-input v-model="temp.ghxh"></el-input>
+          <input type="hidden" v-model="temp.id" />
+        </el-form-item>
+        <el-form-item label="密码" prop="mm">
+          <el-input type="password" v-model="temp.mm"></el-input>
+        </el-form-item>
+        <el-form-item label="账户类别" prop="zhlb">
+          <el-select clearable class="filter-item" v-model="temp.zhlb" placeholder="账户类别">
+            <el-option v-for="item in pagedata.zhlbList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="性别">
+          <el-radio-group v-model="temp.xb">
+            <el-radio v-for="item in pagedata.xbList" :label="item.value" :key="item.value" >{{item.label}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="temp.zt">
+            <el-radio v-for="item in pagedata.ztList" :label="item.value" :key="item.value" >{{item.label}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="邮箱">
+          <el-input v-model="temp.yx"></el-input>
+        </el-form-item>
+        <el-form-item label="姓名" prop="xm">
+          <el-input v-model="temp.xm"></el-input>
+        </el-form-item>
+        <el-form-item label="部门">
+          <el-input v-model="temp.bm"></el-input>
+        </el-form-item>
+        <el-form-item label="职务">
+          <el-input v-model="temp.zw"></el-input>
+        </el-form-item>
+        <el-form-item label="电话">
+          <el-input v-model="temp.dh"></el-input>
+        </el-form-item>
+        <el-form-item label="传真">
+          <el-input v-model="temp.cz"></el-input>
+        </el-form-item>
+        <el-form-item label="手机">
+          <el-input v-model="temp.sj"></el-input>
+        </el-form-item>
+        <el-form-item label="QQ">
+          <el-input v-model="temp.qq"></el-input>
+        </el-form-item>
+        <el-form-item label="微信">
+          <el-input v-model="temp.wx"></el-input>
+        </el-form-item>
+        <el-form-item label="地址">
+          <el-input v-model="temp.dz"></el-input>
+        </el-form-item>
+        <el-form-item label="邮编">
+          <el-input v-model="temp.yb"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">返回</el-button>
+        <el-button type="primary" @click="createData">提交</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getPage, getItem, createUser, deleteUser } from '@/api/user-api'
+import waves from '@/directive/waves' // 水波纹指令
+import { resetForm } from '@/utils'
+import { crudPageList, crudGetItem, crudCreate, crudDelete } from '@/utils/crud'
+import mixindata from '@/utils/crud'
+
+const initData = { xb: 'male', zt: 'on' }
+export default {
+  name: 'user',
+  directives: {
+    waves
+  },
+  mixins: [mixindata],
+  data() {
+    return {
+      rules: {
+        ghxh: [{ required: true, message: '账号(工号/学号)必填', trigger: 'blur' }],
+        mm: [{ required: true, message: '密码必填', trigger: 'blur' }],
+        zhlb: [{ required: true, message: '账户类别必填', trigger: 'change' }],
+        xm: [{ required: true, message: '姓名必填', trigger: 'change' }]
+      }
+    }
+  },
+  filters: {
+    statusFilter(status) {
+      const statusMap = {
+        '1': 'success',
+        '0': 'danger'
+      }
+      return statusMap[status]
+    }
+  },
+  created() {
+    this.handlePageList()
+    this.height = window.innerHeight - 216
+  },
+  methods: {
+    handlePageList() {
+      crudPageList(this, getPage)
+    },
+    handleCreate(rowid, dialogStatus) {
+      this.dialogStatus = dialogStatus
+      crudGetItem(this, getItem, rowid, initData)
+    },
+    handleReset() {
+      resetForm(this.listQuery)
+    },
+    handleFilter() {
+      this.listQuery.pageIndex = 1
+      this.handlePageList()
+    },
+    handleSizeChange(val) {
+      this.listQuery.pageSize = val
+      this.handlePageList()
+    },
+    handleCurrentChange(val) {
+      this.listQuery.pageIndex = val
+      this.handlePageList()
+    },
+    createData() {
+      crudCreate(this, createUser, this.handlePageList)
+    },
+    handleDelete(rowid) {
+      crudDelete(this, deleteUser, rowid, this.handlePageList)
+    }
+  }
+}
+</script>
