MarkerSetting.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <template>
  2. <base-table size="small" height="100%" :columns="columns" :data="userList?.result"></base-table>
  3. </template>
  4. <script setup lang="ts" name="MarkerSetting">
  5. /** 任务设置 - 按评卷员设置 */
  6. import { watch } from 'vue'
  7. import useFetch from '@/hooks/useFetch'
  8. import BaseTable from '@/components/element/BaseTable.vue'
  9. import type { EpTableColumn } from 'global-type'
  10. import type { ExtractMultipleApiResponse } from 'api-type'
  11. const props = defineProps<{
  12. mainNumber?: number
  13. markingGroupNumber?: number
  14. subjectCode?: string
  15. }>()
  16. const emit = defineEmits<{
  17. (e: 'user-list', list: ExtractMultipleApiResponse<'getUserList'>[]): void
  18. }>()
  19. const { fetch: getUserList, result: userList } = useFetch('getUserList')
  20. const columns: EpTableColumn[] = [
  21. { label: '评卷员代码', prop: 'loginName' },
  22. { label: '任务量', prop: 'markTotalCount' },
  23. { label: '每日任务量', prop: 'markDayCount' },
  24. ]
  25. watch(
  26. props,
  27. () => {
  28. if (props.mainNumber && props.subjectCode) {
  29. getUserList({
  30. pageNumber: 1,
  31. pageSize: 9999,
  32. subjectCode: props.subjectCode,
  33. mainNumber: props.mainNumber,
  34. role: 'MARKER',
  35. })
  36. }
  37. },
  38. { immediate: true }
  39. )
  40. watch(userList, () => {
  41. emit('user-list', userList.value?.result)
  42. })
  43. </script>
  44. <style scoped lang="scss"></style>