<template>
|
<el-dialog v-model="selectDialog" title="考评类型" width="80%" :before-close="handleClose">
|
<!-- 表格数据 -->
|
<el-table ref="multipleTableRef" :data="dataList" :border="true" @selection-change="handleSelectionChange" :row-key="(row) => { return row.id }">
|
<el-table-column type="selection" width="55" :reserve-selection="true"/>
|
<el-table-column label="项目内容" prop="content" align="center"/>
|
<el-table-column label="类型" prop="scoreType" align="center">
|
<template #default="scope">
|
{{ scope.row.scoreType == '1' ? '加分项' : scope.row.scoreType == '2' ? '扣分项' : '' }}
|
</template>
|
</el-table-column>
|
<el-table-column label="标准分值" prop="score" align="center"/>
|
</el-table>
|
<div class="pag-container">
|
<el-pagination
|
v-model:current-page="data.queryParams.pageNum"
|
v-model:page-size="data.queryParams.pageSize"
|
:page-sizes="[10,15,20,25]"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="total"
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
/>
|
</div>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="data.selectDialog = false" size="default">取 消</el-button>
|
<el-button type="primary" v-throttle @click="onSubmit" size="default">确 定</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</template>
|
|
<script setup>
|
import {getCurrentInstance, onMounted, reactive, ref, toRefs} from "vue";
|
import {ElMessage, ElMessageBox} from "element-plus";
|
import { getReviewList,} from "@/api/backManage/evaluate";
|
|
const {proxy} = getCurrentInstance()
|
const multipleTableRef = ref()
|
const emit = defineEmits(["refreshWorks"])
|
|
const data = reactive({
|
queryParams: {
|
scoreType: '',
|
pageNum: 1,
|
pageSize: 10,
|
},
|
total: 0,
|
dataList: [],
|
selected: [],
|
selectDialog: false
|
})
|
|
const {queryParams, total, dataList,selectDialog} = toRefs(data);
|
onMounted(() => {
|
|
});
|
|
const openDialog = (type, list) => {
|
data.selectDialog = true
|
data.queryParams.scoreType = type
|
getList()
|
// getList().then(()=>refreshTableSelection(list))
|
}
|
|
const refreshTableSelection = (list) => {
|
// data.selected = list
|
// if (multipleTableRef.value) {
|
// for (let i = 0; i < data.dataList.length; i++) {
|
// if(list.find(o=>o.id == data.dataList[i].id)){
|
// multipleTableRef.value.toggleRowSelection(data.dataList[i], true)
|
// }else{
|
// multipleTableRef.value.toggleRowSelection(data.dataList[i], false)
|
// }
|
// }
|
// }
|
}
|
|
const getList = async () => {
|
const res = await getReviewList(data.queryParams);
|
if (res.code == 200) {
|
dataList.value = res.rows
|
total.value = res.total
|
} else {
|
ElMessage.warning(res.msg)
|
}
|
}
|
|
const onSubmit = ()=>{
|
emit('refreshSelected',data.queryParams.scoreType)
|
data.selected = []
|
multipleTableRef.value.clearSelection()
|
data.selectDialog = false
|
}
|
|
const handleSelectionChange = (val) => {
|
data.selected = val
|
}
|
|
const handleSizeChange = (val) => {
|
data.queryParams.pageSize = val
|
getList()
|
}
|
|
const handleCurrentChange = (val) => {
|
data.queryParams.pageNum = val
|
getList()
|
}
|
|
defineExpose({
|
openDialog,
|
data
|
})
|
|
|
</script>
|
<style lang="scss">
|
.pag-container {
|
display: flex;
|
justify-content: right;
|
margin-top: 15px;
|
}
|
</style>
|