From 9cb99d3e0db2c59f334d1f670ae74ead12717b2d Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Sun, 11 Jan 2026 15:46:22 +0800
Subject: [PATCH] 1
---
static/css/public2.css | 29 ++++--
src/locales/en.js | 1
src/page/newUser/setup.vue | 8 +-
src/locales/tw.js | 1
src/page/home/home.vue | 52 ++++++++++++
src/page/newUser/index.vue | 14 +-
src/axios/api.js | 5 +
src/page/home/listcomponents/xingusg.vue | 61 +++++++++++++-
src/App.vue | 52 ++++++++++++
src/locales/zh.js | 1
10 files changed, 192 insertions(+), 32 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index 8bd9a99..5a9b2a5 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -6,9 +6,9 @@
<div slot="right" class="header-right">
<!-- 消息图标 - 始终显示(如果已登录) -->
<div class="message-icon-wrapper" @click="goToMessage" v-if="isLoggedIn">
- <svg class="message-icon" viewBox="0 0 24 24" fill="currentColor">
+ <!-- <svg class="message-icon" viewBox="0 0 24 24" fill="currentColor">
<path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"/>
- </svg>
+ </svg> -->
<span v-if="unreadCount > 0" class="message-badge">{{ unreadCount > 99 ? '99+' : unreadCount }}</span>
</div>
<!-- 其他图标 -->
@@ -222,6 +222,18 @@
</script>
<style lang="less" scoped>
+// 全局隐藏滚动条
+/deep/ html,
+/deep/ body {
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE and Edge */
+ &::-webkit-scrollbar {
+ display: none; /* Chrome, Safari, Opera */
+ width: 0;
+ height: 0;
+ }
+}
+
/deep/ .van-list__finished-text {
line-height: 1.925926rem !important;
}
@@ -268,6 +280,14 @@
// height: calc(100% - 1rem);
box-sizing: border-box;
overflow-y: auto;
+ // 隐藏滚动条
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE and Edge */
+ &::-webkit-scrollbar {
+ display: none; /* Chrome, Safari, Opera */
+ width: 0;
+ height: 0;
+ }
}
&.red-theme {
@@ -472,3 +492,31 @@
}
}
</style>
+
+<style lang="less">
+/* 全局隐藏滚动条 - 确保整个项目都不显示滚动条 */
+html,
+body {
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE and Edge */
+}
+
+html::-webkit-scrollbar,
+body::-webkit-scrollbar {
+ display: none; /* Chrome, Safari, Opera */
+ width: 0;
+ height: 0;
+}
+
+/* 隐藏所有元素的滚动条 */
+* {
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE and Edge */
+}
+
+*::-webkit-scrollbar {
+ display: none; /* Chrome, Safari, Opera */
+ width: 0;
+ height: 0;
+}
+</style>
diff --git a/src/axios/api.js b/src/axios/api.js
index c9d4e56..2f75b3f 100644
--- a/src/axios/api.js
+++ b/src/axios/api.js
@@ -394,6 +394,11 @@
return post('/api/site/getBannerByPlat.do', options)
}
+// 获取站点banner
+export function getSiteBanner(options) {
+ return post('/api/user/getSiteBanner.do', options)
+}
+
// 公告列表
export function getArtList(options) {
return post('/api/art/list.do', options)
diff --git a/src/locales/en.js b/src/locales/en.js
index 6c9a271..d2e9cdf 100644
--- a/src/locales/en.js
+++ b/src/locales/en.js
@@ -821,6 +821,7 @@
jy543: "Securities to Bank Transfer",
jy544: "Discount Rate",
jy545: "Remaining Share Percentage",
+ jy546: "Remaining",
}
diff --git a/src/locales/tw.js b/src/locales/tw.js
index 4ef89b9..b05d4e5 100644
--- a/src/locales/tw.js
+++ b/src/locales/tw.js
@@ -824,5 +824,6 @@
jy543: "銀證轉出",
jy544: "折價率",
jy545: "剩餘份額百分比",
+ jy546: "剩餘",
}
diff --git a/src/locales/zh.js b/src/locales/zh.js
index 6c0b38a..c6d297f 100644
--- a/src/locales/zh.js
+++ b/src/locales/zh.js
@@ -823,5 +823,6 @@
jy543: "银证转出",
jy544: "折价率",
jy545: "剩余份额百分比",
+ jy546: "剩余",
};
diff --git a/src/page/home/home.vue b/src/page/home/home.vue
index fa6d8fd..1f325fc 100644
--- a/src/page/home/home.vue
+++ b/src/page/home/home.vue
@@ -60,7 +60,12 @@
<img src="@/assets/img/b1.png" style="width: 100%;height: 170px;border-radius: 14px;" />
</div> -->
<div style="margin: 0 10px;margin-top: 30px;margin-bottom: 30px;">
- <img src="@/assets/img/banner-home.png" style="width: 100%;height: 170px;border-radius: 14px;" />
+ <van-swipe class="banner-swipe" :autoplay="3000" indicator-color="white" v-if="bannerList && bannerList.length > 0">
+ <van-swipe-item v-for="(item, index) in bannerList" :key="index">
+ <img :src="item.bannerUrl" style="width: 100%;height: 4.5rem;border-radius: 14px;object-fit: cover;" @click="handleBannerClick(item)" />
+ </van-swipe-item>
+ </van-swipe>
+ <img v-else src="@/assets/img/banner-home.png" style="width: 100%;height: 170px;border-radius: 14px;" />
</div>
</div>
<div style="width: 100%; height: 40px;"></div>
@@ -281,7 +286,8 @@
show: false,
secret: "",
unreadCount: 0,
- messageTimer: null
+ messageTimer: null,
+ bannerList: []
};
},
computed: {
@@ -292,6 +298,7 @@
mounted() {
this.getNewsList(1);
this.stockgetZdfNumber();
+ this.getSiteBannerList();
this.kLineChart = init("Zline");
this.kLineChart.setStyleOptions({
candle: {
@@ -568,6 +575,28 @@
elAlertText: data.msg
});
}
+ },
+ async getSiteBannerList() {
+ try {
+ let data = await api.getSiteBanner();
+ if (data.status === 0 && data.data) {
+ let list = Array.isArray(data.data) ? data.data : [];
+ // 按照 isOrder 从小到大排序
+ this.bannerList = list.sort((a, b) => {
+ const orderA = a.isOrder || 0;
+ const orderB = b.isOrder || 0;
+ return orderA - orderB;
+ });
+ }
+ } catch (error) {
+ console.error('获取轮播图失败:', error);
+ this.bannerList = [];
+ }
+ },
+ handleBannerClick(item) {
+ if (item.targetUrl || item.linkUrl) {
+ window.open(item.targetUrl || item.linkUrl, '_blank');
+ }
}
}
};
@@ -719,6 +748,25 @@
}
}
}
+
+ .banner-swipe {
+ width: 100%;
+ height: 4.5rem;
+ border-radius: 14px;
+ overflow: hidden;
+
+ .van-swipe-item {
+ width: 100%;
+ height: 100%;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ cursor: pointer;
+ }
+ }
+ }
}
.dang {
diff --git a/src/page/home/listcomponents/xingusg.vue b/src/page/home/listcomponents/xingusg.vue
index 59be104..4ad386b 100644
--- a/src/page/home/listcomponents/xingusg.vue
+++ b/src/page/home/listcomponents/xingusg.vue
@@ -19,7 +19,7 @@
<div>
<van-list v-model="loading" :finished="finished" :finished-text="$t('hj43')" @load="onLoad" offset="500"
:immediate-check="false">
- <div class="skm" v-for="(item, index) in shengouList" :key="index">
+ <div class="skm" v-for="(item, index) in shengouList" :key="index" @click="getshengou(1, item)">
<div class="shead shn">
<div class="shl">
<h6>{{ item.name }}</h6>
@@ -40,29 +40,36 @@
</a>
</p>
</div>
- <div v-if="shengouIdx == 0">
+ <!-- <div v-if="shengouIdx == 0">
<div class="she1" @click="getshengou(1, item)"><span style="font-size: 0.32rem;"> {{
$t("jy98") }}</span><span> {{ $t("jy94") }}</span></div>
<div class="she2" @click="getshengou(2, item)"><span style="font-size: 0.32rem;"> {{
$t("jy99") }}</span><span> {{ $t("jy100") }}</span></div>
- </div>
+ </div> -->
<p class="shr" v-if="shengouIdx == 1"> {{ $t("hj59") }}
<span>{{ dayjs(item.subscribeTime).format('YYYY-MM-DD') }}</span>
</p>
</div>
<div class="shead shn" style="padding-top: 0px !important;" v-if="shengouIdx == 0">
- <p class="shr">
+ <!-- <p class="shr">
{{ $t("hj59") }}
<span>{{ dayjs(item.subscribeTime).format('YYYY-MM-DD') }}</span>
- </p>
+ </p> -->
</div>
<div class="plkm">
<p><span> {{ $t("jy101") }}</span><a>{{ item.price }}/ {{ $t("jy96") }}</a></p>
- <p><span> {{ $t("jy102") }}</span><a>{{ item.pe }}</a></p>
+ <!-- <p><span> {{ $t("jy102") }}</span><a>{{ item.pe }}</a></p> -->
<p style="display: none;"><span> {{ $t("jy103") }}</span><a> 0.75{{ $t("jy104") }}</a></p>
<p><span> {{ $t("jy105") }}</span><a>{{ item.orderNumber }} {{ $t("jy104") }}</a></p>
- <p><span> {{ $t("jy545") }}</span><a>{{ item.residualShare || '--' }}%</a></p>
+ <div class="residual-progress" v-if="item.residualShare !== undefined && item.residualShare !== null">
+ <div class="progress-bar-wrapper">
+ <div class="progress-bar-bg">
+ <div class="progress-bar-fill" :style="{ width: (item.residualShare || 0) + '%' }"></div>
+ </div>
+ <span class="progress-text">【{{ $t("jy546") }}{{ item.residualShare || 0 }}%】</span>
+ </div>
+ </div>
</div>
</div>
</van-list>
@@ -365,6 +372,46 @@
}
}
+ .residual-progress {
+ width: 100%;
+ margin-top: 0.4rem;
+
+ .progress-bar-wrapper {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ gap: 0.2rem;
+
+ .progress-bar-bg {
+ flex: 1;
+ height: 0.3rem;
+ background-color: #f0f0f0;
+ border-radius: 0.15rem;
+ overflow: hidden;
+ position: relative;
+
+ .progress-bar-fill {
+ height: 100%;
+ background: linear-gradient(90deg, #f33030 0%, #d73d3d 100%);
+ border-radius: 0.15rem;
+ position: absolute;
+ left: 0;
+ top: 0;
+ transition: width 0.3s ease;
+ min-width: 0;
+ }
+ }
+
+ .progress-text {
+ color: #333;
+ font-size: 0.28rem;
+ white-space: nowrap;
+ font-weight: 500;
+ flex-shrink: 0;
+ }
+ }
+ }
+
.shn {
justify-content: space-between;
diff --git a/src/page/newUser/index.vue b/src/page/newUser/index.vue
index 6bd3816..2d2434e 100644
--- a/src/page/newUser/index.vue
+++ b/src/page/newUser/index.vue
@@ -219,7 +219,7 @@
<div class="rety">
<div class="lingdang-wrapper" @click="$router.push('/notify')" v-if="isLoggedIn">
<img class="lingdang" src="@/assets/img/消息中心.png" alt="" />
- <span v-if="unreadCount > 0" class="lingdang-badge"></span>
+ <!-- <span v-if="unreadCount > 0" class="lingdang-badge"></span> -->
</div>
</div>
</div>
@@ -316,13 +316,13 @@
</div>
<div class="bdan">
- <p style="display: flex; align-items: center;font-family: '宋体';">
+ <p style="display: flex; align-items: center;font-family: '宋体';justify-content: right;">
<img
src="data:image/png;base64,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"
style="width: 0.4272rem; height: 0.4272rem; margin-right: 0.1602rem;" />
{{ $t("jy537") }}
</p>
- <h6 style="margin-left: 0.534rem;">
+ <h6 style="margin-left: 0.534rem;text-align: right;">
<span class="bzz" v-if="!selectUserFlag">{{
"¥ " + $store.state.userInfo.enableIndexAmt
}}</span>
@@ -339,19 +339,19 @@
style="width: 0.4272rem; height: 0.4272rem; margin-right: 0.1602rem; " />
{{ $t("jy12") }}
</p>
- <h6 style="margin-left: 0.534rem;">
+ <h6>
{{ "¥ " + $store.state.userInfo.allProfitAndLose }}
</h6>
</div>
<div class="bdan">
- <p style="display: flex; align-items: center; font-family: '宋体';">
+ <p style="display: flex; align-items: center; font-family: '宋体';justify-content: right;">
<img
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA/hJREFUWEfFl11sVEUUx38zu620yEdwaUWjUFEjKFoMKjaibJRGWkmMSFBfqU9Gow8Uw4ua+FJJ/HgwMVSNT9UYeRIbU0pKdC0lJrbpA9KUpCkVsWmBNrDttrt3xsyd/ea2965s47zc5M455/+fM+ecOUcQcOkebsUJNaN0FCHqQdcBq9Lq0yBG0HoAKXoIOT+JKNeDmBZ+Qvpn7iUsD6F5FVjuJ5/ejyP4lpRqE89zfjGdBQnoHpbhyPfRvANUBgQuFptH8ykV6j0RJeFlw5OAPslGlPwBqP+PwMVqAzhqn5c3biCgT/IoSnYCtWUCz5gZR6om8Sx/5NstIODed0j2AmvLDJ4xN4GjGvI9kSWge6liRp5G80hZwNdE4aEOSIxBfxMkJzNmB1mutosGZs2PHIEu2YagtSzgxsjDx6DmRWvu7AH4+5ucac1HolEdyhJIB92fQIUvgYrbILIbpn6D2RFvcRGCrZ2w5jlIXoXft8NMQTYmcdRmcxWuB3S3bEfT4gtuBB4/Ayu3WZfG7gEnXqhmwDe1Q2oaxj6zX0OieGm+Eo2qRegYK5iVlwIXmZ1XIGwKoIZf18PcxZxpIS24cw2GTPnQi50pTpVaJ3R3aD9afxfo9LX7oO4wzI1DeCVMdsLIh2lVAZsNeByG3vYDtzpCvCL0CXkUeN2XQO3LsP5gOqIvg6yELd/bOEhdger7ITkFQ28FA7eA7UKfCPWBfmJRAjV7YUNrDjwjXBGBZ/6xyZSaglORUsCN3hnjgQnAaBYu42ITxSbq72yB/ub8XLay4dXw9CXrjflx+OUO+3/TUah5KWfPuQ6xDV5nnDQE5jwfm8d6YZVxjIbYRkiMejsp0mzz/eLXMH3aytT/CJGmQvnukJf+/MIEdl61gWZWrA4SF3zDJCtQIgHvKzBBd9ebMHEcRo94g4dWgAzn9lLXQKdK8YC5ggBB6AV/yzrYMZZfzWH0Yxg+WAIBG4TB0rCYxLK74amiUvzXF3DujRIImDT0K0Qm1badAmfGUghVQ/9ue/KbJeAWIr9SbE76wOcwsCcX4ecP2xp/cwRmqFK328eoS36J4IBnpC0Vgcxj5BKwndBZz+d4aQgk0epB0ciwf0OyNASOiF3KbX4KW7K47DO9TMFVlJ/AIAn1pNiDG9X+TWllDTScg+Rly6tyLfRttVmx4wKIvEJkCtbwu7ClA2r3F74FPe4QtXBTmpH+X9vyLAkblMduuI7gr0Gx5CCO2htoMMmSMKNZUn6AcEcz/2bVm1wSzSclj2b5tnQX9yFlK5rXgOqATphF0wGqzaTaYjq+03GeR8x4/gJaR9GiHuGO56vT+1NoMYLQAwh3PD8edDz/F5zhrmiE4ANeAAAAAElFTkSuQmCC"
style="width: 0.4272rem; height: 0.4272rem; margin-right: 0.1602rem;" />
{{ $t("jy13") }}
</p>
- <h6 style="margin-left: 0.534rem;">
+ <h6 style="margin-left: 0.534rem;text-align: right;">
{{ "¥ " + ($store.state.userInfo.historyProfitLoss || "0.00") }}
</h6>
</div>
@@ -962,7 +962,7 @@
font-size: 0.3738rem;
margin-top: 0.0801rem;
font-weight: 700;
- margin-left: 0.534rem;
+ // margin-left: 0.534rem;
}
.bdan h6 .bzz {
diff --git a/src/page/newUser/setup.vue b/src/page/newUser/setup.vue
index 7c010ad..56d31a2 100644
--- a/src/page/newUser/setup.vue
+++ b/src/page/newUser/setup.vue
@@ -237,16 +237,16 @@
overflow: hidden;
}
-.avatar-uploader ::v-deep .el-upload {
+.avatar-uploader /deep/ .el-upload {
width: 1.1748rem;
height: 1.1748rem;
}
-.avatar-uploader ::v-deep .el-upload__input {
+.avatar-uploader /deep/ .el-upload__input {
opacity: 0 !important;
}
-.avatar-uploader ::v-deep .el-upload--picture-card {
+.avatar-uploader /deep/ .el-upload--picture-card {
width: 1.1748rem;
height: 1.1748rem;
border-radius: 50%;
@@ -254,7 +254,7 @@
background: transparent;
}
-.avatar-uploader ::v-deep .el-upload--picture-card .el-upload__input {
+.avatar-uploader /deep/ .el-upload--picture-card .el-upload__input {
opacity: 0;
}
diff --git a/static/css/public2.css b/static/css/public2.css
index 4272fc7..fb1304d 100644
--- a/static/css/public2.css
+++ b/static/css/public2.css
@@ -15155,26 +15155,35 @@
text-decoration: none;
}
+/* 隐藏滚动条但保持滚动功能 */
::-webkit-scrollbar {
- width: 5px;
- height: 5px;
+ display: none;
+ width: 0;
+ height: 0;
}
::-webkit-scrollbar-track-piece {
- background-color: rgba(0, 0, 0, 0.2);
- -webkit-border-radius: 6px;
+ display: none;
}
::-webkit-scrollbar-thumb:vertical {
- height: 5px;
- background-color: hsla(0, 0%, 49%, 0.7);
- -webkit-border-radius: 6px;
+ display: none;
}
::-webkit-scrollbar-thumb:horizontal {
- width: 5px;
- background-color: hsla(0, 0%, 49%, 0.7);
- -webkit-border-radius: 6px;
+ display: none;
+}
+
+/* 全局隐藏滚动条 - 跨浏览器兼容 */
+* {
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE and Edge */
+}
+
+*::-webkit-scrollbar {
+ display: none; /* Chrome, Safari, Opera */
+ width: 0;
+ height: 0;
}
input {
--
Gitblit v1.9.3