<template>
  <div class="page">
    <LayoutTable
      :data="tableData"
      notDel
      :config="tableConfig"
      v-if="isshow"
    ></LayoutTable>
    <group-template ref="groupTemplate" @ok="okFn" />
  </div>
</template>

<script>
/** 表单弹出框模式需引入 */
import groupTemplate from "./groupTemplate";
import table from "@/assets/mixins/table";
export default {
  name: "AttendanceGroupList",
  components: {
    groupTemplate,
  },
  mixins: [table],
  data() {
    return {
      // 是否展示表格
      isshow: true,
      /** 子表列元素 */
      columnSet: [
        { prop: "groupId", label: "考勤组", width: 100 },
        { prop: "groupName", label: "考勤组名称", width: 100 },
        { prop: "staffId", label: "员工ID", width: 100 },
        { prop: "staffName", label: "员工姓名", width: 100 },
        { prop: "partAttendance", label: "是否参与考勤，", width: 100 },
        { prop: "remark", label: "备注", width: 100 },
      ],
      config: {
        isshowTabPane: true,
        search: [
          {
            name: "groupName",
            type: "text",
            label: "考勤组名称",
            fuzzy: true,
          },
        ],
        columns: [
          { type: "selection", width: 60, fixed: "left" },
          { type: "index", label: "序号", width: 50, fixed: "left" },

          { label: "考勤组名称", prop: "groupName", width: 200, fixed: "left" },

          { label: "人数", prop: "personNum", width: 80, fixed: "left" },

          {
            label: "负责人",
            prop: "responsibleName",
            width: 80,
            fixed: "left",
          }, //未

          {
            label: "类型",
            prop: "type",
            formatter: this.formatterattendType,
            width: 100,
            fixed: "left",
          },

          // {label: "创建用户", prop: "createUserId", formatter: this.formatter},

          // {label: "未参与考勤人数", prop: "personNumNo",formatter: this.formatter},

          // {label: "考勤方式", prop: "attendanceType"},

          {
            label: "考勤时间",
            prop: "attendanceTime",
            formatter: this.formatterBanci,
          }, //未

          // {label: "考勤组人员信息",
          //   width: 120,
          //   prop: "subColumns",
          //   formatter: (row) => {
          //       let widthsize = this.columnSet.reduce((pre, cur) => {
          //           return pre + Number(cur.width);
          //       }, 50);
          //       return (
          //           <el-popover placement="right" width={widthsize} trigger="click">
          //               {this.renderTable(row.attendanceGroupStaffList)}
          //               <el-button type="text" slot="reference">详细</el-button>
          //           </el-popover>
          //       );
          //   },
          // },
          {
            label: "操作",
            width: 240,
            formatter: (row) => {
              return (
                <table-buttons
                  noAdd
                  noView
                  row={row}
                  onEdit={this.toEdit}
                  onView={this.toView}
                  onDel={this.toDel}
                />
              );
            },
          },
        ],
      },
    };
  },
  created() {},
  methods: {
    // 处理表格数据
    renderTable(tableData) {
      return (
        <el-table stripe data={tableData} class="total-table">
          {this.columnSet.map((item) => this.renderTableColumn(item))}
        </el-table>
      );
    },
    // 处理表头数据
    renderTableColumn(options) {
      return (
        <el-table-column
          prop={options.prop}
          label={options.label}
          width={options.width}
        ></el-table-column>
      );
    },
    /** 重写新增方法 */
    toAdd(row) {
      this.isshow = false;
      this.$refs.groupTemplate.add(row);
      // this.$router.push(
      //     {
      //         path:'/attendance/group/view'
      //     }
      // )
    },
    /** 重写编辑方法 */
    toEdit(row) {
      this.isshow = false;
      this.$refs.groupTemplate.edit(row);
      // this.$router.push(
      //     {
      //         path:'/attendance/group/view'
      //     }
      // )
    },
    /** 重写查看方法 */
    toView(row) {
      this.isshow = false;
      this.$refs.groupTemplate.view(row);
    },
    okFn(val) {
      this.getData();
      this.isshow = val;
    },
  },
};
</script>
<style lang="less" scoped>
.table-head {
  padding-left: 10px;
}
</style>
