소스 검색

抽奖配置 新增,编辑

lilei 4 년 전
부모
커밋
1c403a2967
3개의 변경된 파일252개의 추가작업 그리고 141개의 파일을 삭제
  1. 28 0
      src/api/luckyDraw.js
  2. 208 119
      src/views/market/addlotterySetModal.vue
  3. 16 22
      src/views/market/lotterySettings.vue

+ 28 - 0
src/api/luckyDraw.js

@@ -0,0 +1,28 @@
+import { axios } from '@/utils/request'
+// 保存抽奖设置
+export const saveLuckyDrawConfig = (params) => {
+  return axios({
+    url: 'luckyDraw/save',
+    data: params,
+    method: 'post'
+  })
+}
+// 抽奖活动列表
+export const getLuckyDrawList = (params) => {
+  const url = `luckyDraw/query/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+// 查询抽奖明细
+export const getLuckyDrawDetail = (params) => {
+  return axios({
+    url: `luckyDraw/findById/${params.id}`,
+    data: {},
+    method: 'get'
+  })
+}

+ 208 - 119
src/views/market/addlotterySetModal.vue

@@ -3,14 +3,28 @@
     <!-- 奖品类型 -->
     <v-select
       ref="jpType"
-      code="RUBBISH_TYPE"
+      code="LUCKY_DRAW_PRIZE_TYPE"
+      v-show="false"
+    >
+    </v-select>
+    <!-- 中奖限制 -->
+    <v-select
+      ref="zjXzType"
+      code="LUCKY_DRAW_WIN_LIMIT_RULE"
+      v-show="false"
+    >
+    </v-select>
+    <!-- 赠送规则 -->
+    <v-select
+      ref="zsGzType"
+      code="LUCKY_DRAW_GIVE_TIMES_RULE"
       v-show="false"
     >
     </v-select>
 
     <a-modal
       v-model="isShow"
-      @cancle="isShow = false"
+      @cancle="cansel"
       :footer="null"
       width="80%"
       :centered="true"
@@ -27,8 +41,8 @@
         <h3 class="form-titles">基础设置</h3>
         <a-row :gutter="48">
           <a-col :span="6">
-            <a-form-model-item ref="name" label="活动名称" prop="name">
-              <a-input id="addLottery-time" v-model="form.name" allowClear :maxLength="15" placeholder="15个字以内"/>
+            <a-form-model-item ref="activeName" label="活动名称" prop="activeName">
+              <a-input id="addLottery-time" v-model="form.activeName" allowClear :maxLength="15" placeholder="15个字以内"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
@@ -37,19 +51,19 @@
                 id="addLottery-time"
                 v-model="form.time"
                 allowClear
-                format="YYYY-MM-DD"
+                format="YYYY-MM-DD hh:mm:ss"
                 :placeholder="['开始时间','结束时间']"
               />
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
             <a-form-model-item
-              ref="cjRc"
+              ref="peopleLimitCount"
               label="抽奖人次"
-              prop="cjRc"
-              :required="!form.bxCjRc"
+              prop="peopleLimitCount"
+              :required="!form.isPeopleLimit"
               :rules="{
-                required: !form.bxCjRc,
+                required: !form.isPeopleLimit,
                 message: '请输入抽奖人次',
                 trigger: ['blur','change'],
               }"
@@ -57,25 +71,25 @@
               <a-input-number
                 id="addLottery-cjRc"
                 style="width: 50%;margin-right: 20px;"
-                v-model="form.cjRc"
-                :disabled="form.bxCjRc"
+                v-model="form.peopleLimitCount"
+                :disabled="form.isPeopleLimit==1"
                 :min="0"
                 :max="999999"
                 :precision="0"
                 placeholder="请输入抽奖人次(0~999999)"
                 allowClear />
-              <a-checkbox @change="bxCjRcChange" v-model="form.bxCjRc">
+              <a-checkbox @change="bxCjRcChange" v-model="form.isPeopleLimit">
                 不限
               </a-checkbox>
             </a-form-model-item>
           </a-col>
           <a-col :span="6">
-            <a-form-model-item ref="price" label="付费抽奖规则" prop="price">
+            <a-form-model-item ref="purchaseTimesGold" label="付费抽奖规则" prop="purchaseTimesGold">
               每次抽奖需要支付
               <a-input-number
                 id="addLottery-cjgz"
                 style="width: 30%;margin-right: 5px;"
-                v-model="form.price"
+                v-model="form.purchaseTimesGold"
                 :min="0"
                 :max="999999"
                 :precision="0"
@@ -88,30 +102,27 @@
 
         <a-row :gutter="48">
           <a-col :span="8">
-            <a-form-model-item ref="jpDesc" label="奖品说明" prop="jpDesc">
-              <a-input v-model="form.jpDesc" allowClear :maxLength="100" placeholder="请输入奖品说明,100字以内" type="textarea" />
+            <a-form-model-item ref="prizeDesc" label="奖品说明" prop="prizeDesc">
+              <a-input v-model="form.prizeDesc" allowClear :maxLength="100" placeholder="请输入奖品说明,100字以内" type="textarea" />
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
-            <a-form-model-item ref="jpTj" label="抽奖条件" prop="jpTj">
-              <a-input v-model="form.jpTj" allowClear :maxLength="100" placeholder="请输入抽奖条件,100字以内" type="textarea" />
+            <a-form-model-item ref="activeLimitDesc" label="抽奖条件" prop="activeLimitDesc">
+              <a-input v-model="form.activeLimitDesc" allowClear :maxLength="100" placeholder="请输入抽奖条件,100字以内" type="textarea" />
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
-            <a-form-model-item ref="cjDesc" label="抽奖说明" prop="cjDesc">
-              <a-input v-model="form.cjDesc" allowClear :maxLength="100" placeholder="请输入抽奖说明,100字以内" type="textarea" />
+            <a-form-model-item ref="activeDesc" label="抽奖说明" prop="activeDesc">
+              <a-input v-model="form.activeDesc" allowClear :maxLength="100" placeholder="请输入抽奖说明,100字以内" type="textarea" />
             </a-form-model-item>
           </a-col>
         </a-row>
 
         <h3 class="form-titles">奖品设置</h3>
         <div class="form-item">
-          <a-form-model-item style="margin: 0;" ref="zpType" label="请选择转盘类型" prop="zpType">
-            <a-select style="width: 300px;" @change="zpTypeChange" v-model="form.zpType" placeholder="请选择转盘类型">
-              <a-select-option value="5">
-                五等分
-              </a-select-option>
-              <a-select-option value="6">
+          <a-form-model-item style="margin: 0;" ref="prizeClsNum" label="请选择转盘类型" prop="prizeClsNum">
+            <a-select style="width: 300px;" @change="zpTypeChange" v-model="form.prizeClsNum" placeholder="请选择转盘类型">
+              <a-select-option :key="3" :value="3">
                 六等分
               </a-select-option>
             </a-select>
@@ -121,9 +132,9 @@
         <a-row
           type="flex"
           align="middle"
-          v-for="(item, index) in form.jpList"
+          v-for="(item, index) in form.luckyDrawPrizeList"
           :key="index"
-          v-if="form.jpList.length"
+          v-if="form.luckyDrawPrizeList.length"
           :gutter="10"
         >
           <a-col span="1">
@@ -137,7 +148,7 @@
               :required="true"
               :label-col=" { span: 0 }"
               :wrapper-col=" { span: 24 }"
-              :prop="'jpList.' + index + '.jpType'"
+              :prop="'luckyDrawPrizeList.' + index + '.prizeType'"
               :rules="{
                 required: true,
                 message: '请选择奖品类型',
@@ -145,9 +156,12 @@
               }"
             >
               <a-select
-                :id="'jpList-jpType'+index"
+                :id="'jpList-prizeType'+index"
                 style="width: 100%;"
-                v-model="item.jpType"
+                v-model="item.prizeType"
+                @change="res => {
+                  item.prizeDesc = ''
+                }"
                 placeholder="请选择奖品类型">
                 <a-select-option
                   v-for="item in $refs.jpType.getOptionDatas()"
@@ -162,7 +176,7 @@
               :required="true"
               :label-col=" { span: 0 }"
               :wrapper-col=" { span: 24 }"
-              :prop="'jpList.' + index + '.name'"
+              :prop="'luckyDrawPrizeList.' + index + '.prizeDesc'"
               :rules="{
                 required: true,
                 message: '请输入奖品名称',
@@ -170,11 +184,23 @@
               }"
             >
               <a-input
+                v-if="item.prizeType !== 'GOLD'"
                 :id="'jpList-name'+index"
                 style="width: 100%;"
-                v-model="item.name"
+                v-model="item.prizeDesc"
                 :maxLength="10"
                 placeholder="请输入奖品名称,10个字以内"/>
+
+              <a-input-number
+                v-else
+                style="width: 100%;"
+                :id="'jpList-name'+index"
+                v-model="item.prizeDesc"
+                :min="0"
+                :max="999999"
+                :precision="0"
+                placeholder="请输入乐豆数量"
+                allowClear />
             </a-form-model-item>
           </a-col>
           <a-col span="3">
@@ -183,7 +209,7 @@
               :required="true"
               :label-col=" { span: 0 }"
               :wrapper-col=" { span: 24 }"
-              :prop="'jpList.' + index + '.isZj'"
+              :prop="'luckyDrawPrizeList.' + index + '.isPrizeLimit'"
               :rules="{
                 required: true,
                 message: '是否中奖',
@@ -191,9 +217,13 @@
               }"
             >
               <a-select
-                :id="'jpList-isZj'+index"
+                :id="'jpList-isPrizeLimit'+index"
                 style="width: 100%;"
-                v-model="item.isZj"
+                v-model="item.isPrizeLimit"
+                @change="res => {
+                  item.prizeRate = ''
+                  item.prizeNum = ''
+                }"
                 placeholder="是否中奖">
                 <a-select-option value="1">
@@ -204,13 +234,13 @@
               </a-select>
             </a-form-model-item>
           </a-col>
-          <a-col span="3">
+          <a-col span="3" v-if="item.isPrizeLimit == 1">
             <a-form-model-item
               :label="''"
               :required="true"
               :label-col=" { span: 0 }"
               :wrapper-col=" { span: 24 }"
-              :prop="'jpList.' + index + '.glv'"
+              :prop="'luckyDrawPrizeList.' + index + '.prizeRate'"
               :rules="{
                 required: true,
                 message: '请输入中奖概率',
@@ -219,8 +249,8 @@
             >
               <a-input-number
                 style="width: 100%;"
-                :id="'jpList-glv'+index"
-                v-model="item.glv"
+                :id="'jpList-prizeRate'+index"
+                v-model="item.prizeRate"
                 :min="0"
                 :max="100"
                 :precision="2"
@@ -228,13 +258,13 @@
                 allowClear />
             </a-form-model-item>
           </a-col>
-          <a-col span="3">
+          <a-col span="3" v-if="item.isPrizeLimit == 1">
             <a-form-model-item
               :label="''"
               :required="true"
               :label-col=" { span: 0 }"
               :wrapper-col=" { span: 24 }"
-              :prop="'jpList.' + index + '.nums'"
+              :prop="'luckyDrawPrizeList.' + index + '.prizeNum'"
               :rules="{
                 required: true,
                 message: '请输入奖品数量',
@@ -243,8 +273,8 @@
             >
               <a-input-number
                 style="width: 100%;"
-                :id="'jpList-nums'+index"
-                v-model="item.nums"
+                :id="'jpList-prizeNum'+index"
+                v-model="item.prizeNum"
                 :min="0"
                 :max="999999"
                 :precision="0"
@@ -257,11 +287,11 @@
               :label="''"
               :label-col=" { span: 0 }"
               :wrapper-col=" { span: 24 }"
-              :prop="'jpList.' + index + '.image'"
+              :prop="'luckyDrawPrizeList.' + index + '.prizeImage'"
             >
               <Upload
-                :id="'jpList-image'+index"
-                v-model="item.image"
+                :id="'jpList-prizeImage'+index"
+                v-model="item.prizeImage"
                 :fileSize="0.25"
                 listType="picture-card">
               </Upload>
@@ -269,26 +299,26 @@
             </a-form-model-item>
           </a-col>
         </a-row>
-        <div style="height: 1px;background-color: #eee;margin-bottom: 20px;" ></div>
-        <a-row :gutter="48">
+        <div v-if="form.luckyDrawPrizeList.length" style="height: 1px;background-color: #eee;margin-bottom: 20px;" ></div>
+        <a-row :gutter="48" v-if="form.luckyDrawPrizeList.length">
           <a-col :span="12">
             <div class="form-item">
               <div style="margin-right: 10px;"><span class="red">*</span>中奖限制:</div>
-              <a-select mode="multiple" style="width: 300px;" @change="zjxzChange" v-model="form.zjXz" placeholder="请选择中奖限制">
+              <a-select mode="multiple" style="width: 80%;" @change="zjxzChange" v-model="form.zjXz" placeholder="请选择中奖限制">
                 <a-select-option
                   v-for="item in zjXz"
                   :key="item.code"
                   :value="item.code">{{ item.dispName }}</a-select-option>
               </a-select>
             </div>
-            <div class="form-item" v-for="(item,index) in form.zjXzCs" :key="index">
+            <div class="form-item" v-for="(item,index) in form.luckyDrawWinPrizeLimitList" :key="index">
               <a-form-model-item
                 style="margin: 0;"
                 :label="''"
                 :required="true"
                 :label-col=" { span: 0 }"
                 :wrapper-col=" { span: 24 }"
-                :prop="'zjXzCs.' + index + '.nums'"
+                :prop="'luckyDrawWinPrizeLimitList.' + index + '.limitTimes'"
                 :rules="{
                   required: true,
                   message: '请输入次数',
@@ -296,38 +326,38 @@
                 }"
               >
                 {{ index+1 }}.
-                {{ item.name.split('XXX')[0] }}
+                <!-- {{ item.name.split('XXX')[0] }} -->
                 <a-input-number
                   style="width: 100px;"
-                  :id="'zjXzCs-nums'+index"
-                  v-model="item.nums"
+                  :id="'luckyDrawWinPrizeLimitList-limitTimes'+index"
+                  v-model="item.limitTimes"
                   :min="0"
                   :max="100"
                   :precision="0"
                   placeholder="请输入次数"
                   allowClear />
-                {{ item.name.split('XXX')[1] }}
+                <!-- {{ item.name.split('XXX')[1] }} -->
               </a-form-model-item>
             </div>
           </a-col>
           <a-col :span="12">
             <div class="form-item">
               <div style="margin-right: 10px;"><span class="red">*</span>赠送抽奖次数规则:</div>
-              <a-select mode="multiple" style="width: 300px;" @change="cjGzChange" v-model="form.cjGz" placeholder="请选择">
+              <a-select mode="multiple" style="width: 70%;" @change="cjGzChange" v-model="form.cjGz" placeholder="请选择">
                 <a-select-option
                   v-for="item in cjGz"
                   :key="item.code"
                   :value="item.code">{{ item.dispName }}</a-select-option>
               </a-select>
             </div>
-            <div class="form-item" v-for="(item,index) in form.cjGzCs" :key="index">
+            <div class="form-item" v-for="(item,index) in form.luckyDrawTaskList" :key="index">
               <a-form-model-item
                 style="margin: 0;"
                 :label="''"
                 :required="true"
                 :label-col=" { span: 0 }"
                 :wrapper-col=" { span: 24 }"
-                :prop="'cjGzCs.' + index + '.nums'"
+                :prop="'luckyDrawTaskList.' + index + '.giveTimes'"
                 :rules="{
                   required: true,
                   message: '请输入次数',
@@ -338,8 +368,8 @@
                 {{ item.name }}, 赠送
                 <a-input-number
                   style="width: 100px;"
-                  :id="'cjGzCs-nums'+index"
-                  v-model="item.nums"
+                  :id="'luckyDrawTaskList-giveTimes'+index"
+                  v-model="item.giveTimes"
                   :min="0"
                   :max="100"
                   :precision="0"
@@ -352,7 +382,7 @@
         </a-row>
 
         <div class="form-item" style="justify-content:center;padding: 50px 20px 20px;">
-          <a-button type="primary" @click="onSubmit">
+          <a-button type="primary" :loading="loading" @click="onSubmit">
             保存
           </a-button>
           <a-button style="margin-left: 10px;" @click="cansel">
@@ -366,6 +396,8 @@
 
 <script>
 import { VSelect, Upload } from '@/components'
+import { saveLuckyDrawConfig, getLuckyDrawDetail } from '@/api/luckyDraw.js'
+import moment from 'moment'
 export default {
   name: 'AddlotterySetModal',
   components: {
@@ -384,47 +416,40 @@ export default {
   },
   data () {
     return {
+      loading: false,
       isShow: this.showEditModal,
       titleText: '新增活动',
       formLayout: 'vertical',
       labelCol: {},
       wrapperCol: {},
       form: {
-        name: '',
+        activeName: '', // 活动名称
         time: [],
-        cjRc: '',
-        bxCjRc: false,
-        price: '',
-        jpDesc: '',
-        jpTj: '',
-        cjDesc: '',
-        zpType: undefined,
-        jpList: [],
+        activeStartTime: '', // 活动开始时间
+        activeEndTime: '', // 活动结束时间
+        peopleLimitCount: '', // 活动人数限制
+        isPeopleLimit: false, // 不限人数
+        purchaseTimesGold: '', // 购买抽奖次数金币数
+        prizeDesc: '', // 奖品说明
+        activeLimitDesc: '', // 活动条件说明
+        activeDesc: '', // 抽奖说明
+        prizeClsNum: undefined, // 转盘类型
+        luckyDrawPrizeList: [], // 奖品列表
         zjXz: undefined,
-        zjXzCs: [],
+        luckyDrawWinPrizeLimitList: [], // 中奖限制
         cjGz: undefined,
-        cjGzCs: []
+        luckyDrawTaskList: [] // 赠送抽奖规则
       },
-      zjXz: [
-        { dispName: '(单个用户)中奖后抽奖XXX次内不能再次中奖', code: 0 },
-        { dispName: '(所有用户)每天最多可中奖XXX次', code: 1 },
-        { dispName: '(活动时间内)每人最多可中奖XXX次', code: 2 }
-      ],
-      cjGz: [
-        { dispName: '新用户登录', code: 0 },
-        { dispName: '新用户首次投递', code: 1 },
-        { dispName: '历史注册用户首次投递', code: 2 },
-        { dispName: '分享给好友或朋友圈', code: 3 },
-        { dispName: '老用户回归', code: 4 }
-      ],
+      zjXz: [], // 中奖限制列表
+      cjGz: [], // 赠送规则列表
       rules: {
-        name: [{ required: true, message: '请输入活动名称', trigger: 'blur' }],
-        time: [{ required: true, message: '请选择活动时间', trigger: 'blur' }],
-        price: [{ required: true, message: '请输入付费抽奖规则', trigger: 'blur' }],
-        jpDesc: [{ required: true, message: '请输入奖品说明', trigger: 'blur' }],
-        zpType: [{ required: true, message: '请选择转盘类型', trigger: 'blur' }],
-        jpTj: [{ required: true, message: '请输入抽奖条件', trigger: 'blur' }],
-        cjDesc: [{ required: true, message: '请输入抽奖说明', trigger: 'blur' }]
+        activeName: [{ required: true, message: '请输入活动名称', trigger: ['blur', 'change'] }],
+        time: [{ required: true, message: '请选择活动时间', trigger: ['blur', 'change'] }],
+        purchaseTimesGold: [{ required: true, message: '请输入付费抽奖规则', trigger: ['blur', 'change'] }],
+        prizeDesc: [{ required: true, message: '请输入奖品说明', trigger: ['blur', 'change'] }],
+        activeLimitDesc: [{ required: true, message: '请输入抽奖条件', trigger: ['blur', 'change'] }],
+        activeDesc: [{ required: true, message: '请输入抽奖说明', trigger: ['blur', 'change'] }],
+        prizeClsNum: [{ required: true, message: '请选择转盘类型', trigger: ['blur', 'change'] }]
       }
     }
   },
@@ -433,22 +458,22 @@ export default {
     bxCjRcChange (e) {
       console.log(e)
       if (e.target.checked) {
-        this.form.cjRc = ''
-        this.$refs.ruleForm.clearValidate('cjRc')
+        this.form.peopleLimitCount = ''
+        this.$refs.ruleForm.clearValidate('peopleLimitCount')
       }
     },
     // 选择转盘类型
     zpTypeChange (val) {
       console.log(val)
-      this.form.jpList = []
+      this.form.luckyDrawPrizeList = []
       for (let i = 0; i < val; i++) {
-        this.form.jpList.push({
-          jpType: undefined,
-          name: '',
-          isZj: undefined,
-          glv: '',
-          nums: '',
-          image: ''
+        this.form.luckyDrawPrizeList.push({
+          prizeType: undefined,
+          prizeDesc: '',
+          isPrizeLimit: undefined,
+          prizeRate: '',
+          prizeNum: '',
+          prizeImage: ''
         })
       }
       this.$refs.ruleForm.clearValidate()
@@ -456,50 +481,112 @@ export default {
     // 中奖限制
     zjxzChange (val) {
       console.log(val)
-      this.form.zjXzCs = []
+      this.form.luckyDrawWinPrizeLimitList = []
       this.form.zjXz && this.form.zjXz.map(item => {
         const row = this.zjXz.find(k => k.code == item)
-        this.form.zjXzCs.push({
-          code: item,
+        this.form.luckyDrawWinPrizeLimitList.push({
+          winPrizeLimitCode: item,
           name: row.dispName,
-          nums: ''
+          limitTimes: ''
         })
       })
     },
     // 抽奖规则
     cjGzChange (val) {
       console.log(val)
-      this.form.cjGzCs = []
+      this.form.luckyDrawTaskList = []
       this.form.cjGz && this.form.cjGz.map(item => {
         const row = this.cjGz.find(k => k.code == item)
-        this.form.cjGzCs.push({
-          code: item,
+        this.form.luckyDrawTaskList.push({
+          taskCode: item,
           name: row.dispName,
-          nums: ''
+          giveTimes: ''
         })
       })
     },
     // 保存
     onSubmit () {
       this.$refs.ruleForm.validate(valid => {
-        console.log(this.form)
         if (valid) {
           console.log('valid submit!!')
+          if (this.form.luckyDrawWinPrizeLimitList.length == 0) {
+            this.$message.warning('请选择中奖限制')
+            return false
+          }
+          if (this.form.luckyDrawTaskList.length == 0) {
+            this.$message.warning('请选择赠送抽奖次数规则')
+            return false
+          }
+          const formData = JSON.parse(JSON.stringify(this.form))
+          formData.activeStartTime = moment(this.form.time[0]).format('YYYY-MM-DD hh:mm:ss')
+          formData.activeEndTime = moment(this.form.time[1]).format('YYYY-MM-DD hh:mm:ss')
+          formData.isPeopleLimit = this.form.isPeopleLimit ? 1 : 0
+          // 提交数据
+          this.submitFormData(formData)
         } else {
           console.log('error submit!!')
           return false
         }
       })
     },
+    submitFormData (formData) {
+      this.loading = true
+      saveLuckyDrawConfig(formData).then(res => {
+        console.log(res, 'submitFormData')
+        if (res.status == 200) {
+          this.$message.info(res.message)
+          this.cansel()
+        } else {
+          this.$message.warning(res.message)
+        }
+        this.loading = false
+      })
+    },
+    // 获取明细数据
+    getDetail (id) {
+      getLuckyDrawDetail({ id: id }).then(res => {
+        if (res.status == 200) {
+          this.form = Object.assign({}, this.form, res.data)
+          this.form.isPeopleLimit = this.form.isPeopleLimit == 1
+          this.form.time = [moment(this.form.activeStartTime), moment(this.form.activeEndTime)]
+          this.form.zjXz = this.getGzVal(this.form.luckyDrawWinPrizeLimitList, 0)
+          this.form.cjGz = this.getGzVal(this.form.luckyDrawTaskList, 1)
+          this.form.luckyDrawPrizeList.map(item => {
+            delete item.id
+            delete item.createDate
+            delete item.luckyDrawNo
+          })
+        }
+      })
+    },
+    getGzVal (data, type) {
+      const arr = []
+      data.map(item => {
+        arr.push(type == 1 ? item.taskCode : item.winPrizeLimitCode)
+        delete item.id
+        delete item.createDate
+        delete item.luckyDrawNo
+      })
+      return arr
+    },
     // 取消
     cansel () {
       this.isShow = false
-    },
-    // 编辑获取数据
-    getPageInfo () {
-
+      this.form.luckyDrawPrizeList = []
+      this.form.luckyDrawTaskList = []
+      this.form.luckyDrawWinPrizeLimitList = []
+      this.form.zjXz = []
+      this.form.cjGz = []
     }
   },
+  created () {
+    this.$nextTick(() => {
+      setTimeout(() => {
+        this.zjXz = this.$refs.zjXzType.getOptionDatas()
+        this.cjGz = this.$refs.zsGzType.getOptionDatas()
+      }, 500)
+    })
+  },
   watch: {
     showEditModal (newValue, oldValue) {
       this.isShow = newValue
@@ -508,15 +595,17 @@ export default {
       if (!val) {
         this.$emit('close')
       } else {
-        this.$refs.ruleForm.resetFields()
+        this.$nextTick(() => {
+          this.$refs.ruleForm.resetFields()
+        })
       }
     },
     itemId (newValue, oldValue) {
       if (newValue && this.isShow) {
-        this.titleText = '编辑'
-        this.getPageInfo(newValue)
+        this.titleText = '编辑活动'
+        this.getDetail(newValue)
       } else {
-        this.titleText = '新增'
+        this.titleText = '新增活动'
       }
     }
   }

+ 16 - 22
src/views/market/lotterySettings.vue

@@ -8,7 +8,7 @@
             <a-form-item label="活动名称" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
               <a-input
                 allowClear
-                v-model="searchData.name"
+                v-model="searchData.activeName"
                 :maxLength="30"
                 placeholder="请输入活动名称"
                 id="lotterySet-name" />
@@ -56,6 +56,9 @@
           class="actionBtn icon-blues"
           @click="handleEdit(record)" />
       </span>
+      <span slot="actime" slot-scope="text, record">
+        {{ record.activeStartTime }} 至 {{ record.activeEndTime }}
+      </span>
       <span slot="state" slot-scope="text, record">
         <a-switch
           checkedChildren="启用"
@@ -69,7 +72,6 @@
     </s-table>
     <addlotterySetModal
       :itemId="itemId"
-      :itemData="itemData"
       :showEditModal="showEditModal"
       @refresh="$refs.table.refresh(true)"
       @close="cancel"></addlotterySetModal>
@@ -84,9 +86,8 @@ import {
 } from '@/components'
 import addlotterySetModal from './addlotterySetModal.vue'
 import {
-  getGoodsClassList,
-  changeGoodsStatus
-} from '@/api/shopSetting.js'
+  getLuckyDrawList
+} from '@/api/luckyDraw.js'
 
 export default {
   components: {
@@ -102,13 +103,11 @@ export default {
         wrapperCol: { span: 17 }
       },
       searchData: {
-        name: ''
+        name: '',
+        state: undefined
       },
       showEditModal: false, // 默认关闭弹窗
       itemId: null, // 编辑行id
-	    itemData: {}, // 编辑行数据
-      formLayout: 'horizontal',
-      form: this.$form.createForm(this),
       // 表头
       columns: [{
         title: '序号',
@@ -119,20 +118,22 @@ export default {
       {
         title: '创建时间',
         width: 100,
-        dataIndex: 'creatDate',
+        dataIndex: 'createDate',
         align: 'center'
       },
       {
         title: '活动名称',
         width: 100,
-        dataIndex: 'name',
+        dataIndex: 'activeName',
         align: 'center'
       },
       {
         title: '活动时间',
         width: 100,
-        dataIndex: 'goldLimit',
-        align: 'center'
+        align: 'center',
+        scopedSlots: {
+          customRender: 'actime'
+        }
       },
       {
         title: '状态',
@@ -154,7 +155,7 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        return getGoodsClassList(
+        return getLuckyDrawList(
           Object.assign(parameter, this.searchData)
         ).then(res => {
           const no = (res.data.pageNo - 1) * res.data.pageSize
@@ -169,21 +170,14 @@ export default {
       }
     }
   },
-  beforeCreate () {
-    this.form = this.$form.createForm(this, {
-      name: 'validate_other'
-    })
-  },
   methods: {
     showModal () {
       this.itemId = null
-	    this.itemData = {}
       this.showEditModal = true
     },
     // 编辑
     handleEdit (record) {
       this.itemId = record.id
-	    this.itemData = record
       this.showEditModal = true
     },
     // 重置
@@ -191,7 +185,7 @@ export default {
       this.searchData.name = ''
       this.$refs.table.refresh(true)
     },
-    //
+    // 取消添加编辑
     cancel () {
       this.itemId = null
       this.showEditModal = false