Browse Source

【申报要素】列表页、新增、详情、编辑抽屉

liangyan0105 3 years ago
parent
commit
b2211d5f03

+ 167 - 157
src/views/advance-packingList/addAdpackingDrawer.vue

@@ -1,6 +1,6 @@
 <template>
   <!-- 新增 预装箱单-->
-  <a-card :bordered="false">
+  <div id="addAdvancePacking">
     <a-drawer
       title="新增预装箱单"
       width="89%"
@@ -10,166 +10,169 @@
       @close="handleCancel"
     >
       <!-- 主表信息 填写 -->
-      <div class="table-page-search-wrapper">
-        <a-form-model layout="inline" ref="form" :model="addAdpacking" :rules="validatorRules">
-          <a-row :gutter="24">
-            <a-col :md="6" :sm="8">
-              <a-form-model-item label="订单号" prop="orderNum">
-                <a-input placeholder="请输入订单号" v-model="addAdpacking.orderNum"></a-input>
-              </a-form-model-item>
-            </a-col>
-
-            <a-col :md="6" :sm="8">
-              <a-form-model-item label="款号" prop="styleNum">
-                <a-input placeholder="请输入款号" v-model="addAdpacking.styleNum"></a-input>
-              </a-form-model-item>
-            </a-col>
-
-            <a-col :md="6" :sm="8">
-              <a-form-model-item label="品名" prop="name">
-                <a-input placeholder="请输入品名" v-model="addAdpacking.name"></a-input>
-              </a-form-model-item>
-            </a-col>
-
-            <a-col :md="6" :sm="8">
-              <a-form-model-item label="尺码范围" prop="sizeRange">
-                <a-input placeholder="请输入尺码范围" v-model="addAdpacking.sizeRange"></a-input>
-                <!-- <a-select placeholder="请选择尺码范围">
+      <a-card :bordered="false">
+        <div class="table-page-search-wrapper">
+          <a-form-model layout="inline" ref="form" :model="addAdpacking" :rules="validatorRules">
+            <a-row :gutter="24">
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="订单号" prop="orderNum">
+                  <a-input placeholder="请输入订单号" v-model="addAdpacking.orderNum"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="款号" prop="styleNum">
+                  <a-input placeholder="请输入款号" v-model="addAdpacking.styleNum"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="品名" prop="name">
+                  <a-input placeholder="请输入品名" v-model="addAdpacking.name"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="尺码范围" prop="sizeRange">
+                  <a-input placeholder="请输入尺码范围" v-model="addAdpacking.sizeRange"></a-input>
+                  <!-- <a-select placeholder="请选择尺码范围">
                 <a-select-option value="">请选择</a-select-option>
                 <a-select-option value="0">客户1</a-select-option>
                 <a-select-option value="1">客户2</a-select-option>
                 <a-select-option value="2">客户3</a-select-option>
               </a-select> -->
-              </a-form-model-item>
-            </a-col>
-
-            <a-col :md="6" :sm="8">
-              <a-form-model-item label="客户" prop="customer">
-                <a-input placeholder="请输入客户" v-model="addAdpacking.customer"></a-input>
-              </a-form-model-item>
-            </a-col>
-
-            <a-col :md="6" :sm="8">
-              <a-form-model-item label="集装箱代号" prop="containerCode">
-                <a-input placeholder="请输入集装箱代号" v-model="addAdpacking.containerCode"></a-input>
-              </a-form-model-item>
-            </a-col>
-
-            <a-col :md="6" :sm="8">
-              <a-form-model-item label="集装箱号" prop="containerNo">
-                <a-input placeholder="请输入集装箱号" v-model="addAdpacking.containerNo"></a-input>
-              </a-form-model-item>
-            </a-col>
-
-            <a-col :md="6" :sm="8">
-              <a-form-model-item label="备注" prop="note">
-                <a-input placeholder="请输入备注" v-model="addAdpacking.note"></a-input>
-              </a-form-model-item>
-            </a-col>
-
-            <a-col :md="6" :sm="8">
-              <a-form-model-item label="成衣工厂" prop="clothesFactory">
-                <a-input placeholder="请输入成衣工厂" v-model="addAdpacking.clothesFactory"></a-input>
-              </a-form-model-item>
-            </a-col>
-          </a-row>
-        </a-form-model>
-      </div>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="客户" prop="customer">
+                  <a-input placeholder="请输入客户" v-model="addAdpacking.customer"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="集装箱代号" prop="containerCode">
+                  <a-input placeholder="请输入集装箱代号" v-model="addAdpacking.containerCode"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="集装箱号" prop="containerNo">
+                  <a-input placeholder="请输入集装箱号" v-model="addAdpacking.containerNo"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="备注" prop="note">
+                  <a-input placeholder="请输入备注" v-model="addAdpacking.note"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="成衣工厂" prop="clothesFactory">
+                  <a-input placeholder="请输入成衣工厂" v-model="addAdpacking.clothesFactory"></a-input>
+                </a-form-model-item>
+              </a-col>
+            </a-row>
+          </a-form-model>
+        </div>
+      </a-card>
 
       <!--操作按钮区域 参照发运明细 増行-->
