471 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			471 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html>
 | |
| <head>
 | |
|     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | |
|     <meta http-equiv="Cache-Control" content="no-cache"/>
 | |
|     <title>数瑞通用区块链索引工具</title>
 | |
|     <script src="./jqueryui1.12/jquery-2.1.4.js"></script>
 | |
|     <script src="./js/popper.min.js"></script>
 | |
| 
 | |
|     <link href="./jqueryui1.12/jquery-ui.css" rel="stylesheet">
 | |
|     <script src="./jqueryui1.12/jquery-ui.js"></script>
 | |
|     <script src="./jqueryui1.12/jquery.contextMenu.js"></script>
 | |
|     <link href="./jqueryui1.12/jquery.contextMenu.min.css" rel="stylesheet">
 | |
|     <script src="./jqueryui1.12/jquery.ui.position.js"></script>
 | |
|     <link href="./jqueryui1.12/jquery-editable-select.css" rel="stylesheet">
 | |
|     <script src="./jqueryui1.12/jquery-editable-select.js"></script>
 | |
|     <script src="./js/createWS.js"></script>
 | |
|     <script src="./js/cryptico.js"></script>
 | |
|     <script src="./js/commonutil.js"></script>
 | |
|     <script src="./js/bootstrap.min.js"></script>
 | |
|     <script src="./js/echarts.min.js"></script>
 | |
|     <script src="./js/echarts-gl.min.js"></script>
 | |
|     <script src="./js/echartsTheme.js"></script>
 | |
|     <script src="js/codemirror/addon/edit/matchbrackets.js"></script>
 | |
| 
 | |
|     <script src="./js/sm2.js"></script>
 | |
|     <link rel="stylesheet" type="text/css"
 | |
|           href="./js/DataTables/datatables.min.css"/>
 | |
|     <link rel="stylesheet" type="text/css"
 | |
|           href="./js/DataTables/datatables.extra.css"/>
 | |
|     <script type="text/javascript"
 | |
|             src="./js/DataTables/jquery.dataTables.min.js"></script>
 | |
|     <script type="text/javascript"
 | |
|             src="./js/DataTables/dataTables.bootstrap4.min.js"></script>
 | |
|     <script src="./js/blockindexer/BlockIndexer.js"></script>
 | |
| 
 | |
| 
 | |
|     <script src="./js/vue.js"></script>
 | |
| 
 | |
|     <link rel="stylesheet" href="./css/loading.css">
 | |
|     <link rel="stylesheet" href="./css/common.css">
 | |
|     <link rel="stylesheet" href="./css/bootstrap.min.css">
 | |
|     <script src="./js/bootstrap.min.js"></script>
 | |
|     <link href="./css/bootstrap4-toggle.min.css" rel="stylesheet">
 | |
|     <script src="./js/bootstrap4-toggle.min.js"></script>
 | |
| 
 | |
| </head>
 | |
| <body>
 | |
| 
 | |
| <header
 | |
|         class="headerFooter navbar navbar-default navbar-fixed-top  navColor ">
 | |
|     <div class="col-4">
 | |
|         <a class="navbar-brand" href="#"> <img alt="Brand"
 | |
|                                                src="./images/logo-1.png" style="height: 30px">
 | |
|         </a> <span>数瑞通用区块链索引工具</span>
 | |
|     </div>
 | |
| 
 | |
|     <div class="nav navbar-right userName" data-toggle="modal"
 | |
|          data-target="#pubkeyDialog">欢迎, {{shortName}}
 | |
|     </div>
 | |
| </header>
 | |
| 
 | |
| <div class="container-fluid " id="main">
 | |
|     <div class="row h-100">
 | |
|         <div class="col-2 " id="horiNav">
 | |
|             <div class="nav flex-column nav-pills " id="v-pills-tab"
 | |
|                  role="tablist" aria-orientation="vertical">
 | |
|                 <a class="nav-link active" id="v-pills-userManager-tab"
 | |
|                    data-toggle="pill" href="#v-pills-userManager" role="tab"
 | |
|                    aria-controls="v-pills-userManager" aria-selected="true"
 | |
