textarea.vue 724 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <template>
  2. <div class="k-textarea">
  3. <el-input
  4. type="textarea"
  5. :autosize="{minRows: 4}"
  6. v-model="pv"
  7. :maxlength="length"
  8. :placeholder="placeholder"
  9. ></el-input>
  10. <div class="k-textarea__length">{{pv ? pv.length : 0}} / {{length}}</div>
  11. </div>
  12. </template>
  13. <script>
  14. import sync from "../utils/computed.sync";
  15. export default {
  16. data() {
  17. return {};
  18. },
  19. computed: {
  20. pv: sync("value")
  21. },
  22. watch: {},
  23. props: {
  24. value: {},
  25. length: {},
  26. placeholder: {}
  27. },
  28. methods: {},
  29. mounted() {}
  30. };
  31. </script>
  32. <style lang="scss">
  33. .k-textarea {
  34. position: relative;
  35. &__length {
  36. position: absolute;
  37. bottom: 0;
  38. right: 12px;
  39. font-size: 12px;
  40. }
  41. }
  42. </style>