|
|
@@ -94,10 +94,10 @@
|
|
94
|
94
|
<el-table-column label="是否豁免备注" prop="exemptionRemark" align="center" min-width="140" show-overflow-tooltip />
|
|
95
|
95
|
<el-table-column label="考核月份" prop="assessmentMonth" align="center" min-width="120" />
|
|
96
|
96
|
|
|
97
|
|
- <el-table-column label="操作" align="center" width="150" fixed="right">
|
|
|
97
|
+ <el-table-column label="操作" align="center" width="120" fixed="right">
|
|
98
|
98
|
<template #default="scope">
|
|
99
|
|
- <el-button size="small" type="primary" link @click="handleEdit(scope.row, 'non-cadre')">修改</el-button>
|
|
100
|
|
- <el-button size="small" type="danger" link @click="handleDelete(scope.row)">删除</el-button>
|
|
|
99
|
+ <el-button link type="primary" icon="Edit" @click="handleEdit(scope.row, 'non-cadre')">修改</el-button>
|
|
|
100
|
+ <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
|
101
|
101
|
</template>
|
|
102
|
102
|
</el-table-column>
|
|
103
|
103
|
</el-table>
|
|
|
@@ -106,28 +106,32 @@
|
|
106
|
106
|
<!-- 干部数据表格 -->
|
|
107
|
107
|
<div v-else>
|
|
108
|
108
|
<el-table v-loading="loading" :data="cadreList" border fit highlight-current-row style="width: 100%; margin-top: 20px;">
|
|
109
|
|
- <el-table-column label="员工姓名" prop="employeeName" align="center" min-width="120" />
|
|
110
|
|
- <el-table-column label="岗位" prop="position" align="center" min-width="120" />
|
|
111
|
|
- <el-table-column label="区域" prop="area" align="center" min-width="100" />
|
|
|
109
|
+ <el-table-column label="姓名" prop="name" align="center" min-width="120" />
|
|
|
110
|
+ <el-table-column label="部门" prop="deptName" align="center" min-width="120" />
|
|
|
111
|
+ <el-table-column label="岗位" prop="post" align="center" min-width="120">
|
|
|
112
|
+ <template #default="scope">
|
|
|
113
|
+ <dict-tag :options="post" :value="scope.row.post" />
|
|
|
114
|
+ </template>
|
|
|
115
|
+ </el-table-column>
|
|
|
116
|
+ <el-table-column label="区域" prop="area" align="center" min-width="100">
|
|
|
117
|
+ <template #default="scope">
|
|
|
118
|
+ <dict-tag :options="work_area" :value="scope.row.area" />
|
|
|
119
|
+ </template>
|
|
|
120
|
+ </el-table-column>
|
|
112
|
121
|
<el-table-column label="红线扣分" prop="redLineDeduction" align="center" min-width="100" />
|
|
113
|
|
- <el-table-column label="红线扣分豁免情况" prop="redLineExemption" align="center" min-width="140" show-overflow-tooltip />
|
|
114
|
122
|
<el-table-column label="违规排名扣分" prop="violationRankingDeduction" align="center" min-width="140" />
|
|
115
|
|
- <el-table-column label="违规排名扣分豁免情况" prop="violationRankingExemption" align="center" min-width="180" show-overflow-tooltip />
|
|
116
|
123
|
<el-table-column label="技能排名扣分" prop="skillRankingDeduction" align="center" min-width="140" />
|
|
117
|
|
- <el-table-column label="技能排名扣分豁免情况" prop="skillRankingExemption" align="center" min-width="180" show-overflow-tooltip />
|
|
|
124
|
+ <el-table-column label="技能排名扣分豁免情况" prop="skillExemptionStatus" align="center" min-width="180" show-overflow-tooltip />
|
|
118
|
125
|
<el-table-column label="总分" prop="totalScore" align="center" min-width="100" sortable />
|
|
119
|
126
|
<el-table-column label="考核结果" prop="assessmentResult" align="center" min-width="120" />
|
|
120
|
|
- <el-table-column label="考核结果备注" prop="assessmentResultRemark" align="center" min-width="140" show-overflow-tooltip />
|
|
121
|
|
- <el-table-column label="考核月份" prop="assessmentMonth" align="center" min-width="120" />
|
|
122
|
|
- <el-table-column label="应用方式" prop="applicationMethod" align="center" min-width="120" />
|
|
123
|
|
- <el-table-column label="应用方式备注" prop="applicationMethodRemark" align="center" min-width="160" show-overflow-tooltip />
|
|
124
|
|
-
|
|
125
|
|
- <el-table-column label="操作" align="center" width="150" fixed="right">
|
|
|
127
|
+ <el-table-column label="考核结果备注" prop="assessmentRemark" align="center" min-width="140" show-overflow-tooltip />
|
|
|
128
|
+ <el-table-column label="考核月份" align="center" min-width="120">
|
|
126
|
129
|
<template #default="scope">
|
|
127
|
|
- <el-button size="small" type="primary" link @click="handleEdit(scope.row, 'cadre')">修改</el-button>
|
|
128
|
|
- <el-button size="small" type="danger" link @click="handleDelete(scope.row)">删除</el-button>
|
|
|
130
|
+ {{ scope.row.year }}-{{ String(scope.row.month).padStart(2, '0') }}
|
|
129
|
131
|
</template>
|
|
130
|
132
|
</el-table-column>
|
|
|
133
|
+ <el-table-column label="应用方式" prop="applicationMethod" align="center" min-width="120" />
|
|
|
134
|
+ <el-table-column label="应用方式备注" prop="applicationRemark" align="center" min-width="160" show-overflow-tooltip />
|
|
131
|
135
|
</el-table>
|
|
132
|
136
|
</div>
|
|
133
|
137
|
|
|
|
@@ -572,13 +576,14 @@
|
|
572
|
576
|
</template>
|
|
573
|
577
|
|
|
574
|
578
|
<script setup>
|
|
575
|
|
-import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
|
|
|
579
|
+import { ref, reactive, onMounted, getCurrentInstance, watch } from 'vue'
|
|
576
|
580
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
577
|
581
|
|
|
578
|
582
|
// API导入(需要根据实际API路径调整)
|
|
579
|
|
-import { getNonCadreMonthlyAssessList, addNonCadreMonthlyAssess, updateNonCadreMonthlyAssess, deleteNonCadreMonthlyAssess } from '@/api/performance/nonCadreMonthlyAssess.js'
|
|
|
583
|
+import { listCadreAssessment, generateCadreAssessment } from '@/api/performance/monthlyAssess.js'
|
|
580
|
584
|
|
|
581
|
585
|
const { proxy } = getCurrentInstance()
|
|
|
586
|
+const { post, work_area } = proxy.useDict('post', 'work_area')
|
|
582
|
587
|
|
|
583
|
588
|
// 响应式数据
|
|
584
|
589
|
const loading = ref(false)
|
|
|
@@ -587,6 +592,11 @@ const queryFormRef = ref()
|
|
587
|
592
|
const formRef = ref()
|
|
588
|
593
|
const currentTab = ref('non-cadre')
|
|
589
|
594
|
|
|
|
595
|
+// 监听tab切换
|
|
|
596
|
+watch(() => currentTab.value, () => {
|
|
|
597
|
+ getList()
|
|
|
598
|
+})
|
|
|
599
|
+
|
|
590
|
600
|
// 查询参数
|
|
591
|
601
|
const queryParams = reactive({
|
|
592
|
602
|
pageNum: 1,
|
|
|
@@ -754,13 +764,15 @@ const getList = async () => {
|
|
754
|
764
|
loading.value = true
|
|
755
|
765
|
try {
|
|
756
|
766
|
if (currentTab.value === 'non-cadre') {
|
|
757
|
|
- const res = await getNonCadreMonthlyAssessList(queryParams)
|
|
758
|
|
- nonCadreList.value = res.rows || []
|
|
759
|
|
- total.value = res.total || 0
|
|
|
767
|
+ // const res = await getNonCadreMonthlyAssessList(queryParams)
|
|
|
768
|
+ // nonCadreList.value = res.rows || []
|
|
|
769
|
+ // total.value = res.total || 0
|
|
760
|
770
|
} else {
|
|
761
|
|
- // 干部数据API(待实现)
|
|
762
|
|
- cadreList.value = []
|
|
763
|
|
- total.value = 0
|
|
|
771
|
+ // 干部数据API
|
|
|
772
|
+ const res = await listCadreAssessment(queryParams)
|
|
|
773
|
+
|
|
|
774
|
+ cadreList.value = res.rows || []
|
|
|
775
|
+ total.value = res.total || 0
|
|
764
|
776
|
}
|
|
765
|
777
|
} catch (error) {
|
|
766
|
778
|
console.error('获取数据失败:', error)
|
|
|
@@ -892,9 +904,21 @@ const handleExport = async () => {
|
|
892
|
904
|
// 生成本月考核表
|
|
893
|
905
|
const generateMonthlyAssessment = async () => {
|
|
894
|
906
|
try {
|
|
895
|
|
- ElMessage.success('生成本月考核表功能开发中')
|
|
|
907
|
+ ElMessageBox.confirm('是否生成本月干部考核数据?', '提示', {
|
|
|
908
|
+ confirmButtonText: '确定',
|
|
|
909
|
+ cancelButtonText: '取消',
|
|
|
910
|
+ type: 'warning'
|
|
|
911
|
+ }).then(async () => {
|
|
|
912
|
+ loading.value = true
|
|
|
913
|
+ const res = await generateCadreAssessment({ assessmentMonth: queryParams.assessmentMonth })
|
|
|
914
|
+ ElMessage.success('生成成功')
|
|
|
915
|
+ getList()
|
|
|
916
|
+ }).catch(() => {})
|
|
896
|
917
|
} catch (error) {
|
|
|
918
|
+ console.error('生成失败:', error)
|
|
897
|
919
|
ElMessage.error('生成失败')
|
|
|
920
|
+ } finally {
|
|
|
921
|
+ loading.value = false
|
|
898
|
922
|
}
|
|
899
|
923
|
}
|
|
900
|
924
|
|