HaniBlindBox/server/HoneyBox/src/HoneyBox.Admin/wwwroot/assets/QyLevelPrizeFormDialog-DzMd0T_q.js
2026-02-04 01:48:50 +08:00

2 lines
7.9 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{a as o,Q as H,b as M,c as A}from"./qylevel--oeNMWVD.js";import{g as J}from"./coupon-_-6w5E3K.js";import{d as K,v as Q,r as b,a as W,G as X,g as s,z,k as m,w as a,e as r,c as g,H as q,F as v,y as B,l as C,b as Y,t as F,E as p,_ as Z}from"./index-DPvNEb09.js";const ee={key:0,class:"image-preview"},le=K({__name:"QyLevelPrizeFormDialog",props:{modelValue:{type:Boolean},levelId:{},prize:{},isEdit:{type:Boolean}},emits:["update:modelValue","success"],setup(P,{emit:R}){const i=P,I=R,V=Q({get:()=>i.modelValue,set:n=>I("update:modelValue",n)}),f=b(),h=b(!1),_=b([]),w=b(!1),e=W({type:void 0,title:"",couponId:void 0,quantity:1,value:0,exchangePrice:0,referencePrice:0,probability:0,image:"",sort:0}),N=(n,l,d)=>{if(l==null||l==="")d(new Error("请输入中奖概率"));else if(typeof l!="number")d(new Error("概率必须为数字"));else if(l<0||l>100)d(new Error("概率必须在0-100之间"));else{const y=l.toString().split(".")[1];y&&y.length>2?d(new Error("概率最多保留2位小数")):d()}},D=Q(()=>({type:[{required:!0,message:"请选择奖品类型",trigger:"change"}],couponId:e.type===o.Coupon?[{required:!0,message:"请选择优惠券",trigger:"change"}]:[],quantity:e.type===o.Coupon?[{required:!0,message:"请输入数量",trigger:"blur"},{type:"number",min:1,message:"数量必须大于0",trigger:"blur"}]:[],title:e.type===o.Physical?[{required:!0,message:"请输入奖品名称",trigger:"blur"},{min:1,max:100,message:"名称长度在1-100个字符之间",trigger:"blur"}]:[],value:e.type===o.Physical?[{required:!0,message:"请输入奖品价值",trigger:"blur"},{type:"number",min:0,message:"价值不能为负数",trigger:"blur"}]:[],exchangePrice:e.type===o.Physical?[{required:!0,message:"请输入兑换价格",trigger:"blur"},{type:"number",min:0,message:"兑换价格不能为负数",trigger:"blur"}]:[],referencePrice:e.type===o.Physical?[{required:!0,message:"请输入参考价格",trigger:"blur"},{type:"number",min:0,message:"参考价格不能为负数",trigger:"blur"}]:[],image:e.type===o.Physical?[{required:!0,message:"请输入奖品图片URL",trigger:"blur"}]:[],probability:[{required:!0,validator:N,trigger:"blur"}],sort:[{type:"number",min:0,message:"排序值不能为负数",trigger:"blur"}]})),S=async()=>{w.value=!0;try{const n=await J({page:1,pageSize:1e3});_.value=n.data.list}catch{_.value=[]}finally{w.value=!1}};X(()=>i.modelValue,n=>{n&&(S(),i.isEdit&&i.prize?Object.assign(e,{type:i.prize.type,title:i.prize.title||"",couponId:i.prize.couponId,quantity:i.prize.quantity||1,value:i.prize.value||0,exchangePrice:i.prize.exchangePrice||0,referencePrice:i.prize.referencePrice||0,probability:i.prize.probability||0,image:i.prize.image||"",sort:i.prize.sort||0}):L())});const T=()=>{e.type===o.Coupon?(e.title="",e.value=0,e.exchangePrice=0,e.referencePrice=0,e.image=""):(e.couponId=void 0,e.quantity=1)},L=()=>{var n;Object.assign(e,{type:void 0,title:"",couponId:void 0,quantity:1,value:0,exchangePrice:0,referencePrice:0,probability:0,image:"",sort:0}),(n=f.value)==null||n.resetFields()},x=()=>{V.value=!1,L()},$=async()=>{if(!f.value)return;try{await f.value.validate()}catch{return}if(e.probability<0||e.probability>100){p.error("概率必须在0-100之间");return}const n=e.probability.toString().split(".")[1];if(n&&n.length>2){p.error("概率最多保留2位小数");return}if(e.type===o.Coupon){if(!e.couponId){p.error("请选择优惠券");return}if(e.quantity<=0){p.error("数量必须大于0");return}}if(e.type===o.Physical){if(!e.title){p.error("请输入奖品名称");return}if(!e.image){p.error("请输入奖品图片URL");return}}h.value=!0;try{const l={type:e.type,title:e.type===o.Physical?e.title:void 0,couponId:e.type===o.Coupon?e.couponId:void 0,quantity:e.type===o.Coupon?e.quantity:void 0,value:e.type===o.Physical?e.value:void 0,exchangePrice:e.type===o.Physical?e.exchangePrice:void 0,referencePrice:e.type===o.Physical?e.referencePrice:void 0,probability:e.probability,image:e.type===o.Physical?e.image:void 0,sort:e.sort};if(i.isEdit&&i.prize)await M(i.prize.id,l),p.success("更新成功");else{if(!i.levelId){p.error("未选择权益等级");return}await A(i.levelId,l),p.success("创建成功")}I("success"),x()}finally{h.value=!1}};return(n,l)=>{const d=s("el-option"),y=s("el-select"),u=s("el-form-item"),c=s("el-input-number"),U=s("el-input"),j=s("el-image"),O=s("el-form"),E=s("el-button"),G=s("el-dialog");return m(),z(G,{modelValue:V.value,"onUpdate:modelValue":l[10]||(l[10]=t=>V.value=t),title:P.isEdit?"编辑奖品":"新增奖品",width:"600px","close-on-click-modal":!1,onClose:x},{footer:a(()=>[r(E,{onClick:x},{default:a(()=>[...l[12]||(l[12]=[F("取消",-1)])]),_:1}),r(E,{type:"primary",loading:h.value,onClick:$},{default:a(()=>[...l[13]||(l[13]=[F(" 确定 ",-1)])]),_:1},8,["loading"])]),default:a(()=>[r(O,{ref_key:"formRef",ref:f,model:e,rules:D.value,"label-width":"100px"},{default:a(()=>[r(u,{label:"奖品类型",prop:"type"},{default:a(()=>[r(y,{modelValue:e.type,"onUpdate:modelValue":l[0]||(l[0]=t=>e.type=t),placeholder:"请选择奖品类型",style:{width:"100%"},disabled:P.isEdit,onChange:T},{default:a(()=>[(m(!0),g(v,null,B(C(H),(t,k)=>(m(),z(d,{key:k,label:t,value:Number(k)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])]),_:1}),e.type===C(o).Coupon?(m(),g(v,{key:0},[r(u,{label:"选择优惠券",prop:"couponId"},{default:a(()=>[r(y,{modelValue:e.couponId,"onUpdate:modelValue":l[1]||(l[1]=t=>e.couponId=t),placeholder:"请选择优惠券",style:{width:"100%"},filterable:"",loading:w.value},{default:a(()=>[(m(!0),g(v,null,B(_.value,t=>(m(),z(d,{key:t.id,label:`${t.title} (满${t.minPrice}${t.discountPrice})`,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),r(u,{label:"数量",prop:"quantity"},{default:a(()=>[r(c,{modelValue:e.quantity,"onUpdate:modelValue":l[2]||(l[2]=t=>e.quantity=t),min:1,precision:0,placeholder:"请输入优惠券数量",style:{width:"100%"}},null,8,["modelValue"])]),_:1})],64)):q("",!0),e.type===C(o).Physical?(m(),g(v,{key:1},[r(u,{label:"奖品名称",prop:"title"},{default:a(()=>[r(U,{modelValue:e.title,"onUpdate:modelValue":l[3]||(l[3]=t=>e.title=t),placeholder:"请输入奖品名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),r(u,{label:"奖品价值",prop:"value"},{default:a(()=>[r(c,{modelValue:e.value,"onUpdate:modelValue":l[4]||(l[4]=t=>e.value=t),min:0,precision:2,placeholder:"请输入奖品价值",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),r(u,{label:"兑换价格",prop:"exchangePrice"},{default:a(()=>[r(c,{modelValue:e.exchangePrice,"onUpdate:modelValue":l[5]||(l[5]=t=>e.exchangePrice=t),min:0,precision:2,placeholder:"请输入兑换价格",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),r(u,{label:"参考价格",prop:"referencePrice"},{default:a(()=>[r(c,{modelValue:e.referencePrice,"onUpdate:modelValue":l[6]||(l[6]=t=>e.referencePrice=t),min:0,precision:2,placeholder:"请输入市场参考价格",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),r(u,{label:"奖品图片",prop:"image"},{default:a(()=>[r(U,{modelValue:e.image,"onUpdate:modelValue":l[7]||(l[7]=t=>e.image=t),placeholder:"请输入奖品图片URL"},null,8,["modelValue"]),e.image?(m(),g("div",ee,[r(j,{src:e.image,fit:"cover",style:{width:"100px",height:"100px","margin-top":"8px"}},null,8,["src"])])):q("",!0)]),_:1})],64)):q("",!0),r(u,{label:"中奖概率",prop:"probability"},{default:a(()=>[r(c,{modelValue:e.probability,"onUpdate:modelValue":l[8]||(l[8]=t=>e.probability=t),min:0,max:100,precision:2,step:.1,placeholder:"请输入中奖概率",style:{width:"100%"}},null,8,["modelValue"]),l[11]||(l[11]=Y("div",{class:"form-tip"},"概率范围0-100最多2位小数",-1))]),_:1}),r(u,{label:"排序",prop:"sort"},{default:a(()=>[r(c,{modelValue:e.sort,"onUpdate:modelValue":l[9]||(l[9]=t=>e.sort=t),min:0,precision:0,placeholder:"请输入排序值",style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])}}}),oe=Z(le,[["__scopeId","data-v-b7ab0280"]]);export{oe as default};