浏览代码

新增编辑盲票组

DELL 3 年之前
父节点
当前提交
880e9bc3b2

+ 11 - 0
src/api/business/ticket.js

@@ -109,3 +109,14 @@ export function setListData(data) {
     data
   })
 }
+
+// 编辑盲票组
+export function setListDetail(data) {
+  return request({
+    url: '/api/v1/mp/admin/ticket/box/update',
+    method: 'post',
+    data
+  })
+}
+
+

+ 5 - 2
src/views/business/ticket/components/AwardsList.vue

@@ -12,6 +12,7 @@
               @change="handleChangeAll($event, item)"
               :min="0"
               size="small"
+              :disabled="item.isEdit"
             ></el-input-number>
           </div>
         </div>
@@ -82,7 +83,7 @@ export default {
     value: {
       type: Array,
       default: () => []
-    }
+    },
   },
   data() {
     return {
@@ -159,6 +160,8 @@ export default {
         this.awardsList[this.prizeIndex].prizeList = this.awardsList[this.prizeIndex].prizeList.concat(item);
       } else if (type == 2) {
         this.awardsList[this.prizeIndex].prizeList.push(item);
+      } else if (type == 3) {
+        this.awardsList = item
       }
       this.$emit('input', this.awardsList)
       this.$emit('close')
@@ -233,4 +236,4 @@ export default {
     padding: 10px;
   }
 }
-</style>
+</style>

+ 46 - 11
src/views/business/ticket/create.vue

@@ -6,7 +6,7 @@
       <div class="base-info-form">
         <el-form :model="form" :rules="rules" ref="form" label-width="100px">
           <el-form-item label="盲票类型" prop="type">
-            <el-radio-group v-model="form.type" size="small">
+            <el-radio-group v-model="form.type" size="small" :disabled="form.disabled">
               <el-radio label="online">线上盲票</el-radio>
               <el-radio label="offline">线下盲票</el-radio>
             </el-radio-group>
@@ -31,10 +31,10 @@
           </div>
           <el-form-item label="面值" prop="facePrice">
             <el-input
-              v-model="form.facePrice"
+              v-model="form.facePrice "
               style="width: 240px"
               size="small"
-              placeholder="请输入面值"
+              placeholder="请输入面值" :disabled="form.disabled"
             >
               <template slot="append">元</template>
             </el-input>
@@ -54,7 +54,7 @@
               v-model="form.quantity"
               style="width: 240px"
               size="small"
-              placeholder="请输入盲票总数"
+              placeholder="请输入盲票总数" :disabled="form.disabled"
             >
               <template slot="append">张</template>
             </el-input>
@@ -64,7 +64,7 @@
               v-model="form.pkgUnit"
               style="width: 240px"
               size="small"
-              placeholder="请输入每包张数"
+              placeholder="请输入每包张数" :disabled="form.disabled"
             >
               <template slot="append">张</template>
             </el-input>
@@ -98,7 +98,7 @@
           </div>
         </el-form>
       </div>
-      <div class="base-info-title">奖级设置</div>
+      <div class="base-info-title" >奖级设置</div>
       <!-- 奖级设置 -->
 
       <!-- 奖级列表 -->
@@ -118,13 +118,14 @@
     <!-- 添加券 -->
     <coupon-add :dialog-visible="couponTableVisible" @close="close" @confirmCoupon="confirmCoupon" v-if="couponTableVisible" />
     <!-- 添加盲豆 -->
-    <coin-add :dialog-visible="coinTableVisible" @close="close" @confirmCoin="confirmCoin" v-if="coinTableVisible" /> 
+    <coin-add :dialog-visible="coinTableVisible" @close="close" @confirmCoin="confirmCoin" v-if="coinTableVisible" />
   </div>
 </template>
 <script>
+import { publicFileGetUrl } from "@/api/common";
 import CustomFieldsMixin from "@/mixins/CustomFields";
-import { ticketBoxCreate } from "@/api/business/ticket";
-import { accMul } from "@/utils/util";
+import { ticketBoxCreate, setListDetail, ticketBoxDetail} from "@/api/business/ticket";
+import { accMul, accDiv } from "@/utils/util";
 import AwardsList from "./components/AwardsList"
 import GoodsAdd from "./components/GoodsAdd"
 import CouponAdd from "./components/CouponAdd"
@@ -141,6 +142,7 @@ export default {
   data() {
     return {
       loading: false,
+      id: this.$route.query.id,
       form: {
         type: "online", //盲票类型
         title: "", // 盲票名称
@@ -151,6 +153,7 @@ export default {
         pkgUnit: 200, // 张数
         pkgSalePrice: 0, // 单价
         saleCommRate: "", // 基数
+        disabled:false,
       },
       rules: {
         type: [
@@ -242,12 +245,37 @@ export default {
         }) : []
       },
       set(val) {
-        console.log('val', val)
         this.$set(this.form, 'picUrl', val.map(item => { return item.fileName }).toString())
       }
     }
   },
+  created() {
+    if (this.id) {
+      let data = {
+        boxId: this.id
+      }
+      ticketBoxDetail(data).then(res => {
+        const { awardsList, type, title, picUrl,facePrice, salePrice, quantity, pkgUnit, pkgSalePrice, saleCommRate } = res.data
+        this.form = { type: JSON.parse(type).value, disabled:true,
+          title, picUrl, facePrice:accDiv(facePrice, 100), salePrice:accDiv(salePrice, 100), quantity, pkgUnit, pkgSalePrice:accDiv(pkgSalePrice, 100), saleCommRate }
+        if(awardsList){
+          awardsList.forEach((item) => {
+              item.isEdit = true,
+              item.prizeList.forEach((ele) => {
+                (ele.picUrl = publicFileGetUrl + ele.picUrl.split(',')[0]),
+                (ele.prizeType = JSON.parse(ele.prizeType).value);
+              });
+          });
+          this.$nextTick(() => {
+            this.$refs.awards.add(3, awardsList)
+          })
+          this.awardsList = awardsList
+        }
+      })
+    }
+  },
   methods: {
+
     // 保存
     submitForm() {
       const subForm = this.$refs["form"];
@@ -323,6 +351,12 @@ export default {
             awardsList: filterArr2,
           };
 
+          if (this.id){
+            data.boxId = this.id
+          }
+
+          let request = this.id ? setListDetail : ticketBoxCreate;
+
           const loading = this.$loading({
             lock: true,
             text: "保存中",
@@ -330,7 +364,8 @@ export default {
             background: "rgba(0, 0, 0, 0.4)",
           });
 
-          ticketBoxCreate(data)
+
+          request(data)
             .then((res) => {
               loading.close();
               if (res.code == 0) {

+ 11 - 0
src/views/business/ticket/index.vue

@@ -202,6 +202,12 @@
               @click="getDetail(scope.row)"
               >查看</el-button
             >
+            <el-button
+              v-hasPermi="['business:ticket:edit']"
+              type="text"
+              @click="setDetail(scope.row)"
+            >编辑</el-button
+            >
             <el-button
               v-if="
                 scope.row.status.value === 'off' ||
@@ -412,8 +418,13 @@ export default {
 
     // 查看详情
     getDetail(row) {
+
       this.$router.push({ name: "TicketDetail", query: { id: row.boxId } });
     },
+    // 编辑信息
+    setDetail(row) {
+      this.$router.push({ name: "TicketEdit", query: { id: row.boxId } });
+    },
 
     handleDetail() {},