mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-30 09:48:43 +08:00 
			
		
		
		
	promotion:增加优惠劵的前端分页界面 80%
This commit is contained in:
		
							
								
								
									
										18
									
								
								yudao-ui-admin/src/api/mall/promotion/coupon.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								yudao-ui-admin/src/api/mall/promotion/coupon.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | import request from '@/utils/request' | ||||||
|  |  | ||||||
|  | // 删除优惠劵 | ||||||
|  | export function deleteCoupon(id) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/promotion/coupon/delete?id=' + id, | ||||||
|  |     method: 'delete' | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 获得优惠劵分页 | ||||||
|  | export function getCouponPage(query) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/promotion/coupon/page', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
| @@ -63,7 +63,8 @@ export const DICT_TYPE = { | |||||||
|   // ========== MALL - PROMOTION 模块 ========== |   // ========== MALL - PROMOTION 模块 ========== | ||||||
|   PROMOTION_DISCOUNT_TYPE: 'promotion_discount_type', // 优惠类型 |   PROMOTION_DISCOUNT_TYPE: 'promotion_discount_type', // 优惠类型 | ||||||
|   PROMOTION_PRODUCT_SCOPE: 'promotion_product_scope', // 营销的商品范围 |   PROMOTION_PRODUCT_SCOPE: 'promotion_product_scope', // 营销的商品范围 | ||||||
|   COUPON_TEMPLATE_VALIDITY_TYPE: 'coupon_template_validity_type', // 优惠劵模板的有限期类型 |   PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE: 'promotion_coupon_template_validity_type', // 优惠劵模板的有限期类型 | ||||||
|  |   PROMOTION_COUPON_STATUS: 'promotion_coupon_status', // 优惠劵的状态 | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
							
								
								
									
										158
									
								
								yudao-ui-admin/src/views/mall/promotion/coupon/index.vue
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										158
									
								
								yudao-ui-admin/src/views/mall/promotion/coupon/index.vue
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,158 @@ | |||||||
|  | <template> | ||||||
|  |   <div class="app-container"> | ||||||
|  |     <!-- 搜索工作栏 --> | ||||||
|  |     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> | ||||||
|  |       <el-form-item label="会员昵称" prop="nickname"> | ||||||
|  |         <el-input v-model="queryParams.nickname" placeholder="请输入会员昵称" clearable @keyup.enter.native="handleQuery"/> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="创建时间" prop="createTime"> | ||||||
|  |         <el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange" | ||||||
|  |                         range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" /> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item> | ||||||
|  |         <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> | ||||||
|  |         <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> | ||||||
|  |       </el-form-item> | ||||||
|  |     </el-form> | ||||||
|  |  | ||||||
|  |     <!-- 操作工具栏 --> | ||||||
|  |     <el-row :gutter="10" class="mb8"> | ||||||
|  |       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> | ||||||
|  |     </el-row> | ||||||
|  |  | ||||||
|  |     <!-- Tab 选项:真正的内容在 Lab --> | ||||||
|  |     <el-tabs v-model="activeTab" type="card" @tab-click="tabClick" style="margin-top: -40px;"> | ||||||
|  |       <el-tab-pane v-for="tab in statusTabs" :key="tab.value" :label="tab.label" :name="tab.value" /> | ||||||
|  |     </el-tabs> | ||||||
|  |  | ||||||
|  |     <!-- 列表 --> | ||||||
|  |     <el-table v-loading="loading" :data="list"> | ||||||
|  |       <el-table-column label="会员信息" align="center" prop="nickname" /> <!-- TODO 芋艿:以后支持头像,支持跳转 --> | ||||||
|  |       <el-table-column label="优惠劵" align="center" prop="name" /> | ||||||
|  |       <el-table-column label="优惠码状态" align="center" prop="status" /> | ||||||
|  |       <el-table-column label="生效开始时间" align="center" prop="validStartTime" width="180"> | ||||||
|  |         <template slot-scope="scope"> | ||||||
|  |           <span>{{ parseTime(scope.row.validStartTime) }}</span> | ||||||
|  |         </template> | ||||||
|  |       </el-table-column> | ||||||
|  |       <el-table-column label="生效结束时间" align="center" prop="validEndTime" width="180"> | ||||||
|  |         <template slot-scope="scope"> | ||||||
|  |           <span>{{ parseTime(scope.row.validEndTime) }}</span> | ||||||
|  |         </template> | ||||||
|  |       </el-table-column> | ||||||
|  |       <el-table-column label="使用时间" align="center" prop="useTime" width="180"> | ||||||
|  |         <template slot-scope="scope"> | ||||||
|  |           <span>{{ parseTime(scope.row.useTime) }}</span> | ||||||
|  |         </template> | ||||||
|  |       </el-table-column> | ||||||
|  |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | ||||||
|  |         <template slot-scope="scope"> | ||||||
|  |           <span>{{ parseTime(scope.row.createTime) }}</span> | ||||||
|  |         </template> | ||||||
|  |       </el-table-column> | ||||||
|  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||||
|  |         <template slot-scope="scope"> | ||||||
|  |           <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" | ||||||
|  |                      v-hasPermi="['promotion:coupon:delete']">删除</el-button> | ||||||
|  |         </template> | ||||||
|  |       </el-table-column> | ||||||
|  |     </el-table> | ||||||
|  |     <!-- 分页组件 --> | ||||||
|  |     <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" | ||||||
|  |                 @pagination="getList"/> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | import { deleteCoupon, getCouponPage } from "@/api/mall/promotion/coupon"; | ||||||
|  | import { DICT_TYPE, getDictDatas} from "@/utils/dict"; | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   name: "Coupon", | ||||||
|  |   components: { | ||||||
|  |   }, | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       // 遮罩层 | ||||||
|  |       loading: true, | ||||||
|  |       // 导出遮罩层 | ||||||
|  |       exportLoading: false, | ||||||
|  |       // 显示搜索条件 | ||||||
|  |       showSearch: true, | ||||||
|  |       // 总条数 | ||||||
|  |       total: 0, | ||||||
|  |       // 优惠劵列表 | ||||||
|  |       list: [], | ||||||
|  |       // 弹出层标题 | ||||||
|  |       title: "", | ||||||
|  |       // 是否显示弹出层 | ||||||
|  |       open: false, | ||||||
|  |       // 查询参数 | ||||||
|  |       queryParams: { | ||||||
|  |         pageNo: 1, | ||||||
|  |         pageSize: 10, | ||||||
|  |         createTime: [], | ||||||
|  |         status: undefined, | ||||||
|  |       }, | ||||||
|  |       // Tab 想选 | ||||||
|  |       activeTab: 'all', | ||||||
|  |       statusTabs: [{ | ||||||
|  |         label: '全部', | ||||||
|  |         value: 'all' | ||||||
|  |       }], | ||||||
|  |     }; | ||||||
|  |   }, | ||||||
|  |   created() { | ||||||
|  |     this.getList(); | ||||||
|  |     // 设置 statuses 过滤 | ||||||
|  |     for (const dict of getDictDatas(DICT_TYPE.PROMOTION_COUPON_STATUS)) { | ||||||
|  |       this.statusTabs.push({ | ||||||
|  |         label: dict.label, | ||||||
|  |         value: dict.value | ||||||
|  |       }) | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   methods: { | ||||||
|  |     /** 查询列表 */ | ||||||
|  |     getList() { | ||||||
|  |       this.loading = true; | ||||||
|  |       // 执行查询 | ||||||
|  |       getCouponPage(this.queryParams).then(response => { | ||||||
|  |         this.list = response.data.list; | ||||||
|  |         this.total = response.data.total; | ||||||
|  |         this.loading = false; | ||||||
|  |       }); | ||||||
|  |     }, | ||||||
|  |     /** 取消按钮 */ | ||||||
|  |     cancel() { | ||||||
|  |       this.open = false; | ||||||
|  |       this.reset(); | ||||||
|  |     }, | ||||||
|  |     /** 搜索按钮操作 */ | ||||||
|  |     handleQuery() { | ||||||
|  |       this.queryParams.pageNo = 1; | ||||||
|  |       this.getList(); | ||||||
|  |     }, | ||||||
|  |     /** 重置按钮操作 */ | ||||||
|  |     resetQuery() { | ||||||
|  |       this.resetForm("queryForm"); | ||||||
|  |       this.handleQuery(); | ||||||
|  |     }, | ||||||
|  |     /** 删除按钮操作 */ | ||||||
|  |     handleDelete(row) { | ||||||
|  |       const id = row.id; | ||||||
|  |       this.$modal.confirm('是否确认删除优惠劵编号为"' + id + '"的数据项?').then(function() { | ||||||
|  |           return deleteCoupon(id); | ||||||
|  |         }).then(() => { | ||||||
|  |           this.getList(); | ||||||
|  |           this.$modal.msgSuccess("删除成功"); | ||||||
|  |         }).catch(() => {}); | ||||||
|  |     }, | ||||||
|  |     tabClick(tab) { | ||||||
|  |       this.queryParams.status = tab.name === 'all' ? undefined : tab.name; | ||||||
|  |       this.list = []; | ||||||
|  |       this.getList(); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | }; | ||||||
|  | </script> | ||||||
| @@ -117,7 +117,7 @@ | |||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="有效期类型" prop="validityType"> |         <el-form-item label="有效期类型" prop="validityType"> | ||||||
|           <el-radio-group v-model="form.validityType"> |           <el-radio-group v-model="form.validityType"> | ||||||
|             <el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COUPON_TEMPLATE_VALIDITY_TYPE)" |             <el-radio v-for="dict in this.getDictDatas(DICT_TYPE.PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE)" | ||||||
|                       :key="dict.value" :label="parseInt(dict.value)">{{dict.label}}</el-radio> |                       :key="dict.value" :label="parseInt(dict.value)">{{dict.label}}</el-radio> | ||||||
|           </el-radio-group> |           </el-radio-group> | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV