lilei 2 yıl önce
ebeveyn
işleme
ebeda31c37

+ 10 - 1
src/api/rewardOrder.js

@@ -21,7 +21,8 @@ export const exportRewardOrder = params => {
   return axios({
     url: `/rewardOrder/exportOrderProduct`,
     data: params,
-    method: 'post'
+    method: 'post',
+    responseType: 'blob'
   })
 }
 // 详情
@@ -66,4 +67,12 @@ export const rewardOrderQueryPage = params => {
     data: params,
     method: 'POST'
   })
+}
+// 汇总
+export const rewardOrderQueryCount = params => {
+  return axios({
+    url: `/rewardOrder/queryCount`,
+    data: params,
+    method: 'post'
+  })
 }

+ 73 - 24
src/views/numsGoodsShelves/redPacket/redPacketStatistics.vue

@@ -6,7 +6,7 @@
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-item label="活动名称">
-                <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.shelfName" placeholder="请输入活动名称"/>
+                <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.rewardRuleName" placeholder="请输入活动名称"/>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -27,29 +27,29 @@
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="员工姓名">
-                  <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.shelfName" placeholder="请输入员工姓名"/>
+                  <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.userName" placeholder="请输入员工姓名"/>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="员工手机号码">
-                  <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.shelfName" placeholder="请输入员工手机号码"/>
+                  <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.userMobile" placeholder="请输入员工手机号码"/>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="订单编号">
-                  <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.shelfName" placeholder="请输入员工手机号码"/>
+                  <a-input id="redPacket-orderNo" allowClear v-model.trim="queryParam.orderNo" placeholder="请输入员工手机号码"/>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="订单类型">
-                  <v-select id="redPacket-state" code="SHELF_STATE" v-model="queryParam.state" allowClear placeholder="请选择订单类型"></v-select>
+                  <v-select id="redPacket-orderType" code="REWARD_BIZ_TYPE" v-model="queryParam.orderType" allowClear placeholder="请选择订单类型"></v-select>
                 </a-form-item>
               </a-col>
-              <a-col :md="6" :sm="24">
+              <!-- <a-col :md="6" :sm="24">
                 <a-form-item label="iSCM销售单号">
-                  <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.shelfName" placeholder="请输入iSCM销售单号"/>
+                  <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.bizNo" placeholder="请输入iSCM销售单号"/>
                 </a-form-item>
-              </a-col>
+              </a-col> -->
               <a-col :md="6" :sm="24">
                 <a-form-item label="红包奖励时间">
                   <rangeDate ref="rangeDate" @change="dateChange" />
@@ -57,14 +57,14 @@
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="红包发放状态">
-                  <v-select id="redPacket-state" code="SHELF_STATE" v-model="queryParam.state" allowClear placeholder="请选择红包发放状态"></v-select>
+                  <v-select id="redPacket-rewardStatus" code="REWARD_SEND_STATUS" v-model="queryParam.rewardStatus" allowClear placeholder="请选择红包发放状态"></v-select>
                 </a-form-item>
               </a-col>
             </template>
             <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
               <a-button type="primary" @click="$refs.table.refresh(true)" id="redPacket-search">查询</a-button>
               <a-button type="" @click="reset" id="gredPacket-reset" style="margin-left: 10px;">重置</a-button>
-              <a-button type="primary" class="button-warning" id="gredPacket-export" style="margin-left: 10px;">导出</a-button>
+              <a-button type="primary" @click="exportFile" class="button-warning" id="gredPacket-export" style="margin-left: 10px;">导出</a-button>
               <a @click="advanced=!advanced" style="margin-left: 8px">
                 {{ advanced ? '收起' : '展开' }}
                 <a-icon :type="advanced ? 'up' : 'down'"/>
@@ -73,15 +73,15 @@
           </a-row>
         </a-form>
         <div class="table-operator">
-          <a-button type="primary" class="button-error">批量标记已发</a-button>
+          <a-button type="primary" class="button-error" @click="plPublish">批量标记已发</a-button>
           <span v-if="totalChoose">已选{{ totalChoose }}项</span>
         </div>
         <a-alert type="info" style="margin-bottom:10px">
           <div slot="message">
-            售价总计:<strong>{{ totalData&&(totalData.totalRecord || totalData.totalRecord==0) ? totalData.totalRecord : '--' }}</strong>;
-            成本总计:<strong>{{ totalData&&(totalData.totalCategory || totalData.totalCategory==0) ? totalData.totalCategory : '--' }}</strong>;
-            毛利总计:<strong>{{ totalData&&(totalData.totalQty || totalData.totalQty==0) ? totalData.totalQty : '--' }}</strong>;
-            红包金额总计:<strong>{{ totalData&&(totalData.totalPushedQty || totalData.totalPushedQty==0) ? totalData.totalPushedQty : '--' }}</strong>;
+            售价总计:<strong>{{ totalData&&(totalData.totalTerminalPrice || totalData.totalTerminalPrice==0) ? totalData.totalTerminalPrice : '--' }}</strong>;
+            成本总计:<strong>{{ totalData&&(totalData.totalCityPrice || totalData.totalCityPrice==0) ? totalData.totalCityPrice : '--' }}</strong>;
+            毛利总计:<strong>{{ totalData&&(totalData.totalGrossAmount || totalData.totalGrossAmount==0) ? totalData.totalGrossAmount : '--' }}</strong>;
+            红包金额总计:<strong>{{ totalData&&(totalData.totalRewardAmount || totalData.totalRewardAmount==0) ? totalData.totalRewardAmount : '--' }}</strong>;
           </div>
         </a-alert>
       </div>
