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

Merge branch 'dev' into 'test'

Dev

See merge request quanshu/mp-ui-pc!186
hunagwb 3 жил өмнө
parent
commit
619be35dd5

+ 9 - 0
src/api/business/order.js

@@ -128,3 +128,12 @@ export function channelOrderExport(data) {
     data
   })
 }
+
+// 经销商取消订单
+export function removeChannelOrder(data) {
+  return request({
+    url: '/api/v1/mp/admin/channel/order/order/cancel',
+    method: 'post',
+    data
+  })
+}

+ 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() {},
 

+ 35 - 6
src/views/order/channel/index.vue

@@ -194,15 +194,18 @@
               v-hasPermi="['order:channel:query']"
               type="text"
               @click="getDetail(row)"
-              >查看详情</el-button
-            >
+            >查看详情</el-button>
+            <el-button
+              v-if="row.status.value === 1"
+              type="text"
+              @click="cancellationOrder(row)"
+            >取消订单</el-button>
             <el-button
               v-if="row.status.value === 1"
               v-hasPermi="['order:channel:ship']"
               type="text"
               @click="toGoods(row)"
-              >发货</el-button
-            >
+              >发货</el-button>
           </div>
         </template>
       </el-table-column>
@@ -227,7 +230,7 @@
   </div>
 </template>
 <script>
-import { getOrderList, companyList, boxList, channelOrderExport} from "@/api/business/order";
+import { getOrderList, companyList, boxList, channelOrderExport, removeChannelOrder} from "@/api/business/order";
 import { listAllSaleSite} from "@/api/admin/salesite";
 import { publicFileGetUrl } from "@/api/common";
 import SendGoods from "./components/SendGoods";
@@ -270,7 +273,7 @@ export default {
       // 盲票组下拉列表
       boxData: [],
       siteList:[],
-      siteCopyList:[]
+      siteCopyList:[],
     };
   },
   mounted() {
@@ -395,6 +398,29 @@ export default {
       this.getBoxList(row);
     },
 
+    //取消订单
+    cancellationOrder(row){
+      this.$confirm('确定要取消订单吗?取消后实付金额将原路返回', '取消订单', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log(row)
+        let data = {
+          orderId:row.orderId
+        }
+        return  removeChannelOrder(data)
+      }).then(()=>{
+        this.getList()
+        this.$message({
+          type: 'success',
+          message: '取消订单成功!'
+        })
+      }).catch(() => {
+
+      });
+    },
+
     // 关闭发货弹框
     close() {
       this.goodsShow = false;
@@ -431,4 +457,7 @@ export default {
 ::v-deep .el-tabs--border-card > .el-tabs__content {
   padding: 0;
 }
+.el-button {
+  margin-left: 0;
+}
 </style>