game/nginx/admin/assets/index-CzLAoq5c.js
2026-04-20 16:07:22 +08:00

3 lines
24 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.

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-BoIUJTA2.js","assets/index-Bw_sWjGf.css"])))=>i.map(i=>d[i]);
var e=Object.defineProperty,l=Object.defineProperties,t=Object.getOwnPropertyDescriptors,a=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,r=(l,t,a)=>t in l?e(l,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):l[t]=a,s=(e,l)=>{for(var t in l||(l={}))o.call(l,t)&&r(e,t,l[t]);if(a)for(var t of a(l))i.call(l,t)&&r(e,t,l[t]);return e},u=(e,a)=>l(e,t(a)),n=(e,l,t)=>new Promise((a,o)=>{var i=e=>{try{s(t.next(e))}catch(l){o(l)}},r=e=>{try{s(t.throw(e))}catch(l){o(l)}},s=e=>e.done?a(e.value):Promise.resolve(e.value).then(i,r);s((t=t.apply(e,l)).next())});import{d,a as p,r as m,c,aZ as v,o as _,b as h,e as b,f,i as y,g,h as w,w as x,j as V,E as j,p as q,I as k,J as U,v as S,q as N,M as C,K as M,T as O,aD as I,aV as B}from"./index-BoIUJTA2.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{_ as E}from"./index-Bwtbh5WQ.js";import{A as P}from"./index-BaXJ8CyS.js";import{_ as T}from"./index.vue_vue_type_script_setup_true_lang-AxI1L1VI.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{a as A,n as F,p as $,q as D,r as z,s as W}from"./adminActivities-Dgt25iR5.js";import{f as L}from"./product-qKpGgPBm.js";import{d as R,c as J}from"./activityEnums-zI8yOqFS.js";import{E as Q,a as H}from"./index-D2gD5Tn5.js";import{E as K}from"./index-C_S0YbqD.js";import{E as X}from"./index-js0HKKV6.js";import{E as Z}from"./index-ZsMdSUVI.js";import{E as G}from"./index-BjQJlHTd.js";import{a as Y,E as ee}from"./index-BcfO0-fK.js";import{E as le}from"./index-CjpBlozU.js";import{E as te}from"./index-dBzz0k3i.js";import{E as ae,a as oe}from"./index-BjuMygln.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";import"./el-empty-CV-PB2A2.js";import"./index-C1haaLtB.js";import"./_plugin-vue_export-helper-BCo6x5W8.js";/* empty css */import"./el-dropdown-item-D7SYN_RE.js";import"./index-BMeOzN3u.js";import"./index-COyGylbk.js";import"./index-Bq8lawOo.js";import"./index-Cp4NEpJ7.js";import"./dropdown-Dk_wSiK6.js";import"./castArray-nM8ho4U3.js";import"./refs-Cw5r5QN8.js";import"./index.vue_vue_type_script_setup_true_lang-DUbflfBQ.js";import"./iconify-DFoKediz.js";import"./index-D8nVJoNy.js";import"./index-CZJaGuxf.js";import"./token-DWNpOE8r.js";import"./debounce-DQl5eUwG.js";import"./_baseIteratee-CtIat01j.js";import"./index-CXORCV4U.js";import"./index-BnK4BbY2.js";import"./index-1OHUSGeP.js";import"./_baseClone-Ct7RL6h5.js";import"./_initCloneObject-DRmC-q3t.js";import"./use-dialog-FwJ-QdmW.js";import"./isArrayLikeObject-CFQi-X2M.js";import"./raf-DsHSIRfX.js";const ie={class:"mb-3"},re={class:"mb-2"},se={class:"mb-2"},ue={class:"ml-4"},ne={class:"ml-4"},de={class:"ml-4"},pe={key:0,class:"mb-2"},me={key:0},ce={key:1},ve={key:1,class:"text-gray-400"},_e={key:0,class:"mb-2"},he={key:1},be={class:"flex justify-between items-center"},fe={class:"truncate",style:{"max-width":"200px"}},ye={class:"ml-2 text-gray-400 text-xs"},ge={key:2},we={class:"flex justify-between items-center"},xe={class:"ml-2 text-gray-500 text-sm"},Ve={class:"mb-4"},je={class:"mb-3"},qe={class:"ml-2 text-gray-500 text-sm"},ke={class:"text-green-600 font-medium"},Ue={class:"text-green-600"},Se=d({__name:"index",setup(e){const l=p(),t=Number(l.params.activityId),a=Number(l.params.issueId),o=m(""),i=c(()=>"ichiban"===o.value),r=c(()=>"matching"===o.value),d=c(()=>r.value?"对应对子数":"对子"),Se=m({name:"",level:null,isBoss:null,priceMin:null,priceMax:null,sortBy:"level",sortOrder:"asc"}),Ne=m(!1),Ce=m([]),Me=c(()=>i.value?[{prop:"product_id",label:"产品ID",width:90},{prop:"product_image",label:"图片",useSlot:!0,width:70},{prop:"product_name",label:"商品",useSlot:!0,minWidth:200},{prop:"product_price",label:"单价",useSlot:!0,width:100},{prop:"level",label:"等级",useSlot:!0,width:80},{prop:"sort",label:"排序",width:80},{prop:"is_boss",label:"Boss",useSlot:!0,width:80},{prop:"actions",label:"操作",useSlot:!0,width:120}]:[{prop:"product_id",label:"产品ID",width:90},{prop:"product_image",label:"图片",useSlot:!0,width:70},{prop:"product_name",label:"商品",useSlot:!0,minWidth:180},{prop:"product_price",label:"单价",useSlot:!0,width:90},{prop:"level",label:"等级",useSlot:!0,width:70},{prop:"min_score",label:d.value,width:90},{prop:"weight",label:"权重",width:70},{prop:"remain",label:"剩余/总量",useSlot:!0,width:100},{prop:"drop_quantity",label:"单次产出",width:90},{prop:"expected",label:"期望概率",useSlot:!0,width:90},{prop:"sort",label:"排序",width:70},{prop:"is_boss",label:"Boss",useSlot:!0,width:70},{prop:"actions",label:"操作",useSlot:!0,width:120}]),Oe=m(!1),Ie=c(()=>"create"===Be.value?"新增奖励":"编辑奖励"),Be=m("create"),Ee=m([]),Pe=m(null),Te=m([]),Ae=m({}),Fe=m({}),$e=m(),{width:De}=v(),ze=c(()=>`${Math.min(1100,Math.max(720,De.value-120))}px`),We=c(()=>Ce.value.reduce((e,l)=>(Number(l.quantity)||0)<=0?e:e+(Number(l.weight)||0),0)),Le=c(()=>Ce.value.reduce((e,l)=>e+(Number(l.weight)||0),0)),Re=c(()=>Ce.value.filter(e=>(Number(e.quantity)||0)>0).length),Je=c(()=>{const e=We.value;return e<=0?0:Ce.value.reduce((l,t)=>{const a=Number(t.quantity)||0,o=Number(t.weight)||0;return a<=0||o<=0?l:l+o/e*100},0)}),Qe=c(()=>{const e=Se.value.level,l=Se.value.isBoss;let t=Ce.value.slice();null!=e&&(t=t.filter(l=>Number(l.level)===e)),null!=l&&(t=t.filter(e=>Number(e.is_boss)===l));const a=Se.value.priceMin,o=Se.value.priceMax;null!=a&&(t=t.filter(e=>(Ae.value[e.product_id]||0)>=a)),null!=o&&(t=t.filter(e=>(Ae.value[e.product_id]||0)<=o));const i=Se.value.sortBy||"level",r="desc"===Se.value.sortOrder?-1:1;return t.sort((e,l)=>{const t=e=>"price"===i?Ae.value[e.product_id]||0:"weight"===i?Number(e.weight)||0:"sort"===i?Number(e.sort)||0:Number(e.level)||0,a=t(e),o=t(l);return a!==o?(a-o)*r:((Number(e.sort)||0)-(Number(l.sort)||0))*r}),t});function He(e){const l=Number(e.quantity)||0,t=Number(e.weight)||0;if(l<=0||t<=0)return"0.00";const a=We.value||0;return a<=0?"0.00":(t/a*100).toFixed(2)}const Ke=c(()=>Ce.value.reduce((e,l)=>e+(l.product_price||0)*(Number(l.quantity)||0),0));function Xe(e){if(!e)return"";try{const l=JSON.parse(e);if(Array.isArray(l)&&l.length>0)return l[0]}catch(l){return e}return""}const Ze=c(()=>[{prop:"product_id",label:"产品ID",width:90},{prop:"product_id",label:"商品",useSlot:!0,minWidth:200},{prop:"level",label:"等级",useSlot:!0,width:90},{prop:"min_score",label:d.value,useSlot:!0,width:100,hide:i.value},{prop:"weight",label:"权重",useSlot:!0,width:90,hide:i.value},{prop:"quantity",label:i.value?"批量数量":"数量",useSlot:!0,width:100},{prop:"original_qty",label:"原始数量",useSlot:!0,width:100,hide:i.value},{prop:"sort",label:"排序",useSlot:!0,width:80},{prop:"is_boss",label:"Boss",useSlot:!0,width:80},{prop:"drop_quantity",label:"单次产出",useSlot:!0,width:100,hide:i.value},{prop:"actions",label:"",useSlot:!0,width:60}].filter(e=>!e.hide));function Ge(){Be.value="create",Ee.value=[],Oe.value=!0}function Ye(e){return J(e)}function el(e){const l=Te.value.find(l=>l.id===e);return l?l.name:e}function ll(){Ee.value.push({weight:i.value?1:0,quantity:i.value?1:0,original_qty:i.value?1:0,level:1,sort:0,is_boss:0,min_score:0,drop_quantity:1})}function tl(){Ee.value=[]}function al(){return n(this,null,function*(){var e,l,o,r;try{if("create"===Be.value){if(!function(){if(0===Ee.value.length)return O.error("请至少添加一条奖励"),!1;for(const e of Ee.value){if(!e.product_id||e.product_id<=0)return O.error("请选择商品"),!1;if(!e.level||e.level<=0)return O.error("请选择等级"),!1;if(!i.value){if(!e.weight||e.weight<=0)return O.error("请输入有效的权重"),!1;if(!e.quantity||e.quantity<=0)return O.error("请输入有效的数量"),!1;if(void 0===e.original_qty||e.original_qty<0)return O.error("请输入有效的原始数量"),!1}}return!0}())return;const e=[];for(const l of Ee.value)if(i.value&&l.quantity>1){const t=Math.floor(Number(l.quantity));for(let a=0;a<t;a++)e.push(u(s({},l),{quantity:1,original_qty:1,min_score:l.min_score||0}))}else e.push(u(s({},l),{min_score:l.min_score||0}));yield F(t,a,e),O.success(`成功添加 ${e.length} 个奖励项`)}else if("edit"===Be.value&&Pe.value){if(!1!==(yield null==(l=(e=$e.value).validate)?void 0:l.call(e))){const e=Pe.value;yield $(t,a,e.id,{product_id:e.product_id,weight:e.weight,quantity:e.quantity,original_qty:e.original_qty,level:e.level,sort:e.sort,is_boss:e.is_boss,min_score:e.min_score,drop_quantity:e.drop_quantity}),O.success("奖励更新成功")}}}catch(n){const e=(null==(r=null==(o=null==n?void 0:n.response)?void 0:o.data)?void 0:r.message)||n.message||"提交失败";return void O.error(e)}Oe.value=!1,yield ol(),I(()=>import("./index-BoIUJTA2.js").then(e=>e.eT),__vite__mapDeps([0,1])).then(e=>{e.default.emit("issue-prize-changed",{activityId:t,issueId:a})})})}function ol(){return n(this,null,function*(){Ne.value=!0;const e=yield D(t,a);Ce.value=e.list,Ne.value=!1})}_(()=>{ol(),function(){n(this,null,function*(){const e=yield L({page:1,page_size:500});Te.value=e.list.map(e=>({id:e.id,name:e.name,price:e.price,images_json:e.images_json}));for(const t of e.list)if(Ae.value[t.id]=Number(t.price||0)/100,t.images_json)try{const e=JSON.parse(t.images_json);Array.isArray(e)&&e.length>0&&(Fe.value[t.id]=e[0])}catch(l){Fe.value[t.id]=t.images_json}})}(),A(t).then(e=>{o.value=e.play_type||""}).catch(()=>{})});const il=m(1e4),rl=m(!1),sl=m(!1),ul=c(()=>{const e=Le.value;return e<=0?[]:Ce.value.map(l=>{const t=Number(l.weight)||0,a=e>0?(t/e*100).toFixed(2):"0.00",o=Math.round(t/e*il.value),i=(o/il.value*100).toFixed(2);return{id:l.id,name:el(l.product_id)||l.name,level:l.level,oldWeight:t,oldProb:a,newWeight:o,newProb:i,weightChange:o-t}})});function nl(){Le.value<=0?O.warning("没有可优化的权重"):rl.value=!0}function dl(){return n(this,null,function*(){var e,l;if(0!==ul.value.length)try{sl.value=!0;const e=ul.value.map(e=>({reward_id:e.id,weight:e.newWeight}));yield W(t,a,e),O.success("权重优化成功"),rl.value=!1,yield ol(),I(()=>import("./index-BoIUJTA2.js").then(e=>e.eT),__vite__mapDeps([0,1])).then(e=>{e.default.emit("issue-prize-changed",{activityId:t,issueId:a})})}catch(o){const t=(null==(l=null==(e=null==o?void 0:o.response)?void 0:e.data)?void 0:l.message)||o.message||"优化失败";O.error(t)}finally{sl.value=!1}})}function pl(){if(0===Ce.value.length)return void O.warning("没有可导出的奖励配置");const e=Ce.value.filter(e=>(Number(e.quantity)||0)>0&&(Number(e.weight)||0)>0).map(e=>{return{id:e.id,name:e.product_name||el(e.product_id),image:e.product_image_url||(l=e.product_id,Fe.value[l]||""),weight:e.weight};var l}).sort((e,l)=>e.id-l.id);if(0===e.length)return void O.warning("没有有效的奖品权重配置");const l=e.map(e=>`${e.id}:${e.weight}`).join(","),o={activity_id:t,issue_id:a,weights:l,rewards:e,total_weight:e.reduce((e,l)=>e+l.weight,0),exported_at:(new Date).toISOString()},i=JSON.stringify(o,null,2);navigator.clipboard.writeText(i).then(()=>{O.success({message:`验证配置已复制(${e.length}个奖品)`,duration:3e3})}).catch(()=>{B.alert(i,"验证配置 (请手动复制)",{confirmButtonText:"确定",customClass:"verify-config-dialog"})})}return(e,l)=>{const o=j,r=K,u=Z,p=ee,m=Y,c=le;return b(),h("div",null,[f("div",ie,[g(o,{type:"primary",onClick:Ge},{default:x(()=>[...l[21]||(l[21]=[V("新增奖励",-1)])]),_:1}),!q(i)&&q(Ce).length>0?(b(),w(o,{key:0,class:"ml-2",onClick:nl},{default:x(()=>[...l[22]||(l[22]=[V("优化权重",-1)])]),_:1})):y("",!0),!q(i)&&q(Ce).length>0?(b(),w(o,{key:1,class:"ml-2",type:"success",onClick:pl},{default:x(()=>[...l[23]||(l[23]=[V("📋 导出验证配置",-1)])]),_:1})):y("",!0)]),f("div",re,[g(q(X),null,{default:x(()=>[g(q(Q),{modelValue:q(Se).level,"onUpdate:modelValue":l[0]||(l[0]=e=>q(Se).level=e),placeholder:"等级",clearable:"",style:{width:"140px"}},{default:x(()=>[(b(!0),h(k,null,U(q(R),(e,l)=>(b(),w(q(H),{key:l,label:e,value:Number(l)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),g(q(Q),{modelValue:q(Se).isBoss,"onUpdate:modelValue":l[1]||(l[1]=e=>q(Se).isBoss=e),placeholder:"Boss",clearable:"",style:{width:"140px"}},{default:x(()=>[g(q(H),{value:1,label:"是"}),g(q(H),{value:0,label:"否"})]),_:1},8,["modelValue"]),g(r,{modelValue:q(Se).priceMin,"onUpdate:modelValue":l[2]||(l[2]=e=>q(Se).priceMin=e),min:0,precision:2,placeholder:"最低价",style:{width:"140px"}},null,8,["modelValue"]),g(r,{modelValue:q(Se).priceMax,"onUpdate:modelValue":l[3]||(l[3]=e=>q(Se).priceMax=e),min:0,precision:2,placeholder:"最高价",style:{width:"140px"}},null,8,["modelValue"]),g(q(Q),{modelValue:q(Se).sortBy,"onUpdate:modelValue":l[4]||(l[4]=e=>q(Se).sortBy=e),placeholder:"排序字段",style:{width:"140px"}},{default:x(()=>[g(q(H),{value:"level",label:"按等级"}),g(q(H),{value:"sort",label:"按排序"}),g(q(H),{value:"price",label:"按价格"}),g(q(H),{value:"weight",label:"按权重"})]),_:1},8,["modelValue"]),g(q(Q),{modelValue:q(Se).sortOrder,"onUpdate:modelValue":l[5]||(l[5]=e=>q(Se).sortOrder=e),placeholder:"顺序",style:{width:"120px"}},{default:x(()=>[g(q(H),{value:"asc",label:"升序"}),g(q(H),{value:"desc",label:"降序"})]),_:1},8,["modelValue"])]),_:1})]),f("div",se,[f("span",null,"总权重:"+S(q(Le)),1),f("span",ue,"有效权重(有库存)"+S(q(We)),1),f("span",ne,"有库存奖品:"+S(q(Re))+"/"+S(q(Ce).length),1),f("span",de,"总成本:¥"+S(q(Ke).toFixed(2)),1)]),q(We)>0?(b(),h("div",pe,[f("span",{class:N(Math.abs(q(Je)-100)<.01?"text-green-600":"text-red-600")},[V(" 概率总和:"+S(q(Je).toFixed(2))+"% ",1),Math.abs(q(Je)-100)<.01?(b(),h("span",me,"✓")):(b(),h("span",ce,"应为100%"))],2),l[24]||(l[24]=f("span",{class:"ml-4 text-gray-500 text-sm"},"💡 建议总权重为10000权重1=0.01%",-1))])):y("",!0),g(P,{columns:q(Me),"onUpdate:columns":l[6]||(l[6]=e=>C(Me)?Me.value=e:null),loading:q(Ne),onRefresh:ol},null,8,["columns","loading"]),g(E,{loading:q(Ne),data:q(Qe),columns:q(Me),stripe:!0,border:!0},{product_image:x(({row:e})=>[e.product_image_url?(b(),w(q(G),{key:0,src:Xe(e.product_image_url),"preview-src-list":[Xe(e.product_image_url)],fit:"cover",style:{width:"50px",height:"50px","border-radius":"4px"}},null,8,["src","preview-src-list"])):(b(),h("span",ve,"无图片"))]),product_name:x(({row:e})=>[f("span",null,S(e.product_name),1)]),product_price:x(({row:e})=>[f("span",null,"¥"+S((e.product_price||0).toFixed(2)),1)]),is_boss:x(({row:e})=>[g(u,{type:1===e.is_boss?"warning":"info"},{default:x(()=>[V(S(1===e.is_boss?"是":"否"),1)]),_:2},1032,["type"])]),level:x(({row:e})=>[f("span",null,S(Ye(e.level)),1)]),remain:x(({row:e})=>[f("span",null,S(e.quantity)+"/"+S(e.original_qty),1)]),expected:x(({row:e})=>[f("span",null,S(He(e))+"%",1)]),actions:x(({row:e})=>[g(T,{type:"edit",onClick:l=>function(e){Be.value="edit",Pe.value=s({},e),Ee.value=[Pe.value],Oe.value=!0}(e)},null,8,["onClick"]),g(T,{type:"delete",onClick:l=>function(e){return n(this,null,function*(){var l,o;try{const l=e.product_name||"该奖励";yield B.confirm(`确定要删除奖励"${l}"吗?此操作不可恢复`,"删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",beforeClose:(e,l,t)=>{"confirm"===e?(l.confirmButtonLoading=!0,t()):t()}}),yield z(t,a,e.id),O.success({message:`"${l}"已成功删除`,duration:3e3}),yield ol(),I(()=>import("./index-BoIUJTA2.js").then(e=>e.eT),__vite__mapDeps([0,1])).then(e=>{e.default.emit("issue-prize-changed",{activityId:t,issueId:a})})}catch(i){if("cancel"===i)return;const t=(null==(o=null==(l=null==i?void 0:i.response)?void 0:l.data)?void 0:o.message)||i.message||"删除失败",a=e.product_name||"该奖励";O.error({message:`"${a}"删除失败:${t}`,duration:4e3})}})}(e)},null,8,["onClick"])]),_:1},8,["loading","data","columns"]),g(c,{modelValue:q(Oe),"onUpdate:modelValue":l[17]||(l[17]=e=>C(Oe)?Oe.value=e:null),title:q(Ie),width:q(ze)},{footer:x(()=>[g(o,{onClick:l[16]||(l[16]=e=>Oe.value=!1)},{default:x(()=>[...l[29]||(l[29]=[V("取消",-1)])]),_:1}),g(o,{type:"primary",onClick:al},{default:x(()=>[...l[30]||(l[30]=[V("提交",-1)])]),_:1})]),default:x(()=>["create"===q(Be)?(b(),h("div",_e,[g(o,{type:"primary",onClick:ll},{default:x(()=>[...l[25]||(l[25]=[V("新增一行",-1)])]),_:1}),g(o,{class:"ml-2",onClick:tl},{default:x(()=>[...l[26]||(l[26]=[V("清空",-1)])]),_:1})])):y("",!0),"create"===q(Be)?(b(),h("div",he,[g(E,{data:q(Ee),columns:q(Ze),tableLayout:"auto",stripe:!0,border:!0},{product_id:x(({row:e})=>[g(q(Q),{modelValue:e.product_id,"onUpdate:modelValue":l=>e.product_id=l,modelModifiers:{number:!0},filterable:"",placeholder:"搜索商品",style:{width:"100%"}},{default:x(()=>[(b(!0),h(k,null,U(q(Te),e=>(b(),w(q(H),{key:e.id,value:e.id,label:e.name},{default:x(()=>[f("div",be,[f("span",fe,S(e.name),1),f("span",ye,"¥"+S((Number(e.price||0)/100).toFixed(2)),1)])]),_:2},1032,["value","label"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue"])]),level:x(({row:e})=>[g(q(Q),{modelValue:e.level,"onUpdate:modelValue":l=>e.level=l,modelModifiers:{number:!0},style:{width:"100px"}},{default:x(()=>[(b(!0),h(k,null,U(q(R),(e,l)=>(b(),w(q(H),{key:l,label:e,value:Number(l)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue"])]),min_score:x(({row:e})=>[g(r,{modelValue:e.min_score,"onUpdate:modelValue":l=>e.min_score=l,min:0,controls:!1,step:1,style:{width:"80px"}},null,8,["modelValue","onUpdate:modelValue"])]),weight:x(({row:e})=>[g(r,{modelValue:e.weight,"onUpdate:modelValue":l=>e.weight=l,min:0,controls:!1,step:1,style:{width:"80px"}},null,8,["modelValue","onUpdate:modelValue"])]),quantity:x(({row:e})=>[g(r,{modelValue:e.quantity,"onUpdate:modelValue":l=>e.quantity=l,min:0,controls:!1,step:1,style:{width:"80px"}},null,8,["modelValue","onUpdate:modelValue"])]),original_qty:x(({row:e})=>[g(r,{modelValue:e.original_qty,"onUpdate:modelValue":l=>e.original_qty=l,min:0,controls:!1,step:1,style:{width:"90px"}},null,8,["modelValue","onUpdate:modelValue"])]),sort:x(({row:e})=>[g(r,{modelValue:e.sort,"onUpdate:modelValue":l=>e.sort=l,min:0,controls:!1,step:1,style:{width:"70px"}},null,8,["modelValue","onUpdate:modelValue"])]),is_boss:x(({row:e})=>[g(q(Q),{modelValue:e.is_boss,"onUpdate:modelValue":l=>e.is_boss=l,modelModifiers:{number:!0},style:{width:"70px"}},{default:x(()=>[g(q(H),{value:0,label:"否"}),g(q(H),{value:1,label:"是"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),drop_quantity:x(({row:e})=>[g(r,{modelValue:e.drop_quantity,"onUpdate:modelValue":l=>e.drop_quantity=l,min:1,max:100,controls:!1,step:1,style:{width:"80px"}},null,8,["modelValue","onUpdate:modelValue"])]),actions:x(({$index:e})=>[g(o,{text:"",type:"danger",size:"small",onClick:l=>{return t=e,void Ee.value.splice(t,1);var t}},{default:x(()=>[...l[27]||(l[27]=[V("删除",-1)])]),_:1},8,["onClick"])]),_:1},8,["data","columns"])])):(b(),h("div",ge,[g(m,{model:q(Pe),ref_key:"editFormRef",ref:$e,"label-width":"100px"},{default:x(()=>[g(p,{label:"商品",prop:"product_id",rules:[{required:!0,message:"请选择商品"}]},{default:x(()=>[g(q(Q),{modelValue:q(Pe).product_id,"onUpdate:modelValue":l[7]||(l[7]=e=>q(Pe).product_id=e),modelModifiers:{number:!0},filterable:"",placeholder:"选择商品"},{default:x(()=>[(b(!0),h(k,null,U(q(Te),e=>(b(),w(q(H),{key:e.id,value:e.id,label:e.name},{default:x(()=>[f("div",we,[f("span",null,S(e.name),1),f("span",xe,"¥"+S((Number(e.price||0)/100).toFixed(2)),1)])]),_:2},1032,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),g(p,{label:"产品ID"},{default:x(()=>[g(q(M),{value:q(Pe).product_id,readonly:""},null,8,["value"])]),_:1}),g(p,{label:"单价"},{default:x(()=>{return[g(q(M),{value:q(Pe).product_id?`¥${(e=q(Pe).product_id,Ae.value[e]||0).toFixed(2)}`:"¥0.00",readonly:""},null,8,["value"])];var e}),_:1}),q(i)?y("",!0):(b(),w(p,{key:0,label:q(d),prop:"min_score",rules:[{required:!0,message:"请输入"+q(d)}]},{default:x(()=>[g(r,{modelValue:q(Pe).min_score,"onUpdate:modelValue":l[8]||(l[8]=e=>q(Pe).min_score=e),min:0,controls:!1,step:1},null,8,["modelValue"])]),_:1},8,["label","rules"])),g(p,{label:"等级",prop:"level",rules:[{required:!0,message:"请选择等级"}]},{default:x(()=>[g(q(Q),{modelValue:q(Pe).level,"onUpdate:modelValue":l[9]||(l[9]=e=>q(Pe).level=e),modelModifiers:{number:!0}},{default:x(()=>[(b(!0),h(k,null,U(q(R),(e,l)=>(b(),w(q(H),{key:l,label:e,value:Number(l)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),g(p,{label:"Boss",prop:"is_boss",rules:[{required:!0,message:"请选择"}]},{default:x(()=>[g(q(Q),{modelValue:q(Pe).is_boss,"onUpdate:modelValue":l[10]||(l[10]=e=>q(Pe).is_boss=e),modelModifiers:{number:!0}},{default:x(()=>[g(q(H),{value:0,label:"否"}),g(q(H),{value:1,label:"是"})]),_:1},8,["modelValue"])]),_:1}),q(i)?y("",!0):(b(),w(p,{key:1,label:"权重",prop:"weight",rules:[{required:!0,message:"请输入权重"}]},{default:x(()=>[g(r,{modelValue:q(Pe).weight,"onUpdate:modelValue":l[11]||(l[11]=e=>q(Pe).weight=e),min:0,controls:!1,step:1},null,8,["modelValue"])]),_:1})),q(i)?y("",!0):(b(),w(p,{key:2,label:"数量",prop:"quantity",rules:[{required:!0,message:"请输入数量"}]},{default:x(()=>[g(r,{modelValue:q(Pe).quantity,"onUpdate:modelValue":l[12]||(l[12]=e=>q(Pe).quantity=e),min:0,controls:!1,step:1},null,8,["modelValue"])]),_:1})),q(i)?y("",!0):(b(),w(p,{key:3,label:"原始数量",prop:"original_qty",rules:[{required:!0,message:"请输入原始数量"}]},{default:x(()=>[g(r,{modelValue:q(Pe).original_qty,"onUpdate:modelValue":l[13]||(l[13]=e=>q(Pe).original_qty=e),min:0,controls:!1,step:1},null,8,["modelValue"])]),_:1})),q(i)?y("",!0):(b(),w(p,{key:4,label:"单次产出",prop:"drop_quantity"},{default:x(()=>[g(r,{modelValue:q(Pe).drop_quantity,"onUpdate:modelValue":l[14]||(l[14]=e=>q(Pe).drop_quantity=e),min:1,max:100,controls:!1,step:1},null,8,["modelValue"]),l[28]||(l[28]=f("div",{style:{color:"#909399","font-size":"12px","margin-top":"4px"}},"碎片类奖品可设置多数量产出默认1",-1))]),_:1})),g(p,{label:"排序",prop:"sort"},{default:x(()=>[g(r,{modelValue:q(Pe).sort,"onUpdate:modelValue":l[15]||(l[15]=e=>q(Pe).sort=e),min:0,controls:!1,step:1},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]))]),_:1},8,["modelValue","title","width"]),g(c,{modelValue:q(rl),"onUpdate:modelValue":l[20]||(l[20]=e=>C(rl)?rl.value=e:null),title:"权重优化预览",width:"900px"},{footer:x(()=>[g(o,{onClick:l[19]||(l[19]=e=>rl.value=!1)},{default:x(()=>[...l[35]||(l[35]=[V("取消",-1)])]),_:1}),g(o,{type:"primary",loading:q(sl),onClick:dl},{default:x(()=>[...l[36]||(l[36]=[V("应用优化",-1)])]),_:1},8,["loading"])]),default:x(()=>[f("div",Ve,[g(q(te),{type:"info",closable:!1},{title:x(()=>[...l[31]||(l[31]=[f("span",null,"将所有奖品权重归一化到指定总权重建议10000权重1 = 0.01%",-1)])]),_:1})]),f("div",je,[f("span",null,[l[32]||(l[32]=V("当前总权重:",-1)),f("strong",null,S(q(Le)),1)]),l[33]||(l[33]=f("span",{class:"ml-4"},"→",-1)),l[34]||(l[34]=f("span",{class:"ml-2"},"目标总权重:",-1)),g(r,{modelValue:q(il),"onUpdate:modelValue":l[18]||(l[18]=e=>C(il)?il.value=e:null),min:100,max:1e6,step:1e3,controls:!0,style:{width:"150px"}},null,8,["modelValue"]),f("span",qe,"权重1 = "+S((100/q(il)).toFixed(4))+"%",1)]),g(q(ae),{data:q(ul),stripe:"",border:"","max-height":"400px",size:"small"},{default:x(()=>[g(q(oe),{prop:"name",label:"奖品名称","min-width":"180"}),g(q(oe),{prop:"level",label:"等级",width:"80"},{default:x(({row:e})=>[V(S(Ye(e.level)),1)]),_:1}),g(q(oe),{label:"当前权重",width:"100"},{default:x(({row:e})=>[V(S(e.oldWeight),1)]),_:1}),g(q(oe),{label:"当前概率",width:"100"},{default:x(({row:e})=>[V(S(e.oldProb)+"%",1)]),_:1}),g(q(oe),{label:"优化后权重",width:"120"},{default:x(({row:e})=>[f("span",ke,S(e.newWeight),1)]),_:1}),g(q(oe),{label:"优化后概率",width:"120"},{default:x(({row:e})=>[f("span",Ue,S(e.newProb)+"%",1)]),_:1}),g(q(oe),{label:"变化",width:"100"},{default:x(({row:e})=>[f("span",{class:N(e.weightChange>0?"text-green-600":e.weightChange<0?"text-red-600":"text-gray-500")},S(e.weightChange>0?"+":"")+S(e.weightChange),3)]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue"])])}}});export{Se as default};