Browse Source

出运明细-加载优化

jbb 1 year ago
parent
commit
95d8a4ec00
6 changed files with 329 additions and 133 deletions
  1. 29 0
      package-lock.json
  2. 1 0
      package.json
  3. 3 0
      src/main.js
  4. 147 0
      src/views/shipment-details/dropp.vue
  5. 137 131
      src/views/shipment-details/shipmentList.vue
  6. 12 2
      yarn.lock

+ 29 - 0
package-lock.json

@@ -61,6 +61,7 @@
         "html-webpack-plugin": "^4.2.0",
         "less": "^3.9.0",
         "mini-css-extract-plugin": "^2.6.1",
+        "vue-easytable": "^2.27.1",
         "vue-template-compiler": "^2.6.10"
       }
     },
@@ -19323,6 +19324,22 @@
       "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.5.8.tgz",
       "integrity": "sha512-Xgi/aLQCcNCiBTUdovy/i4LWx0G7fQnAENBpDWA3J4i87Zlk9DJRksXrClsQ6nnaFRfQVkMimij5GEvAMaXdYw=="
     },
+    "node_modules/vue-easytable": {
+      "version": "2.27.1",
+      "resolved": "https://registry.npmmirror.com/vue-easytable/-/vue-easytable-2.27.1.tgz",
+      "integrity": "sha512-Rs2cqaPYamH8zXQo/f90AyM/ROGMsB5Njb74GpooWacAKEXbHU0wXYvEjSBZ7CcS6TVqliA/ZbgVqOoA/o9bHQ==",
+      "dev": true,
+      "dependencies": {
+        "lodash": "^4.17.20",
+        "resize-observer-polyfill": "^1.5.1",
+        "vue": "^2.6.12",
+        "vue-template-compiler": "^2.6.11"
+      },
+      "peerDependencies": {
+        "lodash": "^4.17.20",
+        "vue": ">= 2.6.0"
+      }
+    },
     "node_modules/vue-eslint-parser": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz",
@@ -37811,6 +37828,18 @@
       "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.5.8.tgz",
       "integrity": "sha512-Xgi/aLQCcNCiBTUdovy/i4LWx0G7fQnAENBpDWA3J4i87Zlk9DJRksXrClsQ6nnaFRfQVkMimij5GEvAMaXdYw=="
     },
+    "vue-easytable": {
+      "version": "2.27.1",
+      "resolved": "https://registry.npmmirror.com/vue-easytable/-/vue-easytable-2.27.1.tgz",
+      "integrity": "sha512-Rs2cqaPYamH8zXQo/f90AyM/ROGMsB5Njb74GpooWacAKEXbHU0wXYvEjSBZ7CcS6TVqliA/ZbgVqOoA/o9bHQ==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.20",
+        "resize-observer-polyfill": "^1.5.1",
+        "vue": "^2.6.12",
+        "vue-template-compiler": "^2.6.11"
+      }
+    },
     "vue-eslint-parser": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz",

+ 1 - 0
package.json

@@ -63,6 +63,7 @@
     "html-webpack-plugin": "^4.2.0",
     "less": "^3.9.0",
     "mini-css-extract-plugin": "^2.6.1",
