TextAreaEmail.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <div class="email-textarea">
  3. <div class="email-content">
  4. <span>帮我生成</span>
  5. <a-input
  6. v-model="date"
  7. placeholder="选择日期"
  8. style="width: 100px; margin: 0 8px; color: var(--primary-default); background-color: var(--tip-bg-start)"
  9. />
  10. <span>的全省供电可靠性报告,主题为</span>
  11. <a-input
  12. v-model="subject"
  13. placeholder="输入主题"
  14. style="width: 150px; margin: 0 8px; color: var(--primary-default); background-color: var(--tip-bg-start)"
  15. />
  16. <span title="多个邮箱之间使用逗号(,)隔开">,收件邮箱为</span>
  17. <a-input
  18. v-model="toEmail"
  19. title="多个邮箱之间使用逗号(,)隔开"
  20. placeholder="输入收件邮箱"
  21. style="width: 400px; margin: 0 8px; color: var(--primary-default); background-color: var(--tip-bg-start)"
  22. />
  23. <span title="多个邮箱之间使用逗号(,)隔开">,抄送邮箱为</span>
  24. <a-input
  25. v-model="ccEmail"
  26. title="多个邮箱之间使用逗号(,)隔开"
  27. placeholder="输入抄送邮箱"
  28. style="width: 400px; margin: 0 8px; color: var(--primary-default); background-color: var(--tip-bg-start)"
  29. />
  30. </div>
  31. </div>
  32. </template>
  33. <script setup>
  34. import { ref, watch } from 'vue';
  35. // 接收父组件传递的报表类型
  36. const props = defineProps({
  37. target_report_type: {
  38. type: String,
  39. default: '1'
  40. }
  41. });
  42. // 响应式数据
  43. const date = ref('');
  44. const subject = ref('频停周报');
  45. const toEmail = ref('');
  46. const ccEmail = ref('');
  47. const clear = () => {
  48. toEmail.value = '';
  49. ccEmail.value = '';
  50. };
  51. watch(
  52. () => props.target_report_type,
  53. (new_val) => {
  54. const data = window.report_type_list.find((item) => item.key === new_val);
  55. if (data.date) {
  56. date.value = data.date;
  57. }
  58. if (data.title) {
  59. subject.value = data.title;
  60. }
  61. },
  62. {
  63. immediate: true
  64. }
  65. );
  66. defineExpose({
  67. date,
  68. subject,
  69. toEmail,
  70. ccEmail,
  71. clear
  72. });
  73. </script>
  74. <style scoped lang="css">
  75. .email-textarea {
  76. width: 100%;
  77. padding: 16px;
  78. /* background-color: #f5f5f5; */
  79. border-radius: 8px;
  80. }
  81. .email-content {
  82. display: flex;
  83. align-items: center;
  84. flex-wrap: wrap;
  85. gap: 8px;
  86. font-size: 14px;
  87. line-height: 1.5;
  88. }
  89. .email-content span {
  90. white-space: nowrap;
  91. }
  92. </style>