Bläddra i källkod

批量操作 bug修复

chenrui 4 år sedan
förälder
incheckning
1cd393e152

+ 29 - 4
src/views/inventoryManagement/inventoryWarning/list.vue

@@ -91,7 +91,7 @@
       class="sTable"
       ref="table"
       size="default"
-      :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
+      :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onChange, onSelect: onSelectChange, onSelectAll: onSelectAllChange }"
       :rowKey="(record) => record.id"
       :columns="columns"
       :dataSource="loadData"
@@ -316,10 +316,35 @@ export default {
         }
       })
     },
-    onSelectChange (selectedRowKeys, selectedRows) {
-      console.log('selectedRowKeys changed: ', selectedRowKeys, selectedRows)
+    onChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
-      this.selectedRows = selectedRows
+    },
+    onSelectChange (record, selected, selectedRows, nativeEvent) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows.push(record)
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          if (item.id == record.id) {
+            _this.selectedRows.splice(index, 1)
+          }
+        })
+      }
+    },
+    // 本页全选/取消全选
+    onSelectAllChange (selected, selectedRows, changeRows) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows = [...this.selectedRows, ...changeRows]
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          this.selectedRows.map((subItem, ind) => {
+            if (item.id == subItem.id) {
+              _this.selectedRows.splice(index, 1)
+            }
+          })
+        })
+      }
     },
     //  重置
     resetSearchForm () {

+ 29 - 3
src/views/productManagement/productInfo/list.vue

@@ -98,7 +98,7 @@
       class="sTable"
       ref="table"
       size="default"
-      :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
+      :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onChange, onSelect: onSelectChange, onSelectAll: onSelectAllChange }"
       :rowKey="(record) => record.id"
       :columns="columns"
       :data="loadData"
