电脑端聊天客服系统完成

This commit is contained in:
yaoqin 2025-06-13 14:58:47 +08:00
parent ac85206085
commit e74f5b8d75
41 changed files with 4348 additions and 957 deletions

Binary file not shown.

View File

@ -1,7 +1,7 @@
<template> <template>
<div id="app"> <div id="app">
<router-view class="page" /> <router-view class="page" />
<!-- <ChatWidget v-if="!$route.path.includes('/customerService') && !$isMobile" /> --> <ChatWidget v-if="!$route.path.includes('/customerService') && !$isMobile" />
</div> </div>
</template> </template>
<script > <script >

File diff suppressed because it is too large Load Diff

View File

@ -89,6 +89,8 @@ export const ChatWidget_zh = {
serverLimitError:"服务器连接数已达上限,请稍后刷新重试", serverLimitError:"服务器连接数已达上限,请稍后刷新重试",
identityError:"用户身份设置失败,请刷新页面重试", identityError:"用户身份设置失败,请刷新页面重试",
emailError:"用户信息获取失败,请刷新页面重试", emailError:"用户信息获取失败,请刷新页面重试",
refreshPage:"刷新页面",
reconnectSuccess:"重新连接成功",
}, },
@ -186,6 +188,8 @@ export const ChatWidget_en = {
serverLimitError:"Connection limit reached, please try again later", serverLimitError:"Connection limit reached, please try again later",
identityError:"Failed to set user identity, please refresh page", identityError:"Failed to set user identity, please refresh page",
emailError:"Failed to get user information, please refresh page", emailError:"Failed to get user information, please refresh page",
refreshPage:"Refresh page",
reconnectSuccess:"Reconnect successfully",
} }

File diff suppressed because one or more lines are too long

View File

