game/nginx/admin/assets/snapshot-modal-DiND74kN.js
2026-04-20 16:07:22 +08:00

2 lines
9.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var e=(e,l,a)=>new Promise((s,t)=>{var n=e=>{try{r(a.next(e))}catch(l){t(l)}},o=e=>{try{r(a.throw(e))}catch(l){t(l)}},r=e=>e.done?s(e.value):Promise.resolve(e.value).then(n,o);r((a=a.apply(e,l)).next())});import{c1 as l,d as a,r as s,c as t,A as n,h as o,e as r,w as u,N as d,b as i,i as v,g as c,j as p,v as m,I as _,f,J as h,K as b,b2 as y,E as g,T as j,aV as x}from"./index-BoIUJTA2.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{E as k,a as w}from"./index-DpfIyoxx.js";import{E}from"./index-dBzz0k3i.js";import{E as I}from"./index-C_sVHlWz.js";import{E as $}from"./index-CXD7B41Z.js";import{E as z}from"./index-BaD29Izp.js";import{E as V}from"./index-ZsMdSUVI.js";import{a as C,E as D}from"./index-BcfO0-fK.js";import{E as P}from"./index-CjpBlozU.js";import{_ as q}from"./_plugin-vue_export-helper-BCo6x5W8.js";import"./index-Bq8lawOo.js";import"./castArray-nM8ho4U3.js";import"./_baseClone-Ct7RL6h5.js";import"./_initCloneObject-DRmC-q3t.js";import"./index-COyGylbk.js";import"./use-dialog-FwJ-QdmW.js";import"./refs-Cw5r5QN8.js";const B={class:"snapshot-item"},T={class:"value"},A={class:"snapshot-item"},F={class:"value"},O={class:"snapshot-item"},U={class:"value"},J={class:"snapshot-item"},K={class:"value"},N={class:"snapshot-item"},Q={class:"value"},S={class:"snapshot-item"},X={class:"value"},Y={class:"snapshot-item"},Z={class:"value"},G={class:"snapshot-item"},H={class:"value"},L={key:0,class:"mt-3"},M={key:1,class:"mt-3"},R=q(a({__name:"snapshot-modal",props:{orderId:{},visible:{type:Boolean}},emits:["update:visible","rollback-success"],setup(a,{emit:q}){const R=a,W=q,ee=s(!1),le=s(!1),ae=s(null),se=s(""),te=t({get:()=>R.visible,set:e=>W("update:visible",e)}),ne=()=>e(this,null,function*(){if(R.orderId){ee.value=!0;try{const a=yield(e=R.orderId,l.get({url:`/admin/orders/${e}/snapshots`}));ae.value=a}catch(a){j.error(a.message||"获取快照失败")}finally{ee.value=!1}var e}}),oe=()=>e(this,null,function*(){if(se.value.trim()){try{yield x.confirm("此操作将执行「时间点完整回滚」,包括:\n- 撤销该订单之后的所有订单\n- 撤销资产兑换记录\n- 撤销优惠券/道具卡兑换\n- 恢复积分到目标时间点\n- 触发批量微信退款\n\n❗此操作不可撤销确定要执行吗","☢️ 时间点完整回滚",{confirmButtonText:"确定回滚",cancelButtonText:"取消",type:"warning"})}catch(s){return}le.value=!0;try{const s=yield(e=R.orderId,a={reason:se.value,confirm:!0},l.post({url:`/admin/orders/${e}/rollback`,data:a}));if(s.success){let e=`回滚成功!恢复积分: ${s.points_restored}, 退款: ¥${(s.refund_amount/100).toFixed(2)}`;s.subsequent_orders_count>0&&(e+=`, 撤销后续订单: ${s.subsequent_orders_count}`),s.redemptions_reverted>0&&(e+=`, 撤销兑换: ${s.redemptions_reverted}`),j.success(e),W("rollback-success"),te.value=!1}else j.error(s.error_msg||"回滚失败")}catch(t){j.error(t.message||"回滚失败")}finally{le.value=!1}var e,a}else j.warning("请输入回滚原因")});return n(()=>R.visible,e=>{e&&(ne(),se.value="")}),(e,l)=>{const a=w,s=k,t=E,n=z,j=$,x=V,q=I,R=b,W=D,ne=C,re=g,ue=P,de=y;return r(),o(ue,{modelValue:te.value,"onUpdate:modelValue":l[2]||(l[2]=e=>te.value=e),title:"订单审计快照",width:"900px","close-on-click-modal":!1},{footer:u(()=>{var e,a;return[c(re,{onClick:l[1]||(l[1]=e=>te.value=!1)},{default:u(()=>[...l[14]||(l[14]=[p("关闭",-1)])]),_:1}),(null==(e=ae.value)?void 0:e.has_snapshots)&&2===(null==(a=ae.value.order)?void 0:a.status)?(r(),o(re,{key:0,type:"danger",loading:le.value,onClick:oe},{default:u(()=>[...l[15]||(l[15]=[p(" ☢️ 时间点完整回滚 ",-1)])]),_:1},8,["loading"])):v("",!0)]}),default:u(()=>{var e,b,y;return[d((r(),i("div",null,[(null==(e=ae.value)?void 0:e.order)?(r(),o(s,{key:0,column:4,border:"",size:"small",class:"mb-4"},{default:u(()=>[c(a,{label:"订单号"},{default:u(()=>[p(m(ae.value.order.order_no),1)]),_:1}),c(a,{label:"用户ID"},{default:u(()=>[p(m(ae.value.order.user_id),1)]),_:1}),c(a,{label:"支付金额"},{default:u(()=>{return[p("¥"+m((e=ae.value.order.actual_amount,(e/100).toFixed(2))),1)];var e}),_:1}),c(a,{label:"支付时间"},{default:u(()=>[p(m(ae.value.order.paid_at),1)]),_:1})]),_:1})):v("",!0),ae.value&&!ae.value.has_snapshots?(r(),o(t,{key:1,type:"warning",title:"该订单暂无快照记录",description:"可能是该订单在快照功能上线前创建的","show-icon":"",closable:!1,class:"mb-4"})):v("",!0),(null==(b=ae.value)?void 0:b.has_snapshots)?(r(),i(_,{key:2},[c(q,{gutter:20},{default:u(()=>[c(j,{span:12},{default:u(()=>[c(n,{header:"消费前状态",shadow:"never"},{default:u(()=>{var e,a,s,t,n,o,u;return[ae.value.before_snapshot?(r(),i(_,{key:0},[f("div",B,[l[3]||(l[3]=f("span",{class:"label"},"积分余额:",-1)),f("span",T,m(null!=(a=null==(e=ae.value.before_snapshot.points)?void 0:e.balance)?a:0),1)]),f("div",A,[l[4]||(l[4]=f("span",{class:"label"},"可用优惠券:",-1)),f("span",F,m(null!=(t=null==(s=ae.value.before_snapshot.coupons)?void 0:s.length)?t:0)+"张",1)]),f("div",O,[l[5]||(l[5]=f("span",{class:"label"},"可用道具卡:",-1)),f("span",U,m(null!=(o=null==(n=ae.value.before_snapshot.item_cards)?void 0:n.length)?o:0)+"张",1)]),f("div",J,[l[6]||(l[6]=f("span",{class:"label"},"资产数量:",-1)),f("span",K,m(null!=(u=ae.value.before_snapshot.inventory_count)?u:0)+"件",1)])],64)):v("",!0)]}),_:1})]),_:1}),c(j,{span:12},{default:u(()=>[c(n,{header:"消费后状态",shadow:"never"},{default:u(()=>{var e,a,s,t,n,d,c,h,b,y,g,j,k;return[ae.value.after_snapshot?(r(),i(_,{key:0},[f("div",N,[l[7]||(l[7]=f("span",{class:"label"},"积分余额:",-1)),f("span",Q,m(null!=(a=null==(e=ae.value.after_snapshot.points)?void 0:e.balance)?a:0),1),(null==(s=ae.value.diff)?void 0:s.points_changed)?(r(),o(x,{key:0,size:"small",type:ae.value.diff.points_changed>0?"success":"danger",class:"ml-2"},{default:u(()=>[p(m(ae.value.diff.points_changed>0?"+":"")+m(ae.value.diff.points_changed),1)]),_:1},8,["type"])):v("",!0)]),f("div",S,[l[8]||(l[8]=f("span",{class:"label"},"可用优惠券:",-1)),f("span",X,m(null!=(n=null==(t=ae.value.after_snapshot.coupons)?void 0:t.length)?n:0)+"张",1),(null==(c=null==(d=ae.value.diff)?void 0:d.coupons_used)?void 0:c.length)?(r(),o(x,{key:0,size:"small",type:"danger",class:"ml-2"},{default:u(()=>[p(" -"+m(ae.value.diff.coupons_used.length),1)]),_:1})):v("",!0)]),f("div",Y,[l[9]||(l[9]=f("span",{class:"label"},"可用道具卡:",-1)),f("span",Z,m(null!=(b=null==(h=ae.value.after_snapshot.item_cards)?void 0:h.length)?b:0)+"张",1),(null==(g=null==(y=ae.value.diff)?void 0:y.item_cards_used)?void 0:g.length)?(r(),o(x,{key:0,size:"small",type:"danger",class:"ml-2"},{default:u(()=>[p(" -"+m(ae.value.diff.item_cards_used.length),1)]),_:1})):v("",!0)]),f("div",G,[l[10]||(l[10]=f("span",{class:"label"},"资产数量:",-1)),f("span",H,m(null!=(j=ae.value.after_snapshot.inventory_count)?j:0)+"件",1),(null==(k=ae.value.diff)?void 0:k.inventory_added)?(r(),o(x,{key:0,size:"small",type:"success",class:"ml-2"},{default:u(()=>[p(" +"+m(ae.value.diff.inventory_added),1)]),_:1})):v("",!0)])],64)):v("",!0)]}),_:1})]),_:1})]),_:1}),ae.value.diff?(r(),o(n,{key:0,header:"变更详情",shadow:"never",class:"mt-4"},{default:u(()=>{var e,t;return[c(s,{column:2,border:"",size:"small"},{default:u(()=>[c(a,{label:"积分变化"},{default:u(()=>[p(m(ae.value.diff.points_changed>0?"+":"")+m(ae.value.diff.points_changed),1)]),_:1}),c(a,{label:"资产增加"},{default:u(()=>[p(" +"+m(ae.value.diff.inventory_added)+"件 ",1)]),_:1})]),_:1}),(null==(e=ae.value.diff.coupons_used)?void 0:e.length)?(r(),i("div",L,[l[11]||(l[11]=f("strong",null,"使用的优惠券:",-1)),(r(!0),i(_,null,h(ae.value.diff.coupons_used,e=>(r(),o(x,{key:e.user_coupon_id,class:"ml-2",size:"small"},{default:u(()=>[p(m(e.coupon_name||`券ID:${e.user_coupon_id}`),1)]),_:2},1024))),128))])):v("",!0),(null==(t=ae.value.diff.item_cards_used)?void 0:t.length)?(r(),i("div",M,[l[12]||(l[12]=f("strong",null,"使用的道具卡:",-1)),(r(!0),i(_,null,h(ae.value.diff.item_cards_used,e=>(r(),o(x,{key:e.user_item_card_id,class:"ml-2",size:"small"},{default:u(()=>[p(m(e.card_name||`卡ID:${e.user_item_card_id}`),1)]),_:2},1024))),128))])):v("",!0)]}),_:1})):v("",!0),2===(null==(y=ae.value.order)?void 0:y.status)?(r(),o(n,{key:1,header:"回滚操作",shadow:"never",class:"mt-4"},{default:u(()=>[c(t,{type:"error",title:"⚠️ 完整回滚操作不可撤销","show-icon":"",closable:!1,class:"mb-4"},{default:u(()=>[...l[13]||(l[13]=[f("div",null,"执行回滚后,将撤销该时间点之后的所有变化:",-1),f("ul",{style:{margin:"8px 0 0 16px",padding:"0"}},[f("li",null,"撤销后续订单并退款"),f("li",null,"撤销资产兑换记录"),f("li",null,"撤销优惠券/道具卡兑换"),f("li",null,"恢复积分到目标时间点")],-1)])]),_:1}),c(ne,null,{default:u(()=>[c(W,{label:"回滚原因",required:""},{default:u(()=>[c(R,{modelValue:se.value,"onUpdate:modelValue":l[0]||(l[0]=e=>se.value=e),type:"textarea",rows:3,placeholder:"请输入回滚原因,如:系统异常导致重复扣款..."},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})):v("",!0)],64)):v("",!0)])),[[de,ee.value]])]}),_:1},8,["modelValue"])}}}),[["__scopeId","data-v-7ad048eb"]]);export{R as default};