doum
2026-01-14 d8689abdb2378bdd1c97317ca881173eca26283c
admin/src/views/business/coupon.vue
@@ -2,19 +2,16 @@
  <TableLayout :permissions="['business:coupon:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="优惠券名称" prop="name">
      <el-form-item label="名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入优惠券名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <!-- 0商家优惠券 1平台优惠券 -->
      <!-- <el-form-item label="优惠券类型" prop="type">
        <el-select
          v-model="searchForm.type"
          placeholder="请选择优惠券类型"
        >
          <el-option key="0" :value="0" label="商家优惠券"></el-option>
          <el-option key="1" :value="1" label="平台优惠券"></el-option>
       <el-form-item label="类型" prop="couponType">
        <el-select  v-model="searchForm.couponType" clearable  placeholder="请选择优惠券类型" >
          <el-option key="0" :value="0" label="满减券"></el-option>
          <el-option key="1" :value="1" label="折扣券"></el-option>
        </el-select>
      </el-form-item> -->
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button @click="reset">重置</el-button>
@@ -23,9 +20,8 @@
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:coupon:create', 'business:coupon:delete']">
        <li><el-button type="primary" @click="$refs.operaCouponWindow.open('新建平台优惠券', null, 1)" v-permissions="['business:coupon:create']">新建平台优惠券</el-button></li>
        <li><el-button type="primary" @click="$refs.operaCouponWindow.open('新建商家优惠券', null, 0)" v-permissions="['business:coupon:create']">新建商家优惠券</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:coupon:delete']">删除</el-button></li>
        <li><el-button type="primary" icon="el-icon-plus" @click="$refs.operaCouponWindow.open('新建', null, 1)" v-permissions="['business:coupon:create']">新建</el-button></li>
        <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:coupon:delete']">删除</el-button></li>
      </ul>
      <el-table
        v-loading="isWorking.search"
@@ -35,23 +31,21 @@
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="name" label="优惠券名称" align="center" min-width="120px">
        <el-table-column prop="name" label="优惠券名称" align="center" min-width="120px"></el-table-column>
        <el-table-column label="类型" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-button type="text" @click="showDetail(row)">{{ row.name }}</el-button>
            <span v-if="row.couponType ===0"> 满减券</span>
            <span v-if="row.couponType ===1"> 折扣券</span>
          </template>
        </el-table-column>
        <el-table-column label="优惠规则" align="center" min-width="100px">
        <el-table-column label="优惠规则" align="center" min-width="150px" show-overflow-tooltip>
          <template slot-scope="{row}">
            {{ `满${row.limitPrice}减${row.price}` }}
          </template>
        </el-table-column>
        <el-table-column prop="type" label="优惠券类型" align="center" min-width="100px">
          <template slot-scope="{row}">
            {{ row.type==0?'商家优惠券':'平台优惠券' }}
            <span v-if="row.couponType ===0"> {{ `订单满${row.limitPrice||0}元,减${row.price||0}` }}元</span>
            <span v-if="row.couponType ===1"> {{ `订单满${row.limitPrice||0}元,享${row.price||0}折` }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="num" label="发放总量" align="center" min-width="100px"></el-table-column>
        <el-table-column  label="已领取" align="center" min-width="100px">
        <el-table-column  label="已发送数量" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-button type="text" @click="showCouponUse(row.id)">{{ row.unused + row.used }}</el-button>
          </template>
@@ -62,12 +56,17 @@
          </template>
        </el-table-column>
        <el-table-column prop="used" label="使用数量" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="validDays" label="领取后有效天数" align="center" min-width="110px"></el-table-column>
        <el-table-column prop="startDate" label="开始时间" align="center" min-width="140px"></el-table-column>
        <el-table-column prop="endDate" label="结束时间" align="center" min-width="140px"></el-table-column>
        <el-table-column label="进行状态" align="center" min-width="100px">
        <el-table-column prop="validDays" label="使用有效期" align="center" min-width="210px">
          <template slot-scope="{row}">
            {{ row.status==0 ? '未开始' : row.status==1 ? '进行中' : '已结束' }}
            <span v-if="row.useType ===0"><li> 起:{{ row.startDate}}</li> <li>止:{{row.endDate }}</li></span>
            <span v-if="row.useType ===1"> {{ `领用后${row.validDays||0}天有效` }}</span>
          </template>
        </el-table-column>
        <el-table-column label="适用类型" align="center" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.applyType ===0"> 全程通用</span>
            <span v-if="row.applyType ===1"> 按品类</span>
            <span v-if="row.applyType ===2"> 指定商品</span>
          </template>
        </el-table-column>
        <el-table-column prop="status" label="状态" align="center" min-width="100px">
@@ -87,7 +86,7 @@
          label="操作"
          min-width="120"
          fixed="right"
          align="center"
          align="center"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaCouponWindow.open('编辑优惠券', row)" icon="el-icon-edit" v-permissions="['business:coupon:update']">编辑</el-button>
@@ -126,7 +125,7 @@
      // 搜索
      searchForm: {
        name: '',
        type: ''
        couponType: ''
      }
    }
  },
@@ -144,7 +143,7 @@
      this.$refs.operaCouponDetail.open('优惠券详情', row)
    },
    showCouponUse(id) {
      this.$refs.operaCouponUsedDetail.open('优惠券领取详情', id)
    },
    statusChange(row) {