|
@@ -56,6 +56,7 @@
|
|
56
|
<div v-if="currentTab === 'non-cadre'" class="left-buttons">
|
56
|
<div v-if="currentTab === 'non-cadre'" class="left-buttons">
|
|
57
|
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
57
|
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
|
58
|
<el-button type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
58
|
<el-button type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
|
|
|
59
|
+ <el-button type="danger" plain icon="Delete" :disabled="selectedIds.length === 0" @click="handleBatchDelete">删除</el-button>
|
|
59
|
</div>
|
60
|
</div>
|
|
60
|
<!-- 干部模式时显示空白占位 -->
|
61
|
<!-- 干部模式时显示空白占位 -->
|
|
61
|
<div v-else class="left-buttons"></div>
|
62
|
<div v-else class="left-buttons"></div>
|
|
@@ -68,8 +69,8 @@
|
|
68
|
<!-- 非干部数据表格 -->
|
69
|
<!-- 非干部数据表格 -->
|
|
69
|
<div v-if="currentTab === 'non-cadre'">
|
70
|
<div v-if="currentTab === 'non-cadre'">
|
|
70
|
<el-table v-loading="loading" :data="nonCadreList" border fit highlight-current-row
|
71
|
<el-table v-loading="loading" :data="nonCadreList" border fit highlight-current-row
|
|
71
|
- style="width: 100%; margin-top: 20px;">
|
|
|
|
72
|
- <el-table-column label="大队" prop="brigadeName" align="center" min-width="100" />
|
|
|
|
|
|
72
|
+ style="width: 100%; margin-top: 20px;" @selection-change="handleSelectionChange">
|
|
|
|
73
|
+ <el-table-column type="selection" width="55" align="center" />
|
|
73
|
<el-table-column label="用工形式" prop="employmentType" align="center" min-width="100">
|
74
|
<el-table-column label="用工形式" prop="employmentType" align="center" min-width="100">
|
|
74
|
<template #default="scope">
|
75
|
<template #default="scope">
|
|
75
|
<dict-tag :options="employment_type" :value="scope.row.employmentType" />
|
76
|
<dict-tag :options="employment_type" :value="scope.row.employmentType" />
|
|
@@ -155,7 +156,8 @@
|
|
155
|
<!-- 干部数据表格 -->
|
156
|
<!-- 干部数据表格 -->
|
|
156
|
<div v-else>
|
157
|
<div v-else>
|
|
157
|
<el-table v-loading="loading" :data="cadreList" border fit highlight-current-row
|
158
|
<el-table v-loading="loading" :data="cadreList" border fit highlight-current-row
|
|
158
|
- style="width: 100%; margin-top: 20px;">
|
|
|
|
|
|
159
|
+ style="width: 100%; margin-top: 20px;" @selection-change="handleSelectionChange">
|
|
|
|
160
|
+ <el-table-column type="selection" width="55" align="center" />
|
|
159
|
<el-table-column label="姓名" prop="name" align="center" min-width="120" />
|
161
|
<el-table-column label="姓名" prop="name" align="center" min-width="120" />
|
|
160
|
<el-table-column label="部门" prop="deptName" align="center" min-width="120" />
|
162
|
<el-table-column label="部门" prop="deptName" align="center" min-width="120" />
|
|
161
|
<el-table-column label="岗位" prop="post" align="center" min-width="120">
|
163
|
<el-table-column label="岗位" prop="post" align="center" min-width="120">
|
|
@@ -592,7 +594,7 @@ import { ref, reactive, onMounted, getCurrentInstance, watch, nextTick } from 'v
|
|
592
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
594
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
593
|
|
595
|
|
|
594
|
// API导入(需要根据实际API路径调整)
|
596
|
// API导入(需要根据实际API路径调整)
|
|
595
|
-import { listCadreAssessment, generateCadreAssessment, listNonCadreAssessment, addNonCadreAssessment, updateNonCadreAssessment, deleteNonCadreAssessment, exportNonCadreAssessment, generateNonCadreAssessment, getNonCadreAssessment } from '@/api/performance/monthlyAssess.js'
|
|
|
|
|
|
597
|
+import { listCadreAssessment, generateCadreAssessment, listNonCadreAssessment, addNonCadreAssessment, updateNonCadreAssessment, deleteNonCadreAssessment, exportNonCadreAssessment, generateNonCadreAssessment, getNonCadreAssessment, deleteCadreAssessment } from '@/api/performance/monthlyAssess.js'
|
|
596
|
import { selectUserLeaderListByCondition, listUserPerformance } from '@/api/system/user.js'
|
598
|
import { selectUserLeaderListByCondition, listUserPerformance } from '@/api/system/user.js'
|
|
597
|
import { listIndicator } from '@/api/system/classificationAssess.js'
|
599
|
import { listIndicator } from '@/api/system/classificationAssess.js'
|
|
598
|
import { queryAssessCategoryTreeAndIndicator } from '@/api/system/classificationAssessIndicator.js'
|
600
|
import { queryAssessCategoryTreeAndIndicator } from '@/api/system/classificationAssessIndicator.js'
|
|
@@ -606,6 +608,7 @@ const total = ref(0)
|
|
606
|
const queryFormRef = ref()
|
608
|
const queryFormRef = ref()
|
|
607
|
const formRef = ref()
|
609
|
const formRef = ref()
|
|
608
|
const currentTab = ref('non-cadre')
|
610
|
const currentTab = ref('non-cadre')
|
|
|
|
611
|
+const selectedIds = ref([])
|
|
609
|
|
612
|
|
|
610
|
// 监听tab切换
|
613
|
// 监听tab切换
|
|
611
|
watch(() => currentTab.value, () => {
|
614
|
watch(() => currentTab.value, () => {
|
|
@@ -1109,6 +1112,32 @@ const resetQuery = () => {
|
|
1109
|
getList()
|
1112
|
getList()
|
|
1110
|
}
|
1113
|
}
|
|
1111
|
|
1114
|
|
|
|
|
1115
|
+// 批量选择
|
|
|
|
1116
|
+const handleSelectionChange = (selection) => {
|
|
|
|
1117
|
+ selectedIds.value = selection.map(item => item.id)
|
|
|
|
1118
|
+}
|
|
|
|
1119
|
+
|
|
|
|
1120
|
+// 批量删除
|
|
|
|
1121
|
+const handleBatchDelete = () => {
|
|
|
|
1122
|
+ if (selectedIds.value.length === 0) {
|
|
|
|
1123
|
+ return
|
|
|
|
1124
|
+ }
|
|
|
|
1125
|
+ proxy.$modal.confirm(`是否确认删除选中的 ${selectedIds.value.length} 条数据?`).then(async () => {
|
|
|
|
1126
|
+ try {
|
|
|
|
1127
|
+ if (currentTab.value === 'non-cadre') {
|
|
|
|
1128
|
+ await deleteNonCadreAssessment(selectedIds.value.join(','))
|
|
|
|
1129
|
+ } else {
|
|
|
|
1130
|
+ await deleteCadreAssessment(selectedIds.value.join(','))
|
|
|
|
1131
|
+ }
|
|
|
|
1132
|
+ ElMessage.success('删除成功')
|
|
|
|
1133
|
+ selectedIds.value = []
|
|
|
|
1134
|
+ getList()
|
|
|
|
1135
|
+ } catch (error) {
|
|
|
|
1136
|
+ console.error('删除失败:', error)
|
|
|
|
1137
|
+ }
|
|
|
|
1138
|
+ }).catch(() => { })
|
|
|
|
1139
|
+}
|
|
|
|
1140
|
+
|
|
1112
|
// 新增
|
1141
|
// 新增
|
|
1113
|
const handleAdd = () => {
|
1142
|
const handleAdd = () => {
|
|
1114
|
dialog.visible = true
|
1143
|
dialog.visible = true
|