+    "vue-easytable": "^2.27.1",
     "vue-template-compiler": "^2.6.10"
   },
   "eslintConfig": {

+ 3 - 0
src/main.js

@@ -7,6 +7,8 @@ import Storage from 'vue-ls'
 import router from './router'
 import store from './store/'
 import { VueAxios } from '@/utils/request'
+import "vue-easytable/libs/theme-default/index.css";
+import VueEasytable from "vue-easytable";
 // import * as echarts from 'echarts'
 
 import Antd, { version } from 'ant-design-vue'
@@ -66,6 +68,7 @@ Vue.use(vueBus)
 Vue.use(JeecgComponents)
 Vue.use(VueAreaLinkage)
 Vue.use(preventReClick)
+Vue.use(VueEasytable);
 // Vue.prototype.$echarts = echarts // 全局echarts
 Vue.config.productionTip = false
 

+ 147 - 0
src/views/shipment-details/dropp.vue

@@ -0,0 +1,147 @@
+<template>
+    <div id="declareElementsModal">
+        <a href="javascript:void(0);" @click="changeBao" style="color:green"  v-if="authority">报关要素</a>
+           <a href ="javascript:return false;"  style="opacity: 0.2"  v-if="!authority">报关要素</a>
+           <a-divider type="vertical" />
+          <a href="javascript:void(0);" @click="changeWei" style="color:green">维护款号成分</a>
+          
+          <a-divider type="vertical" />
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多<a-icon type="down"/></a>
+            <!-- 已保存 -->
+            <a-menu slot="overlay" v-if="this.row.submitStatus == '0'">
+              <a-menu-item>
+                <a @click="details()">详情</a>
+              </a-menu-item>
+
+              <a-menu-item>
+                <a @click="edit()">编辑</a>
+              </a-menu-item>
+              <a-menu-item>
+                <a-popconfirm  arrowPointAtCenter title="确定删除吗?" ok-text="是" cancel-text="否" @confirm="handleDelete()">
+                  <a href="javascript:void(0);" style="color:red;">删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+            <!-- 已提交 且 推送成功   -->
+            <a-menu slot="overlay" v-if="this.row.pushState == '1' && this.roe.submitStatus == '1'">
+              <a-menu-item>
+                <a @click="details()">详情</a>
+              </a-menu-item>
+            </a-menu>
+
+            <!-- 已提交 且 推送失败  -->
+            <a-menu slot="overlay" v-if="this.row.pushState == '2' && this.row.submitStatus == '1'">
+              <a-menu-item>
+                <a @click="details()">详情</a>
+              </a-menu-item>
+
+              <a-menu-item>
+                <a-popconfirm title="确定重新推送吗?" ok-text="是" cancel-text="否" @confirm="rePush()">
+                  <a href="javascript:void(0);" style="color:green;">重新推送</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+
+            <!-- 已提交 -->
+            <a-menu slot="overlay" v-if="this.row.submitStatus == '1'">
+              <a-menu-item>
+                <a @click="details()">详情</a>
+              </a-menu-item>
+
+              <!-- <a-menu-item>
+                <a-popconfirm title="确定取消提交吗?" ok-text="是" cancel-text="否" @confirm="cancelSubmit(record)">
+                  <a href="javascript:void(0);" style="color:red;">取消提交</a>
+                </a-popconfirm>
+              </a-menu-item> -->
+
+              <a-menu-item>
+                <a-popconfirm title="确定推送吗?" ok-text="是" cancel-text="否" @confirm="push()">
+                  <a href="javascript:void(0);" style="color:green;">推送</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+
+            <!-- 未推送 -->
+            <a-menu slot="overlay" v-if="this.row.pushState == '0'">
+              <a-menu-item>
+                <a @click="details()">详情</a>
+              </a-menu-item>
+
+              <a-menu-item>
+                <a-popconfirm title="确定推送吗?" ok-text="是" cancel-text="否" @confirm="push()">
+                  <a href="javascript:void(0);" style="color:green;">推送</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+            </a-dropdown>
+    </div>
+  </template>
+  
+  <script>
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import JEllipsis from '@/components/jeecg/JEllipsis'
+  import moment from 'moment'
+  import { USER_AUTH } from "@/store/mutation-types"
+  export default {
+    name: 'Drapp', // 报关要素
+    mixins: [JeecgListMixin],
+    components: { JEllipsis, moment },
+  
+    data() {
+      let ellipsis = (v, l = 20) => <j-ellipsis value={v} length={l} /> // 省略
+  
+      return {
+        authority:true
+      }
+    },
+    // 接收父组件 方法
+    props: {
+            row: Object,
+            column: Object,
+            rowIndex: Number,
+        },
+  
+    created() {  
+        let allAuthes = JSON.parse(sessionStorage.getItem(USER_AUTH));
+           var quanXian = []
+           allAuthes.map(item=>{ quanXian.push(item.action)})
+           if(quanXian.indexOf('cymx:sbys')==-1 && this.queryParam.flourOrGarment=='0'){
+            this.authority = true
+           }else if(quanXian.indexOf('cymx:sbys')==-1 && this.queryParam.flourOrGarment=='1'){
+            this.authority = false
+           }
+    },
+    methods: {
+        changeBao(){
+         this.$emit('triggerT')
+         },
+         changeWei(){
+            this.$emit('triggerW')
+         },
+         details(){
+            this.$emit('details')
+         },
+         edit(){
+            this.$emit('edit')
+         },
+         handleDelete(){
+            this.$emit('handleDelete')
+         },
+         rePush(){
+            this.$emit('rePush')
+         },
+         push(){
+            this.$emit('push')
+         }
+    },
+  
+    computed: {}
+  }
+  </script>
+  <style lang="less" scoped>
+  @import '~@assets/less/common.less';
+  @import '~@assets/less/overwriter.less';
+
+  </style>
+  

+ 137 - 131
src/views/shipment-details/shipmentList.vue

@@ -182,125 +182,11 @@
         <a-button type="primary" icon="close" @click="cancelSubmit">批量取消提交</a-button>
         <a-button type="primary" icon="close" @click="batchDelete">批量删除</a-button>
       </div>
-
-      <!-- 子表  :row-key="record => record.id"  :pagination="ipagination-->
-      <a-table
-        v-if="shipmentListData"
-        bordered
-        ref="TableInfo"
-        rowKey="itemIds"
-        :columns="shipmentListColumns"
-        :data-source="shipmentListData"
-        :loading="loading"
-        :pagination="false"
-        :scroll="{ x: 1500 , y: 600}"
-        :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
-        @change="handleTableChange"
-      >
-        <!-- 推送状态 -->
-        <span slot="pushState" slot-scope="text, record">
-          <a-tag color="#2db7f5" v-if="record.pushState == '0'">未推送</a-tag>
-          <a-tag color="#87d068" v-if="record.pushState == '1'">推送成功</a-tag>
-          <a-tag color="#f50" v-if="record.pushState == '2'">推送失败</a-tag>
-        </span>
-
-        <!-- 单据状态 -->
-        <span slot="state" slot-scope="text, record">
-          <a-tag color="orange" v-if="record.submitStatus == '0'">已保存</a-tag>
-          <a-tag color="green" v-if="record.submitStatus == '1'">已提交</a-tag>
-        </span>
-
-        <!-- 操作 默认按钮  未提交未推送-->
-        <span slot="operationSlot" slot-scope="text, record">
-           <a href="javascript:void(0);" @click="declareElements(record)" style="color:green"  v-if="authority">报关要素</a>
-           <a href ="javascript:return false;"  style="opacity: 0.2"  v-if="!authority">报关要素</a>
-           <a-divider type="vertical" />
-          <a href="javascript:void(0);" @click="itemNumberElement(record)" style="color:green">维护款号成分</a>
-          
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多<a-icon type="down"/></a>
-            <!-- 已保存 -->
-            <a-menu slot="overlay" v-if="record.submitStatus == '0'">
-              <a-menu-item>
-                <a @click="details(record)">详情</a>
-              </a-menu-item>
-
-              <a-menu-item>
-                <a @click="edit(record)">编辑</a>
-              </a-menu-item>
-
-              <!-- <a-menu-item>
-                <a-popconfirm title="确定提交吗?" ok-text="是" cancel-text="否" @confirm="submit(record)">
-                  <a href="javascript:void(0);" style="color:green;">提交</a>
-                </a-popconfirm>
-              </a-menu-item> -->
-
-              <a-menu-item>
-                <a-popconfirm  arrowPointAtCenter title="确定删除吗?" ok-text="是" cancel-text="否" @confirm="handleDelete(record)">
-                  <a href="javascript:void(0);" style="color:red;">删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-
-              <!-- <a-menu-item>
-                <a href="javascript:void(0);" @click="itemNumberElement(record)">维护款号成分</a>
-              </a-menu-item> -->
-            </a-menu>
-
-            <!-- 已提交 且 推送成功   -->
-            <a-menu slot="overlay" v-if="record.pushState == '1' && record.submitStatus == '1'">
-              <a-menu-item>
-                <a @click="details(record)">详情</a>
-              </a-menu-item>
-            </a-menu>
-
-            <!-- 已提交 且 推送失败  -->
-            <a-menu slot="overlay" v-if="record.pushState == '2' && record.submitStatus == '1'">
-              <a-menu-item>
-                <a @click="details(record)">详情</a>
-              </a-menu-item>
-
-              <a-menu-item>
-                <a-popconfirm title="确定重新推送吗?" ok-text="是" cancel-text="否" @confirm="rePush(record)">
-                  <a href="javascript:void(0);" style="color:green;">重新推送</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-
-            <!-- 已提交 -->
-            <a-menu slot="overlay" v-if="record.submitStatus == '1'">
-              <a-menu-item>
-                <a @click="details(record)">详情</a>
-              </a-menu-item>
-
-              <!-- <a-menu-item>
-                <a-popconfirm title="确定取消提交吗?" ok-text="是" cancel-text="否" @confirm="cancelSubmit(record)">
-                  <a href="javascript:void(0);" style="color:red;">取消提交</a>
-                </a-popconfirm>
-              </a-menu-item> -->
-
-              <a-menu-item>
-                <a-popconfirm title="确定推送吗?" ok-text="是" cancel-text="否" @confirm="push(record)">
-                  <a href="javascript:void(0);" style="color:green;">推送</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-
-            <!-- 未推送 -->
-            <a-menu slot="overlay" v-if="record.pushState == '0'">
-              <a-menu-item>
-                <a @click="details(record)">详情</a>
-              </a-menu-item>
-
-              <a-menu-item>
-                <a-popconfirm title="确定推送吗?" ok-text="是" cancel-text="否" @confirm="push(record)">
-                  <a href="javascript:void(0);" style="color:green;">推送</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-      </a-table>
+      
+      <!-- 测试 -->
+      <ve-table :columns="columns" :virtual-scroll-option="virtualScrollOption"  :max-height="600" :table-data="shipmentListData" style="width:100%" :border-y="true" :sort-option="sortOption" :scroll-width="1500"  row-key-field-name="itemIds"   :checkbox-option="checkboxOption">
+      </ve-table>
+      <div v-show="showEmpty" class="empty-data">暂无数据</div>
       <span style="margin-right: 55%;">共勾选{{selectedNumber}}条数</span>
       <span >总数量:{{ allMoney }}</span>
     </a-card>
@@ -335,6 +221,7 @@ import addShipDetDrawer from '@views/shipment-details/addShipDetDrawer.vue'
 import detailsShipDetDrawer from '@views/shipment-details/detailsShipDetDrawer.vue'
 import editShipDetDrawer from '@views/shipment-details/editShipDetDrawer.vue'
 import declareElementsModal from '@views/shipment-details/declareElementsModal.vue'
+import Drapp from './dropp.vue'
 import ReferOrderDataModal from '@views/shipment-details/referOrderDataModal.vue'
 import itemNumEleModal from '@views/shipment-details/itemNumEleModal.vue'
 import { randomUUID } from '@/utils/util'
@@ -353,7 +240,6 @@ import {
   listExportXls,
   deleteBatch
 } from '@api/document/shipmentList'
-
 export default {
   name: 'ShipmentList', // 发运明细列表
   mixins: [JeecgListMixin],
@@ -368,7 +254,8 @@ export default {
     cancelSubmitShipment,
     pushShipment,
     rePushShipment,
-    itemNumEleModal
+    itemNumEleModal,
+    Drapp,
   },
 
   data() {
@@ -384,6 +271,29 @@ export default {
       nextMonthStartDate:'',//下月1号
       nextMonthEndDate:'',//下月最后一天
       allList:'0',
+      virtualScrollOption: {
+        // 是否开启
+         enable: false,
+      },
+      checkboxOption: {
+                    // 行选择改变事件
+                    selectedRowChange: ({ row, isSelected, selectedRowKeys }) => {
+                      this.selectedRowKeys = selectedRowKeys;
+                       this.selectedRows.push(row);
+                       this.selectedNumber =this.selectedRowKeys.length
+                    },
+                    // 全选改变事件
+                    selectedAllChange: ({ isSelected, selectedRowKeys }) => {
+                      this.selectedRowKeys = selectedRowKeys;
+                      this.selectedRows = this.shipmentListData
+                      this.selectedNumber =this.selectedRowKeys.length
+                    },
+                },
+                sortOption: {
+                    sortChange: (params) => {
+                        this.sortChange(params);
+                    },
+                },
       shipmentListColumns: [
         {
           title: '账套',
@@ -646,11 +556,88 @@ export default {
       preDeliveryDate:[],//预发货日期
       returnId:'',//新增后返回的id筛选条件
       returnFlourOrGarment:'',//新增后返回类型条件
+      showEmpty:true,
       pagination: {
         // total: '',
         // current: 0,
         // pageSize: 0
       },
+
+      columns: [
+          {field: "",key: "ju",type: "checkbox",title: "",width: 50, align: "center",ellipsis: {showTitle: true,},},
+          { field: "account", key: "a", title: "账套", align: "center", width: 85,sortBy: "",ellipsis: {showTitle: true,},},
+          { field: "orderNumber", key: "b", title: "销售订单号", align: "center",width: 180,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "itemNumber", key: "c", title: "款号", align: "center",width: 130,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "salesman", key: "d", title: "业务员", align: "center", width: 100,sortBy: "", ellipsis: {showTitle: true,},},
+          { field: "distributionPoint", key: "e", title: "分销点", align: "center", width: 110,sortBy: "", ellipsis: {showTitle: true,},},
+          { field: "smallPo", key: "f", title: "小po", align: "center", width: 110,sortBy: "", ellipsis: {showTitle: true,},},
+          { field: "inventoryName", key: "g", title: "存货名称", align: "center", width: 220,sortBy: "", ellipsis: {showTitle: true,},},
+          { field: "declarationName", key: "h", title: "报关品名", align: "center", width: 175,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "isTc", key: "i", title: "是否TC", align: "center", width: 110,sortBy: "", ellipsis: {showTitle: true,}, renderBodyCell: ({ row, column, rowIndex }, h) => {
+                            const text = row[column.field];
+                            if(text=='0'){
+                              return (
+                                <span>否</span>
+                              ) 
+                            }else{
+                              return (
+                                <span>是</span>
+                              );
+                            }
+                            
+                        },},
+          { field: "preDeliveryDate", key: "j", title: "预发货日期", align: "center", width: 120,sortBy: "", ellipsis: {showTitle: true,}, },
+          { field: "shipmentQuantity", key: "k", title: "数量", align: "center", width: 80,sortBy: "", ellipsis: {showTitle: true,},},
+          { field: "customsDeclarationUnitPrice", key: "m", title: "报关单价", align: "center", width: 100,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "garmentFactory", key: "l", title: "成衣工厂", align: "center", width: 100,sortBy: "" ,ellipsis: {showTitle: true,},},
+          { field: "hsCode", key: "n", title: "HScode", align: "center", width: 120,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "englishProductName", key: "o", title: "英文品名", align: "center", width: 110,sortBy: "",ellipsis: {showTitle: true,},  },
+          { field: "materialComposition", key: "p", title: "物料成分", align: "center", width: 180,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "purOrSubOrder", key: "q", title: "采购/委外订单号", align: "center", width: 180,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "numberOfSets", key: "r", title: "套装件数", align: "center", width: 100,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "packId", key: "s", title: "pack id", align: "center", width: 110,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "customerAbbreviation", key: "t", title: "客户简称", align: "center", width: 100,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "salesDepartment", key: "u", title: "部门", align: "center", width: 100,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "documentNo", key: "v", title: "单据号", align: "center", width: 140,sortBy: "",ellipsis: {showTitle: true,}, },
+          { field: "submitStatus", key: "w", title: "单据状态",fixed: "right", align: "center", width: 110,sortBy: "" ,ellipsis: {showTitle: true,}, renderBodyCell: ({ row, column, rowIndex }, h) => {
+                            const text = row[column.field];
+                            if(text=='0'){
+                              return (
+                                <a-tag color="orange" >已保存</a-tag>
+                              ) 
+                            }else{
+                              return (
+                                <a-tag color="green">已提交</a-tag>
+                              );
+                            }
+                        }},
+          { field: "operation", key: "x",fixed: "right" , title: "操作", align: "center", width: 250, renderBodyCell: ({ row, column, rowIndex }, h) => {
+                            return <Drapp  row={row}  column={column} rowIndex={rowIndex} on-details={() => this.details(row)} on-push={() => this.push(row)} on-rePush={() => this.rePush(row)}  on-edit={() => this.edit(row)} on-handleDelete={() => this.handleDelete(row)} on-triggerT={() => this.declareElements(row)}  on-triggerW={()=>this.itemNumberElement(row)}/>;
+                        }}
+        ],
+        tableData: [
+          {
+            account:'1',
+            orderNumber:'2',
+            itemNumber:'3',
+            salesman:'4',
+            itemIds:'1'
+          },
+          {
+            account:'2',
+            orderNumber:'2',
+            itemNumber:'3',
+            salesman:'4',
+            itemIds:'2'
+          },
+          {
+            account:'3',
+            orderNumber:'2',
+            itemNumber:'3',
+            salesman:'4',
+            itemIds:'3'
+          },
+        ],
       dateFormat: 'YYYY-MM-DD',
       
     }
@@ -660,11 +647,6 @@ export default {
     // this.defalutDate()
   },
   mounted(){
-  },
-   watch:{
-    selectedRowKeys(newVal){
-       this.selectedNumber =newVal.length
-    }
   },
   methods: {
     moment,
@@ -710,16 +692,13 @@ export default {
             this.authority = false
            }
            this.shipmentListData = res.result.records
+           this.showEmpty =  this.shipmentListData.length==0?true:false
+           this.virtualScrollOption.enable =  this.shipmentListData.length>0?true:false
             for (var i=0; i<this.shipmentListData.length; i++){
               this.shipmentListData.randomId = randomUUID();
             }
             
             this.selectedRowKeys = []
-            // this.pagination = {
-            //   total: res.result.total,
-            //   current: res.result.current,
-            //   pageSize: res.result.size
-            // }
           }else {
              this.$message.error(res.message)
              this.loading = false
@@ -1127,6 +1106,22 @@ export default {
         })
       })
     },
+    sortChange(params) {
+                this.shipmentListData.sort((a, b) => {
+                  for (var key in params) {
+                   if(params[key]){
+                    if (params[key] === "asc") {
+                            return a[key] - b[key];
+                        } else if (params[key] === "desc") {
+                            return b[key] - a[key];
+                        } else {
+                            return 0;
+                        }
+                   }
+                  }
+                });
+            },
+
 
     //  推送
     push(record) {
@@ -1322,4 +1317,15 @@ padding-bottom: 0px !important;
 /deep/ .ant-table-thead > tr > th, .ant-table-tbody > tr > td{
   padding: 9px 16px
 }
+.empty-data {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        height: 200px;
+        width: 100%;
+        color: #666;
+        font-size: 16px;
+        border: 1px solid #eee;
+        border-top: 0;
+    }
 </style>

+ 12 - 2
yarn.lock

@@ -12116,6 +12116,16 @@
   "resolved" "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.5.8.tgz"
   "version" "0.5.8"
 
+"vue-easytable@^2.27.1":
+  "integrity" "sha512-Rs2cqaPYamH8zXQo/f90AyM/ROGMsB5Njb74GpooWacAKEXbHU0wXYvEjSBZ7CcS6TVqliA/ZbgVqOoA/o9bHQ=="
+  "resolved" "https://registry.npmmirror.com/vue-easytable/-/vue-easytable-2.27.1.tgz"
+  "version" "2.27.1"
+  dependencies:
+    "lodash" "^4.17.20"
+    "resize-observer-polyfill" "^1.5.1"
+    "vue" "^2.6.12"
+    "vue-template-compiler" "^2.6.11"
+
 "vue-eslint-parser@^2.0.3":
   "integrity" "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw=="
   "resolved" "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz"
@@ -12254,7 +12264,7 @@
     "hash-sum" "^1.0.2"
     "loader-utils" "^1.0.2"
 
-"vue-template-compiler@^2.4.4", "vue-template-compiler@^2.6.10":
+"vue-template-compiler@^2.4.4", "vue-template-compiler@^2.6.10", "vue-template-compiler@^2.6.11":
   "integrity" "sha512-jYM6TClwDS9YqP48gYrtAtaOhRKkbYmbzE+Q51gX5YDr777n7tNI/IZk4QV4l/PjQPNh/FVa/E92sh/RqKMrog=="
   "resolved" "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.13.tgz"
   "version" "2.7.13"
@@ -12267,7 +12277,7 @@
   "resolved" "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz"
   "version" "1.9.1"
 
-"vue@^2.4.4", "vue@^2.5.17", "vue@^2.5.3", "vue@^2.6.10":
+"vue@^2.4.4", "vue@^2.5.17", "vue@^2.5.3", "vue@^2.6.10", "vue@^2.6.12":
   "integrity" "sha512-QnM6ULTNnPmn71eUO+4hdjfBIA3H0GLsBnchnI/kS678tjI45GOUZhXd0oP/gX9isikXz1PAzSnkPspp9EUNfQ=="
   "resolved" "https://registry.npmjs.org/vue/-/vue-2.7.13.tgz"
   "version" "2.7.13"