|                    onclick="loadUserMan()"> <img
 | |
|                         src="./images/index/analysis.png" class="iconimg">创建索引
 | |
|                 </a> <a class="nav-link" id="v-pills-contractCodeManager-tab"
 | |
|                         data-toggle="pill" href="#v-pills-contractCodeManager" role="tab"
 | |
|                         aria-controls="v-pills-contractCodeManager"
 | |
|                         onclick="initcodeManage()" aria-selected="false"><img
 | |
|                     src="./images/index/operation.png" class="iconimg">适配器管理 </a> <a
 | |
|                     class="nav-link" id="v-pills-contractInstance-tab"
 | |
|                     data-toggle="pill" href="#v-pills-contractInstance" role="tab"
 | |
|                     aria-controls="v-pills-contractInstance" aria-selected="false"
 | |
|                     onclick="loadContractInstances()"><img
 | |
|                     src="./images/index/writer.png" class="iconimg">索引算法管理 </a> <a
 | |
|                     class="nav-link" id="v-pills-logManager-tab" data-toggle="pill"
 | |
|                     href="#v-pills-logManager" role="tab" onclick="initLocalLog()"
 | |
|                     aria-controls="v-pills-logManager" aria-selected="false"><img
 | |
|                     src="./images/index/customer-support.png" class="iconimg">存储层管理
 | |
|             </a> <a class="nav-link" id="v-pills-nodeManager-tab"
 | |
|                     data-toggle="pill" href="#v-pills-nodeManager" role="tab"
 | |
|                     aria-controls="v-pills-nodeManager" aria-selected="false"
 | |
|                     onclick="showNodeConfig()"><img
 | |
|                     src="./images/index/network.png" class="iconimg">模板管理 </a>
 | |
|             </div>
 | |
|         </div>
 | |
|         <div class="col-10 h-100" style="padding: 0; overflow-y: scroll;">
 | |
|             <div class="tab-content" id="v-pills-tabContent">
 | |
|                 <!-- 创建索引对应的DIV -->
 | |
|                 <div class="tab-pane fade show active" id="v-pills-userManager"
 | |
|                      role="tabpanel" aria-labelledby="v-pills-userManager-tab">
 | |
|                     <div class="container">
 | |
|                         <div class="row" style="margin-top: 30px">
 | |
|                             <div class="col-sm-12">
 | |
|                                 <div class="card ">
 | |
|                                     <div class="card-body">
 | |
|                                         <h5 class="card-title">向导栏</h5>
 | |
|                                         <div class="d-flex justify-content-center" id="RolePie">
 | |
|                                             <div class="spinner-border text-primary"
 | |
|                                                  style="width: 4rem; height: 4rem;" role="status">
 | |
|                                                 <span class="sr-only">内容页</span>
 | |
|                                             </div>
 | |
|                                         </div>
 | |
|                                     </div>
 | |
|                                 </div>
 | |
|                             </div>
 | |
|                         </div>
 | |
|                     </div>
 | |
|                 </div>
 | |
|                 <!-- 适配器管理 对应的DIV -->
 | |
|                 <div class="tab-pane fade" id="v-pills-contractCodeManager"
 | |
|                      role="tabpanel" aria-labelledby="v-pills-contractCodeManager-tab">
 | |
|                     <div class="container">
 | |
|                         <div class="row" style="margin-top: 30px">
 | |
|                             <div class="col-sm-12">
 | |
|                                 <div class="card ">
 | |
|                                     <div class="card-body">
 | |
|                                         <h5 class="card-title">这里是个表格</h5>
 | |
|                                         <div class="d-flex justify-content-center" id="RolePie">
 | |
|                                             <div class="spinner-border text-primary"
 | |
|                                                  style="width: 4rem; height: 4rem;" role="status">
 | |
|                                                 <span class="sr-only">内容页</span>
 | |
|                                             </div>
 | |
|                                         </div>
 | |
|                                     </div>
 | |
|                                 </div>
 | |
|                             </div>
 | |
|                         </div>
 | |
|                     </div>
 | |
