fix: 优化系统页面样式与交互细节

This commit is contained in:
Ray.Hao
2026-06-25 23:59:53 +08:00
parent 4baf7a7b55
commit 0b63c573a2
11 changed files with 621 additions and 543 deletions

View File

@@ -23,37 +23,46 @@
</el-card>
<el-card class="page-content" shadow="never">
<el-table v-loading="loading" :data="list" highlight-current-row border>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="表名" prop="tableName" min-width="100" />
<el-table-column label="描述" prop="tableComment" width="150" />
<el-table-column label="存储引擎" align="center" prop="engine" />
<el-table-column label="排序规则" align="center" prop="tableCollation" />
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column fixed="right" label="操作" width="200">
<template #default="scope">
<el-button
type="primary"
size="small"
link
@click="emit('generate', scope.row.tableName)"
>
<template #icon><MagicStick /></template>
生成代码
</el-button>
<el-button
v-if="scope.row.isConfigured === TABLE_CONFIGURED"
type="danger"
size="small"
link
@click="emit('reset-config', scope.row.tableName)"
>
<template #icon><RefreshLeft /></template>
重置配置
</el-button>
</template>
</el-table-column>
</el-table>
<div class="page-table-wrapper">
<el-table
v-loading="loading"
:data="list"
class="page-table"
height="100%"
highlight-current-row
border
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="表名" prop="tableName" min-width="100" />
<el-table-column label="描述" prop="tableComment" width="150" />
<el-table-column label="存储引擎" align="center" prop="engine" />
<el-table-column label="排序规则" align="center" prop="tableCollation" />
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column fixed="right" label="操作" width="200">
<template #default="scope">
<el-button
type="primary"
size="small"
link
@click="emit('generate', scope.row.tableName)"
>
<template #icon><MagicStick /></template>
生成代码
</el-button>
<el-button
v-if="scope.row.isConfigured === TABLE_CONFIGURED"
type="danger"
size="small"
link
@click="emit('reset-config', scope.row.tableName)"
>
<template #icon><RefreshLeft /></template>
重置配置
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-if="total > 0"

View File

@@ -29,41 +29,49 @@
</el-card>
<el-card class="page-content" shadow="never">
<el-table v-loading="loading" :data="list" highlight-current-row>
<el-table-column type="index" label="序号" width="60" />
<el-table-column label="通知标题" prop="title" min-width="200" />
<el-table-column align="center" label="通知类型" width="150">
<template #default="scope">
<DictTag v-model="scope.row.type" code="notice_type" />
</template>
</el-table-column>
<el-table-column align="center" label="通知等级" width="100">
<template #default="scope">
<DictTag v-model="scope.row.level" code="notice_level" />
</template>
</el-table-column>
<el-table-column
key="releaseTime"
align="center"
label="发布时间"
prop="publishTime"
width="150"
/>
<el-table-column align="center" label="发布人" prop="publisherName" width="150" />
<el-table-column align="center" label="状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.isRead === NOTICE_READ" type="success">已读</el-tag>
<el-tag v-else type="info">未读</el-tag>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="80">
<template #default="scope">
<el-button type="primary" size="small" link @click="handleReadNotice(scope.row.id)">
查看
</el-button>
</template>
</el-table-column>
</el-table>
<div class="page-table-wrapper">
<el-table
v-loading="loading"
:data="list"
class="page-table"
height="100%"
highlight-current-row
>
<el-table-column type="index" label="序号" width="60" />
<el-table-column label="通知标题" prop="title" min-width="200" />
<el-table-column align="center" label="通知类型" width="150">
<template #default="scope">
<DictTag v-model="scope.row.type" code="notice_type" />
</template>
</el-table-column>
<el-table-column align="center" label="通知等级" width="100">
<template #default="scope">
<DictTag v-model="scope.row.level" code="notice_level" />
</template>
</el-table-column>
<el-table-column
key="releaseTime"
align="center"
label="发布时间"
prop="publishTime"
width="150"
/>
<el-table-column align="center" label="发布人" prop="publisherName" width="150" />
<el-table-column align="center" label="状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.isRead === NOTICE_READ" type="success">已读</el-tag>
<el-tag v-else type="info">未读</el-tag>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="80">
<template #default="scope">
<el-button type="primary" size="small" link @click="handleReadNotice(scope.row.id)">
查看
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-if="total > 0"

