diff --git a/leave-school-vue/src/views/statistical/nodereport/index.vue b/leave-school-vue/src/views/statistical/nodereport/index.vue
index 9081c35..0385631 100644
--- a/leave-school-vue/src/views/statistical/nodereport/index.vue
+++ b/leave-school-vue/src/views/statistical/nodereport/index.vue
@@ -43,8 +43,8 @@
           </el-select>
         </el-col>
         <el-col :span="4">
-          <el-select clearable class="filter-item" v-model="listQuery.xb" placeholder="性别">
-            <el-option v-for="item in  xbList" :key="item.id" :label="item.name" :value="item.id">
+          <el-select clearable class="filter-item" v-model="listQuery.sex" placeholder="性别">
+            <el-option v-for="item in  sexList" :key="item.id" :label="item.name" :value="item.id">
             </el-option>
           </el-select>
         </el-col>
@@ -119,7 +119,7 @@
       pcmcList: [],
       yxList: [],
       zyList: [],
-      xbList: [],
+      sexList: [],
       xslbList: [],
       jbxx: {},
       queryparam: {}
@@ -128,7 +128,7 @@
   created() {
     this.initYxList()
     this.initZyList()
-    this.initXbList()
+    this.initsexList()
     this.initXslbList()
     this.handlePageList()
     this.height = window.innerHeight - 266
@@ -257,9 +257,9 @@
         this.xslbList = response.items
       })
     },