|                 </div>
 | |
|                 <!-- 合约实例管理 对应的DIV -->
 | |
| 
 | |
|                 <div class="tab-pane fade" id="v-pills-contractInstance"
 | |
|                      role="tabpanel" aria-labelledby="v-pills-contractInstance-tab">
 | |
|                     <div class="container">
 | |
|                         <div class="row" style="margin-top: 30px">
 | |
|                             <div class="col-sm-12">
 | |
|                                 <div class="card ">
 | |
|                                     <div class="card-body">
 | |
|                                         <h5 class="card-title">这里是个表格</h5>
 | |
|                                         <div class="d-flex justify-content-center" id="RolePie">
 | |
|                                             <div class="spinner-border text-primary"
 | |
|                                                  style="width: 4rem; height: 4rem;" role="status">
 | |
|                                                 <span class="sr-only">内容页</span>
 | |
|                                             </div>
 | |
|                                         </div>
 | |
|                                     </div>
 | |
|                                 </div>
 | |
|                             </div>
 | |
|                         </div>
 | |
|                     </div>
 | |
|                 </div>
 | |
|                 <!-- 存储层管理 对应的DIV -->
 | |
|                 <div class="tab-pane fade" id="v-pills-logManager" role="tabpanel"
 | |
|                      aria-labelledby="v-pills-logManager-tab">
 | |
|                     <div class="container">
 | |
|                         <div class="row" style="margin-top: 30px">
 | |
|                             <div class="col-sm-12">
 | |
|                                 <div class="card ">
 | |
|                                     <div class="card-body">
 | |
|                                         <h5 class="card-title">这里是个表格</h5>
 | |
|                                         <div class="d-flex justify-content-center" id="RolePie">
 | |
|                                             <div class="spinner-border text-primary"
 | |
|                                                  style="width: 4rem; height: 4rem;" role="status">
 | |
|                                                 <span class="sr-only">内容页</span>
 | |
|                                             </div>
 | |
|                                         </div>
 | |
|                                     </div>
 | |
|                                 </div>
 | |
|                             </div>
 | |
|                         </div>
 | |
|                     </div>
 | |
| 
 | |
| 
 | |
|                 </div>
 | |
|                 <!-- 节点管理 对应的DIV -->
 | |
|                 <div class="tab-pane fade" id="v-pills-nodeManager" role="tabpanel"
 | |
|                      aria-labelledby="v-pills-nodeManager-tab">
 | |
|                     <div class="container">
 | |
|                         <div class="row" style="margin-top: 30px">
 | |
|                             <div class="col-sm-12">
 | |
|                                 <div class="card">
 | |
|                                     <div class="card-body">
 | |
|                                         <h5 class="card-title">节点配置</h5>
 | |
|                                         <div class="card-body" id="centerportal">
 | |
|                                             <div class="d-flex justify-content-center">
 | |
|                                                 <div class="input-group mb-3">
 | |
|                                                     <div class="input-group-prepend">
 | |
| 														<span class="input-group-text"
 | |
|                                                               id="inputGroup-sizing-default">节点名称</span>
 | |
|                                                     </div>
 | |
|                                                     <input type="text" class="form-control" id="nodeNameInput">
 | |
|                                                     <div class="input-group-append">
 | |
|                                                         <button class="btn btn-outline-secondary" type="button"
 | |
|                                                                 id="changeNodeName" onclick="changeNodeName()">修改
 | |
|                                                         </button>
 | |
|                                                     </div>
 | |
|                                                 </div>
 | |
|                                             </div>
 | |
|                                             <div class="d-flex justify-content-center">
 | |
|                                                 <div class="input-group mb-3">
 | |
|                                                     <div class="input-group-prepend">
 | |
| 														<span class="input-group-text"
 | |
|                                                               id="inputGroup-sizing-default">PeerID</span>
 | |
|                                                     </div>
 | |
|                                                     <input type="text" class="form-control" id="peerIDInput">
 | |
|                                                 </div>
 | |
|                                             </div>
 | |
|                                             <div class="d-flex justify-content-center">
 | |
