demo.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. var demoModel = function (nameLc) {
  2. var teml = {
  3. source: `<template>
  4. <view :class="classes" @click="handleClick">
  5. <view>{{ data }}</view>
  6. </view>
  7. </template>
  8. <script lang="ts">
  9. import { reactive, toRefs, computed } from 'vue';
  10. import { createComponent } from '../../utils/create';
  11. const { componentName, create } = createComponent('${nameLc}');
  12. export default create({
  13. props: {
  14. name: {
  15. type: String,
  16. default: ''
  17. }
  18. },
  19. emits: ['click'],
  20. setup(props, { emit }) {
  21. const state = reactive({
  22. data: 'Welcome to developing components'
  23. });
  24. const classes = computed(() => {
  25. const prefixCls = componentName;
  26. return {
  27. [prefixCls]: true
  28. };
  29. });
  30. const handleClick = (event: Event) => {
  31. emit('click', event);
  32. };
  33. return { ...toRefs(state), classes, handleClick };
  34. }
  35. });
  36. </script>
  37. `,
  38. demo: `<template>
  39. <div class="demo">
  40. <h2>基础用法</h2>
  41. <nut-cell>
  42. <nut-${nameLc}></nut-${nameLc}>
  43. </nut-cell>
  44. </div>
  45. </template>
  46. <script lang="ts">
  47. import { createComponent } from '../../utils/create';
  48. const { createDemo } = createComponent('${nameLc}');
  49. export default createDemo({
  50. props: {},
  51. setup() {
  52. return {};
  53. }
  54. });
  55. </script>
  56. <style lang="scss" scoped>
  57. .demo{
  58. }
  59. </style>
  60. `,
  61. taroDemo: `<template>
  62. <div class="demo">
  63. <h2>基础用法</h2>
  64. <nut-cell>
  65. <nut-${nameLc}></nut-${nameLc}>
  66. </nut-cell>
  67. </div>
  68. </template>
  69. <script lang="ts">
  70. import { defineComponent } from 'vue';
  71. export default defineComponent({
  72. props: {},
  73. setup() {
  74. return {};
  75. }
  76. });
  77. </script>
  78. `,
  79. doc: `# ${nameLc}
  80. ### 介绍
  81. 基于 xxxxxxx
  82. ### 安装
  83. \`\`\`javascript
  84. import { createApp } from 'vue';
  85. // vue
  86. import { } from '@nutui/nutui';
  87. // taro
  88. import { } from '@nutui/nutui-taro';
  89. const app = createApp();
  90. app.use();
  91. \`\`\`
  92. ### 基础用法
  93. :::demo
  94. \`\`\`html
  95. <template>
  96. </template>
  97. <script lang="ts">
  98. export default {
  99. setup() {
  100. return { };
  101. }
  102. };
  103. </script>
  104. \`\`\`
  105. :::
  106. ## API
  107. ### Props
  108. | 参数 | 说明 | 类型 | 默认值 |
  109. |--------------|----------------------------------|--------|------------------|
  110. | name | 图标名称或图片链接 | String | - |
  111. ### Events
  112. | 事件名 | 说明 | 回调参数 |
  113. |--------|----------------|--------------|
  114. | click | 点击图标时触发 | event: Event |
  115. `
  116. };
  117. return teml;
  118. };
  119. module.exports = demoModel;