HaniBlindBox/server/HoneyBox/src/HoneyBox.Admin/wwwroot/assets/QyLevelPrizeFormDialog-CynNCPb4.js
2026-02-06 00:11:27 +08:00

2 lines
4.0 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.

import{Q as D,a as S,c as U}from"./qylevel-Cg44Mytx.js";import{g as N}from"./coupon-sIcWGadl.js";import{d as R,v as E,r as m,a as $,G as j,g as s,z as C,k as _,w as r,e as a,c as O,F as T,y as G,b as M,t as L,E as u,_ as A}from"./index-ZWp30zd1.js";const H=R({__name:"QyLevelPrizeFormDialog",props:{modelValue:{type:Boolean},levelId:{},prize:{},isEdit:{type:Boolean}},emits:["update:modelValue","success"],setup(V,{emit:P}){const i=V,w=P,c=E({get:()=>i.modelValue,set:o=>w("update:modelValue",o)}),d=m(),f=m(!1),y=m([]),b=m(!1),t=$({couponId:void 0,quantity:1,probability:0}),x=(o,e,n)=>{if(e==null||e==="")n(new Error("请输入中奖概率"));else if(typeof e!="number")n(new Error("概率必须为数字"));else if(e<0||e>100)n(new Error("概率必须在0-100之间"));else{const p=e.toString().split(".")[1];p&&p.length>2?n(new Error("概率最多保留2位小数")):n()}},B=E(()=>({couponId:[{required:!0,message:"请选择优惠券",trigger:"change"}],quantity:[{required:!0,message:"请输入数量",trigger:"blur"},{type:"number",min:1,message:"数量必须大于0",trigger:"blur"}],probability:[{required:!0,validator:x,trigger:"blur"}]})),F=async()=>{b.value=!0;try{const o=await N({page:1,pageSize:1e3});y.value=o.data.list}catch{y.value=[]}finally{b.value=!1}};j(()=>i.modelValue,o=>{o&&(F(),i.isEdit&&i.prize?Object.assign(t,{couponId:i.prize.couponId,quantity:i.prize.quantity||1,probability:i.prize.probability||0}):I())});const I=()=>{var o;Object.assign(t,{couponId:void 0,quantity:1,probability:0}),(o=d.value)==null||o.resetFields()},g=()=>{c.value=!1,I()},Q=async()=>{if(!d.value)return;try{await d.value.validate()}catch{return}if(t.probability<0||t.probability>100){u.error("概率必须在0-100之间");return}const o=t.probability.toString().split(".")[1];if(o&&o.length>2){u.error("概率最多保留2位小数");return}if(!t.couponId){u.error("请选择优惠券");return}if(t.quantity<=0){u.error("数量必须大于0");return}f.value=!0;try{const e={type:D.Coupon,couponId:t.couponId,quantity:t.quantity,probability:t.probability};if(i.isEdit&&i.prize)await S(i.prize.id,e),u.success("更新成功");else{if(!i.levelId){u.error("未选择权益等级");return}await U(i.levelId,e),u.success("创建成功")}w("success"),g()}finally{f.value=!1}};return(o,e)=>{const n=s("el-option"),p=s("el-select"),v=s("el-form-item"),q=s("el-input-number"),k=s("el-form"),z=s("el-button"),h=s("el-dialog");return _(),C(h,{modelValue:c.value,"onUpdate:modelValue":e[3]||(e[3]=l=>c.value=l),title:V.isEdit?"编辑奖品":"新增奖品",width:"600px","close-on-click-modal":!1,onClose:g},{footer:r(()=>[a(z,{onClick:g},{default:r(()=>[...e[5]||(e[5]=[L("取消",-1)])]),_:1}),a(z,{type:"primary",loading:f.value,onClick:Q},{default:r(()=>[...e[6]||(e[6]=[L(" 确定 ",-1)])]),_:1},8,["loading"])]),default:r(()=>[a(k,{ref_key:"formRef",ref:d,model:t,rules:B.value,"label-width":"100px"},{default:r(()=>[a(v,{label:"选择优惠券",prop:"couponId"},{default:r(()=>[a(p,{modelValue:t.couponId,"onUpdate:modelValue":e[0]||(e[0]=l=>t.couponId=l),placeholder:"请选择优惠券",style:{width:"100%"},filterable:"",loading:b.value},{default:r(()=>[(_(!0),O(T,null,G(y.value,l=>(_(),C(n,{key:l.id,label:`${l.title} (满${l.minPrice}${l.discountPrice})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),a(v,{label:"数量",prop:"quantity"},{default:r(()=>[a(q,{modelValue:t.quantity,"onUpdate:modelValue":e[1]||(e[1]=l=>t.quantity=l),min:1,precision:0,placeholder:"请输入优惠券数量",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),a(v,{label:"中奖概率",prop:"probability"},{default:r(()=>[a(q,{modelValue:t.probability,"onUpdate:modelValue":e[2]||(e[2]=l=>t.probability=l),min:0,max:100,precision:2,step:.1,placeholder:"请输入中奖概率",style:{width:"100%"}},null,8,["modelValue"]),e[4]||(e[4]=M("div",{class:"form-tip"},"概率范围0-100最多2位小数",-1))]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])}}}),X=A(H,[["__scopeId","data-v-661650c5"]]);export{X as default};