Просмотр исходного кода

feat: 完成地址管理首页

million 1 год назад
Родитель
Сommit
cd0c82e7c8

+ 8 - 0
front/admin-front/src/assets/address/award_star.svg

@@ -0,0 +1,8 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0_165_243" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="16" height="16">
+<rect width="16" height="16" fill="#D9D9D9"/>
+</mask>
+<g mask="url(#mask0_165_243)">
+<path d="M8.00001 15.5332L5.76667 13.3332H2.66667V10.2332L0.466675 7.99989L2.66667 5.76655V2.66655H5.76667L8.00001 0.466553L10.2333 2.66655H13.3333V5.76655L15.5333 7.99989L13.3333 10.2332V13.3332H10.2333L8.00001 15.5332ZM6.05001 10.8332L8.00001 9.64989L9.95001 10.8332L9.43334 8.61655L11.1667 7.11655L8.88334 6.93322L8.00001 4.83322L7.11667 6.93322L4.83334 7.11655L6.56667 8.61655L6.05001 10.8332Z" fill="#F2C94C"/>
+</g>
+</svg>

+ 8 - 0
front/admin-front/src/assets/address/eyeglasses.svg

@@ -0,0 +1,8 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0_649_2384" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
+<rect width="20" height="20" fill="#D9D9D9"/>
+</mask>
+<g mask="url(#mask0_649_2384)">
+<path d="M5.70825 12.5C6.13881 12.5 6.52422 12.375 6.8645 12.125C7.20478 11.875 7.44436 11.5486 7.58325 11.1458L7.89575 10.1875C8.11797 9.52081 8.06242 8.90623 7.72909 8.34373C7.39575 7.78123 6.91659 7.49998 6.29159 7.49998H3.35409L3.74992 10.7708C3.81936 11.2569 4.03811 11.6666 4.40617 12C4.77422 12.3333 5.20825 12.5 5.70825 12.5ZM14.2916 12.5C14.7916 12.5 15.2256 12.3333 15.5937 12C15.9617 11.6666 16.1805 11.2569 16.2499 10.7708L16.6458 7.49998H13.7291C13.1041 7.49998 12.6249 7.7847 12.2916 8.35415C11.9583 8.92359 11.9027 9.54165 12.1249 10.2083L12.4166 11.1458C12.5555 11.5486 12.7951 11.875 13.1353 12.125C13.4756 12.375 13.861 12.5 14.2916 12.5ZM5.70825 14.1666C4.79159 14.1666 3.9895 13.8646 3.302 13.2604C2.6145 12.6562 2.2152 11.8958 2.10409 10.9791L1.66659 7.49998H0.833252V5.83331H6.29159C6.9027 5.83331 7.46172 5.98262 7.96867 6.28123C8.47561 6.57984 8.87492 6.98609 9.16659 7.49998H10.8541C11.1458 6.98609 11.5451 6.57984 12.052 6.28123C12.5589 5.98262 13.118 5.83331 13.7291 5.83331H19.1666V7.49998H18.3333L17.8958 10.9791C17.7846 11.8958 17.3853 12.6562 16.6978 13.2604C16.0103 13.8646 15.2083 14.1666 14.2916 14.1666C13.4999 14.1666 12.7881 13.941 12.1562 13.4896C11.5242 13.0382 11.0833 12.4375 10.8333 11.6875L10.5208 10.75C10.493 10.6528 10.4652 10.5521 10.4374 10.4479C10.4096 10.3437 10.3819 10.1944 10.3541 9.99998H9.64575C9.61797 10.1666 9.5902 10.3021 9.56242 10.4062C9.53464 10.5104 9.50686 10.6111 9.47909 10.7083L9.16659 11.6666C8.91659 12.4166 8.47561 13.0208 7.84367 13.4791C7.21172 13.9375 6.49992 14.1666 5.70825 14.1666Z" fill="white"/>
+</g>
+</svg>

Разница между файлами не показана из-за своего большого размера
+ 5 - 0
front/admin-front/src/assets/address/precision_manufacturing.svg


