|
@@ -152,7 +152,7 @@
|
|
|
<el-drawer
|
|
|
:visible.sync="drawerRecord"
|
|
|
:with-header="false"
|
|
|
- @closed="drawerRecordStatus = 0">
|
|
|
+ @closed="drawerRecordClosed">
|
|
|
<div class="drawerRecord-container" v-if="drawerRecordStatus === 0">
|
|
|
<div class="drawerAddress-container-head">
|
|
|
<div class="drawerAddress-container-head-left">
|
|
@@ -242,6 +242,13 @@
|
|
|
</div>
|
|
|
<img src="../../assets/autoplay/chevron_right.svg" alt="chevron_right">
|
|
|
</div>
|
|
|
+ <div class="status" v-if="scope.row.executeStatus === 2" @click="viewRecordDetails(scope.row,3)">
|
|
|
+ <div class="text" style="color: #EB5757">
|
|
|
+ <img src="../../assets/autoplay/cancel.svg" alt="cancel">
|
|
|
+ 未完成
|
|
|
+ </div>
|
|
|
+ <img src="../../assets/autoplay/chevron_right.svg" alt="chevron_right">
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -334,8 +341,12 @@
|
|
|
总计交互地址: {{ongoingDataTotal}}
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="right" style="cursor: pointer" @click="refresh">
|
|
|
+<!-- <div class="right" style="cursor: pointer" @click="refresh">-->
|
|
|
+<!-- <img src="../../assets/autoplay/Frame.svg" alt="Frame">-->
|
|
|
+<!-- </div>-->
|
|
|
+ <div class="button" @click="refresh">
|
|
|
<img src="../../assets/autoplay/Frame.svg" alt="Frame">
|
|
|
+ 刷新
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="table">
|
|
@@ -520,12 +531,188 @@
|
|
|
<img src="../../assets/autoplay/done_all.svg" alt="done_all">
|
|
|
执行进度已完成
|
|
|
</div>
|
|
|
- <div class="number">
|
|
|
- {{ currentTaskInfo.executeTimes }}/{{ currentTaskInfo.planTimes }}
|
|
|
+<!-- <div class="number">-->
|
|
|
+<!-- {{ currentTaskInfo.executeTimes }}/{{ currentTaskInfo.planTimes }}-->
|
|
|
+<!-- </div>-->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="drawerRecord-container" v-if="drawerRecordStatus === 3">
|
|
|
+ <div class="drawerAddress-container-head">
|
|
|
+ <div class="drawerAddress-container-head-left">
|
|
|
+ <div class="back" style="cursor: pointer;" @click="drawerRecordStatus = 0">
|
|
|
+ <img src="../../assets/autoplay/arrow_left_alt.svg" alt="arrow_left_alt">
|
|
|
+ 返回
|
|
|
+ </div>
|
|
|
+ <div class="missionName">
|
|
|
+ <div class="id">
|
|
|
+ {{ currentTaskInfo.amsTaskId }}
|
|
|
+ </div>
|
|
|
+ <div class="name">
|
|
|
+ {{ currentTaskInfo.taskName }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="text" style="color: #2980FF">
|
|
|
+ 任务交互类型: {{ currentTaskInfo.taskType }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="drawerAddress-container-main">
|
|
|
+ <div class="interactionStrategy">
|
|
|
+ <div class="item">
|
|
|
+ <div class="title">
|
|
|
+ <img src="../../assets/autoplay/account_balance_wallet.svg" alt="account_balance_wallet">
|
|
|
+ 交互钱包
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ {{ currentRecordData.groupName }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="item">
|
|
|
+ <div class="title">
|
|
|
+ <img src="../../assets/autoplay/avg_pace.svg" alt="avg_pace">
|
|
|
+ 最小间隔时间
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ {{ currentRecordData.intervalMin }}/分
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="item">
|
|
|
+ <div class="title">
|
|
|
+ <img src="../../assets/autoplay/avg_pace.svg" alt="avg_pace">
|
|
|
+ 最大间隔时间
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ {{ currentRecordData.intervalMax }}/分
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="item">
|
|
|
+ <div class="title">
|
|
|
+ <img src="../../assets/autoplay/gas_meter.svg" alt="gas_meter">
|
|
|
+ 最大 Gas fee
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ {{ currentRecordData.maxGas }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="item" v-for="item in currentRecordData.airdropParams">
|
|
|
+ <div class="title">
|
|
|
+ {{item.note}}
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ {{ item.value }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="recordTitle">
|
|
|
+ <div class="left">
|
|
|
+ <div class="text">
|
|
|
+ 正在进行中
|
|
|
+ </div>
|
|
|
+ <div class="number">
|
|
|
+ 总计交互地址: {{ongoingDataTotal}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="display: flex;align-items: center;gap:32px">
|
|
|
+ <div class="button" style="color: #EB5757" @click="retryPassword = true">
|
|
|
+ <img src="../../assets/autoplay/retry.svg" alt="retry">
|
|
|
+ 重试失败
|
|
|
+ </div>
|
|
|
+ <div class="button" @click="refresh">
|
|
|
+ <img src="../../assets/autoplay/Frame.svg" alt="Frame">
|
|
|
+ 刷新
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="table">
|
|
|
+ <el-table
|
|
|
+ :data="ongoingData"
|
|
|
+ style="width: 100%">
|
|
|
+ <el-table-column
|
|
|
+ prop="address"
|
|
|
+ label="地址"
|
|
|
+ width="150">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="金额"
|
|
|
+ prop="amount">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="Gas"
|
|
|
+ prop="gas">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="TX ID"
|
|
|
+ prop="txId">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="状态"
|
|
|
+ prop="status">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div class="status" style="cursor: auto">
|
|
|
+ <div class="text" v-if="scope.row.status === 0" style="color: #EB5757;">
|
|
|
+ <img src="../../assets/autoplay/cancel.svg" alt="cancel">
|
|
|
+ 未完成
|
|
|
+ </div>
|
|
|
+ <div class="text" v-if="scope.row.status === 1">
|
|
|
+ <img src="../../assets/autoplay/check.svg" alt="check">
|
|
|
+ 已完成
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="drawerView-container-footer">
|
|
|
+ <div class="pagination">
|
|
|
+ <el-pagination
|
|
|
+ small
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :page-size="10"
|
|
|
+ :total="3">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="progressBarBox">
|
|
|
+ <div class="progressBar" style="background: #EB5757">
|
|
|
+ <div class="progressBar-two" style="background: #EB5757">
|
|
|
+ <img src="../../assets/autoplay/done_all.svg" alt="done_all">
|
|
|
+ 执行进度已完成,部分失败
|
|
|
</div>
|
|
|
+ <!-- <div class="number">-->
|
|
|
+ <!-- {{ currentTaskInfo.executeTimes }}/{{ currentTaskInfo.planTimes }}-->
|
|
|
+ <!-- </div>-->
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="accountPassword" v-if="retryPassword">
|
|
|
+ <div class="title">
|
|
|
+ 输入钱包密码
|
|
|
+ </div>
|
|
|
+ <div class="inputTitle">
|
|
|
+ 钱包密码
|
|
|
+ </div>
|
|
|
+ <el-input type="password" :show-password="true" v-model="retryParams.password"
|
|
|
+ placeholder="输入钱包密码"></el-input>
|
|
|
+ <div class="confirm" @click="retry">
|
|
|
+ <img src="../../assets/autoplay/check1.svg" alt="check1">
|
|
|
+ 确认
|
|
|
+ </div>
|
|
|
+ <div class="tip">
|
|
|
+ <div class="title">
|
|
|
+ <img src="../../assets/address/tips_and_updates.svg" alt="tips_and_updates">
|
|
|
+ 提示
|
|
|
+ </div>
|
|
|
+ <div class="description">
|
|
|
+ 此密码为您账户钱包的 Keystore 密码,请妥善保管,
|
|
|
+ 系统无法为您找回。
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
</div>
|
|
|
+
|
|
|
</el-drawer>
|
|
|
<el-drawer
|
|
|
:visible.sync="drawerStrategy"
|
|
@@ -721,7 +908,7 @@
|
|
|
<script>
|
|
|
import {addTaskInfo, batchExecution, getExecutionRecord, modifyTaskInfo, parameterSearch, taskPage} from "@/api/task";
|
|
|
import {getGroupList} from "@/api/adress";
|
|
|
-import {getInteractionRecord} from "@/api/record";
|
|
|
+import {getInteractionRecord, retryFailed} from "@/api/record";
|
|
|
import {projectPage} from "@/api/project";
|
|
|
|
|
|
export default {
|
|
@@ -754,6 +941,7 @@ export default {
|
|
|
ongoingDataTotal:0,
|
|
|
drawerStrategy: false,
|
|
|
accountPassword: false,
|
|
|
+ retryPassword:false,
|
|
|
batchExecutionParams: {
|
|
|
groupName: '',
|
|
|
maxGas: '',
|
|
@@ -764,6 +952,10 @@ export default {
|
|
|
projectId: '',
|
|
|
taskId: ''
|
|
|
},
|
|
|
+ retryParams:{
|
|
|
+ executeId:'',
|
|
|
+ password:''
|
|
|
+ },
|
|
|
currentTaskInfo: {
|
|
|
taskType: '',
|
|
|
taskName: '',
|
|
@@ -930,6 +1122,21 @@ export default {
|
|
|
parameterSearch(taskCode).then(res => {
|
|
|
this.paramsData = res
|
|
|
})
|
|
|
+ },
|
|
|
+ retry(){
|
|
|
+ let params = {
|
|
|
+ executeId:this.currentRecordData.executeId,
|
|
|
+ password:this.retryParams.password
|
|
|
+ }
|
|
|
+ retryFailed(params).then(res =>{
|
|
|
+ console.log(res);
|
|
|
+ this.refresh()
|
|
|
+ this.retryPassword = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ drawerRecordClosed(){
|
|
|
+ this.drawerRecordStatus = 0;
|
|
|
+ this.retryPassword = false
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1485,6 +1692,17 @@ export default {
|
|
|
color: #8e8f91;
|
|
|
}
|
|
|
}
|
|
|
+ .button{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ width: fit-content;
|
|
|
+ height: 36px;
|
|
|
+ gap:4px;
|
|
|
+ border: 1px solid #E0E0E0;
|
|
|
+ border-radius: 40px;
|
|
|
+ padding: 0 12px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.table {
|
|
@@ -1578,6 +1796,78 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .accountPassword {
|
|
|
+ width: 440px;
|
|
|
+ height: 374px;
|
|
|
+ background: #fbfdff;
|
|
|
+ border-radius: 10px;
|
|
|
+ position: fixed;
|
|
|
+ margin: auto;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ top: 0;
|
|
|
+ bottom: 0;
|
|
|
+ padding: 36px 40px;
|
|
|
+
|
|
|
+ .title {
|
|
|
+ font-weight: 700;
|
|
|
+ font-size: 21px;
|
|
|
+ line-height: 28px;
|
|
|
+ color: #212121;
|
|
|
+ }
|
|
|
+
|
|
|
+ .inputTitle {
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 18px;
|
|
|
+ color: #383838;
|
|
|
+ margin-top: 32px;
|
|
|
+ margin-bottom: 12px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirm {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 8px;
|
|
|
+ font-weight: 700;
|
|
|
+ font-size: 15px;
|
|
|
+ line-height: 20px;
|
|
|
+ color: #FFFFFF;
|
|
|
+ width: 100%;
|
|
|
+ height: 52px;
|
|
|
+ background: #2980ff;
|
|
|
+ border-radius: 6px;
|
|
|
+ margin-top: 12px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tip {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 9px;
|
|
|
+ margin-top: 36px;
|
|
|
+
|
|
|
+ .title {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 4px;
|
|
|
+ font-weight: 700;
|
|
|
+ font-size: 17px;
|
|
|
+ line-height: 22px;
|
|
|
+ color: #EB5757;
|
|
|
+ }
|
|
|
+
|
|
|
+ .description {
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 18px;
|
|
|
+ color: #EB5757;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
.drawerStrategy-container {
|