<template>
  <div>
    <businessForm :form-config="formConfig"/>
    <businessButton :btn-config="btnConfig"/>
  </div>
</template>

<script>
  import businessForm from 'professionalComponents/businessForm';
  import businessButton from 'professionalComponents/businessButton';

  export default {
    components: {
      businessForm,
      businessButton
    },
    props: {},
    data() {
      return {
        vmI18n: window.vmI18n,
        PLATFORM: {
          // 淘宝商品
          T_V_IESTAOBAOITEM: 2,
          // 京东商品
          T_IESJINGDONGWARE: 4,
          T_V_IESJINGDONGWARE: 4,
          // 唯品会商品
          T_IESVIPSKU: 19,
          // 淘宝分销商品
          T_IESTAOBAOFXITEM: 3,
          // 通用商品 TODO 后台沟通这个版本没有
          T_IESSTANDPLATSKU: '',
        },
        btnConfig: {
          typeAll: 'error', // 按钮统一风格样式
          btnsite: 'right', // 按钮位置 (right , center , left)
          buttons: [
            {
              type: '', // 按钮类型
              text: window.vmI18n.t('common.cancel'), // 取消 按钮文本
              icon: '', // 按钮图标
              size: '', // 按钮大小
              disabled: false, // 按钮禁用控制
              btnclick: () => {
                this.$emit('closeActionDialog', false);
              } // 按钮点击事件
            },
            {
              type: '', // 按钮类型
              text: window.vmI18n.t('btn.download'), // 下载 按钮文本
              icon: '', // 按钮图标
              size: '', // 按钮大小
              disabled: false, // 按钮禁用控制
              btnclick: () => {
                this.determine();
              }, // 按钮点击事件
            }
          ]
        },
        // 京东淘宝商品下载
        formConfig: {
          formValue: {
            shopId: '',
            downloadType: 0, // 商品状态
            numIIds: '', // number
            startEndTimes: [],
          },
          formData: [
            {
              version: '1.4',
              style: 'popInput', // 输入框弹框单多选
              width: '24',
              isActive: true,
              isdisabled: false,
              inputList: [
                {
                  childs: [{ colname: 'SHOPID', refobjid: 3, valuedata: 3 }]
                }
              ],
              itemdata: {
                col: 1,
                colid: 196253, // 下单店铺(字段)
                colname: 'SHOPID', // 当前字段的名称
                inputname: 'SHOPID', // 这个是做中文类型的模糊查询字段，例如ENAME
                refcolval: {
                  fixcolumn: 'PLATFORM',
                  expre: 'equal',
                  srccol: 'SHOPID'
                },
                datelimit: 'all',
                display: 'text', // 显示什么类型，例如xml表示弹窗多选加导入功能，mrp表示下拉多选
                fkdisplay: 'drp', // 外键关联类型
                fkdesc: '店铺', // 下单店铺
                // inputname: 'CP_C_STORE_IDS:ENAME', // 这个是做中文类型的模糊查询字段，例如ENAME
                isfk: true, // 是否有fk键
                isnotnull: true, // 是否必填
                isuppercase: false, // 是否转大写
                length: 65535, // 最大长度是多少
                name: '店铺', // 下单店铺 // input前面显示的lable值
                readonly: false, // 是否可编辑，对应input   readonly属性
                reftable: 'T_IESSHOP', // 对应的表
                reftableid: 10621, // 对应的表ID
                row: 1,
                statsize: -1,
                type: 'STRING', // 这个是后台用的
                valuedata: '', // 这个是选择的值
              },
              oneObj: (val) => {
                console.log('oneObj::this.formConfig.formValue', this.formConfig.formValue);
                console.log('oneObj::val', val);
                this.formConfig.formValue.shopId = val.pid;
              }
            },
            // {
            //   style: 'select', // 下拉框类型
            //   label: '店铺', // 店铺 下拉框前的值
            //   width: '24', // 所占宽度宽度
            //   value: 'shopId', // 输入框的值
            //   multiple: false, // 布尔值,下拉框是否开启多选,默认为不开启
            //   disabled: false, // 是否禁用,默认为false
            //   clearable: true, // 下拉选中是否显示清空按钮,默认为false
            //   clearSelect: () => {
            //   }, // 点击清空按钮回调
            //   selectChange: () => {
            //   }, // 选中事件，默认返回选中的值,默认返回当前值value
            //   setRequired: 'required', // 必选标识,值不为required时无标识
            //   options: [
            //     // {
            //     //   label: '家家',
            //     //   value: 'aa'
            //     // },
            //     // {
            //     //   label: '天天',
            //     //   value: 'bb'
            //     // }
            //   ]
            // },
            {
              style: 'radio', // 单选框
              label: '下载方式', // 订单状态 前面字段
              width: '24', // 宽度
              value: 'downloadType', // 绑定到formValue的值
              radioChange: () => {
                console.log('radioChange');
                this.radioChangeHandle();
              }, //切换时的方法
              // setRequired: "required", //必选标识,值不为required时无标识
              options: [
                {
                  label: '按平台商品编码下载', // 全部
                  value: 0,
                },
                {
                  label: '按创建时间下载', // 待发货
                  value: 1,
                },
              ]
            },
            {
              style: 'input',
              label: '平台商品编码',
              value: 'numIIds', // 输入框的值
              width: '24',
              icon: '',
              placeholder: '多个平台商品编码使用英文逗号分隔!',
              ghost: false, // 是否关闭幽灵按钮，默认开启
              inputenter: () => {
              }, // 表单回车事件
              iconclick: () => {
              } // 点击icon图标事件
              // setRequired: "required" //必选标识,值不为required时无标识
            },
            {
              style: 'date',
              type: 'datetimerange', // 日期组件类型,默认为data  (daterange)为双日期区间选择
              value: 'startEndTimes',
              label: '创建时间', // 平台修改时间
              width: '24',
              format: 'yyyy-MM-dd HH:mm:ss', // 格式参照burgeonui
              placeholder: ''
            },
            // deprecated 去掉了
            // {
            //   style: 'checkbox',
            //   label: '更新平台商品',
            //   value: 'isUpdate', // 输入框的值
            //   width: '24',
            //   icon: '',
            //   placeholder: '',
            //   ghost: false, // 是否关闭幽灵按钮，默认开启
            //   checkboxChange: () => {
            //   }, // 表单回车事件
            //   // setRequired: "required" //必选标识,值不为required时无标识
            // }
          ],
          // 表单非空提示
          ruleValidate: {
            shopId: [{
              required: true,
              message: ' ',
              trigger: 'blur'
            }],
          }
        }
      };
    },
    mounted() {
      // this.getShop();
      this.radioChangeHandle();
    },
    methods: {
      // async getShop() {
      //   // 获取平台
      //   const fixedcolumns = {
      //     PLATFORM: `=${this.PLATFORM[this.$route.params.tableName]}`,
      //     ISACTIVE: 'Y',
      //   };
      //   const fkdrplist = {
      //     // 只查这两列
      //     searchcols: ['SHOPTITLE', 'SELLERNICK', 'ID'],
      //   };
      //   const query = {
      //     table: 't_iesshop',
      //     isdroplistsearch: true,
      //     range: 1000,
      //     startindex: 0,
      //     fkdrplist,
      //     fixedcolumns,
      //   };
      //   const res = await this.service.common.listQuery(query);
      //   const options = res.rows.map(item => ({
      //     value: item.ID.val || '',
      //     label: item.SHOPTITLE.val || '',
      //   }));
      //   this.formConfig.formData[0].options = options;
      // },
      radioChangeHandle() {
        const formValue = this.formConfig.formValue;
        let formData = this.formConfig.formData;
        formData.forEach(item => {
          if (item.value == 'shopId') {
            item.style = 'select';
          } else if (item.value == 'downloadType') {
            item.style = 'radio';
          } else if (item.value == 'numIIds') {
            item.style = 'input';
          } else if (item.value == 'startEndTimes') {
            item.style = 'date';
          }
        });
        if (formValue.downloadType == 0) {
          formData.forEach(item => {
            if (['startEndTimes'].includes(item.value)) {
              item.style = '';
            }
          });
        } else if (formValue.downloadType == 1) {
          formData.forEach(item => {
            if (['numIIds'].includes(item.value)) {
              item.style = '';
            }
          });
        }
        console.log('formValue::', formValue);
        console.log('formData::', formData);
      },
      // 确定按钮
      async determine() {
        console.log(this, this.formConfig);
        const formValue = this.formConfig.formValue;
        if (!formValue.shopId) {
          this.$Message.warning('请选择需要下载的店铺'); // 请选择需要下载的店铺
          return;
        }
        let param = {
          platForm: Number(`${this.PLATFORM[this.$route.params.tableName]}`),
          shopId: Number(formValue.shopId),
          status: 3,
        };
        if (formValue.downloadType == 0) {
          param.numIIds = formValue.numIIds;
        } else {
          param.startTime = this.$comUtils.dateFormat(formValue.startEndTimes[0], 'yyyy-MM-dd hh:mm:ss');
          param.endTime = this.$comUtils.dateFormat(formValue.startEndTimes[1], 'yyyy-MM-dd hh:mm:ss');
        }

        // 请求下载订单接口
        try {
          const res = await this.service.commodityCenter.downloadProduct(param);
          console.log('请求下载订单接口::res', res);
          if (res.code === 0) {
            this.$Message.success(res.message || '下载成功!');
            // 成功关闭弹框
            this.$emit('closeActionDialog', false);
          } else {
            this.$Message.error(res.message || '下载失败!');
          }
        } catch (e) {
          console.log(e);
          this.$Message.error('系统异常');
        }
      }
    }
  };
</script>

<style>
  @import "~@yunque/css/modal/interfacePlatform/downLoadAll.less";

  .ark-col.ark-col-span-24:last-child {
    margin-top: 10px;
  }
</style>
