GuLiMmo
2024-01-16 9f53be1dfd7f55ca43fa4e8229c371e8ed29a5ba
src/views/assessment/assessmentTask.vue
@@ -1,6 +1,6 @@
<template>
  <basic-container>
    <template v-if="isResult">
    <template v-if="curIndex === 0">
      <avue-tabs ref="tabs" :option="taskTypeList" @change="tabChange"></avue-tabs>
      <avue-crud :option="option" v-model:search="search" v-model:page="page" v-model="form" :table-loading="loading"
        :data="data" :permission="permissionList" :before-open="beforeOpen" ref="crud" @row-update="rowUpdate"
@@ -8,7 +8,7 @@
        @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
        @refresh-change="refreshChange" @on-load="onLoad">
        <template #isAssessmentOk="{ row }">
          <el-tag :type="row.isAssessmentOk ? 'success' : ''" effect="dark">{{ row.isAssessmentOk ? '已完成' : '进行中' }}</el-tag>
          <el-tag :type="setTaskState(row.isAssessmentOk).type" effect="dark">{{ setTaskState(row.isAssessmentOk).text }}</el-tag>
        </template>
        <template #menu-left>
          <el-button type="danger" icon="el-icon-delete" plain v-if="permission.assessmentTask_delete"
@@ -19,16 +19,39 @@
            导出
          </el-button> -->
        </template>
        <template #menu="{ row }">
          <el-button type="primary" icon="el-icon-plus" size="small" @click="handleTaskResult(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)">
            考核结果
          </el-button> -->
          <el-button type="danger" icon="el-icon-delete" text @click="rowDel(row)">
            删除
          </el-button>
        </template>
      </avue-crud>
    </template>
    <template v-else>
      <taskResult :params="resultParams" @changeIs="changeIs" />
    <template v-else-if="curIndex === 1">
      <assessmentTaskSetting :params="resultParams" @changeIs="changeIs"/>
    </template>
    <!-- <template v-else>
      <taskResult :params="resultParams" @changeIs="changeIs" />
    </template> -->
    <!-- 考核结果详情 -->
    <assessorDetails :params="detailsParams" />
    <!-- 考核人员详情 -->
    <assessorDialog :params="assessorDialogParams" />
  </basic-container>
</template>
@@ -43,14 +66,22 @@
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import taskResult from './components/taskResult.vue'
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
    taskResult,
    addTaskDialog,
    assessmentTaskSetting,
    assessorDetails,
    assessorDialog
  },
  data() {
    return {
      isResult: true,
      curIndex: 0,
      form: {},
      query: {},
      search: {},
@@ -77,7 +108,9 @@
            prop: 1
          }
        ]
      }
      },
      detailsParams: {},
      assessorDialogParams: {}
    };
  },
  watch: {
@@ -120,14 +153,24 @@
      return ids.join(",");
    }
  },
  provide() {
    return {
      type: () => this.defaultTaskType
    }
  },
  methods: {
    handleTaskResult(row) {
      this.isResult = false;
    handleTaskSetting(row) {
      this.curIndex = 1;
      this.resultParams = row
      this.resultParams.type = this.defaultTaskType
    },
    changeIs(is) {
      this.isResult = is
    // handleTaskResult(row) {
    //   this.curIndex = 2;
    //   this.resultParams = row
    //   this.resultParams.type = this.defaultTaskType
    // },
    changeIs(num) {
      this.curIndex = num
      this.$nextTick(() => {
        this.$refs.tabs.active = this.defaultTaskType.toString()
      })
@@ -283,6 +326,35 @@
    },
    tabChange(value) {
      this.defaultTaskType = value.prop
    },
    setTaskState(state) {
      const status = {
        '-1': {
          text: '未开始',
          type: 'warning'
        },
        '0': {
          text: '进行中',
          type: ''
        },
        '1': {
          text: '已完成',
          type: 'success'
        },
      }
      return status[state]
    },
    handleAssessorDetails(row) {
      this.detailsParams = {
        visible: true,
        data: row
      }
    },
    handleAssessorList(row) {
      this.assessorDialogParams = {
        visible: true,
        data: row
      }
    }
  }
};