Browse Source

全成员管理

master
wanggongfeng 6 years ago
parent
commit
8995537ea4
  1. 103
      src/views/modules/master/master-user.vue
  2. 59
      src/views/modules/master/masteruserrelation-add-or-update.vue
  3. 147
      src/views/modules/master/masteruserrelation-add.vue
  4. 111
      src/views/modules/master/masteruserrelation.vue
  5. 29
      src/views/modules/master/masteruserrelationroute.vue

103
src/views/modules/master/master-user.vue

@ -0,0 +1,103 @@
<template>
<el-dialog :visible.sync="visible"
title="选择书记"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="80%"
height="90%">
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item label="用户名">
<el-input v-model="dataForm.username" :placeholder="$t('user.username')" clearable></el-input>
</el-form-item>
<el-form-item label="真实姓名">
<el-input v-model="dataForm.realname" placeholder='真实姓名' clearable></el-input>
</el-form-item>
<el-form-item label="邮箱">
<el-input v-model="dataForm.email" placeholder="邮箱" clearable></el-input>
</el-form-item>
<el-form-item label="手机号">
<el-input v-model="dataForm.mobile" placeholder="手机号" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" max-height="450" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="username" :label="$t('user.username')" sortable="custom" header-align="center" align="center"></el-table-column>
<el-table-column prop="realName" :label="$t('user.realName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="deptName" :label="$t('user.deptName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="email" :label="$t('user.email')" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" :label="$t('user.mobile')" sortable="custom" header-align="center" align="center"></el-table-column>
<el-table-column prop="status" :label="$t('user.status')" sortable="custom" header-align="center" align="center">
<template slot-scope="scope">
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{ $t('user.status0') }}</el-tag>
<el-tag v-else size="small" type="success">{{ $t('user.status1') }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="createDate" :label="$t('user.createDate')" sortable="custom" header-align="center" align="center" width="180"></el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<el-form>
<el-button type="primary" @click="getInfo()" style="margin-left:48%">{{"确定"}}</el-button>
</el-form>
</div>
</el-card>
</el-dialog>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/sys/user/page',
getDataListIsPage: true,
deleteURL: '/sys/user',
deleteIsBatch: true,
exportURL: '/sys/user/export'
},
visible: false,
dataForm: {
username: '',
realname: '',
mobile: '',
email: ''
},
responseData: []
}
},
methods: {
//
init () {
this.visible = true
this.$nextTick(() => {
this.getDataList()
})
},
handleSelectionChange (val) {
this.responseData = val
},
getInfo () {
if (this.responseData.length === 0) {
alert('请选择书记!')
return
}
this.$emit('connectResponse', this.responseData)
this.visible = false
}
}
}
</script>

59
src/views/modules/master/masteruserrelation-add-or-update.vue