-      <div class="table-operator">
-        <a-button type="primary" @click="referShipmentDetails" icon="ordered-list">参照发运明细</a-button>
-        <a-button type="primary" @click="handleAddColumn" icon="plus" style="margin-left: 20px">増行</a-button>
-      </div>
-
-      <!-- 子表 ipagination-->
-      <a-spin :spinning="confirmLoading">
-        <a-form-model ref="formRef" :rules="validatorRules">
-          <a-table
-            bordered
-            rowKey="id"
-            :columns="addAdvancePackingColumns"
-            :data-source="addAdvancePackingData"
-            :loading="loading"
-            :pagination="false"
-            :scroll="{ x: 1500 }"
-            @change="handleTableChange"
-          >
-            <!-- 结束箱号 输入框-->
-            <template slot="endBoxNo" slot-scope="text, record, index">
-              <a-form-model-item prop="endBoxNo" :rules="rules.styleNum" required>
-                <a-input style="width:100%" type="text" v-model="record.endBoxNo" />
-              </a-form-model-item>
-            </template>
-
-            <!-- 颜色(中英文) -->
-            <template slot="colorChUsa" slot-scope="text, record, index">
-              <a-form-model-item prop="colorChUsa" :rules="rules.styleNum" required>
-                <a-input style="width:100%" type="text" v-model="record.colorChUsa" />
-              </a-form-model-item>
-            </template>
-
-            <!-- 箱数 -->
-            <template slot="boxes" slot-scope="text, record, index">
-              <a-form-model-item prop="boxes" :rules="rules.styleNum" required>
-                <a-input style="width:100%" type="text" v-model="record.boxes" />
-              </a-form-model-item>
-            </template>
-
-            <!-- 总件数 -->
-            <template slot="totalPackagesNum" slot-scope="text, record, index">
-              <a-form-model-item prop="totalPackagesNum" :rules="rules.styleNum" required>
-                <a-input style="width:100%" type="text" v-model="record.totalPackagesNum" />
-              </a-form-model-item>
-            </template>
-
-            <!-- 总净重 -->
-            <template slot="totalSuttle" slot-scope="text, record, index">
-              <a-form-model-item prop="totalSuttle" :rules="rules.styleNum" required>
-                <a-input style="width:100%" type="text" v-model="record.totalSuttle" />
-              </a-form-model-item>
-            </template>
-
-            <!-- 总毛重 -->
-            <template slot="totalRoughWeigh" slot-scope="text, record, index">
-              <a-form-model-item prop="totalRoughWeigh" :rules="rules.styleNum" required>
-                <a-input style="width:100%" type="text" v-model="record.totalRoughWeigh" />
-              </a-form-model-item>
-            </template>
-
-            <!-- 外箱宽度 -->
-            <template slot="boxWidth" slot-scope="text, record, index">
-              <a-form-model-item prop="boxWidth" :rules="rules.styleNum" required>
-                <a-input style="width:100%" type="text" v-model="record.boxWidth" />
-              </a-form-model-item>
-            </template>
-
-            <!-- 外箱高度 -->
-            <template slot="boxHeight" slot-scope="text, record, index">
-              <a-form-model-item prop="boxHeight" :rules="rules.styleNum" required>
-                <a-input style="width:100%" type="text" v-model="record.boxHeight" />
-              </a-form-model-item>
-            </template>
-
-            <!-- 总体积 -->
-            <template slot="totalVolume" slot-scope="text, record, index">
-              <a-form-model-item prop="totalVolume" :rules="rules.styleNum" required>
-                <a-input style="width:100%" type="text" v-model="record.totalVolume" />
-              </a-form-model-item>
-            </template>
-
-            <!-- 操作 -->
-            <span slot="operationSlot" slot-scope="text, record">
-              <a-popconfirm title="确定删除吗?" ok-text="是" cancel-text="否" @confirm="handleDelete(record.id)">
-                <a href="javascript:void(0);" style="color:red;">删除</a>
-              </a-popconfirm>
-              <a-divider type="vertical" />
-              <a @click="copy(record)">复制</a>
-            </span>
-          </a-table>
-        </a-form-model>
-      </a-spin>
-
+      <a-card :bordered="false" style="margin:10px 0 60px 0;">
+        <div class="table-operator">
+          <a-button type="primary" @click="referShipmentDetails" icon="ordered-list">参照发运明细</a-button>
+          <a-button type="primary" @click="handleAddColumn" icon="plus" style="margin-left: 20px">増行</a-button>
+        </div>
+
+        <!-- 子表 ipagination-->
+        <a-spin :spinning="confirmLoading">
+          <a-form-model ref="formRef" :rules="validatorRules">
+            <a-table
+              bordered
+              rowKey="id"
+              :columns="addAdvancePackingColumns"
+              :data-source="addAdvancePackingData"
+              :loading="loading"
+              :pagination="false"
+              :scroll="{ x: 1500 }"
+              @change="handleTableChange"
+            >
+              <!-- 结束箱号 输入框-->
+              <template slot="endBoxNo" slot-scope="text, record, index">
+                <a-form-model-item prop="endBoxNo" :rules="rules.styleNum" required>
+                  <a-input style="width:100%" type="text" v-model="record.endBoxNo" />
+                </a-form-model-item>
+              </template>
+
+              <!-- 颜色(中英文) -->
+              <template slot="colorChUsa" slot-scope="text, record, index">
+                <a-form-model-item prop="colorChUsa" :rules="rules.styleNum" required>
+                  <a-input style="width:100%" type="text" v-model="record.colorChUsa" />
+                </a-form-model-item>
+              </template>
+
+              <!-- 箱数 -->
+              <template slot="boxes" slot-scope="text, record, index">
+                <a-form-model-item prop="boxes" :rules="rules.styleNum" required>
+                  <a-input style="width:100%" type="text" v-model="record.boxes" />
+                </a-form-model-item>
+              </template>
+
+              <!-- 总件数 -->
+              <template slot="totalPackagesNum" slot-scope="text, record, index">
+                <a-form-model-item prop="totalPackagesNum" :rules="rules.styleNum" required>
+                  <a-input style="width:100%" type="text" v-model="record.totalPackagesNum" />
+                </a-form-model-item>
+              </template>
+
+              <!-- 总净重 -->
+              <template slot="totalSuttle" slot-scope="text, record, index">
+                <a-form-model-item prop="totalSuttle" :rules="rules.styleNum" required>
+                  <a-input style="width:100%" type="text" v-model="record.totalSuttle" />
+                </a-form-model-item>
+              </template>
+
+              <!-- 总毛重 -->
+              <template slot="totalRoughWeigh" slot-scope="text, record, index">
+                <a-form-model-item prop="totalRoughWeigh" :rules="rules.styleNum" required>
+                  <a-input style="width:100%" type="text" v-model="record.totalRoughWeigh" />
+                </a-form-model-item>
+              </template>
+
+              <!-- 外箱宽度 -->
+              <template slot="boxWidth" slot-scope="text, record, index">
+                <a-form-model-item prop="boxWidth" :rules="rules.styleNum" required>
+                  <a-input style="width:100%" type="text" v-model="record.boxWidth" />
+                </a-form-model-item>
+              </template>
+
+              <!-- 外箱高度 -->
+              <template slot="boxHeight" slot-scope="text, record, index">
+                <a-form-model-item prop="boxHeight" :rules="rules.styleNum" required>
+                  <a-input style="width:100%" type="text" v-model="record.boxHeight" />
+                </a-form-model-item>
+              </template>
+
+              <!-- 总体积 -->
+              <template slot="totalVolume" slot-scope="text, record, index">
+                <a-form-model-item prop="totalVolume" :rules="rules.styleNum" required>
+                  <a-input style="width:100%" type="text" v-model="record.totalVolume" />
+                </a-form-model-item>
+              </template>
+
+              <!-- 操作 -->
+              <span slot="operationSlot" slot-scope="text, record">
+                <a-popconfirm title="确定删除吗?" ok-text="是" cancel-text="否" @confirm="handleDelete(record.id)">
+                  <a href="javascript:void(0);" style="color:red;">删除</a>
+                </a-popconfirm>
+                <a-divider type="vertical" />
+                <a @click="copy(record)">复制</a>
+              </span>
+            </a-table>
+          </a-form-model>
+        </a-spin>
+      </a-card>
       <!-- 页面底部提交取消 -->
       <div
         :style="{