@@ -92,7 +92,7 @@
         size="small"
         rowKey="id"
         :columns="columns"
-        :row-selection="{ columnWidth: 40 }"
+        :row-selection="{ columnWidth: 40, getCheckboxProps: record => ({ props: { disabled: record.rewardStatus!='un_paid' } })}"
         @rowSelection="rowSelectionFun"
         :data="loadData"
         :scroll="{ y: tableHeight, x: 1900 }"
@@ -104,6 +104,7 @@
         <template slot="rewardStatus" slot-scope="text, record">
           <span v-if="record.rewardStatus=='un_paid'" style="color: #ffaa00;">{{ text }}</span>
           <span v-else-if="record.rewardStatus=='paid'" style="color: #55aa00;">{{ text }}</span>
+          <span v-else style="color: #ff0000;">{{ text }}</span>
         </template>
         <template slot="action" slot-scope="text, record">
           <a-button v-if="record.rewardStatus=='un_paid'" size="small" type="link" class="button-info" @click="handlePublish(record)">标记已发</a-button>
@@ -119,7 +120,8 @@
 
 <script>
 import { STable, VSelect } from '@/components'
-import { rewardOrderQueryPage, rewardOrderCancel, cancelRewardBatch, exportRewardOrder, rewardOrderGiveReward, rewardOrderGiveRewardBatch } from '@/api/rewardOrder.js'
+import { rewardOrderQueryPage, rewardOrderCancel, cancelRewardBatch, exportRewardOrder, rewardOrderGiveReward, rewardOrderGiveRewardBatch, rewardOrderQueryCount } from '@/api/rewardOrder.js'
+import { hdExportExcel } from '@/libs/exportExcel'
 import dealerList from '@/views/common/dealerList.vue'
 import storeList from '@/views/common/storeList.vue'
 import rangeDate from '@/views/common/rangeDate.vue'
@@ -135,10 +137,19 @@ export default {
       tableHeight: 0,
       // 查询参数
       queryParam: {
-        state: '', // 货架状态
-        settleType: '' // 结算状态
+        rewardRuleName: '',
+        shelfName: '',
+        userName: '',
+        userMobile: '',
+        orderNo: '',
+        orderType: undefined,
+        bizNo: '',
+        rewardStatus: undefined,
+        beginDate: '',
+        endDate: ''
       },
       itemData: null, // 编辑行数据
+      totalData: null,
       // 表头
       columns: [
         { title: '序号', dataIndex: 'no', width: '60px', align: 'center' },
@@ -162,7 +173,8 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.spinning = true
-        return rewardOrderQueryPage(Object.assign(parameter, this.queryParam)).then(res => {
+        const params = Object.assign(parameter, this.queryParam)
+        return rewardOrderQueryPage(params).then(res => {
           let data
           if (res.status == 200) {
             data = res.data
@@ -172,6 +184,7 @@ export default {
               _item.no = no + i + 1
             }
           }
+          this.getCount(params)
           this.spinning = false
           return data
         })
@@ -185,6 +198,11 @@ export default {
     }
   },
   methods: {
+    getCount (params) {
+      rewardOrderQueryCount(params).then(res => {
+        this.totalData = res.data
+      })
+    },
     // 表格选中项
     rowSelectionFun (obj) {
       this.rowSelectionInfo = obj || null
@@ -205,13 +223,19 @@ export default {
     // 重置
     reset () {
       this.queryParam = {
-        shelfName: '', // 货架名称
-        state: undefined// 货架状态
+        rewardRuleName: '',
+        shelfName: '',
+        userName: '',
+        userMobile: '',
+        orderNo: '',
+        orderType: undefined,
+        bizNo: '',
+        rewardStatus: undefined,
+        beginDate: '',
+        endDate: ''
       }
       if (this.advanced) {
         this.$refs.rangeDate.resetDate()
-        this.queryParam.beginDate = ''
-        this.queryParam.endDate = ''
       }
       this.$refs.table.refresh(true)
     },
@@ -226,6 +250,23 @@ export default {
         this.spinning = false
       })
     },
+    // 批量发布
+    plPublish () {
+      if (this.totalChoose) {
+        this.spinning = true
+        rewardOrderGiveRewardBatch({
+          idList: this.rowSelectionInfo.selectedRowKeys
+        }).then(res => {
+          if (res.status == 200) {
+            this.$message.success(res.message)
+            this.$refs.table.refresh()
+          }
+          this.spinning = false
+        })
+      } else {
+        this.$message.warning('请选择要批量标记为发布的活动!')
+      }
+    },
     // 详情
     viewDetail (row) {
       this.itemData = row
@@ -252,6 +293,14 @@ export default {
         }
       })
     },
+    // 导出
+    exportFile () {
+      const _this = this
+      _this.spinning = true
+      hdExportExcel(exportRewardOrder, this.queryParam, '红包活动统计', function () {
+        _this.spinning = false
+      })
+    },
     pageInit () {
       const _this = this
       _this.$refs.table.refresh()