1.m2pool断网重连 60秒内重连机制 所有页面添加
2.优化响应错误提示 3秒内同一种错误只提示一次
This commit is contained in:
@@ -11,6 +11,9 @@ import './assets/icons/iconfont/iconfont.css'
|
||||
import {$addStorageEvent} from '../src/utils/publicMethods'
|
||||
import MetaInfo from 'vue-meta-info'
|
||||
import loadingStateMixin from './utils/loadingStateMixin';
|
||||
import networkRecoveryMixin from './mixins/networkRecoveryMixin';
|
||||
import './utils/loadingRecovery';
|
||||
import errorNotificationManager from '../src/utils/errorNotificationManager';
|
||||
|
||||
Vue.use(MetaInfo)
|
||||
Vue.prototype.$addStorageEvent = $addStorageEvent // 添加storage事件
|
||||
@@ -21,7 +24,9 @@ Vue.use(ElementUI, {
|
||||
Vue.prototype.$axios = axios
|
||||
|
||||
console.log = ()=>{} //全局关闭打印
|
||||
// 全局注册混入
|
||||
Vue.mixin(loadingStateMixin);
|
||||
Vue.mixin(networkRecoveryMixin);
|
||||
|
||||
Vue.prototype.$baseApi = process.env.VUE_APP_BASE_URL //图片base路径
|
||||
const screenWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
||||
@@ -45,6 +50,11 @@ router.beforeEach((to, from, next) => {
|
||||
next();
|
||||
});
|
||||
|
||||
// 定期清理过期的错误记录
|
||||
setInterval(() => {
|
||||
errorNotificationManager.cleanup();
|
||||
}, 60000); // 每分钟清理一次
|
||||
|
||||
window.vm = new Vue({
|
||||
router,
|
||||
store,
|
||||
|
||||
61
mining-pool/src/mixins/networkRecoveryMixin.js
Normal file
61
mining-pool/src/mixins/networkRecoveryMixin.js
Normal file
@@ -0,0 +1,61 @@
|
||||
//处理断网重连后数据刷新的混入
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 注册需要在网络恢复时调用的方法名
|
||||
recoveryMethods: [],
|
||||
// 上次调用这些方法时的参数
|
||||
methodParams: {}
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
/**
|
||||
* 注册需要在网络恢复时自动重新调用的方法
|
||||
* @param {String} methodName - 方法名
|
||||
* @param {*} params - 调用方法时需要的参数
|
||||
*/
|
||||
registerRecoveryMethod(methodName, params) {
|
||||
if (typeof this[methodName] === 'function' && !this.recoveryMethods.includes(methodName)) {
|
||||
this.recoveryMethods.push(methodName);
|
||||
this.methodParams[methodName] = params;
|
||||
console.log(`[NetworkRecovery] 注册方法: ${methodName}`);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 更新方法的参数
|
||||
* @param {String} methodName - 方法名
|
||||
* @param {*} params - 新的参数
|
||||
*/
|
||||
updateMethodParams(methodName, params) {
|
||||
if (this.recoveryMethods.includes(methodName)) {
|
||||
this.methodParams[methodName] = params;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 网络恢复后调用所有注册的方法
|
||||
*/
|
||||
handleNetworkRecovery() {
|
||||
console.log('[NetworkRecovery] 网络已恢复,正在刷新数据...');
|
||||
this.recoveryMethods.forEach(methodName => {
|
||||
if (typeof this[methodName] === 'function') {
|
||||
const params = this.methodParams[methodName];
|
||||
console.log(`[NetworkRecovery] 重新调用方法: ${methodName}`);
|
||||
this[methodName](params);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
// 监听网络恢复事件
|
||||
window.addEventListener('network-retry-complete', this.handleNetworkRecovery);
|
||||
},
|
||||
|
||||
beforeDestroy() {
|
||||
// 清理事件监听
|
||||
window.removeEventListener('network-retry-complete', this.handleNetworkRecovery);
|
||||
}
|
||||
};
|
||||
74
mining-pool/src/utils/errorNotificationManager.js
Normal file
74
mining-pool/src/utils/errorNotificationManager.js
Normal file
@@ -0,0 +1,74 @@
|
||||
/**
|
||||
* 错误提示管理器
|
||||
* 用于控制错误提示的频率,避免短时间内重复显示相同类型的错误
|
||||
*/
|
||||
class ErrorNotificationManager {
|
||||
constructor() {
|
||||
// 记录最近显示的错误信息
|
||||
this.recentErrors = new Map();
|
||||
// 默认节流时间 (30秒)
|
||||
this.throttleTime = 3000;
|
||||
// 错误类型映射
|
||||
this.errorTypes = {
|
||||
'Network Error': 'network',
|
||||
'timeout': 'timeout',
|
||||
'Request failed with status code': 'statusCode',
|
||||
// 添加网络状态类型
|
||||
'networkReconnected': 'networkStatus',
|
||||
'NetworkError': 'network'
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取错误类型
|
||||
* @param {String} message 错误信息
|
||||
* @returns {String} 错误类型
|
||||
*/
|
||||
getErrorType(message) {
|
||||
for (const [key, type] of Object.entries(this.errorTypes)) {
|
||||
if (message.includes(key)) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否可以显示错误
|
||||
* @param {String} message 错误信息
|
||||
* @returns {Boolean} 是否可以显示
|
||||
*/
|
||||
canShowError(message) {
|
||||
const errorType = this.getErrorType(message);
|
||||
const now = Date.now();
|
||||
|
||||
// 检查同类型的错误是否最近已经显示过
|
||||
if (this.recentErrors.has(errorType)) {
|
||||
const lastTime = this.recentErrors.get(errorType);
|
||||
if (now - lastTime < this.throttleTime) {
|
||||
console.log(`[错误提示] 已抑制重复错误: ${errorType}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 更新最后显示时间
|
||||
this.recentErrors.set(errorType, now);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理过期的错误记录
|
||||
*/
|
||||
cleanup() {
|
||||
const now = Date.now();
|
||||
this.recentErrors.forEach((time, type) => {
|
||||
if (now - time > this.throttleTime) {
|
||||
this.recentErrors.delete(type);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 创建单例实例
|
||||
const errorNotificationManager = new ErrorNotificationManager();
|
||||
export default errorNotificationManager;
|
||||
41
mining-pool/src/utils/loadingRecovery.js
Normal file
41
mining-pool/src/utils/loadingRecovery.js
Normal file
@@ -0,0 +1,41 @@
|
||||
import Vue from 'vue';
|
||||
|
||||
/**
|
||||
* 自动恢复加载状态的指令
|
||||
* 用法: v-loading-recovery="{ loading: 'loadingProp', recovery: ['method1', 'method2'] }"
|
||||
*/
|
||||
export const loadingRecoveryDirective = {
|
||||
// 当绑定元素插入到 DOM 中时
|
||||
inserted(el, binding, vnode) {
|
||||
const component = vnode.context;
|
||||
const { loading, recovery } = binding.value || {};
|
||||
|
||||
if (!loading || !recovery || !Array.isArray(recovery)) return;
|
||||
|
||||
// 为组件添加加载状态恢复的逻辑
|
||||
const handleNetworkRecovery = () => {
|
||||
// 当网络恢复时,自动设置loading为false
|
||||
if (component[loading]) {
|
||||
component[loading] = false;
|
||||
}
|
||||
};
|
||||
|
||||
// 保存到元素上,以便后续清理
|
||||
el._loadingRecovery = handleNetworkRecovery;
|
||||
window.addEventListener('network-retry-complete', handleNetworkRecovery);
|
||||
|
||||
console.log(`[LoadingRecovery] 添加加载状态恢复: ${loading}`);
|
||||
},
|
||||
|
||||
// 当指令与元素解绑时
|
||||
unbind(el) {
|
||||
// 清理事件监听
|
||||
if (el._loadingRecovery) {
|
||||
window.removeEventListener('network-retry-complete', el._loadingRecovery);
|
||||
delete el._loadingRecovery;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// 注册全局指令
|
||||
Vue.directive('loading-recovery', loadingRecoveryDirective);
|
||||
@@ -2,6 +2,8 @@ import axios from 'axios'
|
||||
import errorCode from './errorCode'
|
||||
import { Notification, MessageBox, Message } from 'element-ui'
|
||||
import loadingManager from './loadingManager';
|
||||
import errorNotificationManager from './errorNotificationManager';
|
||||
|
||||
// 创建axios实例
|
||||
const service = axios.create({
|
||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||
@@ -19,10 +21,51 @@ let lastNetworkErrorTime = 0; // 上次网络错误提示时间
|
||||
let pendingRequests = new Map();
|
||||
|
||||
|
||||
// 网络状态监听器
|
||||
// 网络状态最后提示时间
|
||||
let lastNetworkStatusTime = {
|
||||
online: 0,
|
||||
offline: 0
|
||||
};
|
||||
|
||||
// 创建一个全局标志,确保每次网络恢复只显示一次提示
|
||||
let networkRecoveryInProgress = false;
|
||||
|
||||
// 网络状态监听器
|
||||
window.addEventListener('online', () => {
|
||||
// 网络恢复时,重试所有待处理的请求
|
||||
const now = Date.now();
|
||||
|
||||
// 避免短时间内多次触发
|
||||
if (networkRecoveryInProgress) {
|
||||
console.log('[网络] 网络恢复处理已在进行中,忽略重复事件');
|
||||
return;
|
||||
}
|
||||
|
||||
networkRecoveryInProgress = true;
|
||||
|
||||
// 严格检查是否应该显示提示
|
||||
if (now - lastNetworkStatusTime.online > 30000) { // 30秒内不重复提示
|
||||
lastNetworkStatusTime.online = now;
|
||||
|
||||
try {
|
||||
if (window.vm && window.vm.$message) {
|
||||
// 确保消息只显示一次
|
||||
window.vm.$message({
|
||||
message: window.vm.$i18n.t('home.networkReconnected') || '网络已重新连接,正在恢复数据...',
|
||||
type: 'success',
|
||||
duration: 5000,
|
||||
showClose: true,
|
||||
});
|
||||
console.log('[网络] 显示网络恢复提示, 时间:', new Date().toLocaleTimeString());
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('[网络] 显示网络恢复提示失败:', e);
|
||||
}
|
||||
} else {
|
||||
console.log('[网络] 抑制重复的网络恢复提示, 间隔过短:', now - lastNetworkStatusTime.online + 'ms');
|
||||
}
|
||||
|
||||
// 网络恢复时,重试所有待处理的请求
|
||||
const pendingPromises = [];
|
||||
|
||||
pendingRequests.forEach(async (request, key) => {
|
||||
@@ -71,27 +114,46 @@ window.addEventListener('online', () => {
|
||||
// 等待所有请求完成
|
||||
Promise.allSettled(pendingPromises).then(() => {
|
||||
// 重置所有 loading 状态
|
||||
loadingManager.resetAllLoadingStates();
|
||||
if (loadingManager) {
|
||||
loadingManager.resetAllLoadingStates();
|
||||
}
|
||||
|
||||
// 手动重置一些关键的 loading 状态
|
||||
if (window.vm) {
|
||||
// 常见的加载状态
|
||||
const commonLoadingProps = [
|
||||
'minerChartLoading', 'reportBlockLoading', 'apiPageLoading',
|
||||
'MiningLoading', 'miniLoading'
|
||||
];
|
||||
|
||||
commonLoadingProps.forEach(prop => {
|
||||
if (typeof window.vm[prop] !== 'undefined') {
|
||||
window.vm[prop] = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 触发网络重试完成事件
|
||||
window.dispatchEvent(new CustomEvent('network-retry-complete'));
|
||||
|
||||
// 重置网络恢复标志
|
||||
setTimeout(() => {
|
||||
networkRecoveryInProgress = false;
|
||||
}, 5000); // 5秒后允许再次处理网络恢复
|
||||
});
|
||||
|
||||
// 显示网络恢复提示
|
||||
if (window.vm && window.vm.$message) {
|
||||
window.vm.$message({
|
||||
message: window.vm.$i18n.t('home.networkReconnected') || '网络已重新连接,正在恢复数据...',
|
||||
type: 'success',
|
||||
duration: 3000
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// 使用错误提示管理器控制网络断开提示
|
||||
window.addEventListener('offline', () => {
|
||||
if (window.vm && window.vm.$message) {
|
||||
if (window.vm && window.vm.$message && errorNotificationManager.canShowError('networkOffline')) {
|
||||
window.vm.$message({
|
||||
message: window.vm.$i18n.t('home.networkOffline') || '网络连接已断开,系统将在恢复连接后自动重试',
|
||||
type: 'warning',
|
||||
duration: 3000
|
||||
type: 'error',
|
||||
duration: 5000,
|
||||
showClose: true,
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -273,19 +335,12 @@ service.interceptors.response.use(res => {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (!superReportError) {
|
||||
superReportError = "error"
|
||||
localStorage.setItem('superReportError', superReportError)
|
||||
let { message } = error;
|
||||
if (message == "Network Error") {
|
||||
// message = "后端接口网络连接异常,请刷新重试";
|
||||
const now = Date.now();
|
||||
if (now - lastNetworkErrorTime > NETWORK_ERROR_THROTTLE_TIME) {
|
||||
lastNetworkErrorTime = now; // 更新最后提示时间
|
||||
//使用错误提示管理器errorNotificationManager
|
||||
if (errorNotificationManager.canShowError(message)) {
|
||||
if (message == "Network Error") {
|
||||
Message({
|
||||
message: window.vm.$i18n.t(`home.NetworkError`),
|
||||
type: 'error',
|
||||
@@ -293,36 +348,84 @@ service.interceptors.response.use(res => {
|
||||
showClose: true
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
else if (message.includes("timeout")) {
|
||||
// message = "系统接口请求超时,请刷新重试";
|
||||
Message({
|
||||
message: window.vm.$i18n.t(`home.requestTimeout`),
|
||||
type: 'error',
|
||||
duration: 5 * 1000,
|
||||
showClose: true
|
||||
})
|
||||
|
||||
}
|
||||
else if (message.includes("Request failed with status code")) {
|
||||
// message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||
Message({
|
||||
message: "系统接口" + message.substr(message.length - 3) + "异常",
|
||||
type: 'error',
|
||||
duration: 5 * 1000,
|
||||
showClose: true
|
||||
})
|
||||
else if (message.includes("timeout")) {
|
||||
Message({
|
||||
message: window.vm.$i18n.t(`home.requestTimeout`),
|
||||
type: 'error',
|
||||
duration: 5 * 1000,
|
||||
showClose: true
|
||||
});
|
||||
}
|
||||
else if (message.includes("Request failed with status code")) {
|
||||
Message({
|
||||
message: "系统接口" + message.substr(message.length - 3) + "异常",
|
||||
type: 'error',
|
||||
duration: 5 * 1000,
|
||||
showClose: true
|
||||
});
|
||||
} else {
|
||||
Message({
|
||||
message: message,
|
||||
type: 'error',
|
||||
duration: 5 * 1000,
|
||||
showClose: true
|
||||
});
|
||||
}
|
||||
} else {
|
||||
|
||||
Message({
|
||||
message: message,
|
||||
type: 'error',
|
||||
duration: 5 * 1000,
|
||||
showClose: true
|
||||
})
|
||||
|
||||
// 避免完全不提示,可以在控制台记录被抑制的错误
|
||||
console.log('[错误提示] 已抑制重复错误:', message);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// let { message } = error;
|
||||
// if (message == "Network Error") {
|
||||
// // message = "后端接口网络连接异常,请刷新重试";
|
||||
// const now = Date.now();
|
||||
// if (now - lastNetworkErrorTime > NETWORK_ERROR_THROTTLE_TIME) {
|
||||
// lastNetworkErrorTime = now; // 更新最后提示时间
|
||||
// Message({
|
||||
// message: window.vm.$i18n.t(`home.NetworkError`),
|
||||
// type: 'error',
|
||||
// duration: 4 * 1000,
|
||||
// showClose: true
|
||||
// });
|
||||
// }
|
||||
|
||||
// }
|
||||
// else if (message.includes("timeout")) {
|
||||
// // message = "系统接口请求超时,请刷新重试";
|
||||
// Message({
|
||||
// message: window.vm.$i18n.t(`home.requestTimeout`),
|
||||
// type: 'error',
|
||||
// duration: 5 * 1000,
|
||||
// showClose: true
|
||||
// })
|
||||
|
||||
// }
|
||||
// else if (message.includes("Request failed with status code")) {
|
||||
// // message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||
// Message({
|
||||
// message: "系统接口" + message.substr(message.length - 3) + "异常",
|
||||
// type: 'error',
|
||||
// duration: 5 * 1000,
|
||||
// showClose: true
|
||||
// })
|
||||
// } else {
|
||||
|
||||
// Message({
|
||||
// message: message,
|
||||
// type: 'error',
|
||||
// duration: 5 * 1000,
|
||||
// showClose: true
|
||||
// })
|
||||
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
34
mining-pool/src/utils/requestWrapper.js
Normal file
34
mining-pool/src/utils/requestWrapper.js
Normal file
@@ -0,0 +1,34 @@
|
||||
//自动记录请求参数,并支持断网重连,创建一个函数装饰器
|
||||
/**
|
||||
* 包装请求方法,自动注册断网重连恢复
|
||||
* @param {Object} component - 组件实例
|
||||
* @param {String} methodName - 方法名
|
||||
* @param {Function} originalMethod - 原始方法
|
||||
* @returns {Function} 包装后的方法
|
||||
*/
|
||||
export function wrapRequestMethod(component, methodName, originalMethod) {
|
||||
return async function(...args) {
|
||||
// 注册为恢复方法(仅当组件支持断网重连恢复)
|
||||
if (component.registerRecoveryMethod) {
|
||||
component.registerRecoveryMethod(methodName, args[0]);
|
||||
}
|
||||
|
||||
// 调用原始方法
|
||||
return await originalMethod.apply(component, args);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动包装组件中的所有请求方法
|
||||
* @param {Object} component - 组件实例
|
||||
* @param {Array<String>} methodNames - 方法名列表
|
||||
*/
|
||||
export function wrapComponentMethods(component, methodNames) {
|
||||
methodNames.forEach(methodName => {
|
||||
if (typeof component[methodName] === 'function') {
|
||||
const originalMethod = component[methodName];
|
||||
component[methodName] = wrapRequestMethod(component, methodName, originalMethod);
|
||||
console.log(`[RequestWrapper] 包装方法: ${methodName}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -171,10 +171,13 @@ export default {
|
||||
// this.stateList = JSON.parse(localStorage.getItem('stateList') )
|
||||
// this.typeList = JSON.parse(localStorage.getItem('typeList') )
|
||||
|
||||
this.registerRecoveryMethod('fetchTicketDetails', { id: this.workOrderId });
|
||||
|
||||
},
|
||||
methods: {
|
||||
async fetchBKendTicket(params){
|
||||
this.totalDetailsLoading =true
|
||||
// this.totalDetailsLoading =true
|
||||
this.setLoading('totalDetailsLoading', true);
|
||||
const data = await getBKendTicket(params)
|
||||
if (data && data.code == 200) {
|
||||
this.$message({
|
||||
@@ -185,11 +188,12 @@ export default {
|
||||
|
||||
}
|
||||
|
||||
this.totalDetailsLoading =false
|
||||
this.setLoading('totalDetailsLoading', false);
|
||||
},
|
||||
|
||||
async fetchReply(params){
|
||||
this.totalDetailsLoading = true
|
||||
// this.totalDetailsLoading = true
|
||||
this.setLoading('totalDetailsLoading', true);
|
||||
const data = await getReply(params)
|
||||
if (data && data.code == 200) {
|
||||
this.$message({
|
||||
@@ -205,7 +209,7 @@ export default {
|
||||
}
|
||||
|
||||
|
||||
this.totalDetailsLoading = false
|
||||
this.setLoading('totalDetailsLoading', false);
|
||||
},
|
||||
handelType2(label){
|
||||
if (label) {
|
||||
@@ -231,14 +235,15 @@ export default {
|
||||
},
|
||||
//请求工单详情
|
||||
async fetchTicketDetails(param) {
|
||||
this.totalDetailsLoading = true
|
||||
// this.totalDetailsLoading = true
|
||||
this.setLoading('totalDetailsLoading', true);
|
||||
const { data } = await getDetails(param)
|
||||
|
||||
this.recordList = data.list
|
||||
this.ticketDetails = data
|
||||
|
||||
|
||||
this.totalDetailsLoading = false
|
||||
this.setLoading('totalDetailsLoading', false);
|
||||
},
|
||||
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ export default {
|
||||
this.params.maId = this.receiveData.id
|
||||
}
|
||||
this.fetchList(this.listParams)
|
||||
|
||||
this.registerRecoveryMethod('fetchList', this.listParams);
|
||||
|
||||
},
|
||||
methods:{
|
||||
@@ -100,7 +100,8 @@ export default {
|
||||
return getImageUrl(path);
|
||||
},
|
||||
async fetchAddNoticeEmail(params){
|
||||
this.addMinerLoading = true
|
||||
// this.addMinerLoading = true
|
||||
this.setLoading('addMinerLoading', true);
|
||||
const data = await getAddNoticeEmail(params)
|
||||
if (data && data.code == 200) {
|
||||
this.$message({
|
||||
@@ -121,17 +122,18 @@ export default {
|
||||
|
||||
}
|
||||
}
|
||||
this.addMinerLoading = false
|
||||
this.setLoading('addMinerLoading', false);
|
||||
|
||||
},
|
||||
async fetchList(params){
|
||||
this.alertsLoading=true
|
||||
// this.alertsLoading=true
|
||||
this.setLoading('alertsLoading', true);
|
||||
const data = await getList(params)
|
||||
if (data && data.code == 200) {
|
||||
this.tableData = data.rows
|
||||
|
||||
}
|
||||
this.alertsLoading=false
|
||||
this.setLoading('alertsLoading', false);
|
||||
|
||||
},
|
||||
async fetchCode(params){
|
||||
@@ -147,7 +149,8 @@ export default {
|
||||
|
||||
},
|
||||
async fetchUpdateInfo(params){
|
||||
this.addMinerLoading = true
|
||||
// this.addMinerLoading = true
|
||||
this.setLoading('addMinerLoading', true);
|
||||
const data = await getUpdateInfo(params)
|
||||
if (data && data.code == 200) {
|
||||
this.$message({
|
||||
@@ -159,11 +162,12 @@ export default {
|
||||
this.fetchList(this.listParams)
|
||||
}
|
||||
|
||||
this.addMinerLoading = false
|
||||
this.setLoading('addMinerLoading', false);
|
||||
|
||||
},
|
||||
async fetchDeleteEmail(params){
|
||||
this.deleteLoading = true
|
||||
// this.deleteLoading = true
|
||||
this.setLoading('deleteLoading', true);
|
||||
const data = await deleteEmail(params)
|
||||
if (data && data.code == 200) {
|
||||
this.$message({
|
||||
@@ -175,8 +179,8 @@ export default {
|
||||
this.fetchList(this.listParams)
|
||||
}
|
||||
|
||||
this.deleteLoading = false
|
||||
|
||||
this.setLoading('deleteLoading', false);
|
||||
|
||||
},
|
||||
|
||||
add(){
|
||||
|
||||
@@ -442,7 +442,7 @@
|
||||
<!-- 挖矿账号下矿工总览 -->
|
||||
<div class="Pool">
|
||||
<p class="hash">{{ $t(`apiFile.overviewOfMiners`) }}</p>
|
||||
<p class="Interface">Post /oapi/v1/account/miners_list</p>
|
||||
<p class="Interface">Post /oapi/v1/account/watch</p>
|
||||
<p class="hash">{{ $t(`apiFile.jurisdiction`) }} account</p>
|
||||
<p class="hash">{{ $t(`apiFile.parameter`) }}</p>
|
||||
<table border="1">
|
||||
@@ -797,7 +797,7 @@
|
||||
<!-- 指定矿机历史24h平均算力 -->
|
||||
<div class="Pool">
|
||||
<p class="hash">{{ $t(`apiFile.miningMachineHistory24h`) }}</p>
|
||||
<p class="Interface">Post /oapi/v1/miner/hashrate_history</p>
|
||||
<p class="Interface">Post /oapi/v1/miner/hashrate_history</p>
|
||||
<p class="hash">{{ $t(`apiFile.jurisdiction`) }} miner</p>
|
||||
<p class="hash">{{ $t(`apiFile.parameter`) }}</p>
|
||||
<table border="1">
|
||||
@@ -1371,7 +1371,7 @@
|
||||
<!-- 挖矿账号下矿工总览 -->
|
||||
<div class="Pool">
|
||||
<p class="hash">{{ $t(`apiFile.overviewOfMiners`) }}</p>
|
||||
<p class="Interface">Post /oapi/v1/account/miners_list</p>
|
||||
<p class="Interface">Post /oapi/v1/account/watch </p>
|
||||
<p class="hash">{{ $t(`apiFile.jurisdiction`) }} account</p>
|
||||
<p class="hash">{{ $t(`apiFile.parameter`) }}</p>
|
||||
<table border="1">
|
||||
@@ -1726,7 +1726,7 @@
|
||||
<!-- 指定矿机历史24h平均算力 -->
|
||||
<div class="Pool">
|
||||
<p class="hash">{{ $t(`apiFile.miningMachineHistory24h`) }}</p>
|
||||
<p class="Interface">Get /oapi/v1/miner/hashrate_history</p>
|
||||
<p class="Interface">Post /oapi/v1/miner/hashrate_history</p>
|
||||
<p class="hash">{{ $t(`apiFile.jurisdiction`) }} miner</p>
|
||||
<p class="hash">{{ $t(`apiFile.parameter`) }}</p>
|
||||
<table border="1">
|
||||
|
||||
@@ -6,7 +6,7 @@ import * as echarts from "echarts";
|
||||
import { Debounce, throttle } from "../../utils/publicMethods";
|
||||
|
||||
export default {
|
||||
|
||||
|
||||
data() {
|
||||
return {
|
||||
activeName: "second",
|
||||
@@ -759,7 +759,7 @@ export default {
|
||||
],
|
||||
FeeShow: true,
|
||||
lang: 'en',
|
||||
activeItemCoin:{
|
||||
activeItemCoin: {
|
||||
value: "nexa",
|
||||
label: "nexa",
|
||||
img: require("../../assets/img/currency-nexa.png"),
|
||||
@@ -781,19 +781,19 @@ export default {
|
||||
},
|
||||
activeItemCoin: {
|
||||
handler(newVal) {
|
||||
// 防止无限循环
|
||||
if (this.isInternalChange) {
|
||||
return;
|
||||
}
|
||||
this.handleActiveItemChange(newVal);
|
||||
// 防止无限循环
|
||||
if (this.isInternalChange) {
|
||||
return;
|
||||
}
|
||||
this.handleActiveItemChange(newVal);
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
|
||||
|
||||
|
||||
this.lang = this.$i18n.locale; // 初始化语言值
|
||||
this.$addStorageEvent(1, `activeItemCoin`, JSON.stringify(this.currencyList[0]))
|
||||
this.minerChartLoading = true
|
||||
@@ -832,6 +832,11 @@ export default {
|
||||
this.getCoinInfoData(this.params)
|
||||
this.getPoolPowerData(this.PowerParams)
|
||||
|
||||
// 注册需要在网络恢复后自动重新调用的方法
|
||||
this.registerRecoveryMethod('getCoinInfoData', this.params);
|
||||
this.registerRecoveryMethod('getPoolPowerData', this.PowerParams);
|
||||
this.registerRecoveryMethod('getBlockInfoData', this.BlockInfoParams);
|
||||
|
||||
this.$addStorageEvent(1, `currencyList`, JSON.stringify(this.currencyList))
|
||||
if (this.$refs.select) {
|
||||
this.$refs.select.$el.children[0].children[0].setAttribute('style', "background:url(https://test.m2pool.com/img/nexa.png) no-repeat 10PX;background-size: 20PX 20PX;color:#333;padding-left: 30PX;");
|
||||
@@ -844,9 +849,9 @@ export default {
|
||||
// let activeItemCoin =localStorage.getItem(`activeItemCoin`)
|
||||
// this.activeItemCoin=JSON.parse(activeItemCoin)
|
||||
window.addEventListener("setItem", () => {
|
||||
let value =localStorage.getItem(`activeItemCoin`)
|
||||
this.activeItemCoin=JSON.parse(value)
|
||||
|
||||
let value = localStorage.getItem(`activeItemCoin`)
|
||||
this.activeItemCoin = JSON.parse(value)
|
||||
|
||||
});
|
||||
|
||||
},
|
||||
@@ -866,7 +871,7 @@ export default {
|
||||
listEl.style.left = '-' + (leftMove - 360) + 'PX'
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
//初始化图表
|
||||
inCharts() {
|
||||
@@ -1047,15 +1052,15 @@ export default {
|
||||
let rejectRate = []
|
||||
let price = []
|
||||
chartData.forEach(item => {
|
||||
|
||||
|
||||
if (item.date.includes(`T`) && params.interval == `rt`) {
|
||||
|
||||
|
||||
item.date = `${item.date.split("T")[0]} ${item.date.split("T")[1].split(`.`)[0]}`
|
||||
} else if (item.date.includes(`T`) && params.interval == `1d`) {
|
||||
item.date = item.date.split("T")[0]
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
xData.push(item.date)
|
||||
pvData.push(Number(item.pv).toFixed(2))
|
||||
// rejectRate.push((item.rejectRate * 100).toFixed(2))
|
||||
@@ -1063,13 +1068,13 @@ export default {
|
||||
price.push(item.price)
|
||||
} else if (item.price < 1) {
|
||||
price.push(Number(item.price).toFixed(8))
|
||||
|
||||
|
||||
} else {
|
||||
price.push(Number(item.price).toFixed(2))
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
// this.maxValue = Math.max(...rejectRate);
|
||||
// let leftYMaxData = Math.max(...pvData);
|
||||
@@ -1082,13 +1087,13 @@ export default {
|
||||
this.inCharts()
|
||||
})
|
||||
|
||||
}catch{
|
||||
} catch {
|
||||
console.error('获取数据失败:', error);
|
||||
}finally {
|
||||
} finally {
|
||||
// 确保无论成功失败都设置loading为false
|
||||
this.setLoading('minerChartLoading', false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1221,37 +1226,11 @@ export default {
|
||||
|
||||
}, 200),
|
||||
|
||||
// async getBlockInfoData(params) {
|
||||
// this.reportBlockLoading = true
|
||||
// const data = await getBlockInfo(params)
|
||||
// if (data && data.code == 200) {
|
||||
// this.BlockShow = true
|
||||
// this.newBlockInfoData = []
|
||||
// this.BlockInfoData = data.rows
|
||||
// if (!this.BlockInfoData[0]) {
|
||||
// this.reportBlockLoading = false
|
||||
// return
|
||||
// }
|
||||
|
||||
|
||||
// this.BlockInfoData.forEach((item, index) => {
|
||||
// item.date = `${item.date.split("T")[0]} ${item.date.split("T")[1].split(`.`)[0]}`
|
||||
// if (index < 8) {
|
||||
// this.newBlockInfoData.push(item)
|
||||
// }
|
||||
// })
|
||||
|
||||
|
||||
|
||||
// } else {
|
||||
// this.BlockShow = false
|
||||
// }
|
||||
|
||||
// this.reportBlockLoading = false
|
||||
// },
|
||||
|
||||
|
||||
getBlockInfoData: Debounce(async function (params) {
|
||||
// this.reportBlockLoading = true
|
||||
try {
|
||||
// this.reportBlockLoading = true
|
||||
this.setLoading('reportBlockLoading', true);
|
||||
const data = await getBlockInfo(params)
|
||||
if (data && data.code == 200) {
|
||||
@@ -1259,7 +1238,8 @@ export default {
|
||||
this.newBlockInfoData = []
|
||||
this.BlockInfoData = data.rows
|
||||
if (!this.BlockInfoData[0]) {
|
||||
this.reportBlockLoading = false
|
||||
// this.reportBlockLoading = false
|
||||
this.setLoading('reportBlockLoading', false);
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1271,13 +1251,21 @@ export default {
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
this.BlockShow = false
|
||||
}
|
||||
this.setLoading('reportBlockLoading', false);
|
||||
// this.reportBlockLoading = false
|
||||
} catch (error) {
|
||||
console.error('获取区块信息失败:', error);
|
||||
this.BlockShow = false;
|
||||
}finally {
|
||||
// 确保在任何情况下都会重置 loading 状态
|
||||
this.setLoading('reportBlockLoading', false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1321,38 +1309,54 @@ export default {
|
||||
|
||||
switch (this.time) {
|
||||
case "day":
|
||||
// this.profit = result.toFixed(10)
|
||||
this.profit = result.toFixed(8)
|
||||
// this.profit = Math.floor(result * 1e10) / 1e10;
|
||||
this.profit = this.toFixedNoRound(result, 10);
|
||||
// this.profit = this.toFixedNoRound(result, 10);
|
||||
break;
|
||||
case "week":
|
||||
// this.profit = (result * 7).toFixed(10)
|
||||
this.profit = (result * 7).toFixed(8)
|
||||
// this.profit = Math.floor(result * 7 * 1e10) / 1e10;
|
||||
this.profit = this.toFixedNoRound(result * 7, 10);
|
||||
// this.profit = this.toFixedNoRound(result * 7, 10);
|
||||
break;
|
||||
case "month":
|
||||
// this.profit = (result * 30).toFixed(10)
|
||||
this.profit = (result * 30).toFixed(8)
|
||||
// this.profit = Math.floor(result * 30 * 1e10) / 1e10;
|
||||
this.profit = this.toFixedNoRound(result * 30, 10);
|
||||
// this.profit = this.toFixedNoRound(result * 30, 10);
|
||||
break;
|
||||
case "year":
|
||||
// this.profit = (result * 365).toFixed(10)
|
||||
this.profit = (result * 365).toFixed(8)
|
||||
// this.profit = Math.floor(result * 365 * 1e10) / 1e10;
|
||||
this.profit = this.toFixedNoRound(result * 365, 10);
|
||||
// this.profit = this.toFixedNoRound(result * 365, 10);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// 10000000000000000
|
||||
|
||||
const formatter = new Intl.NumberFormat("en-US", {
|
||||
minimumFractionDigits: 10, // 强制显示足够多的小数位
|
||||
const nexaFormatter = new Intl.NumberFormat("en-US", {
|
||||
minimumFractionDigits: 2, // 强制显示 2 位小数(不足补零)
|
||||
maximumFractionDigits: 2, // 可选:限制最多 2 位小数(避免多余位数)
|
||||
useGrouping: true, // 不使用千位分隔符(如 1,000)
|
||||
});
|
||||
this.profit = formatter.format(this.profit);
|
||||
|
||||
if (this.value == "nexa") {
|
||||
this.profit = nexaFormatter.format(this.profit);
|
||||
} else {
|
||||
const formatter = new Intl.NumberFormat("en-US", {
|
||||
minimumFractionDigits: 8, // 强制显示足够多的小数位
|
||||
useGrouping: true, // 不使用千位分隔符(如 1,000)
|
||||
});
|
||||
|
||||
|
||||
this.profit = formatter.format(this.profit);
|
||||
}
|
||||
|
||||
|
||||
// const formatter = new Intl.NumberFormat("en-US", {
|
||||
// minimumFractionDigits: 8, // 强制显示足够多的小数位
|
||||
// useGrouping: false, // 不使用千位分隔符(如 1,000)
|
||||
// });
|
||||
|
||||
|
||||
// this.profit = formatter.format(this.profit);
|
||||
|
||||
|
||||
},
|
||||
@@ -1417,7 +1421,7 @@ export default {
|
||||
this.fetchParam({ coin: this.value })
|
||||
|
||||
},
|
||||
handelJump(url) {
|
||||
handelJump(url) {
|
||||
|
||||
if (url === '/AccessMiningPool') {
|
||||
const coin = this.currencyList.find(item => item.value === this.params.coin);
|
||||
@@ -1425,16 +1429,16 @@ export default {
|
||||
let jumpName = coin.path.charAt(0).toUpperCase() + coin.path.slice(1) //name跳转 首字母大写
|
||||
// 使用 name 进行导航,避免重复的路由参数
|
||||
this.$router.push({
|
||||
name: jumpName,
|
||||
params: {
|
||||
lang: this.lang,
|
||||
coin: this.params.coin,
|
||||
imgUrl: this.currencyPath
|
||||
name: jumpName,
|
||||
params: {
|
||||
lang: this.lang,
|
||||
coin: this.params.coin,
|
||||
imgUrl: this.currencyPath
|
||||
|
||||
},
|
||||
replace: false // 保留历史记录,允许回退
|
||||
},
|
||||
replace: false // 保留历史记录,允许回退
|
||||
});
|
||||
|
||||
|
||||
} else {
|
||||
// 移除开头的斜杠,统一处理路径格式
|
||||
const cleanPath = url.startsWith('/') ? url.slice(1) : url;
|
||||
@@ -1493,29 +1497,29 @@ export default {
|
||||
// }, 1000),
|
||||
handleActiveItemChange(item) {
|
||||
if (!item) return;
|
||||
|
||||
|
||||
|
||||
|
||||
this.currency = item.label;
|
||||
this.currencyPath = item.imgUrl;
|
||||
this.params.coin = item.value;
|
||||
|
||||
console.log( this.params.coin , "item");
|
||||
console.log(this.params.coin, "item");
|
||||
this.BlockInfoParams.coin = item.value;
|
||||
this.itemActive = item.value;
|
||||
this.PowerParams.coin = item.value;
|
||||
|
||||
|
||||
// 调用相关数据更新方法
|
||||
this.getCoinInfoData(this.params);
|
||||
this.getBlockInfoData(this.BlockInfoParams);
|
||||
|
||||
|
||||
if (this.powerActive) {
|
||||
this.handelPower();
|
||||
this.handelPower();
|
||||
} else {
|
||||
this.handelMiner();
|
||||
this.handelMiner();
|
||||
}
|
||||
|
||||
|
||||
this.handelCoinLabel(item.value);
|
||||
},
|
||||
},
|
||||
|
||||
clickCurrency(item) {
|
||||
if (!item) return;
|
||||
@@ -1531,16 +1535,16 @@ export default {
|
||||
// this.PowerParams.coin = item.value
|
||||
// this.getCoinInfoData(this.params)
|
||||
// this.getBlockInfoData(this.BlockInfoParams)
|
||||
|
||||
|
||||
// 在下一个事件循环中重置标记
|
||||
this.$nextTick(() => {
|
||||
this.isInternalChange = false;
|
||||
});
|
||||
|
||||
|
||||
// 直接调用处理方法
|
||||
this.handleActiveItemChange(item);
|
||||
|
||||
|
||||
// 直接调用处理方法
|
||||
this.handleActiveItemChange(item);
|
||||
|
||||
},
|
||||
clickReportBlock() {
|
||||
this.$router.push({
|
||||
|
||||
@@ -375,7 +375,7 @@
|
||||
<div class="currencyDescription2">
|
||||
<section class="miningPoolBox">
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
||||
<div class="miningPoolLeft" v-loading="minerChartLoading">
|
||||
<div class="miningPoolLeft" v-loading="minerChartLoading" v-loading-recovery="{ loading: 'minerChartLoading', recovery: ['getPoolPowerData', 'fetchNetPower'] }">
|
||||
<div class="interval">
|
||||
<div class="chartBth">
|
||||
|
||||
@@ -603,7 +603,7 @@
|
||||
<el-row>
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
||||
<div class="reportBlock">
|
||||
<div class="reportBlockBox" v-loading="reportBlockLoading">
|
||||
<div class="reportBlockBox" v-loading="reportBlockLoading" v-loading-recovery="{ loading: 'reportBlockLoading', recovery: ['getBlockInfoData'] }">
|
||||
<div class="belowTable">
|
||||
<ul>
|
||||
<li class="table-title">
|
||||
|
||||
@@ -1345,7 +1345,14 @@ export default {
|
||||
this.getMinerListData(this.MinerListParams)
|
||||
this.getHistoryIncomeData(this.IncomeParams)
|
||||
this.getHistoryOutcomeData(this.OutcomeParams)
|
||||
|
||||
|
||||
|
||||
this.registerRecoveryMethod('getMinerAccountInfoData', this.params);
|
||||
this.registerRecoveryMethod('getMinerAccountPowerData', this.PowerParams);
|
||||
this.registerRecoveryMethod('getAccountPowerDistributionData', this.PowerDistribution);
|
||||
this.registerRecoveryMethod('getMinerListData', this.MinerListParams);
|
||||
this.registerRecoveryMethod('getHistoryIncomeData', this.IncomeParams);
|
||||
this.registerRecoveryMethod('getHistoryOutcomeData', this.OutcomeParams);
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -1400,11 +1407,12 @@ export default {
|
||||
// console.log(data,"获取币种信息");
|
||||
},
|
||||
async getMinerAccountPowerData(params) {
|
||||
this.powerChartLoading = true
|
||||
// this.powerChartLoading = true
|
||||
this.setLoading('powerChartLoading', true);
|
||||
const data = await getMinerAccountPower(params)
|
||||
|
||||
if (!data) {
|
||||
this.powerChartLoading = false
|
||||
this.setLoading('powerChartLoading', false);
|
||||
if (this.myChart) {
|
||||
this.myChart.dispose()//销毁图表实列
|
||||
}
|
||||
@@ -1437,13 +1445,13 @@ export default {
|
||||
this.option.series[1].data = rejectRate
|
||||
|
||||
this.inCharts()
|
||||
this.powerChartLoading = false
|
||||
this.setLoading('powerChartLoading', false);
|
||||
|
||||
|
||||
|
||||
},
|
||||
async getAccountPowerDistributionData(params) {
|
||||
this.barChartLoading = true
|
||||
this.setLoading('barChartLoading', true);
|
||||
const data = await getAccountPowerDistribution(params)
|
||||
let barData = data.data
|
||||
let xData = []
|
||||
@@ -1455,7 +1463,7 @@ export default {
|
||||
this.barOption.xAxis[0].data = xData
|
||||
this.barOption.series[0].data = barValueList
|
||||
this.barInCharts()
|
||||
this.barChartLoading = false
|
||||
this.setLoading('barChartLoading', false);
|
||||
},
|
||||
formatNumber(num) {//保留两位小数并补0
|
||||
const intPart = Math.floor(num);
|
||||
@@ -1463,7 +1471,7 @@ export default {
|
||||
return `${intPart}.${String(decimalPart).padStart(2, '0')}`;
|
||||
},
|
||||
async getMinerListData(params) {
|
||||
this.MinerListLoading = true
|
||||
this.setLoading('MinerListLoading', true);
|
||||
const data = await getMinerList(params)
|
||||
if (data && data.code == 200) {
|
||||
this.MinerListData = data.data
|
||||
@@ -1503,7 +1511,7 @@ export default {
|
||||
|
||||
}
|
||||
|
||||
this.MinerListLoading = false
|
||||
this.setLoading('MinerListLoading', false);
|
||||
|
||||
},
|
||||
|
||||
@@ -1562,11 +1570,11 @@ export default {
|
||||
// this.miniLoading=false
|
||||
// },
|
||||
getMinerPowerData:Debounce(async function(params){
|
||||
this.miniLoading=true
|
||||
this.setLoading('miniLoading', true);
|
||||
const data = await getMinerPower(params)
|
||||
|
||||
if (!data) {
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
return
|
||||
}
|
||||
let miniData = data.data
|
||||
@@ -1618,62 +1626,18 @@ export default {
|
||||
|
||||
|
||||
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
},200),
|
||||
//小图
|
||||
// async getMinerPowerOnLine(params) {
|
||||
// this.miniLoading=true
|
||||
// const data = await getMinerPower(params)
|
||||
|
||||
// if (!data) {
|
||||
// this.miniLoading=false
|
||||
// return
|
||||
// }
|
||||
// let miniData = data.data
|
||||
// let xData = []
|
||||
// let pv = []
|
||||
// let rejectRate = []
|
||||
|
||||
// miniData.forEach(item => {
|
||||
// if (item.date.includes(`T`)) {
|
||||
// xData.push(`${item.date.split("T")[0]} ${item.date.split("T")[1].split(".")[0]}` )
|
||||
|
||||
// } else {
|
||||
// xData.push(item.date)
|
||||
// }
|
||||
|
||||
// pv.push(item.pv.toFixed(2))
|
||||
// rejectRate.push((item.rejectRate * 100).toFixed(4))
|
||||
// })
|
||||
|
||||
|
||||
// this.onLineOption.xAxis.data = xData
|
||||
// this.onLineOption.series[0].data = pv
|
||||
// this.onLineOption.series[1].data = rejectRate
|
||||
// this.onLineOption.series[0].name= this.$t(`home.finallyPower`)
|
||||
// this.onLineOption.series[1].name= this.$t(`home.rejectionRate`)
|
||||
|
||||
// this.ids = `Small${this.miniId}`
|
||||
// this.miniChartOnLine = echarts.init(document.getElementById(this.ids))
|
||||
|
||||
// this.$nextTick(() => {
|
||||
// this.miniChartOnLine.setOption(this.onLineOption,true);
|
||||
// window.addEventListener("resize", () => {
|
||||
// if (this.miniChartOnLine) this.miniChartOnLine.resize();
|
||||
// });
|
||||
// });
|
||||
|
||||
|
||||
|
||||
// this.miniLoading=false
|
||||
// },
|
||||
getMinerPowerOnLine:Debounce(async function(params){
|
||||
|
||||
this.miniLoading=true
|
||||
this.setLoading('miniLoading', true);
|
||||
const data = await getMinerPower(params)
|
||||
|
||||
if (!data) {
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
return
|
||||
}
|
||||
let miniData = data.data
|
||||
@@ -1716,7 +1680,7 @@ export default {
|
||||
|
||||
|
||||
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
|
||||
|
||||
},200),
|
||||
@@ -1768,10 +1732,10 @@ export default {
|
||||
// this.miniLoading=false
|
||||
// },
|
||||
getMinerPowerOffLine:Debounce(async function(params){
|
||||
this.miniLoading=true
|
||||
this.setLoading('miniLoading', true);
|
||||
const data = await getMinerPower(params)
|
||||
if (!data) {
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
return
|
||||
}
|
||||
let miniData = data.data
|
||||
@@ -1815,7 +1779,7 @@ export default {
|
||||
|
||||
|
||||
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
|
||||
|
||||
},200),
|
||||
|
||||
@@ -96,17 +96,20 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
this.fetchApiList(this.listParams)
|
||||
this.registerRecoveryMethod('fetchApiList', this.listParams);
|
||||
|
||||
},
|
||||
methods: {
|
||||
async fetchApiKey(params) {
|
||||
this.ApiKeyLoading = true
|
||||
this.setLoading('ApiKeyLoading', true);
|
||||
const data = await getApiKey(params)
|
||||
if (data && data.code == 200) {
|
||||
this.fetchApiList(this.listParams)
|
||||
this.dialogVisible = false
|
||||
}
|
||||
|
||||
this.ApiKeyLoading = false
|
||||
this.setLoading('ApiKeyLoading', false);
|
||||
},
|
||||
async fetchApiList(params) {
|
||||
this.apiPageLoading = true
|
||||
@@ -115,7 +118,7 @@ export default {
|
||||
this.apiList = data.rows
|
||||
}
|
||||
|
||||
this.apiPageLoading = false
|
||||
this.setLoading('apiPageLoading', false);
|
||||
},
|
||||
async fetchApiInfo(params) {
|
||||
this.apiPageLoading = true
|
||||
@@ -127,7 +130,7 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
this.apiPageLoading = false
|
||||
this.setLoading('apiPageLoading', false);
|
||||
},
|
||||
async fetchUpdateAPI(params) {
|
||||
this.apiPageLoading = true
|
||||
@@ -137,7 +140,7 @@ export default {
|
||||
this.modifyDialogVisible =false
|
||||
}
|
||||
|
||||
this.apiPageLoading = false
|
||||
this.setLoading('apiPageLoading', false);
|
||||
},
|
||||
async fetchDelApi(params) {
|
||||
this.apiPageLoading = true
|
||||
@@ -149,7 +152,7 @@ export default {
|
||||
this.fetchApiList(this.listParams)
|
||||
}
|
||||
|
||||
this.apiPageLoading = false
|
||||
this.setLoading('apiPageLoading', false);
|
||||
},
|
||||
RequestApiKey() {
|
||||
this.dialogVisible = true
|
||||
|
||||
@@ -270,6 +270,9 @@ export default {
|
||||
|
||||
this.fetchAccountList()
|
||||
|
||||
this.registerRecoveryMethod('fetchIfBind', "");
|
||||
this.registerRecoveryMethod('fetchAccountList', "");
|
||||
|
||||
this.currencyList = JSON.parse(localStorage.getItem("currencyList"))
|
||||
window.addEventListener("setItem", () => {
|
||||
this.currencyList = JSON.parse(localStorage.getItem("currencyList"))
|
||||
@@ -284,7 +287,8 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
async fetchIfBind(params){
|
||||
this.securityLoading = true
|
||||
// this.securityLoading = true
|
||||
this.setLoading('securityLoading', true);
|
||||
const data = await getIfBind(params)
|
||||
if (data && data.code === 200) {
|
||||
if (data.data) {
|
||||
@@ -302,13 +306,14 @@ export default {
|
||||
this.dialogVerification=true
|
||||
}
|
||||
}
|
||||
this.securityLoading = false
|
||||
this.setLoading('securityLoading', false);
|
||||
},
|
||||
async fetchCheck(params){
|
||||
this.addMinerLoading =true
|
||||
// this.addMinerLoading =true
|
||||
this.setLoading('addMinerLoading', true);
|
||||
const data = await getCheck(params)
|
||||
if (!data) {
|
||||
this.addMinerLoading =false
|
||||
this.setLoading('addMinerLoading', false);
|
||||
|
||||
}
|
||||
if (data && data.code === 200) {
|
||||
@@ -320,20 +325,21 @@ export default {
|
||||
type: "error",
|
||||
showClose: true
|
||||
});
|
||||
this.addMinerLoading =false
|
||||
this.setLoading('addMinerLoading', false);
|
||||
}else if(data.code === 802){//钱包不可用
|
||||
this.$message({
|
||||
message: this.$t(`personal.invalidAddress`),
|
||||
type: "error",
|
||||
showClose: true
|
||||
});
|
||||
this.addMinerLoading =false
|
||||
this.setLoading('addMinerLoading', false);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
async fetchCheckBalance(params){
|
||||
this.confirmBindingLoading =true
|
||||
// this.confirmBindingLoading =true
|
||||
this.setLoading('confirmBindingLoading', true);
|
||||
const data = await getCheckBalance(params)
|
||||
if (data && data.data) {
|
||||
this.fetchWalletAddress(this.WalletAddressParams)
|
||||
@@ -344,7 +350,7 @@ export default {
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
this.confirmBindingLoading =false
|
||||
this.setLoading('confirmBindingLoading', false);
|
||||
},
|
||||
async fetchAccountGradeList(){
|
||||
const data = await getAccountGradeList()
|
||||
@@ -369,7 +375,8 @@ export default {
|
||||
}
|
||||
},
|
||||
async fetchMinerAccountBalance(params) {
|
||||
this.MiningLoading = true
|
||||
// this.MiningLoading = true
|
||||
this.setLoading('MiningLoading', true);
|
||||
const data = await getMinerAccountBalance(params)
|
||||
if (data && data.code == 200) {
|
||||
this.walletDialogVisible = true
|
||||
@@ -386,10 +393,11 @@ export default {
|
||||
this.paymentSettingsData.active = this.paymentSettingsData.active==`1` ? this.$t(`personal.no`) :this.$t(`personal.yes`)
|
||||
|
||||
this.paymentSettingsData.amount = this.paymentSettingsData.amount ? this.paymentSettingsData.amount : `0`
|
||||
this.MiningLoading = false
|
||||
this.setLoading('MiningLoading', false);
|
||||
},
|
||||
async fetchDelMinerAccount(params) {
|
||||
this.MiningLoading = true
|
||||
// this.MiningLoading = true
|
||||
this.setLoading('MiningLoading', true);
|
||||
const data = await getDelMinerAccount(params)
|
||||
|
||||
if (data && data.code == 200) {
|
||||
@@ -400,17 +408,18 @@ export default {
|
||||
|
||||
|
||||
}
|
||||
this.MiningLoading = false
|
||||
this.setLoading('MiningLoading', false);
|
||||
},
|
||||
async fetchAccountList(params) {
|
||||
this.MiningLoading = true
|
||||
// this.MiningLoading = true
|
||||
this.setLoading('MiningLoading', true);
|
||||
const data = await getAccountList(params)
|
||||
this.accountList = data.data
|
||||
console.log("请求成功,",data);
|
||||
this.newAccountList = this.accountList
|
||||
this.$addStorageEvent(1, `accountList`, JSON.stringify(this.accountList))
|
||||
|
||||
this.MiningLoading = false
|
||||
this.setLoading('MiningLoading', false);
|
||||
|
||||
},
|
||||
|
||||
@@ -431,7 +440,8 @@ export default {
|
||||
},
|
||||
//添加挖矿账户
|
||||
async fetchAddMinerAccount(params) {
|
||||
this.addMinerLoading =true
|
||||
// this.addMinerLoading =true
|
||||
this.setLoading('addMinerLoading', true);
|
||||
const data = await getAddMinerAccount(params)
|
||||
if (data && data.code == 200) {
|
||||
this.$message({
|
||||
@@ -451,7 +461,7 @@ export default {
|
||||
this.fetchAccountList()
|
||||
this.fetchAccountGradeList()
|
||||
|
||||
this.addMinerLoading =false
|
||||
this.setLoading('addMinerLoading', false);
|
||||
},
|
||||
handleCheckAllChange(val) {
|
||||
|
||||
|
||||
@@ -197,14 +197,16 @@ export default {
|
||||
}))
|
||||
}));
|
||||
|
||||
console.log( this.newMiningAccountList,"isrjiojfeo");
|
||||
|
||||
|
||||
|
||||
this.fetchUrlList(this.UrlListParams)
|
||||
this.registerRecoveryMethod('fetchUrlList', this.UrlListParams);
|
||||
},
|
||||
methods: {
|
||||
async fetchHtmlUrl(params){
|
||||
this.establishLoading = true
|
||||
// this.establishLoading = true
|
||||
this.setLoading('establishLoading', true);
|
||||
const data = await getHtmlUrl(params)
|
||||
|
||||
if (data && data.code == 200) {
|
||||
@@ -212,10 +214,11 @@ export default {
|
||||
this.dialogVisible=false
|
||||
}
|
||||
|
||||
this.establishLoading = false
|
||||
this.setLoading('establishLoading', false);
|
||||
},
|
||||
async fetchUrlList(params){
|
||||
this.UrlListLoading = true
|
||||
// this.UrlListLoading = true
|
||||
this.setLoading('UrlListLoading', true);
|
||||
const data = await getUrlList(params)
|
||||
console.log(data,666 );
|
||||
|
||||
@@ -223,7 +226,7 @@ export default {
|
||||
|
||||
this.TotalSize = data.total
|
||||
|
||||
this.UrlListLoading = false
|
||||
this.setLoading('UrlListLoading', false);
|
||||
},
|
||||
async fetchUrlInfo(params){
|
||||
const data = await getUrlInfo(params)
|
||||
@@ -239,7 +242,8 @@ export default {
|
||||
|
||||
},
|
||||
async fetchChangeUrlInfo(params){
|
||||
this.modifyLoading=true
|
||||
// this.modifyLoading=true
|
||||
this.setLoading('modifyLoading', true);
|
||||
const data = await getChangeUrlInfo(params)
|
||||
console.log(data);
|
||||
if (data && data.code == 200) {
|
||||
@@ -248,7 +252,7 @@ export default {
|
||||
console.log("修改成功");
|
||||
|
||||
}
|
||||
this.modifyLoading=false
|
||||
this.setLoading('modifyLoading', false);
|
||||
|
||||
},
|
||||
async fetchDelete(params){
|
||||
|
||||
@@ -155,13 +155,14 @@ export default {
|
||||
|
||||
this.lang = this.$i18n.locale; // 初始化语言值
|
||||
this.fetchIfBind()
|
||||
this.registerRecoveryMethod('fetchIfBind', "");
|
||||
if (this.$route.params.active) {
|
||||
this.handelVerification()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async fetchIfBind(params) {
|
||||
this.securityLoading = true
|
||||
this.setLoading('securityLoading', true);
|
||||
const data = await getIfBind(params)
|
||||
if (data && data.code === 200) {
|
||||
if (data.data) {
|
||||
@@ -170,10 +171,10 @@ export default {
|
||||
this.isItBound = false
|
||||
}
|
||||
}
|
||||
this.securityLoading = false
|
||||
this.setLoading('securityLoading', false);
|
||||
},
|
||||
async fetchBindInfo(params) {
|
||||
this.BindInfoLoading = true
|
||||
this.setLoading('BindInfoLoading', true);
|
||||
const data = await getBindInfo(params)
|
||||
console.log(data, "绑定信息");
|
||||
if (data && data.code === 200) {
|
||||
@@ -182,10 +183,10 @@ export default {
|
||||
this.dialogVisible = false
|
||||
}
|
||||
|
||||
this.BindInfoLoading = false
|
||||
this.setLoading('BindInfoLoading', false);
|
||||
},
|
||||
async fetchBindGoogle(params) {
|
||||
this.BindInfoLoading = true
|
||||
this.setLoading('BindInfoLoading', true);
|
||||
const data = await getBindGoogle(params)
|
||||
console.log(data, "绑定");
|
||||
if (data && data.code === 200) {
|
||||
@@ -203,7 +204,7 @@ export default {
|
||||
|
||||
|
||||
}
|
||||
this.BindInfoLoading = false
|
||||
this.setLoading('BindInfoLoading', false);
|
||||
},
|
||||
async fetchBindCode(params) {
|
||||
const data = await getBindCode(params)
|
||||
@@ -216,7 +217,7 @@ export default {
|
||||
}
|
||||
},
|
||||
async fetchResetPwd(params) {
|
||||
this.ResetPwdLoading = true
|
||||
this.setLoading('ResetPwdLoading', true);
|
||||
const data = await getUpdatePwd(params)
|
||||
if (data && data.code === 200) {
|
||||
this.$message({
|
||||
@@ -230,7 +231,7 @@ export default {
|
||||
localStorage.removeItem("token")
|
||||
this.$router.push(`/${lang}/login`);
|
||||
}
|
||||
this.ResetPwdLoading = false
|
||||
this.setLoading('ResetPwdLoading', false);
|
||||
},
|
||||
async fetchResetPwdCode(params) {
|
||||
const data = await getUpdatePwdCode(params)
|
||||
@@ -244,7 +245,7 @@ export default {
|
||||
|
||||
},
|
||||
async fetchCloseStepTwo(params) {
|
||||
this.closeLoading = true
|
||||
this.setLoading('closeLoading', true);
|
||||
const data = await getCloseStepTwo(params)
|
||||
if (data && data.code === 200) {
|
||||
this.$message({
|
||||
@@ -260,7 +261,7 @@ export default {
|
||||
this.closeParams[key] = ""
|
||||
}
|
||||
}
|
||||
this.closeLoading = false
|
||||
this.setLoading('closeLoading', false);
|
||||
},
|
||||
async fetchCloseCode(params) {
|
||||
const data = await getCloseCode(params)
|
||||
|
||||
@@ -1228,6 +1228,8 @@ export default {
|
||||
this.getMinerAccountPowerData(this.PowerParams)
|
||||
this.getAccountPowerDistributionData(this.PowerDistribution)
|
||||
|
||||
|
||||
|
||||
},
|
||||
"$i18n.locale":(val)=>{
|
||||
location.reload();//刷新页面 刷新echarts
|
||||
@@ -1269,6 +1271,12 @@ export default {
|
||||
this.getMinerListData(this.MinerListParams)
|
||||
this.getMinerAccountPowerData(this.PowerParams)
|
||||
this.getAccountPowerDistributionData(this.PowerDistribution)
|
||||
|
||||
|
||||
this.registerRecoveryMethod('getMinerListData', this.MinerListParams);
|
||||
this.registerRecoveryMethod('getMinerAccountPowerData', this.PowerParams);
|
||||
this.registerRecoveryMethod('getAccountPowerDistributionData', this.PowerDistribution);
|
||||
this.registerRecoveryMethod('fetchPageInfo', {key:this.params.key});
|
||||
|
||||
|
||||
},
|
||||
@@ -1320,7 +1328,7 @@ export default {
|
||||
},
|
||||
//返回权限 1矿工 2收益 3支付
|
||||
async fetchPageInfo(params){
|
||||
this.jurisdictionLoading = true
|
||||
this.setLoading('jurisdictionLoading', true);
|
||||
const data = await getPageInfo(params)
|
||||
console.log(data);
|
||||
if (data && data.code == 200) {
|
||||
@@ -1354,7 +1362,7 @@ export default {
|
||||
|
||||
}
|
||||
|
||||
this.jurisdictionLoading = false
|
||||
this.setLoading('jurisdictionLoading', false);
|
||||
},
|
||||
//获取当前挖矿账号信息(包含收益、余额)
|
||||
async getMinerAccountInfoData(params) {
|
||||
@@ -1362,11 +1370,11 @@ export default {
|
||||
this.MinerAccountData = data.data
|
||||
},
|
||||
async getMinerAccountPowerData(params) {
|
||||
this.powerChartLoading = true
|
||||
this.setLoading('powerChartLoading', true);
|
||||
const data = await getMinerAccountPower(params)
|
||||
|
||||
if (!data) {
|
||||
this.powerChartLoading = false
|
||||
this.setLoading('powerChartLoading', false);
|
||||
if (this.myChart) {
|
||||
this.myChart.dispose()//销毁图表实列
|
||||
}
|
||||
@@ -1399,13 +1407,13 @@ export default {
|
||||
this.option.series[1].data = rejectRate
|
||||
|
||||
this.inCharts()
|
||||
this.powerChartLoading = false
|
||||
this.setLoading('powerChartLoading', false);
|
||||
|
||||
|
||||
|
||||
},
|
||||
async getAccountPowerDistributionData(params) {
|
||||
this.barChartLoading = true
|
||||
this.setLoading('barChartLoading', true);
|
||||
const data = await getAccountPowerDistribution(params)
|
||||
let barData = data.data
|
||||
let xData = []
|
||||
@@ -1417,7 +1425,7 @@ export default {
|
||||
this.barOption.xAxis[0].data = xData
|
||||
this.barOption.series[0].data = barValueList
|
||||
this.barInCharts()
|
||||
this.barChartLoading = false
|
||||
this.setLoading('barChartLoading', false);
|
||||
},
|
||||
formatNumber(num) {//保留两位小数并补0
|
||||
const intPart = Math.floor(num);
|
||||
@@ -1425,7 +1433,7 @@ export default {
|
||||
return `${intPart}.${String(decimalPart).padStart(2, '0')}`;
|
||||
},
|
||||
async getMinerListData(params) {
|
||||
this.MinerListLoading = true
|
||||
this.setLoading('MinerListLoading', true);
|
||||
const data = await getMinerList(params)
|
||||
if (data && data.code == 200) {
|
||||
this.MinerListData = data.data
|
||||
@@ -1451,17 +1459,17 @@ export default {
|
||||
|
||||
}
|
||||
|
||||
this.MinerListLoading = false
|
||||
this.setLoading('MinerListLoading', false);
|
||||
|
||||
},
|
||||
|
||||
//小图
|
||||
async getMinerPowerData(params) {
|
||||
this.miniLoading=true
|
||||
this.setLoading('miniLoading', true);
|
||||
const data = await getMinerPower(params)
|
||||
|
||||
if (!data) {
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
return
|
||||
}
|
||||
let miniData = data.data
|
||||
@@ -1507,15 +1515,15 @@ export default {
|
||||
|
||||
|
||||
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
},
|
||||
//小图
|
||||
async getMinerPowerOnLine(params) {
|
||||
this.miniLoading=true
|
||||
this.setLoading('miniLoading', true);
|
||||
const data = await getMinerPower(params)
|
||||
|
||||
if (!data) {
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
return
|
||||
}
|
||||
let miniData = data.data
|
||||
@@ -1556,14 +1564,14 @@ export default {
|
||||
|
||||
|
||||
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
},
|
||||
//小图
|
||||
async getMinerPowerOffLine(params) {
|
||||
this.miniLoading=true
|
||||
this.setLoading('miniLoading', true);
|
||||
const data = await getMinerPower(params)
|
||||
if (!data) {
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
return
|
||||
}
|
||||
let miniData = data.data
|
||||
@@ -1605,7 +1613,7 @@ export default {
|
||||
|
||||
|
||||
|
||||
this.miniLoading=false
|
||||
this.setLoading('miniLoading', false);
|
||||
},
|
||||
async getHistoryIncomeData(params) {
|
||||
const data = await getHistoryIncome(params)
|
||||
|
||||
@@ -235,6 +235,10 @@ export default {
|
||||
|
||||
this.getLuckData(this.params)
|
||||
this.getBlockInfoData(this.BlockInfoParams)
|
||||
|
||||
this.registerRecoveryMethod('getLuckData', this.params);
|
||||
this.registerRecoveryMethod('getBlockInfoData', this.BlockInfoParams);
|
||||
|
||||
let value = localStorage.getItem("activeItemCoin")
|
||||
this.activeItemCoin = JSON.parse(value)
|
||||
this.currencyList = JSON.parse(localStorage.getItem("currencyList"))
|
||||
@@ -260,14 +264,14 @@ export default {
|
||||
// },
|
||||
|
||||
getLuckData: Debounce(async function (params) {
|
||||
this.LuckDataLoading = true
|
||||
this.setLoading('LuckDataLoading', true);
|
||||
const data = await getLuck(params)
|
||||
if (data && data.code == 200) {
|
||||
this.luckData = data.data
|
||||
}
|
||||
|
||||
|
||||
this.LuckDataLoading = false
|
||||
this.setLoading('LuckDataLoading', false);
|
||||
}, 200),
|
||||
// async getBlockInfoData(params) {
|
||||
// this.reportBlockLoading=true
|
||||
@@ -286,10 +290,10 @@ export default {
|
||||
// },
|
||||
getBlockInfoData: Debounce(async function (params) {
|
||||
|
||||
this.reportBlockLoading = true
|
||||
this.setLoading('reportBlockLoading', true);
|
||||
const data = await getBlockInfo(params)
|
||||
if (!data) {
|
||||
this.reportBlockLoading = false
|
||||
this.setLoading('reportBlockLoading', false);
|
||||
}
|
||||
this.totalSize = data.total
|
||||
this.BlockInfoData = data.rows
|
||||
@@ -298,7 +302,7 @@ export default {
|
||||
})
|
||||
// this.currentPage = 1
|
||||
// console.log(data,"获取币种信息");
|
||||
this.reportBlockLoading = false
|
||||
this.setLoading('reportBlockLoading', false);
|
||||
|
||||
}, 200),
|
||||
handleActiveItemChange(item) {
|
||||
@@ -314,6 +318,9 @@ export default {
|
||||
clickCurrency(item) {
|
||||
if (!item) return;
|
||||
// 设置标记,防止触发 watch
|
||||
|
||||
this.luckData={}
|
||||
|
||||
this.isInternalChange = true;
|
||||
this.activeItemCoin = item;
|
||||
this.$addStorageEvent(1, `activeItemCoin`, JSON.stringify(item))
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
</el-menu>
|
||||
</div>
|
||||
|
||||
<div class="luckyBox" >
|
||||
<div class="luckyBox" v-show="this.activeItemCoin.value != 'enx' && this.activeItemCoin.value != 'alph'">
|
||||
|
||||
<div class="luckyItem">
|
||||
<span class="title">{{$t(`home.lucky3`)}}</span>
|
||||
@@ -125,7 +125,8 @@
|
||||
</el-col>
|
||||
<!-- v-loading = "LuckDataLoading" -->
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
||||
<div class="luckyBox" >
|
||||
|
||||
<div class="luckyBox" v-show="this.activeItemCoin.value != 'enx' && this.activeItemCoin.value != 'alph'" >
|
||||
|
||||
<div class="luckyItem">
|
||||
<span class="title">{{$t(`home.lucky3`)}}</span>
|
||||
|
||||
@@ -167,6 +167,7 @@ export default {
|
||||
this.workOrderId = localStorage.getItem("workOrderId")
|
||||
if (this.workOrderId) {
|
||||
this.fetchTicketDetails({ id: this.workOrderId })
|
||||
this.registerRecoveryMethod('fetchTicketDetails', { id: this.workOrderId });
|
||||
}
|
||||
|
||||
// this.faultList = JSON.parse(localStorage.getItem('faultList') )
|
||||
|
||||
@@ -198,18 +198,22 @@ export default {
|
||||
case `all`:
|
||||
this.params.status = 0
|
||||
this.fetchRechargeRecord0(this.params)
|
||||
this.registerRecoveryMethod('fetchRechargeRecord0', this.params);
|
||||
break;
|
||||
case `pending`:
|
||||
this.params.status = 2
|
||||
this.fetchRechargeRecord2(this.params)
|
||||
this.registerRecoveryMethod('fetchRechargeRecord2', this.params);
|
||||
break;
|
||||
case `Finished`:
|
||||
this.params.status = 10
|
||||
this.fetchRechargeRecord10(this.params)
|
||||
this.registerRecoveryMethod('fetchRechargeRecord10', this.params);
|
||||
break;
|
||||
case `pendingProcessing`:
|
||||
this.params.status = 1
|
||||
this.fetchRechargeRecord1(this.params)
|
||||
this.registerRecoveryMethod('fetchRechargeRecord1', this.params);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -95,14 +95,17 @@ export default {
|
||||
case "pending":
|
||||
this.params.status = 1
|
||||
this.fetchPrivateConsume1(this.params)
|
||||
this.registerRecoveryMethod('fetchPrivateConsume1', this.params);
|
||||
break;
|
||||
case "success"://已完成工单
|
||||
this.params.status = 2
|
||||
this.fetchPrivateConsume2(this.params)
|
||||
this.registerRecoveryMethod('fetchPrivateConsume2', this.params);
|
||||
break;
|
||||
case "reply"://全部工单
|
||||
this.params.status = 0
|
||||
this.fetchPrivateConsume0(this.params)
|
||||
this.registerRecoveryMethod('fetchPrivateConsume0', this.params);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user