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:/
没有合适的资源?快使用搜索试试~ 我知道了~
基于微信小程序的记账本的设计与实现
共1349个文件
vue:283个
js:257个
class:159个
需积分: 0 6 下载量 36 浏览量
更新于2024-05-07
1
收藏 6.74MB ZIP 举报
基于微信小程序的记账本的设计与实现
摘要:在数字经济的推动下,个人财务管理的需求日益增长,对应用的便捷性和功能性提出了更高要求。本研究开发了一款基于Java后端服务架构的微信小程序记账应用,旨在通过优化数据流和用户界面(UI)设计,提供一个高效、直观的财务数据管理平台。在系统设计阶段,我们采纳了敏捷开发方法论,以用户故事映射和原型迭代为核心,确保了功能需求的精准实现。利用UniApp框架的编译时代码转换能力,实现了一套代码多端运行的策略,提升了开发效率并确保了不同平台间的UI一致性。后端依托Spring boot框架结合MyBatis plus,构建了稳定且可扩展的服务层。通过RESTful API设计,实现了前后端分离的架构模式,增强了系统的模块化和维护性。
关键词:记账;Java语言;微信小程序;Spring Boot框架;MySQL数据库
收起资源包目录
基于微信小程序的记账本的设计与实现 (1349个子文件)
.browserslistrc 34B
RedisUtil.class 11KB
WechatAuthServiceImpl.class 9KB
MenuBO.class 9KB
CommonLogDO.class 9KB
RecordDetailServiceImpl.class 9KB
UserController.class 8KB
LogAspect.class 8KB
RoleController.class 8KB
MenuServiceImpl.class 8KB
HttpUtil.class 8KB
EncryptUtil.class 7KB
MenuDO.class 7KB
MenuController.class 7KB
SecurityConfig.class 7KB
JWTAuthenticationFilter.class 7KB
EditMenuVO.class 7KB
JWTAuthorizationFilter.class 6KB
AddMenuVO.class 6KB
RecordController.class 6KB
StringUtil.class 6KB
QrcodeController.class 6KB
DateUtil.class 6KB
UserServiceImpl.class 5KB
UserDO.class 5KB
UserRoleDTO.class 5KB
RecordDetailDO.class 5KB
SwaggerConfiguration.class 5KB
RoleServiceImpl.class 5KB
SpendCategoryDO.class 5KB
GlobalExceptionHandler.class 5KB
LoginSuccessVO.class 5KB
ServletUtil.class 5KB
RoleMenuServiceImpl.class 5KB
SpendCategoryController.class 5KB
AddUserVO.class 5KB
AnalysisController.class 4KB
LoginRequiredAspect.class 4KB
RecordTypeDO.class 4KB
JWTConfig.class 4KB
CodeMsg.class 4KB
RegisterVO.class 4KB
WechatUserVO.class 4KB
EditUserVO.class 4KB
MenuBO$MenuBOBuilder.class 4KB
IpUtil.class 4KB
GetUsersVO.class 4KB
GetRolesVO.class 4KB
JWTUser.class 4KB
CommonLogDO$CommonLogDOBuilder.class 4KB
RecordDTO.class 4KB
RecordVO.class 4KB
EditRoleVO.class 4KB
GetRecordsByMonthVO.class 4KB
RoleMenuDO.class 4KB
UserRoleDO.class 4KB
SpendCategoryController$GroupSpendCategory.class 4KB
RoleMenuVO.class 3KB
WechatAuthController.class 3KB
WechatUserDO.class 3KB
RoleDO.class 3KB
SpringContextUtil.class 3KB
SpendCategoryTotalDTO.class 3KB
QrCodeInfoBO.class 3KB
MenuDO$MenuDOBuilder.class 3KB
GetMenusVO.class 3KB
BaseDO.class 3KB
RoleMenuDTO.class 3KB
GetSixMonthRecordsVO.class 3KB
HomeController.class 3KB
UserMenuBO.class 3KB
RegisterController.class 3KB
UserRoleServiceImpl.class 3KB
RecordDetailDO$RecordDetailDOBuilder.class 3KB
ThreadUtil.class 3KB
PageBO.class 3KB
UserDO$UserDOBuilder.class 3KB
SpendCategoryDO$SpendCategoryDOBuilder.class 2KB
MonthRecordBO.class 2KB
AccountBaseSettingVO.class 2KB
RecordDetailService.class 2KB
Result.class 2KB
AddRoleVO.class 2KB
LoginVO.class 2KB
QrcodeAuthorizationVO.class 2KB
RecordDetailDTO.class 2KB
SpendCategoryDTO.class 2KB
ThreadPoolConfig.class 2KB
PageVO.class 2KB
RecordTypeDO$RecordTypeDOBuilder.class 2KB
AddressUtil.class 2KB
AccountController.class 2KB
RedisConfig.class 2KB
AsyncManager.class 2KB
BusinessType.class 2KB
SpendCategoryTotalDTO$SpendCategoryTotalDTOBuilder.class 2KB
PasswordUtil.class 2KB
SpendCategoryServiceImpl.class 2KB
RecordTypeServiceImpl.class 2KB
UserDetailsServiceImpl.class 2KB
共 1349 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源推荐
资源预览
资源评论
189 浏览量
5星 · 资源好评率100%
2024-04-05 上传
2024-04-06 上传
5星 · 资源好评率100%
166 浏览量
137 浏览量
2024-05-27 上传
198 浏览量
2021-03-15 上传
2024-02-24 上传
199 浏览量
177 浏览量
5星 · 资源好评率100%
5星 · 资源好评率100%
2024-05-25 上传
101 浏览量
5星 · 资源好评率100%
5星 · 资源好评率100%
139 浏览量
137 浏览量
5星 · 资源好评率100%
106 浏览量
125 浏览量
5星 · 资源好评率100%
133 浏览量
资源评论
Shimmer626
- 粉丝: 43
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 手套手势检测7-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- CentOS bridge 工具包 bridge-utils-1.6-1.33.x86-64.rpm
- 手势检测7-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 基于python flask实现某瓣数据可视化数据分析平台
- awewq1132323
- 手写流程图检测31-YOLO(v5至v8)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- frida拦截微信小程序云托管API
- 肝脏及其肿瘤分割的 CT 数据集,已经切片成jpg数据,约2w张数据和mask
- 基于Java的网上教务评教管理系统的设计与实现.doc
- 2024圣诞节海外消费市场趋势及营销策略分析报告
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功