list.vue 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <view class="h100 page-bg-color" :style="{paddingTop: diStatusBarHeight + 44 + 'px'}">
  3. <u-navbar title="列表" height="44" :immersive="true" :background="{background: '#f8f8f8'}" :border-bottom="false">
  4. <u-icon @click="handleCreate" style="margin-right: 40rpx;" slot="right" name="plus" size="28" label="新建" color="#19be6b" label-color="#19be6b"/>
  5. </u-navbar>
  6. <scroll-view class="di-scroll" scroll-y @scrolltolower="handleOnreachBottom" :refresher-triggered="triggered"
  7. refresher-enabled @refresherrefresh="handlePullDownRefresh">
  8. <view class="di-scroll-list">
  9. <!-- 右滑 -->
  10. <u-swipe-action
  11. v-for="(item, index) in list"
  12. :show="activeIndex === item[primaryKey]"
  13. :key="index"
  14. :index='item.id'
  15. :options="actionOptions"
  16. @content-click="handleDetail"
  17. @click="handleActionClick"
  18. @open="handleActiveSwipeAction">
  19. <di-descriptions :title="item.title" label-col="4" value-col="8" :border-bottom="true" >
  20. <di-descriptions-item label="姓名" :value="item.value" :ellipsis="true"/>
  21. <di-descriptions-item label="创建时间" :value="item.createTime"/>
  22. </di-descriptions>
  23. </u-swipe-action>
  24. </view>
  25. <u-loadmore v-if="!triggered" :status="status" :loadText='loadText' margin-top="24" margin-bottom="24" />
  26. </scroll-view>
  27. <u-modal
  28. v-model="deleteShow"
  29. title="删除"
  30. :show-cancel-button="true"
  31. :confirm-color="$color.error"
  32. confirm-content="确认要删除吗?"
  33. @confirm="handleConfirmDel"
  34. @cancel="handleCancelDel">
  35. </u-modal>
  36. </view>
  37. </template>
  38. <script>
  39. import list from '@/mixins/list'
  40. export default {
  41. mixins: [list],
  42. methods: {
  43. /**
  44. * 获取数据列表 (重写函数)
  45. */
  46. async getList(replace = false) {
  47. let count = 10000
  48. setTimeout(() => {
  49. let list = []
  50. for (let i = 1; i <= this.page.pageSize; i++) {
  51. list.push({
  52. id: ++count,
  53. title: '标题' + count,
  54. value: 'Didoot',
  55. createTime: '2021-11-22 10:27'
  56. })
  57. }
  58. this.list = replace ? list : this.list.concat(list)
  59. this.page.pageIndex++
  60. this.triggered = false
  61. }, 2000)
  62. }
  63. }
  64. }
  65. </script>
  66. <style scoped lang="scss">
  67. </style>