Procházet zdrojové kódy

列表和编辑页样式(列表:表格高度占满页面剩余高度,页码固定在底部。编辑:提交等操作按钮固定在最底部)

chenrui před 3 roky
rodič
revize
79662db214

+ 2 - 2
src/views/allocationManagement/chainTransferIn/list.vue

@@ -61,8 +61,8 @@
             </template>
             <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
               <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="chainTransferInList-refresh">查询</a-button>
-              <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="chainTransferInList-reset">重置</a-button>
-              <a @click="advanced=!advanced" style="margin-left: 8px">
+              <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="chainTransferInList-reset">重置</a-button>
+              <a @click="advanced=!advanced" style="margin-left: 5px">
                 {{ advanced ? '收起' : '展开' }}
                 <a-icon :type="advanced ? 'up' : 'down'"/>
               </a>

+ 25 - 2
src/views/basicData/bulkPartsTypeManagement/list.vue

@@ -2,17 +2,19 @@
   <a-card size="small" :bordered="false" class="bulkPartsTypeList-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
       <!-- 操作按钮 -->
-      <div class="table-operator-nobor">
+      <div ref="tableSearch" class="table-operator-nobor">
         <a-button v-if="$hasPermissions('B_basicData_bulkPartsType_add')" id="bulkPartsTypeList-add" type="primary" class="button-error" @click="handleEdit()">新增</a-button>
       </div>
       <!-- 列表 -->
       <s-table
-        class="sTable"
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
         size="small"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
+        :scroll="{ y: tableHeight }"
         bordered>
         <!-- 操作 -->
         <template slot="action" slot-scope="text, record">
@@ -50,6 +52,7 @@ export default {
   data () {
     return {
       spinning: false,
+      tableHeight: 0,
       queryParam: { //  查询条件
         name: '' //  散件类型名称
       },
@@ -63,6 +66,7 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
+        this.spinning = true
         return sparePartsPutTypeList(Object.assign(parameter, this.queryParam)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
@@ -70,6 +74,7 @@ export default {
             data.list[i].no = no + i + 1
           }
           this.disabled = false
+          this.spinning = false
           return data
         })
       },
@@ -116,6 +121,24 @@ export default {
       this.itemId = ''
       this.openModal = false
       this.$refs.table.refresh(true)
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 195
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   }
 }

+ 25 - 2
src/views/basicData/customerTypeManagement/list.vue

@@ -2,7 +2,7 @@
   <a-card size="small" :bordered="false" class="customerTypeList-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
       <!-- 搜索条件 -->
-      <div class="table-page-search-wrapper">
+      <div ref="tableSearch" class="table-page-search-wrapper">
         <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
@@ -23,12 +23,14 @@
       </div>
       <!-- 列表 -->
       <s-table
-        class="sTable"
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
         size="small"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
+        :scroll="{ y: tableHeight }"
         bordered>
         <!-- 操作 -->
         <template slot="action" slot-scope="text, record">
@@ -65,6 +67,7 @@ export default {
   data () {
     return {
       spinning: false,
+      tableHeight: 0,
       queryParam: { //  查询条件
         name: '' //  客户类型名称
       },
@@ -78,6 +81,7 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
+        this.spinning = true
         return custTypeList(Object.assign(parameter, this.queryParam)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
@@ -85,6 +89,7 @@ export default {
             data.list[i].no = no + i + 1
           }
           this.disabled = false
+          this.spinning = false
           return data
         })
       },
@@ -132,6 +137,24 @@ export default {
       this.itemId = ''
       this.openModal = false
       this.$refs.table.refresh(true)
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 245
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   }
 }

+ 25 - 3
src/views/basicData/expenseType/list.vue

@@ -2,17 +2,19 @@
   <a-card size="small" :bordered="false" class="expenseTypeList-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
       <!-- 操作按钮 -->
-      <div class="table-operator-nobor">
+      <div ref="tableSearch" class="table-operator-nobor">
         <a-button v-if="$hasPermissions('B_basicData_expenseType_add')" id="expenseTypeList-add" type="primary" class="button-error" @click="handleAdd()">新增一级类型</a-button>
       </div>
       <!-- 列表 -->
       <s-table
-        class="sTable"
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
         size="small"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
+        :scroll="{ y: tableHeight }"
         :showPagination="false"
         :defaultExpandedRowKeys="defaultExpandedRowKeys"
         bordered>
@@ -61,6 +63,7 @@ export default {
   data () {
     return {
       spinning: false,
+      tableHeight: 0,
       formItemLayout: {
         labelCol: { span: 6 },
         wrapperCol: { span: 16 }
@@ -72,7 +75,7 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        this.disabled = true
+        this.spinning = true
         return costTypeAllQuery({}).then(res => {
           //  递归去除空children
           this.recursionFun(res.data)
@@ -81,6 +84,7 @@ export default {
           } else {
             this.defaultExpandedRowKeys = []
           }
+          this.spinning = false
           return res.data
         })
       },
@@ -153,6 +157,24 @@ export default {
           }
         })
       }
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 195
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   }
 }

+ 25 - 5
src/views/basicData/storeTransferOutTypeManagement/list.vue

@@ -2,7 +2,7 @@
   <a-card size="small" :bordered="false" class="storeTransferOutTypeList-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
       <!-- 操作按钮 -->
-      <div class="table-operator-nobor">
+      <div ref="tableSearch" class="table-operator-nobor">
         <a-button
           v-if="$hasPermissions('B_basicData_storeTransferOutType_add')"
           id="storeTransferOutTypeList-add"
@@ -12,12 +12,14 @@
       </div>
       <!-- 列表 -->
       <s-table
-        class="sTable"
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
         size="small"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
+        :scroll="{ y: tableHeight }"
         bordered>
         <!-- 操作 -->
         <template slot="action" slot-scope="text, record">