-    initXbList() {
-      getDicList({ type: 'xb' }).then(response => {
-        this.xbList = response.items
+    initsexList() {
+      getDicList({ type: 'sex' }).then(response => {
+        this.sexList = response.items
       })
     },
     handlePageList() {
diff --git a/leave-school-vue/src/views/systemmanagement/datadictionary/index.vue b/leave-school-vue/src/views/systemmanagement/datadictionary/index.vue
new file mode 100644
index 0000000..75d7930
--- /dev/null
+++ b/leave-school-vue/src/views/systemmanagement/datadictionary/index.vue
@@ -0,0 +1,224 @@
+<template>
+  <div class="app-container">
+    <el-col :span="12">
+      <el-card>
+        <div class="filter-container">
+          <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="类型名称/编码" v-model="listQuery.name">
+          </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>
+        </div>
+        <el-table :height="height" :data="items" v-loading="listLoading" element-loading-text="Loading" border fit highlight-current-row>
+          <el-table-column label="类型编码" align="center">
+            <template slot-scope="scope">
+              {{scope.row.code}}
+            </template>
+          </el-table-column>
+          <el-table-column label="类型名称" align="center">
+            <template slot-scope="scope">
+              <span>{{scope.row.name}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            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="handleView(scope.row.code)">查看</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="code">
+              <el-input v-model="temp.code"></el-input>
+              <input type="hidden" v-model="temp.id" />
+            </el-form-item>
+            <el-form-item label="类型名称" prop="name">
+              <el-input v-model="temp.name"></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>
+      </el-card>
+    </el-col>
+    <el-col :span="12">
+      <el-card>
+        <div class="filter-container">
+          <el-button class="filter-item" style="margin-left: 10px;" @click="handleCreateDic(null, 'create')" type="primary" icon="el-icon-edit">添加</el-button>
+        </div>
+        <el-table :height="itemHeight" :data="dicList" v-loading="listLoading" element-loading-text="Loading" border fit highlight-current-row>
+          <el-table-column label="字典编码" align="center">
+            <template slot-scope="scope">
+              {{scope.row.code}}
+            </template>
+          </el-table-column>
+          <el-table-column label="字典名称" align="center">
+            <template slot-scope="scope">
+              <span>{{scope.row.name}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            header-align="center"
+            align="center"
+            width="150"
+            label="操作">
+            <template slot-scope="scope">
+              <el-button type="text" size="small" @click="handleCreateDic(scope.row.id, 'update')">修改</el-button>
+              <el-button type="text" size="small" @click="handleDeleteDic(scope.row.id)">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        
+        <el-dialog :title="textMap[dialogStatus]" :visible.sync="dicDialogFormVisible">
+          <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="code">
+              <el-input v-model="temp.code"></el-input>
+              <input type="hidden" v-model="temp.id" />
+            </el-form-item>
+            <el-form-item label="字典名称" prop="name">
+              <el-input v-model="temp.name"></el-input>
+            </el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="dicDialogFormVisible = false">返回</el-button>
+            <el-button type="primary" @click="createDataDic">提交</el-button>
+          </div>
+        </el-dialog>
+      </el-card>
+    </el-col>
+  </div>
+</template>
+
+<script>
+import { getPage, getType, getDicList, createType, deleteType, getDic, createDic, deleteDic } from '@/api/dictionary-api'
+import waves from '@/directive/waves' // 水波纹指令
+import { MessageBox } from 'element-ui'
+import { resetForm } from '@/utils'
+import { crudPageList, crudGetItem, crudCreate, crudDelete } from '@/utils/crud'
+import mixindata from '@/utils/crud'
+
+const initData = { sex: 'male', zt: 'on' }
+export default {
+  name: 'type',
+  directives: {
+    waves
+  },
+  mixins: [mixindata],
+  data() {
+    return {
+      dicDialogFormVisible: false,
+      dicDialogVisible: false,
+      dicList: [],
+      itemHeight: 500,
+      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 - 256
+    this.itemHeight = window.innerHeight - 223
+  },
+  methods: {
+    handlePageList() {
+      crudPageList(this, getPage)
+    },
+    handleCreate(rowid, dialogStatus) {
+      this.dialogStatus = dialogStatus
+      crudGetItem(this, getType, 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, createType, this.handlePageList)
+    },
+    handleDelete(rowid) {
+      crudDelete(this, deleteType, rowid, this.handlePageList)
+    },
+    handleView(type) {
+      this.temp.type = type
+      getDicList({ type: type }).then(response => {
+        if (!response.items) {
+          MessageBox.alert('数据不存在，请确认是否已删除。', '消息', {
+            confirmButtonText: '确定'
+          })
+          return
+        }
+        this.dicDialogVisible = true
+        this.dicList = response.items
+      })
+    },
+    handleCreateDic(rowid, dialogStatus) {
+      if (!this.temp.type) {
+        MessageBox.alert('请先选择字典类型！', '消息', {
+          confirmButtonText: '确定'
+        })
+        return
+      }
+      this.dialogStatus = dialogStatus
+      const that = this
+      crudGetItem(this, getDic, rowid, { type: this.temp.type }, function() {
+        that.dicDialogFormVisible = true
+        that.dialogFormVisible = false
+      })
+    },
+    createDataDic() {
+      const that = this
+      crudCreate(this, createDic, function() {
+        that.handleView(that.temp.type)
+        that.dicDialogFormVisible = false
+      })
+    },
+    handleDeleteDic(rowid) {
+      const that = this
+      crudDelete(this, deleteDic, rowid, function() {
+        that.handleView(that.temp.type)
+      })
+    }
+  }
+}
+</script>
+<style scoped>
+.el-card {
+  margin: 5px;
+}
+</style>
diff --git a/leave-school-vue/src/views/systemmanagement/user/index.vue b/leave-school-vue/src/views/systemmanagement/user/index.vue
index c069707..453bb0e 100644
--- a/leave-school-vue/src/views/systemmanagement/user/index.vue
+++ b/leave-school-vue/src/views/systemmanagement/user/index.vue
@@ -34,7 +34,7 @@
       </el-table-column>
       <el-table-column label="性别" align="center">
         <template slot-scope="scope">
-          {{scope.row.xb}}
+          {{scope.row.sex}}
         </template>
       </el-table-column>
       <el-table-column label="状态" align="center">
@@ -97,7 +97,7 @@
           <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-input type="password" v-model="temp.mm"></el-input>密码为6-20位数字或字母
         </el-form-item>
         <el-form-item label="账户类别" prop="zhlb">
           <el-select clearable class="filter-item" v-model="temp.zhlb" placeholder="账户类别">
@@ -106,8 +106,8 @@
           </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 v-model="temp.sex">
+            <el-radio v-for="item in pagedata.sexList" :label="item.value" :key="item.value" >{{item.label}}</el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item label="状态">
@@ -164,7 +164,7 @@
 import { crudPageList, crudGetItem, crudCreate, crudDelete } from '@/utils/crud'
 import mixindata from '@/utils/crud'
 
-const initData = { xb: 'male', zt: 'on' }
+const initData = { sex: 'male', zt: 'on' }
 export default {
   name: 'user',
   directives: {
diff --git a/leave-school-vue/src/views/workteam/departmentleader/index.vue b/leave-school-vue/src/views/workteam/departmentleader/index.vue
index 3200e68..e04552b 100644
--- a/leave-school-vue/src/views/workteam/departmentleader/index.vue
+++ b/leave-school-vue/src/views/workteam/departmentleader/index.vue
@@ -30,8 +30,8 @@
           </el-select>
         </el-col>
         <el-col :span="4">
-          <el-select clearable class="filter-item" v-model="listQuery.xb" placeholder="性别">
-            <el-option v-for="item in  xbList" :key="item.id" :label="item.name" :value="item.id">
+          <el-select clearable class="filter-item" v-model="listQuery.sex" placeholder="性别">
+            <el-option v-for="item in  sexList" :key="item.id" :label="item.name" :value="item.id">
             </el-option>
           </el-select>
         </el-col>
@@ -59,7 +59,7 @@
       </el-table-column>
       <el-table-column label="性别" align="center">
         <template slot-scope="scope">
-          {{scope.row.xb}}
+          {{scope.row.sex}}
         </template>
       </el-table-column>
       <el-table-column label="政治面貌" align="center">
@@ -104,8 +104,8 @@
           <el-input v-model="temp.xm"></el-input>
         </el-form-item>
         <el-form-item label="性别">
-          <el-select class="filter-item" v-model="temp.xb" placeholder="请选择">
-            <el-option v-for="item in  xbList" :key="item.id" :label="item.name" :value="item.id">
+          <el-select class="filter-item" v-model="temp.sex" placeholder="请选择">
+            <el-option v-for="item in  sexList" :key="item.id" :label="item.name" :value="item.id">
             </el-option>
           </el-select>
         </el-form-item>
@@ -161,7 +161,7 @@
     return {
       yxList: [],
       zzmmList: [],
-      xbList: [],
+      sexList: [],
       rules: {
         gh: [{ required: true, message: '工号必填', trigger: 'blur' }],
         xm: [{ required: true, message: '姓名必填', trigger: 'blur' }],
@@ -181,7 +181,7 @@
   created() {
     this.getYxList()
     this.getZzmmList()
-    this.getXbList()
+    this.getsexList()
     this.handlePageList()
     this.height = window.innerHeight - 266
   },
@@ -196,9 +196,9 @@
         this.zzmmList = response.items
       })
     },
-    getXbList() {
-      getDicList({ type: 'xb' }).then(response => {
-        this.xbList = response.items
+    getsexList() {
+      getDicList({ type: 'sex' }).then(response => {
+        this.sexList = response.items
       })
     },
     handlePageList() {
