feat(credit): 添加小程序客户用户信息展示功能
- 在模型中增加昵称、头像、手机号字段 - 实现用户信息表格列,展示头像、昵称和手机号 - 添加用户信息样式布局 - 更新导出数据配置,包含新的用户信息字段 - 调整表格列宽度和对齐方式以优化显示效果
This commit is contained in:
@@ -40,6 +40,12 @@ export interface CreditMpCustomer {
|
|||||||
deleted?: number;
|
deleted?: number;
|
||||||
// 用户ID
|
// 用户ID
|
||||||
userId?: number;
|
userId?: number;
|
||||||
|
// 昵称
|
||||||
|
nickname?: string;
|
||||||
|
// 头像
|
||||||
|
avatar?: string;
|
||||||
|
// 手机号
|
||||||
|
phone?: string;
|
||||||
// 租户id
|
// 租户id
|
||||||
tenantId?: number;
|
tenantId?: number;
|
||||||
// 创建时间
|
// 创建时间
|
||||||
|
|||||||
@@ -22,9 +22,32 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
|
<template v-if="column.key === 'userInfo'">
|
||||||
|
<div class="user-info">
|
||||||
|
<a-avatar :size="48" :src="record.avatar">
|
||||||
|
<template v-if="!record.avatar" #icon>
|
||||||
|
<UserOutlined/>
|
||||||
|
</template>
|
||||||
|
</a-avatar>
|
||||||
|
<div class="user-details">
|
||||||
|
<h4 class="username">{{ record.nickname }}</h4>
|
||||||
|
<p class="user-phone">{{ record.phone }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<template v-if="column.key === 'image'">
|
<template v-if="column.key === 'image'">
|
||||||
<a-image :src="record.image" :width="50"/>
|
<a-image :src="record.image" :width="50"/>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="column.key === 'files'">
|
||||||
|
<a-space>
|
||||||
|
<a-image
|
||||||
|
v-for="(file, index) in record.files"
|
||||||
|
:key="index"
|
||||||
|
:src="file"
|
||||||
|
:width="50"
|
||||||
|
/>
|
||||||
|
</a-space>
|
||||||
|
</template>
|
||||||
<template v-if="column.key === 'status'">
|
<template v-if="column.key === 'status'">
|
||||||
<a-tag v-if="record.status === 0" color="green">显示</a-tag>
|
<a-tag v-if="record.status === 0" color="green">显示</a-tag>
|
||||||
<a-tag v-if="record.status === 1" color="red">隐藏</a-tag>
|
<a-tag v-if="record.status === 1" color="red">隐藏</a-tag>
|
||||||
@@ -53,7 +76,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import {createVNode, ref, computed} from 'vue';
|
import {createVNode, ref, computed} from 'vue';
|
||||||
import {message, Modal} from 'ant-design-vue';
|
import {message, Modal} from 'ant-design-vue';
|
||||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
import {ExclamationCircleOutlined, UserOutlined} from '@ant-design/icons-vue';
|
||||||
import type {EleProTable} from 'ele-admin-pro';
|
import type {EleProTable} from 'ele-admin-pro';
|
||||||
import {toDateString} from 'ele-admin-pro';
|
import {toDateString} from 'ele-admin-pro';
|
||||||
import type {
|
import type {
|
||||||
@@ -116,6 +139,12 @@
|
|||||||
key: 'id',
|
key: 'id',
|
||||||
width: 90,
|
width: 90,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '用户信息',
|
||||||
|
dataIndex: 'userInfo',
|
||||||
|
key: 'userInfo',
|
||||||
|
width: 300,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '拖欠方',
|
title: '拖欠方',
|
||||||
dataIndex: 'toUser',
|
dataIndex: 'toUser',
|
||||||
@@ -124,12 +153,16 @@
|
|||||||
{
|
{
|
||||||
title: '拖欠金额',
|
title: '拖欠金额',
|
||||||
dataIndex: 'price',
|
dataIndex: 'price',
|
||||||
key: 'price'
|
key: 'price',
|
||||||
|
width: 120,
|
||||||
|
align: 'center',
|
||||||
|
customRender: ({ text }) => '¥' + text
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '拖欠年数',
|
title: '拖欠年数',
|
||||||
dataIndex: 'years',
|
dataIndex: 'years',
|
||||||
key: 'years'
|
key: 'years',
|
||||||
|
align: 'center'
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: '链接',
|
// title: '链接',
|
||||||
@@ -152,7 +185,7 @@
|
|||||||
title: '所在城市',
|
title: '所在城市',
|
||||||
dataIndex: 'city',
|
dataIndex: 'city',
|
||||||
key: 'city',
|
key: 'city',
|
||||||
ellipsis: true
|
align: 'center'
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: '所在辖区',
|
// title: '所在辖区',
|
||||||
@@ -164,7 +197,7 @@
|
|||||||
title: '附件',
|
title: '附件',
|
||||||
dataIndex: 'files',
|
dataIndex: 'files',
|
||||||
key: 'files',
|
key: 'files',
|
||||||
ellipsis: true
|
align: 'center'
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: '是否有数据',
|
// title: '是否有数据',
|
||||||
@@ -220,10 +253,12 @@
|
|||||||
// 默认显示的核心列(最多5个主要字段)
|
// 默认显示的核心列(最多5个主要字段)
|
||||||
const defaultVisibleColumns = [
|
const defaultVisibleColumns = [
|
||||||
'id',
|
'id',
|
||||||
|
'userInfo',
|
||||||
'toUser',
|
'toUser',
|
||||||
'price',
|
'price',
|
||||||
'years',
|
'years',
|
||||||
'city',
|
'city',
|
||||||
|
'files',
|
||||||
// 'status',
|
// 'status',
|
||||||
'createTime',
|
'createTime',
|
||||||
'action'
|
'action'
|
||||||
@@ -359,4 +394,28 @@
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped></style>
|
<style lang="less" scoped>
|
||||||
|
.user-info {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 6px;
|
||||||
|
|
||||||
|
.user-details {
|
||||||
|
margin-left: 6px;
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.username {
|
||||||
|
margin: 0;
|
||||||
|
color: #333;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-phone {
|
||||||
|
margin: 0;
|
||||||
|
color: #666;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user