chain-client-pages/confirm.html
2023-04-20 10:55:47 +08:00

122 lines
5.7 KiB
HTML

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>任务确认</title>
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">
<meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no, minimal-ui" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="full-screen" content="true" />
<meta name="screen-orientation" content="portrait" />
<meta name="x5-fullscreen" content="true" />
<meta name="360-fullscreen" content="true" />
<meta name="apple-mobile-web-app-title" content="WJTX">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="assets/css/main.css"/>
</head>
<body>
<div id="app" class="container">
<div class="alert alert-dismissible fixed-top" :class="'alert-'+alertType" role="alert" v-if="alertShow">
<div>{{alertMsg}}</div>
<button type="button" class="btn-close" @click="closeAlert" aria-label="Close"></button>
</div>
<div class="page-header">
<h1>
{{task.name}} - <small>{{task.starterName}}</small>
</h1>
<p>{{task.desc}}</p>
<p>本次申请包含<b>{{subTasks.length}}</b>个链操作任务</p>
</div>
<div class="hstack gap-3 mb-1" v-if="hasRole">
<template v-if="!walletConnect">
<button type="button" class="btn btn-info" @click="initWallet">连接钱包</button>
<div class="vr"></div>
</template>
<template v-if="showConfirm">
<button type="button" class="btn btn-primary" @click="confirmTask">确认</button>
<div class="vr"></div>
</template>
<button type="button" class="btn btn-danger" v-if="showCancel" @click="rejectTask">取消</button>
</div>
<div class="hstack gap-3 mb-1" v-if="!hasRole">
<span class="badge text-bg-danger">没有操作权限<span>
</div>
<div class="row">
<div class="col-md-12">
<div class="accordion" id="accordionExample">
<div class="accordion-item" v-for="(item, i) in subTasks" >
<h2 class="accordion-header" :id="'heading'+i">
<button class="accordion-button" type="button" data-bs-toggle="collapse" :data-bs-target="'#collapse'+i" aria-expanded="true" :aria-controls="'collapse'+i">
任务数{{item.index}}: {{item.reqDatas.length}}
<div class="spinner-border" role="status" v-if="loading">
<span class="visually-hidden">Loading...</span>
</div>
<template v-for="sub in item.statusArr">
<span class="badge" :class="'text-bg-'+sub[1]">{{sub[0]}}</span>
</template>
</button>
</h2>
<div :id="'collapse'+i" class="accordion-collapse collapse show" :aria-labelledby="'heading'+i" data-bs-parent="#accordionExample">
<div class="accordion-body">
<div v-for="sub in item.reqDatas" class="border-bottom">
<p><label class="text-secondary">类型:</label> {{showType(sub.type)}}</p>
<p class="small-address"><label class="text-secondary">合约地址: </label>{{sub.address}}</p>
<p class="small-address" v-if="sub.from"><label class="text-secondary">转出钱包: </label>{{sub.from}}</p>
<p class="small-address"><label class="text-secondary">目标钱包: </label>{{sub.to}}</p>
<p v-if="sub.amount"><label class="text-secondary">数量: </label>{{sub.amount}}</p>
<p v-if="sub.tokenid || sub.tokenId"><label class="text-secondary">NFT ID: </label>{{sub.tokenId || sub.tokenid}}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="loader" id="loader" v-if="loadingMask">
<div class="loader-inner">
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
</div>
<div class="loader-tip">
<div class="msg">{{loadingTxt}}</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/vconsole@3.15.0/dist/vconsole.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/web3@1.9.0/dist/web3.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@3.2.47/dist/vue.global.min.js"></script>
<script src="assets/scripts/lib.js"></script>
<script src="assets/scripts/confirm.js"></script>
</body>
</html>