Browse Source

Merge branch 'deploy_0804' of jianguan-web/jg-ocs-html into master

gitadmin 3 years ago
parent
commit
4d66f7c0d4
97 changed files with 2993 additions and 1767 deletions
  1. 86 2
      src/api/reportData.js
  2. 9 0
      src/api/sales.js
  3. 23 1
      src/api/salesDetail.js
  4. 1 1
      src/components/Exception/ExceptionPage.vue
  5. 31 12
      src/components/MultiTab/MultiTab.vue
  6. 2 2
      src/components/Table/index.js
  7. 6 0
      src/components/index.less
  8. 76 1
      src/config/router.config.js
  9. 10 11
      src/views/allocationManagement/transferOut/detail.vue
  10. 21 21
      src/views/allocationManagement/transferOut/edit.vue
  11. 15 15
      src/views/allocationManagement/transferOut/list.vue
  12. 5 5
      src/views/basicData/transferTypeManagement/list.vue
  13. 3 3
      src/views/basicData/warehouse/list.vue
  14. 3 3
      src/views/basicData/warehouse/storingLocation/list.vue
  15. 5 1
      src/views/common/auditModal.vue
  16. 9 9
      src/views/dealerManagement/dealerAccountManagement/list.vue
  17. 4 4
      src/views/dealerManagement/marketingDivisionSet/list.vue
  18. 15 15
      src/views/dealerManagement/merchantInfoManagement/list.vue
  19. 8 8
      src/views/dealerManagement/merchantInfoManagement/permissionSetting.vue
  20. 6 6
      src/views/dealerManagement/rebateSettings/list.vue
  21. 14 14
      src/views/financialManagement/financialCollection/list.vue
  22. 11 12
      src/views/financialManagement/returnConfirmation/detailModal.vue
  23. 12 12
      src/views/financialManagement/returnConfirmation/list.vue
  24. 5 5
      src/views/financialManagement/warehousingConfirmation/detailModal.vue
  25. 11 11
      src/views/financialManagement/warehousingConfirmation/list.vue
  26. 3 3
      src/views/inventoryManagement/intelligentReplenishment/detailModal.vue
  27. 5 5
      src/views/inventoryManagement/intelligentReplenishment/list.vue
  28. 11 11
      src/views/inventoryManagement/inventoryQuery/detailModal.vue
  29. 14 26
      src/views/inventoryManagement/inventoryQuery/list.vue
  30. 18 18
      src/views/inventoryManagement/inventoryQuery/warehouseDetail.vue
  31. 17 30
      src/views/inventoryManagement/inventoryWarning/list.vue
  32. 10 10
      src/views/power/user/userList.vue
  33. 3 16
      src/views/productManagement/newProduct/list.vue
  34. 3 16
      src/views/productManagement/priceChangeRecord/list.vue
  35. 7 7
      src/views/productManagement/productBrand/list.vue
  36. 3 3
      src/views/productManagement/productCategory/list.vue
  37. 16 29
      src/views/productManagement/productInfo/list.vue
  38. 10 10
      src/views/productManagement/productLaunchAudit/list.vue
  39. 14 27
      src/views/productManagement/productLevel/list.vue
  40. 16 29
      src/views/productManagement/productOfflineAudit/list.vue
  41. 36 0
      src/views/productManagement/productPricing/editModal.vue
  42. 20 16
      src/views/productManagement/productPricing/list.vue
  43. 9 0
      src/views/productManagement/productUniversal/list.vue
  44. 12 12
      src/views/promotionRulesManagement/orderStatistics/detailModal.vue
  45. 14 14
      src/views/promotionRulesManagement/orderStatistics/list.vue
  46. 11 11
      src/views/promotionRulesManagement/productStatistics/detailModal.vue
  47. 11 24
      src/views/promotionRulesManagement/productStatistics/list.vue
  48. 121 121
      src/views/promotionRulesManagement/promotionRules/basicInfoModal.vue
  49. 22 22
      src/views/promotionRulesManagement/promotionRules/detail.vue
  50. 9 9
      src/views/promotionRulesManagement/promotionRules/list.vue
  51. 5 5
      src/views/promotionRulesManagement/promotionRules/rule.vue
  52. 7 7
      src/views/purchasingManagement/bulkWarehousingOrder/detailModal.vue
  53. 8 8
      src/views/purchasingManagement/bulkWarehousingOrder/edit.vue
  54. 12 12
      src/views/purchasingManagement/bulkWarehousingOrder/list.vue
  55. 30 29
      src/views/reportData/actualSalesReport/list.vue
  56. 24 38
      src/views/reportData/allocationDetails/list.vue
  57. 8 10
      src/views/reportData/allocationOrderTotal/list.vue
  58. 25 26
      src/views/reportData/billingReturnReport/list.vue
  59. 17 18
      src/views/reportData/hPriceDifferenceDetailReport/list.vue
  60. 9 11
      src/views/reportData/priceDifferenceDetailReport/list.vue
  61. 26 27
      src/views/reportData/returnSlipReport/list.vue
  62. 28 28
      src/views/reportData/salesAmountReport/list.vue
  63. 365 226
      src/views/reportData/salesDetails/list.vue
  64. 352 0
      src/views/reportData/salesOrderTotal/list.vue
  65. 30 39
      src/views/reportData/salesReturnDetailReport/list.vue
  66. 25 26
      src/views/reportData/salesReturnReport/list.vue
  67. 20 21
      src/views/reportData/salesReturnsReport/list.vue
  68. 27 28
      src/views/reportData/salesSlipReport/list.vue
  69. 229 0
      src/views/reportData/warehousingOrder/list.vue
  70. 246 0
      src/views/reportData/warehousingOrderDetail/list.vue
  71. 8 8
      src/views/salesManagement/backorder/detailModal.vue
  72. 9 9
      src/views/salesManagement/backorder/list.vue
  73. 14 14
      src/views/salesManagement/examineVerify/list.vue
  74. 12 12
      src/views/salesManagement/outboundOrder/list.vue
  75. 14 27
      src/views/salesManagement/priceInquiry/list.vue
  76. 17 17
      src/views/salesManagement/pushOrderManagement/detail.vue
  77. 11 11
      src/views/salesManagement/pushOrderManagement/list.vue
  78. 281 138
      src/views/salesManagement/salesQuery/detail.vue
  79. 55 14
      src/views/salesManagement/salesQuery/edit.vue
  80. 53 73
      src/views/salesManagement/salesQuery/list.vue
  81. 18 1
      src/views/salesManagement/salesQuery/printModal.vue
  82. 41 16
      src/views/salesManagement/salesQuery/queryPart.vue
  83. 12 16
      src/views/salesManagement/salesQuery/queryPromotable.vue
  84. 11 78
      src/views/salesManagement/salesReturn/detail.vue
  85. 20 19
      src/views/salesManagement/salesReturn/queryPart.vue
  86. 9 9
      src/views/salesManagement/salesReturn/salesReturnCheck.vue
  87. 10 10
      src/views/salesManagement/salesReturn/salesReturnEdit.vue
  88. 19 13
      src/views/salesManagement/salesReturn/salesReturnGrabEdit.vue
  89. 15 28
      src/views/salesManagement/shortageStatisticsC/list.vue
  90. 9 9
      src/views/salesManagement/shortageStatisticsP/list.vue
  91. 3 2
      src/views/salesManagement/waitDispatch/edit.vue
  92. 8 7
      src/views/salesManagement/waitDispatch/queryPart.vue
  93. 9 9
      src/views/setting/noticeManagement/list.vue
  94. 9 9
      src/views/supplierManagement/associatedProduct/add.vue
  95. 11 0
      src/views/supplierManagement/associatedProduct/settingCost.vue
  96. 9 9
      src/views/supplierManagement/associatedProductDetails/list.vue
  97. 7 7
      src/views/supplierManagement/supplierInfo/list.vue

+ 86 - 2
src/api/reportData.js

