<template>
  <!--
    作者：luoyiming
    时间：2020-06-25
    描述：插件中心-限时秒杀-秒杀活动-添加活动
  -->
  <div class="pb50">
    <el-form size="small" ref="form" :model="form" label-width="150px">
      <!--基础设置-->
      <Basic :form="form"></Basic>
      <!--活动时间-->
      <Datetime :form="form"></Datetime>
      <!--活动商品-->
      <Product :form="form"></Product>
      <!--其它-->
      <Other :form="form"></Other>
    </el-form>

    <!--提交-->
    <div class="common-button-wrapper">
      <el-button size="small" @click="cancelFunc">取消</el-button>
      <el-button size="small" type="primary" @click="onSubmit" :loading="loading">提交</el-button>
    </div>
  </div>
</template>
<script>
import SeckillApi from '@/api/seckill.js';
import Basic from './part/Basic.vue';
import Datetime from './part/Datetime.vue';
import Product from './part/Product.vue';
import Other from './part/Other.vue';
export default {
  components: {
    /*基础设置*/
    Basic,
    /*活动时间*/
    Datetime,
    /*活动商品*/
    Product,
    /*其它*/
    Other
  },
  data() {
    return {
      /*表单对象*/
      form: {
        image_id: 0,
        /*活动日期*/
        start_date: '',
        end_date: '',
        /*活动时间*/
        active_time: '',
        /*标题*/
        title: '',
        /*是否生效，默认1为生效，0为不生效*/
        status: 1,
        /*默认排序*/
        sort: 100,
        /*商品源数据*/
        tableData: [],
        /*商品列表*/
        product_list: []
      },
      /*是否正在加载*/
      loading: false
    };
  },
  created() {},
  methods: {
    /*提交表单*/
    onSubmit() {
      let self = this;
      if(self.form.end_date == null || self.form.end_date == ''){
        self.$message({
          message: '请填写活动结束日期',
          type: 'error'
        });
        return;
      }
      self.$refs.form.validate(valid => {
        if (valid) {
          self.form.product_list = self.tableFormet(self.form.tableData);
          let params = self.form;
          delete params.tableData;
          self.loading = true;
          SeckillApi.addActive(params, true)
            .then(data => {
              self.loading = false;
              self.$message({
                message: '恭喜你，添加成功',
                type: 'success'
              });
              self.cancelFunc();
            })
            .catch(error => {
              self.loading = false;
            });
        }
      });
    },

    /*表格数据格式化*/
    tableFormet(list) {
      let spec_list = [];
      let newList = [];
      let curItem = null;
      for (let i = 0; i < list.length; i++) {
        let item = list[i];
        let obj = {
          product_sku_id: item.product_sku_id,
          seckill_stock: item.seckill_stock,
          seckill_price: item.seckill_price,
          product_attr: item.spec_name,
          seckill_product_sku_id:item.seckill_product_sku_id,
          product_price: item.product_price,
          sales_initial:item.sales_initial
        };
        if (curItem == null) {
          curItem = item;
        }
        if (curItem.product_id != item.product_id) {
          curItem.spec_list = spec_list;
          newList.push(curItem);
          curItem = item;
          spec_list = [];
        }
        spec_list.push(obj);
      }
      curItem.spec_list = spec_list;
      newList.push(curItem);
      return newList;
    },

    /*取消*/
    cancelFunc() {
      this.$router.back(-1);
    }
  }
};
</script>
