Parcourir la source

订单期数调整

theo il y a 2 ans
Parent
commit
a7f18eaf96
5 fichiers modifiés avec 244 ajouts et 0 suppressions
  1. 30 0
      src/api/shop.js
  2. 1 0
      src/lang/en.js
  3. 1 0
      src/lang/zh.js
  4. 6 0
      src/router/index.js
  5. 206 0
      src/views/shop/order-period-adjust.vue

+ 30 - 0
src/api/shop.js

@@ -165,6 +165,36 @@ export function deleteOrder(query) {
   })
 }
 
+// 订单期数调整
+export function orderPeriodAdjustList(query) {
+  return request({
+    url: '/v1/shop/order-period-adjust',
+    method: 'get',
+    data: query,
+    params: query
+  })
+}
+
+// 订单期数调整
+export function orderPeriodAdjust(query) {
+  return request({
+    url: '/v1/shop/order-period-adjust',
+    method: 'post',
+    data: query,
+    params: query
+  })
+}
+
+// 订单详情
+export function orderDetail(query) {
+  return request({
+    url: '/v1/shop/order-detail',
+    method: 'get',
+    data: query,
+    params: query
+  })
+}
+
 
 
 

+ 1 - 0
src/lang/en.js

@@ -463,6 +463,7 @@ export default {
     remainBVFlow: 'Remain BV Flow',
     externalMallOrderList: 'External Mall Order List',
     externalMallEntryList: 'External Mall Entry List',
+    shopOrderPeriodAdjust: 'Order Period Adjust',
     // Second level menu/interface-memberManagement
     memberList: 'Member List',
     emptyOrderOperation: 'Empty Order Operation',

+ 1 - 0
src/lang/zh.js

@@ -464,6 +464,7 @@ export default {
     remainBVFlow: '剩余BV流水',
     externalMallOrderList: '外部商城订单列表',
     externalMallEntryList: '外部商城报单列表',
+    shopOrderPeriodAdjust: '订单期数调整',
     // 二级菜单/接口-memberManagement
     memberList: '会员列表',
     emptyOrderOperation: '空单操作',

+ 6 - 0
src/router/index.js

@@ -214,6 +214,12 @@ export const constantRoutes = [
         name: 'shop_order-list',
         meta: {title: 'shopOrderlList',},
       },
+      {
+        path: '/shop/order-period-adjust',
+        component: () => import('@/views/shop/order-period-adjust'),
+        name: 'shop_order-period-adjust',
+        meta: {title: 'shopOrderPeriodAdjust',},
+      },
     ]
   },
   {

+ 206 - 0
src/views/shop/order-period-adjust.vue

@@ -0,0 +1,206 @@
+<template>
+  <div v-loading="loading">
+    <div class="white-box">
+      <div class="filter-box">
+        <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
+      </div>
+      <el-table class="table-box" ref="multipleTable" :data="tableData" stripe style="width: 100%;" :height="tool.getTableHeight()">
+        <el-table-column v-for="(tableHeader, key) in tableHeaders" :key="key" :label="tableHeader.header" :width="tableHeader.other.width ? tableHeader.other.width : ''" :prop="tableHeader.other.prop ? tableHeader.other.prop : null">
+          <template slot-scope="scope">
+            <template v-if="scope.row[tableHeader.index].other.tag" >
+              <el-tag :type="scope.row[tableHeader.index].other.tag.type ? scope.row[tableHeader.index].other.tag.type : null" :size="scope.row[tableHeader.index].other.tag.size ? scope.row[tableHeader.index].other.tag.size : null">{{scope.row[tableHeader.index].value}}</el-tag>
+            </template>
+            <template v-else>
+              <div v-html="scope.row[tableHeader.index].value"></div>
+            </template>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="white-box-footer">
+        <el-button type="primary" size="small" @click="visible = true" v-show="permission.hasPermission(`shop/order-adjust-period`)">调整订单期数</el-button>
+        <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
+      </div>
+    </div>
+
+    <el-dialog title="调整订单期数" :visible.sync="visible" width="50%">
+      <el-form ref="form" :model="form" label-width="250px" class="form-page">
+        <el-form-item label="订单编号" required clearable>
+          <el-input v-model="form.orderSn" @change="handleOrderSnChange"></el-input>
+        </el-form-item>
+        <el-form-item label="会员编号" v-show="order.USER_NAME">
+          <el-input v-model="order.USER_NAME" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="订单类型" v-show="order.ORDER_TYPE">
+          <el-input v-model="order.ORDER_TYPE" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="PV" v-show="order.PV">
+          <el-input v-model="order.PV" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="订单金额" v-show="order.PAY_AMOUNT">
+          <el-input v-model="order.PAY_AMOUNT" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="创建人编号" v-show="order.CREATE_USER">
+          <el-input v-model="order.CREATE_USER" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="期数" v-show="order.PERIOD_NUM">
+          <el-input v-model="order.PERIOD_NUM" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="调整期数" required>
+          <el-select v-model="form.modernPeriod" placeholder="请选择要调整到的期数">
+            <el-option v-for="item in availablePeriod" :key="item.PERIOD_NUM" :label="item.PERIOD_NUM" :value="item.PERIOD_NUM" :disabled="item.disabled"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="onSubmit" :loading="submitButtonStat">提交</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import tool from '@/utils/tool'
+  import FilterUser from '@/components/FilterUser'
+  import permission from '@/utils/permission'
+  import Pagination from '@/components/Pagination'
+  import filterHelper from '@/utils/filterHelper'
+  import {orderPeriodAdjustList, orderDetail, orderPeriodAdjust} from '@/api/shop'
+
+  export default {
+    name: 'shop_order-period-adjust',
+    components: {FilterUser, Pagination},
+    mounted () {
+      this.getData()
+    },
+    data () {
+      return {
+        tableHeaders: null,
+        tableData: null,
+        tableHeight: window.innerHeight - 310,
+        loading: true,
+        currentPage: 1,
+        totalPages: 1,
+        totalCount: 1,
+        pageSize: 20,
+        tool: tool,
+        permission: permission,
+        filterTypes: null,
+        filterModel: {},
+        submitButtonStat: false,
+        visible: false,
+        form: {
+          orderSn: '',
+          modernPeriod: '',
+        },
+        order: {},
+        availablePeriod: null,
+      }
+    },
+    methods: {
+      handleCurrentChange(page) {
+        this.getData(page, this.pageSize)
+      },
+      handleSizeChange(pageSize) {
+        this.getData(this.currentPage, pageSize)
+      },
+      handleFilterUser(filterData) {
+        filterHelper.handleFilterUser(this, filterData)
+      },
+      getData(page, pageSize) {
+        let filterData = this.filterModel
+        let vueObj=this
+        const paramsData = Object.assign({
+          page: (page === null || page == undefined) ? 1 : page,
+          pageSize: (pageSize === null || pageSize == undefined) ? vueObj.pageSize : pageSize
+        }, filterData)
+        orderPeriodAdjustList(paramsData).then( response => {
+          vueObj.tableHeaders = response.data.columnsShow ? response.data.columnsShow : []
+          vueObj.tableData = response.data.list
+          vueObj.filterTypes = response.data.filterTypes
+          vueObj.currentPage = page
+          vueObj.totalPages = parseInt(response.data.totalPages)
+          vueObj.totalCount = parseInt(response.data.totalCount)
+          vueObj.pageSize = pageSize
+          this.loading = false
+        }).catch( err => {
+          this.loading = false
+          this.$message({
+              message: err,
+              type: 'error'
+          })
+        })
+      },
+      handleOrderSnChange() {
+        if (this.form.orderSn) {
+          this.submitButtonStat = true
+
+          let getData = {
+            orderSn: this.form.orderSn
+          }
+          orderDetail(getData).then( response => {
+            this.order = response.data.order
+            this.availablePeriod = response.data.availablePeriod
+            if (response.data.availablePeriod && response.data.availablePeriod[0]) {
+              for (let period of response.data.availablePeriod) {
+                if (!period['disabled']) {
+                  this.form.modernPeriod = period['PERIOD_NUM']
+                  break
+                }
+              }
+            }
+            this.submitButtonStat = false
+          }).catch( error => {
+            this.$message({
+              message: error,
+              type: 'error'
+            })
+            this.submitButtonStat = false
+          })
+        }
+      },
+      onSubmit() {
+        this.$confirm('是否要修改当前订单期数?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this._handleSubmit()
+        }).catch(error => {
+          this.$message({
+            message: error,
+            type: 'error'
+          })
+          this.submitButtonStat = false
+        })
+      },
+      _handleSubmit() {
+        this.submitButtonStat = true
+        let paramsData = this.form
+        orderPeriodAdjust(paramsData).then( res => {
+          this.$message({
+            message: res.data,
+            type: 'success'
+          })
+          this.submitButtonStat = false
+          this._clearData()
+        }).catch( error => {
+          this.$message({
+            message: error,
+            type: 'error'
+          })
+          this.submitButtonStat = false
+        })
+      },
+      _clearData(){
+        this.form = {}
+        this.order = {}
+        this.visible = false
+        this.getData()
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>