var e=Object.defineProperty,t=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,r=(t,o,i)=>o in t?e(t,o,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[o]=i,s=(e,s)=>{for(var l in s||(s={}))o.call(s,l)&&r(e,l,s[l]);if(t)for(var l of t(s))i.call(s,l)&&r(e,l,s[l]);return e},l=(e,t,o)=>new Promise((i,r)=>{var s=e=>{try{a(o.next(e))}catch(t){r(t)}},l=e=>{try{a(o.throw(e))}catch(t){r(t)}},a=e=>e.done?i(e.value):Promise.resolve(e.value).then(s,l);a((o=o.apply(e,t)).next())});import{_ as a}from"./index-DO1zYXDS.js";import{d as p,a as n,r as u,o as m,e as d,f as c,p as j,z as _,l as v,ab as y,u as x,aY as b,h as f,m as g,O as h}from"./index-CZ0Lvzl5.js";/* empty css *//* empty css */import{_ as w}from"./index-P5E0zw8h.js";/* empty css */import{E as k}from"./message-box-mfsaE52U.js";/* empty css *//* empty css *//* empty css */import{c as S}from"./coupons-B3KVevR-.js";import O from"./coupon-dialog-CGVfD7e9.js";import{_ as z}from"./index.vue_vue_type_script_setup_true_lang-BvPXNSi5.js";import{_ as C}from"./index-CCGS-X2U.js";import{E as q}from"./index-CWBrZtwn.js";import{E as A}from"./index-BQ-mpgoy.js";import{_ as E}from"./_plugin-vue_export-helper-BCo6x5W8.js";import"./el-pagination-CqMqz367.js";import"./index-pVAXVlCV.js";import"./index-C6fEXl-e.js";import"./index-BW22oPP6.js";import"./index-K2zzami3.js";import"./use-form-item-BsnpemL_.js";import"./use-form-common-props-U6f9D53_.js";import"./index-BierC7rd.js";import"./token-DWNpOE8r.js";import"./index-DH_vX4BK.js";import"./scroll-bFiZhqzI.js";import"./debounce-BWBxuUbE.js";import"./_baseIteratee-iUx42eT-.js";import"./index-ZgXgJNHL.js";import"./vnode-C4RX5enz.js";import"./index-6-f3xsy2.js";import"./index-MV2EqMi7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-table-column-CioBjwcM.js";import"./_initCloneObject-DfOnBHdn.js";import"./isArrayLikeObject-CQAE3P4Q.js";import"./raf-C-iJO6ki.js";import"./index-BZS0BBj4.js";/* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./tree-select-_Xz6f9er.js";import"./index-R-jt7LR_.js";import"./index-BlgPu7T-.js";import"./index-CUiyhpsI.js";import"./index-_aFOeltJ.js";import"./cloneDeep-tG3tBIiW.js";import"./index-DhBIlDpg.js";import"./index-BEyq4Ilv.js";import"./index-C5-SmfXa.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./slider-C0BHCDqQ.js";import"./index-BiRLqYIK.js";import"./index-D11sKPUb.js";import"./index-DR7AB6IM.js";import"./index-o8DV6baU.js";import"./validator-BHWhHngj.js";import"./index-CgoUqbdT.js";import"./index-DaNWXg3-.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./index-DO8sDDAh.js";import"./use-dialog-BDM4AbF-.js";import"./refs-Cw5r5QN8.js";import"./index.vue_vue_type_script_setup_true_lang-DkYjV9Ul.js";import"./el-popover-F7amLv8q.js";import"./el-dropdown-item-DcxLwUbk.js";const P={class:"page-container"},V=E(p({__name:"index",setup(e){const t=n(!1),o=n([]),i=u({current:1,size:10,total:0}),r=u({name:"",status:void 0}),p=n(!1),E=n("create"),V=n(null),I=[{key:"name",label:"名称",type:"input",props:{placeholder:"请输入优惠券名称",clearable:!0}},{key:"status",label:"状态",type:"select",props:{placeholder:"请选择状态",clearable:!0,options:[{label:"启用",value:1},{label:"禁用",value:2}]}}],$=[{prop:"id",label:"ID",width:80},{prop:"name",label:"名称",minWidth:150},{prop:"status",label:"状态",width:80,useSlot:!0},{prop:"coupon_type",label:"类型",width:100,useSlot:!0},{prop:"discount_type",label:"折扣类型",width:120,useSlot:!0},{prop:"discount_value",label:"折扣值",width:140,useSlot:!0},{prop:"min_amount",label:"最低消费",width:120},{prop:"max_discount",label:"最大折扣",width:120},{prop:"used_quantity",label:"使用情况",width:140,useSlot:!0},{prop:"valid_days",label:"有效期",width:100,useSlot:!0},{prop:"created_at",label:"创建时间",width:160},{prop:"actions",label:"操作",width:150,fixed:"right",useSlot:!0}],L={1:"通用券",2:"活动券",3:"商品券"},D={1:"直减",2:"满减",3:"折扣"},F=e=>1===e.discount_type?`直减¥${e.discount_value}`:2===e.discount_type?`满减¥${e.discount_value}`:3===e.discount_type?`${e.discount_value}‰`:e.discount_value,K=()=>l(this,null,function*(){t.value=!0;try{const e=s({page:i.current,page_size:i.size},r),t=yield S.getList(e);t&&t.list&&Array.isArray(t.list)?(o.value=t.list,i.total=t.total):(o.value=[],i.total=0)}catch(e){h.error("获取优惠券列表失败"),o.value=[],i.total=0}finally{t.value=!1}}),R=()=>{i.current=1,K()},U=()=>{r.name="",r.status=void 0,R()},W=e=>{i.current=e,K()},X=e=>{i.size=e,K()},Y=()=>{V.value=null,E.value="create",p.value=!0},B=e=>l(this,null,function*(){try{yield k.confirm(`确定要删除优惠券 "${e.name}" 吗?`,"提示",{type:"warning"});yield S.delete(e.id);h.success("删除成功"),K()}catch(t){"cancel"!==t&&h.error("删除失败")}}),G=()=>{p.value=!1,K()};return m(()=>{K()}),(e,l)=>{const n=w,u=y,m=q,h=A,k=a;return c(),d("div",P,[j(n,{items:I,modelValue:r,onSearch:R,onReset:U},null,8,["modelValue"]),j(C,{columns:$,"onUpdate:columns":l[0]||(l[0]=e=>$=e),loading:t.value,onRefresh:K},{left:_(()=>[j(m,{type:"primary",onClick:Y},{default:_(()=>[j(u,null,{default:_(()=>[j(x(b))]),_:1}),l[2]||(l[2]=v(" 新增优惠券 ",-1))]),_:1})]),_:1},8,["loading"]),j(k,{loading:t.value,columns:$,data:o.value,pagination:i,onPageChange:W,onSizeChange:X,"empty-text":"暂无数据"},{actions:_(({row:e})=>[j(z,{type:"edit",onClick:t=>(e=>{V.value=s({},e),E.value="edit",p.value=!0})(e)},null,8,["onClick"]),j(z,{type:"delete",onClick:t=>B(e)},null,8,["onClick"])]),status:_(({row:e})=>[j(h,{type:1===e.status?"success":"danger"},{default:_(()=>[v(g(1===e.status?"启用":2===e.status?"禁用":"未知"),1)]),_:2},1032,["type"])]),coupon_type:_(({row:e})=>[j(h,null,{default:_(()=>{return[v(g((t=e.coupon_type||0,L[t]||"未知")),1)];var t}),_:2},1024)]),discount_type:_(({row:e})=>[j(h,null,{default:_(()=>{return[v(g((t=e.discount_type||0,D[t]||"未知")),1)];var t}),_:2},1024)]),discount_value:_(({row:e})=>[f("span",null,g(F(e)),1)]),used_quantity:_(({row:e})=>[f("span",null,g(e.used_quantity)+"/"+g(e.total_quantity||"∞"),1)]),valid_days:_(({row:e})=>[f("span",null,g(e.valid_days)+"天",1)]),_:1},8,["loading","data","pagination"]),j(O,{modelValue:p.value,"onUpdate:modelValue":l[1]||(l[1]=e=>p.value=e),data:V.value,mode:E.value,onSuccess:G},null,8,["modelValue","data","mode"])])}}}),[["__scopeId","data-v-14b56a12"]]);export{V as default};