Table 重封装组件说明
====
封装说明
----
> 基础的使用方式与 API 与 [官方版(Table)](https://vuecomponent.github.io/ant-design-vue/components/table-cn/) 本一致,在其基础上,封装了加载数据的方法。
>
> 你无需在你是用表格的页面进行分页逻辑处理,仅需向 Table 组件传递绑定 `:data="Promise"` 对象即可
该 `table` 由 [@Saraka](https://github.com/saraka-tsukai) 完成封装
例子1
----
(基础使用)
```vue
<template>
<s-table
ref="table"
size="default"
:rowKey="(record) => record.data.id"
:columns="columns"
:data="loadData"
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
>
</s-table>
</template>
<script>
import STable from '@/components'
export default {
components: {
STable
},
data() {
return {
columns: [
{
title: '规则编号',
dataIndex: 'no'
},
{
title: '描述',
dataIndex: 'description'
},
{
title: '服务调用次数',
dataIndex: 'callNo',
sorter: true,
needTotal: true,
customRender: (text) => text + ' 次'
},
{
title: '状态',
dataIndex: 'status',
needTotal: true
},
{
title: '更新时间',
dataIndex: 'updatedAt',
sorter: true
}
],
// 查询条件参数
queryParam: {},
// 加载数据方法 必须为 Promise 对象
loadData: parameter => {
return this.$http.get('/service', {
params: Object.assign(parameter, this.queryParam)
}).then(res => {
return res.result
})
},
selectedRowKeys: [],
selectedRows: []
}
},
methods: {
onSelectChange (selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys
this.selectedRows = selectedRows
}
}
}
</script>
```
例子2
----
(简单的表格,最后一列是各种操作)
```vue
<template>
<s-table
ref="table"
size="default"
:columns="columns"
:data="loadData"
>
<span slot="action" slot-scope="text, record">
<a>编辑</a>
<a-divider type="vertical"/>
<a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a href="javascript:;">1st menu item</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;">2nd menu item</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;">3rd menu item</a>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</s-table>
</template>
<script>
import STable from '@/components/table/'
export default {
components: {
STable
},
data() {
return {
columns: [
{
title: '规则编号',
dataIndex: 'no'
},
{
title: '描述',
dataIndex: 'description'
},
{
title: '服务调用次数',
dataIndex: 'callNo',
},
{
title: '状态',
dataIndex: 'status',
},
{
title: '更新时间',
dataIndex: 'updatedAt',
},
{
table: '操作',
dataIndex: 'action',
scopedSlots: {customRender: 'action'},
}
],
// 查询条件参数
queryParam: {},
// 加载数据方法 必须为 Promise 对象
loadData: parameter => {
return this.$http.get('/service', {
params: Object.assign(parameter, this.queryParam)
}).then(res => {
return res.result
})
},
}
},
methods: {
edit(row) {
// axios 发送数据到后端 修改数据成功后
// 调用 refresh() 重新加载列表数据
// 这里 setTimeout 模拟发起请求的网络延迟..
setTimeout(() => {
this.$refs.table.refresh() // refresh() 不传参默认值 false 不刷新到分页第一页
}, 1500)
}
}
}
</script>
```
内置方法
----
通过 `this.$refs.table` 调用
`this.$refs.table.refresh(true)` 刷新列表 (用户新增/修改数据后,重载列表数据)
> 注意:要调用 `refresh(bool)` 需要给表格组件设定 `ref` 值
>
> `refresh()` 方法可以传一个 `bool` 值,当有传值 或值为 `true` 时,则刷新时会强制刷新到第一页(常用户页面 搜索 按钮进行搜索时,结果从第一页开始分页)
内置属性
----
> 除去 `a-table` 自带属性外,还而外提供了一些额外属性属性
| 属性 | 说明 | 类型 | 默认值 |
| -------------- | ----------------------------------------------- | ----------------- | ------ |
| alert | 设置是否显示表格信息栏 | [object, boolean] | null |
| showPagination | 显示分页选择器,可传 'auto' \| boolean | [string, boolean] | 'auto' |
| data | 加载数据方法 必须为 `Promise` 对象 **必须绑定** | Promise | - |
`alert` 属性对象:
```javascript
alert: {
show: Boolean,
clear: [Function, Boolean]
}
```
注意事项
----
> 你可能需要为了与后端提供的接口返回结果一致而去修改以下代码:
> (需要注意的是,这里的修改是全局性的,意味着整个项目所有使用该 table 组件都需要遵守这个返回结果定义的字段。)
>
> 文档中的结构有可能由于组件 bug 进行修正而改动。实际修改请以当时最新版本为准
修改 `@/components/table/index.js` 第 156 行起
```javascript
result.then(r => {
this.localPagination = this.showPagination && Object.assign({}, this.localPagination, {
current: r.pageNo, // 返回结果中的当前分页数
total: r.totalCount, // 返回结果中的总记录数
showSizeChanger: this.showSizeChanger,
pageSize: (pagination && pagination.pageSize) ||
this.localPagination.pageSize
}) || false
// 为防止删除数据后导致页面当前页面数据长度为 0 ,自动翻页到上一页
if (r.data.length === 0 && this.showPagination && this.localPagination.current > 1) {
this.localPagination.current--
this.loadData()
return
}
// 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小
// 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能
try {
if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.pageNo * this.localPagination.pageSize))) {
this.localPagination.hideOnSinglePage = true
}
} catch (e) {
this.localPagination = false
}
console.log('loadData -> this.localPagination', this.localPagination)
this.localDataSource = r.data // 返回结果中的数组数据
this.localLoading = false
})
```
返回 JSON 例子:
```json
{
"message": "",
"result": {
"data": [{
id: 1,
cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png',
title: 'Alipay',
description: '那是一种内在的东西, 他们到达不了,也无法触及的',
status: 1,
updatedAt: '2018-07-26 00:00:00'
},
{
id: 2,
cover: 'https:/
没有合适的资源?快使用搜索试试~ 我知道了~
基于springboot,ant-design-vue-pro的简易后台管理系统+源代码+文档说明
共392个文件
vue:132个
java:104个
js:83个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 89 浏览量
2023-11-28
16:20:16
上传
评论
收藏 957KB ZIP 举报
温馨提示
技术架构: ----------------------------------- #### 开发环境 - 语言:Java 8 - IDE(JAVA): IDEA安装lombok插件 - IDE(前端): WebStorm 或者 IDEA - 依赖管理:Maven - 数据库:MySQL5.7+ - 缓存:Redis或本地缓存 #### 后端 - 基础框架:Spring Boot 2.3.1.RELEASE - 持久层框架:Mybatis-plus_3.3.2 - 安全框架:Apache Shiro 1.5.3,Jwt_3.10.3 - 数据库连接池:阿里巴巴Druid 1.1.17 - 缓存框架:redis? - 日志打印:logback - 其他:Swagger-ui,quartz, lombok(简化代码)等。 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
基于springboot,ant-design-vue-pro的简易后台管理系统+源代码+文档说明 (392个子文件)
.env.development 93B
.dockerignore 254B
.editorconfig 661B
.env 97B
.eslintignore 4B
List.ftl 6KB
Modal.ftl 4KB
Controller.ftl 4KB
.gitattributes 26B
.gitignore 2KB
.gitignore 214B
index.html 2KB
SysUserController.java 26KB
SysPermissionController.java 24KB
LoginController.java 13KB
SysUserServiceImpl.java 10KB
SysDictController.java 10KB
SysRoleController.java 9KB
SysPermissionServiceImpl.java 9KB
ShiroConfig.java 9KB
SysBaseApiImpl.java 8KB
QuartzJobController.java 6KB
ShiroRealm.java 6KB
SysPositionController.java 5KB
AutoLogAspect.java 5KB
MybatisInterceptor.java 5KB
PasswordUtil.java 5KB
DictAspect.java 5KB
SysDictItemController.java 5KB
QuartzJobServiceImpl.java 5KB
RandImageUtil.java 5KB
SysDictServiceImpl.java 4KB
MemoryZCache.java 4KB
Swagger2Config.java 4KB
CodeGenerator.java 4KB
SysLogController.java 4KB
SysPermissionTree.java 4KB
JwtFilter.java 4KB
IPUtil.java 3KB
SysPermission.java 3KB
ISysUserService.java 3KB
SysRolePermissionServiceImpl.java 3KB
SysLogServiceImpl.java 3KB
SysUser.java 3KB
JwtUtil.java 2KB
WebMvcConfiguration.java 2KB
ISysBaseAPI.java 2KB
RedisZCache.java 2KB
SysPosition.java 2KB
Result.java 2KB
SysLog.java 2KB
SpringContextHolder.java 2KB
SysUserMapper.java 2KB
DuplicateCheckController.java 2KB
CommonConfig.java 2KB
CommonConstant.java 2KB
PermissionDataUtil.java 2KB
SysDictMapper.java 2KB
SysDictTree.java 2KB
QuartzJob.java 2KB
SysRoleServiceImpl.java 2KB
SysPermissionMapper.java 1KB
SysDict.java 1KB
SqlInjectionUtil.java 1KB
ISysLogService.java 1KB
TreeModel.java 1KB
SysRole.java 1KB
LoginUser.java 1KB
CommonUtil.java 1KB
ISysDictService.java 1KB
ExceptionHandlerController.java 1KB
DateUtil.java 1KB
ZBootApplication.java 1KB
ISysPermissionService.java 1KB
RandomUtil.java 1KB
SysLogMapper.java 1KB
JsonUtil.java 1KB
SysDictItem.java 1KB
ResourceCheckFilter.java 1KB
ComboModel.java 992B
DuplicateCheckVo.java 968B
SysRolePermission.java 898B
SysRoleMapper.java 869B
SysUserRoleMapper.java 867B
MybatisPlusConfig.java 846B
SysUserRole.java 837B
RestTemplateConfig.java 813B
DictModel.java 780B
SampleParamJob.java 761B
ISysRolePermissionService.java 720B
CacheConstant.java 679B
AutoLog.java 639B
IQuartzJobService.java 589B
SysLoginModel.java 555B
ISysRoleService.java 537B
SysUserRoleServiceImpl.java 526B
SysDictItemServiceImpl.java 510B
SampleJob.java 509B
SysUserRoleVO.java 503B
JwtToken.java 483B
共 392 条
- 1
- 2
- 3
- 4
资源评论
- xiaoxiaodefather2024-04-23资源不错,很实用,内容全面,介绍详细,很好用,谢谢分享。
奋斗奋斗再奋斗的ajie
- 粉丝: 1199
- 资源: 2908
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功