GuLiMmo
2023-12-18 5537bb460ef58d65da701302e95af7c9f46092e5
评优任务细节修改
3 files modified
199 ■■■■■ changed files
src/option/evaluate/evaluateTask.js 186 ●●●●● patch | view | raw | blame | history
src/views/evaluate/components/addDialog.vue 6 ●●●● patch | view | raw | blame | history
src/views/evaluate/evaluateTask.vue 7 ●●●● patch | view | raw | blame | history
src/option/evaluate/evaluateTask.js
@@ -1,10 +1,10 @@
const status = {
  0: '未开始',
  1: '进行中',
  2: '已结束'
  2: '已完成'
}
export default {
export const option = {
  height: 'auto',
  calcHeight: 30,
  tip: false,
@@ -208,3 +208,185 @@
    },
  ]
}
export const sectionOption = {
  height: 'auto',
  calcHeight: 30,
  tip: false,
  searchShow: true,
  searchMenuSpan: 6,
  border: true,
  index: true,
  viewBtn: true,
  addBtn: false,
  editBtn: false,
  selection: true,
  dialogClickModal: false,
  menuFixed: 'right',
  column: [
    {
      label: "主键",
      prop: "id",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "租户ID",
      prop: "tenantId",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "任务名称",
      prop: "taskName",
      type: "input",
      search: true,
      minWidth: '120px'
    },
    {
      label: "任务类别",
      prop: "taskType",
      type: "input",
      minWidth: '100px'
    },
    {
      label: "认定标准描述",
      prop: "remark",
      type: "input",
      hide: true,
    },
    {
      label: "评定人数量",
      prop: "candidateNum",
      type: "input",
      span: 24,
      minWidth: '100px',
      formatter: (row, value) => {
        let num = 0
        if (value === void 0) {
          num = 0
        } else {
          if (!row.type) {
            value.forEach(item => {
              num += Number(item.val)
            })
          } else {
            row.candidateNum.forEach(item => {
              num += Number(item.users.length)
            })
          }
        }
        return num + '人'
      },
    },
    {
      label: "类型",
      prop: 'type',
      type: 'select',
      hide: true,
      dicData: [{
        label: '个人评优',
        value: 0,
      },
      {
        label: '部门评优',
        value: 1,
      }]
    },
    {
      label: "评优数量",
      prop: "evaluateNum",
      type: "input",
      minWidth: '100px'
    },
    {
      label: "评优评先截止时间",
      prop: "evaluateCutoffTime",
      type: "date",
      format: "YYYY-MM-DD HH:mm:ss",
      valueFormat: "YYYY-MM-DD HH:mm:ss",
      minWidth: '200px'
    },
    {
      label: "评优评选状态",
      prop: "evaluateState",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      formatter: (row, value) => {
        return status[value]
      },
      minWidth: '100px'
    },
    {
      label: "创建人",
      prop: "createUser",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "创建部门",
      prop: "createDept",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "创建时间",
      prop: "createTime",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "修改人",
      prop: "updateUser",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "修改时间",
      prop: "updateTime",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "状态",
      prop: "status",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "是否已删除",
      prop: "isDeleted",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
  ]
}
src/views/evaluate/components/addDialog.vue
@@ -19,8 +19,8 @@
                </el-form-item> -->
                <el-form-item :label="params.type ? '评定部门:' : '候选部门:'" prop="candidateNum">
                    <el-select v-model="selectGroup" value-key="deptId" multiple style="width: 100%;" placeholder="请选择候选部门">
                        <el-option v-for="dept in depts" :key="dept.deptId" :label="dept.deptName"
                            :value="dept"></el-option>
                        <el-option v-for="dept in depts" :key="dept.deptId" :label="dept.employees.length === 0 ? (dept.deptName + '(当前部门下员工人数为0)') : dept.deptName"
                            :value="dept" :disabled="dept.employees.length === 0"></el-option>
                    </el-select>
                    <div class="select-list">
                        <el-form-item v-for="content in selectGroup" :key="content.deptId" :label="content.deptName"
@@ -37,7 +37,7 @@
                        </el-form-item>
                    </div>
                </el-form-item>
                <el-form-item label="候选人截止日期:" prop="candidateCutoffTime">
                <el-form-item label="候选人截止日期:" prop="candidateCutoffTime" v-if="!params.type">
                    <el-date-picker v-model="addForm.candidateCutoffTime" type="datetime" placeholder="请选择截止时间"
                        format="YYYY-MM-DD HH:mm:ss" valueFormat="YYYY-MM-DD HH:mm:ss" style="width: 100%;" />
                </el-form-item>
src/views/evaluate/evaluateTask.vue
@@ -14,7 +14,7 @@
      </template>
      <template #menu="{ size, row, index }">
        <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)">发布</el-button>
        <el-button type="primary" text plain icon="el-icon-position" @click="publicTimeBtn(row)" v-if="row.status === 2">发布</el-button>
        <el-button type="primary" text plain icon="el-icon-download">导出</el-button>
      </template>
    </avue-crud>
@@ -40,7 +40,7 @@
<script>
import { getList, getDetail, add, update, remove } from '@/api/evaluate/evaluateTask';
import option from '@/option/evaluate/evaluateTask';
import { option, sectionOption } from '@/option/evaluate/evaluateTask';
import { mapGetters } from 'vuex';
import { exportBlob } from '@/api/common';
import { getToken } from '@/utils/auth';
@@ -103,6 +103,9 @@
        let params = {
          type: n,
        };
        // 更改option
        !n ? (this.option = option) : (this.option = sectionOption)
        console.log(this.option);
        this.page.currentPage = 1;
        this.onLoad(this.page, params);
      },