ChangPapelTable.vue 3.56 KB
Newer Older
1 2 3 4
<!--
 * @Author: 纪泽龙 jizelong@qq.com
 * @Date: 2022-12-19 15:23:58
 * @LastEditors: 纪泽龙 jizelong@qq.com
5
 * @LastEditTime: 2023-02-01 17:24:30
6 7 8 9 10 11 12 13 14 15 16 17 18
 * @FilePath: /danger-manage-web/src/views/educationPlanExam/textPaper/components/Lesson-table.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
  <div>
    <el-table
      v-loading="loading"
      :data="nameList"
      height="305"
      @select="select"
      @select-all="all"
      ref="multipleTable"
    >
19 20 21 22
      <el-table-column
        v-if='!disabled'
        type="selection"
      ></el-table-column>
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
      <el-table-column label="姓名" align="center" prop="staffName">
      </el-table-column>
      <el-table-column
        label="所属部门"
        align="center"
        prop="deptName"
        :formatter="formatter"
      >
      </el-table-column>
      <el-table-column
        label="岗位"
        align="center"
        prop="profession"
        :formatter="formatter"
      >
      </el-table-column>
    </el-table>
    <!-- <div> -->
    <el-pagination
      :layout="'prev, pager, next'"
      v-show="total > 0"
      :total="total"
      :current-page="queryParams.pageNum"
      :page-sizes="[queryParams.pageSize]"
      @current-change="currentChangeClick"
    />
    <!-- </div> -->
  </div>
</template>

<script>
import { listStaff } from "@/api/safetyManagement/staff";
export default {
  name: "",
  props: {
    selectNameList: {
      type: Array,
    },
61 62 63
    disabled: {
      type: Boolean,
    },
64 65 66 67
  },
  created() {
    // this.listStaff();
  },
68

69 70 71 72 73 74 75 76 77 78 79 80
  data() {
    return {
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        deptId: null,
        staffName: null,
      },
      total: 0,
      nameList: [],
      loading: false,
    };
81 82 83
  },
  mounted() {
  
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
  },
  methods: {
    listStaff() {
      this.loading = true;
      listStaff(this.queryParams).then((res) => {
        this.total = res.total;
        this.nameList = res.rows;
        this.$nextTick((item) => {
          this.selectNameList.forEach((item) => {
            this.toggleSelection(item.staffId, true);
          });
          this.loading = false;
        });
      });
    },
    // toggleSelection(rows) {
    //   if (rows) {
    //     rows.forEach((row) => {
    //       this.$refs.multipleTable.toggleRowSelection(row);
    //     });
    //   } else {
    //     this.$refs.multipleTable.clearSelection();
    //   }
    // },
    select(all, row) {
      this.$emit("selectOne", all, row);
    },
    all(all) {
      console.log(all);
      // true是全选,false是全清
      let allSelect = false;
      if (all.length == 0 || (all.length == 1 && [0] == undefined)) {
        allSelect = false;
      } else if (all.length > 1) {
        allSelect = true;
      }
      this.$emit("selectAll", this.nameList, allSelect);
    },
122 123 124 125 126
    selectable(row, rowIndex) {
      if (!this.disabled) {
        return true;
      }
    },
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
    // 切换选项
    toggleSelection(staffId, SeclctFlag = false) {
      const item = this.nameList.find((item) => {
        return item.staffId == staffId;
      });
      this.$refs.multipleTable.toggleRowSelection(item, SeclctFlag);
    },

    currentChangeClick(val) {
      this.queryParams.pageNum = val;
      this.listStaff();
    },
    formatter(row, column, cellValue, index) {
      // console.log(row, column, cellValue, index);
      if (!cellValue) return "-";
      else return cellValue;
    },
  },
};
</script>
<style lang="scss" scoped>
</style>