+ 10 - 0
front/admin-front/src/assets/address/unfold_more.svg

@@ -0,0 +1,10 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g opacity="0.8">
+<mask id="mask0_131_246" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
+<rect width="20" height="20" fill="#D9D9D9"/>
+</mask>
+<g mask="url(#mask0_131_246)">
+<path d="M10 17.1955L6.52246 13.7179L7.42627 12.8141L10 15.3878L12.5737 12.8141L13.4775 13.7179L10 17.1955ZM7.42627 7.23715L6.52246 6.33332L10 2.85577L13.4775 6.33332L12.5737 7.23715L10 4.66342L7.42627 7.23715Z" fill="#222222"/>
+</g>
+</g>
+</svg>

+ 8 - 0
front/admin-front/src/assets/address/upload.svg

@@ -0,0 +1,8 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0_649_2394" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
+<rect width="20" height="20" fill="#D9D9D9"/>
+</mask>
+<g mask="url(#mask0_649_2394)">
+<path d="M4.99992 16.6666C4.54159 16.6666 4.14922 16.5035 3.82284 16.1771C3.49645 15.8507 3.33325 15.4583 3.33325 15V12.5H4.99992V15H14.9999V12.5H16.6666V15C16.6666 15.4583 16.5034 15.8507 16.177 16.1771C15.8506 16.5035 15.4583 16.6666 14.9999 16.6666H4.99992ZM9.16658 13.3333V6.54165L6.99992 8.70831L5.83325 7.49998L9.99992 3.33331L14.1666 7.49998L12.9999 8.70831L10.8333 6.54165V13.3333H9.16658Z" fill="#2980FF"/>
+</g>
+</svg>

+ 8 - 0
front/admin-front/src/assets/address/vertical_align_bottom.svg

@@ -0,0 +1,8 @@
+<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0_649_2389" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
+<rect width="20" height="20" fill="#D9D9D9"/>
+</mask>
+<g mask="url(#mask0_649_2389)">
+<path d="M3.33325 17.5V15.8333H16.6666V17.5H3.33325ZM9.99992 14.1667L5.83325 10L6.99992 8.83333L9.16658 11V2.5H10.8333V11L12.9999 8.83333L14.1666 10L9.99992 14.1667Z" fill="#2980FF"/>
+</g>
+</svg>

+ 423 - 97
front/admin-front/src/views/address/index.vue

@@ -1,112 +1,438 @@
 <template>
-  <div class="">
-    <el-row style="margin: 0 0 48px 0">
-      <el-col :span="2">
-        <div class="">
-          <div class="totalCount-number">{{ this.totalCount }}</div>
-          <div class="totalCount-text">地址数量</div>
+  <div class="app-container">
+    <div class="app-container-head">
+      <div class="app-container-head-left">
+        <div class="app-container-head-left-item">
+          <div class="app-container-head-left-item-count">
+            {{ head.all }}
+          </div>
+          <div class="app-container-head-left-item-name">
+            所有
+          </div>
         </div>