@@ -190,7 +190,7 @@ export const returnSlipExport = (params) => {
 // 开单销售 导出
 export const salesAmountExport = (params) => {
   return axios({
-    url: '/report/reportRebate/export',
+    url: '/report/salesBillReport/queryGroupByBuyerExportExcel',
     data: params,
     method: 'post',
     responseType: 'blob'
@@ -199,7 +199,7 @@ export const salesAmountExport = (params) => {
 // 实售销售 导出
 export const actualSalesExport = (params) => {
   return axios({
-    url: '/report/',
+    url: '/report/salesBillReport/totalRealExportExcel',
     data: params,
     method: 'post',
     responseType: 'blob'
@@ -223,3 +223,87 @@ export const salesReturnExport = (params) => {
     responseType: 'blob'
   })
 }
+//  销售明细(开单统计)报表
+export const reportSalesBillDetailList = (params) => {
+  const url = `/report/salesBillReport/detail/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+//  销售明细(开单统计)报表  合计
+export const reportSalesBillDetailCount = (params) => {
+  return axios({
+    url: '/report/salesBillReport/detail/queryCount',
+    data: params,
+    method: 'post'
+  })
+}
+// 销售明细(开单统计)报表 导出
+export const reportSalesBillDetailExport = (params) => {
+  return axios({
+    url: '/report/salesBillReport/detail/export',
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+//  销售(开单统计)报表
+export const reportSalesBillList = (params) => {
+  const url = `/report/reportSales/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+//  销售(开单统计)报表  合计
+export const reportSalesBillCount = (params) => {
+  return axios({
+    url: '/report/reportSales/queryCount',
+    data: params,
+    method: 'post'
+  })
+}
+// 销售(开单统计)报表 导出
+export const reportSalesBillExport = (params) => {
+  return axios({
+    url: '/report/reportSales/exportExcel',
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+//  入库单报表
+export const reportStockPutDetailList = (params) => {
+  const url = `/report/reportStockPut/detail/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+//  入库单报表  合计
+export const reportStockPutDetailCount = (params) => {
+  return axios({
+    url: '/report/reportStockPut/detail/queryCount',
+    data: params,
+    method: 'post'
+  })
+}
+// 入库单报表 导出
+export const reportStockPutDetailExport = (params) => {
+  return axios({
+    url: '/report/reportStockPut/detail/exportExcel',
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}

+ 9 - 0
src/api/sales.js

@@ -9,6 +9,15 @@ export const salesWriteAudit = (params) => {
   })
 }
 
+//  销售 一键审核
+export const salesWriteAuditPush = (params) => {
+  return axios({
+    url: '/sales/auditPush',
+    data: params,
+    method: 'post'
+  })
+}
+
 //  销售 删除
 export const salesDel = (params) => {
   return axios({

+ 23 - 1
src/api/salesDetail.js

@@ -48,7 +48,7 @@ export const salesDetailList = (params) => {
   })
 }
 
-// 销售详情列表不分页
+// 销售详情列表不分页  不带库存
 export const salesDetailAllList = (params) => {
   const url = `/sales/detail/query`
   delete params.pageNo
@@ -60,6 +60,28 @@ export const salesDetailAllList = (params) => {
   })
 }
 
+// 销售详情列表不分页  带库存
+export const salesDetailAllStockList = (params) => {
+  const url = `/sales/detail/queryStock`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+// 销售列表  分页  带库存
+export const salesDetailStockList = (params) => {
+  const url = `/sales/detail/queryPageStock/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
 // 修改销售明细取消数量
 export const salesDetailUpdateCancelQty = (params) => {
   return axios({

+ 1 - 1
src/components/Exception/ExceptionPage.vue

@@ -32,7 +32,7 @@ export default {
   },
   methods: {
     handleToHome () {
-      this.$router.push({ name: 'dashboard' })
+      this.$router.push({ name: 'home' })
     }
   }
 }

+ 31 - 12
src/components/MultiTab/MultiTab.vue

@@ -9,7 +9,8 @@ export default {
       tabsList: [],
       pages: [],
       activeKey: '',
-      newTabIndex: 0
+      newTabIndex: 0,
+      maxTabNums: 10
     }
   },
   inject: ['reloadView'],
@@ -35,10 +36,11 @@ export default {
       } catch (e) {
       }
     })
-
-    this.pages.push(this.$route)
-    this.tabsList.push(this.$route.name)
-    this.selectedLastPath()
+    if (this.pages.length <= this.maxTabNums) {
+      this.pages.push(this.$route)
+      this.tabsList.push(this.$route.name)
+      this.selectedLastPath()
+    }
   },
   methods: {
     onEdit (targetKey, action) {
@@ -149,16 +151,32 @@ export default {
           this.remove(oldVal.name) // 关闭子页面
         }
       }
-      this.activeKey = newVal.name
       const index = this.tabsList.indexOf(newVal.name)
       // 解决页面地址相同参数不同时打开多个页签问题(例 详情页id或sn不同时)
       if (index < 0) { // 不存在
-        this.tabsList.push(newVal.name)
-        this.pages.push(newVal)
-        this.$store.state.app.isNewTab = true
+        console.log(this.pages.length, '不存在')
+        if (this.pages.length < this.maxTabNums) {
+          this.tabsList.push(newVal.name)
+          this.pages.push(newVal)
+          this.$store.state.app.isNewTab = true
+          this.activeKey = newVal.name
+        } else {
+          // this.$message.info('您当前打开窗口太多,请关闭一些,窗口不能超过' + this.maxTabNums + '个')
+          // this.$router.go(-1)
+          const _this = this
+          this.$warning({
+            title: '提示',
+            content: '您当前打开窗口太多,请关闭一些,窗口不能超过' + this.maxTabNums + '个',
+            onOk () {
+              _this.$router.go(-1)
+            }
+          })
+        }
       } else { // 已存在
+        console.log(this.pages.length, '已存在')
         this.pages.splice(index, 1, newVal)
         this.$store.state.app.isNewTab = false
+        this.activeKey = newVal.name
       }
     },
     activeKey: function (newPathKey) {
@@ -172,12 +190,13 @@ export default {
     }
   },
   render () {
-    const { onEdit, onChange, refashThat, $data: { pages } } = this
-    const panes = pages.map(page => {
+    const { onEdit, onChange, refashThat, $data: { pages, maxTabNums } } = this
+    const tabPanel = pages.length > maxTabNums ? pages.slice(0, maxTabNums - 1) : pages
+    const panes = tabPanel.map(page => {
       return (
         <a-tab-pane
           style={{ height: 0 }}
-          key={page.name} closable={pages.length > 1}
+          key={page.name} closable={tabPanel.length > 1}
         >
           <span slot="tab">
             {this.renderTabPane(page.meta.customTitle || page.meta.title, page.name)}

+ 2 - 2
src/components/Table/index.js

@@ -123,6 +123,7 @@ export default {
     this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, {
       current: localPageNum,
       pageSize: this.pageSize,
+      pageSizeOptions: ['5', '10', '20', '30', '40'],
       showTotal: total => `共 ${total} 条记录`,
       showSizeChanger: this.showSizeChanger
     }) || false
@@ -139,9 +140,8 @@ export default {
      * @param Boolean bool
      */
     refresh (bool = false) {
-      console.log(this.showSizeChanger, '-----showSizeChanger', this.pageSize)
       bool && (this.localPagination = Object.assign({}, {
-        current: 1, pageSize: this.pageSize, showSizeChanger: this.showSizeChanger
+        current: 1, pageSize: this.pageSize
       }))
       this.loadData()
     },

+ 6 - 0
src/components/index.less

@@ -354,6 +354,7 @@
         font-weight: bold;
         color: #000!important;
         padding: 5px!important;
+        text-align: center!important;
       }
     }
   }
@@ -363,6 +364,11 @@
   .ant-table-small > .ant-table-content .ant-table-body{
     margin: 0;
   }
+  input:disabled{
+    opacity: 1!important;
+    color: #fff!important;
+    -webkit-text-fill-color: #fff!important;
+  }
 }
 .sTable.fixPagination{
   >.ant-table-wrapper{

+ 76 - 1
src/config/router.config.js

@@ -771,7 +771,7 @@ export const asyncRouterMap = [
       // 报表
       {
         path: '/reportData',
-        redirect: '/reportData/countryTypeProvinceSalesDetails',
+        redirect: '/reportData/salesOrderTotal',
         component: PageView,
         meta: {
           title: '报表',
@@ -779,6 +779,31 @@ export const asyncRouterMap = [
           permission: 'M_reportData'
         },
         children: [
+          {
+            path: '/reportData/salesOrderTotal',
+            redirect: '/reportData/salesOrderTotal/list',
+            name: 'salesOrderTotal',
+            component: BlankLayout,
+            meta: {
+              title: '销售(开单统计)',
+              icon: 'profile',
+              permission: 'M_salesOrderTotalList'
+            },
+            hideChildrenInMenu: true,
+            children: [
+              {
+                path: 'list',
+                name: 'salesOrderTotalList',
+                component: () => import(/* webpackChunkName: "reportData" */ '@/views/reportData/salesOrderTotal/list.vue'),
+                meta: {
+                  title: '销售(开单统计)列表',
+                  icon: 'profile',
+                  hidden: true,
+                  permission: 'M_salesOrderTotalList'
+                }
+              }
+            ]
+          },
           {
             path: '/reportData/salesDetails',
             redirect: '/reportData/salesDetails/list',
@@ -1100,6 +1125,56 @@ export const asyncRouterMap = [
               }
             ]
           },
+          // {
+          //   path: '/reportData/warehousingOrder',
+          //   redirect: '/reportData/warehousingOrder/list',
+          //   name: 'warehousingOrder',
+          //   component: BlankLayout,
+          //   meta: {
+          //     title: '入库单报表',
+          //     icon: 'profile'
+          //     // permission: 'M_warehousingOrderList'
+          //   },
+          //   hideChildrenInMenu: true,
+          //   children: [
+          //     {
+          //       path: 'list',
+          //       name: 'warehousingOrderList',
+          //       component: () => import(/* webpackChunkName: "reportData" */ '@/views/reportData/warehousingOrder/list.vue'),
+          //       meta: {
+          //         title: '入库单报表列表',
+          //         icon: 'profile',
+          //         hidden: true
+          //         // permission: 'M_warehousingOrderList'
+          //       }
+          //     }
+          //   ]
+          // },
+          {
+            path: '/reportData/warehousingOrderDetail',
+            redirect: '/reportData/warehousingOrderDetail/list',
+            name: 'warehousingOrderDetail',
+            component: BlankLayout,
+            meta: {
+              title: '入库单明细报表',
+              icon: 'profile',
+              permission: 'M_warehousingOrderDetailList'
+            },
+            hideChildrenInMenu: true,
+            children: [
+              {
+                path: 'list',
+                name: 'warehousingOrderDetailList',
+                component: () => import(/* webpackChunkName: "reportData" */ '@/views/reportData/warehousingOrderDetail/list.vue'),
+                meta: {
+                  title: '入库单明细报表列表',
+                  icon: 'profile',
+                  hidden: true,
+                  permission: 'M_warehousingOrderDetailList'
+                }
+              }
+            ]
+          },
           {
             path: '/reportData/provinceTypeSalesDetails',
             redirect: '/reportData/provinceTypeSalesDetails/list',

+ 10 - 11
src/views/allocationManagement/transferOut/detail.vue

@@ -61,7 +61,6 @@
           :rowKey="(record) => record.id"
           :columns="columns"
           :data="loadData"
-          :scroll="{ x: 1335 }"
           :defaultLoadData="false"
           bordered>
         </s-table>
@@ -116,18 +115,18 @@ export default {
     },
     columns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '产品编码', dataIndex: 'productEntity.code', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'productEntity.origCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '售价', dataIndex: 'price', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '调出数量', dataIndex: 'qty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '售价小计(¥)', dataIndex: 'totalPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center', },
+        { title: '产品编码', dataIndex: 'productEntity.code', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productEntity.name',width: '27%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productEntity.origCode', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'productEntity.unit', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '售价', dataIndex: 'price', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '调出数量', dataIndex: 'qty', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '售价小计(¥)', dataIndex: 'totalPrice', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ]
       if (this.$hasPermissions('B_isShowCost')) {
-        arr.splice(5, 0, { title: '成本价', dataIndex: 'cost', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
-        arr.splice(8, 0, { title: '成本小计(¥)', dataIndex: 'totalCost', width: 115, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(5, 0, { title: '成本价', dataIndex: 'cost', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(8, 0, { title: '成本小计(¥)', dataIndex: 'totalCost', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }
       return arr
     }

+ 21 - 21
src/views/allocationManagement/transferOut/edit.vue

@@ -81,7 +81,7 @@
               :columns="columns"
               :customRow="handleClickRow"
               :data="loadData"
-              :scroll="{ x: 990, y: 300 }"
+              :scroll="{ y: 300 }"
               :defaultLoadData="false"
               bordered>
               <!-- 操作 -->
@@ -143,7 +143,7 @@
               :rowKey="(record) => record.id"
               :columns="chooseColumns"
               :data="chooseLoadData"
-              :scroll="{ x: 1160, y: 300 }"
+              :scroll="{ y: 300 }"
               :defaultLoadData="false"
               bordered>
               <!-- 售价 -->
@@ -285,34 +285,34 @@ export default {
   computed: {
     columns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'productOrigCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '售价', dataIndex: 'productPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '库存数量', dataIndex: 'currentStockQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'productUnit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action1' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode',  width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', align: 'center', width: '29%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productOrigCode',  width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '售价', dataIndex: 'productPrice',  width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '库存数量', dataIndex: 'currentStockQty',  width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productUnit', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action1' }, width: '10%',align: 'center' }
       ]
       if (this.$hasPermissions('B_isShowCost')) {
-        arr.splice(4, 0, { title: '成本价', dataIndex: 'lastStockCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(4, 0, { title: '成本价', dataIndex: 'lastStockCost', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }
       return arr
     },
     chooseColumns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品编码', dataIndex: 'productEntity.code', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'productEntity.origCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '售价', scopedSlots: { customRender: 'price' }, width: 150, align: 'center' },
-        { title: '库存数量', dataIndex: 'currentStockQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '调出数量', scopedSlots: { customRender: 'qty' }, width: 100, align: 'center' },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no',  width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productEntity.code',  width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productEntity.name',  width: '20%',align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productEntity.origCode',  width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '售价', scopedSlots: { customRender: 'price' },  width: '10%', align: 'center' },
+        { title: '库存数量', dataIndex: 'currentStockQty',  width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '调出数量', scopedSlots: { customRender: 'qty' },  width: '10%',align: 'center' },
+        { title: '单位', dataIndex: 'productEntity.unit',  width: '6%',align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' },  width: '6%', align: 'center' }
       ]
       if (this.$hasPermissions('B_isShowCost')) {
-        arr.splice(4, 0, { title: '成本价', dataIndex: 'cost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(4, 0, { title: '成本价', dataIndex: 'cost', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }
       return arr
     }

+ 15 - 15
src/views/allocationManagement/transferOut/list.vue

@@ -73,7 +73,7 @@
         :columns="columns"
         :data="loadData"
         :defaultLoadData="false"
-        :scroll="{ x: 1540, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         bordered>
         <!-- 单号 -->
         <template slot="allocateNo" slot-scope="text, record">
@@ -168,22 +168,22 @@ export default {
   computed: {
     columns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '调拨单号', scopedSlots: { customRender: 'allocateNo' }, align: 'center' },
-        { title: '调往对象', dataIndex: 'targetName', width: 180, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户类型', dataIndex: 'dealerLevelDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '总数量', dataIndex: 'totalQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '总售价', dataIndex: 'totalPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '审核时间', dataIndex: 'auditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '调拨类型', dataIndex: 'allocateTypeName', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '业务状态', dataIndex: 'stateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '打印状态', dataIndex: 'printStateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '打印次数', dataIndex: 'printCount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 150, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '8.5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '调拨单号', scopedSlots: { customRender: 'allocateNo' }, align: 'center',width: '15%', },
+        { title: '调往对象', dataIndex: 'targetName', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户类型', dataIndex: 'dealerLevelDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '总数量', dataIndex: 'totalQty', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '总售价', dataIndex: 'totalPrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '审核时间', dataIndex: 'auditTime', width: '8.5%',align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '调拨类型', dataIndex: 'allocateTypeName', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '业务状态', dataIndex: 'stateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '打印状态', dataIndex: 'printStateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '打印次数', dataIndex: 'printCount', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' },width: '9%', align: 'center', }
       ]
       if (this.$hasPermissions('B_isShowCost')) {
-        arr.splice(6, 0, { title: '总成本', dataIndex: 'totalCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(6, 0, { title: '总成本', dataIndex: 'totalCost', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }
       return arr
     }

+ 5 - 5
src/views/basicData/transferTypeManagement/list.vue

@@ -58,11 +58,11 @@ export default {
       spinning: false,
       tableHeight: 0,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '调拨类别', dataIndex: 'allocateCategoryDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '调拨类型名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 200, align: 'center' }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '调拨类别', dataIndex: 'allocateCategoryDictValue', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '调拨类型名称', dataIndex: 'name', align: 'center', width: '40%',customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 3 - 3
src/views/basicData/warehouse/list.vue

@@ -80,9 +80,9 @@ export default {
       tableHeight: 0,
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '仓库名称', dataIndex: 'name', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, align: 'center' }
+        { title: '序号', dataIndex: 'no', width: '10%', align: 'center' },
+        { title: '仓库名称', dataIndex: 'name', align: 'center', width: '45%', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, align: 'center', width: '45%' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 3 - 3
src/views/basicData/warehouse/storingLocation/list.vue

@@ -83,9 +83,9 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '仓位名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 160, align: 'center' }
+        { title: '序号', dataIndex: 'no', width:'10%', align: 'center' },
+        { title: '仓位名称', dataIndex: 'name', align: 'center', width:'45%',customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width:'45%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 5 - 1
src/views/common/auditModal.vue

@@ -12,7 +12,7 @@
         <a-icon type="question-circle" style="color: #faad14;font-size: 22px;margin-right: 16px;" />
         <div class="audit-cont">
           <p class="audit-tit">提示</p>
-          <p class="audit-txt">请点击下方按钮确认操作?</p>
+          <p class="audit-txt">{{ content || '请点击下方按钮确认操作?' }}</p>
         </div>
       </div>
       <div class="btn-box">
@@ -31,6 +31,10 @@ export default {
       type: Boolean,
       default: false
     },
+    content: {
+      type: String,
+      default: '请点击下方按钮确认操作?'
+    },
     spinning: {
       type: Boolean,
       default: false

+ 9 - 9
src/views/dealerManagement/dealerAccountManagement/list.vue

@@ -40,7 +40,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1030, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 账号状态 -->
@@ -108,14 +108,14 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center' },
-        { title: '经销商名称', dataIndex: 'org.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '管理员姓名', dataIndex: 'name', width: 180, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '管理员账号', dataIndex: 'loginName', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '授权用户数', dataIndex: 'org.childUserMaxNum', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '状态', scopedSlots: { customRender: 'loginFlag' }, width: 100, align: 'center' },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 160, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate',width: '11%', align: 'center' },
+        { title: '经销商名称', dataIndex: 'org.name', width: '25%',align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '管理员姓名', dataIndex: 'name', width: '14%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '管理员账号', dataIndex: 'loginName', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '授权用户数', dataIndex: 'org.childUserMaxNum', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '状态', scopedSlots: { customRender: 'loginFlag' },width: '9%', align: 'center' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 4 - 4
src/views/dealerManagement/marketingDivisionSet/list.vue

@@ -66,10 +66,10 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       tableHeight: 0,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '分区名', dataIndex: 'subareaName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省份/市', scopedSlots: { customRender: 'cityArea' }, align: 'left' },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 150, align: 'center' }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '分区名', dataIndex: 'subareaName', width: '30%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省份/市', scopedSlots: { customRender: 'cityArea' }, align: 'left', width: '55%' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 15 - 15
src/views/dealerManagement/merchantInfoManagement/list.vue

@@ -65,7 +65,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1870, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 经销商 -->
@@ -127,20 +127,20 @@ export default {
       dateFormat: 'YYYY-MM-DD',
       total: 0,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '区域', scopedSlots: { customRender: 'area' }, width: 180, align: 'center' },
-        { title: '商户名称', scopedSlots: { customRender: 'dealerName' }, align: 'center', ellipsis: true },
-        { title: '商户别名', dataIndex: 'dealerAlias', width: 180, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户类型', dataIndex: 'dealerTypeDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '商户级别', dataIndex: 'dealerLevelDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '联系人', dataIndex: 'contact', width: 180, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '联系电话', dataIndex: 'dealerTelephone', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '绑定手机号码', dataIndex: 'managerMobile', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核状态', dataIndex: 'auditStateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '合作状态', dataIndex: 'cooperateFlagDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '生效时间', dataIndex: 'cooperateEffectiveTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 240, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '区域', scopedSlots: { customRender: 'area' }, width: '7%', align: 'center' },
+        { title: '商户名称', scopedSlots: { customRender: 'dealerName' }, width: '10%', align: 'center', ellipsis: true },
+        { title: '商户别名', dataIndex: 'dealerAlias', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '商户类型', dataIndex: 'dealerTypeDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户级别', dataIndex: 'dealerLevelDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '联系人', dataIndex: 'contact', width: '7%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '联系电话', dataIndex: 'dealerTelephone', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '绑定手机号码', dataIndex: 'managerMobile', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核状态', dataIndex: 'auditStateDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '合作状态', dataIndex: 'cooperateFlagDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '生效时间', dataIndex: 'cooperateEffectiveTime', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
       ],
       loading: false,
       // 加载数据方法 必须为 Promise 对象

+ 8 - 8
src/views/dealerManagement/merchantInfoManagement/permissionSetting.vue

@@ -56,7 +56,7 @@
           :rowKey="(record) => record.id"
           :columns="columns"
           :data="loadData"
-          :scroll="{ x: 930, y: tableHeight }"
+          :scroll="{ y: tableHeight }"
           :defaultLoadData="false"
           bordered>
           <!-- 操作 -->
@@ -104,13 +104,13 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       loading: false, //  表格加载中
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '添加时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '类型', dataIndex: 'type', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '类型名称', dataIndex: 'goodsName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品名称', dataIndex: 'product.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品编码', dataIndex: 'product.code', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '添加时间', dataIndex: 'createDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '类型', dataIndex: 'type', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '类型名称', dataIndex: 'goodsName', align: 'center', width: '20%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品名称', dataIndex: 'product.name', align: 'center', width: '30%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'product.code', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 6 - 6
src/views/dealerManagement/rebateSettings/list.vue

@@ -86,11 +86,11 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '经销商名称', scopedSlots: { customRender: 'jxs' }, align: 'center', ellipsis: true },
-        { title: '经销商级别', scopedSlots: { customRender: 'dealerLevel' }, align: 'center' },
-        { title: '差价归属', scopedSlots: { customRender: 'cjgs' }, align: 'center' },
-        { title: '归属经销商级别', scopedSlots: { customRender: 'gsjxsjb' }, align: 'center' },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center' }
+        { title: '经销商名称', width: '22.5%', scopedSlots: { customRender: 'jxs' }, align: 'center', ellipsis: true },
+        { title: '经销商级别', scopedSlots: { customRender: 'dealerLevel' }, align: 'center', width: '22.5%' },
+        { title: '差价归属', scopedSlots: { customRender: 'cjgs' }, align: 'center', width: '22.5%' },
+        { title: '归属经销商级别', scopedSlots: { customRender: 'gsjxsjb' }, align: 'center', width: '22.5%' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -151,6 +151,6 @@ export default {
       this.pageInit()
       this.resetSearchForm()
     }
-  },
+  }
 }
 </script>

+ 14 - 14
src/views/financialManagement/financialCollection/list.vue

@@ -118,7 +118,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1440, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 单号 -->
@@ -177,19 +177,19 @@ export default {
       ], //  审核时间
       advanced: false,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '审核时间', dataIndex: 'auditDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '销售单号', scopedSlots: { customRender: 'salesBillNo' }, width: 180, align: 'center' },
-        { title: '经销商名称', dataIndex: 'buyerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户级别', dataIndex: 'dealerEntity.dealerLevelDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '销售数量', dataIndex: 'totalQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '订单金额', dataIndex: 'totalAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '收款时间', dataIndex: 'settleDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '收款方式', dataIndex: 'settleStyleSnDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '备注', dataIndex: 'remarks', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '业务状态', dataIndex: 'billStatusDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '财务状态', dataIndex: 'financialStatusDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '审核时间', dataIndex: 'auditDate', width: '11.5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售单号', scopedSlots: { customRender: 'salesBillNo' }, width: '15%', align: 'center' },
+        { title: '经销商名称', dataIndex: 'buyerName', align: 'center', width: '12%',customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '商户级别', dataIndex: 'dealerEntity.dealerLevelDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售数量', dataIndex: 'totalQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '订单金额', dataIndex: 'totalAmount', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '收款时间', dataIndex: 'settleDate', width: '11.5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '收款方式', dataIndex: 'settleStyleSnDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '备注', dataIndex: 'remarks', width: '8%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '业务状态', dataIndex: 'billStatusDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '财务状态', dataIndex: 'financialStatusDictValue', width: '5%',align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '4%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 11 - 12
src/views/financialManagement/returnConfirmation/detailModal.vue

@@ -37,7 +37,6 @@
           :rowKey="(record) => record.id"
           :columns="columns"
           :data="loadData"
-          :scroll="{ x: 1680 }"
           :defaultLoadData="false"
           bordered>
         </s-table>
@@ -68,17 +67,17 @@ export default {
       isShow: this.openModal, //  是否打开弹框
       detailsData: null, //  详情数据
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '采购单号', dataIndex: 'purchaseBillNo', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品编码', dataIndex: 'productEntity.code', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '售价', dataIndex: 'price', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '退货数量', dataIndex: 'qty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '坏件数量', dataIndex: 'badQty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '返库数量', dataIndex: 'backStockQty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '退货金额小计', dataIndex: 'totalAmount', width: 140, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '退货原因', dataIndex: 'remark', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '采购单号', dataIndex: 'purchaseBillNo',width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'productEntity.code', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productEntity.name', width: '20%',align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '售价', dataIndex: 'price',width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货数量', dataIndex: 'qty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '坏件数量', dataIndex: 'badQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '返库数量', dataIndex: 'backStockQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productEntity.unit', width: '4%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '退货金额小计', dataIndex: 'totalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货原因', dataIndex: 'remark', width: '8%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 12 - 12
src/views/financialManagement/returnConfirmation/list.vue

@@ -64,7 +64,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1210, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 销退单号 -->
@@ -112,17 +112,17 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       advanced: true,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单据来源', dataIndex: 'salesReturnBillSourceDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '总部销退单号', scopedSlots: { customRender: 'salesReturnBillNo' }, width: 180, align: 'center' },
-        { title: '退货客户', dataIndex: 'buyerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '退货数量', dataIndex: 'totalQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '退货金额', dataIndex: 'totalAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '是否抓单', dataIndex: 'grabFlagDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '确认时间', dataIndex: 'confirmTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', dataIndex: 'billStatusDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单据来源', dataIndex: 'salesReturnBillSourceDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '总部销退单号', scopedSlots: { customRender: 'salesReturnBillNo' }, width: '16%', align: 'center' },
+        { title: '退货客户', dataIndex: 'buyerName', align: 'center',width: '15%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '退货数量', dataIndex: 'totalQty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货金额', dataIndex: 'totalAmount', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '是否抓单', dataIndex: 'grabFlagDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '确认时间', dataIndex: 'confirmTime', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '状态', dataIndex: 'billStatusDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 5 - 5
src/views/financialManagement/warehousingConfirmation/detailModal.vue

@@ -56,11 +56,11 @@ export default {
       isShow: this.openModal, //  是否打开弹框
       detailsData: null, //  详情数据
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { 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: 'putQty', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库成本(¥)', dataIndex: 'putCost', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '序号', dataIndex: 'no', width: '7%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName',width: '45%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '入库数量(个)', dataIndex: 'putQty',width: '14%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库成本(¥)', dataIndex: 'putCost',width: '14%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 11 - 11
src/views/financialManagement/warehousingConfirmation/list.vue

@@ -44,7 +44,7 @@
         :rowKey="(record) => record.stockPutSn"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1280, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 入库单号 -->
@@ -106,16 +106,16 @@ export default {
       tableHeight: 0,
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '入库时间', dataIndex: 'putTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '入库单号', scopedSlots: { customRender: 'stockPutNo' }, width: 180, align: 'center' },
-        { title: '商户名称', dataIndex: 'providerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '入库数量', dataIndex: 'productTotalQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库成本', dataIndex: 'productTotalCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库类型', dataIndex: 'putBizTypeDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单据状态', dataIndex: 'auditStateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '财务审核时间', dataIndex: 'auditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '备注', dataIndex: 'remark', width: 140, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center', fixed: 'right' }
+        { title: '入库时间', dataIndex: 'putTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '入库单号', scopedSlots: { customRender: 'stockPutNo' }, width: '16%', align: 'center' },
+        { title: '商户名称', dataIndex: 'providerName', align: 'center', width: '22%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '入库数量', dataIndex: 'productTotalQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库成本', dataIndex: 'productTotalCost', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库类型', dataIndex: 'putBizTypeDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单据状态', dataIndex: 'auditStateDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '财务审核时间', dataIndex: 'auditTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '备注', dataIndex: 'remark', width: '15%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '6%', align: 'center' }
       ],
       selectedRowKeys: [], // Check here to configure the default column
       loading: false,

+ 3 - 3
src/views/inventoryManagement/intelligentReplenishment/detailModal.vue

@@ -73,9 +73,9 @@ export default {
       spinning: false,
       detailsData: null, //  详情数据
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '类型', dataIndex: 'rangeTypeName', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '类型名称', dataIndex: 'rangeDataName', align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '序号', dataIndex: 'no', width:'10%', align: 'center' },
+        { title: '类型', dataIndex: 'rangeTypeName',width:'45%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '类型名称', dataIndex: 'rangeDataName',width:'45%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       loadData: [],
       detailData: null,

+ 5 - 5
src/views/inventoryManagement/intelligentReplenishment/list.vue

@@ -73,11 +73,11 @@ export default {
       spinning: false,
       tableHeight: 0,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '创建人', dataIndex: 'creatorName', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', dataIndex: 'stateDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 200, align: 'center' }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '创建人', dataIndex: 'creatorName', width: '45%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '状态', dataIndex: 'stateDictValue',  width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '20%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 11 - 11
src/views/inventoryManagement/inventoryQuery/detailModal.vue

@@ -24,7 +24,7 @@
       :rowKey="(record) => record.id"
       :columns="columns"
       :data="loadData"
-      :scroll="{ x: 1210, y: 500 }"
+      :scroll="{ y: 500 }"
       bordered>
     </s-table>
     <div class="btn-cont">
@@ -86,18 +86,18 @@ export default {
     },
     columns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: 50, align: 'center' },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '原厂编码', dataIndex: 'productOrigCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '入库时间', dataIndex: 'putTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '仓库', dataIndex: 'warehouseName', width: 100, align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '仓位', dataIndex: 'warehouseLocationName', width: 100, align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '入库类型', dataIndex: 'putBizTypeDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '库存数量', dataIndex: 'currentQty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', width: '10%',align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', align: 'center',width: '31%', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '原厂编码', dataIndex: 'productOrigCode',width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '入库时间', dataIndex: 'putTime', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '仓库', dataIndex: 'warehouseName', width: '6%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '仓位', dataIndex: 'warehouseLocationName',width: '6%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '入库类型', dataIndex: 'putBizTypeDictValue',width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '库存数量', dataIndex: 'currentQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ]
       if (this.$hasPermissions('B_isShowCost')) {
-        arr.splice(9, 0, { title: '成本单价', dataIndex: 'putCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(9, 0, { title: '成本单价', dataIndex: 'putCost', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }
       return arr
     }

+ 14 - 26
src/views/inventoryManagement/inventoryQuery/list.vue

@@ -23,16 +23,8 @@
             <template v-if="advanced">
               <a-col :md="6" :sm="24">
                 <a-form-item label="产品品牌">
-                  <a-select
-                    placeholder="请选择产品品牌"
-                    id="inventoryQueryList-productBrandSn"
-                    allowClear
-                    v-model="queryParam.productBrandSn"
-                    :showSearch="true"
-                    option-filter-prop="children"
-                    :filter-option="filterOption">
-                    <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+                  <ProductBrand id="inventoryQueryList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
+                  </a-form-item>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -91,7 +83,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1170, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 操作 -->
@@ -129,9 +121,10 @@ import exportExcelModal from './exportExcelModal.vue'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
 import { hdExportExcel } from '@/libs/exportExcel'
+import ProductBrand from '@/views/common/productBrand.js'
 import { stockList, stockCount, stockExport } from '@/api/stock'
 export default {
-  components: { STable, VSelect, inventoryQueryDetailModal, exportExcelModal },
+  components: { STable, VSelect, inventoryQueryDetailModal, exportExcelModal,ProductBrand },
   data () {
     return {
       spinning: false,
@@ -205,17 +198,17 @@ export default {
   computed: {
     columns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '最后入库时间', dataIndex: 'lastStockTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单位', dataIndex: 'productUnit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品品牌', dataIndex: 'productBrandName', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '可用库存数量', dataIndex: 'currentStockQty', width: 120, align: 'center', sorter: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 160, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode',width: '9%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName',width: '21%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '最后入库时间', dataIndex: 'lastStockTime',width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'productUnit', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品品牌', dataIndex: 'productBrandName', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '可用库存数量', dataIndex: 'currentStockQty', width: '10%', align: 'center', sorter: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '16%',align: 'center' }
       ]
       if (this.$hasPermissions('B_isShowCost')) {
-        arr.splice(7, 0, { title: '可用库存成本', dataIndex: 'currentStockCost', width: 120, align: 'center', sorter: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(7, 0, { title: '可用库存成本', dataIndex: 'currentStockCost',width: '10%', align: 'center', sorter: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }
       return arr
     }
@@ -301,11 +294,6 @@ export default {
         }
       })
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     pageInit () {
       const _this = this
       this.$nextTick(() => { // 页面渲染完成后的回调

+ 18 - 18
src/views/inventoryManagement/inventoryQuery/warehouseDetail.vue

@@ -91,7 +91,7 @@
           :rowKey="(record) => record.id"
           :columns="columns"
           :data="loadData"
-          :scroll="{ x: 1870, y: tableHeight }"
+          :scroll="{ y: tableHeight }"
           :defaultLoadData="false"
           bordered>
           <!-- 数量 -->
@@ -158,23 +158,23 @@ export default {
   computed: {
     columns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center', fixed: 'left' },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, align: 'center', fixed: 'left', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'productOrigCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '批次号', dataIndex: 'stockBatchNo', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单据类型', dataIndex: 'bizTypeDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '关联单号', dataIndex: 'bizNo', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单据审核时间', dataIndex: 'auditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单位名称', dataIndex: 'unitName', width: 180, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '仓库', dataIndex: 'warehouseName', width: 100, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '仓位', dataIndex: 'warehouseLocationName', width: 100, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '数量', scopedSlots: { customRender: 'qty' }, width: 80, align: 'center' },
-        { title: '出入库状态', dataIndex: 'stateDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '总售价', dataIndex: 'totalPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center',  },
+        { title: '产品编码', dataIndex: 'productCode', width: '6%', align: 'center',customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', width: '14%',align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productOrigCode', width: '6%',align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '批次号', dataIndex: 'stockBatchNo', width: '9%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单据类型', dataIndex: 'bizTypeDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '关联单号', dataIndex: 'bizNo', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单据审核时间', dataIndex: 'auditTime', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位名称', dataIndex: 'unitName', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '仓库', dataIndex: 'warehouseName', width: '4%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '仓位', dataIndex: 'warehouseLocationName', width: '4%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '数量', scopedSlots: { customRender: 'qty' }, width: '4%', align: 'center' },
+        { title: '出入库状态', dataIndex: 'stateDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '总售价', dataIndex: 'totalPrice', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ]
       if (this.$hasPermissions('B_isShowCost')) {
-        arr.splice(13, 0, { title: '总成本', dataIndex: 'totalCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(13, 0, { title: '总成本', dataIndex: 'totalCost', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }
       return arr
     }
@@ -245,14 +245,14 @@ export default {
   },
   mounted () {
     if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
-      this.$refs.table.refresh(true)
+      this.resetSearchForm()
       this.pageInit()
     }
   },
   activated () {
     // 如果是新页签打开或者进入新的子页(例:存在列表第2条数据编辑页页签时再打开第4条数据的编辑页),则重置当前页面
     if (this.$store.state.app.isNewTab || !this.$store.state.app.isNewSubTab) {
-      this.$refs.table.refresh(true)
+      this.resetSearchForm()
       this.pageInit()
     }
   },

+ 17 - 30
src/views/inventoryManagement/inventoryWarning/list.vue

@@ -23,16 +23,7 @@
             <template v-if="advanced">
               <a-col :md="6" :sm="24">
                 <a-form-item label="产品品牌">
-                  <a-select
-                    placeholder="请选择产品品牌"
-                    id="inventoryWarningList-productBrandSn"
-                    allowClear
-                    v-model="queryParam.productBrandSn"
-                    :showSearch="true"
-                    option-filter-prop="children"
-                    :filter-option="filterOption">
-                    <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+                  <ProductBrand id="inventoryWarningList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -90,7 +81,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1690, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 产品分类 -->
@@ -169,8 +160,9 @@ import { STable, VSelect } from '@/components'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
 import { stockWarnList, stockWarnSaveBatch } from '@/api/stock'
+import ProductBrand from '@/views/common/productBrand.js'
 export default {
-  components: { STable, VSelect },
+  components: { STable, VSelect,ProductBrand },
   data () {
     return {
       spinning: false,
@@ -192,20 +184,20 @@ export default {
       productTypeList: [], //  产品类别下拉数据
       productType: [],
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '原厂编码', dataIndex: 'productOrigCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品品牌', dataIndex: 'productBrandName', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 180, align: 'center' },
+        { title: '序号', dataIndex: 'no', width:'4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', width:'7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', width:'12.5%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '原厂编码', dataIndex: 'productOrigCode', width:'7%',  align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品品牌', dataIndex: 'productBrandName', width:'6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width:'10%', align: 'center' },
         // { title: '实时库存数(个)', scopedSlots: { customRender: 'stockQty' }, width: 110, align: 'center' },
-        { title: '在途数(个)', scopedSlots: { customRender: 'inTransit' }, width: 100, align: 'center' },
-        { title: '总库存数(个)', dataIndex: 'currentStockQty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '最大库存数(个)', scopedSlots: { customRender: 'upperLimit' }, width: 110, align: 'center' },
-        { title: '最小库存数(个)', scopedSlots: { customRender: 'lowerLimit' }, width: 110, align: 'center' },
-        { title: '差异数量', dataIndex: 'differenceNum', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '预警提示', scopedSlots: { customRender: 'stockState' }, width: 80, align: 'center' },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '在途数(个)', scopedSlots: { customRender: 'inTransit' }, width:'9.5%', align: 'center' },
+        { title: '总库存数(个)', dataIndex: 'currentStockQty', width:'7%',  align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '最大库存数(个)', scopedSlots: { customRender: 'upperLimit' }, width:'9.5%',  align: 'center' },
+        { title: '最小库存数(个)', scopedSlots: { customRender: 'lowerLimit' }, width:'9.5%',  align: 'center' },
+        { title: '差异数量', dataIndex: 'differenceNum', width:'6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '预警提示', scopedSlots: { customRender: 'stockState' },width:'6%',  align: 'center' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width:'6%',  align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -383,11 +375,6 @@ export default {
         }
       })
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     pageInit () {
       const _this = this
       this.$nextTick(() => { // 页面渲染完成后的回调

+ 10 - 10
src/views/power/user/userList.vue

@@ -37,7 +37,7 @@
         rowKey="id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1350, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         style="word-break: break-all;"
         :defaultLoadData="false"
         bordered
@@ -107,15 +107,15 @@ export default {
       itemData: null, // 编辑行数据
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '用户名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '手机号码', dataIndex: 'phone', width: 150, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '用户账号', dataIndex: 'loginName', width: 150, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '所属分区', dataIndex: 'allSubareaName', width: 150, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '角色', dataIndex: 'roleNames', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', width: 100, align: 'center', scopedSlots: { customRender: 'status' }, fixed: 'right' },
-        { title: '操作', width: 160, align: 'center', scopedSlots: { customRender: 'action' }, fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '用户名称', dataIndex: 'name', align: 'center', width: '18%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '手机号码', dataIndex: 'phone', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '用户账号', dataIndex: 'loginName', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '所属分区', dataIndex: 'allSubareaName', width: '8%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '角色', dataIndex: 'roleNames', width: '18%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '状态', width: '6%', align: 'center', scopedSlots: { customRender: 'status' } },
+        { title: '操作', width: '12%', align: 'center', scopedSlots: { customRender: 'action' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 3 - 16
src/views/productManagement/newProduct/list.vue

@@ -23,16 +23,7 @@
             <template v-if="advanced">
               <a-col :md="6" :sm="24">
                 <a-form-item label="产品品牌">
-                  <a-select
-                    placeholder="请选择产品品牌"
-                    id="productInfoList-productBrandSn"
-                    allowClear
-                    v-model="queryParam.productBrandSn"
-                    :showSearch="true"
-                    option-filter-prop="children"
-                    :filter-option="filterOption">
-                    <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+					<ProductBrand id="productInfoList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -110,9 +101,10 @@ import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQueryAll } from '@/api/productType'
 import { queryNewProductPage } from '@/api/product'
 import { STable, VSelect } from '@/components'
+import ProductBrand from '@/views/common/productBrand.js'
 import rangeDate from '@/views/common/rangeDate.vue'
 export default {
-  components: { STable, VSelect, rangeDate },
+  components: { STable, VSelect, rangeDate,ProductBrand },
   data () {
     return {
       spinning: false,
@@ -186,11 +178,6 @@ export default {
       this.productType = []
       this.$refs.table.refresh(true)
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     //  详情
     handleDetail (row) {
       this.itemId = row.productSn

+ 3 - 16
src/views/productManagement/priceChangeRecord/list.vue

@@ -23,16 +23,7 @@
             <template v-if="advanced">
               <a-col :md="7" :sm="24">
                 <a-form-item label="品牌">
-                  <a-select
-                    placeholder="请选择"
-                    id="productChangeRecordList-productBrandSn"
-                    allowClear
-                    v-model="queryParam.productBrandSn"
-                    :showSearch="true"
-                    option-filter-prop="children"
-                    :filter-option="filterOption">
-                    <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+                  <ProductBrand id="productChangeRecordList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -123,9 +114,10 @@ import { STable, VSelect } from '@/components'
 import rangeDate from '@/views/common/rangeDate.vue'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
+import ProductBrand from '@/views/common/productBrand.js'
 import { productPriceChangeList, productPriceChangeExport } from '@/api/product'
 export default {
-  components: { STable, VSelect, rangeDate },
+  components: { STable, VSelect, rangeDate,ProductBrand },
   data () {
     return {
       spinning: false,
@@ -249,11 +241,6 @@ export default {
       this.itemId = row.id
       this.openAuditModal = true
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     //  编辑
     handleEdit (row) {
       this.itemId = row.id

+ 7 - 7
src/views/productManagement/productBrand/list.vue

@@ -114,13 +114,13 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌图片', scopedSlots: { customRender: 'imageUrl' }, width: 140, align: 'center' },
-        { title: '品牌名称', dataIndex: 'brandName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '品牌分类', dataIndex: 'brandTypeDictValue', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '排序字母', dataIndex: 'sortChar', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 200, align: 'center' }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '品牌图片', scopedSlots: { customRender: 'imageUrl' }, width: '15%', align: 'center' },
+        { title: '品牌名称', dataIndex: 'brandName', align: 'center', width: '30%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '品牌分类', dataIndex: 'brandTypeDictValue', width: '17%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '排序字母', dataIndex: 'sortChar', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 3 - 3
src/views/productManagement/productCategory/list.vue

@@ -68,9 +68,9 @@ export default {
         wrapperCol: { span: 16 }
       },
       columns: [
-        { title: '分类名称', dataIndex: 'productTypeName', align: 'left' },
-        { title: '创建时间', dataIndex: 'createDate', width: 320, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 300, align: 'center' }
+        { title: '分类名称', dataIndex: 'productTypeName', align: 'left',width: '45%', },
+        { title: '创建时间', dataIndex: 'createDate', width:'25%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '30%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

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

@@ -17,16 +17,7 @@
             </a-col>
             <a-col :md="5" :sm="24">
               <a-form-item label="品牌">
-                <a-select
-                  placeholder="请选择"
-                  id="productInfoList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                </a-select>
+                <ProductBrand id="productInfoList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
               </a-form-item>
             </a-col>
             <template v-if="advanced">
@@ -115,7 +106,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1650, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 自定义表头 -->
@@ -198,9 +189,10 @@ import productInfoDetailModal from './detailModal.vue'
 import productInfoOfflineModal from './offlineModal.vue'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQueryAll } from '@/api/productType'
+import ProductBrand from '@/views/common/productBrand.js'
 import { productList, productAudit, productBatchAudit, productDel, productOnline, productBatchOnline, productExport } from '@/api/product'
 export default {
-  components: { STable, VSelect, productInfoDetailModal, productInfoOfflineModal },
+  components: { STable, VSelect, productInfoDetailModal, productInfoOfflineModal,ProductBrand },
   data () {
     return {
       spinning: false,
@@ -220,18 +212,18 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'name', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '产品编码', dataIndex: 'code', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '原厂编码', dataIndex: 'origCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌', dataIndex: 'productBrandName', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 140, align: 'center' },
-        { slots: { title: 'arrowFalgTitle' }, scopedSlots: { customRender: 'arrowFalg' }, width: 80, align: 'center' },
-        { title: '最近修改时间', dataIndex: 'updateDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品状态', dataIndex: 'stateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '定价状态', dataIndex: 'pricingStateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 180, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate',width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'name', align: 'center',width: '17%', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'code', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '原厂编码', dataIndex: 'origCode', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '品牌', dataIndex: 'productBrandName', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '10%', align: 'center' },
+        { slots: { title: 'arrowFalgTitle' }, scopedSlots: { customRender: 'arrowFalg' }, width: '6%', align: 'center' },
+        { title: '最近修改时间', dataIndex: 'updateDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品状态', dataIndex: 'stateDictValue',width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '定价状态', dataIndex: 'pricingStateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center', }
       ],
       selectedRowKeys: [], // Check here to configure the default column
       selectedRows: [],
@@ -492,11 +484,6 @@ export default {
         }
       })
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     //  详情
     handleDetail (row) {
       this.itemSn = row.productSn

+ 10 - 10
src/views/productManagement/productLaunchAudit/list.vue

@@ -49,7 +49,7 @@
         :rowKey="(record) => record.productSn"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1200, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 产品分类 -->
@@ -89,15 +89,15 @@ export default {
       tableHeight: 0,
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '产品名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品编码', dataIndex: 'code', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 140, align: 'center' },
-        { title: '提交时间', dataIndex: 'onlineSubmitTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '提交人', dataIndex: 'onlineSubmitPerson', width: 100, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '审核状态', dataIndex: 'stateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核时间', dataIndex: 'onlineAuditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核人', dataIndex: 'onlineAuditPerson', width: 100, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '产品名称', dataIndex: 'name', align: 'center',width: '20%',  customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'code', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '15%', align: 'center' },
+        { title: '提交时间', dataIndex: 'onlineSubmitTime', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '提交人', dataIndex: 'onlineSubmitPerson', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '审核状态', dataIndex: 'stateDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核时间', dataIndex: 'onlineAuditTime', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核人', dataIndex: 'onlineAuditPerson', width: '8%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '6%', align: 'center' }
       ],
       selectedRowKeys: [], // Check here to configure the default column
       loading: false,

+ 14 - 27
src/views/productManagement/productLevel/list.vue

@@ -31,16 +31,7 @@
           <template v-if="advanced">
             <a-col :md="6" :sm="24">
               <a-form-item label="品牌">
-                <a-select
-                  placeholder="请选择"
-                  id="productLevelList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                </a-select>
+                <ProductBrand id="productLevelList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -74,7 +65,7 @@
       :rowKey="(record) => record.id"
       :columns="columns"
       :data="loadData"
-      :scroll="{ x: 1210, y: tableHeight }"
+      :scroll="{ y: tableHeight }"
       :defaultLoadData="false"
       bordered>
       <!-- 产品分类 -->
@@ -105,9 +96,10 @@ import { STable, VSelect } from '@/components'
 import productLevelEditModal from './editModal.vue'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
+import ProductBrand from '@/views/common/productBrand.js'
 import { productLevelList } from '@/api/product'
 export default {
-  components: { STable, VSelect, productLevelEditModal },
+  components: { STable, VSelect, productLevelEditModal, ProductBrand },
   data () {
     return {
       advanced: true, // 高级搜索 展开/关闭
@@ -125,16 +117,16 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false, // 导出loading
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品名称', dataIndex: 'name', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '产品编码', dataIndex: 'code', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '原厂编码', dataIndex: 'origCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌', dataIndex: 'productBrandName', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 140, align: 'center' },
-        { title: '包装数', dataIndex: 'packQtyV', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品级别', dataIndex: 'level', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品名称', dataIndex: 'name', align: 'center', width: '25%', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'code', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '原厂编码', dataIndex: 'origCode', width: '19%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '品牌', dataIndex: 'productBrandName', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '16%', align: 'center' },
+        { title: '包装数', dataIndex: 'packQtyV', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'unit', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品级别', dataIndex: 'level', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '6%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -175,11 +167,6 @@ export default {
       this.productType = []
       this.$refs.table.refresh(true)
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     //  编辑
     handleEdit (row) {
       this.nowData = row

+ 16 - 29
src/views/productManagement/productOfflineAudit/list.vue

@@ -29,16 +29,7 @@
             <template v-if="advanced">
               <a-col :md="6" :sm="24">
                 <a-form-item label="品牌">
-                  <a-select
-                    placeholder="请选择"
-                    id="productOfflineAuditList-productBrandSn"
-                    allowClear
-                    v-model="queryParam.productBrandSn"
-                    :showSearch="true"
-                    option-filter-prop="children"
-                    :filter-option="filterOption">
-                    <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+                  <ProductBrand id="productOfflineAuditList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -94,7 +85,7 @@
         :rowKey="(record) => record.productSn"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1600, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 产品分类 -->
@@ -122,9 +113,10 @@
 import { STable, VSelect } from '@/components'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
+import ProductBrand from '@/views/common/productBrand.js'
 import { productOfflineList, productOfflineAudit, productBatchOfflineAudit } from '@/api/product'
 export default {
-  components: { STable, VSelect },
+  components: { STable, VSelect, ProductBrand },
   data () {
     return {
       spinning: false,
@@ -143,18 +135,18 @@ export default {
       productType: [],
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '产品名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品编码', dataIndex: 'code', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 140, align: 'center' },
-        { title: '提交时间', dataIndex: 'offlineSubmitTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '提交人', dataIndex: 'offlineSubmitPerson', width: 100, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '下线选项', dataIndex: 'offlineReasonType', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '通用编码', dataIndex: 'commonCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '下线原因', dataIndex: 'offlineRemark', width: 140, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '审核状态', dataIndex: 'stateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核时间', dataIndex: 'offlineAuditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核人', dataIndex: 'offlineAuditPerson', width: 100, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '产品名称', dataIndex: 'name', align: 'center', width: '15%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'code', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '10%', align: 'center' },
+        { title: '提交时间', dataIndex: 'offlineSubmitTime', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '提交人', dataIndex: 'offlineSubmitPerson', width: '8%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '下线选项', dataIndex: 'offlineReasonType', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '通用编码', dataIndex: 'commonCode', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '下线原因', dataIndex: 'offlineRemark', width: '8%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '审核状态', dataIndex: 'stateDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核时间', dataIndex: 'offlineAuditTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核人', dataIndex: 'offlineAuditPerson', width: '9%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '5%', align: 'center' }
       ],
       selectedRowKeys: [], // Check here to configure the default column
       loading: false,
@@ -193,11 +185,6 @@ export default {
     }
   },
   methods: {
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     //  重置
     resetSearchForm () {
       this.queryParam.name = ''

+ 36 - 0
src/views/productManagement/productPricing/editModal.vue

@@ -33,6 +33,8 @@
               :min="0.01"
               :max="999999"
               placeholder="请输入省级价"
+              ref="afterProvincePrice"
+              @keydown.enter.native="nextFocus('afterProvincePrice', 'afterCityPrice', $event)"
               style="width: 100%;" />
           </a-form-model-item>
           <a-form-model-item label="市级价" prop="afterCityPrice">
@@ -43,6 +45,8 @@
               :min="0.01"
               :max="999999"
               placeholder="请输入市级价"
+              ref="afterCityPrice"
+              @keydown.enter.native="nextFocus('afterCityPrice', 'afterSpecialPrice', $event)"
               style="width: 100%;" />
           </a-form-model-item>
           <a-form-model-item label="特约价" prop="afterSpecialPrice">
@@ -53,6 +57,8 @@
               :min="0.01"
               :max="999999"
               placeholder="请输入特约价"
+              ref="afterSpecialPrice"
+              @keydown.enter.native="nextFocus('afterSpecialPrice', 'afterTerminalPrice', $event)"
               style="width: 100%;" />
           </a-form-model-item>
           <a-form-model-item label="终端价" prop="afterTerminalPrice">
@@ -63,6 +69,8 @@
               :min="0.01"
               :max="999999"
               placeholder="请输入终端价"
+              ref="afterTerminalPrice"
+              @keydown.enter.native="nextFocus('afterTerminalPrice', 'afterCarOwnersPrice', $event)"
               style="width: 100%;" />
           </a-form-model-item>
           <a-form-model-item label="车主价" prop="afterCarOwnersPrice">
@@ -73,6 +81,8 @@
               :min="0.01"
               :max="999999"
               placeholder="请输入车主价"
+              ref="afterCarOwnersPrice"
+              @keydown.enter.native="nextFocus('afterCarOwnersPrice', 'changeReason', $event, 'vSelect')"
               style="width: 100%;" />
           </a-form-model-item>
           <a-form-model-item label="变更原因" prop="changeReason">
@@ -82,6 +92,8 @@
               v-model="form.changeReason"
               allowClear
               placeholder="请选择变更原因"
+              ref="changeReason"
+              @keydown.enter.native="nextFocus('changeReason', '', $event)"
             ></v-select>
           </a-form-model-item>
         </a-form-model>
@@ -185,6 +197,22 @@ export default {
           return false
         }
       })
+    },
+    // 回车键快捷定位表单下一项
+    nextFocus (nowRef, nextRef, event, isComponent) {
+      const _this = this
+      if (_this.$refs[nowRef]) {
+        _this.$nextTick(() => {
+          if (_this.$refs[nextRef]) {
+            event.target.blur()
+            if (isComponent == 'vSelect') {
+              _this.$refs[nextRef].$children[0].focus()
+            } else {
+              _this.$refs[nextRef].focus()
+            }
+          }
+        })
+      }
     }
   },
   watch: {
@@ -198,6 +226,14 @@ export default {
         this.$emit('close')
         this.costPrice = ''
         this.$refs.ruleForm.resetFields()
+      }else{
+        // 默认首项获取焦点
+        const _this = this
+        setTimeout(()=>{
+          if(_this.$refs['afterProvincePrice']){
+            _this.$refs['afterProvincePrice'].focus()
+          }
+        }, 300)
       }
     },
     itemSn (newValue, oldValue) {

+ 20 - 16
src/views/productManagement/productPricing/list.vue

@@ -17,15 +17,7 @@
             </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="品牌">
-                <a-select
-                  placeholder="请选择"
-                  id="productPricingList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
+                <ProductBrand id="productPricingList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-select>
               </a-form-item>
             </a-col>
@@ -70,7 +62,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1870, y: tableHeight }"
+        :scroll="{x: 1870, y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 产品分类 -->
@@ -122,8 +114,9 @@ import productPricingAuditModal from './auditModal.vue'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
 import { productPricingList } from '@/api/product'
+import ProductBrand from '@/views/common/productBrand.js'
 export default {
-  components: { STable, VSelect, productPricingEditModal, productPricingAuditModal },
+  components: { STable, VSelect, productPricingEditModal, productPricingAuditModal, ProductBrand },
   data () {
     return {
       spinning: false,
@@ -157,6 +150,22 @@ export default {
         { title: '终端价', dataIndex: 'terminalPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '车主价', dataIndex: 'carOwnersPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center', fixed: 'right' }
+        // { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        // { title: '创建时间', dataIndex: 'createDate', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '产品名称', dataIndex: 'name', align: 'center',width: '13%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        // { title: '产品编码', dataIndex: 'code', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '原厂编码', dataIndex: 'origCode', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '品牌', dataIndex: 'productBrandName', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '7%', align: 'center' },
+        // { title: '产品状态', dataIndex: 'stateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '定价状态', dataIndex: 'pricingStateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '成本价', scopedSlots: { customRender: 'sterminaldsdPrice' }, width: '7%', align: 'center' },
+        // { title: '省级价', dataIndex: 'provincePrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        // { title: '市级价', dataIndex: 'cityPrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        // { title: '特约价', dataIndex: 'specialPrice', width: '5%',align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        // { title: '终端价', dataIndex: 'terminalPrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        // { title: '车主价', dataIndex: 'carOwnersPrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        // { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -200,11 +209,6 @@ export default {
       this.itemSn = row.productSn
       this.openAuditModal = true
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     //  编辑
     handleEdit (row) {
       this.itemSn = row.productSn

+ 9 - 0
src/views/productManagement/productUniversal/list.vue

@@ -112,6 +112,15 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false, // 导出loading
       columns: [
+        // { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        // { title: '产品编码', dataIndex: 'productCode', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '产品名称', dataIndex: 'product.name', align: 'center', width: '24%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        // { title: '产品状态', dataIndex: 'product.stateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '通用产品编码', dataIndex: 'productCommonCode', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '通用产品名称', dataIndex: 'productCommont.name', width: '16%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        // { title: '通用产品分类', scopedSlots: { customRender: 'productType' }, width: '12%', align: 'center' },
+        // { title: '通用产品状态', dataIndex: 'productCommont.stateDictValue', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        // { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
         { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
         { title: '产品编码', dataIndex: 'productCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品名称', dataIndex: 'product.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },

+ 12 - 12
src/views/promotionRulesManagement/orderStatistics/detailModal.vue

@@ -19,7 +19,7 @@
         :columns="columns"
         :data="loadData"
         :defaultLoadData="false"
-        :scroll="{ x: 1400, y: 400 }"
+        :scroll="{ y: 400 }"
         bordered>
       </s-table>
       <div class="btn-cont"><a-button id="orderStatisticsDetail-back" @click="isShow = false">返回列表</a-button></div>
@@ -55,17 +55,17 @@ export default {
       isShow: this.openModal, //  是否打开弹框
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '产品编码', dataIndex: 'productEntity.code', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原价', dataIndex: 'origPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '促销价', dataIndex: 'price', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '数量', dataIndex: 'qty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '原价小计', dataIndex: 'priceSubtotal', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '促销价小计', dataIndex: 'totalAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '节省金额小计', dataIndex: 'totalEconomizeAmount', width: 130, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '促销类型', dataIndex: 'promotionRulesName', width: 150, align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productEntity.code', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productEntity.name', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原价', dataIndex: 'origPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '促销价', dataIndex: 'price', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '数量', dataIndex: 'qty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productEntity.unit', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '原价小计', dataIndex: 'priceSubtotal', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '促销价小计', dataIndex: 'totalAmount', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '节省金额小计', dataIndex: 'totalEconomizeAmount', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '促销类型', dataIndex: 'promotionRulesName', width: '10%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 14 - 14
src/views/promotionRulesManagement/orderStatistics/list.vue

@@ -72,7 +72,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1510, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 操作 -->
@@ -124,19 +124,19 @@ export default {
       ],
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单据来源', dataIndex: 'salesBillSourceDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '销售单号', dataIndex: 'salesBillNo', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '促销名称', dataIndex: 'promoName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户名称', dataIndex: 'buyerName', width: 180, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '促销品款数', dataIndex: 'totalPromoCategory', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '促销品数量', dataIndex: 'totalPromoQty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '原价总额', dataIndex: 'promoTotal', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '促销品总额', dataIndex: 'totalPromoAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '节省总额', dataIndex: 'totalEconomizeAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '业务状态', dataIndex: 'billStatusDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单据来源', dataIndex: 'salesBillSourceDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售单号', dataIndex: 'salesBillNo', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '促销名称', dataIndex: 'promoName', align: 'center', width: '9%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户名称', dataIndex: 'buyerName', width: '12%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '促销品款数', dataIndex: 'totalPromoCategory', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '促销品数量', dataIndex: 'totalPromoQty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '原价总额', dataIndex: 'promoTotal', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '促销品总额', dataIndex: 'totalPromoAmount', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '节省总额', dataIndex: 'totalEconomizeAmount', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '业务状态', dataIndex: 'billStatusDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '4%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 11 - 11
src/views/promotionRulesManagement/productStatistics/detailModal.vue

@@ -21,7 +21,7 @@
         :columns="columns"
         :data="loadData"
         :defaultLoadData="false"
-        :scroll="{ x: 1180, y: 400 }"
+        :scroll="{ y: 400 }"
         bordered>
       </s-table>
       <div class="btn-cont"><a-button id="orderStatisticsDetail-back" @click="isShow = false">返回列表</a-button></div>
@@ -57,16 +57,16 @@ export default {
       isShow: this.openModal, //  是否打开弹框
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '采购单号', dataIndex: 'purchaseBillNo', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '原价', dataIndex: 'origPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '促销价', dataIndex: 'price', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '数量', dataIndex: 'qty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '原价小计', dataIndex: 'priceSubtotal', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '促销价小计', dataIndex: 'totalAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '节省金额小计', dataIndex: 'totalEconomizeAmount', width: 130, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '促销类型', dataIndex: 'promotionRulesName', width: 150, align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '采购单号', dataIndex: 'purchaseBillNo', align: 'center', width: '26%', customRender: function (text) { return text || '--' } },
+        { title: '原价', dataIndex: 'origPrice', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '促销价', dataIndex: 'price', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '数量', dataIndex: 'qty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productEntity.unit', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '原价小计', dataIndex: 'priceSubtotal', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '促销价小计', dataIndex: 'totalAmount', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '节省金额小计', dataIndex: 'totalEconomizeAmount', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '促销类型', dataIndex: 'promotionRulesName', width: '12%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 11 - 24
src/views/promotionRulesManagement/productStatistics/list.vue

@@ -37,16 +37,7 @@
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="产品品牌">
-                  <a-select
-                    placeholder="请选择产品品牌"
-                    id="productStatisticsList-productBrandSn"
-                    allowClear
-                    v-model="queryParam.productBrandSn"
-                    :showSearch="true"
-                    option-filter-prop="children"
-                    :filter-option="filterOption">
-                    <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+                  <ProductBrand id="productStatisticsList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-item>
               </a-col>
             </template>
@@ -105,9 +96,10 @@ import rangeDate from '@/views/common/rangeDate.vue'
 import productStatisticsDetailModal from './detailModal.vue'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
+import ProductBrand from '@/views/common/productBrand.js'
 import { salesDetailPromoList, salesDetailPromoCount } from '@/api/salesDetail'
 export default {
-  components: { STable, VSelect, productStatisticsDetailModal, rangeDate },
+  components: { STable, VSelect, productStatisticsDetailModal, rangeDate,ProductBrand },
   data () {
     return {
       spinning: false,
@@ -130,14 +122,14 @@ export default {
       ],
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '品牌', dataIndex: 'productEntity.productBrandName', width: 140, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品编码', dataIndex: 'productEntity.code', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '数量', dataIndex: 'qty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '节省金额', dataIndex: 'totalEconomizeAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? '¥' + text : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '品牌', dataIndex: 'productEntity.productBrandName', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', width: '28%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'productEntity.code', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '数量', dataIndex: 'qty', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productEntity.unit', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '节省金额', dataIndex: 'totalEconomizeAmount', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? '¥' + text : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -231,11 +223,6 @@ export default {
         }
       })
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     pageInit () {
       const _this = this
       this.$nextTick(() => { // 页面渲染完成后的回调

+ 121 - 121
src/views/promotionRulesManagement/promotionRules/basicInfoModal.vue

@@ -4,7 +4,7 @@
     class="promotionRules-basicInfo-modal"
     :footer="null"
     :maskClosable="false"
-    title="新增"
+    :title="itemSn?'编辑':'新增'"
     v-model="isShow"
     @cancle="isShow = false"
     :width="960">
@@ -18,135 +18,135 @@
         :wrapper-col="formItemLayout.wrapperCol"
       >
         <a-form-model-item label="活动名称" prop="name" :label-col="{span: 4}">
-        <a-input
-          id="promotionRules-basicInfo-name"
-          :maxLength="100"
-          v-model.trim="form.name"
-          placeholder="请输入活动名称(最多100个字符)"
-          allowClear />
+          <a-input
+            id="promotionRules-basicInfo-name"
+            :maxLength="100"
+            v-model.trim="form.name"
+            placeholder="请输入活动名称(最多100个字符)"
+            allowClear />
         </a-form-model-item>
         <a-row :gutter="15">
-        <a-col span="12">
-          <a-form-model-item label="活动时间" prop="activeDateEnable">
-          <a-select
-            id="promotionRules-basicInfo-activeDateEnable"
-            placeholder="请选择"
-            @change="handleChange('activeDateEnable')"
-            v-model="form.activeDateEnable"
-            style="width: 100%;">
-            <a-select-option v-for="item in rangeList" :key="item.val" :value="item.val">{{ item.name }}</a-select-option>
-          </a-select>
-          </a-form-model-item>
-        </a-col>
-        <a-col span="12" v-if="form.activeDateEnable=='1'">
-          <a-form-model-item prop="activeDate">
-          <a-range-picker
-            style="width:100%"
-            id="promotionRules-basicInfo-activeDate"
-            :disabledDate="disabledDate"
-            v-model="form.activeDate"
-            :format="dateFormat"
-            :placeholder="['开始时间', '结束时间']" />
-          </a-form-model-item>
-        </a-col>
+          <a-col span="12">
+            <a-form-model-item label="活动时间" prop="activeDateEnable">
+              <a-select
+                id="promotionRules-basicInfo-activeDateEnable"
+                placeholder="请选择"
+                @change="handleChange('activeDateEnable')"
+                v-model="form.activeDateEnable"
+                style="width: 100%;">
+                <a-select-option v-for="item in rangeList" :key="item.val" :value="item.val">{{ item.name }}</a-select-option>
+              </a-select>
+            </a-form-model-item>
+          </a-col>
+          <a-col span="12" v-if="form.activeDateEnable=='1'">
+            <a-form-model-item prop="activeDate">
+              <a-range-picker
+                style="width:100%"
+                id="promotionRules-basicInfo-activeDate"
+                :disabledDate="disabledDate"
+                v-model="form.activeDate"
+                :format="dateFormat"
+                :placeholder="['开始时间', '结束时间']" />
+            </a-form-model-item>
+          </a-col>
         </a-row>
         <a-row :gutter="15">
-        <a-col span="12">
-          <a-form-model-item label="参与客户" prop="buyerLimitEnable">
-          <a-select
-            id="promotionRules-basicInfo-buyerLimitEnable"
-            placeholder="请选择"
-            @change="handleChange('buyerLimitEnable')"
-            v-model="form.buyerLimitEnable"
-            style="width: 100%;">
-            <a-select-option v-for="item in rangeCList" :key="item.val" :value="item.val">{{ item.name }}</a-select-option>
-          </a-select>
-          </a-form-model-item>
-        </a-col>
-        <a-col span="12" v-if="form.buyerLimitEnable=='1'">
-          <a-form-model-item prop="buyerSns">
-          <a-button id="promotionRules-basicInfo-choose" type="primary" class="button-success" @click="openCustomerModal=true">选择</a-button>
-          <span style="font-weight: bold;">当前已选:{{ chooseCust.length }}个</span>
-          </a-form-model-item>
-        </a-col>
+          <a-col span="12">
+            <a-form-model-item label="参与客户" prop="buyerLimitEnable">
+              <a-select
+                id="promotionRules-basicInfo-buyerLimitEnable"
+                placeholder="请选择"
+                @change="handleChange('buyerLimitEnable')"
+                v-model="form.buyerLimitEnable"
+                style="width: 100%;">
+                <a-select-option v-for="item in rangeCList" :key="item.val" :value="item.val">{{ item.name }}</a-select-option>
+              </a-select>
+            </a-form-model-item>
+          </a-col>
+          <a-col span="12" v-if="form.buyerLimitEnable=='1'">
+            <a-form-model-item prop="buyerSns">
+              <a-button id="promotionRules-basicInfo-choose" type="primary" class="button-success" @click="openCustomerModal=true">选择</a-button>
+              <span style="font-weight: bold;">当前已选:{{ chooseCust.length }}个</span>
+            </a-form-model-item>
+          </a-col>
         </a-row>
         <a-row :gutter="15">
-        <a-col span="12">
-          <a-form-model-item prop="activeAmountEnable">
-          <template slot="label">
-            <a-popover style="margin-top: 13px;">
-            <template slot="content">即促销品的销售价总额不能高于限值,达到后活动不能参与。</template>
-            <a-icon type="question-circle" theme="twoTone" />
-            </a-popover>
-            <span>活动经费上限</span>
-          </template>
-          <a-select
-            id="promotionRules-basicInfo-activeAmountEnable"
-            placeholder="请选择"
-            @change="handleChange('activeAmountEnable')"
-            v-model="form.activeAmountEnable"
-            style="width: 100%;">
-            <a-select-option v-for="item in rangeList" :key="item.val" :value="item.val">{{ item.name }}</a-select-option>
-          </a-select>
-          </a-form-model-item>
-        </a-col>
-        <a-col span="12" v-if="form.activeAmountEnable=='1'">
-          <a-form-model-item prop="activeAmount">
-          <a-input-number
-            id="promotionRules-basicInfo-activeAmount"
-            v-model="form.activeAmount"
-            :min="1"
-            :max="999999"
-            :precision="2"
-            style="width: 85%;margin-right: 5px;"
-            placeholder="请输入活动经费上限(1~999999)"
-            allowClear />
-          <span>万元</span>
-          </a-form-model-item>
-        </a-col>
+          <a-col span="12">
+            <a-form-model-item prop="activeAmountEnable">
+              <template slot="label">
+                <a-popover style="margin-top: 13px;">
+                  <template slot="content">即促销品的销售价总额不能高于限值,达到后活动不能参与。</template>
+                  <a-icon type="question-circle" theme="twoTone" />
+                </a-popover>
+                <span>活动经费上限</span>
+              </template>
+              <a-select
+                id="promotionRules-basicInfo-activeAmountEnable"
+                placeholder="请选择"
+                @change="handleChange('activeAmountEnable')"
+                v-model="form.activeAmountEnable"
+                style="width: 100%;">
+                <a-select-option v-for="item in rangeList" :key="item.val" :value="item.val">{{ item.name }}</a-select-option>
+              </a-select>
+            </a-form-model-item>
+          </a-col>
+          <a-col span="12" v-if="form.activeAmountEnable=='1'">
+            <a-form-model-item prop="activeAmount">
+              <a-input-number
+                id="promotionRules-basicInfo-activeAmount"
+                v-model="form.activeAmount"
+                :min="1"
+                :max="999999"
+                :precision="2"
+                style="width: 85%;margin-right: 5px;"
+                placeholder="请输入活动经费上限(1~999999)"
+                allowClear />
+              <span>万元</span>
+            </a-form-model-item>
+          </a-col>
         </a-row>
         <a-row :gutter="15">
-        <a-col span="12">
-          <a-form-model-item prop="orderAmountEnable">
-          <template slot="label">
-            <a-popover style="margin-top: 13px;">
-            <template slot="content">即限制每个采购单需达到下限金额才能参与促销。</template>
-            <a-icon type="question-circle" theme="twoTone" />
-            </a-popover>
-            <span>订单起订金额</span>
-          </template>
-          <a-select
-            id="promotionRules-basicInfo-orderAmountEnable"
-            placeholder="请选择"
-            @change="handleChange('orderAmountEnable')"
-            v-model="form.orderAmountEnable"
-            style="width: 100%;">
-            <a-select-option v-for="item in rangeList" :key="item.val" :value="item.val">{{ item.name }}</a-select-option>
-          </a-select>
-          </a-form-model-item>
-        </a-col>
-        <a-col span="12" v-if="form.orderAmountEnable=='1'">
-          <a-form-model-item prop="orderAmount">
-          <a-input-number
-            id="promotionRules-basicInfo-orderAmount"
-            v-model="form.orderAmount"
-            :min="1"
-            :max="999999"
-            :precision="2"
-            style="width: 85%;margin-right: 5px;"
-            placeholder="请输入订单起订金额(1~999999)"
-            allowClear />
-          <span>万元</span>
-          </a-form-model-item>
-        </a-col>
+          <a-col span="12">
+            <a-form-model-item prop="orderAmountEnable">
+              <template slot="label">
+                <a-popover style="margin-top: 13px;">
+                  <template slot="content">即限制每个采购单需达到下限金额才能参与促销。</template>
+                  <a-icon type="question-circle" theme="twoTone" />
+                </a-popover>
+                <span>订单起订金额</span>
+              </template>
+              <a-select
+                id="promotionRules-basicInfo-orderAmountEnable"
+                placeholder="请选择"
+                @change="handleChange('orderAmountEnable')"
+                v-model="form.orderAmountEnable"
+                style="width: 100%;">
+                <a-select-option v-for="item in rangeList" :key="item.val" :value="item.val">{{ item.name }}</a-select-option>
+              </a-select>
+            </a-form-model-item>
+          </a-col>
+          <a-col span="12" v-if="form.orderAmountEnable=='1'">
+            <a-form-model-item prop="orderAmount">
+              <a-input-number
+                id="promotionRules-basicInfo-orderAmount"
+                v-model="form.orderAmount"
+                :min="1"
+                :max="999999"
+                :precision="2"
+                style="width: 85%;margin-right: 5px;"
+                placeholder="请输入订单起订金额(1~999999)"
+                allowClear />
+              <span>万元</span>
+            </a-form-model-item>
+          </a-col>
         </a-row>
         <a-form-model-item label="备注" prop="remark" :label-col="{span: 4}">
-        <a-textarea
-          id="promotionRules-basicInfo-remark"
-          :maxLength="100"
-          v-model.trim="form.remark"
-          placeholder="请输入备注(最多100个字符)"
-          allowClear />
+          <a-textarea
+            id="promotionRules-basicInfo-remark"
+            :maxLength="100"
+            v-model.trim="form.remark"
+            placeholder="请输入备注(最多100个字符)"
+            allowClear />
         </a-form-model-item>
       </a-form-model>
       <div class="btn-cont">
@@ -293,7 +293,7 @@ export default {
                 _this.$emit('ok', res.data)
                 _this.spinning = false
               }, 1000)
-            }else{
+            } else {
               _this.spinning = false
             }
           })

+ 22 - 22
src/views/promotionRulesManagement/promotionRules/detail.vue

@@ -104,38 +104,38 @@ export default {
       tableHeight: 0,
       detailsData: null,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '促销类型', dataIndex: 'promoRuleTypeDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '促销规则', dataIndex: 'promoRule', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 200, align: 'center' }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '促销类型', dataIndex: 'promoRuleTypeDictValue', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '促销规则', dataIndex: 'promoRule', align: 'center', width: '37%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '18%', align: 'center' }
       ],
       loadData: [],
       openModal: false,
       custColumns: [
-        { title: '序号', scopedSlots: { customRender: 'no' }, width: 80, align: 'center' },
-        { title: '客户名称', dataIndex: 'buyerName', align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '序号', scopedSlots: { customRender: 'no' }, width: '5%', align: 'center' },
+        { title: '客户名称', dataIndex: 'buyerName', align: 'center', width: '95%', customRender: function (text) { return text || '--' } }
       ],
       pColumns: [ //  正品
-        { title: '序号', scopedSlots: { customRender: 'no' }, width: 80, align: 'center' },
-        { title: '类型', dataIndex: 'goodsTypeName', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '类型名称', dataIndex: 'goodsName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品编码', dataIndex: 'goodsCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '起订量限制', scopedSlots: { customRender: 'orderGoodsUnit' }, align: 'center' }
+        { title: '序号', scopedSlots: { customRender: 'no' }, width: '4%', align: 'center' },
+        { title: '类型', dataIndex: 'goodsTypeName', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '类型名称', dataIndex: 'goodsName', align: 'center', width: '25%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品名称', dataIndex: 'name', align: 'center', width: '25%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'goodsCode', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '起订量限制', scopedSlots: { customRender: 'orderGoodsUnit' }, width: '14%', align: 'center' }
       ],
       promoColumns: [ //  促销品
-        { title: '序号', scopedSlots: { customRender: 'no' }, width: 80, align: 'center' },
-        { title: '类型', dataIndex: 'goodsTypeName', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '类型名称', dataIndex: 'goodsName', width: 220, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品编码', dataIndex: 'goodsCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '序号', scopedSlots: { customRender: 'no' }, width: '5%', align: 'center' },
+        { title: '类型', dataIndex: 'goodsTypeName', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '类型名称', dataIndex: 'goodsName', width: '35%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品名称', dataIndex: 'name', align: 'center', width: '35%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'goodsCode', width: '10%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       promoSpecialColumns: [ //  特价产品/加价促销品
-        { title: '序号', scopedSlots: { customRender: 'no' }, width: 80, align: 'center' },
-        { title: '产品名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品编码', dataIndex: 'goodsCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: this.promoRuleType == 'PROMO_PROD' ? '特惠单价(¥)' : '换购单价(¥)', scopedSlots: { customRender: 'goodsPrice' }, width: 200, align: 'center' }
+        { title: '序号', scopedSlots: { customRender: 'no' }, width: '5%', align: 'center' },
+        { title: '产品名称', dataIndex: 'name', align: 'center', width: '50%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'goodsCode', width: '30%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: this.promoRuleType == 'PROMO_PROD' ? '特惠单价(¥)' : '换购单价(¥)', width: '15%', scopedSlots: { customRender: 'goodsPrice' }, width: 200, align: 'center' }
       ],
       lookLoadData: [],
       promoRuleList: [],

+ 9 - 9
src/views/promotionRulesManagement/promotionRules/list.vue

@@ -40,7 +40,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1210, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 促销时间 -->
@@ -113,14 +113,14 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '促销名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '促销时间', scopedSlots: { customRender: 'activeDate' }, width: 170, align: 'center' },
-        { title: '参与客户', dataIndex: 'promoBuyerName', width: 180, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '备注', dataIndex: 'remark', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: 100, align: 'center', fixed: 'right' },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 170, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '促销名称', dataIndex: 'name', width: '20%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '促销时间', scopedSlots: { customRender: 'activeDate' }, width: '14%', align: 'center' },
+        { title: '参与客户', dataIndex: 'promoBuyerName', width: '15%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '备注', dataIndex: 'remark', width: '13%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: '6%', align: 'center' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 5 - 5
src/views/promotionRulesManagement/promotionRules/rule.vue

@@ -59,11 +59,11 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       tableHeight: 0,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '促销类型', dataIndex: 'promoRuleTypeDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '促销规则', dataIndex: 'promoRule', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 200, align: 'center' }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '促销类型', dataIndex: 'promoRuleTypeDictValue', width: '30%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '促销规则', dataIndex: 'promoRule', align: 'center', width: '30%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 7 - 7
src/views/purchasingManagement/bulkWarehousingOrder/detailModal.vue

@@ -74,13 +74,13 @@ export default {
       isShow: this.openModal, //  是否打开弹框
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { 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: 'unit', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '入库数量', dataIndex: 'productQty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库单价', dataIndex: 'productCost', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '小计', dataIndex: 'subtotal', width: 100, align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName',width: '40%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '单位', dataIndex: 'unit',width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '入库数量', dataIndex: 'productQty', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库单价', dataIndex: 'productCost',width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '小计', dataIndex: 'subtotal',width: '12%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 8 - 8
src/views/purchasingManagement/bulkWarehousingOrder/edit.vue

@@ -89,14 +89,14 @@ export default {
       spinning: false,
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { 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: 'unit', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '入库数量', dataIndex: 'productQty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库单价', dataIndex: 'productCost', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '小计', dataIndex: 'subtotal', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 120, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode',width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName',width: '25%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '单位', dataIndex: 'unit', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '入库数量', dataIndex: 'productQty', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库单价', dataIndex: 'productCost',width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '小计', dataIndex: 'subtotal',width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 12 - 12
src/views/purchasingManagement/bulkWarehousingOrder/list.vue

@@ -61,7 +61,7 @@
         :rowKey="(record) => record.sparePartsSn"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1390, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 入库单号 -->
@@ -122,17 +122,17 @@ export default {
       },
       // 表头
       columns: [
-        { title: '创建时间', dataIndex: 'createDate', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '入库单号', scopedSlots: { customRender: 'sparePartsNo' }, width: 150, align: 'center' },
-        { title: '商户名称', dataIndex: 'supplierName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '入库数量', dataIndex: 'productTotalQty', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库成本', dataIndex: 'productTotalCost', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '入库类型', dataIndex: 'sparePartsTypeDictValue', width: 70, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '关联单号', dataIndex: 'relationNo', width: 70, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '金蝶单号', dataIndex: 'kingdeeNo', width: 150, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', dataIndex: 'stateDictValue', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '备注', dataIndex: 'remark', width: 150, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 140, align: 'center', fixed: 'right' }
+        { title: '创建时间', dataIndex: 'createDate', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '入库单号', scopedSlots: { customRender: 'sparePartsNo' }, width: '15%', align: 'center' },
+        { title: '商户名称', dataIndex: 'supplierName', align: 'center',width: '15%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '入库数量', dataIndex: 'productTotalQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库成本', dataIndex: 'productTotalCost', width: '6%',align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库类型', dataIndex: 'sparePartsTypeDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '关联单号', dataIndex: 'relationNo', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '金蝶单号', dataIndex: 'kingdeeNo', width: '12.5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '状态', dataIndex: 'stateDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '备注', dataIndex: 'remark', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '9%', align: 'center' }
       ],
       selectedRowKeys: [], // Check here to configure the default column
       selectedRows: [],

+ 30 - 29
src/views/reportData/actualSalesReport/list.vue

@@ -70,14 +70,15 @@
             <a-col :md="6" :sm="24">
               <a-button type="primary" @click="handleSearch" :disabled="disabled" id="actualSalesReportList-refresh">查询</a-button>
               <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="actualSalesReportList-reset">重置</a-button>
-              <!-- <a-button
+              <a-button
                 style="margin-left: 10px"
                 type="primary"
                 class="button-warning"
                 @click="handleExport"
                 :disabled="disabled"
                 :loading="exportLoading"
-                id="actualSalesReportList-export">导出</a-button> -->
+                v-if="$hasPermissions('B_actualSalesReport_export')"
+                id="actualSalesReportList-export">导出</a-button>
               <a @click="advanced=!advanced" style="margin-left: 8px">
                 {{ advanced ? '收起' : '展开' }}
                 <a-icon :type="advanced ? 'up' : 'down'"/>
@@ -94,7 +95,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 3220 }"
+        :scroll="{ x: 2170 }"
         :defaultLoadData="false"
         bordered>
         <template slot="footer">
@@ -141,6 +142,7 @@ import custList from '@/views/common/custList.vue'
 import subarea from '@/views/common/subarea.js'
 import { getArea } from '@/api/data'
 import { salesBillRealAmountQueryPageList, salesBillRealReportCount } from '@/api/salesBillReport'
+import { actualSalesExport } from '@/api/reportData'
 export default {
   components: { STable, VSelect, rangeDate, subarea, custList },
   data () {
@@ -170,11 +172,10 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 220, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
-        { title: '省份', dataIndex: 'dealer.provinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 120, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
+        { title: '省份', dataIndex: 'dealer.provinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '客户名称', dataIndex: 'dealer.dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌',
           align: 'center',
           children: [
@@ -186,35 +187,35 @@ export default {
                   title: '滤清器',
                   dataIndex: 'jpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'jpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '喇叭',
                   dataIndex: 'jpLbAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'jpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '感应线',
                   dataIndex: 'jpGyxAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -227,21 +228,21 @@ export default {
                   title: '滤清器',
                   dataIndex: 'gpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'gpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'gpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -250,35 +251,35 @@ export default {
               title: '汇箭',
               dataIndex: 'hjAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德路斯',
               dataIndex: 'dlsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '稳升',
               dataIndex: 'wsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: 'TBU',
               dataIndex: 'tbuAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '布瑞斯',
               dataIndex: 'brsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
@@ -289,53 +290,53 @@ export default {
               title: 'NGK',
               dataIndex: 'ngkAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '飞利浦',
               dataIndex: 'flpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '车仆',
               dataIndex: 'cpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '瓦尔塔',
               dataIndex: 'wetAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '雷贝斯托',
               dataIndex: 'lbstAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德尔福',
               dataIndex: 'defAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '巴诺德',
               dataIndex: 'bndAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
-        { title: '实售销售合计金额', width: 200, dataIndex: 'totalAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
+        { title: '实售销售合计金额', width: 90, dataIndex: 'totalAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -370,7 +371,7 @@ export default {
       const params = this.queryParam
       this.exportLoading = true
       _this.spinning = true
-      reportSalesReturnDetailExport(params).then(res => {
+      actualSalesExport(params).then(res => {
         this.exportLoading = false
         _this.spinning = false
         if (res.type == 'application/json') {

+ 24 - 38
src/views/reportData/allocationDetails/list.vue

@@ -32,16 +32,7 @@
             <template v-if="advanced">
               <a-col :md="7" :sm="24">
                 <a-form-model-item label="产品品牌">
-                  <a-select
-                    placeholder="请选择"
-                    id="allocationDetailsList-productBrandSn"
-                    allowClear
-                    v-model="queryParam.productBrandSn"
-                    :showSearch="true"
-                    option-filter-prop="children"
-                    :filter-option="filterOption">
-                    <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+                  <ProductBrand id="allocationDetailsList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-model-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -111,7 +102,7 @@
               <a-button
                 style="margin-left: 0px"
                 type="primary"
-                class="button-warning"
+                class="button-info"
                 size="small"
                 @click="handleStock"
                 id="allocationDetailsList-stockDate">盘点区间日期</a-button>
@@ -143,7 +134,7 @@
         :columns="columns"
         :data="loadData"
         :defaultLoadData="false"
-        :scroll="{ x: 3430 }"
+        :scroll="{ x: 2090 }"
         bordered>
         <template slot="footer">
           <a-row :gutter="15">
@@ -176,10 +167,11 @@ import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
 import { getArea } from '@/api/data'
 import { allocateTypeAllList } from '@/api/allocateType'
+import ProductBrand from '@/views/common/productBrand.js'
 import { userQueryList } from '@/api/power-user'
 import { allocateReportDetailList, allocateReportDetailCount, allocateReportDetailExport } from '@/api/allocateReport'
 export default {
-  components: { STable, VSelect, rangeDate, subarea },
+  components: { STable, VSelect, rangeDate, subarea, ProductBrand },
   data () {
     return {
       spinning: false,
@@ -216,27 +208,26 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'subareaNames', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '调拨单号', dataIndex: 'allocateNo', width: 220, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
-        { title: '调拨开单日期', dataIndex: 'allocateDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省份', dataIndex: 'dealerProvinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '区域', dataIndex: 'subareaNames', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '调拨单号', dataIndex: 'allocateNo', width: 160, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
+        { title: '调拨开单日期', dataIndex: 'allocateDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省份', dataIndex: 'dealerProvinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '客户名称', dataIndex: 'targetName', align: 'center', sorter: true, customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '品牌', dataIndex: 'productBrandName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '二级分类', dataIndex: 'productTypeName2', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', sorter: true, customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品编码', dataIndex: 'productCode', width: 200, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
-        { title: '调拨数量', dataIndex: 'qty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'productUnit', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '成本价', dataIndex: 'cost', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '售价', dataIndex: 'price', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '总成本价', dataIndex: 'totalCost', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '毛利', dataIndex: 'grossProfit', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '仓库', dataIndex: 'warehouseName', width: 200, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
-        { title: '仓位', dataIndex: 'warehouseLocationName', width: 200, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
-        { title: '操作员', dataIndex: 'creatorName', width: 150, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '调拨类型', dataIndex: 'allocateTypeName', width: 140, align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '品牌', dataIndex: 'productBrandName', width: 130, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '二级分类', dataIndex: 'productTypeName2', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', align: 'left', sorter: true, customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'productCode', width: 150, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
+        { title: '调拨数量', dataIndex: 'qty', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productUnit', width: 50, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '成本价', dataIndex: 'cost', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '售价', dataIndex: 'price', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '总成本价', dataIndex: 'totalCost', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '毛利', dataIndex: 'grossProfit', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '仓库', dataIndex: 'warehouseName', width: 90, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
+        { title: '仓位', dataIndex: 'warehouseLocationName', width: 90, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
+        { title: '操作员', dataIndex: 'creatorName', width: 100, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '调拨类型', dataIndex: 'allocateTypeName', width: 80, align: 'center', customRender: function (text) { return text || '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -378,11 +369,6 @@ export default {
       document.body.appendChild(link)
       link.click()
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     //  产品分类  change
     changeProductType (val, opt) {
       this.queryParam.productTypeSn1 = val[0] ? val[0] : ''

+ 8 - 10
src/views/reportData/allocationOrderTotal/list.vue

@@ -55,7 +55,7 @@
             <a-col :md="7" :sm="24" style="margin-bottom: 10px;">
               <a-button
                 type="primary"
-                class="button-warning"
+                class="button-info"
                 size="small"
                 @click="handleStock"
                 id="allocationOrderTotalList-stockDate">盘点区间日期</a-button>
@@ -78,7 +78,6 @@
         :columns="columns"
         :data="loadData"
         :defaultLoadData="false"
-        :scroll="{ x: 1140 }"
         bordered>
         <template slot="footer" slot-scope="currentPageData">
           <a-row :gutter="15">
@@ -130,14 +129,13 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '调拨单号', dataIndex: 'allocateNo', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '调拨开单日期', dataIndex: 'allocateDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'targetName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '调拨数量', dataIndex: 'totalQty', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '成本价', dataIndex: 'totalCost', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '毛利', dataIndex: 'totalGrossProfit', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作员', dataIndex: 'creatorName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
+        { title: '调拨单号', dataIndex: 'allocateNo', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '调拨开单日期', dataIndex: 'allocateDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'targetName', width: '22%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '调拨数量', dataIndex: 'totalQty', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '成本价', dataIndex: 'totalCost', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '毛利', dataIndex: 'totalGrossProfit', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作员', dataIndex: 'creatorName', width: '16%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 25 - 26
src/views/reportData/billingReturnReport/list.vue

@@ -95,7 +95,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 3120, y: tableHeight }"
+        :scroll="{ x: 2170, y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <template slot="footer">
@@ -174,11 +174,10 @@ export default {
       addrCityList: [], //  市下拉
       addrDistrictList: [], //  区下拉
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 220, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
-        { title: '省份', dataIndex: 'dealer.provinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 120, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
+        { title: '省份', dataIndex: 'dealer.provinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '客户名称', dataIndex: 'dealer.dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌',
           align: 'center',
           children: [
@@ -190,35 +189,35 @@ export default {
                   title: '滤清器',
                   dataIndex: 'jpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'jpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '喇叭',
                   dataIndex: 'jpLbAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'jpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '感应线',
                   dataIndex: 'jpGyxAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -231,21 +230,21 @@ export default {
                   title: '滤清器',
                   dataIndex: 'gpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'gpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'gpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -254,35 +253,35 @@ export default {
               title: '汇箭',
               dataIndex: 'hjAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德路斯',
               dataIndex: 'dlsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '稳升',
               dataIndex: 'wsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: 'TBU',
               dataIndex: 'tbuAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '布瑞斯',
               dataIndex: 'brsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
@@ -293,53 +292,53 @@ export default {
               title: 'NGK',
               dataIndex: 'ngkAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '飞利浦',
               dataIndex: 'flpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '车仆',
               dataIndex: 'cpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '瓦尔塔',
               dataIndex: 'wetAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '雷贝斯托',
               dataIndex: 'lbstAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德尔福',
               dataIndex: 'defAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '巴诺德',
               dataIndex: 'bndAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
-        { title: '开单退货合计金额', width: 200, dataIndex: 'sumAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
+        { title: '开单退货合计金额', width: 90, dataIndex: 'sumAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 17 - 18
src/views/reportData/hPriceDifferenceDetailReport/list.vue

@@ -77,7 +77,7 @@
             <a-col :md="7" :sm="24" style="margin-bottom: 10px;">
               <a-button
                 type="primary"
-                class="button-warning"
+                class="button-info"
                 size="small"
                 @click="handleStock"
                 id="hPriceDifferenceDetailList-stockDate">盘点区间日期</a-button>
@@ -100,7 +100,7 @@
         :columns="columns"
         :data="loadData"
         :defaultLoadData="false"
-        :scroll="{ x: 2800 }"
+        :scroll="{ x: 1850 }"
         bordered>
         <template slot="footer">
           <a-row :gutter="15">
@@ -171,23 +171,22 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       addrProvinceList: [], //  省下拉
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 220, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
-        { title: '订单号', dataIndex: 'bizNo', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '日期', dataIndex: 'bizCreateDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省份', dataIndex: 'dealer.provinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 120, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
+        { title: '订单号', dataIndex: 'bizNo', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '日期', dataIndex: 'bizCreateDate', width: 90, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省份', dataIndex: 'dealer.provinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '客户名称', dataIndex: 'dealer.dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌', dataIndex: 'productBrandName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '二级分类', dataIndex: 'productTypeName2', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '数量', dataIndex: 'qty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '分公司金额', dataIndex: 'wholesalePrice1', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '加盟商金额', dataIndex: 'wholesalePrice2', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '特约加盟店金额', dataIndex: 'wholesalePrice3', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '直接差价', dataIndex: 'directRebateAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '间接差价', dataIndex: 'indirectRebateAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '品牌', dataIndex: 'productBrandName', width: 130, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '二级分类', dataIndex: 'productTypeName2', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '数量', dataIndex: 'qty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '分公司金额', dataIndex: 'wholesalePrice1', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '加盟商金额', dataIndex: 'wholesalePrice2', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '特约加盟店金额', dataIndex: 'wholesalePrice3', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '直接差价', dataIndex: 'directRebateAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '间接差价', dataIndex: 'indirectRebateAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '类型', dataIndex: 'bizTypeValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象

+ 9 - 11
src/views/reportData/priceDifferenceDetailReport/list.vue

@@ -65,7 +65,6 @@
         :columns="columns"
         :data="loadData"
         :defaultLoadData="false"
-        :scroll="{ x: 1060 }"
         bordered>
         <template slot="footer">
           <a-row :gutter="15">
@@ -112,16 +111,15 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       addrProvinceList: [], //  省下拉
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center', fixed: 'left' },
-        { title: '月份', dataIndex: 'month', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省份', dataIndex: 'provinceName', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '记账门店', dataIndex: 'rebateDealerName', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'dealerName', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品品牌+二级分类', dataIndex: 'productBrandAndType2', width: 150, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '实售金额', dataIndex: 'totalRealAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '开单金额', dataIndex: 'totalAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '直接差额', dataIndex: 'rebateAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '类型', dataIndex: 'bizType', width: 80, align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '月份', dataIndex: 'month', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省份', dataIndex: 'provinceName', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '记账门店', dataIndex: 'rebateDealerName', width: '15%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户名称', dataIndex: 'dealerName', width: '16%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品品牌+二级分类', dataIndex: 'productBrandAndType2', width: '15%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '实售金额', dataIndex: 'totalRealAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '开单金额', dataIndex: 'totalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '直接差额', dataIndex: 'rebateAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '类型', dataIndex: 'bizType', width: '10%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 26 - 27
src/views/reportData/returnSlipReport/list.vue

@@ -100,7 +100,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 3340, y: tableHeight }"
+        :scroll="{ x: 2330, y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <template slot="footer">
@@ -180,12 +180,11 @@ export default {
       addrCityList: [], //  市下拉
       addrDistrictList: [], //  区下拉
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 220, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
-        { title: '退货单号', dataIndex: 'salesReturnBillNo', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省份', dataIndex: 'dealer.provinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 120, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
+        { title: '退货单号', dataIndex: 'salesReturnBillNo', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省份', dataIndex: 'dealer.provinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '客户名称', dataIndex: 'dealer.dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌',
           align: 'center',
           children: [
@@ -197,35 +196,35 @@ export default {
                   title: '滤清器',
                   dataIndex: 'jpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'jpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '喇叭',
                   dataIndex: 'jpLbAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'jpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '感应线',
                   dataIndex: 'jpGyxAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -238,21 +237,21 @@ export default {
                   title: '滤清器',
                   dataIndex: 'gpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'gpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'gpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -261,35 +260,35 @@ export default {
               title: '汇箭',
               dataIndex: 'hjAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德路斯',
               dataIndex: 'dlsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '稳升',
               dataIndex: 'wsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: 'TBU',
               dataIndex: 'tbuAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '布瑞斯',
               dataIndex: 'brsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
@@ -300,53 +299,53 @@ export default {
               title: 'NGK',
               dataIndex: 'ngkAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '飞利浦',
               dataIndex: 'flpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '车仆',
               dataIndex: 'cpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '瓦尔塔',
               dataIndex: 'wetAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '雷贝斯托',
               dataIndex: 'lbstAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德尔福',
               dataIndex: 'defAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '巴诺德',
               dataIndex: 'bndAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
-        { title: '开单退货单合计金额', width: 200, dataIndex: 'sumAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
+        { title: '开单退货单合计金额', width: 90, dataIndex: 'sumAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 28 - 28
src/views/reportData/salesAmountReport/list.vue

@@ -70,14 +70,15 @@
             <a-col :md="6" :sm="24">
               <a-button type="primary" @click="handleSearch" :disabled="disabled" id="salesAmountReportList-refresh">查询</a-button>
               <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="salesAmountReportList-reset">重置</a-button>
-              <!-- <a-button
+              <a-button
                 style="margin-left: 10px"
                 type="primary"
                 class="button-warning"
                 @click="handleExport"
                 :disabled="disabled"
                 :loading="exportLoading"
-                id="returnSlipReportList-export">导出</a-button> -->
+                v-if="$hasPermissions('B_salesAmountReport_export')"
+                id="returnSlipReportList-export">导出</a-button>
               <a @click="advanced=!advanced" style="margin-left: 8px">
                 {{ advanced ? '收起' : '展开' }}
                 <a-icon :type="advanced ? 'up' : 'down'"/>
@@ -95,7 +96,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 3220 }"
+        :scroll="{ x: 2170 }"
         bordered>
         <template slot="footer">
           <a-row>
@@ -171,11 +172,10 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 220, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
-        { title: '省份', dataIndex: 'dealer.provinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 120, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
+        { title: '省份', dataIndex: 'dealer.provinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '客户名称', dataIndex: 'dealer.dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌',
           align: 'center',
           children: [
@@ -187,35 +187,35 @@ export default {
                   title: '滤清器',
                   dataIndex: 'jpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'jpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '喇叭',
                   dataIndex: 'jpLbAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'jpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '感应线',
                   dataIndex: 'jpGyxAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -228,21 +228,21 @@ export default {
                   title: '滤清器',
                   dataIndex: 'gpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'gpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'gpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -251,35 +251,35 @@ export default {
               title: '汇箭',
               dataIndex: 'hjAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德路斯',
               dataIndex: 'dlsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '稳升',
               dataIndex: 'wsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: 'TBU',
               dataIndex: 'tbuAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '布瑞斯',
               dataIndex: 'brsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
@@ -290,53 +290,53 @@ export default {
               title: 'NGK',
               dataIndex: 'ngkAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '飞利浦',
               dataIndex: 'flpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '车仆',
               dataIndex: 'cpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '瓦尔塔',
               dataIndex: 'wetAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '雷贝斯托',
               dataIndex: 'lbstAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德尔福',
               dataIndex: 'defAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '巴诺德',
               dataIndex: 'bndAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
-        { title: '开单销售合计金额', width: 200, dataIndex: 'totalAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
+        { title: '开单销售合计金额', width: 90, dataIndex: 'totalAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 365 - 226
src/views/reportData/salesDetails/list.vue

@@ -1,259 +1,298 @@
 <template>
   <a-card size="small" :bordered="false" class="salesDetailsList-wrap">
-    <!-- 搜索条件 -->
-    <div class="table-page-search-wrapper">
-      <a-form-model
-        ref="ruleForm"
-        class="form-model-con"
-        layout="inline"
-        :model="queryParam"
-        :rules="rules"
-        @keyup.enter.native="$refs.table.refresh(true)">
-        <a-row :gutter="15">
-          <a-col :md="6" :sm="24">
-            <a-form-model-item label="销售日期" prop="time">
-              <rangeDate ref="rangeDate" :value="queryParam.time" @change="dateChange" />
-            </a-form-model-item>
-          </a-col>
-          <a-col :md="6" :sm="24">
-            <a-form-model-item label="销售单号">
-              <a-input id="salesDetailsList-productCode" v-model.trim="queryParam.productCode" allowClear placeholder="请输入销售单号"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :md="6" :sm="24">
-            <a-form-model-item label="产品编码">
-              <a-input id="salesDetailsList-queryWord" v-model.trim="queryParam.queryWord" allowClear placeholder="请输入产品编码"/>
-            </a-form-model-item>
-          </a-col>
-          <template v-if="advanced">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <!-- 搜索条件 -->
+      <div class="table-page-search-wrapper">
+        <a-form-model
+          id="salesSlipReportList-form"
+          ref="ruleForm"
+          class="form-model-con"
+          layout="inline"
+          :model="queryParam"
+          :rules="rules"
+          @keyup.enter.native="handleSearch">
+          <a-row :gutter="15">
             <a-col :md="6" :sm="24">
-              <a-form-model-item label="区域">
-                <a-select id="salesDetailsList-allocateTypeSn" v-model="queryParam.allocateTypeSn" placeholder="请选择区域" allowClear >
-                  <a-select-option v-for="item in allocateTypeList" :key="item.allocateTypeSn" :value="item.allocateTypeSn">{{ item.name }}</a-select-option>
-                </a-select>
+              <a-form-model-item label="销售日期" prop="time">
+                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
               </a-form-model-item>
             </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-model-item label="省份">
-                <a-select id="salesDetailsList-state" v-model="queryParam.state" placeholder="请选择省份" allowClear >
-                  <a-select-option v-for="item in allocateTypeList" :key="item.allocateTypeSn" :value="item.allocateTypeSn">{{ item.name }}</a-select-option>
-                </a-select>
+            <a-col :md="5" :sm="24">
+              <a-form-model-item label="销售单号">
+                <a-input id="salesDetailsList-salesBillNo" v-model.trim="queryParam.salesBillNo" allowClear placeholder="请输入退货单号"/>
               </a-form-model-item>
             </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-model-item label="产品名称">
-                <a-input id="salesDetailsList-name" v-model.trim="queryParam.name" allowClear placeholder="请输入产品名称"/>
+            <a-col :md="5" :sm="24">
+              <a-form-model-item label="产品编码">
+                <a-input id="salesDetailsList-productCode" v-model.trim="queryParam.productCode" allowClear placeholder="请输入产品编码"/>
               </a-form-model-item>
             </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-model-item label="客户名称">
-                <a-input id="salesDetailsList-name" v-model.trim="queryParam.name" allowClear placeholder="请输入客户名称"/>
-              </a-form-model-item>
+            <template v-if="advanced">
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="产品名称">
+                  <a-input id="salesDetailsList-productName" v-model.trim="queryParam.productName" allowClear placeholder="请输入产品名称"/>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="客户名称">
+                  <a-input id="salesDetailsList-dealerName" v-model.trim="queryParam.dealerName" allowClear placeholder="请输入客户名称"/>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="客户级别">
+                  <v-select
+                    v-model="queryParam.dealerLevel"
+                    ref="dealerLevel"
+                    id="salesDetailsList-dealerLevel"
+                    code="DEALER_LEVEL"
+                    placeholder="请选择客户级别"
+                    allowClear></v-select>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="品牌分类">
+                  <v-select code="BRAND_TYPE" id="salesDetailsList-productBrandTypeSn" v-model="queryParam.productBrandTypeSn" allowClear placeholder="请选择品牌分类"></v-select>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="产品品牌">
+                  <ProductBrand id="salesDetailsList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="产品分类">
+                  <a-cascader
+                    @change="changeProductType"
+                    expand-trigger="hover"
+                    change-on-select
+                    :options="productTypeList"
+                    :fieldNames="{ label: 'productTypeName', value: 'productTypeSn', children: 'children' }"
+                    id="salesDetailsList-productType"
+                    placeholder="请选择产品分类"
+                    allowClear
+                    v-model="productType" />
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="所在区域">
+                  <subarea id="salesDetailsList-subareaSn" v-model="queryParam.subareaSn"></subarea>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="12" :sm="24">
+                <a-row>
+                  <a-form-model-item label="地区">
+                    <a-col span="7">
+                      <a-form-model-item prop="dealerProvinceSn" style="margin: 0;">
+                        <a-select v-model="queryParam.dealerProvinceSn" allowClear @change="getCityList" placeholder="请选择省">
+                          <a-select-option v-for="item in addrProvinceList" :value="item.id" :key="item.id + 'a'">{{ item.name }}</a-select-option>
+                        </a-select>
+                      </a-form-model-item>
+                    </a-col>
+                    <a-col span="7" offset="1">
+                      <a-form-model-item prop="dealerCitySn" style="margin: 0;">
+                        <a-select v-model="queryParam.dealerCitySn" allowClear @change="getAreaList" placeholder="请选择市">
+                          <a-select-option v-for="item in addrCityList" :value="item.id" :key="item.id + 'b'">{{ item.name }}</a-select-option>
+                        </a-select>
+                      </a-form-model-item>
+                    </a-col>
+                    <a-col span="7" offset="1">
+                      <a-form-model-item prop="dealerCountySn" style="margin: 0;">
+                        <a-select v-model="queryParam.dealerCountySn" allowClear placeholder="请选择区/县">
+                          <a-select-option v-for="item in addrDistrictList" :value="item.id" :key="item.id + 'c'">{{ item.name }}</a-select-option>
+                        </a-select>
+                      </a-form-model-item>
+                    </a-col>
+                  </a-form-model-item>
+                </a-row>
+              </a-col>
+            </template>
+            <a-col :md="8" :sm="24" style="margin-bottom: 10px;">
+              <a-button
+                type="primary"
+                class="button-info"
+                size="small"
+                @click="handleStock"
+                id="salesDetailsList-stockDate">盘点区间日期</a-button>
+              <a-button style="margin-left: 5px" type="primary" @click="handleSearch" :disabled="disabled" id="salesDetailsList-refresh">查询</a-button>
+              <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="salesDetailsList-reset">重置</a-button>
+              <a-button
+                style="margin-left: 10px"
+                type="primary"
+                class="button-warning"
+                @click="handleExport"
+                :disabled="disabled"
+                :loading="exportLoading"
+                v-if="$hasPermissions('B_salesDetailsExport')"
+                id="salesDetailsList-export">导出</a-button>
+              <a @click="advanced=!advanced" style="margin-left: 5px">
+                {{ advanced ? '收起' : '展开' }}
+                <a-icon :type="advanced ? 'up' : 'down'"/>
+              </a>
             </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-model-item label="产品品牌">
-                <a-select
-                  placeholder="请选择"
-                  id="salesDetailsList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                </a-select>
-              </a-form-model-item>
+          </a-row>
+        </a-form-model>
+      </div>
+      <!-- 列表 -->
+      <s-table
+        class="sTable"
+        ref="table"
+        size="small"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data="loadData"
+        :scroll="{ x: 2480 }"
+        :defaultLoadData="false"
+        bordered>
+        <template slot="footer">
+          <a-row :gutter="15">
+            <a-col :md="4" :sm="24">
+              数量:{{ (totalData && (totalData.qty || totalData.qty==0)) ? totalData.qty : '--' }}
             </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-model-item label="客户级别">
-                <a-select
-                  placeholder="请选择"
-                  id="salesDetailsList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                </a-select>
-              </a-form-model-item>
+            <a-col :md="4" :sm="24">
+              实售价:{{ (totalData && (totalData.totalRealSaleAmount || totalData.totalRealSaleAmount==0)) ? totalData.totalRealSaleAmount : '--' }}
             </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-model-item label="品牌类别">
-                <v-select code="BRAND_TYPE" id="salesDetailsList-brandType" v-model="queryParam.brandType" allowClear placeholder="请选择品牌分类"></v-select>
-              </a-form-model-item>
+            <a-col :md="4" :sm="24">
+              开单价:{{ (totalData && (totalData.totalAmount || totalData.totalAmount==0)) ? totalData.totalAmount : '--' }}
             </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-model-item label="二级分类">
-                <a-select
-                  placeholder="请选择"
-                  id="salesDetailsList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                </a-select>
-              </a-form-model-item>
+            <a-col :md="4" :sm="24">
+              成本:{{ (totalData && (totalData.totalRealCost || totalData.totalRealCost==0)) ? totalData.totalRealCost : '--' }}
             </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-model-item label="三级分类">
-                <a-select
-                  placeholder="请选择"
-                  id="salesDetailsList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                </a-select>
-              </a-form-model-item>
+            <a-col :md="4" :sm="24">
+              折后金额:{{ (totalData && (totalData.discountedAmount || totalData.discountedAmount==0)) ? totalData.discountedAmount : '--' }}
             </a-col>
-            <a-col :md="6" :sm="24">
-              <a-form-model-item label="盘点区间日期">
-                <a-checkbox @change="onChange"></a-checkbox>
-              </a-form-model-item>
+            <a-col :md="4" :sm="24">
+              折扣金额:{{ (totalData && (totalData.discountAmount || totalData.discountAmount==0)) ? totalData.discountAmount : '--' }}
             </a-col>
-          </template>
-          <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
-            <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="salesDetailsList-refresh">查询</a-button>
-            <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="salesDetailsList-reset">重置</a-button>
-            <a @click="advanced=!advanced" style="margin-left: 5px">
-              {{ advanced ? '收起' : '展开' }}
-              <a-icon :type="advanced ? 'up' : 'down'"/>
-            </a>
-          </a-col>
-        </a-row>
-      </a-form-model>
-    </div>
-    <!-- 列表 -->
-    <s-table
-      class="sTable"
-      ref="table"
-      size="small"
-      :rowKey="(record) => record.id"
-      :columns="columns"
-      :data="loadData"
-      :scroll="{ x: 3500 }"
-      :defaultLoadData="false"
-      bordered>
-      <template slot="footer" slot-scope="currentPageData">
-        <a-row :gutter="15">
-          <a-col :md="4" :sm="24">
-            数量:69
-          </a-col>
-          <a-col :md="4" :sm="24">
-            实售价:1130.36
-          </a-col>
-          <a-col :md="4" :sm="24">
-            开单价:1187.11
-          </a-col>
-          <a-col :md="4" :sm="24">
-            成本:1052.30
-          </a-col>
-          <a-col :md="4" :sm="24">
-            折后金额:1187.11
-          </a-col>
-        </a-row>
-      </template>
-    </s-table>
+          </a-row>
+        </template>
+      </s-table>
+    </a-spin>
   </a-card>
 </template>
 
 <script>
 import getDate from '@/libs/getDate.js'
 import { STable, VSelect } from '@/components'
-import reportData from '@/libs/reportData'
-import rangeDate from '@/views/common/rangeDate.vue'
-// import { allocateBillList, allocateBillDel, allocateBillAudit, allocateBillExport } from '@/api/allocateBill'
-// import { allocateTypeAllList } from '@/api/allocateType'
+import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import subarea from '@/views/common/subarea.js'
+import custList from '@/views/common/custList.vue'
+import { getArea } from '@/api/data'
+import { productBrandQuery } from '@/api/productBrand'
+import { productTypeQuery } from '@/api/productType'
+import ProductBrand from '@/views/common/productBrand.js'
+import { hdExportExcel } from '@/libs/exportExcel'
+import { reportSalesBillDetailList, reportSalesBillDetailCount, reportSalesBillDetailExport } from '@/api/reportData'
 export default {
-  components: { STable, VSelect, rangeDate },
+  components: { STable, VSelect, rangeDateTime, custList, subarea, ProductBrand },
   data () {
     return {
+      spinning: false,
       advanced: false, // 高级搜索 展开/关闭
       tableHeight: 0,
       queryParam: { //  查询条件
         time: [
-          getDate.getCurrMonthDays().starttime,
-          getDate.getCurrMonthDays().endtime
+          getDate.getCurrMonthDays().starttime + ' 00:00:00',
+          getDate.getCurrMonthDays().endtime + ' 23:59:59'
         ],
-        beginDate: getDate.getCurrMonthDays().starttime,
-        endDate: getDate.getCurrMonthDays().endtime,
-        targetName: '', //  调往对象
-        allocateTypeSn: undefined, //  调拨类型
-        state: undefined, //  业务状态
-        allocateNo: '' //  调拨单号
+        beginDate: getDate.getCurrMonthDays().starttime + ' 00:00:00',
+        endDate: getDate.getCurrMonthDays().endtime + ' 23:59:59',
+        salesBillNo: '',
+        productCode: '',
+        productName: '',
+        dealerName: '',
+        dealerLevel: undefined,
+        productBrandTypeSn: undefined,
+        productBrandSn: undefined, //  产品品牌
+        productTypeSn1: '', //  产品一级分类
+        productTypeSn2: '', //  产品二级分类
+        productTypeSn3: '', //  产品三级分类
+        subareaSn: undefined,
+        dealerProvinceSn: undefined,
+        dealerCitySn: undefined,
+        dealerCountySn: undefined
+      },
+      productType: [],
+      rules: {
+        'time': [{ required: true, message: '请选择销售日期', trigger: 'change' }]
       },
-	  rules: {
-	    'time': [{ required: true, message: '请选择调拨开单日期', trigger: 'change' }]
-	  },
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false,
-      checkVal: '',
-      reportData: reportData.reportDataList,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'data1', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '销售单号', dataIndex: 'data2', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省份', dataIndex: 'data3', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'data4', width: 220, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '客户级别', dataIndex: 'data5', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '直接绑定客户级别', dataIndex: 'data6', width: 200, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '间接绑定客户级别', dataIndex: 'data7', width: 200, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '开单日期', dataIndex: 'data8', width: 160, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '销售日期', dataIndex: 'data9', width: 160, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '品牌', dataIndex: 'data10', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '二级类别', dataIndex: 'data11', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '产品名称', dataIndex: 'data12', width: 120, align: 'center', ellipsis: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '产品编码', dataIndex: 'data13', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'data14', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '产品批次', dataIndex: 'data15', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '销售数量', dataIndex: 'data16', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '成本价', dataIndex: 'data17', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '实售价', dataIndex: 'data18', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '开单价', dataIndex: 'data19', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '市级价', dataIndex: 'data20', width: 140, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '直接差价', dataIndex: 'data21', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '间接差价', dataIndex: 'data22', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作员', dataIndex: 'data23', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '区域', dataIndex: 'subareaNames', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售单号', dataIndex: 'salesBillNo', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省份', dataIndex: 'dealerProvinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户名称', dataIndex: 'dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '开单日期', dataIndex: 'createDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售日期', dataIndex: 'salesTime', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '品牌', dataIndex: 'productBrandName', width: 130, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '二级分类', dataIndex: 'productTypeName2', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'productCode', width: 150, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'productUnit', width: 50, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售数量', dataIndex: 'qty', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '成本价', dataIndex: 'totalRealCost', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '实售价', dataIndex: 'totalRealSaleAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '开单价', dataIndex: 'totalAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '市级价', dataIndex: 'totalCityAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '直接差价', dataIndex: 'directRebateAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '间接差价', dataIndex: 'indirectRebateAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '折后单价', dataIndex: 'discountedPrice', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '折扣金额', dataIndex: 'discountAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作员', dataIndex: 'operatorName', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        // return allocateBillList(Object.assign(parameter, this.queryParam)).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
-        //   return data
-        // })
-        const _this = this
-        return new Promise(function (resolve, reject) {
-          const data = {
-            pageNo: 1,
-            pageSize: 10,
-            list: reportData.salesDetailsList,
-            count: 10
-          }
+        this.spinning = true
+        const params = Object.assign(parameter, this.queryParam)
+        delete params.time
+        return reportSalesBillDetailList(params).then(res => {
+          this.getCount(params)
+          const data = res.data
+          const no = (data.pageNo - 1) * data.pageSize
           for (var i = 0; i < data.list.length; i++) {
-            data.list[i].no = i + 1
+            data.list[i].no = no + i + 1
           }
-          _this.disabled = false
-          resolve(data)
+          this.disabled = false
+          this.spinning = false
+          return data
         })
       },
-      allocateTypeList: [], //  调拨类型
-      openModal: false //  新增编辑  弹框
+      totalData: null,
+      addrProvinceList: [], //  省下拉
+      addrCityList: [], //  市下拉
+      addrDistrictList: [], //  区下拉
+      productBrandList: [], //  品牌下拉数据
+      productTypeList: [] //  分类下拉数据
     }
   },
   methods: {
-    handleFooterShow (currentPageData) {
-      console.log(currentPageData, '[=currentPageData]')
+    // 盘点库存日期
+    handleStock () {
+      this.$message.info('无盘点区间的起始/终止时间,请自行选择日期区间查询!')
+    },
+    // 总计
+    getCount (params) {
+      reportSalesBillDetailCount(params).then(res => {
+        if (res.status == 200 && res.data) {
+          this.totalData = res.data
+        } else {
+          this.totalData = null
+        }
+      })
+    },
+    handleSearch () {
+      const _this = this
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          _this.$refs.table.refresh(true)
+        } else {
+          return false
+        }
+      })
     },
     //  创建时间  change
     dateChange (date) {
@@ -261,29 +300,129 @@ export default {
       this.queryParam.beginDate = date[0] || ''
       this.queryParam.endDate = date[1] || ''
     },
-    // 选择盘点日期
-    onChange (e) {
-      console.log(e)
-      // this.checkVal
+    custChange (val) {
+      this.queryParam.dealerSn = val.key
     },
-
     //  重置
     resetSearchForm () {
       this.queryParam.time = [
-        getDate.getCurrMonthDays().starttime,
-        getDate.getCurrMonthDays().endtime
+        getDate.getCurrMonthDays().starttime + ' 00:00:00',
+        getDate.getCurrMonthDays().endtime + ' 23:59:59'
       ]
       this.$refs.rangeDate.resetDate(this.queryParam.time)
-      this.queryParam.beginDate = getDate.getCurrMonthDays().starttime
-      this.queryParam.endDate = getDate.getCurrMonthDays().endtime
-      this.queryParam.targetName = ''
-      this.queryParam.allocateTypeSn = undefined
-      this.queryParam.state = undefined
-      this.queryParam.allocateNo = ''
-      this.$refs.table.refresh(true)
+      this.queryParam.beginDate = getDate.getCurrMonthDays().starttime + ' 00:00:00'
+      this.queryParam.endDate = getDate.getCurrMonthDays().endtime + ' 23:59:59'
+      this.queryParam.salesBillNo = ''
+      this.queryParam.productCode = ''
+      this.queryParam.productName = ''
+      this.queryParam.dealerName = ''
+      this.queryParam.dealerLevel = undefined
+      this.queryParam.productBrandTypeSn = undefined
+      this.queryParam.productBrandSn = undefined
+      this.queryParam.productTypeSn1 = ''
+      this.queryParam.productTypeSn2 = ''
+      this.queryParam.productTypeSn3 = ''
+      this.queryParam.subareaSn = undefined
+      this.queryParam.dealerProvinceSn = undefined
+      this.queryParam.dealerCitySn = undefined
+      this.queryParam.dealerCountySn = undefined
+      this.productType = []
+      this.totalData = null
+      this.$refs.ruleForm.resetFields()
+      this.$refs.table.clearTable()
+    },
+    //  导出
+    handleExport () {
+      const _this = this
+      const params = this.queryParam
+      this.exportLoading = true
+      this.spinning = true
+      hdExportExcel(reportSalesBillDetailExport, params, '销售明细(开单统计)报表', function () {
+        _this.exportLoading = false
+        _this.spinning = false
+      })
+    },
+    filterOption (input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      )
+    },
+    //  产品分类  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] : ''
+    },
+    //  产品品牌  列表
+    getProductBrand () {
+      productBrandQuery({}).then(res => {
+        if (res.status == 200) {
+          this.productBrandList = res.data
+        } else {
+          this.productBrandList = []
+        }
+      })
+    },
+    //  产品分类  列表
+    getProductType () {
+      productTypeQuery({}).then(res => {
+        if (res.status == 200) {
+          this.productTypeList = res.data
+        } else {
+          this.productTypeList = []
+        }
+      })
+    },
+    // 获取城市列表
+    getCityList (val) {
+      this.addrCityList = []
+      this.addrDistrictList = []
+      this.queryParam.dealerCitySn = undefined
+      this.queryParam.dealerCountySn = undefined
+      if (val) {
+        this.getArea('city', val)
+      }
+    },
+    // 获取区县列表
+    getAreaList (val) {
+      this.addrDistrictList = []
+      this.queryParam.dealerCountySn = undefined
+      if (val) {
+        this.getArea('district', val)
+      }
+    },
+    //  省/市/区
+    getArea (leve, sn) {
+      let params
+      if (leve == 'province') {
+        params = { type: '2' }
+      } else {
+        params = { parentId: sn, type: leve == 'city' ? '3' : '4' }
+      }
+      getArea(params).then(res => {
+        if (res.status == 200) {
+          if (leve == 'province') {
+            this.addrProvinceList = res.data || []
+          } else if (leve == 'city') {
+            this.addrCityList = res.data || []
+          } else if (leve == 'district') {
+            this.addrDistrictList = res.data || []
+          }
+        } else {
+          if (leve == 'province') {
+            this.addrProvinceList = []
+          } else if (leve == 'city') {
+            this.addrCityList = []
+          } else if (leve == 'district') {
+            this.addrDistrictList = []
+          }
+        }
+      })
     },
     pageInit () {
-
+      this.getProductBrand()
+      this.getProductType()
+      this.getArea('province')
     }
   },
   mounted () {

+ 352 - 0
src/views/reportData/salesOrderTotal/list.vue

@@ -0,0 +1,352 @@
+<template>
+  <a-card size="small" :bordered="false" class="salesOrderTotalList-wrap">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <!-- 搜索条件 -->
+      <div class="table-page-search-wrapper">
+        <a-form-model
+          id="salesOrderTotalList-form"
+          ref="ruleForm"
+          class="form-model-con"
+          layout="inline"
+          :model="queryParam"
+          :rules="rules"
+          @keyup.enter.native="handleSearch">
+          <a-row :gutter="15">
+            <a-col :md="6" :sm="24">
+              <a-form-model-item label="销售日期" prop="time">
+                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+              </a-form-model-item>
+            </a-col>
+            <a-col :md="5" :sm="24">
+              <a-form-model-item label="销售单号">
+                <a-input id="salesOrderTotalList-salesBillNo" v-model.trim="queryParam.salesBillNo" allowClear placeholder="请输入退货单号"/>
+              </a-form-model-item>
+            </a-col>
+            <a-col :md="5" :sm="24">
+              <a-form-model-item label="客户名称">
+                <a-input id="salesOrderTotalList-dealerName" v-model.trim="queryParam.dealerName" allowClear placeholder="请输入客户名称"/>
+              </a-form-model-item>
+            </a-col>
+            <template v-if="advanced">
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="客户级别">
+                  <v-select
+                    v-model="queryParam.dealerLevel"
+                    ref="dealerLevel"
+                    id="salesOrderTotalList-dealerLevel"
+                    code="DEALER_LEVEL"
+                    placeholder="请选择客户级别"
+                    allowClear></v-select>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="操作员">
+                  <a-select
+                    id="salesOrderTotalList-creatorId"
+                    allowClear
+                    v-model="queryParam.creatorId"
+                    placeholder="请选择操作员"
+                    :showSearch="true"
+                    option-filter-prop="children"
+                    :filter-option="filterOption">
+                    <a-select-option v-for="item in operatorList" :key="item.sn" :value="item.sn">{{ item.name }}</a-select-option>
+                  </a-select>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="5" :sm="24">
+                <a-form-model-item label="所在区域">
+                  <subarea id="salesOrderTotalList-subareaSn" v-model="queryParam.subareaSn"></subarea>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="5" :sm="24">
+                <a-form-model-item label="地区">
+                  <a-form-model-item prop="dealerProvinceSn" style="margin: 0;">
+                    <a-select v-model="queryParam.dealerProvinceSn" allowClear placeholder="请选择省">
+                      <a-select-option v-for="item in addrProvinceList" :value="item.id" :key="item.id + 'a'">{{ item.name }}</a-select-option>
+                    </a-select>
+                  </a-form-model-item>
+                </a-form-model-item>
+              </a-col>
+            </template>
+            <a-col :md="8" :sm="24" style="margin-bottom: 10px;">
+              <a-button
+                type="primary"
+                class="button-info"
+                size="small"
+                @click="handleStock"
+                id="salesOrderTotalList-stockDate">盘点区间日期</a-button>
+              <a-button style="margin-left: 5px" type="primary" @click="handleSearch" :disabled="disabled" id="salesOrderTotalList-refresh">查询</a-button>
+              <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="salesOrderTotalList-reset">重置</a-button>
+              <a-button
+                style="margin-left: 10px"
+                type="primary"
+                class="button-warning"
+                @click="handleExport"
+                :disabled="disabled"
+                :loading="exportLoading"
+                v-if="$hasPermissions('B_salesOrderTotalExport')"
+                id="salesOrderTotalList-export">导出</a-button>
+              <a @click="advanced=!advanced" style="margin-left: 5px">
+                {{ advanced ? '收起' : '展开' }}
+                <a-icon :type="advanced ? 'up' : 'down'"/>
+              </a>
+            </a-col>
+          </a-row>
+        </a-form-model>
+      </div>
+      <!-- 列表 -->
+      <s-table
+        class="sTable"
+        ref="table"
+        size="small"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data="loadData"
+        :scroll="{ x: 1990 }"
+        :defaultLoadData="false"
+        bordered>
+        <template slot="footer">
+          <a-row :gutter="15">
+            <a-col :md="4" :sm="24">
+              数量:{{ (totalData && (totalData.totalQty || totalData.totalQty==0)) ? totalData.totalQty : '--' }}
+            </a-col>
+            <a-col :md="4" :sm="24">
+              实售价:{{ (totalData && (totalData.totalRealSaleAmount || totalData.totalRealSaleAmount==0)) ? totalData.totalRealSaleAmount : '--' }}
+            </a-col>
+            <a-col :md="4" :sm="24">
+              开单价:{{ (totalData && (totalData.totalAmount || totalData.totalAmount==0)) ? totalData.totalAmount : '--' }}
+            </a-col>
+            <a-col :md="4" :sm="24">
+              成本:{{ (totalData && (totalData.totalCost || totalData.totalCost==0)) ? totalData.totalCost : '--' }}
+            </a-col>
+            <a-col :md="4" :sm="24">
+              毛利:{{ (totalData && (totalData.grossProfit || totalData.grossProfit==0)) ? totalData.grossProfit : '--' }}
+            </a-col>
+            <a-col :md="4" :sm="24">
+              返利:{{ (totalData && (totalData.rebateAmount || totalData.rebateAmount==0)) ? totalData.rebateAmount : '--' }}
+            </a-col>
+            <a-col :md="4" :sm="24">
+              折扣金额:{{ (totalData && (totalData.totalDiscountAmount || totalData.totalDiscountAmount==0)) ? totalData.totalDiscountAmount : '--' }}
+            </a-col>
+            <a-col :md="4" :sm="24">
+              折后金额:{{ (totalData && (totalData.totalDiscountedAmount || totalData.totalDiscountedAmount==0)) ? totalData.totalDiscountedAmount : '--' }}
+            </a-col>
+          </a-row>
+        </template>
+      </s-table>
+    </a-spin>
+  </a-card>
+</template>
+
+<script>
+import getDate from '@/libs/getDate.js'
+import { STable, VSelect } from '@/components'
+import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import subarea from '@/views/common/subarea.js'
+import custList from '@/views/common/custList.vue'
+import { getArea } from '@/api/data'
+import { hdExportExcel } from '@/libs/exportExcel'
+import { userQueryList } from '@/api/power-user'
+import { reportSalesBillList, reportSalesBillCount, reportSalesBillExport } from '@/api/reportData'
+export default {
+  components: { STable, VSelect, rangeDateTime, custList, subarea },
+  data () {
+    return {
+      spinning: false,
+      advanced: false, // 高级搜索 展开/关闭
+      tableHeight: 0,
+      queryParam: { //  查询条件
+        time: [
+          getDate.getCurrMonthDays().starttime + ' 00:00:00',
+          getDate.getCurrMonthDays().endtime + ' 23:59:59'
+        ],
+        beginDate: getDate.getCurrMonthDays().starttime + ' 00:00:00',
+        endDate: getDate.getCurrMonthDays().endtime + ' 23:59:59',
+        salesBillNo: '',
+        dealerName: '',
+        dealerLevel: undefined,
+        creatorId: undefined,
+        subareaSn: undefined,
+        dealerProvinceSn: undefined
+      },
+      rules: {
+        'time': [{ required: true, message: '请选择销售日期', trigger: 'change' }]
+      },
+      disabled: false, //  查询、重置按钮是否可操作
+      exportLoading: false,
+      columns: [
+        { title: '销售单号', dataIndex: 'salesBillNo', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '开单日期', dataIndex: 'createDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售日期', dataIndex: 'auditDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '总数量', dataIndex: 'totalQty', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '实售价', dataIndex: 'totalRealSaleAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '开单价', dataIndex: 'totalAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '成本价', dataIndex: 'totalCost', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '毛利', dataIndex: 'grossProfit', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '省级价', dataIndex: 'totalProvinceAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '市级价', dataIndex: 'totalCityAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '特约加盟店价', dataIndex: 'totalSpecialAmount', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '直接差价', dataIndex: 'directRebateAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '间接差价', dataIndex: 'indirectRebateAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '返利', dataIndex: 'rebateAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '折扣金额', dataIndex: 'totalDiscountAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '折后金额', dataIndex: 'totalDiscountedAmount', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作员', dataIndex: 'operatorName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        this.spinning = true
+        const params = Object.assign(parameter, this.queryParam)
+        delete params.time
+        return reportSalesBillList(params).then(res => {
+          this.getCount(params)
+          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.spinning = false
+          return data
+        })
+      },
+      totalData: null,
+      operatorList: [], //  操作员下拉数据
+      addrProvinceList: [] //  省下拉
+    }
+  },
+  methods: {
+    // 盘点库存日期
+    handleStock () {
+      this.$message.info('无盘点区间的起始/终止时间,请自行选择日期区间查询!')
+    },
+    // 总计
+    getCount (params) {
+      reportSalesBillCount(params).then(res => {
+        if (res.status == 200 && res.data) {
+          this.totalData = res.data
+        } else {
+          this.totalData = null
+        }
+      })
+    },
+    handleSearch () {
+      const _this = this
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          _this.$refs.table.refresh(true)
+        } else {
+          return false
+        }
+      })
+    },
+    //  创建时间  change
+    dateChange (date) {
+      this.queryParam.time = date
+      this.queryParam.beginDate = date[0] || ''
+      this.queryParam.endDate = date[1] || ''
+    },
+    custChange (val) {
+      this.queryParam.dealerSn = val.key
+    },
+    //  重置
+    resetSearchForm () {
+      this.queryParam.time = [
+        getDate.getCurrMonthDays().starttime + ' 00:00:00',
+        getDate.getCurrMonthDays().endtime + ' 23:59:59'
+      ]
+      this.$refs.rangeDate.resetDate(this.queryParam.time)
+      this.queryParam.beginDate = getDate.getCurrMonthDays().starttime + ' 00:00:00'
+      this.queryParam.endDate = getDate.getCurrMonthDays().endtime + ' 23:59:59'
+      this.queryParam.salesBillNo = ''
+      this.queryParam.dealerName = ''
+      this.queryParam.dealerLevel = undefined
+      this.queryParam.creatorId = undefined
+      this.queryParam.subareaSn = undefined
+      this.queryParam.dealerProvinceSn = undefined
+      this.totalData = null
+      this.$refs.ruleForm.resetFields()
+      this.$refs.table.clearTable()
+    },
+    //  导出
+    handleExport () {
+      const _this = this
+      const params = this.queryParam
+      this.exportLoading = true
+      this.spinning = true
+      hdExportExcel(reportSalesBillExport, params, '销售(开单统计)报表', function () {
+        _this.exportLoading = false
+        _this.spinning = false
+      })
+    },
+    filterOption (input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      )
+    },
+    // 操作员
+    getUserList () {
+      userQueryList({}).then(res => {
+        if (res.status == 200) {
+          this.operatorList = res.data
+        } else {
+          this.operatorList = []
+        }
+      })
+    },
+    //  省/市/区
+    getArea (leve, sn) {
+      let params
+      if (leve == 'province') {
+        params = { type: '2' }
+      } else {
+        params = { parentId: sn, type: leve == 'city' ? '3' : '4' }
+      }
+      getArea(params).then(res => {
+        if (res.status == 200) {
+          if (leve == 'province') {
+            this.addrProvinceList = res.data || []
+          } else if (leve == 'city') {
+            this.addrCityList = res.data || []
+          } else if (leve == 'district') {
+            this.addrDistrictList = res.data || []
+          }
+        } else {
+          if (leve == 'province') {
+            this.addrProvinceList = []
+          } else if (leve == 'city') {
+            this.addrCityList = []
+          } else if (leve == 'district') {
+            this.addrDistrictList = []
+          }
+        }
+      })
+    },
+    pageInit () {
+      this.getUserList()
+      this.getArea('province')
+    }
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+      this.pageInit()
+      this.resetSearchForm()
+    }
+  },
+  activated () {
+    // 如果是新页签打开,则重置当前页面
+    if (this.$store.state.app.isNewTab) {
+      this.pageInit()
+      this.resetSearchForm()
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {})
+  }
+}
+</script>

+ 30 - 39
src/views/reportData/salesReturnDetailReport/list.vue

@@ -56,16 +56,7 @@
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-model-item label="产品品牌">
-                  <a-select
-                    placeholder="请选择"
-                    id="salesReturnDetailList-productBrandSn"
-                    allowClear
-                    v-model="queryParam.productBrandSn"
-                    :showSearch="true"
-                    option-filter-prop="children"
-                    :filter-option="filterOption">
-                    <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+                  <ProductBrand id="salesReturnDetailList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-model-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -149,7 +140,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 4450 }"
+        :scroll="{ x: 2960 }"
         :defaultLoadData="false"
         bordered>
         <template slot="footer">
@@ -198,9 +189,10 @@ import custList from '@/views/common/custList.vue'
 import { getArea } from '@/api/data'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
+import ProductBrand from '@/views/common/productBrand.js'
 import { reportSalesReturnDetailList, reportSalesReturnDetailCount, reportSalesReturnDetailExport } from '@/api/reportData'
 export default {
-  components: { STable, VSelect, rangeDateTime, custList, subarea },
+  components: { STable, VSelect, rangeDateTime, custList, subarea, ProductBrand },
   data () {
     return {
       spinning: false,
@@ -235,35 +227,34 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'subareaNames', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '退货单号', dataIndex: 'salesReturnBillNo', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省份', dataIndex: 'dealerProvinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '区域', dataIndex: 'subareaNames', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '退货单号', dataIndex: 'salesReturnBillNo', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省份', dataIndex: 'dealerProvinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '客户名称', dataIndex: 'dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '退货完成日期', dataIndex: 'salesReturnDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌', dataIndex: 'productBrandName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '二级分类', dataIndex: 'productTypeName2', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 120, align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 120, align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '退货完成日期', dataIndex: 'salesReturnDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '品牌', dataIndex: 'productBrandName', width: 130, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '二级分类', dataIndex: 'productTypeName2', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '产品编码', dataIndex: 'productCode', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单位', dataIndex: 'productUnit', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '退货数量', dataIndex: 'qty', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '返库数量', dataIndex: 'backStockQty', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '坏件数量', dataIndex: 'badQty', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '退货开单价', dataIndex: 'price', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '退货开单金额', dataIndex: 'totalPrice', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '退货实售价', dataIndex: 'realPrice', width: 140, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '退货实售金额', dataIndex: 'totalRealAmount', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '市级价金额', dataIndex: 'totalWholesalePrice2', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '直接差价', dataIndex: 'directRebateAmount', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '间接差价', dataIndex: 'indirectRebateAmount', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '再入库单价', dataIndex: 'cost', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '正常退货数量', dataIndex: 'normalQty', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '正常退货金额', dataIndex: 'totalNormalPrice', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '正常再入库金额', dataIndex: 'totalNormalCost', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '正常退货入库差额', dataIndex: 'totalNormalBalance', width: 150, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '产品编码', dataIndex: 'productCode', width: 150, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'productUnit', width: 50, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '退货数量', dataIndex: 'qty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '返库数量', dataIndex: 'backStockQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '坏件数量', dataIndex: 'badQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货开单价', dataIndex: 'price', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货开单金额', dataIndex: 'totalPrice', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货实售价', dataIndex: 'realPrice', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货实售金额', dataIndex: 'totalRealAmount', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '市级价金额', dataIndex: 'totalWholesalePrice2', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '直接差价', dataIndex: 'directRebateAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '间接差价', dataIndex: 'indirectRebateAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '再入库单价', dataIndex: 'cost', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '正常退货数量', dataIndex: 'normalQty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '正常退货金额', dataIndex: 'totalNormalPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '正常再入库金额', dataIndex: 'totalNormalCost', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '正常退货入库差额', dataIndex: 'totalNormalBalance', width: 110, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 25 - 26
src/views/reportData/salesReturnReport/list.vue

@@ -95,7 +95,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 3120, y: tableHeight }"
+        :scroll="{ x: 2170, y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <template slot="footer">
@@ -175,11 +175,10 @@ export default {
       addrCityList: [], //  市下拉
       addrDistrictList: [], //  区下拉
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 220, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
-        { title: '省份', dataIndex: 'dealer.provinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 120, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
+        { title: '省份', dataIndex: 'dealer.provinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '客户名称', dataIndex: 'dealer.dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌',
           align: 'center',
           children: [
@@ -191,35 +190,35 @@ export default {
                   title: '滤清器',
                   dataIndex: 'jpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'jpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '喇叭',
                   dataIndex: 'jpLbAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'jpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '感应线',
                   dataIndex: 'jpGyxAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -232,21 +231,21 @@ export default {
                   title: '滤清器',
                   dataIndex: 'gpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'gpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'gpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -255,35 +254,35 @@ export default {
               title: '汇箭',
               dataIndex: 'hjAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德路斯',
               dataIndex: 'dlsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '稳升',
               dataIndex: 'wsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: 'TBU',
               dataIndex: 'tbuAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '布瑞斯',
               dataIndex: 'brsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
@@ -294,53 +293,53 @@ export default {
               title: 'NGK',
               dataIndex: 'ngkAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '飞利浦',
               dataIndex: 'flpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '车仆',
               dataIndex: 'cpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '瓦尔塔',
               dataIndex: 'wetAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '雷贝斯托',
               dataIndex: 'lbstAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德尔福',
               dataIndex: 'defAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '巴诺德',
               dataIndex: 'bndAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
-        { title: '实售退货合计金额', width: 200, dataIndex: 'sumAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
+        { title: '实售退货合计金额', width: 90, dataIndex: 'sumAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 20 - 21
src/views/reportData/salesReturnsReport/list.vue

@@ -22,7 +22,7 @@
                 <a-input id="salesReturnsReportList-salesReturnBillNo" v-model.trim="queryParam.salesReturnBillNo" allowClear placeholder="请输入退货单号"/>
               </a-form-model-item>
             </a-col>
-            <a-col :md="5" :sm="24">
+            <a-col :md="4" :sm="24">
               <a-form-model-item label="所在区域">
                 <subarea id="salesReturnsReportList-subareaSn" v-model="queryParam.subareaSn"></subarea>
               </a-form-model-item>
@@ -33,7 +33,7 @@
                   <custList id="salesReturnsReportList-dealerName" ref="custList" :itemSn="queryParam.dealerSn" @change="custChange"></custList>
                 </a-form-model-item>
               </a-col>
-              <a-col :md="6" :sm="24">
+              <a-col :md="5" :sm="24">
                 <a-form-model-item label="客户级别">
                   <v-select
                     v-model="queryParam.dealerLevel"
@@ -72,7 +72,7 @@
                 </a-row>
               </a-col>
             </template>
-            <a-col :md="7" :sm="24" style="margin-bottom: 10px;">
+            <a-col :md="8" :sm="24" style="margin-bottom: 10px;">
               <a-button
                 type="primary"
                 class="button-info"
@@ -106,7 +106,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 2510 }"
+        :scroll="{ x: 1740 }"
         :defaultLoadData="false"
         bordered>
         <template slot="footer">
@@ -173,23 +173,22 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '退货单号', dataIndex: 'salesReturnBillNo', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '退货完成日期', dataIndex: 'salesReturnDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '退货数量', dataIndex: 'totalQty', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '开单退货金额', dataIndex: 'totalAmount', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '经销商价', dataIndex: 'totalWholesalePrice2', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '服务中心价', dataIndex: 'totalWholesalePrice1', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '特约加盟店价', dataIndex: 'totalWholesalePrice3', width: 120, align: 'center', ellipsis: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '实售退货金额', dataIndex: 'totalRealAmount', width: 120, align: 'center', ellipsis: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '直接差价', dataIndex: 'totalDirectRebate', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '间接差价', dataIndex: 'totalIndirectRebate', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '坏件数量', dataIndex: 'totalBadQty', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作员', dataIndex: 'operatorName', width: 150, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
+        { title: '退货单号', dataIndex: 'salesReturnBillNo', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '退货完成日期', dataIndex: 'salesReturnDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'dealerName', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: 120, align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: 120, align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '退货数量', dataIndex: 'totalQty', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '开单退货金额', dataIndex: 'totalAmount', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '经销商价', dataIndex: 'totalWholesalePrice2', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '服务中心价', dataIndex: 'totalWholesalePrice1', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '特约加盟店价', dataIndex: 'totalWholesalePrice3', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '实售退货金额', dataIndex: 'totalRealAmount', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '直接差价', dataIndex: 'totalDirectRebate', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '间接差价', dataIndex: 'totalIndirectRebate', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '坏件数量', dataIndex: 'totalBadQty', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作员', dataIndex: 'operatorName', width: 130, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 27 - 28
src/views/reportData/salesSlipReport/list.vue

@@ -101,7 +101,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 3320 }"
+        :scroll="{ x: 2330 }"
         bordered>
         <template slot="footer">
           <a-row>
@@ -178,12 +178,11 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false,
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 220, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
-        { title: '销售单号', dataIndex: 'salesBillNo', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省份', dataIndex: 'dealer.provinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'dealer.dealerName', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 120, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
+        { title: '销售单号', dataIndex: 'salesBillNo', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省份', dataIndex: 'dealer.provinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户名称', dataIndex: 'dealer.dealerName', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌',
           align: 'center',
           children: [
@@ -195,35 +194,35 @@ export default {
                   title: '滤清器',
                   dataIndex: 'jpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'jpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '喇叭',
                   dataIndex: 'jpLbAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'jpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '感应线',
                   dataIndex: 'jpGyxAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -236,21 +235,21 @@ export default {
                   title: '滤清器',
                   dataIndex: 'gpLqqAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '雨刮片',
                   dataIndex: 'gpYgpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 },
                 {
                   title: '刹车片',
                   dataIndex: 'gpScpAmount',
                   align: 'center',
-                  width: 100,
+                  width: 80,
                   customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
                 }
               ]
@@ -259,35 +258,35 @@ export default {
               title: '汇箭',
               dataIndex: 'hjAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德路斯',
               dataIndex: 'dlsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '稳升',
               dataIndex: 'wsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: 'TBU',
               dataIndex: 'tbuAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '布瑞斯',
               dataIndex: 'brsAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
@@ -298,53 +297,53 @@ export default {
               title: 'NGK',
               dataIndex: 'ngkAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '飞利浦',
               dataIndex: 'flpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '车仆',
               dataIndex: 'cpAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '瓦尔塔',
               dataIndex: 'wetAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '雷贝斯托',
               dataIndex: 'lbstAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '德尔福',
               dataIndex: 'defAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             },
             {
               title: '巴诺德',
               dataIndex: 'bndAmount',
               align: 'center',
-              width: 100,
+              width: 80,
               customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' }
             }
           ] },
-        { title: '开单销售单合计金额', width: 200, dataIndex: 'totalAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
+        { title: '开单销售单合计金额', width: 90, dataIndex: 'totalAmount', align: 'center', customRender: function (text) { return (text || text == 0) ? ('¥' + text) : '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 229 - 0
src/views/reportData/warehousingOrder/list.vue

@@ -0,0 +1,229 @@
+<template>
+  <a-card size="small" :bordered="false" class="warehousingOrderList-wrap">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <!-- 搜索条件 -->
+      <div class="table-page-search-wrapper">
+        <a-form-model
+          id="warehousingOrderList-form"
+          ref="ruleForm"
+          class="form-model-con"
+          layout="inline"
+          :model="queryParam"
+          :rules="rules"
+          @keyup.enter.native="handleSearch">
+          <a-row :gutter="15">
+            <a-col :md="6" :sm="24">
+              <a-form-model-item label="完成日期" prop="time">
+                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+              </a-form-model-item>
+            </a-col>
+            <a-col :md="5" :sm="24">
+              <a-form-model-item label="入库单号">
+                <a-input id="warehousingOrderList-salesBillNo" v-model.trim="queryParam.salesBillNo" allowClear placeholder="请输入退货单号"/>
+              </a-form-model-item>
+            </a-col>
+            <a-col :md="5" :sm="24">
+              <a-form-model-item label="入库类型">
+                <v-select
+                  v-model="queryParam.dealerLevel"
+                  ref="dealerLevel"
+                  id="warehousingOrderList-dealerLevel"
+                  code="PUT_STOCK_TYPE"
+                  placeholder="请选择入库类型"
+                  allowClear></v-select>
+              </a-form-model-item>
+            </a-col>
+            <a-col :md="8" :sm="24" style="margin-bottom: 10px;">
+              <a-button
+                type="primary"
+                class="button-info"
+                size="small"
+                @click="handleStock"
+                id="warehousingOrderList-stockDate">盘点区间日期</a-button>
+              <a-button style="margin-left: 5px" type="primary" @click="handleSearch" :disabled="disabled" id="warehousingOrderList-refresh">查询</a-button>
+              <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="warehousingOrderList-reset">重置</a-button>
+              <a-button
+                style="margin-left: 5px"
+                type="primary"
+                class="button-warning"
+                @click="handleExport"
+                :disabled="disabled"
+                :loading="exportLoading"
+                id="warehousingOrderList-export">导出</a-button>
+<!--              <a-button
+                style="margin-left: 5px"
+                type="primary"
+                class="button-warning"
+                @click="handleExport"
+                :disabled="disabled"
+                :loading="exportLoading"
+                v-if="$hasPermissions('B_salesOrderTotalExport')"
+                id="warehousingOrderList-export">导出</a-button>
+ -->            </a-col>
+          </a-row>
+        </a-form-model>
+      </div>
+      <!-- 列表 -->
+      <s-table
+        class="sTable"
+        ref="table"
+        size="small"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data="loadData"
+        :defaultLoadData="false"
+        bordered>
+        <template slot="footer">
+          <a-row :gutter="15">
+            <a-col :md="4" :sm="24">
+              总数量:{{ (totalData && (totalData.totalPutQty || totalData.totalPutQty==0)) ? totalData.totalPutQty : '--' }}
+            </a-col>
+            <a-col :md="4" :sm="24">
+              总金额:{{ (totalData && (totalData.totalPutAmount || totalData.totalPutAmount==0)) ? totalData.totalPutAmount : '--' }}
+            </a-col>
+          </a-row>
+        </template>
+      </s-table>
+    </a-spin>
+  </a-card>
+</template>
+
+<script>
+import { STable, VSelect } from '@/components'
+import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import { hdExportExcel } from '@/libs/exportExcel'
+import { reportStockPutDetailList, reportStockPutDetailCount, reportStockPutDetailExport } from '@/api/reportData'
+export default {
+  components: { STable, VSelect, rangeDateTime },
+  data () {
+    return {
+      spinning: false,
+      tableHeight: 0,
+      queryParam: { //  查询条件
+        time: [],
+        beginDate: '',
+        endDate: '',
+        salesBillNo: '',
+        dealerName: '',
+        dealerLevel: undefined,
+        creatorId: undefined,
+        subareaSn: undefined,
+        dealerProvinceSn: undefined
+      },
+      rules: {
+        'time': [{ required: true, message: '请选择完成日期', trigger: 'change' }]
+      },
+      disabled: false, //  查询、重置按钮是否可操作
+      exportLoading: false,
+      columns: [
+        { title: '入库单号', dataIndex: 'salesBillNo', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '入库开单日期', dataIndex: 'createDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '供应商名称', dataIndex: 'dealerName', width: '27%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '入库数量', dataIndex: 'totalQty', width: '11%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库金额', dataIndex: 'totalRealSaleAmount', width: '11%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库类型', dataIndex: 'operatorName', width: '11%', align: 'center', customRender: function (text) { return text || '--' } }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        this.spinning = true
+        const params = Object.assign(parameter, this.queryParam)
+        delete params.time
+        return reportStockPutDetailList(params).then(res => {
+          this.getCount(params)
+          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.spinning = false
+          return data
+        })
+      },
+      totalData: null
+    }
+  },
+  methods: {
+    // 盘点库存日期
+    handleStock () {
+      this.$message.info('无盘点区间的起始/终止时间,请自行选择日期区间查询!')
+    },
+    // 总计
+    getCount (params) {
+      reportStockPutDetailCount(params).then(res => {
+        if (res.status == 200 && res.data) {
+          this.totalData = res.data
+        } else {
+          this.totalData = null
+        }
+      })
+    },
+    handleSearch () {
+      const _this = this
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          _this.$refs.table.refresh(true)
+        } else {
+          return false
+        }
+      })
+    },
+    //  创建时间  change
+    dateChange (date) {
+      this.queryParam.time = date
+      this.queryParam.beginDate = date[0] || ''
+      this.queryParam.endDate = date[1] || ''
+    },
+    //  重置
+    resetSearchForm () {
+      this.$refs.rangeDate.resetDate()
+      this.queryParam.time = []
+      this.queryParam.beginDate = ''
+      this.queryParam.endDate = ''
+      this.queryParam.salesBillNo = ''
+      this.queryParam.dealerName = ''
+      this.queryParam.dealerLevel = undefined
+      this.queryParam.creatorId = undefined
+      this.queryParam.subareaSn = undefined
+      this.queryParam.dealerProvinceSn = undefined
+      this.totalData = null
+      this.$refs.ruleForm.resetFields()
+      this.$refs.table.clearTable()
+    },
+    //  导出
+    handleExport () {
+      const _this = this
+      const params = this.queryParam
+      this.exportLoading = true
+      this.spinning = true
+      hdExportExcel(reportStockPutDetailExport, params, '入库单报表', function () {
+        _this.exportLoading = false
+        _this.spinning = false
+      })
+    },
+    filterOption (input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      )
+    },
+    pageInit () {}
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+      this.pageInit()
+      this.resetSearchForm()
+    }
+  },
+  activated () {
+    // 如果是新页签打开,则重置当前页面
+    if (this.$store.state.app.isNewTab) {
+      this.pageInit()
+      this.resetSearchForm()
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {})
+  }
+}
+</script>

+ 246 - 0
src/views/reportData/warehousingOrderDetail/list.vue

@@ -0,0 +1,246 @@
+<template>
+  <a-card size="small" :bordered="false" class="warehousingOrderDetailList-wrap">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <!-- 搜索条件 -->
+      <div class="table-page-search-wrapper">
+        <a-form-model
+          id="warehousingOrderDetailList-form"
+          ref="ruleForm"
+          class="form-model-con"
+          layout="inline"
+          :model="queryParam"
+          :rules="rules"
+          @keyup.enter.native="handleSearch">
+          <a-row :gutter="15">
+            <a-col :md="6" :sm="24">
+              <a-form-model-item label="完成日期" prop="time">
+                <rangeDateTime ref="rangeDate" :value="queryParam.time" @change="dateChange" />
+              </a-form-model-item>
+            </a-col>
+            <a-col :md="5" :sm="24">
+              <a-form-model-item label="入库单号">
+                <a-input id="warehousingOrderDetailList-stockPutNo" v-model.trim="queryParam.stockPutNo" allowClear placeholder="请输入退货单号"/>
+              </a-form-model-item>
+            </a-col>
+            <a-col :md="5" :sm="24">
+              <a-form-model-item label="入库类型">
+                <v-select
+                  v-model="queryParam.putBizType"
+                  ref="putBizType"
+                  id="warehousingOrderDetailList-putBizType"
+                  code="PUT_STOCK_TYPE"
+                  placeholder="请选择入库类型"
+                  allowClear></v-select>
+              </a-form-model-item>
+            </a-col>
+            <template v-if="advanced">
+              <a-col :md="7" :sm="24">
+                <a-form-model-item label="供应商">
+                  <a-input id="warehousingOrderDetailList-supplierName" v-model.trim="queryParam.supplierName" allowClear placeholder="请输入供应商"/>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="5" :sm="24">
+                <a-form-model-item label="产品名称">
+                  <a-input id="warehousingOrderDetailList-productName" v-model.trim="queryParam.productName" allowClear placeholder="请输入产品名称"/>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="5" :sm="24">
+                <a-form-model-item label="产品编码">
+                  <a-input id="warehousingOrderDetailList-productCode" v-model.trim="queryParam.productCode" allowClear placeholder="请输入产品编码"/>
+                </a-form-model-item>
+              </a-col>
+            </template>
+            <a-col :md="8" :sm="24" style="margin-bottom: 10px;">
+              <a-button
+                type="primary"
+                class="button-info"
+                size="small"
+                @click="handleStock"
+                id="warehousingOrderDetailList-stockDate">盘点区间日期</a-button>
+              <a-button style="margin-left: 5px" type="primary" @click="handleSearch" :disabled="disabled" id="warehousingOrderDetailList-refresh">查询</a-button>
+              <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="warehousingOrderDetailList-reset">重置</a-button>
+              <a-button
+                style="margin-left: 5px"
+                type="primary"
+                class="button-warning"
+                @click="handleExport"
+                :disabled="disabled"
+                :loading="exportLoading"
+                v-if="$hasPermissions('B_warehousingOrderDetailExport')"
+                id="warehousingOrderDetailList-export">导出</a-button>
+              <a @click="advanced=!advanced" style="margin-left: 5px">
+                {{ advanced ? '收起' : '展开' }}
+                <a-icon :type="advanced ? 'up' : 'down'"/>
+              </a>
+            </a-col>
+          </a-row>
+        </a-form-model>
+      </div>
+      <!-- 列表 -->
+      <s-table
+        class="sTable"
+        ref="table"
+        size="small"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data="loadData"
+        :defaultLoadData="false"
+        bordered>
+        <template slot="footer">
+          <a-row :gutter="15">
+            <a-col :md="4" :sm="24">
+              总数量:{{ (totalData && (totalData.totalPutQty || totalData.totalPutQty==0)) ? totalData.totalPutQty : '--' }}
+            </a-col>
+            <a-col :md="4" :sm="24">
+              总金额:{{ (totalData && (totalData.totalPutAmount || totalData.totalPutAmount==0)) ? totalData.totalPutAmount : '--' }}
+            </a-col>
+          </a-row>
+        </template>
+      </s-table>
+    </a-spin>
+  </a-card>
+</template>
+
+<script>
+import { STable, VSelect } from '@/components'
+import rangeDateTime from '@/views/common/rangeDateTime.vue'
+import { hdExportExcel } from '@/libs/exportExcel'
+import { reportStockPutDetailList, reportStockPutDetailCount, reportStockPutDetailExport } from '@/api/reportData'
+export default {
+  components: { STable, VSelect, rangeDateTime },
+  data () {
+    return {
+      spinning: false,
+      advanced: false, // 高级搜索 展开/关闭
+      tableHeight: 0,
+      queryParam: { //  查询条件
+        time: [],
+        beginDate: '',
+        endDate: '',
+        stockPutNo: '',
+        putBizType: undefined,
+        supplierName: '',
+        productName: '',
+        productCode: ''
+      },
+      rules: {
+        'time': [{ required: true, message: '请选择完成日期', trigger: 'change' }]
+      },
+      disabled: false, //  查询、重置按钮是否可操作
+      exportLoading: false,
+      columns: [
+        { title: '入库单号', dataIndex: 'stockPutNo', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '入库开单日期', dataIndex: 'openBillTime', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '供应商名称', dataIndex: 'supplierName', width: '15%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品名称', dataIndex: 'productName', width: '15%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'productCode', width: '9%', align: 'left', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'productUnit', width: '4%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '入库数量', dataIndex: 'putQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '进价', dataIndex: 'putCost', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库金额', dataIndex: 'putAmount', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '入库类型', dataIndex: 'putBizTypeDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '完成日期', dataIndex: 'auditTime', width: '11%', align: 'center', customRender: function (text) { return text || '--' } }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        this.spinning = true
+        const params = Object.assign(parameter, this.queryParam)
+        delete params.time
+        return reportStockPutDetailList(params).then(res => {
+          this.getCount(params)
+          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.spinning = false
+          return data
+        })
+      },
+      totalData: null
+    }
+  },
+  methods: {
+    // 盘点库存日期
+    handleStock () {
+      this.$message.info('无盘点区间的起始/终止时间,请自行选择日期区间查询!')
+    },
+    // 总计
+    getCount (params) {
+      reportStockPutDetailCount(params).then(res => {
+        if (res.status == 200 && res.data) {
+          this.totalData = res.data
+        } else {
+          this.totalData = null
+        }
+      })
+    },
+    handleSearch () {
+      const _this = this
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          _this.$refs.table.refresh(true)
+        } else {
+          return false
+        }
+      })
+    },
+    //  创建时间  change
+    dateChange (date) {
+      this.queryParam.time = date
+      this.queryParam.beginDate = date[0] || ''
+      this.queryParam.endDate = date[1] || ''
+    },
+    //  重置
+    resetSearchForm () {
+      this.queryParam.time = []
+      this.$refs.rangeDate.resetDate()
+      this.queryParam.beginDate = ''
+      this.queryParam.endDate = ''
+      this.queryParam.stockPutNo = ''
+      this.queryParam.putBizType = undefined
+      this.queryParam.supplierName = ''
+      this.queryParam.productName = ''
+      this.queryParam.productCode = ''
+      this.totalData = null
+      this.$refs.ruleForm.resetFields()
+      this.$refs.table.clearTable()
+    },
+    //  导出
+    handleExport () {
+      const _this = this
+      const params = this.queryParam
+      this.exportLoading = true
+      this.spinning = true
+      hdExportExcel(reportStockPutDetailExport, params, '入库明细报表', function () {
+        _this.exportLoading = false
+        _this.spinning = false
+      })
+    },
+    filterOption (input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      )
+    },
+    pageInit () {}
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+      this.pageInit()
+      this.resetSearchForm()
+    }
+  },
+  activated () {
+    // 如果是新页签打开,则重置当前页面
+    if (this.$store.state.app.isNewTab) {
+      this.pageInit()
+      this.resetSearchForm()
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {})
+  }
+}
+</script>

+ 8 - 8
src/views/salesManagement/backorder/detailModal.vue

@@ -40,7 +40,7 @@
           :columns="columns"
           :data="loadData"
           :defaultLoadData="false"
-          :scroll="{ x: 1040, y: 500 }"
+          :scroll="{ y: 500 }"
           bordered>
         </s-table>
       </a-card>
@@ -73,13 +73,13 @@ export default {
       detailData: null, //  详情数据
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '产品编码', dataIndex: 'productEntity.code', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'productEntity.origCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '缺货数量', dataIndex: 'qty', width: 110, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '缺货金额', dataIndex: 'totalAmount', width: 110, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productEntity.code', width: '24%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productEntity.name', width: '24%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productEntity.origCode', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '缺货数量', dataIndex: 'qty', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productEntity.unit', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '缺货金额', dataIndex: 'totalAmount', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 9 - 9
src/views/salesManagement/backorder/list.vue

@@ -31,7 +31,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 890, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 操作 -->
@@ -65,14 +65,14 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '销售单号', dataIndex: 'salesBillNo', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'dealerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '缺货款数', dataIndex: 'totalCategory', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '缺货数量', dataIndex: 'totalQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '缺货金额', dataIndex: 'totalAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售单号', dataIndex: 'salesBillNo', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'dealerName', width: '20%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '缺货款数', dataIndex: 'totalCategory', width: '11%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '缺货数量', dataIndex: 'totalQty', width: '11%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '缺货金额', dataIndex: 'totalAmount', width: '11%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '11%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 14 - 14
src/views/salesManagement/examineVerify/list.vue

@@ -97,7 +97,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1570, y:tableHeight }"
+        :scroll="{ y:tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 下推单号 -->
@@ -158,19 +158,19 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单据来源', dataIndex: 'salesBillEntity.salesBillSourceDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '销售单号', dataIndex: 'salesBillNo', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '备货单号', scopedSlots: { customRender: 'dispatchBillNo' }, align: 'center' },
-        { title: '出库单号', dataIndex: 'stockOutNo', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'buyerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '数量', dataIndex: 'totalQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '售价', dataIndex: 'totalAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '备货时间', dataIndex: 'stockUpDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '业务状态', dataIndex: 'billStatusDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '打印次数', dataIndex: 'stockUpPrintTimes', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单据来源', dataIndex: 'salesBillEntity.salesBillSourceDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售单号', dataIndex: 'salesBillNo', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '备货单号', scopedSlots: { customRender: 'dispatchBillNo' }, width: '12%', align: 'center' },
+        { title: '出库单号', dataIndex: 'stockOutNo', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'buyerName', width: '11%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '数量', dataIndex: 'totalQty', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '售价', dataIndex: 'totalAmount', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '备货时间', dataIndex: 'stockUpDate', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '业务状态', dataIndex: 'billStatusDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '打印次数', dataIndex: 'stockUpPrintTimes', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ],
       selectedRowKeys: [], // Check here to configure the default column
       loading: false,

+ 12 - 12
src/views/salesManagement/outboundOrder/list.vue

@@ -90,7 +90,7 @@
         :rowKey="(record) => record.stockOutSn"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1440, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 单号 -->
@@ -158,17 +158,17 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核时间', dataIndex: 'auditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '出库单号', scopedSlots: { customRender: 'stockOutNo' }, width: 180, align: 'center' },
-        { title: '业务单号', dataIndex: 'outBizNo', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '出库类型', dataIndex: 'outBizTypeDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'demanderName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '数量', dataIndex: 'productTotalQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '售价', dataIndex: 'productTotalPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '出库时间', dataIndex: 'outTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '出库状态', dataIndex: 'stateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '创建时间', dataIndex: 'createDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核时间', dataIndex: 'auditTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '出库单号', scopedSlots: { customRender: 'stockOutNo' }, width: '15%', align: 'center' },
+        { title: '业务单号', dataIndex: 'outBizNo', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '出库类型', dataIndex: 'outBizTypeDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'demanderName', width: '12%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '数量', dataIndex: 'productTotalQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '售价', dataIndex: 'productTotalPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '出库时间', dataIndex: 'outTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '出库状态', dataIndex: 'stateDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '7%', align: 'center' }
       ],
       selectedRowKeys: [], // Check here to configure the default column
       selectedRows: [],

+ 14 - 27
src/views/salesManagement/priceInquiry/list.vue

@@ -31,16 +31,7 @@
           <template v-if="advanced">
             <a-col :md="6" :sm="24">
               <a-form-item label="产品品牌">
-                <a-select
-                  placeholder="请选择产品品牌"
-                  id="priceInquiryList-productBrandSn"
-                  allowClear
-                  v-model="queryParam.productBrandSn"
-                  :showSearch="true"
-                  option-filter-prop="children"
-                  :filter-option="filterOption">
-                  <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                </a-select>
+                <ProductBrand id="priceInquiryList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -69,7 +60,7 @@
       :rowKey="(record) => record.id"
       :columns="columns"
       :data="loadData"
-      :scroll="{ x: 1100, y: tableHeight }"
+      :scroll="{ y: tableHeight }"
       :defaultLoadData="false"
       bordered>
       <!-- 产品图片 -->
@@ -93,8 +84,9 @@ import { STable, VSelect } from '@/components'
 import { productBrandQuery } from '@/api/productBrand'
 import { productTypeQuery } from '@/api/productType'
 import { productPriceList } from '@/api/product'
+import ProductBrand from '@/views/common/productBrand.js'
 export default {
-  components: { STable, VSelect },
+  components: { STable, VSelect, ProductBrand },
   data () {
     return {
       advanced: true, // 高级搜索 展开/关闭
@@ -111,16 +103,16 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '产品编码', dataIndex: 'code', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '原厂编码', dataIndex: 'origCode', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品状态', dataIndex: 'stateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省级价', dataIndex: 'provincePrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '市级价', dataIndex: 'cityPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '特约价', dataIndex: 'specialPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '终端价', dataIndex: 'terminalPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '车主价', dataIndex: 'carOwnersPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '产品图片', scopedSlots: { customRender: 'imageUrl' }, width: 80, align: 'center' }
+        { title: '产品编码', dataIndex: 'code', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'name', width: '15%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'origCode', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品状态', dataIndex: 'stateDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省级价', dataIndex: 'provincePrice', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '市级价', dataIndex: 'cityPrice', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '特约价', dataIndex: 'specialPrice', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '终端价', dataIndex: 'terminalPrice', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '车主价', dataIndex: 'carOwnersPrice', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '产品图片', scopedSlots: { customRender: 'imageUrl' }, width: '8%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -165,11 +157,6 @@ export default {
       this.productType = []
       this.$refs.table.refresh(true)
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     //  产品分类  change
     changeProductType (val, opt) {
       this.queryParam.productTypeSn1 = val[0] ? val[0] : ''

+ 17 - 17
src/views/salesManagement/pushOrderManagement/detail.vue

@@ -71,7 +71,7 @@
           :rowKey="(record) => record.id"
           :columns="($route.params.type=='stockOut' || outBizSubSn) ? outColumns : columns"
           :data="loadData"
-          :scroll="{ x: 1030, y: 500 }"
+          :scroll="{ y: 500 }"
           :defaultLoadData="false"
           bordered>
           <!-- 产品编码 -->
@@ -114,23 +114,23 @@ export default {
       spinning: false,
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, scopedSlots: { customRender: 'productCode' }, align: 'center' },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'productOrigCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单位', dataIndex: 'productOrigUnit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '销售价格', dataIndex: 'price', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '销售数量', dataIndex: 'salesQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '本次下推数', dataIndex: 'qty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '本次下推金额', dataIndex: 'totalAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', width: '19%', scopedSlots: { customRender: 'productCode' }, align: 'center' },
+        { title: '产品名称', dataIndex: 'productName', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productOrigCode', width: '19%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'productOrigUnit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售价格', dataIndex: 'price', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '销售数量', dataIndex: 'salesQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '本次下推数', dataIndex: 'qty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '本次下推金额', dataIndex: 'totalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ],
       outColumns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, scopedSlots: { customRender: 'productCode' }, align: 'center' },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'productOrigCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单位', dataIndex: 'productOrigUnit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '本次出库数', dataIndex: 'qty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '序号', dataIndex: 'no', width: '6%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', width: '25%', scopedSlots: { customRender: 'productCode' }, align: 'center' },
+        { title: '产品名称', dataIndex: 'productName', width: '33%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productOrigCode', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'productOrigUnit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '本次出库数', dataIndex: 'qty', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -177,7 +177,7 @@ export default {
       })
     },
     // 导出Excel
-    handleExcelOk(priceType){
+    handleExcelOk (priceType) {
       const _this = this
       const params = {
         dispatchBillSn: this.outBizSubSn || this.$route.params.sn,

+ 11 - 11
src/views/salesManagement/pushOrderManagement/list.vue

@@ -82,7 +82,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1270, y:tableHeight }"
+        :scroll="{ y:tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 销售单号 -->
@@ -134,18 +134,18 @@ export default {
       },
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
         // { title: '区域', dataIndex: 'shippingAddrCountyName', width: 120, align: 'center' },
         // { title: '省份', dataIndex: 'shippingAddrProvinceName', width: 120, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '备货单号', scopedSlots: { customRender: 'dispatchBillNo' }, width: 180, align: 'center' },
-        { title: '关联销售单号', scopedSlots: { customRender: 'salesBillNo' }, width: 180, align: 'center' },
-        { title: '客户名称', dataIndex: 'buyerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '下推数量', dataIndex: 'totalQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '下推金额', dataIndex: 'totalAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '备货时间', dataIndex: 'stockUpDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '出库时间', dataIndex: 'stockOutDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '业务状态', dataIndex: 'billStatusDictValue', width: 80, align: 'center' }
+        { title: '创建时间', dataIndex: 'createDate', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '备货单号', scopedSlots: { customRender: 'dispatchBillNo' }, width: '14%', align: 'center' },
+        { title: '关联销售单号', scopedSlots: { customRender: 'salesBillNo' }, width: '14%', align: 'center' },
+        { title: '客户名称', dataIndex: 'buyerName', width: '14%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '下推数量', dataIndex: 'totalQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '下推金额', dataIndex: 'totalAmount', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '备货时间', dataIndex: 'stockUpDate', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '出库时间', dataIndex: 'stockOutDate', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '业务状态', dataIndex: 'billStatusDictValue', width: '6%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 281 - 138
src/views/salesManagement/salesQuery/detail.vue

@@ -1,115 +1,148 @@
 <template>
   <div class="salesDetail-wrap">
-    <a-page-header :ghost="false" :backIcon="false" class="salesDetail-cont">
-      <template slot="subTitle">
-        <a href="javascript:;" @click="handleBack"><a-icon type="left"></a-icon> 返回列表</a>
-      </template>
-      <template slot="extra">
-        <a-button
-          key="4"
-          type="primary"
-          class="button-error"
-          id="salesDetail-xs-print-btn"
-          v-if="$hasPermissions('B_salesPrint')"
-          :disabled="localDataSource.length==0"
-          @click="handlePrint('SALES_BILL')">销售打印</a-button>
-        <a-button
-          key="3"
-          type="primary"
-          class="button-info"
-          id="salesDetail-xsfl-print-btn"
-          v-if="$hasPermissions('B_salesPrint')"
-          :disabled="localDataSource.length==0"
-          @click="handlePrint('SALES_BILL_TYPE')">销售分类打印</a-button>
-        <a-button
-          key="2"
-          type="primary"
-          class="button-warning"
-          id="salesDetail-export-btn"
-          v-if="$hasPermissions('B_salesExport')"
-          :disabled="localDataSource.length==0"
-          @click="handlePrint('export')">导出Excel</a-button>
-        <a-button
-          key="1"
-          type="primary"
-          class="button-success"
-          id="salesDetail-export-btn"
-          v-if="$hasPermissions('B_salesExport')"
-          :disabled="localDataSource.length==0"
-          @click="handlePrint('typeExport')">分类导出</a-button>
-      </template>
-    </a-page-header>
-    <!-- 基础信息 -->
-    <a-card size="small" :bordered="false" class="salesDetail-cont">
-      <a-collapse :activeKey="['1']">
-        <a-collapse-panel key="1" header="基础信息">
-          <a-descriptions size="small" :column="3">
-            <a-descriptions-item label="客户名称">{{ detailData&&detailData.buyerName || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="收货地址">
-              {{ shippingAddress }}
-            </a-descriptions-item>
-            <a-descriptions-item label="收款方式">{{ detailData&&detailData.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.remarks || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="审核时间">{{ detailData&&detailData.auditDate || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="业务状态">{{ detailData&&detailData.billStatusDictValue || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="财务状态">{{ detailData&&detailData.financialStatusDictValue || '--' }}</a-descriptions-item>
-          </a-descriptions>
-        </a-collapse-panel>
-      </a-collapse>
-    </a-card>
-    <a-card size="small" :bordered="false" class="pages-wrap">
-      <!-- alert -->
-      <a-alert type="info" style="margin-bottom: 10px;">
-        <div slot="message">
-          <div style="display: flex;justify-content: space-between;align-items: center;">
-            <div>
-              总销售数量:<strong>{{ detailData&&(detailData.totalQty || detailData.totalQty==0) ? detailData.totalQty : '--' }}</strong>;
-              已取消数量:<strong>{{ detailData&&(detailData.totalCancelQty || detailData.totalCancelQty==0) ? detailData.totalCancelQty : '--' }}</strong>;
-              已下推数量:<strong>{{ detailData&&(detailData.totalPushedQty || detailData.totalPushedQty==0) ? detailData.totalPushedQty : '--' }}</strong>;
-              待下推数量:<strong>{{ detailData&&(detailData.totalUnpushedQty || detailData.totalUnpushedQty==0) ? detailData.totalUnpushedQty : '--' }}</strong>;
-              已发货数量:<strong>{{ detailData&&(detailData.totalDispatchQty || detailData.totalDispatchQty==0) ? detailData.totalDispatchQty : '--' }}</strong>;
-              待发货数量:<strong>{{ detailData&&(detailData.totalUndispatchQty || detailData.totalUndispatchQty==0) ? detailData.totalUndispatchQty : '--' }}</strong>;<br/>
-              总售价:<strong>{{ detailData&&(detailData.totalAmount || detailData.totalAmount==0) ? detailData.totalAmount : '--' }}</strong>;
-              <span v-if="$hasPermissions('B_isShowCost')">总成本:<strong>{{ detailData&&(detailData.totalCost || detailData.totalCost==0) ? detailData.totalCost : '--' }}</strong>;</span>
-              总毛利:<strong>{{ detailData&&(detailData.grossProfit || detailData.grossProfit==0) ? detailData.grossProfit : '--' }}</strong>;
-              已取消金额:<strong>{{ detailData&&(detailData.totalCancelAmount || detailData.totalCancelAmount==0) ? detailData.totalCancelAmount : '--' }}</strong>;
-              已下推金额:<strong>{{ detailData&&(detailData.totalPushedAmount || detailData.totalPushedAmount==0) ? detailData.totalPushedAmount : '--' }}</strong>;
-              待下推金额:<strong>{{ detailData&&(detailData.totalUnpushedAmount || detailData.totalUnpushedAmount==0) ? detailData.totalUnpushedAmount : '--' }}</strong>;
-              已发货金额:<strong>{{ detailData&&(detailData.totalDispatchAmount || detailData.totalDispatchAmount==0) ? detailData.totalDispatchAmount : '--' }}</strong>;
-              待发货金额:<strong>{{ detailData&&(detailData.totalUndispatchAmount || detailData.totalUndispatchAmount==0) ? detailData.totalUndispatchAmount : '--' }}</strong>;
+    <a-spin :spinning="spinning" tip="Loading...">
+      <a-page-header :ghost="false" :backIcon="false" class="salesDetail-cont">
+        <template slot="subTitle">
+          <a href="javascript:;" @click="handleBack"><a-icon type="left"></a-icon> 返回列表</a>
+        </template>
+        <template slot="extra">
+          <a-button
+            key="4"
+            type="primary"
+            class="button-info"
+            id="salesDetail-xs-print-btn"
+            v-if="$hasPermissions('B_salesPrint')"
+            :disabled="localDataSource.length==0"
+            @click="handlePrint('SALES_BILL')">销售打印</a-button>
+          <a-button
+            key="3"
+            type="primary"
+            class="button-info"
+            id="salesDetail-xsfl-print-btn"
+            v-if="$hasPermissions('B_salesPrint')"
+            :disabled="localDataSource.length==0"
+            @click="handlePrint('SALES_BILL_TYPE')">销售分类打印</a-button>
+          <a-button
+            key="2"
+            type="primary"
+            class="button-info"
+            id="salesDetail-export-btn"
+            v-if="$hasPermissions('B_salesExport')"
+            :disabled="localDataSource.length==0"
+            @click="handlePrint('export')">导出Excel</a-button>
+          <a-button
+            key="1"
+            type="primary"
+            class="button-info"
+            id="salesDetail-export-btn"
+            v-if="$hasPermissions('B_salesExport')"
+            :disabled="localDataSource.length==0"
+            @click="handlePrint('typeExport')">分类导出</a-button>
+        </template>
+      </a-page-header>
+      <!-- 基础信息 -->
+      <a-card size="small" :bordered="false" class="salesDetail-cont">
+        <a-collapse :activeKey="['1']">
+          <a-collapse-panel key="1" header="基础信息">
+            <a-descriptions size="small" :column="3">
+              <a-descriptions-item label="客户名称">{{ detailData&&detailData.buyerName || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="收货地址" :span="2">{{ shippingAddress }}</a-descriptions-item>
+              <a-descriptions-item label="收款方式">{{ detailData&&detailData.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.auditDate || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="业务状态">{{ detailData&&detailData.billStatusDictValue || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="财务状态">{{ detailData&&detailData.financialStatusDictValue || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="备注" :span="3">
+                <!-- 可审核时需显示具体缺货产品的信息 -->
+                <p v-if="detailData&&detailData.billStatus == 'WAIT_AUDIT'&&$hasPermissions('B_salesAudit')">
+                  <span v-if="outStockStr || detailData&&detailData.remarks">{{ outStockStr }}{{ detailData&&detailData.remarks }}</span>
+                  <span v-else>--</span>
+                </p>
+                <p v-else>{{ detailData&&detailData.remarks || '--' }}</p>
+              </a-descriptions-item>
+            </a-descriptions>
+          </a-collapse-panel>
+        </a-collapse>
+      </a-card>
+      <a-card size="small" :bordered="false" class="pages-wrap">
+        <!-- alert -->
+        <a-alert type="info" style="margin-bottom: 10px;">
+          <div slot="message">
+            <div style="display: flex;justify-content: space-between;align-items: center;">
+              <div>
+                总销售数量:<strong>{{ detailData&&(detailData.totalQty || detailData.totalQty==0) ? detailData.totalQty : '--' }}</strong>;
+                已取消数量:<strong>{{ detailData&&(detailData.totalCancelQty || detailData.totalCancelQty==0) ? detailData.totalCancelQty : '--' }}</strong>;
+                已下推数量:<strong>{{ detailData&&(detailData.totalPushedQty || detailData.totalPushedQty==0) ? detailData.totalPushedQty : '--' }}</strong>;
+                待下推数量:<strong>{{ detailData&&(detailData.totalUnpushedQty || detailData.totalUnpushedQty==0) ? detailData.totalUnpushedQty : '--' }}</strong>;
+                已发货数量:<strong>{{ detailData&&(detailData.totalDispatchQty || detailData.totalDispatchQty==0) ? detailData.totalDispatchQty : '--' }}</strong>;
+                待发货数量:<strong>{{ detailData&&(detailData.totalUndispatchQty || detailData.totalUndispatchQty==0) ? detailData.totalUndispatchQty : '--' }}</strong>;<br/>
+                总售价:<strong>{{ detailData&&(detailData.totalAmount || detailData.totalAmount==0) ? detailData.totalAmount : '--' }}</strong>;
+                <span v-if="$hasPermissions('B_isShowCost')">总成本:<strong>{{ detailData&&(detailData.totalCost || detailData.totalCost==0) ? detailData.totalCost : '--' }}</strong>;</span>
+                总毛利:<strong>{{ detailData&&(detailData.grossProfit || detailData.grossProfit==0) ? detailData.grossProfit : '--' }}</strong>;
+                已取消金额:<strong>{{ detailData&&(detailData.totalCancelAmount || detailData.totalCancelAmount==0) ? detailData.totalCancelAmount : '--' }}</strong>;
+                已下推金额:<strong>{{ detailData&&(detailData.totalPushedAmount || detailData.totalPushedAmount==0) ? detailData.totalPushedAmount : '--' }}</strong>;
+                待下推金额:<strong>{{ detailData&&(detailData.totalUnpushedAmount || detailData.totalUnpushedAmount==0) ? detailData.totalUnpushedAmount : '--' }}</strong>;
+                已发货金额:<strong>{{ detailData&&(detailData.totalDispatchAmount || detailData.totalDispatchAmount==0) ? detailData.totalDispatchAmount : '--' }}</strong>;
+                待发货金额:<strong>{{ detailData&&(detailData.totalUndispatchAmount || detailData.totalUndispatchAmount==0) ? detailData.totalUndispatchAmount : '--' }}</strong>;
+              </div>
+              <a-checkbox v-model="isCityPrice"><span style="display: inline-block;margin-top: 1px;">市级价</span></a-checkbox>
             </div>
-            <a-checkbox v-model="isCityPrice"><span style="display: inline-block;margin-top: 1px;">市级价</span></a-checkbox>
           </div>
-        </div>
-      </a-alert>
-      <!-- 列表 -->
-      <s-table
-        class="sTable"
-        ref="table"
-        size="small"
-        :rowKey="(record) => record.id"
-        :columns="columns"
-        :data="loadData"
-        :scroll="{ x: 1290 }"
-        :defaultLoadData="false"
-        bordered>
-        <!-- 产品编码 -->
-        <template slot="productCode" slot-scope="text, record">
-          <a-badge count="促" v-if="record.promotionFlag == 1">
-            <div style="padding-right: 15px;">{{ text }}</div>
-          </a-badge>
-          <span v-else>{{ text }}</span>
-        </template>
-      </s-table>
-    </a-card>
-    <a-card size="small" :bordered="false" class="footer-cont">
+        </a-alert>
+        <!-- 列表 -->
+        <s-table
+          class="sTable"
+          ref="table"
+          size="small"
+          :rowKey="(record) => record.id"
+          :columns="columns"
+          :data="loadData"
+          :defaultLoadData="false"
+          :showPagination="false"
+          bordered>
+          <!-- 产品编码 -->
+          <template slot="productCode" slot-scope="text, record">
+            <div v-if="(record.promotionFlag == 1) || (Number(record.stockQty) < Number(record.unpushedQty)) && (detailData&&detailData.billStatus == 'WAIT_AUDIT'&&$hasPermissions('B_salesAudit'))" class="flexBox">
+              <div>{{ text }}</div>
+              <a-badge count="促" :number-style="{ backgroundColor: '#f90' }" v-if="record.promotionFlag == 1">
+              </a-badge>
+              <!-- 可审核时才可显示“缺”货产品 -->
+              <a-badge count="缺" v-if="(Number(record.stockQty) < Number(record.unpushedQty)) && (detailData&&detailData.billStatus == 'WAIT_AUDIT'&&$hasPermissions('B_salesAudit'))">
+              </a-badge>
+            </div>
+            <span v-if="!(record.promotionFlag == 1 || ((Number(record.stockQty) < Number(record.unpushedQty)) && (detailData&&detailData.billStatus == 'WAIT_AUDIT'&&$hasPermissions('B_salesAudit'))))">{{ text }}</span>
+          </template>
+          <!-- 当前库存 -->
+          <template slot="stockQty" slot-scope="text, record">
+            <div v-if="record.stockQty || record.stockQty==0">
+              <p style="margin: 0;" v-if="Number(record.stockQty) < Number(record.unpushedQty)">{{ record.stockQty }}(<span class="redStyle">缺{{ Number(record.unpushedQty) - Number(record.stockQty) }}</span>)</p>
+              <p style="margin: 0;" v-else>{{ record.stockQty }}</p>
+            </div>
+            <span v-else>--</span>
+          </template>
+        </s-table>
+      </a-card>
+    </a-spin>
+    <div class="affix-cont">
       <a-button
+        size="large"
+        style="width: 100px;"
+        :disabled="spinning"
         type="primary"
         class="button-info"
+        id="salesDetail-audit-btn"
+        v-if="detailData&&detailData.billStatus == 'WAIT_AUDIT'&&$hasPermissions('B_salesAudit')"
+        @click="handleAudit()"
+      >
+        审核
+      </a-button>
+      <a-button
+        type="primary"
+        :disabled="spinning"
+        class="button-info"
         size="large"
-        style="width: 150px;"
+        style="width: 100px;"
         id="salesDetail-edit-btn"
         v-if="detailData&&detailData.salesBillSource != 'PURCHASE' && (detailData.billStatus == 'WAIT_SUBMIT' || detailData.billStatus == 'WAIT_AUDIT' || detailData.billStatus == 'AUDIT_REJECT')&&$hasPermissions('B_salesEdit')"
         @click="handleEdit()"
@@ -118,7 +151,8 @@
       </a-button>
       <a-button
         size="large"
-        style="width: 150px;"
+        style="width: 100px;"
+        :disabled="spinning"
         type="primary"
         class="button-info"
         id="salesDetail-edit-btn"
@@ -127,9 +161,29 @@
       >
         改单
       </a-button>
-    </a-card>
+      <a-button
+        size="large"
+        style="width: 150px;font-size: 12px;margin-left: 50px;"
+        :disabled="spinning"
+        type="primary"
+        class="button-info"
+        id="salesDetail-batchAudit-btn"
+        v-if="detailData&&detailData.billStatus == 'WAIT_AUDIT'&&$hasPermissions('B_salesAudit')"
+        @click="handleAudit('batch')"
+      >
+        一键审核
+      </a-button>
+    </div>
     <!-- 打印导出 -->
     <print-modal :openModal="openModal" :itemData="detailData" :nowType="nowType" @ok="handleOk" @close="openModal=false" />
+    <!-- 审核 -->
+    <auditModal
+      :openModal="visibleAudit"
+      :content="auditText"
+      :spinning="spinningAudit"
+      @close="visibleAudit=false"
+      @ok="auditOrder('AUDIT_PASS')"
+      @fail="auditOrder('AUDIT_REJECT')" />
     <!-- 打印 -->
     <div id="print"></div>
   </div>
@@ -139,32 +193,51 @@
 import moment from 'moment'
 import { STable, VSelect } from '@/components'
 import printModal from './printModal.vue'
-import { salesDetailBySn, salesDetailPrint, salesDetailExcel, salesDetailTypeExcel } from '@/api/sales'
-import { salesDetailList } from '@/api/salesDetail'
+import auditModal from '@/views/common/auditModal.vue'
+import { findBySalesBillSn } from '@/api/dispatch'
+import { salesDetailBySn, salesDetailPrint, salesDetailExcel, salesDetailTypeExcel, salesWriteAudit, salesWriteAuditPush } from '@/api/sales'
+import { salesDetailAllList, salesDetailAllStockList } from '@/api/salesDetail'
 export default {
   name: 'SalesDetail',
-  components: { STable, VSelect, printModal },
+  components: { STable, VSelect, printModal, auditModal },
   data () {
     return {
+      spinning: false,
       disabled: false,
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        return salesDetailList(Object.assign(parameter, { salesBillSn: this.$route.params.sn })).then(res => {
+        const params = Object.assign(parameter, { salesBillSn: this.$route.params.sn })
+        let url = salesDetailAllList
+        if (this.detailData && this.detailData.billStatus == 'WAIT_AUDIT' && this.$hasPermissions('B_salesAudit')) { //  审核,需用到库存
+          url = salesDetailAllStockList
+        } else { // 非审核
+          url = salesDetailAllList
+        }
+        return url(params).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
-            const productCode = (data.list[i].productEntity && data.list[i].productEntity.code) || (data.list[i].dealerProductEntity && data.list[i].dealerProductEntity.code)
-            const productName = (data.list[i].productEntity && data.list[i].productEntity.name) || (data.list[i].dealerProductEntity && data.list[i].dealerProductEntity.name)
-            const productOrigCode = (data.list[i].productEntity && data.list[i].productEntity.origCode) || (data.list[i].dealerProductEntity && data.list[i].dealerProductEntity.origCode)
-            const productOrigUnit = (data.list[i].productEntity && data.list[i].productEntity.unit) || (data.list[i].dealerProductEntity && data.list[i].dealerProductEntity.unit)
-            data.list[i].productCode = productCode || '--'
-            data.list[i].productName = productName || '--'
-            data.list[i].productOrigCode = productOrigCode == ' ' ? '--' : productOrigCode
-            data.list[i].productOrigUnit = productOrigUnit || '--'
+          const no = 0
+          this.outStockStr = ''
+          let str = ''
+          for (var i = 0; i < data.length; i++) {
+            data[i].no = no + i + 1
+            const productCode = (data[i].productEntity && data[i].productEntity.code) || (data[i].dealerProductEntity && data[i].dealerProductEntity.code)
+            const productName = (data[i].productEntity && data[i].productEntity.name) || (data[i].dealerProductEntity && data[i].dealerProductEntity.name)
+            const productOrigCode = (data[i].productEntity && data[i].productEntity.origCode) || (data[i].dealerProductEntity && data[i].dealerProductEntity.origCode)
+            const productOrigUnit = (data[i].productEntity && data[i].productEntity.unit) || (data[i].dealerProductEntity && data[i].dealerProductEntity.unit)
+            data[i].productCode = productCode || '--'
+            data[i].productName = productName || '--'
+            data[i].productOrigCode = productOrigCode == ' ' ? '--' : productOrigCode
+            data[i].productOrigUnit = productOrigUnit || '--'
+            if (data[i].unpushedQty && (Number(data[i].stockQty) < Number(data[i].unpushedQty))) {
+              str += data[i].productCode + '、'
+            }
+          }
+          if (str.length > 0) {
+            str = str.substr(0, str.length - 1)
+            this.outStockStr = '产品编号为:' + str + '的产品库存不足;'
           }
-          this.localDataSource = data.list
+          this.localDataSource = data
           this.disabled = false
           return data
         })
@@ -173,7 +246,12 @@ export default {
       openModal: false,
       detailData: null, //  详情数据
       nowType: null,
-      isCityPrice: false //  是否显示市级价
+      isCityPrice: false, //  是否显示市级价
+      visibleAudit: false,
+      auditInfo: null,
+      spinningAudit: false,
+      outStockStr: '', // 缺货产品信息说明
+      auditText: null
     }
   },
   computed: {
@@ -190,24 +268,27 @@ export default {
     },
     columns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: 50, align: 'center', fixed: 'left' },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, scopedSlots: { customRender: 'productCode' }, align: 'center' },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'productOrigCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '省级价', dataIndex: 'productEntity.provincePrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '销售价', dataIndex: 'price', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'productOrigUnit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '销售数量', dataIndex: 'qty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '已取消数', dataIndex: 'cancelQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '已下推数', dataIndex: 'pushedQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '待下推数', dataIndex: 'unpushedQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', width: '13%', scopedSlots: { customRender: 'productCode' }, align: 'left' },
+        { title: '产品名称', dataIndex: 'productName', width: '13%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productOrigCode', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省级价', dataIndex: 'provincePrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '销售价', dataIndex: 'price', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productOrigUnit', width: '4%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售数量', dataIndex: 'qty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '待下推数', dataIndex: 'unpushedQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '已下推数', dataIndex: 'pushedQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '已取消数', dataIndex: 'cancelQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ]
       if (this.$hasPermissions('B_isShowCost')) {
-        arr.splice(4, 0, { title: '成本价', dataIndex: 'showCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(4, 0, { title: '成本价', dataIndex: 'showCost', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }
       if (this.isCityPrice) {
         const ind = this.$hasPermissions('B_isShowCost') ? 6 : 5
-        arr.splice(ind, 0, { title: '市级价', dataIndex: 'productEntity.cityPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(ind, 0, { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+      }
+      if (this.detailData && this.detailData.billStatus == 'WAIT_AUDIT' && this.$hasPermissions('B_salesAudit')) { //  审核,需用到库存
+        arr.splice(arr.length - 3, 0, { title: '库存', dataIndex: 'stockQty', scopedSlots: { customRender: 'stockQty' }, width: '6%', align: 'center' })
       }
       return arr
     }
@@ -228,11 +309,58 @@ export default {
       salesDetailBySn({ salesBillSn: this.$route.params.sn }).then(res => {
         if (res.status == 200) {
           this.detailData = res.data || null
+          this.$refs.table.refresh(true)
         } else {
           this.detailData = null
         }
       })
     },
+    // 审核/批量审核
+    handleAudit (isBatch) {
+      if (isBatch) {
+        this.auditText = this.outStockStr + '是否审核通过?'
+      } else {
+        this.auditText = null
+      }
+      this.visibleAudit = true
+    },
+    // 审核
+    auditOrder (billStatus) {
+      this.spinningAudit = true
+      let url = salesWriteAudit
+      if (this.auditText) { //  批量
+        url = salesWriteAuditPush
+      }
+      url({
+        salesBillSn: this.$route.params.sn,
+        billStatus: billStatus
+      }).then(res => {
+        if (res.status == 200) {
+          this.visibleAudit = false
+          this.$message.success(res.message)
+          this.spinningAudit = false
+          if (billStatus == 'AUDIT_PASS' && !this.auditText) {
+            this.handleDispatch({ salesBillSn: this.$route.params.sn })
+          } else {
+            //  关闭详情跳列表
+            this.handleBack()
+          }
+        } else {
+          this.visibleAudit = false
+          this.spinningAudit = false
+        }
+      })
+    },
+    // 下推
+    handleDispatch (row) {
+      this.spinning = true
+      findBySalesBillSn({ salesBillSn: row.salesBillSn }).then(res => {
+        this.spinning = false
+        if (res.status == 200) {
+          this.$router.push({ name: 'waitDispatch', params: { salesBillSn: row.salesBillSn, dispatchBillSn: res.data.dispatchBillSn } })
+        }
+      })
+    },
     // 打印导出
     handlePrint (type) {
       if (type == 'typeExport') {
@@ -316,14 +444,12 @@ export default {
   },
   mounted () {
     if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
-      this.$refs.table.refresh(true)
       this.getDetail()
     }
   },
   activated () {
     // 如果是新页签打开或者进入新的子页(例:存在列表第2条数据编辑页页签时再打开第4条数据的编辑页),则重置当前页面
     if (this.$store.state.app.isNewTab || !this.$store.state.app.isNewSubTab) {
-      this.$refs.table.refresh(true)
       this.getDetail()
     }
   },
@@ -335,12 +461,29 @@ export default {
 
 <style lang="less">
   .salesDetail-wrap{
+    position: relative;
+    height: 100%;
+    padding-bottom: 51px;
+    box-sizing: border-box;
+    >.ant-spin-nested-loading{
+      overflow-y: scroll;
+      height: 100%;
+    }
     .salesDetail-cont{
       margin-bottom: 10px;
     }
+    .flexBox{
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+    }
     .footer-cont{
       margin-top: 5px;
       text-align: center;
     }
+    .redStyle{
+      font-weight: bold;
+      color: red;
+    }
   }
 </style>

+ 55 - 14
src/views/salesManagement/salesQuery/edit.vue

@@ -55,10 +55,24 @@
           :defaultLoadData="false"
           :scroll="{ y: 300 }"
           bordered>
+          <!-- 产品编码 -->
+          <template slot="productCode" slot-scope="text, record">
+            <a-badge count="缺" v-if="Number(record.stockQty) < Number(record.unpushedQty)">
+              <div style="padding-right: 15px;">{{ text }}</div>
+            </a-badge>
+            <span v-if="!(Number(record.stockQty) < Number(record.unpushedQty))">{{ text }}</span>
+          </template>
           <!-- 产品名称 -->
           <template slot="productName" slot-scope="text, record">
-            <span>{{ text }}</span>
-            <a-badge :number-style="{ backgroundColor: '#52c41a' }" count="活动" v-if="record.promotableFlag == 1"></a-badge>
+            <div class="ellipsisCon">
+              <a-tooltip placement="rightBottom">
+                <template slot="title">
+                  <span>{{ text }}</span>
+                </template>
+                <span class="ellipsisText">{{ text }}</span>
+              </a-tooltip>
+              <a-badge :number-style="{ backgroundColor: '#52c41a' }" count="活动" v-if="record.promotableFlag == 1"></a-badge>
+            </div>
           </template>
           <!-- 销售数量 -->
           <template slot="salesNums" slot-scope="text, record">
@@ -73,18 +87,26 @@
               @blur="e => onCellBlur(e.target.value, record)"
               style="width: 100%;" />
           </template>
+          <!-- 当前库存 -->
+          <template slot="stockQty" slot-scope="text, record">
+            <div v-if="record.stockQty || record.stockQty==0">
+              <p style="margin: 0;" v-if="Number(record.stockQty) < Number(record.unpushedQty)">{{ record.stockQty }}(<span class="redStyle">缺{{ Number(record.unpushedQty) - Number(record.stockQty) }}</span>)</p>
+              <p style="margin: 0;" v-else>{{ record.stockQty }}</p>
+            </div>
+            <span v-else>--</span>
+          </template>
           <!-- 操作 -->
           <template slot="action" slot-scope="text, record">
             <a-button
               size="small"
-              type="primary"
+              type="link"
               :loading="delLoading"
               class="button-error"
               @click="handleDel(record)"
             >删除</a-button>
             <a-button
               size="small"
-              type="primary"
+              type="link"
               :loading="delLoading"
               class="button-warning"
               @click="handleSelCx(record)"
@@ -141,7 +163,7 @@ import queryPart from './queryPart.vue'
 import queryPromotable from './queryPromotable.vue'
 import ChooseActive from './chooseActive.vue'
 import { salesDetailBySn, salesWriteSubmit, getPromoacActiveList } from '@/api/sales'
-import { salesDetailList, salesDetailInsert, salesDetailUpdateQty, salesDetailDel, salesDetailDelAll, addPromoGoods } from '@/api/salesDetail'
+import { salesDetailStockList, salesDetailInsert, salesDetailUpdateQty, salesDetailDel, salesDetailDelAll, addPromoGoods } from '@/api/salesDetail'
 export default {
   name: 'SalesDetail',
   components: { STable, VSelect, queryPart, queryPromotable, ChooseActive },
@@ -163,20 +185,21 @@ export default {
       nowData: null,
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 50, align: 'center' },
-        { title: '产品编码', dataIndex: 'productEntity.code', width: 120, align: 'center', customRender: function (text) { return text || '--' }, sorter: true },
-        { title: '产品名称', dataIndex: 'productEntity.name', scopedSlots: { customRender: 'productName' }, align: 'center' },
-        { title: '售价', dataIndex: 'price', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '销售数量', scopedSlots: { customRender: 'salesNums' }, width: 100, align: 'center' },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '售价小计', dataIndex: 'totalAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 170, align: 'center' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productEntity.code', scopedSlots: { customRender: 'productCode' }, width: '20%', align: 'center', sorter: true },
+        { title: '产品名称', dataIndex: 'productEntity.name', scopedSlots: { customRender: 'productName' }, width: '25%', align: 'left' },
+        { title: '售价', dataIndex: 'price', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '销售数量', scopedSlots: { customRender: 'salesNums' }, width: '8%', align: 'center' },
+        { title: '库存', dataIndex: 'stockQty', scopedSlots: { customRender: 'stockQty' }, width: '8%', align: 'center' },
+        { title: '单位', dataIndex: 'productEntity.unit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '售价小计', dataIndex: 'totalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '13%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
         this.productForm.salesBillSn = this.$route.params.sn
-        return salesDetailList(Object.assign(parameter, this.productForm)).then(res => {
+        return salesDetailStockList(Object.assign(parameter, this.productForm)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
           for (var i = 0; i < data.list.length; i++) {
@@ -430,6 +453,24 @@ export default {
         color: #FF9900;
       }
     }
+    .redStyle{
+      font-weight: bold;
+      color: red;
+    }
+    .ellipsisCon{
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      .ellipsisText{
+        width: 100%;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        display: box;
+        display: -webkit-box;
+        -webkit-line-clamp: 1;
+        -webkit-box-orient: vertical;
+      }
+    }
     .total-bar{
       display: flex;
       align-items: center;

+ 53 - 73
src/views/salesManagement/salesQuery/list.vue

@@ -105,21 +105,26 @@
       <!-- alert -->
       <a-alert type="info" style="margin-bottom:10px">
         <div slot="message">
-          <div>
-            总单数:<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.totalDispatchQty || totalData.totalDispatchQty==0) ? totalData.totalDispatchQty : '--' }}</strong>;
-            已取消数量:<strong>{{ totalData&&(totalData.totalCancelQty || totalData.totalCancelQty==0) ? totalData.totalCancelQty : '--' }}</strong>;
-            待下推数量:<strong>{{ totalData&&(totalData.totalUnpushedQty || totalData.totalUnpushedQty==0) ? totalData.totalUnpushedQty : '--' }}</strong>;
-          </div>
-          <div>
-            总售价:<strong>{{ totalData&&(totalData.totalAmount || totalData.totalAmount==0) ? totalData.totalAmount : '--' }}</strong>元;
-            已下推金额::<strong>{{ totalData&&(totalData.totalPushedAmount || totalData.totalPushedAmount==0) ? totalData.totalPushedAmount : '--' }}</strong>元;
-            已取消金额::<strong>{{ totalData&&(totalData.totalCancelAmount || totalData.totalCancelAmount==0) ? totalData.totalCancelAmount : '--' }}</strong>元;
-            待下推金额::<strong>{{ totalData&&(totalData.totalUnpushedAmount || totalData.totalUnpushedAmount==0) ? totalData.totalUnpushedAmount : '--' }}</strong>元;
-            已发货金额::<strong>{{ totalData&&(totalData.totalDispatchAmount || totalData.totalDispatchAmount==0) ? totalData.totalDispatchAmount : '--' }}</strong>元;
+          <div style="display: flex;justify-content: space-between;align-items: center;">
+            <div>
+              <div>
+                总单数:<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.totalDispatchQty || totalData.totalDispatchQty==0) ? totalData.totalDispatchQty : '--' }}</strong>;
+                已取消数量:<strong>{{ totalData&&(totalData.totalCancelQty || totalData.totalCancelQty==0) ? totalData.totalCancelQty : '--' }}</strong>;
+                待下推数量:<strong>{{ totalData&&(totalData.totalUnpushedQty || totalData.totalUnpushedQty==0) ? totalData.totalUnpushedQty : '--' }}</strong>;
+              </div>
+              <div>
+                总售价:<strong>{{ totalData&&(totalData.totalAmount || totalData.totalAmount==0) ? totalData.totalAmount : '--' }}</strong>元;
+                已下推金额::<strong>{{ totalData&&(totalData.totalPushedAmount || totalData.totalPushedAmount==0) ? totalData.totalPushedAmount : '--' }}</strong>元;
+                已取消金额::<strong>{{ totalData&&(totalData.totalCancelAmount || totalData.totalCancelAmount==0) ? totalData.totalCancelAmount : '--' }}</strong>元;
+                待下推金额::<strong>{{ totalData&&(totalData.totalUnpushedAmount || totalData.totalUnpushedAmount==0) ? totalData.totalUnpushedAmount : '--' }}</strong>元;
+                已发货金额::<strong>{{ totalData&&(totalData.totalDispatchAmount || totalData.totalDispatchAmount==0) ? totalData.totalDispatchAmount : '--' }}</strong>元;
+              </div>
+            </div>
+            <a-checkbox v-model="showCancelNum"><span style="display: inline-block;margin-top: 1px;">显示取消数量</span></a-checkbox>
           </div>
         </div>
       </a-alert>
@@ -132,7 +137,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1620, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 销售单号 -->
@@ -156,13 +161,13 @@
             type="link"
             class="button-warning"
             v-if="record.billStatus == 'WAIT_AUDIT'&&$hasPermissions('B_salesAudit')"
-            @click="handleEexamine(record)"
+            @click="handleDetail(record)"
           >审核</a-button>
           <a-button
             size="small"
             type="link"
             class="button-warning"
-            v-if="record.billStatus == 'OUTING_WAREHOUSE'&&record.totalUnpushedQty>0&&$hasPermissions('B_salesDispatch')"
+            v-if="record.billStatus == 'WAIT_PUSH'&&$hasPermissions('B_salesDispatch')"
             @click="handleDispatch(record)"
           >下推</a-button>
           <a-button
@@ -201,14 +206,12 @@
           >
             取消
           </a-button>
-          <span v-if="!(record.billStatus == 'WAIT_AUDIT'&&$hasPermissions('B_salesAudit')) && !(record.billStatus == 'OUTING_WAREHOUSE'&&record.totalUnpushedQty>0&&$hasPermissions('B_salesDispatch')) && !(record.salesBillSource != 'PURCHASE' && (record.billStatus == 'WAIT_SUBMIT' || record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'AUDIT_REJECT')&&$hasPermissions('B_salesEdit')) && !(record.salesBillSource == 'PURCHASE' && (record.billStatus == 'WAIT_AUDIT'||record.billStatus == 'HQ_CHANGE')&&$hasPermissions('B_salesEdit')) && !(record.salesBillSource != 'PURCHASE' && (record.billStatus == 'WAIT_SUBMIT' || record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'AUDIT_REJECT')&&$hasPermissions('B_salesDel')) && !(record.salesBillSource == 'PURCHASE' && (record.billStatus == 'WAIT_AUDIT'||record.billStatus == 'HQ_CHANGE')&&$hasPermissions('B_salesDel'))">--</span>
+          <span v-if="!(record.billStatus == 'WAIT_AUDIT'&&$hasPermissions('B_salesAudit')) && !(record.billStatus == 'WAIT_PUSH'&&$hasPermissions('B_salesDispatch')) && !(record.salesBillSource != 'PURCHASE' && (record.billStatus == 'WAIT_SUBMIT' || record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'AUDIT_REJECT')&&$hasPermissions('B_salesEdit')) && !(record.salesBillSource == 'PURCHASE' && (record.billStatus == 'WAIT_AUDIT'||record.billStatus == 'HQ_CHANGE')&&$hasPermissions('B_salesEdit')) && !(record.salesBillSource != 'PURCHASE' && (record.billStatus == 'WAIT_SUBMIT' || record.billStatus == 'WAIT_AUDIT' || record.billStatus == 'AUDIT_REJECT')&&$hasPermissions('B_salesDel')) && !(record.salesBillSource == 'PURCHASE' && (record.billStatus == 'WAIT_AUDIT'||record.billStatus == 'HQ_CHANGE')&&$hasPermissions('B_salesDel'))">--</span>
         </template>
       </s-table>
     </a-spin>
     <!-- 选择客户弹框 -->
     <choose-custom-modal :show="openModal" @ok="chooseCustomOk" @cancel="openModal=false"></choose-custom-modal>
-    <!-- 审核 -->
-    <auditModal :openModal="visibleAudit" :spinning="spinningAudit" @close="visibleAudit=false" @ok="auditOrder('OUTING_WAREHOUSE')" @fail="auditOrder('AUDIT_REJECT')" />
   </a-card>
 </template>
 
@@ -219,14 +222,13 @@ import subarea from '@/views/common/subarea.js'
 import { getArea } from '@/api/data'
 import rangeDate from '@/views/common/rangeDate.vue'
 import { STable, VSelect } from '@/components'
-import auditModal from '@/views/common/auditModal.vue'
 import chooseCustomModal from './chooseCustomModal.vue'
 import dealerSubareaScopeList from '@/views/common/dealerSubareaScopeList.vue'
-import { salesList, salesDel, salesWriteAudit, salesCount } from '@/api/sales'
+import { salesList, salesDel, salesCount } from '@/api/sales'
 import { findBySalesBillSn } from '@/api/dispatch'
 export default {
   name: 'TableList',
-  components: { STable, VSelect, chooseCustomModal, dealerSubareaScopeList, rangeDate, auditModal, subarea },
+  components: { STable, VSelect, chooseCustomModal, dealerSubareaScopeList, rangeDate, subarea },
   data () {
     return {
       spinning: false,
@@ -266,27 +268,6 @@ export default {
         totalUnpushedAmount: 0,
         totalDispatchAmount: 0
       },
-      // 表头
-      columns: [
-        { title: '序号', dataIndex: 'no', width: 60, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '销售单号', scopedSlots: { customRender: 'salesBillNo' }, width: 120, align: 'center' },
-        { title: '采购单号', dataIndex: 'purchaseBillNo', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'buyerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '总数量', dataIndex: 'totalQty', scopedSlots: { customRender: 'totalQty' }, width: 60, align: 'center' },
-        { title: '总售价', dataIndex: 'totalAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? ('¥' + text) : '--') } },
-        { title: '已下推数量', dataIndex: 'totalPushedQty', width: 60, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '已发货数量', dataIndex: 'totalDispatchQty', width: 60, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '已取消数量', dataIndex: 'totalCancelQty', width: 60, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '待下推数量', dataIndex: 'totalUnpushedQty', width: 60, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '收款方式', dataIndex: 'settleStyleSnDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核时间', dataIndex: 'auditDate', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '最近备货时间', dataIndex: 'lastStockUpDate', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '业务状态', dataIndex: 'billStatusDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '财务状态', dataIndex: 'financialStatusDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '打印次数', dataIndex: 'detailPrintTimes', width: 50, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 150, align: 'center', fixed: 'right' }
-      ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
@@ -309,9 +290,33 @@ export default {
         })
       },
       addrProvinceList: [], //  省下拉
-      visibleAudit: false,
-      auditInfo: null,
-      spinningAudit: false
+      showCancelNum: false //  是否显示取消数量和待下推数量
+    }
+  },
+  computed: {
+    columns () {
+      const arr = [
+        { title: '创建时间', dataIndex: 'createDate', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '销售单号', scopedSlots: { customRender: 'salesBillNo' }, width: '10%', align: 'center' },
+        { title: '采购单号', dataIndex: 'purchaseBillNo', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'buyerName', width: '9%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '总数量', dataIndex: 'totalQty', scopedSlots: { customRender: 'totalQty' }, width: '4%', align: 'center' },
+        { title: '总售价', dataIndex: 'totalAmount', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '已下推数量', dataIndex: 'totalPushedQty', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '已发货数量', dataIndex: 'totalDispatchQty', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '收款方式', dataIndex: 'settleStyleSnDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核时间', dataIndex: 'auditDate', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '最近备货时间', dataIndex: 'lastStockUpDate', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '业务状态', dataIndex: 'billStatusDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '财务状态', dataIndex: 'financialStatusDictValue', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '打印次数', dataIndex: 'detailPrintTimes', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
+      ]
+      if (this.showCancelNum) {
+        arr.splice(9, 0, { title: '已取消数量', dataIndex: 'totalCancelQty', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(10, 0, { title: '待下推数量', dataIndex: 'totalUnpushedQty', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+      }
+      return arr
     }
   },
   methods: {
@@ -341,31 +346,6 @@ export default {
         }
       })
     },
-    //  审核
-    handleEexamine (row) {
-      this.auditInfo = row
-      this.visibleAudit = true
-    },
-    auditOrder (billStatus) {
-      this.spinningAudit = true
-      salesWriteAudit({
-        salesBillSn: this.auditInfo.salesBillSn,
-        billStatus: billStatus
-      }).then(res => {
-        if (res.status == 200) {
-          this.visibleAudit = false
-          this.$message.success(res.message)
-          this.$refs.table.refresh()
-          this.spinningAudit = false
-          if (billStatus == 'OUTING_WAREHOUSE') {
-            this.handleDispatch({ salesBillSn: this.auditInfo.salesBillSn })
-          }
-        } else {
-          this.visibleAudit = false
-          this.spinningAudit = false
-        }
-      })
-    },
     // 详情
     handleDetail (row) {
       this.$router.push({ name: 'salesDetail', params: { sn: row.salesBillSn } })

+ 18 - 1
src/views/salesManagement/salesQuery/printModal.vue

@@ -27,6 +27,13 @@
             </a-select-option>
           </a-select>
         </a-form-model-item>
+        <a-form-model-item label="是否缺货产品" prop="dataScope" v-if="nowType=='export'">
+          <a-radio-group v-model="form.dataScope">
+            <a-radio value="all">全部</a-radio>
+            <a-radio value="ENOUGH">有库存</a-radio>
+            <a-radio value="LESS">缺货</a-radio>
+          </a-radio-group>
+        </a-form-model-item>
         <a-form-model-item label="产品售价" prop="priceType">
           <a-radio-group v-model="form.priceType">
             <a-radio :value="nowType=='SALES_BILL_TYPE' ? 'SALES_BILL_TYPE_COST' : 'SALES_BILL_COST'">{{ nowType=='export' ? '导出' : '打印' }}</a-radio>
@@ -66,10 +73,12 @@ export default {
       isShow: this.openModal, //  是否打开弹框
       form: {
         id: 'all',
+        dataScope: 'all',
         priceType: undefined
       },
       rules: {
         id: [{ required: true, message: '请选择产品分类', trigger: 'change' }],
+        dataScope: [{ required: true, message: '请选择是否缺货产品', trigger: 'change' }],
         priceType: [{ required: true, message: '请选择产品售价', trigger: 'change' }]
       },
       formItemLayout: {
@@ -111,10 +120,18 @@ export default {
               }
               _this.$emit('ok', obj)
             }
-          } else {
+          } else if (_this.nowType == 'SALES_BILL') {
+            const obj = {
+              salesBillSn: _this.itemData.salesBillSn,
+              priceType: _this.form.priceType,
+              type: isPrint || 'preview'
+            }
+            _this.$emit('ok', obj)
+          } else if (_this.nowType == 'export') {
             const obj = {
               salesBillSn: _this.itemData.salesBillSn,
               priceType: _this.form.priceType,
+              dataScope: _this.form.dataScope == 'all' ? '' : _this.form.dataScope,
               type: isPrint || 'preview'
             }
             _this.$emit('ok', obj)

+ 41 - 16
src/views/salesManagement/salesQuery/queryPart.vue

@@ -26,7 +26,7 @@
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
-              <a-form-item label="产品类">
+              <a-form-item label="产品类">
                 <ProductType id="productInfoList-productType" v-model="productType" @change="changeProductType"></ProductType>
               </a-form-item>
             </a-col>
@@ -55,7 +55,7 @@
       :columns="columns"
       :data="loadData"
       :customRow="handleClickRow"
-      :scroll="{ x: 930, y: 300 }"
+      :scroll="{ y: 149 }"
       :defaultLoadData="false"
       bordered>
       <!-- 销售数量 -->
@@ -67,19 +67,27 @@
             :precision="0"
             :min="1"
             :max="999999"
+            style="width: 100%;"
             placeholder="请输入" />
         </div>
       </template>
       <!-- 产品名称 -->
       <template slot="productName" slot-scope="text, record">
-        <span style="vertical-align: middle;">{{ text }}</span>
-        <a-badge :number-style="{ backgroundColor: '#52c41a' }" count="活动" v-if="record.isJoinActivityProduct == 1"></a-badge>
+        <div class="ellipsisCon">
+          <a-tooltip placement="rightBottom">
+            <template slot="title">
+              <span>{{ text }}</span>
+            </template>
+            <span class="ellipsisText">{{ text }}</span>
+          </a-tooltip>
+          <a-badge :number-style="{ backgroundColor: '#52c41a' }" count="活动" v-if="record.isJoinActivityProduct == 1"></a-badge>
+        </div>
       </template>
       <!-- 操作 -->
       <template slot="action" slot-scope="text, record">
         <a-button
           size="small"
-          type="primary"
+          type="link"
           class="button-info"
           :loading="newLoading"
           @click="handleAdd(record)"
@@ -118,17 +126,16 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        // { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '产品编码', dataIndex: 'productCode', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', scopedSlots: { customRender: 'productName' }, align: 'center' },
-        { title: '原厂编码', dataIndex: 'productOrigCode', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌', dataIndex: 'productBrandName', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '库存数量', dataIndex: 'currentStockQty', width: 70, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '单位', dataIndex: 'productUnit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '售价', dataIndex: 'productPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '包装数', dataIndex: 'packQtyV', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '销售数量', dataIndex: 'salesNums', scopedSlots: { customRender: 'nums' }, width: 100, align: 'center' },
-        { title: '操作', dataIndex: 'action', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '产品编码', dataIndex: 'productCode', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', scopedSlots: { customRender: 'productName' }, width: '18%', align: 'left' },
+        { title: '原厂编码', dataIndex: 'productOrigCode', width: '11%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '品牌', dataIndex: 'productBrandName', width: '11%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '库存数量', dataIndex: 'currentStockQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单位', dataIndex: 'productUnit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '售价', dataIndex: 'productPrice', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '包装数', dataIndex: 'packQtyV', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '销售数量', dataIndex: 'salesNums', scopedSlots: { customRender: 'nums' }, width: '8%', align: 'center' },
+        { title: '操作', dataIndex: 'action', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -203,3 +210,21 @@ export default {
   }
 }
 </script>
+<style lang="less" scoped>
+  .productInfoList-wrap{
+    .ellipsisCon{
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      .ellipsisText{
+        width: 100%;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        display: box;
+        display: -webkit-box;
+        -webkit-line-clamp: 1;
+        -webkit-box-orient: vertical;
+      }
+    }
+  }
+</style>

+ 12 - 16
src/views/salesManagement/salesQuery/queryPromotable.vue

@@ -7,13 +7,9 @@
     :rowKey="(record) => record.id"
     :columns="columns"
     :data="loadData"
-    :scroll="{ x:1010, y: 300 }"
+    :scroll="{ y: 300 }"
     :defaultLoadData="false"
     bordered>
-    <!-- 产品名称 -->
-    <template slot="productName" slot-scope="text, record">
-      <span>{{ text }}</span>
-    </template>
     <!-- 销售数量 -->
     <template slot="salesNums" slot-scope="text, record">
       <a-input-number
@@ -31,7 +27,7 @@
     <template slot="action" slot-scope="text, record">
       <a-button
         size="small"
-        type="primary"
+        type="link"
         :loading="delLoading"
         class="button-error"
         @click="handleDel(record)"
@@ -74,18 +70,18 @@ export default {
   computed: {
     columns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品编码', dataIndex: 'productEntity.code', width: 120, align: 'center', customRender: function (text) { return text || '--' }, sorter: true },
-        { title: '产品名称', dataIndex: 'productEntity.name', scopedSlots: { customRender: 'productName' }, align: 'center' },
-        { title: '原售价', dataIndex: 'origPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '促销价', dataIndex: 'price', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '数量', dataIndex: 'qty', scopedSlots: { customRender: 'salesNums' }, width: 100, align: 'center' },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '促销类型', dataIndex: 'promotionRulesName', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productEntity.code', width: '18%', align: 'center', customRender: function (text) { return text || '--' }, sorter: true },
+        { title: '产品名称', dataIndex: 'productEntity.name', width: '20%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原售价', dataIndex: 'origPrice', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '促销价', dataIndex: 'price', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '数量', dataIndex: 'qty', scopedSlots: { customRender: 'salesNums' }, width: '8%', align: 'center' },
+        { title: '单位', dataIndex: 'productEntity.unit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '促销类型', dataIndex: 'promotionRulesName', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ]
       if (this.$hasPermissions('B_isShowCost')) {
-        arr.splice(3, 0, { title: '成本价', dataIndex: 'showCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(3, 0, { title: '成本价', dataIndex: 'showCost', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }
       return arr
     }

+ 11 - 78
src/views/salesManagement/salesReturn/detail.vue

@@ -61,7 +61,6 @@
           :rowKey="record => record.id"
           :columns="columns"
           :data="loadData"
-          :scroll="{ x: 1430 }"
           :defaultLoadData="false"
           bordered></s-table>
       </a-card>
@@ -118,83 +117,17 @@ export default {
       disabled: false,
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '采购单号', dataIndex: 'purchaseBillNo', align: 'center', width: 200, customRender: function (text) { return text || '--' } },
-        {
-          title: '产品编码',
-          dataIndex: 'productEntity.code',
-          align: 'center',
-          width: 160,
-          customRender: function (text) { return text || '--' }
-        },
-        {
-          title: '产品名称',
-          dataIndex: 'productEntity.name',
-          align: 'center',
-          width: 200,
-          customRender: function (text) { return text || '--' },
-          ellipsis: true
-        },
-        {
-          title: '售价',
-          dataIndex: 'price',
-          width: 100,
-          align: 'center',
-          customRender: function (text) {
-            return ((text || text == 0) ? '¥' + text : '--')
-          }
-        },
-        {
-          title: '退货数量',
-          dataIndex: 'qty',
-          width: 100,
-          align: 'center',
-          customRender: function (text) {
-            return text || text == 0 ? text : '--'
-          }
-        },
-        {
-          title: '坏件数量',
-          dataIndex: 'badQty',
-          width: 100,
-          align: 'center',
-          customRender: function (text) {
-            return text || text == 0 ? text : '--'
-          }
-        },
-        {
-          title: '返库数量',
-          dataIndex: 'backStockQty',
-          width: 100,
-          align: 'center',
-          customRender: function (text) {
-            return text || text == 0 ? text : '--'
-          }
-        },
-        {
-          title: '单位',
-          dataIndex: 'productEntity.unit',
-          align: 'center',
-          width: 100,
-          customRender: function (text) { return text || '--' }
-        },
-        {
-          title: '退货金额小计',
-          dataIndex: 'saleReturnSubtotal',
-          width: 120,
-          align: 'center',
-          customRender: function (text) {
-            return ((text || text == 0) ? '¥' + text : '--')
-          }
-        },
-        {
-          title: '退货原因',
-          dataIndex: 'remark',
-          width: 150,
-          align: 'center',
-          customRender: function (text) { return text || '--' },
-          ellipsis: true
-        }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '采购单号', dataIndex: 'purchaseBillNo', align: 'center', width: '17%', customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'productEntity.code', align: 'center', width: '12%', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productEntity.name', align: 'left', width: '17%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '售价', dataIndex: 'price', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货数量', dataIndex: 'qty', width: '6%', align: 'center', customRender: function (text) { return text || text == 0 ? text : '--' } },
+        { title: '坏件数量', dataIndex: 'badQty', width: '6%', align: 'center', customRender: function (text) { return text || text == 0 ? text : '--' } },
+        { title: '返库数量', dataIndex: 'backStockQty', width: '6%', align: 'center', customRender: function (text) { return text || text == 0 ? text : '--' } },
+        { title: '单位', dataIndex: 'productEntity.unit', align: 'center', width: '4%', customRender: function (text) { return text || '--' } },
+        { title: '退货金额小计', dataIndex: 'saleReturnSubtotal', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货原因', dataIndex: 'remark', width: '14%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 20 - 19
src/views/salesManagement/salesReturn/queryPart.vue

@@ -37,7 +37,7 @@
       :customRow="handleClickRow"
       :rowClassName="(record, index) => (grabFlag == '1'&&record.refundableQty==0) ? 'redBg-row':''"
       :defaultLoadData="false"
-      :scroll="{ x: grabFlag == '1' ? 930 : 710, y: 300 }"
+      :scroll="{ y: 300 }"
       bordered>
       <!-- 本次退货数量 -->
       <template slot="qty" slot-scope="text, record">
@@ -48,6 +48,7 @@
             :precision="0"
             :min="0"
             :max="999999"
+            style="width: 100%;"
             placeholder="请输入" />
         </div>
       </template>
@@ -153,26 +154,26 @@ export default {
       // 抓单
       if (this.grabFlag == 1) {
         this.columns = [
-          { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-          { title: '销售单号', dataIndex: 'salesBillNo', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
-          { title: '产品编码', dataIndex: 'productEntity.code', align: 'center', customRender: function (text) { return text || '--' } },
-          { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' } },
-          { title: '售价', dataIndex: 'price', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-          { title: '剩余可退数量', dataIndex: 'refundableQty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-          { title: '本次退货数量', dataIndex: 'qty', width: 100, align: 'center', scopedSlots: { customRender: 'qty' } },
-          { title: '采购价', dataIndex: 'showCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-          { title: '单位', dataIndex: 'productEntity.unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-          { slots: { title: 'customTitle' }, scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }]
+          { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+          { title: '销售单号', dataIndex: 'salesBillNo', width: '16%', align: 'center', customRender: function (text) { return text || '--' } },
+          { title: '产品编码', dataIndex: 'productEntity.code', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+          { title: '产品名称', dataIndex: 'productEntity.name', width: '20%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+          { title: '售价', dataIndex: 'price', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+          { title: '剩余可退数量', dataIndex: 'refundableQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+          { title: '本次退货数量', dataIndex: 'qty', width: '8%', align: 'center', scopedSlots: { customRender: 'qty' } },
+          { title: '采购价', dataIndex: 'showCost', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+          { title: '单位', dataIndex: 'productEntity.unit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+          { slots: { title: 'customTitle' }, scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }]
       } else {
         this.columns = [
-          { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-          { title: '产品编码', dataIndex: 'productCode', align: 'center', customRender: function (text) { return text || '--' } },
-          { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' } },
-          { title: '当前售价', dataIndex: 'productPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-          { title: '退货数量', dataIndex: 'qty', width: 100, align: 'center', scopedSlots: { customRender: 'qty' } },
-          { title: '采购价', dataIndex: 'lastStockCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-          { title: '单位', dataIndex: 'productUnit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-          { slots: { title: 'customTitle' }, scopedSlots: { customRender: 'action' }, width: 80, align: 'center' }
+          { title: '序号', dataIndex: 'no', width: '6%', align: 'center' },
+          { title: '产品编码', dataIndex: 'productCode', width: '24%', align: 'center', customRender: function (text) { return text || '--' } },
+          { title: '产品名称', dataIndex: 'productName', width: '27%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+          { title: '当前售价', dataIndex: 'productPrice', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+          { title: '退货数量', dataIndex: 'qty', width: '9%', align: 'center', scopedSlots: { customRender: 'qty' } },
+          { title: '采购价', dataIndex: 'lastStockCost', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+          { title: '单位', dataIndex: 'productUnit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+          { slots: { title: 'customTitle' }, scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
         ]
       }
       this.resetSearchForm()

+ 9 - 9
src/views/salesManagement/salesReturn/salesReturnCheck.vue

@@ -22,7 +22,7 @@
           :rowKey="(record) => record.id"
           :columns="columns"
           :data="loadData"
-          :scroll="{ x: 710, y: tableHeight }"
+          :scroll="{ y: tableHeight }"
           :defaultLoadData="false"
           bordered>
           <!-- 返库数量 -->
@@ -89,14 +89,14 @@ export default {
       },
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品编码', dataIndex: 'productEntity.code', align: 'center', width: 120, customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '退货数量', dataIndex: 'qty', align: 'center', width: 80, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '坏件数量', dataIndex: 'badQty', align: 'center', width: 80, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '返库数量', dataIndex: 'backStockQty', width: 100, align: 'center', scopedSlots: { customRender: 'backStockQty' } },
-        { title: '单位', dataIndex: 'productEntity.unit', align: 'center', customRender: function (text) { return text || '--' }, width: 60 },
-        { title: '售价', dataIndex: 'price', align: 'center', width: 80, customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productEntity.code', align: 'center', width: '23%', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productEntity.name', width: '25%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '退货数量', dataIndex: 'qty', align: 'center', width: '10%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '坏件数量', dataIndex: 'badQty', align: 'center', width: '10%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '返库数量', dataIndex: 'backStockQty', width: '10%', align: 'center', scopedSlots: { customRender: 'backStockQty' } },
+        { title: '单位', dataIndex: 'productEntity.unit', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '售价', dataIndex: 'price', align: 'center', width: '10%', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ],
       chooseLoadData: [],
       // 加载数据方法 必须为 Promise 对象

+ 10 - 10
src/views/salesManagement/salesReturn/salesReturnEdit.vue

@@ -36,7 +36,7 @@
           :columns="columns"
           :data="loadData"
           :defaultLoadData="false"
-          :scroll="{ x: 910, y: 300 }"
+          :scroll="{ y: 300 }"
           bordered>
           <!-- 本次退货数量 -->
           <template slot="qty" slot-scope="text, record">
@@ -135,15 +135,15 @@ export default {
       },
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', align: 'center', width: 70 },
-        { title: '产品编码', dataIndex: 'productEntity.code', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '退货数量', dataIndex: 'qty', align: 'center', width: 100, scopedSlots: { customRender: 'qty' } },
-        { title: '退货单价', dataIndex: 'price', align: 'center', width: 80, scopedSlots: { customRender: 'price' } },
-        { title: '单位', dataIndex: 'productEntity.unit', align: 'center', width: 60, customRender: function (text) { return text || '--' } },
-        { title: '退货小计', align: 'center', dataIndex: 'totalAmount', width: 80, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '退货原因', dataIndex: 'remark', align: 'center', width: 200, scopedSlots: { customRender: 'remark' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', align: 'center', width: '4%' },
+        { title: '产品编码', dataIndex: 'productEntity.code', width: '18%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productEntity.name', width: '25%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '退货数量', dataIndex: 'qty', align: 'center', width: '8%', scopedSlots: { customRender: 'qty' } },
+        { title: '退货单价', dataIndex: 'price', align: 'center', width: '8%', scopedSlots: { customRender: 'price' } },
+        { title: '单位', dataIndex: 'productEntity.unit', align: 'center', width: '6%', customRender: function (text) { return text || '--' } },
+        { title: '退货小计', align: 'center', dataIndex: 'totalAmount', width: '8%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货原因', dataIndex: 'remark', align: 'center', width: '13%', scopedSlots: { customRender: 'remark' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
       chooseLoadData: [],
       // 加载数据方法 必须为 Promise 对象

+ 19 - 13
src/views/salesManagement/salesReturn/salesReturnGrabEdit.vue

@@ -36,7 +36,7 @@
           :columns="columns"
           :data="loadData"
           :defaultLoadData="false"
-          :scroll="{ x: 1270, y: 300 }"
+          :scroll="{ y: 300 }"
           bordered>
           <!-- 本次退货数量 -->
           <template slot="qty" slot-scope="text, record">
@@ -66,7 +66,13 @@
           </template>
           <!-- 退货原因 -->
           <template slot="remark" slot-scope="text, record">
-            <a-input size="small" placeholder="30个字符内" :maxLength="30" v-model="record.remark" @blur="updateRemark(record)"></a-input>
+            <a-input
+              size="small"
+              placeholder="30个字符内"
+              :maxLength="30"
+              v-model="record.remark"
+              @blur="updateRemark(record)"
+              style="width: 100%;"></a-input>
           </template>
           <!-- 操作 -->
           <template slot="action" slot-scope="text, record">
@@ -123,17 +129,17 @@ export default {
       },
       // 表头
       columns: [
-        { title: '序号', dataIndex: 'no', align: 'center', width: 70 },
-        { title: '采购单号', dataIndex: 'purchaseBillNo', align: 'center', width: 180, customRender: function (text) { return text || '--' } },
-        { title: '产品编码', dataIndex: 'productEntity.code', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '剩余可退数量', dataIndex: 'refundableQty', align: 'center', width: 100, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '本次退货数量', dataIndex: 'qty', align: 'center', width: 100, scopedSlots: { customRender: 'qty' } },
-        { title: '退货单价', dataIndex: 'price', align: 'center', width: 100, scopedSlots: { customRender: 'price' } },
-        { title: '单位', dataIndex: 'productEntity.unit', align: 'center', width: 60, customRender: function (text) { return text || '--' } },
-        { title: '退货小计', align: 'center', width: 80, dataIndex: 'totalAmount', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '退货原因', dataIndex: 'remark', align: 'center', width: 200, scopedSlots: { customRender: 'remark' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 80, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', align: 'center', width: '4%' },
+        { title: '采购单号', dataIndex: 'purchaseBillNo', align: 'center', width: '14%', customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'productEntity.code', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productEntity.name', width: '14%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '剩余可退数量', dataIndex: 'refundableQty', align: 'center', width: '9%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '本次退货数量', dataIndex: 'qty', align: 'center', width: '9%', scopedSlots: { customRender: 'qty' } },
+        { title: '退货单价', dataIndex: 'price', align: 'center', width: '8%', scopedSlots: { customRender: 'price' } },
+        { title: '单位', dataIndex: 'productEntity.unit', align: 'center', width: '6%', customRender: function (text) { return text || '--' } },
+        { title: '退货小计', align: 'center', width: '8%', dataIndex: 'totalAmount', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '退货原因', dataIndex: 'remark', align: 'center', width: '10%', scopedSlots: { customRender: 'remark' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ],
       chooseLoadData: [],
       // 加载数据方法 必须为 Promise 对象

+ 15 - 28
src/views/salesManagement/shortageStatisticsC/list.vue

@@ -56,16 +56,7 @@
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="品牌">
-                  <a-select
-                    placeholder="请选择"
-                    id="shortageStatisticsCList-productBrandSn"
-                    allowClear
-                    v-model="queryParam.productBrandSn"
-                    :showSearch="true"
-                    option-filter-prop="children"
-                    :filter-option="filterOption">
-                    <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
-                  </a-select>
+                  <ProductBrand id="shortageStatisticsCList-productBrandSn" v-model="queryParam.productBrandSn"></ProductBrand>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -137,7 +128,7 @@
         :columns="columns"
         :data="loadData"
         :defaultLoadData="false"
-        :scroll="{ x: 2220, y: tableHeight }"
+        :scroll="{ x: 2020, y: tableHeight }"
         bordered>
         <!-- 单号 -->
         <template slot="salesBillNo" slot-scope="text, record">
@@ -160,9 +151,10 @@ import subarea from '@/views/common/subarea.js'
 import { getArea } from '@/api/data'
 import { productTypeQuery } from '@/api/productType'
 import { productBrandQuery } from '@/api/productBrand'
+import ProductBrand from '@/views/common/productBrand.js'
 import { oosBuyerList, oosBuyerDetailCount, oosBuyerDetailPageCount, oosDetailExport } from '@/api/oos'
 export default {
-  components: { STable, VSelect, custList, subarea, rangeDate },
+  components: { STable, VSelect, custList, subarea, rangeDate, ProductBrand },
   data () {
     return {
       spinning: false,
@@ -192,22 +184,22 @@ export default {
         getDate.getCurrMonthDays().endtime
       ], //  创建时间
       columns: [
-        { title: '区域', dataIndex: 'subareaNames', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '区域', dataIndex: 'subareaNames', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '销售单号', scopedSlots: { customRender: 'salesBillNo' }, align: 'center' },
-        { title: '省份', dataIndex: 'dealerEntity.provinceName', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'dealerEntity.dealerName', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '省份', dataIndex: 'dealerEntity.provinceName', width: 80, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户名称', dataIndex: 'dealerEntity.dealerName', width: 140, align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '客户类型', dataIndex: 'dealerEntity.dealerTypeDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌', dataIndex: 'productEntity.productBrandName', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '创建时间', dataIndex: 'createDate', width: 130, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '品牌', dataIndex: 'productEntity.productBrandName', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '二级分类', dataIndex: 'productEntity.productTypeName2', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', width: 180, align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品编码', dataIndex: 'productCode', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'productEntity.unit', width: 50, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品状态', dataIndex: 'productEntity.stateDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '缺货数量', dataIndex: 'qty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '缺货成本金额', dataIndex: 'totalCostAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '缺货实售金额', dataIndex: 'totalSalesAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '缺货开单金额', dataIndex: 'totalAmount', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '缺货成本金额', dataIndex: 'totalCostAmount', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '缺货实售金额', dataIndex: 'totalSalesAmount', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '缺货开单金额', dataIndex: 'totalAmount', width: 90, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '操作员', dataIndex: 'operatorName', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '缺货说明', dataIndex: 'productEntity.offlineReasonType', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '通用编码', dataIndex: 'productEntity.commonCode', width: 100, align: 'center', customRender: function (text) { return text || '--' } }
@@ -358,11 +350,6 @@ export default {
         }
       })
     },
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
-    },
     //  省/市/区
     getArea (leve, sn) {
       let params

+ 9 - 9
src/views/salesManagement/shortageStatisticsP/list.vue

@@ -59,7 +59,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1010, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
       </s-table>
@@ -92,14 +92,14 @@ export default {
         getDate.getCurrMonthDays().endtime
       ], //  创建时间
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品编码', dataIndex: 'productCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '原厂编码', dataIndex: 'origCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '单位', dataIndex: 'unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '缺货数量', dataIndex: 'qty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '缺货金额', dataIndex: 'totalAmount', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '客户名称', dataIndex: 'buyerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', width: '20%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '原厂编码', dataIndex: 'origCode', width: '16%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'unit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '缺货数量', dataIndex: 'qty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '缺货金额', dataIndex: 'totalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '客户名称', dataIndex: 'buyerName', width: '18%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

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

@@ -107,7 +107,8 @@ import { STable, VSelect } from '@/components'
 import queryPart from './queryPart.vue'
 import { salesDetailBySn } from '@/api/sales'
 import { salesDetailDispatchByOneKey, insertBatchOfWaitDispatch, salesDetailUpdateCancelQty } from '@/api/salesDetail'
-import { deleteBatch, pushDown, dispatchDetail, waitDispatchDetailAllList, updateQty } from '@/api/waitDispatchDetail'
+import { deleteBatch, pushDown, waitDispatchDetailAllList, updateQty } from '@/api/waitDispatchDetail'
+import { findBySalesBillSn } from '@/api/dispatch'
 export default {
   name: 'SalesDetail',
   components: { STable, VSelect, queryPart },
@@ -189,7 +190,7 @@ export default {
     },
     // 统计查询
     getTotalData () {
-      dispatchDetail({ dispatchBillSn: this.$route.params.dispatchBillSn }).then(res => {
+      findBySalesBillSn({ salesBillSn: this.$route.params.salesBillSn }).then(res => {
         if (res.status == 200) {
           this.totalData = res.data || null
         } else {

+ 8 - 7
src/views/salesManagement/waitDispatch/queryPart.vue

@@ -27,7 +27,7 @@
           </a-col>
           <a-col :md="4" :sm="24">
             <a-form-item label="类型">
-              <a-select allowClear v-model.trim="queryParam.ptype" >
+              <a-select v-model.trim="queryParam.ptype" :dropdownMatchSelectWidth="false" >
                 <a-select-option value="0">
                   全部产品
                 </a-select-option>
@@ -101,7 +101,7 @@
             v-model="record.cancelNums"
             :precision="0"
             :min="0"
-            :max="999999"
+            :max="record.surplusQty"
             style="width: 100%;"
             placeholder="请输入" />
         </div>
@@ -131,7 +131,7 @@
 </template>
 
 <script>
-import { salesDetailAllList } from '@/api/salesDetail'
+import { salesDetailAllStockList } from '@/api/salesDetail'
 import { STable, VSelect } from '@/components'
 export default {
   name: 'QueryPart',
@@ -170,7 +170,7 @@ export default {
       loadData: parameter => {
         this.disabled = true
         this.queryParam.salesBillSn = this.salesBillSn
-        return salesDetailAllList(Object.assign(parameter, this.queryParam)).then(res => {
+        return salesDetailAllStockList(Object.assign(parameter, this.queryParam)).then(res => {
           let data = res.data
           if (data) {
             // 根据类型过滤数据
@@ -205,9 +205,9 @@ export default {
   computed: {
     columns () {
       const arr = [
-        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
-        { title: '产品编码', dataIndex: 'productEntity.code', scopedSlots: { customRender: 'productCode' }, width: '12%', align: 'center' },
-        { title: '产品名称', dataIndex: 'productEntity.name', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        // { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productEntity.code', scopedSlots: { customRender: 'productCode' }, width: '14%', align: 'center' },
+        { title: '产品名称', dataIndex: 'productEntity.name', width: '14%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '原厂编码', dataIndex: 'productEntity.origCode', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '销售价', dataIndex: 'price', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '单位', dataIndex: 'productEntity.unit', width: '4%', align: 'center', customRender: function (text) { return text || '--' } },
@@ -261,6 +261,7 @@ export default {
     },
     //  重置
     resetSearchForm () {
+      this.queryParam.ptype = '0'
       this.queryParam.productCode = ''
       this.queryParam.productName = ''
       this.queryParam.promotionFlag = undefined

+ 9 - 9
src/views/setting/noticeManagement/list.vue

@@ -44,7 +44,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1230, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 操作 -->
@@ -98,14 +98,14 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '类别', dataIndex: 'typeDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '标题', dataIndex: 'title', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '可见性', dataIndex: 'toAppNameDictValue', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '发布时间', dataIndex: 'releaseDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '发布状态', dataIndex: 'sendStatusDictValue', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 170, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '类别', dataIndex: 'typeDictValue', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '标题', dataIndex: 'title', align: 'center', width: '25%', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '可见性', dataIndex: 'toAppNameDictValue', width: '9%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '发布时间', dataIndex: 'releaseDate', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '发布状态', dataIndex: 'sendStatusDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 9 - 9
src/views/supplierManagement/associatedProduct/add.vue

@@ -61,7 +61,7 @@
           :rowKey="(record) => record.id"
           :columns="columns"
           :data="loadData"
-          :scroll="{ x: 1120, y: tableHeight }"
+          :scroll="{ y: tableHeight }"
           :defaultLoadData="false"
           bordered>
           <!-- 产品分类 -->
@@ -123,14 +123,14 @@ export default {
       },
       productType: [],
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '产品品牌', dataIndex: 'product.productBrandName', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 140, align: 'center' },
-        { title: '产品名称', dataIndex: 'product.name', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '产品编码', dataIndex: 'product.code', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '原厂编码', dataIndex: 'product.origCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '成本价', dataIndex: 'cost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 150, align: 'center', fixed: 'right' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品品牌', dataIndex: 'product.productBrandName', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '15%', align: 'center' },
+        { title: '产品名称', dataIndex: 'product.name', align: 'center', width: '25%', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'product.code', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '原厂编码', dataIndex: 'product.origCode', width: '16%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '成本价', dataIndex: 'cost', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '13%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 11 - 0
src/views/supplierManagement/associatedProduct/settingCost.vue

@@ -31,6 +31,8 @@
               :min="0"
               :max="999999"
               placeholder="请输入"
+              ref="cost"
+              @keyup.enter.native="onSubmit"
               style="width: 100%;" />
           </a-form-model-item>
           <div style="display: flex;justify-content: center;padding: 30px 0;">
@@ -120,6 +122,15 @@ export default {
     //  父页面传过来的弹框状态
     openModal (newValue, oldValue) {
       this.isShow = newValue
+      if (newValue) {
+        // 默认首项获取焦点
+        const _this = this
+        setTimeout(() => {
+          if (_this.$refs['cost']) {
+            _this.$refs['cost'].focus()
+          }
+        }, 300)
+      }
     },
     //  重定义的弹框状态
     isShow (newValue, oldValue) {

+ 9 - 9
src/views/supplierManagement/associatedProductDetails/list.vue

@@ -52,7 +52,7 @@
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1150, y: tableHeight }"
+        :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
         <!-- 产品分类 -->
@@ -91,14 +91,14 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       productType: [],
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '供应商名称', dataIndex: 'supplierName', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌', dataIndex: 'product.productBrandName', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 140, align: 'center' },
-        { title: '产品名称', dataIndex: 'product.name', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品编码', dataIndex: 'product.code', width: 180, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '成本价(¥)', dataIndex: 'cost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '原厂编码', dataIndex: 'product.origCode', width: 180, align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '供应商名称', dataIndex: 'supplierName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '品牌', dataIndex: 'product.productBrandName', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '18%', align: 'center' },
+        { title: '产品名称', dataIndex: 'product.name', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品编码', dataIndex: 'product.code', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '成本价(¥)', dataIndex: 'cost', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '原厂编码', dataIndex: 'product.origCode', width: '8%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 7 - 7
src/views/supplierManagement/supplierInfo/list.vue

@@ -75,13 +75,13 @@ export default {
       },
       disabled: false, //  查询、重置按钮是否可操作
       columns: [
-        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '供应商名称', dataIndex: 'supplierName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '联系人', dataIndex: 'contact', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '产品款数', dataIndex: 'totalProductCategory', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: 100, align: 'center' },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 150, align: 'center' }
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '供应商名称', dataIndex: 'supplierName', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '联系人', dataIndex: 'contact', align: 'center', width: '18%', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '产品款数', dataIndex: 'totalProductCategory', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: '10%', align: 'center' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
       ],
       total: 0,
       // 加载数据方法 必须为 Promise 对象