PageSourceSearch

https://wawawriter.com/app/assets/recovery-20260924-1/WheelManage.C1b5KaJl.js

js wawawriter.com collected 2026-10-09 03:01:24 UTC 27,702 bytes, 1 lines download raw bytes

1var e=Object.defineProperty,l=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable,d=(l,a,t)=>a in l?e(l,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[a]=t,u=(e,u)=>{for(var n in u||(u={}))a.call(u,n)&&d(e,n,u[n]);if(l)for(var n of l(u))t.call(u,n)&&d(e,n,u[n]);return e},n=(e,l,a)=>new Promise((t,d)=>{var u=e=>{try{s(a.next(e))}catch(l){d(l)}},n=e=>{try{s(a.throw(e))}catch(l){d(l)}},s=e=>e.done?t(e.value):Promise.resolve(e.value).then(u,n);s((a=a.apply(e,l)).next())});import{r as s,Y as o,aA as r,aB as i,s as m,f as c,h as p,i as f,W as h,e as w,D as g,B as v,z as y,o as b,G as _,c as V,d as z,al as x,w as I,a as k,ae as U,E as C,y as P}from"./element-plus._oZRy1Ab.js";import{J as D,k as $,V as q,X as F,a4 as M,aa as j,Y as A,W as R,I as S,ay as G,l as N,a9 as O,a8 as T,a7 as W,d as B,r as E,ak as L,aw as J,p as K,a5 as Y}from"./vendor.CbUVwFd3.js";import{qs as X,qt as H,bs as Q,qu as Z,qv as ee,qw as le,qx as ae}from"./index.GSwfaat-.js";import{h as te}from"./learn.Bv3seEAD.js";import"./icons.D1SQEv1E.js";import"./purify.es.CkO3CgFE.js";const de={high_value_payer:"高价值付费用户",unpaid_active:"未付费活跃用户",default:"其他用户(默认)"},ue={draft:"草稿",published:"已发布",disabled:"已停用"},ne={class:"flex justify-between items-center"},se={class:"font-medium"},oe={class:"flex justify-between items-start mb-3"},re={class:"font-medium"},ie={class:"flex items-start gap-2"},me={class:"prize-icon-upload-trigger flex flex-col items-center justify-center"},ce={class:"flex w-full items-center gap-2"},pe={class:"flex w-full items-center gap-2"},fe={class:"flex justify-between items-center"},he={key:0,class:"text-center text-gray-500 py-2 text-sm"},we=Q(D({__name:"WheelFormDialog",props:{modelValue:{type:Boolean},wheel:{}},emits:["update:modelValue","success"],setup(e,{emit:l}){const a=e,t=l,d=B({get:()=>a.modelValue,set:e=>t("update:modelValue",e)}),x=B(()=>!!a.wheel),I=E(),k=E(!1);function U(){return{wheelId:"",name:"",segment:"default",prizes:[P(1)],firstPrizeId:null,secondPrizeId:null,feedRealCount:10,feedMockCount:5,mockFeed:[],sort:0}}const C=L(U());function P(e){return{prizeId:`p${e}`,name:"",icon:null,weight:10,isGrandPrize:!1,reward:{type:"coin",coin:{amount:100,coinType:"TASK_REWARD",validDays:30}}}}function D(){C.prizes.length>=8||C.prizes.push(P(C.prizes.length+1))}function J(e,l,a){e.reward.coupon&&(e.reward.coupon[l]=Math.round(100*(a||0)))}$(()=>a.modelValue,e=>{var l,t;if(e)if(a.wheel){const e=a.wheel;C.wheelId=e.wheelId,C.name=e.name,C.segment=e.segment,C.prizes=(e.prizes||[]).map(e=>{var l,a;return{prizeId:e.prizeId,name:e.name,icon:null!=(l=e.icon)?l:null,weight:e.weight,isGrandPrize:null!=(a=e.isGrandPrize)&&a,reward:JSON.parse(JSON.stringify(e.reward))}}),C.firstPrizeId=null!=(l=e.firstPrizeId)?l:null,C.secondPrizeId=null!=(t=e.secondPrizeId)?t:null,C.feedRealCount=e.feedRealCount,C.feedMockCount=e.feedMockCount,C.mockFeed=(e.mockFeed||[]).map(e=>u({},e)),C.sort=e.sort}else Object.assign(C,U())});const K=E([]),Y=e=>{const l=e.type.startsWith("image/"),a=e.size/1024/1024<2;return l?!!a||(z.error("图片大小不能超过 2MB!"),!1):(z.error("只能上传图片文件!"),!1)},Q=e=>l=>function(e,l){return n(this,null,function*(){K.value.push(l);try{const a=yield te({body:{file:e.file}});200===a.code&&a.data?(C.prizes[l].icon=a.data,z.success("上传成功")):z.error(a.message||"上传失败")}catch(a){z.error("上传失败")}finally{K.value=K.value.filter(e=>e!==l)}})}(l,e);function Z(){C.mockFeed.push({userLabel:"",prizeName:"",minutesAgo:5})}function ee(e,l){const a=e.reward;if("coin"===a.type){if(!a.coin||!a.coin.amount||a.coin.amount<1)return`${l}:蛙币数量必须 ≥ 1`}else if("coupon"===a.type){if(!a.coupon)return`${l}:优惠券配置不完整`;if("full_reduction"===a.coupon.couponType){if(!a.coupon.minimumAmount||!a.coupon.discountAmount)return`${l}:满减券必须配置使用门槛和减免金额`;if(a.coupon.discountAmount>a.coupon.minimumAmount)return`${l}:满减券减免金额不能大于使用门槛`}else if(!a.coupon.discountRate)return`${l}
1:折扣券必须配置折扣率`;if(!a.coupon.validDays||a.coupon.validDays<1)return`${l}:优惠券有效天数必须 ≥ 1`}else if("unlimited_membership_days"===a.type){if(!a.unlimitedMembershipDays||a.unlimitedMembershipDays.days<1)return`${l}:会员天数必须 ≥ 1`}else{if("frog_free_usage"!==a.type)return`${l}:不支持的奖励类型(转盘奖品仅支持蛙币/优惠券/会员天数/智能蛙次数)`;if(!a.frogFreeUsage||a.frogFreeUsage.count<1)return`${l}:免费次数必须 ≥ 1`;if(!a.frogFreeUsage.validDays||a.frogFreeUsage.validDays<1)return`${l}:免费次数有效期天数必须 ≥ 1`}return null}function le(){return C.prizes.map(e=>{var l;return{prizeId:e.prizeId.trim(),name:e.name.trim(),icon:(null==(l=e.icon)?void 0:l.trim())||null,weight:Math.max(1,Math.floor(Number(e.weight)||1)),isGrandPrize:!!e.isGrandPrize,reward:e.reward}})}function ae(){return n(this,null,function*(){const e=function(){var e;if(!C.wheelId.trim())return"请填写转盘 ID";if(!C.name.trim())return"请填写转盘名称";if(!C.segment)return"请选择用户分层";if(8!==C.prizes.length)return`奖品必须恰好配置 8 个,当前 ${C.prizes.length} 个`;if(C.firstPrizeId&&!C.prizes.some(e=>e.prizeId.trim()===C.firstPrizeId))return"首次必中必须选择当前转盘中的奖品";if(C.secondPrizeId&&!C.prizes.some(e=>e.prizeId.trim()===C.secondPrizeId))return"第二次必中必须选择当前转盘中的奖品";const l=new Set;for(const[a,t]of C.prizes.entries()){const d=`奖品 ${a+1}`;if(!t.prizeId.trim())return`${d}:请填写奖品 ID`;if(l.has(t.prizeId.trim()))return`${d}:奖品 ID「${t.prizeId}」重复`;if(l.add(t.prizeId.trim()),!t.name.trim())return`${d}:请填写奖品名称`;if(!(null==(e=t.icon)?void 0:e.trim()))return`${d}:请上传奖品图标`;if(!t.weight||t.weight<1)return`${d}:权重必须 ≥ 1`;const u=ee(t,d);if(u)return u}for(const[a,t]of C.mockFeed.entries()){if(!t.userLabel.trim())return`mock 条目 ${a+1}:请填写用户标识`;if(!t.prizeName.trim())return`mock 条目 ${a+1}:请填写奖品名称`}return null}();if(e)z.error(e);else{k.value=!0;try{x.value&&a.wheel?(yield X(a.wheel.wheelId,{name:C.name.trim(),prizes:le(),firstPrizeId:C.firstPrizeId||null,secondPrizeId:C.secondPrizeId||null,feedRealCount:C.feedRealCount,feedMockCount:C.feedMockCount,mockFeed:C.mockFeed,sort:C.sort}),z.success("保存成功")):(yield H({wheelId:C.wheelId.trim(),name:C.name.trim(),segment:C.segment,status:"draft",prizes:le(),firstPrizeId:C.firstPrizeId||null,secondPrizeId:C.secondPrizeId||null,feedRealCount:C.feedRealCount,feedMockCount:C.feedMockCount,mockFeed:C.mockFeed,sort:C.sort}),z.success("创建成功,发布后对用户生效")),t("success"),ue()}catch(l){z.error((null==l?void 0:l.message)||(x.value?"保存失败":"创建失败"))}finally{k.value=!1}}})}function ue(){d.value=!1}return(e,l)=>{const a=c,t=m,u=i,n=f,z=p,U=h,P=r,$=o,B=w,E=g,L=v,X=y,H=b,ee=s,le=V;return q(),F(le,{modelValue:d.value,"onUpdate:modelValue":l[8]||(l[8]=e=>d.value=e),title:x.value?"编辑转盘":"新建转盘",width:"1100px","close-on-click-modal":!1,onClose:ue},{footer:M(()=>[j(B,{onClick:ue},{default:M(()=>[...l[27]||(l[27]=[T(" 取消 ",-1)])]),_:1}),j(B,{type:"primary",loading:k.value,onClick:ae},{default:M(()=>[T(O(x.value?"保存":"创建"),1)]),_:1},8,["loading"])]),default:M(()=>[j(ee,{ref_key:"formRef",ref:I,model:C,"label-width":"110px"},{default:M(()=>[j($,{shadow:"never",class:"mb-4"},{header:M(()=>[...l[9]||(l[9]=[A("span",{class:"font-medium"},"基础信息",-1)])]),default:M(()=>[j(P,{gutter:16},{default:M(()=>[j(u,{span:12},{default:M(()=>[j(t,{label:"转盘 ID",required:""},{default:M(()=>[j(a,{modelValue:C.wheelId,"onUpdate:modelValue":l[0]||(l[0]=e=>C.wheelId=e),disabled:x.value,placeholder:"唯一标识,如 wheel_default_v1"},null,8,["modelValue","disabled"]),l[10]||(l[10]=A("div",{class:"text-xs text-gray-500 mt-1"}," 创建后不可修改 ",-1))]),_:1})]),_:1}),j(u,{span:12},{default:M(()=>[j(t,{label:"转盘名称",required:""},{default:M(()=>[j(a,{modelValue:C.name,"onUpdate:modelValue":l[1]||(l[1]=e=>C.name=e),placeholder:"展示名称"},null,8,["modelValue"])]),_:1})]),_:1}),j(u,{span:12},{default:M(()=>[j(t,{label:"用户分层",required:""},{default:M(()=>[j(z,{modelValue:C.segment,"onUpdate:modelValue":l[2]||(l[2]=e=>C.segment=e),disabled:x.value,class:"w-full"},{default:M(()=>[(q(!0),R(S,null,G(N(de),(e,l)=>(q(),F(n,{key:l,label:e,value:l},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"]),l[11]||(l[11]=A("div",{class:"text-xs text-gray-500 mt-1"}," 每个分层最多一个「已发布」转盘 ",-1))]),_:1})]),_:1}),j(u,{span:12},{default:M(()=>[j(t,{label:"排序"},{default:M(()=>[j(U,{modelValue:C.sort,"onUpdate:modelValue":l[3]||(l[3]=e=>C.sort=e),min:0,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),j(u,{span:12},{default:M(()=>[j(t,{label:"首次必中"},{default:M(()=>[j(z,{modelValue:C.firstPrizeId,"onUpdate:modelValue":l[4]||(l[4]=e=>C.firstPrizeId=e),clearable:"",class:"w-full",placeholder:"不设置,首次也按权重随机"},{default:M(()=>[(q(!0),R(S,null,G(C.prizes,e=>(q(),F(n,{key:e.prizeId,label:`${e.name||"未命名奖品"}(${e.prizeId||"未填写 ID"})`,value:e.prizeId,disabled:!e.prizeId.trim()},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue"]),l[12]||(l[12]=A("div",{class:"text-xs text-gray-500 mt-1"}," 每位用户第一次抽取此转盘配置时必得该奖品;按 wheelId 独立计算 ",-1))]),_:1})]),_:1}),j(u,{span:12},{default:M(()=>[j(t,{label:"第二次必中"},{default:M(()=>[j(z,{modelValue:C.secondPrizeId,"onUpdate:modelValue":l[5]||(l[5]=e=>C.secondPrizeId=e),clearable:"",class:"w-full",placeholder:"不设置,第二次也按权重随机"},{default:M(()=>[(q(!0),R(S,null,G(C.prizes,e=>(q(),F(n,{key:e.prizeId,label:`${e.name||"未命名奖品"}(${e.prizeId||"未填写 ID"})`,value:e.prizeId,disabled:!e.prizeId.trim()},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue"]),l[13]||(l[13]=A("div",{class:"text-xs text-gray-500 mt-1"}," 每位用户第二次抽取此转盘配置时必得该奖品;按 wheelId 独立计算,可与首次必中不同 ",-1))]),_:1})]),_:1})]),_:1})]),_:1}),j($,{shadow:"never",class:"mb-4"},{header:M(()=>[A("div",ne,[A("span",se,"奖品配置(必须恰好 8 个,当前 "+O(C.prizes.length)+" 个)",1),A("div",null,[j(B,{size:"small",disabled:C.prizes.length>=8,onClick:D},{default:M(()=>[...l[14]||(l[14]=[T(" 添加奖品 ",-1)])]),_:1},8,["disabled"])])])]),default:M(()=>[(q(!0),R(S,null,G(C.prizes,(e,d)=>(q(),R("div",{key:d,class:"mb-4 p-4 border rounded"},[A("div",oe,[A("span",re,"奖品 "+O(d+1),1),j(B,{size:"small",type:"danger",disabled:C.prizes.length<=1,onClick:e=>function(e){C.prizes.splice(e,1)}(d)},{default:M(()=>[...l[15]||(l[15]=[T(" 删除 ",-1)])]),_:1},8,["disabled","onClick"])]),j(P,{gutter:16},{default:M(()=>[j(u,{span:8},{default:M(()=>[j(t,{label:"奖品 ID",required:""},{default:M(()=>[j(a,{modelValue:e.prizeId,"onUpdate:modelValue":l=>e.prizeId=l,placeholder:"组内唯一"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024),j(u,{span:8},{default:M(()=>[j(t,{label:"奖品名称",required:""},{default:M(()=>[j(a,{modelValue:e.name,"onUpdate:modelValue":l=>
1e.name=l,placeholder:"如:100蛙币"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024),j(u,{span:8},{default:M(()=>[j(t,{label:"权重",required:""},{default:M(()=>[j(U,{modelValue:e.weight,"onUpdate:modelValue":l=>e.weight=l,min:1,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024),j(u,{span:8},{default:M(()=>[j(t,{label:"大奖标记"},{default:M(()=>[j(E,{modelValue:e.isGrandPrize,"onUpdate:modelValue":l=>e.isGrandPrize=l},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024),j(u,{span:8},{default:M(()=>[j(t,{label:"奖品图标",required:""},{default:M(()=>[A("div",ie,[e.icon?(q(),R(S,{key:0},[j(L,{src:e.icon,"preview-src-list":[e.icon],fit:"cover",class:"prize-icon-preview","preview-teleported":!0},null,8,["src","preview-src-list"]),j(X,{"show-file-list":!1,"before-upload":Y,"http-request":Q(d),accept:"image/png,image/jpeg,image/jpg"},{default:M(()=>[j(B,{size:"small",type:"primary",loading:K.value.includes(d)},{default:M(()=>[...l[16]||(l[16]=[T(" 修改图标 ",-1)])]),_:1},8,["loading"])]),_:2},1032,["http-request"])],64)):(q(),F(X,{key:1,"show-file-list":!1,"before-upload":Y,"http-request":Q(d),accept:"image/png,image/jpeg,image/jpg"},{default:M(()=>[A("div",me,[j(H,null,{default:M(()=>[j(N(_))]),_:1}),l[17]||(l[17]=A("div",{class:"text-xs text-gray-500 mt-1"}," 上传图标 ",-1))])]),_:1},8,["http-request"]))]),l[18]||(l[18]=A("div",{class:"text-xs text-gray-500 mt-1"}," 必传,用于 C 端转盘奖品展示,png/jpg 且 ≤2MB ",-1))]),_:2},1024)]),_:2},1024),j(u,{span:8},{default:M(()=>[j(t,{label:"奖励类型",required:""},{default:M(()=>[j(z,{"model-value":e.reward.type,class:"w-full","onUpdate:modelValue":l=>function(e,l){const a={type:l};"coin"===l?a.coin={amount:100,coinType:"TASK_REWARD",validDays:30}:"coupon"===l?a.coupon={couponType:"discount",discountRate:.9,minimumAmount:null,discountAmount:null,validDays:7,applicableScopes:null}:"unlimited_membership_days"===l?a.unlimitedMembershipDays={days:1}:"frog_free_usage"===l&&(a.frogFreeUsage={count:3,validDays:7}),e.reward=a}(e,l)},{default:M(()=>[j(n,{label:"蛙币",value:"coin"}),j(n,{label:"优惠券",value:"coupon"}),j(n,{label:"无限会员天数",value:"unlimited_membership_days"}),j(n,{label:"智能蛙免费次数",value:"frog_free_usage"})]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024),"coin"===e.reward.type&&e.reward.coin?(q(),R(S,{key:0},[j(u,{span:8},{default:M(()=>[j(t,{label:"蛙币数量",required:""},{default:M(()=>[j(U,{modelValue:e.reward.coin.amount,"onUpdate:modelValue":l=>e.reward.coin.amount=l,min:1,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024),j(u,{span:8},{default:M(()=>[j(t,{label:"有效期天数"},{default:M(()=>[j(U,{modelValue:e.reward.coin.validDays,"onUpdate:modelValue":l=>e.reward.coin.validDays=l,min:1,max:365,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024)],64)):W("",!0),"coupon"===e.reward.type&&e.reward.coupon?(q(),R(S,{key:1},[j(u,{span:8},{default:M(()=>[j(t,{label:"优惠券类型",required:""},{default:M(()=>[j(z,{modelValue:e.reward.coupon.couponType,"onUpdate:modelValue":l=>e.reward.coupon.couponType=l,class:"w-full"},{default:M(()=>[j(n,{label:"折扣券",value:"discount"}),j(n,{label:"满减券",value:"full_reduction"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024),"full_reduction"!==e.reward.coupon.couponType?(q(),F(u,{key:0,span:8},{default:M(()=>[j(t,{label:"折扣率",required:""},{default:M(()=>[j(U,{modelValue:e.reward.coupon.discountRate,"onUpdate:modelValue":l=>e.reward.coupon.discountRate=l,min:.1,max:.99,step:.05,precision:2,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024)):(q(),R(S,{key:1},[j(u,{span:8},{default:M(()=>[j(t,{label:"使用门槛",required:""},{default:M(()=>[A("div",ce,[j(U,{"model-value":(e.reward.coupon.minimumAmount||0)/100,min:.01,precision:2,class:"min-w-0 flex-1","onUpdate:modelValue":l=>J(e,"minimumAmount",l)},null,8,["model-value","onUpdate:modelValue"]),l[19]||(l[19]=A("span",{class:"shrink-0"},"元",-1))])]),_:2},1024)]),_:2},1024),j(u,{span:8},{default:M(()=>[j(t,{label:"减免金额",required:""},{default:M(()=>[A("div",pe,[j(U,{"model-value":(e.reward.coupon.discountAmount||0)/100,min:.01,precision:2,class:"min-w-0 flex-1","onUpdate:modelValue":l=>J(e,"discountAmount",l)},null,8,["model-value","onUpdate:modelValue"]),l[20]||(l[20]=A("span",{class:"shrink-0"},"元",-1))])]),_:2},1024)]),_:2},1024)],64)),j(u,{span:8},{default:M(()=>[j(t,{label:"有效天数",required:""},{default:M(()=>[j(U,{modelValue:e.reward.coupon.validDays,"onUpdate:modelValue":l=>
1e.reward.coupon.validDays=l,min:1,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024)],64)):W("",!0),"unlimited_membership_days"===e.reward.type&&e.reward.unlimitedMembershipDays?(q(),F(u,{key:2,span:8},{default:M(()=>[j(t,{label:"天数",required:""},{default:M(()=>[j(U,{modelValue:e.reward.unlimitedMembershipDays.days,"onUpdate:modelValue":l=>e.reward.unlimitedMembershipDays.days=l,min:1,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024)):W("",!0),"frog_free_usage"===e.reward.type&&e.reward.frogFreeUsage?(q(),R(S,{key:3},[j(u,{span:8},{default:M(()=>[j(t,{label:"免费次数",required:""},{default:M(()=>[j(U,{modelValue:e.reward.frogFreeUsage.count,"onUpdate:modelValue":l=>e.reward.frogFreeUsage.count=l,min:1,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024),j(u,{span:8},{default:M(()=>[j(t,{label:"有效期天数",required:""},{default:M(()=>[j(U,{modelValue:e.reward.frogFreeUsage.validDays,"onUpdate:modelValue":l=>e.reward.frogFreeUsage.validDays=l,min:1,max:365,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024)],64)):W("",!0)]),_:2},1024)]))),128))]),_:1}),j($,{shadow:"never",class:"mb-4"},{header:M(()=>[A("div",fe,[l[22]||(l[22]=A("span",{class:"font-medium"},"中奖播报配置",-1)),j(B,{size:"small",onClick:Z},{default:M(()=>[...l[21]||(l[21]=[T(" 添加 mock 条目 ",-1)])]),_:1})])]),default:M(()=>[j(P,{gutter:16},{default:M(()=>[j(u,{span:12},{default:M(()=>[j(t,{label:"真实记录条数"},{default:M(()=>[j(U,{modelValue:C.feedRealCount,"onUpdate:modelValue":l[6]||(l[6]=e=>C.feedRealCount=e),min:0,max:100,class:"w-full"},null,8,["modelValue"]),l[23]||(l[23]=A("div",{class:"text-xs text-gray-500 mt-1"}," 全站最近真实中奖记录展示条数 ",-1))]),_:1})]),_:1}),j(u,{span:12},{default:M(()=>[j(t,{label:"mock 条数"},{default:M(()=>[j(U,{modelValue:C.feedMockCount,"onUpdate:modelValue":l[7]||(l[7]=e=>C.feedMockCount=e),min:0,max:100,class:"w-full"},null,8,["modelValue"]),l[24]||(l[24]=A("div",{class:"text-xs text-gray-500 mt-1"}," 从下方 mock 列表中取前 N 条,与真实记录按时间穿插混合 ",-1))]),_:1})]),_:1})]),_:1}),0===C.mockFeed.length?(q(),R("div",he," 暂无 mock 条目 ")):W("",!0),(q(!0),R(S,null,G(C.mockFeed,(e,t)=>(q(),R("div",{key:t,class:"mb-2 p-3 border rounded flex items-center gap-3"},[j(a,{modelValue:e.userLabel,"onUpdate:modelValue":l=>e.userLabel=l,placeholder:"用户标识(已脱敏),如 王***",class:"flex-1"},null,8,["modelValue","onUpdate:modelValue"]),j(a,{modelValue:e.prizeName,"onUpdate:modelValue":l=>e.prizeName=l,placeholder:"奖品名称",class:"flex-1"},null,8,["modelValue","onUpdate:modelValue"]),j(U,{modelValue:e.minutesAgo,"onUpdate:modelValue":l=>e.minutesAgo=l,min:0,placeholder:"分钟前",class:"w-32"},null,8,["modelValue","onUpdate:modelValue"]),l[26]||(l[26]=A("span",{class:"text-sm text-gray-500 shrink-0"},"分钟前",-1)),j(B,{size:"small",type:"danger",onClick:e=>function(e){C.mockFeed.splice(e,1)}(t)},{default:M(()=>[...l[25]||(l[25]=[T(" 删除 ",-1)])]),_:1},8,["onClick"])]))),128))]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])}}}),[["__scopeId","data-v-e334fbac"]]),ge=D({__name:"WheelCopyDialog",props:{modelValue:{type:Boolean},wheel:{}},emits:["update:modelValue","success"],setup(e,{emit:l}){const a=e,t=l,d=E(!1),o=L({wheelId:"",segment:""}),r=B({get:()=>a.modelValue,set:e=>t("update:modelValue",e)});function i(){return n(this,null,function*(){if(a.wheel&&!d.value){d.value=!0;try{const e=yield Z(a.wheel.wheelId,u(u({},o.wheelId.trim()?{wheelId:o.wheelId.trim()}:{}),o.segment?{segment:o.segment}:{}));if(200!==e.code)throw new Error(e.message||"复制转盘失败");z.success("副本已创建为草稿"),t("success",e.data),r.value=!1}catch(e){z.error(e instanceof Error?e.message:"复制转盘失败")}finally{d.value=!1}}})}return $(()=>[a.modelValue,a.wheel],([e,l])=>{e&&l&&(o.wheelId="",o.segment="")},{immediate:!0}),(l,a)=>{const t=x,u=c,n=m,h=f,g=p,v=s,y=w,b=V;return q(),F(b,{modelValue:r.value,"onUpdate:modelValue":a[3]||(a[3]=e=>r.value=e),title:"复制转盘配置",width:"520px","close-on-click-modal":!1,"destroy-on-close":""},{footer:M(()=>[j(y,{onClick:a[2]||(a[2]=e=>r.value=!1)},{default:M(()=>[...a[6]||(a[6]=[T(" 取消 ",-1)])]),_:1}),j(y,{type:"primary",loading:d.value,onClick:i},{default:M(()=>[...a[7]||(a[7]=[T(" 创建副本 ",-1)])]),_:1},8,["loading"])]),default:M(()=>[j(t,{type:"info",closable:!1,"show-icon":"",class:"mb-5"},{default:M(()=>{var l;return[T(" 将完整复制「"+O(null==(l=e.wheel)?void 0:l.name)+"」的奖品、图片、权重和播报配置。副本固定以草稿创建,不会影响线上转盘。 ",1)]}),_:1}),j(v,{"label-width":"100px",onSubmit:J(i,["prevent"])},{default:M(()=>[j(n,{label:"新转盘 ID"},{default:M(()=>[j(u,{modelValue:o.wheelId,"onUpdate:modelValue":a[0]||(a[0]=e=>o.wheelId=e),placeholder:"留空则由系统自动生成",maxlength:"120"},null,8,["modelValue"]),a[4]||(a[4]=A("div",{class:"mt-1 text-xs text-gray-500"}," 创建后不可修改;留空将生成带随机后缀的 ID。 ",-1))]),_:1}),j(n,{label:"用户分层"},{default:M(()=>[j(g,{modelValue:o.segment,"onUpdate:modelValue":a[1]||(a[1]=e=>o.segment=e),clearable:"",placeholder:"留空则沿用源转盘",class:"w-full"},{default:M(()=>[(q(!0),R(S,null,G(N(de),(e,l)=>(q(),F(h,{key:l,label:e,value:l},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),a[5]||(a[5]=A("div",{class:"mt-1 text-xs text-gray-500"}," 创建后不可修改;发布时仍会校验同分层只能有一个线上转盘。 ",-1))]),_:1})]),_:1})]),_:1},8,["modelValue"])}}}),ve={class:"w-full h-full flex flex-col"},ye={class:"bg-white rounded-lg shadow-sm border p-4 mb-4"},be={class:"flex flex-wrap items-center gap-4"},_e={class:"flex flex-1 items-center gap-2"},Ve={class:"flex flex-1 items-center gap-2"},ze={class:"bg-white rounded-lg shadow-sm border flex-1 flex flex-col"},xe={class:"text-xs leading-5"},Ie={key:1},ke={key:0,class:"text-gray-400"},Ue={class:"text-xs"},Ce={class:"text-xs leading-5"},Pe={class:"text-xs"},De=D({__name:"WheelManage",setup(e){const l=E(!1),a=E([]),t=E({}),d=E(!1),u=E(null),s=E(!1),o=E(null);function r(e,l){var a,t;return l?(null==(t=null==(a=e.prizes)?void 0:a.find(e=>e.prizeId===l))?void 0:t.name)||l:"未设置"}function i(){return n(this,null,function*(){l.value=!0;try{const e={};t.value.segment&&(e.segment=t.value.segment),t.value.status&&(e.status=t.value.status);const l=yield ee(e);200===l.code&&l.data&&(a.value=l.data)}catch(e){z.error((null==e?void 0:e.message)||"加载转盘列表失败")}finally{l.value=!1}})}function m(){u.value=null,d.value=!0}function c(e){u.value=e,d.value=!0}function h(e){return n(this,null,function*(){yield i();const l=a.value.find(l=>l.wheelId===e.wheelId);l&&c(l)})}return K(i),(e,g)=>{const v=f,y=p,V=b,x=w,D=k,$=U,B=C,E=I;return q(),R("div",ve,[g[12]||(g[12]=A("div",{class:"mb-4"},[A("h1",{class:"text-xl font-semibold text-gray-900"}," 转盘管理 "),A("p",{class:"text-sm text-gray-600 mt-1"}," 新每日任务中心转盘抽奖配置:按用户分层各一组转盘,每组固定 8 个奖品,消耗 4 碎片抽一次 ")],-1)),A("div",ye,[A("div",be,[A("div",_e,[g[4]||(g[4]=A("label",{class:"flex-shrink-0 text-sm font-medium text-gray-700"},"用户分层:",-1)),j(y,{modelValue:t.value.segment,"onUpdate:modelValue":g[0]||(g[0]=e=>t.value.segment=e),placeholder:"全部分层",clearable:"",onChange:i},{default:M(()=>[(q(!0),R(S,null,G(N(de),(e,l)=>(q(),F(v,{key:l,label:e,value:l},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),A("div",Ve,[g[5]||(g[5]=A("label",{class:"flex-shrink-0 text-sm font-medium text-gray-700"},"状态:",-1)),j(y,{modelValue:t.value.status,"onUpdate:modelValue":g[1]||(g[1]=e=>t.value.status=e),placeholder:"全部状态",clearable:"",onChange:i},{default:M(()=>[(q(!0),R(S,null,G(N(ue),(e,l)=>(q(),F(v,{key:l,label:e,value:l},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),j(x,{type:"primary",onClick:m},{default:M(()=>[j(V,null,{default:M(()=>[j(N(_))]),_:1}),g[6]||(g[6]=T(" 新建转盘 ",-1))]),_:1})])]),A("div",ze,[Y((q(),F(B,{data:a.value,class:"flex-1"},{default:M(()=>[j(D,{prop:"wheelId",label:"转盘 ID","min-width":"160"}),j(D,{prop:"name",label:"名称","min-width":"120"}),j(D,{label:"用户分层",width:"150"},{default:M(({row:e})=>[j($,null,{default:M(()=>[T(O(N(de)[e.segment]||e.segment),1)]),_:2},1024)]),_:1}),j(D,{label:"状态",width:"100"},{default:M(({row:e})=>{return[j($,{type:(l=e.status,"published"===l?"success":"disabled"===l?"info":"warning")},{default:M(()=>[T(O(N(ue)[e.status]||e.status),1)]),_:2},1032,["type"])];var l}),_:1}),j(D,{label:"奖品","min-width":"220"},{default:M(({row:e})=>[A("div",xe,[(q(!0),R(S,null,G((e.prizes||[]).slice(0,4),(l,a)=>(q(),R("span",{key:l.prizeId,class:"inline-block mr-2"},[T(O(l.name)+"("+O(l.weight)+")",1),l.isGrandPrize?(q(),F($,{key:0,size:"small",type:"danger",class:"ml-1"},{default:M(()=>[...g[7]||(g[7]=[T("大奖",-1)])]),_:1})):W("",!0),a<Math.min((e.prizes||[]).length,4)-1?(q(),R("span",Ie,"、")):W("",!0)]))),128)),(e.prizes||[]).length>4?(q(),R("span",ke," 等 "+O((e.prizes||[]).length)+" 个 ",1)):W("",!0)])]),_:1}),j(D,{label:"播报配置",width:"130"},{default:M(({row:e})=>[A("span",Ue,"真实 "+O(e.feedRealCount)+" 条 + mock "+O(e.feedMockCount)+" 条",1)]),_:1}),j(D,{label:"必中配置",width:"150"},{default:M(({row:e})=>[A("div",Ce,[A("div",null,"首抽:"+O(r(e,e.firstPrizeId)),1),A("div",null,"二抽:"+O(r(e,e.secondPrizeId)),1)])]),_:1}),j(D,{prop:"sort",label:"排序",width:"70"}),j(D,{label:"更新时间",width:"165"},{default:M(({row:e})=>
1{return[A("span",Pe,O((l=e.updatedAt,l?new Date(l).toLocaleString("zh-CN",{hour12:!1}):"-")),1)];var l}),_:1}),j(D,{label:"操作",width:"290",fixed:"right"},{default:M(({row:e})=>[j(x,{size:"small",onClick:l=>c(e)},{default:M(()=>[...g[8]||(g[8]=[T(" 编辑 ",-1)])]),_:1},8,["onClick"]),j(x,{size:"small",onClick:l=>function(e){o.value=e,s.value=!0}(e)},{default:M(()=>[...g[9]||(g[9]=[T(" 复制 ",-1)])]),_:1},8,["onClick"]),"published"!==e.status?(q(),F(x,{key:0,size:"small",type:"success",onClick:l=>function(e){return n(this,null,function*(){try{yield P.confirm(`发布后「${de[e.segment]}」分层用户将看到该转盘,确认发布「${e.name}」?`,"发布确认",{type:"warning"})}catch(l){return}try{yield le(e.wheelId),z.success("发布成功"),i()}catch(l){z.error((null==l?void 0:l.message)||"发布失败")}})}(e)},{default:M(()=>[...g[10]||(g[10]=[T(" 发布 ",-1)])]),_:1},8,["onClick"])):W("",!0),"published"===e.status?(q(),F(x,{key:1,size:"small",type:"warning",onClick:l=>function(e){return n(this,null,function*(){try{yield P.confirm(`停用后该分层用户将无法看到转盘(若有 default 转盘则回退展示),确认停用「${e.name}」?`,"停用确认",{type:"warning"})}catch(l){return}try{yield ae(e.wheelId),z.success("已停用"),i()}catch(l){z.error((null==l?void 0:l.message)||"停用失败")}})}(e)},{default:M(()=>[...g[11]||(g[11]=[T(" 停用 ",-1)])]),_:1},8,["onClick"])):W("",!0)]),_:1})]),_:1},8,["data"])),[[E,l.value]])]),j(we,{modelValue:d.value,"onUpdate:modelValue":g[2]||(g[2]=e=>d.value=e),wheel:u.value,onSuccess:i},null,8,["modelValue","wheel"]),j(ge,{modelValue:s.value,"onUpdate:modelValue":g[3]||(g[3]=e=>s.value=e),wheel:o.value,onSuccess:h},null,8,["modelValue","wheel"])])}}});export{De as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.