|
|
@@ -32,22 +32,10 @@
|
|
|
import { ref } from 'vue'
|
|
|
import ArtTable from '@/components/core/tables/art-table/index.vue'
|
|
|
import request from '@/api'
|
|
|
- import { ColumnOption } from '@/types/component'
|
|
|
+ import { useTable } from '@/composables/useTable'
|
|
|
|
|
|
const props = withDefaults(defineProps<{ courseId: string }>(), {})
|
|
|
|
|
|
- const tableRef = ref<typeof ArtTable>()
|
|
|
- const loading = ref<boolean>(false)
|
|
|
- const columns: ColumnOption[] = [
|
|
|
- { prop: 'seqNo', label: '序号' },
|
|
|
- { prop: 'roleName', label: '评价目标角色' },
|
|
|
- { prop: 'evaName', label: '节点名称' },
|
|
|
- { prop: 'evaType', label: '评价类型', formatter: (row: Datum) => (row.evaType === 0 ? '主观评价' : row.evaType === 1 ? '客观评价' : '未知') },
|
|
|
- { prop: 'evaScore', label: '评价赋分', useSlot: true },
|
|
|
- { prop: 'evaDeduction', label: '评价失分', useSlot: true },
|
|
|
- { prop: 'disqualificationItem', label: '是否失格项', useSlot: true }
|
|
|
- ]
|
|
|
-
|
|
|
export interface Datum {
|
|
|
seqNo: number /** 序号 */
|
|
|
courseID: number /** 课程ID */
|
|
|
@@ -59,16 +47,35 @@
|
|
|
evaType: number /** 评价类型 */
|
|
|
evaScore: number /** 评价赋分 */
|
|
|
evaDeduction: number /** 评价失分 */
|
|
|
- disqualificationItem: number /** 是否失格项 0 不是失格项,1失格项 */
|
|
|
- }
|
|
|
-
|
|
|
- const tableData = ref<Datum[]>([])
|
|
|
- const listEvaluate = async () => {
|
|
|
- loading.value = true
|
|
|
- const { data } = await request.post<Datum[]>('/eva/list', { courseId: Number(props.courseId) })
|
|
|
- tableData.value = data || []
|
|
|
- loading.value = false
|
|
|
+ disqualificationItem: number | string /** 是否失格项 0 不是失格项,1失格项 */
|
|
|
}
|
|
|
+ const tableRef = ref<typeof ArtTable>()
|
|
|
+ const {
|
|
|
+ data: tableData,
|
|
|
+ columns: columns,
|
|
|
+ loading: loading
|
|
|
+ } = useTable({
|
|
|
+ core: {
|
|
|
+ apiFn: () => request.post<Datum[]>('/eva/list', { courseId: Number(props.courseId) }),
|
|
|
+ columnsFactory: () => [
|
|
|
+ { prop: 'seqNo', label: '序号' },
|
|
|
+ { prop: 'roleName', label: '评价目标角色' },
|
|
|
+ { prop: 'evaName', label: '节点名称' },
|
|
|
+ { prop: 'evaType', label: '评价类型', formatter: (row: Datum) => (row.evaType === 0 ? '主观评价' : row.evaType === 1 ? '客观评价' : '未知') },
|
|
|
+ { prop: 'evaScore', label: '评价赋分', useSlot: true },
|
|
|
+ { prop: 'evaDeduction', label: '评价失分', useSlot: true },
|
|
|
+ { prop: 'disqualificationItem', label: '是否失格项', useSlot: true }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ transform: {
|
|
|
+ dataTransformer: (data: never[] = []) => {
|
|
|
+ data.forEach((item) => {
|
|
|
+ ;(item as Datum).disqualificationItem = String((item as Datum).disqualificationItem)
|
|
|
+ })
|
|
|
+ return data
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
const saveRefereeRow = async (row: Datum, prop: string, tip: string = '修改成功') => {
|
|
|
console.log('数据变更:', row.seqNo, prop, tip)
|
|
|
@@ -84,8 +91,4 @@
|
|
|
})
|
|
|
ElMessage.success(tip)
|
|
|
}
|
|
|
-
|
|
|
- onMounted(() => {
|
|
|
- listEvaluate()
|
|
|
- })
|
|
|
</script>
|