@@ -199,17 +202,17 @@
       :father="aa"
       @ok="modalFormOk"
     ></referShipmentDetails-modal>
-  </a-card>
+  </div>
 </template>
 
 <script>
-import { JeecgListMixin } from '@/mixins/JeecgListMixin' // 分页等
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import JEllipsis from '@/components/jeecg/JEllipsis'
 import ReferShipmentDetailsModal from '@views/advance-packingList/referShipmentDetailsModal.vue'
 
 export default {
   name: 'AddAdvancePacking', // 新增预装箱单
-  mixins: [JeecgListMixin], // 分页等
+  mixins: [JeecgListMixin],
   components: { ReferShipmentDetailsModal, JEllipsis }, // 参照发运明细弹框
   data() {
     let ellipsis = (v, l = 20) => <j-ellipsis value={v} length={l} /> // 省略
@@ -566,4 +569,11 @@ export default {
 // /deep/ th.replacecolor {
 //   background-color: #ccc;
 // }
+// 抽屉里的card样式
+/deep/ .ant-drawer-content {
+  background-color: #f0f2f5;
+}
+/deep/ .ant-drawer-body {
+  padding: 10px;
+}
 </style>

+ 225 - 0
src/views/declare-elements/addDeclareDrawer.vue

@@ -0,0 +1,225 @@
+<template>
+  <!-- 新增申报要素-->
+  <div id="addDeclareDrawer">
+    <a-drawer
+      title="新增申报要素"
+      width="89%"
+      placement="right"
+      :closable="true"
+      :visible="visible"
+      @close="handleCancel"
+    >
+      <!-- 主表信息  填写 -->
+      <a-card :bordered="false">
+        <div class="table-page-search-wrapper">
+          <a-form-model layout="inline" ref="form" :model="addDeclareDrawer">
+            <a-row :gutter="24">
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="商品税号" prop="proTaxNum">
+                  <a-input placeholder="请输入商品税号" v-model="addDeclareDrawer.proTaxNum"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="商品名称" prop="proName">
+                  <a-input placeholder="请输入商品名称" v-model="addDeclareDrawer.proName"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="订单号" prop="orderNum">
+                  <a-input placeholder="请输入订单号" v-model="addDeclareDrawer.orderNum"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+            </a-row>
+          </a-form-model>
+        </div>
+      </a-card>
+
+      <!--操作按钮区域 选择托书 増行-->
+      <a-card :bordered="false" style="margin:10px 0 60px 0;">
+        <div class="table-operator">
+          <a-button type="primary" @click="selectBook" icon="ordered-list">选择托书</a-button>
+          <a-button type="primary" @click="handleAddColumn" icon="plus" style="margin-left: 20px">増行</a-button>
+        </div>
+
+        <!-- 子表-->
+        <a-spin :spinning="confirmLoading">
+          <a-form-model ref="formRef">
+            <a-table
+              bordered
+              rowKey="id"
+              :columns="addDeclareColumns"
+              :data-source="addDeclareData"
+              :loading="loading"
+              :pagination="false"
+              @change="handleTableChange"
+            >
+              <!-- 操作 -->
+              <span slot="operationSlot" slot-scope="text, record">
+                <a-popconfirm title="确定删除吗?" ok-text="是" cancel-text="否" @confirm="handleDelete(record.id)">
+                  <a href="javascript:void(0);" style="color:red;">删除</a>
+                </a-popconfirm>
+              </span>
+            </a-table>
+          </a-form-model>
+        </a-spin>
+      </a-card>
+      <!-- 页面底部提交取消 -->
+      <div
+        :style="{
+          position: 'absolute',
+          right: 0,
+          bottom: 0,
+          width: '100%',
+          borderTop: '1px solid #e9e9e9',
+          padding: '10px 16px',
+          background: '#fff',
+          textAlign: 'right',
+          zIndex: 1
+        }"
+      >
+        <a-popconfirm title="确定放弃新增?" @confirm="handleCancel" okText="确定" cancelText="取消">
+          <a-button :style="{ marginRight: '8px' }">取消</a-button>
+        </a-popconfirm>
+        <a-button type="primary" @click="submitAdd">
+          提交
+        </a-button>
+      </div>
+    </a-drawer>
+
+    <!-- 选择托书 弹框 -->
+    <selectBook-modal ref="selectBookModal" :father="aa" @ok="modalFormOk"></selectBook-modal>
+  </div>
+</template>
+
+<script>
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import JEllipsis from '@/components/jeecg/JEllipsis'
+import SelectBookModal from '@views/declare-elements/selectBookModal.vue'
+
+export default {
+  name: 'AddDeclareDrawer', // 新增申报要素
+  mixins: [JeecgListMixin],
+  components: { SelectBookModal, JEllipsis }, // 选择托书
+  data() {
+    // let ellipsis = (v, l = 20) => <j-ellipsis value={v} length={l} />
+
+    return {
+      // 表头
+      addDeclareColumns: [
+        {
+          title: '序号',
+          width: 90,
+          dataIndex: 'index',
+          customRender: (text, record, index) => `${index + 1}`,
+          className: 'replacecolor'
+        },
+        {
+          title: '申报要素内容',
+          dataIndex: 'decEleContent',
+          width: 90,
+          className: 'replacecolor'
+        },
+        {
+          title: '描述',
+          dataIndex: 'desc',
+          width: 160,
+          className: 'replacecolor'
+        },
+
+        {
+          title: '操作',
+          dataIndex: 'operation',
+          scopedSlots: { customRender: 'operationSlot' },
+          width: 120,
+          className: 'replacecolor'
+        }
+      ],
+
+      addDeclareData: [
+        { decEleContent: '品名', desc: '化纤制针织毛圈布' },
+        { decEleContent: '织造方法', desc: '针织/钩编' },
+        {}
+      ],
+      loading: false, // 表格加载
+      visible: false,
+      addDeclareDrawer: {},
+      confirmLoading: false
+    }
+  },
+  created() {},
+  methods: {
+    // 选择托书
+    selectBook() {
+      console.log('打开选择托书 弹框')
+      this.$refs.selectBookModal.selectBookModVis = true
+    },
+    // 増行
+    handleAddColumn() {
+      console.log('増行')
+      const addrow = {
+        index: '',
+        decEleContent: '',
+        desc: '',
+        operation: ''
+      }
+
+      this.addDeclareData.push(addrow)
+    },
+    // ----------------------------------------
+    //  操作按钮 删除
+    handleDelete(record) {},
+
+    // 抽屉 取消
+    handleCancel() {
+      console.log('点击抽屉取消')
+      this.close()
+    },
+    // 抽屉 提交
+    submitAdd() {
+      console.log('保存新增、刷新申报列表')
+      const that = this
+      // 触发表单验证
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          that.confirmLoading = true
+        }
+      })
+      this.close()
+      // this.getShipmentList() // 刷新 刷新申报列表
+    },
+    // -------------------------------------
+    close() {
+      this.$emit('close')
+      this.visible = false
+      this.$refs.form.resetFields()
+    },
+    aa() {},
+    modalFormOk() {}
+  },
+  computed: {},
+  mounted() {}
+}
+</script>
+<style lang="less" scoped>
+@import '~@assets/less/common.less';
+/deep/ .ant-table-thead > tr > th {
+  text-align: center;
+  // font-weight: 700;
+}
+/deep/ .ant-table-tbody {
+  text-align: center;
+}
+// /deep/ th.replacecolor {
+//   background-color: #ccc;
+// }
+// 抽屉里的card样式
+/deep/ .ant-drawer-content {
+  background-color: #f0f2f5;
+}
+/deep/ .ant-drawer-body {
+  padding: 10px;
+}
+</style>

