<template>
  <view>
    <block v-if="showComponent">
      <view class=" writeBg  ">
        <view class="container_input marginTop_none">
          <view class="container_input_item">
            <view class="container_input_item_label"><span>是否推荐</span></view>
            <view class="container_input_item_value">
              <switch :checked="addGoodsSecoundData.is_good == 1" color="#E93323" style="transform:scale(0.8)"
                @change="isGood" />
            </view>
          </view>
          <view class="container_input_item">
            <view class="container_input_item_label"><span>是否开启礼包</span></view>
            <view class="container_input_item_value">
              <switch :checked="addGoodsSecoundData.is_gift_bag == 1" color="#E93323" style="transform:scale(0.8)"
                @change="isGiftBag" />
            </view>
          </view>
        </view>
        <view class="tip">
          <span class="iconfont">&#xe688;</span>
          <span>开启后此商品只能在分销礼包中展示并销售</span>
        </view>
        <view class="container_input marginTop_none">
          <view class="container_input_item">
            <view class="container_input_item_label"><span>限购数量</span></view>
            <view class="container_input_item_value">
              <input v-model="addGoodsSecoundData.once_count" type="number" value="" placeholder="请输入限购数量"
                placeholder-class="inputPlaceHolder" />
            </view>
          </view>
          <view class="container_input_item">
            <view class="container_input_item_label"><span>商品排序</span></view>
            <view class="container_input_item_value">
              <input v-model="addGoodsSecoundData.sort" type="number" value="" placeholder="请输入商品排序"
                placeholder-class="inputPlaceHolder" />
            </view>
          </view>
        </view>
        <view class="content_list">
          <view class="content_list_item" @click="inputGoodsDetils">
            <view>商品详情</view>
            <view class="content_list_item_han">
              <span v-if="disModel" style="color: #000000">去修改</span>
              <span v-else>设置详情</span>
              <span class="iconfont">&#xe6bd;</span>
            </view>
          </view>
          <view class="content_list_video">
            <view class="content_list_video_title">商品视频</view>
            <view class="video_list">
              <view class="video_list_item photo" v-if="addGoodsSecoundData.video_link">
                <view class="jiao" @click="deleteImage()">
                  <!-- video标签在app端层级过高 -->
                  <!--#ifndef APP-PLUS-->
                  <video :src="addGoodsSecoundData.video_link"></video>
                  <!--#endif-->
                  <!--#ifdef APP-PLUS-->
                  <img src="https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/3/video_bg.png"
                    style=" width:150rpx"></img>
                  <!--#endif-->
                  <image src="../static/images/close.png" mode="widthFix"></image>
                </view>

                <!--#ifndef APP-PLUS-->
                <view style="position: absolute;">
                  <view class="videoHover" @click="videoshow">
                  </view>
                  <text class="video-text">点击可预览视频</text>
                </view>
                <!--#endif-->

                <!--#ifdef APP-PLUS-->
                <view class='preview_video'>
                  <view class="videoHover" @click="videoshow">
                  </view>
                  <text class="video-text">点击可预览视频</text>
                </view>
                <!--#endif-->
              </view>







              <view class="photo" @click="uploadVideo" v-else>
                <view>
                  <image src="../static/images/creamer.png" mode="widthFix"></image>
                </view>
                <view>添加视频</view>
              </view>
            </view>
          </view>
        </view>
        <view v-if="showVideo" class="video-count">
          <!--#ifndef APP-PLUS-->
          <video id="myVideo" class="videoLink" autoplay loop muted :src="addGoodsSecoundData.video_link"></video>
          <!--#endif-->
          <!--#ifdef APP-PLUS-->

          <video id="myVideo" class="videoLink" autoplay loop
            :src='addGoodsSecoundData.video_link && (addGoodsSecoundData.video_link.substring(0,4) == "http" || addGoodsSecoundData.video_link.substring(0,5) == "https") ?addGoodsSecoundData.video_link : "http:" + addGoodsSecoundData.video_link'></video>
          <!--#endif-->
        </view>
        <view class='mask' catchtouchmove="true" :hidden='showVideo==false' @tap="showVideo=false"></view>
        <view class="handle dobuButton">
          <view class="handle_button margin_right" @click="lastStep">上一步</view>
          <view class="handle_button" @click="submitCreatedGoods">提交</view>
        </view>
      </view>
    </block>
    <view class="handle_button" @click="submitCreatedGoods">提交</view>
  </view>