@@ -241,9 +241,35 @@ export default {
     }
   },
   methods: {
-    onSelectChange (selectedRowKeys, selectedRows) {
+    onChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
-      this.selectedRows = selectedRows
+    },
+    onSelectChange (record, selected, selectedRows, nativeEvent) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows.push(record)
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          if (item.id == record.id) {
+            _this.selectedRows.splice(index, 1)
+          }
+        })
+      }
+    },
+    // 本页全选/取消全选
+    onSelectAllChange (selected, selectedRows, changeRows) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows = [...this.selectedRows, ...changeRows]
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          this.selectedRows.map((subItem, ind) => {
+            if (item.id == subItem.id) {
+              _this.selectedRows.splice(index, 1)
+            }
+          })
+        })
+      }
     },
     // 审核
     handleAudit (row) {

+ 0 - 162
src/views/salesManagement/outboundOrder/detailModal.vue

@@ -1,162 +0,0 @@
-<template>
-  <a-modal
-    centered
-    class="outboundOrderDetail-modal"
-    :footer="null"
-    :maskClosable="false"
-    title="详情"
-    v-model="isShow"
-    @cancle="isShow=false"
-    :width="1000">
-    <div style="padding: 0 12px;text-align: right;">
-      <a-button id="outboundOrderDetail-preview-btn" style="margin-right: 15px;">打印预览</a-button>
-      <a-button type="primary" id="outboundOrderDetail-print-btn">快速打印</a-button>
-    </div>
-    <!-- 基础信息 -->
-    <a-card size="small" :bordered="false" class="outboundOrderDetail-cont">
-      <a-collapse :activeKey="['1']">
-        <a-collapse-panel key="1" header="基础信息">
-          <a-descriptions size="small" :column="2">
-            <a-descriptions-item label="客户名称">{{ detailData&&detailData.buyerName || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="收货地址" v-if="detailData">
-              <span v-if="(detailData&&detailData.salesBillExtEntity) && (detailData.salesBillExtEntity.shippingAddrProvinceName || detailData.salesBillExtEntity.shippingAddrCityName || detailData.salesBillExtEntity.shippingAddrCountyName || detailData.salesBillExtEntity.shippingAddr)">
-                {{ detailData.salesBillExtEntity.shippingAddrProvinceName }}
-                {{ detailData.salesBillExtEntity.shippingAddrCityName }}
-                {{ detailData.salesBillExtEntity.shippingAddrCountyName }}
-                {{ detailData.salesBillExtEntity.shippingAddr }}
-              </span>
-              <span v-else>--</span>
-            </a-descriptions-item>
-            <a-descriptions-item label="收款方式">{{ detailData&&detailData.salesBillExtEntity&&detailData.salesBillExtEntity.settleStyleSnDictValue || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="收货人">{{ detailData&&detailData.salesBillExtEntity&&detailData.salesBillExtEntity.consigneeName || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="收货电话">{{ detailData&&detailData.salesBillExtEntity&&detailData.salesBillExtEntity.consigneeTel || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="备注">{{ detailData&&detailData.salesBillExtEntity&&detailData.salesBillExtEntity.remarks || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="业务状态">{{ detailData&&detailData.billStatusDictValue || '--' }}</a-descriptions-item>
-          </a-descriptions>
-        </a-collapse-panel>
-      </a-collapse>
-    </a-card>
-    <a-card size="small" :bordered="false" class="outboundOrderDetail-cont">
-      <!-- alert -->
-      <a-alert type="info" style="margin-bottom: 10px;">
-        <div slot="message">
-          本次下推数量:<strong>{{ totalOutQty }}</strong>
-        </div>
-      </a-alert>
-      <!-- 列表 -->
-      <s-table
-        class="sTable"
-        ref="table"
-        size="small"
-        :rowKey="(record) => record.id"
-        :columns="columns"
-        :data="loadData"
-        bordered>
-        <!-- 状态 -->
-        <template slot="state" slot-scope="text, record">
-          <a-tag :color="record.state==1?'green':'red'" >{{ record.state==1? '已出库': '未出库' }}</a-tag>
-        </template>
-      </s-table>
-    </a-card>
-  </a-modal>
-</template>
-
-<script>
-import { STable } from '@/components'
-import { stockOutDetail, stockOutDetailList, stockOutDetailCount } from '@/api/stockOut'
-export default {
-  name: 'OutboundOrderDetailModal',
-  components: { STable },
-  props: {
-    openModal: { //  弹框显示状态
-      type: Boolean,
-      default: false
-    },
-    itemSn: {
-      type: [Number, String],
-      default: ''
-    }
-  },
-  data () {
-    return {
-      isShow: this.openModal, //  是否打开弹框
-      detailData: null, //  详情数据
-      // 表头
-      columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '产品编码', dataIndex: 'productCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'productOrigCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单位', dataIndex: 'unit', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '本次出库数', dataIndex: 'outQty', width: 110, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
-      ],
-      // 加载数据方法 必须为 Promise 对象
-      loadData: parameter => {
-        this.disabled = true
-        return stockOutDetailList(Object.assign(parameter, this.queryParam, { sn: this.itemSn })).then(res => {
-          const data = res.data
-          const no = (data.pageNo - 1) * data.pageSize
-          for (var i = 0; i < data.list.length; i++) {
-            data.list[i].no = no + i + 1
-          }
-          this.disabled = false
-          this.getDetailCount()
-          return data
-        })
-      },
-      totalOutQty: 0 //  下推数量
-    }
-  },
-  methods: {
-    //  获取详情
-    getDetail () {
-      stockOutDetail({ sn: this.itemSn }).then(res => {
-        if (res.status == 200) {
-          this.detailData = res.data
-        } else {
-          this.detailData = null
-        }
-      })
-    },
-    // 合计
-    getDetailCount () {
-      stockOutDetailCount({ sn: this.itemSn }).then(res => {
-        if (res.status == 200) {
-          this.totalOutQty = res.data.totalOutQty || 0
-        } else {
-          this.totalOutQty = 0
-        }
-      })
-    }
-  },
-  watch: {
-    //  父页面传过来的弹框状态
-    openModal (newValue, oldValue) {
-      this.isShow = newValue
-    },
-    //  重定义的弹框状态
-    isShow (newValue, oldValue) {
-      if (!newValue) {
-        this.$emit('close')
-      }
-    },
-    itemSn (newValue, oldValue) {
-      if (this.isShow && newValue) {
-        this.getDetail()
-      }
-    }
-  }
-}
-</script>
-
-<style lang="less">
-  .outboundOrderDetail-modal{
-    .ant-modal-body {
-      padding: 10px 10px 20px;
-    }
-    .btn-cont {
-      text-align: center;
-      margin: 35px 0 10px;
-    }
-  }
-</style>

+ 49 - 25
src/views/salesManagement/outboundOrder/list.vue

@@ -69,7 +69,7 @@
       ref="table"
       size="default"
       :row-selection="rowSelection"
-      :rowKey="(record) => record.id"
+      :rowKey="(record) => record.stockOutSn"
       :columns="columns"
       :data="loadData"
       :scroll="{ x: 1710, y: tableHeight }"
@@ -91,20 +91,15 @@
         <span v-else>--</span>
       </template>
     </s-table>
-    <!-- 详情 -->
-    <!-- <outbound-order-detail-modal :openModal="openModal" :itemSn="itemSn" @close="closeModal" /> -->
-    <!-- 调拨详情 -->
-    <!-- <transfer-out-detail-modal :openModal="openDetailModal" :itemSn="itemSn" @close="closeDetailModal" /> -->
   </a-card>
 </template>
 
 <script>
 import moment from 'moment'
 import { STable, VSelect } from '@/components'
-import outboundOrderDetailModal from './detailModal.vue'
 import { stockOutList, stockOutOut } from '@/api/stockOut'
 export default {
-  components: { STable, VSelect, outboundOrderDetailModal },
+  components: { STable, VSelect },
   data () {
     return {
       advanced: false, // 高级搜索 展开/关闭
@@ -130,6 +125,7 @@ export default {
         { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center', fixed: 'right' }
       ],
       selectedRowKeys: [], // Check here to configure the default column
+      selectedRows: [],
       loading: false,
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -154,9 +150,7 @@ export default {
           this.disabled = false
           return data
         })
-      },
-      itemSn: '',
-      openDetailModal: false
+      }
     }
   },
   computed: {
@@ -167,7 +161,13 @@ export default {
       return {
         selectedRowKeys: this.selectedRowKeys,
         onChange: (selectedRowKeys, selectedRows) => {
-          this.onSelectChange(selectedRowKeys)
+          this.onChange(selectedRowKeys, selectedRows)
+        },
+        onSelect: (record, selected, selectedRows, nativeEvent) => {
+          this.onSelectChange(record, selected, selectedRows, nativeEvent)
+        },
+        onSelectAll: (selected, selectedRows, changeRows) => {
+          this.onSelectAllChange(selected, selectedRows, changeRows)
         },
         getCheckboxProps: record => ({
           props: {
@@ -182,16 +182,6 @@ export default {
     disabledDate (date, dateStrings) {
       return date && date.valueOf() > Date.now()
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
-    // 关闭 出库详情 弹框
-    closeDetailModal () {
-      this.itemSn = ''
-      this.openDetailModal = false
-    },
     //  重置
     resetSearchForm () {
       this.queryParam.demanderName = ''
@@ -204,7 +194,6 @@ export default {
     handleDetail (row) {
       //  根据出库类型跳转对应页面
       if (row.outBizType == 'OUT_SALES') { //  销售出库
-        // this.$router.push({ path: `/salesManagement/outboundOrder/detail/${row.stockOutSn}` })
         this.$router.push({ path: `/salesManagement/pushOrderManagement/detail/${row.outBizSubSn}` })
       } else if (row.outBizType == 'OUT_ALLOT') { //  调拨出库
         this.$router.push({ path: `/allocationManagement/transferOut/detail/${row.outBizSn}` })
@@ -224,7 +213,15 @@ export default {
           this.$message.warning('请在列表勾选后再进行批量操作!')
           return
         }
-        params = this.selectedRowKeys
+        params = []
+        this.selectedRows.map(item => {
+          params.push({
+            stockOutSn: item.stockOutSn,
+            outBizSn: item.outBizSn,
+            outBizSubSn: item.outBizSubSn,
+            outBizType: item.outBizType
+          })
+        })
       }
       this.$confirm({
         title: '提示',
@@ -239,6 +236,7 @@ export default {
             if (res.status == 200) {
               if (!row) { //  批量出库
                 _this.selectedRowKeys = []
+                _this.selectedRows = []
               }
               _this.$message.success(res.message)
               _this.$refs.table.refresh()
@@ -247,9 +245,35 @@ export default {
         }
       })
     },
-    onSelectChange (selectedRowKeys) {
-      console.log('selectedRowKeys changed: ', selectedRowKeys)
+    onChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
+    },
+    onSelectChange (record, selected, selectedRows, nativeEvent) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows.push(record)
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          if (item.stockOutSn == record.stockOutSn) {
+            _this.selectedRows.splice(index, 1)
+          }
+        })
+      }
+    },
+    // 本页全选/取消全选
+    onSelectAllChange (selected, selectedRows, changeRows) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows = [...this.selectedRows, ...changeRows]
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          this.selectedRows.map((subItem, ind) => {
+            if (item.stockOutSn == subItem.stockOutSn) {
+              _this.selectedRows.splice(index, 1)
+            }
+          })
+        })
+      }
     }
   }
 }

+ 29 - 3
src/views/salesManagement/salesReturn/salesReturnCheck.vue

@@ -21,7 +21,7 @@
         class="sTable"
         ref="table"
         size="default"
-        :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
+        :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onChange, onSelect: onSelectChange, onSelectAll: onSelectAllChange }"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
@@ -161,9 +161,35 @@ export default {
     }
   },
   methods: {
-    onSelectChange (selectedRowKeys, selectedRows) {
+    onChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
-      this.selectedRows = selectedRows
+    },
+    onSelectChange (record, selected, selectedRows, nativeEvent) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows.push(record)
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          if (item.id == record.id) {
+            _this.selectedRows.splice(index, 1)
+          }
+        })
+      }
+    },
+    // 本页全选/取消全选
+    onSelectAllChange (selected, selectedRows, changeRows) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows = [...this.selectedRows, ...changeRows]
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          this.selectedRows.map((subItem, ind) => {
+            if (item.id == subItem.id) {
+              _this.selectedRows.splice(index, 1)
+            }
+          })
+        })
+      }
     },
     //  返回
     handleBack () {

+ 29 - 3
src/views/salesManagement/waitDispatch/edit.vue

@@ -54,7 +54,7 @@
         class="sTable"
         ref="table"
         size="small"
-        :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
+        :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onChange, onSelect: onSelectChange, onSelectAll: onSelectAllChange }"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
@@ -162,9 +162,35 @@ export default {
     }
   },
   methods: {
-    onSelectChange (selectedRowKeys, selectedRows) {
+    onChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
-      this.selectedRows = selectedRows
+    },
+    onSelectChange (record, selected, selectedRows, nativeEvent) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows.push(record)
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          if (item.id == record.id) {
+            _this.selectedRows.splice(index, 1)
+          }
+        })
+      }
+    },
+    // 本页全选/取消全选
+    onSelectAllChange (selected, selectedRows, changeRows) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows = [...this.selectedRows, ...changeRows]
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          this.selectedRows.map((subItem, ind) => {
+            if (item.id == subItem.id) {
+              _this.selectedRows.splice(index, 1)
+            }
+          })
+        })
+      }
     },
     // 统计查询
     getTotalData (params) {

+ 31 - 3
src/views/salesManagement/waitDispatch/queryPart.vue

@@ -71,7 +71,9 @@
       size="small"
       :row-selection="{
         selectedRowKeys: selectedRowKeys,
-        onChange: onSelectChange,
+        onChange: onChange,
+        onSelect: onSelectChange,
+        onSelectAll: onSelectAllChange,
         getCheckboxProps:record =>({props: {
           disabled: record.surplusQty<=0,
         }})
@@ -204,9 +206,35 @@ export default {
     }
   },
   methods: {
-    onSelectChange (selectedRowKeys, selectedRows) {
+    onChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
-      this.selectedRows = selectedRows
+    },
+    onSelectChange (record, selected, selectedRows, nativeEvent) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows.push(record)
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          if (item.id == record.id) {
+            _this.selectedRows.splice(index, 1)
+          }
+        })
+      }
+    },
+    // 本页全选/取消全选
+    onSelectAllChange (selected, selectedRows, changeRows) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows = [...this.selectedRows, ...changeRows]
+      } else { //  取消
+        this.selectedRows.map((item, index) => {
+          this.selectedRows.map((subItem, ind) => {
+            if (item.id == subItem.id) {
+              _this.selectedRows.splice(index, 1)
+            }
+          })
+        })
+      }
     },
     // 类型变化,过滤列表
     handlePtypeChange () {