+ 267 - 0
src/views/declare-elements/declare-list.vue

@@ -0,0 +1,267 @@
+<template>
+  <!-- 申报列表 -->
+  <div id="declareList">
+    <!-- 查询 -->
+    <a-card :bordered="false">
+      <div class="table-page-search-wrapper">
+        <a-form layout="inline" @keyup.enter.native="searchQuery">
+          <a-row :gutter="24">
+            <a-col :md="6" :sm="8">
+              <a-form-item label="商品编码">
+                <a-input placeholder="请输入商品编码" v-model="queryParam.proCode"></a-input>
+              </a-form-item>
+            </a-col>
+
+            <a-col :md="6" :sm="8">
+              <a-form-item label="种类">
+                <a-select v-model="queryParam.kind">
+                  <a-select-option value="">请选择</a-select-option>
+                  <a-select-option :value="0">种类A</a-select-option>
+                  <a-select-option :value="1">种类B</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+
+            <a-col :md="6" :sm="8">
+              <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+                <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+                <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
+                <a @click="handleToggleSearch" style="margin-left: 8px">
+                  {{ toggleSearchStatus ? '收起' : '展开' }}
+                  <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
+                </a>
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+    </a-card>
+    <!-- 操作按钮区域 新增申报-->
+    <a-card :bordered="false" style="margin:10px 0">
+      <div class="table-operator">
+        <a-button type="primary" @click="addDeclare" icon="plus">新增申报</a-button>
+      </div>
+
+      <!-- 子表  :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"-->
+      <a-table
+        bordered
+        :columns="declareListColumns"
+        :data-source="declareListData"
+        :loading="loading"
+        :pagination="ipagination"
+        :row-key="record => record.id"
+        @change="handleTableChange"
+      >
+        <!-- 状态 -->
+        <!-- slot-scope="text, record" -->
+        <span slot="stateSlot">
+          <!-- v-if="record.isRelease == '0'" -->
+          <a-tag color="green">已推送</a-tag>
+          <!-- <a-tag color="orange" v-else>保存</a-tag> -->
+        </span>
+
+        <!-- 操作 -->
+        <span slot="operationSlot" slot-scope="text, record">
+          <a @click="derive(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">
+              <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="handleDelete(record.id)">
+                  <a href="javascript:void(0);" style="color:red;">删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+
+              <a-menu-item><a @click="submit(record)">提交</a></a-menu-item>
+              </a-menu-item>
+            </a-menu>
+
+          </a-dropdown>
+        </span>
+      </a-table>
+    </a-card>
+
+    <!-- 抽屉 -->
+    <div>
+      <addDeclare-drawer ref="addDeclareDrawer" :father="aa" @ok="modalFormOk"></addDeclare-drawer>
+      <detailsDeclare-drawer ref="detailsDeclareDrawer" :father="bb" @ok="modalFormOk"></detailsDeclare-drawer>
+      <editDeclare-drawer ref="editDeclareDrawer" :father="cc" @ok="modalFormOk"></editDeclare-drawer>
+    </div>
+  </div>
+</template>
+
+<script>
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import JEllipsis from '@/components/jeecg/JEllipsis'
+import moment from 'moment'
+import addDeclareDrawer from '@views/declare-elements/addDeclareDrawer.vue'
+import detailsDeclareDrawer from '@views/declare-elements/detailsDeclareDrawer.vue'
+import editDeclareDrawer from '@views/declare-elements/editDeclareDrawer.vue'
+
+export default {
+  name: 'DeclareList', // 申报列表
+  mixins: [JeecgListMixin],
+  components: { JEllipsis, moment, addDeclareDrawer, detailsDeclareDrawer, editDeclareDrawer },
+
+  data() {
+    let ellipsis = (v, l = 20) => <j-ellipsis value={v} length={l} /> // 省略
+    return {
+      // 表头
+      declareListColumns: [
+        {
+          title: '商品编码',
+          dataIndex: 'proCode',
+          width: 120,
+          className: 'replacecolor'
+        },
+        {
+          title: '商品描述',
+          dataIndex: 'proDesc',
+          width: 120,
+          customRender: t => ellipsis(t),
+          className: 'replacecolor'
+        },
+
+        {
+          title: '托书编号',
+          dataIndex: 'bookNum',
+          width: 120,
+          className: 'replacecolor'
+        },
+        {
+          title: '状态',
+          dataIndex: 'smallPo',
+          width: 120,
+          scopedSlots: { customRender: 'stateSlot' },
+          className: 'replacecolor'
+        },
+
+        {
+          title: '操作',
+          dataIndex: 'operation',
+          scopedSlots: { customRender: 'operationSlot' },
+          width: 160,
+          className: 'replacecolor'
+        }
+      ],
+      declareListData: [{}, {}, {}, {}],
+      // selectedRowKeys: [], // 勾选航
+      loading: false, // 表格加载
+
+      // 查询条件
+      queryParam: {
+        proCode: '',
+        kind: ''
+      },
+      url: {
+        // syncUser: '/act/process/extActProcess/doSyncUser',
+        list: '/sys/user/list',
+        // delete: '/sys/user/delete',
+        // deleteBatch: '/sys/user/deleteBatch',
+        exportXlsUrl: '/sys/user/exportXls', // 导出
+        importExcelUrl: 'sys/user/importExcel' // 导入
+      }
+    }
+  },
+  created() {
+    // this.getAdPaListClothes()
+  },
+  methods: {
+    searchQuery() {
+      // this.getAnnList() // 渲染公告
+    },
+    // 重置
+    searchReset() {
+      // console.log('>>>>重置')
+      this.queryParam = {}
+      // this.getAnnList()
+    },
+    // -----------------------------
+    // 新增申报
+    addDeclare() {
+      console.log('点击新增申报')
+      this.$refs.addDeclareDrawer.visible = true
+    },
+
+    // 操作 导出
+    derive() {},
+
+    // 操作 详情
+    details(record) {
+      console.log('详情')
+      console.log('点击的record', record.id)
+      this.$refs.detailsDeclareDrawer.visible = true
+    },
+
+    // 操作 编辑
+    edit(record) {
+      console.log('编辑')
+      this.$refs.editDeclareDrawer.visible = true
+    },
+
+    // 操作 删除
+    handleDelete() {},
+    // 操作 提交
+    submit(record) {},
+
+    // 选中行
+    // onSelectChange(keys, rows) {
+    //   this.selectedRowKeys = keys
+    //   this.selectedRows = rows
+    // },
+    // --------------------------------------
+    aa() {},
+    bb() {},
+    cc() {}
+    // 分页、排序、筛选变化时触发
+    // handleTableChange(pagination, filters, sorter) {
+    //   // console.log('当前页信息>>>>',pagination)
+    //   this.queryParam.pageNo = pagination.current
+    //   // this.getAnnList()
+    // }
+  },
+  computed: {
+    // 导入
+    importExcelUrl: function() {
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
+    }
+    // 选中项
+    // rowSelection() {
+    //   return {
+    //     onChange: (selectedRowKeys, selectedRows) => {
+    //       console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows)
+    //     },
+    //     getCheckboxProps: record => ({
+    //       props: {
+    //         disabled: record.title === 'Disabled User',
+    //         // Column configuration not to be checked
+    //         title: record.title
+    //       }
+    //     })
+    //   }
+    // }
+  },
+  mounted() {}
+}
+</script>
+<style lang="less" scoped>
+@import '~@assets/less/common.less';
+@import '~@assets/less/overwriter.less';
+/deep/ .ant-table-thead > tr > th {
+  text-align: center;
+  // font-weight: 700;
+}
+
+/deep/ .ant-table-tbody {
+  text-align: center;
+}
+
+// /deep/ th.replacecolor {
+//   background-color: #ccc;
+// }
+</style>