View File

@@ -48,6 +48,7 @@
v-loading="loading"
:data="list"
class="page-table"
height="100%"
highlight-current-row
border
@selection-change="handleSelectionChange"

View File

@@ -54,59 +54,63 @@
</div>
</div>
<el-table
v-loading="loading"
:data="list"
row-key="id"
default-expand-all
border
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="name" label="部门名称" min-width="200" />
<el-table-column prop="code" label="部门编号" width="200" />
<el-table-column prop="status" label="状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.status === CommonStatus.ENABLED" type="success">正常</el-tag>
<el-tag v-else type="info">禁用</el-tag>
</template>
</el-table-column>
<div class="page-table-wrapper">
<el-table
v-loading="loading"
:data="list"
class="page-table"
row-key="id"
default-expand-all
border
height="100%"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="name" label="部门名称" min-width="200" />
<el-table-column prop="code" label="部门编号" width="200" />
<el-table-column prop="status" label="状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.status === CommonStatus.ENABLED" type="success">正常</el-tag>
<el-tag v-else type="info">禁用</el-tag>
</template>
</el-table-column>
<el-table-column prop="sort" label="排序" width="100" />
<el-table-column prop="sort" label="排序" width="100" />
<el-table-column label="操作" fixed="right" align="left" width="200">
<template #default="scope">
<el-button
v-hasPerm="['sys:dept:create']"
type="primary"
link
size="small"
@click.stop="openDialog(scope.row.id, undefined)"
>
新增
</el-button>
<el-button
v-hasPerm="['sys:dept:update']"
type="primary"
link
size="small"
@click.stop="openDialog(scope.row.parentId, scope.row.id)"
>
编辑
</el-button>
<el-button
v-hasPerm="['sys:dept:delete']"
type="danger"
link
size="small"
@click.stop="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-table-column label="操作" fixed="right" align="left" width="200">
<template #default="scope">
<el-button
v-hasPerm="['sys:dept:create']"
type="primary"
link
size="small"
@click.stop="openDialog(scope.row.id, undefined)"
>
新增
</el-button>
<el-button
v-hasPerm="['sys:dept:update']"
type="primary"
link
size="small"
@click.stop="openDialog(scope.row.parentId, scope.row.id)"
>
编辑
</el-button>
<el-button
v-hasPerm="['sys:dept:delete']"
type="danger"
link
size="small"
@click.stop="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<el-dialog

View File

@@ -40,41 +40,45 @@
</div>
</div>
<el-table
v-loading="loading"
highlight-current-row
:data="list"
border
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="字典项标签" prop="label" />
<el-table-column label="字典项值" prop="value" />
<el-table-column label="排序" prop="sort" />
<el-table-column label="状态">
<template #default="scope">
<el-tag :type="scope.row.status === CommonStatus.ENABLED ? 'success' : 'info'">
{{ scope.row.status === CommonStatus.ENABLED ? "启用" : "禁用" }}
</el-tag>
</template>
</el-table-column>
<div class="page-table-wrapper">
<el-table
v-loading="loading"
highlight-current-row
:data="list"
class="page-table"
border
height="100%"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="字典项标签" prop="label" />
<el-table-column label="字典项值" prop="value" />
<el-table-column label="排序" prop="sort" />
<el-table-column label="状态">
<template #default="scope">
<el-tag :type="scope.row.status === CommonStatus.ENABLED ? 'success' : 'info'">
{{ scope.row.status === CommonStatus.ENABLED ? "启用" : "禁用" }}
</el-tag>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="220">
<template #default="scope">
<el-button
type="primary"
link
size="small"
@click.stop="handleEditClick(scope.row as DictItem)"
>
编辑
</el-button>
<el-button type="danger" link size="small" @click.stop="handleDelete(scope.row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-table-column fixed="right" label="操作" align="center" width="220">
<template #default="scope">
<el-button
type="primary"
link
size="small"
@click.stop="handleEditClick(scope.row as DictItem)"
>
编辑
</el-button>
<el-button type="danger" link size="small" @click.stop="handleDelete(scope.row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-if="total > 0"

