<template>
|
<div class="app-container">
|
<div class="filter-container">
|
<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>
|
<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>
|
</el-form-item>
|
<el-form-item>
|
<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>
|
</el-form-item>
|
<el-form-item>
|
<div class="basic_search">
|
<el-select v-model="queryForm.district" clearable filterable @change="changeArea('district')">
|
<el-option
|
v-for="item in districtList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.name"
|
>
|
</el-option>
|
</el-select>
|
</div>
|
</el-form-item>
|
<div>
|
<el-form-item>
|
<div class="basic_search">
|
<span>企业类型</span>
|
<el-select v-model="queryForm.safetySuperVision" clearable filterable @change="changeArea('district')">
|
<el-option
|
v-for="item in safetySuperVisionList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.name"
|
>
|
</el-option>
|
</el-select>
|
</div>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
class="filter-item"
|
type="primary"
|
icon="el-icon-search"
|
@click="queryHandle"
|
/>
|
</el-form-item>
|
<el-button style="margin-left: 10px;" type="primary" icon="el-icon-download" @click="exportToExcel">导出</el-button>
|
</div>
|
</el-form>
|
</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="safetysupervision" align="center" width="200" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.safetysupervision }}</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="province" align="center" width="300" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.province+'-'+scope.row.city+'-'+scope.row.area+'-'+scope.row.town+'-'+scope.row.community | parseGX}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="状态" prop="status" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.status | parseStatus(scope.row.status)}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="有效期" prop="expiredate" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.expiredate | parseTime('{y}-{m}-{d}') }}</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" sortable="custom">
|
<template slot-scope="scope">
|
<span>{{ scope.row.authorizationCodes.filter(item =>item.status === 1).length }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
|
<template slot-scope="scope">
|
<el-button type="text" @click="showEditHandle(scope.row)">编辑</el-button>
|
<el-button type="text" @click="showAuthHandle(scope.row)">授权码</el-button>
|
<!-- <el-button :disabled="disableRole(scope.row)" type="text" align="center" @click="showAssignRole(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="100px" style="margin-left:50px;width:500px;" element-loading-text="保存中...">
|
<el-form-item label="用户名:" prop="username">
|
{{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="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="所在地区:">
|
<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-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-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-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>
|
<el-form-item label="禁用OCR:" prop="disableocr" v-if="isAdmin">
|
<el-radio-group v-model="dataForm.disableocr">
|
<el-radio :label="1">是</el-radio>
|
<el-radio :label="0">否</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="收费:" prop="ischarge" v-if="isAdmin">
|
<el-radio-group v-model="dataForm.ischarge">
|
<el-radio :label="1">是</el-radio>
|
<el-radio :label="0">否</el-radio>
|
</el-radio-group>
|
</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>
|
|
<AuthDetail ref="authDetail" :enterpriseId="enterpriseId" @getinfo="getUserList"></AuthDetail>
|
<div style="clear: both;"/>
|
</div>
|
</template>
|
|
<script>
|
import { mapGetters } from 'vuex'
|
import { saleUserList, createUser, deleteUser, updateUser, 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 AuthDetail from "./components/authDetail";
|
import {getCityListData, getProvinceListData} from "../../api/area";
|
export default {
|
name: 'userinfo',
|
components: {AuthDetail},
|
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
|
},
|
parseStatus(value) {
|
if (value == 1) {
|
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 += '-全部区县';
|
}
|
if (i == 3){
|
guanxia += '-全部街道';
|
}
|
if (i == 4){
|
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 === '') {
|
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,
|
userData: null,
|
listLoading: true,
|
queryForm: {
|
username: '',
|
company:'',
|
department:'',
|
job:'',
|
city:'',
|
province:'',
|
district:'',
|
safetySuperVision:''
|
},
|
safetySuperVisionList:[
|
{ id:'烟花爆竹批发经营',name:'烟花爆竹批发经营' },
|
{ id:'烟花爆竹生产',name:'烟花爆竹生产' },
|
{ id:'烟花爆竹零售经营(短期)',name:'烟花爆竹零售经营(短期)' },
|
{ id:'烟花爆竹零售经营(长期)',name:'烟花爆竹零售经营(长期)' },
|
],
|
dataForm: {
|
id: '',
|
username: '',
|
password: '',
|
email: '',
|
phone: '',
|
mobile: '',
|
company: '',
|
department: '',
|
province: '',
|
city: '',
|
area: '',
|
town: '',
|
community: '',
|
type:'',
|
job:'',
|
disableocr: null,
|
ischarge: null
|
},
|
enterpriseId:'',
|
authDialogVisible:false,
|
importDialogFormVisible: false,
|
importDisabled: false,
|
dialogFormVisible: 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' }]
|
},
|
provinceList:[],
|
cityList:[],
|
areaList:[],
|
townList:[],
|
communityList:[],
|
districtList:[],
|
dialogUserRoleFormVisible: false,
|
userRoleDataForm: {
|
userRoles: [],
|
userId: ''
|
},
|
userRoleDataFormRules: {
|
userRoles: [{ type: 'array', required: true, message: '角色不能为空', trigger: 'change' }]
|
},
|
roleList: [],
|
passwordType: 'password',
|
confirmPasswordType: 'password',
|
templateRadio: '',
|
instituteList: [],
|
departmentList: [],
|
isAdmin: false
|
}
|
},
|
created() {
|
this.getUserList()
|
this.getProvince()
|
const roles = JSON.parse(Cookies.get('roles'))
|
if(roles.find(i=>i.name == '管理员')){
|
this.isAdmin = true
|
}else{
|
this.isAdmin = false
|
}
|
},
|
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
|
params['safetySuperVision'] = _this.queryForm.safetySuperVision
|
if (_this.queryForm.username) {
|
params['username'] = _this.queryForm.username
|
}
|
if (_this.queryForm.company) {
|
params['company'] = _this.queryForm.company
|
}
|
if (_this.queryForm.department) {
|
params['department'] = _this.queryForm.department
|
}
|
if (_this.queryForm.job) {
|
params['job'] = _this.queryForm.job
|
}
|
if (_this.queryForm.province) {
|
params['province'] = _this.queryForm.province
|
}
|
if (_this.queryForm.city) {
|
params['city'] = _this.queryForm.city
|
}
|
if (_this.queryForm.district) {
|
params['area'] = _this.queryForm.district
|
}
|
_this.listLoading = true
|
saleUserList(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
|
}
|
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: '',
|
town: '',
|
community: '',
|
type: '',
|
job: '',
|
disableocr: null,
|
ischarge: null
|
}
|
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
|
}
|
}
|
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.town = row.town
|
this.dataForm.community = row.community
|
this.dataForm.job = row.job
|
this.dataForm.type = row.type
|
this.dataForm.disableocr = row.disableocr
|
this.dataForm.ischarge = row.ischarge
|
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
|
params['town'] = row.town
|
params['community'] = row.community
|
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;
|
this.townList = res.result.townList;
|
this.communityList = res.result.communityList;
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
})
|
|
},
|
|
showAuthHandle: function(row) {
|
this.$refs.authDetail.open(row.id)
|
},
|
|
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
|
},
|
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')
|
importDistrict(formData)
|
.then((response) => {
|
const res = response.data
|
if (res.code == 200) {
|
_this.importDialogFormVisible = false
|
_this.$message({
|
message: '导入成功',
|
type: 'success'
|
})
|
} 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.district = ''
|
this.queryForm.street = ''
|
this.queryForm.committee = ''
|
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.district = ''
|
this.queryForm.street = ''
|
this.queryForm.committee = ''
|
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 === 'district'){
|
this.queryForm.street = ''
|
this.queryForm.committee = ''
|
this.areaListQuery = {
|
type: 4,
|
parenttype: 3,
|
parentname: this.queryForm.district,
|
}
|
let res = await getCityListData(this.areaListQuery)
|
if(res.data.code === "200"){
|
this.streetList = res.data.result
|
}
|
}else if(value === 'street'){
|
this.queryForm.committee = ''
|
this.areaListQuery = {
|
type: 5,
|
parenttype: 4,
|
parentname: this.queryForm.street,
|
}
|
let res = await getCityListData(this.areaListQuery)
|
if(res.data.code === "200"){
|
this.committeeList = res.data.result
|
}
|
}
|
},//市、镇、街道、委员会,
|
async exportToExcel(){
|
const _this = this
|
const params = {}
|
if (_this.queryForm.username)
|
params['username'] = _this.queryForm.username
|
if (_this.queryForm.company)
|
params['company'] = _this.queryForm.company
|
if (_this.queryForm.department)
|
params['department'] = _this.queryForm.department
|
if (_this.queryForm.job)
|
params['job'] = _this.queryForm.job
|
if (_this.queryForm.province)
|
params['province'] = _this.queryForm.province
|
if (_this.queryForm.city)
|
params['city'] = _this.queryForm.city
|
if (_this.queryForm.district)
|
params['area'] = _this.queryForm.district
|
params['safetySuperVision'] = _this.queryForm.safetySuperVision
|
params['pageIndex'] = 1
|
params['pageSize'] = 99999
|
let res = await saleUserList(params)
|
if(res.data.code === '200'){
|
if(res.data.result === null ||res.data.result === [] || res.data.result.length === 0){
|
_this.$message({
|
type:'warning',
|
message:'无数据可导出'
|
})
|
}else {
|
let allData = res.data.result.result
|
|
import('@/vendor/Export2Excel').then((excel) => {
|
const tHeader = [
|
'用户名',
|
'单位',
|
'企业类型',
|
'所在地区',
|
'授权码个数',
|
'授权码'
|
]
|
const filterVal = [
|
'username',
|
'company',
|
'safetysupervision',
|
'area',
|
'size',
|
'code',
|
]
|
const data = allData.map(item=>{
|
return [item.username,
|
item.company,
|
item.safetysupervision,
|
[item.province,item.city,item.area,item.town,item.community].filter(it=>it!= null &&it !== '' ).join('-'),
|
item.authorizationCodes.filter(it=>it.status === 1).length,
|
item.authorizationCodes.filter(it=>it.status === 1).map(it=>{return it.authcode}).join("、")]
|
})
|
excel.export_json_to_excel({
|
header: tHeader,
|
data,
|
filename: '终端用户'
|
})
|
})
|
}
|
}else{
|
_this.$message({
|
message:res.data.message,
|
type:'warning'
|
})
|
}
|
|
},
|
formatJson(filterVal, jsonData) {
|
return jsonData.map(v =>
|
filterVal.map(j => {
|
return v[j];
|
})
|
);
|
},
|
}
|
}
|
</script>
|