diff --git a/pages/deepExploration/MainForceActions.vue b/pages/deepExploration/MainForceActions.vue
index 752495d..883048c 100644
--- a/pages/deepExploration/MainForceActions.vue
+++ b/pages/deepExploration/MainForceActions.vue
@@ -41,7 +41,30 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -107,6 +130,37 @@
//登录弹窗提示ref
const loginPrompt = ref(null)
+ // 全屏相关状态
+ const isFullscreen = ref(false); // 是否显示全屏弹窗
+ const isLandscape = ref(true); // 是否横屏模式
+ const fullscreenChartKey = ref(0); // 全屏图表重绘标识
+
+
+
+ // 显示全屏K线
+ const showFullscreenKline = () => {
+ isFullscreen.value = true;
+ isLandscape.value = true; // 默认横屏
+ // 强制重绘图表
+ setTimeout(() => {
+ fullscreenChartKey.value++;
+ }, 100);
+ };
+
+ // 关闭全屏
+ const closeFullscreen = () => {
+ isFullscreen.value = false;
+ };
+
+ // 切换横竖屏
+ const toggleOrientation = () => {
+ isLandscape.value = !isLandscape.value;
+ // 旋转后重绘图表
+ setTimeout(() => {
+ fullscreenChartKey.value++;
+ }, 300);
+ };
+
// 响应式变量定义
const type = ref('deepExploration')
const iSMT = ref(0)
@@ -494,6 +548,28 @@
}
}
})
+
+ // 全屏图表配置(继承原有配置并优化)
+ const fullscreenOpts = ref({
+ ...opts.value, // 复用原有配置
+ padding: [30, 30, 30, 30],
+ xAxis: {
+ ...opts.value.xAxis,
+ labelCount: 8, // 横屏显示更多标签
+ fontSize: 12
+ },
+ yAxis: {
+ ...opts.value.yAxis,
+ fontSize: 12
+ },
+ extra: {
+ ...opts.value.extra,
+ candle: {
+ ...opts.value.extra.candle,
+ width: 12 // 横屏时K线宽度增加
+ }
+ }
+ });
// 2. K线图数据(响应式定义)
const chartData = ref({
@@ -548,6 +624,7 @@
let unwatch = null;
// 生命周期钩子:组件挂载后执行(替代onReady)
onMounted(async () => {
+
iSMT.value = uni.getSystemInfoSync().statusBarHeight
getUserInfo()
await handleModels()
@@ -571,7 +648,8 @@
//k线
if (historyData.value.stockData.chartData.categories.length > 1) { // 确保至少保留一个日期
- historyData.value.stockData.chartData.categories[historyData.value.stockData.chartData.categories.length - 1] = ''; // 删除最后一个日期
+ historyData.value.stockData.chartData.categories[historyData.value.stockData.chartData
+ .categories.length - 1] = ''; // 删除最后一个日期
}
chartData.value = {
...JSON.parse(JSON.stringify(historyData.value.stockData.chartData))
@@ -585,7 +663,7 @@
stockChange.value = historyData.value.stockData.StockInformation.Zhang || '5.120%'
stockAdd.value = historyData.value.stockData.StockInformation.ZhangFu || '22.410'
stockPrice.value = historyData.value.stockData.StockInformation.Price || '435.900'
- currentIndex.value = historyData.value.model-1
+ currentIndex.value = historyData.value.model - 1
}, {
deep: true,
immediate: true
@@ -597,7 +675,7 @@
// 页面加载时执行
onLoad((e) => {
if (e.index) {
- // currentIndex.value = e.index - 1
+ currentIndex.value = e.index - 1
console.log('模块:', currentIndex.value)
}
if (e.stockName) {
@@ -770,8 +848,8 @@
.graph_content {
position: relative;
min-height: 500rpx;
-
- image{
+
+ image {
position: absolute;
bottom: 20rpx;
right: 30rpx;
@@ -786,6 +864,79 @@
}
}
}
+
+ /* 横屏按钮样式 */
+ .rotate-btn {
+ background: transparent;
+ padding: 0 10rpx;
+ margin-left: 15rpx;
+
+ .btn-icon {
+ width: 36rpx;
+ height: 36rpx;
+ vertical-align: middle;
+ }
+ }
+
+ /* 全屏遮罩 */
+ .fullscreen-mask {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000;
+ z-index: 9999;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ /* 全屏容器 */
+ .fullscreen-container {
+ width: 100vh; /* 横屏时宽度等于屏幕高度 */
+ height: 100vw; /* 横屏时高度等于屏幕宽度 */
+ transition: transform 0.3s ease;
+ position: relative;
+ }
+
+ /* 关闭按钮 */
+ .fullscreen-close {
+ position: absolute;
+ top: 20rpx;
+ right: 20rpx;
+ z-index: 10;
+
+ image {
+ width: 48rpx;
+ height: 48rpx;
+ }
+ }
+
+ /* 旋转按钮 */
+ .fullscreen-rotate {
+ position: absolute;
+ top: 20rpx;
+ left: 20rpx;
+ z-index: 10;
+
+ image {
+ width: 48rpx;
+ height: 48rpx;
+ }
+ }
+
+ /* 全屏图表容器 */
+ .fullscreen-chart {
+ width: 100%;
+ height: 100%;
+ }
+
+ /* 竖屏模式适配 */
+ :deep(.fullscreen-container:not([style*="rotate(90deg)"])) {
+ width: 100vw;
+ height: 100vh;
+ }
.txt {
background-color: #F3F3F3;