GuLiMmo
2023-12-25 36cf6c5a265d3300a286e2aff6058b82bca8227e
评优页面更新
7 files modified
79 ■■■■■ changed files
src/api/evaluate/evaluateResult.js 2 ●●● patch | view | raw | blame | history
src/api/evaluate/evaluateTask.js 1 ●●●● patch | view | raw | blame | history
src/views/assessment/assessmentTask.vue 4 ●●●● patch | view | raw | blame | history
src/views/assessment/assessmentTaskSetting.vue 3 ●●●● patch | view | raw | blame | history
src/views/evaluate/components/addCandidate.vue 1 ●●●● patch | view | raw | blame | history
src/views/evaluate/components/viewEvaluateDetail.vue 59 ●●●● patch | view | raw | blame | history
src/views/evaluate/evaluateTask.vue 9 ●●●●● patch | view | raw | blame | history
src/api/evaluate/evaluateResult.js
@@ -9,7 +9,7 @@
      ...params,
      current,
      size,
      descs: 'vote_num'
      descs: 'evaluate_task_id,dept_id,vote_num'
    }
  })
}
src/api/evaluate/evaluateTask.js
@@ -85,7 +85,6 @@
    method: 'get',
    params: {
      ...params,
      type: 2,
      descs: 'vote_num'
    }
  })
src/views/assessment/assessmentTask.vue
@@ -15,9 +15,9 @@
            @click="handleDelete">
            删除
          </el-button>
          <el-button type="warning" plain icon="el-icon-download" @click="handleExport">
          <!-- <el-button type="warning" plain icon="el-icon-download" @click="handleExport">
            导出
          </el-button>
          </el-button> -->
        </template>
        <template #menu="{ row }">
          <el-button type="primary" icon="el-icon-plus" size="small" @click="handleTaskResult(row)">
src/views/assessment/assessmentTaskSetting.vue
@@ -274,7 +274,8 @@
            } = this.query;
            let values = {
                ...this.query,
                ...params
                ...params,
                userType: 2
            };
            this.data = []
            !this.defaultTaskType && getList(page.currentPage, page.pageSize, values, values.deptId).then(res => {
src/views/evaluate/components/addCandidate.vue
@@ -119,7 +119,6 @@
            type: 'input',
            display: false,
            formatter: (row) => {
                console.log(dataSourceStatus[row.dataSource]);
                return dataSourceStatus[row.dataSource] || '系统分配'
            },
        }
src/views/evaluate/components/viewEvaluateDetail.vue
@@ -1,5 +1,5 @@
<template>
    <el-dialog title="信息预览" v-model="params.visible" width="50%">
    <el-dialog title="信息预览" v-model="params.visible" width="70%">
        <div class="descriptions">
            <div class="descriptions-item" v-for="item in taskDateil" :key="item.prop" :style="{ width: item.width }">
                <div class="label">{{ item.title }}</div>
@@ -106,27 +106,27 @@
            column: [
                {
                    label: '评优项目',
                    prop: '',
                    prop: 'evaluateTaskName',
                    type: 'input',
                },
                {
                    label: '名称',
                    prop: '',
                    type: 'input',
                },
                // {
                //     label: '任务类别',
                //     prop: '',
                //     type: 'input',
                // },
                {
                    label: '候选人',
                    prop: '',
                    prop: 'userName',
                    type: 'input',
                },
                {
                    label: '部门',
                    prop: '',
                    prop: 'deptName',
                    type: 'input'
                },
                {
                    label: '票数',
                    prop: '',
                    prop: 'voteNum',
                    type: 'input'
                }
            ]
@@ -151,10 +151,11 @@
}
const getFinallyList = () => {
    const { id, evaluateNum } = props.params.data
    const params = {
        evaluateTaskId: props.params.data.id,
        current: page.current,
        size: page.size
        evaluateTaskId: id,
        current: 1,
        size: evaluateNum
    }
    return getFinallyResult(params).then(res => {
        return res.data.data.records
@@ -163,19 +164,48 @@
const initData = async () => {
    const data = props.params.data
    const status = {
        0: '未开始',
        1: '进行中',
        2: '已完成'
    }
    for (const item of taskDateil) {
        item.value = data[item.prop] || '暂未完善'
        if (['candidateState', 'evaluateState'].includes(item.prop)) {
            item.value = status[item.value]
        }
        if (item.prop === 'candidateResult') {
            const res = await candidateList()
            if (res.length == 0) {
                item.value = '暂无候选人'
            } else {
                const candidates = {}
                const candidateStrArr = []
                const { candidateNum } = data
                candidateNum.forEach(candidate => {
                    res.forEach(r => {
                        const value = candidate.users.find(user => user.id === r.userId)
                        if (value) {
                            if (candidates[candidate.deptName] === void 0) {
                                candidates[candidate.deptName] = []
                            }
                            candidates[candidate.deptName].push(value.name)
                        }
                    })
                })
                Object.keys(candidates).forEach(key => { candidateStrArr.push(`${key}(${candidates[key].length}人):${candidates[key].join('、')}`) })
                item.value = candidateStrArr.join('\n')
                console.log(candidateStrArr.join('\n'));
            }
        }
        if (item.prop === 'finallyResult') {
            const res = await getFinallyList()
            item.data = res
            console.log(item.data);
        }
    }
@@ -220,9 +250,10 @@
            background-color: aliceblue;
            border-right: 1px solid #eeeded;
        }
        .value {
            white-space: pre-line;
        }
        .table {
            padding: 10px;
            width: calc(100% - 20px);
src/views/evaluate/evaluateTask.vue
@@ -10,15 +10,15 @@
        <el-button type="primary" icon="el-icon-plus" @click="handleAdd">新增</el-button>
        <el-button type="danger" icon="el-icon-delete" plain v-if="permission.evaluateTask_delete"
          @click="handleDelete">删除</el-button>
        <el-button type="warning" plain icon="el-icon-download" @click="handleExport">导出</el-button>
        <!-- <el-button type="warning" plain icon="el-icon-download" @click="handleExport">导出</el-button> -->
      </template>
      <template #menu="{ size, row, index }">
        <el-button type="primary" text plain icon="el-icon-view" @click="viewDateilDialog(row)">详情</el-button>
        <el-button type="primary" text plain icon="el-icon-edit" @click="editDialog(row)">编辑</el-button>
        <el-button type="primary" text plain icon="el-icon-position" @click="publicTimeBtn(row)"
          v-if="row.candidateState === 2">发布</el-button>
        <el-button type="primary" v-if="row.type === 0 && row.candidateState === 2" text plain icon="el-icon-plus" @click="addCandidateHandle(row)">新增候选人</el-button>
        <el-button type="primary" text plain icon="el-icon-download">导出</el-button>
          v-if="row.candidateState === 2 && row.evaluateState === 0">发布</el-button>
        <el-button type="primary" v-if="row.type === 0 && row.candidateState === 0" text plain icon="el-icon-plus" @click="addCandidateHandle(row)">新增候选人</el-button>
        <!-- <el-button type="primary" text plain icon="el-icon-download">导出</el-button> -->
      </template>
    </avue-crud>
    <!-- 发布弹窗 -->
@@ -344,6 +344,7 @@
      this.rowData = row;
      this.dialogVisible = true;
    },
    // 发布
    timeSubmit() {
      const { id } = this.rowData;
      const params = {