read-more.uvue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <cl-page>
  3. <view class="p-3">
  4. <demo-item :label="t('基础用法')">
  5. <cl-read-more>
  6. <cl-text>
  7. 云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。
  8. 一枝红艳露凝香,云雨巫山枉断肠。借问汉宫谁得似?可怜飞燕倚新妆。
  9. 名花倾国两相欢,常得君王带笑看。解释春风无限恨,沉香亭北倚阑干。
  10. </cl-text>
  11. </cl-read-more>
  12. </demo-item>
  13. <demo-item :label="t('禁用切换按钮')">
  14. <cl-read-more
  15. v-model="visible"
  16. :disabled="disabled"
  17. :expand-text="disabled ? '付费解锁' : '展开'"
  18. :expand-icon="disabled ? 'lock-line' : 'arrow-down-s-line'"
  19. @toggle="toggle"
  20. >
  21. <cl-text>
  22. 云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。
  23. 一枝红艳露凝香,云雨巫山枉断肠。借问汉宫谁得似?可怜飞燕倚新妆。
  24. 名花倾国两相欢,常得君王带笑看。解释春风无限恨,沉香亭北倚阑干。
  25. </cl-text>
  26. </cl-read-more>
  27. </demo-item>
  28. <demo-item :label="t('动态内容')">
  29. <cl-read-more :content="content" :show-toggle="content != ''" ref="readMoreRef">
  30. <view
  31. class="flex flex-row items-center justify-center h-14"
  32. v-if="content == ''"
  33. >
  34. <cl-loading :size="32"></cl-loading>
  35. </view>
  36. </cl-read-more>
  37. </demo-item>
  38. <demo-item :label="t('自定义高度')">
  39. <cl-read-more :height="300">
  40. <cl-text>
  41. 云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。
  42. 一枝红艳露凝香,云雨巫山枉断肠。借问汉宫谁得似?可怜飞燕倚新妆。
  43. </cl-text>
  44. <cl-image
  45. :height="300"
  46. width="100%"
  47. :pt="{
  48. className: 'my-3'
  49. }"
  50. src="https://uni-docs.cool-js.com/demo/pages/demo/static/bg1.png"
  51. ></cl-image>
  52. <cl-text>
  53. 名花倾国两相欢,常得君王带笑看。解释春风无限恨,沉香亭北倚阑干。
  54. </cl-text>
  55. </cl-read-more>
  56. </demo-item>
  57. </view>
  58. </cl-page>
  59. </template>
  60. <script lang="ts" setup>
  61. import { t } from "@/locale";
  62. import DemoItem from "../components/item.uvue";
  63. import { ref } from "vue";
  64. import { useUi } from "@/uni_modules/cool-ui";
  65. const ui = useUi();
  66. const visible = ref(false);
  67. const disabled = ref(true);
  68. const readMoreRef = ref<ClReadMoreComponentPublicInstance | null>(null);
  69. const content = ref("");
  70. function getContent() {
  71. setTimeout(() => {
  72. content.value =
  73. "云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。一枝红艳露凝香,云雨巫山枉断肠。借问汉宫谁得似?可怜飞燕倚新妆。名花倾国两相欢,常得君王带笑看。解释春风无限恨,沉香亭北倚阑干。";
  74. // 使用 slot 插入内容时,如果内容发生变化,需要重新获取高度
  75. // readMoreRef.value!.getContentHeight();
  76. }, 500);
  77. }
  78. function toggle(isExpanded: boolean) {
  79. ui.showConfirm({
  80. title: "提示",
  81. message: "需支付100元才能解锁全部内容,是否继续?",
  82. callback(action) {
  83. if (action == "confirm") {
  84. ui.showToast({
  85. message: "支付成功"
  86. });
  87. disabled.value = false;
  88. visible.value = true;
  89. }
  90. }
  91. });
  92. }
  93. onReady(() => {
  94. getContent();
  95. });
  96. </script>