| 
					
				 | 
			
			
				@@ -0,0 +1,404 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div class="productInfoList-wrap"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <!-- alert --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div style="margin-bottom: 10px;display: flex;align-items: center;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div style="display: flex;align-items: center;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <a-button type="primary" :disabled="newLoading" class="button-info" @click="handlePlAdd">批量删除</a-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <span style="margin-left: 10px;" v-if="selectedRowKeys.length">已选 {{ selectedRowKeys.length }} 项</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div style="padding-left: 20px;" v-if="detailData"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          本次下推款数:<strong>{{ detailData&&(detailData.totalQty || detailData.totalQty==0) ? detailData.totalQty : '--' }}</strong>; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          本次下推数量:<strong>{{ detailData&&(detailData.totalCancelQty || detailData.totalCancelQty==0) ? detailData.totalCancelQty : '--' }}</strong>; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <a-spin :spinning="spinning" tip="Loading..."> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <ve-table 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                border-y 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v-show="!showEmpty" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :scroll-width="0" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :max-height="tableHeight" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :show-header="showTableHead" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :row-style-option="{clickHighlight: true}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :cellSelectionOption="{enable: false}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :virtual-scroll-option="{enable: true}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :columns="columns" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :table-data="dataSource" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                row-key-field-name="id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :cell-style-option="cellStyleOption" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :cell-span-option="cellSpanOption" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :column-width-resize-option="columnWidthResizeOption" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :checkbox-option="checkboxOption" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div v-show="showEmpty" class="empty-data">暂无数据</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </a-spin> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { commonMixin } from '@/utils/mixin' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { deleteBatch, waitDispatchDetailAllList, updateQty } from '@/api/waitDispatchDetail' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { findBySalesBillSn } from '@/api/dispatch' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { STable, VSelect } from '@/components' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import chooseWarehouse from '@/views/common/chooseWarehouse' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: 'DetailProductList', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    mixins: [commonMixin], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    components: { STable, VSelect, chooseWarehouse }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    props: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      newLoading: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: Boolean, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      maxHeight:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: [String,Number], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            default: '300' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      showHeader: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: Boolean, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          default: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryParam: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dispatchBillSn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        disabled: false, //  查询、重置按钮是否可操作 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        spinning: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dataSource: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tableHeight: this.maxHeight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cellStyleOption: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          bodyCellClass: ({ row, column, rowIndex }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (row.id.indexOf('promo-')>=0 && column.field === "no") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  return "table-body-cell-no"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        columnWidthResizeOption: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // default false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            enable: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // column resize min width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            minWidth: 50 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cellSpanOption: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bodyCellSpan: this.bodyCellSpan, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        showEmpty: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        showTableHead: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        disableSelectedRowKeys: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        selectedRowKeys: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    computed: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      checkboxOption () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            disableSelectedRowKeys: this.disableSelectedRowKeys, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            selectedRowKeys: this.selectedRowKeys, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 行选择改变事件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            selectedRowChange: ({ row, isSelected, selectedRowKeys }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.selectedRowChange({ row, isSelected, selectedRowKeys }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 全选改变事件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            selectedAllChange: ({ isSelected, selectedRowKeys }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.selectedAllChange({ isSelected, selectedRowKeys }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      columns () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const _this = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const priceFormat = function(data){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              return _this.toThousands(data) || '--' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const numsFormat = function(data){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              return data || data == 0 ? data : '--' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const codeFormat = function(record,data,h){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              let ftext = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              let fcolor = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if(record.promotionFlag == 'GIFT'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ftext = '促' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fcolor = '#52c41a' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if(record.promotionFlag == 'REGULAR'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ftext = '正' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fcolor = '#108ee9' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if(record.promotionFlag == 'DISCOUNT'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ftext = '特' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fcolor = '#faad14' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          <span style="padding-right: 15px;">{data}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          {ftext?(<a-badge count={ftext} number-style={{ backgroundColor: fcolor, zoom:'80%' }}></a-badge>):''} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          {Number(record.stockQty||0) < Number(record.unpushedQty||0)?(<a-badge count="缺" number-style={{ zoom:'80%' }}></a-badge>):''} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 输入框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const inputFormat = function(record,data,h) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if(record.surplusQty>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <a-input-number 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  vModel={record.cancelNums} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  precision={0} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  min={0} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  max={record.surplusQty} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  style="width: 100%;" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  placeholder="请输入" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return '--' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 操作按钮 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const actionFormat = function(record,data,h) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if(record.surplusQty>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 <a-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  type="link" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  class="button-info" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  onClick={()=>_this.handleAdd(record)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  >添加</a-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return '--' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 编号,并且格式化活动分类行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const noFormat = function(record,data,h){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              {record.id.indexOf('promo-')>=0 ? ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="active-title"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  {record.promo?( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <strong style="margin-right:10px;font-size:14px;">{record.promo.promotion.title} ({record.promo.promotionRule.description})</strong> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <span style="margin-left:10px;color:#00aaff;cursor: pointer;" onClick={()=>this.showDesc(record)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <a-icon title="查看活动详情" type="eye"/> 活动详情 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ):(<div></div>)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      总售价:<strong>12333</strong>; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      总款数:<strong>22</strong>; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      总数量:<strong>134</strong>; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ):(<span>{data}</span>)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let arr= [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { title: "", field: "", key: "acheck", type: "checkbox", align: "center" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { title: '序号', field: 'no',key: "a", width: 50, align: 'center', operationColumn: false,renderBodyCell: ({ row, column, rowIndex }, h) => { return noFormat(row,row[column.field],h)} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { title: '产品编码', field: 'productCode',key: "b", width: 150, align: 'center',operationColumn: false,renderBodyCell: ({ row, column, rowIndex }, h) => { return codeFormat(row,row[column.field],h)} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { title: '产品名称', field: 'productName',key: "c", width: 250, align: 'center',operationColumn: false , ellipsis: { showTitle: true },renderBodyCell: ({ row, column, rowIndex }, h) => { return row[column.field] || '--'}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { title: '原厂编码', field: 'productOrigCode',key: "d", width: 150, align: 'center',operationColumn: false,ellipsis: { showTitle: true },renderBodyCell: ({ row, column, rowIndex }, h) => { return row[column.field] || '--'} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { title: '出库仓库', field: 'warehouseName',key: "e", width: 100, align: 'center',operationColumn: false,renderBodyCell: ({ row, column, rowIndex }, h) => { return row[column.field] || '--'}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.$hasPermissions('B_salesDispatch_salesPrice')) { //  售价权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          arr.push({ title: '销售价', field: 'price', width: 80,key: "f", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return priceFormat(row[column.field])} }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.$hasPermissions('B_salesDispatch_costPrice')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          arr.push({ title: '成本价', field: 'showCost', width: 80,key: "g", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return priceFormat(row[column.field])} }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        arr = arr.concat([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { title: '出库仓库', field: 'warehouseName',key: "h", width: 100, align: 'center',operationColumn: false,renderBodyCell: ({ row, column, rowIndex }, h) => { return row[column.field] || '--'}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { title: '单位', field: 'productOrigUnit',key: "i", width: 80, align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return row[column.field] || '--'}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { title: '可用库存', field: 'stockQty', width: 80,key: "j", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return numsFormat(row[column.field])} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { title: '销售数量', field: 'qty', width: 80,key: "k", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return numsFormat(row[column.field])} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { title: '已取消', field: 'cancelQty', width: 80,key: "o", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return numsFormat(row[column.field])} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { title: '已下推', field: 'pushedQty', width: 80,key: "p", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return numsFormat(row[column.field])} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { title: '待下推', field: 'surplusQty', width: 80,key: "q", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return numsFormat(row[column.field])} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { title: '取消数量', field: 'surplusQty', width: 80,key: "r", align: 'center',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return inputFormat(row,row[column.field],h)} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { title: '操作', field: 'action', width: 80,key: "s", align: 'center',fixed: 'right',operationColumn: false, renderBodyCell: ({ row, column, rowIndex }, h) => { return actionFormat(row,row[column.field],h)} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return arr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //  产品分类  change 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      changeProductType (val, opt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.productTypeSn1 = val[0] ? val[0] : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.productTypeSn2 = val[1] ? val[1] : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.productTypeSn3 = val[2] ? val[2] : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 合并活动分类单元格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      bodyCellSpan({ row, column, rowIndex }) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (row.id.indexOf('promo-')>=0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if(column.field=='no'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      rowspan: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      colspan: 17, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  rowspan: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  colspan: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 选择单元格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      selectedRowChange({ row, isSelected, selectedRowKeys }){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log(row, isSelected, selectedRowKeys); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.selectedRowKeys = selectedRowKeys; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 全选行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      selectedAllChange({ isSelected, selectedRowKeys }){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log(isSelected, selectedRowKeys); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.selectedRowKeys = selectedRowKeys; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 获取销售单参与的活动列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getActiveList(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        salesPromoQueryList({ salesBillSn: this.salesBillSn }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if(res.status == 200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.activeList = res.data || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.$nextTick(()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.searchTable() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      async searchTable(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.selectedRowKeys = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.disableSelectedRowKeys = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.dataSource = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.disabled = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.spinning = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.queryParam.salesBillSn = this.salesBillSn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.queryParam.showStock = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const params = this.queryParam 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // 正常产品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const listData = await waitDispatchDetailAllList(params).then(res => res.data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const countData = await findBySalesBillSn({salesBillSn: this.salesBillSn}).then(res => res.data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log(listData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.dataSource = listData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // 格式化数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let f = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.dataSource.map((item,i) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(item.id.indexOf('promo-')>=0){f = f - 1} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.no = i + 1 + f 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const productCode = (item.productEntity && item.productEntity.code) || (item.dealerProductEntity && item.dealerProductEntity.code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const productName = (item.productEntity && item.productEntity.name) || (item.dealerProductEntity && item.dealerProductEntity.name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const productOrigCode = (item.productEntity && item.productEntity.origCode) || (item.dealerProductEntity && item.dealerProductEntity.origCode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const productOrigUnit = (item.productEntity && item.productEntity.unit) || (item.dealerProductEntity && item.dealerProductEntity.unit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.productCode = productCode || '--' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.productName = productName || '--' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.productOrigCode = productOrigCode == ' ' ? '--' : productOrigCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.productOrigUnit = productOrigUnit || '--' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(item.stockQty<0 || !item.stockQty){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.disableSelectedRowKeys.push(item.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.tableHeight = (this.showEmpty ? 200 : this.maxHeight) + 'px' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.spinning = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.disabled = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //  重置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resetSearchForm () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.ptype = '0' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.productCode = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.productName = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.promotionFlag = undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.brandSn = undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.productTypeSn1 = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.productTypeSn2 = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.productTypeSn3 = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.queryParam.warehouseSn = undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.productType = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.dataSource = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.searchTable() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      pageInit (salesBillSn, detailData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.salesBillSn = salesBillSn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.detailData = detailData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 获取活动列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.getActiveList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 清空选项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      clearSelectTable () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         this.selectedRowKeys = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 添加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handleAdd (row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (row.stockQty > 0) { //  可用库存大于0才可添加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.$emit('addProduct', [row.salesBillDetailSn]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.$message.warning('库存为0,不可添加!') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 批量添加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handlePlAdd () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const _this = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const chooseList = this.selectedRowKeys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (chooseList.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          _this.$message.warning('请先选择产品!') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const chooseRow = this.dataSource.filter(item => chooseList.includes(item.id) && item.id.indexOf('promo-')<0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const obj = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        chooseRow && chooseRow.map(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (item.stockQty > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            obj.push(item.salesBillDetailSn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$confirm({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title: '提示', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          content: '确认要批量添加到待下推列表吗?', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          centered: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          closable: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          onOk () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _this.$emit('addProduct', obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 批量取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handlePlCancel () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const _this = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const chooseList = this.selectedRowKeys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (chooseList.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          _this.$message.warning('请先选择产品!') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const chooseRow = this.dataSource.filter(item => chooseList.includes(item.id) && item.id.indexOf('promo-')<0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const obj = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        chooseRow && chooseRow.map(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          obj.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'cancelQty': item.cancelNums, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'salesBillDetailSn': item.salesBillDetailSn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$emit('cancelProduct', obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <style lang="less"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .ve-table-body-td{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .active-title{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        align-items: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        padding: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        background: #f3f8fa; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .ve-table .ve-table-container .ve-table-content-wrapper table.ve-table-content tbody.ve-table-body tr.ve-table-body-tr td.table-body-cell-no,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .ve-table .ve-table-container .ve-table-content-wrapper table.ve-table-content tbody.ve-table-body tr.ve-table-expand-tr td.table-body-cell-no{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      padding: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </style> 
			 |