+ 152 - 0
src/views/declare-elements/detailsDeclareDrawer.vue

@@ -0,0 +1,152 @@
+<template>
+  <!-- 详情 -->
+  <div id="detailsDeclareDrawer">
+    <a-drawer
+      title="编辑"
+      width="89%"
+      placement="right"
+      :closable="true"
+      :visible="visible"
+      @close="handleCancel">
+      <!-- 主表信息  回显 -->
+      <a-card :bordered="false">
+        <div class="table-page-search-wrapper">
+          <a-form-model layout="inline" ref="form" :model="detailsDeclareDrawer">
+            <a-row :gutter="24">
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="商品税号" prop="proTaxNum">
+                  AW837465506
+                  <!-- <a-input v-model="detailsDeclareDrawer.proTaxNum"></a-input> -->
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="商品名称" prop="proName">
+                  商品名称test
+                  <!-- <a-input v-model="detailsDeclareDrawer.proName"></a-input> -->
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="订单号" prop="orderNum">
+                  RT8374645
+                  <!-- <a-input v-model="detailsDeclareDrawer.orderNum"></a-input> -->
+                </a-form-model-item>
+              </a-col>
+            </a-row>
+          </a-form-model>
+        </div>
+      </a-card>
+
+      <!-- 子表-->
+      <a-card :bordered="false" style="margin:10px 0 60px 0;">
+        <a-spin :spinning="confirmLoading">
+          <a-form-model ref="formRef">
+            <a-table
+              bordered
+              rowKey="id"
+              :columns="declareColumns"
+              :data-source="declareData"
+              :loading="loading"
+              :pagination="false"
+              @change="handleTableChange"
+            >
+            </a-table>
+          </a-form-model>
+        </a-spin>
+      </a-card>
+    </a-drawer>
+
+    <!-- 选择托书 弹框 -->
+    <selectBook-modal ref="selectBookModal" :father="aa" @ok="modalFormOk"></selectBook-modal>
+  </div>
+</template>
+
+<script>
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import JEllipsis from '@/components/jeecg/JEllipsis'
+import SelectBookModal from '@views/declare-elements/selectBookModal.vue'
+
+export default {
+  name: 'EditDeclareDrawer', // 编辑 申报要素
+  mixins: [JeecgListMixin],
+  components: { SelectBookModal, JEllipsis }, // 选择托书
+  data() {
+    // let ellipsis = (v, l = 20) => <j-ellipsis value={v} length={l} />
+
+    return {
+      // 表头
+      declareColumns: [
+        {
+          title: '序号',
+          width: 90,
+          dataIndex: 'index',
+          customRender: (text, record, index) => `${index + 1}`,
+          className: 'replacecolor'
+        },
+        {
+          title: '申报要素内容',
+          dataIndex: 'decEleContent',
+          width: 90,
+          className: 'replacecolor'
+        },
+        {
+          title: '描述',
+          dataIndex: 'desc',
+          width: 160,
+          className: 'replacecolor'
+        }
+      ],
+
+      declareData: [
+        { decEleContent: '品名', desc: '化纤制针织毛圈布' },
+        { decEleContent: '织造方法', desc: '针织/钩编' },
+        {}
+      ],
+      loading: false, // 表格加载
+      visible: false,
+      detailsDeclareDrawer: {},
+      confirmLoading: false
+    }
+  },
+  created() {},
+  methods: {
+    // 抽屉 取消
+    handleCancel() {
+      console.log('点击抽屉取消')
+      this.close()
+    },
+
+    // -------------------------------------
+    close() {
+      this.$emit('close')
+      this.visible = false
+      this.$refs.form.resetFields()
+    },
+    aa() {},
+    modalFormOk() {}
+  },
+  computed: {},
+  mounted() {}
+}
+</script>
+<style lang="less" scoped>
+@import '~@assets/less/common.less';
+/deep/ .ant-table-thead > tr > th {
+  text-align: center;
+  // font-weight: 700;
+}
+/deep/ .ant-table-tbody {
+  text-align: center;
+}
+// /deep/ th.replacecolor {
+//   background-color: #ccc;
+// }
+// 抽屉里的card样式
+/deep/ .ant-drawer-content {
+  background-color: #f0f2f5;
+}
+/deep/ .ant-drawer-body {
+  padding: 10px;
+}
+</style>

