Compare commits

..

4 Commits

Author SHA1 Message Date
Tim
6a27fbe1d7 Fix null multiple field for poll posts 2025-08-31 14:22:44 +08:00
Tim
38ff04c358 Merge pull request #803 from nagisa77/codex/add-baseswitch-component-to-voting-post
feat(poll): use BaseSwitch for multiple selection
2025-08-31 14:13:32 +08:00
Tim
fc27200ac1 feat(poll): use BaseSwitch for multiple selection 2025-08-31 14:13:18 +08:00
Tim
eefefac236 Merge pull request #801 from nagisa77/codex/add-multi-select-support-for-voting
feat: support multi-option polls
2025-08-31 12:13:54 +08:00
3 changed files with 6 additions and 9 deletions

View File

@@ -111,7 +111,7 @@ public class PostMapper {
.collect(Collectors.groupingBy(PollVote::getOptionIndex,
Collectors.mapping(v -> userMapper.toAuthorDto(v.getUser()), Collectors.toList())));
p.setOptionParticipants(optionParticipants);
p.setMultiple(pp.isMultiple());
p.setMultiple(Boolean.TRUE.equals(pp.getMultiple()));
dto.setPoll(p);
}
}

View File

@@ -33,7 +33,7 @@ public class PollPost extends Post {
private Set<User> participants = new HashSet<>();
@Column
private boolean multiple = false;
private Boolean multiple = false;
@Column
private LocalDateTime endTime;

View File

@@ -19,10 +19,8 @@
</client-only>
</div>
<div class="poll-multiple-row">
<label class="poll-row-title">
<input type="checkbox" v-model="data.multiple" class="multiple-checkbox" />
多选
</label>
<span class="poll-row-title">多选</span>
<BaseSwitch v-model="data.multiple" />
</div>
</div>
</template>
@@ -31,6 +29,7 @@
import 'flatpickr/dist/flatpickr.css'
import FlatPickr from 'vue-flatpickr-component'
import BaseInput from '~/components/BaseInput.vue'
import BaseSwitch from '~/components/BaseSwitch.vue'
const props = defineProps({
data: {
@@ -89,9 +88,7 @@ const removeOption = (idx) => {
.poll-multiple-row {
display: flex;
align-items: center;
}
.multiple-checkbox {
margin-right: 5px;
gap: 10px;
}
.time-picker {
max-width: 200px;