// pages/scheduling/index.js
const api = require('../../api/index.js');
// const timestamp = require("../../utils/util.js")
Page({

  /**
   * 页面的初始数据
   */
  data: {
    visible:false,
    current: [],
    options: [],
    userdata:[],
    value:'',
    minDate: new Date(2022, 0, 10).getTime(),
    maxDate: new Date(2027, 10, 27).getTime(),
    format(day) {
      const { date } = day;
      const year = date.getFullYear();
      const month = date.getMonth() + 1;
      const curDate = date.getDate();
      
      // 农历月份名称
      const lunarMonths = ['正月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '冬月', '腊月'];
      
      // 农历日期名称
      const lunarDays = [
        '初一', '初二', '初三', '初四', '初五', '初六', '初七', '初八', '初九', '初十',
        '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十',
        '廿一', '廿二', '廿三', '廿四', '廿五', '廿六', '廿七', '廿八', '廿九', '三十'
      ];
    
      // 阳历节日映射
      const solarFestivals = {
        '1-1': '元旦',
        '2-14': '情人节',
        '3-8': '妇女节',
        '4-1': '愚人节',
        '5-1': '劳动节',
        '6-1': '儿童节',
        '9-10': '教师节',
        '10-1': '国庆节',
        '12-24': '平安夜',
        '12-25': '圣诞节'
      };
    
      // 农历节日映射（需要根据具体年份计算，这里简化处理）
      const lunarFestivals = {
        '正月-初一': '春节',
        '正月-十五': '元宵',
        '五月-初五': '端午',
        '七月-初七': '七夕',
        '八月-十五': '中秋',
        '九月-初九': '重阳',
        '腊月-三十': '除夕'
      };
    
      // 节气映射（简化版）
      const solarTerms = {
        '2-4': '立春', '2-19': '雨水',
        '3-5': '惊蛰', '3-20': '春分',
        '4-5': '清明', '4-20': '谷雨',
        '5-5': '立夏', '5-21': '小满',
        '6-6': '芒种', '6-21': '夏至',
        '7-7': '小暑', '7-23': '大暑',
        '8-8': '立秋', '8-23': '处暑',
        '9-8': '白露', '9-23': '秋分',
        '10-8': '寒露', '10-23': '霜降',
        '11-7': '立冬', '11-22': '小雪',
        '12-7': '大雪', '12-22': '冬至'
      };
    
      // 计算农历日期（简化算法）
      const lunarMonthIndex = (month - 1 + Math.floor(curDate / 15)) % 12;
      const lunarDayIndex = (curDate - 1) % 30;
      
      let lunarDate = lunarDays[lunarDayIndex];
      const lunarMonth = lunarMonths[lunarMonthIndex];
      
      // 如果是初一，显示月份
      if (lunarDayIndex === 0) {
        lunarDate = lunarMonth;
      }
    
      // 设置农历显示
      day.prefix = lunarDate;
    
      // 检查阳历节日
      const solarFestivalKey = `${month}-${curDate}`;
      if (solarFestivalKey in solarFestivals) {
        day.suffix = solarFestivals[solarFestivalKey];
        day.className = 'is-solar-festival';
      }
    
      // 检查农历节日
      const lunarFestivalKey = `${lunarMonth}-${lunarDays[lunarDayIndex]}`;
      if (lunarFestivalKey in lunarFestivals) {
        day.suffix = lunarFestivals[lunarFestivalKey];
        day.className = 'is-lunar-festival';
      }
    
      // 检查节气
      if (solarFestivalKey in solarTerms) {
        day.suffix = solarTerms[solarFestivalKey];
        day.className = 'is-solar-term';
      }
    
      // 周末样式
      if (date.getDay() === 0 || date.getDay() === 6) {
        day.className = (day.className || '') + ' is-weekend';
      }
    
      // 今天日期样式
      const today = new Date();
      if (year === today.getFullYear() && 
          month === today.getMonth() + 1 && 
          curDate === today.getDate()) {
        day.className = (day.className || '') + ' is-today';
      }
    
      return day;
    },
    selectschedudata:[],
    partnerPosition:wx.getStorageSync('partnerPosition').partnerPosition
  },

            // day.suffix = '¥100';
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
  this.getuser()
  const currentTimestamp = Date.now();
  this.setData({
    value:currentTimestamp,
    valuename:this.timestamp(currentTimestamp)
  })
  this.getdatetime()

  },
   timestamp(n){
    // 使用 Date 对象将时间戳转换为日期时间字符串
    const date = new Date(n);
    
    // 使用 Date 对象的方法获取年月日时分秒
    const year = date.getFullYear();
    const month = date.getMonth() + 1; // 月份是从0开始的，需要加1
    const day = date.getDate();
    const hours = date.getHours();
    const minutes = date.getMinutes();
    const seconds = date.getSeconds();
    
    // 构造你需要的日期时间格式
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
    },
  // 查询人员
  getuser(){
    let data = {
      partnerName:'',
      partnerPhone:'',
      partnerType:''
    }
    api.request(`/partner/selectinformationall`, 'POST',data)
    .then((res) => {
      console.log(res);
      const positionMap = { 1: '值班员', 2: '值长', 3: '站长', 4: '董事长' };
      const transformedData = res.data.map(item => ({
        label: item.partnerName,
        value: item.partnerId,
        content: positionMap[item.partnerPosition] || item.partnerPosition,
        ...item
      }));
      console.log(transformedData);
      this.setData({
        options:transformedData
      })
    })
    .catch((err) => {
      console.error('请求失败：', err);
      // 在这里处理请求失败的情况
    });
  },
  
  handleSelect(e) {
    const { value } = e.detail;
    
this.setData({
  value:value,
  valuename:this.timestamp(value)
})
    console.log(value);
    this.getdatetime()
  },
  handleConfirm(e) {
    this.setData({ value: e.detail.value });
    console.log(e.detail.value);
  },

  handlePanelChange(e) {
    const { year, month } = e.detail;
    console.log('year: ', year, 'month: ', month);
  },
  ondutyadd(){
    this.setData({
      visible:true
    })
  },
  onVisibleChange(){
    this.setData({
      visible:false
    })
  },
  handleGroupChange(event) {
    console.log('group', event.detail.value);
    this.setData({
      current: event.detail.value,
    });
  },
    // 查询日期
    getdatetime(){
      let data = {
        startdate:this.data.valuename,
        enddate:this.data.valuename,
      }
      api.request(`/scheduling/selectscheduling`, 'POST',data)
      .then((res) => {
        console.log(res);
        this.setData({
          selectschedudata:res.data
        })
      })
      .catch((err) => {
        console.error('请求失败：', err);
        // 在这里处理请求失败的情况
      });
    },
    onworkorder(){
      let data ={
        schedulingId:this.data.selectschedudata[0].id,
        partnerId:this.data.current.toString()
      }
      api.request(`/scheduling`, 'POST',data)
      .then((res) => {
        console.log(res);
       this.setData({
        visible:false
       })
       this.getdatetime()
      })
      .catch((err) => {
        console.error('请求失败：', err);
        // 在这里处理请求失败的情况
      });
    },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})