|
@@ -0,0 +1,359 @@
|
|
|
|
+<template>
|
|
|
|
+ <el-container>
|
|
|
|
+ <el-aside width="150pt">
|
|
|
|
+ <el-tree
|
|
|
|
+ style="background: #E9EEF3; height:110vh; padding:15%;"
|
|
|
|
+ :data="bizOptions"
|
|
|
|
+ node-key="id"
|
|
|
|
+ undraggable
|
|
|
|
+ :highlight-current="true"
|
|
|
|
+ @node-click="clickFun"
|
|
|
|
+ />
|
|
|
|
+ </el-aside>
|
|
|
|
+ <el-container>
|
|
|
|
+ <el-header style="height: auto; text-align:left">
|
|
|
|
+ <div style="margin: 4%;">
|
|
|
|
+ <el-input v-model="form.name" clearable filterable placeholder="姓名" style="width:22%;margin-right:5px;" />
|
|
|
|
+ <el-input v-model="form.email" clearable filterable placeholder="邮箱" style="width:22%;margin-right:5px;" />
|
|
|
|
+ <el-select v-model="form.role" width="200" clearable placeholder="请选择角色">
|
|
|
|
+ <el-option v-for="item in roleStrings" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
|
+ </el-select>
|
|
|
|
+ <el-button type="primary" style="margin-left:8%;" @click="queryList(form)">查询</el-button>
|
|
|
|
+ <el-button type="primary" @click="createGetShow">新增</el-button>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <el-dialog :title="titleName" width="40%" :visible.sync="dialogFormVisible">
|
|
|
|
+ <el-form ref="MemberData" :model="MemberData" status-icon :rules="serviceDataRules" label-width="60px">
|
|
|
|
+ <el-form-item v-show="hide" label="id" prop="Id" :label-width="formLabelWidths">
|
|
|
|
+ <el-input v-model="MemberData.id" autocomplete="off" style="width:75%" :disabled="true" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="姓名" prop="name" :label-width="formLabelWidths">
|
|
|
|
+ <el-input v-model="MemberData.name" autocomplete="off" style="width:75%" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="邮箱" prop="email" :label-width="formLabelWidths">
|
|
|
|
+ <el-input v-model="MemberData.email" autocomplete="off" style="width:75%" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="业务线" prop="bizId" :label-width="formLabelWidths">
|
|
|
|
+ <el-select v-model="MemberData.bizId" placeholder="请选择业务线" style="width:75%">
|
|
|
|
+ <el-option v-for="item in bizOptions" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="角色" prop="role" :label-width="formLabelWidths">
|
|
|
|
+ <el-select v-model="MemberData.role" placeholder="请选择角色" style="width:75%">
|
|
|
|
+ <el-option v-for="item in roleStrings" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="dialogFormVisible = false,clickClose()">关 闭</el-button>
|
|
|
|
+ <el-button v-show="Determine" type="primary" @click="titleName === '新增'?createMembers(MemberData):updateData(MemberData)">确 定</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ </el-header>
|
|
|
|
+ <el-table :data="list" style="width: 100%; height:570vh;" row-key="id" lazy align="center">
|
|
|
|
+ <el-table-column prop="id" label="ID" width="150" align="center"><template slot-scope="scope"><span>{{ scope.row.id }}</span></template></el-table-column>
|
|
|
|
+ <el-table-column prop="name" label="姓名" width="180" align="center"><template slot-scope="scope"><span>{{ scope.row.name }}</span></template> </el-table-column>
|
|
|
|
+ <el-table-column label="team" width="180" align="center"><template slot-scope="scope"><span>{{ scope.row.teamId }}</span></template></el-table-column>
|
|
|
|
+ <el-table-column label="邮箱" width="180" align="center"><template slot-scope="scope"><span>{{ scope.row.email }}</span></template></el-table-column>
|
|
|
|
+ <el-table-column prop="role" label="角色" width="150" align="center"><template slot-scope="scope"><span>{{ scope.row.role }}</span></template></el-table-column>
|
|
|
|
+ <el-table-column label="操作" align="center" min-width="220px" fixed="right">
|
|
|
|
+ <template slot-scope="{row}">
|
|
|
|
+ <el-button size="mini" type="primary" @click="dialogFormVisible = true,queryData(row)">查看</el-button>
|
|
|
|
+ <el-button size="mini" type="primary" @click="dialogFormVisible = true,changeData(row)">编辑</el-button>
|
|
|
|
+ <el-button size="mini" type="primary" @click="deleteCodeData(row)">删除</el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <el-footer>
|
|
|
|
+ <el-pagination :current-page="curIndex" :page-sizes="[5, 10, 20]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" align="center" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
|
|
|
|
+ </el-footer>
|
|
|
|
+ </el-container>
|
|
|
|
+ </el-container>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+import { createMembers, updateMembers, deleteMembers, getMemberList } from '@/api/teamPage.js'
|
|
|
|
+
|
|
|
|
+const operateType = {
|
|
|
|
+ OPER_ADD: 1, // 新增
|
|
|
|
+ OPER_EDIT: 2, // 编辑
|
|
|
|
+ OPER_QUERY: 3 // 查看
|
|
|
|
+}
|
|
|
|
+export default {
|
|
|
|
+ name: 'TeamPage',
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ centerDialogVisible: false,
|
|
|
|
+ dialogFormVisible: false,
|
|
|
|
+ Determine: true,
|
|
|
|
+ hide: true,
|
|
|
|
+ radioButton: 0,
|
|
|
|
+ titleName: '',
|
|
|
|
+ parameter: '',
|
|
|
|
+ startId: '',
|
|
|
|
+ startName: '',
|
|
|
|
+ parentFolderId: '',
|
|
|
|
+ formLabelWidths: '120px',
|
|
|
|
+ roleStrings: [{ value: 1, name: 'rd' }, { value: 2, name: 'qa' }, { value: 3, name: 'pm' }, { value: 4, name: 'other' }],
|
|
|
|
+ bizOptions: [{ label: '滴滴代驾', value: 261 }, { label: '企业级', value: 100 }, { label: 'prado', value: 330 }, { label: 'carbo', value: 331 }, { label: '海马', value: 309 }, { label: '万象', value: 102 }],
|
|
|
|
+ userInformation: localStorage.getItem('username'),
|
|
|
|
+ userNames: localStorage.getItem('realname'),
|
|
|
|
+ bizId: '',
|
|
|
|
+ curIndex: 1, // 初始页
|
|
|
|
+ pageSize: 10, // 每页的数据
|
|
|
|
+ total: 0,
|
|
|
|
+ userData: '',
|
|
|
|
+ folderName: '',
|
|
|
|
+ list: [],
|
|
|
|
+ form: {},
|
|
|
|
+ queryListData: {},
|
|
|
|
+ bizData: {},
|
|
|
|
+ MemberData: {
|
|
|
|
+ bizId: '',
|
|
|
|
+ teamId: '',
|
|
|
|
+ email: '',
|
|
|
|
+ role: '',
|
|
|
|
+ name: ''
|
|
|
|
+ },
|
|
|
|
+ formData: {
|
|
|
|
+ bizId: '',
|
|
|
|
+ teamId: '',
|
|
|
|
+ role: '',
|
|
|
|
+ email: '',
|
|
|
|
+ name: ''
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ serviceDataRules: {
|
|
|
|
+ name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
|
|
|
|
+ bizId: [{ required: true, message: '业务线不能为空', trigger: 'change' }],
|
|
|
|
+ teamId: [{ required: true, message: '业务线不能为空', trigger: 'change' }],
|
|
|
|
+ role: [{ required: true, message: '角色不能为空', trigger: 'change' }],
|
|
|
|
+ email: [{ required: true, message: '邮箱不能为空', trigger: 'blur' }]
|
|
|
|
+ },
|
|
|
|
+ defaultProps: {
|
|
|
|
+ children: 'children',
|
|
|
|
+ label: 'label'
|
|
|
|
+ },
|
|
|
|
+ multipleSelection: []
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ created() {
|
|
|
|
+ this.getAllList()
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ methods: {
|
|
|
|
+ updateDetailDialog(type) {
|
|
|
|
+ if (type === operateType.OPER_ADD) {
|
|
|
|
+ this.Determine = true
|
|
|
|
+ this.hide = false
|
|
|
|
+ } else if (type === operateType.OPER_EDIT) {
|
|
|
|
+ this.hide = true
|
|
|
|
+ this.Determine = true
|
|
|
|
+ } else if (type === operateType.OPER_QUERY) {
|
|
|
|
+ this.hide = true
|
|
|
|
+ this.Determine = false
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ handleSizeChange(size) {
|
|
|
|
+ this.pageSize = size
|
|
|
|
+ this.getAllList({
|
|
|
|
+ pageSize: this.pageSize,
|
|
|
|
+ curIndex: this.curIndex
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ handleCurrentChange(curIndex) {
|
|
|
|
+ this.curIndex = curIndex
|
|
|
|
+ this.getAllList({
|
|
|
|
+ pageSize: this.pageSize,
|
|
|
|
+ curIndex: this.curIndex
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ submitForm(formName) {
|
|
|
|
+ this.$refs[formName].validate(valid => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ alert('submit!')
|
|
|
|
+ } else {
|
|
|
|
+ console.log('error submit!!')
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ resetForm(formName) {
|
|
|
|
+ this.$refs[formName].resetFields()
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 全部列表
|
|
|
|
+ getAllList() {
|
|
|
|
+ var indexPage = {
|
|
|
|
+ pageSize: this.pageSize,
|
|
|
|
+ curIndex: this.curIndex
|
|
|
|
+ }
|
|
|
|
+ getMemberList(indexPage).then(res => {
|
|
|
|
+ this.list = res.data
|
|
|
|
+ for (var a of this.list) {
|
|
|
|
+ var b = a.teamId
|
|
|
|
+ for (var c of this.bizOptions) {
|
|
|
|
+ b === c ? b = c.label : ''
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.total = res.total
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 查看成员详情
|
|
|
|
+ queryData(vel) {
|
|
|
|
+ this.titleName = '查看详情'
|
|
|
|
+ this.MemberData = vel
|
|
|
|
+ this.updateDetailDialog(3)
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 查询
|
|
|
|
+ queryList(val) {
|
|
|
|
+ console.log(val)
|
|
|
|
+ getMemberList(val).then(res => {
|
|
|
|
+ this.list = res.data
|
|
|
|
+ // this.form = {}
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ deleteCodeData(e) {
|
|
|
|
+ this.$confirm('确定删除吗?', '提示', {
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ type: 'warning'
|
|
|
|
+ }).then(() => {
|
|
|
|
+ this.handleDelete(e)
|
|
|
|
+ this.$message({ type: 'success', message: '删除成功!' })
|
|
|
|
+ }).catch(() => {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: 'info',
|
|
|
|
+ message: '已取消删除'
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 删除
|
|
|
|
+ handleDelete(e) {
|
|
|
|
+ this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
|
+ deleteMembers(e.id, this.userData).then(response => {
|
|
|
|
+ if (response.code === 200) {
|
|
|
|
+ this.getAllList()
|
|
|
|
+ // this.queryList({ 'teamId': e.teamId })
|
|
|
|
+ this.successFun()
|
|
|
|
+ } else {
|
|
|
|
+ this.errorFun(response.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 编辑
|
|
|
|
+ changeData(vel) {
|
|
|
|
+ console.log(vel)
|
|
|
|
+ this.titleName = '编辑'
|
|
|
|
+ this.MemberData = vel
|
|
|
|
+ this.updateDetailDialog(2)
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ updateData(vel) {
|
|
|
|
+ if (vel === this.MemberData) {
|
|
|
|
+ this.bizData = {
|
|
|
|
+ name: vel.name,
|
|
|
|
+ id: vel.id,
|
|
|
|
+ role: vel.role,
|
|
|
|
+ email: vel.email,
|
|
|
|
+ teamId: vel.bizId,
|
|
|
|
+ bizId: vel.bizId
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ this.bizData = vel
|
|
|
|
+ this.bizData.name = vel.name
|
|
|
|
+ this.bizData.role = vel.role
|
|
|
|
+ this.bizData.email = vel.email
|
|
|
|
+ this.bizData.teamId = vel.teamId
|
|
|
|
+ this.bizData.bizId = vel.bizId
|
|
|
|
+ }
|
|
|
|
+ this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
|
+ this.objData = { teamMembersInfo: this.bizData, user: this.userData }
|
|
|
|
+ updateMembers(this.objData).then(response => {
|
|
|
|
+ if (response.code === 200) {
|
|
|
|
+ this.dialogFormVisible = false
|
|
|
|
+ this.successFun()
|
|
|
|
+ this.getAllList()
|
|
|
|
+ } else {
|
|
|
|
+ this.errorFun()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 新增需提示选择目录
|
|
|
|
+ createGetShow() {
|
|
|
|
+ this.titleName = '新增'
|
|
|
|
+ if (this.startId === '') {
|
|
|
|
+ this.$notify({ title: '提示', message: '请选择目录', duration: 2000 })
|
|
|
|
+ } else {
|
|
|
|
+ this.MemberData = {}
|
|
|
|
+ this.dialogFormVisible = true
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.$refs['MemberData'].clearValidate()
|
|
|
|
+ })
|
|
|
|
+ this.updateDetailDialog(1)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ clickFun(e) {
|
|
|
|
+ console.log(e)
|
|
|
|
+ this.startId = e.value
|
|
|
|
+ this.startName = e.label
|
|
|
|
+ getMemberList({ teamId: e.value }).then(res => {
|
|
|
|
+ this.list = res.data
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ clickClose() {
|
|
|
|
+ this.startId = ''
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 新增
|
|
|
|
+ createMembers(vel) {
|
|
|
|
+ this.$refs['MemberData'].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ if (vel !== '') {
|
|
|
|
+ this.bizData = {
|
|
|
|
+ name: vel.name,
|
|
|
|
+ id: vel.id,
|
|
|
|
+ role: vel.role,
|
|
|
|
+ email: vel.email,
|
|
|
|
+ teamId: this.startId,
|
|
|
|
+ bizId: vel.bizId
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
|
+ this.objData = { teamMembersInfo: this.bizData, user: this.userData }
|
|
|
|
+ createMembers(this.objData).then(response => {
|
|
|
|
+ if (response.code === 200) {
|
|
|
|
+ this.dialogFormVisible = false
|
|
|
|
+ this.successFun()
|
|
|
|
+ this.getAllList()
|
|
|
|
+ } else {
|
|
|
|
+ this.errorFun()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ successFun() {
|
|
|
|
+ this.$notify({ title: 'Success', message: 'Created Successfully', type: 'success', duration: 5000 })
|
|
|
|
+ },
|
|
|
|
+ errorFun() {
|
|
|
|
+ this.$notify({ title: 'Failed', message: 'Created Failed', type: 'error', duration: 5000 })
|
|
|
|
+ }
|
|
|
|
+ }}
|
|
|
|
+
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style>
|
|
|
|
+.headerStyle {
|
|
|
|
+ margin: 10px;
|
|
|
|
+}
|
|
|
|
+</style>
|