123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <template>
- <mescroll-uni :ref="'mescrollRef'+i" @init="mescrollInit" :height="height" :down="downOption" @down="downCallback"
- :up="upOption" @up="upCallback" @emptyclick="emptyClick">
- <view :id="'good'+good.id" class="good-list paddingr20" v-for="good in goods" :key="good.id" @click="toDetail(good.id)">
- <view class="flex flex-space-between row">
- <view class="left flex">
- <view>辽</view>
- <view>营口 鲅鱼圈</view>
- <view>--------></view>
- <view class="">
- 京
- </view>
- <view>背景 通州</view>
- </view>
- <view class="right">
- 21:51
- </view>
- </view>
- <view class="flex flex-space-between row">
- <view class="left flex">
- <view>货距~10km</view>
- <view>运距~35km</view>
- </view>
- <view class="right">
- 300元/吨
- </view>
- </view>
- <view class="flex">
- <view>玉米|</view>
- <view>3.8-5米|</view>
- <view>厢式/平板/高栏|</view>
- <view>10吨</view>
- </view>
- <view class="flex">
- <view>运输过程中其他费用,发货方承担。</view>
- </view>
- <view class="flex flex-space-between">
- <view class="left flex">
- <u--image :showLoading="true" :src="good.goodImg" width="40px" height="40px"></u--image>
- <view>张颖</view>
- <view>发运106次</view>
- <view>好评率99%</view>
- </view>
- <view class="right">
- <view @click.stop="grabOrders(good.id)">抢单</view>
- </view>
- </view>
- </view>
- </mescroll-uni>
- </template>
- <script>
- import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
- import MescrollMoreItemMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js";
- import {
- apiGoods
- } from "@/api/mock.js"
- export default {
- mixins: [MescrollMixin, MescrollMoreItemMixin], // 注意此处还需使用MescrollMoreItemMixin (必须写在MescrollMixin后面)
- data() {
- return {
- downOption: {
- auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)
- },
- upOption: {
- auto: false, // 不自动加载
- // page: {
- // num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
- // size: 10 // 每页数据的数量
- // },
- noMoreSize: 4, //如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看; 默认5
- empty: {
- tip: '~ 空空如也 ~', // 提示
- btnText: '去看看'
- }
- },
- goods: [] //列表数据
- }
- },
- props: {
- i: Number, // 每个tab页的专属下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)
- index: { // 当前tab的下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)
- type: Number,
- default () {
- return 0
- }
- },
- tabs: { // 为了请求数据,演示用,可根据自己的项目判断是否要传
- type: Array,
- default () {
- return []
- }
- },
- height: [Number, String] // mescroll的高度
- },
- methods: {
- /*下拉刷新的回调 */
- downCallback() {
- // 这里加载你想下拉刷新的数据, 比如刷新轮播数据
- // loadSwiper();
- // 下拉刷新的回调,默认重置上拉加载列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 )
- this.mescroll.resetUpScroll()
- },
- /*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
- upCallback(page) {
- //联网加载数据
- let keyword = this.tabs[this.i].name
- apiGoods(page.num, page.size, keyword).then(res => {
- //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
- this.mescroll.endSuccess(res.list.length);
- //设置列表数据
- if (page.num == 1) this.goods = []; //如果是第一页需手动制空列表
- this.goods = this.goods.concat(res.list); //追加新数据
- }).catch(() => {
- //联网失败, 结束加载
- this.mescroll.endErr();
- })
- },
- //点击空布局按钮的回调
- emptyClick() {
- uni.showToast({
- title: '点击了按钮,具体逻辑自行实现'
- })
- },
- // 跳转详情
- toDetail(id){
- console.log('点击详情id:',id)
- uni.$u.route('/pages/goodSource/shippingDetails', {
- id:id,
- });
- },
- //抢单
- grabOrders(id){
- console.log('抢单id:',id)
- }
- }
- }
- </script>
|