|
- // components/List/index.js
- import { getDataByPath } from "../../utils/util"
- import { get } from "../../utils/api"
- Component({
- /**
- * 组件的属性列表
- */
- properties: {
- url: {
- type: String
- },
- dataPath: {
- type: String
- },
- list: {
- type: Array
- },
- params: {
- type: Object,
- },
- limit: {
- type: Number,
- value: 10
- },
- scrolling:{
- type:Boolean,
- value:true,
- },
- emptyText:{
- type:String,
- value:"暂无数据"
- }
- },
-
- /**
- * 组件的初始数据
- */
- data: {
- page: 1,
- limit: 10,
- more: true,
- loading: false
- },
- // 数据监听器
- observers: {
- "url,params"(url) {
- if (!url) return
- this.resetPage();
- },
- },
- /**
- * 组件的方法列表
- */
- methods: {
- loadMore() {
- let page = this.data.page + 1;
- this.setData({ page })
- this.getData();
- },
- getData() {
- if (!this.data.more) return
- if (!this.data.loading && (!this.data.params || Object.keys(this.data.params).length > 0)) {
- this.setData({ loading: true })
- // 增加租户id
- let {tenantId} = wx.getStorageSync('tenant')
- if(this.data?.params) {
- this.data.params.tenantId = tenantId
- }
- get(this.data.url, Object.assign({}, { page: this.data.page, limit: this.data.limit }, this.data.params || {})).then(res => {
- let records;
- if (res.code == 0) {
- records = getDataByPath(res, this.data.dataPath || "data.records")
- } else {
- records = [];
- }
- if (records.length < this.data.limit) {
- this.setData({ more: false })
- }
- this.triggerEvent("update-list", records)
- }).catch(e => {
- wx.showToast({
- title: e || '系统错误',
- duration: 1500,
- });
- }).finally(() => {
- this.setData({ loading: false })
- })
- }
- },
- resetPage() {
- this.setData({ more: true, page: 1 })
- this.triggerEvent('reset-list')
- this.getData();
- }
- }
- })
|