1、
This commit is contained in:
		
							
								
								
									
										46
									
								
								src/api/admin/wm-network.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								src/api/admin/wm-network.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 查询WmNetwork列表 | ||||
| export function listWmNetwork(query) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-network', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 查询WmNetwork详细 | ||||
| export function getWmNetwork(id) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-network/' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 新增WmNetwork | ||||
| export function addWmNetwork(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-network', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 修改WmNetwork | ||||
| export function updateWmNetwork(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-network/' + data.id, | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除WmNetwork | ||||
| export function delWmNetwork(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-network', | ||||
|     method: 'delete', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
							
								
								
									
										46
									
								
								src/api/admin/wm-token.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								src/api/admin/wm-token.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 查询WmToken列表 | ||||
| export function listWmToken(query) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-token', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 查询WmToken详细 | ||||
| export function getWmToken(id) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-token/' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 新增WmToken | ||||
| export function addWmToken(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-token', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 修改WmToken | ||||
| export function updateWmToken(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-token/' + data.id, | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除WmToken | ||||
| export function delWmToken(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-token', | ||||
|     method: 'delete', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| @ -44,3 +44,30 @@ export function delWmTransferItem(data) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| export function exportWmTransferItemExcel(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-transfer-item/export', | ||||
|     method: 'get', | ||||
|     params: data, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出自动转账日志Excel | ||||
| export function exportWmTransferItemAutoLogExcel(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-transfer-item/export-auto-log', | ||||
|     method: 'get', | ||||
|     params: data, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 查询自动转账日志列表 | ||||
| export function getWmTransferItemAutoLogPage(query) { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-transfer-item/auto-log', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| @ -44,3 +44,10 @@ export function delWmTransfer(data) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 批量删除WmTransfer | ||||
| export function clearAllTransfer() { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-transfer/clear', | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| @ -44,3 +44,10 @@ export function delWmWalletInfo(data) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 清空WmWalletInfo | ||||
| export function clearAllWmWalletInfo() { | ||||
|   return request({ | ||||
|     url: '/api/v1/wm-wallet-info/clear', | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| @ -44,6 +44,9 @@ service.interceptors.response.use( | ||||
|    * You can also judge the status by HTTP Status Code | ||||
|    */ | ||||
|   response => { | ||||
|     if (['blob'].includes(response.config.responseType)) { | ||||
|       return response.data | ||||
|     } | ||||
|     const code = response.data.code | ||||
|     if (code === 401) { | ||||
|       store.dispatch('user/resetToken') | ||||
|  | ||||
| @ -47,3 +47,25 @@ export function resolveBlob(res, mimeType) { | ||||
|   aLink.click() | ||||
|   document.body.appendChild(aLink) | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * 解析blob响应内容并下载 | ||||
|  * @param {*} res blob响应内容 | ||||
|  * @param {String} mimeType MIME类型 | ||||
|  * @param {String} fileName 新文件名称 | ||||
|  */ | ||||
| export function resolveBlobByName(res, mimeType, fileName) { | ||||
|   const aLink = document.createElement('a') | ||||
|   var blob = new Blob([res], { type: mimeType || 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) | ||||
|   // //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名; | ||||
|   // var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*') | ||||
|   // var contentDisposition = decodeURI(res.headers['content-disposition']) | ||||
|   // var result = patt.exec(contentDisposition) | ||||
|   // var fileName = result[1] | ||||
|   // fileName = fileName.replace(/\"/g, '') | ||||
|   aLink.href = URL.createObjectURL(blob) | ||||
|   aLink.setAttribute('download', fileName) // 设置下载文件名称 | ||||
|   document.body.appendChild(aLink) | ||||
|   aLink.click() | ||||
|   document.body.appendChild(aLink) | ||||
| } | ||||
|  | ||||
							
								
								
									
										238
									
								
								src/views/admin/wm-network/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										238
									
								
								src/views/admin/wm-network/index.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,238 @@ | ||||
| <template> | ||||
|   <BasicLayout> | ||||
|     <template #wrapper> | ||||
|       <el-card class="box-card"> | ||||
|         <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px"> | ||||
|           <el-form-item label="网络名称" prop="networkName"><el-input | ||||
|             v-model="queryParams.networkName" | ||||
|             placeholder="请输入网络名称" | ||||
|             clearable | ||||
|             size="small" | ||||
|             @keyup.enter.native="handleQuery" | ||||
|           /> | ||||
|           </el-form-item> | ||||
|  | ||||
|           <el-form-item> | ||||
|             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||||
|             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||||
|           </el-form-item> | ||||
|         </el-form> | ||||
|  | ||||
|         <el-row :gutter="10" class="mb8"> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               v-permisaction="['admin:wmNetwork:edit']" | ||||
|               type="success" | ||||
|               icon="el-icon-edit" | ||||
|               size="mini" | ||||
|               :disabled="single" | ||||
|               @click="handleUpdate" | ||||
|             >修改 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|  | ||||
|         <el-table v-loading="loading" :data="wmNetworkList" @selection-change="handleSelectionChange"> | ||||
|           <el-table-column type="selection" width="55" align="center" /> | ||||
|           <el-table-column label="网络名称" align="center" prop="networkName" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="网络代码" align="center" prop="code" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column | ||||
|             label="接收钱包地址" | ||||
|             align="center" | ||||
|             prop="receiveAddress" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /> | ||||
|           <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||
|             <template slot-scope="scope"> | ||||
|  | ||||
|               <!-- <el-popconfirm class="delete-popconfirm" title="确认要修改吗?" confirm-button-text="修改" | ||||
|                                 @confirm="handleUpdate(scope.row)"> --> | ||||
|               <el-button | ||||
|                 slot="reference" | ||||
|                 size="mini" | ||||
|                 type="text" | ||||
|                 icon="el-icon-edit" | ||||
|                 @click="handleUpdate(scope.row)" | ||||
|               >修改 | ||||
|               </el-button> | ||||
|               <!-- </el-popconfirm> --> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </el-table> | ||||
|  | ||||
|         <pagination | ||||
|           v-show="total > 0" | ||||
|           :total="total" | ||||
|           :page.sync="queryParams.pageIndex" | ||||
|           :limit.sync="queryParams.pageSize" | ||||
|           @pagination="getList" | ||||
|         /> | ||||
|  | ||||
|         <!-- 添加或修改对话框 --> | ||||
|         <el-dialog :title="title" :visible.sync="open" width="500px"> | ||||
|           <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | ||||
|  | ||||
|             <el-form-item label="网络名称" prop="networkName"> | ||||
|               <el-input v-model="form.networkName" placeholder="网络名称" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="网络代码" prop="code"> | ||||
|               <el-input v-model="form.code" disabled placeholder="网络代码" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="接收钱包地址" prop="receiveAddress"> | ||||
|               <el-input v-model="form.receiveAddress" placeholder="接收钱包地址" /> | ||||
|             </el-form-item> | ||||
|           </el-form> | ||||
|           <div slot="footer" class="dialog-footer"> | ||||
|             <el-button type="primary" @click="submitForm">确 定</el-button> | ||||
|             <el-button @click="cancel">取 消</el-button> | ||||
|           </div> | ||||
|         </el-dialog> | ||||
|       </el-card> | ||||
|     </template> | ||||
|   </BasicLayout> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { getWmNetwork, listWmNetwork, updateWmNetwork } from '@/api/admin/wm-network' | ||||
|  | ||||
| export default { | ||||
|   name: 'WmNetwork', | ||||
|   components: { | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       // 遮罩层 | ||||
|       loading: true, | ||||
|       // 选中数组 | ||||
|       ids: [], | ||||
|       // 非单个禁用 | ||||
|       single: true, | ||||
|       // 非多个禁用 | ||||
|       multiple: true, | ||||
|       // 总条数 | ||||
|       total: 0, | ||||
|       // 弹出层标题 | ||||
|       title: '', | ||||
|       // 是否显示弹出层 | ||||
|       open: false, | ||||
|       isEdit: false, | ||||
|       // 类型数据字典 | ||||
|       typeOptions: [], | ||||
|       wmNetworkList: [], | ||||
|  | ||||
|       // 关系表类型 | ||||
|  | ||||
|       // 查询参数 | ||||
|       queryParams: { | ||||
|         pageIndex: 1, | ||||
|         pageSize: 10, | ||||
|         networkName: undefined, | ||||
|         code: undefined, | ||||
|         receiveAddress: undefined, | ||||
|         idOrder: 'desc' | ||||
|       }, | ||||
|       // 表单参数 | ||||
|       form: { | ||||
|       }, | ||||
|       // 表单校验 | ||||
|       rules: { | ||||
|         networkName: [{ required: true, message: '网络名称不能为空', trigger: 'blur' }] | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getList() | ||||
|   }, | ||||
|   methods: { | ||||
|     /** 查询参数列表 */ | ||||
|     getList() { | ||||
|       this.loading = true | ||||
|       listWmNetwork(this.addDateRange(this.queryParams, this.dateRange)).then(response => { | ||||
|         this.wmNetworkList = response.data.list | ||||
|         this.total = response.data.count | ||||
|         this.loading = false | ||||
|       } | ||||
|       ) | ||||
|     }, | ||||
|     // 取消按钮 | ||||
|     cancel() { | ||||
|       this.open = false | ||||
|       this.reset() | ||||
|     }, | ||||
|     // 表单重置 | ||||
|     reset() { | ||||
|       this.form = { | ||||
|  | ||||
|         id: undefined, | ||||
|         networkName: undefined, | ||||
|         code: undefined, | ||||
|         receiveAddress: undefined | ||||
|       } | ||||
|       this.resetForm('form') | ||||
|     }, | ||||
|     getImgList: function() { | ||||
|       this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl | ||||
|     }, | ||||
|     fileClose: function() { | ||||
|       this.fileOpen = false | ||||
|     }, | ||||
|     // 关系 | ||||
|     // 文件 | ||||
|     /** 搜索按钮操作 */ | ||||
|     handleQuery() { | ||||
|       this.queryParams.pageIndex = 1 | ||||
|       this.getList() | ||||
|     }, | ||||
|     /** 重置按钮操作 */ | ||||
|     resetQuery() { | ||||
|       this.dateRange = [] | ||||
|       this.resetForm('queryForm') | ||||
|       this.handleQuery() | ||||
|     }, | ||||
|     // 多选框选中数据 | ||||
|     handleSelectionChange(selection) { | ||||
|       this.ids = selection.map(item => item.id) | ||||
|       this.single = selection.length !== 1 | ||||
|       this.multiple = !selection.length | ||||
|     }, | ||||
|     /** 修改按钮操作 */ | ||||
|     handleUpdate(row) { | ||||
|       const id = | ||||
|                 row.id || this.ids | ||||
|       const _this = this | ||||
|  | ||||
|       this.$confirm('是否确认编辑编号为"' + id + '"的数据项?', '警告', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(function() { | ||||
|         return getWmNetwork(id) | ||||
|       }).then(response => { | ||||
|         _this.open = true | ||||
|         _this.form = response.data | ||||
|         _this.title = '修改网络配置' | ||||
|         _this.isEdit = true | ||||
|       }) | ||||
|     }, | ||||
|     /** 提交按钮 */ | ||||
|     submitForm: function() { | ||||
|       this.$refs['form'].validate(valid => { | ||||
|         if (valid) { | ||||
|           updateWmNetwork(this.form).then(response => { | ||||
|             if (response.code === 200) { | ||||
|               this.msgSuccess(response.msg) | ||||
|               this.open = false | ||||
|               this.getList() | ||||
|             } else { | ||||
|               this.msgError(response.msg) | ||||
|             } | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     handleConfirm() { | ||||
|       console.log('y') | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
							
								
								
									
										434
									
								
								src/views/admin/wm-token/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										434
									
								
								src/views/admin/wm-token/index.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,434 @@ | ||||
| <template> | ||||
|   <BasicLayout> | ||||
|     <template #wrapper> | ||||
|       <el-card class="box-card"> | ||||
|         <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px"> | ||||
|           <el-form-item label="网络" prop="networkId"> | ||||
|  | ||||
|             <el-select v-model="queryParams.networkId" clearable placeholder="请选择网络"> | ||||
|               <el-option | ||||
|                 v-for="item in networkList" | ||||
|                 :key="'querynetwork' + item.id" | ||||
|                 :label="item.networkName" | ||||
|                 :value="item.id" | ||||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item label="代币名称" prop="tokenName"><el-input | ||||
|             v-model="queryParams.tokenName" | ||||
|             placeholder="请输入代币名称" | ||||
|             clearable | ||||
|             size="small" | ||||
|             @keyup.enter.native="handleQuery" | ||||
|           /> | ||||
|           </el-form-item> | ||||
|  | ||||
|           <el-form-item> | ||||
|             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||||
|             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||||
|           </el-form-item> | ||||
|         </el-form> | ||||
|  | ||||
|         <el-row :gutter="10" class="mb8"> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               v-permisaction="['admin:wmToken:add']" | ||||
|               type="primary" | ||||
|               icon="el-icon-plus" | ||||
|               size="mini" | ||||
|               @click="handleAdd" | ||||
|             >新增 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               v-permisaction="['admin:wmToken:edit']" | ||||
|               type="success" | ||||
|               icon="el-icon-edit" | ||||
|               size="mini" | ||||
|               :disabled="single" | ||||
|               @click="handleUpdate" | ||||
|             >修改 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               v-permisaction="['admin:wmToken:remove']" | ||||
|               type="danger" | ||||
|               icon="el-icon-delete" | ||||
|               size="mini" | ||||
|               :disabled="multiple" | ||||
|               @click="handleDelete" | ||||
|             >删除 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|  | ||||
|         <el-table v-loading="loading" :data="wmTokenList" @selection-change="handleSelectionChange"> | ||||
|           <el-table-column type="selection" width="55" align="center" /><el-table-column | ||||
|             label="网络" | ||||
|             align="center" | ||||
|             prop="networkId" | ||||
|             :show-overflow-tooltip="true" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               {{ networkFormat(scope.row) }} | ||||
|             </template> | ||||
|           </el-table-column><el-table-column | ||||
|             label="代币名称" | ||||
|             align="center" | ||||
|             prop="tokenName" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /><el-table-column | ||||
|             label="代币地址" | ||||
|             align="center" | ||||
|             prop="tokenAddress" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /><el-table-column | ||||
|             label="代币精度" | ||||
|             align="center" | ||||
|             prop="decimals" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /><el-table-column | ||||
|             label="开启自动转账" | ||||
|             align="center" | ||||
|             prop="isAuto" | ||||
|             :show-overflow-tooltip="true" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-tag v-if="scope.row.isAuto === 1" type="success">开启</el-tag> | ||||
|               <el-tag v-else type="danger">关闭</el-tag> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="转账类型" align="center" width="100"> | ||||
|             <template slot-scope="scope"> | ||||
|               {{ transTypeFormat(scope.row) }} | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="转账值" prop="transValue" align="center" width="100" /> | ||||
|           <el-table-column label="触发代币数" align="center" prop="triggerAmount" /> | ||||
|           <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||
|             <template slot-scope="scope"> | ||||
|  | ||||
|               <el-button | ||||
|                 slot="reference" | ||||
|                 v-permisaction="['admin:wmToken:edit']" | ||||
|                 size="mini" | ||||
|                 type="text" | ||||
|                 icon="el-icon-edit" | ||||
|                 @click="handleUpdate(scope.row)" | ||||
|               >修改 | ||||
|               </el-button> | ||||
|               <el-button | ||||
|                 slot="reference" | ||||
|                 v-permisaction="['admin:wmToken:remove']" | ||||
|                 size="mini" | ||||
|                 type="text" | ||||
|                 icon="el-icon-delete" | ||||
|                 @click="handleDelete(scope.row)" | ||||
|               >删除 | ||||
|               </el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </el-table> | ||||
|  | ||||
|         <pagination | ||||
|           v-show="total > 0" | ||||
|           :total="total" | ||||
|           :page.sync="queryParams.pageIndex" | ||||
|           :limit.sync="queryParams.pageSize" | ||||
|           @pagination="getList" | ||||
|         /> | ||||
|  | ||||
|         <!-- 添加或修改对话框 --> | ||||
|         <el-dialog :title="title" :visible.sync="open" width="500px"> | ||||
|           <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | ||||
|  | ||||
|             <el-form-item label="网络id" prop="networkId"> | ||||
|               <el-select v-model="form.networkId" placeholder="请选择网络"> | ||||
|                 <el-option | ||||
|                   v-for="item in networkList" | ||||
|                   :key="'network' + item.id" | ||||
|                   :label="item.networkName" | ||||
|                   :value="item.id" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="代币名称" prop="tokenName"> | ||||
|               <el-input v-model="form.tokenName" placeholder="代币名称" maxlength="20" show-word-limit /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="代币地址" prop="tokenAddress"> | ||||
|               <el-input v-model="form.tokenAddress" placeholder="代币地址 请注意如果未填写则为主币!!" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="代币精度" prop="decimals"> | ||||
|               <el-input v-model="form.decimals" placeholder="代币精度" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="触发代币数" prop="triggerAmount"> | ||||
|               <el-input v-model="form.triggerAmount" placeholder="触发代币数" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="自动转账" prop="isAuto"> | ||||
|               <el-radio-group v-model="form.isAuto"> | ||||
|                 <el-radio | ||||
|                   v-for="item in isAutoOptions" | ||||
|                   :key="'auto' + item.value" | ||||
|                   :label="item.value" | ||||
|                 >{{ | ||||
|                   item.label | ||||
|                 }}</el-radio> | ||||
|               </el-radio-group> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="form.isAuto === 1" label="转账类型" prop="transType"> | ||||
|               <el-radio-group v-model="form.transType"> | ||||
|                 <el-radio | ||||
|                   v-for="item in transTypeOptions" | ||||
|                   :key="'transtype' + item.value" | ||||
|                   :label="item.value" | ||||
|                 >{{ | ||||
|                   item.label | ||||
|                 }}</el-radio> | ||||
|               </el-radio-group> | ||||
|             </el-form-item> | ||||
|             <el-form-item | ||||
|               v-if="form.isAuto === 1" | ||||
|               :label="'转账' + (form.transtype === 1 ? '百分比' : '金额')" | ||||
|               prop="transValue" | ||||
|             > | ||||
|               <el-input | ||||
|                 v-model="form.transValue" | ||||
|                 :placeholder="'请输入转账' + (form.transtype === 1 ? '百分比' : '金额')" | ||||
|               /> | ||||
|             </el-form-item> | ||||
|           </el-form> | ||||
|           <div slot="footer" class="dialog-footer"> | ||||
|             <el-button type="primary" @click="submitForm">确 定</el-button> | ||||
|             <el-button @click="cancel">取 消</el-button> | ||||
|           </div> | ||||
|         </el-dialog> | ||||
|       </el-card> | ||||
|     </template> | ||||
|   </BasicLayout> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { addWmToken, delWmToken, getWmToken, listWmToken, updateWmToken } from '@/api/admin/wm-token' | ||||
| import { listWmNetwork } from '@/api/admin/wm-network' | ||||
|  | ||||
| export default { | ||||
|   name: 'WmToken', | ||||
|   components: { | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       // 遮罩层 | ||||
|       loading: true, | ||||
|       // 选中数组 | ||||
|       ids: [], | ||||
|       // 非单个禁用 | ||||
|       single: true, | ||||
|       // 非多个禁用 | ||||
|       multiple: true, | ||||
|       // 总条数 | ||||
|       total: 0, | ||||
|       // 弹出层标题 | ||||
|       title: '', | ||||
|       // 是否显示弹出层 | ||||
|       open: false, | ||||
|       isEdit: false, | ||||
|       // 类型数据字典 | ||||
|       typeOptions: [], | ||||
|       transTypeOptions: [{ | ||||
|         label: '百分比', | ||||
|         value: 1 | ||||
|       }, { | ||||
|         label: '金额', | ||||
|         value: 2 | ||||
|       }], | ||||
|       isAutoOptions: [{ | ||||
|         label: '开启', | ||||
|         value: 1 | ||||
|       }, { | ||||
|         label: '关闭', | ||||
|         value: 2 | ||||
|       }], | ||||
|       wmTokenList: [], | ||||
|       networkList: [], | ||||
|       // 关系表类型 | ||||
|  | ||||
|       // 查询参数 | ||||
|       queryParams: { | ||||
|         pageIndex: 1, | ||||
|         pageSize: 10, | ||||
|         networkId: undefined, | ||||
|         tokenName: undefined | ||||
|  | ||||
|       }, | ||||
|       // 表单参数 | ||||
|       form: { | ||||
|       }, | ||||
|       // 表单校验 | ||||
|       rules: { | ||||
|         networkId: [{ required: true, message: '网络不能为空', trigger: 'blur' }], | ||||
|         tokenName: [{ required: true, message: '代币名称不能为空', trigger: 'blur' }], | ||||
|         // tokenAddress: [{ required: true, message: '代币地址不能为空', trigger: 'blur' }], | ||||
|         decimals: [{ required: true, message: '代币精度不能为空', trigger: 'blur' }], | ||||
|         transType: [{ required: true, message: '转账类型不能为空', trigger: 'blur' }], | ||||
|         transValue: [{ required: true, message: '转账值不能为空', trigger: 'blur' }], | ||||
|         triggerAmount: [{ required: true, message: '触发代币数不能为空', trigger: 'blur' }] | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getList() | ||||
|     this.getNetworkList() | ||||
|   }, | ||||
|   methods: { | ||||
|     getNetworkList() { | ||||
|       listWmNetwork({ pageIndex: 1, pageSize: 100 }).then(response => { | ||||
|         this.networkList = response.data.list | ||||
|       }) | ||||
|     }, | ||||
|     /** 查询参数列表 */ | ||||
|     getList() { | ||||
|       this.loading = true | ||||
|       listWmToken(this.addDateRange(this.queryParams, this.dateRange)).then(response => { | ||||
|         this.wmTokenList = response.data.list | ||||
|         this.total = response.data.count | ||||
|         this.loading = false | ||||
|       } | ||||
|       ) | ||||
|     }, | ||||
|     networkFormat(row) { | ||||
|       const netword = this.networkList.find(item => item.id === row.networkId) | ||||
|       return netword ? netword.networkName : '' | ||||
|     }, | ||||
|     transTypeFormat(row) { | ||||
|       const transType = this.transTypeOptions.find(item => item.value === row.transType) | ||||
|       return transType ? transType.label : '' | ||||
|     }, | ||||
|     // 取消按钮 | ||||
|     cancel() { | ||||
|       this.open = false | ||||
|       this.reset() | ||||
|     }, | ||||
|     // 表单重置 | ||||
|     reset() { | ||||
|       this.form = { | ||||
|  | ||||
|         id: undefined, | ||||
|         networkId: undefined, | ||||
|         tokenName: undefined, | ||||
|         tokenAddress: undefined, | ||||
|         decimals: undefined, | ||||
|         isAuto: 1, | ||||
|         transType: undefined, | ||||
|         transValue: undefined | ||||
|       } | ||||
|       this.resetForm('form') | ||||
|     }, | ||||
|     getImgList: function() { | ||||
|       this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl | ||||
|     }, | ||||
|     fileClose: function() { | ||||
|       this.fileOpen = false | ||||
|     }, | ||||
|     // 关系 | ||||
|     // 文件 | ||||
|     /** 搜索按钮操作 */ | ||||
|     handleQuery() { | ||||
|       this.queryParams.pageIndex = 1 | ||||
|       this.getList() | ||||
|     }, | ||||
|     /** 重置按钮操作 */ | ||||
|     resetQuery() { | ||||
|       this.dateRange = [] | ||||
|       this.resetForm('queryForm') | ||||
|       this.handleQuery() | ||||
|     }, | ||||
|     /** 新增按钮操作 */ | ||||
|     handleAdd() { | ||||
|       this.reset() | ||||
|       this.open = true | ||||
|       this.title = '添加代币配置' | ||||
|       this.isEdit = false | ||||
|     }, | ||||
|     // 多选框选中数据 | ||||
|     handleSelectionChange(selection) { | ||||
|       this.ids = selection.map(item => item.id) | ||||
|       this.single = selection.length !== 1 | ||||
|       this.multiple = !selection.length | ||||
|     }, | ||||
|     /** 修改按钮操作 */ | ||||
|     handleUpdate(row) { | ||||
|       const _this = this | ||||
|       const id = row.id || this.ids | ||||
|  | ||||
|       this.$confirm('是否确认编辑编号为"' + id + '"的数据项?', '警告', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(function() { | ||||
|         _this.reset() | ||||
|         return getWmToken(id) | ||||
|       }).then(response => { | ||||
|         _this.form = response.data | ||||
|         _this.open = true | ||||
|         _this.title = '修改代币配置' | ||||
|         _this.isEdit = true | ||||
|       }) | ||||
|     }, | ||||
|     /** 提交按钮 */ | ||||
|     submitForm: function() { | ||||
|       this.$refs['form'].validate(valid => { | ||||
|         if (valid) { | ||||
|           this.form.isAuto = this.form.isAuto ? Number(this.form.isAuto) : undefined | ||||
|           this.form.decimals = this.form.decimals ? Number(this.form.decimals) : undefined | ||||
|           this.form.triggerAmount = this.form.triggerAmount ? Number(this.form.triggerAmount) : undefined | ||||
|  | ||||
|           if (this.form.id !== undefined) { | ||||
|             updateWmToken(this.form).then(response => { | ||||
|               if (response.code === 200) { | ||||
|                 this.msgSuccess(response.msg) | ||||
|                 this.open = false | ||||
|                 this.getList() | ||||
|               } else { | ||||
|                 this.msgError(response.msg) | ||||
|               } | ||||
|             }) | ||||
|           } else { | ||||
|             addWmToken(this.form).then(response => { | ||||
|               if (response.code === 200) { | ||||
|                 this.msgSuccess(response.msg) | ||||
|                 this.open = false | ||||
|                 this.getList() | ||||
|               } else { | ||||
|                 this.msgError(response.msg) | ||||
|               } | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     /** 删除按钮操作 */ | ||||
|     handleDelete(row) { | ||||
|       var Ids = (row.id && [row.id]) || this.ids | ||||
|  | ||||
|       this.$confirm('是否确认删除编号为"' + Ids + '"的数据项?', '警告', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(function() { | ||||
|         return delWmToken({ 'ids': Ids }) | ||||
|       }).then((response) => { | ||||
|         if (response.code === 200) { | ||||
|           this.msgSuccess(response.msg) | ||||
|           this.open = false | ||||
|           this.getList() | ||||
|         } else { | ||||
|           this.msgError(response.msg) | ||||
|         } | ||||
|       }).catch(function() { | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
							
								
								
									
										248
									
								
								src/views/admin/wm-transfer/detail.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										248
									
								
								src/views/admin/wm-transfer/detail.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,248 @@ | ||||
| <template> | ||||
|   <el-dialog | ||||
|     title="转账明细" | ||||
|     :visible.sync="open" | ||||
|     width="80%" | ||||
|     @open="reloadDta" | ||||
|     @close="closeDialog" | ||||
|   > | ||||
|     <el-table v-loading="loading" :data="wmTransferItemList" @cell-dblclick="handleCellDblClick"> | ||||
|       <!-- <el-table-column | ||||
|         label="代币地址" | ||||
|         align="center" | ||||
|         prop="tokenAddress" | ||||
|         :show-overflow-tooltip="true" | ||||
|       /> --> | ||||
|       <el-table-column | ||||
|         label="来源地址" | ||||
|         align="center" | ||||
|         prop="fromAddress" | ||||
|         :show-overflow-tooltip="true" | ||||
|       /><el-table-column | ||||
|         label="目标地址" | ||||
|         align="center" | ||||
|         prop="toAddress" | ||||
|         :show-overflow-tooltip="true" | ||||
|       /><el-table-column | ||||
|         label="代币数量" | ||||
|         align="center" | ||||
|         prop="amount" | ||||
|         :show-overflow-tooltip="true" | ||||
|       /> | ||||
|       <!-- <el-table-column | ||||
|         label="类型" | ||||
|         align="center" | ||||
|         prop="type" | ||||
|         :show-overflow-tooltip="true" | ||||
|       > | ||||
|         <template slot-scope="scope"> | ||||
|           {{ typeFormat(scope.row) }} | ||||
|         </template> </el-table-column | ||||
|       ><el-table-column | ||||
|         label="类型值" | ||||
|         align="center" | ||||
|         prop="typeValue" | ||||
|         :show-overflow-tooltip="true" | ||||
|       /> --> | ||||
|       <el-table-column | ||||
|         label="私钥" | ||||
|         align="center" | ||||
|         prop="privateKey" | ||||
|         :show-overflow-tooltip="true" | ||||
|       /> | ||||
|       <el-table-column label="交易hash" prop="hash" :show-overflow-tooltip="true" /> | ||||
|       <el-table-column label="状态" prop="status"> | ||||
|         <template slot-scope="scope"> | ||||
|           {{ statusFormat(scope.row) }} | ||||
|         </template> | ||||
|       </el-table-column> | ||||
|       <!-- <el-table-column | ||||
|         label="操作" | ||||
|         align="center" | ||||
|         class-name="small-padding fixed-width" | ||||
|       > | ||||
|         <template slot-scope="scope"> | ||||
|           <el-popconfirm | ||||
|             class="delete-popconfirm" | ||||
|             title="确认要修改吗?" | ||||
|             confirm-button-text="修改" | ||||
|             @confirm="handleUpdate(scope.row)" | ||||
|           > | ||||
|             <el-button | ||||
|               slot="reference" | ||||
|               v-permisaction="['admin:wmTransferItem:edit']" | ||||
|               size="mini" | ||||
|               type="text" | ||||
|               icon="el-icon-edit" | ||||
|               >修改 | ||||
|             </el-button> | ||||
|           </el-popconfirm> | ||||
|           <el-popconfirm | ||||
|             class="delete-popconfirm" | ||||
|             title="确认要删除吗?" | ||||
|             confirm-button-text="删除" | ||||
|             @confirm="handleDelete(scope.row)" | ||||
|           > | ||||
|             <el-button | ||||
|               slot="reference" | ||||
|               v-permisaction="['admin:wmTransferItem:remove']" | ||||
|               size="mini" | ||||
|               type="text" | ||||
|               icon="el-icon-delete" | ||||
|               >删除 | ||||
|             </el-button> | ||||
|           </el-popconfirm> | ||||
|         </template> | ||||
|       </el-table-column> --> | ||||
|     </el-table> | ||||
|  | ||||
|     <pagination | ||||
|       v-show="total > 0" | ||||
|       :total="total" | ||||
|       :page.sync="queryParams.pageIndex" | ||||
|       :limit.sync="queryParams.pageSize" | ||||
|       @pagination="getList" | ||||
|     /> | ||||
|   </el-dialog> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { listWmTransferItem } from '@/api/admin/wm-transfer-item' | ||||
|  | ||||
| export default { | ||||
|   name: 'TransferItemDetail', | ||||
|   props: { | ||||
|     open: { | ||||
|       type: Boolean, | ||||
|       default: false | ||||
|     }, | ||||
|     transferId: { | ||||
|       type: Number, | ||||
|       default: 0 | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       wmTransferItemList: [], | ||||
|       typeOptions: [ | ||||
|         { | ||||
|           label: '百分比', | ||||
|           value: 1 | ||||
|         }, | ||||
|         { | ||||
|           label: '实际金额', | ||||
|           value: 2 | ||||
|         } | ||||
|       ], | ||||
|       transferTypeOptions: [ | ||||
|         { | ||||
|           label: '批量转出', | ||||
|           value: 1 | ||||
|         }, | ||||
|         { | ||||
|           label: '批量汇总', | ||||
|           value: 2 | ||||
|         } | ||||
|       ], | ||||
|       statusOptions: [ | ||||
|         { | ||||
|           label: '默认', | ||||
|           value: 0 | ||||
|         }, | ||||
|         { | ||||
|           label: '交易中', | ||||
|           value: 1 | ||||
|         }, | ||||
|         { | ||||
|           label: '已完成', | ||||
|           value: 2 | ||||
|         }, | ||||
|         { | ||||
|           label: '已失败', | ||||
|           value: 3 | ||||
|         } | ||||
|       ], | ||||
|       queryParams: { | ||||
|         pageIndex: 1, | ||||
|         pageSize: 10, | ||||
|         type: undefined, | ||||
|         idOrder: 'desc' | ||||
|       }, | ||||
|       total: 0, | ||||
|       loading: false | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     reloadDta() { | ||||
|       this.getList() | ||||
|     }, | ||||
|     typeFormat(row) { | ||||
|       const type = this.typeOptions.find((item) => item.value === row.type) | ||||
|       return type ? type.label : '' | ||||
|     }, | ||||
|     transferTypeFormat(row) { | ||||
|       const transferType = this.transferTypeOptions.find( | ||||
|         (item) => item.value === row.transferType | ||||
|       ) | ||||
|       return transferType ? transferType.label : '' | ||||
|     }, | ||||
|     statusFormat(row) { | ||||
|       const status = this.statusOptions.find((item) => item.value === row.status) | ||||
|       return status ? status.label : '' | ||||
|     }, | ||||
|     /** 查询参数列表 */ | ||||
|     getList() { | ||||
|       this.queryParams.transferId = this.transferId | ||||
|       this.loading = true | ||||
|  | ||||
|       listWmTransferItem(this.addDateRange(this.queryParams, this.dateRange)) | ||||
|         .then((response) => { | ||||
|           this.wmTransferItemList = response.data.list | ||||
|           this.total = response.data.count | ||||
|         }) | ||||
|         .finally(() => { | ||||
|           this.loading = false | ||||
|         }) | ||||
|     }, | ||||
|     closeDialog() { | ||||
|       this.wmTransferItemList = [] | ||||
|       this.total = 0 | ||||
|       this.queryParams = { | ||||
|         pageIndex: 1, | ||||
|         pageSize: 10, | ||||
|         type: undefined, | ||||
|         idOrder: 'desc' | ||||
|       } | ||||
|  | ||||
|       this.$emit('update:open', false) | ||||
|     }, | ||||
|     // 取消 | ||||
|     cancel() { | ||||
|       this.wmTransferItemList = [] | ||||
|       this.total = 0 | ||||
|       this.queryParams = { | ||||
|         pageIndex: 1, | ||||
|         pageSize: 10, | ||||
|         type: undefined, | ||||
|         idOrder: 'desc' | ||||
|       } | ||||
|  | ||||
|       this.$emit('update:open', false) | ||||
|     }, | ||||
|     handleCellDblClick(row, column, cell, event) { | ||||
|       // 获取单元格文本内容 | ||||
|       const cellText = row[column.property] | ||||
|  | ||||
|       // 使用 Clipboard API 复制文本 | ||||
|       navigator.clipboard.writeText(cellText).then(() => { | ||||
|         this.$message.success('已复制到剪贴板: ' + cellText) | ||||
|       }).catch(err => { | ||||
|         console.error('复制失败:', err) | ||||
|         this.$message.error('复制失败') | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped></style> | ||||
| @ -1,24 +1,27 @@ | ||||
|  | ||||
| <template> | ||||
|   <BasicLayout> | ||||
|     <template #wrapper> | ||||
|       <el-card class="box-card"> | ||||
|         <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px"> | ||||
|           <el-form-item label="类型 0-百分比 1-实际金额" prop="type"><el-input | ||||
|             v-model="queryParams.type" | ||||
|             placeholder="请输入类型 0-百分比 1-实际金额" | ||||
|             clearable | ||||
|             size="small" | ||||
|             @keyup.enter.native="handleQuery" | ||||
|           /> | ||||
|           <el-form-item label="类型" prop="type"> | ||||
|             <el-select v-model="queryParams.type" clearable placeholder="请选择"> | ||||
|               <el-option | ||||
|                 v-for="item in typeOptions" | ||||
|                 :key="'querytype' + item.value" | ||||
|                 :label="item.label" | ||||
|                 :value="item.value" | ||||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|           <el-form-item label="转账类型 0-批量转出 1-批量汇总" prop="transferType"><el-input | ||||
|             v-model="queryParams.transferType" | ||||
|             placeholder="请输入转账类型 0-批量转出 1-批量汇总" | ||||
|             clearable | ||||
|             size="small" | ||||
|             @keyup.enter.native="handleQuery" | ||||
|           /> | ||||
|           <el-form-item label="转账类型" prop="transferType"> | ||||
|             <el-select v-model="queryParams.transferType" clearable placeholder="请选择"> | ||||
|               <el-option | ||||
|                 v-for="item in transferTypeOptions" | ||||
|                 :key="'querytransType' + item.value" | ||||
|                 :label="item.label" | ||||
|                 :value="item.value" | ||||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|  | ||||
|           <el-form-item> | ||||
| @ -38,17 +41,11 @@ | ||||
|             >新增 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               v-permisaction="['admin:wmTransfer:edit']" | ||||
|               type="success" | ||||
|               icon="el-icon-edit" | ||||
|               size="mini" | ||||
|               :disabled="single" | ||||
|               @click="handleUpdate" | ||||
|             >修改 | ||||
|           <!-- <el-col :span="1.5"> | ||||
|             <el-button v-permisaction="['admin:wmTransfer:edit']" type="success" icon="el-icon-edit" size="mini" | ||||
|               :disabled="single" @click="handleUpdate">修改 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|           </el-col> --> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               v-permisaction="['admin:wmTransfer:remove']" | ||||
| @ -60,47 +57,66 @@ | ||||
|             >删除 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               v-permisaction="['admin:wmTransfer:clearAll']" | ||||
|               type="danger" | ||||
|               icon="el-icon-delete" | ||||
|               size="mini" | ||||
|               @click="handleClearAll" | ||||
|             >清除所有 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|  | ||||
|         <el-table v-loading="loading" :data="wmTransferList" @selection-change="handleSelectionChange"> | ||||
|           <el-table-column type="selection" width="55" align="center" /><el-table-column | ||||
|             label="类型 0-百分比 1-实际金额" | ||||
|             align="center" | ||||
|             prop="type" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /><el-table-column | ||||
|             label="转账类型 0-批量转出 1-批量汇总" | ||||
|             align="center" | ||||
|             prop="transferType" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /><el-table-column | ||||
|             label="状态" | ||||
|             align="center" | ||||
|             prop="status" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /><el-table-column | ||||
|             label="备注信息" | ||||
|             align="center" | ||||
|             prop="remark" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /> | ||||
|           <el-table-column type="selection" width="55" align="center" /> | ||||
|           <el-table-column label="类型" align="center" prop="type" width="80"> | ||||
|             <template slot-scope="scope"> | ||||
|               {{ typeFormat(scope.row) }} | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="转账类型" align="center" prop="transferType" :show-overflow-tooltip="true"> | ||||
|             <template slot-scope="scope"> | ||||
|               {{ transferTypeFormat(scope.row) }} | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="状态" prop="status" :show-overflow-tooltip="true"> | ||||
|             <template slot-scope="scope"> | ||||
|               <!-- {{ statusFormat(scope.row) }} --> | ||||
|               <div> | ||||
|                 <div>交易中:{{ scope.row.pending }}</div> | ||||
|                 <div>成功:{{ scope.row.sucess }}</div> | ||||
|                 <div>失败:{{ scope.row.fail }}</div> | ||||
|                 <div>总数:{{ scope.row.total }}</div> | ||||
|               </div> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="备注信息" align="center" prop="remark" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="创建时间" prop="createdAt" width="155"> | ||||
|             <template slot-scope="scope"> | ||||
|               <span>{{ parseTime(scope.row.createdAt) }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||
|             <template slot-scope="scope"> | ||||
|               <el-popconfirm | ||||
|                 class="delete-popconfirm" | ||||
|                 title="确认要修改吗?" | ||||
|                 confirm-button-text="修改" | ||||
|                 @confirm="handleUpdate(scope.row)" | ||||
|               > | ||||
|                 <el-button | ||||
|                   slot="reference" | ||||
|                   v-permisaction="['admin:wmTransfer:edit']" | ||||
|                   size="mini" | ||||
|                   type="text" | ||||
|                   icon="el-icon-edit" | ||||
|                 >修改 | ||||
|                 </el-button> | ||||
|               </el-popconfirm> | ||||
|               <el-button | ||||
|                 slot="reference" | ||||
|                 v-permisaction="['admin:wmTransfer:edit']" | ||||
|                 size="mini" | ||||
|                 type="text" | ||||
|                 icon="el-icon-edit" | ||||
|                 @click="handleDetails(scope.row)" | ||||
|               >明细 | ||||
|               </el-button> | ||||
|               <el-button | ||||
|                 slot="reference" | ||||
|                 v-permisaction="['admin:wmTransfer:export']" | ||||
|                 size="mini" | ||||
|                 type="text" | ||||
|                 icon="el-icon-download" | ||||
|                 @click="handleExport(scope.row)" | ||||
|               >导出明细</el-button> | ||||
|               <el-popconfirm | ||||
|                 class="delete-popconfirm" | ||||
|                 title="确认要删除吗?" | ||||
| @ -121,7 +137,7 @@ | ||||
|         </el-table> | ||||
|  | ||||
|         <pagination | ||||
|           v-show="total>0" | ||||
|           v-show="total > 0" | ||||
|           :total="total" | ||||
|           :page.sync="queryParams.pageIndex" | ||||
|           :limit.sync="queryParams.pageSize" | ||||
| @ -131,50 +147,56 @@ | ||||
|         <!-- 添加或修改对话框 --> | ||||
|         <el-dialog :title="title" :visible.sync="open" width="500px"> | ||||
|           <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | ||||
|  | ||||
|             <el-form-item label="类型 0-百分比 1-实际金额" prop="type"> | ||||
|               <el-select | ||||
|                 v-model="form.type" | ||||
|                 placeholder="请选择" | ||||
|               > | ||||
|             <el-form-item label="网络" prop="networkId"> | ||||
|               <el-select v-model="form.networkId" clearable placeholder="请选择" @change="getNetworkTokenList()"> | ||||
|                 <el-option | ||||
|                   v-for="dict in typeOptions" | ||||
|                   :key="dict.value" | ||||
|                   :label="dict.label" | ||||
|                   :value="dict.value" | ||||
|                   v-for="item in networkList" | ||||
|                   :key="'network' + item.id" | ||||
|                   :label="item.networkName" | ||||
|                   :value="item.id" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="转账类型 0-批量转出 1-批量汇总" prop="transferType"> | ||||
|               <el-select | ||||
|                 v-model="form.transferType" | ||||
|                 placeholder="请选择" | ||||
|               > | ||||
|             <el-form-item label="代币" prop="tokenAddress"> | ||||
|               <el-select v-model="form.tokenAddress" placeholder="请选择"> | ||||
|                 <el-option | ||||
|                   v-for="dict in transferTypeOptions" | ||||
|                   :key="dict.value" | ||||
|                   :label="dict.label" | ||||
|                   :value="dict.value" | ||||
|                   v-for="item in tokenList" | ||||
|                   :key="'token' + item.id" | ||||
|                   :label="item.tokenName" | ||||
|                   :value="item.tokenAddress" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="状态" prop="status"> | ||||
|               <el-select | ||||
|                 v-model="form.status" | ||||
|                 placeholder="请选择" | ||||
|               > | ||||
|                 <el-option | ||||
|                   v-for="dict in statusOptions" | ||||
|                   :key="dict.value" | ||||
|                   :label="dict.label" | ||||
|                   :value="dict.value" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             <el-form-item label="转账类型" prop="transferType"> | ||||
|               <el-radio-group v-model="form.transferType"> | ||||
|                 <el-radio v-for="dict in transferTypeOptions" :key="'type' + dict.value" :label="dict.value">{{ | ||||
|                   dict.label | ||||
|                 }}</el-radio> | ||||
|               </el-radio-group> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="类型" prop="type"> | ||||
|               <el-radio-group v-model="form.type"> | ||||
|                 <el-radio v-for="dict in typeOptions" :key="'type' + dict.value" :label="dict.value">{{ dict.label | ||||
|                 }}</el-radio> | ||||
|               </el-radio-group> | ||||
|             </el-form-item> | ||||
|             <el-form-item :label="form.type === 1 ? '百分比' : '实际金额'" prop="typeValue"> | ||||
|               <el-input v-model="form.typeValue" :placeholder="'请输入' + (form.type === 1 ? '百分比' : '实际金额')" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="私钥" prop="privateKey"> | ||||
|               <el-input v-model="form.privateKey" placeholder="私钥用,或换行分隔" type="textarea" :rows="4" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="接收地址" prop="content"> | ||||
|               <el-input v-model="form.content" placeholder="接收地址用,或换行分隔" type="textarea" :rows="4" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="备注信息" prop="remark"> | ||||
|               <el-input | ||||
|                 v-model="form.remark" | ||||
|                 placeholder="备注信息" | ||||
|                 type="textarea" | ||||
|                 :rows="2" | ||||
|                 show-word-limit | ||||
|                 maxlength="255" | ||||
|               /> | ||||
|             </el-form-item> | ||||
|           </el-form> | ||||
| @ -183,17 +205,25 @@ | ||||
|             <el-button @click="cancel">取 消</el-button> | ||||
|           </div> | ||||
|         </el-dialog> | ||||
|  | ||||
|         <transfer-item-detail :open.sync="showItemDetail" :transfer-id="selectedTransferId" /> | ||||
|       </el-card> | ||||
|     </template> | ||||
|   </BasicLayout> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { addWmTransfer, delWmTransfer, getWmTransfer, listWmTransfer, updateWmTransfer } from '@/api/admin/wm-transfer' | ||||
| import { addWmTransfer, delWmTransfer, getWmTransfer, listWmTransfer, updateWmTransfer, clearAllTransfer } from '@/api/admin/wm-transfer' | ||||
| import { exportWmTransferItemExcel } from '@/api/admin/wm-transfer-item' | ||||
| import TransferItemDetail from './detail.vue' | ||||
| import { resolveBlobByName } from '@/utils/zipdownload' | ||||
| import { listWmNetwork } from '@/api/admin/wm-network' | ||||
| import { listWmToken } from '@/api/admin/wm-token' | ||||
|  | ||||
| export default { | ||||
|   name: 'WmTransfer', | ||||
|   components: { | ||||
|     TransferItemDetail | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
| @ -213,9 +243,39 @@ export default { | ||||
|       open: false, | ||||
|       isEdit: false, | ||||
|       // 类型数据字典 | ||||
|       typeOptions: [], | ||||
|       typeOptions: [{ | ||||
|         label: '百分比', | ||||
|         value: 1 | ||||
|       }, { | ||||
|         label: '实际金额', | ||||
|         value: 2 | ||||
|       }], | ||||
|       transferTypeOptions: [{ | ||||
|         label: '批量转出', | ||||
|         value: 1 | ||||
|       }, { | ||||
|         label: '批量汇总', | ||||
|         value: 2 | ||||
|       }], | ||||
|       statusOptions: [{ | ||||
|         label: '默认', | ||||
|         value: 0 | ||||
|       }, { | ||||
|         label: '交易中', | ||||
|         value: 1 | ||||
|       }, { | ||||
|         label: '已完成', | ||||
|         value: 2 | ||||
|       }, { | ||||
|         label: '已失败', | ||||
|         value: 3 | ||||
|       }], | ||||
|       networkList: [], | ||||
|       tokenList: [], | ||||
|       wmTransferList: [], | ||||
|  | ||||
|       selectedTransferId: undefined, | ||||
|       showItemDetail: false, | ||||
|       // 日期范围 | ||||
|       // 关系表类型 | ||||
|  | ||||
|       // 查询参数 | ||||
| @ -223,22 +283,53 @@ export default { | ||||
|         pageIndex: 1, | ||||
|         pageSize: 10, | ||||
|         type: undefined, | ||||
|         transferType: undefined | ||||
|  | ||||
|         transferType: undefined, | ||||
|         idOrder: 'desc' | ||||
|       }, | ||||
|       // 表单参数 | ||||
|       form: { | ||||
|       }, | ||||
|       // 表单校验 | ||||
|       rules: { type: [{ required: true, message: '类型 0-百分比 1-实际金额不能为空', trigger: 'blur' }], | ||||
|         transferType: [{ required: true, message: '转账类型 0-批量转出 1-批量汇总不能为空', trigger: 'blur' }] | ||||
|       rules: { | ||||
|         type: [{ required: true, message: '类型 0-百分比 1-实际金额不能为空', trigger: 'blur' }], | ||||
|         transferType: [{ required: true, message: '转账类型 0-批量转出 1-批量汇总不能为空', trigger: 'blur' }], | ||||
|         privateKey: [{ required: true, message: '私钥不能为空', trigger: 'blur' }], | ||||
|         content: [{ required: true, message: '接收地址不能为空', trigger: 'blur' }], | ||||
|         typeValue: [{ required: true, message: '请输入百分比或实际金额', trigger: 'blur' }], | ||||
|         networkId: [{ required: true, message: '请选择网络', trigger: 'blur' }], | ||||
|         tokenAddress: [{ required: true, message: '请选择代币', trigger: 'blur' }] | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getNetworkList() | ||||
|     this.getList() | ||||
|   }, | ||||
|   methods: { | ||||
|     typeFormat(row) { | ||||
|       const type = this.typeOptions.find(item => item.value === row.type) | ||||
|       return type ? type.label : '' | ||||
|     }, | ||||
|     transferTypeFormat(row) { | ||||
|       const transferType = this.transferTypeOptions.find(item => item.value === row.transferType) | ||||
|       return transferType ? transferType.label : '' | ||||
|     }, | ||||
|     statusFormat(row) { | ||||
|       const status = this.statusOptions.find(item => item.value === row.status) | ||||
|       return status ? status.label : '' | ||||
|     }, | ||||
|     getNetworkList() { | ||||
|       listWmNetwork({ pageIndex: 1, pageSize: 1000 }).then(response => { | ||||
|         this.networkList = response.data.list | ||||
|       }) | ||||
|     }, | ||||
|     getNetworkTokenList() { | ||||
|       this.form.tokenAddress = undefined | ||||
|  | ||||
|       listWmToken({ pageIndex: 1, pageSize: 1000, networkId: this.form.networkId }).then(response => { | ||||
|         this.tokenList = response.data.list | ||||
|       }) | ||||
|     }, | ||||
|     /** 查询参数列表 */ | ||||
|     getList() { | ||||
|       this.loading = true | ||||
| @ -259,10 +350,15 @@ export default { | ||||
|       this.form = { | ||||
|  | ||||
|         id: undefined, | ||||
|         type: undefined, | ||||
|         transferType: undefined, | ||||
|         networkId: undefined, | ||||
|         type: 1, | ||||
|         transferType: 1, | ||||
|         privateKey: undefined, | ||||
|         content: undefined, | ||||
|         typeValue: undefined, | ||||
|         status: undefined, | ||||
|         remark: undefined | ||||
|         remark: undefined, | ||||
|         tokenAddress: undefined | ||||
|       } | ||||
|       this.resetForm('form') | ||||
|     }, | ||||
| @ -302,7 +398,7 @@ export default { | ||||
|     handleUpdate(row) { | ||||
|       this.reset() | ||||
|       const id = | ||||
|                 row.id || this.ids | ||||
|         row.id || this.ids | ||||
|       getWmTransfer(id).then(response => { | ||||
|         this.form = response.data | ||||
|         this.open = true | ||||
| @ -358,6 +454,42 @@ export default { | ||||
|         } | ||||
|       }).catch(function() { | ||||
|       }) | ||||
|     }, | ||||
|     /* 打开明细 */ | ||||
|     handleDetails(row) { | ||||
|       this.selectedTransferId = row.id | ||||
|       this.showItemDetail = true | ||||
|     }, | ||||
|     handleClearAll() { | ||||
|       const _this = this | ||||
|  | ||||
|       this.$confirm('是否确认清除所有转账任务?', '警告', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(function() { | ||||
|         _this.loading = true | ||||
|         return clearAllTransfer() | ||||
|       }).then((response) => { | ||||
|         if (response.code === 200) { | ||||
|           this.msgSuccess(response.msg) | ||||
|           this.getList() | ||||
|         } else { | ||||
|           this.msgError(response.msg) | ||||
|         } | ||||
|       }).finally(() => { | ||||
|         _this.loading = false | ||||
|       }) | ||||
|     }, | ||||
|     /* 导出明细 */ | ||||
|     handleExport(row) { | ||||
|       this.loading = true | ||||
|       exportWmTransferItemExcel({ transferId: row.id }).then(res => { | ||||
|         resolveBlobByName(res, null, '转账明细.xlsx') | ||||
|         this.msgSuccess('导出成功') | ||||
|       }).finally(() => { | ||||
|         this.loading = false | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
							
								
								
									
										229
									
								
								src/views/admin/wm-wallet-info/auto-log.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										229
									
								
								src/views/admin/wm-wallet-info/auto-log.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,229 @@ | ||||
| <template> | ||||
|   <BasicLayout> | ||||
|     <template #wrapper> | ||||
|       <el-card class="box-card"> | ||||
|         <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px"> | ||||
|           <el-form-item label="网络" prop="networkId"> | ||||
|  | ||||
|             <el-select v-model="queryParams.networkId" clearable placeholder="请选择网络"> | ||||
|               <el-option | ||||
|                 v-for="item in networkList" | ||||
|                 :key="'querynetwork' + item.id" | ||||
|                 :label="item.networkName" | ||||
|                 :value="item.id" | ||||
|               /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|  | ||||
|           <el-form-item> | ||||
|             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||||
|             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||||
|           </el-form-item> | ||||
|  | ||||
|         </el-form> | ||||
|  | ||||
|         <el-row :gutter="10" class="mb8"> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               v-permisaction="['admin:wmAutoLog:export']" | ||||
|               type="primary" | ||||
|               icon="el-icon-plus" | ||||
|               size="mini" | ||||
|               @click="handleExport" | ||||
|             >导出 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|         <el-table v-loading="loading" :data="wmTransferItemList" @cell-dblclick="handleCellDblClick"> | ||||
|           <el-table-column | ||||
|             label="网络" | ||||
|             align="center" | ||||
|             prop="networkName" | ||||
|             width="140px" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /> | ||||
|           <el-table-column | ||||
|             label="代币" | ||||
|             align="center" | ||||
|             prop="tokenName" | ||||
|             width="80px" | ||||
|             :show-overflow-tooltip="true" | ||||
|           /> | ||||
|           <el-table-column label="来源地址" align="center" prop="fromAddress" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="目标地址" align="center" prop="toAddress" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="代币数量" align="center" prop="amount" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="私钥" align="center" prop="privateKey" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="交易hash" prop="hash" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="状态" prop="status" width="80" align="center"> | ||||
|             <template slot-scope="scope"> | ||||
|               {{ statusFormat(scope.row) }} | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="创建时间" prop="createAt" width="155"> | ||||
|             <template slot-scope="scope"> | ||||
|               <span>{{ parseTime(scope.row.createAt) }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </el-table> | ||||
|  | ||||
|         <pagination | ||||
|           v-show="total > 0" | ||||
|           :total="total" | ||||
|           :page.sync="queryParams.pageIndex" | ||||
|           :limit.sync="queryParams.pageSize" | ||||
|           @pagination="getList" | ||||
|         /> | ||||
|       </el-card> | ||||
|     </template> | ||||
|   </BasicLayout> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { getWmTransferItemAutoLogPage, exportWmTransferItemAutoLogExcel } from '@/api/admin/wm-transfer-item' | ||||
| import { listWmNetwork } from '@/api/admin/wm-network' | ||||
| import { resolveBlobByName } from '@/utils/zipdownload' | ||||
|  | ||||
| export default { | ||||
|   name: 'AutoLog', | ||||
|   props: { | ||||
|     open: { | ||||
|       type: Boolean, | ||||
|       default: false | ||||
|     }, | ||||
|     transferId: { | ||||
|       type: Number, | ||||
|       default: 0 | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       wmTransferItemList: [], | ||||
|       typeOptions: [ | ||||
|         { | ||||
|           label: '百分比', | ||||
|           value: 1 | ||||
|         }, | ||||
|         { | ||||
|           label: '实际金额', | ||||
|           value: 2 | ||||
|         } | ||||
|       ], | ||||
|       transferTypeOptions: [ | ||||
|         { | ||||
|           label: '批量转出', | ||||
|           value: 1 | ||||
|         }, | ||||
|         { | ||||
|           label: '批量汇总', | ||||
|           value: 2 | ||||
|         } | ||||
|       ], | ||||
|       statusOptions: [ | ||||
|         { | ||||
|           label: '默认', | ||||
|           value: 0 | ||||
|         }, | ||||
|         { | ||||
|           label: '交易中', | ||||
|           value: 1 | ||||
|         }, | ||||
|         { | ||||
|           label: '已完成', | ||||
|           value: 2 | ||||
|         }, | ||||
|         { | ||||
|           label: '已失败', | ||||
|           value: 3 | ||||
|         } | ||||
|       ], | ||||
|       queryParams: { | ||||
|         pageIndex: 1, | ||||
|         pageSize: 10, | ||||
|         type: undefined, | ||||
|         idOrder: 'desc' | ||||
|       }, | ||||
|       networkList: [], | ||||
|       total: 0, | ||||
|       loading: false | ||||
|     } | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.getNetworkList() | ||||
|     this.getList() | ||||
|   }, | ||||
|   methods: { | ||||
|     getNetworkList() { | ||||
|       listWmNetwork({ pageIndex: 1, pageSize: 100 }).then(response => { | ||||
|         this.networkList = response.data.list | ||||
|       }) | ||||
|     }, | ||||
|     reloadDta() { | ||||
|       this.getList() | ||||
|     }, | ||||
|     typeFormat(row) { | ||||
|       const type = this.typeOptions.find((item) => item.value === row.type) | ||||
|       return type ? type.label : '' | ||||
|     }, | ||||
|     transferTypeFormat(row) { | ||||
|       const transferType = this.transferTypeOptions.find( | ||||
|         (item) => item.value === row.transferType | ||||
|       ) | ||||
|       return transferType ? transferType.label : '' | ||||
|     }, | ||||
|     statusFormat(row) { | ||||
|       const status = this.statusOptions.find((item) => item.value === row.status) | ||||
|       return status ? status.label : '' | ||||
|     }, | ||||
|     /** 查询参数列表 */ | ||||
|     getList() { | ||||
|       this.queryParams.transferId = this.transferId | ||||
|       this.loading = true | ||||
|  | ||||
|       getWmTransferItemAutoLogPage(this.addDateRange(this.queryParams, this.dateRange)) | ||||
|         .then((response) => { | ||||
|           this.wmTransferItemList = response.data.list | ||||
|           this.total = response.data.count | ||||
|         }) | ||||
|         .finally(() => { | ||||
|           this.loading = false | ||||
|         }) | ||||
|     }, | ||||
|     // 关系 | ||||
|     // 文件 | ||||
|     /** 搜索按钮操作 */ | ||||
|     handleQuery() { | ||||
|       this.queryParams.pageIndex = 1 | ||||
|       this.getList() | ||||
|     }, | ||||
|     /** 重置按钮操作 */ | ||||
|     resetQuery() { | ||||
|       this.dateRange = [] | ||||
|       this.resetForm('queryForm') | ||||
|       this.handleQuery() | ||||
|     }, | ||||
|     handleCellDblClick(row, column, cell, event) { | ||||
|       // 获取单元格文本内容 | ||||
|       const cellText = row[column.property] | ||||
|  | ||||
|       // 使用 Clipboard API 复制文本 | ||||
|       navigator.clipboard.writeText(cellText).then(() => { | ||||
|         this.$message.success('已复制到剪贴板: ' + cellText) | ||||
|       }).catch(err => { | ||||
|         console.error('复制失败:', err) | ||||
|         this.$message.error('复制失败') | ||||
|       }) | ||||
|     }, | ||||
|     handleExport() { | ||||
|       this.loading = true | ||||
|       exportWmTransferItemAutoLogExcel(this.queryParams).then(res => { | ||||
|         resolveBlobByName(res, null, '自动转账明细.xlsx') | ||||
|         this.msgSuccess('导出成功') | ||||
|       }).finally(() => { | ||||
|         this.loading = false | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped></style> | ||||
| @ -61,12 +61,27 @@ | ||||
|             >删除 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|           <el-col :span="1.5"> | ||||
|             <el-button | ||||
|               v-permisaction="['admin:wmWalletInfo:clearAll']" | ||||
|               type="danger" | ||||
|               icon="el-icon-delete" | ||||
|               size="mini" | ||||
|               @click="handleClearAll" | ||||
|             >清除所有 | ||||
|             </el-button> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|  | ||||
|         <el-table v-loading="loading" :data="wmWalletInfoList" @selection-change="handleSelectionChange"> | ||||
|           <el-table-column type="selection" width="55" align="center" /> | ||||
|           <el-table-column label="钱包私钥" align="center" prop="privateKey" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="钱包地址" align="center" prop="address" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="创建时间" prop="createdAt" width="155"> | ||||
|             <template slot-scope="scope"> | ||||
|               <span>{{ parseTime(scope.row.createdAt) }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||
|             <template slot-scope="scope"> | ||||
|               <!-- <el-popconfirm class="delete-popconfirm" title="确认要修改吗?" confirm-button-text="修改" | ||||
| @ -123,7 +138,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { addWmWalletInfo, delWmWalletInfo, getWmWalletInfo, listWmWalletInfo } from '@/api/admin/wm-wallet-info' | ||||
| import { addWmWalletInfo, delWmWalletInfo, getWmWalletInfo, listWmWalletInfo, clearAllWmWalletInfo } from '@/api/admin/wm-wallet-info' | ||||
|  | ||||
| export default { | ||||
|   name: 'WmWalletInfo', | ||||
| @ -284,6 +299,29 @@ export default { | ||||
|         .finally(() => { | ||||
|           this.loading = false | ||||
|         }) | ||||
|     }, | ||||
|     handleClearAll() { | ||||
|       const _this = this | ||||
|  | ||||
|       this.$confirm('是否确认清除所有钱包信息?', '警告', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(function() { | ||||
|         _this.loading = true | ||||
|         return clearAllWmWalletInfo() | ||||
|       }).then((response) => { | ||||
|         if (response.code === 200) { | ||||
|           _this.msgSuccess(response.msg) | ||||
|           _this.getList() | ||||
|         } else { | ||||
|           _this.msgError(response.msg) | ||||
|         } | ||||
|       }).catch(function() { | ||||
|       }) | ||||
|         .finally(() => { | ||||
|           _this.loading = false | ||||
|         }) | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user