</template>
<script>
  import { TOKENNAME, HTTP_REQUEST_URL } from '@/config/app.js';
  import store from 'store';
  import {
    navigateTo,
    setStorage,
    getStorage,
    removeStorage,
    navigateBack,
    Toast,
    Loading,
    hideLoading,
    Modal
  } from '../../../libs/uniApi.js';
  import { productCreate, productUpdate } from 'api/product.js';
  export default {
    components: {

    },
    props: {
      merId: {
        type: [String, Number],
        default: ''
      },
      product_id: {
        type: [String, Number],
        default: ''
      },
      resetKey: {
        type: Boolean,
        default: false
      },
      code: {
        type: [String, Number],
        default: 0
      }
    },
    data() {
      return {
        showComponent: false,
        showVideo: false,
        disModel: false,
        upload_max: 10,
        uploadUrl: `${HTTP_REQUEST_URL}/api/upload/video`,
        addGoodsSecoundData: {
          is_good: 0, // 是否推荐
          is_gift_bag: 0,
          sort: '',
          once_count: '', // 限购数量
          video_link: ''
        },
      };
    },

    created() {
      // console.log('123');
      this.initData();
    },
    
    watch: {
      addGoodsSecoundData: {
        handler(val) {
          setTimeout(() => {
            setStorage(this.product_id ? 'editGoodsDetils' : 'addGoodsSecoundData', val)
          });
        },
        deep: true
      },
      resetKey: {
        handler(val) {
          // console.log(1);
          this.initData();
        }
      }
    },
    methods: {
      videoshow() {
        this.showVideo = true
        this.videoContext = uni.createVideoContext('myVideo', this);
        this.$nextTick(() => {
          this.videoContext.play();
        })
        // this.video_link = this.formData.video_link;
        // this.videoContext.requestFullScreen({ direction: 90 });
        // this.videoContext.play(); this.videoplay = true; 
      },
      initData() {
        let editGoodsDetils = {};
        if (getStorage('goodsDis')) {
          this.disModel = true;
        }
        if (this.product_id) {
          editGoodsDetils = getStorage('editGoodsDetils');
          Object.keys(this.addGoodsSecoundData).forEach(item => {
            this.addGoodsSecoundData[item] = editGoodsDetils[item];
          });

          if (editGoodsDetils.content) {
            setStorage('goodsDis', {
              store_name: editGoodsDetils.content.title,
              imageList: editGoodsDetils.content.image
            });
            this.disModel = true;
          }
          setStorage('canChangeSecound', true);
          return;
        }

        if (getStorage('addGoodsSecoundData')) {
          Object.keys(this.addGoodsSecoundData).forEach(item => {
            if (getStorage('addGoodsSecoundData')[item] || getStorage('addGoodsSecoundData')[item] == 0) {
              this.addGoodsSecoundData[item] = getStorage('addGoodsSecoundData')[item];
            }
          });




        }
      },
      lastStep() {
        this.$emit('lastStep');
      },
      // 创建商品
      submitCreatedGoods() {
        Loading();
        let waitDeleteData = ['addGoodsFormData', 'singleSpecification', 'attrValue', 'modifyPriceData',
          'addGoodsSecoundData', 'goodsDis', 'editGoodsDetils', 'canChange', 'canChangeSecound', 'editCommodity'
        ];
        let attrValue = getStorage('addGoodsFormData').spec_type == 0 ? [getStorage('singleSpecification')] :
          getStorage('attrValue');
        let postData = {
          ...this.addGoodsSecoundData,
          ...getStorage('addGoodsFormData'),
          content: {
            title: getStorage('goodsDis') ? getStorage('goodsDis').store_name : '',
            image: getStorage('goodsDis') ? getStorage('goodsDis').imageList : []
          },
          video_link: this.addGoodsSecoundData.video_link
        };
        if (attrValue) {
          postData.attrValue = attrValue.filter(item => item != '');
          postData.attrValue[0].bar_code
        }
        let info = getStorage('editCommodity');
        Object.keys(info).forEach(key=>{
          postData[key]=info[key];
        })
        postData.stock = postData?.attrValue[0]?.stock||0;
        // console.log(postData);
        if(!postData.store_name||postData.store_name?.trim().length<=0)return Toast('请输入商品名称');
        if(!postData.imageList||postData.imageList?.length<2)return Toast('请上传2张以上商品图片');
        if(!postData.cate_name||postData.cate_name?.trim().length<=0)return Toast('请选择平台分类');
        if(!postData.unit_name||postData.unit_name?.trim().length<=0)return Toast('请输入商品单位');
        let userInfo = this.$store.state.app.userInfo;
        if(typeof userInfo == 'string')userInfo= JSON.parse(userInfo);
        if(userInfo?.mer_info?.type_code=="TypeSupplyChain" && (!postData.attrValue[0]?.procure_price||postData.attrValue[0]?.procure_price<=0) )return Toast('批发价不能小于0');
        if(!postData.attrValue[0]?.price||postData.attrValue[0]?.price<=0)return Toast('零售价不能小于0');
        if(!postData.stock||postData.stock<0)return Toast('库存不能小于0');
        if(!postData.attrValue[0]?.cost||postData.attrValue[0]?.cost<=0)return Toast('成本价不能小于0');
        // if(!postData.content.title||postData.content.title?.trim().length<=0)return Toast('请输入商品详情');
        // if(!postData.content.image||postData.content.image?.length<=0)return Toast('请上传商品图片');
        // return Toast('通过');
        if (getStorage('addGoodsFormData').spec_type == 0) {
          // postData.attr = [getStorage('singleSpecification')];
        }
        if (this.product_id) {
          productUpdate(this.merId, this.product_id, postData)
            .then(res => {
              waitDeleteData.forEach(item => {
                if (getStorage(item)) {
                  removeStorage(item);
                }
              });
              hideLoading()
              Modal('提交成功', '点击确定,返回商品管理', {
                showCancel: false
              }).then(() => {
                uni.removeStorageSync('singleSpecification')
                uni.redirectTo({
                  url: '/pages/product/goodsOnSale/index?mer_id=' + this.merId
                })
              })
            })
            .catch(rej => {
              Toast(rej);
            });

        } else {
          productCreate(this.merId, postData)
            .then(res => {
              waitDeleteData.forEach(item => {
                if (getStorage(item)) {
                  removeStorage(item);
                }
              });
              hideLoading();
              Modal('提交成功', '点击确定,返回商品管理', {
                showCancel: false,
              }).then(() => {
                uni.redirectTo({
                  url: '/pages/product/goodsOnSale/index?mer_id=' + this.merId
                })
              })
            })
            .catch(rej => {
              Toast(rej);
            });
        }
      },
      // 是否推荐
      isGood(e) {
        this.addGoodsSecoundData.is_good = e.detail.value ? 1 : 0;
      },
      // 是否开启礼包
      isGiftBag(e) {
        this.addGoodsSecoundData.is_gift_bag = e.detail.value ? 1 : 0;
      },

      switchChange(value, item) {
        this.addGoodsSecoundData[item.model] = value ? 1 : 0;
      },
      // 跳转商品详情
      inputGoodsDetils() {
        navigateTo(1, '/pages/product/addGoods/addGoodDetils', { mer_id: this.merId });
      },
      // 上传视频
      uploadVideo() {
        uni.chooseVideo({
          sourceType: ['camera', 'album'],
          success: res => {
            console.log(res)

            if (Math.ceil(res.size / 1024) < this.upload_max * 1024) {
              uni.uploadFile({
                url: this.uploadUrl, //仅为示例,非真实的接口地址
                filePath: res.tempFilePath,
                name: 'file',
                //请求参数
                formData: {
                  user: 'test'
                },
                header: {
                  // #ifdef MP
                  'Content-Type': 'multipart/form-data',
                  // #endif
                  [TOKENNAME]: 'Bearer ' + store.state.app.token
                },
                success: uploadFileRes => {
                  let data = JSON.parse(uploadFileRes.data);
                  this.addGoodsSecoundData.video_link = (data.data.src);
                },
                complete: a => {
                  // console.log(a);
                }
              });
            } else {
              uni.showModal({
                title: '提示',
                content: `视频超出限制${this.upload_max}MB,已过滤`
              });
            }
          },
          fail: err => {
            // 取消上传也会出现弹框
            // uni.showModal({
            //   content: JSON.stringify(err)
            // });
            console.log(err)
          }
        });
      },
      deleteImage(index) {
        this.addGoodsSecoundData.video_link = '';
      }
    }
  };
