bindbox-game/build/resources/admin/assets/EffectEditDialog-CKoMjh_c.js
邹方成 2a89a1ab9d
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
feat(admin): 更新前端资源文件及修复相关功能
refactor(service): 修改banner和guild删除逻辑为软删除
fix(service): 修复删除操作使用软删除而非物理删除

build: 添加SQLite测试仓库实现
docs: 新增奖励管理字段拆分和批量抽奖UI改造文档

ci: 更新CI忽略文件
style: 清理无用资源文件
2025-11-19 01:35:55 +08:00

2 lines
13 KiB
JavaScript
Raw 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=Object.defineProperty,a=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable,s=(a,l,t)=>l in a?e(a,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[l]=t,r=(e,r)=>{for(var o in r||(r={}))l.call(r,o)&&s(e,o,r[o]);if(a)for(var o of a(r))t.call(r,o)&&s(e,o,r[o]);return e},o=(e,a,l)=>new Promise((t,s)=>{var r=e=>{try{u(l.next(e))}catch(a){s(a)}},o=e=>{try{u(l.throw(e))}catch(a){s(a)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,o);u((l=l.apply(e,a)).next())});import{d as u,a as i,r as p,c as d,w as m,y as n,f as _,z as c,p as f,e as y,k as v,F as b,l as V,G as x,h as g,m as j,O as h}from"./index-CZ0Lvzl5.js";/* empty css *//* empty css *//* empty css *//* empty css */import{E as k}from"./el-divider--3NMYJzN.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{titlesApi as U}from"./titles-BnzYQ5A4.js";import{f as q}from"./activity-B4-0dphm.js";import{l as w}from"./adminActivities-BFodRb8S.js";import{E}from"./index-DO8sDDAh.js";import{E as z,a as O}from"./index-DhBIlDpg.js";import{E as A,a as I}from"./index-pVAXVlCV.js";import{E as D}from"./index-BiRLqYIK.js";import{E as N}from"./index-6-f3xsy2.js";import{a as S,b as P}from"./index-_aFOeltJ.js";import{E as C}from"./index-CWBrZtwn.js";import{_ as J}from"./_plugin-vue_export-helper-BCo6x5W8.js";import"./index-CgoUqbdT.js";import"./vnode-C4RX5enz.js";import"./index-BW22oPP6.js";import"./scroll-bFiZhqzI.js";import"./index-K2zzami3.js";import"./use-dialog-BDM4AbF-.js";import"./use-form-item-BsnpemL_.js";import"./use-form-common-props-U6f9D53_.js";import"./index-DaNWXg3-.js";import"./refs-Cw5r5QN8.js";import"./index-MV2EqMi7.js";import"./index-DH_vX4BK.js";import"./_initCloneObject-DfOnBHdn.js";import"./index-C6fEXl-e.js";import"./index-BierC7rd.js";import"./index-BQ-mpgoy.js";import"./token-DWNpOE8r.js";import"./debounce-BWBxuUbE.js";import"./_baseIteratee-iUx42eT-.js";import"./index-ZgXgJNHL.js";import"./index-BlgPu7T-.js";const T=J(u({__name:"EffectEditDialog",props:{visible:{type:Boolean},title:{},effect:{},occupiedTypes:{}},emits:["update:visible","success"],setup(e,{emit:a}){const l=e,t=a,s=i(),u=i(!1);i([{id:1,name:"满100减10优惠券"},{id:2,name:"新用户专享券"},{id:3,name:"满200减30优惠券"},{id:4,name:"免运费券"}]);const J=i(""),T=i([]),B=i([]),F=i([]),G=i([]),K=i([]),H=p({effect_type:1,params:{},stacking_strategy:1,cap_value_x1000:0,sort:0,status:1}),L={effect_type:[{required:!0,message:"请选择效果类型",trigger:"change"}],stacking_strategy:[{required:!0,message:"请选择叠加策略",trigger:"change"}],sort:[{required:!0,message:"请输入排序值",trigger:"blur"}],status:[{required:!0,message:"请选择状态",trigger:"change"}]},M=d({get:()=>l.visible,set:e=>t("update:visible",e)});function R(){H.params=Y(H.effect_type)}function X(e){return e.split(",").map(e=>e.trim()).filter(e=>e.length>0).map(e=>Number(e)).filter(e=>!Number.isNaN(e))}function Y(e){switch(e){case 1:return{template_id:0,frequency:{period:"day",times:1}};case 2:return{discount_type:"percentage",value_x1000:100,max_discount_x1000:0};case 3:return{multiplier_x1000:2e3,daily_cap_points:0};case 4:return{template_id:0,frequency:{period:"week",times:1}};case 5:return{target_prize_ids:[],boost_x1000:100,cap_x1000:0};case 6:return{target_prize_ids:[],chance_x1000:200,period_cap_times:1};default:return{}}}function Q(e){try{return JSON.parse(e||"{}")}catch(a){return{}}}function W(){return o(this,null,function*(){if(s.value)try{yield s.value.validate();const e=l.occupiedTypes||[];if((!l.effect||l.effect.effect_type!==H.effect_type)&&e.includes(H.effect_type))return void h.error("该效果类型已存在");u.value=!0;const a={effect_type:H.effect_type,params_json:JSON.stringify(r(r(r({},H.params),5===H.effect_type&&{target_prize_ids:X(J.value)}),6===H.effect_type&&{target_prize_ids:X(J.value)})),stacking_strategy:H.stacking_strategy,cap_value_x1000:H.cap_value_x1000,sort:H.sort,status:H.status,scopes_json:JSON.stringify({activity_ids:T.value,issue_ids:B.value,exclude:{issue_ids:F.value}})};l.effect?(yield U.updateTitleEffect(l.title.id,l.effect.id,a),h.success("修改成功")):(yield U.createTitleEffect(l.title.id,a),h.success("添加成功")),M.value=!1,t("success")}catch(e){!1!==e&&h.error(e.message||"操作失败")}finally{u.value=!1}})}return m(()=>l.effect,e=>{if(e)if(H.effect_type=e.effect_type,H.params=Q(e.params_json)||Y(e.effect_type),H.stacking_strategy=e.stacking_strategy,H.cap_value_x1000=e.cap_value_x1000,H.sort=e.sort,H.status=e.status,H.params&&Array.isArray(H.params.target_prize_ids)?J.value=String(H.params.target_prize_ids.join(",")):J.value="",e.scopes_json){const a=Q(e.scopes_json);T.value=Array.isArray(a.activity_ids)?a.activity_ids:[],B.value=Array.isArray(a.issue_ids)?a.issue_ids:[],F.value=a.exclude&&Array.isArray(a.exclude.issue_ids)?a.exclude.issue_ids:[]}else T.value=[],B.value=[],F.value=[];else H.effect_type=1,H.params=Y(1),H.stacking_strategy=1,H.cap_value_x1000=0,H.sort=0,H.status=1,J.value="",T.value=[],B.value=[],F.value=[]},{immediate:!0}),m(T,()=>{!function(){o(this,null,function*(){const e=[],a=new Set;for(const l of T.value){const t=(yield w(l,1,200)).list||[];for(const l of t)a.has(l.id)||(a.add(l.id),e.push({id:l.id,issue_number:l.issue_number}))}K.value=e})}()}),function(){o(this,null,function*(){const e=yield q({page:1,page_size:100});G.value=e.records.map(e=>({id:e.id,name:e.name}))})}(),(a,l)=>{const t=I,r=A,o=O,i=D,p=N,d=P,m=S,h=k,U=z,q=C,w=E;return _(),n(w,{title:e.effect?"编辑效果":"添加效果",modelValue:M.value,"onUpdate:modelValue":l[26]||(l[26]=e=>M.value=e),width:"700px","close-on-click-modal":!1},{footer:c(()=>[f(q,{onClick:l[25]||(l[25]=e=>M.value=!1)},{default:c(()=>[...l[34]||(l[34]=[V("取 消",-1)])]),_:1}),f(q,{type:"primary",onClick:W,loading:u.value},{default:c(()=>[V(j(e.effect?"保 存":"添 加"),1)]),_:1},8,["loading"])]),default:c(()=>[f(U,{ref_key:"formRef",ref:s,model:H,rules:L,"label-width":"120px"},{default:c(()=>[f(o,{label:"效果类型",prop:"effect_type"},{default:c(()=>[f(r,{modelValue:H.effect_type,"onUpdate:modelValue":l[0]||(l[0]=e=>H.effect_type=e),onChange:R,placeholder:"请选择效果类型"},{default:c(()=>[f(t,{label:"领券",value:1}),f(t,{label:"抽奖折扣",value:2}),f(t,{label:"签到倍数",value:3}),f(t,{label:"领道具卡",value:4}),f(t,{label:"概率加成",value:5}),f(t,{label:"双倍概率",value:6})]),_:1},8,["modelValue"])]),_:1}),1===H.effect_type?(_(),y(b,{key:0},[f(o,{label:"模板ID",prop:"template_id"},{default:c(()=>[f(i,{modelValue:H.params.template_id,"onUpdate:modelValue":l[1]||(l[1]=e=>H.params.template_id=e),min:0},null,8,["modelValue"])]),_:1}),f(o,{label:"频次周期",prop:"frequency_period"},{default:c(()=>[f(r,{modelValue:H.params.frequency.period,"onUpdate:modelValue":l[2]||(l[2]=e=>H.params.frequency.period=e),placeholder:"选择周期"},{default:c(()=>[f(t,{label:"每天",value:"day"}),f(t,{label:"每周",value:"week"}),f(t,{label:"每月",value:"month"})]),_:1},8,["modelValue"])]),_:1}),f(o,{label:"次数",prop:"frequency_times"},{default:c(()=>[f(i,{modelValue:H.params.frequency.times,"onUpdate:modelValue":l[3]||(l[3]=e=>H.params.frequency.times=e),min:1},null,8,["modelValue"])]),_:1})],64)):2===H.effect_type?(_(),y(b,{key:1},[f(o,{label:"折扣类型",prop:"discount_type"},{default:c(()=>[f(r,{modelValue:H.params.discount_type,"onUpdate:modelValue":l[4]||(l[4]=e=>H.params.discount_type=e)},{default:c(()=>[f(t,{label:"百分比",value:"percentage"}),f(t,{label:"固定金额",value:"fixed"})]),_:1},8,["modelValue"])]),_:1}),f(o,{label:"折扣值(×1000)",prop:"value_x1000"},{default:c(()=>[f(i,{modelValue:H.params.value_x1000,"onUpdate:modelValue":l[5]||(l[5]=e=>H.params.value_x1000=e),min:0,step:10},null,8,["modelValue"])]),_:1}),f(o,{label:"最高减免(×1000)",prop:"max_discount_x1000"},{default:c(()=>[f(i,{modelValue:H.params.max_discount_x1000,"onUpdate:modelValue":l[6]||(l[6]=e=>H.params.max_discount_x1000=e),min:0,step:10},null,8,["modelValue"])]),_:1})],64)):3===H.effect_type?(_(),y(b,{key:2},[f(o,{label:"倍率(×1000)",prop:"multiplier_x1000"},{default:c(()=>[f(i,{modelValue:H.params.multiplier_x1000,"onUpdate:modelValue":l[7]||(l[7]=e=>H.params.multiplier_x1000=e),min:0,step:100},null,8,["modelValue"])]),_:1}),f(o,{label:"每日积分上限",prop:"daily_cap_points"},{default:c(()=>[f(i,{modelValue:H.params.daily_cap_points,"onUpdate:modelValue":l[8]||(l[8]=e=>H.params.daily_cap_points=e),min:0},null,8,["modelValue"])]),_:1})],64)):4===H.effect_type?(_(),y(b,{key:3},[f(o,{label:"模板ID",prop:"template_id"},{default:c(()=>[f(i,{modelValue:H.params.template_id,"onUpdate:modelValue":l[9]||(l[9]=e=>H.params.template_id=e),min:0},null,8,["modelValue"])]),_:1}),f(o,{label:"频次周期",prop:"frequency_period"},{default:c(()=>[f(r,{modelValue:H.params.frequency.period,"onUpdate:modelValue":l[10]||(l[10]=e=>H.params.frequency.period=e),placeholder:"选择周期"},{default:c(()=>[f(t,{label:"每周",value:"week"}),f(t,{label:"每月",value:"month"})]),_:1},8,["modelValue"])]),_:1}),f(o,{label:"次数",prop:"frequency_times"},{default:c(()=>[f(i,{modelValue:H.params.frequency.times,"onUpdate:modelValue":l[11]||(l[11]=e=>H.params.frequency.times=e),min:1},null,8,["modelValue"])]),_:1})],64)):5===H.effect_type?(_(),y(b,{key:4},[f(o,{label:"目标奖品ID",prop:"target_prize_ids"},{default:c(()=>[f(p,{modelValue:J.value,"onUpdate:modelValue":l[12]||(l[12]=e=>J.value=e),placeholder:"以逗号分隔的ID如 101,102"},null,8,["modelValue"])]),_:1}),f(o,{label:"加成(×1000)",prop:"boost_x1000"},{default:c(()=>[f(i,{modelValue:H.params.boost_x1000,"onUpdate:modelValue":l[13]||(l[13]=e=>H.params.boost_x1000=e),min:0,step:10},null,8,["modelValue"])]),_:1}),f(o,{label:"封顶(×1000)",prop:"cap_x1000"},{default:c(()=>[f(i,{modelValue:H.params.cap_x1000,"onUpdate:modelValue":l[14]||(l[14]=e=>H.params.cap_x1000=e),min:0,step:10},null,8,["modelValue"])]),_:1})],64)):6===H.effect_type?(_(),y(b,{key:5},[f(o,{label:"目标奖品ID",prop:"target_prize_ids"},{default:c(()=>[f(p,{modelValue:J.value,"onUpdate:modelValue":l[15]||(l[15]=e=>J.value=e),placeholder:"以逗号分隔的ID如 101,102"},null,8,["modelValue"])]),_:1}),f(o,{label:"概率(×1000)",prop:"chance_x1000"},{default:c(()=>[f(i,{modelValue:H.params.chance_x1000,"onUpdate:modelValue":l[16]||(l[16]=e=>H.params.chance_x1000=e),min:0,step:10},null,8,["modelValue"])]),_:1}),f(o,{label:"周期内次数上限",prop:"period_cap_times"},{default:c(()=>[f(i,{modelValue:H.params.period_cap_times,"onUpdate:modelValue":l[17]||(l[17]=e=>H.params.period_cap_times=e),min:0},null,8,["modelValue"])]),_:1})],64)):v("",!0),f(o,{label:"叠加策略",prop:"stacking_strategy"},{default:c(()=>[f(m,{modelValue:H.stacking_strategy,"onUpdate:modelValue":l[18]||(l[18]=e=>H.stacking_strategy=e)},{default:c(()=>[f(d,{label:0},{default:c(()=>[...l[27]||(l[27]=[V("最大值",-1)])]),_:1}),f(d,{label:1},{default:c(()=>[...l[28]||(l[28]=[V("累加封顶",-1)])]),_:1}),f(d,{label:2},{default:c(()=>[...l[29]||(l[29]=[V("首个匹配",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),f(o,{label:"统一封顶(×1000)",prop:"cap_value_x1000"},{default:c(()=>[f(i,{modelValue:H.cap_value_x1000,"onUpdate:modelValue":l[19]||(l[19]=e=>H.cap_value_x1000=e),min:0,step:10},null,8,["modelValue"])]),_:1}),f(h,null,{default:c(()=>[...l[30]||(l[30]=[V("作用范围",-1)])]),_:1}),f(o,{label:"包含活动",prop:"scope_activity_ids"},{default:c(()=>[f(r,{modelValue:T.value,"onUpdate:modelValue":l[20]||(l[20]=e=>T.value=e),multiple:"",filterable:"",placeholder:"选择活动"},{default:c(()=>[(_(!0),y(b,null,x(G.value,e=>(_(),n(t,{key:e.id,label:e.name,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),f(o,{label:"包含期",prop:"scope_issue_ids"},{default:c(()=>[f(r,{modelValue:B.value,"onUpdate:modelValue":l[21]||(l[21]=e=>B.value=e),multiple:"",filterable:"",placeholder:"选择期"},{default:c(()=>[(_(!0),y(b,null,x(K.value,e=>(_(),n(t,{key:e.id,label:e.issue_number,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),f(o,{label:"排除期",prop:"scope_ex_issue_ids"},{default:c(()=>[f(r,{modelValue:F.value,"onUpdate:modelValue":l[22]||(l[22]=e=>F.value=e),multiple:"",filterable:"",placeholder:"选择排除期"},{default:c(()=>[(_(!0),y(b,null,x(K.value,e=>(_(),n(t,{key:"ex-"+e.id,label:e.issue_number,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),f(o,{label:"排序",prop:"sort"},{default:c(()=>[f(i,{modelValue:H.sort,"onUpdate:modelValue":l[23]||(l[23]=e=>H.sort=e),min:0,max:999},null,8,["modelValue"]),l[31]||(l[31]=g("div",{class:"form-tip"},"数值越大优先级越高",-1))]),_:1}),f(o,{label:"状态",prop:"status"},{default:c(()=>[f(m,{modelValue:H.status,"onUpdate:modelValue":l[24]||(l[24]=e=>H.status=e)},{default:c(()=>[f(d,{label:1},{default:c(()=>[...l[32]||(l[32]=[V("启用",-1)])]),_:1}),f(d,{label:0},{default:c(()=>[...l[33]||(l[33]=[V("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title","modelValue"])}}}),[["__scopeId","data-v-47e87be5"]]);export{T as default};