<template>
|
<div class="personnel-main ">
|
<div class="page-header-search">
|
<div class="search-bar">
|
<el-form ref="form" inline="true" :model="searchData">
|
<el-form-item>
|
<el-input
|
v-model="keyword"
|
placeholder="请输入人员名称"
|
>
|
<i slot="prefix" class="el-input__icon el-icon-search" />
|
</el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="searchData()">查询</el-button>
|
<el-button type="primary" plain @click="resetData()">重置</el-button>
|
<!-- <el-button type="text">高级搜索<i class="el-icon-arrow-down el-icon--right" /></el-button> -->
|
</el-form-item>
|
</el-form>
|
</div>
|
<div class="serve-btn">
|
<el-button type="primary" icon="el-icon-plus" @click="dialogFormVisible = true">新增人员</el-button>
|
|
<el-dialog title="新增人员" :visible.sync="dialogFormVisible" width="30%">
|
<el-form :model="form" :rules="rules">
|
<el-form-item label="账号" :label-width="formLabelWidth" prop="account">
|
<el-input v-model="form.account" autocomplete="off" />
|
</el-form-item>
|
<el-form-item label="年龄" :label-width="formLabelWidth">
|
<el-input v-model="form.age" autocomplete="off" />
|
</el-form-item>
|
<el-form-item label="邮箱" :label-width="formLabelWidth" prop="email">
|
<el-input v-model="form.email" autocomplete="off" />
|
</el-form-item>
|
<el-form-item label="名字" :label-width="formLabelWidth" prop="name">
|
<el-input v-model="form.name" autocomplete="off" />
|
</el-form-item>
|
<el-form-item label="电话" :label-width="formLabelWidth" prop="phone">
|
<el-input v-model="form.phone" autocomplete="off" />
|
</el-form-item>
|
|
<el-form-item label="权限" :label-width="formLabelWidth" prop="role_id">
|
<el-input v-model="form.role_id" autocomplete="off" />
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
<el-button type="primary" @click="submitForm()">确 定</el-button>
|
</div>
|
</el-dialog>
|
</div>
|
</div>
|
<div class="content-main">
|
<div class="personner-table">
|
<el-table
|
ref="personnerlTable"
|
:height="700"
|
:max-height="700"
|
:cell-style="{textAlign: 'center'}"
|
:header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
|
:data="personnerlTable"
|
style="width: 100%"
|
>
|
<el-table-column
|
prop="username"
|
label="角色名称"
|
min-width="120"
|
/>
|
<el-table-column
|
prop="roleName"
|
label="角色权限"
|
min-width="120"
|
/>
|
<el-table-column
|
prop="age"
|
label="年龄"
|
min-width="150"
|
/>
|
<el-table-column
|
prop="createTime"
|
label="创建时间"
|
min-width="180"
|
/>
|
<el-table-column
|
prop="phone"
|
label="电话"
|
min-width="200"
|
/>
|
<el-table-column
|
prop="email"
|
label="邮箱"
|
min-width="200"
|
/>
|
<el-table-column
|
prop="jobState"
|
label="在职状态"
|
min-width="120"
|
:filters="[{ text: 0, value: 0 }, { text: 1, value: 1 }]"
|
:filter-method="filterTag"
|
filter-placement="bottom-end"
|
>
|
<template slot-scope="scope">
|
<el-tag
|
:type="scope.row.businessStatus === 0 ? 'primary' : 'success'"
|
disable-transitions
|
>{{ scope.row.businessStatus === 0 ? '未同意' : '已同意' }}</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column
|
label="操作"
|
min-width="120"
|
>
|
<template slot-scope="scope">
|
<el-button type="text" size="small" @click="handleClick(scope.row)">编辑</el-button>
|
<!-- <el-button type="text" size="small">编辑</el-button> -->
|
</template>
|
</el-table-column>
|
</el-table>
|
<div>
|
<!-- 分页器 -->
|
<el-pagination
|
:current-page="currentPage"
|
:page-sizes="[100, 200, 300, 400]"
|
:page-size="pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="this.personnerlTable.length"
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
/>
|
</div>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import axios from 'axios'
|
axios.defaults.baseURL = 'http://192.168.110.167:1234'
|
export default {
|
data() {
|
return {
|
keyword: '',
|
personnerlTable: [
|
|
],
|
filteredpersonnerlTable: [],
|
currentindex: 1,
|
currentPage: 1, // 当前页码
|
total: 20, // 总条数
|
pageSize: 100, // 每页的数据条数
|
personData: [], // 用来存放接口传过来的人员列表数据
|
dialogFormVisible: false,
|
form: {
|
account: '',
|
age: '',
|
email: '',
|
name: '',
|
phone: '',
|
role_id: ''
|
},
|
formLabelWidth: '100px',
|
rules: {
|
account: [
|
{
|
required: true, message: '请输入账号', trigger: 'blur'
|
}
|
],
|
name: [{
|
required: true, message: '请输入名字', trigger: 'blur'
|
}],
|
phone: [
|
// { required: true, message: '请输入11位电话号码', trigger: 'blur' },
|
{ pattern: /^1[34578]\d{9}$/, message: '非法手机号码', trigger: 'blur' }
|
],
|
email: [
|
// { required: true, message: '请输入邮箱地址', trigger: 'blur' },
|
{ type: 'email', message: '非法邮箱地址', trigger: ['blur', 'change'] }
|
],
|
role_id: [
|
{ required: true, message: '请输入权限(0或1)', trigger: 'blur' }
|
|
]
|
}
|
}
|
},
|
mounted() {
|
this.getData()
|
},
|
methods: {
|
// 每页条数改变时触发 选择一页显示多少行
|
handleSizeChange(val) {
|
console.log(`每页 ${val} 条`)
|
this.currentPage = 1
|
this.pageSize = val
|
},
|
// 当前页改变时触发 跳转其他页
|
handleCurrentChange(val) {
|
console.log(`当前页: ${val}`)
|
this.currentPage = val
|
},
|
getData() {
|
axios.get('/user/list_new_personnel', {
|
params: {
|
pageNo: 0,
|
pageSize: 20
|
}
|
}).then(res => {
|
// console.log(res)
|
this.personData = res.data.data.row
|
this.personnerlTable = this.personData
|
}).catch(res => {
|
console.log('error')
|
})
|
},
|
searchData() {
|
this.filteredpersonnerlTable = this.personnerlTable.filter((item) => {
|
return item.username === this.keyword
|
}
|
)
|
this.personnerlTable = this.filteredpersonnerlTable
|
},
|
resetData() {
|
// console.log("111111")
|
this.personnerlTable = this.personData
|
this.keyword = ''
|
},
|
// 提交新增人员表单
|
submitForm() {
|
// Handle form submission here
|
// console.log(this.form);
|
// POST请求
|
this.$refs.form.validate((valid) => {
|
if (valid) {
|
this.dialogFormVisible = false
|
axios.post('/user/add_new_personnel', this.form)
|
.then(response => {
|
console.log(response)
|
// this.dialogVisible = false;
|
})
|
.catch(error => {
|
console.error(error)
|
})
|
} else {
|
console.log('error submit!!')
|
return false
|
}
|
})
|
}
|
}
|
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
.personnel-main{
|
// width: 100%;
|
// height: 100%;
|
.page-header-search{
|
background: #fff;
|
display: flex;
|
justify-content: space-between;
|
padding: 0 24px 12px 24px;
|
.search-bar{
|
.el-form{
|
.el-form-item{
|
margin-bottom: 0px !important;
|
.el-input{
|
width: 360px;
|
}
|
}
|
}
|
}
|
}
|
.personner-table{
|
background: #fff;
|
padding: 20px 20px 10px 20px;
|
>div:nth-child(2){
|
display: flex;
|
justify-content: end;
|
margin: 10px 0;
|
}
|
}
|
}
|
</style>
|