调整运营后台用户管理

This commit is contained in:
lcc
2025-08-15 14:09:15 +08:00
parent 99298aca00
commit 20bb32c8d7
3 changed files with 96 additions and 32 deletions
+10
View File
@@ -109,3 +109,13 @@ export async function importUsers(file) {
}
return Promise.reject(new Error(res.data.message));
}
export async function orgNameList(params) {
const res = await request.get('/organization/user/orgNameList', {
params
});
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
@@ -17,7 +17,8 @@
<el-input clearable v-model="where.mobile" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col v-bind="styleResponsive ? { lg: 12, md: 12 } : { span: 12 }">
<!--
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
<el-form-item label="机构">
<el-select value="" v-model="where.teamId" clearable>
<el-option
@@ -29,6 +30,29 @@
</el-select>
</el-form-item>
</el-col>
-->
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
<el-form-item label="城市:">
<regions-select
v-model="where.citys"
type="provinceCity"
placeholder="请选择省市"
class="ele-fluid"
/>
</el-form-item>
</el-col>
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
<el-form-item label="机构">
<el-select value="" v-model="where.orgName" clearable filterable>
<el-option
v-for="(item, index) in orgNameList"
:value="item"
:key="index"
:label="item"
/>
</el-select>
</el-form-item>
</el-col>
<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
<el-form-item label="中心">
<el-select v-model="where.centerNumber" clearable>
@@ -80,9 +104,15 @@
<script>
import { listOrganizations } from '@/api/organization/manage';
import { groupTypeUsers, centerUsers } from '@/api/organization/user';
import {
groupTypeUsers,
centerUsers,
orgNameList
} from '@/api/organization/user';
import RegionsSelect from '@/components/RegionsSelect/index.vue';
export default {
components: { RegionsSelect },
data() {
// 默认表单数据
const defaultWhere = {
@@ -91,14 +121,17 @@
orgId: '',
teamId: '',
groupType: '',
centerNumber: ''
centerNumber: '',
citys: [],
orgName: ''
};
return {
// 表单数据
where: { ...defaultWhere },
teamList: [],
groupList: [],
centerList: []
centerList: [],
orgNameList: []
};
},
computed: {
@@ -109,12 +142,13 @@
},
created() {
this.initData();
this.loadOrgNameList();
},
methods: {
async initData() {
try {
await this.loadOrg();
await this.loadOrgTeam();
// await this.loadOrgTeam();
await Promise.all([
groupTypeUsers()
.then((data) => {
@@ -135,6 +169,15 @@
this.$message.error(e.message);
}
},
loadOrgNameList() {
orgNameList()
.then((data) => {
this.orgNameList = data;
})
.catch((e) => {
this.$message.error(e.message);
});
},
loadOrg() {
return new Promise((resolve, reject) => {
listOrganizations({ pid: 0 })
+38 -27
View File
@@ -32,22 +32,22 @@
</el-button>
</template>
<!-- 用户名列 -->
<template v-slot:nickname="{ row }">
<router-link :to="'/system/user/details?id=' + row.id">
{{ row.nickname }}
</router-link>
<template v-slot:username="{ row }">
<div>{{ row.username }}</div>
<div>{{ row.userCode }}</div>
<div>{{ row.mobile }}</div>
</template>
<!-- 角色列 -->
<template v-slot:roles="{ row }">
<el-tag
v-for="item in row.roles"
:key="item.roleId"
size="mini"
type="primary"
:disable-transitions="true"
>
{{ item.roleName }}
</el-tag>
<template v-slot:team="{ row }">
<div>{{ row.teamUser.username }}</div>
<div>{{ row.teamUser.userCode }}</div>
</template>
<template v-slot:dep="{ row }">
<div>{{ row.depUser.username }}</div>
<div>{{ row.depUser.userCode }}</div>
</template>
<template v-slot:area="{ row }">
<div>{{ row.areaUser.username }}</div>
<div>{{ row.areaUser.userCode }}</div>
</template>
<!-- 状态列 -->
<template v-slot:status="{ row }">
@@ -119,26 +119,37 @@
fixed: 'left'
},
{
prop: 'userCode',
label: '工号',
width: 200,
prop: 'username',
label: '姓名工号',
align: 'center',
showOverflowTooltip: true,
width: 180,
slot: 'username',
fixed: 'left'
},
{
prop: 'username',
label: '姓名',
prop: 'team',
label: '团队长',
align: 'center',
showOverflowTooltip: true,
width: 120
width: 180,
slot: 'team'
},
{
prop: 'mobile',
label: '手机号',
prop: 'dep',
label: '部经理',
align: 'center',
showOverflowTooltip: true,
width: 120
width: 180,
slot: 'dep'
},
{
prop: 'area',
label: '区经理',
align: 'center',
showOverflowTooltip: true,
width: 180,
slot: 'area'
},
{
prop: 'centerNumber',
@@ -149,8 +160,8 @@
showOverflowTooltip: true
},
{
prop: 'orgTeamName',
label: '机构团队',
prop: 'orgName',
label: '归属机构',
align: 'center',
width: 80,
resizable: false,
@@ -196,7 +207,7 @@
{
columnKey: 'action',
label: '操作',
minWidth: 180,
minWidth: 150,
align: 'center',
resizable: false,
slot: 'action',