Commit 7a3c5dd3 authored by 赵伟庚's avatar 赵伟庚

Merge branch 'zwg' into dev

parents ac72865c 17673bf9
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<span>已选择</span> <span>已选择</span>
<span class="num">{{selection.length}}</span> <span class="num">{{selection.length}}</span>
<span></span> <span></span>
<span class="can_click_text" @click="clearSelection">清空</span> <span class="can_click_text" @click="clearRoleSelection">清空</span>
</div> </div>
</div> </div>
</template> </template>
...@@ -114,13 +114,13 @@ ...@@ -114,13 +114,13 @@
<div class="topFilter"> <div class="topFilter">
<div class="left"> <div class="left">
<span>已选择</span> <span>已选择</span>
<span class="num">0</span> <span class="num">{{userSelection.length}}</span>
<span></span> <span></span>
<span class="can_click_text" @click="clearSelection">清空</span> <span class="can_click_text" @click="clearUserSelection">清空</span>
</div> </div>
<div class="right"> <div class="right">
<el-select <el-select
v-model="userFilter.type" v-model="userFilter.is_admin"
placeholder="请选择" placeholder="请选择"
style="width: 200px" style="width: 200px"
> >
...@@ -132,31 +132,52 @@ ...@@ -132,31 +132,52 @@
> >
</el-option> </el-option>
</el-select> </el-select>
<el-select <el-cascader
v-model="userFilter.org" v-model="userFilter.organization_id"
placeholder="请选择" :options="orgList"
placeholder="请选择组织"
:props="{ expandTrigger: 'hover', label: 'name', value: 'id', emitPath: false, checkStrictly: true, children: 'Child'}"
:clearable="true"
collapse-tags
style="width: 200px" style="width: 200px"
> >
<el-option <template #default="{ data }">
v-for="(item, index) in orgList" <span>{{ data.name }}</span>
:key="'pushOptions' + index" </template>
:label="item.name" </el-cascader>
:value="item.value"
>
</el-option>
</el-select>
<el-input <el-input
v-model="userFilter.search" v-model="userFilter.search"
placeholder="请输入内容" placeholder="请输入内容"
style="width: 200px" style="width: 200px"
:prefix-icon="Search" :prefix-icon="Search"
/> />
<el-button type="primary" @click="distribute">查询</el-button> <el-button type="primary" @click="searchAction">查询</el-button>
<el-button type="default" @click="distributeDialog = false">重置</el-button> <el-button type="default" @click="clearAction">重置</el-button>
</div> </div>
</div> </div>
<div class="table_box"> <div class="table_box">
<div class="user_table bg-scroll">
<bg-table
ref="userTable"
:headers="userHeaders"
:rows="userRows"
:select="true"
:stripe="true"
@selectAc="selectUserRows"
>
<template v-slot:is_admin="{ row }">
{{ ["","业务系统账号","组织管理员账号","平台用户账号"][row.is_admin] }}
</template>
</bg-table>
</div>
<bg-pagination
:page="userFilter.page"
:size="userFilter.limit"
:total="total"
@change-page="changeUserPage"
@change-size="changeUserSize"
>
</bg-pagination>
</div> </div>
</div> </div>
<template v-slot:footer> <template v-slot:footer>
...@@ -177,6 +198,7 @@ import { ElMessage } from 'element-plus' ...@@ -177,6 +198,7 @@ import { ElMessage } from 'element-plus'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
const router = useRouter() const router = useRouter()
const Bgtable = ref(null) const Bgtable = ref(null)
const userTable = ref(null)
const state = reactive({ const state = reactive({
filter: { filter: {
page: 1, page: 1,
...@@ -187,7 +209,6 @@ const state = reactive({ ...@@ -187,7 +209,6 @@ const state = reactive({
{ {
label: "角色名", label: "角色名",
prop: "role_name", prop: "role_name",
width: 220 width: 220
}, },
{ {
...@@ -228,13 +249,14 @@ const state = reactive({ ...@@ -228,13 +249,14 @@ const state = reactive({
selection: [], selection: [],
delDialog: false, delDialog: false,
delType: 1, // 删除类型 1-单条删除 2-批量删除 delType: 1, // 删除类型 1-单条删除 2-批量删除
distributeDialog: false, // 分配用户弹窗
}) })
const userState = reactive({ const userState = reactive({
userFilter: { userFilter: {
type: "", is_admin: "",
org: "", organization_id: "",
search: "", search: "",
limit: 10,
page: 1,
}, },
userTypeList: [ userTypeList: [
{ {
...@@ -254,9 +276,29 @@ const userState = reactive({ ...@@ -254,9 +276,29 @@ const userState = reactive({
value: 3 value: 3
}, },
], ],
orgList: [ orgList: [],
userHeaders: [
] {
label: "帐号",
prop: "system_account",
},
{
label: "类型",
prop: "is_admin",
},
{
label: "用户手机号",
prop: "contact_phone",
},
{
label: "所属组织",
prop: "organization_name",
},
],
userRows: [],
total: 0,
userSelection: [],
distributeDialog: false, // 分配用户弹窗
}) })
const getRoleRows = () => { const getRoleRows = () => {
let params = {...state.filter} let params = {...state.filter}
...@@ -272,6 +314,19 @@ const getRoleRows = () => { ...@@ -272,6 +314,19 @@ const getRoleRows = () => {
} }
}) })
} // 获取角色列表 } // 获取角色列表
const getOrgList = () => {
axios
.get(`/apaas/system/v5/org/tree`)
.then((res) => {
if (res.data.code == 200) {
console.log(res.data.data)
userState.orgList = res.data.data || []
}else {
ElMessage.error(res.data.data)
}
})
} // 获取组织列表
const changePage = (val) => { const changePage = (val) => {
state.filter.page = val state.filter.page = val
getRoleRows() getRoleRows()
...@@ -304,8 +359,8 @@ const selectRows = (data) => { ...@@ -304,8 +359,8 @@ const selectRows = (data) => {
state.selection = data.selection state.selection = data.selection
} // 表格多选 } // 表格多选
const clearSelection = () => { const clearRoleSelection = () => {
Bgtable.value.clearSelection() Bgtable.value.clearTable()
} }
const register = () => { const register = () => {
...@@ -324,11 +379,100 @@ const edit_row = (row) => { ...@@ -324,11 +379,100 @@ const edit_row = (row) => {
} // 编辑角色 } // 编辑角色
const distribute_user = (row) => { const distribute_user = (row) => {
state.distributeDialog = true clearAction(1)
userState.distributeDialog = true
state.actionRow = row
getUserList()
} // 分配角色按钮
const getUserList = () => {
nextTick(() => {
clearUserSelection()
})
let params = {
limit: userState.userFilter.limit,
page: userState.userFilter.page,
search: userState.userFilter.search,
organization_id: userState.userFilter.organization_id,
is_admin: userState.userFilter.is_admin,
role_id: state.actionRow.id,
}
axios
.get(`/apaas/system/v5/role/allotment/list`,{params})
.then((res) => {
if (res.data.code == 200) {
console.log(res.data.data)
userState.userRows = res.data.data || []
userState.total = res.data.total
nextTick(() => {
userState.userRows.forEach(e => {
if(e.is_bind == 1) {
userTable.value.toggleRowSelection(e,true)
}
})
})
}else {
ElMessage.error(res.data.data)
}
})
}
const changeUserPage = (val) => {
userState.userFilter.page = val
getUserList()
}
const changeUserSize = (val) => {
userState.userFilter.limit = val
changeUserPage(1)
}
const searchAction = () => {
console.log(userState.userFilter)
changeUserPage(1)
}
const clearAction = (type) => {
userState.userFilter = {
is_admin: "",
organization_id: "",
search: "",
limit: 10,
page: 1,
}
if (type != 1) {
changeUserPage(1)
}
}
const clearUserSelection = () => {
userTable.value.clearTable()
}
const selectUserRows = (data) => {
userState.userSelection = data.selection
} }
const distribute = () => { const distribute = () => {
state.distributeDialog = false let user_ids = []
userState.userSelection.forEach(e => {
user_ids.push(e.id)
})
let params = {
id: state.actionRow.id,
user_ids: user_ids
}
axios
.post(`/apaas/system/v5/role/allotment/user`,params)
.then((res) => {
if (res.data.code == 200) {
ElMessage.success(res.data.data)
userState.distributeDialog = false
changePage(1)
}else {
ElMessage.error(res.data.data)
}
})
} }
const delete_row = (row) => { const delete_row = (row) => {
...@@ -372,6 +516,7 @@ const deleteData = () => { ...@@ -372,6 +516,7 @@ const deleteData = () => {
} }
onBeforeMount(() => { onBeforeMount(() => {
getRoleRows() getRoleRows()
getOrgList()
}) })
const { const {
...@@ -381,13 +526,17 @@ const { ...@@ -381,13 +526,17 @@ const {
tableTotal, tableTotal,
delDialog, delDialog,
selection, selection,
distributeDialog,
} = toRefs(state) } = toRefs(state)
const { const {
userFilter, userFilter,
userTypeList, userTypeList,
orgList, orgList,
userHeaders,
userRows,
total,
userSelection,
distributeDialog,
} =toRefs(userState) } =toRefs(userState)
</script> </script>
...@@ -471,6 +620,13 @@ const { ...@@ -471,6 +620,13 @@ const {
} }
} }
} }
.table_box {
padding: 10px 16px;
height: calc(100% - 68px);
.user_table {
max-height: calc(100% - 48px);
}
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment