2 lines
4.0 KiB
JavaScript
2 lines
4.0 KiB
JavaScript
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};
|