Commit 6c6ae6b9 authored by louyuqi's avatar louyuqi

update

parent d340f0a6
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
"crypto-js": "^4.1.1", "crypto-js": "^4.1.1",
"dayjs": "^1.11.1", "dayjs": "^1.11.1",
"downloadjs": "^1.4.7", "downloadjs": "^1.4.7",
"element-plus": "^1.3.0-beta.8", "element-plus": "^2.1.11",
"less": "^4.1.2", "less": "^4.1.2",
"less-loader": "^10.2.0", "less-loader": "^10.2.0",
"vue": "^3.2.25", "vue": "^3.2.25",
......
import axios from 'axios' import axios, {AxiosResponse} from 'axios'
import downloadjs from 'downloadjs' import downloadjs from 'downloadjs'
import { getStore, USR } from '../utils/userinfo' import { getStore, USR } from '../utils/userinfo'
interface LoginData{ interface LoginData{
...@@ -18,10 +18,10 @@ instance.interceptors.request.use((config)=>{ ...@@ -18,10 +18,10 @@ instance.interceptors.request.use((config)=>{
return config return config
} }
}) })
instance.interceptors.response.use((response)=>{ // instance.interceptors.response.use((response)=>{
// console.log('ee',response) // // console.log('ee',response)
return response.data // // return response.data
}) // })
const store = getStore<USR<any>>('mining-manager') const store = getStore<USR<any>>('mining-manager')
export const doLogin = async (data:LoginData) => { export const doLogin = async (data:LoginData) => {
...@@ -38,57 +38,18 @@ export const doLogin = async (data:LoginData) => { ...@@ -38,57 +38,18 @@ export const doLogin = async (data:LoginData) => {
}) })
} }
export function getResData(res:AxiosResponse){
return res.data
}
export const getPlatList = async()=>{ export const getPlatList = async()=>{
return instance.get('/api/admin/plat-list',) return instance.get('/api/admin/plat-list',).then(getResData)
} }
export const getNodeList = async(params:{id:string})=>{ export const getNodeList = async(params:{id:string})=>{
return instance.get('/api/admin/node-list',{params}) return instance.get('/api/admin/node-list',{params}).then(getResData)
} }
export const getPoolList = async(params:{id:string})=>{ export const getPoolList = async(params:{id:string})=>{
return instance.get('/api/admin/pool-list',{params}) return instance.get('/api/admin/pool-list',{params}).then(getResData)
} }
export interface GetTransListParams{
platId?:number
status?:number
start?:number
end?:number
addr?:string
page?:number
pageSize?:number
}
export const getTransList = async(params:GetTransListParams)=>{
params.page?params.page:params.page=1
params.pageSize?params.pageSize:params.pageSize=10
return instance.get('/api/admin/trans-list',{
params:params
}).then(res=>{
return res.data
})
}
export const downloadTxt = async(params:GetTransListParams)=>{
return instance.get('/download/unsigntxs',{
params: params
}).then(async res=>{
try{
await downloadjs(res.data)
return{
status:'success',
message:'download action is finished'
}
}catch(err){
console.log('下载出错了',err);
}
return
}).catch((err:any)=>{
return{
status:'error',
message:err.response.data.message
}
})
}
export default instance export default instance
\ No newline at end of file
import Http from './index'; import Http, {getResData} from './index';
export interface INewUsersParams{ export interface INewUsersParams{
platId?:string, platId?:string,
nodeId?:string, nodeId?:string,
...@@ -11,5 +11,5 @@ export interface INewUsersParams{ ...@@ -11,5 +11,5 @@ export interface INewUsersParams{
date?:string, date?:string,
} }
export function getNewUsersList(params:INewUsersParams){ export function getNewUsersList(params:INewUsersParams){
return Http.get('/api/admin/new-users',{params}) return Http.get('/api/admin/new-users',{params}).then(getResData)
} }
\ No newline at end of file
import Http from './index'; import Http, {getResData} from './index';
export interface IAddRuleParams{ export interface IAddRuleParams{
ty:number, ty:number,
addr:string addr:string
...@@ -12,11 +12,11 @@ export interface IDeleteRuleParams{ ...@@ -12,11 +12,11 @@ export interface IDeleteRuleParams{
id:string id:string
} }
export function addWithdraw(params:IAddRuleParams){ export function addWithdraw(params:IAddRuleParams){
return Http.post('/api/admin/add-withdraw',params) return Http.post('/api/admin/add-withdraw',params).then(getResData)
} }
export function delWithdraw(params:IDeleteRuleParams){ export function delWithdraw(params:IDeleteRuleParams){
return Http.post('/api/admin/del-withdraw',params) return Http.post('/api/admin/del-withdraw',params).then(getResData)
} }
export function getWithdrawList(params:IWithdrawListParams){ export function getWithdrawList(params:IWithdrawListParams){
return Http.get('/api/admin/withdraw-list',{params}) return Http.get('/api/admin/withdraw-list',{params}).then(getResData)
} }
\ No newline at end of file
import downloadjs from "downloadjs";
import Http, {getResData} from "./index";
export interface GetTransListParams{
platId?:number
status?:number
start?:number
end?:number
addr?:string
page?:number
pageSize?:number
}
export const getTransList = async(params:GetTransListParams)=>{
params.page?params.page:params.page=1
params.pageSize?params.pageSize:params.pageSize=10
return Http.get('/api/admin/trans-list',{
params:params
}).then(res=>{
return res.data
})
}
export const downloadTxt = async(params:GetTransListParams)=>{
return Http.get('/download/unsigntxs',{
params: params
}).then(async res=>{
try{
await downloadjs(res.data)
return{
status:'success',
message:'download action is finished'
}
}catch(err){
console.log('下载出错了',err);
}
return
}).catch((err:any)=>{
return{
status:'error',
message:err.response.data.message
}
})
}
export function doForceReady(ids:string[]){
return Http.post('/api/admin/force-ready',{ids}).then(getResData)
}
\ No newline at end of file
...@@ -13,7 +13,7 @@ const props = defineProps<{ ...@@ -13,7 +13,7 @@ const props = defineProps<{
btnEnable:boolean btnEnable:boolean
}>() }>()
const emit = defineEmits(["eventEmitted", "dodownload"]); const emit = defineEmits(["eventEmitted", "dodownload",'doForceReady']);
const downloadTxt = () => { const downloadTxt = () => {
emit("dodownload"); emit("dodownload");
}; };
...@@ -40,6 +40,10 @@ const options = [ ...@@ -40,6 +40,10 @@ const options = [
value: 4, value: 4,
label: "成功", label: "成功",
}, },
{
value:8,
label:"未达标"
}
]; ];
onMounted(async () => { onMounted(async () => {
const res = await getPlatList(); const res = await getPlatList();
...@@ -91,6 +95,7 @@ onMounted(async () => { ...@@ -91,6 +95,7 @@ onMounted(async () => {
> >
</el-input> </el-input>
</div> </div>
<el-tooltip placement="top"> <el-tooltip placement="top">
<template #content> 下载需要至少设定精准id和时间范围 </template> <template #content> 下载需要至少设定精准id和时间范围 </template>
<el-button <el-button
......
...@@ -22,13 +22,13 @@ const login = async () => { ...@@ -22,13 +22,13 @@ const login = async () => {
token: getToken, token: getToken,
expire: '1d' expire: '1d'
}) })
router.push('/user')
ElMessage({ ElMessage({
message: "用户登陆成功", message: "用户登陆成功",
type: "success" type: "success"
}) })
console.log('?') console.log('?')
router.push('/user')
} else { } else {
ElMessage({ ElMessage({
message: "登陆失败", message: "登陆失败",
......
...@@ -3,7 +3,7 @@ import Tabs from '../../components/tabs.vue'; ...@@ -3,7 +3,7 @@ import Tabs from '../../components/tabs.vue';
import Controllbar from '../../components/controllbar.vue'; import Controllbar from '../../components/controllbar.vue';
import {useAxios} from '@vueuse/integrations/useAxios' import {useAxios} from '@vueuse/integrations/useAxios'
import {computed, onMounted, reactive, ref, watch} from 'vue'; import {computed, onMounted, reactive, ref, watch} from 'vue';
import {downloadTxt, getTransList} from '../../api'; import {doForceReady, downloadTxt, getTransList} from '../../api/userInfoService';
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import dayjs from 'dayjs' import dayjs from 'dayjs'
...@@ -16,7 +16,7 @@ const reqData = reactive({ ...@@ -16,7 +16,7 @@ const reqData = reactive({
pageSize: 10, pageSize: 10,
addr: '' addr: ''
}) })
const forceReadyIds=ref<string[]>([])
const loading = ref(false) const loading = ref(false)
const disableDownload = ref(true) const disableDownload = ref(true)
const table = ref([]) const table = ref([])
...@@ -86,6 +86,18 @@ const childDataChange = (v: { data: any, type: string }) => { ...@@ -86,6 +86,18 @@ const childDataChange = (v: { data: any, type: string }) => {
} }
console.log(reqData); console.log(reqData);
} }
const forceReady=()=>{
doForceReady(forceReadyIds.value).then(res=>{
ElMessage.success('重置成功')
initTable();
})
}
const handleSelectionChange=(val:any[])=>{
console.log(val)
forceReadyIds.value=val.map(data=>{
return data.id;
})
}
const download = async () => { const download = async () => {
const res = await downloadTxt(reqData) as any const res = await downloadTxt(reqData) as any
if (res.status === 'error') { if (res.status === 'error') {
...@@ -124,6 +136,8 @@ const statusFilter = computed((v) => { ...@@ -124,6 +136,8 @@ const statusFilter = computed((v) => {
return '失败' return '失败'
case 4: case 4:
return '成功' return '成功'
case 8:
return '未达标'
} }
} }
...@@ -156,13 +170,22 @@ onMounted(async () => { ...@@ -156,13 +170,22 @@ onMounted(async () => {
<Controllbar @eventEmitted="childDataChange" @dodownload="downloadModal=true" <Controllbar @eventEmitted="childDataChange" @dodownload="downloadModal=true"
:btnEnable="disableDownload"></Controllbar> :btnEnable="disableDownload"></Controllbar>
<div class="table-view w-full "> <div class="table-view w-full ">
<div class=" text-sm opacity-50 py-3 px-3">当前交易笔数:{{ pageController.size }}</div> <div class="flex justify-between">
<div class=" text-sm opacity-50 py-3 px-3">当前交易笔数:{{ pageController.size }} </div>
<!-- <div> <el-button :disabled="forceReadyIds.length===0" @click="forceReady">重置未导出</el-button></div>-->
<div> <el-button :disabled="!~[3,8].indexOf(reqData.status)||forceReadyIds.length===0" @click="forceReady">重置未导出</el-button></div>
</div>
<el-table <el-table
v-loading="loading" v-loading="loading"
element-loading-text="加载中,请等待..." element-loading-text="加载中,请等待..."
:data="table" :data="table"
@selection-change="handleSelectionChange"
class=" container"> class=" container">
<el-table-column v-if="!!~[3,8].indexOf(reqData.status)" type="selection" width="55" />
<!-- <el-table-column type="selection" width="55" />-->
<el-table-column v-for="i in columnSet" :prop="i.prop" :label="i.label"> <el-table-column v-for="i in columnSet" :prop="i.prop" :label="i.label">
<template #default="scope" v-if="i.prop === 'status'"> <template #default="scope" v-if="i.prop === 'status'">
{{ statusFilter(scope.row.status) }} {{ statusFilter(scope.row.status) }}
</template> </template>
...@@ -176,6 +199,7 @@ onMounted(async () => { ...@@ -176,6 +199,7 @@ onMounted(async () => {
{{ dateFilter(scope.row.jboTime) }} {{ dateFilter(scope.row.jboTime) }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div class=" w-full mx-auto absolute left-0 bottom-0"> <div class=" w-full mx-auto absolute left-0 bottom-0">
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment