mirror of
https://github.com/Teamlinker/Teamlinker.git
synced 2025-06-03 03:00:17 +00:00
团队更新
This commit is contained in:
parent
3bd019eaa4
commit
95cdab1b83
@ -4,7 +4,7 @@
|
|||||||
* @Author: gqwu
|
* @Author: gqwu
|
||||||
* @Date: 2021-10-09 11:08:42
|
* @Date: 2021-10-09 11:08:42
|
||||||
* @LastEditors: gqwu
|
* @LastEditors: gqwu
|
||||||
* @LastEditTime: 2021-12-01 16:20:59
|
* @LastEditTime: 2021-12-01 19:43:24
|
||||||
*/
|
*/
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
@ -50,3 +50,37 @@ export function teamMembers(params) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//创建团队成员
|
||||||
|
export function createMemberTemp(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/team/add_member',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 修改团队成员权限
|
||||||
|
export function updateMemberTemp(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/team/role',
|
||||||
|
method: 'put',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 团队成员权限列表
|
||||||
|
|
||||||
|
export function teamRoles(params) {
|
||||||
|
return request({
|
||||||
|
url: '/api/team/roles',
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 删除团队成员
|
||||||
|
|
||||||
|
export function removeMemberTemp(params) {
|
||||||
|
return request({
|
||||||
|
url: '/api/team/remove_member',
|
||||||
|
method: 'delete',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
@ -4,7 +4,7 @@
|
|||||||
* @Author: gqwu
|
* @Author: gqwu
|
||||||
* @Date: 2021-10-09 12:19:05
|
* @Date: 2021-10-09 12:19:05
|
||||||
* @LastEditors: gqwu
|
* @LastEditors: gqwu
|
||||||
* @LastEditTime: 2021-11-21 21:59:02
|
* @LastEditTime: 2021-12-01 18:27:16
|
||||||
*/
|
*/
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { MessageBox, Message } from 'element-ui'
|
import { MessageBox, Message } from 'element-ui'
|
||||||
@ -64,17 +64,17 @@ service.interceptors.response.use(
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
|
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
|
||||||
if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
|
if (res.code === 1002) {
|
||||||
// to re-login
|
// to re-login
|
||||||
MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
|
// MessageBox.confirm('需要重新登录', '确认退出', {
|
||||||
confirmButtonText: 'Re-Login',
|
// confirmButtonText: 'Re-Login',
|
||||||
cancelButtonText: 'Cancel',
|
// cancelButtonText: 'Cancel',
|
||||||
type: 'warning'
|
// type: 'warning'
|
||||||
}).then(() => {
|
// }).then(() => {
|
||||||
store.dispatch('user/resetToken').then(() => {
|
// store.dispatch('user/resetToken').then(() => {
|
||||||
location.reload()
|
// location.reload()
|
||||||
})
|
// })
|
||||||
})
|
// })
|
||||||
}
|
}
|
||||||
return Promise.reject(new Error(res.msg || 'Error'))
|
return Promise.reject(new Error(res.msg || 'Error'))
|
||||||
} else {
|
} else {
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* @Author: gqwu
|
* @Author: gqwu
|
||||||
* @Date: 2021-10-09 12:19:05
|
* @Date: 2021-10-09 12:19:05
|
||||||
* @LastEditors: gqwu
|
* @LastEditors: gqwu
|
||||||
* @LastEditTime: 2021-12-01 16:22:43
|
* @LastEditTime: 2021-12-01 19:47:42
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
@ -109,7 +109,102 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<el-dialog background title="团队成员" :visible.sync="dialogMemberVisible">
|
<el-dialog background title="团队成员" :visible.sync="dialogMemberVisible">
|
||||||
团队成员
|
<el-row style="padding-bottom: 10px">
|
||||||
|
<el-button type="primary" size="small" @click="handleMemberCreate"
|
||||||
|
>新增成员</el-button
|
||||||
|
>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table
|
||||||
|
:data="memberList"
|
||||||
|
element-loading-text="Loading"
|
||||||
|
border
|
||||||
|
fit
|
||||||
|
highlight-current-row
|
||||||
|
>
|
||||||
|
<el-table-column align="center" label="序号" width="95">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ scope.$index + 1 }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="姓名">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ scope.row.name }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="photo">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ scope.row.photo }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="权限">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ scope.row.role.name }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
width="150"
|
||||||
|
fixed="right"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
>
|
||||||
|
<template slot-scope="{ row, $index }">
|
||||||
|
<el-button type="text" size="mini" @click="handleMmberUpdate(row)">
|
||||||
|
修改权限
|
||||||
|
</el-button>
|
||||||
|
<el-button type="text" size="mini" @click="handleMemberRemove(row)">
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog :title="memberTitle" :visible.sync="dialogMemberFormVisible">
|
||||||
|
<el-form
|
||||||
|
ref="dataMemberForm"
|
||||||
|
:rules="memberrules"
|
||||||
|
label-position="left"
|
||||||
|
label-width="70px"
|
||||||
|
style="width: 400px; margin-left: 50px"
|
||||||
|
>
|
||||||
|
<el-form-item label="用户">
|
||||||
|
<el-select
|
||||||
|
v-model="tempMember.userId"
|
||||||
|
placeholder="请选择"
|
||||||
|
:disabled="userDisabled"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in usersOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.username"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="角色">
|
||||||
|
<el-select v-model="tempMember.roleId" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="item in rolesOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="dialogMemberFormVisible = false"> 取消 </el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click="userDisabled ? updateMemberData() : createMemberData()"
|
||||||
|
>
|
||||||
|
确定
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -121,12 +216,20 @@ import {
|
|||||||
editTemp,
|
editTemp,
|
||||||
removeTemp,
|
removeTemp,
|
||||||
teamMembers,
|
teamMembers,
|
||||||
|
teamRoles,
|
||||||
|
removeMemberTemp,
|
||||||
|
createMemberTemp,
|
||||||
|
updateMemberTemp,
|
||||||
} from "@/api/team";
|
} from "@/api/team";
|
||||||
|
import { getList as getMemberList } from "@/api/user";
|
||||||
import { fromTime } from "@/utils/utils";
|
import { fromTime } from "@/utils/utils";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: null,
|
list: null,
|
||||||
|
memberList: null,
|
||||||
|
rolesOptions: null,
|
||||||
|
usersOptions: null,
|
||||||
listLoading: true,
|
listLoading: true,
|
||||||
textMap: {
|
textMap: {
|
||||||
update: "编辑",
|
update: "编辑",
|
||||||
@ -137,6 +240,7 @@ export default {
|
|||||||
rules: {
|
rules: {
|
||||||
name: [{ required: true, message: "名称必填", trigger: "blur" }],
|
name: [{ required: true, message: "名称必填", trigger: "blur" }],
|
||||||
},
|
},
|
||||||
|
memberrules: {},
|
||||||
temp: {
|
temp: {
|
||||||
teamId: undefined,
|
teamId: undefined,
|
||||||
name: "",
|
name: "",
|
||||||
@ -148,6 +252,10 @@ export default {
|
|||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
pageCount: 0,
|
pageCount: 0,
|
||||||
},
|
},
|
||||||
|
dialogMemberFormVisible: false,
|
||||||
|
tempMember: { userId: "", roleId: "" },
|
||||||
|
memberTitle: "",
|
||||||
|
userDisabled: true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -239,14 +347,113 @@ export default {
|
|||||||
this.dialogVisible = false;
|
this.dialogVisible = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
fetchMemberData() {
|
||||||
|
teamMembers({
|
||||||
|
teamId: this.temp.teamId,
|
||||||
|
}).then((res) => {
|
||||||
|
this.memberList = res.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
handleTeamInfo(row) {
|
handleTeamInfo(row) {
|
||||||
this.dialogMemberVisible = true;
|
this.dialogMemberVisible = true;
|
||||||
teamMembers({ teamId: "" }).then((res) => {});
|
this.temp.teamId = row.id;
|
||||||
|
this.fetchMemberData();
|
||||||
},
|
},
|
||||||
pageCurChange(page) {
|
pageCurChange(page) {
|
||||||
this.page.pageIndex = page - 1;
|
this.page.pageIndex = page - 1;
|
||||||
this.fetchData();
|
this.fetchData();
|
||||||
},
|
},
|
||||||
|
getRoles() {
|
||||||
|
teamRoles({ teamId: this.temp.teamId }).then((res) => {
|
||||||
|
this.rolesOptions = res.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getUsers() {
|
||||||
|
getMemberList({
|
||||||
|
keyword: "",
|
||||||
|
page: 0,
|
||||||
|
size: 1000,
|
||||||
|
}).then((res) => {
|
||||||
|
this.usersOptions = res.data.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleMemberCreate() {
|
||||||
|
this.tempMember.userId = "";
|
||||||
|
this.tempMember.roleId = "";
|
||||||
|
this.memberTitle = "新增成员";
|
||||||
|
this.userDisabled = false;
|
||||||
|
this.dialogMemberFormVisible = true;
|
||||||
|
this.getRoles();
|
||||||
|
this.getUsers();
|
||||||
|
},
|
||||||
|
createMemberData() {
|
||||||
|
createMemberTemp({
|
||||||
|
teamId: this.temp.teamId,
|
||||||
|
userId: this.tempMember.userId,
|
||||||
|
roleId: this.tempMember.roleId,
|
||||||
|
}).then((res) => {
|
||||||
|
this.$notify({
|
||||||
|
title: "Success",
|
||||||
|
message: "添加成功",
|
||||||
|
type: "success",
|
||||||
|
duration: 2000,
|
||||||
|
});
|
||||||
|
this.dialogMemberFormVisible = false;
|
||||||
|
this.fetchMemberData();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleMemberRemove(row) {
|
||||||
|
this.$confirm("确定, 是否继续?", "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.removeMemberData(row);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.$message({
|
||||||
|
type: "info",
|
||||||
|
message: "已取消删除",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
removeMemberData(row) {
|
||||||
|
removeMemberTemp({ teamId: this.temp.teamId, userId: row.id }).then(
|
||||||
|
(res) => {
|
||||||
|
this.fetchMemberData();
|
||||||
|
this.$message({
|
||||||
|
type: "success",
|
||||||
|
message: "删除成功!",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
handleMmberUpdate(row) {
|
||||||
|
this.memberTitle = "修改权限";
|
||||||
|
this.userDisabled = true;
|
||||||
|
this.dialogMemberFormVisible = true;
|
||||||
|
this.getUsers();
|
||||||
|
this.getRoles();
|
||||||
|
this.tempMember.userId = row.id;
|
||||||
|
this.tempMember.roleId = "";
|
||||||
|
},
|
||||||
|
updateMemberData() {
|
||||||
|
updateMemberTemp({
|
||||||
|
teamId: this.temp.teamId,
|
||||||
|
userId: this.tempMember.userId,
|
||||||
|
roleId: this.tempMember.roleId,
|
||||||
|
}).then((res) => {
|
||||||
|
this.$notify({
|
||||||
|
title: "Success",
|
||||||
|
message: "修改成功",
|
||||||
|
type: "success",
|
||||||
|
duration: 2000,
|
||||||
|
});
|
||||||
|
this.dialogMemberFormVisible = false;
|
||||||
|
this.fetchMemberData();
|
||||||
|
});
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
Reference in New Issue
Block a user