|                                                 <div class="input-group mb-3">
 | |
|                                                     <div class="input-group-prepend">
 | |
| 														<span class="input-group-text"
 | |
|                                                               id="inputGroup-sizing-default">YJS路径</span>
 | |
|                                                     </div>
 | |
|                                                     <input type="text" class="form-control" id="yjsInput">
 | |
|                                                     <div class="input-group-append">
 | |
|                                                         <button class="btn btn-outline-secondary" type="button"
 | |
|                                                                 id="changeYJSPath" onclick="changeYJSPath()">修改
 | |
|                                                         </button>
 | |
|                                                     </div>
 | |
|                                                 </div>
 | |
|                                             </div>
 | |
|                                             <div class="d-flex justify-content-center">
 | |
|                                                 <div class='input-group mb-3'>
 | |
|                                                     <div class="input-group-prepend">
 | |
| 														<span class="input-group-text"
 | |
|                                                               id="inputGroup-sizing-default">加入网络</span>
 | |
|                                                     </div>
 | |
|                                                     <input type='text' class='form-control'
 | |
|                                                            id='nodeCenterInput'>
 | |
|                                                     <div class='input-group-append'>
 | |
|                                                         <button class='btn btn-outline-secondary' type='button'
 | |
|                                                                 id='changeNodeCenter' onclick='changeNodeCenter()'>修改
 | |
|                                                         </button>
 | |
|                                                     </div>
 | |
|                                                 </div>
 | |
|                                             </div>
 | |
|                                             <div class="d-flex justify-content-center">
 | |
|                                                 <div class="input-group mb-3">
 | |
|                                                     <div class="input-group-prepend">
 | |
| 															<span class="input-group-text"
 | |
|                                                                   id="inputGroup-sizing-default">数链节点</span>
 | |
|                                                     </div>
 | |
|                                                     <input type="text" class="form-control" id="bdledgerPeersInput">
 | |
|                                                     <div class='input-group-append'>
 | |
|                                                         <button class='btn btn-outline-secondary' type='button'
 | |
|                                                                 id='changeBDledger' onclick='changeBDledger()'>修改
 | |
|                                                         </button>
 | |
|                                                     </div>
 | |
|                                                 </div>
 | |
|                                             </div>
 | |
|                                         </div>
 | |
|                                     </div>
 | |
|                                 </div>
 | |
|                             </div>
 | |
|                         </div>
 | |
|                         <div class="row" style="margin-top: 30px">
 | |
|                             <div class="col-sm-12">
 | |
|                                 <div class="card">
 | |
|                                     <div class="card-body">
 | |
|                                         <h5 class="card-title">可信执行集群列表</h5>
 | |
|                                         <div class="card-body" id="trustNodesUnitTabDiv">
 | |
|                                             <div class="d-flex justify-content-center">
 | |
|                                                 <div class="spinner-border text-primary"
 | |
|                                                      style="width: 4rem; height: 4rem;" role="status">
 | |
|                                                     <span class="sr-only">Loading...</span>
 | |
|                                                 </div>
 | |
|                                             </div>
 | |
|                                         </div>
 | |
|                                     </div>
 | |
|                                 </div>
 | |
|                             </div>
 | |
|                         </div>
 | |
|                         <div class="row" style="margin-top: 30px">
 | |
|                             <div class="col-sm-12">
 | |
|                                 <div class="card">
 | |
|                                     <div class="card-body">
 | |
|                                         <h5 class="card-title">Licence配置</h5>
 | |
|                                         <div class="card-body" id="paths">
 | |
|                                             <div class="d-flex justify-content-center">
 | |
|                                                 <div class="input-group mb-3">
 | |
|                                                     <div class="input-group-prepend">
 | |
|                                                         <span class="input-group-text">Licence</span>
 | |
|                                                     </div>
 | |
|                                                     <textarea class="form-control" id="licence"
 | |
|                                                               aria-label="Licence"></textarea>
 | |
|                                                 </div>
 | |
|                                             </div>
 | |
|                                             <div class="d-flex justify-content-center">
 | |