@ -1,56 +1,29 @@
<template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'">
<el-form-item label="用户ID" prop="userId">
<el-input v-model="dataForm.userId" placeholder="用户ID"></el-input>
</el-form-item>
<el-form-item label="用户名" prop="nickname">
<el-input v-model="dataForm.nickname" placeholder="用户名"></el-input>
</el-form-item>
<el-form-item label="用户头像" prop="userAvatar">
<el-input v-model="dataForm.userAvatar" placeholder="用户头像"></el-input>
<el-input v-model="dataForm.userAvatar" placeholder="" disabled></el-input>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>
<el-input v-model="dataForm.mobile" placeholder="" disabled></el-input>
</el-form-item>
<el-form-item label="真实姓名" prop="realName">
<el-input v-model="dataForm.realName" placeholder="真实姓名"></el-input>
<el-input v-model="dataForm.realName" placeholder="" disabled></el-input>
</el-form-item>
<el-form-item label="登录名" prop="loginName">
<el-input v-model="dataForm.loginName" placeholder="登录名"></el-input>
</el-form-item>
<el-form-item label="所属部门" prop="deptId">
<el-input v-model="dataForm.deptId" placeholder="所属部门"></el-input>
</el-form-item>
<el-form-item label="所属部门名称" prop="deptName">
<el-input v-model="dataForm.deptName" placeholder="所属部门名称"></el-input>
</el-form-item>
<el-form-item label="管理标识" prop="manageFlag">
<el-input v-model="dataForm.manageFlag" placeholder="管理标识"></el-input>
</el-form-item>
<el-form-item label="乐观锁" prop="revision">
<el-input v-model="dataForm.revision" placeholder="乐观锁"></el-input>
</el-form-item>
<el-form-item label="删除标记 0:未删除,1:已删除" prop="delFlag">
<el-input v-model="dataForm.delFlag" placeholder="删除标记 0:未删除,1:已删除"></el-input>
<el-input v-model="dataForm.loginName" placeholder="" disabled></el-input>
</el-form-item>
<el-form-item label="创建人" prop="createdBy">
<el-input v-model="dataForm.createdBy" placeholder="创建人"></el-input>
<el-form-item label="所属部门" prop="deptName">
<el-input v-model="dataForm.deptName" placeholder="" disabled></el-input>
</el-form-item>
<el-form-item label="创建时间" prop="createdTime">
<el-input v-model="dataForm.createdTime" placeholder="创建时间"></el-input>
</el-form-item>
<el-form-item label="更新人" prop="updatedBy">
<el-input v-model="dataForm.updatedBy" placeholder="更新人"></el-input>
</el-form-item>
<el-form-item label="更新时间" prop="updatedTime">
<el-input v-model="dataForm.updatedTime" placeholder="更新时间"></el-input>
</el-form-item>
<el-form-item label="" prop="untitled">
<el-input v-model="dataForm.untitled" placeholder=""></el-input>
</el-form-item>
<el-form-item label="" prop="untitled1">
<el-input v-model="dataForm.untitled1" placeholder=""></el-input>
<el-form-item label="管理标识" prop="manageFlag">
<el-select v-model="dataForm.manageFlag" placeholder="" disabled>
<el-option v-for="item in manageFlagArr" :key="item.dictValue" :label="item.dictName" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
</el-form>
<template slot="footer">
@ -85,7 +58,11 @@ export default {
updatedTime: '',
untitled: '',
untitled1: ''
}
},
manageFlagArr: [
{ dictValue: '1', dictName: '管理员' },
{ dictValue: '0', dictName: '群成员' }
]
}
},
computed: {
@ -157,7 +134,7 @@ export default {
},
//
getInfo () {
this.$http.get(`//masteruserrelation/${this.dataForm.id}`).then(({ data: res }) => {
this.$http.get(`/cloudAnalysis/masteruserrelation/${this.dataForm.id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
@ -173,7 +150,7 @@ export default {
if (!valid) {
return false
}
this.$http[!this.dataForm.id ? 'post' : 'put']('//masteruserrelation/', this.dataForm).then(({ data: res }) => {
this.$http[!this.dataForm.id ? 'post' : 'put']('/cloudAnalysis/masteruserrelation/', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}

147
src/views/modules/master/masteruserrelation-add.vue

@ -0,0 +1,147 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-__masteruserrelation}">
<el-form :inline="true" ref="dataForm" :model="dataForm" @keyup.enter.native="dataFormSubmitHandle()">
<el-form-item>
<el-button type="primary" @click="backToUserRelationList">{{"返回"}}</el-button>
<el-button type="primary" :disabled="isAble" @click="dataFormSubmitHandle()">{{"确定"}}</el-button>
</el-form-item>
<el-row>
<div v-for="(item, index) in this.formData" :key="index">
<div style="text-align: left;">{{"书记"+(index+1)+":"}}</div>
<el-row>
<el-form-item label="选择书记:" prop="deptName">
<el-input v-model="item.deptName"
:disabled="true"
type="text"
clearable
style="width: 30rem;">
</el-input>&emsp;
<el-input v-model="item.username"
:disabled="true"
type="text"
clearable
style="width: 10rem;">
</el-input> &emsp;
<el-button @click="selectUserMethod(index)">{{"选择书记"}}</el-button>&emsp;&emsp;
</el-form-item>
<el-form-item label="群内昵称:" prop="nickName">
<el-input v-model="item.nickName"
type="text"
clearable
style="width: 30rem;" @blur="nameInputBlur(index,$event)">
</el-input>
</el-form-item>
</el-row>
</div>
</el-row>
</el-form>
<!-- 弹窗, 新增 / 修改 -->
<master-user v-if="masterUserVisible" ref="masterUser" @refreshDataList="getDataList" v-on:connectResponse="connectResponse"></master-user>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import MasterUser from './master-user'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/cloudAnalysis/masteruserrelation/page',
getDataListIsPage: true,
deleteURL: '/cloudAnalysis/masteruserrelation',
deleteIsBatch: true
},
dataForm: {
id: ''
},
masterUserVisible: false,
isAble: false,
formData: [{ deptName: '', username: '', nickName: '' }],
updateIndex: 0
}
},
components: {
MasterUser
},
methods: {
//
backToUserRelationList () {
this.$emit('refreshDataList')
this.$parent.selectComponent = 'Masteruserrelation'
this.$router.push({ path: '/master-masteruserrelationroute' })
},
//
selectUserMethod (index) {
this.updateIndex = index
this.masterUserVisible = true
this.$nextTick(() => {
this.$refs.masterUser.init()
})
},
// dialog
connectResponse (connectResponse) {
for (var i = 0; i < connectResponse.length; i++) {
let item = connectResponse[i]
let nickname = item.username
this.$set(item, 'nickName', nickname)
}
if (connectResponse.length === 1) {
this.formData.splice(this.updateIndex, 1, connectResponse[0])
} else {
this.formData = connectResponse
}
},
//
nameInputBlur (index, event) {
if (event.target.value === null || event.target.value === '') {
alert('昵称不能为空!')
return
}
this.formData[index].nickName = event.target.value
},
//
dataFormSubmitHandle () {
if (this.formData.length < 1 || this.formData[0].username === '') {
alert('请选择书记!')
return false
}
//
for (var i = 0; i < this.formData.length; i++) {
if (this.formData[i].nickName === '' || this.formData[i].nickName === null) {
alert('存在空昵称,请完善!')
return false
}
}
this.isAble = true
console.log(this.formData)
let postData = {
aformDataParams: this.formData
}
this.$http['post'](
'/cloudAnalysis/masteruserrelation/addMasterUserRelation',
postData
).then(({ data: res }) => {
if (res.code !== 0) {
this.isAble = false
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.isAble = false
this.$emit('refreshDataList')
//
this.formData = [{ deptName: '', username: '', nickName: '' }]
}
})
}).catch(() => {})
}
}
}
</script>

111
src/views/modules/master/masteruserrelation.vue

@ -2,43 +2,69 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-__masteruserrelation}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<!-- <el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input>
</el-form-item> -->
<el-form-item label="群内昵称" prop="nickname">
<el-input v-model="dataForm.nickname" placeholder="群内昵称" clearable></el-input>
</el-form-item>
<el-form-item label="真实姓名" prop="realName">
<el-input v-model="dataForm.realName" placeholder="真实姓名" clearable></el-input>
</el-form-item>
<el-form-item label="时间"
prop="startTime">
<el-date-picker v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="至"
label-width="25px"
prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission(':masteruserrelation:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
<el-button type="primary" @click="addHandle()">{{ $t('add') }}</el-button>
</el-form-item>
<!-- <el-form-item>
<el-button type="primary" @click="addOrUpdateHandle()">测试按钮-新增</el-button>
</el-form-item> -->
<el-form-item>
<el-button v-if="$hasPermission(':masteruserrelation:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="id" label="主键" header-align="center" align="center"></el-table-column>
<el-table-column prop="userId" label="用户ID" header-align="center" align="center"></el-table-column>
<el-table-column prop="nickname" label="用户名" header-align="center" align="center"></el-table-column>
<el-table-column prop="userAvatar" label="用户头像" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="手机号" header-align="center" align="center"></el-table-column>
<!-- <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> -->
<el-table-column label="序号" header-align="center" align="center" width="50px">
<template slot-scope="scope">
{{scope.$index+1}}
</template>
</el-table-column>
<el-table-column prop="nickname" label="成员群内昵称" header-align="center" align="center"></el-table-column>
<el-table-column prop="manageFlag" label="成员身份" header-align="center" align="center" :formatter="manageFlagFormat"></el-table-column>
<el-table-column prop="realName" label="真实姓名" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="电话" header-align="center" align="center"></el-table-column>
<el-table-column prop="deptName" label="所属部门" header-align="center" align="center"></el-table-column>
<el-table-column prop="loginName" label="登录名" header-align="center" align="center"></el-table-column>
<el-table-column prop="deptId" label="所属部门" header-align="center" align="center"></el-table-column>
<el-table-column prop="deptName" label="所属部门名称" header-align="center" align="center"></el-table-column>
<el-table-column prop="manageFlag" label="管理标识" header-align="center" align="center"></el-table-column>
<el-table-column prop="revision" label="乐观锁" header-align="center" align="center"></el-table-column>
<el-table-column prop="delFlag" label="删除标记 0:未删除,1:已删除" header-align="center" align="center"></el-table-column>
<el-table-column prop="createdBy" label="创建人" header-align="center" align="center"></el-table-column>
<el-table-column prop="createdTime" label="创建时间" header-align="center" align="center"></el-table-column>
<el-table-column prop="updatedBy" label="更新人" header-align="center" align="center"></el-table-column>
<el-table-column prop="updatedTime" label="更新时间" header-align="center" align="center"></el-table-column>
<el-table-column prop="untitled" label="" header-align="center" align="center"></el-table-column>
<el-table-column prop="untitled1" label="" header-align="center" align="center"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<el-table-column prop="createdTime" label="添加时间" header-align="center" align="center"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="170">
<template slot-scope="scope">
<el-button v-if="$hasPermission(':masteruserrelation:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button v-if="$hasPermission(':masteruserrelation:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
<el-button v-if="scope.row.manageFlag == '1'" type="text" size="small" @click="updateManageFlagHandle(scope.row.id)">解除管理员</el-button>
<el-button v-if="scope.row.manageFlag == '0'" type="text" size="small" @click="updateManageFlagHandle(scope.row.id)">设置管理员</el-button>
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
@ -65,9 +91,9 @@ export default {
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '//masteruserrelation/page',
getDataListURL: '/cloudAnalysis/masteruserrelation/page',
getDataListIsPage: true,
deleteURL: '//masteruserrelation',
deleteURL: '/cloudAnalysis/masteruserrelation',
deleteIsBatch: true
},
dataForm: {
@ -77,6 +103,43 @@ export default {
},
components: {
AddOrUpdate
},
created: function () {
this.getDataList()
},
methods: {
addHandle () {
this.$parent.selectComponent = 'MasteruserrelationAdd'
this.$router.push({ path: '/master-masteruserrelationroute' })
},
manageFlagFormat (row, column) {
if (row.manageFlag === '0') {
return '群成员'
} else {
return '管理员'
}
},
updateManageFlagHandle (id) {
this.$confirm(this.$t('prompt.info', { 'handle': '更改成员身份' }), this.$t('prompt.title'), {
confirmButtonText: this.$t('confirm'),
cancelButtonText: this.$t('cancel'),
type: 'warning'
}).then(() => {
this.$http.get(`/cloudAnalysis/masteruserrelation/updateManageFlag/` + id).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.getDataList()
}
})
}).catch(() => { })
}).catch(() => { })
}
}
}
</script>

29
src/views/modules/master/masteruserrelationroute.vue

@ -0,0 +1,29 @@
<template>
<keep-alive include="evaluatedept">
<component :is="selectComponent"></component>
</keep-alive>
</template>
<script>
import Masteruserrelation from './masteruserrelation'
import MasteruserrelationAdd from './masteruserrelation-add'
export default {
data () {
return {
selectComponent: Masteruserrelation
}
},
components: {
Masteruserrelation,
MasteruserrelationAdd
},
methods: {
init () {
this.selectComponent = Masteruserrelation
}
}
}
</script>
<style lang="scss" scoped>
</style>
Loading…
Cancel
Save