|
@@ -20,7 +20,8 @@
|
|
|
<ElCol :md="8">
|
|
<ElCol :md="8">
|
|
|
<ElFormItem>
|
|
<ElFormItem>
|
|
|
<div class="flex j-end" style="width: 100%;">
|
|
<div class="flex j-end" style="width: 100%;">
|
|
|
- <el-button type="primary" @click="memberQuery" v-auth="'member.view'" @keydown.enter="handleEnter">查询</el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" @click="memberQuery" v-auth="'member.view'"
|
|
|
|
|
+ @keydown.enter="handleEnter">查询</el-button>
|
|
|
<el-button type="default" @click="resetForm" v-auth="'member.view'">重置</el-button>
|
|
<el-button type="default" @click="resetForm" v-auth="'member.view'">重置</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</ElFormItem>
|
|
</ElFormItem>
|
|
@@ -29,7 +30,8 @@
|
|
|
</ElForm>
|
|
</ElForm>
|
|
|
<ElDivider border-style="dashed"></ElDivider>
|
|
<ElDivider border-style="dashed"></ElDivider>
|
|
|
<Table :tableData="tableData" :columns="columns" :showIndex="false" :columnheight="200" :showSelect="true"
|
|
<Table :tableData="tableData" :columns="columns" :showIndex="false" :columnheight="200" :showSelect="true"
|
|
|
- :pageInfo="pageInfo" @getList="getList" @selectAllChange="handleSelectionChange" @selectionChange="selectionChange">
|
|
|
|
|
|
|
+ :pageInfo="pageInfo" @getList="getList" @selectAllChange="handleSelectionChange"
|
|
|
|
|
+ @selectionChange="selectionChange">
|
|
|
<template v-slot:table-title-btn>
|
|
<template v-slot:table-title-btn>
|
|
|
<el-button type="primary" @click="userAdd" v-auth="'member.add'">
|
|
<el-button type="primary" @click="userAdd" v-auth="'member.add'">
|
|
|
添加成员
|
|
添加成员
|
|
@@ -54,7 +56,8 @@
|
|
|
</el-dropdown>
|
|
</el-dropdown>
|
|
|
</template>
|
|
</template>
|
|
|
<template v-slot:operation="scope">
|
|
<template v-slot:operation="scope">
|
|
|
- <el-button type="primary" link @click="tenantUpdate(scope.operationData.id)" v-auth="'member.edit'"> 编辑 </el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" link @click="tenantUpdate(scope.operationData.id)" v-auth="'member.edit'"> 编辑
|
|
|
|
|
+ </el-button>
|
|
|
<el-dropdown placement="bottom-start" v-auth="'member.delete'">
|
|
<el-dropdown placement="bottom-start" v-auth="'member.delete'">
|
|
|
<span class="el-dropdown-link">
|
|
<span class="el-dropdown-link">
|
|
|
更 多
|
|
更 多
|
|
@@ -91,8 +94,8 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</ElCol>
|
|
</ElCol>
|
|
|
<ElCol :md="24" :lg="12">
|
|
<ElCol :md="24" :lg="12">
|
|
|
- <el-form-item label="角色" prop="roleNameList">
|
|
|
|
|
- <el-select v-model="memberform.roleNameList" multiple placeholder="请选择角色" style="width: 100%;">
|
|
|
|
|
|
|
+ <el-form-item label="角色" prop="roleIdList">
|
|
|
|
|
+ <el-select v-model="memberform.roleIdList" multiple placeholder="请选择角色" style="width: 100%;">
|
|
|
<el-option :label="item.name" :value="item.id" v-for="(item, index) in roleLists" :key="index" />
|
|
<el-option :label="item.name" :value="item.id" v-for="(item, index) in roleLists" :key="index" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -115,12 +118,8 @@
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
|
import { ref, reactive } from 'vue'
|
|
import { ref, reactive } from 'vue'
|
|
|
import api from '@/api';
|
|
import api from '@/api';
|
|
|
-import { h } from 'vue'
|
|
|
|
|
-import { RouterLink, useRouter } from "vue-router";
|
|
|
|
|
-// import ImagePreview from '@/components/ImagePreview/index.vue';
|
|
|
|
|
-import { ElMessage, ElTag, ElMessageBox } from 'element-plus'
|
|
|
|
|
|
|
+import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
import { FormRules, FormInstance, ComponentSize } from 'element-plus';
|
|
import { FormRules, FormInstance, ComponentSize } from 'element-plus';
|
|
|
-
|
|
|
|
|
interface PageInfo {
|
|
interface PageInfo {
|
|
|
pageNum: number;
|
|
pageNum: number;
|
|
|
pageSize: number;
|
|
pageSize: number;
|
|
@@ -140,11 +139,10 @@ const sysUpAndDownList = ref<string[]>([])//选中id
|
|
|
const roleLists = ref<roleLists[]>([])//角色列表
|
|
const roleLists = ref<roleLists[]>([])//角色列表
|
|
|
const dialogTitle = ref('添加成员')//弹窗title
|
|
const dialogTitle = ref('添加成员')//弹窗title
|
|
|
const dialogType = ref('add')//弹窗title
|
|
const dialogType = ref('add')//弹窗title
|
|
|
-const router = useRouter();
|
|
|
|
|
const memberform = reactive({
|
|
const memberform = reactive({
|
|
|
username: "",//机构名称
|
|
username: "",//机构名称
|
|
|
mobile: "",//上级机构
|
|
mobile: "",//上级机构
|
|
|
- roleNameList: [],
|
|
|
|
|
|
|
+ roleIdList: [],
|
|
|
id: '',
|
|
id: '',
|
|
|
})
|
|
})
|
|
|
const memberformRules = ref<FormRules>({
|
|
const memberformRules = ref<FormRules>({
|
|
@@ -152,7 +150,7 @@ const memberformRules = ref<FormRules>({
|
|
|
{ required: true, trigger: 'blur', message: '请输入姓名' },
|
|
{ required: true, trigger: 'blur', message: '请输入姓名' },
|
|
|
{ min: 2, max: 20, message: '请输入2~20个字符', trigger: 'blur' },
|
|
{ min: 2, max: 20, message: '请输入2~20个字符', trigger: 'blur' },
|
|
|
],
|
|
],
|
|
|
- roleNameList: [
|
|
|
|
|
|
|
+ roleIdList: [
|
|
|
{ required: true, trigger: 'change', message: '请选择角色' },
|
|
{ required: true, trigger: 'change', message: '请选择角色' },
|
|
|
],
|
|
],
|
|
|
mobile: [
|
|
mobile: [
|
|
@@ -165,7 +163,7 @@ const pageInfo = ref({
|
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
|
pageSize: 20,
|
|
pageSize: 20,
|
|
|
sizes: [10, 20, 30, 40, 50],
|
|
sizes: [10, 20, 30, 40, 50],
|
|
|
- total: 100,
|
|
|
|
|
|
|
+ total: 0,
|
|
|
});
|
|
});
|
|
|
//检索条件
|
|
//检索条件
|
|
|
const formInline = reactive({
|
|
const formInline = reactive({
|
|
@@ -254,28 +252,31 @@ function handleEnter(e: any) {
|
|
|
memberQuery()
|
|
memberQuery()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-const statusformatter = (row: any, column: any, cellValue: any) => {
|
|
|
|
|
- let accountStatus = row.accountStatus;
|
|
|
|
|
- if (accountStatus) {
|
|
|
|
|
- return () => h(ElTag, { type: 'primary' }, '启用');
|
|
|
|
|
- } else {
|
|
|
|
|
- return () => h(ElTag, { type: 'danger' }, '禁用');
|
|
|
|
|
- }
|
|
|
|
|
-};
|
|
|
|
|
-const roleNameformatter = (row: any, column: any, cellValue: any) => {
|
|
|
|
|
- let roleNameList = row.roleNameList;
|
|
|
|
|
- let roleName = roleNameList.join(',');
|
|
|
|
|
- return () => h('div', {}, roleName);
|
|
|
|
|
-};
|
|
|
|
|
const columns = [
|
|
const columns = [
|
|
|
{ prop: "username", label: "姓名", width: '120', },
|
|
{ prop: "username", label: "姓名", width: '120', },
|
|
|
{ prop: "mobile", label: "手机号", width: '120' },
|
|
{ prop: "mobile", label: "手机号", width: '120' },
|
|
|
{ prop: "id", label: "工号", width: '180', },
|
|
{ prop: "id", label: "工号", width: '180', },
|
|
|
- { prop: "roleNameList", label: "角色",formatter: roleNameformatter },
|
|
|
|
|
- { prop: "accountStatus", label: "状态", formatter: statusformatter },
|
|
|
|
|
-
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: "roleNameList", label: "角色", formatter: (row: any) => {
|
|
|
|
|
+ let roleNameList = row.roleNameList;
|
|
|
|
|
+ if (roleNameList) {
|
|
|
|
|
+ let roleName = roleNameList.join(',');
|
|
|
|
|
+ return roleName;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return roleNameList;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: "accountStatus", label: "状态", component: 'Tag', formatter: (row: any) => {
|
|
|
|
|
+ if (row.accountStatus) {
|
|
|
|
|
+ return { type: 'primary', text: '启用' };
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return { type: 'danger', text: '禁用' };
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
];
|
|
];
|
|
|
-
|
|
|
|
|
function getList(item: PageInfo) {
|
|
function getList(item: PageInfo) {
|
|
|
pageInfo.value.pageNum = item.pageNum;
|
|
pageInfo.value.pageNum = item.pageNum;
|
|
|
pageInfo.value.pageSize = item.pageSize;
|
|
pageInfo.value.pageSize = item.pageSize;
|
|
@@ -283,12 +284,26 @@ function getList(item: PageInfo) {
|
|
|
function tenantUpdate(id: string) {
|
|
function tenantUpdate(id: string) {
|
|
|
dialogTitle.value = '编辑成员';
|
|
dialogTitle.value = '编辑成员';
|
|
|
dialogType.value = 'edit';
|
|
dialogType.value = 'edit';
|
|
|
|
|
+ memberform.roleIdList = [];
|
|
|
|
|
+ let userlist: any = [];
|
|
|
api.member.userGet({ id: id }).then((res: any) => {
|
|
api.member.userGet({ id: id }).then((res: any) => {
|
|
|
if (res.code == '200') {
|
|
if (res.code == '200') {
|
|
|
memberform.id = res.data.id;
|
|
memberform.id = res.data.id;
|
|
|
memberform.username = res.data.username;
|
|
memberform.username = res.data.username;
|
|
|
memberform.mobile = res.data.mobile;
|
|
memberform.mobile = res.data.mobile;
|
|
|
- memberform.roleNameList = res.data.roleNameList;
|
|
|
|
|
|
|
+ roleLists.value.map((val: any) => {
|
|
|
|
|
+ if (res.data.roleNameList) {
|
|
|
|
|
+ res.data.roleNameList.map((value: any) => {
|
|
|
|
|
+ if (value === val.name) {
|
|
|
|
|
+ userlist.push(val.id)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ memberform.roleIdList = userlist;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ memberform.roleIdList = [];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ })
|
|
|
UpdatedialogVisible.value = true;
|
|
UpdatedialogVisible.value = true;
|
|
|
} else {
|
|
} else {
|
|
|
ElMessage({
|
|
ElMessage({
|
|
@@ -315,7 +330,7 @@ const del = (value: string) => {
|
|
|
confirmButtonText: '确认删除',
|
|
confirmButtonText: '确认删除',
|
|
|
cancelButtonText: '取消',
|
|
cancelButtonText: '取消',
|
|
|
type: 'error',
|
|
type: 'error',
|
|
|
- center:true,
|
|
|
|
|
|
|
+ center: true,
|
|
|
}
|
|
}
|
|
|
)
|
|
)
|
|
|
.then(() => {
|
|
.then(() => {
|
|
@@ -351,7 +366,7 @@ const disable = (value: string) => {
|
|
|
confirmButtonText: '确认禁用',
|
|
confirmButtonText: '确认禁用',
|
|
|
cancelButtonText: '取消',
|
|
cancelButtonText: '取消',
|
|
|
type: 'error',
|
|
type: 'error',
|
|
|
- center:true,
|
|
|
|
|
|
|
+ center: true,
|
|
|
}
|
|
}
|
|
|
)
|
|
)
|
|
|
.then(() => {
|
|
.then(() => {
|
|
@@ -376,7 +391,7 @@ const batchDel = () => {
|
|
|
cancelButtonText: '取消',
|
|
cancelButtonText: '取消',
|
|
|
type: 'error',
|
|
type: 'error',
|
|
|
confirmButtonClass: 'el-button--danger',
|
|
confirmButtonClass: 'el-button--danger',
|
|
|
- center:true,
|
|
|
|
|
|
|
+ center: true,
|
|
|
}
|
|
}
|
|
|
)
|
|
)
|
|
|
.then(() => {
|
|
.then(() => {
|
|
@@ -411,7 +426,7 @@ const batchdisable = () => {
|
|
|
confirmButtonText: '确认禁用',
|
|
confirmButtonText: '确认禁用',
|
|
|
cancelButtonText: '取消',
|
|
cancelButtonText: '取消',
|
|
|
type: 'error',
|
|
type: 'error',
|
|
|
- center:true,
|
|
|
|
|
|
|
+ center: true,
|
|
|
}
|
|
}
|
|
|
)
|
|
)
|
|
|
.then(async () => {
|
|
.then(async () => {
|