274 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			274 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <template>
 | ||
|   <div>
 | ||
|     <obj-modal
 | ||
|       ref="modal"
 | ||
|       labelWidth="150px"
 | ||
|       :modalConfig="modalConfig"
 | ||
|       :modalData="modalData"
 | ||
|       :modalHandles="modalHandles"
 | ||
|     >
 | ||
|       <template slot="dialog__content">
 | ||
|         <el-form :model="modalData" ref="modalForm">
 | ||
|           <el-form-item label-width="150px" label="优惠券名称" prop="name">
 | ||
|             <el-input
 | ||
|               style="width: 350px"
 | ||
|               v-model="modalData.name"
 | ||
|               placeholder="请输入优惠券名称"
 | ||
|             >
 | ||
|             </el-input>
 | ||
|           </el-form-item>
 | ||
|           <el-form-item label-width="150px" label="使用日期" prop="name">
 | ||
|             <el-date-picker
 | ||
|               @change="usageDateChange"
 | ||
|               v-model="usageDate"
 | ||
|               value-format="yyyy-MM-dd"
 | ||
|               type="daterange"
 | ||
|               range-separator="至"
 | ||
|               start-placeholder="开始日期"
 | ||
|               end-placeholder="结束日期"
 | ||
|             >
 | ||
|             </el-date-picker>
 | ||
|           </el-form-item>
 | ||
|           <el-form-item label-width="150px" label="开放领取日期" prop="name">
 | ||
|             <el-date-picker
 | ||
|               @change="collectionDateChange"
 | ||
|               v-model="collectionDate"
 | ||
|               value-format="yyyy-MM-dd"
 | ||
|               type="daterange"
 | ||
|               range-separator="至"
 | ||
|               start-placeholder="开始日期"
 | ||
|               end-placeholder="结束日期"
 | ||
|             >
 | ||
|             </el-date-picker>
 | ||
|           </el-form-item>
 | ||
|           <el-form-item label-width="150px" label="选择商品" prop="targetIds">
 | ||
|             <el-input
 | ||
|               style="width: 350px"
 | ||
|               placeholder="请选择选择商品"
 | ||
|               v-model="modalData.targetIds"
 | ||
|             >
 | ||
|               <template slot="append">
 | ||
|                 <el-button @click="selectProduct">请选择</el-button>
 | ||
|               </template>
 | ||
|             </el-input>
 | ||
|             <div v-if="product.name" class="product">
 | ||
|               <div>
 | ||
|                 <el-image
 | ||
|                   style="width: 80px; height: 80px; margin-right: 10px"
 | ||
|                   :src="product.productPhotoList[0].url"
 | ||
|                 >
 | ||
|                 </el-image>
 | ||
|               </div>
 | ||
|               <div>
 | ||
|                 <div style="line-height: 20px">
 | ||
|                   商品名称:{{ product.name }}
 | ||
|                 </div>
 | ||
|                 <div style="line-height: 20px">
 | ||
|                   库存:{{ product.stockNum }}
 | ||
|                 </div>
 | ||
|                 <div style="line-height: 20px; color: rgba(255, 87, 51, 1)">
 | ||
|                   ¥{{ product.minSalePrice }}
 | ||
|                 </div>
 | ||
|               </div>
 | ||
|             </div>
 | ||
|           </el-form-item>
 | ||
|           <el-form-item label-width="150px" label="优惠金额" prop="targetIds">
 | ||
|             <el-input-number
 | ||
|               v-model="modalData.money"
 | ||
|               :min="0"
 | ||
|               label="请输入"
 | ||
|             ></el-input-number>
 | ||
|           </el-form-item>
 | ||
|           <el-form-item label-width="150px" label="发放数量" prop="targetIds">
 | ||
|             <el-input-number
 | ||
|               v-model="modalData.total"
 | ||
|               :min="0"
 | ||
|               :max="99999"
 | ||
|               label="请输入"
 | ||
|             ></el-input-number>
 | ||
|           </el-form-item>
 | ||
|           <el-form-item label-width="150px" label="每人限领" prop="targetIds">
 | ||
|             <el-select v-model="modalData.limitedNum" placeholder="请选择">
 | ||
|               <el-option
 | ||
|                 v-for="item in [
 | ||
|                   {
 | ||
|                     label: '不限',
 | ||
|                     value: 0,
 | ||
|                   },
 | ||
|                   {
 | ||
|                     label: '1张',
 | ||
|                     value: 1,
 | ||
|                   },
 | ||
|                   {
 | ||
|                     label: '2张',
 | ||
|                     value: 2,
 | ||
|                   },
 | ||
|                   {
 | ||
|                     label: '3张',
 | ||
|                     value: 3,
 | ||
|                   },
 | ||
|                   {
 | ||
|                     label: '4张',
 | ||
|                     value: 4,
 | ||
|                   },
 | ||
|                   {
 | ||
|                     label: '5张',
 | ||
|                     value: 5,
 | ||
|                   },
 | ||
|                 ]"
 | ||
|                 :key="item.value"
 | ||
|                 :label="item.label"
 | ||
|                 :value="item.value"
 | ||
|               >
 | ||
|               </el-option>
 | ||
|             </el-select>
 | ||
|           </el-form-item>
 | ||
|         </el-form>
 | ||
|       </template>
 | ||
|     </obj-modal>
 | ||
|     <!-- 选择商品 -->
 | ||
|     <commodity @getProduct="getProduct" ref="commodity"></commodity>
 | ||
|   </div>
 | ||
| </template>
 | ||