-      </el-col>
+        <div class="app-container-head-left-divider"/>
+        <div class="app-container-head-left-item">
+          <div class="app-container-head-left-item-count">
+            {{ head.bulk }}
+          </div>
+          <div class="app-container-head-left-item-name">
+            批处理账户
+          </div>
+        </div>
+        <div class="app-container-head-left-divider"/>
+        <div class="app-container-head-left-item">
+          <div class="app-container-head-left-item-count">
+            {{ head.boutique }}
+          </div>
+          <div class="app-container-head-left-item-name">
+            精品账户
+          </div>
+        </div>
+      </div>
+      <div class="app-container-head-right">
+        <div class="app-container-head-right-button1">
+          <img src="../../assets/address/vertical_align_bottom.svg" alt="vertical_align_bottom">
+          导出
+        </div>
+        <div class="app-container-head-right-button1">
+          <img src="../../assets/address/upload.svg" alt="upload">
+          导入
+        </div>
+        <div class="app-container-head-right-button2">
+          <img src="../../assets/address/eyeglasses.svg" alt="eyeglasses">
+          观察地址
+        </div>
+      </div>
+    </div>
+    <div class="app-container-table">
+      <div class="app-container-table-title">
+        <div class="app-container-table-title-left">
+          地址列表
+        </div>
+        <div class="app-container-table-title-right">
+          总计数量: {{table.totalNumber}}
+        </div>
+      </div>
+      <div class="app-container-table-select">
+        <div @click="table.walletNameGroupIndex = index" v-for="(item,index) in table.walletNameGroup" :class="index === table.walletNameGroupIndex ? 'app-container-table-select-item-active' : 'app-container-table-select-item'">
+          {{item}}
+        </div>
+      </div>
+      <div class="app-container-table-screening">
+        <div class="app-container-table-screening-item">
+          时间
+          <img src="../../assets/address/unfold_more.svg" alt="unfold_more">
+        </div>
+        <div class="app-container-table-screening-item">
+          Gas消耗
+          <img src="../../assets/address/unfold_more.svg" alt="unfold_more">
+        </div>
+      </div>
+      <div class="app-container-table-main">
+        <el-table
+          :data="tableData"
+          style="width: 100%">
+          <el-table-column
+            label="账户地址"
+            width="490">
+            <template v-slot="scope">
+              <div class="accountAddress">
+                <div class="img">
 
-      <el-col :span="3" :offset="15">
-        <el-button type="primary" class="btn-add" @click="generateAddress">
-          批量生成地址
-        </el-button>
-      </el-col>
-      <el-col :span="3">
-        <el-button type="primary" class="btn-add" @click="downloadAddress">
-          批量下载地址
-        </el-button>
-      </el-col>
-    </el-row>
+                </div>
+                <div class="walletName">
+                  钱包名称
+                </div>
+                <div class="walletAddress">
+                  0x00581a605...ca48ddebe60b2a4ca4da
+                </div>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="Gas消耗/USDT"
+            width="410">
+            <template v-slot="scope">
+              <div class="gas">
+                783239.22
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="type"
+            width="255">
+            <template v-slot="scope">
+              <div class="type">
+                <div class="bulk" v-if="table.walletNameGroupIndex !== 0">
+                  <img src="../../assets/address/precision_manufacturing.svg" alt="precision_manufacturing">
+                  批量3
+                </div>
+                <div class="boutique" v-if="table.walletNameGroupIndex === 0">
+                  <img src="../../assets/address/award_star.svg" alt="award_star">
+                  精品号
+                </div>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="最后操作时间"
+            width="180">
+            <template v-slot="scope">
+              <div class="lastTime">
+                19点20分
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="right">
+            <template v-slot="scope">
+              <div class="view">
+                查看
+              </div>
+            </template>
+          </el-table-column>
 
-    <div class="block-title">地址列表</div>
-    <el-table :data="tableData" style="width: 100%">
-      <el-table-column prop="address" label="地址账号" width="420">
-        <template slot-scope="{ row }">
-          {{row.groupName}} <span style="margin-left:10px"></span> {{row.address}}
-        </template>
-      </el-table-column>
+        </el-table>
+      </div>
+    </div>
 
-      <!-- <el-table-column prop="groupName" label="地址组"> </el-table-column> -->
-      <el-table-column prop="" label="gas消耗"> </el-table-column>
-      <el-table-column prop="" label="地址余额"> </el-table-column>
-      <el-table-column prop="addressType" label="地址类型">
-        <template slot-scope="{ row }">
-          <el-tag v-if="row.addressType === 1" type="info">批量号</el-tag>
-          <el-tag v-else>精品号</el-tag>
-        </template>
-      </el-table-column>
-      <el-table-column prop="createTime" label="创建时间"> </el-table-column>
-    </el-table>
-    <el-pagination
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-      :current-page.sync="page"
-      :page-sizes="[10, 15, 25, 35]"
-      :page-size.sync="pageSize"
-      layout="total, sizes, prev, pager, next, jumper"
-      :total="totalCount"
-    >
-    </el-pagination>
-    <SaveOrUpdate ref="SaveOrUpdate" />
-    <download ref="download"></download>
   </div>
 </template>