@@ -54,10 +56,10 @@ export default {
   data () {
     return {
       spinning: false,
+      tableHeight: 0,
       queryParam: { //  查询条件
         name: '' //  店内调出类型名称
       },
-      disabled: false, //  查询、重置按钮是否可操作
       columns: [
         { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
         { title: '店内调出类型名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
@@ -66,14 +68,14 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        this.disabled = true
+        this.spinning = true
         return storeCallOutTypeList(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
+          this.spinning = false
           return data
         })
       },
@@ -120,6 +122,24 @@ export default {
       this.itemId = ''
       this.openModal = false
       this.$refs.table.refresh(true)
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 195
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   }
 }

+ 96 - 196
src/views/bulkManagement/bulkWarehousingOrder/edit.vue

@@ -14,8 +14,8 @@
             <a-radio value="NEEDLE">针式</a-radio>
             <a-radio value="INK">喷墨</a-radio>
           </a-radio-group>
-          <a-button key="2" id="bulkWarehousingOrderEdit-preview-btn" :disabled="chooseLoadData.length==0" @click="handlePrint('preview')">打印预览</a-button>
-          <a-button key="1" type="primary" id="bulkWarehousingOrderEdit-print-btn" :disabled="chooseLoadData.length==0" @click="handlePrint('print')">快捷打印</a-button>
+          <a-button key="2" id="bulkWarehousingOrderEdit-preview-btn" :disabled="chooseLoadDataSource.length==0" @click="handlePrint('preview')">打印预览</a-button>
+          <a-button key="1" type="primary" id="bulkWarehousingOrderEdit-print-btn" :disabled="chooseLoadDataSource.length==0" @click="handlePrint('print')">快捷打印</a-button>
         </template>
       </a-page-header>
       <!-- 基础信息 -->
@@ -81,25 +81,23 @@
                       </a-form-item>
                     </a-col>
                     <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
-                      <a-button type="primary" @click="getDealerProductList(1)" :disabled="disabled" id="bulkWarehousingOrderEdit-refresh">查询</a-button>
+                      <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="bulkWarehousingOrderEdit-refresh">查询</a-button>
                       <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="bulkWarehousingOrderEdit-reset">重置</a-button>
                     </a-col>
                   </a-row>
                 </a-form>
               </div>
               <!-- 列表 -->
-              <a-table
+              <s-table
                 class="sTable"
                 ref="table"
                 size="small"
                 :rowKey="(record) => record.id"
                 :columns="columns"
                 :customRow="handleClickRow"
-                :dataSource="loadData"
-                :loading="loading"
+                :data="loadData"
+                :defaultLoadData="false"
                 :scroll="{ x: 1600, y: 300 }"
-                :pagination="false"
-                @change="onTableChange"
                 bordered>
                 <!-- 成本价 -->
                 <template slot="putCost" slot-scope="text, record">
@@ -143,15 +141,7 @@
                 <template slot="action" slot-scope="text, record">
                   <a-button size="small" type="primary" class="button-primary" @click="handleAdd(record)" id="bulkWarehousingOrderEdit-add-btn">添加</a-button>
                 </template>
-              </a-table>
-              <!-- 分页 -->
-              <tablePagination
-                ref="tablePagination"
-                :total="paginationProps.total"
-                :current="paginationProps.current"
-                :pageSize="paginationProps.pageSize"
-                @changePageSize="changePageSize"
-                @changePage="changePage" />
+              </s-table>
             </div>
           </a-collapse-panel>
         </a-collapse>
@@ -175,17 +165,14 @@
                 </div>
               </a-alert>
               <!-- 列表 -->
-              <a-table
+              <s-table
                 class="sTable"
                 ref="chooseTable"
                 size="small"
                 :rowKey="(record) => record.id"
                 :columns="chooseColumns"
-                :dataSource="chooseLoadData"
+                :data="chooseLoadData"
                 :scroll="{ x: 1700, y: 300 }"
-                :loading="chooseLoading"
-                :pagination="false"
-                @change="onChooseTableChange"
                 bordered>
                 <!-- 成本价 -->
                 <template slot="putCost" slot-scope="text, record">
@@ -231,31 +218,21 @@
                 <template slot="action" slot-scope="text, record">
                   <a-button size="small" type="primary" class="button-error" @click="handleDel(record)" id="bulkWarehousingOrderEdit-del-btn">删除</a-button>
                 </template>
-              </a-table>
-              <!-- 分页 -->
-              <tablePagination
-                ref="chooseTablePagination"
-                :total="choosePaginationProps.total"
-                :current="choosePaginationProps.current"
-                :pageSize="choosePaginationProps.pageSize"
-                @changePageSize="changeChoosePageSize"
-                @changePage="changeChoosePage" />
+              </s-table>
             </div>
           </a-collapse-panel>
         </a-collapse>
       </a-card>
-      <a-affix :offset-bottom="0">
-        <div style="text-align: center;width: 100%;background-color: #fff;padding: 12px 0;box-shadow: 0 0 20px #dcdee2;">
-          <a-button
-            type="primary"
-            id="bulkWarehousingOrderEdit-submit"
-            size="large"
-            class="button-primary"
-            @click="handleSubmit"
-            style="padding: 0 60px;">提交</a-button>
-        </div>
-      </a-affix>
     </a-spin>
+    <div class="affix-cont">
+      <a-button
+        type="primary"
+        id="bulkWarehousingOrderEdit-submit"
+        size="large"
+        class="button-primary"
+        @click="handleSubmit"
+        style="padding: 0 60px;">提交</a-button>
+    </div>
     <!-- 选择基本信息弹框 -->
     <basic-info-modal :openModal="openModal" @ok="handleOk" @close="openModal=false" />
     <!-- 打印 -->
@@ -265,7 +242,6 @@
 
 <script>
 import { STable, VSelect } from '@/components'
-import tablePagination from '@/views/common/tablePagination.vue'
 import basicInfoModal from './basicInfoModal.vue'
 import { getOperationalPrecision } from '@/libs/tools.js'
 import { dealerProductBrandQuery } from '@/api/dealerProductBrand'
@@ -274,7 +250,7 @@ import { sparePartsPurDetail, sparePartsPurDetailList, sparePartsPurDetailCount,
 import { dealerProductList } from '@/api/dealerProduct'
 import { warehouseCascadeList } from '@/api/warehouse'
 export default {
-  components: { STable, VSelect, basicInfoModal, tablePagination },
+  components: { STable, VSelect, basicInfoModal },
   data () {
     return {
       spinning: false,
@@ -305,11 +281,29 @@ export default {
         { title: '仓库仓位', scopedSlots: { customRender: 'warehouse' }, width: 200, align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center', fixed: 'right' }
       ],
-      loadData: [],
-      paginationProps: {
-        total: 0, //  分页总条数
-        current: 1,
-        pageSize: 20
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        parameter.sortAlias = 'dp'
+        const params = Object.assign(parameter, this.queryParam)
+        params.enabledFlag = 1
+        return dealerProductList(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
+            if (this.defaultWarehouseCascade.length > 0) {
+              data.list[i].warehouseCascade = this.defaultWarehouseCascade
+              data.list[i].warehouseSn = this.defaultWarehouseCascade[0]
+              data.list[i].warehouseLocationSn = this.defaultWarehouseCascade[1]
+            } else {
+              data.list[i].warehouseCascade = undefined
+            }
+          }
+          this.loadDataSource = data.list
+          this.disabled = false
+          return data
+        })
       },
       // 表头
       chooseColumns: [
@@ -325,12 +319,44 @@ export default {
         { title: '仓库仓位', scopedSlots: { customRender: 'warehouse' }, width: 200, align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center', fixed: 'right' }
       ],
-      chooseLoadData: [],
-      choosePaginationProps: {
-        total: 0, //  分页总条数
-        current: 1,
-        pageSize: 20
+      // 加载数据方法 必须为 Promise 对象
+      chooseLoadData: parameter => {
+        // 排序
+        if (parameter.sortField == 'brandName') {
+          parameter.sortField = 'productBrandName'
+          parameter.sortAlias = 'dp'
+        }
+        if (parameter.sortField == 'productName') {
+          parameter.sortField = 'productCode'
+          parameter.sortAlias = 'sppd'
+        }
+        const params = Object.assign(parameter, { sparePartsPurchaseSn: this.$route.params.sn })
+        return sparePartsPurDetailList(params).then(res => {
+          this.getDetailCount(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
+            data.list[i].putCostBackups = data.list[i].putCost
+            data.list[i].putQtyBackups = data.list[i].putQty
+            const warehouseSn = data.list[i].warehouseSn || undefined
+            const warehouseLocationSn = data.list[i].warehouseLocationSn || undefined
+            if (warehouseSn || warehouseLocationSn) {
+              data.list[i].warehouseSnBackups = warehouseSn
+              data.list[i].warehouseLocationSnBackups = warehouseLocationSn
+              data.list[i].warehouseCascade = [warehouseSn, warehouseLocationSn]
+            } else {
+              data.list[i].warehouseCascade = undefined
+            }
+            // 成本小计  由于数据库内小数位数为4位,页面则需显示2位。因此会做小数运算精度处理
+            data.list[i].costSubtotal = getOperationalPrecision(data.list[i].putCost, data.list[i].putQty)
+          }
+          this.chooseLoadDataSource = data.list
+          return data
+        })
       },
+      loadDataSource: [],
+      chooseLoadDataSource: [],
       openModal: false, // 选择基本信息弹框是否显示
       warehouseList: [], //  仓库  下拉数据
       warehouseLocList: {}, //  仓位  下拉数据
@@ -351,10 +377,7 @@ export default {
       this.queryParam.productTypeSn2 = ''
       this.queryParam.productTypeSn3 = ''
       this.productType = []
-      this.paginationProps.total = 0
-      this.paginationProps.current = 1
-      this.paginationProps.pageSize = 20
-      this.getDealerProductList(1)
+      this.$refs.table.refresh(true)
     },
     // 打印预览/快捷打印
     handlePrint (type) {
@@ -400,28 +423,6 @@ export default {
         }
       }
     },
-    //  分页  一页多少条change
-    changePageSize (current, pageSize) {
-      this.paginationProps.current = current
-      this.paginationProps.pageSize = pageSize
-      this.getDealerProductList()
-    },
-    //  分页 页码change
-    changePage (current) {
-      this.paginationProps.current = current
-      this.getDealerProductList()
-    },
-    //  已选产品 分页  一页多少条change
-    changeChoosePageSize (current, pageSize) {
-      this.choosePaginationProps.current = current
-      this.choosePaginationProps.pageSize = pageSize
-      this.getChooseDealerProductList()
-    },
-    //  已选产品 分页 页码change
-    changeChoosePage (current) {
-      this.choosePaginationProps.current = current
-      this.getChooseDealerProductList()
-    },
     // 基本信息
     getDetail () {
       sparePartsPurDetail({ id: this.$route.params.id }).then(res => {
@@ -480,7 +481,7 @@ export default {
       sparePartsPurDetailSave(params).then(res => {
         if (res.status == 200) {
           this.$message.success(res.message)
-          this.getChooseDealerProductList()
+          this.$refs.chooseTable.refresh()
           this.spinning = false
         } else {
           this.spinning = false
@@ -515,7 +516,7 @@ export default {
           sparePartsPurDetailDel({ id: row.id }).then(res => {
             if (res.status == 200) {
               _this.$message.success(res.message)
-              _this.getChooseDealerProductList()
+              _this.$refs.chooseTable.refresh()
               _this.spinning = false
             } else {
               _this.spinning = false
@@ -551,9 +552,9 @@ export default {
     changeWarehouseCascade (val, opt, ind, type) {
       let loadData
       if (type == 'dealerProduct') { //  全部产品
-        loadData = this.loadData[ind]
+        loadData = this.loadDataSource[ind]
       } else if (type == 'sparePartsPurDetail') { //  已选产品
-        loadData = this.chooseLoadData[ind]
+        loadData = this.chooseLoadDataSource[ind]
       }
       if (val.length < 2) {
         this.$message.warning('当前仓库无仓位,请选择其他仓库')
@@ -570,7 +571,7 @@ export default {
         loadData.warehouseSn = val[0] ? val[0] : ''
         loadData.warehouseLocationSn = val[1] ? val[1] : ''
         if (type == 'sparePartsPurDetail') { //  已选产品
-          loadData = this.chooseLoadData[ind]
+          loadData = this.chooseLoadDataSource[ind]
           this.handleAdd(loadData, 'edit')
         }
       }
@@ -594,93 +595,6 @@ export default {
       this.queryParam.productTypeSn2 = val[1] ? val[1] : ''
       this.queryParam.productTypeSn3 = val[2] ? val[2] : ''
     },
-    // 产品列表数据
-    getDealerProductList (pageNo, sorter) {
-      this.disabled = true
-      this.loading = true
-      this.paginationProps.current = pageNo || this.paginationProps.current
-      const params = Object.assign({ pageNo: this.paginationProps.current, pageSize: this.paginationProps.pageSize }, this.queryParam)
-      params.enabledFlag = 1
-      // params.sysFlag = 0
-      if (sorter) {
-        params.sortField = sorter.field
-        params.sortOrder = sorter.order
-        params.sortAlias = 'dp'
-      }
-      dealerProductList(params).then(res => {
-        this.loading = false
-        if (res.status == 200) {
-          const data = res.data
-          this.paginationProps.total = Number(res.data.count) || 0
-          this.paginationProps.current = data.pageNo
-          const no = (data.pageNo - 1) * data.pageSize
-          for (var i = 0; i < data.list.length; i++) {
-            data.list[i].no = no + i + 1
-            if (this.defaultWarehouseCascade.length > 0) {
-              data.list[i].warehouseCascade = this.defaultWarehouseCascade
-              data.list[i].warehouseSn = this.defaultWarehouseCascade[0]
-              data.list[i].warehouseLocationSn = this.defaultWarehouseCascade[1]
-            } else {
-              data.list[i].warehouseCascade = undefined
-            }
-          }
-          this.loadData = data.list
-          this.disabled = false
-        } else {
-          this.paginationProps.total = 0
-          this.paginationProps.current = 1
-          this.paginationProps.pageSize = 20
-          this.loadData = []
-        }
-      })
-    },
-    // 已选产品列表数据
-    getChooseDealerProductList (pageNo, sorter) {
-      this.choosePaginationProps.current = pageNo || this.choosePaginationProps.current
-      const params = {
-        pageNo: this.choosePaginationProps.current,
-        pageSize: this.choosePaginationProps.pageSize,
-        sparePartsPurchaseSn: this.$route.params.sn
-      }
-      if (sorter) {
-        params.sortField = sorter.field == 'brandName' ? 'productBrandName' : 'productCode'
-        params.sortOrder = sorter.order
-        params.sortAlias = sorter.field == 'brandName' ? 'dp' : 'sppd'
-      }
-      this.chooseLoading = true
-      sparePartsPurDetailList(params).then(res => {
-        this.chooseLoading = false
-        if (res.status == 200) {
-          this.getDetailCount(params)
-          const data = res.data
-          this.choosePaginationProps.total = Number(res.data.count) || 0
-          this.choosePaginationProps.current = data.pageNo
-          const no = (data.pageNo - 1) * data.pageSize
-          for (var i = 0; i < data.list.length; i++) {
-            data.list[i].no = no + i + 1
-            data.list[i].putCostBackups = data.list[i].putCost
-            data.list[i].putQtyBackups = data.list[i].putQty
-            const warehouseSn = data.list[i].warehouseSn || undefined
-            const warehouseLocationSn = data.list[i].warehouseLocationSn || undefined
-            if (warehouseSn || warehouseLocationSn) {
-              data.list[i].warehouseSnBackups = warehouseSn
-              data.list[i].warehouseLocationSnBackups = warehouseLocationSn
-              data.list[i].warehouseCascade = [warehouseSn, warehouseLocationSn]
-            } else {
-              data.list[i].warehouseCascade = undefined
-            }
-            // 成本小计  由于数据库内小数位数为4位,页面则需显示2位。因此会做小数运算精度处理
-            data.list[i].costSubtotal = getOperationalPrecision(data.list[i].putCost, data.list[i].putQty)
-          }
-          this.chooseLoadData = data.list
-        } else {
-          this.choosePaginationProps.total = 0
-          this.choosePaginationProps.current = 1
-          this.choosePaginationProps.pageSize = 20
-          this.chooseLoadData = []
-        }
-      })
-    },
     //  仓库仓位  级联  列表
     getWarehouseCascade () {
       const _this = this
@@ -694,8 +608,8 @@ export default {
               item.warehouseLocationList.filter(subItem => {
                 if (subItem.defaultFlag == 1 && subItem.wasteFlag == 0) {
                   _this.defaultWarehouseCascade[1] = subItem.warehouseLocationSn
-                  _this.getDealerProductList(1)
-                  _this.getChooseDealerProductList(1)
+                  _this.$refs.table.refresh(true)
+                  _this.$refs.chooseTable.refresh(true)
                 }
               })
             }
@@ -739,20 +653,11 @@ export default {
       return (
         option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
       )
-    },
-    // 选择产品 表格  change
-    onTableChange (pagination, filters, sorter) {
-      this.getDealerProductList(this.paginationProps.current, sorter)
-    },
-    // 已选产品 表格  change
-    onChooseTableChange (pagination, filters, sorter) {
-      this.getChooseDealerProductList(this.choosePaginationProps.current, sorter)
     }
   },
   beforeRouteEnter (to, from, next) {
     next(vm => {
       vm.openModal = false
-      vm.getChooseDealerProductList(1)
       vm.getWarehouseCascade()
       vm.getDetail()
       vm.getProductBrand()
@@ -764,6 +669,14 @@ export default {
 
 <style lang="less">
   .bulkWarehousingOrderEdit-wrap{
+    position: relative;
+    height: 100%;
+    padding-bottom: 51px;
+    box-sizing: border-box;
+    >.ant-spin-nested-loading{
+      overflow-y: scroll;
+      height: 100%;
+    }
     .bulkWarehousingOrderEdit-cont{
       margin-bottom: 10px;
       .sub-title{
@@ -771,19 +684,6 @@ export default {
         color: #808695;
         margin-left: 10px;
       }
-      .tag-txt{
-        font-size: 12px;
-        color: #ed1c24;
-      }
-      .edit-circle-btn{
-        margin-left: 15px;
-        i{
-          vertical-align: text-bottom;
-        }
-      }
-      .import-btn{
-        margin-left: 15px;
-      }
     }
   }
 </style>

+ 23 - 5
src/views/bulkManagement/bulkWarehousingOrder/list.vue

@@ -2,7 +2,7 @@
   <a-card size="small" :bordered="false" class="bulkWarehousingOrderList-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
       <!-- 搜索条件 -->
-      <div class="table-page-search-wrapper">
+      <div ref="tableSearch" class="table-page-search-wrapper">
         <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
@@ -91,8 +91,9 @@
       </a-alert>
       <!-- 列表 -->
       <s-table
-        class="sTable"
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
         size="small"
         :rowKey="(record) => record.id"
         :columns="columns"
@@ -180,9 +181,7 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        if (this.tableHeight == 0) {
-          this.tableHeight = window.innerHeight - 370
-        }
+        this.spinning = true
         return sparePartsPurList(Object.assign(parameter, this.queryParam)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
@@ -190,6 +189,7 @@ export default {
             data.list[i].no = no + i + 1
           }
           this.disabled = false
+          this.spinning = false
           this.dataTotalCount = data.count || 0
           this.getTotal(Object.assign(parameter, this.queryParam))
           return data
@@ -334,6 +334,24 @@ export default {
           this.supplierList = []
         }
       })
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 285
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   },
   beforeRouteEnter (to, from, next) {

+ 10 - 0
src/views/customerManagement/customerInfo/edit.vue

@@ -348,8 +348,18 @@ export default {
 
 <style lang="less">
 .customerManagementEdit-wrap {
+  height: 100%;
+  >.ant-spin-nested-loading{
+    height: 100%;
+    .ant-spin-container{
+      height: 90%;
+    }
+  }
 	.customerManagementEdit-back {
 		margin-bottom: 10px;
 	}
+  .customerManagementEdit-table-page-wrapper{
+    height: 100%;
+  }
 }
 </style>

+ 42 - 41
src/views/customerManagement/customerInfo/list.vue

@@ -2,14 +2,9 @@
   <a-card size="small" :bordered="false" class="customerManagementList-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
       <!-- 搜索条件 -->
-      <div class="table-page-search-wrapper">
+      <div ref="tableSearch" class="table-page-search-wrapper">
         <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
           <a-row :gutter="15">
-            <a-col :md="6" :sm="24">
-              <a-form-item label="创建时间">
-                <rangeDate ref="rangeDate" @change="dateChange" />
-              </a-form-item>
-            </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="客户名称">
                 <a-input id="customerManagementList-customerName" v-model.trim="queryParam.customerName" allowClear placeholder="请输入客户名称"/>
@@ -20,10 +15,15 @@
                 <a-input id="customerManagementList-contactName" v-model.trim="queryParam.contactName" allowClear placeholder="请输入联系人"/>
               </a-form-item>
             </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="最后销售时间">
+                <rangeDate ref="rangeSaleDate" @change="dateSaleChange" />
+              </a-form-item>
+            </a-col>
             <template v-if="advanced">
               <a-col :md="6" :sm="24">
-                <a-form-item label="最后销售时间">
-                  <rangeDate ref="rangeSaleDate" @change="dateSaleChange" />
+                <a-form-item label="是否卫星仓客户">
+                  <v-select code="FLAG" id="customerManagementList-satelliteFlag" v-model="queryParam.satelliteFlag" allowClear placeholder="请选择"></v-select>
                 </a-form-item>
               </a-col>
               <a-col :md="12" :sm="24">
@@ -54,11 +54,6 @@
                   </a-form-item>
                 </a-row>
               </a-col>
-              <a-col :md="6" :sm="24">
-                <a-form-item label="是否卫星仓客户">
-                  <v-select code="FLAG" id="customerManagementList-satelliteFlag" v-model="queryParam.satelliteFlag" allowClear placeholder="请选择"></v-select>
-                </a-form-item>
-              </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="客户类型">
                   <a-select v-model="queryParam.customerTypeSn" allowClear placeholder="请选择客户类型" style="max-width: 240px;">
@@ -69,8 +64,8 @@
             </template>
             <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
               <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="customerManagementList-refresh">查询</a-button>
-              <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="customerManagementList-reset">重置</a-button>
-              <a @click="advanced=!advanced" style="margin-left: 8px">
+              <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="customerManagementList-reset">重置</a-button>
+              <a @click="advanced=!advanced" style="margin-left: 5px">
                 {{ advanced ? '收起' : '展开' }}
                 <a-icon :type="advanced ? 'up' : 'down'"/>
               </a>
@@ -85,13 +80,14 @@
       </div>
       <!-- 列表 -->
       <s-table
-        class="sTable"
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
         size="small"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1400, y: tableHeight }"
+        :scroll="{ x: 1220, y: tableHeight }"
         bordered>
         <!-- 操作 -->
         <template slot="action" slot-scope="text, record">
@@ -137,8 +133,6 @@ export default {
       advanced: false, // 高级搜索 展开/关闭
       tableHeight: 0,
       queryParam: { //  查询条件
-        beginDate: '',
-        endDate: '',
         saleBeginDate: '',
         saleEndDate: '',
         customerName: undefined, //  客户名称
@@ -151,23 +145,21 @@ 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: 'no', width: 70, align: 'center' },
         { title: '客户名称', dataIndex: 'customerName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '联系人', dataIndex: 'contactName', width: 140, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '联系电话', dataIndex: 'contactTel', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '联系手机', dataIndex: 'contactMobile', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '最后销售时间', dataIndex: 'lastSaleTime', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '是否卫星仓', dataIndex: 'satelliteFlagDictValue', width: 110, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '启用禁用', scopedSlots: { customRender: 'enableAction' }, width: 100, align: 'center', fixed: 'right' },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 130, align: 'center', fixed: 'right' }
+        { title: '联系电话', dataIndex: 'contactTel', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '联系手机', dataIndex: 'contactMobile', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '最后销售时间', dataIndex: 'lastSaleTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '是否卫星仓', dataIndex: 'satelliteFlagDictValue', width: 90, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '启用禁用', scopedSlots: { customRender: 'enableAction' }, width: 90, align: 'center', fixed: 'right' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center', fixed: 'right' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        if (this.tableHeight == 0) {
-          this.tableHeight = window.innerHeight - 290
-        }
+        this.spinning = true
         return custList(Object.assign(parameter, this.queryParam)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
@@ -176,6 +168,7 @@ export default {
             data.list[i].enabledFlag = data.list[i].enabledFlag + '' === '1'
           }
           this.disabled = false
+          this.spinning = false
           return data
         })
       },
@@ -188,11 +181,6 @@ export default {
     }
   },
   methods: {
-    //  时间  change
-    dateChange (date) {
-      this.queryParam.beginDate = date[0] ? date[0] + ' 00:00:00' : ''
-      this.queryParam.endDate = date[1] ? date[1] + ' 23:59:59' : ''
-    },
     //  时间  change
     dateSaleChange (date) {
       this.queryParam.saleBeginDate = date[0] ? date[0] + ' 00:00:00' : ''
@@ -200,12 +188,7 @@ export default {
     },
     //  重置
     resetSearchForm () {
-      this.$refs.rangeDate.resetDate()
-      if (this.advanced) {
-        this.$refs.rangeSaleDate.resetDate()
-      }
-      this.queryParam.beginDate = ''
-      this.queryParam.endDate = ''
+      this.$refs.rangeSaleDate.resetDate()
       this.queryParam.saleBeginDate = ''
       this.queryParam.saleEndDate = ''
       this.queryParam.customerName = undefined
@@ -339,6 +322,24 @@ export default {
           }
         }
       })
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 245
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   },
   beforeRouteEnter (to, from, next) {

+ 32 - 47
src/views/power/role/roleList.vue

@@ -1,7 +1,7 @@
 <template>
   <a-card size="small" :bordered="false">
     <a-spin :spinning="spinning" tip="Loading...">
-      <div class="table-page-search-wrapper">
+      <div ref="tableSearch" class="table-page-search-wrapper">
         <a-form layout="inline">
           <a-row :gutter="48">
             <a-col :md="6" :sm="24">
@@ -31,12 +31,14 @@
         <a-button v-if="$hasPermissions('B_powerMD_role_add')" type="primary" class="button-error" @click="openModal" id="roleList-openModal">新增</a-button>
       </div>
       <s-table
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px', wordBreak: 'break-all' }"
         size="small"
         rowKey="id"
         :columns="columns"
         :data="loadData"
-        style="word-break: break-all;"
+        :scroll="{ y: tableHeight }"
         bordered>
         <!-- 启用禁用 -->
         <span slot="status" slot-scope="text, record">
@@ -95,6 +97,7 @@ export default {
   data () {
     return {
       spinning: false,
+      tableHeight: 0,
       // 查询参数
       queryParam: {
         name: '',
@@ -105,52 +108,17 @@ export default {
       itemData: {}, // 编辑行数据
       menuData: {},
       // 表头
-      columns: [{
-        title: '序号',
-        dataIndex: 'no',
-        width: 60,
-        align: 'center'
-      },
-      {
-        title: '创建时间',
-        dataIndex: 'createDate',
-        width: 150,
-        align: 'center'
-      },
-      {
-        title: '角色名称',
-        dataIndex: 'name',
-        width: 150,
-        align: 'center'
-      },
-      {
-        title: '角色描述',
-        dataIndex: 'remarks',
-        width: 200,
-        align: 'center',
-        scopedSlots: {
-          customRender: 'remarks'
-        }
-      },
-      {
-        title: '状态',
-        width: 150,
-        align: 'center',
-        scopedSlots: {
-          customRender: 'status'
-        }
-      },
-      {
-        title: '操作',
-        width: 150,
-        align: 'center',
-        scopedSlots: {
-          customRender: 'action'
-        }
-      }
+      columns: [
+        { title: '序号', dataIndex: 'no', width: 60, align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: 150, align: 'center' },
+        { title: '角色名称', dataIndex: 'name', width: 150, align: 'center' },
+        { title: '角色描述', dataIndex: 'remarks', width: 200, align: 'center', scopedSlots: { customRender: 'remarks' } },
+        { title: '状态', width: 150, align: 'center', scopedSlots: { customRender: 'status' } },
+        { title: '操作', width: 150, align: 'center', scopedSlots: { customRender: 'action' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
+        this.spinning = true
         return getPowerRoleList(Object.assign(parameter, this.queryParam)).then(res => {
           const no = (res.data.pageNo - 1) * res.data.pageSize
           for (let i = 0; i < res.data.list.length; i++) {
@@ -158,6 +126,7 @@ export default {
             _item.no = no + i + 1
             _item.isEnable = _item.isEnable + '' === '1'
           }
+          this.spinning = false
           return res.data
         })
       },
@@ -246,6 +215,24 @@ export default {
           this.spinning = false
         }
       })
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 245
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   }
 }
@@ -260,11 +247,9 @@ export default {
 		color: #fff;
 		margin-right: 5px;
 	}
-
 	.red-text {
 		background-color: red;
 	}
-
 	.menu-text {
 		background-color: #f90;
 	}

+ 26 - 5
src/views/power/user/userList.vue

@@ -1,7 +1,7 @@
 <template>
   <a-card size="small" :bordered="false">
     <a-spin :spinning="spinning" tip="Loading...">
-      <div class="table-page-search-wrapper">
+      <div ref="tableSearch" class="table-page-search-wrapper">
         <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
@@ -30,15 +30,15 @@
         <a-button v-if="$hasPermissions('B_powerMD_user_add')" type="primary" class="button-error" @click="openModal">新增</a-button>
       </div>
       <s-table
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px', wordBreak: 'break-all' }"
         size="small"
         rowKey="id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1360 }"
-        style="word-break: break-all;"
-        bordered
-      >
+        :scroll="{ x: 1360, y: tableHeight }"
+        bordered>
         <span slot="status" slot-scope="text, record">
           <a-switch v-if="$hasPermissions('B_powerMD_user_enable') && record.superAdmin!=1" checkedChildren="启用" unCheckedChildren="禁用" v-model="record.loginFlag" @change="changeFlagHandle(text, record)"/>
           <span v-else>{{ record.loginFlag==1?'已启用':'已禁用' }}</span>
@@ -86,6 +86,7 @@ export default {
   data () {
     return {
       spinning: false,
+      tableHeight: 0,
       // 查询参数
       queryParam: {
         name: '',
@@ -108,6 +109,7 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
+        this.spinning = true
         return getPowerUserList(Object.assign(parameter, this.queryParam)).then(res => {
           const no = (res.data.pageNo - 1) * res.data.pageSize
           for (let i = 0; i < res.data.list.length; i++) {
@@ -115,6 +117,7 @@ export default {
             _item.no = no + i + 1
             _item.loginFlag = _item.loginFlag + '' === '1'
           }
+          this.spinning = false
           return res.data
         })
       },
@@ -217,6 +220,24 @@ export default {
           this.spinning = false
         }
       })
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 245
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   }
 }

+ 42 - 24
src/views/productManagement/priceChangeRecord/list.vue

@@ -1,7 +1,7 @@
 <template>
   <a-card size="small" :bordered="false" class="productChangeRecordList-wrap">
     <!-- 搜索条件 -->
-    <div class="table-page-search-wrapper">
+    <div ref="tableSearch" class="table-page-search-wrapper">
       <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
         <a-row :gutter="15">
           <a-col :md="6" :sm="24">
@@ -69,13 +69,14 @@
     </div>
     <!-- 列表 -->
     <s-table
-      class="sTable"
+      class="sTable fixPagination"
       ref="table"
+      :style="{ height: tableHeight+84.5+'px' }"
       size="small"
       :rowKey="(record) => record.id"
       :columns="columns"
       :data="loadData"
-      :scroll="{ x: 2340, y: tableHeight }"
+      :scroll="{ x: 1760, y: tableHeight }"
       bordered>
       <!-- 产品分类 -->
       <template slot="productType" slot-scope="text, record">
@@ -145,9 +146,7 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        if (this.tableHeight == 0) {
-          this.tableHeight = window.innerHeight - 320
-        }
+        this.spinning = true
         return productPriceChangeList(Object.assign(parameter, this.queryParam)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
@@ -156,6 +155,7 @@ export default {
           }
           this.total = data.count || 0
           this.disabled = false
+          this.spinning = false
           return data
         })
       },
@@ -174,13 +174,13 @@ export default {
     // 设置表头
     getColumns () {
       this.columns = [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
-        { title: '变更时间', dataIndex: 'updateDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '序号', dataIndex: 'no', width: 70, align: 'center', fixed: 'left' },
+        { title: '变更时间', dataIndex: 'updateDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品名称', dataIndex: 'productEntity.name', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
         { title: '产品编码', dataIndex: 'productEntity.code', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '品牌', dataIndex: 'productEntity.productBrandName', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, align: 'center' },
-        { title: '单位', dataIndex: 'productEntity.unit', width: 100, align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '品牌', dataIndex: 'productEntity.productBrandName', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 120, align: 'center' },
+        { title: '单位', dataIndex: 'productEntity.unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } }
       ]
       const cArr = [
         {
@@ -189,8 +189,8 @@ export default {
           width: 200,
           align: 'center',
           children: [
-            { title: '变更前', dataIndex: 'beforeTerminalPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-            { title: '变更后', scopedSlots: { customRender: 'afterTerminalPrice' }, width: 100, align: 'center' }
+            { title: '变更前', dataIndex: 'beforeTerminalPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+            { title: '变更后', scopedSlots: { customRender: 'afterTerminalPrice' }, width: 80, align: 'center' }
           ]
         },
         {
@@ -199,11 +199,11 @@ export default {
           width: 200,
           align: 'center',
           children: [
-            { title: '变更前', dataIndex: 'beforeCarOwnersPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-            { title: '变更后', scopedSlots: { customRender: 'afterCarOwnersPrice' }, width: 100, align: 'center' }
+            { title: '变更前', dataIndex: 'beforeCarOwnersPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+            { title: '变更后', scopedSlots: { customRender: 'afterCarOwnersPrice' }, width: 80, align: 'center' }
           ]
         },
-        { title: '变更原因', dataIndex: 'changeReason', width: 160, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
+        { title: '变更原因', dataIndex: 'changeReason', width: 150, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true }
       ]
       getCurrentDealer().then(res => {
         if (res.status == 200) {
@@ -214,8 +214,8 @@ export default {
               width: 200,
               align: 'center',
               children: [
-                { title: '变更前', dataIndex: 'beforeProvincePrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-                { title: '变更后', scopedSlots: { customRender: 'afterProvincePrice' }, width: 100, align: 'center' }
+                { title: '变更前', dataIndex: 'beforeProvincePrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+                { title: '变更后', scopedSlots: { customRender: 'afterProvincePrice' }, width: 80, align: 'center' }
               ]
             },
             {
@@ -224,8 +224,8 @@ export default {
               width: 200,
               align: 'center',
               children: [
-                { title: '变更前', dataIndex: 'beforeCityPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-                { title: '变更后', scopedSlots: { customRender: 'afterCityPrice' }, width: 100, align: 'center' }
+                { title: '变更前', dataIndex: 'beforeCityPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+                { title: '变更后', scopedSlots: { customRender: 'afterCityPrice' }, width: 80, align: 'center' }
               ]
             })
           } else if (res.data.dealerLevel && res.data.dealerLevel == 'CITY') { //  市级
@@ -235,8 +235,8 @@ export default {
               width: 200,
               align: 'center',
               children: [
-                { title: '变更前', dataIndex: 'beforeCityPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-                { title: '变更后', scopedSlots: { customRender: 'afterCityPrice' }, width: 100, align: 'center' }
+                { title: '变更前', dataIndex: 'beforeCityPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+                { title: '变更后', scopedSlots: { customRender: 'afterCityPrice' }, width: 80, align: 'center' }
               ]
             })
           }
@@ -247,8 +247,8 @@ export default {
               width: 200,
               align: 'center',
               children: [
-                { title: '变更前', dataIndex: 'beforeSpecialPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-                { title: '变更后', scopedSlots: { customRender: 'afterSpecialPrice' }, width: 100, align: 'center' }
+                { title: '变更前', dataIndex: 'beforeSpecialPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+                { title: '变更后', scopedSlots: { customRender: 'afterSpecialPrice' }, width: 80, align: 'center' }
               ]
             })
           }
@@ -321,6 +321,24 @@ export default {
           this.productTypeList = []
         }
       })
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 195
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   },
   beforeRouteEnter (to, from, next) {

+ 24 - 6
src/views/productManagement/productBrand/list.vue

@@ -2,7 +2,7 @@
   <a-card size="small" :bordered="false" class="productBrandList-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
       <!-- 搜索条件 -->
-      <div class="table-page-search-wrapper">
+      <div ref="tableSearch" class="table-page-search-wrapper">
         <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
@@ -29,8 +29,9 @@
       </div>
       <!-- 列表 -->
       <s-table
-        class="sTable"
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
         size="small"
         :rowKey="(record) => record.id"
         :columns="columns"
@@ -92,9 +93,7 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        if (this.tableHeight == 0) {
-          this.tableHeight = window.innerHeight - 290
-        }
+        this.spinning = true
         return dealerProductBrandList(Object.assign(parameter, this.queryParam)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
@@ -102,6 +101,7 @@ export default {
             data.list[i].no = no + i + 1
           }
           this.disabled = false
+          this.spinning = false
           return data
         })
       },
@@ -153,7 +153,25 @@ export default {
       })
     },
     //  导入
-    handleImport () {}
+    handleImport () {},
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 245
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
+    }
   }
 }
 </script>

+ 1 - 0
src/views/productManagement/productCategory/list.vue

@@ -164,6 +164,7 @@ export default {
 
 <style lang="less">
   .productCategoryList-wrap{
+    height: 100%;
     // 表格
     .s-table{
       .btn-edit-s{

+ 10 - 0
src/views/productManagement/productInfo/edit.vue

@@ -310,6 +310,16 @@ export default {
 </script>
 <style lang="less">
   .productInfoEdit-wrap{
+    height: 100%;
+    >.ant-spin-nested-loading{
+      height: 100%;
+      .ant-spin-container{
+        height: 90%;
+      }
+    }
+    .productInfoEdit-table-page-wrapper{
+      height: 100%;
+    }
     .productInfoEdit-back{
       margin-bottom: 10px;
     }

+ 35 - 17
src/views/productManagement/productInfo/list.vue

@@ -2,7 +2,7 @@
   <a-card size="small" :bordered="false" class="productInfoList-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
       <!-- 搜索条件 -->
-      <div class="table-page-search-wrapper">
+      <div ref="tableSearch" class="table-page-search-wrapper">
         <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
@@ -80,13 +80,14 @@
       </div>
       <!-- 列表 -->
       <s-table
-        class="sTable"
+        class="sTable fixPagination"
         ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
         size="small"
         :rowKey="(record) => record.id"
         :columns="columns"
         :data="loadData"
-        :scroll="{ x: 1880, y: tableHeight }"
+        :scroll="{ x: 1300, y: tableHeight }"
         bordered>
         <!-- 产品分类 -->
         <template slot="productType" slot-scope="text, record">
@@ -158,25 +159,23 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false, // 导出loading
       columns: [
-        { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
-        { title: '产品编码', dataIndex: 'code', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
+        { title: '产品编码', dataIndex: 'code', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品名称', dataIndex: 'name', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
-        { title: '原厂编码', dataIndex: 'origCode', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品品牌', dataIndex: 'productBrandName', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 200, align: 'center', ellipsis: true },
-        { title: '经销批发价', dataIndex: 'specialPrice', width: 110, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '终端价', dataIndex: 'terminalPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '车主价', dataIndex: 'carOwnersPrice', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '创建时间', dataIndex: 'createDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: 140, align: 'center', fixed: 'right' },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: 150, align: 'center', fixed: 'right' }
+        { title: '原厂编码', dataIndex: 'origCode', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品品牌', dataIndex: 'productBrandName', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 120, align: 'center' },
+        { title: '经销批发价', dataIndex: 'specialPrice', width: 100, 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: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: 90, align: 'center', fixed: 'right' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: 100, align: 'center', fixed: 'right' }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        if (this.tableHeight == 0) {
-          this.tableHeight = window.innerHeight - 330
-        }
+        this.spinning = true
         return dealerProductList(Object.assign(parameter, this.queryParam)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
@@ -188,6 +187,7 @@ export default {
             data.list[i].productTypeName = productTypeName1 + productTypeName2 + productTypeName3
           }
           this.disabled = false
+          this.spinning = false
           return data
         })
       },
@@ -318,6 +318,24 @@ export default {
           this.productTypeList = []
         }
       })
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 245
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   },
   beforeRouteEnter (to, from, next) {

+ 28 - 10
src/views/productManagement/productInfoJg/list.vue

@@ -1,7 +1,7 @@
 <template>
   <a-card size="small" :bordered="false" class="productInfoList-wrap">
     <!-- 搜索条件 -->
-    <div class="table-page-search-wrapper">
+    <div ref="tableSearch" class="table-page-search-wrapper">
       <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
         <a-row :gutter="15">
           <a-col :md="6" :sm="24">
@@ -74,18 +74,19 @@
     </div>
     <!-- 列表 -->
     <s-table
-      class="sTable"
+      class="sTable fixPagination"
       ref="table"
+      :style="{ height: tableHeight+84.5+'px' }"
       size="small"
       :rowKey="(record) => record.id"
       :columns="columns"
       :data="loadData"
-      :scroll="{ x: 1510, y: tableHeight }"
+      :scroll="{ x: 1350, y: tableHeight }"
       bordered>
       <!-- 产品图片 -->
       <template slot="imageUrl" slot-scope="text, record">
         <div v-if="record.productPicList && record.productPicList.length>0">
-          <img :src="record.productPicList[0].imageUrl || ''" width="30" height="30" class="imageUrl" @click="inited(record.productPicList)" />
+          <img :src="record.productPicList[0].imageUrl+'?x-oss-process=image/resize,h_30,m_lfit' || ''" width="30" height="30" class="imageUrl" @click="inited(record.productPicList)" />
         </div>
         <span v-else>--</span>
       </template>
@@ -129,9 +130,7 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        if (this.tableHeight == 0) {
-          this.tableHeight = window.innerHeight - 280
-        }
+        this.spinning = true
         return productList(Object.assign(parameter, this.queryParam)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
@@ -139,6 +138,7 @@ export default {
             data.list[i].no = no + i + 1
           }
           this.disabled = false
+          this.spinning = false
           return data
         })
       },
@@ -181,14 +181,14 @@ export default {
         { title: '产品名称', dataIndex: 'name', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '原厂编码', dataIndex: 'origCode', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品图片', scopedSlots: { customRender: 'imageUrl' }, width: 80, align: 'center' },
-        { title: '产品品牌', dataIndex: 'productBrandName', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 100, align: 'center' }
+        { title: '产品品牌', dataIndex: 'productBrandName', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: 120, align: 'center' }
       ]
       const cArr = [
         { 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: '创建时间', dataIndex: 'createDate', width: 140, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', dataIndex: 'onlineFalgDictValue', width: 80, align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '状态', dataIndex: 'onlineFalgDictValue', width: 60, align: 'center', customRender: function (text) { return text || '--' } }
       ]
       getCurrentDealer().then(res => {
         if (res.status == 200) {
@@ -259,6 +259,24 @@ export default {
           this.productTypeList = []
         }
       })
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 195
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   },
   beforeRouteEnter (to, from, next) {

+ 13 - 8
src/views/salesManagement/salesQuery/queryPart.vue

@@ -235,17 +235,16 @@ export default {
       productTypeList: [], //  产品分类  下拉数据
       warehouseList: [], // 仓库列表
       columnsBak: [
-        // { title: '序号', dataIndex: 'no', width: 80, align: 'center' },
         { title: '产品编码', dataIndex: 'productCode', width: 150, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'productName', width: 150, align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '原厂编码', dataIndex: 'productOrigCode', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌', dataIndex: 'brandName', width: 100, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
         { title: '仓库', dataIndex: 'warehouseName', width: 100, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
         { title: '仓位', dataIndex: 'warehouseLocationName', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '库存数量', dataIndex: 'currentQty', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '单位', dataIndex: 'unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '成本价', dataIndex: 'putCost', width: 60, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '市级价', dataIndex: 'dealerProduct.cityPrice', width: 60, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '成本价', dataIndex: 'putCost', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '市级价', dataIndex: 'dealerProduct.cityPrice', width: 80, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '售价', dataIndex: 'salePrice', scopedSlots: { customRender: 'salePrice' }, width: 100, align: 'center' },
         { title: '销售数量', dataIndex: 'salesNums', scopedSlots: { customRender: 'nums' }, width: 100, align: 'center' },
         { title: '操作', dataIndex: 'action', scopedSlots: { customRender: 'action' }, width: 150, align: 'center', fixed: 'right' }
@@ -319,21 +318,27 @@ export default {
     // 设置列
     onSettingChange (v) {
       const k = ['productOrigCode', 'brandName', 'warehouseName', 'warehouseLocationName', 'currentQty', 'unit', 'putCost', 'dealerProduct.cityPrice']
-      const a = ['no', 'productCode', 'productName']
+      const a = ['productCode', 'productName']
       const b = ['salePrice', 'salesNums', 'action']
       const c = this.settingColVal
       const q = k.filter(item => c.indexOf(item) >= 0)
-      const r = a.concat(q).concat(b)
+      const o = a.concat(q).concat(b) //  列
+      const r = q.concat(b) //  计算表格宽度
       const d = []
       let w = 0
+      for (let i = 0; i < o.length; i++) {
+        const row = this.columnsBak.find(item => item.dataIndex == o[i])
+        if (row) {
+          d.push(row)
+        }
+      }
       for (let i = 0; i < r.length; i++) {
         const row = this.columnsBak.find(item => item.dataIndex == r[i])
         if (row) {
           w = w + row.width
-          d.push(row)
         }
       }
-      this.tableWidth = w
+      this.tableWidth = w + 350
       this.columns = d
     },
     // 双击列表

+ 23 - 5
src/views/supplierManagement/supplierInfo/list.vue

@@ -1,7 +1,7 @@
 <template>
   <a-card size="small" :bordered="false" class="supplierInfoList-wrap">
     <!-- 搜索条件 -->
-    <div class="table-page-search-wrapper">
+    <div ref="tableSearch" class="table-page-search-wrapper">
       <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
         <a-row :gutter="15">
           <a-col :md="6" :sm="24">
@@ -32,8 +32,9 @@
     </div>
     <!-- 列表 -->
     <s-table
-      class="sTable"
+      class="sTable fixPagination"
       ref="table"
+      :style="{ height: tableHeight+84.5+'px' }"
       size="small"
       :rowKey="(record) => record.id"
       :columns="columns"
@@ -85,9 +86,7 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
-        if (this.tableHeight == 0) {
-          this.tableHeight = window.innerHeight - 290
-        }
+        this.spinning = true
         return supplierList(Object.assign(parameter, this.queryParam)).then(res => {
           const data = res.data
           const no = (data.pageNo - 1) * data.pageSize
@@ -100,6 +99,7 @@ export default {
             data.list[i].address = provinceName + cityName + countyName + supplierAddress
           }
           this.disabled = false
+          this.spinning = false
           return data
         })
       },
@@ -124,6 +124,24 @@ export default {
       this.itemId = ''
       this.openModal = false
       this.$refs.table.refresh(true)
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 245
+    }
+  },
+  mounted () {
+    const _this = this
+    this.$nextTick(() => { // 页面渲染完成后的回调
+      _this.setTableH()
+    })
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      setTimeout(() => {
+        _this.setTableH()
+      }, 400)
     }
   }
 }