WeekReport.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <template>
  2. <div class="reportCard">
  3. <el-form-item label="推送时间:" required>
  4. <el-form-item prop="dayOfWeek">
  5. <el-col :span="22">
  6. <el-select
  7. v-model="form.dayOfWeek"
  8. placeholder="每周一"
  9. style="width: 146.5px; height: 32px"
  10. :disabled="disableType.contentDisable"
  11. prop="dayOfWeek"
  12. >
  13. <el-option label="周一" :value="1" />
  14. <el-option label="周二" :value="2" />
  15. <el-option label="周三" :value="3" />
  16. <el-option label="周四" :value="4" />
  17. <el-option label="周五" :value="5" />
  18. <el-option label="周六" :value="6" />
  19. <el-option label="周日" :value="7" />
  20. </el-select>
  21. </el-col>
  22. </el-form-item>
  23. <el-col class="text-center" :span="2" style="padding-bottom: 10px">
  24. <span class="text-gray-500">—</span>
  25. </el-col>
  26. <el-form-item
  27. prop="pushTimeList[0]"
  28. :rules="{ required: true, message: '请选择时间', trigger: 'blur' }"
  29. >
  30. <el-col :span="22">
  31. <el-time-picker
  32. v-model="form.pushTimeList[0]"
  33. placeholder="09:00"
  34. value-format="HH:mm:ss"
  35. style="width: 146.5px; height: 32px"
  36. :disabled="disableType.contentDisable"
  37. />
  38. </el-col>
  39. </el-form-item>
  40. </el-form-item>
  41. <el-form-item label="推送对象:" required prop="recipientType">
  42. <el-radio-group v-model="form.recipientType" :disabled="disableType.contentDisable">
  43. <el-radio :value="1">全员</el-radio>
  44. <el-radio :value="2">分组</el-radio>
  45. <el-radio :value="3">自定义</el-radio>
  46. </el-radio-group>
  47. </el-form-item>
  48. <el-form-item
  49. v-if="form.recipientType === 2"
  50. label="选择分组:"
  51. required
  52. prop="userGroupList"
  53. style="margin-top: 10px"
  54. >
  55. <el-col :span="10">
  56. <el-select
  57. v-model="form.userGroupList"
  58. multiple
  59. placeholder="请选择分组"
  60. style="width: 326px"
  61. :disabled="disableType.contentDisable"
  62. >
  63. <el-option
  64. v-for="item in options"
  65. :key="item.userGroupId"
  66. :label="item.name"
  67. :value="item.userGroupId"
  68. />
  69. </el-select>
  70. </el-col>
  71. </el-form-item>
  72. <el-form-item
  73. v-if="form.recipientType === 3"
  74. label="选择人员:"
  75. required
  76. prop="customUserList.value"
  77. style="width: 526px; margin-top: 10px"
  78. :rules="{ required: true, message: '请选择推送人员', trigger: 'blur' }"
  79. >
  80. <el-col :span="18">
  81. <DefaultPersonSelection :form="form" :disableType="disableType" />
  82. </el-col>
  83. </el-form-item>
  84. </div>
  85. </template>
  86. <script lang="ts" setup>
  87. import { ref, onMounted } from 'vue';
  88. import { searchGroup } from '@/api/message/report-message';
  89. import DefaultPersonSelection from './components/DefaultPersonSelection.vue';
  90. defineProps(['form', 'disableType']);
  91. const options = ref();
  92. onMounted(() => {
  93. searchGroup()
  94. .then((res) => {
  95. options.value = res.groupVOList;
  96. })
  97. .catch((e) => {
  98. console.log(e);
  99. });
  100. });
  101. </script>
  102. <style scoped>
  103. .reportCard {
  104. margin-left: 87px;
  105. padding: 12px 0px 0px 12px;
  106. margin-bottom: 16px;
  107. background-color: #fafafa;
  108. width: 530px;
  109. box-sizing: border-box;
  110. }
  111. .el-form-item--default {
  112. /* margin-bottom: 8px; */
  113. margin-bottom: 0px;
  114. padding-bottom: 10px;
  115. }
  116. .reportCard > .el-form-item:last-child {
  117. /* background:#ff0000; */
  118. padding-bottom: 16px;
  119. }
  120. ::v-deep .el-select__selection {
  121. min-height: 25px;
  122. }
  123. </style>