+
 <script>
-import { pageAddress, batchAddress } from "@/api/adress";
-import SaveOrUpdate from "./SaveOrUpdate.vue";
-import Download from "./download.vue";
 export default {
-  components: { SaveOrUpdate, Download },
   data() {
     return {
-      url: process.env.VUE_APP_BASE_API,
-      address: {
-        password: undefined,
-        groupName: undefined,
-        numWallet: undefined,
+      head: {
+        all:85,
+        bulk:85,
+        boutique:85
       },
-      tableData: [],
-      page: 1,
-      pageSize: 10,
-      totalCount: 0,
-    };
-  },
-  created() {
-    this.getAddresses();
+      table:{
+        totalNumber:22222,
+        walletNameGroup:['精品号','钱包组名称','钱包组名称'],
+        walletNameGroupIndex:0,
+      },
+      tableData: [{
+        projectName:'Zk',
+        totalNumber:5,
+        completedNumber:2,
+        status:0,
+        gas:1,
+        officialWebsite:"https://nytimes.com",
+        startTime:'16/08/2013',
+        endTime:'16/08/2013'
+      }, {
+        projectName:'LayerZero',
+        totalNumber:4,
+        completedNumber:1,
+        status:1,
+        gas:23,
+        officialWebsite:"https://nytimes.com",
+        startTime:'16/08/2013',
+        endTime:'16/08/2013'
+      }, {
+        projectName:'StarkNet',
+        totalNumber:1,
+        completedNumber:0,
+        status:2,
+        gas:23,
+        officialWebsite:"https://nytimes.com",
+        startTime:'16/08/2013',
+        endTime:'16/08/2013'
+      }, {
+        projectName:'Sei',
+        totalNumber:3,
+        completedNumber:2,
+        status:3,
+        gas:23,
+        officialWebsite:"https://nytimes.com",
+        startTime:'16/08/2013',
+        endTime:'16/08/2013'
+      }]
+    }
   },
   methods: {
-    generateAddress() {
-      this.$refs.SaveOrUpdate.addressModal = true;
-      this.$refs.SaveOrUpdate.resetField();
-      this.$refs.SaveOrUpdate.resetUserForm();
-    },
-    downloadAddress() {
-      this.$refs.download.downloadModal = true;
-      this.$refs.download.resetField();
-      this.$refs.download.resetUserForm();
-    },
-    getAddresses() {
-      pageAddress({
-        page: this.page,
-        pageSize: this.pageSize,
-      }).then((res) => {
-        this.tableData = res.records;
-        this.totalCount = res.total;
-      });
-    },
 
-    handleSizeChange(val) {
-      this.pageSize = val;
-      this.page = 1;
-      this.getAddresses();
-    },
-    handleCurrentChange(val) {
-      this.page = val;
-      this.getAddresses();
-    },
-  },
-  computed: {},
-};
-</script>
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.app-container{
+  .app-container-head{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    .app-container-head-left{
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      gap:60px;
+      .app-container-head-left-item{
+        display: flex;
+        flex-direction: column;
+        gap:8px;
+        .app-container-head-left-item-count{
+          font-weight: 700;
+          font-size: 21px;
+          line-height: 28px;
+          color: #181818;
+        }
+        .app-container-head-left-item-name{
+          font-weight: 700;
+          font-size: 12px;
+          line-height: 16px;
+          color: #8e8f91;
+        }
+      }
+      .app-container-head-left-divider{
+        width: 1px;
+        height: 50px;
+        border-right:1px solid #e4e6ea;
+      }
+    }
+
+    .app-container-head-right{
+      display: flex;
+      align-items: center;
+      gap:24px;
+      .app-container-head-right-button1{
+        width: 148px;
+        height: 52px;
+        display: flex;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+        gap: 4px;
+        background: #f9fbff;
+        border-radius: 10px;
+        font-weight: 700;
+        font-size: 15px;
+        line-height: 20px;
+        color: #2980ff;
+        border: 1px solid #2980FF;
+      }
+      .app-container-head-right-button2{
+        width: 148px;
+        height: 52px;
+        display: flex;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+        gap: 4px;
+        background: #4A76FF;
+        border-radius: 10px;
+        font-weight: 700;
+        font-size: 15px;
+        line-height: 20px;
+        color: #FFFFFF;
+      }
+    }
+  }
+  .app-container-table{
+    margin-top: 80px;
+    .app-container-table-title{
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      .app-container-table-title-left{
+        font-weight: 700;
+        font-size: 21px;
+        line-height: 28px;
+        color: #181818;
+      }
+      .app-container-table-title-right{
+        font-weight: 400;
+        font-size: 21px;
+        line-height: 28px;
+        color: #898a8c;
+      }
+    }
+    .app-container-table-select{
+      display: flex;
+      align-items: center;
+      gap:56px;
+      border-bottom: 4px solid #f2f4f7;
+      width: 100%;
+      margin-top: 28px;
+      .app-container-table-select-item{
+        font-weight: 400;
+        font-size: 17px;
+        line-height: 22px;
+        color: #ABABAB;
+        padding-bottom: 16px;
+        margin-bottom: -4px;
+        border-bottom: 4px solid #f2f4f7;
+        cursor: pointer;
+      }
+      .app-container-table-select-item-active{
+        font-weight: 700;
+        font-size: 17px;
+        line-height: 22px;
+        color: #2980FF;
+        padding-bottom: 16px;
+        margin-bottom: -4px;
+        border-bottom: 4px solid #2980FF;
+        cursor: pointer;
+      }
+    }
+    .app-container-table-screening{
+      display: flex;
+      align-items: center;
+      gap:100px;
+      padding: 20px 0;
+      margin: 40px 0;
+      border-top: 1px solid #f5f5f5;
+      border-bottom: 1px solid #f5f5f5;
+      .app-container-table-screening-item{
+        display: flex;
+        align-items: center;
+        gap:6px;
+        font-weight: 400;
+        font-size: 15px;
+        line-height: 20px;
+        color: #4d4d4e;
+      }
+    }
+    .app-container-table-main {
+      .accountAddress{
+        display: flex;
+        align-items: center;
+        gap:12px;
+        margin-left: 14px;
+        .img{
+          width: 26px;
+          height: 26px;
+          background: black;
+          border-radius: 50%;
+        }
+        .walletName{
+          font-weight: 700;
+          font-size: 15px;
+          line-height: 20px;
+          color: #181818;
+        }
+        .walletAddress{
+          font-weight: 400;
+          font-size: 15px;
+          line-height: 20px;
+          color: #181818;
+        }
+      }
+      .gas{
+        font-weight: 700;
+        font-size: 17px;
+        line-height: 22px;
+        color: #2980FF;
+      }
+      .type{
+        .bulk{
+          width: fit-content;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+          gap:4px;
+          padding: 5px 10px;
+          border: 1px solid #E0E0E0;
+          border-radius: 30px;
+          background: #edf2ff;
+          font-weight: 400;
+          font-size: 12px;
+          line-height: 16px;
+          color: #222222;
+        }
+        .boutique {
+          width: fit-content;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+          gap:4px;
+          padding: 5px 10px;
+          border-radius: 30px;
+          background: #222222;
+          font-weight: 700;
+          font-size: 12px;
+          line-height: 16px;
+          color: #F2C94C;
+        }
+      }
+      .lastTime{
+        font-weight: 400;
+        font-size: 14px;
+        line-height: 18px;
+        color: #898a8c;
+      }
+      .view{
+        font-weight: 700;
+        font-size: 14px;
+        line-height: 18px;
+        color: #2980FF;
+        margin-right: 14px;
+      }
+    }
+  }
+}
+::v-deep .el-table__body{
+  -webkit-border-vertical-spacing: 20px;
+  background: #f9fbff;
+}
+::v-deep .el-table__row{
+  border-radius: 10px;
+  background: white;
+  height: 58px;
+}
+::v-deep .el-table__row>td{
+  border: none;
+}
+::v-deep .el-table th.is-leaf{
+  border: none;
+  font-weight: 400;
+  font-size: 14px;
+  line-height: 18px;
+  color: #4d4d4e ;
+}
+::v-deep .el-table::before{
+  height: 0;
+}
+</style>
+

