|
@@ -4,11 +4,7 @@
|
|
|
<a-row :gutter="24">
|
|
|
<a-col :span="6">
|
|
|
<!-- 部门树 -->
|
|
|
- <dept-tree
|
|
|
- ref="deptTree"
|
|
|
- :deptOptions="deptOptions"
|
|
|
- @select="clickDeptNode"
|
|
|
- />
|
|
|
+ <dept-tree ref="deptTree" :deptOptions="deptOptions" @select="clickDeptNode" />
|
|
|
</a-col>
|
|
|
<a-col :span="18">
|
|
|
<!-- 条件搜索 -->
|
|
@@ -16,36 +12,51 @@
|
|
|
<a-form layout="inline">
|
|
|
<a-row :gutter="48">
|
|
|
<a-col :md="8" :sm="24">
|
|
|
- <a-form-item label="用户名称">
|
|
|
- <a-input v-model="queryParam.userName" placeholder="请输入" allow-clear />
|
|
|
+ <a-form-item label="人员名称">
|
|
|
+ <a-input v-model="queryParam.nickName" placeholder="请输入" allow-clear />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :md="8" :sm="24">
|
|
|
- <a-form-item label="手机号" >
|
|
|
+ <a-form-item label="手机号">
|
|
|
<a-input v-model="queryParam.phonenumber" placeholder="请输入" allow-clear />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<template v-if="advanced">
|
|
|
<a-col :md="8" :sm="24">
|
|
|
<a-form-item label="状态" prop="status">
|
|
|
- <a-select placeholder="请选择状态" style="width: 100%" allow-clear>
|
|
|
- <a-select-option v-for="(d, index) in dict.type['sys_normal_disable']" :key="index" :value="d.value">{{ d.label }}</a-select-option>
|
|
|
+ <a-select placeholder="请选择状态" style="width: 100%" allow-clear @change="handleChange">
|
|
|
+ <!-- dict.type['sys_normal_disable']" -->
|
|
|
+ <a-select-option
|
|
|
+ v-for="(d, index) in statusList"
|
|
|
+ :key="index"
|
|
|
+ :value="d.val"
|
|
|
+ >{{ d.lable }}</a-select-option
|
|
|
+ >
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :md="8" :sm="24">
|
|
|
<a-form-item label="创建时间">
|
|
|
- <a-range-picker style="width: 100%" v-model="dateRange" valueFormat="YYYY-MM-DD" format="YYYY-MM-DD" allow-clear />
|
|
|
+ <a-range-picker
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="dateRange"
|
|
|
+ valueFormat="YYYY-MM-DD"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ allow-clear
|
|
|
+ />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</template>
|
|
|
- <a-col :md="!advanced && 8 || 24" :sm="24">
|
|
|
- <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
|
|
|
+ <a-col :md="(!advanced && 8) || 24" :sm="24">
|
|
|
+ <span
|
|
|
+ class="table-page-search-submitButtons"
|
|
|
+ :style="(advanced && { float: 'right', overflow: 'hidden' }) || {}"
|
|
|
+ >
|
|
|
<a-button type="primary" @click="handleQuery"><a-icon type="search" />查询</a-button>
|
|
|
<a-button style="margin-left: 8px" @click="resetQuery"><a-icon type="redo" />重置</a-button>
|
|
|
<a @click="toggleAdvanced" style="margin-left: 8px">
|
|
|
{{ advanced ? '收起' : '展开' }}
|
|
|
- <a-icon :type="advanced ? 'up' : 'down'"/>
|
|
|
+ <a-icon :type="advanced ? 'up' : 'down'" />
|
|
|
</a>
|
|
|
</span>
|
|
|
</a-col>
|
|
@@ -63,18 +74,23 @@
|
|
|
<a-button type="danger" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:user:remove']">
|
|
|
<a-icon type="delete" />删除
|
|
|
</a-button> -->
|
|
|
- <a-button type="dashed" @click="$refs.importExcel.importExcelHandleOpen()" v-hasPermi="['system:user:import']">
|
|
|
+ <a-button
|
|
|
+ type="dashed"
|
|
|
+ @click="$refs.importExcel.importExcelHandleOpen()"
|
|
|
+ v-hasPermi="['system:user:import']"
|
|
|
+ >
|
|
|
<a-icon type="import" />导入
|
|
|
</a-button>
|
|
|
<a-button type="primary" @click="handleExport" v-hasPermi="['system:user:export']">
|
|
|
<a-icon type="download" />导出
|
|
|
</a-button>
|
|
|
<table-setting
|
|
|
- :style="{float: 'right'}"
|
|
|
+ :style="{ float: 'right' }"
|
|
|
:table-size.sync="tableSize"
|
|
|
v-model="columns"
|
|
|
:refresh-loading="loading"
|
|
|
- @refresh="getList" />
|
|
|
+ @refresh="getList"
|
|
|
+ />
|
|
|
</div>
|
|
|
<!-- 增加修改 -->
|
|
|
<!-- 创建/编辑用户,单独封装了组件 -->
|
|
@@ -87,18 +103,11 @@
|
|
|
@select-tree="getTreeselect"
|
|
|
/>
|
|
|
<!-- 修改密码抽屉 -->
|
|
|
- <reset-password
|
|
|
- ref="resetPassword"
|
|
|
- />
|
|
|
+ <reset-password ref="resetPassword" />
|
|
|
<!-- 分配角色模态框 -->
|
|
|
- <auth-role
|
|
|
- ref="authRole"
|
|
|
- />
|
|
|
+ <auth-role ref="authRole" />
|
|
|
<!-- 上传文件 -->
|
|
|
- <import-excel
|
|
|
- ref="importExcel"
|
|
|
- @ok="getList"
|
|
|
- />
|
|
|
+ <import-excel ref="importExcel" @ok="getList" />
|
|
|
<!-- 数据展示 -->
|
|
|
<a-table
|
|
|
:loading="loading"
|
|
@@ -108,7 +117,8 @@
|
|
|
:data-source="list"
|
|
|
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
|
|
:pagination="false"
|
|
|
- :bordered="tableBordered">
|
|
|
+ :bordered="tableBordered"
|
|
|
+ >
|
|
|
<span slot="status" slot-scope="text, record">
|
|
|
<dict-tag :options="dict.type['sys_normal_disable']" :value="record.status" />
|
|
|
</span>
|
|
@@ -116,7 +126,7 @@
|
|
|
{{ parseTime(record.createTime) }}
|
|
|
</span>
|
|
|
<span slot="operation" slot-scope="text, record" v-if="record.userId !== 1">
|
|
|
- <a @click="$refs.createForm.handleUpdate(record,undefined)" v-hasPermi="['system:user:edit']">
|
|
|
+ <a @click="$refs.createForm.handleUpdate(record, undefined)" v-hasPermi="['system:user:edit']">
|
|
|
<a-icon type="eye" />
|
|
|
详情
|
|
|
</a>
|
|
@@ -127,7 +137,7 @@
|
|
|
</a> -->
|
|
|
<a-divider type="vertical" v-hasPermi="['system:user:resetPwd', 'system:user:edit']" />
|
|
|
<a-dropdown v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
|
|
|
- <a class="ant-dropdown-link" @click="e => e.preventDefault()">
|
|
|
+ <a class="ant-dropdown-link" @click="(e) => e.preventDefault()">
|
|
|
<a-icon type="double-right" />
|
|
|
更多
|
|
|
</a>
|
|
@@ -156,7 +166,7 @@
|
|
|
:current="queryParam.pageNum"
|
|
|
:total="total"
|
|
|
:page-size="queryParam.pageSize"
|
|
|
- :showTotal="total => `共 ${total} 条`"
|
|
|
+ :showTotal="(total) => `共 ${total} 条`"
|
|
|
@showSizeChange="onShowSizeChange"
|
|
|
@change="changeSize"
|
|
|
/>
|
|
@@ -167,7 +177,6 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-
|
|
|
import { listUser, delUser, changeUserStatus, deptTreeSelect } from '@/api/system/user'
|
|
|
import AuthRole from './modules/AuthRole'
|
|
|
import ResetPassword from './modules/ResetPassword'
|
|
@@ -182,11 +191,11 @@ export default {
|
|
|
ResetPassword,
|
|
|
CreateForm,
|
|
|
ImportExcel,
|
|
|
- DeptTree
|
|
|
+ DeptTree,
|
|
|
},
|
|
|
mixins: [tableMixin],
|
|
|
dicts: ['sys_normal_disable', 'sys_user_sex'],
|
|
|
- data () {
|
|
|
+ data() {
|
|
|
return {
|
|
|
list: [],
|
|
|
selectedRowKeys: [],
|
|
@@ -201,190 +210,199 @@ export default {
|
|
|
loading: false,
|
|
|
total: 0,
|
|
|
// 部门树选项
|
|
|
- deptOptions: [{
|
|
|
- id: 0,
|
|
|
- label: '',
|
|
|
- children: []
|
|
|
- }],
|
|
|
+ deptOptions: [
|
|
|
+ {
|
|
|
+ id: 0,
|
|
|
+ label: '',
|
|
|
+ children: [],
|
|
|
+ },
|
|
|
+ ],
|
|
|
// 日期范围
|
|
|
dateRange: [],
|
|
|
queryParam: {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
- userName: undefined,
|
|
|
+ nickName: undefined,
|
|
|
phonenumber: undefined,
|
|
|
status: undefined,
|
|
|
- deptId: undefined
|
|
|
+ deptId: undefined,
|
|
|
},
|
|
|
columns: [
|
|
|
- {
|
|
|
- title: '用户名',
|
|
|
- dataIndex: 'userName',
|
|
|
- align: 'center'
|
|
|
- },
|
|
|
+ // {
|
|
|
+ // title: '用户名',
|
|
|
+ // dataIndex: 'userName',
|
|
|
+ // align: 'center',
|
|
|
+ // },
|
|
|
{
|
|
|
title: '人员名称',
|
|
|
dataIndex: 'nickName',
|
|
|
- align: 'center'
|
|
|
+ align: 'center',
|
|
|
},
|
|
|
{
|
|
|
title: '所属单位',
|
|
|
dataIndex: 'dept.deptName',
|
|
|
- align: 'center'
|
|
|
+ align: 'center',
|
|
|
},
|
|
|
{
|
|
|
title: '联系电话',
|
|
|
dataIndex: 'phonenumber',
|
|
|
- align: 'center'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '职务',
|
|
|
- dataIndex: 'nickName',
|
|
|
- align: 'center'
|
|
|
+ align: 'center',
|
|
|
},
|
|
|
+ // {
|
|
|
+ // title: '职务',
|
|
|
+ // dataIndex: 'nickName',
|
|
|
+ // align: 'center',
|
|
|
+ // },
|
|
|
{
|
|
|
title: '状态',
|
|
|
dataIndex: 'status',
|
|
|
scopedSlots: { customRender: 'status' },
|
|
|
- align: 'center'
|
|
|
+ align: 'center',
|
|
|
},
|
|
|
{
|
|
|
title: '出生日期',
|
|
|
dataIndex: 'birthday',
|
|
|
- align: 'center'
|
|
|
+ align: 'center',
|
|
|
},
|
|
|
{
|
|
|
title: '操作',
|
|
|
dataIndex: 'operation',
|
|
|
scopedSlots: { customRender: 'operation' },
|
|
|
- align: 'center'
|
|
|
- }
|
|
|
+ align: 'center',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ statusList:[
|
|
|
+ {
|
|
|
+ val:'0',
|
|
|
+ lable:'正常'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ val:'1',
|
|
|
+ lable:'停用'
|
|
|
+ }
|
|
|
]
|
|
|
}
|
|
|
},
|
|
|
- filters: {
|
|
|
- },
|
|
|
- created () {
|
|
|
+ filters: {},
|
|
|
+ created() {
|
|
|
this.getList()
|
|
|
this.getDeptTree()
|
|
|
},
|
|
|
- computed: {
|
|
|
- },
|
|
|
- watch: {
|
|
|
- },
|
|
|
+ computed: {},
|
|
|
+ watch: {},
|
|
|
methods: {
|
|
|
/** 查询用户列表 */
|
|
|
- getList () {
|
|
|
+ getList() {
|
|
|
this.loading = true
|
|
|
- listUser(this.addDateRange(this.queryParam, this.dateRange)).then(response => {
|
|
|
- this.list = response.rows
|
|
|
- this.total = response.total
|
|
|
- this.loading = false
|
|
|
- }
|
|
|
- )
|
|
|
+ listUser(this.addDateRange(this.queryParam, this.dateRange)).then((response) => {
|
|
|
+ this.list = response.rows
|
|
|
+ this.total = response.total
|
|
|
+ this.loading = false
|
|
|
+ })
|
|
|
},
|
|
|
/** 查询部门下拉树结构 */
|
|
|
- getDeptTree () {
|
|
|
- deptTreeSelect().then(response => {
|
|
|
+ getDeptTree() {
|
|
|
+ deptTreeSelect().then((response) => {
|
|
|
this.deptOptions = response.data
|
|
|
})
|
|
|
},
|
|
|
- getTreeselect () {},
|
|
|
+ handleChange(val){
|
|
|
+ this.queryParam.status=val
|
|
|
+ },
|
|
|
+ getTreeselect() {},
|
|
|
/** 搜索按钮操作 */
|
|
|
- handleQuery () {
|
|
|
+ handleQuery() {
|
|
|
this.queryParam.pageNum = 1
|
|
|
this.getList()
|
|
|
},
|
|
|
/** 重置按钮操作 */
|
|
|
- resetQuery () {
|
|
|
+ resetQuery() {
|
|
|
this.dateRange = []
|
|
|
this.queryParam = {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
- userName: undefined,
|
|
|
+ nickName: undefined,
|
|
|
phonenumber: undefined,
|
|
|
status: undefined,
|
|
|
- deptId: undefined
|
|
|
+ deptId: undefined,
|
|
|
}
|
|
|
this.handleQuery()
|
|
|
},
|
|
|
- onShowSizeChange (current, pageSize) {
|
|
|
+ onShowSizeChange(current, pageSize) {
|
|
|
this.queryParam.pageSize = pageSize
|
|
|
this.getList()
|
|
|
},
|
|
|
- changeSize (current, pageSize) {
|
|
|
+ changeSize(current, pageSize) {
|
|
|
this.queryParam.pageNum = current
|
|
|
this.queryParam.pageSize = pageSize
|
|
|
this.getList()
|
|
|
},
|
|
|
- onSelectChange (selectedRowKeys, selectedRows) {
|
|
|
+ onSelectChange(selectedRowKeys, selectedRows) {
|
|
|
this.selectedRowKeys = selectedRowKeys
|
|
|
this.selectedRows = selectedRows
|
|
|
- this.ids = this.selectedRows.map(item => item.userId)
|
|
|
+ this.ids = this.selectedRows.map((item) => item.userId)
|
|
|
this.single = selectedRowKeys.length !== 1
|
|
|
this.multiple = !selectedRowKeys.length
|
|
|
},
|
|
|
- toggleAdvanced () {
|
|
|
+ toggleAdvanced() {
|
|
|
this.advanced = !this.advanced
|
|
|
},
|
|
|
- clickDeptNode (deptId) {
|
|
|
+ clickDeptNode(deptId) {
|
|
|
this.queryParam.deptId = deptId
|
|
|
this.handleQuery()
|
|
|
},
|
|
|
/* 用户状态修改 */
|
|
|
- confirmHandleStatus (row) {
|
|
|
+ confirmHandleStatus(row) {
|
|
|
const text = row.status === '1' ? '启用' : '关闭'
|
|
|
row.status = row.status === '0' ? '1' : '0'
|
|
|
changeUserStatus(row.userId, row.status)
|
|
|
- .then(() => {
|
|
|
- this.$message.success(
|
|
|
- text + '成功',
|
|
|
- 3
|
|
|
- )
|
|
|
- }).catch(function () {
|
|
|
- this.$message.error(
|
|
|
- text + '异常',
|
|
|
- 3
|
|
|
- )
|
|
|
- })
|
|
|
- },
|
|
|
- cancelHandleStatus (row) {
|
|
|
+ .then(() => {
|
|
|
+ this.$message.success(text + '成功', 3)
|
|
|
+ })
|
|
|
+ .catch(function () {
|
|
|
+ this.$message.error(text + '异常', 3)
|
|
|
+ })
|
|
|
},
|
|
|
+ cancelHandleStatus(row) {},
|
|
|
/** 删除按钮操作 */
|
|
|
- handleDelete (row) {
|
|
|
+ handleDelete(row) {
|
|
|
var that = this
|
|
|
const userIds = row.userId || this.ids
|
|
|
this.$confirm({
|
|
|
title: '确认删除所选中数据?',
|
|
|
content: '当前选中编号为' + userIds + '的数据',
|
|
|
- onOk () {
|
|
|
- return delUser(userIds)
|
|
|
- .then(() => {
|
|
|
- that.onSelectChange([], [])
|
|
|
- that.getList()
|
|
|
- that.$message.success(
|
|
|
- '删除成功',
|
|
|
- 3
|
|
|
- )
|
|
|
+ onOk() {
|
|
|
+ return delUser(userIds).then(() => {
|
|
|
+ that.onSelectChange([], [])
|
|
|
+ that.getList()
|
|
|
+ that.$message.success('删除成功', 3)
|
|
|
})
|
|
|
},
|
|
|
- onCancel () {}
|
|
|
+ onCancel() {},
|
|
|
})
|
|
|
},
|
|
|
/** 导出按钮操作 */
|
|
|
- handleExport () {
|
|
|
- var that = this
|
|
|
- this.$confirm({
|
|
|
- title: '是否确认导出?',
|
|
|
- content: '此操作将导出当前条件下所有数据而非选中数据',
|
|
|
- onOk () {
|
|
|
- that.download('system/user/export', {
|
|
|
- ...that.queryParam
|
|
|
- }, `user_${new Date().getTime()}.xlsx`)
|
|
|
+ handleExport() {
|
|
|
+ this.$message.success('请稍后,正在导出')
|
|
|
+ this.download(
|
|
|
+ 'system/user/export',
|
|
|
+ {
|
|
|
+ ...this.queryParam,
|
|
|
},
|
|
|
- onCancel () {}
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
+ `user_${new Date().getTime()}.xlsx`
|
|
|
+ )
|
|
|
+
|
|
|
+ // this.$confirm({
|
|
|
+ // title: '是否确认导出?',
|
|
|
+ // content: '此操作将导出当前条件下所有数据而非选中数据',
|
|
|
+ // onOk () {
|
|
|
+ // that.download('system/user/export', {
|
|
|
+ // ...that.queryParam
|
|
|
+ // }, `user_${new Date().getTime()}.xlsx`)
|
|
|
+ // },
|
|
|
+ // onCancel () {}
|
|
|
+ // })
|
|
|
+ },
|
|
|
+ },
|
|
|
}
|
|
|
</script>
|