list.uvue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <template>
  2. <cl-page>
  3. <view class="p-3">
  4. <demo-item :label="t('基础用法')">
  5. <cl-list-item :label="t('用户名')">
  6. <cl-text>神仙都没用</cl-text>
  7. </cl-list-item>
  8. </demo-item>
  9. <demo-item :label="t('内容靠左')">
  10. <cl-list-item
  11. :label="t('QQ')"
  12. justify="start"
  13. :pt="{
  14. label: {
  15. className: '!w-10'
  16. }
  17. }"
  18. >
  19. <cl-text>615206459</cl-text>
  20. </cl-list-item>
  21. </demo-item>
  22. <demo-item :label="t('带箭头')">
  23. <cl-list-item label="年龄" arrow>
  24. <cl-text>18</cl-text>
  25. </cl-list-item>
  26. </demo-item>
  27. <demo-item :label="t('带图标')">
  28. <cl-list-item :label="t('余额')" icon="wallet-line">
  29. <cl-text>10,9000</cl-text>
  30. </cl-list-item>
  31. </demo-item>
  32. <demo-item :label="t('带图片')">
  33. <cl-list-item
  34. arrow
  35. :pt="{
  36. image: {
  37. width: 48,
  38. height: 48
  39. },
  40. label: {
  41. size: 16
  42. }
  43. }"
  44. :label="t('神仙都没用')"
  45. image="https://unix.cool-js.com/images/demo/avatar.jpg"
  46. >
  47. </cl-list-item>
  48. </demo-item>
  49. <demo-item :label="t('折叠')">
  50. <cl-list-item :label="t('点击展开')" collapse arrow>
  51. <template #collapse>
  52. <view class="bg-surface-100 dark:bg-surface-700 p-3 rounded-xl">
  53. <cl-text
  54. >云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。</cl-text
  55. >
  56. </view>
  57. </template>
  58. </cl-list-item>
  59. </demo-item>
  60. <demo-item :label="t('可滑动')">
  61. <cl-list-item :label="t('左滑编辑')" swipeable>
  62. <template #swipe-right>
  63. <view
  64. class="bg-green-500 w-20 h-full flex flex-row items-center justify-center"
  65. >
  66. <cl-text color="white">{{ t("编辑") }}</cl-text>
  67. </view>
  68. </template>
  69. </cl-list-item>
  70. <cl-list-item ref="listItemRef" :label="t('右滑删除')" swipeable>
  71. <template #swipe-left>
  72. <view
  73. class="bg-red-500 w-20 h-full flex flex-row items-center justify-center"
  74. @tap="onDelete"
  75. >
  76. <cl-text color="white">{{ t("删除") }}</cl-text>
  77. </view>
  78. </template>
  79. </cl-list-item>
  80. </demo-item>
  81. <demo-item :label="t('禁用')">
  82. <cl-list-item :label="t('账号')" disabled>
  83. <cl-text>1234567890</cl-text>
  84. </cl-list-item>
  85. </demo-item>
  86. <demo-item :label="t('列表')">
  87. <cl-list border title="我的列表">
  88. <cl-list-item :label="t('我的订单')" hoverable> </cl-list-item>
  89. <cl-list-item :label="t('我的收藏')" hoverable> </cl-list-item>
  90. <cl-list-item :label="t('我的钱包')" hoverable> </cl-list-item>
  91. </cl-list>
  92. </demo-item>
  93. </view>
  94. </cl-page>
  95. </template>
  96. <script lang="ts" setup>
  97. import { t } from "@/.cool";
  98. import DemoItem from "../components/item.uvue";
  99. import { useUi } from "@/uni_modules/cool-ui";
  100. import { ref } from "vue";
  101. const ui = useUi();
  102. const listItemRef = ref<ClListItemComponentPublicInstance | null>(null);
  103. function onDelete() {
  104. ui.showToast({
  105. message: "删除成功"
  106. });
  107. listItemRef.value!.resetSwipe();
  108. }
  109. </script>