|
@@ -21,7 +21,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="app-container-head-right">
|
|
<div class="app-container-head-right">
|
|
- <div class="app-container-head-right-button" @click="drawerProject = true">
|
|
|
|
|
|
+ <div class="app-container-head-right-button" @click="addItem">
|
|
<img src="../../assets/airdrop/add.svg" alt="add">
|
|
<img src="../../assets/airdrop/add.svg" alt="add">
|
|
添加项目
|
|
添加项目
|
|
</div>
|
|
</div>
|
|
@@ -30,10 +30,7 @@
|
|
<div class="app-container-table">
|
|
<div class="app-container-table">
|
|
<div class="app-container-table-title">
|
|
<div class="app-container-table-title">
|
|
<div class="app-container-table-title-left">
|
|
<div class="app-container-table-title-left">
|
|
- 空投列表
|
|
|
|
- </div>
|
|
|
|
- <div class="app-container-table-title-right">
|
|
|
|
- 总计数量: {{table.totalNumber}}
|
|
|
|
|
|
+ 项目列表
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="app-container-table-screening">
|
|
<div class="app-container-table-screening">
|
|
@@ -49,8 +46,8 @@
|
|
<div class="app-container-table-main">
|
|
<div class="app-container-table-main">
|
|
<el-table
|
|
<el-table
|
|
:data="tableData"
|
|
:data="tableData"
|
|
- style="width: 100%"
|
|
|
|
- @row-click="drawerInfo = true">
|
|
|
|
|
|
+ style="width: 100%;cursor: pointer"
|
|
|
|
+ @row-click="tableRowClick">
|
|
<el-table-column
|
|
<el-table-column
|
|
label="项目名称"
|
|
label="项目名称"
|
|
width="280">
|
|
width="280">
|
|
@@ -66,10 +63,10 @@
|
|
<template v-slot="scope">
|
|
<template v-slot="scope">
|
|
<div class="progress">
|
|
<div class="progress">
|
|
<div class="score">
|
|
<div class="score">
|
|
- {{scope.row.totalNumber}} / {{scope.row.completedNumber}}
|
|
|
|
|
|
+ {{scope.row.taskTotalCount}} / {{scope.row.taskFinishCount}}
|
|
</div>
|
|
</div>
|
|
<div class="progressBar">
|
|
<div class="progressBar">
|
|
- <el-progress :show-text="false" :stroke-width="12" :percentage="(scope.row.completedNumber/scope.row.totalNumber*100)"></el-progress>
|
|
|
|
|
|
+ <el-progress :show-text="false" :stroke-width="12" :percentage="(scope.row.taskFinishCount/scope.row.taskTotalCount*100)"></el-progress>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
@@ -78,19 +75,19 @@
|
|
label="状态"
|
|
label="状态"
|
|
width="215">
|
|
width="215">
|
|
<template v-slot="scope">
|
|
<template v-slot="scope">
|
|
- <div v-if="scope.row.status === 0" class="status-0" style="color: #828282">
|
|
|
|
|
|
+ <div v-if="scope.row.status === 'DROPPED'" class="status-0" style="color: #828282">
|
|
<img src="../../assets/airdrop/file_download_done.svg" alt="file_download_done">
|
|
<img src="../../assets/airdrop/file_download_done.svg" alt="file_download_done">
|
|
已空投
|
|
已空投
|
|
</div>
|
|
</div>
|
|
- <div v-if="scope.row.status === 1" class="status-0" style="color: #EB5757">
|
|
|
|
|
|
+ <div v-if="scope.row.status === 'NOT_DROPPED'" class="status-0" style="color: #EB5757">
|
|
<img src="../../assets/airdrop/dangerous.svg" alt="dangerous">
|
|
<img src="../../assets/airdrop/dangerous.svg" alt="dangerous">
|
|
未空投
|
|
未空投
|
|
</div>
|
|
</div>
|
|
- <div v-if="scope.row.status === 2" class="status-0" style="color: #2980FF">
|
|
|
|
|
|
+ <div v-if="scope.row.status === 'ONGOING'" class="status-0" style="color: #2980FF">
|
|
<img src="../../assets/airdrop/airplanemode_active.svg" alt="airplanemode_active">
|
|
<img src="../../assets/airdrop/airplanemode_active.svg" alt="airplanemode_active">
|
|
进行中
|
|
进行中
|
|
</div>
|
|
</div>
|
|
- <div v-if="scope.row.status === 3" class="status-0" style="color: #222222">
|
|
|
|
|
|
+ <div v-if="scope.row.status === 'NOT_STARTED'" class="status-0" style="color: #222222">
|
|
<img src="../../assets/airdrop/airline_seat_recline_extra.svg" alt="airline_seat_recline_extra">
|
|
<img src="../../assets/airdrop/airline_seat_recline_extra.svg" alt="airline_seat_recline_extra">
|
|
未开始
|
|
未开始
|
|
</div>
|
|
</div>
|
|
@@ -101,7 +98,7 @@
|
|
width="170">
|
|
width="170">
|
|
<template v-slot="scope">
|
|
<template v-slot="scope">
|
|
<div class="gas">
|
|
<div class="gas">
|
|
- {{scope.row.gas}}
|
|
|
|
|
|
+ {{scope.row.totalGas}}
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -110,26 +107,18 @@
|
|
width="185">
|
|
width="185">
|
|
<template v-slot="scope">
|
|
<template v-slot="scope">
|
|
<div class="website">
|
|
<div class="website">
|
|
- <a target="_blank" :href="scope.row.officialWebsite">
|
|
|
|
- {{scope.row.officialWebsite}}
|
|
|
|
|
|
+ <a target="_blank" :href="scope.row.projectUrl">
|
|
|
|
+ {{scope.row.projectUrl}}
|
|
</a>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
label="开始时间"
|
|
label="开始时间"
|
|
- width="130">
|
|
|
|
|
|
+ >
|
|
<template v-slot="scope">
|
|
<template v-slot="scope">
|
|
<div class="startTime">
|
|
<div class="startTime">
|
|
- {{scope.row.startTime}}
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- label="结束时间">
|
|
|
|
- <template v-slot="scope">
|
|
|
|
- <div class="endTime">
|
|
|
|
- {{scope.row.endTime}}
|
|
|
|
|
|
+ {{scope.row.createTime}}
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -146,15 +135,15 @@
|
|
添加项目
|
|
添加项目
|
|
</div>
|
|
</div>
|
|
<div class="drawerProject-container-tip">
|
|
<div class="drawerProject-container-tip">
|
|
- 空投项目: 85
|
|
|
|
|
|
+ 新增空投项目
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="drawerProject-container-head-right">
|
|
<div class="drawerProject-container-head-right">
|
|
- <div class="cancellation">
|
|
|
|
- <img src="../../assets/address/close.svg" alt="close">
|
|
|
|
- 取消
|
|
|
|
- </div>
|
|
|
|
- <div class="complete">
|
|
|
|
|
|
+<!-- <div class="cancellation">-->
|
|
|
|
+<!-- <img src="../../assets/address/close.svg" alt="close">-->
|
|
|
|
+<!-- 取消-->
|
|
|
|
+<!-- </div>-->
|
|
|
|
+ <div class="complete" @click="createProject">
|
|
<img src="../../assets/address/done_all.svg" alt="done_all">
|
|
<img src="../../assets/address/done_all.svg" alt="done_all">
|
|
完成
|
|
完成
|
|
</div>
|
|
</div>
|
|
@@ -167,22 +156,32 @@
|
|
<div class="info">
|
|
<div class="info">
|
|
<el-upload
|
|
<el-upload
|
|
class="upload-demo"
|
|
class="upload-demo"
|
|
- action="https://jsonplaceholder.typicode.com/posts/"
|
|
|
|
- :on-preview="handlePreview"
|
|
|
|
- :on-remove="handleRemove"
|
|
|
|
- :before-remove="beforeRemove"
|
|
|
|
- multiple
|
|
|
|
- :limit="3"
|
|
|
|
- :on-exceed="handleExceed">
|
|
|
|
|
|
+ :action="upload.url + 'disk/file/upload'"
|
|
|
|
+ :headers="upload.headerMsg"
|
|
|
|
+ :data="upload.extra"
|
|
|
|
+ :on-success="handleAvatarSuccess"
|
|
|
|
+ :show-file-list="false">
|
|
<div class="uploadImg">
|
|
<div class="uploadImg">
|
|
<img src="../../assets/airdrop/add_photo_alternate.svg" alt="add_photo_alternate">
|
|
<img src="../../assets/airdrop/add_photo_alternate.svg" alt="add_photo_alternate">
|
|
- 上传图片
|
|
|
|
</div>
|
|
</div>
|
|
</el-upload>
|
|
</el-upload>
|
|
- <el-input v-model="input" placeholder="输入项目名称"></el-input>
|
|
|
|
|
|
+ <div class="uploadImg" v-if="createProjectParams.projectLogo">
|
|
|
|
+ <img class="uploadImg" :src="upload.url + 'disk/file/' + createProjectParams.projectLogo" alt="uploadImg">
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <el-input v-model="input" placeholder="预计投入USDT"></el-input>
|
|
|
|
- <el-input v-model="input" placeholder="输入项目相关URL"></el-input>
|
|
|
|
|
|
+ <div style="display: flex;align-items: center;gap:40px">
|
|
|
|
+ <el-input v-model="createProjectParams.projectName" placeholder="输入项目名称"></el-input>
|
|
|
|
+ <el-select v-model="createProjectParams.status" placeholder="选择项目状态">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in options"
|
|
|
|
+ :key="item.value"
|
|
|
|
+ :label="item.label"
|
|
|
|
+ :value="item.value">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ <el-input v-model="createProjectParams.estimatedCost" placeholder="预计投入USDT"></el-input>
|
|
|
|
+ <el-input v-model="createProjectParams.projectUrl" placeholder="输入项目相关URL"></el-input>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-drawer>
|
|
</el-drawer>
|
|
@@ -191,55 +190,74 @@
|
|
:with-header="false"
|
|
:with-header="false"
|
|
@closed="record = false">
|
|
@closed="record = false">
|
|
<div class="drawerInfo-container">
|
|
<div class="drawerInfo-container">
|
|
- <div class="drawerInfo-container-head" v-if="record === false">
|
|
|
|
- <div class="drawerInfo-container-head-left">
|
|
|
|
- <div class="drawerInfo-container-title">
|
|
|
|
- 基本信息
|
|
|
|
|
|
+ <div class="drawerProject-container-head" v-if="record === false">
|
|
|
|
+ <div class="drawerProject-container-head-left">
|
|
|
|
+ <div class="drawerProject-container-title">
|
|
|
|
+ {{modifyProjectParams.projectName}}
|
|
</div>
|
|
</div>
|
|
- <div class="drawerInfo-container-projectInfo" >
|
|
|
|
- <div class="left">
|
|
|
|
- <div class="avatar">
|
|
|
|
-
|
|
|
|
- </div>
|
|
|
|
- <div class="infoBox">
|
|
|
|
- <div class="projectName">
|
|
|
|
- zkSync Era
|
|
|
|
- </div>
|
|
|
|
- <div class="link">
|
|
|
|
- <img src="../../assets/airdrop/language.svg" alt="language">
|
|
|
|
- https://zksync.io/
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="right">
|
|
|
|
- <div class="type">
|
|
|
|
- <img src="../../assets/airdrop/done_all.svg" alt="done_all">
|
|
|
|
- 已空投
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="drawerProject-container-tip">
|
|
|
|
+ 查看项目信息
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="drawerProject-container-head-right">
|
|
|
|
+ <div class="complete" @click="modifyProject">
|
|
|
|
+ <img src="../../assets/address/done_all.svg" alt="done_all">
|
|
|
|
+ 完成
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="drawerProject-container-main" v-if="record === false">
|
|
|
|
+ <div class="title1">
|
|
|
|
+ 基本信息
|
|
|
|
+ </div>
|
|
|
|
+ <div class="info">
|
|
|
|
+ <el-upload
|
|
|
|
+ class="upload-demo"
|
|
|
|
+ :action="upload.url + 'disk/file/upload'"
|
|
|
|
+ :headers="upload.headerMsg"
|
|
|
|
+ :data="upload.extra"
|
|
|
|
+ :on-success="handleAvatarSuccess"
|
|
|
|
+ :show-file-list="false">
|
|
|
|
+ <div class="uploadImg">
|
|
|
|
+ <img src="../../assets/airdrop/add_photo_alternate.svg" alt="add_photo_alternate">
|
|
</div>
|
|
</div>
|
|
|
|
+ </el-upload>
|
|
|
|
+ <div class="uploadImg" v-if="modifyProjectParams.projectLogo">
|
|
|
|
+ <img class="uploadImg" :src="upload.url + 'disk/file/' + modifyProjectParams.projectLogo" alt="uploadImg">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div style="display: flex;align-items: center;gap:40px">
|
|
|
|
+ <el-input v-model="modifyProjectParams.projectName" placeholder="输入项目名称"></el-input>
|
|
|
|
+ <el-select v-model="modifyProjectParams.status" placeholder="选择项目状态">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in options"
|
|
|
|
+ :key="item.value"
|
|
|
|
+ :label="item.label"
|
|
|
|
+ :value="item.value">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ <el-input v-model="modifyProjectParams.estimatedCost" placeholder="预计投入USDT"></el-input>
|
|
|
|
+ <el-input v-model="modifyProjectParams.projectUrl" placeholder="输入项目相关URL"></el-input>
|
|
</div>
|
|
</div>
|
|
<div class="drawerInfo-container-main" v-if="record === false">
|
|
<div class="drawerInfo-container-main" v-if="record === false">
|
|
<div class="title1" style="margin-bottom: 8px">
|
|
<div class="title1" style="margin-bottom: 8px">
|
|
任务
|
|
任务
|
|
</div>
|
|
</div>
|
|
<div class="title2">
|
|
<div class="title2">
|
|
- 总任务数:2
|
|
|
|
|
|
+ 总任务数:{{modifyProjectParams.tasks.length}}
|
|
</div>
|
|
</div>
|
|
<div class="list">
|
|
<div class="list">
|
|
- <div class="list-item" v-for="(item,index) in 3">
|
|
|
|
|
|
+ <div class="list-item" v-for="(item,index) in modifyProjectParams.tasks">
|
|
<div class="title">
|
|
<div class="title">
|
|
- task
|
|
|
|
|
|
+ 任务
|
|
</div>
|
|
</div>
|
|
<div class="infoBox">
|
|
<div class="infoBox">
|
|
<div class="one">
|
|
<div class="one">
|
|
- Bridge
|
|
|
|
|
|
+ {{item.taskType}}
|
|
</div>
|
|
</div>
|
|
- <div class="two">
|
|
|
|
- 任务名称
|
|
|
|
- </div>
|
|
|
|
- <div class="three" @click="record = true">
|
|
|
|
|
|
+ <el-input style="width: 50%" v-model="item.taskName" placeholder="预计任务名称"></el-input>
|
|
|
|
+ <div class="three" @click="viewExecutionHistory(item)">
|
|
执行记录
|
|
执行记录
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -247,11 +265,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="drawerInfo-container-footer" v-if="record === false">
|
|
<div class="drawerInfo-container-footer" v-if="record === false">
|
|
- <div class="item" style="color: #222222">
|
|
|
|
- <img src="../../assets/airdrop/page_info.svg" alt="page_info">
|
|
|
|
- 管理项目
|
|
|
|
- </div>
|
|
|
|
- <div class="item" style="color: #EB5757">
|
|
|
|
|
|
+ <div class="item" @click="deleteProject" style="color: #EB5757">
|
|
<img src="../../assets/airdrop/link_off.svg" alt="link_off">
|
|
<img src="../../assets/airdrop/link_off.svg" alt="link_off">
|
|
删除
|
|
删除
|
|
</div>
|
|
</div>
|
|
@@ -259,7 +273,7 @@
|
|
<div class="drawerInfo-container-head" v-if="record === true">
|
|
<div class="drawerInfo-container-head" v-if="record === true">
|
|
<div class="drawerInfo-container-head-left">
|
|
<div class="drawerInfo-container-head-left">
|
|
<div class="title1" style="margin-bottom: 8px">
|
|
<div class="title1" style="margin-bottom: 8px">
|
|
- 基本信息
|
|
|
|
|
|
+ 执行记录
|
|
</div>
|
|
</div>
|
|
<div class="title2">
|
|
<div class="title2">
|
|
交互任务批量执行记录
|
|
交互任务批量执行记录
|
|
@@ -272,7 +286,7 @@
|
|
交互记录
|
|
交互记录
|
|
</div>
|
|
</div>
|
|
<div class="title2">
|
|
<div class="title2">
|
|
- 总计交互任务:3
|
|
|
|
|
|
+ 总计交互任务:{{interactionRecordList.length}}
|
|
</div>
|
|
</div>
|
|
<div class="table-th">
|
|
<div class="table-th">
|
|
<div class="time">
|
|
<div class="time">
|
|
@@ -289,15 +303,15 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="table-list">
|
|
<div class="table-list">
|
|
- <div class="table-item" v-for="(item,index) in recordList">
|
|
|
|
|
|
+ <div class="table-item" v-for="(item,index) in interactionRecordList">
|
|
<div class="time">
|
|
<div class="time">
|
|
- {{item.time}}
|
|
|
|
|
|
+ {{item.createTime}}
|
|
</div>
|
|
</div>
|
|
<div class="total">
|
|
<div class="total">
|
|
- {{item.total}}
|
|
|
|
|
|
+ {{parseFloat(item.amount).toFixed(4)}}
|
|
</div>
|
|
</div>
|
|
<div class="gas">
|
|
<div class="gas">
|
|
- {{item.gas}}
|
|
|
|
|
|
+ {{parseFloat(item.gas).toFixed(4)}}
|
|
</div>
|
|
</div>
|
|
<div class="status" v-if="item.status === 0">
|
|
<div class="status" v-if="item.status === 0">
|
|
<img src="../../assets/airdrop/check.svg" alt="check"> 已完成
|
|
<img src="../../assets/airdrop/check.svg" alt="check"> 已完成
|
|
@@ -310,13 +324,13 @@
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<div class="drawerInfo-container-footer" v-if="record === true">
|
|
<div class="drawerInfo-container-footer" v-if="record === true">
|
|
- <div class="item" style="color: #222222">
|
|
|
|
- <img src="../../assets/airdrop/page_info.svg" alt="page_info">
|
|
|
|
- 管理
|
|
|
|
- </div>
|
|
|
|
- <div class="item" style="color: #EB5757">
|
|
|
|
- <img src="../../assets/airdrop/link_off.svg" alt="link_off">
|
|
|
|
- 删除
|
|
|
|
|
|
+ <div class="pagination">
|
|
|
|
+ <el-pagination
|
|
|
|
+ small
|
|
|
|
+ layout="prev, pager, next"
|
|
|
|
+ :page-size="10"
|
|
|
|
+ :total="3">
|
|
|
|
+ </el-pagination>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -326,93 +340,184 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+import {
|
|
|
|
+ projectPage,
|
|
|
|
+ createAirdropProject,
|
|
|
|
+ modifyAirdropProject,
|
|
|
|
+ projectNum,
|
|
|
|
+ viewProjectDetails,
|
|
|
|
+ deleteAirdropProject
|
|
|
|
+} from "@/api/project";
|
|
|
|
+import {getToken} from '@/utils/auth';
|
|
|
|
+import constant from "@/api/constant";
|
|
|
|
+import {getInteractionRecord} from "@/api/record";
|
|
|
|
+
|
|
export default {
|
|
export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
head: {
|
|
head: {
|
|
- projectsNumber:85,
|
|
|
|
- ongoingNumber:5
|
|
|
|
- },
|
|
|
|
- table:{
|
|
|
|
- totalNumber:22222
|
|
|
|
|
|
+ projectsNumber:0,
|
|
|
|
+ ongoingNumber:0
|
|
},
|
|
},
|
|
tableData: [
|
|
tableData: [
|
|
{
|
|
{
|
|
- projectName:'Zk',
|
|
|
|
- totalNumber:5,
|
|
|
|
- completedNumber:2,
|
|
|
|
- status:0,
|
|
|
|
- gas:1,
|
|
|
|
- officialWebsite:"https://nytimes.com",
|
|
|
|
- startTime:'16/08/2013',
|
|
|
|
- endTime:'16/08/2013'
|
|
|
|
|
|
+ amsProjectId:'',
|
|
|
|
+ createTime:'',
|
|
|
|
+ estimatedCost:'',
|
|
|
|
+ projectLogo:'',
|
|
|
|
+ projectName:'',
|
|
|
|
+ projectUrl:'',
|
|
|
|
+ status:'',
|
|
|
|
+ taskFinishCount:0,
|
|
|
|
+ taskTotalCount:1,
|
|
|
|
+ updateTime:''
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ createProjectParams:{
|
|
|
|
+ projectUrl:'',
|
|
|
|
+ projectLogo:'',
|
|
|
|
+ status:'',
|
|
|
|
+ estimatedCost:'',
|
|
|
|
+ projectName:''
|
|
|
|
+ },
|
|
|
|
+ modifyProjectParams:{
|
|
|
|
+ amsProjectId:'',
|
|
|
|
+ projectUrl:'',
|
|
|
|
+ projectLogo:'',
|
|
|
|
+ status:'',
|
|
|
|
+ estimatedCost:'',
|
|
|
|
+ projectName:'',
|
|
|
|
+ tasks:[
|
|
|
|
+ {
|
|
|
|
+ taskName:'',
|
|
|
|
+ taskId:''
|
|
|
|
+ },
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ options: [{
|
|
|
|
+ value: 'NOT_STARTED',
|
|
|
|
+ label: '未开始'
|
|
}, {
|
|
}, {
|
|
- projectName:'LayerZero',
|
|
|
|
- totalNumber:4,
|
|
|
|
- completedNumber:1,
|
|
|
|
- status:1,
|
|
|
|
- gas:23,
|
|
|
|
- officialWebsite:"https://nytimes.com",
|
|
|
|
- startTime:'16/08/2013',
|
|
|
|
- endTime:'16/08/2013'
|
|
|
|
|
|
+ value: 'ONGOING',
|
|
|
|
+ label: '运行中'
|
|
}, {
|
|
}, {
|
|
- projectName:'StarkNet',
|
|
|
|
- totalNumber:1,
|
|
|
|
- completedNumber:0,
|
|
|
|
- status:2,
|
|
|
|
- gas:23,
|
|
|
|
- officialWebsite:"https://nytimes.com",
|
|
|
|
- startTime:'16/08/2013',
|
|
|
|
- endTime:'16/08/2013'
|
|
|
|
|
|
+ value: 'NOT_DROPPED',
|
|
|
|
+ label: '未空投'
|
|
}, {
|
|
}, {
|
|
- projectName:'Sei',
|
|
|
|
- totalNumber:3,
|
|
|
|
- completedNumber:2,
|
|
|
|
- status:3,
|
|
|
|
- gas:23,
|
|
|
|
- officialWebsite:"https://nytimes.com",
|
|
|
|
- startTime:'16/08/2013',
|
|
|
|
- endTime:'16/08/2013'
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
|
|
+ value: 'DROPPED',
|
|
|
|
+ label: '已空投'
|
|
|
|
+ }],
|
|
|
|
+ upload:{
|
|
|
|
+ url:process.env.VUE_APP_BASE_API,
|
|
|
|
+ headerMsg:{},
|
|
|
|
+ extra:''
|
|
|
|
+ },
|
|
drawerProject:false,
|
|
drawerProject:false,
|
|
input:'',
|
|
input:'',
|
|
drawerInfo:false,
|
|
drawerInfo:false,
|
|
record:false,
|
|
record:false,
|
|
- recordList:[
|
|
|
|
- {
|
|
|
|
- time:'09-09',
|
|
|
|
- total:'金额',
|
|
|
|
- gas:'Gas',
|
|
|
|
- status:0,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- time:'09-09',
|
|
|
|
- total:'金额',
|
|
|
|
- gas:'Gas',
|
|
|
|
- status:0,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- time:'09-09',
|
|
|
|
- total:'金额',
|
|
|
|
- gas:'Gas',
|
|
|
|
- status:1,
|
|
|
|
- },
|
|
|
|
- ]
|
|
|
|
|
|
+ interactionRecordList:[]
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ mounted() {
|
|
|
|
+ this.getProjectPage()
|
|
|
|
+ this.getProjectNum()
|
|
|
|
+ },
|
|
methods: {
|
|
methods: {
|
|
- handleRemove(file, fileList) {
|
|
|
|
- console.log(file, fileList);
|
|
|
|
|
|
+ handleAvatarSuccess(res){
|
|
|
|
+ this.createProjectParams.projectLogo = res.data
|
|
|
|
+ this.modifyProjectParams.projectLogo = res.data
|
|
},
|
|
},
|
|
- handlePreview(file) {
|
|
|
|
- console.log(file);
|
|
|
|
|
|
+ getProjectPage() {
|
|
|
|
+ let params = {
|
|
|
|
+ page:1,
|
|
|
|
+ pageSize:10,
|
|
|
|
+ }
|
|
|
|
+ projectPage(params).then(res=>{
|
|
|
|
+ this.tableData = res.records
|
|
|
|
+ this.head.projectsNumber = res.total
|
|
|
|
+ })
|
|
|
|
+ this.getProjectNum()
|
|
},
|
|
},
|
|
- handleExceed(files, fileList) {
|
|
|
|
- this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
|
|
|
|
|
|
+ createProject() {
|
|
|
|
+ let params = {
|
|
|
|
+ projectUrl:this.createProjectParams.projectUrl,
|
|
|
|
+ projectLogo:this.createProjectParams.projectLogo,
|
|
|
|
+ estimatedCost:this.createProjectParams.estimatedCost,
|
|
|
|
+ projectName:this.createProjectParams.projectName
|
|
|
|
+ }
|
|
|
|
+ createAirdropProject(params).then(()=>{
|
|
|
|
+ this.getProjectPage()
|
|
|
|
+ this.drawerProject = false
|
|
|
|
+ this.createProjectParams = {
|
|
|
|
+ projectUrl:'',
|
|
|
|
+ projectLogo:'',
|
|
|
|
+ status:'',
|
|
|
|
+ estimatedCost:'',
|
|
|
|
+ projectName:''
|
|
|
|
+ }
|
|
|
|
+ })
|
|
},
|
|
},
|
|
- beforeRemove(file, fileList) {
|
|
|
|
- return this.$confirm(`确定移除 ${ file.name }?`);
|
|
|
|
|
|
+ modifyProject() {
|
|
|
|
+ let params = {
|
|
|
|
+ amsProjectId:this.modifyProjectParams.amsProjectId,
|
|
|
|
+ projectUrl:this.modifyProjectParams.projectUrl,
|
|
|
|
+ projectLogo:this.modifyProjectParams.projectLogo,
|
|
|
|
+ status:this.modifyProjectParams.status,
|
|
|
|
+ estimatedCost:this.modifyProjectParams.estimatedCost,
|
|
|
|
+ projectName:this.modifyProjectParams.projectName
|
|
|
|
+ }
|
|
|
|
+ modifyAirdropProject(params).then(()=>{
|
|
|
|
+ this.getProjectPage()
|
|
|
|
+ this.drawerInfo = false
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ deleteProject() {
|
|
|
|
+ let params = this.modifyProjectParams.amsProjectId
|
|
|
|
+ deleteAirdropProject(params).then(()=>{
|
|
|
|
+ this.getProjectPage()
|
|
|
|
+ this.drawerInfo = false
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ getProjectNum() {
|
|
|
|
+ projectNum().then(res=>{
|
|
|
|
+ this.head.ongoingNumber = res.runningCount
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ addItem() {
|
|
|
|
+ this.drawerProject = true
|
|
|
|
+ this.initUpload()
|
|
|
|
+ },
|
|
|
|
+ initUpload() {
|
|
|
|
+ if (getToken()) {
|
|
|
|
+ this.upload.headerMsg['X-UC-AuthToken'] = getToken()
|
|
|
|
+ }
|
|
|
|
+ this.upload.headerMsg['Accept-Language'] = 'en-US';
|
|
|
|
+ this.upload.headerMsg["X-SYSTEM-ID"] = constant.systemId ? constant.systemId : ""
|
|
|
|
+ this.upload.headerMsg["X-SYSTEM-GROUP-ID"] = constant.systemGroupId ? constant.systemGroupId : ""
|
|
|
|
+ //额外参数
|
|
|
|
+ this.upload.extra = {
|
|
|
|
+ table: 'dv_reviews_pic',
|
|
|
|
+ col: 'pic_id'
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ tableRowClick(row) {
|
|
|
|
+ this.initUpload()
|
|
|
|
+ viewProjectDetails(row.amsProjectId).then(res=>{
|
|
|
|
+ this.modifyProjectParams = res
|
|
|
|
+ this.drawerInfo = true
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ viewExecutionHistory(item) {
|
|
|
|
+ let params = {
|
|
|
|
+ page: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ queryValue: item.amsTaskId
|
|
|
|
+ }
|
|
|
|
+ getInteractionRecord(params).then((res)=>{
|
|
|
|
+ this.interactionRecordList = res.records
|
|
|
|
+ this.record = true
|
|
|
|
+ })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -468,6 +573,7 @@ export default {
|
|
font-size: 15px;
|
|
font-size: 15px;
|
|
line-height: 20px;
|
|
line-height: 20px;
|
|
color: #FFFFFF;
|
|
color: #FFFFFF;
|
|
|
|
+ cursor: pointer;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -524,6 +630,9 @@ export default {
|
|
font-size: 17px;
|
|
font-size: 17px;
|
|
line-height: 22px;
|
|
line-height: 22px;
|
|
color: #222222;
|
|
color: #222222;
|
|
|
|
+ width: 60px;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
}
|
|
}
|
|
.progressBar{
|
|
.progressBar{
|
|
width: 160px;
|
|
width: 160px;
|
|
@@ -639,6 +748,7 @@ export default {
|
|
font-size: 15px;
|
|
font-size: 15px;
|
|
line-height: 20px;
|
|
line-height: 20px;
|
|
color: #2980FF;
|
|
color: #2980FF;
|
|
|
|
+ cursor: pointer;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -657,17 +767,11 @@ export default {
|
|
.uploadImg{
|
|
.uploadImg{
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
- gap:4px;
|
|
|
|
- width: 124px;
|
|
|
|
- height: 52px;
|
|
|
|
|
|
+ justify-content: center;
|
|
|
|
+ width: 68px;
|
|
|
|
+ height: 68px;
|
|
border: 1px solid #2980FF;
|
|
border: 1px solid #2980FF;
|
|
border-radius: 40px;
|
|
border-radius: 40px;
|
|
- padding: 0 20px;
|
|
|
|
- font-weight: 400;
|
|
|
|
- font-size: 15px;
|
|
|
|
- line-height: 20px;
|
|
|
|
- color: #2980FF;
|
|
|
|
- white-space: nowrap;
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -676,6 +780,7 @@ export default {
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
height: 100vh;
|
|
height: 100vh;
|
|
|
|
+ overflow: auto;
|
|
.title1{
|
|
.title1{
|
|
font-weight: 700;
|
|
font-weight: 700;
|
|
font-size: 21px;
|
|
font-size: 21px;
|
|
@@ -823,6 +928,7 @@ export default {
|
|
font-size: 15px;
|
|
font-size: 15px;
|
|
line-height: 20px;
|
|
line-height: 20px;
|
|
color: #2980FF;
|
|
color: #2980FF;
|
|
|
|
+ cursor: pointer;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -891,6 +997,84 @@ export default {
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ .drawerProject-container-head{
|
|
|
|
+ padding: 56px 40px;
|
|
|
|
+ background: #FFFFFF;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ .drawerProject-container-head-left{
|
|
|
|
+ .drawerProject-container-title{
|
|
|
|
+ font-weight: 700;
|
|
|
|
+ font-size: 21px;
|
|
|
|
+ line-height: 28px;
|
|
|
|
+ color: #181818;
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
+ }
|
|
|
|
+ .drawerProject-container-tip{
|
|
|
|
+ font-weight: 700;
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ line-height: 16px;
|
|
|
|
+ color: #919191;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .drawerProject-container-head-right{
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ gap:48px;
|
|
|
|
+ .cancellation{
|
|
|
|
+ width: 118px;
|
|
|
|
+ height: 52px;
|
|
|
|
+ background: #E0E0E0;
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+ gap: 4px;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ font-weight: 700;
|
|
|
|
+ font-size: 15px;
|
|
|
|
+ line-height: 20px;
|
|
|
|
+ color: #828282;
|
|
|
|
+ }
|
|
|
|
+ .complete{
|
|
|
|
+ width: 118px;
|
|
|
|
+ height: 52px;
|
|
|
|
+ border: 2px solid #4A76FF;
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+ gap:4px;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ font-weight: 700;
|
|
|
|
+ font-size: 15px;
|
|
|
|
+ line-height: 20px;
|
|
|
|
+ color: #2980FF;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ .drawerProject-container-main{
|
|
|
|
+ padding: 36px 40px 0 40px;
|
|
|
|
+ background: #f9fbff;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ gap:24px;
|
|
|
|
+ .info{
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ gap:24px;
|
|
|
|
+ .uploadImg{
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ width: 68px;
|
|
|
|
+ height: 68px;
|
|
|
|
+ border: 1px solid #2980FF;
|
|
|
|
+ border-radius: 40px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
.drawerInfo-container-footer{
|
|
.drawerInfo-container-footer{
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 84px;
|
|
height: 84px;
|
|
@@ -906,6 +1090,7 @@ export default {
|
|
font-weight: 700;
|
|
font-weight: 700;
|
|
font-size: 17px;
|
|
font-size: 17px;
|
|
line-height: 22px;
|
|
line-height: 22px;
|
|
|
|
+ cursor: pointer;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|