<template>
	<page-meta :page-font-size="fontValue+'px'" :root-font-size="fontValue+'px'"></page-meta>
  <view class="page-container">
    <view class="merchant-list">
      <view
        class="merchant-box"
        v-for="(item, index) in merchantList"
        :key="index"
      >
        <view class="merchant-item" @click="goToMenu(item)">
          <view class="merchant-info">
            <image
              :src="item.imgUrl"
              class="merchant-avatar"
              mode="aspectFill"
            ></image>
            <view class="merchant-detail">
              <view class="merchant-name">
				<text>{{ item.canteenName }}</text>
				<view class="status-box" :class="{ 'status-open': item.isOpen }">
				  {{ item.isOpen ? '营业中' : '休息中' }}
				</view>
			  </view>
              <view class="merchant-stats">
				  <view style="margin-bottom: 5px;display: flex;align-items: center;">
						<view style="color:#000;">拥挤程度：</view>
						<view class="gl" v-if="item.personRate<=66" :class="{ 'gl-green': item.personRate>0 }"></view>
						<view class="gl" v-else :class="{ 'gl-red': item.personRate>0 }"></view>
						
						<view class="gl" v-if="item.personRate<=66" :class="{ 'gl-green': item.personRate>33 }"></view>
						<view class="gl" v-else :class="{ 'gl-red': item.personRate>33 }"></view>
						
						<view class="gl" v-if="item.personRate<=66"></view>
						<view class="gl" v-else :class="{ 'gl-red':item.personRate>66 }"></view>
						
						<view v-if="item.personRate<=66&&item.personRate>=0" style="color:#00aa00;">畅通</view>
						<view v-if="item.personRate>66" style="color:#ff6633;">拥挤</view>
				  </view>
				  <view>
					  <text style="color:#000;">营业时间：</text>
					  <text class="business-hours">{{ item.startBusinessTime }} - {{item.endBusinessTime}}</text>
				  </view>  
              </view>
            </view>
          </view>
          
        </view>
      </view>
    </view>
  </view>
</template>

<script>
import { queryNowPresentNumApi } from '@/api/passenger/index.js'

export default {
  data() {
    return {
		fontValue:uni.getStorageSync('fontSize') || 8, 
		merchantList: [{"presentNum":9,"capacity":400,"businessState":2,"canteenName":"sbd工业园食堂","canteenId":"378928314946949120","startBusinessTime":"00:00:00","endBusinessTime":"23:59:59","imgUrl":null,"personRate":3}]
    }
  },
  onLoad() {
	this.queryNowPresentNum()
  },
  methods: {
	  async queryNowPresentNum() {
	    try {
			let param = {
				"custId":uni.getStorageSync('custId')
			}
			const res = await queryNowPresentNumApi(param) 
			this.merchantList = res.data;
			this.merchantList.forEach(item=>{
				item.personRate = Number(((item.presentNum/item.capacity)*100).toFixed(2))
			})
			console.log('?? ~ getList ~ res:', this.merchantList)
			this.updateMerchantStatus()
	    } catch (error) {
			console.log(error)
	    }
	  },
    updateMerchantStatus() {
      this.merchantList.forEach(merchant => {
        merchant.isOpen = this.checkIfOpen(merchant.startBusinessTime,merchant.endBusinessTime);
      });
    },
    checkIfOpen(start,end) {
		// console.log(start)
		// console.log(end)
      // 这是一个简单的判断逻辑
      // const [start, end] = businessHours.split('-');
      const now = new Date();
      const currentTime = now.getHours() * 60 + now.getMinutes();
      const [startHour, startMinute, startSecond] = start.split(':').map(Number);
      const [endHour, endMinute, endSecond] = end.split(':').map(Number);
      const startTime = startHour * 60 + startMinute;
      const endTime = endHour * 60 + endMinute; 
      return currentTime >= startTime && currentTime <= endTime;
    },
    goToMenu(item) {
		uni.navigateTo({
			url: `/pages/passenger/flowDetail?params=${JSON.stringify(item)}`
		})
    }
  },

  mounted() {
    // this.updateMerchantStatus();
    // 可以设置一个定时器，定期更新营业状态
    // setInterval(this.updateMerchantStatus(), 5000); // 每分钟更新一次
  }
}
</script>

<style lang="scss" scoped>
.page-container {
  min-height: 100vh;
  background-color: #f5f5f5;
  padding: 20rpx;
}

.merchant-list {
  .merchant-box {
    margin-bottom: 20rpx;

    &:last-child {
      margin-bottom: 0;
    }
  }

  .merchant-item {
    background-color: #ffffff;
    border-radius: 12rpx;
    padding: 20rpx;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
	width: 100%;
    position: relative;
  }

  .merchant-info {
	width: 90%;
    display: flex;
    align-items: center;  

    .merchant-avatar {
      width: 100rpx;
      height: 100rpx;
      border-radius: 8rpx;
      margin-right: 20rpx;
    }

    .merchant-detail {
      width: 80%;

      .merchant-name {
	    width: 100%;
        font-size: 26rpx;
        color: #333333;
        margin-bottom: 16rpx;
        font-weight: 500;
		display: flex;
      }

      .merchant-stats {
        display: flex;
        font-size: 24rpx;
        color: #999999;
        flex-direction: column;
        align-items: flex-start;

        .business-hours {
          //margin-left: 24rpx;
        }
      }
    }
  }

  .status-box {
    font-size: 22rpx;
    color: #999999;
    padding: 4rpx 8rpx;
	margin-left: 10px;
    background-color: #f5f5f5;
    border-radius: 4rpx;
    // position: absolute;
    // top: 36rpx;
    // right: 24rpx;

    &.status-open {
      color: #ff6633;
      background-color: #fff2ef;
    }
  }
  
  .gl{
	  height: 5px;
	  width:50px;
	  background-color: #ccc;
	  margin-right: 4px;
	  border-radius:4px;
	  &.gl-red{
	  	   background-color: #ff6633;
	  }
	  &.gl-green{
	  	   background-color: #00aa00;
	  }
  }
   
  
}
</style>