马宇豪
2024-11-26 81eb726dec221cce6e0be422a69c01916ac13bf0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<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>