Эх сурвалжийг харах

Merge branch 'test' of mangpiao/mp-ui-pc into master

mangpiao 2 жил өмнө
parent
commit
f95e8c9c6a

+ 3 - 0
src/views/business/ticket/components/AwardsList.vue

@@ -48,6 +48,7 @@
             <el-table-column label="奖品名称" prop="title" >
             <el-table-column label="奖品名称" prop="title" >
               <template slot-scope="{ row }">
               <template slot-scope="{ row }">
                 <div v-if="row.prizeType == 'coin' && row.value >= 0">盲豆 x{{ row.value }}</div>
                 <div v-if="row.prizeType == 'coin' && row.value >= 0">盲豆 x{{ row.value }}</div>
+                <div v-else-if="row.prizeType == 'red_pkg' && row.value >= 0">微信红包 {{ $numberFormat(row.value) }} 元</div>
                 <div v-else>{{ row.title }}</div>
                 <div v-else>{{ row.title }}</div>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
@@ -57,6 +58,7 @@
                 <div v-if="scope.row.prizeType == 'coupon'">券</div>
                 <div v-if="scope.row.prizeType == 'coupon'">券</div>
                 <div v-if="scope.row.prizeType == 'coupon_pkg'">券包</div>
                 <div v-if="scope.row.prizeType == 'coupon_pkg'">券包</div>
                 <div v-if="scope.row.prizeType == 'coin'">盲豆</div>
                 <div v-if="scope.row.prizeType == 'coin'">盲豆</div>
+                <div v-if="scope.row.prizeType == 'red_pkg'">微信红包</div>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
             <el-table-column label="商品价格">
             <el-table-column label="商品价格">
@@ -120,6 +122,7 @@
               <el-dropdown-item command="coupon">券</el-dropdown-item>
               <el-dropdown-item command="coupon">券</el-dropdown-item>
               <el-dropdown-item command="coupon_pkg">券包</el-dropdown-item>
               <el-dropdown-item command="coupon_pkg">券包</el-dropdown-item>
               <el-dropdown-item command="coin">盲豆</el-dropdown-item>
               <el-dropdown-item command="coin">盲豆</el-dropdown-item>
+              <el-dropdown-item command="red_pkg">微信红包</el-dropdown-item>
             </el-dropdown-menu>
             </el-dropdown-menu>
           </el-dropdown>
           </el-dropdown>
         </div>
         </div>

+ 1 - 1
src/views/business/ticket/components/CoinAdd.vue

