王新雷 %!s(int64=4) %!d(string=hai) anos
pai
achega
e0ca5086fc

+ 9 - 0
src/views/luckyDraw/api.js

@@ -67,6 +67,15 @@ export function luckDrawPrizeAdd(data) {
   })
 }
 
+// 批量新增抽奖奖品
+export function luckDrawPrizeBatchAdd(data) {
+  return request({
+    url: '/api-web/luckDrawPrize/batchAdd',
+    method: 'post',
+    data: data
+  })
+}
+
 // 编辑奖品
 export function luckDrawPrizeUpdate(data) {
   return request({

+ 22 - 14
src/views/luckyDraw/trophyCreate.vue

@@ -66,7 +66,7 @@ import Tooltip from '@/components/Tooltip/index'
 import pagination from "@/components/Pagination/index";
 import dayjs from 'dayjs';
 import cleanDeep from 'clean-deep';
-import { luckDrawPrizeAdd } from './api'
+import { luckDrawPrizeBatchAdd } from './api'
 const validNumber1 = (rule, value, callback) => {
     if (value == '' && typeof value == 'string' || value == null) {
         callback(new Error('请输入库存'))
@@ -128,27 +128,35 @@ export default {
         onSubmit(formName) {
             this.$refs[formName].validate(item => {
                 if(item) {
-                    console.log(this.form)
                     let form = Object.assign({}, this.form)
-                    let params = {
-                        name: form.name,
-                        groupId: form.groupId,
-                        chances: form.chances ? form.chances / 100 : 0,
-                        stock: form.stock,
-                        memo: form.memo,
-                        enabled: 1
+                    const rewordList = form.rewordList ? form.rewordList : []
+                    let params = []
+                    let chanceCount = 0
+                    rewordList.forEach(item => {
+                        chanceCount += Number(item.chances)
+                        params.push({
+                            name: item.name,
+                            groupId: form.groupId,
+                            chances: item.chances ? item.chances / 100 : 0,
+                            stock: item.stock,
+                            memo: form.memo,
+                            enabled: 1
+                        })
+                    })
+                    if(chanceCount != 100) {
+                        this.$message.error('所有奖品的概率之和必须等于100%')
+                        return
                     }
-                    params.id = form.id
-                    luckDrawPrizeUpdate(params).then(res => {
-                        this.messageTips('修改', res)
+                    luckDrawPrizeBatchAdd(params).then(res => {
+                        this.messageTips('添加', res, formName)
                     })
                 }
             })
         },
-        messageTips (title, res) {
+        messageTips (title, res, formName) {
             if (res.code == 200) {
                 this.$message.success(title + '成功')
-                this.lotteryStatus = false
+                this.onClose(formName)
                 this.getList()
             } else {
                 this.$message.error(res.msg)

+ 24 - 11
src/views/luckyDraw/trophyManager.vue

@@ -4,7 +4,7 @@
         <h2>
             <div class="squrt"></div>奖品设置
         </h2>
-        <div class="newBand" v-permission="'luckDrawPrize/add'" @click="onOperationTrophy('create')">添加</div>
+        <div class="newBand" v-permission="'luckDrawPrize/batchAdd'" @click="onOperationTrophy('create')">添加</div>
         <!-- 搜索标题 -->
         <el-form :inline="true"
                 class="searchForm"
@@ -129,7 +129,7 @@
             <span slot="footer"
                     class="dialog-footer">
                 <el-button @click="lotteryStatus = false">取 消</el-button>
-                <el-button type="primary" @click="onSubmit('ruleForm')">确 定</el-button>
+                <el-button type="primary" @click="onSubmit('trophyForm')">确 定</el-button>
             </span>
         </el-dialog>
     </div>
@@ -141,7 +141,25 @@ import pagination from "@/components/Pagination/index";
 import trophyCreate from './trophyCreate'
 import dayjs from 'dayjs';
 import cleanDeep from 'clean-deep';
-import { luckDrawPrizeList, luckDrawPrizeAdd, luckDrawPrizeUpdate, luckDrawGroupFindAll } from './api'
+import { luckDrawPrizeList, luckDrawPrizeUpdate, luckDrawGroupFindAll } from './api'
+const validNumber1 = (rule, value, callback) => {
+    if (value == '' && typeof value == 'string' || value == null) {
+        callback(new Error('请输入库存'))
+    } else if (value < 0) {
+        callback(new Error('输入值不能小于0'))
+    } else {
+        callback()
+    }
+}
+const validNumber = (rule, value, callback) => {
+    if (value == '' && typeof value == 'string' || value == null) {
+        callback(new Error('请输入中奖概率'))
+    } else if (value < 0) {
+        callback(new Error('输入值不能小于0'))
+    } else {
+        callback()
+    }
+}
 export default {
     components: { pagination, Tooltip, trophyCreate },
     data () {
@@ -169,8 +187,8 @@ export default {
             rules: {
                 name: [{required: true, message:'请输入活动名称', trigger: 'blur'}],
                 groupId: [{required: true, message:'请选择所属活动', trigger: 'change'}],
-                chances: [{required: true, message:'请输入中奖概率', trigger: 'blur'}],
-                stock: [{required: true, message:'请输入库存', trigger: 'blur'}],
+                chances: [{required: true, validator: validNumber, trigger: 'blur'}],
+                stock: [{required: true, validator: validNumber1, trigger: 'blur'}],
                 enabled: [{required: true, message:'请选择是否启用', trigger: 'change'}]
             },
             pageInfo: {
@@ -227,7 +245,6 @@ export default {
         onSubmit(formName) {
             this.$refs[formName].validate(item => {
                 if(item) {
-                    console.log(this.form)
                     let form = Object.assign({}, this.form)
                     let params = {
                         name: form.name,
@@ -237,11 +254,7 @@ export default {
                         memo: form.memo,
                         enabled: 1
                     }
-                    if(this.formActionTitle == 'create') {
-                        luckDrawPrizeAdd(params).then(res => {
-                            this.messageTips('添加', res)
-                        })
-                    } else if(this.formActionTitle == 'update') {
+                    if(this.formActionTitle == 'update') {
                         params.id = form.id
                         luckDrawPrizeUpdate(params).then(res => {
                             this.messageTips('修改', res)