setting.html 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. {{define "component/settingListItem"}}
  2. <a-list-item style="padding: 20px">
  3. <a-row>
  4. <a-col :lg="24" :xl="12">
  5. <a-list-item-meta :title="title" :description="desc"/>
  6. </a-col>
  7. <a-col :lg="24" :xl="12">
  8. <template v-if="type === 'text'">
  9. <a-input :value="value" @input="$emit('input', $event.target.value)"></a-input>
  10. </template>
  11. <template v-else-if="type === 'number'">
  12. <a-input type="number" :value="value" @input="$emit('input', $event.target.value)" :min="min"></a-input>
  13. </template>
  14. <template v-else-if="type === 'textarea'">
  15. <a-textarea :value="value" @input="$emit('input', $event.target.value)" :auto-size="{ minRows: 10, maxRows: 10 }"></a-textarea>
  16. </template>
  17. <template v-else-if="type === 'switch'">
  18. <a-switch :checked="value" @change="value => $emit('input', value)"></a-switch>
  19. </template>
  20. </a-col>
  21. </a-row>
  22. </a-list-item>
  23. {{end}}
  24. {{define "component/setting"}}
  25. <script>
  26. Vue.component('setting-list-item', {
  27. props: ["type", "title", "desc", "value", "min"],
  28. template: `{{template "component/settingListItem"}}`,
  29. });
  30. </script>
  31. {{end}}