<template>
|
<div class="app-container">
|
<div>
|
<el-form :inline="true" :model="queryForm">
|
<el-form-item label="用户名">
|
<el-input
|
v-model="queryForm.username"
|
class="filter-item"
|
placeholder=""
|
style="width: 150px;"
|
@keyup.enter.native="queryHandle"
|
/>
|
</el-form-item>
|
<el-form-item label="单位">
|
<el-input
|
v-model="queryForm.company"
|
class="filter-item"
|
placeholder=""
|
style="width: 200px;"
|
@keyup.enter.native="queryHandle"
|
/>
|
</el-form-item>
|
<el-form-item label="部门">
|
<el-input
|
v-model="queryForm.department"
|
class="filter-item"
|
placeholder=""
|
style="width: 150px;"
|
@keyup.enter.native="queryHandle"
|
/>
|
</el-form-item>
|
<el-form-item label="职务">
|
<el-input
|
v-model="queryForm.job"
|
class="filter-item"
|
placeholder=""
|
style="width: 150px;"
|
@keyup.enter.native="queryHandle"
|
/>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
class="filter-item"
|
type="primary"
|
icon="el-icon-search"
|
@click="queryHandle"
|
/>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
v-if="getBtnPermission('add')"
|
class="filter-item"
|
style="margin-left: 10px;"
|
type="primary"
|
icon="el-icon-plus"
|
@click="showCreateHandle"
|
>新增</el-button>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
v-if="getBtnPermission('import')"
|
class="filter-item"
|
style="margin-left: 10px;"
|
type="primary"
|
icon="el-icon-upload2"
|
@click="showImportHandle"
|
>导入</el-button>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
v-if="getBtnPermission('import')"
|
v-show="userType != 3"
|
class="filter-item"
|
style="margin-left: 10px;"
|
type="primary"
|
icon="el-icon-upload2"
|
@click="showImportHandle2"
|
>导入统一社会信用代码</el-button>
|
</el-form-item>
|
</el-form>
|
</div>
|
<div style="display: block;margin-top: -10px">
|
<div class="basic_search">
|
<span>区域:</span>
|
<el-select v-model="queryForm.province" clearable filterable @change="changeArea('province')">
|
<el-option
|
v-for="item in provinceList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.name"
|
>
|
</el-option>
|
</el-select>
|
</div>
|
<div class="basic_search">
|
<el-select v-model="queryForm.city" prop="city" clearable filterable @change="changeArea('city')">
|
<el-option
|
v-for="item in cityList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.name"
|
>
|
</el-option>
|
</el-select>
|
</div>
|
<div class="basic_search">
|
<el-select v-model="queryForm.area" clearable filterable @change="changeArea('area')">
|
<el-option
|
v-for="item in districtList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.name"
|
>
|
</el-option>
|
</el-select>
|
</div>
|
<!-- <div class="basic_search">-->
|
<!-- <el-select v-model="queryForm.town" clearable filterable @change="changeArea('town')" >-->
|
<!-- <el-option-->
|
<!-- v-for="item in streetList"-->
|
<!-- :key="item.id"-->
|
<!-- :label="item.name"-->
|
<!-- :value="item.name"-->
|
<!-- >-->
|
<!-- </el-option>-->
|
<!-- </el-select>-->
|
<!-- </div>-->
|
<!-- <div class="basic_search">-->
|
<!-- <el-select v-model="queryForm.community" clearable filterable>-->
|
<!-- <el-option-->
|
<!-- v-for="item in committeeList"-->
|
<!-- :key="item.id"-->
|
<!-- :label="item.name"-->
|
<!-- :value="item.name"-->
|
<!-- >-->
|
<!-- </el-option>-->
|
<!-- </el-select>-->
|
<!-- </div>-->
|
</div>
|
<div class="table_content">
|
<el-table
|
v-loading="listLoading"
|
:key="tableKey"
|
:data="userData"
|
border
|
fit
|
highlight-current-row
|
style="width: 100%;"
|
@sort-change="sortUserChange"
|
>
|
<el-table-column type="index" label="" align="center" width="60"/>
|
<el-table-column label="用户名" prop="username" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.username }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="单位" prop="company" align="center" width="150" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.company }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="级别" prop="unittype" align="center" width="150" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.unittype == 1? '省级':(scope.row.unittype == 2 ? '市、州级' : '区、县级') }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="办公电话" prop="phone" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.phone }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="手机号" prop="mobile" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.mobile }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="邮箱" prop="email" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.email }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="部门" prop="department" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.department? scope.row.department.name:'' }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="职务" prop="job" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.job }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="统一社会信用代码" prop="code" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.code }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="用户分类" prop="type" align="center">
|
<template slot-scope="scope">
|
<span>{{ scope.row.type | filterUserType }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="角色" prop="role" align="center">
|
<template slot-scope="scope">
|
<span>{{ scope.row.roles | parseRoles }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="管辖地区" prop="province" align="center" width="300" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.province+'-'+scope.row.city+'-'+scope.row.area | parseGX}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="更新时间" prop="lastmodifieddate" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.lastmodifieddate | parseTime('{y}-{m}-{d}') }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width" fixed="right">
|
<template slot-scope="scope">
|
<el-button type="text" @click="showEditHandle(scope.row)">编辑</el-button>
|
<el-button v-show="userType != 3" :disabled="disableRole(scope.row)" type="text" align="center" @click="showAssignRole(scope.row)">分配角色</el-button>
|
<el-button :disabled="scope.row.type==1" type="text" style="color:red;" @click="deleteHandle(scope.row)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<br>
|
<el-pagination
|
v-show="recordTotal>0"
|
:current-page="currentPage"
|
:page-sizes="[10, 20, 30, 50]"
|
:page-size="pageSize"
|
:total="recordTotal"
|
layout="total, sizes, prev, pager, next, jumper"
|
background
|
style="float:right;"
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
/>
|
</div>
|
<el-dialog :title="dialogStatus==='create'?'新增':'编辑'" :visible.sync="dialogFormVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="700px">
|
<el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="120px" style="margin-left:50px;width:500px;" element-loading-text="保存中...">
|
<el-form-item label="用户名:" prop="username">
|
<el-input v-model.trim="dataForm.username"/>
|
</el-form-item>
|
<div v-if="dialogStatus=='create'">
|
<el-form-item label="密码:" prop="password">
|
<el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
|
<el-button slot="append" icon="el-icon-view" @click="showPwd"/>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="确认密码:" prop="confirmPassword">
|
<el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
|
<el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
|
</el-input>
|
</el-form-item>
|
</div>
|
<div v-else>
|
<el-form-item label="密码:">
|
<el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
|
<el-button slot="append" icon="el-icon-view" @click="showPwd"/>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="确认密码:">
|
<el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
|
<el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
|
</el-input>
|
</el-form-item>
|
</div>
|
<el-form-item label="单位:" prop="company">
|
<el-input v-model.trim="dataForm.company"/>
|
</el-form-item>
|
<el-form-item label="办公电话:" prop="phone">
|
<el-input v-model.trim="dataForm.phone"/>
|
</el-form-item>
|
<el-form-item label="手机号:" prop="mobile">
|
<el-input v-model.trim="dataForm.mobile" oninput="value=value.replace(/^\.+|[^\d.]/g,'')"/>
|
</el-form-item>
|
<el-form-item label="邮箱:" prop="email">
|
<el-input v-model.trim="dataForm.email"/>
|
</el-form-item>
|
<el-form-item label="部门:" prop="department">
|
<el-input v-model.trim="dataForm.department"/>
|
</el-form-item>
|
<el-form-item label="职务:" prop="job">
|
<el-input v-model.trim="dataForm.job"/>
|
</el-form-item>
|
<el-form-item label="统一社会信用代码:" prop="job">
|
<el-input v-model.trim="dataForm.code"/>
|
</el-form-item>
|
<el-form-item label="选择监管级别:" prop="unittype">
|
<el-select v-model="dataForm.unittype" filterable placeholder="请选择级别">
|
<el-option
|
v-for="item in unitTypeList"
|
:key="item.name"
|
:label="item.name"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="管辖省份:" prop="province">
|
<el-select v-model="dataForm.province" filterable placeholder="请选择省份" @change="resetCity">
|
<el-option
|
v-for="item in provinceList"
|
:key="item.name"
|
:label="item.name"
|
:value="item.name">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="管辖市州:" v-if="dataForm.unittype == 2 || dataForm.unittype == 3" prop="city">
|
<el-select v-model="dataForm.city" placeholder="请选择城市" @change="resetArea">
|
<el-option
|
v-for="item in cityList"
|
:key="item.name"
|
:label="item.name"
|
:value="item.name"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="管辖区县:" v-if="dataForm.unittype == 3" prop="area">
|
<el-select v-model="dataForm.area" placeholder="请选择区县" @change="resetTown">
|
<el-option
|
v-for="item in areaList"
|
:key="item.name"
|
:label="item.name"
|
:value="item.name"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<!-- <el-select v-model="dataForm.town" placeholder="请选择街道" @change="resetCommunity">-->
|
<!-- <el-option-->
|
<!-- v-for="item in townList"-->
|
<!-- :key="item.name"-->
|
<!-- :label="item.name"-->
|
<!-- :value="item.name"-->
|
<!-- >-->
|
<!-- </el-option>-->
|
<!-- </el-select>-->
|
<!-- <el-select v-model="dataForm.community" placeholder="请选择社区">-->
|
<!-- <el-option-->
|
<!-- v-for="item in communityList"-->
|
<!-- :key="item.name"-->
|
<!-- :label="item.name"-->
|
<!-- :value="item.name"-->
|
<!-- >-->
|
<!-- </el-option>-->
|
<!-- </el-select>-->
|
<el-form-item label="用户类型:" prop="type">
|
<el-select v-model.trim="dataForm.type" placeholder="请选择用户类型" auto-complete="on" style="width:100%;">
|
<el-option v-show="userType != 3" :value="2" label="管理员"/>
|
<el-option :value="3" label="普通用户"/>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="dialogFormVisible = false">取消</el-button>
|
<el-button type="primary" @click="dialogStatus==='create'?createHandle():updateHandle()">确认</el-button>
|
</div>
|
</el-dialog>
|
<el-dialog :visible.sync="dialogUserRoleFormVisible" :modal-append-to-body="false" :close-on-click-modal="false" title="分配角色">
|
<el-form ref="userRoleDataForm" :rules="userRoleDataFormRules" :model="userRoleDataForm" label-position="left" label-width="100px" style="margin-left:30px;">
|
<el-form-item label="角色:" prop="userRoles">
|
<el-select v-model="userRoleDataForm.userRoles" placeholder="请选择用户角色" style="width:100%;" multiple>
|
<el-option v-for="(item,index) in roleList" :value="item.id" :key="index" :label="getRoleInfo(item)"/>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="dialogUserRoleFormVisible = false">取消</el-button>
|
<el-button type="primary" @click="assignUserRoleHandle">确认</el-button>
|
</div>
|
</el-dialog>
|
<el-dialog
|
:visible.sync="importDialogFormVisible"
|
:modal-append-to-body="false"
|
:close-on-click-modal="false"
|
title="用户导入"
|
width="700px"
|
>
|
<el-form
|
ref="importForm"
|
label-position="right"
|
label-width="120px"
|
style="margin-left:50px;width:500px;"
|
element-loading-text="导入中..."
|
>
|
<el-form-item label="导入文件:">
|
<input ref="importLabInput" type="file" accept=".xls, .xlsx" >
|
</el-form-item>
|
<el-form-item label="excel参考模板:">
|
<el-button type="text" @click="viewHandle">下载模板</el-button>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="importDialogFormVisible = false">取消</el-button>
|
<el-button :disabled="importDisabled" type="primary" @click="importHandle()">导入</el-button>
|
</div>
|
</el-dialog>
|
<el-dialog
|
:visible.sync="importDialogFormVisible2"
|
:modal-append-to-body="false"
|
:close-on-click-modal="false"
|
title="用户统一社会信用代码导入"
|
width="700px"
|
>
|
<el-form
|
ref="importForm"
|
label-position="right"
|
label-width="120px"
|
style="margin-left:50px;width:500px;"
|
element-loading-text="导入中..."
|
>
|
<el-form-item label="导入文件:">
|
<input ref="importLabInput2" type="file" accept=".xls, .xlsx" >
|
</el-form-item>
|
<el-form-item label="excel参考模板:">
|
<el-button type="text" @click="viewHandle2">下载模板</el-button>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="importDialogFormVisible2 = false">取消</el-button>
|
<el-button :disabled="importDisabled2" type="primary" @click="importHandle2()">导入</el-button>
|
</div>
|
</el-dialog>
|
<div style="clear: both;"/>
|
</div>
|
</template>
|
|
<script>
|
import { mapGetters } from 'vuex'
|
import { userList, createUser, deleteUser, updateUser, importUser,importUserCode, importDistrict,getDistrict,getDistrictByName,updateUserRole} from '@/api/user'
|
import { checkBtnPermission } from '@/utils/permission'
|
import { roleList } from '@/api/role'
|
import { parseTime, computePageCount, parseUserType } from '@/utils'
|
import { parseError } from '@/utils/messageDialog'
|
import Cookies from 'js-cookie'
|
import { Message, MessageBox } from 'element-ui'
|
import {getCityListData, getProvinceListData} from "@/api/area";
|
const exampleFile = require('@/assets/example/user.xlsx')
|
const exampleFile2 = require('@/assets/example/userCode.xlsx')
|
export default {
|
name: 'UserTable',
|
filters: {
|
parseRoles(roles) {
|
if (!roles) {
|
return
|
}
|
let message = ''
|
for (const role of roles) {
|
message += role.name + ','
|
}
|
if (message) {
|
message = message.substring(0, message.lastIndexOf(','))
|
}
|
return message
|
},
|
filterSafety(value) {
|
if (value) {
|
return '是'
|
} else {
|
return '否'
|
}
|
},
|
filterUserType(value) {
|
return parseUserType(value)
|
},
|
parseGX(value){
|
let arr = value.split('-');
|
let guanxia='';
|
for (let i = 0; i < arr.length; i++){
|
if (arr[i] == null || arr[i] == '' || arr[i] == 'null'){
|
if (i == 0){
|
guanxia = '';
|
}
|
if (i == 1){
|
guanxia += '';
|
}
|
if (i == 2){
|
guanxia += '';
|
}
|
}else {
|
if (i == 0){
|
guanxia = arr[i];
|
}else {
|
guanxia += '-'+arr[i];
|
}
|
}
|
}
|
return guanxia;
|
}
|
},
|
computed: {
|
...mapGetters([
|
'userType',
|
'username'
|
])
|
},
|
data() {
|
let _ref = this;
|
const validateEmail = (rule, value, callback) => {
|
|
if (value == null || value == '') {
|
callback()
|
} else {
|
// 对电子邮件的验证
|
const myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/
|
if (!myreg.test(value)) {
|
return callback(new Error('请输入有效的邮箱格式'))
|
}
|
callback()
|
}
|
}
|
|
return {
|
sort:'username',
|
order:'asc',
|
pageSize: 10,
|
recordTotal: 0,
|
currentPage: 1,
|
pageTotal: 0,
|
tableKey: 0,
|
unittype: null,
|
userData: null,
|
listLoading: true,
|
queryForm: {
|
username: '',
|
company:'',
|
department:'',
|
job:'',
|
province:'',
|
city:'',
|
area:''
|
},
|
dataForm: {
|
id: '',
|
username: '',
|
password: '',
|
email: '',
|
phone: '',
|
mobile: '',
|
company: '',
|
department: '',
|
province: '',
|
city: '',
|
area: '',
|
type:'',
|
job:'',
|
code:'',
|
unittype: null
|
},
|
importDialogFormVisible: false,
|
importDialogFormVisible2: false,
|
importDisabled: false,
|
importDisabled2: false,
|
dialogFormVisible: false,
|
dialogFormVisible2: false,
|
dialogStatus: '',
|
dataFormRules: {
|
name: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
|
email: [{ validator: validateEmail, trigger: 'blur' }],
|
password: [{ required: true, message: '密码不能为空', trigger: 'blur' }],
|
confirmPassword: [{ required: true, message: '确认密码不能为空', trigger: 'blur' }],
|
type: [{ required: true, message: '用户类型不能为空', trigger: 'blur' }],
|
unittype: [{ required: true, message: '监管级别不能为空', trigger: 'blur' }],
|
province: [{ required: true, message: '请选择管辖范围', trigger: 'blur' }],
|
city: [{ required: true, message: '请选择管辖范围', trigger: 'blur' }],
|
area: [{ required: true, message: '请选择管辖范围', trigger: 'blur' }]
|
},
|
unitTypeList:[
|
{
|
name: '省级',
|
value: 1
|
},
|
{
|
name: '市、州级',
|
value: 2
|
},
|
{
|
name: '区、县级',
|
value: 3
|
}
|
],
|
provinceList:[],
|
cityList:[],
|
areaList:[],
|
townList:[],
|
communityList:[],
|
districtList:[],
|
streetList:[],
|
committeeList:[],
|
dialogUserRoleFormVisible: false,
|
userRoleDataForm: {
|
userRoles: [],
|
userId: ''
|
},
|
userRoleDataFormRules: {
|
userRoles: [{ type: 'array', required: true, message: '角色不能为空', trigger: 'change' }]
|
},
|
roleList: [],
|
passwordType: 'password',
|
confirmPasswordType: 'password',
|
templateRadio: '',
|
instituteList: [],
|
departmentList: []
|
}
|
},
|
created() {
|
this.getUserList()
|
this.getProvince()
|
},
|
methods: {
|
refreshHandle: function() {
|
this.getUserList()
|
},
|
queryHandle: function() {
|
this.currentPage = 1
|
this.getUserList()
|
},
|
sortUserChange: function(param) {
|
this.sort = param.prop;
|
this.order = param.order;
|
this.getUserList()
|
},
|
getUserList() {
|
const _this = this
|
const params = {}
|
params['sort'] = _this.sort
|
params['order'] = _this.order
|
params['pageIndex'] = _this.currentPage
|
params['pageSize'] = _this.pageSize
|
params['type'] = _this.userType
|
for (const i in _this.queryForm) {
|
if (_this.queryForm[i] != undefined && _this.queryForm[i].toString() != '') {
|
params[i] = this.queryForm[i]
|
}
|
}
|
_this.listLoading = true
|
userList(params).then(response => {
|
const res = response.data
|
if (res.code == 200) {
|
const result = res.result
|
_this.recordTotal = result.totalCount
|
_this.pageSize = result.pageSize
|
_this.pageTotal = computePageCount(result.totalCount, result.pageSize)
|
_this.currentPage = result.pageIndex
|
_this.userData = result.result
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
_this.listLoading = false
|
}).catch(error => {
|
_this.listLoading = false
|
parseError({ error: error, vm: _this })
|
})
|
},
|
createHandle: function() {
|
this.$refs['dataForm'].validate((valid) => {
|
const _this = this
|
if (valid) {
|
if (_this.dataForm.password != _this.dataForm.confirmPassword) {
|
parseError({ error: '密码输入不一致', vm: _this })
|
return
|
}
|
if(_this.dataForm.unittype == 1){
|
_this.dataForm.city = ''
|
_this.dataForm.area = ''
|
}
|
if(_this.dataForm.unittype == 2){
|
_this.dataForm.area = ''
|
}
|
const userName = Cookies.get('userName')
|
_this.dataForm['operator'] = userName
|
createUser(_this.dataForm).then(response => {
|
const res = response.data
|
if (res.code == 200) {
|
_this.dialogFormVisible = false
|
_this.$message({
|
message: '创建成功',
|
type: 'success'
|
})
|
_this.getUserList()
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
parseError({ error: error, vm: _this })
|
})
|
}
|
})
|
},
|
deleteHandle: function(row) {
|
const _this = this
|
MessageBox.confirm('确定删除用户' + row.username + '信息', '确定删除', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
_this.deleteAction(row)
|
}).catch(() => {
|
console.log('已取消删除')
|
})
|
},
|
deleteAction: function(row) {
|
const _this = this
|
const params = {}
|
params['id'] = row.id
|
const userName = Cookies.get('userName')
|
const name = Cookies.get('name')
|
params['operator'] = name + '(' + userName + ')'
|
deleteUser(params).then(response => {
|
const res = response.data
|
if (res.code == 200) {
|
_this.$message({
|
message: '删除成功',
|
type: 'success'
|
})
|
_this.getUserList()
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
parseError({ error: error, vm: _this })
|
})
|
},
|
resetDataForm() {
|
this.dataForm = {
|
id: '',
|
username: '',
|
password: '',
|
email: '',
|
phone: '',
|
mobile: '',
|
company: '',
|
department: '',
|
province: '',
|
city: '',
|
area: '',
|
type: '',
|
unittype: null,
|
job: ''
|
}
|
this.cityList = []
|
this.areaList = []
|
this.townList = []
|
this.communityList = []
|
},
|
showCreateHandle() {
|
this.resetDataForm()
|
this.dialogStatus = 'create'
|
this.dialogFormVisible = true
|
this.$nextTick(() => {
|
this.$refs['dataForm'].clearValidate()
|
})
|
},
|
updateHandle() {
|
this.$refs['dataForm'].validate((valid) => {
|
const _this = this
|
if (valid) {
|
if (_this.dataForm.password || _this.dataForm.confirmPassword) {
|
if (_this.dataForm.password != _this.dataForm.confirmPassword) {
|
parseError({ error: '密码输入不一致', vm: _this })
|
return
|
}
|
}
|
if(_this.dataForm.unittype == 1){
|
_this.dataForm.city = ''
|
_this.dataForm.area = ''
|
}
|
if(_this.dataForm.unittype == 2){
|
_this.dataForm.area = ''
|
}
|
const userName = Cookies.get('userName')
|
_this.dataForm['lastmodifiedby'] = userName
|
updateUser(_this.dataForm).then(response => {
|
const res = response.data
|
if (res.code == 200) {
|
_this.dialogFormVisible = false
|
_this.$message({
|
message: '更新成功',
|
type: 'success'
|
})
|
_this.getUserList()
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
parseError({ error: error, vm: _this })
|
})
|
}
|
})
|
},
|
getRoleList: async function() {
|
const _this = this
|
const params = {}
|
roleList(params).then(response => {
|
const res = response.data
|
if (res.code == 200) {
|
const roleList = res.result
|
_this.roleList = roleList
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
})
|
},
|
showAssignRole: async function(row) {
|
await this.getRoleList()
|
|
this.userRoleDataForm.userId = row.id
|
|
this.$nextTick(() => {
|
const assigedRoles = []
|
if (row.roles) {
|
for (const role of row.roles) {
|
assigedRoles.push(role.id)
|
}
|
}
|
this.userRoleDataForm.userRoles = assigedRoles
|
})
|
this.dialogUserRoleFormVisible = true
|
this.$nextTick(() => {
|
this.$refs['userRoleDataForm'].clearValidate()
|
})
|
},
|
assignUserRoleHandle: function() {
|
const _this = this
|
this.$refs['userRoleDataForm'].validate((valid) => {
|
if (valid) {
|
const userName = Cookies.get('userName')
|
const params = {}
|
params['id'] = _this.userRoleDataForm.userId
|
params['roles'] = _this.userRoleDataForm.userRoles
|
updateUserRole(params).then(response => {
|
const res = response.data
|
if (res.code == 200) {
|
_this.dialogUserRoleFormVisible = false
|
_this.$message({
|
message: '角色分配成功',
|
type: 'success'
|
})
|
_this.getUserList()
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
})
|
}
|
})
|
},
|
showEditHandle: function(row) {
|
this.resetDataForm()
|
this.dialogStatus = 'editor'
|
this.dataForm.id = row.id
|
this.dataForm.username = row.username
|
this.dataForm.email = row.email
|
this.dataForm.phone = row.phone
|
this.dataForm.company = row.company
|
this.dataForm.department = row.department
|
this.dataForm.province = row.province
|
this.dataForm.city = row.city
|
this.dataForm.area = row.area
|
this.dataForm.job = row.job
|
this.dataForm.type = row.type
|
this.dataForm.unittype = row.unittype
|
this.dialogFormVisible = true
|
this.$nextTick(() => {
|
this.$refs['dataForm'].clearValidate()
|
})
|
const _this = this
|
const params = {}
|
params['province'] = row.province
|
params['city'] = row.city
|
params['area'] = row.area
|
getDistrictByName(params).then(response => {
|
const res = response.data
|
if (res.code == 200){
|
this.provinceList = res.result.provinceList;
|
this.cityList = res.result.cityList;
|
this.areaList = res.result.areaList;
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
})
|
|
},
|
passwordChangeEvent: function(value) {
|
if (this.dataForm.password != value) {
|
parseError({ error: '密码输入不一致', vm: this })
|
}
|
},
|
showPwd() {
|
if (this.passwordType === 'password') {
|
this.passwordType = ''
|
} else {
|
this.passwordType = 'password'
|
}
|
},
|
showConfirmPwd() {
|
if (this.confirmPasswordType === 'password') {
|
this.confirmPasswordType = ''
|
} else {
|
this.confirmPasswordType = 'password'
|
}
|
},
|
handleSizeChange: function(val) {
|
this.pageSize = val
|
this.currentPage = 1
|
this.getUserList()
|
},
|
handleCurrentChange: function(val) {
|
this.currentPage = val
|
this.getUserList()
|
},
|
getTemplateRow(row) {
|
console.log(row, '22222')
|
},
|
handleInstituteChange(value) {
|
if (value) {
|
this.dataForm.departmentId = ''
|
}
|
},
|
disableRole(row) {
|
if (row.type == 1) {
|
return true
|
} else {
|
return false
|
}
|
},
|
getRoleInfo(role) {
|
return role.name
|
},
|
getBtnPermission(btnType) {
|
return checkBtnPermission(this.userType, btnType)
|
},
|
showImportHandle() {
|
this.importDisabled = false
|
this.importDialogFormVisible = true
|
},
|
showImportHandle2() {
|
this.importDisabled2 = false
|
this.importDialogFormVisible2 = true
|
},
|
viewHandle() {
|
window.open(exampleFile, '_blank')
|
},
|
viewHandle2() {
|
window.open(exampleFile2, '_blank')
|
},
|
importHandle() {
|
const _this = this
|
const formData = new FormData()
|
const userName = Cookies.get('userName')
|
formData.append('operator', userName)
|
const files = this.$refs['importLabInput'].files
|
if (files && files.length > 0) {
|
formData.append('file', files[0])
|
}
|
formData.append('action', 'import')
|
importUser(formData)
|
.then((response) => {
|
const res = response.data
|
if (res.code == 200) {
|
_this.importDialogFormVisible = false
|
_this.$message({
|
message: '导入成功',
|
type: 'success'
|
})
|
_this.getUserList()
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
})
|
.catch((error) => {
|
parseError({ error: error, vm: _this })
|
})
|
},
|
importHandle2() {
|
const _this = this
|
const formData = new FormData()
|
const userName = Cookies.get('userName')
|
formData.append('operator', userName)
|
const files = this.$refs['importLabInput2'].files
|
if (files && files.length > 0) {
|
formData.append('file', files[0])
|
}
|
formData.append('action', 'import')
|
importUserCode(formData)
|
.then((response) => {
|
const res = response.data
|
if (res.code == 200) {
|
_this.importDialogFormVisible = false
|
_this.$message({
|
message: '导入成功',
|
type: 'success'
|
})
|
_this.getUserList()
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
})
|
.catch((error) => {
|
parseError({ error: error, vm: _this })
|
})
|
},
|
getProvince(){
|
const _this = this
|
const params = {}
|
params['parenttype'] = 0
|
params['type'] = 1
|
getDistrict(params).then(response => {
|
const res = response.data
|
if (res.code == 200){
|
this.provinceList = res.result;
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
})
|
},
|
resetCity(name){
|
const _this = this
|
const params = {}
|
params['parentname'] = name
|
params['parenttype'] = 1
|
params['type'] = 2
|
getDistrict(params).then(response => {
|
const res = response.data
|
if (res.code == 200){
|
this.cityList = res.result;
|
this.areaList = [];
|
this.townList = [];
|
this.communityList = [];
|
this.dataForm.city = '';
|
this.dataForm.area = '';
|
this.dataForm.town = '';
|
this.dataForm.community = '';
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
})
|
},
|
resetArea(name){
|
const _this = this
|
const params = {}
|
params['parentname'] = name
|
params['parenttype'] = 2
|
params['type'] = 3
|
getDistrict(params).then(response => {
|
const res = response.data
|
if (res.code == 200){
|
this.areaList = res.result;
|
this.townList = [];
|
this.communityList = [];
|
this.dataForm.area = '';
|
this.dataForm.town = '';
|
this.dataForm.community = '';
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
})
|
},
|
resetTown(name){
|
const _this = this
|
const params = {}
|
params['parentname'] = name
|
params['parenttype'] = 3
|
params['type'] = 4
|
getDistrict(params).then(response => {
|
const res = response.data
|
if (res.code == 200){
|
this.townList = res.result;
|
this.communityList = [];
|
this.dataForm.town = '';
|
this.dataForm.community = '';
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
})
|
},
|
resetCommunity(name){
|
const _this = this
|
const params = {}
|
params['parentname'] = name
|
params['parenttype'] = 4
|
params['type'] = 5
|
getDistrict(params).then(response => {
|
const res = response.data
|
if (res.code == 200){
|
this.communityList = res.result;
|
this.dataForm.community = '';
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
})
|
},
|
async changeArea(value){
|
if(value === 'province'){
|
this.queryForm.city = ''
|
this.queryForm.area = ''
|
this.queryForm.town = ''
|
this.queryForm.community = ''
|
this.areaListQuery = {
|
type: 2,
|
parenttype: 1,
|
parentname: this.queryForm.province,
|
}
|
let res = await getCityListData(this.areaListQuery)
|
if(res.data.code === "200"){
|
this.cityList = res.data.result
|
}
|
}else if(value === 'city'){
|
this.queryForm.area = ''
|
this.queryForm.town = ''
|
this.queryForm.community = ''
|
this.areaListQuery = {
|
type: 3,
|
parenttype: 2,
|
parentname: this.queryForm.city,
|
}
|
let res = await getCityListData(this.areaListQuery)
|
if(res.data.code === "200"){
|
this.districtList = res.data.result
|
}
|
}else if(value === 'area'){
|
this.queryForm.town = ''
|
this.queryForm.community = ''
|
this.areaListQuery = {
|
type: 4,
|
parenttype: 3,
|
parentname: this.queryForm.area,
|
}
|
let res = await getCityListData(this.areaListQuery)
|
if(res.data.code === "200"){
|
this.streetList = res.data.result
|
}
|
}else if(value === 'town'){
|
this.queryForm.community = ''
|
this.areaListQuery = {
|
type: 5,
|
parenttype: 4,
|
parentname: this.queryForm.town,
|
}
|
let res = await getCityListData(this.areaListQuery)
|
if(res.data.code === "200"){
|
this.committeeList = res.data.result
|
}
|
}
|
},//市、镇、街道、委员会
|
}
|
}
|
</script>
|
<style lang="scss" scoped>
|
.basic_search{
|
display:inline-block;
|
}
|
</style>
|