Files
ai_dianshang/admin/dist/assets/CouponList-fe1d298c.js
2025-11-28 15:18:10 +08:00

2 lines
11 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{r as f,b as I,k as S,z as re,c as s,I as pe,o as y,d as b,e as d,f as l,w as o,E as m,G as U,h as u,g as me,t as p,L as R,J as _e,l as H,n as K,bY as ce,c8 as fe,ce as ye,bX as ve}from"./index-01a32b87.js";import{g as ge,u as be,c as Ve,d as Ce,b as he,a as ke}from"./coupons-fba9fa19.js";import{_ as De}from"./_plugin-vue_export-helper-c27b6911.js";const xe={class:"coupon-list-container"},we={class:"page-header"},Ue={key:0,class:"table-toolbar"},Re={key:0},Me={key:1},Be={key:2},Te={class:"pagination-container"},ze={class:"value-input-group"},Le={class:"value-unit"},Se={key:0,class:"form-tip"},Ae={class:"value-input-group"},Ne={__name:"CouponList",setup($e){const M=f(!1),A=f([]),N=f(0),V=f([]),v=f(!1),B=f("创建优惠券"),T=f(!1),D=f(null),i=I({page:1,page_size:10,keyword:"",type:"",status:""}),t=I({id:null,name:"",type:1,value:0,valueDisplay:0,min_amount:0,minAmountDisplay:0,description:"",timeRange:[],start_time:"",end_time:"",total_count:0,status:1}),j={name:[{required:!0,message:"请输入优惠券名称",trigger:"blur"}],type:[{required:!0,message:"请选择优惠券类型",trigger:"change"}],value:[{required:!0,message:"请输入优惠额度",trigger:"blur"}],timeRange:[{required:!0,message:"请选择有效期",trigger:"change"}]};S(()=>t.type,()=>{t.valueDisplay=0,t.value=0}),S(()=>t.valueDisplay,n=>{t.type===1?t.value=Math.round(n*100):t.type===2&&(t.value=Math.round(n*10))}),S(()=>t.minAmountDisplay,n=>{t.min_amount=Math.round(n*100)});const G=n=>({1:"满减券",2:"折扣券",3:"免邮券"})[n]||"未知",J=n=>({1:"success",2:"warning",3:"info"})[n]||"",$=n=>n?new Date(n).toLocaleString("zh-CN"):"-",C=async()=>{M.value=!0;try{const{data:n}=await ge(i);A.value=n.list||[],N.value=n.total||0}catch{m.error("获取优惠券列表失败")}finally{M.value=!1}},g=()=>{i.page=1,C()},P=()=>{i.keyword="",i.type="",i.status="",g()},Q=n=>{V.value=n.map(e=>e.id)},X=()=>{B.value="创建优惠券",Z(),v.value=!0},O=n=>{B.value="编辑优惠券",t.id=n.id,t.name=n.name,t.type=n.type,t.description=n.description,t.total_count=n.total_count,t.status=n.status,n.type===1?t.valueDisplay=n.value/100:n.type===2&&(t.valueDisplay=n.value/10),t.minAmountDisplay=n.min_amount/100,t.timeRange=[n.start_time,n.end_time],v.value=!0},W=async()=>{D.value&&await D.value.validate(async n=>{if(n){t.start_time=t.timeRange[0],t.end_time=t.timeRange[1],T.value=!0;try{const e={name:t.name,type:t.type,value:t.value,min_amount:t.min_amount,description:t.description,start_time:t.start_time,end_time:t.end_time,total_count:t.total_count,status:t.status};t.id?(await be(t.id,e),m.success("更新成功")):(await Ve(e),m.success("创建成功")),v.value=!1,C()}catch(e){m.error(e.message||"操作失败")}finally{T.value=!1}}})},Z=()=>{var n;t.id=null,t.name="",t.type=1,t.value=0,t.valueDisplay=0,t.min_amount=0,t.minAmountDisplay=0,t.description="",t.timeRange=[],t.start_time="",t.end_time="",t.total_count=0,t.status=1,(n=D.value)==null||n.resetFields()},ee=n=>{K.confirm(`确定要删除优惠券"${n.name}"吗?`,"删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{try{await Ce(n.id),m.success("删除成功"),C()}catch(e){m.error(e.message||"删除失败")}}).catch(()=>{})},te=()=>{K.confirm(`确定要删除选中的 ${V.value.length} 个优惠券吗?`,"批量删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{try{await he(V.value),m.success("批量删除成功"),C()}catch(n){m.error(n.message||"批量删除失败")}}).catch(()=>{})},le=async n=>{try{await ke(n.id,n.status),m.success("状态更新成功")}catch(e){n.status=n.status===1?0:1,m.error(e.message||"状态更新失败")}};return re(()=>{C()}),(n,e)=>{const x=s("el-icon"),c=s("el-button"),z=s("el-input"),r=s("el-form-item"),h=s("el-option"),q=s("el-select"),E=s("el-form"),F=s("el-card"),_=s("el-table-column"),ae=s("el-tag"),ne=s("el-switch"),oe=s("el-table"),se=s("el-pagination"),k=s("el-radio"),Y=s("el-radio-group"),L=s("el-input-number"),ue=s("el-date-picker"),ie=s("el-dialog"),de=pe("loading");return y(),b("div",xe,[d("div",we,[e[14]||(e[14]=d("h2",null,"优惠券管理",-1)),l(c,{type:"primary",onClick:X},{default:o(()=>[l(x,null,{default:o(()=>[l(U(ce))]),_:1}),e[13]||(e[13]=u(" 创建优惠券 ",-1))]),_:1})]),l(F,{class:"filter-card",shadow:"never"},{default:o(()=>[l(E,{inline:!0,model:i,class:"filter-form"},{default:o(()=>[l(r,{label:"关键词"},{default:o(()=>[l(z,{modelValue:i.keyword,"onUpdate:modelValue":e[0]||(e[0]=a=>i.keyword=a),placeholder:"优惠券名称/描述",clearable:"",onClear:g,onKeyup:me(g,["enter"])},null,8,["modelValue"])]),_:1}),l(r,{label:"类型"},{default:o(()=>[l(q,{modelValue:i.type,"onUpdate:modelValue":e[1]||(e[1]=a=>i.type=a),placeholder:"全部类型",clearable:""},{default:o(()=>[l(h,{label:"满减券",value:1}),l(h,{label:"折扣券",value:2}),l(h,{label:"免邮券",value:3})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"状态"},{default:o(()=>[l(q,{modelValue:i.status,"onUpdate:modelValue":e[2]||(e[2]=a=>i.status=a),placeholder:"全部状态",clearable:""},{default:o(()=>[l(h,{label:"启用",value:1}),l(h,{label:"禁用",value:0})]),_:1},8,["modelValue"])]),_:1}),l(r,null,{default:o(()=>[l(c,{type:"primary",onClick:g},{default:o(()=>[l(x,null,{default:o(()=>[l(U(fe))]),_:1}),e[15]||(e[15]=u(" 查询 ",-1))]),_:1}),l(c,{onClick:P},{default:o(()=>[l(x,null,{default:o(()=>[l(U(ye))]),_:1}),e[16]||(e[16]=u(" 重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),l(F,{class:"table-card",shadow:"never"},{default:o(()=>[V.value.length>0?(y(),b("div",Ue,[l(c,{type:"danger",onClick:te},{default:o(()=>[l(x,null,{default:o(()=>[l(U(ve))]),_:1}),u(" 批量删除 ("+p(V.value.length)+") ",1)]),_:1})])):R("",!0),_e((y(),H(oe,{data:A.value,style:{width:"100%"},onSelectionChange:Q},{default:o(()=>[l(_,{type:"selection",width:"55"}),l(_,{prop:"id",label:"ID",width:"80"}),l(_,{prop:"name",label:"优惠券名称","min-width":"200","show-overflow-tooltip":""}),l(_,{label:"类型",width:"100"},{default:o(({row:a})=>[l(ae,{type:J(a.type)},{default:o(()=>[u(p(G(a.type)),1)]),_:2},1032,["type"])]),_:1}),l(_,{label:"优惠信息",width:"150"},{default:o(({row:a})=>[a.type===1?(y(),b("span",Re,"满"+p((a.min_amount/100).toFixed(2))+"减"+p((a.value/100).toFixed(2)),1)):a.type===2?(y(),b("span",Me,p((a.value/10).toFixed(1))+"折",1)):a.type===3?(y(),b("span",Be,"免邮")):R("",!0)]),_:1}),l(_,{label:"有效期","min-width":"300"},{default:o(({row:a})=>[u(p($(a.start_time))+" ~ "+p($(a.end_time)),1)]),_:1}),l(_,{label:"库存/使用",width:"120"},{default:o(({row:a})=>[d("div",null,[d("div",null,"总量: "+p(a.total_count||"无限"),1),d("div",null,"已领: "+p(a.received_count||0),1),d("div",null,"已用: "+p(a.used_count||0),1)])]),_:1}),l(_,{label:"状态",width:"100"},{default:o(({row:a})=>[l(ne,{modelValue:a.status,"onUpdate:modelValue":w=>a.status=w,"active-value":1,"inactive-value":0,onChange:w=>le(a)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),l(_,{label:"操作",width:"150",fixed:"right"},{default:o(({row:a})=>[l(c,{link:"",type:"primary",onClick:w=>O(a)},{default:o(()=>[...e[17]||(e[17]=[u("编辑",-1)])]),_:1},8,["onClick"]),l(c,{link:"",type:"danger",onClick:w=>ee(a)},{default:o(()=>[...e[18]||(e[18]=[u("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[de,M.value]]),d("div",Te,[l(se,{"current-page":i.page,"page-size":i.page_size,"page-sizes":[10,20,50,100],total:N.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:g,onCurrentChange:g},null,8,["current-page","page-size","total"])])]),_:1}),l(ie,{modelValue:v.value,"onUpdate:modelValue":e[12]||(e[12]=a=>v.value=a),title:B.value,width:"600px","close-on-click-modal":!1},{footer:o(()=>[l(c,{onClick:e[11]||(e[11]=a=>v.value=!1)},{default:o(()=>[...e[27]||(e[27]=[u("取消",-1)])]),_:1}),l(c,{type:"primary",onClick:W,loading:T.value},{default:o(()=>[...e[28]||(e[28]=[u(" 确定 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[l(E,{ref_key:"formRef",ref:D,model:t,rules:j,"label-width":"100px"},{default:o(()=>[l(r,{label:"优惠券名称",prop:"name"},{default:o(()=>[l(z,{modelValue:t.name,"onUpdate:modelValue":e[3]||(e[3]=a=>t.name=a),placeholder:"请输入优惠券名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(r,{label:"优惠券类型",prop:"type"},{default:o(()=>[l(Y,{modelValue:t.type,"onUpdate:modelValue":e[4]||(e[4]=a=>t.type=a)},{default:o(()=>[l(k,{label:1},{default:o(()=>[...e[19]||(e[19]=[u("满减券",-1)])]),_:1}),l(k,{label:2},{default:o(()=>[...e[20]||(e[20]=[u("折扣券",-1)])]),_:1}),l(k,{label:3},{default:o(()=>[...e[21]||(e[21]=[u("免邮券",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t.type!==3?(y(),H(r,{key:0,label:"优惠额度",prop:"value"},{default:o(()=>[d("div",ze,[l(L,{modelValue:t.valueDisplay,"onUpdate:modelValue":e[5]||(e[5]=a=>t.valueDisplay=a),min:.01,max:t.type===2?9.9:99999,precision:2,step:t.type===2?.1:1},null,8,["modelValue","max","step"]),d("span",Le,p(t.type===1?"元":"折"),1)]),t.type===2?(y(),b("div",Se," 折扣范围0.1折 - 9.9折85 = 8.5折) ")):R("",!0)]),_:1})):R("",!0),l(r,{label:"最低消费",prop:"min_amount"},{default:o(()=>[d("div",Ae,[l(L,{modelValue:t.minAmountDisplay,"onUpdate:modelValue":e[6]||(e[6]=a=>t.minAmountDisplay=a),min:0,max:99999,precision:2,step:1},null,8,["modelValue"]),e[22]||(e[22]=d("span",{class:"value-unit"},"元",-1))]),e[23]||(e[23]=d("div",{class:"form-tip"},"0表示无门槛",-1))]),_:1}),l(r,{label:"有效期",prop:"timeRange"},{default:o(()=>[l(ue,{modelValue:t.timeRange,"onUpdate:modelValue":e[7]||(e[7]=a=>t.timeRange=a),type:"datetimerange","range-separator":"至","start-placeholder":"开始时间","end-placeholder":"结束时间","value-format":"YYYY-MM-DDTHH:mm:ss",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(r,{label:"发放数量",prop:"total_count"},{default:o(()=>[l(L,{modelValue:t.total_count,"onUpdate:modelValue":e[8]||(e[8]=a=>t.total_count=a),min:0,max:999999,step:1},null,8,["modelValue"]),e[24]||(e[24]=d("div",{class:"form-tip"},"0表示不限量",-1))]),_:1}),l(r,{label:"优惠券描述",prop:"description"},{default:o(()=>[l(z,{modelValue:t.description,"onUpdate:modelValue":e[9]||(e[9]=a=>t.description=a),type:"textarea",rows:3,placeholder:"请输入优惠券描述",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(r,{label:"状态",prop:"status"},{default:o(()=>[l(Y,{modelValue:t.status,"onUpdate:modelValue":e[10]||(e[10]=a=>t.status=a)},{default:o(()=>[l(k,{label:1},{default:o(()=>[...e[25]||(e[25]=[u("启用",-1)])]),_:1}),l(k,{label:0},{default:o(()=>[...e[26]||(e[26]=[u("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}},Ye=De(Ne,[["__scopeId","data-v-b5e9acf1"]]);export{Ye as default};