2025-11-28 15:18:10 +08:00
|
|
|
|
import{r as N,b as q,z as ge,c as p,I as ye,o as i,d as S,f as t,w as a,e as n,G as U,h as r,g as xe,l as f,t as d,J as be,F as he,m as ke,L as O,E as w,n as G,c3 as Ce,c9 as we,ca as Ve,cb as ze,cc as De,cd as Ne}from"./index-01a32b87.js";import{g as Se,a as Oe,b as Pe,s as $e,c as Ee,r as Me}from"./orders-dcb3cc2e.js";import{_ as Be}from"./_plugin-vue_export-helper-c27b6911.js";const Ie={class:"orders-container"},Ae={class:"card-header"},Ue={class:"search-area"},Ye={class:"stats-cards"},je={class:"stat-content"},Te={class:"stat-value"},qe={class:"stat-content"},Fe={class:"stat-value"},Re={class:"stat-content"},Le={class:"stat-value"},He={class:"stat-content"},Ge={class:"stat-value"},Ke={class:"table-container"},Je={class:"product-info"},Ze={class:"product-details"},Qe={class:"product-name"},We={class:"product-spec"},Xe={style:{"font-size":"12px",color:"#999"}},et={class:"amount"},tt={class:"pagination-container"},at={key:0,class:"order-detail"},lt={class:"amount"},st={key:0,style:{margin:"20px 0"}},ot={key:0},nt={key:1},rt={class:"dialog-footer"},dt={key:0,class:"ship-order-info",style:{"margin-bottom":"20px",padding:"12px","background-color":"#f5f7fa","border-radius":"4px"}},it={style:{"font-size":"13px",color:"#909399","line-height":"1.5"}},ut={class:"dialog-footer"},ct={__name:"index",setup(pt){const Y=N(!1),F=N([]),te=N([]),P=N(!1),o=N(null),M=N(!1),R=N(!1),$=N(null),u=q({orderNo:"",expressCompany:"",expressNo:"",remark:""}),ae={expressCompany:[{required:!0,message:"请选择快递公司",trigger:"change"}],expressNo:[{required:!0,message:"请输入运单号",trigger:"blur"},{min:6,max:30,message:"运单号长度应在6-30位之间",trigger:"blur"},{pattern:/^[A-Za-z0-9]+$/,message:"运单号只能包含字母和数字",trigger:"blur"}]},x=q({order_no:"",status:"",date_range:[]}),v=q({page:1,size:10,total:0}),B=q({total_orders:0,total_amount:0,pending_orders:0,completed_orders:0}),V=async()=>{var g,_;Y.value=!0;try{const C={page:v.page,page_size:v.size,order_no:x.order_no,status:x.status,payment_method:x.payment_method,start_date:(g=x.date_range)==null?void 0:g[0],end_date:(_=x.date_range)==null?void 0:_[1]};console.log("正在请求订单列表,参数:",C);const m=await Se(C);if(console.log("订单列表API响应:",m),m&&m.data){const c=m.data.list||[];F.value=c.map(k=>{var j;return{...k,items:((j=k.order_items)==null?void 0:j.map(b=>{var z,E,T;return{id:b.id,name:b.product_name||((z=b.product)==null?void 0:z.name)||"未知商品",product_image:b.product_image||((E=b.product)==null?void 0:E.image)||"",spec:b.spec_name||((T=b.sku)!=null&&T.spec_values?Object.values(b.sku.spec_values).join(", "):"默认规格"),price:b.price,quantity:b.quantity}}))||[]}}),m.data.pagination&&(v.total=m.data.pagination.total||0,v.page=m.data.pagination.page||1,v.size=m.data.pagination.page_size||10);try{console.log("正在获取统计数据...");const k=await Oe();console.log("统计数据API响应:",k),k&&k.data&&Object.assign(B,k.data)}catch(k){console.warn("获取统计数据失败,使用默认值:",k)}Y.value=!1,console.log("订单数据加载完成");return}}catch(C){console.error("API调用失败,使用模拟数据:",C),console.error("错误详情:",C.response||C.message)}const s={list:[{id:1,order_no:"ORD202401010001",user_id:1001,total_amount:2999,payment_method:"wechat",status:2,created_at:"2024-01-01 10:00:00",remark:"请尽快发货",receiver_name:"张三",receiver_phone:"13800138000",receiver_address:"北京市朝阳区xxx街道xxx号",order_items:[{id:1,product_name:"iPhone 15 Pro",product_image:"https://via.placeholder.com/50x50",spec_info:{容量:"256GB",颜色:"深空黑色"},price:2999,quantity:1}]},{id:2,order_no:"ORD202401010002",user_id:1002,total_amount:5998,payment_method:"alipay",status:3,created_at:"2024-01-01 11:00:00",remark:"",receiver_name:"李四",receiver_phone:"13900139000",receiver_address:"上海市浦东新区xxx路xxx号",order_items:[{id:2,product_name:"MacBook Pro",product_image:"https://via.placeholder.com/50x50",spec_info:{尺寸:"16英寸",芯片:"M3 Pro"},price:2999,quantity:2}]},{id:3,o
|
|
|
|
|
|
确定要发货吗?`,"确认发货",{confirmButtonText:"确认发货",cancelButtonText:"取消",type:"warning",dangerouslyUseHTMLString:!1}),R.value=!0;try{await $e(o.value.id,{logistics_company:u.expressCompany,tracking_number:u.expressNo,remark:u.remark}),w.success("发货成功!"),M.value=!1,V()}catch(s){console.log("发货API调用失败:",s.message),o.value&&(o.value.status=4,o.value.express_company=u.expressCompany,o.value.express_no=u.expressNo),w.success("发货成功!"),M.value=!1,V()}}catch(s){console.error("发货失败:",s),w.error("发货失败,请检查表单信息")}finally{R.value=!1}},re=()=>{M.value=!1,$.value&&$.value.resetFields(),u.orderNo="",u.expressCompany="",u.expressNo="",u.remark=""},de=async s=>{try{await G.confirm(`确定要取消订单"${s.order_no}"吗?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});try{await Ee(s.id,"用户主动取消"),V()}catch(e){console.log("取消订单API调用失败:",e.message),V()}}catch(e){e!=="cancel"&&w.error("取消订单失败")}},K=async s=>{try{await G.confirm(`确定要为订单"${s.order_no}"申请退款吗?`,"退款确认",{confirmButtonText:"确定退款",cancelButtonText:"取消",type:"warning"});try{await Me(s.id,{refund_amount:s.total_amount/100,refund_reason:"管理员处理退款",remark:"管理员主动退款处理"}),w.success("退款处理成功"),V(),P.value&&(P.value=!1)}catch(e){console.log("退款API调用失败:",e.message),w.error(e.message||"退款处理失败,请稍后重试")}}catch(e){e!=="cancel"&&w.error("退款申请失败")}},ie=()=>{w.info("导出功能开发中...")},ue=s=>{te.value=s.map(e=>e.id)},ce=s=>{v.size=s,v.page=1,V()},pe=s=>{v.page=s,V()},J=s=>({1:"warning",2:"primary",3:"primary",4:"info",5:"primary",6:"success",7:"danger",8:"warning",9:"danger"})[s]||"info",Z=s=>({1:"未付款",2:"待发货",3:"待发货",4:"已发货",5:"待收货",6:"已完成",7:"已取消",8:"退货中",9:"已退款"})[s]||"未知",H=s=>Ce(s).format("YYYY-MM-DD HH:mm:ss"),I=s=>typeof s=="number"?(s/100).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2}):"0.00",_e=async s=>{try{await navigator.clipboard.writeText(s),w.success("运单号已复制到剪贴板")}catch{const g=document.createElement("textarea");g.value=s,document.body.appendChild(g),g.select(),document.execCommand("copy"),document.body.removeChild(g),w.success("运单号已复制到剪贴板")}},me=s=>{if(!s||typeof s!="object")return"";const e=[];for(const[g,_]of Object.entries(s))_&&e.push(`${g}: ${_}`);return e.join(", ")};return ge(()=>{V()}),(s,e)=>{const g=p("el-icon"),_=p("el-button"),C=p("el-input"),m=p("el-form-item"),c=p("el-option"),k=p("el-select"),j=p("el-date-picker"),b=p("el-form"),z=p("el-card"),E=p("el-col"),T=p("el-row"),y=p("el-table-column"),Q=p("el-image"),A=p("el-tag"),W=p("el-table"),fe=p("el-pagination"),h=p("el-descriptions-item"),X=p("el-descriptions"),ee=p("el-dialog"),ve=ye("loading");return i(),S("div",Ie,[t(z,null,{header:a(()=>[n("div",Ae,[e[15]||(e[15]=n("span",null,"订单管理",-1)),t(_,{type:"primary",onClick:ie},{default:a(()=>[t(g,null,{default:a(()=>[t(U(we))]),_:1}),e[14]||(e[14]=r(" 导出订单 ",-1))]),_:1})])]),default:a(()=>[n("div",Ue,[t(b,{model:x,inline:""},{default:a(()=>[t(m,{label:"订单号"},{default:a(()=>[t(C,{modelValue:x.order_no,"onUpdate:modelValue":e[0]||(e[0]=l=>x.order_no=l),placeholder:"请输入订单号",clearable:"",onKeyup:xe(L,["enter"])},null,8,["modelValue"])]),_:1}),t(m,{label:"订单状态"},{default:a(()=>[t(k,{modelValue:x.status,"onUpdate:modelValue":e[1]||(e[1]=l=>x.status=l),placeholder:"请选择状态",clearable:"",style:{width:"200px"}},{default:a(()=>[(i(),f(c,{label:"未付款",value:"1",key:1})),(i(),f(c,{label:"待发货",value:"2,3",key:2})),(i(),f(c,{label:"已发货",value:"4",key:4})),(i(),f(c,{label:"待收货",value:"5",key:5})),(i(),f(c,{label:"已完成",value:"6",key:6})),(i(),f(c,{label:"已取消",value:"7",key:7})),(i(),f(c,{label:"退货中",value:"8",key:8})),(i(),f(c,{label:"已退款",value:"9",key:9}))]),_:1},8,["m
|