| <script>
 | ||
| import commodity from "./commodity.vue";
 | ||
| import { debounce, cloneDeep } from "lodash";
 | ||
| import { Divider } from "element-ui";
 | ||
| import loginVue from "../../../common/login.vue";
 | ||
| export default {
 | ||
|   components: { commodity },
 | ||
|   data() {
 | ||
|     return {
 | ||
|       isAdd: true,
 | ||
|       //表格属性
 | ||
|       modalConfig: {
 | ||
|         title: "添加优惠卷",
 | ||
|         show: false,
 | ||
|         width: "800px",
 | ||
|       },
 | ||
|       formInline: {
 | ||
|         marketId: "",
 | ||
|         shopId: "",
 | ||
|       },
 | ||
|       modalData: {},
 | ||
|       usageDate: [], //使用时间
 | ||
|       collectionDate: [], //领取日期
 | ||
|       product: {}, //商品
 | ||
|     };
 | ||
|   },
 | ||
|   methods: {
 | ||
|     queryTableData(pageNo, pageSize) {},
 | ||
|     toggle(e) {
 | ||
|       if (this.modalConfig.show == false) {
 | ||
|         this.modalConfig.show = true;
 | ||
|       } else {
 | ||
|         this.modalConfig.show = false;
 | ||
|       }
 | ||
|       if (e) {
 | ||
|         this.init(cloneDeep(e));
 | ||
|       }
 | ||
|       return {
 | ||
|         add: (row) => {
 | ||
|           this.formInline = {
 | ||
|             marketId: row.marketId,
 | ||
|             shopId: row.shopId,
 | ||
|           };
 | ||
|           this.modalConfig.title = `添加${row.label}`;
 | ||
|           this.$nextTick(() => {
 | ||
|             this.modalData = {
 | ||
|               category: "NO_THRESHOLD",
 | ||
|               receiveType: "MANUAL",
 | ||
|               couponType: "MONEY",
 | ||
|               isTimeReceive: 1, //0-不限时,1-限时
 | ||
|               name: "",
 | ||
|               useStartTime: "",
 | ||
|               useEndTime: "",
 | ||
|               receiveStartTime: "",
 | ||
|               receiveEndTime: "",
 | ||
|               money: "",
 | ||
|               total: 10000,
 | ||
|               limitedNum: 0,
 | ||
|               minPrice: 0,
 | ||
|               usableRange: "PARTIAL_GOODS", //部分商品-PARTIAL_GOODS 所有商品-ALL_GOODS 部分摊位-PARTIAL_SHOP
 | ||
|             };
 | ||
|             // this.$refs.modal.resetFields();
 | ||
|           });
 | ||
|           this.isAdd = true;
 | ||
|         },
 | ||
|         update: () => {
 | ||
|           this.isAdd = false;
 | ||
|         },
 | ||
|       };
 | ||
|     },
 | ||
|     init(row) {},
 | ||
|     usageDateChange(e) {
 | ||
|       if (e) {
 | ||
|         this.modalData.useStartTime = e[0];
 | ||
|         this.modalData.useEndTime = e[1];
 | ||
|       } else {
 | ||
|         this.modalData.useStartTime = "";
 | ||
|         this.modalData.useEndTime = "";
 | ||
|       }
 | ||
|     },
 | ||
|     collectionDateChange(e) {
 | ||
|       if (e) {
 | ||
|         this.modalData.receiveStartTime = e[0];
 | ||
|         this.modalData.receiveEndTime = e[1];
 | ||
|       } else {
 | ||
|         this.modalData.receiveStartTime = "";
 | ||
|         this.modalData.receiveEndTime = "";
 | ||
|       }
 | ||
|     },
 | ||
|     //选择商品
 | ||
|     selectProduct() {
 | ||
|       console.log("123");
 | ||
|       this.$refs.commodity.toggle().add(this.formInline);
 | ||
|     },
 | ||
|     //获取商品
 | ||
|     getProduct(row) {
 | ||
|       console.log(row);
 | ||
|       this.modalData.targetIds = row.id;
 | ||
|       this.product = row;
 | ||
|     },
 | ||
|   },
 | ||
|   computed: {
 | ||
|     modalHandles() {
 | ||
|       return [
 | ||
|         {
 | ||
|           label: "取消",
 | ||
|           handle: () => {
 | ||
|             this.toggle();
 | ||
|           },
 | ||
|         },
 | ||
|         {
 | ||
|           label: "确认添加",
 | ||
|           type: "primary",
 | ||
|           handle: () => {
 | ||
|             console.log(this.modalData);
 | ||
|             let data = { ...this.modalData };
 | ||
|             data.targetIds = [data.targetIds];
 | ||
|             console.log(this.modalData, data);
 | ||
|             this.$api.coupon
 | ||
|               .addCoupon({ ...data, ...this.formInline })
 | ||
|               .then((res) => {
 | ||
|                 console.log(res);
 | ||
|                 this.$emit("queryList");
 | ||
|                 this.toggle();
 | ||
|               });
 | ||
|           },
 | ||
|         },
 | ||
|       ];
 | ||
|     },
 | ||
|   },
 | ||
|   asyncComputed: {},
 | ||
| };
 | ||
| </script>
 | ||
| <style lang="scss" scoped>
 | ||
| .product {
 | ||
|   display: flex;
 | ||
|   align-items: center;
 | ||
|   margin-top: 10px;
 | ||
|   border: 1px solid #ccc;
 | ||
|   width: 350px;
 | ||
| }
 | ||
| </style> |