View File

@@ -40,43 +40,52 @@
</div>
</div>
<el-table
v-loading="loading"
highlight-current-row
:data="list"
border
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="字典名称" prop="name" />
<el-table-column label="字典编码" prop="dictCode" />
<el-table-column label="状态" prop="status">
<template #default="scope">
<el-tag :type="scope.row.status === CommonStatus.ENABLED ? 'success' : 'info'">
{{ scope.row.status === CommonStatus.ENABLED ? "启用" : "禁用" }}
</el-tag>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="220">
<template #default="scope">
<el-button
type="primary"
link
size="small"
@click.stop="openDictData(scope.row as any)"
>
字典数据
</el-button>
<div class="page-table-wrapper">
<el-table
v-loading="loading"
highlight-current-row
:data="list"
class="page-table"
border
height="100%"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="字典名称" prop="name" />
<el-table-column label="字典编码" prop="dictCode" />
<el-table-column label="状态" prop="status">
<template #default="scope">
<el-tag :type="scope.row.status === CommonStatus.ENABLED ? 'success' : 'info'">
{{ scope.row.status === CommonStatus.ENABLED ? "启用" : "禁用" }}
</el-tag>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="220">
<template #default="scope">
<el-button
type="primary"
link
size="small"
@click.stop="openDictData(scope.row as any)"
>
字典数据
</el-button>
<el-button type="primary" link size="small" @click.stop="handleEditClick(scope.row.id)">
编辑
</el-button>
<el-button type="danger" link size="small" @click.stop="handleDelete(scope.row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-button
type="primary"
link
size="small"
@click.stop="handleEditClick(scope.row.id)"
>
编辑
</el-button>
<el-button type="danger" link size="small" @click.stop="handleDelete(scope.row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-if="total > 0"

View File

