From 730b4e1b8737e86ca08cfebb066249baaf46e869 Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Mon, 15 Jan 2024 17:59:31 +0800
Subject: [PATCH] 提交
---
src/option/assessmentTask/assessmentTask.js | 31 +++++
src/views/assessment/components/assessorDialog.vue | 165 +++++++++++++++++++++++++++++++++
src/api/assessment/assessmentScore.js | 22 ++++
src/views/assessment/assessmentTask.vue | 29 ++++-
4 files changed, 237 insertions(+), 10 deletions(-)
diff --git a/src/api/assessment/assessmentScore.js b/src/api/assessment/assessmentScore.js
index 771c340..f55a21c 100644
--- a/src/api/assessment/assessmentScore.js
+++ b/src/api/assessment/assessmentScore.js
@@ -24,4 +24,26 @@
// size,
}
})
+}
+
+export const getAsserorDetailList = (current, size, params) => {
+ return request({
+ url: '/assessment/assessmentScore/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ }
+ })
+}
+
+export const sendBackAsseror = (ids) => {
+ return request({
+ url: '/assessment/assessmentScore/remove',
+ method: 'post',
+ params: {
+ ids
+ }
+ })
}
\ No newline at end of file
diff --git a/src/option/assessmentTask/assessmentTask.js b/src/option/assessmentTask/assessmentTask.js
index 518d1c3..6172195 100644
--- a/src/option/assessmentTask/assessmentTask.js
+++ b/src/option/assessmentTask/assessmentTask.js
@@ -18,7 +18,7 @@
index: false,
viewBtn: false,
delBtn: false,
- editBtn: true,
+ editBtn: false,
selection: true,
menuWidth: 250,
dialogClickModal: false,
@@ -112,15 +112,26 @@
label: "开始时间",
prop: "startTime",
type: "date",
- value: getNowDate(),
- disabled: true,
+ // disabled: true,
format: "YYYY-MM-DD HH:mm:ss",
- // valueFormat: "YYYY-MM-DD HH:mm:ss",
+ valueFormat: "YYYY-MM-DD HH:mm:ss",
minWidth: 200,
rules: [
{
required: true,
message: '请选择开始时间',
+ trigger: 'click',
+ },
+ {
+ validator: (rule, value, callback) => {
+ const nowDate = new Date().getTime() - (24*60*60*1000)
+ const selectDate = new Date(value).getTime()
+ if (selectDate < nowDate) {
+ callback(new Error('选择的时候不能小于当前时间'))
+ } else {
+ callback()
+ }
+ },
trigger: 'click',
},
],
@@ -138,6 +149,18 @@
message: '请选择结束时间',
trigger: 'click',
},
+ {
+ validator: (rule, value, callback) => {
+ const nowDate = new Date().getTime() - (24*60*60*1000)
+ const selectDate = new Date(value).getTime()
+ if (selectDate < nowDate) {
+ callback(new Error('选择的时候不能小于当前时间'))
+ } else {
+ callback()
+ }
+ },
+ trigger: 'click',
+ },
],
},
{
diff --git a/src/views/assessment/assessmentTask.vue b/src/views/assessment/assessmentTask.vue
index 488db91..5344e2a 100644
--- a/src/views/assessment/assessmentTask.vue
+++ b/src/views/assessment/assessmentTask.vue
@@ -19,12 +19,19 @@
导出
</el-button> -->
</template>
- <template #menu="{ row }">
+ <template #menu="{ row, index, size }">
<el-button type="primary" icon="el-icon-setting" text @click="handleTaskSetting(row)">
考核设置
</el-button>
<el-button type="primary" icon="el-icon-view" text @click="handleAssessorDetails(row)">
考核结果
+ </el-button>
+ <el-button type="primary" icon="el-icon-view" text @click="handleAssessorList(row)">
+ 考核任务人员详情
+ </el-button>
+ <el-button type="success" icon="el-icon-edit" text v-if="row.isAssessmentOk === -1"
+ @click="$refs.crud.rowEdit(row,index)">
+ 编辑
</el-button>
<!-- <el-button type="primary" icon="el-icon-view" text @click="handleTaskResult(row)">
考核结果
@@ -41,8 +48,10 @@
<!-- <template v-else>
<taskResult :params="resultParams" @changeIs="changeIs" />
</template> -->
- <!-- 考核人员详情 -->
+ <!-- 考核结果详情 -->
<assessorDetails :params="detailsParams" />
+ <!-- 考核人员详情 -->
+ <assessorDialog :params="assessorDialogParams" />
</basic-container>
</template>
@@ -60,13 +69,15 @@
import addTaskDialog from "./components/addTaskDialog.vue";
import assessmentTaskSetting from "./components/assessmentTaskSetting.vue";
import assessorDetails from "./components/assessorDetails.vue";
+import assessorDialog from "./components/assessorDialog.vue";
export default {
components: {
taskResult,
addTaskDialog,
assessmentTaskSetting,
- assessorDetails
+ assessorDetails,
+ assessorDialog
},
data() {
return {
@@ -98,8 +109,8 @@
}
]
},
- // 人员详情参数
- detailsParams: {}
+ detailsParams: {},
+ assessorDialogParams: {}
};
},
watch: {
@@ -324,7 +335,7 @@
},
'0': {
text: '进行中',
- type: 'primary'
+ type: ''
},
'1': {
text: '已完成',
@@ -338,6 +349,12 @@
visible: true,
data: row
}
+ },
+ handleAssessorList(row) {
+ this.assessorDialogParams = {
+ visible: true,
+ data: row
+ }
}
}
};
diff --git a/src/views/assessment/components/assessorDialog.vue b/src/views/assessment/components/assessorDialog.vue
new file mode 100644
index 0000000..06c5298
--- /dev/null
+++ b/src/views/assessment/components/assessorDialog.vue
@@ -0,0 +1,165 @@
+<template>
+ <el-dialog v-model="params.visible" :title="params.data?.assessmentNo ? `考核编号(${params.data.assessmentNo})` : '考核人员详情'"
+ width="65%" @open="dialogOpen">
+ <avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" @search-change="searchChange"
+ @search-reset="searchReset" @current-change="currentChange" @size-change="sizeChange"
+ @refresh-change="refreshChange" @on-load="onLoad">
+ <template #menu="{ row }">
+ <el-button type="warning" icon="el-icon-warning" text @click="sendBack(row)">驳回</el-button>
+ </template>
+ </avue-crud>
+ </el-dialog>
+</template>
+
+<script>
+import { getAsserorDetailList, sendBackAsseror } from '@/api/assessment/assessmentScore'
+
+export default {
+ props: {
+ params: {
+ type: Object,
+ default: () => {
+ return {
+ visible: false,
+ data: {}
+ }
+ }
+ }
+ },
+ data() {
+ return {
+ loading: true,
+ query: {},
+ data: [],
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0
+ },
+ option: {
+ height: '400',
+ calcHeight: 30,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ viewBtn: false,
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ menuWidth: 150,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "工号",
+ prop: 'code',
+ type: "input",
+ },
+ {
+ label: "考核人",
+ prop: "scoreUserName",
+ type: "input",
+ search: true,
+ },
+ {
+ label: "部门",
+ prop: "scoreDeptName",
+ type: "select",
+ // dicUrl: '/api/blade-system/dept/lazy-list?parentId=1737282385453543425',
+ // search: true,
+ // props: {
+ // label: 'deptName',
+ // value: 'fullName'
+ // },
+ overHidden: true
+ },
+ {
+ label: "职务",
+ prop: "scorePostName",
+ type: "input",
+ },
+ {
+ label: "被考核人",
+ prop: "userName",
+ type: "input",
+ },
+ {
+ label: "考核分",
+ prop: "scoreVal",
+ type: "input",
+ }
+ ]
+ },
+ detailParams: {}
+ }
+ },
+ methods: {
+ searchReset() {
+ this.query = {};
+ this.onLoad(this.page, { type: this.defaultTaskType });
+ },
+ searchChange(params, done) {
+ this.query = {
+ ...params,
+ };
+ this.page.currentPage = 1;
+ this.onLoad(this.page, params);
+ done();
+ },
+ currentChange(currentPage) {
+ this.page.currentPage = currentPage;
+ },
+ sizeChange(pageSize) {
+ this.page.pageSize = pageSize;
+ },
+ refreshChange() {
+ this.onLoad(this.page, this.query);
+ },
+ onLoad(page, params = {}) {
+ this.loading = true;
+
+ const { id } = this.params.data
+
+ const {
+ } = this.query;
+
+ let values = {
+ ...this.query,
+ ...params,
+ assessmentTaskId: id
+ };
+ getAsserorDetailList(page.currentPage, page.pageSize, values).then(res => {
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ });
+ },
+ dialogOpen() {
+ this.onLoad(this.page)
+ },
+ sendBack(row) {
+ this.$confirm("是否驳回当前记录?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ }).then(res => {
+ const { id } = row
+ sendBackAsseror(id).then(res => {
+ if (res.data.code !== 200) return this.$message.error(res.data.msg)
+ this.$message({
+ type: "success",
+ message: "驳回成功!"
+ });
+ this.onLoad(this.page);
+ })
+ })
+ }
+ }
+}
+
+</script>
+
+<style lang="scss" scoped></style>
\ No newline at end of file
--
Gitblit v1.9.3