﻿// 售后详情页
const { useState, useEffect } = React;

const APPEAL_TYPE_MAP = {
  'after_sale':'申请售后','feedback':'问题反馈','dispute':'交易纠纷',
  'inspection_dispute':'验号纠纷','rebind_issue':'换绑问题'
};
const APPEAL_STATUS_MAP = {
  0:{label:'待处理',color:'#d46b08',bg:'#fff7e6'},
  1:{label:'处理中',color:'#1677ff',bg:'#e6f4ff'},
  2:{label:'已处理',color:'#389e0d',bg:'#f6ffed'},
  3:{label:'已关闭',color:'#999',bg:'#f5f5f5'}
};

function AppealDetailPage() {
function svgArrL(c){return React.createElement('svg',{width:20,height:20,viewBox:'0 0 24 24',fill:'none',stroke:c||'#334155',strokeWidth:1.875,strokeLinecap:'round',strokeLinejoin:'round'},React.createElement('path',{d:'M15 18l-6-6 6-6'}));}

  const [data, setData] = useState(null);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState('');
  const pageParams = NK.Store.get('pageParams');
  const appealId = pageParams && pageParams.id;

  useEffect(function(){
    if (!appealId) { setLoading(false); setError('缺少申诉ID'); return; }
    setLoading(true);
    NK.Api.Appeals.detail(appealId).then(function(res){
      if (res.code===0) setData(res.data); else setError(res.message||'加载失败');
    }).catch(function(){setError('网络错误');})
    .finally(function(){setLoading(false);});
  }, [appealId]);

  if (loading) {
    return React.createElement('div',{className:'page-loading'},
      React.createElement('div',{className:'spinner'}),
      React.createElement('div',{style:{color:'#999',fontSize:14}},'加载中...')
    );
  }

  return React.createElement('div',{className:'detail-page'},
    React.createElement('div',{className:'back-header'},
      React.createElement('div',{className:'bbtn',onClick:()=>NK.Store.navigate('myAppeals')},svgArrL()),
      React.createElement('div',{className:'btitle'},'售后详情')
    ),

    error && !data
      ? React.createElement('div',{className:'empty-state'},
          React.createElement('div',null,error),
          React.createElement('div',{style:{color:'#1677ff',marginTop:12,cursor:'pointer',fontSize:14},onClick:()=>NK.Store.navigate('myAppeals')},'返回我的售后')
        )
      : data && React.createElement('div',null,
          (function(){
            var a = data.appeal;
            var o = data.order;
            var st = APPEAL_STATUS_MAP[a.status]||{label:'未知',color:'#999',bg:'#f5f5f5'};
            var sec = function(title,body){return React.createElement('div',{className:'dt-section'},React.createElement('div',{className:'dt-section-title'},title),body);};
            var row = function(l,v){return React.createElement('div',{style:{display:'flex',justifyContent:'space-between',padding:'8px 0',borderBottom:'1px solid #f5f5f5',fontSize:14}},React.createElement('span',{style:{color:'#999'}},l),React.createElement('span',{style:{color:'#333',fontWeight:500}},v||'-'));};

            return React.createElement('div',null,
              // 状态标签
              React.createElement('div',{style:{padding:'12px 16px',background:st.bg,borderBottom:'1px solid #f0f0f0'}},
                React.createElement('span',{style:{display:'inline-block',padding:'4px 14px',borderRadius:12,fontSize:13,fontWeight:600,color:st.color,background:'#fff'}},st.label),
                React.createElement('span',{style:{marginLeft:10,fontSize:13,color:'#666'}},APPEAL_TYPE_MAP[a.dispute_type||a.type]||'售后')
              ),

              sec('申诉信息', React.createElement('div',null,
                row('申诉类型',APPEAL_TYPE_MAP[a.dispute_type||a.type]||'-'),
                row('原因',a.reason||'-'),
                row('描述',a.description||'-'),
                row('提交时间',a.create_time?new Date(a.create_time).toLocaleString('zh-CN'):'-'),
                a.result && row('处理结果',a.result)
              )),

              o && sec('关联订单', React.createElement('div',null,
                row('订单号',o.order_no||('#'+o.id)),
                row('商品',o.account_title||'-'),
                row('服务器',o.server||'-')
              )),

              a.evidence && sec('证据', React.createElement('div',null,
                (function(){
                  try {
                    var ev = typeof a.evidence==='string'?JSON.parse(a.evidence):a.evidence;
                    var urls = Array.isArray(ev)?ev:(ev.evidenceUrls||ev.urls||[]);
                    if (!urls.length) return React.createElement('div',{style:{color:'#bbb',fontSize:13}},'无证据');
                    return urls.map(function(u,i){return React.createElement('div',{key:i,style:{marginBottom:4}},React.createElement('a',{href:u,target:'_blank',style:{color:'#1677ff',fontSize:13,wordBreak:'break-all'}},u));});
                  } catch(_){ return React.createElement('div',{style:{color:'#bbb',fontSize:13}},'无证据'); }
                })()
              )),

              sec('平台处理记录', React.createElement('div',null,
                (data.csRecords&&data.csRecords.length>0)
                  ? data.csRecords.map(function(r,i){
                      return React.createElement('div',{key:i,style:{padding:'8px 0',borderBottom:'1px solid #f5f5f5',fontSize:13}},
                        React.createElement('div',{style:{color:'#999',marginBottom:2}},r.create_time?new Date(r.create_time).toLocaleString('zh-CN'):''),
                        React.createElement('div',{style:{color:'#333'}},typeof r.content==='string'?r.content:JSON.stringify(r.content))
                      );
                    })
                  : React.createElement('div',{style:{color:'#bbb',fontSize:13,padding:'8px 0'}},'平台暂未处理')
              ))
            );
          })()
        )
  );
}

window.NK = window.NK || {};
NK.AppealDetailPage = AppealDetailPage;