title.vue 760 B

1234567891011121314151617181920212223242526272829
  1. <template>
  2. <el-form-item label="内容:">
  3. <el-input
  4. @focus="$emit('inputIng', true)"
  5. @blur="$emit('inputIng', false)"
  6. :maxlength="500"
  7. style="width: 220px"
  8. v-model="value"
  9. >
  10. <template #append>
  11. <el-button type="primary" @click="$emit('blur')">确定</el-button>
  12. </template>
  13. </el-input>
  14. </el-form-item>
  15. </template>
  16. <script setup lang="ts">
  17. import { ref, watchEffect } from "vue";
  18. import { BoardShape } from "../board";
  19. const props = defineProps<{ shape: BoardShape }>();
  20. const emit = defineEmits<{
  21. (e: "delete"): void;
  22. (e: "blur"): void;
  23. (e: "inputIng", ing: boolean): void;
  24. }>();
  25. const value = ref(props.shape.data.text);
  26. watchEffect(() => props.shape.setText(value.value));
  27. </script>