+ 223 - 0
src/views/declare-elements/editDeclareDrawer.vue

@@ -0,0 +1,223 @@
+<template>
+  <!-- 编辑 回显且可编辑-->
+  <div id="editDeclareDrawer">
+    <a-drawer
+      title="编辑"
+      width="89%"
+      placement="right"
+      :closable="true"
+      :visible="visible"
+      @close="handleCancel">
+      <!-- 主表信息  回显可编辑信息 -->
+      <a-card :bordered="false">
+        <div class="table-page-search-wrapper">
+          <a-form-model layout="inline" ref="form" :model="editDeclareDrawer">
+            <a-row :gutter="24">
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="商品税号" prop="proTaxNum">
+                  <a-input v-model="editDeclareDrawer.proTaxNum"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="商品名称" prop="proName">
+                  <a-input v-model="editDeclareDrawer.proName"></a-input>
+                </a-form-model-item>
+              </a-col>
+
+              <a-col :md="6" :sm="8">
+                <a-form-model-item label="订单号" prop="orderNum">
+                  <a-input v-model="editDeclareDrawer.orderNum"></a-input>
+                </a-form-model-item>
+              </a-col>
+            </a-row>
+          </a-form-model>
+        </div>
+      </a-card>
+
+      <!--操作按钮区域 选择托书 増行-->
+      <a-card :bordered="false" style="margin:10px 0 60px 0;">
+        <div class="table-operator">
+          <a-button type="primary" @click="selectBook" icon="ordered-list">选择托书</a-button>
+          <a-button type="primary" @click="handleAddColumn" icon="plus" style="margin-left: 20px">増行</a-button>
+        </div>
+
+        <!-- 子表-->
+        <a-spin :spinning="confirmLoading">
+          <a-form-model ref="formRef">
+            <a-table
+              bordered
+              rowKey="id"
+              :columns="editDeclareColumns"
+              :data-source="editDeclareData"
+              :loading="loading"
+              :pagination="false"
+              @change="handleTableChange"
+            >
+              <!-- 操作 -->
+              <span slot="operationSlot" slot-scope="text, record">
+                <a-popconfirm title="确定删除吗?" ok-text="是" cancel-text="否" @confirm="handleDelete(record.id)">
+                  <a href="javascript:void(0);" style="color:red;">删除</a>
+                </a-popconfirm>
+              </span>
+            </a-table>
+          </a-form-model>
+        </a-spin>
+      </a-card>
+      <!-- 页面底部提交取消 -->
+      <div
+        :style="{
+          position: 'absolute',
+          right: 0,
+          bottom: 0,
+          width: '100%',
+          borderTop: '1px solid #e9e9e9',
+          padding: '10px 16px',
+          background: '#fff',
+          textAlign: 'right',
+          zIndex: 1
+        }"
+      >
+        <a-popconfirm title="确定放弃编辑?" @confirm="handleCancel" okText="确定" cancelText="取消">
+          <a-button :style="{ marginRight: '8px' }">取消</a-button>
+        </a-popconfirm>
+        <a-button type="primary" @click="submitAdd">
+          提交
+        </a-button>
+      </div>
+    </a-drawer>
+
+    <!-- 选择托书 弹框 -->
+    <selectBook-modal ref="selectBookModal" :father="aa" @ok="modalFormOk"></selectBook-modal>
+  </div>
+</template>
+
+<script>
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import JEllipsis from '@/components/jeecg/JEllipsis'
+import SelectBookModal from '@views/declare-elements/selectBookModal.vue'
+
+export default {
+  name: 'EditDeclareDrawer', // 编辑 申报要素
+  mixins: [JeecgListMixin],
+  components: { SelectBookModal, JEllipsis }, // 选择托书
+  data() {
+    // let ellipsis = (v, l = 20) => <j-ellipsis value={v} length={l} />
+
+    return {
+      // 表头
+      editDeclareColumns: [
+        {
+          title: '序号',
+          width: 90,
+          dataIndex: 'index',
+          customRender: (text, record, index) => `${index + 1}`,
+          className: 'replacecolor'
+        },
+        {
+          title: '申报要素内容',
+          dataIndex: 'decEleContent',
+          width: 90,
+          className: 'replacecolor'
+        },
+        {
+          title: '描述',
+          dataIndex: 'desc',
+          width: 160,
+          className: 'replacecolor'
+        },
+
+        {
+          title: '操作',
+          dataIndex: 'operation',
+          scopedSlots: { customRender: 'operationSlot' },
+          width: 120,
+          className: 'replacecolor'
+        }
+      ],
+
+      editDeclareData: [
+        { decEleContent: '品名', desc: '化纤制针织毛圈布' },
+        { decEleContent: '织造方法', desc: '针织/钩编' },
+        {}
+      ],
+      loading: false, // 表格加载
+      visible: false,
+      editDeclareDrawer: {},
+      confirmLoading: false
+    }
+  },
+  created() {},
+  methods: {
+    // 选择托书
+    selectBook() {
+      console.log('打开选择托书 弹框')
+      this.$refs.selectBookModal.selectBookModVis = true
+    },
+    // 増行
+    handleAddColumn() {
+      console.log('増行')
+      const addrow = {
+        index: '',
+        decEleContent: '',
+        desc: '',
+        operation: ''
+      }
+
+      this.editDeclareData.push(addrow)
+    },
+    // ----------------------------------------
+    //  操作按钮 删除
+    handleDelete(record) {},
+
+    // 抽屉 取消
+    handleCancel() {
+      console.log('点击抽屉取消')
+      this.close()
+    },
+    // 抽屉 提交
+    submitAdd() {
+      console.log('保存编辑、刷新申报列表')
+      const that = this
+      // 触发表单验证
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          that.confirmLoading = true
+        }
+      })
+      this.close()
+      // this.getShipmentList() // 刷新 申报列表
+    },
+    // -------------------------------------
+    close() {
+      this.$emit('close')
+      this.visible = false
+      this.$refs.form.resetFields()
+    },
+    aa() {},
+    modalFormOk() {}
+  },
+  computed: {},
+  mounted() {}
+}
+</script>
+<style lang="less" scoped>
+@import '~@assets/less/common.less';
+/deep/ .ant-table-thead > tr > th {
+  text-align: center;
+  // font-weight: 700;
+}
+/deep/ .ant-table-tbody {
+  text-align: center;
+}
+// /deep/ th.replacecolor {
+//   background-color: #ccc;
+// }
+// 抽屉里的card样式
+/deep/ .ant-drawer-content {
+  background-color: #f0f2f5;
+}
+/deep/ .ant-drawer-body {
+  padding: 10px;
+}
+</style>

