<template>
    <div v-loading="loading">
        <div class="white-box">
            <el-table class="withdraw-table" :data="tableData" style="width: 100%;" :span-method="objectSpanMethod">
                <el-table-column label="商品编号" prop="SKU_CODE"></el-table-column>
                <el-table-column label="商品名称" prop="GOODS_TITLE"></el-table-column>
                <el-table-column label="数量" prop="BUY_NUMS"></el-table-column>
                <el-table-column label="报单金额" prop="REAL_PRICE"></el-table-column>
                <el-table-column label="报单PV" prop="REAL_PV"></el-table-column>
                <el-table-column label="报单编号" prop="DEC_SN"></el-table-column>
                <el-table-column label="订单编号" prop="ORDER_SN"></el-table-column>
                <el-table-column label="会员编号" prop="USER_NAME"></el-table-column>
                <el-table-column label="会员姓名" prop="REAL_NAME"></el-table-column>
                <el-table-column label="接点人编号" prop="CON_USER_NAME"></el-table-column>
                <el-table-column label="创建时间">
                    <template slot-scope="scope">
                        {{tool.formatDate(scope.row.CREATED_AT)}}
                    </template>
                </el-table-column>
            </el-table>
            <div class="white-box-footer">
                <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
            </div>
        </div>
    </div>
</template>

<script>
    import network from '@/utils/network'
    import tool from '@/utils/tool'
    import Pagination from '@/components/Pagination'
    export default {
        name: "dec-order-list",
        components: {Pagination},
        mounted() {
            this.getData()
        },
        data() {
            return {
                loading: false,
                form:{

                },
                tableData:null,
                list: null,
                currentPage: 1,
                totalPages: 1,
                totalCount: 1,
                pageSize: 20,
                tool: tool,
                //订单号判断
                spanArr: [], // 用于存放需要合并的行的个数
                pos: 0, // 记录spanArr数组的下标

            }
        },
        methods: {

 //
      objectSpanMethod(obj) {

        if (
          obj.columnIndex === 5 ||
          obj.columnIndex === 6 ||
          obj.columnIndex === 7 ||
          obj.columnIndex === 8 ||
          obj.columnIndex === 9 ||
          obj.columnIndex === 10
        ) {
          // ⼆维数组存储的数据取出
          var _row = this.spanArr[obj.rowIndex];
          var _col = _row > 0 ? 1 : 0;
          return {
            rowspan: _row,
            colspan: _col,
          };
        } else {
          return false;
        }
      },
      getSpanArr(orderList) {//传⼊你的列表数据
        this.pos = 0;
        orderList.forEach((item, index) => {

          //判断是否是第⼀项
          if (index === 0) {
            this.spanArr.push(1);
            this.pos = 0;
          } else {
            //不是第⼀项时，就根据标识去存储
            if (//orderSn，createdAt...是你的第⼀个数据、第⼆个数据...

              orderList[index].DEC_SN === orderList[index - 1].DEC_SN &&
              orderList[index].ORDER_SN === orderList[index - 1].ORDER_SN &&
              orderList[index].USER_NAME === orderList[index - 1].USER_NAME &&
              orderList[index].REAL_NAME === orderList[index - 1].REAL_NAME &&
              orderList[index].CON_USER_NAME === orderList[index - 1].CON_USER_NAME &&
              orderList[index].P_CALC_MONTH === orderList[index - 1].P_CALC_MONTH 
            ) {
              // 查找到符合条件的数据时每次要把之前存储的数据+1
              this.spanArr[this.pos] += 1;
              this.spanArr.push(0);
            } else {
              // 没有符合的数据时，要记住当前的index
              this.spanArr.push(1);
              this.pos = index;
            }
          }
        });
      },



            handleCurrentChange (page) {
                this.getData(page, this.pageSize)
            },
            handleSizeChange (pageSize) {
                this.getData(this.currentPage, pageSize)
            },
            getData(page, pageSize) {
                this.spanArr = [];
                this.pos = 0;
                let _this = this
                network.getPageData(_this, 'shop/dec-order-list', page, pageSize, {type: this.type}, function (response) {
                //network.getData(`shop/dec-order-list`).then(response => {
                    _this.loading = false;
                    _this.list = response.list;
                    let settingObj = _this.list;

                    let settingArr = Object.keys(settingObj).map(key => {
                        //console.log(key); //为每个键名
                        return settingObj[key];  //把每个对象返回出去生成一个新的数组中相当于0:{id:1}
                    } );

                    _this.tableData=settingArr;
                    console.log('11111',_this.tableData);
                    _this.getSpanArr(_this.tableData);
                });
            },

        }
    }
</script>

<style scoped>

</style>