</script>

<style lang="scss" scoped>
  @import './scss/index.scss';

  .content_list {
    width: 710rpx;
    margin: auto;
    padding: 0 20rpx;
    box-sizing: border-box;
    background: #fff;
    margin-top: 31rpx;
    border-radius: 10rpx;

    .content_list_item {
      padding: 32rpx 10rpx;
      display: flex;
      justify-content: space-between;
      border-bottom: 1px solid #eee;

      .content_list_item_han {
        color: #bbbbbb;
        display: flex;
        align-items: center;
      }
    }

    .content_list_video {
      min-height: 154rpx;
      padding: 23rpx 10rpx;
      display: flex;
      justify-content: space-between;

      .content_list_video_title {
        padding-top: 10rpx;
      }

      .video_list {
        flex: 1;
        display: flex;
        justify-content: flex-end;
        flex-wrap: wrap;
      }
    }
  }

  .videoHover {
    width: 180rpx;
    height: 180rpx;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;

    view {
      width: 50rpx;
      height: 50rpx;
      background: #000000;
      border-radius: 50rpx;
      display: flex;
      align-items: center;
      justify-content: center;

      .iconfont {
        color: #ffffff;
        font-size: 21rpx;
      }
    }
  }

  .photo {
    border: 1px solid #dddddd;
    opacity: 1;
    border-radius: 8rpx;
    font-size: 28rpx;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    // padding: 27rpx 21rpx 24rpx 21rpx;
    width: 150rpx;
    height: 150rpx;
    box-sizing: border-box;
    color: #bbbbbb;
    margin-left: 16rpx;
    position: relative;
    margin-bottom: 12rpx;

    image {
      width: 62rpx;
      margin-bottom: 10rpx;
    }
  }

  .jiao {
    image {
      position: absolute;
      top: -14rpx;
      right: -14rpx;
      width: 40rpx;
      height: 40rpx;
      border-radius: 50%;
      padding: 8rpx;
      background: #e93323;
      z-index: 999;
    }

    video {
      width: 150rpx;
      height: 150rpx;
    }
  }

  .preview_video {
    position: absolute;

  }

  .container_input {
    background: #fff;
    padding: 0 20rpx;
    width: 710rpx;

    margin: auto;
    margin-top: 31rpx;
    border-radius: 10rpx;

    &_item {
      display: flex;
      height: 106rpx;
      align-items: center;

      .select_and_input {
        display: flex;
        align-items: center;
        justify-content: space-between;

        .greyColor {
          color: #bbbbbb;
        }
      }

      .radio {
        padding: 30rpx 0;
      }

      &_label {
        padding-left: 10rpx;
        color: #333333;
        font-size: 30rpx;
        display: flex;
        align-items: center;

        .select_check {
          display: flex;
          align-items: center;
          justify-content: center;
          width: 40rpx;
          height: 40rpx;
          border: 1px solid #cccccc;
          border-radius: 50%;
          margin-right: 20rpx;

          .iconfont {
            font-size: 24rpx;
          }
        }

        .select {
          background: #e93323;
          border: none;

          .iconfont {
            color: #fff;
          }
        }
      }

      &_value {
        padding-right: 10rpx;
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: flex-end;

        >span:nth-child(1) {
          display: inline-block;
          margin-right: 15rpx;
        }

        .text {
          color: #000;
          display: inline-block;
          max-width: 400rpx;
          overflow: hidden;
          white-space: nowrap;
          text-overflow: ellipsis;
        }

        input {
          text-align: right;
        }

        .select_group {
          display: flex;
        }

        &_select {
          display: flex;
          margin-right: 110rpx;
        }
      }

      .flex_start {
        padding: 0 10rpx;
        margin-top: 40rpx;
        justify-content: flex-start;
      }
    }

    >view:not(:last-child) {
      border-bottom: 1px solid #eeeeee;
    }
  }

  .inputPlaceHolder {
    color: #bbbbbb;
  }

  .paddingTop_none {
    padding-top: 0 !important;
  }

  .marginTop_none {
    margin-top: 0;
  }

  .video-count {
    position: fixed;
    width: 600rpx;
    height: 500rpx;
    top: 50%;
    left: 50%;
    margin-left: -300rpx;
    margin-top: -250rpx;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;

    .videoLink {
      width: 600rpx;
      height: 500rpx;
    }
  }

  // .writeBg {
  // 	background: #fff;
  // }
</style>