
// component/imageSwiper/imageSwiper.js
var app = getApp()
const wxService = require('../../utils/wxService')
const utils = require('../../utils/util')
const envInfo = require('../../config/index').envInfo

Component({
	/**
	 * 组件的属性列表
	 */
  properties: {
    imageData: {
      type: Array,
      value: [],
    },
  },
  attached() {
    this.setData({
      baseImgUrl: app.globalData.imageUrl
    })
  },
	/**
	 * 组件的初始数据
	 */
  data: {
    indicatorDots: true,
    autoplay: true,
    circular: true,
    interval: 5000,
    duration: 1000,
    isAuthorization: false, // false 不显示 true 显示
		baseImgUrl: '',
		maxHeight: 0,
		padding: 0,
		heights: [],
		imageHeights: {}, // 记录所有图片的实际高度
	},
	observers: {
		heights: function(heights) {
			let imageData = this.data.imageData
			if (heights.length === imageData.length) {
				let maxHeight = Math.max.apply(null, heights)
				this.setData({
					maxHeight,
				})
				wxService.nextTick(() => {
					this.triggerEvent(
						'imageLoad',
						{ maxHeight, windowWidth: this.data.windowWidth },
						{ bubbles: true, composed: true }
					)
				})
			}
		},
	},
	/**
	 * 组件的方法列表
	 */
  methods: {
		imageLoad: function(e) {
			// 图片加载完成回调
			let heights = this.data.heights
			let id = e.target.id
			var imageWidth = e.detail.width
			var imageHeight = e.detail.height
			var ratio = imageWidth / imageHeight
			var sysRes = app.globalData.systemInfo
			var imageHeights = this.data.imageHeights
			const height = (sysRes.windowWidth - (this.data.padding * sysRes.windowWidth) / 750) / ratio
			heights.push(height)
			imageHeights[id] = height
			this.setData({
				imageHeights: imageHeights,
				windowWidth: sysRes.windowWidth,
				heights
			})
		},
    preview(event) {
      const ev = event.currentTarget.dataset;
			let curItemType = ev.item
      // 获取当前帐号信息
      const userInfo = wx.getStorageSync('_baseUserInfo')
      // link row
			if (curItemType.link) {
				let currentClickType = app.globalData.commonFunc.getLink(curItemType.link.type, curItemType)
				if (curItemType.link.type == 1) {
					// 触发父组件更新页面 外部小程序
					this.setData({
						isAuthorization: false
					})
					return false
				} else if (!userInfo) {
					this.setData({
						isAuthorization: true
					})
					return false
				} else if (userInfo && userInfo.member && !userInfo.member.mobile) {
					wxService.openCard()
					return false
				}

				if (curItemType.link.type == 2) {
					// 触发父组件更新页面
					wxService.nextTick(() => {
						this.triggerEvent('updatePage', { pageId: currentClickType.url })
					})
				} else if (curItemType.link.type == 3) {
					// 预览
					wx.previewImage({
						current: `${app.globalData.imageUrl}/${currentClickType.imageUrl}`, // 当前显示图片的http链接
						urls: [`${app.globalData.imageUrl}/${currentClickType.link.url}`]  // 需要预览的图片http链接列表
					})
				} else if (curItemType.link.type == 4) {
					wxService.router(`${currentClickType}`)
				} else if (curItemType.link.type == 5) {
					if (currentClickType == 1) {
						wxService.openCard()
					} else if (currentClickType == 2) {
						wxService.openCard()
					}
				} else if (curItemType.link.type == 6) {
					wxService.router(`/${currentClickType}`)
				} else if (curItemType.link.type == 7) {
					// 集点详情
				  wxService.router(`${currentClickType}`)
				}
			} else if (curItemType.row) {
				let rowObj = JSON.parse(curItemType.row)
				let currentClickRow = app.globalData.commonFunc.getLinkRow(rowObj.type, rowObj)

				if (rowObj.type == 1) { }
				else if (rowObj.type == 2) { }
				else if (rowObj.type == 3) { }
				else if (rowObj.type == 4) { }
				else if (rowObj.type == 5) { }
				else if (rowObj.type == 6) { }
				else if (rowObj.type == 7) { }
				else if (rowObj.type == 8) {
					// 商品
					wxService.router(`/pages/productDetail/productDetail?productId=${currentClickRow}`)
				}
				else if (rowObj.type == 9) { 
					// 分类
					wxService.router(`/subPackage/page/pages/categoryPro/categoryPro?${currentClickRow}`)
				}
			}
    }
  }
})