@@ -64,7 +64,7 @@ export default {
         quantity: 1,
         quantity: 1,
         title: `盲豆 x${this.coinForm.quantity}`,
         title: `盲豆 x${this.coinForm.quantity}`,
         picUrl: publicFileGetUrl + "md.png",
         picUrl: publicFileGetUrl + "md.png",
-        coinValue: this.coinForm.quantity,
+        value: Number(this.coinForm.quantity),
         sortWeight: 100
         sortWeight: 100
       };
       };
       this.$refs["coinForm"].validate((valid) => {
       this.$refs["coinForm"].validate((valid) => {

+ 96 - 0
src/views/business/ticket/components/RedPkgAdd.vue

@@ -0,0 +1,96 @@
+<template>
+  <div>
+    <el-dialog
+      title="添加微信红包奖品"
+      :visible.sync="dialogVisible"
+      :before-close="close"
+      width="500px"
+    >
+      <el-form
+        :model="packetForm"
+        :rules="packetRules"
+        ref="packetForm"
+        label-width="100px"
+      >
+        <el-form-item label="金额" prop="quantity">
+          <el-input
+            v-model="packetForm.quantity"
+            size="small"
+            placeholder="请输入微信红包金额"
+            style="width: 200px"
+          />
+        </el-form-item>
+      </el-form>
+      <div class="dialog-btn">
+        <el-button size="small" @click="close"> 取 消 </el-button>
+        <div class="ge"></div>
+        <el-button type="primary" size="small" @click="confirmRedPkg">
+          确 认
+        </el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { publicFileGetUrl } from "@/api/common";
+import { accMul, accDiv } from "@/utils/util";
+export default{
+  name: "RedPkgAdd",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  data() {
+    return {
+      packetForm: { quantity: "" },
+      packetRules: {
+        quantity: [
+          { required: true, message: "请输入金额", trigger: "blur" },
+          {
+            pattern:
+              /^([1-9]\d*(\.\d{1,2})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/,
+            message: "请输入合法的金额数字,最多两位小数",
+            trigger: ["blur", "change"],
+          },
+        ],
+      },
+    };
+  },
+  methods: {
+    // 确认输入金额
+    confirmRedPkg() {
+      let redPacket = {
+        prizeType: "red_pkg",
+        quantity: 1,
+        title: `微信红包 ${this.packetForm.quantity} 元`,
+        picUrl: publicFileGetUrl + "static/redPkg.png",
+        value: accMul(this.packetForm.quantity, 100),
+        sortWeight: 100
+      };
+      this.$refs["packetForm"].validate((valid) => {
+        if (valid) {
+          this.$emit("confirmRedPkg", redPacket);
+        } else {
+          return false;
+        }
+      });
+    },
+    close() {
+      this.$emit("close");
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.dialog-btn {
+  display: flex;
+  align-content: center;
+  justify-content: flex-end;
+  padding: 40px 0 0;
+  .ge {
+    width: 40px;
+  }
+}
+</style>

+ 27 - 4
src/views/business/ticket/create.vue

@@ -215,6 +215,8 @@
     <coupon-pkg-add :dialog-visible="couponPkgTableVisible" :iconic="iconic" @close="close" @confirmCouponPkgForm="confirmCouponPkgForm" @confirmCouponPkg="confirmCouponPkg" v-if="couponPkgTableVisible" />
     <coupon-pkg-add :dialog-visible="couponPkgTableVisible" :iconic="iconic" @close="close" @confirmCouponPkgForm="confirmCouponPkgForm" @confirmCouponPkg="confirmCouponPkg" v-if="couponPkgTableVisible" />
     <!-- 添加盲豆 -->
     <!-- 添加盲豆 -->
     <coin-add :dialog-visible="coinTableVisible" @close="close" @confirmCoin="confirmCoin" v-if="coinTableVisible" />
     <coin-add :dialog-visible="coinTableVisible" @close="close" @confirmCoin="confirmCoin" v-if="coinTableVisible" />
+    <!-- 添加微信红包 -->
+    <red-pkg-add :dialog-visible="redPkgTableVisible" @close="close" @confirmRedPkg="confirmRedPkg" v-if="redPkgTableVisible" />
    </div>
    </div>
 </template>
 </template>
 <script>
 <script>
@@ -231,6 +233,7 @@ import CouponAdd from "./components/CouponAdd"
 import CouponPkgAdd from "./components/CouponPkgAdd"
 import CouponPkgAdd from "./components/CouponPkgAdd"
 import CoinAdd from "./components/CoinAdd"
 import CoinAdd from "./components/CoinAdd"
 import AwardForm from "./components/AwardForm"
 import AwardForm from "./components/AwardForm"
+import RedPkgAdd from './components/RedPkgAdd.vue';
 export default {
 export default {
   name: "TicketCreate",
   name: "TicketCreate",
   mixins: [CustomFieldsMixin],
   mixins: [CustomFieldsMixin],
@@ -242,6 +245,7 @@ export default {
     CoinAdd,
     CoinAdd,
     Upload,
     Upload,
     AwardForm,
     AwardForm,
+    RedPkgAdd,
   },
   },
   data() {
   data() {
     return {
     return {
@@ -262,6 +266,7 @@ export default {
         originPrice: 0, //划线价
         originPrice: 0, //划线价
         disabled: false,
         disabled: false,
         saleChannelType: 1,//销售范围类型
         saleChannelType: 1,//销售范围类型
+        isHaveRedPkg: 0,
       },
       },
       // 门店列表
       // 门店列表
       siteList: [],
       siteList: [],
@@ -371,6 +376,7 @@ export default {
       couponTableVisible: false, // 添加卡券弹框
       couponTableVisible: false, // 添加卡券弹框
       couponPkgTableVisible: false, // 添加券包弹框
       couponPkgTableVisible: false, // 添加券包弹框
       coinTableVisible: false, // 添加盲豆弹框
       coinTableVisible: false, // 添加盲豆弹框
+      redPkgTableVisible: false, //添加微信红包
       pageParams: {
       pageParams: {
         pageNum: 1,
         pageNum: 1,
         pageSize: 10,
         pageSize: 10,
@@ -511,6 +517,18 @@ export default {
             return;
             return;
           }
           }
 
 
+          this.form.isHaveRedPkg = 0
+
+          for (let i = 0; i < this.awardsList.length; i++) {
+            const item = this.awardsList[i];
+            for (let j = 0; j < item.prizeList.length; j++) {
+              if(item.prizeList[j].prizeType == 'red_pkg') {
+                this.form.isHaveRedPkg = 1
+                break
+              }
+            }
+          }
+
           let prizeIndex = this.awardsList.findIndex((item) => {
           let prizeIndex = this.awardsList.findIndex((item) => {
             return !item.prizeList.length && item.quantity > 0;
             return !item.prizeList.length && item.quantity > 0;
           });
           });
@@ -549,7 +567,7 @@ export default {
                 refId: ele.goodsId || ele.couponId || ele.id,
                 refId: ele.goodsId || ele.couponId || ele.id,
                 prizeType: ele.prizeType,
                 prizeType: ele.prizeType,
                 quantity: ele.quantity,
                 quantity: ele.quantity,
-                value: Number(ele.coinValue),
+                value: ele.value,
               };
               };
             });
             });
           });
           });
@@ -640,6 +658,7 @@ export default {
       this.couponTableVisible = false;
       this.couponTableVisible = false;
       this.couponPkgTableVisible = false;
       this.couponPkgTableVisible = false;
       this.coinTableVisible = false;
       this.coinTableVisible = false;
+      this.redPkgTableVisible = false;
     },
     },
 
 
     changeType(e) {
     changeType(e) {
@@ -662,6 +681,9 @@ export default {
       }else if(e == "ticketGoods") {
       }else if(e == "ticketGoods") {
         this.iconic = 'goods'
         this.iconic = 'goods'
         this.goodsTableVisible2 = true;
         this.goodsTableVisible2 = true;
+      }else if(e == "red_pkg") {
+        this.iconic = 'redPacket'
+        this.redPkgTableVisible = true;
       }
       }
     },
     },
     goodsCommand(e) {
     goodsCommand(e) {
@@ -688,17 +710,18 @@ export default {
     confirmCoupon(arr) {
     confirmCoupon(arr) {
       this.$refs.awards.add(1, arr)
       this.$refs.awards.add(1, arr)
     },
     },
-
     // 确认选中券包
     // 确认选中券包
     confirmCouponPkg(arr) {
     confirmCouponPkg(arr) {
       this.$refs.awards.add(1, arr)
       this.$refs.awards.add(1, arr)
     },
     },
-
     // 确认输入盲豆
     // 确认输入盲豆
     confirmCoin(obj) {
     confirmCoin(obj) {
       this.$refs.awards.add(2, obj)
       this.$refs.awards.add(2, obj)
     },
     },
-
+    // 确认输入金额
+    confirmRedPkg(obj) {
+      this.$refs.awards.add(2, obj)
+    },
     //选中的关联商品
     //选中的关联商品
     confirmGoodsForm(arr) {
     confirmGoodsForm(arr) {
       this.$refs.awardFrom.add(1,arr)
       this.$refs.awardFrom.add(1,arr)

+ 2 - 0
src/views/business/ticket/detail.vue

@@ -145,6 +145,7 @@
                <el-table-column label="奖品名称" prop="title">
                <el-table-column label="奖品名称" prop="title">
                  <template slot-scope="{ row }">
                  <template slot-scope="{ row }">
                    <div v-if="row.prizeType.value == 'coin'">盲豆 x{{ row.value }}</div>
                    <div v-if="row.prizeType.value == 'coin'">盲豆 x{{ row.value }}</div>
+                   <div v-else-if="row.prizeType.value == 'red_pkg' && row.value >= 0">微信红包 {{ $numberFormat(row.value) }} 元</div>
                    <div v-else>{{ row.title }}</div>
                    <div v-else>{{ row.title }}</div>
                  </template>
                  </template>
                </el-table-column>
                </el-table-column>
@@ -154,6 +155,7 @@
                    <div v-if="row.prizeType.value == 'coupon'">券</div>
                    <div v-if="row.prizeType.value == 'coupon'">券</div>
                    <div v-if="row.prizeType.value == 'coupon_pkg'">券包</div>
                    <div v-if="row.prizeType.value == 'coupon_pkg'">券包</div>
                    <div v-if="row.prizeType.value == 'coin'">盲豆</div>
                    <div v-if="row.prizeType.value == 'coin'">盲豆</div>
+                   <div v-if="row.prizeType.value == 'red_pkg'">微信红包</div>
                  </template>
                  </template>
                </el-table-column>
                </el-table-column>
               <el-table-column label="商品价格">
               <el-table-column label="商品价格">