@@ -46,35 +46,49 @@
</el-tooltip>
</div>
</div>
<el-table v-loading="loading" :data="list" highlight-current-row border>
<el-table-column label="操作标题" prop="title" min-width="180" show-overflow-tooltip />
<el-table-column label="状态" prop="status" width="80" align="center">
<template #default="{ row }">
<el-tag :type="row.status === LOG_STATUS_SUCCESS ? 'success' : 'danger'" size="small">
{{ row.status === LOG_STATUS_SUCCESS ? "成功" : "失败" }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="IP地址" prop="ip" width="140" />
<el-table-column label="请求路径" prop="requestUri" min-width="180" show-overflow-tooltip />
<el-table-column label="请求方法" prop="requestMethod" width="100" align="center">
<template #default="{ row }">
<el-tag :type="getMethodTagType(row.requestMethod)" size="small" effect="plain">
{{ row.requestMethod }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="执行时间(ms)" prop="executionTime" width="120" align="center" />
<el-table-column label="操作人" prop="operatorName" width="120" />
<el-table-column label="操作时间" prop="createTime" width="180" />
<el-table-column label="操作" width="80" align="center" fixed="right">
<template #default="{ row }">
<el-button type="primary" link size="small" @click="handleDetail(row as LogItem)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
<div class="page-table-wrapper">
<el-table
v-loading="loading"
class="page-table"
:data="list"
height="100%"
highlight-current-row
border
>
<el-table-column label="操作标题" prop="title" min-width="180" show-overflow-tooltip />
<el-table-column label="状态" prop="status" width="80" align="center">
<template #default="{ row }">
<el-tag :type="row.status === LOG_STATUS_SUCCESS ? 'success' : 'danger'" size="small">
{{ row.status === LOG_STATUS_SUCCESS ? "成功" : "失败" }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="IP地址" prop="ip" width="140" />
<el-table-column
label="请求路径"
prop="requestUri"
min-width="180"
show-overflow-tooltip
/>
<el-table-column label="请求方法" prop="requestMethod" width="100" align="center">
<template #default="{ row }">
<el-tag :type="getMethodTagType(row.requestMethod)" size="small" effect="plain">
{{ row.requestMethod }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="执行时间(ms)" prop="executionTime" width="120" align="center" />
<el-table-column label="操作人" prop="operatorName" width="120" />
<el-table-column label="操作时间" prop="createTime" width="180" />
<el-table-column label="操作" width="80" align="center" fixed="right">
<template #default="{ row }">
<el-button type="primary" link size="small" @click="handleDetail(row as LogItem)">
详情
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-if="total > 0"

View File

@@ -39,103 +39,109 @@
</div>
</div>
<el-table
ref="dataTableRef"
v-loading="loading"
border
row-key="id"
:data="list"
:tree-props="{
children: 'children',
hasChildren: 'hasChildren',
}"
@row-click="handleRowClick"
>
<el-table-column label="菜单名称" min-width="200">
<template #default="scope">
<div class="menu-name-cell">
<span class="menu-name-cell__icon">
<template v-if="scope.row.icon && scope.row.icon.startsWith('el-icon')">
<el-icon style="vertical-align: -0.15em">
<component :is="scope.row.icon.replace('el-icon-', '')" />
</el-icon>
</template>
<template v-else-if="scope.row.icon">
<span :class="`i-svg:${scope.row.icon}`" />
</template>
</span>
<span class="menu-name-cell__text">{{ scope.row.name }}</span>
</div>
</template>
</el-table-column>
<div class="page-table-wrapper">
<el-table
ref="dataTableRef"
v-loading="loading"
class="page-table"
border
row-key="id"
:data="list"
height="100%"
:tree-props="{
children: 'children',
hasChildren: 'hasChildren',
}"
@row-click="handleRowClick"
>
<el-table-column label="菜单名称" min-width="200">
<template #default="scope">
<div class="menu-name-cell">
<span class="menu-name-cell__icon">
<template v-if="scope.row.icon && scope.row.icon.startsWith('el-icon')">
<el-icon style="vertical-align: -0.15em">
<component :is="scope.row.icon.replace('el-icon-', '')" />
</el-icon>
</template>
<template v-else-if="scope.row.icon">
<span :class="`i-svg:${scope.row.icon}`" />
</template>
</span>
<span class="menu-name-cell__text">{{ scope.row.name }}</span>
</div>
</template>
</el-table-column>
<el-table-column label="类型" align="center" width="80">
<template #default="scope">
<el-tag v-if="scope.row.type === MenuTypeEnum.CATALOG" type="warning">目录</el-tag>
<el-tag v-if="scope.row.type === MenuTypeEnum.MENU" type="success">菜单</el-tag>
<el-tag v-if="scope.row.type === MenuTypeEnum.EXTERNAL" type="primary">外链</el-tag>
<el-tag v-if="scope.row.type === MenuTypeEnum.BUTTON" type="danger">按钮</el-tag>
</template>
</el-table-column>
<el-table-column label="访问路径" align="left" min-width="180">
<template #default="scope">
{{ getMenuAccessPath(scope.row) }}
</template>
</el-table-column>
<el-table-column label="页面组件" align="left" min-width="180">
<template #default="scope">
{{ getMenuComponentPath(scope.row) }}
</template>
</el-table-column>
<el-table-column label="权限标识" align="center" width="200" prop="perm" />
<el-table-column v-if="showMenuScope" label="范围" align="center" width="100">
<template #default="scope">
<el-tag v-if="scope.row.scope === MenuScopeEnum.PLATFORM" type="danger">平台</el-tag>
<el-tag v-else type="success">业务</el-tag>
</template>
</el-table-column>
<el-table-column label="类型" align="center" width="80">
<template #default="scope">
<el-tag v-if="scope.row.type === MenuTypeEnum.CATALOG" type="warning">目录</el-tag>
<el-tag v-if="scope.row.type === MenuTypeEnum.MENU" type="success">菜单</el-tag>
<el-tag v-if="scope.row.type === MenuTypeEnum.EXTERNAL" type="primary">外链</el-tag>
<el-tag v-if="scope.row.type === MenuTypeEnum.BUTTON" type="danger">按钮</el-tag>
</template>
</el-table-column>
<el-table-column label="访问路径" align="left" min-width="180">
<template #default="scope">
{{ getMenuAccessPath(scope.row) }}
</template>
</el-table-column>
<el-table-column label="页面组件" align="left" min-width="180">
<template #default="scope">
{{ getMenuComponentPath(scope.row) }}
</template>
</el-table-column>
<el-table-column label="权限标识" align="center" width="200" prop="perm" />
<el-table-column v-if="showMenuScope" label="范围" align="center" width="100">
<template #default="scope">
<el-tag v-if="scope.row.scope === MenuScopeEnum.PLATFORM" type="danger">平台</el-tag>
<el-tag v-else type="success">业务</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" align="center" width="80">
<template #default="scope">
<el-tag v-if="scope.row.visible === CommonStatus.ENABLED" type="success">显示</el-tag>
<el-tag v-else type="info">隐藏</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" align="center" width="80" prop="sort" />
<el-table-column fixed="right" align="center" label="操作" width="220">
<template #default="scope">
<el-button
v-if="scope.row.type === MenuTypeEnum.CATALOG || scope.row.type === MenuTypeEnum.MENU"
v-hasPerm="['sys:menu:create']"
type="primary"
link
size="small"
@click.stop="openDialog(scope.row.id)"
>
新增
</el-button>
<el-table-column label="状态" align="center" width="80">
<template #default="scope">
<el-tag v-if="scope.row.visible === CommonStatus.ENABLED" type="success">显示</el-tag>
<el-tag v-else type="info">隐藏</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" align="center" width="80" prop="sort" />
<el-table-column fixed="right" align="center" label="操作" width="220">
<template #default="scope">
<el-button
v-if="
scope.row.type === MenuTypeEnum.CATALOG || scope.row.type === MenuTypeEnum.MENU
"
v-hasPerm="['sys:menu:create']"
type="primary"
link
size="small"
@click.stop="openDialog(scope.row.id)"
>
新增
</el-button>
<el-button
v-hasPerm="['sys:menu:update']"
type="primary"
link
size="small"
@click.stop="openDialog(undefined, scope.row.id)"
>
编辑
</el-button>
<el-button
v-hasPerm="['sys:menu:delete']"
type="danger"
link
size="small"
@click.stop="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-button
v-hasPerm="['sys:menu:update']"
type="primary"
link
size="small"
@click.stop="openDialog(undefined, scope.row.id)"
>
编辑
</el-button>
<el-button
v-hasPerm="['sys:menu:delete']"
type="danger"
link
size="small"
@click.stop="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<el-drawer

View File

@@ -60,114 +60,124 @@
</div>
</div>
<el-table
ref="dataTableRef"
v-loading="loading"
:data="list"
border
highlight-current-row
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="60" />
<el-table-column label="通知标题" prop="title" min-width="200" />
<el-table-column align="center" label="通知类型" width="150">
<template #default="scope">
<DictTag v-model="scope.row.type" :code="'notice_type'" />
</template>
</el-table-column>
<el-table-column align="center" label="发布人" prop="publisherName" width="150" />
<el-table-column align="center" label="通知等级" width="100">
<template #default="scope">
<DictTag v-model="scope.row.level" code="notice_level" />
</template>
</el-table-column>
<el-table-column align="center" label="通告目标类型" prop="targetType" min-width="100">
<template #default="scope">
<el-tag v-if="scope.row.targetType === NOTICE_TARGET_ALL" type="warning">全体</el-tag>
<el-tag v-if="scope.row.targetType === NOTICE_TARGET_SPECIFIED" type="success">
指定
</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="发布状态" min-width="100">
<template #default="scope">
<el-tag v-if="scope.row.publishStatus === NOTICE_STATUS_DRAFT" type="info">
未发布
</el-tag>
<el-tag v-else-if="scope.row.publishStatus === NOTICE_STATUS_PUBLISHED" type="success">
发布
</el-tag>
<el-tag v-else-if="scope.row.publishStatus === NOTICE_STATUS_REVOKED" type="warning">
已撤回
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作时间" width="250">
<template #default="scope">
<div class="flex-x-start">
<span>创建时间</span>
<span>{{ scope.row.createTime || "-" }}</span>
</div>
<div class="page-table-wrapper">
<el-table
ref="dataTableRef"
v-loading="loading"
:data="list"
class="page-table"
border
height="100%"
highlight-current-row
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="60" />
<el-table-column label="通知标题" prop="title" min-width="200" />
<el-table-column align="center" label="通知类型" width="150">
<template #default="scope">
<DictTag v-model="scope.row.type" :code="'notice_type'" />
</template>
</el-table-column>
<el-table-column align="center" label="发布人" prop="publisherName" width="150" />
<el-table-column align="center" label="通知等级" width="100">
<template #default="scope">
<DictTag v-model="scope.row.level" code="notice_level" />
</template>
</el-table-column>
<el-table-column align="center" label="通告目标类型" prop="targetType" min-width="100">
<template #default="scope">
<el-tag v-if="scope.row.targetType === NOTICE_TARGET_ALL" type="warning">全体</el-tag>
<el-tag v-if="scope.row.targetType === NOTICE_TARGET_SPECIFIED" type="success">
指定
</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="发布状态" min-width="100">
<template #default="scope">
<el-tag v-if="scope.row.publishStatus === NOTICE_STATUS_DRAFT" type="info">
发布
</el-tag>
<el-tag
v-else-if="scope.row.publishStatus === NOTICE_STATUS_PUBLISHED"
type="success"
>
已发布
</el-tag>
<el-tag v-else-if="scope.row.publishStatus === NOTICE_STATUS_REVOKED" type="warning">
已撤回
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作时间" width="250">
<template #default="scope">
<div class="flex-x-start">
<span>创建时间</span>
<span>{{ scope.row.createTime || "-" }}</span>
</div>
<div v-if="scope.row.publishStatus === NOTICE_STATUS_PUBLISHED" class="flex-x-start">
<span>发布时间</span>
<span>{{ scope.row.publishTime || "-" }}</span>
</div>
<div v-else-if="scope.row.publishStatus === NOTICE_STATUS_REVOKED" class="flex-x-start">
<span>撤回时间</span>
<span>{{ scope.row.revokeTime || "-" }}</span>
</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="150">
<template #default="scope">
<el-button type="primary" size="small" link @click="openDetailDialog(scope.row.id)">
查看
</el-button>
<el-button
v-if="scope.row.publishStatus !== NOTICE_STATUS_PUBLISHED"
v-hasPerm="['sys:notice:publish']"
type="primary"
size="small"
link
@click="handlePublish(scope.row.id)"
>
发布
</el-button>
<el-button
v-if="scope.row.publishStatus === NOTICE_STATUS_PUBLISHED"
v-hasPerm="['sys:notice:revoke']"
type="primary"
size="small"
link
@click="handleRevoke(scope.row.id)"
>
撤回
</el-button>
<el-button
v-if="scope.row.publishStatus !== NOTICE_STATUS_PUBLISHED"
v-hasPerm="['sys:notice:update']"
type="primary"
size="small"
link
@click="openDialog(scope.row.id)"
>
编辑
</el-button>
<el-button
v-if="scope.row.publishStatus !== NOTICE_STATUS_PUBLISHED"
v-hasPerm="['sys:notice:delete']"
type="danger"
size="small"
link
@click="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<div v-if="scope.row.publishStatus === NOTICE_STATUS_PUBLISHED" class="flex-x-start">
<span>发布时间</span>
<span>{{ scope.row.publishTime || "-" }}</span>
</div>
<div
v-else-if="scope.row.publishStatus === NOTICE_STATUS_REVOKED"
class="flex-x-start"
>
<span>撤回时间</span>
<span>{{ scope.row.revokeTime || "-" }}</span>
</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="150">
<template #default="scope">
<el-button type="primary" size="small" link @click="openDetailDialog(scope.row.id)">
查看
</el-button>
<el-button
v-if="scope.row.publishStatus !== NOTICE_STATUS_PUBLISHED"
v-hasPerm="['sys:notice:publish']"
type="primary"
size="small"
link
@click="handlePublish(scope.row.id)"
>
发布
</el-button>
<el-button
v-if="scope.row.publishStatus === NOTICE_STATUS_PUBLISHED"
v-hasPerm="['sys:notice:revoke']"
type="primary"
size="small"
link
@click="handleRevoke(scope.row.id)"
>
撤回
</el-button>
<el-button
v-if="scope.row.publishStatus !== NOTICE_STATUS_PUBLISHED"
v-hasPerm="['sys:notice:update']"
type="primary"
size="small"
link
@click="openDialog(scope.row.id)"
>
编辑
</el-button>
<el-button
v-if="scope.row.publishStatus !== NOTICE_STATUS_PUBLISHED"
v-hasPerm="['sys:notice:delete']"
type="danger"
size="small"
link
@click="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-if="total > 0"

View File

@@ -54,97 +54,101 @@
</div>
</div>
<el-table
v-loading="loading"
:data="list"
highlight-current-row
border
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
align="center"
:selectable="isTenantSelectable"
/>
<el-table-column label="租户名称" prop="name" min-width="140" />
<el-table-column label="租户编码" prop="code" width="120" />
<el-table-column label="租户套餐" min-width="120">
<template #default="scope">
<span>{{ resolvePlanLabel(scope.row.planId) }}</span>
</template>
</el-table-column>
<el-table-column label="域名" prop="domain" min-width="140" />
<el-table-column label="联系人" prop="contactName" width="100" />
<el-table-column label="电话" prop="contactPhone" width="120" />
<el-table-column label="状态" width="90" align="center">
<template #default="scope">
<el-tag :type="scope.row.status === CommonStatus.ENABLED ? 'success' : 'info'">
{{ scope.row.status === CommonStatus.ENABLED ? "正常" : "禁用" }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="过期时间" prop="expireTime" width="160" />
<el-table-column label="创建时间" prop="createTime" width="160" />
<el-table-column fixed="right" label="操作" width="320">
<template #default="scope">
<el-tooltip
v-if="!isPlatformTenantId(scope.row.id)"
content="更换租户套餐(将影响可用功能)"
placement="top"
>
<div class="page-table-wrapper">
<el-table
v-loading="loading"
:data="list"
highlight-current-row
class="page-table"
border
height="100%"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
align="center"
:selectable="isTenantSelectable"
/>
<el-table-column label="租户名称" prop="name" min-width="140" />
<el-table-column label="租户编码" prop="code" width="120" />
<el-table-column label="租户套餐" min-width="120">
<template #default="scope">
<span>{{ resolvePlanLabel(scope.row.planId) }}</span>
</template>
</el-table-column>
<el-table-column label="域名" prop="domain" min-width="140" />
<el-table-column label="联系人" prop="contactName" width="100" />
<el-table-column label="电话" prop="contactPhone" width="120" />
<el-table-column label="状态" width="90" align="center">
<template #default="scope">
<el-tag :type="scope.row.status === CommonStatus.ENABLED ? 'success' : 'info'">
{{ scope.row.status === CommonStatus.ENABLED ? "正常" : "禁用" }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="过期时间" prop="expireTime" width="160" />
<el-table-column label="创建时间" prop="createTime" width="160" />
<el-table-column fixed="right" label="操作" width="320">
<template #default="scope">
<el-tooltip
v-if="!isPlatformTenantId(scope.row.id)"
content="更换租户套餐(将影响可用功能)"
placement="top"
>
<el-button
v-hasPerm="['sys:tenant:plan-assign']"
type="primary"
size="small"
link
icon="menu"
title="更换租户套餐(将影响可用功能)"
@click="openTenantPlanDialog(scope.row)"
>
更换套餐
</el-button>
</el-tooltip>
<el-tooltip
v-if="!isPlatformTenantId(scope.row.id)"
content="在当前套餐范围内配置租户可用功能"
placement="top"
>
<el-button
v-hasPerm="['sys:tenant:plan-assign']"
type="primary"
size="small"
link
icon="setting"
:disabled="!scope.row.planId"
title="在当前套餐范围内配置租户可用功能"
@click="openTenantCustomizeDialog(scope.row)"
>
套餐功能配置
</el-button>
</el-tooltip>
<el-button
v-hasPerm="['sys:tenant:plan-assign']"
v-hasPerm="['sys:tenant:update']"
type="primary"
size="small"
link
icon="menu"
title="更换租户套餐(将影响可用功能)"
@click="openTenantPlanDialog(scope.row)"
@click="openDialog(scope.row.id)"
>
更换套餐
编辑
</el-button>
</el-tooltip>
<el-tooltip
v-if="!isPlatformTenantId(scope.row.id)"
content="在当前套餐范围内配置租户可用功能"
placement="top"
>
<el-button
v-hasPerm="['sys:tenant:plan-assign']"
type="primary"
v-if="!isPlatformTenantId(scope.row.id)"
v-hasPerm="['sys:tenant:delete']"
type="danger"
size="small"
link
icon="setting"
:disabled="!scope.row.planId"
title="在当前套餐范围内配置租户可用功能"
@click="openTenantCustomizeDialog(scope.row)"
@click="handleDelete(scope.row.id)"
>
套餐功能配置
删除
</el-button>
</el-tooltip>
<el-button
v-hasPerm="['sys:tenant:update']"
type="primary"
size="small"
link
@click="openDialog(scope.row.id)"
>
编辑
</el-button>
<el-button
v-if="!isPlatformTenantId(scope.row.id)"
v-hasPerm="['sys:tenant:delete']"
type="danger"
size="small"
link
@click="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-if="total > 0"

View File

@@ -50,52 +50,61 @@
</div>
</div>
<el-table v-loading="loading" :data="list" highlight-current-row border>
<el-table-column type="index" label="序号" width="60" />
<el-table-column label="套餐名称" prop="name" min-width="120" />
<el-table-column label="套餐编码" prop="code" width="160" />
<el-table-column label="状态" width="100" align="center">
<template #default="scope">
<el-tag v-if="scope.row.status === CommonStatus.ENABLED" type="success">启用</el-tag>
<el-tag v-else type="info">停用</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" prop="sort" width="80" align="center" />
<el-table-column label="备注" prop="remark" min-width="140" />
<el-table-column label="创建时间" prop="createTime" width="180" />
<el-table-column fixed="right" label="操作" width="240">
<template #default="scope">
<el-button
v-hasPerm="['sys:tenant-plan:assign']"
type="primary"
size="small"
link
icon="menu"
@click="handleAssignMenuClick(scope.row)"
>
菜单配置
</el-button>
<el-button
v-hasPerm="['sys:tenant-plan:update']"
type="primary"
size="small"
link
@click="handleEditClick(scope.row.id)"
>
编辑
</el-button>
<el-button
v-hasPerm="['sys:tenant-plan:delete']"
type="danger"
size="small"
link
@click="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<div class="page-table-wrapper">
<el-table
v-loading="loading"
:data="list"
class="page-table"
height="100%"
highlight-current-row
border
>
<el-table-column type="index" label="序号" width="60" />
<el-table-column label="套餐名称" prop="name" min-width="120" />
<el-table-column label="套餐编码" prop="code" width="160" />
<el-table-column label="状态" width="100" align="center">
<template #default="scope">
<el-tag v-if="scope.row.status === CommonStatus.ENABLED" type="success">启用</el-tag>
<el-tag v-else type="info">停用</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" prop="sort" width="80" align="center" />
<el-table-column label="备注" prop="remark" min-width="140" />
<el-table-column label="创建时间" prop="createTime" width="180" />
<el-table-column fixed="right" label="操作" width="240">
<template #default="scope">
<el-button
v-hasPerm="['sys:tenant-plan:assign']"
type="primary"
size="small"
link
icon="menu"
@click="handleAssignMenuClick(scope.row)"
>
菜单配置
</el-button>
<el-button
v-hasPerm="['sys:tenant-plan:update']"
type="primary"
size="small"
link
@click="handleEditClick(scope.row.id)"
>
编辑
</el-button>
<el-button
v-hasPerm="['sys:tenant-plan:delete']"
type="danger"
size="small"
link
@click="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-if="total > 0"