demo.vue 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <template>
  2. <div class="demo">
  3. <h2>{{ translate('basic') }}</h2>
  4. <nut-rate v-model="state.val" />
  5. <h2>{{ translate('title1') }}</h2>
  6. <nut-rate allow-half v-model="state.val1"></nut-rate>
  7. <h2>{{ translate('title2') }}</h2>
  8. <nut-rate checked-icon="heart-fill1" unchecked-icon="heart" v-model="state.val2"></nut-rate>
  9. <h2>{{ translate('title3') }}</h2>
  10. <nut-rate :count="6" v-model="state.val3"></nut-rate>
  11. <h2>{{ translate('title4') }}</h2>
  12. <nut-rate active-color="#FFC800" v-model="state.val4"></nut-rate>
  13. <h2>{{ translate('title5') }}</h2>
  14. <nut-rate disabled v-model="state.val5"></nut-rate>
  15. <h2>{{ translate('title6') }}</h2>
  16. <nut-rate v-model="state.val6" readonly></nut-rate>
  17. <h2>{{ translate('title7') }}</h2>
  18. <nut-rate v-model="state.val7" @change="onChange"></nut-rate>
  19. <h2>{{ translate('title8') }}</h2>
  20. <nut-rate v-model="state.val8" icon-size="35"></nut-rate>
  21. </div>
  22. </template>
  23. <script lang="ts">
  24. import { reactive, getCurrentInstance } from 'vue';
  25. import { createComponent } from '@/packages/utils/create';
  26. import { useTranslate } from '@/sites/assets/util/useTranslate';
  27. const { createDemo, translate } = createComponent('rate');
  28. useTranslate({
  29. 'zh-CN': {
  30. basic: '基本用法',
  31. title1: '半星',
  32. title2: '自定义 icon',
  33. title3: '自定义数量',
  34. title4: '自定义颜色',
  35. title5: '禁用状态',
  36. title6: '只读状态',
  37. title7: '绑定事件',
  38. title8: '自定义尺寸 35px'
  39. },
  40. 'en-US': {
  41. basic: 'Basic Usage',
  42. title1: 'Half Star',
  43. title2: 'Custom icon',
  44. title3: 'Custom quantity',
  45. title4: 'Custom color',
  46. title5: 'disabled state',
  47. title6: 'read-only status',
  48. title7: 'bind event',
  49. title8: 'Custom size 35px'
  50. }
  51. });
  52. export default createDemo({
  53. setup() {
  54. let { proxy } = getCurrentInstance();
  55. const state = reactive({
  56. val: 3,
  57. val1: 3.5,
  58. val2: 3,
  59. val3: 3,
  60. val4: 3,
  61. val5: 3,
  62. val6: 3,
  63. val7: 3,
  64. val8: 3
  65. });
  66. const onChange = (val) => {
  67. proxy.$toast.text(val);
  68. };
  69. return {
  70. state,
  71. onChange,
  72. translate
  73. };
  74. }
  75. });
  76. </script>
  77. <style lang="scss" scoped></style>