|
@ -2,7 +2,13 @@ |
|
|
// 导入 |
|
|
// 导入 |
|
|
import { ref, computed, onMounted, watch, nextTick, onUnmounted, h } from "vue"; |
|
|
import { ref, computed, onMounted, watch, nextTick, onUnmounted, h } from "vue"; |
|
|
import { setHeight } from "../utils/setHeight"; |
|
|
import { setHeight } from "../utils/setHeight"; |
|
|
import { getUserCountAPI } from "../api/AIxiaocaishen"; |
|
|
|
|
|
|
|
|
import { |
|
|
|
|
|
getUserCountAPI, |
|
|
|
|
|
showExchangeAPI, |
|
|
|
|
|
godExchangeAPI, |
|
|
|
|
|
exchangeAPI, |
|
|
|
|
|
getGoldCoinAPI, |
|
|
|
|
|
} from "../api/AIxiaocaishen"; |
|
|
import { ElMessage } from "element-plus"; |
|
|
import { ElMessage } from "element-plus"; |
|
|
import AIchat from "./AIchat.vue"; |
|
|
import AIchat from "./AIchat.vue"; |
|
|
import AIfind from "./AIfind.vue"; |
|
|
import AIfind from "./AIfind.vue"; |
|
@ -45,7 +51,7 @@ const aiEmotionRef = ref(null); |
|
|
// 获取历史记录组件的 ref |
|
|
// 获取历史记录组件的 ref |
|
|
const historyRecordRef = ref(null); |
|
|
const historyRecordRef = ref(null); |
|
|
// import { useUserStore } from "../store/userPessionCode.js"; |
|
|
// import { useUserStore } from "../store/userPessionCode.js"; |
|
|
const { getQueryVariable, setActiveTabIndex } = useDataStore(); |
|
|
|
|
|
|
|
|
const { getQueryVariable, setActiveTabIndex, getUserInfo } = useDataStore(); |
|
|
const dataStore = useDataStore(); |
|
|
const dataStore = useDataStore(); |
|
|
const chatStore = useChatStore(); |
|
|
const chatStore = useChatStore(); |
|
|
// 变量 |
|
|
// 变量 |
|
@ -348,17 +354,6 @@ const showFeedback = () => { |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
// 点击剩余次数会弹出的弹窗 |
|
|
|
|
|
// 新增一个 ref 来控制弹窗的显示与隐藏 |
|
|
|
|
|
const dialogVisible = ref(false); |
|
|
|
|
|
// 获取次数 |
|
|
|
|
|
const showCount = () => { |
|
|
|
|
|
console.log("显示剩余次数"); |
|
|
|
|
|
// 显示弹窗 |
|
|
|
|
|
// dialogVisible.value = true; |
|
|
|
|
|
console.log("dialogVisible 的值:", dialogVisible.value); // 添加日志确认 |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// 保证发送消息时,滚动屏在底部 |
|
|
// 保证发送消息时,滚动屏在底部 |
|
|
|
|
|
|
|
|
const tabContentAIchat = ref(null); |
|
|
const tabContentAIchat = ref(null); |
|
@ -370,12 +365,14 @@ const aiEmotionHeightObserver = ref(null); |
|
|
const isAiEmotionAutoScrollEnabled = ref(false); |
|
|
const isAiEmotionAutoScrollEnabled = ref(false); |
|
|
const isAiEmotionUserScrolling = ref(false); // 用户是否正在手动滚动 |
|
|
const isAiEmotionUserScrolling = ref(false); // 用户是否正在手动滚动 |
|
|
const aiEmotionScrollTimer = ref(null); // 滚动检测定时器 |
|
|
const aiEmotionScrollTimer = ref(null); // 滚动检测定时器 |
|
|
|
|
|
const isChartInteracting = ref(false); // 图表是否正在交互 |
|
|
|
|
|
const chartInteractionTimer = ref(null); // 图表交互检测定时器 |
|
|
|
|
|
|
|
|
// 获取当前活动页面的滚动容器 |
|
|
// 获取当前活动页面的滚动容器 |
|
|
const getCurrentScrollContainer = () => { |
|
|
const getCurrentScrollContainer = () => { |
|
|
if (activeTab.value === 'AIchat') { |
|
|
|
|
|
|
|
|
if (activeTab.value === "AIchat") { |
|
|
return tabContentAIchat.value; |
|
|
return tabContentAIchat.value; |
|
|
} else if (activeTab.value === 'AiEmotion') { |
|
|
|
|
|
|
|
|
} else if (activeTab.value === "AiEmotion") { |
|
|
return tabContentAiEmotion.value; |
|
|
return tabContentAiEmotion.value; |
|
|
} |
|
|
} |
|
|
return null; |
|
|
return null; |
|
@ -406,7 +403,12 @@ const throttledSmoothScrollToBottom = _.throttle(smoothScrollToBottom, 300, { |
|
|
|
|
|
|
|
|
// AiEmotion页面自动滚动到底部的防抖函数 |
|
|
// AiEmotion页面自动滚动到底部的防抖函数 |
|
|
const debouncedAiEmotionScrollToBottom = _.debounce(() => { |
|
|
const debouncedAiEmotionScrollToBottom = _.debounce(() => { |
|
|
if (activeTab.value === 'AiEmotion' && isAiEmotionAutoScrollEnabled.value && !isAiEmotionUserScrolling.value) { |
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
|
activeTab.value === "AiEmotion" && |
|
|
|
|
|
isAiEmotionAutoScrollEnabled.value && |
|
|
|
|
|
!isAiEmotionUserScrolling.value && |
|
|
|
|
|
!isChartInteracting.value |
|
|
|
|
|
) { |
|
|
const container = tabContentAiEmotion.value; |
|
|
const container = tabContentAiEmotion.value; |
|
|
if (container) { |
|
|
if (container) { |
|
|
container.scrollTop = container.scrollHeight - container.offsetHeight; |
|
|
container.scrollTop = container.scrollHeight - container.offsetHeight; |
|
@ -423,7 +425,11 @@ const startAiEmotionHeightObserver = () => { |
|
|
|
|
|
|
|
|
// 创建ResizeObserver监听页面内容变化 |
|
|
// 创建ResizeObserver监听页面内容变化 |
|
|
aiEmotionHeightObserver.value = new ResizeObserver((entries) => { |
|
|
aiEmotionHeightObserver.value = new ResizeObserver((entries) => { |
|
|
if (isAiEmotionAutoScrollEnabled.value && activeTab.value === 'AiEmotion') { |
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
|
isAiEmotionAutoScrollEnabled.value && |
|
|
|
|
|
activeTab.value === "AiEmotion" && |
|
|
|
|
|
!isChartInteracting.value |
|
|
|
|
|
) { |
|
|
debouncedAiEmotionScrollToBottom(); |
|
|
debouncedAiEmotionScrollToBottom(); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
@ -454,7 +460,12 @@ const startAiEmotionHeightObserver = () => { |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
if (shouldScroll && isAiEmotionAutoScrollEnabled.value && activeTab.value === 'AiEmotion') { |
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
|
shouldScroll && |
|
|
|
|
|
isAiEmotionAutoScrollEnabled.value && |
|
|
|
|
|
activeTab.value === "AiEmotion" && |
|
|
|
|
|
!isChartInteracting.value |
|
|
|
|
|
) { |
|
|
debouncedAiEmotionScrollToBottom(); |
|
|
debouncedAiEmotionScrollToBottom(); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
@ -475,7 +486,9 @@ const startAiEmotionHeightObserver = () => { |
|
|
|
|
|
|
|
|
// 为AiEmotion页面的滚动容器添加滚动事件监听器 |
|
|
// 为AiEmotion页面的滚动容器添加滚动事件监听器 |
|
|
if (aiEmotionContainer) { |
|
|
if (aiEmotionContainer) { |
|
|
aiEmotionContainer.addEventListener('scroll', handleAiEmotionUserScroll, { passive: true }); |
|
|
|
|
|
|
|
|
aiEmotionContainer.addEventListener("scroll", handleAiEmotionUserScroll, { |
|
|
|
|
|
passive: true, |
|
|
|
|
|
}); |
|
|
// 保存滚动事件监听器引用以便清理 |
|
|
// 保存滚动事件监听器引用以便清理 |
|
|
aiEmotionHeightObserver.value.scrollListener = handleAiEmotionUserScroll; |
|
|
aiEmotionHeightObserver.value.scrollListener = handleAiEmotionUserScroll; |
|
|
} |
|
|
} |
|
@ -500,9 +513,37 @@ const handleAiEmotionUserScroll = () => { |
|
|
// }, 2000); |
|
|
// }, 2000); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// 图表交互状态管理 |
|
|
|
|
|
const handleChartInteractionStart = () => { |
|
|
|
|
|
console.log("图表交互开始,临时禁用自动滚动"); |
|
|
|
|
|
isChartInteracting.value = true; |
|
|
|
|
|
|
|
|
|
|
|
// 清除之前的定时器 |
|
|
|
|
|
if (chartInteractionTimer.value) { |
|
|
|
|
|
clearTimeout(chartInteractionTimer.value); |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
const handleChartInteractionEnd = () => { |
|
|
|
|
|
// 清除之前的定时器 |
|
|
|
|
|
if (chartInteractionTimer.value) { |
|
|
|
|
|
clearTimeout(chartInteractionTimer.value); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 设置定时器,1秒后恢复自动滚动 |
|
|
|
|
|
chartInteractionTimer.value = setTimeout(() => { |
|
|
|
|
|
isChartInteracting.value = false; |
|
|
|
|
|
console.log("图表交互结束,恢复自动滚动"); |
|
|
|
|
|
}, 1000); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// 暴露图表交互管理函数给全局使用 |
|
|
|
|
|
window.handleChartInteractionStart = handleChartInteractionStart; |
|
|
|
|
|
window.handleChartInteractionEnd = handleChartInteractionEnd; |
|
|
|
|
|
|
|
|
// 处理AiEmotion页面的滚动请求 |
|
|
// 处理AiEmotion页面的滚动请求 |
|
|
const handleAiEmotionScrollToBottom = () => { |
|
|
const handleAiEmotionScrollToBottom = () => { |
|
|
if (activeTab.value === 'AiEmotion') { |
|
|
|
|
|
|
|
|
if (activeTab.value === "AiEmotion") { |
|
|
const container = tabContentAiEmotion.value; |
|
|
const container = tabContentAiEmotion.value; |
|
|
if (container) { |
|
|
if (container) { |
|
|
// 使用nextTick确保DOM已更新 |
|
|
// 使用nextTick确保DOM已更新 |
|
@ -536,8 +577,14 @@ const stopAiEmotionHeightObserver = () => { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 清理滚动事件监听器 |
|
|
// 清理滚动事件监听器 |
|
|
if (aiEmotionHeightObserver.value.scrollListener && tabContentAiEmotion.value) { |
|
|
|
|
|
tabContentAiEmotion.value.removeEventListener('scroll', aiEmotionHeightObserver.value.scrollListener); |
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
|
aiEmotionHeightObserver.value.scrollListener && |
|
|
|
|
|
tabContentAiEmotion.value |
|
|
|
|
|
) { |
|
|
|
|
|
tabContentAiEmotion.value.removeEventListener( |
|
|
|
|
|
"scroll", |
|
|
|
|
|
aiEmotionHeightObserver.value.scrollListener |
|
|
|
|
|
); |
|
|
aiEmotionHeightObserver.value.scrollListener = null; |
|
|
aiEmotionHeightObserver.value.scrollListener = null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -807,7 +854,8 @@ const touchmoveHandler = (e) => { |
|
|
} |
|
|
} |
|
|
// 判断触摸目标是否在当前活动页面的可滚动区域内 |
|
|
// 判断触摸目标是否在当前活动页面的可滚动区域内 |
|
|
const currentContainer = getCurrentScrollContainer(); |
|
|
const currentContainer = getCurrentScrollContainer(); |
|
|
const isScrollableArea = currentContainer && currentContainer.contains(e.target); |
|
|
|
|
|
|
|
|
const isScrollableArea = |
|
|
|
|
|
currentContainer && currentContainer.contains(e.target); |
|
|
|
|
|
|
|
|
// 如果不在可滚动区域,则阻止滚动 |
|
|
// 如果不在可滚动区域,则阻止滚动 |
|
|
if (!isScrollableArea) { |
|
|
if (!isScrollableArea) { |
|
@ -875,12 +923,14 @@ const backToHome = () => { |
|
|
if (env == "development" || env == "test") { |
|
|
if (env == "development" || env == "test") { |
|
|
window.parent.location.href = |
|
|
window.parent.location.href = |
|
|
"http://121.89.234.155:8807/hljw/homepage?menu=999999991"; |
|
|
"http://121.89.234.155:8807/hljw/homepage?menu=999999991"; |
|
|
} else if (env == "product") { |
|
|
|
|
|
window.parent.location.href = |
|
|
|
|
|
"https://web.homilychart.com/product/hljw/homepage?menu=999999991"; |
|
|
|
|
|
} else if (env == "production") { |
|
|
|
|
|
window.parent.location.href = |
|
|
|
|
|
"https://web.homilychart.com/hljw/homepage?menu=999999991"; |
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
window.parent.postMessage( |
|
|
|
|
|
{ |
|
|
|
|
|
type: "NAVIGATE_TO_HOMEPAGE", |
|
|
|
|
|
menu: "999999991", |
|
|
|
|
|
}, |
|
|
|
|
|
"*" |
|
|
|
|
|
); |
|
|
} |
|
|
} |
|
|
// window.parent.location.href = window.parent.document.referrer |
|
|
// window.parent.location.href = window.parent.document.referrer |
|
|
} |
|
|
} |
|
@ -888,11 +938,14 @@ const backToHome = () => { |
|
|
|
|
|
|
|
|
// 8.18金币兑换Token start |
|
|
// 8.18金币兑换Token start |
|
|
const userInfo = ref({ |
|
|
const userInfo = ref({ |
|
|
username: "HomilyLink", |
|
|
|
|
|
jwcode: "90042088", |
|
|
|
|
|
img: " https://d31zlh4on95l9h.cloudfront.net/images/403ef762dd2f335df3b0c9e3fe488375.png", |
|
|
|
|
|
|
|
|
nickname: "", |
|
|
|
|
|
img: "", |
|
|
|
|
|
jwcode: "", |
|
|
|
|
|
}); |
|
|
|
|
|
const changeRule = ref({ |
|
|
|
|
|
gold: 1, |
|
|
|
|
|
token: 1, |
|
|
}); |
|
|
}); |
|
|
const changeRule = ref("1金币=1Token"); |
|
|
|
|
|
const changeLevelList = ref([ |
|
|
const changeLevelList = ref([ |
|
|
{ position: 10, calculatedPosition: 10 }, |
|
|
{ position: 10, calculatedPosition: 10 }, |
|
|
{ position: 20, calculatedPosition: 20 }, |
|
|
{ position: 20, calculatedPosition: 20 }, |
|
@ -905,12 +958,59 @@ const changeLevelList = ref([ |
|
|
const activeLevel = ref( |
|
|
const activeLevel = ref( |
|
|
changeLevelList.value[0] || { position: 10, calculatedPosition: 10 } |
|
|
changeLevelList.value[0] || { position: 10, calculatedPosition: 10 } |
|
|
); |
|
|
); |
|
|
const gold = ref(100); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const gold = ref(90); |
|
|
|
|
|
// 点击剩余次数会弹出的弹窗 |
|
|
|
|
|
// 新增一个 ref 来控制弹窗的显示与隐藏 |
|
|
|
|
|
const dialogVisible = ref(false); |
|
|
const rechargeDialogVisible = ref(false); |
|
|
const rechargeDialogVisible = ref(false); |
|
|
const confirmDialogVisible = ref(false); |
|
|
const confirmDialogVisible = ref(false); |
|
|
const changeSuccessDialogVisible = ref(false); |
|
|
const changeSuccessDialogVisible = ref(false); |
|
|
|
|
|
|
|
|
|
|
|
// 图片加载错误处理 |
|
|
|
|
|
const handleImageError = (event) => { |
|
|
|
|
|
console.error("图片加载失败:", event.target.src); |
|
|
|
|
|
// 可以设置默认图片或重试逻辑 |
|
|
|
|
|
event.target.src = |
|
|
|
|
|
"https://cdn.legu168.com/jtzy/Product/pcjingwang/images/userimg.png"; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// 获取次数 |
|
|
|
|
|
const showCount = async () => { |
|
|
|
|
|
try { |
|
|
|
|
|
if ( |
|
|
|
|
|
!dataStore.userInfo.img || |
|
|
|
|
|
!dataStore.userInfo.nickname || |
|
|
|
|
|
!dataStore.userInfo.jwcode |
|
|
|
|
|
) { |
|
|
|
|
|
console.log("缺少用户信息,调用方法"); |
|
|
|
|
|
await getUserInfo(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
userInfo.value.nickname = dataStore.userInfo.nickname; |
|
|
|
|
|
userInfo.value.img = dataStore.userInfo.img; |
|
|
|
|
|
userInfo.value.jwcode = dataStore.userInfo.jwcode; |
|
|
|
|
|
console.log("userInfo", userInfo.value); |
|
|
|
|
|
const [res, res2] = await Promise.all([ |
|
|
|
|
|
showExchangeAPI(), |
|
|
|
|
|
getGoldCoinAPI({ |
|
|
|
|
|
token: String(localStorage.getItem("localToken")), |
|
|
|
|
|
}), |
|
|
|
|
|
]); |
|
|
|
|
|
changeLevelList.value = res.data; |
|
|
|
|
|
|
|
|
|
|
|
activeLevel.value = changeLevelList.value[0]; |
|
|
|
|
|
|
|
|
|
|
|
changeRule.value.token = res.data[0].ratio; |
|
|
|
|
|
gold.value = res2.data.total; |
|
|
|
|
|
|
|
|
|
|
|
// 显示弹窗 |
|
|
|
|
|
dialogVisible.value = true; |
|
|
|
|
|
console.log("dialogVisible 的值:", dialogVisible.value); // 添加日志确认 |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
console.error("获取兑换列表出错", e); |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
const chooseLevel = (item) => { |
|
|
const chooseLevel = (item) => { |
|
|
activeLevel.value = item; |
|
|
activeLevel.value = item; |
|
|
}; |
|
|
}; |
|
@ -925,37 +1025,65 @@ const changeToken = () => { |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
const goRecharge = () => { |
|
|
const goRecharge = () => { |
|
|
|
|
|
console.log("执行前往充值方法"); |
|
|
|
|
|
sessionStorage.setItem("rechargeFlag", "1"); |
|
|
|
|
|
sessionStorage.setItem("activeLevel", JSON.stringify(activeLevel.value)); |
|
|
|
|
|
|
|
|
if (isMobile.value) { |
|
|
if (isMobile.value) { |
|
|
console.log("用户是移动端"); |
|
|
console.log("用户是移动端"); |
|
|
|
|
|
|
|
|
|
|
|
uni.postMessage({ |
|
|
|
|
|
data: { |
|
|
|
|
|
val: { |
|
|
|
|
|
name: "JWopenView", |
|
|
|
|
|
extra: { |
|
|
|
|
|
data: { |
|
|
|
|
|
type: 4, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
}); |
|
|
} else { |
|
|
} else { |
|
|
console.log("用户是pc端"); |
|
|
console.log("用户是pc端"); |
|
|
const env = import.meta.env.VITE_ENV; |
|
|
const env = import.meta.env.VITE_ENV; |
|
|
console.log("当前的环境为:", env); |
|
|
console.log("当前的环境为:", env); |
|
|
if (env == "development" || env == "test") { |
|
|
if (env == "development" || env == "test") { |
|
|
window.parent.location.href = |
|
|
window.parent.location.href = |
|
|
"http://192.168.1.24:8080/user/myGold?token=" + |
|
|
|
|
|
localStorage.getItem("localToken") + |
|
|
|
|
|
"&where=xiaocaishen&successUrl=http://192.168.1.5:3000/aixiaocaishen/homePage"; |
|
|
|
|
|
} else if (env == "product") { |
|
|
|
|
|
// window.parent.location.href = |
|
|
|
|
|
// 'https://web.homilychart.com/product/hljw/homepage?menu=999999991' |
|
|
|
|
|
} else if (env == "production") { |
|
|
|
|
|
// window.parent.location.href = 'https://web.homilychart.com/hljw/homepage?menu=999999991' |
|
|
|
|
|
|
|
|
"http://121.89.234.155:8807/user/myGold?token=" + |
|
|
|
|
|
encodeURIComponent(localStorage.getItem("localToken")) + |
|
|
|
|
|
"&where=xiaocaishen&successUrl=https://hwjb.homilychart.com/aixiaocaishen/homePage"; |
|
|
|
|
|
// "&where=xiaocaishen&successUrl=http://192.168.1.5:3000/aixiaocaishen/homePage"; |
|
|
|
|
|
} else { |
|
|
|
|
|
window.parent.location.href = |
|
|
|
|
|
"https://web.homilychart.com/user/myGold?token=" + |
|
|
|
|
|
encodeURIComponent(localStorage.getItem("localToken")) + |
|
|
|
|
|
"&where=xiaocaishen&successUrl=https://mp.homilychart.com/aixiaocaishen/homePage"; |
|
|
} |
|
|
} |
|
|
// window.parent.location.href = window.parent.document.referrer |
|
|
// window.parent.location.href = window.parent.document.referrer |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
const goChange = () => { |
|
|
|
|
|
|
|
|
const goChange = async () => { |
|
|
|
|
|
try { |
|
|
|
|
|
await exchangeAPI({ |
|
|
|
|
|
token: String(localStorage.getItem("localToken")), |
|
|
|
|
|
num: activeLevel.value.position, |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
confirmDialogVisible.value = false; |
|
|
confirmDialogVisible.value = false; |
|
|
dialogVisible.value = false; |
|
|
dialogVisible.value = false; |
|
|
changeSuccessDialogVisible.value = true; |
|
|
changeSuccessDialogVisible.value = true; |
|
|
setTimeout(() => { |
|
|
setTimeout(() => { |
|
|
changeSuccessDialogVisible.value = false; |
|
|
changeSuccessDialogVisible.value = false; |
|
|
}, 3000); |
|
|
|
|
|
|
|
|
}, 2000); |
|
|
|
|
|
|
|
|
|
|
|
// 刷新次数 |
|
|
|
|
|
await chatStore.getUserCount(); |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
console.error("兑换失败", e); |
|
|
|
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
// 8.18金币兑换Token end |
|
|
// 8.18金币兑换Token end |
|
|
|
|
|
|
|
|
onMounted(async () => { |
|
|
onMounted(async () => { |
|
@ -984,12 +1112,39 @@ onMounted(async () => { |
|
|
// 添加原生事件监听器 |
|
|
// 添加原生事件监听器 |
|
|
window.addEventListener("resize", throttledJudgeDevice); |
|
|
window.addEventListener("resize", throttledJudgeDevice); |
|
|
|
|
|
|
|
|
if (getQueryVariable("successType") == "success") { |
|
|
|
|
|
dialogVisible.value = true; |
|
|
|
|
|
window.parent.location.href = window.parent.location.href.replace( |
|
|
|
|
|
"successType=success", |
|
|
|
|
|
"" |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
window.receiveUniAppMessage = async function (messageData) { |
|
|
|
|
|
console.log("收到 uni-app 消息:", messageData); |
|
|
|
|
|
|
|
|
|
|
|
// 根据消息类型进行不同处理 |
|
|
|
|
|
switch (messageData.type) { |
|
|
|
|
|
case "paymentSuccess": |
|
|
|
|
|
// 处理支付成功消息 |
|
|
|
|
|
const [res1, res2] = await Promise.all([ |
|
|
|
|
|
godExchangeAPI({ state: 1 }), |
|
|
|
|
|
getGoldCoinAPI({ token: String(localStorage.getItem("localToken")) }), |
|
|
|
|
|
]); |
|
|
|
|
|
gold.value = res2.data.total; |
|
|
|
|
|
rechargeDialogVisible.value = false; |
|
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
default: |
|
|
|
|
|
console.log("未知消息类型:", messageData.type); |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
|
sessionStorage.getItem("rechargeFlag") == "1" && |
|
|
|
|
|
getQueryVariable("successType") == "success" |
|
|
|
|
|
) { |
|
|
|
|
|
await godExchangeAPI({ state: 1 }); |
|
|
|
|
|
await showCount(); |
|
|
|
|
|
activeLevel.value = |
|
|
|
|
|
JSON.parse(sessionStorage.getItem("activeLevel")) || |
|
|
|
|
|
changeLevelList.value[0]; |
|
|
|
|
|
console.log("activeLevel", activeLevel.value); |
|
|
|
|
|
|
|
|
|
|
|
sessionStorage.removeItem("activeLevel"); |
|
|
|
|
|
sessionStorage.setItem("rechargeFlag", "0"); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
@ -1001,6 +1156,19 @@ onUnmounted(() => { |
|
|
} |
|
|
} |
|
|
// 清理AiEmotion页面的高度监听器 |
|
|
// 清理AiEmotion页面的高度监听器 |
|
|
stopAiEmotionHeightObserver(); |
|
|
stopAiEmotionHeightObserver(); |
|
|
|
|
|
|
|
|
|
|
|
delete window.receiveUniAppMessage; |
|
|
|
|
|
|
|
|
|
|
|
// 清理图表交互相关的定时器和全局函数 |
|
|
|
|
|
if (chartInteractionTimer.value) { |
|
|
|
|
|
clearTimeout(chartInteractionTimer.value); |
|
|
|
|
|
} |
|
|
|
|
|
if (window.handleChartInteractionStart) { |
|
|
|
|
|
delete window.handleChartInteractionStart; |
|
|
|
|
|
} |
|
|
|
|
|
if (window.handleChartInteractionEnd) { |
|
|
|
|
|
delete window.handleChartInteractionEnd; |
|
|
|
|
|
} |
|
|
}); |
|
|
}); |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
@ -1055,7 +1223,7 @@ onUnmounted(() => { |
|
|
</div> |
|
|
</div> |
|
|
<div class="backToHomeBtn" @click="backToHome()"> |
|
|
<div class="backToHomeBtn" @click="backToHome()"> |
|
|
<img |
|
|
<img |
|
|
src="https://d31zlh4on95l9h.cloudfront.net/images/d8b388e461423f79087ddbe016002217.png" |
|
|
|
|
|
|
|
|
src="https://d31zlh4on95l9h.cloudfront.net/images/9cbc5b2eb2327bd04d015c19d8c3f1f9.png" |
|
|
alt="返回首页" |
|
|
alt="返回首页" |
|
|
class="backImg" |
|
|
class="backImg" |
|
|
/> |
|
|
/> |
|
@ -1101,11 +1269,10 @@ onUnmounted(() => { |
|
|
<div class="pc-count-number">{{ UserCount }}</div> |
|
|
<div class="pc-count-number">{{ UserCount }}</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="pc-clickGetCount">点击获取Token</div> |
|
|
<div class="pc-clickGetCount">点击获取Token</div> |
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
<div class="pc-backToHomeBtn" @click="backToHome()"> |
|
|
<div class="pc-backToHomeBtn" @click="backToHome()"> |
|
|
<img |
|
|
<img |
|
|
src="https://d31zlh4on95l9h.cloudfront.net/images/d8b388e461423f79087ddbe016002217.png" |
|
|
|
|
|
|
|
|
src="https://d31zlh4on95l9h.cloudfront.net/images/9cbc5b2eb2327bd04d015c19d8c3f1f9.png" |
|
|
alt="返回首页" |
|
|
alt="返回首页" |
|
|
class="pc-backImg" |
|
|
class="pc-backImg" |
|
|
/> |
|
|
/> |
|
@ -1263,7 +1430,7 @@ onUnmounted(() => { |
|
|
</div> |
|
|
</div> |
|
|
<div class="backToHomeBtn" @click="backToHome()"> |
|
|
<div class="backToHomeBtn" @click="backToHome()"> |
|
|
<img |
|
|
<img |
|
|
src="https://d31zlh4on95l9h.cloudfront.net/images/d8b388e461423f79087ddbe016002217.png" |
|
|
|
|
|
|
|
|
src="https://d31zlh4on95l9h.cloudfront.net/images/9cbc5b2eb2327bd04d015c19d8c3f1f9.png" |
|
|
alt="返回首页" |
|
|
alt="返回首页" |
|
|
class="backImg" |
|
|
class="backImg" |
|
|
/> |
|
|
/> |
|
@ -1289,19 +1456,26 @@ onUnmounted(() => { |
|
|
</el-container> |
|
|
</el-container> |
|
|
<!-- 弹窗 --> |
|
|
<!-- 弹窗 --> |
|
|
<!-- 新增弹窗组件 --> |
|
|
<!-- 新增弹窗组件 --> |
|
|
<el-dialog v-model="dialogVisible" :width="isMobile ? '80%' : '60%'"> |
|
|
|
|
|
|
|
|
<el-dialog v-if="!isMobile" v-model="dialogVisible" width="48%"> |
|
|
<!-- 中间内容部分 --> |
|
|
<!-- 中间内容部分 --> |
|
|
<div class="changeMsg"> |
|
|
<div class="changeMsg"> |
|
|
<div class="changeInfo"> |
|
|
<div class="changeInfo"> |
|
|
<div class="changeImg"> |
|
|
<div class="changeImg"> |
|
|
<img :src="userInfo.img" alt="头像" class="changeImgClass" /> |
|
|
|
|
|
|
|
|
<img |
|
|
|
|
|
:src="userInfo.img" |
|
|
|
|
|
alt="头像" |
|
|
|
|
|
class="changeImgClass" |
|
|
|
|
|
@error="handleImageError" |
|
|
|
|
|
/> |
|
|
</div> |
|
|
</div> |
|
|
<div class="changeContent"> |
|
|
<div class="changeContent"> |
|
|
<div class="changeUsername">{{ userInfo.username }}</div> |
|
|
|
|
|
|
|
|
<div class="changeUsername">{{ userInfo.nickname }}</div> |
|
|
<div class="changeJwcode">精网号:{{ userInfo.jwcode }}</div> |
|
|
<div class="changeJwcode">精网号:{{ userInfo.jwcode }}</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="changeRule">兑换规则:{{ changeRule }}</div> |
|
|
|
|
|
|
|
|
<div class="changeRule"> |
|
|
|
|
|
兑换规则:{{ changeRule.gold }}金币={{ changeRule.token }}Token |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="changeLevel"> |
|
|
<div class="changeLevel"> |
|
|
<div class="changeLevelTitle">兑换Token</div> |
|
|
<div class="changeLevelTitle">兑换Token</div> |
|
@ -1338,9 +1512,67 @@ onUnmounted(() => { |
|
|
<div class="changeBtn" @click="changeToken">立即兑换</div> |
|
|
<div class="changeBtn" @click="changeToken">立即兑换</div> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<el-dialog v-else v-model="dialogVisible" width="80%"> |
|
|
|
|
|
<!-- 中间内容部分 --> |
|
|
|
|
|
<div class="changeMsg"> |
|
|
|
|
|
<div class="changeInfo"> |
|
|
|
|
|
<div class="changeImg"> |
|
|
|
|
|
<img |
|
|
|
|
|
:src="userInfo.img" |
|
|
|
|
|
alt="头像" |
|
|
|
|
|
class="changeImgClass" |
|
|
|
|
|
@error="handleImageError" |
|
|
|
|
|
/> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="changeContent"> |
|
|
|
|
|
<div class="changeJwcode">精网号:{{ userInfo.jwcode }}</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="changeLevel"> |
|
|
|
|
|
<div class="changeLevelTitle"> |
|
|
|
|
|
兑换Token |
|
|
|
|
|
<div class="changeRule"> |
|
|
|
|
|
(兑换规则:{{ changeRule.gold }}金币={{ changeRule.token }}Token) |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="changeLevelContent"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="changeLevelItems" |
|
|
|
|
|
v-for="item in changeLevelList" |
|
|
|
|
|
:key="item" |
|
|
|
|
|
:class="{ |
|
|
|
|
|
changeLevelItemsActive: item.position == activeLevel.position, |
|
|
|
|
|
}" |
|
|
|
|
|
@click="chooseLevel(item)" |
|
|
|
|
|
> |
|
|
|
|
|
<div class="changeLevelItem"> |
|
|
|
|
|
<div class="changeLevelItemToken"> |
|
|
|
|
|
<img |
|
|
|
|
|
src="https://d31zlh4on95l9h.cloudfront.net/images/403ef762dd2f335df3b0c9e3fe488375.png" |
|
|
|
|
|
alt="token" |
|
|
|
|
|
class="changeLevelItemTokenImg" |
|
|
|
|
|
/> |
|
|
|
|
|
{{ item.calculatedPosition }} |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="changeLevelItemToken">{{ item.position }} 金币</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="changeNow"> |
|
|
|
|
|
应付金额 |
|
|
|
|
|
<div class="changePay">{{ activeLevel.position }}</div> |
|
|
|
|
|
|
|
|
|
|
|
(金币余额:{{ gold }}) |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="changeBtn" @click="changeToken">立即兑换</div> |
|
|
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<el-dialog |
|
|
<el-dialog |
|
|
v-model="rechargeDialogVisible" |
|
|
v-model="rechargeDialogVisible" |
|
|
:width="isMobile ? '60%' : '40%'" |
|
|
|
|
|
|
|
|
:width="isMobile ? '60%' : '30%'" |
|
|
:show-close="false" |
|
|
:show-close="false" |
|
|
> |
|
|
> |
|
|
<div class="rechargeDialogTitle">温馨提示</div> |
|
|
<div class="rechargeDialogTitle">温馨提示</div> |
|
@ -1361,7 +1593,7 @@ onUnmounted(() => { |
|
|
|
|
|
|
|
|
<el-dialog |
|
|
<el-dialog |
|
|
v-model="confirmDialogVisible" |
|
|
v-model="confirmDialogVisible" |
|
|
:width="isMobile ? '60%' : '40%'" |
|
|
|
|
|
|
|
|
:width="isMobile ? '60%' : '30%'" |
|
|
:show-close="false" |
|
|
:show-close="false" |
|
|
> |
|
|
> |
|
|
<div class="confirmDialogTitle">兑换</div> |
|
|
<div class="confirmDialogTitle">兑换</div> |
|
@ -1380,7 +1612,7 @@ onUnmounted(() => { |
|
|
|
|
|
|
|
|
<el-dialog |
|
|
<el-dialog |
|
|
v-model="changeSuccessDialogVisible" |
|
|
v-model="changeSuccessDialogVisible" |
|
|
:width="isMobile ? '60%' : '40%'" |
|
|
|
|
|
|
|
|
:width="isMobile ? '60%' : '30%'" |
|
|
:show-close="false" |
|
|
:show-close="false" |
|
|
class="changeSuccessDialog" |
|
|
class="changeSuccessDialog" |
|
|
> |
|
|
> |
|
@ -1650,10 +1882,15 @@ body { |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
justify-content: center; |
|
|
justify-content: center; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
|
|
|
cursor: pointer; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.backToHomeBtn:hover { |
|
|
|
|
|
transform: scale(1.05); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.backImg { |
|
|
.backImg { |
|
|
width: 100%; |
|
|
|
|
|
|
|
|
width: 60%; |
|
|
height: auto; |
|
|
height: auto; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -1677,6 +1914,7 @@ body { |
|
|
width: 65%; |
|
|
width: 65%; |
|
|
height: 100%; |
|
|
height: 100%; |
|
|
position: relative; |
|
|
position: relative; |
|
|
|
|
|
cursor: pointer; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.pc-countBtn:hover { |
|
|
.pc-countBtn:hover { |
|
@ -1715,6 +1953,7 @@ body { |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
|
|
|
cursor: pointer; |
|
|
} |
|
|
} |
|
|
.pc-backImg { |
|
|
.pc-backImg { |
|
|
width: auto; |
|
|
width: auto; |
|
@ -1946,22 +2185,6 @@ body { |
|
|
z-index: 6; |
|
|
z-index: 6; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@media (max-width: 768px) { |
|
|
|
|
|
.action-btn { |
|
|
|
|
|
height: 21px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.footer-second-line { |
|
|
|
|
|
padding: 5px 10px 10px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.msg-input { |
|
|
|
|
|
/* min-height: 44px; */ |
|
|
|
|
|
/* height: 44px; */ |
|
|
|
|
|
font-size: 16px; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeMsg { |
|
|
.changeMsg { |
|
|
display: flex; |
|
|
display: flex; |
|
|
width: 100%; |
|
|
width: 100%; |
|
@ -1988,6 +2211,8 @@ body { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.changeImgClass { |
|
|
.changeImgClass { |
|
|
|
|
|
width: 50px; |
|
|
|
|
|
height: auto; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.changeContent { |
|
|
.changeContent { |
|
@ -2031,6 +2256,8 @@ body { |
|
|
display: flex; |
|
|
display: flex; |
|
|
background-color: #f8f8f8; |
|
|
background-color: #f8f8f8; |
|
|
width: 20%; |
|
|
width: 20%; |
|
|
|
|
|
min-width: 70px; |
|
|
|
|
|
max-width: 150px; |
|
|
justify-content: center; |
|
|
justify-content: center; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
@ -2081,6 +2308,7 @@ body { |
|
|
|
|
|
|
|
|
.changeBtn { |
|
|
.changeBtn { |
|
|
width: 40%; |
|
|
width: 40%; |
|
|
|
|
|
max-width: 350px; |
|
|
background-color: #4e86fe; |
|
|
background-color: #4e86fe; |
|
|
color: white; |
|
|
color: white; |
|
|
display: flex; |
|
|
display: flex; |
|
@ -2122,8 +2350,9 @@ body { |
|
|
padding: 10px 20px; |
|
|
padding: 10px 20px; |
|
|
border-radius: 13px; |
|
|
border-radius: 13px; |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
width: 20%; |
|
|
|
|
|
|
|
|
min-width: 20%; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
|
|
|
white-space: nowrap; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.recharge:hover { |
|
|
.recharge:hover { |
|
@ -2135,7 +2364,7 @@ body { |
|
|
padding: 10px 20px; |
|
|
padding: 10px 20px; |
|
|
border-radius: 13px; |
|
|
border-radius: 13px; |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
width: 20%; |
|
|
|
|
|
|
|
|
min-width: 20%; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -2170,7 +2399,7 @@ body { |
|
|
padding: 10px 20px; |
|
|
padding: 10px 20px; |
|
|
border-radius: 13px; |
|
|
border-radius: 13px; |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
width: 20%; |
|
|
|
|
|
|
|
|
min-width: 20%; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -2183,7 +2412,7 @@ body { |
|
|
padding: 10px 20px; |
|
|
padding: 10px 20px; |
|
|
border-radius: 13px; |
|
|
border-radius: 13px; |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
width: 20%; |
|
|
|
|
|
|
|
|
min-width: 20%; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -2207,6 +2436,135 @@ body { |
|
|
font-weight: bold; |
|
|
font-weight: bold; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) { |
|
|
|
|
|
.action-btn { |
|
|
|
|
|
height: 21px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.footer-second-line { |
|
|
|
|
|
padding: 5px 10px 10px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.msg-input { |
|
|
|
|
|
/* min-height: 44px; */ |
|
|
|
|
|
/* height: 44px; */ |
|
|
|
|
|
font-size: 16px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* .changeImg { |
|
|
|
|
|
width: 30px; |
|
|
|
|
|
height: 30px; |
|
|
|
|
|
} */ |
|
|
|
|
|
|
|
|
|
|
|
.changeLevel { |
|
|
|
|
|
flex-direction: horizontal; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeLevelContent { |
|
|
|
|
|
display: flex; |
|
|
|
|
|
/* justify-content: center; */ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeLevelItems { |
|
|
|
|
|
flex: 0 0 calc(33% - 20px); |
|
|
|
|
|
/* margin-right: auto; */ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeLevelTitle { |
|
|
|
|
|
align-items: center; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
} |
|
|
|
|
|
.changeRule { |
|
|
|
|
|
margin-left: 10px; |
|
|
|
|
|
width: 0%; |
|
|
|
|
|
background-color: white; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeMsg { |
|
|
|
|
|
gap: 10px 20px; |
|
|
|
|
|
margin-bottom: 10px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeImgClass { |
|
|
|
|
|
width: 30px; |
|
|
|
|
|
height: 30px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* .changeContent { |
|
|
|
|
|
font-size: 0.5rem; |
|
|
|
|
|
} */ |
|
|
|
|
|
|
|
|
|
|
|
.changeLevelItems { |
|
|
|
|
|
font-size: 0.7rem; |
|
|
|
|
|
min-width: 0px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeLevelItemToken { |
|
|
|
|
|
white-space: nowrap; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeLevelItemTokenImg { |
|
|
|
|
|
width: 20px; |
|
|
|
|
|
height: 20px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeInfo { |
|
|
|
|
|
margin: 0px auto; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeBtn { |
|
|
|
|
|
margin: 0px auto; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.rechargeDialogTitle { |
|
|
|
|
|
font-size: 1.3rem; |
|
|
|
|
|
} |
|
|
|
|
|
.rechargeDialogContent { |
|
|
|
|
|
padding: 10px 0px; |
|
|
|
|
|
font-size: 0.8rem; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.rechargeDialogBtnGroup { |
|
|
|
|
|
font-size: 1rem; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.recharge { |
|
|
|
|
|
padding: 5px 10px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.rechargeDialogCancel { |
|
|
|
|
|
padding: 5px 10px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.confirmDialogTitle { |
|
|
|
|
|
font-size: 1.3rem; |
|
|
|
|
|
} |
|
|
|
|
|
.confirmDialogContent { |
|
|
|
|
|
padding: 10px 0px; |
|
|
|
|
|
font-size: 0.8rem; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.confirmDialogBtnGroup { |
|
|
|
|
|
font-size: 1rem; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.confirmDialogConfirm { |
|
|
|
|
|
padding: 5px 10px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.confirmDialogCancel { |
|
|
|
|
|
padding: 5px 10px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeSuccessDialogTitle { |
|
|
|
|
|
font-size: 1.3rem; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.changeSuccessDialogContent { |
|
|
|
|
|
font-size: 1rem; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
|
|
|
|
|
|
<style> |
|
|
<style> |
|
|