From 542407dcd68da24264c4ac3a6fa8e21f04619a24 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 4 Apr 2025 20:13:43 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E9=87=8D=E6=9E=84(Description)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/api/system/user/model.d.ts | 1 + apps/web-antd/src/views/system/user/info.tsx | 129 ------------------ .../src/views/system/user/user-info-modal.vue | 124 ++++++++++++++--- 3 files changed, 108 insertions(+), 146 deletions(-) delete mode 100644 apps/web-antd/src/views/system/user/info.tsx diff --git a/apps/web-antd/src/api/system/user/model.d.ts b/apps/web-antd/src/api/system/user/model.d.ts index 273b1066..ff5f428a 100644 --- a/apps/web-antd/src/api/system/user/model.d.ts +++ b/apps/web-antd/src/api/system/user/model.d.ts @@ -66,6 +66,7 @@ export interface User { roleIds?: string[]; postIds?: number[]; roleId: string; + deptName: string; } export interface Post { diff --git a/apps/web-antd/src/views/system/user/info.tsx b/apps/web-antd/src/views/system/user/info.tsx deleted file mode 100644 index cd00bb81..00000000 --- a/apps/web-antd/src/views/system/user/info.tsx +++ /dev/null @@ -1,129 +0,0 @@ -import type { DescItem } from '#/components/description'; - -import { DictEnum } from '@vben/constants'; - -import { Tag } from 'ant-design-vue'; -import dayjs from 'dayjs'; -import duration from 'dayjs/plugin/duration'; -import relativeTime from 'dayjs/plugin/relativeTime'; - -import { renderDict } from '#/utils/render'; - -dayjs.extend(duration); -dayjs.extend(relativeTime); - -function renderTags(list: string[]) { - return ( -
- {list.map((item) => ( - {item} - ))} -
- ); -} - -export const descSchema: DescItem[] = [ - { - field: 'userId', - label: '用户ID', - }, - { - field: 'status', - label: '用户状态', - render(value) { - return renderDict(value, DictEnum.SYS_NORMAL_DISABLE); - }, - }, - { - field: 'nickName', - label: '用户信息', - render(_, data) { - const { deptName = '暂无部门信息', nickName, userName } = data; - // 为了兼容新版本和旧版本 - let currentDept = deptName; - if (data.dept && data.dept.deptName) { - currentDept = data.dept.deptName; - } - return `${userName} / ${nickName} / ${currentDept}`; - }, - }, - { - field: 'phonenumber', - label: '手机号', - render(value) { - return value || '未设置手机号码'; - }, - }, - { - field: 'email', - label: '邮箱', - render(value) { - return value || '未设置邮箱地址'; - }, - }, - { - field: 'postNames', - label: '岗位', - render(value) { - if (Array.isArray(value) && value.length === 0) { - return '暂无信息'; - } - return renderTags(value); - }, - }, - { - field: 'roleNames', - label: '权限', - render(value) { - if (Array.isArray(value) && value.length === 0) { - return '暂无信息'; - } - return renderTags(value); - }, - }, - { - field: 'createTime', - label: '创建时间', - }, - { - field: 'loginIp', - label: '上次登录IP', - render(value) { - return value || 从未登录过; - }, - }, - { - field: 'loginDate', - label: '上次登录时间', - render(value) { - if (!value) { - return 从未登录过; - } - // 默认en显示 - dayjs.locale('zh-cn'); - // 计算相差秒数 - const diffSeconds = dayjs().diff(dayjs(value), 'second'); - /** - * 转为时间显示(x月 x天) - * https://dayjs.fenxianglu.cn/category/duration.html#%E4%BA%BA%E6%80%A7%E5%8C%96 - * - */ - const diffText = dayjs.duration(diffSeconds, 'seconds').humanize(); - return ( -
- {value} - - {diffText}前 - -
- ); - }, - }, - { - field: 'remark', - label: '备注', - render(value) { - return value || '无'; - }, - }, -]; diff --git a/apps/web-antd/src/views/system/user/user-info-modal.vue b/apps/web-antd/src/views/system/user/user-info-modal.vue index 63559afa..fb76558c 100644 --- a/apps/web-antd/src/views/system/user/user-info-modal.vue +++ b/apps/web-antd/src/views/system/user/user-info-modal.vue @@ -1,25 +1,34 @@