@ -4,6 +4,13 @@ import { Notification, MessageBox, Message } from 'element-ui'
import loadingManager from './loadingManager'; import loadingManager from './loadingManager';
import errorNotificationManager from './errorNotificationManager'; import errorNotificationManager from './errorNotificationManager';
const pendingRequestMap = new Map(); //处理Request aborted 错误
function getRequestKey(config) { //处理Request aborted 错误 生成唯一 key 的函数
const { url, method, params, data } = config;
return [url, method, JSON.stringify(params), JSON.stringify(data)].join('&');
}
// 创建axios实例 // 创建axios实例
const service = axios.create({ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
@ -143,9 +150,6 @@ window.addEventListener('online', () => {
}); });
}); });
// 使用错误提示管理器控制网络断开提示 // 使用错误提示管理器控制网络断开提示
window.addEventListener('offline', () => { window.addEventListener('offline', () => {
if (window.vm && window.vm.$message && errorNotificationManager.canShowError('networkOffline')) { if (window.vm && window.vm.$message && errorNotificationManager.canShowError('networkOffline')) {
@ -215,6 +219,22 @@ service.interceptors.request.use(config => {
config.params = {}; config.params = {};
config.url = url; config.url = url;
} }
// 生成请求唯一key 处理Request aborted 错误
const requestKey = getRequestKey(config);
// 如果有相同请求,先取消 处理Request aborted 错误
if (pendingRequestMap.has(requestKey)) {
const cancel = pendingRequestMap.get(requestKey);
cancel(); // 取消上一次请求
pendingRequestMap.delete(requestKey);
}
// 创建新的CancelToken 处理Request aborted 错误
config.cancelToken = new axios.CancelToken(cancel => {
pendingRequestMap.set(requestKey, cancel);
});
return config return config
}, error => { }, error => {
Promise.reject(error) Promise.reject(error)
@ -222,6 +242,10 @@ service.interceptors.request.use(config => {
// 响应拦截器 // 响应拦截器
service.interceptors.response.use(res => { service.interceptors.response.use(res => {
// 请求完成后移除
const requestKey = getRequestKey(res.config);
pendingRequestMap.delete(requestKey);
// 未设置状态码则默认成功状态 // 未设置状态码则默认成功状态
const code = res.data.code || 200; const code = res.data.code || 200;
// 获取错误信息 // 获取错误信息
@ -284,8 +308,15 @@ service.interceptors.response.use(res => {
}, },
error => { error => {
if (error.message && error.message.includes('canceled') || error.message.includes('Request aborted')) {
// 主动取消的请求,直接忽略,不提示
return Promise.reject(error);
}
// 请求异常也要移除 处理Request aborted 错误
if (error.config) {
const requestKey = getRequestKey(error.config);
pendingRequestMap.delete(requestKey);
}
let { message } = error; let { message } = error;

View File

@ -89,13 +89,13 @@
<p>{{ $t(`ServiceTerms.clauseTermination2`) }}</p> <p>{{ $t(`ServiceTerms.clauseTermination2`) }}</p>
</div> </div>
</section> </section>
<section class="clauseBox"> <!-- <section class="clauseBox">
<h5>{{ $t(`ServiceTerms.title11`) }}</h5> <h5>{{ $t(`ServiceTerms.title11`) }}</h5>
<div class="textBox"> <div class="textBox">
<p>{{ $t(`ServiceTerms.clauseLaw1`) }}</p> <p>{{ $t(`ServiceTerms.clauseLaw1`) }}</p>
<p>{{ $t(`ServiceTerms.clauseLaw2`) }}</p> <p>{{ $t(`ServiceTerms.clauseLaw2`) }}</p>
</div> </div>
</section> </section> -->
</section> </section>
@ -189,13 +189,13 @@
<p>{{ $t(`ServiceTerms.clauseTermination2`) }}</p> <p>{{ $t(`ServiceTerms.clauseTermination2`) }}</p>
</div> </div>
</section> </section>
<section class="clauseBox"> <!-- <section class="clauseBox">
<h3>{{ $t(`ServiceTerms.title11`) }}</h3> <h3>{{ $t(`ServiceTerms.title11`) }}</h3>
<div class="textBox"> <div class="textBox">
<p>{{ $t(`ServiceTerms.clauseLaw1`) }}</p> <p>{{ $t(`ServiceTerms.clauseLaw1`) }}</p>
<p>{{ $t(`ServiceTerms.clauseLaw2`) }}</p> <p>{{ $t(`ServiceTerms.clauseLaw2`) }}</p>
</div> </div>
</section> </section> -->
</section> </section>

File diff suppressed because it is too large Load Diff

View File

@ -276,9 +276,9 @@ export default {
name: "GH/s", name: "GH/s",
nameTextStyle: { nameTextStyle: {
padding: [0, 0, 0, -40], padding: [0, 0, 0, -40],
} },
// axisLabel: { axisLabel: {
// formatter: function (value) { formatter: function (value) {
// let data // let data
// if (value > 10000000) { // if (value > 10000000) {
// data = `${(value / 10000000)} KW` // data = `${(value / 10000000)} KW`
@ -287,9 +287,9 @@ export default {
// } else if (value / 10000) { // } else if (value / 10000) {
// data = `${(value / 10000)} W` // data = `${(value / 10000)} W`
// } // }
// return data return value
// } }
// } }
}, },
{ {
position: "right", position: "right",
@ -834,6 +834,7 @@ export default {
const formatter = yAxis.axisLabel.formatter; const formatter = yAxis.axisLabel.formatter;
const formattedValue = formatter(maxValue); // 格式化最大值 const formattedValue = formatter(maxValue); // 格式化最大值
// 创建一个临时 DOM 元素计算宽度 // 创建一个临时 DOM 元素计算宽度
const tempDiv = document.createElement('div'); const tempDiv = document.createElement('div');
tempDiv.style.position = 'absolute'; tempDiv.style.position = 'absolute';
@ -847,11 +848,30 @@ export default {
// 动态设置 grid.left加上安全边距 // 动态设置 grid.left加上安全边距
const safeMargin = 20; const safeMargin = 20;
this.option.grid.left = labelWidth + safeMargin + 'px'; this.option.grid.left = labelWidth + safeMargin + 'px';
// this.$nextTick(
// // 更新图表
// this.inCharts()
// )
// ------------全网算力图---------------
//
const yAxis2 = this.minerOption.yAxis[0]; // 第一个 Y 轴
const maxValue2 = Math.max(...this.minerOption.series[0].data); // 获取数据最大值
const formatter2 = yAxis2.axisLabel.formatter;
const formattedValue2 = formatter2(maxValue2); // 格式化最大值
// 创建一个临时 DOM 元素计算宽度
const tempDiv2 = document.createElement('div');
tempDiv2.style.position = 'absolute';
tempDiv2.style.visibility = 'hidden';
tempDiv2.style.fontSize = '12px'; // 与 axisLabel.fontSize 一致
tempDiv2.innerText = formattedValue2;
document.body.appendChild(tempDiv2);
const labelWidth2 = tempDiv2.offsetWidth;
document.body.removeChild(tempDiv2);
// 动态设置 grid.left加上安全边距
const safeMargin2 = 20;
this.minerOption.grid.left = labelWidth2 + safeMargin2 + 'px';
} }
@ -888,6 +908,30 @@ export default {
methods: { methods: {
handelOptionYAxis(option){
const yAxis = option.yAxis[0]; // 第一个 Y 轴
const maxValue = Math.max(...option.series[0].data); // 获取数据最大值
const formatter = yAxis.axisLabel.formatter;
const formattedValue = formatter(maxValue); // 格式化最大值
// 创建一个临时 DOM 元素计算宽度
const tempDiv = document.createElement('div');
tempDiv.style.position = 'absolute';
tempDiv.style.visibility = 'hidden';
tempDiv.style.fontSize = '12px'; // 与 axisLabel.fontSize 一致
tempDiv.innerText = formattedValue;
document.body.appendChild(tempDiv);
const labelWidth = tempDiv.offsetWidth;
document.body.removeChild(tempDiv);
// 动态设置 grid.left加上安全边距
const safeMargin = 20;
option.grid.left = labelWidth + safeMargin + 'px';
return option
},
slideLeft() { slideLeft() {
const allLength = this.currencyList.length * 120 const allLength = this.currencyList.length * 120
const boxLength = document.getElementById('list-box').clientWidth const boxLength = document.getElementById('list-box').clientWidth
@ -940,7 +984,7 @@ export default {
this.MinerChart = echarts.init(document.getElementById("minerChart")); this.MinerChart = echarts.init(document.getElementById("minerChart"));
} }
this.minerOption= this.handelOptionYAxis(this.minerOption) // Y轴文字显示动态调整grid.left
this.minerOption.series[0].name = this.$t(`home.networkPower`) this.minerOption.series[0].name = this.$t(`home.networkPower`)
this.minerOption.series[1].name = this.$t(`home.currencyPrice`) this.minerOption.series[1].name = this.$t(`home.currencyPrice`)
this.MinerChart.setOption(this.minerOption); this.MinerChart.setOption(this.minerOption);

View File

@ -214,6 +214,7 @@ import {
import { encryption } from "../../utils/fun"; import { encryption } from "../../utils/fun";
import { getAccountList } from "../../api/personalCenter"; import { getAccountList } from "../../api/personalCenter";
export default { export default {
data() { data() {
return { return {
@ -372,6 +373,11 @@ export default {
JSON.stringify(data.data.access_token) JSON.stringify(data.data.access_token)
); );
//
await new Promise(resolve => setTimeout(resolve, 50));
//
this.$bus.$emit('user-logged-in'); //
this.fetchAccountList(); this.fetchAccountList();
this.fetchAccountGradeList(); this.fetchAccountGradeList();
this.fetchJurisdiction(); this.fetchJurisdiction();

View File

@ -1,6 +1,7 @@
import { getCheck,getAddBalace, getAddMinerAccount, getAccountList, getDelMinerAccount, getMinerAccountBalance, getCheckAccount,getCheckBalance,getIfBind } from "../../../api/personalCenter" import { getCheck,getAddBalace, getAddMinerAccount, getAccountList, getDelMinerAccount, getMinerAccountBalance, getCheckAccount,getCheckBalance,getIfBind } from "../../../api/personalCenter"
import {getAccountGradeList } from "../../../api/login" import {getAccountGradeList } from "../../../api/login"
import { Debounce,throttle }from "../../../utils/publicMethods";
export default { export default {
data() { data() {
@ -542,13 +543,7 @@ export default {
} }
}, },
confirmAdd() { confirmAdd:Debounce(function(){
// this.accountList.push({
// account: this.params.account,
// miningPool: this.params.miningPool,
// currency: this.params.miningPool,
// remarks: this.params.remarks,
// })
if (!this.AccountParams.ma) { if (!this.AccountParams.ma) {
this.$message({ this.$message({
message: this.$t(`personal.accountNumber`), message: this.$t(`personal.accountNumber`),
@ -600,12 +595,66 @@ export default {
} }
this.fetchCheck({ coin: this.AccountParams.coin, ma: this.AccountParams.ma,balance: this.AccountParams.balance}) this.fetchCheck({ coin: this.AccountParams.coin, ma: this.AccountParams.ma,balance: this.AccountParams.balance})
// this.fetchCheckAccount({ coin: this.AccountParams.coin, ma: this.AccountParams.ma }) },200),
// confirmAdd() {
// if (!this.AccountParams.ma) {
// this.$message({
// message: this.$t(`personal.accountNumber`),
// type: "error",
// showClose: true
// });
// return
// }
// if (!this.AccountParams.balance) {
// this.$message({
// message: this.$t(`personal.inputWalletAddress`),
// type: "error",
// showClose: true
// });
// return
// }
// if (!this.AccountParams.coin) {
// this.$message({
// message:this.$t(`personal.selectCurrency`),
// type: "error",
// showClose: true
// });
// return
// }
// if (!this.AccountParams.code && this.isItBound) {
// this.$message({
// showClose: true,
// message: this.$t(`personal.gCode`),
// type: 'error'
// });
// return
// }
// // 账户只能输入字母、数字、下划线且不能以数字开头长度不小于4位不大于24位
// const regexAccount=/^[a-zA-Z_][a-zA-Z0-9_]{3,23}$/
// const PasswordIsValid = regexAccount.test(this.AccountParams.ma);
// if (!PasswordIsValid) {
// // 如果输入不符合要求,可以根据具体需求给出错误提示或进行其他处理
// this.$message({
// message: this.$t(`personal.accountFormat`),
// type: "error",
// showClose: true
// });
// return;
// }
// this.fetchCheck({ coin: this.AccountParams.coin, ma: this.AccountParams.ma,balance: this.AccountParams.balance})
// // this.fetchCheckAccount({ coin: this.AccountParams.coin, ma: this.AccountParams.ma })
}, // },
handelAddClose(){ handelAddClose(){
for (let key in this.AccountParams) { for (let key in this.AccountParams) {
this.AccountParams[key] = ""; this.AccountParams[key] = "";

View File

@ -247,7 +247,7 @@
import { getResetPwd, getResetPwdCode } from "../../api/login"; import { getResetPwd, getResetPwdCode } from "../../api/login";
import { encryption } from "../../utils/fun"; import { encryption } from "../../utils/fun";
import { getEmailIfBind } from "../../api/personalCenter"; import { getEmailIfBind } from "../../api/personalCenter";
import { Debounce,throttle }from "../../utils/publicMethods";
export default { export default {
data() { data() {
return { return {
@ -419,6 +419,10 @@ export default {
type: "success", type: "success",
showClose: true, showClose: true,
}); });
for (const key in this.loginForm) {//
this.loginForm[key] = "";
}
this.$router.push(`/${this.lang}/login`); this.$router.push(`/${this.lang}/login`);
} }
}, },
@ -521,7 +525,8 @@ export default {
} }
}); });
}, },
submitForm() {
submitForm:Debounce(function(){
this.$refs.ruleForm.validate((valid) => { this.$refs.ruleForm.validate((valid) => {
if (valid) { if (valid) {
// //
@ -596,7 +601,83 @@ export default {
this.fetchResetPwd(form); this.fetchResetPwd(form);
} }
}); });
}, },200),
// submitForm() {
// this.$refs.ruleForm.validate((valid) => {
// if (valid) {
// //
// this.loginForm.userName = this.loginForm.email.trim();
// this.loginForm.password = this.loginForm.password.trim();
// this.loginForm.newPassword = this.loginForm.newPassword.trim();
// if (this.loginForm.password !== this.loginForm.newPassword) {
// this.$message({
// message: this.$t(`user.confirmPassword2`),
// type: "error",
// customClass: "messageClass",
// showClose: true,
// });
// return;
// }
// //
// const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/;
// let isMailbox = emailRegex.test(this.loginForm.email);
// if (!isMailbox) {
// this.$message({
// message: this.$t(`user.emailVerification`),
// type: "error",
// customClass: "messageClass",
// showClose: true,
// });
// return;
// //1.3<=<=16; 使线
// // const regex = /^[a-zA-Z][a-zA-Z0-9_]{2,15}$/; //
// // const isValid = regex.test(this.loginForm.email);
// // if (!isValid) {
// // //
// // this.$message({
// // message: this.$t(`user.accountReminder`),
// // type: "error",
// // customClass: "messageClass",
// // showClose: true
// // });
// // return;
// // }
// }
// // 8<=<=32 @#%&*
// const regexPassword =
// /^(?!.*[\u4e00-\u9fa5])(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,32}$/; //
// const PasswordIsValid = regexPassword.test(this.loginForm.password);
// if (!PasswordIsValid) {
// //
// this.$message({
// message: this.$t(`user.PasswordReminder`),
// type: "error",
// showClose: true,
// });
// return;
// }
// // ,gCode: this.loginForm.gCode,
// let obj = {
// email: this.loginForm.email,
// password: this.loginForm.password,
// resetPwdCode: this.loginForm.resetPwdCode,
// };
// //
// // const form = { ...this.loginForm };
// // form.password = encryption(this.loginForm.password);
// const form = { ...obj };
// form.password = encryption(obj.password);
// this.fetchResetPwd(form);
// }
// });
// },
handleClick() { handleClick() {
this.$router.push(`/${this.lang}`); this.$router.push(`/${this.lang}`);
}, },

View File

@ -103,11 +103,21 @@ export default {
data: this.FormDatas, data: this.FormDatas,
}).then(res => { }).then(res => {
console.log(res,"文件返回"); console.log(res,"文件返回");
if (res.status == 200 && res.data.code != 200) {
this.$message.error(res.data.msg);
return
}
this.ruleForm.files = res.data.data.id this.ruleForm.files = res.data.data.id
// if (this.ruleForm.files) {//成功拿到返回ID if (this.ruleForm.files) {//成功拿到返回ID
// this.fetchSubmitWork(this.ruleForm) this.fetchSubmitWork(this.ruleForm)
// } }
}) })
} else { } else {

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -1 +1 @@
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><meta name=google-site-verification content=pKAZogQ0NQ6L4j9-V58WJMjm7zYCFwkJXSJzWu9UDM8><meta name=robots content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"><meta name=googlebot content="index, follow"><meta name=googlebot-news content="index, follow"><meta name=bingbot content="index, follow"><link rel=alternate hreflang=zh href=https://m2pool.com/zh><link rel=alternate hreflang=en href=https://m2pool.com/en><link rel=alternate hreflang=x-default href=https://m2pool.com/en><meta property=og:title content="M2pool - Stable leading high-yield mining pool"><meta property=og:description content="M2Pool provides professional mining services, supporting multiple cryptocurrency mining"><meta property=og:url content=https://m2pool.com/en><meta property=og:site_name content=M2Pool><meta property=og:type content=website><meta property=og:image content=https://m2pool.com/logo.png><link rel=icon href=/favicon.ico><link rel=stylesheet href=//at.alicdn.com/t/c/font_4582735_7i8wfzc0art.css><title>M2pool - Stable leading high-yield mining pool</title><meta name=keywords content="M2Pool, cryptocurrency mining pool,Entropyx(enx),entropyx, bitcoin mining, DGB mining, mining pool service, 加密货币矿池, 比特币挖矿, DGB挖矿"><meta name=description content="M2Pool provides professional mining services, supporting multiple cryptocurrency mining, including nexa, grs, mona, dgb, rxd, enx"><meta name=format-detection content="telephone=no"><meta name=apple-mobile-web-app-capable content=yes><script defer src=/js/chunk-vendors-945ce2fe.648a91a9.js></script><script defer src=/js/chunk-vendors-aacc2dbb.d317c558.js></script><script defer src=/js/chunk-vendors-bc050c32.3f2f14d2.js></script><script defer src=/js/chunk-vendors-3003db77.d0b93d36.js></script><script defer src=/js/chunk-vendors-9d134daf.bb668c99.js></script><script defer src=/js/chunk-vendors-439af1fa.48a48f35.js></script><script defer src=/js/chunk-vendors-5c533fba.b9c00e08.js></script><script defer src=/js/chunk-vendors-96cecd74.a7d9b845.js></script><script defer src=/js/chunk-vendors-c2f7d60e.3710fdc2.js></script><script defer src=/js/chunk-vendors-89d5c698.2190b4ca.js></script><script defer src=/js/chunk-vendors-377fed06.159de137.js></script><script defer src=/js/chunk-vendors-5a805870.4cfc0ae8.js></script><script defer src=/js/chunk-vendors-cf2e0a28.c6e99da0.js></script><script defer src=/js/app-42f9d7e6.8aa0cd9f.js></script><script defer src=/js/app-5c551db8.6973b329.js></script><script defer src=/js/app-01dc9ae1.e746f05c.js></script><script defer src=/js/app-8e0489d9.fc698aa0.js></script><script defer src=/js/app-72600b29.eb14747d.js></script><script defer src=/js/app-f035d474.4fade95e.js></script><script defer src=/js/app-113c6c50.c73554a4.js></script><link href=/css/chunk-vendors-5c533fba.6f97509c.css rel=stylesheet><link href=/css/app-42f9d7e6.48b4c830.css rel=stylesheet><link href=/css/app-01dc9ae1.04da7d85.css rel=stylesheet><link href=/css/app-8e0489d9.4f99dab4.css rel=stylesheet><link href=/css/app-72600b29.9a75824f.css rel=stylesheet><link href=/css/app-f035d474.0348646a.css rel=stylesheet><link href=/css/app-113c6c50.729eb983.css rel=stylesheet></head><body><div id=app></div></body></html> <!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><meta name=google-site-verification content=pKAZogQ0NQ6L4j9-V58WJMjm7zYCFwkJXSJzWu9UDM8><meta name=robots content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"><meta name=googlebot content="index, follow"><meta name=googlebot-news content="index, follow"><meta name=bingbot content="index, follow"><link rel=alternate hreflang=zh href=https://m2pool.com/zh><link rel=alternate hreflang=en href=https://m2pool.com/en><link rel=alternate hreflang=x-default href=https://m2pool.com/en><meta property=og:title content="M2pool - Stable leading high-yield mining pool"><meta property=og:description content="M2Pool provides professional mining services, supporting multiple cryptocurrency mining"><meta property=og:url content=https://m2pool.com/en><meta property=og:site_name content=M2Pool><meta property=og:type content=website><meta property=og:image content=https://m2pool.com/logo.png><link rel=icon href=/favicon.ico><link rel=stylesheet href=//at.alicdn.com/t/c/font_4582735_7i8wfzc0art.css><title>M2pool - Stable leading high-yield mining pool</title><meta name=keywords content="M2Pool, cryptocurrency mining pool,Entropyx(enx),entropyx, bitcoin mining, DGB mining, mining pool service, 加密货币矿池, 比特币挖矿, DGB挖矿"><meta name=description content="M2Pool provides professional mining services, supporting multiple cryptocurrency mining, including nexa, grs, mona, dgb, rxd, enx"><meta name=format-detection content="telephone=no"><meta name=apple-mobile-web-app-capable content=yes><script defer src=/js/chunk-vendors-945ce2fe.648a91a9.js></script><script defer src=/js/chunk-vendors-aacc2dbb.d317c558.js></script><script defer src=/js/chunk-vendors-bc050c32.3f2f14d2.js></script><script defer src=/js/chunk-vendors-3003db77.d0b93d36.js></script><script defer src=/js/chunk-vendors-9d134daf.bb668c99.js></script><script defer src=/js/chunk-vendors-439af1fa.48a48f35.js></script><script defer src=/js/chunk-vendors-5c533fba.b9c00e08.js></script><script defer src=/js/chunk-vendors-96cecd74.a7d9b845.js></script><script defer src=/js/chunk-vendors-c2f7d60e.3710fdc2.js></script><script defer src=/js/chunk-vendors-89d5c698.2190b4ca.js></script><script defer src=/js/chunk-vendors-377fed06.159de137.js></script><script defer src=/js/chunk-vendors-5a805870.4cfc0ae8.js></script><script defer src=/js/chunk-vendors-cf2e0a28.c6e99da0.js></script><script defer src=/js/app-42f9d7e6.9eb6b4eb.js></script><script defer src=/js/app-d363ae0c.ec582e15.js></script><script defer src=/js/app-5c551db8.aa772a92.js></script><script defer src=/js/app-01dc9ae1.e746f05c.js></script><script defer src=/js/app-8e0489d9.cbdab613.js></script><script defer src=/js/app-72600b29.a3b71b37.js></script><script defer src=/js/app-f035d474.92e1d288.js></script><script defer src=/js/app-113c6c50.56b97e4e.js></script><link href=/css/chunk-vendors-5c533fba.6f97509c.css rel=stylesheet><link href=/css/app-189e7968.0fe23a85.css rel=stylesheet><link href=/css/app-01dc9ae1.04da7d85.css rel=stylesheet><link href=/css/app-8e0489d9.2416bb84.css rel=stylesheet><link href=/css/app-72600b29.0c194743.css rel=stylesheet><link href=/css/app-f035d474.0348646a.css rel=stylesheet><link href=/css/app-113c6c50.dfa1d227.css rel=stylesheet></head><body><div id=app></div></body></html>

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://m2pool.com/en</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>daily</changefreq><priority>1.0</priority></url><url><loc>https://m2pool.com/en/dataDisplay</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>https://m2pool.com/en/ServiceTerms</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url><url><loc>https://m2pool.com/en/apiFile</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/rate</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/nexaAccess</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/grsAccess</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/monaAccess</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/dgbsAccess</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/dgbqAccess</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/dgboAccess</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/rxdAccess</loc><lastmod>2025-06-06T06:37:26.048Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url></urlset> <?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://m2pool.com/en</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>daily</changefreq><priority>1.0</priority></url><url><loc>https://m2pool.com/en/dataDisplay</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>https://m2pool.com/en/ServiceTerms</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url><url><loc>https://m2pool.com/en/apiFile</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/rate</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/nexaAccess</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/grsAccess</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/monaAccess</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/dgbsAccess</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/dgbqAccess</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/dgboAccess</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/en/AccessMiningPool/rxdAccess</loc><lastmod>2025-06-13T06:54:37.634Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url></urlset>

Binary file not shown.

View File

@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://m2pool.com/zh</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/dataDisplay</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/ServiceTerms</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/apiFile</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/rate</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/nexaAccess</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/grsAccess</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/monaAccess</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/dgbsAccess</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/dgbqAccess</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/dgboAccess</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/rxdAccess</loc><lastmod>2025-06-06T06:37:26.039Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url></urlset> <?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://m2pool.com/zh</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/dataDisplay</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/ServiceTerms</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/apiFile</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/rate</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/nexaAccess</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/grsAccess</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/monaAccess</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/dgbsAccess</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/dgbqAccess</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/dgboAccess</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://m2pool.com/zh/AccessMiningPool/rxdAccess</loc><lastmod>2025-06-13T06:54:37.623Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url></urlset>

Binary file not shown.