+ 256 - 0
src/views/declare-elements/selectBookModal.vue

@@ -0,0 +1,256 @@
+<template>
+  <a-modal
+    title="参照托书"
+    v-model="selectBookModVis"
+    :confirmLoading="confirmLoading"
+    @ok="onSubmit"
+    @cancel="handleCancel"
+    width="86%"
+    style="top:330px;left:100px;"
+  >
+    <a-spin :spinning="confirmLoading">
+      <!-- 查询  -->
+      <div class="table-page-search-wrapper">
+        <a-form layout="inline" @keyup.enter.native="searchQuery">
+          <a-row :gutter="24">
+            <a-col :md="6" :sm="8">
+              <a-form-item label="订单号">
+                <a-input placeholder="请输入订单号" v-model="queryParam.orderNum"></a-input>
+              </a-form-item>
+            </a-col>
+
+            <a-col :md="6" :sm="8">
+              <a-form-item label="外销发票号码">
+                <a-input placeholder="请输入外销发票号码" v-model="queryParam.exportInvoiceNo"></a-input>
+              </a-form-item>
+            </a-col>
+
+            <a-col :md="6" :sm="8">
+              <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+                <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+                <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
+                <a @click="handleToggleSearch" style="margin-left: 8px">
+                  {{ toggleSearchStatus ? '收起' : '展开' }}
+                  <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
+                </a>
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+
+      <!-- 子表 -->
+      <a-table
+        :columns="selectBookColumns"
+        :data-source="selectBookData"
+        :loading="loading"
+        :pagination="ipagination"
+        :row-key="record => record.id"
+        :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
+        @change="handleTableChange"
+        bordered
+        :scroll="{ x: 1500 }"
+      >
+      </a-table>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import JEllipsis from '@/components/jeecg/JEllipsis'
+import moment from 'moment'
+export default {
+  name: 'SelectBookModal', // 参照托书(选择托书)
+  mixins: [JeecgListMixin],
+  components: { JEllipsis, moment },
+
+  data() {
+    let ellipsis = (v, l = 20) => <j-ellipsis value={v} length={l} /> // 省略
+    return {
+      selectedRowKeys: [], // 勾选航
+      loading: false, // 表格加载
+      // 表头
+      selectBookColumns: [
+        {
+          title: '订单号',
+          dataIndex: 'orderNum',
+          width: 120,
+          fixed: 'left',
+          className: 'replacecolor'
+        },
+        // {
+        //   title: '创建时间',
+        //   dataIndex: 'createTime',
+        //   align: 'center',
+        //   sorter: true,
+        //   customRender: text => {
+        //     return moment(text).format('YYYY-MM-DD')
+        //   }
+        // },
+        {
+          title: '预约号',
+          dataIndex: 'reservationDate',
+          width: 120,
+          fixed: 'left',
+          className: 'replacecolor'
+        },
+
+        {
+          title: '外销发票号码',
+          dataIndex: 'exportInvoiceNo',
+          width: 120,
+          className: 'replacecolor'
+        },
+        {
+          title: '经营单位',
+          dataIndex: 'unitOperation',
+          width: 120,
+          className: 'replacecolor'
+        },
+        {
+          title: '金额',
+          dataIndex: 'money',
+          width: 120,
+          className: 'replacecolor'
+        },
+
+        {
+          title: '收汇方式',
+          dataIndex: 'collectionMethod',
+          width: 120,
+          className: 'replacecolor'
+        },
+        {
+          title: '收货人',
+          dataIndex: 'consignee',
+          width: 120,
+          className: 'replacecolor'
+        },
+        {
+          title: '提单或承运收据',
+          dataIndex: 'billLadingOrCarriageReceipt',
+          width: 140,
+          customRender: t => ellipsis(t),
+          className: 'replacecolor'
+        },
+        {
+          title: '抬头人',
+          dataIndex: 'headPerson',
+          width: 120,
+          customRender: t => ellipsis(t),
+          className: 'replacecolor'
+        },
+        { title: '贸易国别', dataIndex: 'tradeCountry', width: 100, className: 'replacecolor' },
+        { title: '运抵国别', dataIndex: 'arriveCountry', width: 100, className: 'replacecolor' },
+        { title: '出口口岸', dataIndex: 'exportPort', width: 100, className: 'replacecolor' },
+        {
+          title: '通知人',
+          dataIndex: 'notifier',
+          width: 100,
+          customRender: t => ellipsis(t),
+          className: 'replacecolor'
+        },
+        { title: 'NOTIFY', dataIndex: 'NOTIFY', width: 150, className: 'replacecolor' },
+        { title: '目的港', dataIndex: 'destinationPort', width: 100, className: 'replacecolor' },
+        // {
+        //   title: '创建时间',
+        //   dataIndex: 'createTime',
+        //   align: 'center',
+        //   sorter: true,
+        //   customRender: text => {
+        //     return moment(text).format('YYYY-MM-DD')
+        //   }
+        // },
+        { title: '装运期限', dataIndex: 'latestShipmentDate', width: 100, className: 'replacecolor' }
+      ],
+      selectBookData: [
+        { orderNum: '98347445', reservationDate: '2022-04-26' },
+        { orderNum: '72643547', reservationDate: '2022-04-26' }
+      ],
+      confirmLoading: false,
+      selectBookModVis: false,
+
+      // 查询条件
+      queryParam: {
+        orderNum: '',
+        exportInvoiceNo: ''
+      }
+    }
+  },
+  // 接收父组件 方法
+  props: {
+    father: {
+      type: Function,
+      default: null
+    }
+  },
+  created() {},
+  methods: {
+    // 弹框查询按钮
+    searchQuery() {},
+    // 重置
+    searchReset() {
+      this.queryParam = {}
+      // 刷新托书
+    },
+    // 弹框确定
+    onSubmit() {
+      console.log('已选择好托书,选择的托书信息保存到申报列表中')
+      this.close()
+    },
+    close() {
+      this.$emit('close')
+      this.selectBookModVis = false
+    },
+    handleCancel() {
+      this.close()
+    },
+    // 选中行
+    onSelectChange(keys, rows) {
+      this.selectedRowKeys = keys
+      console.log('this.selectedRowKeys:', this.selectedRowKeys)
+      this.selectedRows = rows
+      console.log('this.selectedRows', this.selectedRows)
+    }
+    // handleTableChange(pagination, filters, sorter) {
+    //   // console.log('当前页信息>>>>',pagination)
+    //   this.queryParam.pageNo = pagination.current
+    //   this.getAnnList()
+    // }
+  },
+  computed: {
+    // 选中项
+    rowSelection() {
+      return {
+        onChange: (selectedRowKeys, selectedRows) => {
+          console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows)
+        },
+        getCheckboxProps: record => ({
+          props: {
+            disabled: record.title === 'Disabled User',
+            // Column configuration not to be checked
+            title: record.title
+          }
+        })
+      }
+    }
+  }
+}
+</script>
+<style lang="less" scoped>
+@import '~@assets/less/common.less';
+@import '~@assets/less/overwriter.less';
+/deep/ .ant-table-thead > tr > th {
+  text-align: center;
+  // font-weight: 700;
+}
+
+/deep/ .ant-table-tbody {
+  text-align: center;
+}
+
+// /deep/ th.replacecolor {
+//   background-color: #ccc;
+// }
+</style>