+ 112 - 0
front/admin-front/src/views/address/index1.vue

@@ -0,0 +1,112 @@
+<template>
+  <div class="">
+    <el-row style="margin: 0 0 48px 0">
+      <el-col :span="2">
+        <div class="">
+          <div class="totalCount-number">{{ this.totalCount }}</div>
+          <div class="totalCount-text">地址数量</div>
+        </div>
+      </el-col>
+
+      <el-col :span="3" :offset="15">
+        <el-button type="primary" class="btn-add" @click="generateAddress">
+          批量生成地址
+        </el-button>
+      </el-col>
+      <el-col :span="3">
+        <el-button type="primary" class="btn-add" @click="downloadAddress">
+          批量下载地址
+        </el-button>
+      </el-col>
+    </el-row>
+
+    <div class="block-title">地址列表</div>
+    <el-table :data="tableData" style="width: 100%">
+      <el-table-column prop="address" label="地址账号" width="420">
+        <template slot-scope="{ row }">
+          {{row.groupName}} <span style="margin-left:10px"></span> {{row.address}}
+        </template>
+      </el-table-column>
+
+      <!-- <el-table-column prop="groupName" label="地址组"> </el-table-column> -->
+      <el-table-column prop="" label="gas消耗"> </el-table-column>
+      <el-table-column prop="" label="地址余额"> </el-table-column>
+      <el-table-column prop="addressType" label="地址类型">
+        <template slot-scope="{ row }">
+          <el-tag v-if="row.addressType === 1" type="info">批量号</el-tag>
+          <el-tag v-else>精品号</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column prop="createTime" label="创建时间"> </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page.sync="page"
+      :page-sizes="[10, 15, 25, 35]"
+      :page-size.sync="pageSize"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="totalCount"
+    >
+    </el-pagination>
+    <SaveOrUpdate ref="SaveOrUpdate" />
+    <download ref="download"></download>
+  </div>
+</template>
+<script>
+import { pageAddress, batchAddress } from "@/api/adress";
+import SaveOrUpdate from "./SaveOrUpdate.vue";
+import Download from "./download.vue";
+export default {
+  components: { SaveOrUpdate, Download },
+  data() {
+    return {
+      url: process.env.VUE_APP_BASE_API,
+      address: {
+        password: undefined,
+        groupName: undefined,
+        numWallet: undefined,
+      },
+      tableData: [],
+      page: 1,
+      pageSize: 10,
+      totalCount: 0,
+    };
+  },
+  created() {
+    this.getAddresses();
+  },
+  methods: {
+    generateAddress() {
+      this.$refs.SaveOrUpdate.addressModal = true;
+      this.$refs.SaveOrUpdate.resetField();
+      this.$refs.SaveOrUpdate.resetUserForm();
+    },
+    downloadAddress() {
+      this.$refs.download.downloadModal = true;
+      this.$refs.download.resetField();
+      this.$refs.download.resetUserForm();
+    },
+    getAddresses() {
+      pageAddress({
+        page: this.page,
+        pageSize: this.pageSize,
+      }).then((res) => {
+        this.tableData = res.records;
+        this.totalCount = res.total;
+      });
+    },
+
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.page = 1;
+      this.getAddresses();
+    },
+    handleCurrentChange(val) {
+      this.page = val;
+      this.getAddresses();
+    },
+  },
+  computed: {},
+};
+</script>

Некоторые файлы не были показаны из-за большого количества измененных файлов