HaniBlindBox/server/HoneyBox/src/HoneyBox.Admin/wwwroot/assets/DesignatedPrizeDialog-CsZULIaB.js
2026-02-08 00:28:05 +08:00

2 lines
8.5 KiB
JavaScript

import{N as $,d as fe,v as M,r as u,a as ve,g as d,J as _e,z as g,k as m,w as o,b as n,K as Ie,H as G,e as a,t as v,l as _,C as he,a0 as ye,L as ke,x as p,a1 as be,R as Ve,c as H,F as J,y as K,m as xe,D as we,E as I,_ as De}from"./index-xrzazjLo.js";import{g as Ce}from"./goods-DGRfwz_F.js";import{g as ze}from"./user-DO9bWybD.js";import{f as Ue}from"./format-C0IiqLeQ.js";function $e(c){return $({url:`/admin/goods/${c}/designated-prizes`,method:"get"})}function Ae(c,f){return $({url:`/admin/goods/${c}/designated-prizes`,method:"post",data:f})}function j(c,f,r){return $({url:`/admin/goods/${c}/designated-prizes/${f}`,method:"put",data:r})}function Pe(c,f){return $({url:`/admin/goods/${c}/designated-prizes/${f}`,method:"delete"})}const Te={class:"toolbar"},Be={class:"prize-info"},Ee={class:"image-error"},Le={class:"prize-title"},Ne={class:"user-info"},Se={class:"text-muted"},Fe={class:"text-muted"},Re={class:"prize-option"},Oe={class:"user-option"},qe={class:"user-option-info"},Me={class:"user-option-name"},Ge={class:"user-option-detail"},He=fe({__name:"DesignatedPrizeDialog",props:{modelValue:{type:Boolean},goodsId:{},goodsTitle:{}},emits:["update:modelValue"],setup(c,{emit:f}){const r=c,L=f,A=M({get:()=>r.modelValue,set:l=>L("update:modelValue",l)}),z=u(!1),x=u([]),P=u([]),h=u(!1),y=u(!1),w=u(null),T=u(!1),U=u(),B=u(!1),k=u([]),N=u(null),s=ve({goodsItemId:void 0,userId:void 0,isActive:!0,remark:""}),Q={goodsItemId:[{required:!0,message:"请选择奖品",trigger:"change"}],userId:[{required:!0,message:"请输入用户ID",trigger:"blur"},{type:"number",min:1,message:"用户ID必须大于0",trigger:"blur"}]},W=M(()=>{const l=new Set(x.value.map(t=>t.goodsItemId));return P.value.filter(t=>!l.has(t.id))}),E=async()=>{if(r.goodsId){z.value=!0;try{const l=await $e(r.goodsId);x.value=l.data||[]}catch(l){I.error(l.message||"获取配置列表失败")}finally{z.value=!1}}},X=async()=>{if(r.goodsId)try{const l=await Ce(r.goodsId);P.value=l.data||[]}catch(l){console.error("获取奖品列表失败:",l)}},Y=async l=>{var t;if(!l||l.length<1){k.value=[];return}B.value=!0;try{const i=await ze({keyword:l,page:1,pageSize:20});k.value=((t=i.data)==null?void 0:t.list)||[]}catch(i){console.error("搜索用户失败:",i),k.value=[]}finally{B.value=!1}},Z=l=>{N.value=k.value.find(t=>t.id===l)||null},ee=()=>{y.value=!1,w.value=null,se(),h.value=!0},te=l=>{y.value=!0,w.value=l,s.goodsItemId=l.goodsItemId,s.userId=l.userId,s.isActive=l.isActive,s.remark=l.remark||"",h.value=!0},le=async l=>{try{await we.confirm(`确定要删除奖品 "${l.goodsItemTitle}" 的指定中奖配置吗?`,"删除确认",{type:"warning"}),await Pe(r.goodsId,l.id),I.success("删除成功"),E()}catch{}},ae=async(l,t)=>{try{await j(r.goodsId,l.id,{isActive:t}),I.success(t?"已启用":"已禁用")}catch(i){l.isActive=!t,I.error(i.message||"状态更新失败")}},oe=async()=>{if(U.value){try{await U.value.validate()}catch{return}T.value=!0;try{if(y.value&&w.value){const l={userId:s.userId,isActive:s.isActive,remark:s.remark||void 0};await j(r.goodsId,w.value.id,l),I.success("更新成功")}else{const l={goodsItemId:s.goodsItemId,userId:s.userId,remark:s.remark||void 0};await Ae(r.goodsId,l),I.success("创建成功")}h.value=!1,E()}catch(l){I.error(l.message||"操作失败")}finally{T.value=!1}}},se=()=>{var l;s.goodsItemId=void 0,s.userId=void 0,s.isActive=!0,s.remark="",k.value=[],N.value=null,(l=U.value)==null||l.resetFields()},de=()=>{E(),X()},ne=()=>{x.value=[],P.value=[],L("update:modelValue",!1)};return(l,t)=>{const i=d("el-icon"),b=d("el-button"),ie=d("el-tooltip"),S=d("el-image"),V=d("el-table-column"),F=d("el-switch"),re=d("el-table"),ue=d("el-empty"),R=d("el-option"),O=d("el-select"),D=d("el-form-item"),ce=d("el-avatar"),me=d("el-input"),pe=d("el-form"),q=d("el-dialog"),ge=_e("loading");return m(),g(q,{modelValue:A.value,"onUpdate:modelValue":t[7]||(t[7]=e=>A.value=e),title:`指定中奖配置 - ${c.goodsTitle}`,width:"900px","close-on-click-modal":!1,onClose:ne,onOpen:de},{footer:o(()=>[a(b,{onClick:t[0]||(t[0]=e=>A.value=!1)},{default:o(()=>[...t[11]||(t[11]=[v("关闭",-1)])]),_:1})]),default:o(()=>[n("div",Te,[a(b,{type:"primary",onClick:ee},{default:o(()=>[a(i,null,{default:o(()=>[a(_(he))]),_:1}),t[8]||(t[8]=v("新增配置 ",-1))]),_:1}),a(ie,{content:"指定中奖功能允许将特定奖品指定给特定用户,只有该用户才能抽中该奖品"},{default:o(()=>[a(i,{class:"help-icon"},{default:o(()=>[a(_(ye))]),_:1})]),_:1})]),Ie((m(),g(re,{data:x.value,border:"",stripe:"","max-height":"400px"},{default:o(()=>[a(V,{label:"奖品","min-width":"200"},{default:o(({row:e})=>[n("div",Be,[a(S,{src:e.goodsItemImgUrl,"preview-src-list":e.goodsItemImgUrl?[e.goodsItemImgUrl]:[],fit:"cover",style:{width:"40px",height:"40px","border-radius":"4px"},"preview-teleported":""},{error:o(()=>[n("div",Ee,[a(i,null,{default:o(()=>[a(_(ke))]),_:1})])]),_:1},8,["src","preview-src-list"]),n("span",Le,p(e.goodsItemTitle||"-"),1)])]),_:1}),a(V,{label:"指定用户","min-width":"180"},{default:o(({row:e})=>[n("div",Ne,[n("div",null,p(e.userNickname||"未知用户"),1),n("div",Se,p(e.userPhone||"-"),1)])]),_:1}),a(V,{label:"状态",width:"100",align:"center"},{default:o(({row:e})=>[a(F,{modelValue:e.isActive,"onUpdate:modelValue":C=>e.isActive=C,onChange:C=>ae(e,C)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),a(V,{prop:"remark",label:"备注","min-width":"120"},{default:o(({row:e})=>[n("span",Fe,p(e.remark||"-"),1)]),_:1}),a(V,{label:"创建时间",width:"160",align:"center"},{default:o(({row:e})=>[v(p(_(Ue)(e.createdAt)),1)]),_:1}),a(V,{label:"操作",width:"120",fixed:"right",align:"center"},{default:o(({row:e})=>[a(b,{type:"primary",link:"",onClick:C=>te(e)},{default:o(()=>[a(i,null,{default:o(()=>[a(_(be))]),_:1}),t[9]||(t[9]=v("编辑 ",-1))]),_:1},8,["onClick"]),a(b,{type:"danger",link:"",onClick:C=>le(e)},{default:o(()=>[a(i,null,{default:o(()=>[a(_(Ve))]),_:1}),t[10]||(t[10]=v("删除 ",-1))]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[ge,z.value]]),!z.value&&x.value.length===0?(m(),g(ue,{key:0,description:"暂无指定中奖配置"})):G("",!0),a(q,{modelValue:h.value,"onUpdate:modelValue":t[6]||(t[6]=e=>h.value=e),title:y.value?"编辑指定中奖配置":"新增指定中奖配置",width:"500px","close-on-click-modal":!1,"append-to-body":""},{footer:o(()=>[a(b,{onClick:t[5]||(t[5]=e=>h.value=!1)},{default:o(()=>[...t[12]||(t[12]=[v("取消",-1)])]),_:1}),a(b,{type:"primary",loading:T.value,onClick:oe},{default:o(()=>[...t[13]||(t[13]=[v(" 确定 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[a(pe,{ref_key:"formRef",ref:U,model:s,rules:Q,"label-width":"100px"},{default:o(()=>[y.value?(m(),g(D,{key:1,label:"奖品"},{default:o(()=>{var e;return[n("span",null,p(((e=w.value)==null?void 0:e.goodsItemTitle)||"-"),1)]}),_:1})):(m(),g(D,{key:0,label:"选择奖品",prop:"goodsItemId"},{default:o(()=>[a(O,{modelValue:s.goodsItemId,"onUpdate:modelValue":t[1]||(t[1]=e=>s.goodsItemId=e),placeholder:"请选择奖品",filterable:"",style:{width:"100%"}},{default:o(()=>[(m(!0),H(J,null,K(W.value,e=>(m(),g(R,{key:e.id,label:e.title,value:e.id},{default:o(()=>[n("div",Re,[a(S,{src:e.imgUrl,fit:"cover",style:{width:"24px",height:"24px","border-radius":"2px","margin-right":"8px"}},null,8,["src"]),n("span",null,p(e.title),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})),a(D,{label:"选择用户",prop:"userId"},{default:o(()=>[a(O,{modelValue:s.userId,"onUpdate:modelValue":t[2]||(t[2]=e=>s.userId=e),placeholder:"输入用户ID/手机号/昵称搜索",filterable:"",remote:"","remote-method":Y,loading:B.value,style:{width:"100%"},onChange:Z},{default:o(()=>[(m(!0),H(J,null,K(k.value,e=>(m(),g(R,{key:e.id,label:`${e.nickname||"未知"} (ID:${e.id})`,value:e.id},{default:o(()=>[n("div",Oe,[a(ce,{src:e.avatar||"",size:24},{default:o(()=>[a(i,null,{default:o(()=>[a(_(xe))]),_:1})]),_:1},8,["src"]),n("div",qe,[n("span",Me,p(e.nickname||"未知用户"),1),n("span",Ge,"ID:"+p(e.id)+" | "+p(e.mobile||"未绑定手机"),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),y.value?(m(),g(D,{key:2,label:"是否启用",prop:"isActive"},{default:o(()=>[a(F,{modelValue:s.isActive,"onUpdate:modelValue":t[3]||(t[3]=e=>s.isActive=e)},null,8,["modelValue"])]),_:1})):G("",!0),a(D,{label:"备注",prop:"remark"},{default:o(()=>[a(me,{modelValue:s.remark,"onUpdate:modelValue":t[4]||(t[4]=e=>s.remark=e),type:"textarea",rows:3,placeholder:"请输入备注(可选)",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]),_:1},8,["modelValue","title"])}}}),We=De(He,[["__scopeId","data-v-817dcd4c"]]);export{We as default};