|                                                 <div class="input-group mb-3">
 | |
|                                                     <span class="input-group-text">Licence过期时间 </span> <span
 | |
|                                                         class="input-group-text" id="expireTime"></span>
 | |
|                                                 </div>
 | |
|                                             </div>
 | |
|                                             <div class="d-flex justify-content-center">
 | |
|                                                 <div class="input-group mb-3">
 | |
|                                                     <button type="button" onclick="uploadLicence()"
 | |
|                                                             class="btn btn-outline-secondary">设置Licence
 | |
|                                                     </button>
 | |
|                                                     <button onclick="submitReq()" type="button"
 | |
|                                                             class="btn btn-outline-secondary">申请Licence
 | |
|                                                     </button>
 | |
|                                                     <button onclick="flushLicence()" type="button"
 | |
|                                                             class="btn btn-outline-secondary">刷新申请状态
 | |
|                                                     </button>
 | |
|                                                     <button onclick="downloadUUID()" type="button"
 | |
|                                                             class="btn btn-outline-secondary">下载节点ID文件
 | |
|                                                     </button>
 | |
|                                                 </div>
 | |
|                                             </div>
 | |
| 
 | |
| 
 | |
|                                         </div>
 | |
|                                     </div>
 | |
|                                 </div>
 | |
|                             </div>
 | |
|                         </div>
 | |
| 
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|     </div>
 | |
| </div>
 | |
| <!-- 用于配置sm2密钥的对话框 -->
 | |
| <div class="modal fade" id="pubkeyDialog" tabindex="-1" role="dialog"
 | |
|      aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
 | |
|     <div class="modal-dialog modal-dialog-centered" role="document">
 | |
|         <div class="modal-content">
 | |
|             <div class="modal-header">
 | |
|                 <h5 class="modal-title" id="exampleModalLongTitle">用户信息</h5>
 | |
|                 <button type="button" class="close" data-dismiss="modal"
 | |
|                         aria-label="Close">
 | |
|                     <span aria-hidden="true">×</span>
 | |
|                 </button>
 | |
|             </div>
 | |
|             <div class="modal-body">
 | |
|                 <div class="row" style="padding-left: 16px; padding-right: 16px">
 | |
| 
 | |
|                     <div class="input-group mb-3">
 | |
|                         <div class="input-group-prepend">
 | |
|                             <label class="input-group-text" for="localKeyList">本地公钥</label>
 | |
|                         </div>
 | |
| 
 | |
|                         <select class="custom-select"
 | |
|                                 aria-label="Example select with button addon"
 | |
|                                 style="appearance: none" v-model="selectedSM2Key"
 | |
|                                 @change="changeSM2Key($event)">
 | |
|                             <option v-for="(item,index) in sm2KeyList" :key="index"
 | |
|                                     :value='item.id'>{{item.title}}
 | |
|                             </option>
 | |
|                         </select>
 | |
|                         <div class="input-group-append">
 | |
|                             <button class="btn btn-outline-primary" for="localKeyList"
 | |
|                                     v-on:click="exportPubkey">导出公钥
 | |
|                             </button>
 | |
|                         </div>
 | |
|                         <div class="input-group-append">
 | |
|                             <button class="btn btn-outline-danger" for="localKeyList"
 | |
|                                     v-on:click="deletePubkey">删除公钥
 | |
|                             </button>
 | |
|                         </div>
 | |
|                     </div>
 | |
|                 </div>
 | |
|                 <div class="row" style="padding-left: 16px; padding-right: 16px">
 | |
| 
 | |
|                     <div class="input-group mb-1">
 | |
|                         <div class="input-group-prepend">
 | |
|                             <label class="input-group-text" for="localKeyList">当前SM2密钥</label>
 | |
|                         </div>
 | |
|                         <input type="text" class="form-control" placeholder="(请复制并妥善保存)"
 | |
|                                disabled="disabled" aria-label=""
 | |
|                                aria-describedby="basic-addon1">
 | |
| 
 | |
|                         <div class="input-group-append">
 | |
|                             <button type="button" class="btn btn-outline-primary"
 | |
