// pages/dingdanxiangqing/dingdanxiangqing.js
const app = getApp()
import request from '../../utils/request.js'

Page({
  data: {
    // 从跳转参数获取的基础数据
    jibenShuju: {
      dingdanId: '',
      tupian: '',
      jieshao: '',
      chuangjianshijian: '',
      jine: '',
      nicheng: '',
      beizhu: '',
      zhuangtai: 0
    },
    
    // 从后端获取的详细数据
    xiangxiShuju: {
      zhiding: '',           // 指定打手
      dashou: '',            // 服务打手
      dashoujiaofu: [],      // 打手交付图片列表
      dashouliuyan: ''       // 打手留言
    },
    
    // 结算相关数据
    jiesuanShuju: {
      pingfen: 0,           // 评分 0-5
      liuyan: ''            // 留言
    },
    
    // 页面状态
    isLoading: true,        // 页面加载中
    isJiesuanLoading: false, // 结单请求中
    
    // 状态颜色映射
    zhuangtaiYanseMap: {
      1: '#E8F5E9', // 已下单 - 浅绿色
      2: '#E3F2FD', // 进行中 - 浅蓝色
      3: '#F3E5F5', // 已完成 - 浅紫色
      4: '#FFF3E0', // 退款中 - 浅橙色
      5: '#FFEBEE', // 已退款 - 浅红色
      6: '#EFEBE9', // 退款失败 - 浅棕色
      7: '#E0F7FA', // 指定中 - 浅青色
      8: '#FFF8E1'  // 结算中 - 浅黄色
    },
    
    // 状态文字映射
    zhuangtaiWenziMap: {
      1: '已下单',
      2: '进行中',
      3: '已完成',
      4: '退款中',
      5: '已退款',
      6: '退款失败',
      7: '指定中',
      8: '结算中'
    },
    
    // 星星评分数据
    xingxingData: [
      { id: 1, active: false },
      { id: 2, active: false },
      { id: 3, active: false },
      { id: 4, active: false },
      { id: 5, active: false }
    ]
  },

  onLoad(options) {
    // 设置页面标题
    wx.setNavigationBarTitle({
      title: '订单详情'
    })
    
    // 解析跳转参数
    this.jiexiTiaozhuanCanshu(options)
  },
  onShow() {
    // 原有代码...
    
    // 🆕 注册通知组件
    this.registerNotificationComponent();
},

// 🆕 新增：注册通知组件
registerNotificationComponent() {
    const app = getApp();
    const notificationComp = this.selectComponent('#global-notification');
    
    if (notificationComp && notificationComp.showNotification) {
        console.log('🏪 商城页面注册通知组件');
        app.globalData.globalNotification = {
            show: (data) => notificationComp.showNotification(data),
            hide: () => notificationComp.hideNotification()
        };
    }
},

  /**
   * 解析跳转参数
   */
  jiexiTiaozhuanCanshu(options) {
    try {
      const dingdanDataStr = options.dingdanData || ''
      if (!dingdanDataStr) {
        wx.showToast({
          title: '订单数据错误',
          icon: 'none'
        })
        setTimeout(() => {
          wx.navigateBack()
        }, 1500)
        return
      }
      
      // 解析订单数据
      const dingdanData = JSON.parse(decodeURIComponent(dingdanDataStr))
      
      
      
      // 处理图片URL（拼接完整路径）
      let tupianUrl = dingdanData.tupian || ''
      if (tupianUrl && !tupianUrl.startsWith('http')) {
        const ossImageUrl = app.globalData.ossImageUrl || ''
        tupianUrl = ossImageUrl + tupianUrl
      }
      
      // 格式化价格
      let jine = dingdanData.jine || 0
      jine = parseFloat(jine)
      if (isNaN(jine)) {
        jine = 0
      }
      const formattedJine = jine.toFixed(2)
      
      // 设置基础数据（状态先用跳转的，等后端返回后更新）
      this.setData({
        'jibenShuju.dingdanId': dingdanData.dingdanId || '',
        'jibenShuju.tupian': tupianUrl,
        'jibenShuju.jieshao': dingdanData.jieshao || '',
        'jibenShuju.chuangjianshijian': dingdanData.chuangjianshijian || '',
        'jibenShuju.jine': formattedJine,
        'jibenShuju.nicheng': dingdanData.nicheng || '',
        'jibenShuju.beizhu': dingdanData.beizhu || '',
        // 这里先使用跳转的状态，等后端返回后会被覆盖
        'jibenShuju.zhuangtai': dingdanData.zhuangtai || 0,
        isLoading: false
      })
      
      
      
      // 加载详细数据
      this.jiazaiXiangxiShuju(dingdanData.dingdanId)
      
    } catch (error) {
      console.error('解析订单数据失败:', error)
      wx.showToast({
        title: '数据解析失败',
        icon: 'none'
      })
      setTimeout(() => {
        wx.navigateBack()
      }, 1500)
    }
  },

  /**
   * 加载详细数据
   */
  async jiazaiXiangxiShuju(dingdanId) {
    if (!dingdanId) return
    
    
    
    try {
      const res = await request({
        url: '/dingdan/dingdanxiangqing',
        method: 'POST',
        data: { dingdanId: dingdanId },
        header: { 'content-type': 'application/json' }
      })
      
      
      
      // 关键修正：使用正确的数据访问路径
      if (res && res.data.code === 0 && res.data.data) {
        const data = res.data.data
        
        
        
        // 处理打手交付图片（拼接完整URL）
        let dashoujiaofuList = data.dashoujiaofu || []
        dashoujiaofuList = dashoujiaofuList.map(imgUrl => {
          if (imgUrl && !imgUrl.startsWith('http')) {
            const ossImageUrl = app.globalData.ossImageUrl || ''
            return ossImageUrl + imgUrl
          }
          return imgUrl
        })
        
        // 核心修正：使用后端返回的订单状态，覆盖跳转时的状态
        this.setData({
          'xiangxiShuju.zhiding': data.zhiding || '',
          'xiangxiShuju.dashou': data.dashou || '',
          'xiangxiShuju.dashoujiaofu': dashoujiaofuList,
          'xiangxiShuju.dashouliuyan': data.dashouliuyan || '',
          // 关键：使用后端返回的状态覆盖跳转的状态
          'jibenShuju.zhuangtai': data.zhuangtai || 0
        })
        
        
        
      } else {
        console.warn('获取详细数据失败:', res?.msg || '未知错误')
        wx.showToast({
          title: res?.msg || '获取订单详情失败',
          icon: 'none',
          duration: 2000
        })
      }
      
    } catch (error) {
      console.error('加载详细数据失败:', error)
      wx.showToast({
        title: '加载数据失败，请重试',
        icon: 'none',
        duration: 2000
      })
    }
  },

  /**
   * 复制文本到剪贴板
   */
  async fuzhiWenben(e) {
    const text = e.currentTarget.dataset.text
    if (!text) return
    
    
    
    try {
      await wx.setClipboardData({
        data: text
      })
      
      wx.showToast({
        title: '复制成功',
        icon: 'success',
        duration: 1500
      })
      
    } catch (error) {
      console.error('复制失败:', error)
      wx.showToast({
        title: '复制失败',
        icon: 'none'
      })
    }
  },

  /**
   * 预览图片
   */
  yulanTupian(e) {
    const currentUrl = e.currentTarget.dataset.url
    const urls = e.currentTarget.dataset.urls || []
    
    if (!currentUrl) return
    
    wx.previewImage({
      current: currentUrl,
      urls: urls.length > 0 ? urls : [currentUrl]
    })
  },

  /**
   * 点击星星评分
   */
  dianjiXingxing(e) {
    const pingfen = e.currentTarget.dataset.index
    
    // 更新星星状态
    const xingxingData = this.data.xingxingData.map((item, index) => ({
      ...item,
      active: index < pingfen
    }))
    
    this.setData({
      xingxingData: xingxingData,
      'jiesuanShuju.pingfen': pingfen
    })
    
    
  },

  /**
   * 输入留言
   */
  shuruLiuyan(e) {
    const liuyan = e.detail.value.slice(0, 50) // 限制50字
    this.setData({
      'jiesuanShuju.liuyan': liuyan
    })
  },

  /**
   * 提交结单
   */
  async tijiaoJiedan() {
    const { jibenShuju, jiesuanShuju } = this.data
    
    console.log('提交结单，数据:', {
      dingdanId: jibenShuju.dingdanId,
      pingfen: jiesuanShuju.pingfen,
      liuyan: jiesuanShuju.liuyan
    })
    
    // 验证订单状态
    if (jibenShuju.zhuangtai !== 8) {
      wx.showToast({
        title: '订单不在结算状态',
        icon: 'none'
      })
      return
    }
    
    // 验证评分范围
    if (jiesuanShuju.pingfen < 0 || jiesuanShuju.pingfen > 5) {
      wx.showToast({
        title: '请选择0-5分评分',
        icon: 'none'
      })
      return
    }
    
    // 验证订单ID
    if (!jibenShuju.dingdanId) {
      wx.showToast({
        title: '订单信息错误',
        icon: 'none'
      })
      return
    }
    
    // 显示加载中
    this.setData({ isJiesuanLoading: true })
    wx.showLoading({
      title: '提交中...',
      mask: true
    })
    
    try {
      const res = await request({
        url: '/dingdan/jiedan',
        method: 'POST',
        data: {
          dingdanId: jibenShuju.dingdanId,
          pingfen: jiesuanShuju.pingfen,
          liuyan: jiesuanShuju.liuyan
        },
        header: { 'content-type': 'application/json' }
      })
      
      
      
      wx.hideLoading()
      this.setData({ isJiesuanLoading: false })
      
      // 使用正确的数据访问路径
      if (res && res.data.code === 0) {
        // 结单成功，更新订单状态
        this.setData({
          'jibenShuju.zhuangtai': 3, // 变为已完成状态
          'jiesuanShuju.pingfen': 0,
          'jiesuanShuju.liuyan': ''
        })
        
        // 重置星星
        const resetXingxingData = this.data.xingxingData.map(item => ({
          ...item,
          active: false
        }))
        this.setData({ xingxingData: resetXingxingData })
        
        wx.showToast({
          title: '结单成功',
          icon: 'success',
          duration: 2000
        })
        
      } else {
        wx.showToast({
          title: res?.msg || '结单失败',
          icon: 'none'
        })
      }
      
    } catch (error) {
      console.error('结单失败:', error)
      wx.hideLoading()
      this.setData({ isJiesuanLoading: false })
      wx.showToast({
        title: '网络错误，请重试',
        icon: 'none'
      })
    }
  },

  
})