From 6da96f24c45688d043bc5aef66f299d028bf5d87 Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Tue, 26 Dec 2023 18:10:28 +0800
Subject: [PATCH] 页面更新

---
 src/option/evaluate/evaluateResult.js             |    5 +
 src/views/evaluate/evaluateResult.vue             |   16 +++++
 src/views/evaluate/components/referrerPopover.vue |   85 ++++++++++++++++++++++++++++
 src/api/evaluate/evaluateResult.js                |   11 +++
 src/views/assessment/components/popoverTable.vue  |    6 +-
 src/views/assessment/assessmentTaskSetting.vue    |    2 
 6 files changed, 121 insertions(+), 4 deletions(-)

diff --git a/src/api/evaluate/evaluateResult.js b/src/api/evaluate/evaluateResult.js
index 8fa5ca7..8368417 100755
--- a/src/api/evaluate/evaluateResult.js
+++ b/src/api/evaluate/evaluateResult.js
@@ -50,3 +50,14 @@
   })
 }
 
+export const getReferrer = (type, beId, evaluateTaskId) => {
+  return request({
+    url: '/evaluate/evaluateResult/list',
+    method: 'get',
+    params: {
+      type,
+      beId,
+      evaluateTaskId
+    }
+  })
+}
diff --git a/src/option/evaluate/evaluateResult.js b/src/option/evaluate/evaluateResult.js
index 533a657..86720cd 100755
--- a/src/option/evaluate/evaluateResult.js
+++ b/src/option/evaluate/evaluateResult.js
@@ -37,6 +37,11 @@
     type: "input",
   },
   {
+    label: "推荐人",
+    prop: "referrer",
+    type: "input",
+  },
+  {
     label: "创建人",
     prop: "createUser",
     type: "input",
diff --git a/src/views/assessment/assessmentTaskSetting.vue b/src/views/assessment/assessmentTaskSetting.vue
index 9a3bc63..86a8300 100644
--- a/src/views/assessment/assessmentTaskSetting.vue
+++ b/src/views/assessment/assessmentTaskSetting.vue
@@ -14,7 +14,7 @@
                 <template #assessmentPerson="{ row }">
                     <popoverTable :params="{...row, type: defaultTaskType}">
                         <template #content>
-                            <el-button type="success" text size="small" icon="el-icon-pointer">考核人预览</el-button>
+                            <el-button type="success" text icon="el-icon-pointer">考核人预览</el-button>
                         </template>
                     </popoverTable>
                 </template>
diff --git a/src/views/assessment/components/popoverTable.vue b/src/views/assessment/components/popoverTable.vue
index 8430b98..162559e 100644
--- a/src/views/assessment/components/popoverTable.vue
+++ b/src/views/assessment/components/popoverTable.vue
@@ -186,13 +186,13 @@
                 // toUserId: this.params.id
                 // userId: this.params.id
             };
-            this.params.isDept && Object.assign(values, {
+            this.params.type && Object.assign(values, {
                 deptId: this.params.id
             });
-            !this.params.isDept && Object.assign(values, {
+            !this.params.type && Object.assign(values, {
                 userId: this.params.id
             });
-            (this.params.isDept ? getDeptList(page.currentPage, page.pageSize, values) : getList(page.currentPage, page.pageSize, values)).then(res => {
+            (this.params.type ? getDeptList(page.currentPage, page.pageSize, values) : getList(page.currentPage, page.pageSize, values)).then(res => {
                 const data = res.data.data;
                 this.page.total = data.total;
                 this.data = data.records;
diff --git a/src/views/evaluate/components/referrerPopover.vue b/src/views/evaluate/components/referrerPopover.vue
new file mode 100644
index 0000000..4709f73
--- /dev/null
+++ b/src/views/evaluate/components/referrerPopover.vue
@@ -0,0 +1,85 @@
+<template>
+    <el-popover placement="top-end" title="推荐人" :width="700" trigger="hover" @show="init">
+        <avue-crud :option="option" :data="tableData" v-model:page="page">
+        </avue-crud>
+        <template #reference>
+            <slot name="default"></slot>
+        </template>
+    </el-popover>
+</template>
+
+<script setup>
+import { reactive, readonly } from 'vue';
+import { getReferrer } from '@/api/evaluate/evaluateResult'
+import _ from 'lodash'
+
+const props = defineProps({
+    params: {
+        type: Object,
+        default: () => {
+            return {}
+        }
+    }
+})
+
+
+const option = reactive({
+    height: '190',
+    calcHeight: 32,
+    border: true,
+    index: true,
+    addBtn: false,
+    viewBtn: true,
+    editBtn: true,
+    delBtn: true,
+    header: false,
+    menu: false,
+    menuBtn: false,
+    column: [
+        {
+            label: '推荐人',
+            type: 'input',
+            prop: 'scoreUserName',
+            width: 150,
+            isSlot: true
+        },
+        {
+            label: '职位',
+            type: 'input',
+            prop: 'scorePostName',
+        },
+        {
+            label: '部门',
+            type: 'input',
+            prop: 'scoreDeptName',
+        },
+        {
+            label: '推荐理由',
+            type: 'input',
+            prop: 'remark'
+        }
+    ]
+})
+const tableData = ref([])
+const page = ref({
+    pageSize: 10,
+    currentPage: 1,
+    total: 0,
+    layout: "total,prev, pager, next",
+})
+
+const init = () => {
+    const { userId, type, evaluateTaskId } = props.params
+    getReferrer(type, userId, evaluateTaskId).then(res => {
+        const { data } = res
+        const referrerRes = _.cloneDeep(data.data.records)
+        tableData.value = referrerRes
+        page.value.total = data.data.total
+    })
+}
+
+
+
+</script>
+
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/src/views/evaluate/evaluateResult.vue b/src/views/evaluate/evaluateResult.vue
index 6fd5f21..194fe11 100755
--- a/src/views/evaluate/evaluateResult.vue
+++ b/src/views/evaluate/evaluateResult.vue
@@ -6,6 +6,18 @@
       @row-save="rowSave" @row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
       @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
       @refresh-change="refreshChange" @on-load="onLoad">
+      <template #referrer="{row}">
+        <template v-if="row.voteNum !== 0">
+          <referrerPopover :params="row">
+            <template #default>
+              <el-button type="success" text icon="el-icon-pointer">推荐人预览</el-button>
+            </template>
+          </referrerPopover>
+        </template>
+        <template v-else>
+            <el-button type="warning" text icon="el-icon-circle-close">暂无推荐人</el-button>
+        </template>
+      </template>
     </avue-crud>
   </basic-container>
 </template>
@@ -20,8 +32,12 @@
 import { dateNow } from "@/utils/date";
 import NProgress from 'nprogress';
 import 'nprogress/nprogress.css';
+import referrerPopover from './components/referrerPopover.vue'
 
 export default {
+  components: {
+    referrerPopover
+  },
   data() {
     return {
       form: {},

--
Gitblit v1.9.3