|                                     id="generatePubkeyBtn" v-on:click="generatePubkey">生成新公钥
 | |
|                             </button>
 | |
|                             <button type="button" class="btn btn-outline-primary"
 | |
|                                     data-dismiss="modal" id="importPubkeyBtn"
 | |
|                                     v-on:click="importPubkey">导入公钥
 | |
|                             </button>
 | |
|                         </div>
 | |
| 
 | |
|                     </div>
 | |
|                 </div>
 | |
|                 <textarea class="form-control mb-3" title="复制密钥,并妥善保存"
 | |
|                           id="sm2KeyTextarea" v-model="sm2KeyStr"
 | |
|                           style="width: 100%; min-height: 150px" rows="" cols="">
 | |
| 					</textarea>
 | |
|                 <div class="row" style="padding-left: 16px; padding-right: 16px;">
 | |
| 
 | |
|                 </div>
 | |
|                 <div class="row" style="padding-left: 16px; padding-right: 16px">
 | |
|                     <span>我的权限:{{myRole}}</span>
 | |
|                 </div>
 | |
|                 <div class="input-group">
 | |
|                     <select id="inputGroupSelect04" v-model="test"
 | |
|                             class="custom-select" style="appearance: none"
 | |
|                             @change="changeProduct($event)">
 | |
|                         <option v-for="(item,index) in productList" :key="index"
 | |
|                                 :value='item.id'>{{item.title}}
 | |
|                         </option>
 | |
|                     </select>
 | |
|                     <div class="input-group-append">
 | |
|                         <button class="btn btn-outline-primary" type="button"
 | |
|                                 v-on:click="applyRole">角色认证
 | |
|                         </button>
 | |
|                     </div>
 | |
|                 </div>
 | |
| 
 | |
| 
 | |
|             </div>
 | |
| 
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
| </div>
 | |
| <!-- Flexbox container for aligning the toasts -->
 | |
| <div aria-live="polite" aria-atomic="true" aria-hidden="true"
 | |
|      class="d-flex justify-content-center align-items-center"
 | |
|      style="dispaly: none; min-height: 200px; position: absolute; top: 30%; left: 40%;"
 | |
|      aria-hidden="true">
 | |
|     <!-- Then put toasts within -->
 | |
| 
 | |
|     <div id="alertDiv" class="toast fade hide" role="alert"
 | |
|          aria-live="assertive" autohide="false" aria-atomic="true"
 | |
|          style="min-width: 200px">
 | |
| 
 | |
|         <div class="toast-header">
 | |
|             <strong class="mr-auto">{{toastTitle}}</strong>
 | |
|             <button type="button" class="ml-2 mb-1 close" data-dismiss="toast"
 | |
|                     aria-label="Close">
 | |
|                 <span aria-hidden="true">×</span>
 | |
|             </button>
 | |
|         </div>
 | |
|         <div class="toast-body">{{toastMessage}}</div>
 | |
|     </div>
 | |
| </div>
 | |
| 
 | |
| <footer class="headerFooter" footermt-autopy-3>
 | |
|     <div class="row">
 | |
|         <div style="padding-left: -10px;" class="col-8">©2018-2020</div>
 | |
|         <div style="" class="col-4">
 | |
|             Icons made by <a href="https://www.flaticon.com/authors/monkik"
 | |
|                              title="monkik" style="color: white;">monkik</a> from <a
 | |
|                 href="https://www.flaticon.com/" title="Flaticon"
 | |
|                 style="color: white;">www.flaticon.com</a>
 | |
|         </div>
 | |
|     </div>
 | |
| </footer>
 | |
| 
 | |
| 
 | |
| <script>
 | |
|     const isBaaS = false
 | |
|     var h = document.body.clientHeight
 | |
|         - $("header").css("height").replace("px", "")
 | |
|         - $("footer").css("height").replace("px", "");
 | |
|     $("#main").css("height", h + "px");
 | |
|     init();
 | |
|     //initWSocket();
 | |
| </script>
 | |
| 
 | |
| </body>
 | |
| </html> |