list.uvue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. }"
  41. :label="t('神仙都没用')"
  42. image="https://unix.cool-js.com/images/demo/avatar.jpg"
  43. >
  44. </cl-list-item>
  45. </demo-item>
  46. <demo-item :label="t('折叠')">
  47. <cl-list-item :label="t('点击展开')" collapse arrow>
  48. <template #collapse>
  49. <view class="bg-surface-100 dark:bg-surface-700 p-3 rounded-xl">
  50. <cl-text
  51. >云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。</cl-text
  52. >
  53. </view>
  54. </template>
  55. </cl-list-item>
  56. </demo-item>
  57. <demo-item :label="t('可滑动')">
  58. <cl-list-item :label="t('左滑编辑')" swipeable>
  59. <template #swipe-right>
  60. <view
  61. class="bg-green-500 w-20 h-full flex flex-row items-center justify-center"
  62. >
  63. <text class="text-white text-md">{{ t("编辑") }}</text>
  64. </view>
  65. </template>
  66. </cl-list-item>
  67. <cl-list-item ref="listItemRef" :label="t('右滑删除')" swipeable>
  68. <template #swipe-left>
  69. <view
  70. class="bg-red-500 w-20 h-full flex flex-row items-center justify-center"
  71. @tap="onDelete"
  72. >
  73. <text class="text-white text-md">{{ t("删除") }}</text>
  74. </view>
  75. </template>
  76. </cl-list-item>
  77. </demo-item>
  78. <demo-item :label="t('禁用')">
  79. <cl-list-item :label="t('账号')" disabled>
  80. <cl-text>1234567890</cl-text>
  81. </cl-list-item>
  82. </demo-item>
  83. <demo-item :label="t('列表')">
  84. <cl-list border>
  85. <cl-list-item :label="t('我的订单')" hoverable> </cl-list-item>
  86. <cl-list-item :label="t('我的收藏')" hoverable> </cl-list-item>
  87. <cl-list-item :label="t('我的钱包')" hoverable> </cl-list-item>
  88. </cl-list>
  89. </demo-item>
  90. </view>
  91. </cl-page>
  92. </template>
  93. <script lang="ts" setup>
  94. import { t } from "@/locale";
  95. import DemoItem from "../components/item.uvue";
  96. import { useUi } from "@/uni_modules/cool-ui";
  97. import { ref } from "vue";
  98. const ui = useUi();
  99. const listItemRef = ref<ClListItemComponentPublicInstance | null>(null);
  100. function onDelete() {
  101. ui.showToast({
  102. message: "删除成功"
  103. });
  104. listItemRef.value!.resetSwipe();
  105. }
  106. </script>