diff --git a/view/yinmeng/modules/hourRank/css/index.css b/view/yinmeng/modules/hourRank/css/index.css
new file mode 100644
index 0000000..336d6c5
--- /dev/null
+++ b/view/yinmeng/modules/hourRank/css/index.css
@@ -0,0 +1,550 @@
+html,
+body {
+ width: 100%;
+ background: #0B1836;
+ overflow: hidden;
+}
+
+html::-webkit-scrollbar,
+body::-webkit-scrollbar {
+ display: none;
+}
+
+.layui-m-layershade {
+ background-color: transparent !important;
+}
+
+.layui-m-layer2 .layui-m-layerchild {
+ width: 3rem !important;
+ height: 3rem !important;
+ border: none !important;
+ box-shadow: none !important;
+ color: #fff !important;
+ background: rgba(0, 0, 0, 0.6) !important;
+}
+
+.layui-m-layer2 .layui-m-layercont {
+ text-align: center !important;
+ padding: 0 !important;
+ line-height: 0 !important;
+ margin-top: 0.8rem !important;
+}
+
+.back {
+ position: fixed;
+ top: 0.26667rem;
+ left: 0.32rem;
+ z-index: 99;
+ width: 0.82667rem;
+ height: 0.82667rem;
+}
+
+.back img {
+ width: 100%;
+ height: 100%;
+}
+
+.back p {
+ color: #fff;
+ font-size: 0.42667rem;
+ position: absolute;
+ width: 9rem;
+ left: 0;
+ top: 0;
+ height: 100%;
+ text-align: center;
+ line-height: 0.82667rem;
+}
+
+.largestBox {
+ width: 10rem;
+ min-height: 15.38667rem;
+ background: url(../images/bg.png) no-repeat;
+ background-size: 10rem 15.38667rem;
+ margin: 0 auto;
+ position: relative;
+ box-sizing: border-box;
+ padding: 1.17333rem 0 0 0;
+}
+
+.largestBox .title {
+ width: 7.06667rem;
+ height: 1.14667rem;
+ position: absolute;
+ top: -0.12rem;
+ left: 50%;
+ transform: translateX(-50%);
+}
+
+.largestBox .lastHour {
+ width: 9.14667rem;
+ margin: 0rem auto 0.42667rem;
+}
+
+.largestBox .lastHour .text {
+ width: 100%;
+ color: #FFDA24;
+ font-size: 0.37333rem;
+ margin-bottom: 0.24rem;
+ font-weight: 600;
+}
+
+.largestBox .box {
+ width: 9.14667rem;
+ height: 2.34667rem;
+ background: url(../images/lastHour.png) no-repeat;
+ background-size: 100% 100%;
+ position: relative;
+ box-sizing: border-box;
+ padding: 0 0.32rem;
+}
+
+.largestBox .box .txbox {
+ width: 2.02667rem;
+ height: 2.45333rem;
+ background: url(../images/hourTs.png) no-repeat;
+ background-size: 100% 100%;
+ position: relative;
+ margin-right: 0.24rem;
+ float: left;
+}
+
+.largestBox .box .txbox .hourTs {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+}
+
+.largestBox .box .txbox .tx {
+ width: 1.44rem;
+ height: 1.44rem;
+ border-radius: 50%;
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%);
+ top: 0.4rem;
+}
+
+.largestBox .box .userInfo {
+ float: left;
+ width: 3.73333rem;
+ position: relative;
+ height: 100%;
+}
+
+.largestBox .box .userInfo p {
+ width: 100%;
+ margin-top: 0.37333rem;
+ color: #E6ECF5;
+ font-size: 0.37333rem;
+ font-weight: 500;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.largestBox .box .userInfo .mvp {
+ width: 0.74667rem;
+ height: 0.74667rem;
+ border-radius: 50%;
+ border: 0.02667rem solid #FFDA24;
+ position: absolute;
+ top: 1.06667rem;
+}
+
+.largestBox .box .userInfo .mvp .mvpTx {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ border-radius: 50%;
+}
+
+.largestBox .box .userInfo .mvp span {
+ width: 0.90667rem;
+ height: 0.29333rem;
+ line-height: 0.29333rem;
+ border-radius: 0.29333rem;
+ position: absolute;
+ top: 0.61333rem;
+ left: 50%;
+ transform: translateX(-50%);
+ text-align: center;
+ color: #FFFFFF;
+ font-size: 0.18667rem;
+ background: linear-gradient(180deg, #FFDA24 0%, #FF8615 100%);
+ padding: 0 0.02667rem;
+}
+
+.largestBox .box .userInfo .member {
+ width: 2.29333rem;
+ height: 0.69333rem;
+ border-radius: 0.69333rem;
+ position: absolute;
+ left: 1.2rem;
+ top: 1.17333rem;
+ background: rgba(255, 255, 255, 0.4);
+}
+
+.largestBox .box .userInfo .member img {
+ position: absolute;
+ width: 0.48rem;
+ height: 0.48rem;
+ border: 0.02667rem solid #FFDA24;
+ border-radius: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+}
+
+.largestBox .box .userInfo .member .memberTx1 {
+ left: 0.16rem;
+}
+
+.largestBox .box .userInfo .member .memberTx2 {
+ left: 0.53333rem;
+ z-index: 2;
+}
+
+.largestBox .box .userInfo .member .memberTx3 {
+ left: 0.90667rem;
+ z-index: 3;
+}
+
+.largestBox .box .userInfo .member .memberTx4 {
+ left: 1.28rem;
+ z-index: 4;
+}
+
+.largestBox .box .userInfo .member .memberTx5 {
+ left: 1.65333rem;
+ z-index: 5;
+}
+
+.largestBox .box .score {
+ float: right;
+ height: 100%;
+ line-height: 2.34667rem;
+}
+
+.largestBox .box .score img {
+ display: inline-block;
+ width: 0.37333rem;
+ height: 0.37333rem;
+ vertical-align: middle;
+}
+
+.largestBox .box .score span {
+ color: #FFDA24;
+ font-weight: 600;
+ font-size: 0.42667rem;
+ vertical-align: middle;
+}
+
+.largestBox .hourList {
+ width: 100%;
+}
+
+.largestBox .hourList .top {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ box-sizing: border-box;
+ padding: 0 0.53333rem;
+ margin-bottom: 0.26667rem;
+}
+
+.largestBox .hourList .top .sp {
+ color: #FFDA24;
+ font-size: 0.37333rem;
+ font-weight: 600;
+}
+
+.largestBox .hourList .top span {
+ color: #B1B5BD;
+ font-size: 0.32rem;
+ font-weight: 600;
+}
+
+.largestBox .hourList .top span b {
+ color: #FFDA24;
+}
+
+.largestBox .hourList ul {
+ width: 100%;
+ height: 7rem;
+ overflow-y: scroll;
+ box-sizing: border-box;
+ padding-bottom: 0.66667rem;
+}
+
+.largestBox .hourList ul::-webkit-scrollbar {
+ display: none;
+}
+
+.largestBox .hourList ul li {
+ width: 100%;
+ height: 2.13333rem;
+ backdrop-filter: blur(0px);
+ box-sizing: border-box;
+ padding: 0 0.53333rem;
+ background: RGBA(11, 24, 57, 1);
+}
+
+.largestBox .hourList ul li .num {
+ width: 0.64rem;
+ height: 0.64rem;
+ text-align: center;
+ color: #E6ECF5;
+ font-size: 0.42667rem;
+ font-weight: 500;
+ float: left;
+ margin-top: 0.74667rem;
+ margin-right: 0.42667rem;
+ float: left;
+}
+
+.largestBox .hourList ul li .num1 {
+ background: url(../images/no1.png) no-repeat;
+ background-size: 100% 100%;
+}
+
+.largestBox .hourList ul li .num2 {
+ background: url(../images/no2.png) no-repeat;
+ background-size: 100% 100%;
+}
+
+.largestBox .hourList ul li .num3 {
+ background: url(../images/no3.png) no-repeat;
+ background-size: 100% 100%;
+}
+
+.largestBox .hourList ul li .tx {
+ width: 1.28rem;
+ height: 1.28rem;
+ border-radius: 50%;
+ margin-top: 0.42667rem;
+ margin-right: 0.32rem;
+ display: block;
+ float: left;
+}
+
+.largestBox .hourList ul li .userInfo {
+ float: left;
+ width: 3.73333rem;
+ position: relative;
+ height: 100%;
+}
+
+.largestBox .hourList ul li .userInfo p {
+ width: 100%;
+ margin-top: 0.26667rem;
+ color: #E6ECF5;
+ font-size: 0.37333rem;
+ font-weight: 500;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.largestBox .hourList ul li .userInfo .mvp {
+ width: 0.74667rem;
+ height: 0.74667rem;
+ border-radius: 50%;
+ border: 0.02667rem solid #FFDA24;
+ position: absolute;
+ top: 0.96rem;
+}
+
+.largestBox .hourList ul li .userInfo .mvp .mvpTx {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ border-radius: 50%;
+}
+
+.largestBox .hourList ul li .userInfo .mvp span {
+ width: 0.90667rem;
+ height: 0.29333rem;
+ line-height: 0.29333rem;
+ border-radius: 0.29333rem;
+ position: absolute;
+ top: 0.61333rem;
+ left: 50%;
+ transform: translateX(-50%);
+ text-align: center;
+ color: #FFFFFF;
+ font-size: 0.18667rem;
+ background: linear-gradient(180deg, #FFDA24 0%, #FF8615 100%);
+ padding: 0 0.02667rem;
+}
+
+.largestBox .hourList ul li .userInfo .member {
+ width: 2.29333rem;
+ height: 0.69333rem;
+ border-radius: 0.69333rem;
+ position: absolute;
+ left: 1.2rem;
+ top: 1.06667rem;
+ background: rgba(255, 255, 255, 0.4);
+}
+
+.largestBox .hourList ul li .userInfo .member img {
+ position: absolute;
+ width: 0.48rem;
+ height: 0.48rem;
+ border: 0.02667rem solid #FFDA24;
+ border-radius: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+}
+
+.largestBox .hourList ul li .userInfo .member .memberTx1 {
+ left: 0.16rem;
+}
+
+.largestBox .hourList ul li .userInfo .member .memberTx2 {
+ left: 0.53333rem;
+ z-index: 2;
+}
+
+.largestBox .hourList ul li .userInfo .member .memberTx3 {
+ left: 0.90667rem;
+ z-index: 3;
+}
+
+.largestBox .hourList ul li .userInfo .member .memberTx4 {
+ left: 1.28rem;
+ z-index: 4;
+}
+
+.largestBox .hourList ul li .userInfo .member .memberTx5 {
+ left: 1.65333rem;
+ z-index: 5;
+}
+
+.largestBox .hourList ul li .score {
+ float: right;
+ color: #E6ECF5;
+ font-size: 0.37333rem;
+ font-weight: 600;
+ margin-top: 0.58667rem;
+ text-align: right;
+}
+
+.largestBox .hourList ul li .score p {
+ margin-bottom: 0.13333rem;
+}
+
+.largestBox .hourList ul li .score span {
+ color: #B1B5BD;
+ font-size: 0.29333rem;
+ font-weight: 400;
+ display: block;
+}
+
+.largestBox .hourList ul li .first {
+ position: absolute;
+ width: 0.85333rem;
+ height: 0.37333rem;
+ right: 0.53333rem;
+ top: 50%;
+ transform: translateY(-50%);
+}
+
+.largestBox .hourList ul .li1 {
+ background: linear-gradient(270deg, rgba(255, 204, 0, 0) 0%, rgba(255, 199, 44, 0.35) 100%);
+}
+
+.largestBox .hourList ul .li2 {
+ background: linear-gradient(270deg, rgba(109, 139, 209, 0) 0%, rgba(135, 158, 204, 0.35) 100%);
+}
+
+.largestBox .hourList ul .li3 {
+ background: linear-gradient(270deg, rgba(163, 102, 46, 0) 0%, rgba(198, 135, 81, 0.35) 100%);
+}
+
+.my {
+ width: 100%;
+ height: 2.05333rem;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ background: url(../images/my.png) no-repeat;
+ background-size: 100% 100%;
+ width: 100%;
+ height: 2.13333rem;
+ box-sizing: border-box;
+ padding: 0 0.53333rem;
+}
+
+.my .num {
+ height: 0.64rem;
+ text-align: center;
+ color: #E6ECF5;
+ font-size: 0.42667rem;
+ font-weight: 500;
+ float: left;
+ margin-top: 0.74667rem;
+ margin-right: 0.42667rem;
+ float: left;
+}
+
+.my .tx {
+ width: 1.28rem;
+ height: 1.28rem;
+ border-radius: 50%;
+ margin-top: 0.42667rem;
+ margin-right: 0.32rem;
+ display: block;
+ float: left;
+}
+
+.my .score {
+ float: left;
+ color: #E6ECF5;
+ font-size: 0.37333rem;
+ font-weight: 600;
+ margin-top: 0.58667rem;
+ width: 3.73333rem;
+}
+
+.my .score p {
+ width: 100%;
+ margin-bottom: 0.13333rem;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.my .score span {
+ color: #B1B5BD;
+ font-size: 0.29333rem;
+ font-weight: 400;
+ display: block;
+}
+
+.my .score span b {
+ color: #E6ECF5;
+}
+
+.my .but {
+ width: 1.76rem;
+ height: 0.74667rem;
+ line-height: 0.74667rem;
+ margin-top: 0.56rem;
+ text-align: center;
+ color: #FFDA24;
+ font-size: 0.32rem;
+ font-weight: 500;
+ background: url(../images/myBut.png) no-repeat;
+ background-size: 100% 100%;
+ float: right;
+}
diff --git a/view/yinmeng/modules/hourRank/css/index.scss b/view/yinmeng/modules/hourRank/css/index.scss
new file mode 100644
index 0000000..4edd0f8
--- /dev/null
+++ b/view/yinmeng/modules/hourRank/css/index.scss
@@ -0,0 +1,560 @@
+@function px2rem($px) {
+ @return $px / 75+rem;
+}
+
+html,
+body {
+ width: 100%;
+ // background: linear-gradient(0deg, #0F2E69 0%, #0B1836 99%);
+ background: #0B1836;
+ overflow: hidden;
+
+ &::-webkit-scrollbar {
+ display: none;
+ }
+}
+
+.layui-m-layershade {
+ background-color: rgba(0, 0, 0, .0) !important;
+}
+
+.layui-m-layer2 .layui-m-layerchild {
+ width: 3rem !important;
+ height: 3rem !important;
+ border: none !important;
+ box-shadow: none !important;
+ color: #fff !important;
+ background: rgba(0, 0, 0, .6) !important;
+}
+
+.layui-m-layer2 .layui-m-layercont {
+ text-align: center !important;
+ padding: 0 !important;
+ line-height: 0 !important;
+ margin-top: 0.8rem !important;
+}
+
+.back {
+ position: fixed;
+ top: px2rem(20);
+ left: px2rem(24);
+ z-index: 99;
+ width: px2rem(62);
+ height: px2rem(62);
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+
+ p {
+ color: #fff;
+ font-size: px2rem(32);
+ position: absolute;
+ width: 9rem;
+ left: 0;
+ top: 0;
+ height: 100%;
+ text-align: center;
+ line-height: px2rem(62);
+ }
+}
+
+.largestBox {
+ width: px2rem(750);
+ min-height: px2rem(1154);
+ background: url(../images/bg.png) no-repeat;
+ background-size: px2rem(750) px2rem(1154);
+ margin: 0 auto;
+ position: relative;
+ box-sizing: border-box;
+ padding: px2rem(88) 0 0 0;
+
+ .title {
+ width: px2rem(530);
+ height: px2rem(86);
+ position: absolute;
+ top: px2rem(-9);
+ left: 50%;
+ transform: translateX(-50%);
+ }
+
+ .lastHour {
+ width: px2rem(686);
+ margin: px2rem(0) auto px2rem(32);
+
+ .text {
+ width: 100%;
+ color: #FFDA24;
+ font-size: px2rem(28);
+ margin-bottom: px2rem(18);
+ font-weight: 600;
+ }
+ }
+
+ .box {
+ width: px2rem(686);
+ height: px2rem(176);
+ background: url(../images/lastHour.png) no-repeat;
+ background-size: 100% 100%;
+ position: relative;
+ box-sizing: border-box;
+ padding: 0 px2rem(24);
+
+ .txbox {
+ width: px2rem(152);
+ height: px2rem(184);
+ background: url(../images/hourTs.png) no-repeat;
+ background-size: 100% 100%;
+ position: relative;
+ margin-right: px2rem(18);
+ float: left;
+
+ .hourTs {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+ }
+
+ .tx {
+ width: px2rem(108);
+ height: px2rem(108);
+ border-radius: 50%;
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%);
+ top: px2rem(30);
+ }
+ }
+
+ .userInfo {
+ float: left;
+ width: px2rem(280);
+ position: relative;
+ height: 100%;
+
+ p {
+ width: 100%;
+ margin-top: px2rem(28);
+ color: #E6ECF5;
+ font-size: px2rem(28);
+ font-weight: 500;
+ // 超出省略号
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .mvp {
+ width: px2rem(56);
+ height: px2rem(56);
+ border-radius: 50%;
+ border: px2rem(2) solid #FFDA24;
+ position: absolute;
+ top: px2rem(80);
+
+ .mvpTx {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ border-radius: 50%;
+ }
+
+ span {
+ width: px2rem(68);
+ height: px2rem(22);
+ line-height: px2rem(22);
+ border-radius: px2rem(22);
+ position: absolute;
+ top: px2rem(46);
+ left: 50%;
+ transform: translateX(-50%);
+ text-align: center;
+ color: #FFFFFF;
+ font-size: px2rem(14);
+ background: linear-gradient(180deg, #FFDA24 0%, #FF8615 100%);
+ padding: 0 px2rem(2);
+ }
+ }
+
+ .member {
+ width: px2rem(172);
+ height: px2rem(52);
+ border-radius: px2rem(52);
+ position: absolute;
+ left: px2rem(90);
+ top: px2rem(88);
+ background: rgba(255, 255, 255, 0.4);
+
+ img {
+ position: absolute;
+ width: px2rem(36);
+ height: px2rem(36);
+ border: px2rem(2) solid #FFDA24;
+ border-radius: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+
+ .memberTx1 {
+ left: px2rem(12);
+ }
+
+ .memberTx2 {
+ left: px2rem(40);
+ z-index: 2;
+ }
+
+ .memberTx3 {
+ left: px2rem(68);
+ z-index: 3;
+ }
+
+ .memberTx4 {
+ left: px2rem(96);
+ z-index: 4;
+ }
+
+ .memberTx5 {
+ left: px2rem(124);
+ z-index: 5;
+ }
+ }
+
+
+ }
+
+ .score {
+ float: right;
+ height: 100%;
+ line-height: px2rem(176);
+
+ img {
+ display: inline-block;
+ width: px2rem(28);
+ height: px2rem(28);
+ vertical-align: middle;
+ }
+
+ span {
+ color: #FFDA24;
+ font-weight: 600;
+ font-size: px2rem(32);
+ vertical-align: middle;
+ }
+ }
+ }
+
+ .hourList {
+ width: 100%;
+
+ .top {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ box-sizing: border-box;
+ padding: 0 px2rem(40);
+ margin-bottom: px2rem(20);
+
+ .sp {
+ color: #FFDA24;
+ font-size: px2rem(28);
+ font-weight: 600;
+ }
+
+ span {
+ color: #B1B5BD;
+ font-size: px2rem(24);
+ font-weight: 600;
+
+ b {
+ color: #FFDA24;
+ }
+ }
+ }
+
+ ul {
+ width: 100%;
+ height: 7rem;
+ overflow-y: scroll;
+ box-sizing: border-box;
+ padding-bottom: px2rem(50);
+
+ &::-webkit-scrollbar {
+ display: none;
+ }
+
+ li {
+ width: 100%;
+ height: px2rem(160);
+ backdrop-filter: blur(0px);
+ box-sizing: border-box;
+ padding: 0 px2rem(40);
+ background: RGBA(11, 24, 57, 1);
+
+ .num {
+ width: px2rem(48);
+ height: px2rem(48);
+ text-align: center;
+ color: #E6ECF5;
+ font-size: px2rem(32);
+ font-weight: 500;
+ float: left;
+ margin-top: px2rem(56);
+ margin-right: px2rem(32);
+ float: left;
+ }
+
+ .num1 {
+ background: url(../images/no1.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ .num2 {
+ background: url(../images/no2.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ .num3 {
+ background: url(../images/no3.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ .tx {
+ width: px2rem(96);
+ height: px2rem(96);
+ border-radius: 50%;
+ margin-top: px2rem(32);
+ margin-right: px2rem(24);
+ display: block;
+ float: left;
+ }
+
+ .userInfo {
+ float: left;
+ width: px2rem(280);
+ position: relative;
+ height: 100%;
+
+ p {
+ width: 100%;
+ margin-top: px2rem(20);
+ color: #E6ECF5;
+ font-size: px2rem(28);
+ font-weight: 500;
+ // 超出省略号
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .mvp {
+ width: px2rem(56);
+ height: px2rem(56);
+ border-radius: 50%;
+ border: px2rem(2) solid #FFDA24;
+ position: absolute;
+ top: px2rem(72);
+
+ .mvpTx {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ border-radius: 50%;
+ }
+
+ span {
+ width: px2rem(68);
+ height: px2rem(22);
+ line-height: px2rem(22);
+ border-radius: px2rem(22);
+ position: absolute;
+ top: px2rem(46);
+ left: 50%;
+ transform: translateX(-50%);
+ text-align: center;
+ color: #FFFFFF;
+ font-size: px2rem(14);
+ background: linear-gradient(180deg, #FFDA24 0%, #FF8615 100%);
+ padding: 0 px2rem(2);
+ }
+ }
+
+ .member {
+ width: px2rem(172);
+ height: px2rem(52);
+ border-radius: px2rem(52);
+ position: absolute;
+ left: px2rem(90);
+ top: px2rem(80);
+ background: rgba(255, 255, 255, 0.4);
+
+ img {
+ position: absolute;
+ width: px2rem(36);
+ height: px2rem(36);
+ border: px2rem(2) solid #FFDA24;
+ border-radius: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+
+ .memberTx1 {
+ left: px2rem(12);
+ }
+
+ .memberTx2 {
+ left: px2rem(40);
+ z-index: 2;
+ }
+
+ .memberTx3 {
+ left: px2rem(68);
+ z-index: 3;
+ }
+
+ .memberTx4 {
+ left: px2rem(96);
+ z-index: 4;
+ }
+
+ .memberTx5 {
+ left: px2rem(124);
+ z-index: 5;
+ }
+ }
+ }
+
+ .score {
+ float: right;
+ color: #E6ECF5;
+ font-size: px2rem(28);
+ font-weight: 600;
+ margin-top: px2rem(44);
+ text-align: right;
+
+ p {
+ margin-bottom: px2rem(10);
+ }
+
+ span {
+ color: #B1B5BD;
+ font-size: px2rem(22);
+ font-weight: 400;
+ display: block;
+ }
+ }
+
+ .first {
+ position: absolute;
+ width: px2rem(64);
+ height: px2rem(28);
+ right: px2rem(40);
+ top: 50%;
+ transform: translateY(-50%);
+ }
+ }
+
+ .li1 {
+ background: linear-gradient(270deg, rgba(255, 204, 0, 0) 0%, rgba(255, 199, 44, 0.35) 100%);
+ }
+
+ .li2 {
+ background: linear-gradient(270deg, rgba(109, 139, 209, 0) 0%, rgba(135, 158, 204, 0.35) 100%);
+ }
+
+ .li3 {
+ background: linear-gradient(270deg, rgba(163, 102, 46, 0) 0%, rgba(198, 135, 81, 0.35) 100%);
+ }
+ }
+ }
+}
+
+.my {
+ width: 100%;
+ height: px2rem(154);
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ background: url(../images/my.png) no-repeat;
+ background-size: 100% 100%;
+ width: 100%;
+ height: px2rem(160);
+ box-sizing: border-box;
+ padding: 0 px2rem(40);
+
+ .num {
+ // width: px2rem(48);
+ height: px2rem(48);
+ text-align: center;
+ color: #E6ECF5;
+ font-size: px2rem(32);
+ font-weight: 500;
+ float: left;
+ margin-top: px2rem(56);
+ margin-right: px2rem(32);
+ float: left;
+ }
+
+ .tx {
+ width: px2rem(96);
+ height: px2rem(96);
+ border-radius: 50%;
+ margin-top: px2rem(32);
+ margin-right: px2rem(24);
+ display: block;
+ float: left;
+ }
+
+ .score {
+ float: left;
+ color: #E6ECF5;
+ font-size: px2rem(28);
+ font-weight: 600;
+ margin-top: px2rem(44);
+ width: px2rem(280);
+
+ p {
+ width: 100%;
+ margin-bottom: px2rem(10);
+ // 超出省略号
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ span {
+ color: #B1B5BD;
+ font-size: px2rem(22);
+ font-weight: 400;
+ display: block;
+
+ b {
+ color: #E6ECF5;
+ }
+ }
+ }
+
+ .but {
+ width: px2rem(132);
+ height: px2rem(56);
+ line-height: px2rem(56);
+ margin-top: px2rem(42);
+ text-align: center;
+ color: #FFDA24;
+ font-size: px2rem(24);
+ font-weight: 500;
+ background: url(../images/myBut.png) no-repeat;
+ background-size: 100% 100%;
+ float: right;
+ }
+}
\ No newline at end of file
diff --git a/view/yinmeng/modules/hourRank/images/bg.png b/view/yinmeng/modules/hourRank/images/bg.png
new file mode 100644
index 0000000..f8afc86
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/bg.png differ
diff --git a/view/yinmeng/modules/hourRank/images/first.png b/view/yinmeng/modules/hourRank/images/first.png
new file mode 100644
index 0000000..efd43cb
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/first.png differ
diff --git a/view/yinmeng/modules/hourRank/images/hot.png b/view/yinmeng/modules/hourRank/images/hot.png
new file mode 100644
index 0000000..3b08c52
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/hot.png differ
diff --git a/view/yinmeng/modules/hourRank/images/hourTs.png b/view/yinmeng/modules/hourRank/images/hourTs.png
new file mode 100644
index 0000000..2a0a426
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/hourTs.png differ
diff --git a/view/yinmeng/modules/hourRank/images/lastHour.png b/view/yinmeng/modules/hourRank/images/lastHour.png
new file mode 100644
index 0000000..68f9e9b
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/lastHour.png differ
diff --git a/view/yinmeng/modules/hourRank/images/logo.png b/view/yinmeng/modules/hourRank/images/logo.png
new file mode 100644
index 0000000..4c661e5
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/logo.png differ
diff --git a/view/yinmeng/modules/hourRank/images/my.png b/view/yinmeng/modules/hourRank/images/my.png
new file mode 100644
index 0000000..f6631ef
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/my.png differ
diff --git a/view/yinmeng/modules/hourRank/images/myBut.png b/view/yinmeng/modules/hourRank/images/myBut.png
new file mode 100644
index 0000000..5afd716
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/myBut.png differ
diff --git a/view/yinmeng/modules/hourRank/images/no1.png b/view/yinmeng/modules/hourRank/images/no1.png
new file mode 100644
index 0000000..72c6b2b
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/no1.png differ
diff --git a/view/yinmeng/modules/hourRank/images/no2.png b/view/yinmeng/modules/hourRank/images/no2.png
new file mode 100644
index 0000000..d2925cc
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/no2.png differ
diff --git a/view/yinmeng/modules/hourRank/images/no3.png b/view/yinmeng/modules/hourRank/images/no3.png
new file mode 100644
index 0000000..f1c8501
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/no3.png differ
diff --git a/view/yinmeng/modules/hourRank/images/title.png b/view/yinmeng/modules/hourRank/images/title.png
new file mode 100644
index 0000000..6966222
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/title.png differ
diff --git a/view/yinmeng/modules/hourRank/images/travel/back.png b/view/yinmeng/modules/hourRank/images/travel/back.png
new file mode 100644
index 0000000..7b81adb
Binary files /dev/null and b/view/yinmeng/modules/hourRank/images/travel/back.png differ
diff --git a/view/yinmeng/modules/hourRank/index.html b/view/yinmeng/modules/hourRank/index.html
new file mode 100644
index 0000000..ea46343
--- /dev/null
+++ b/view/yinmeng/modules/hourRank/index.html
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+ 小时榜
+
+
+
+
+
+
+
+
+
+
+

+
+
+
上小时 top1
+
+
+

+

+
+
+
+
+

+
最佳助力
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
未上榜
+

+
+
打榜助力
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/yinmeng/modules/hourRank/js/index.js b/view/yinmeng/modules/hourRank/js/index.js
new file mode 100644
index 0000000..6e5cd0a
--- /dev/null
+++ b/view/yinmeng/modules/hourRank/js/index.js
@@ -0,0 +1,188 @@
+let urlPrefix = getUrlPrefix()
+let browser = checkVersion()
+let env = EnvCheck();
+var urlData = getQueryString();
+if (env == 'test') {
+ new VConsole();
+}
+// 封装layer消息提醒框
+let layerIndex
+const showLoading = (content = '加载中...') => {
+ layer.open({
+ type: 2,
+ shadeClose: false,
+ content,
+ success (e) {
+ layerIndex = $(e).attr('index')
+ }
+ })
+}
+const hideLoading = (index) => {
+ layer.close(index)
+}
+const toastMsg = (content = '操作完成', time = 2) => {
+ layer.open({
+ content,
+ time,
+ skin: 'msg'
+ })
+}
+var timeOut2;
+var leftTime;
+// 初始化函数
+$(function () {
+ getInfoFromClient()
+ setTimeout(function () {
+ // 页面全屏
+ if (browser.app) {
+ if (browser.android) {
+ window.androidJsObj.initShowNav(false)
+ } else {
+ window.webkit.messageHandlers.initShowNav.postMessage(0)
+ }
+ };
+ // 顶部返回事件
+ $('.back').click(() => {
+ if (browser.android) {
+ window.androidJsObj.closeWebView()
+ } else {
+ window.webkit.messageHandlers.closeWebView.postMessage(null)
+ }
+ })
+ getHourRank();
+ }, 100)
+})
+// 小时榜接口
+function getHourRank () {
+ showLoading()
+ networkRequest({
+ type: 'GEt',
+ url: urlPrefix + '/room/permitRoom/hourRank',
+ data: { roomUid: urlData.roomUid },
+ success (res) {
+ if (res.code === 200) {
+ // ==================================设置倒计时===========================
+ nowTime = res.timestamp;
+ $('.largestBox .hourList .top .sp').text(`${dateFormat(nowTime, 'hh')}点 小时榜`)
+ // 获取当前时间
+ now = new Date(nowTime);
+ // 计算距离下一个小时的分钟数
+ var minutesToNextHour = (59 - now.getMinutes()) % 60;
+ // 计算距离下一个小时的秒数
+ var secondsToNextHour = 59 - now.getSeconds();
+ // 计算距离下一个小时的总时间(以毫秒为单位)
+ var timeToNextHour = (minutesToNextHour * 60 * 1000) + (secondsToNextHour * 1000);
+ leftTime = timeToNextHour;
+ countup();
+ // =================================上期前三===========================
+ lastHourRank = res.data.lastHourRank[0];
+ if (lastHourRank) {
+ $('.largestBox .box .txbox .tx').attr("src", lastHourRank.avatar);
+ $('.largestBox .box .userInfo p').text(lastHourRank.nick);
+ $('.largestBox .box .userInfo .mvp .mvpTx').attr("src", lastHourRank.assist.avatar);
+ lastHourRank.micUsers.forEach((res, i) => {
+ $(`.largestBox .hourList ul li .userInfo .member .memberTx${i + 1}`).attr("src", res.avatar);
+ });
+ $('.largestBox .box .score span').text(res.score);
+ } else {
+ $('.largestBox .box .txbox .tx').attr("src", './images/logo.png');
+ $('.largestBox .box .userInfo p').text('虚位以待');
+ $('.largestBox .box .userInfo .mvp .mvpTx').attr("src", './images/logo.png');
+ $('.largestBox .box .score span').text(0);
+ }
+ //================================= 当前小时榜===========================
+ $('.largestBox .hourList ul li').remove();
+ var str = '';
+ res.data.currHourRank.forEach((res, i) => {
+ str += `
+
+ ${i > 2 ? i : ''}
+
+
+
${res.nick}
+
+

+
最佳助力
+
+
+
+
+
${i == 0 ? res.score : res.data.currHourRank[i - 1].score - res.score}
+
距上一名
+
+
+
+ `
+ })
+ $('.largestBox .hourList ul').append(str);
+ // ====================================处理自己===========================
+ $('.my .tx').attr('src', res.data.currRoomInfo.avatar);
+ $('.my .tx').attr('uid', res.data.currRoomInfo.uid);
+ $('.my .score p').text(res.data.currRoomInfo.nick);
+ var uid = res.data.currRoomInfo.uid;
+ if (res.data.currHourRank.find(obj => obj.uid == res.data.currRoomInfo.uid)) {
+ res.data.currHourRank.forEach((val, i) => {
+ if (uid == val.uid) {
+ $('.my .score span').show();
+ $('.my .score span b').text(i == 0 ? 0 : res.data.currHourRank[i - 1].score - val.score);
+ $(`.my .num`).text(i + 1);
+ $(`.my .score p`).css('margin-top', '0rem')
+ }
+ })
+ } else {
+ $('.my .score span').hide();
+ $(`.my .num`).text('未上榜');
+ $(`.my .score p`).css('margin-top', '0.3rem')
+ }
+ } else {
+ toastMsg(res.message)
+ }
+ hideLoading(layerIndex)
+ },
+ error (err) {
+ hideLoading(layerIndex)
+ toastMsg('网络错误,请退出重进')
+ }
+ })
+}
+// 倒计时
+function countup () {
+ clearTimeout(timeOut2)
+ //获取当前时间
+ // var now = nowTime;
+ var d = 0;
+ var h = 0;
+ var m = 0;
+ var s = 0;
+ //定义变量 d,h,m,s保存倒计时的时间
+ var d, h, m, s;
+ //递归每秒调⽤countTime⽅法,显⽰动态时间效果
+ if (leftTime > 0) {
+ d = getzf(Math.floor(leftTime / 1000 / 60 / 60 / 24));
+ h = getzf(Math.floor(leftTime / 1000 / 60 / 60 % 24));
+ m = getzf(Math.floor(leftTime / 1000 / 60 % 60));
+ s = getzf(Math.floor(leftTime / 1000 % 60));
+ //将倒计时赋值到div中
+ // console.log("最终: " + dateFormat(leftTime, '00:mm:ss'));
+ $('.largestBox .hourList .top .sp2').html(`剩余${dateFormat(leftTime, 'mm')}分${dateFormat(leftTime, 'ss')}秒`)
+ } else {
+ getHourRank();
+ }
+ if (leftTime > 0) {
+ leftTime = leftTime - 1000;
+ }
+ timeOut2 = setTimeout(countup, 1000);
+}
+//补0操作
+function getzf (num) {
+ if (parseInt(num) < 10) {
+ num = '0' + num;
+ }
+ return num;
+}
\ No newline at end of file
diff --git a/view/yinmeng/modules/roomRank/css/index.css b/view/yinmeng/modules/roomRank/css/index.css
new file mode 100644
index 0000000..aaed3fe
--- /dev/null
+++ b/view/yinmeng/modules/roomRank/css/index.css
@@ -0,0 +1,544 @@
+html,
+body {
+ width: 100%;
+ background: linear-gradient(0deg, #020B27 0%, #1D181B 99%);
+ backdrop-filter: blur(0px);
+ overflow: hidden;
+}
+
+.back {
+ position: fixed;
+ top: 0.26667rem;
+ left: 0.32rem;
+ z-index: 99;
+ width: 0.82667rem;
+ height: 0.82667rem;
+}
+
+.back img {
+ width: 100%;
+ height: 100%;
+}
+
+.back p {
+ color: #fff;
+ font-size: 0.42667rem;
+ position: absolute;
+ width: 9rem;
+ left: 0;
+ top: 0;
+ height: 100%;
+ text-align: center;
+ line-height: 0.82667rem;
+}
+
+.largestBox {
+ width: 10rem;
+ min-height: 15.38667rem;
+ background: url(../images/bg.png) no-repeat;
+ background-size: 10rem 15.38667rem;
+ margin: 0 auto;
+ position: relative;
+ box-sizing: border-box;
+ padding: 1.2rem 0 0 0;
+}
+
+.largestBox .title {
+ width: 7.06667rem;
+ height: 1.14667rem;
+ position: absolute;
+ top: -0.14667rem;
+ left: 50%;
+ transform: translateX(-50%);
+}
+
+.largestBox .tab {
+ width: 3.65333rem;
+ height: 0.53333rem;
+ line-height: 0.53333rem;
+ display: flex;
+ justify-content: space-between;
+ margin: 0 auto 0;
+}
+
+.largestBox .tab div {
+ position: relative;
+ color: rgba(255, 255, 255, 0.7);
+ font-size: 0.37333rem;
+ font-weight: 600;
+}
+
+.largestBox .tab div span {
+ background: none;
+ width: 0.32rem;
+ height: 0.08rem;
+ border-radius: 0.08rem;
+ position: absolute;
+ bottom: -0.10667rem;
+ left: 50%;
+ transform: translateX(-50%);
+}
+
+.largestBox .tab .tabColor1 {
+ color: #fff;
+ font-size: 0.37333rem;
+}
+
+.largestBox .tab .tabColor1 span {
+ background: #FA7814;
+}
+
+.largestBox .tab .tabColor2 {
+ color: #fff;
+}
+
+.largestBox .tab .tabColor2 span {
+ background: #A34DFF;
+}
+
+.largestBox .dayTab {
+ width: 5.33333rem;
+ height: 0.61333rem;
+ margin: 0.34667rem auto 0;
+ display: flex;
+ justify-content: space-between;
+}
+
+.largestBox .dayTab div {
+ width: 1.33333rem;
+ height: 0.61333rem;
+ line-height: 0.61333rem;
+ border-radius: 0.61333rem;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.7);
+ background: rgba(210, 172, 252, 0.4);
+ font-size: 0.32rem;
+ font-weight: 500;
+}
+
+.largestBox .dayTab .dayTabColor1 {
+ background: #fff;
+ color: #FA7814;
+}
+
+.largestBox .dayTab .dayTabColor2 {
+ background: #fff;
+ color: #A34DFF;
+}
+
+.largestBox .top3 {
+ width: 8.8rem;
+ height: 0.01333rem;
+ margin: 3.04rem auto 0;
+ position: relative;
+}
+
+.largestBox .top3 .no1 {
+ width: 3.17333rem;
+ height: 2.88rem;
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%);
+ top: -2.88rem;
+}
+
+.largestBox .top3 .no1 .box {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+}
+
+.largestBox .top3 .no1 .box .ts {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+}
+
+.largestBox .top3 .no1 .box .tx {
+ width: 2.08rem;
+ height: 2.08rem;
+ position: absolute;
+ left: 50%;
+ top: 0.58667rem;
+ transform: translateX(-50%);
+ border-radius: 50%;
+}
+
+.largestBox .top3 .no1 .box p {
+ width: 100%;
+ position: absolute;
+ left: 0;
+ bottom: -0.56rem;
+ text-align: center;
+}
+
+.largestBox .top3 .no1 .box p span {
+ vertical-align: middle;
+ color: #E6ECF5;
+ font-size: 0.37333rem;
+}
+
+.largestBox .top3 .no1 .box p .sp {
+ width: 0.37333rem;
+ height: 0.37333rem;
+ border-radius: 50%;
+ display: inline-block;
+}
+
+.largestBox .top3 .no1 .box p .sp img {
+ display: inline-block;
+ width: 0.21333rem;
+ height: 0.21333rem;
+ border-radius: 50%;
+ margin: 0.06667rem auto 0;
+}
+
+.largestBox .top3 .no1 .box p .boy {
+ background: #6BB3FF;
+}
+
+.largestBox .top3 .no1 .box p .woman {
+ background: #FF80CC;
+}
+
+.largestBox .top3 .no1 .box .icon {
+ width: 100%;
+ height: 0.48rem;
+ position: absolute;
+ left: 0;
+ display: flex;
+ justify-content: space-between;
+ box-sizing: border-box;
+ bottom: -1.12rem;
+ padding: 0 0.6rem;
+}
+
+.largestBox .top3 .no1 .box .icon img {
+ display: block;
+ width: 0.96rem;
+ height: 0.48rem;
+}
+
+.largestBox .top3 .no1 .box .score {
+ width: 100%;
+ text-align: center;
+ color: #FFDA24;
+ font-size: 0.32rem;
+ font-weight: 500;
+ position: absolute;
+ left: 0;
+ bottom: -1.53333rem;
+}
+
+.largestBox .top3 .no2 {
+ width: 2.66667rem;
+ height: 2.37333rem;
+ position: absolute;
+ left: 0;
+ top: -2.4rem;
+}
+
+.largestBox .top3 .no2 .box {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+}
+
+.largestBox .top3 .no2 .box .ts {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+}
+
+.largestBox .top3 .no2 .box .tx {
+ width: 1.70667rem;
+ height: 1.70667rem;
+ position: absolute;
+ left: 50%;
+ top: 0.45333rem;
+ transform: translateX(-50%);
+ border-radius: 50%;
+}
+
+.largestBox .top3 .no2 .box p {
+ width: 100%;
+ position: absolute;
+ left: 0;
+ bottom: -0.56rem;
+ text-align: center;
+}
+
+.largestBox .top3 .no2 .box p span {
+ vertical-align: middle;
+ color: #E6ECF5;
+ font-size: 0.37333rem;
+}
+
+.largestBox .top3 .no2 .box p .sp {
+ width: 0.37333rem;
+ height: 0.37333rem;
+ border-radius: 50%;
+ display: inline-block;
+}
+
+.largestBox .top3 .no2 .box p .sp img {
+ display: inline-block;
+ width: 0.21333rem;
+ height: 0.21333rem;
+ border-radius: 50%;
+ margin: 0.06667rem auto 0;
+}
+
+.largestBox .top3 .no2 .box p .boy {
+ background: #6BB3FF;
+}
+
+.largestBox .top3 .no2 .box p .woman {
+ background: #FF80CC;
+}
+
+.largestBox .top3 .no2 .box .icon {
+ width: 100%;
+ height: 0.48rem;
+ position: absolute;
+ left: 0;
+ display: flex;
+ justify-content: space-between;
+ box-sizing: border-box;
+ bottom: -1.12rem;
+ padding: 0 0.33333rem;
+}
+
+.largestBox .top3 .no2 .box .icon img {
+ display: block;
+ width: 0.96rem;
+ height: 0.48rem;
+}
+
+.largestBox .top3 .no2 .box .score {
+ width: 100%;
+ text-align: center;
+ color: #FFDA24;
+ font-size: 0.32rem;
+ font-weight: 500;
+ position: absolute;
+ left: 0;
+ bottom: -1.53333rem;
+}
+
+.largestBox .top3 .no3 {
+ width: 2.66667rem;
+ height: 2.37333rem;
+ position: absolute;
+ right: 0;
+ top: -2.4rem;
+}
+
+.largestBox .top3 .no3 .box {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+}
+
+.largestBox .top3 .no3 .box .ts {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+}
+
+.largestBox .top3 .no3 .box .tx {
+ width: 1.70667rem;
+ height: 1.70667rem;
+ position: absolute;
+ left: 50%;
+ top: 0.45333rem;
+ transform: translateX(-50%);
+ border-radius: 50%;
+}
+
+.largestBox .top3 .no3 .box p {
+ width: 100%;
+ position: absolute;
+ left: 0;
+ bottom: -0.56rem;
+ text-align: center;
+}
+
+.largestBox .top3 .no3 .box p span {
+ vertical-align: middle;
+ color: #E6ECF5;
+ font-size: 0.37333rem;
+}
+
+.largestBox .top3 .no3 .box p .sp {
+ width: 0.37333rem;
+ height: 0.37333rem;
+ border-radius: 50%;
+ display: inline-block;
+}
+
+.largestBox .top3 .no3 .box p .sp img {
+ display: inline-block;
+ width: 0.21333rem;
+ height: 0.21333rem;
+ border-radius: 50%;
+ margin: 0.06667rem auto 0;
+}
+
+.largestBox .top3 .no3 .box p .boy {
+ background: #6BB3FF;
+}
+
+.largestBox .top3 .no3 .box p .woman {
+ background: #FF80CC;
+}
+
+.largestBox .top3 .no3 .box .icon {
+ width: 100%;
+ height: 0.48rem;
+ position: absolute;
+ left: 0;
+ display: flex;
+ justify-content: space-between;
+ box-sizing: border-box;
+ bottom: -1.12rem;
+ padding: 0 0.33333rem;
+}
+
+.largestBox .top3 .no3 .box .icon img {
+ display: block;
+ width: 0.96rem;
+ height: 0.48rem;
+}
+
+.largestBox .top3 .no3 .box .score {
+ width: 100%;
+ text-align: center;
+ color: #FFDA24;
+ font-size: 0.32rem;
+ font-weight: 500;
+ position: absolute;
+ left: 0;
+ bottom: -1.53333rem;
+}
+
+.largestBox ul {
+ width: 9.57333rem;
+ height: 7.70667rem;
+ margin: 1.81333rem auto 0;
+ background: rgba(255, 167, 141, 0.16);
+ border-radius: 0.42667rem 0.42667rem 0px 0px;
+ border: 0.02667rem solid rgba(255, 217, 115, 0.5);
+ backdrop-filter: blur(7px);
+ border-bottom: none;
+ box-sizing: border-box;
+ padding: 0.21333rem 0 1.86667rem;
+ overflow-y: scroll;
+}
+
+.largestBox ul::-webkit-scrollbar {
+ display: none;
+}
+
+.largestBox ul li {
+ width: 100%;
+ height: 1.92rem;
+ box-sizing: border-box;
+ padding: 0 0.33333rem;
+ overflow: hidden;
+}
+
+.largestBox ul li .num {
+ width: 0.53333rem;
+ height: 100%;
+ line-height: 1.92rem;
+ text-align: center;
+ color: #E6ECF5;
+ font-size: 0.42667rem;
+ font-weight: 500;
+ float: left;
+ margin-right: 0.16rem;
+}
+
+.largestBox ul li .tx {
+ display: block;
+ float: left;
+ width: 1.28rem;
+ height: 1.28rem;
+ border-radius: 1.28rem;
+ margin-top: 0.32rem;
+ margin-right: 0.21333rem;
+}
+
+.largestBox ul li .userInfo {
+ width: 2.8rem;
+ float: left;
+}
+
+.largestBox ul li .userInfo p {
+ width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ margin-top: 0.4rem;
+ margin-bottom: 0.10667rem;
+ color: #E6ECF5;
+ font-size: 0.37333rem;
+ font-weight: 500;
+}
+
+.largestBox ul li .userInfo img {
+ display: inline-block;
+ width: 0.96rem;
+ height: 0.48rem;
+ margin-right: 0.10667rem;
+}
+
+.largestBox ul li .score {
+ float: right;
+ text-align: right;
+}
+
+.largestBox ul li .score p {
+ color: #E6ECF5;
+ font-size: 0.37333rem;
+ font-weight: 600;
+ margin-top: 0.48rem;
+ margin-bottom: 0.06667rem;
+}
+
+.largestBox ul li .score span {
+ color: #B1B5BD;
+ font-size: 0.29333rem;
+ font-weight: 400;
+ display: block;
+}
+
+.layui-m-layershade {
+ background-color: transparent !important;
+}
+
+.layui-m-layer2 .layui-m-layerchild {
+ width: 3rem !important;
+ height: 3rem !important;
+ border: none !important;
+ box-shadow: none !important;
+ color: #fff !important;
+ background: rgba(0, 0, 0, 0.6) !important;
+}
+
+.layui-m-layer2 .layui-m-layercont {
+ text-align: center !important;
+ padding: 0 !important;
+ line-height: 0 !important;
+ margin-top: 0.8rem !important;
+}
diff --git a/view/yinmeng/modules/roomRank/css/index.scss b/view/yinmeng/modules/roomRank/css/index.scss
new file mode 100644
index 0000000..8700765
--- /dev/null
+++ b/view/yinmeng/modules/roomRank/css/index.scss
@@ -0,0 +1,552 @@
+@function px2rem($px) {
+ @return $px / 75+rem;
+}
+
+html,
+body {
+ width: 100%;
+ background: linear-gradient(0deg, #020B27 0%, #1D181B 99%);
+ backdrop-filter: blur(0px);
+ // background: #0B1836;
+ overflow: hidden;
+}
+
+.back {
+ position: fixed;
+ top: px2rem(20);
+ left: px2rem(24);
+ z-index: 99;
+ width: px2rem(62);
+ height: px2rem(62);
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+
+ p {
+ color: #fff;
+ font-size: px2rem(32);
+ position: absolute;
+ width: 9rem;
+ left: 0;
+ top: 0;
+ height: 100%;
+ text-align: center;
+ line-height: px2rem(62);
+ }
+}
+
+.largestBox {
+ width: px2rem(750);
+ min-height: px2rem(1154);
+ background: url(../images/bg.png) no-repeat;
+ background-size: px2rem(750) px2rem(1154);
+ margin: 0 auto;
+ position: relative;
+ box-sizing: border-box;
+ padding: px2rem(90) 0 0 0;
+
+ .title {
+ width: px2rem(530);
+ height: px2rem(86);
+ position: absolute;
+ top: px2rem(-11);
+ left: 50%;
+ transform: translateX(-50%);
+ }
+
+ .tab {
+ width: px2rem(274);
+ height: px2rem(40);
+ line-height: px2rem(40);
+ display: flex;
+ justify-content: space-between;
+ margin: 0 auto 0;
+
+ div {
+ position: relative;
+ color: rgba(255, 255, 255, .7);
+ font-size: px2rem(28);
+ font-weight: 600;
+
+ span {
+ background: none;
+ width: px2rem(24);
+ height: px2rem(6);
+ border-radius: px2rem(6);
+ position: absolute;
+ bottom: px2rem(-8);
+ left: 50%;
+ transform: translateX(-50%);
+ }
+ }
+
+ .tabColor1 {
+ color: #fff;
+ font-size: px2rem(28);
+
+ span {
+ background: #FA7814;
+ }
+ }
+
+ .tabColor2 {
+ color: #fff;
+
+ span {
+ background: #A34DFF;
+ }
+ }
+ }
+
+ .dayTab {
+ width: px2rem(400);
+ height: px2rem(46);
+ margin: px2rem(26) auto 0;
+ display: flex;
+ justify-content: space-between;
+
+ div {
+ width: px2rem(100);
+ height: px2rem(46);
+ line-height: px2rem(46);
+ border-radius: px2rem(46);
+ text-align: center;
+ color: rgba(255, 255, 255, .7);
+ background: rgba(210, 172, 252, .4);
+ font-size: px2rem(24);
+ font-weight: 500;
+ }
+
+ .dayTabColor1 {
+ background: #fff;
+ color: #FA7814;
+ }
+
+ .dayTabColor2 {
+ background: #fff;
+ color: #A34DFF;
+ }
+ }
+
+ .top3 {
+ width: px2rem(660);
+ height: px2rem(1);
+ margin: px2rem(228) auto 0;
+ position: relative;
+
+ .no1 {
+ width: px2rem(238);
+ height: px2rem(216);
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%);
+ top: px2rem(-216);
+
+ .box {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+
+ .ts {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+ }
+
+ .tx {
+ width: px2rem(156);
+ height: px2rem(156);
+ position: absolute;
+ left: 50%;
+ top: px2rem(44);
+ // top: px2rem(34);
+ transform: translateX(-50%);
+ border-radius: 50%;
+ }
+
+ p {
+ width: 100%;
+ position: absolute;
+ left: 0;
+ bottom: px2rem(-42);
+ text-align: center;
+
+ span {
+ vertical-align: middle;
+ color: #E6ECF5;
+ font-size: px2rem(28);
+ }
+
+ .sp {
+ width: px2rem(28);
+ height: px2rem(28);
+ border-radius: 50%;
+ display: inline-block;
+
+ img {
+ display: inline-block;
+ width: px2rem(16);
+ height: px2rem(16);
+ border-radius: 50%;
+ margin: px2rem(5) auto 0;
+ }
+ }
+
+ .boy {
+ background: #6BB3FF;
+ }
+
+ .woman {
+ background: #FF80CC;
+ }
+
+ }
+
+ .icon {
+ width: 100%;
+ height: px2rem(36);
+ position: absolute;
+ left: 0;
+ display: flex;
+ justify-content: space-between;
+ box-sizing: border-box;
+ bottom: px2rem(-84);
+ padding: 0 px2rem(45);
+
+ img {
+ display: block;
+ width: px2rem(72);
+ height: px2rem(36);
+ }
+ }
+
+ .score {
+ width: 100%;
+ text-align: center;
+ color: #FFDA24;
+ font-size: px2rem(24);
+ font-weight: 500;
+ position: absolute;
+ left: 0;
+ bottom: px2rem(-115);
+ }
+ }
+ }
+
+ .no2 {
+ width: px2rem(200);
+ height: px2rem(178);
+ position: absolute;
+ left: 0;
+ top: px2rem(-180);
+
+ .box {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+
+ .ts {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+ }
+
+ .tx {
+ width: px2rem(128);
+ height: px2rem(128);
+ position: absolute;
+ left: 50%;
+ top: px2rem(34);
+ transform: translateX(-50%);
+ border-radius: 50%;
+ }
+
+ p {
+ width: 100%;
+ position: absolute;
+ left: 0;
+ bottom: px2rem(-42);
+ text-align: center;
+
+ span {
+ vertical-align: middle;
+ color: #E6ECF5;
+ font-size: px2rem(28);
+ }
+
+ .sp {
+ width: px2rem(28);
+ height: px2rem(28);
+ border-radius: 50%;
+ display: inline-block;
+
+ img {
+ display: inline-block;
+ width: px2rem(16);
+ height: px2rem(16);
+ border-radius: 50%;
+ margin: px2rem(5) auto 0;
+ }
+ }
+
+ .boy {
+ background: #6BB3FF;
+ }
+
+ .woman {
+ background: #FF80CC;
+ }
+
+ }
+
+ .icon {
+ width: 100%;
+ height: px2rem(36);
+ position: absolute;
+ left: 0;
+ display: flex;
+ justify-content: space-between;
+ box-sizing: border-box;
+ bottom: px2rem(-84);
+ padding: 0 px2rem(25);
+
+ img {
+ display: block;
+ width: px2rem(72);
+ height: px2rem(36);
+ }
+ }
+
+ .score {
+ width: 100%;
+ text-align: center;
+ color: #FFDA24;
+ font-size: px2rem(24);
+ font-weight: 500;
+ position: absolute;
+ left: 0;
+ bottom: px2rem(-115);
+ }
+ }
+ }
+
+ .no3 {
+ width: px2rem(200);
+ height: px2rem(178);
+ position: absolute;
+ right: 0;
+ top: px2rem(-180);
+
+ .box {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+
+ .ts {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+ }
+
+ .tx {
+ width: px2rem(128);
+ height: px2rem(128);
+ position: absolute;
+ left: 50%;
+ top: px2rem(34);
+ transform: translateX(-50%);
+ border-radius: 50%;
+ }
+
+ p {
+ width: 100%;
+ position: absolute;
+ left: 0;
+ bottom: px2rem(-42);
+ text-align: center;
+
+ span {
+ vertical-align: middle;
+ color: #E6ECF5;
+ font-size: px2rem(28);
+ }
+
+ .sp {
+ width: px2rem(28);
+ height: px2rem(28);
+ border-radius: 50%;
+ display: inline-block;
+
+ img {
+ display: inline-block;
+ width: px2rem(16);
+ height: px2rem(16);
+ border-radius: 50%;
+ margin: px2rem(5) auto 0;
+ }
+ }
+
+ .boy {
+ background: #6BB3FF;
+ }
+
+ .woman {
+ background: #FF80CC;
+ }
+
+ }
+
+ .icon {
+ width: 100%;
+ height: px2rem(36);
+ position: absolute;
+ left: 0;
+ display: flex;
+ justify-content: space-between;
+ box-sizing: border-box;
+ bottom: px2rem(-84);
+ padding: 0 px2rem(25);
+
+ img {
+ display: block;
+ width: px2rem(72);
+ height: px2rem(36);
+ }
+ }
+
+ .score {
+ width: 100%;
+ text-align: center;
+ color: #FFDA24;
+ font-size: px2rem(24);
+ font-weight: 500;
+ position: absolute;
+ left: 0;
+ bottom: px2rem(-115);
+ }
+ }
+ }
+ }
+
+ ul {
+ width: px2rem(718);
+ height: px2rem(578);
+ margin: px2rem(136) auto 0;
+ background: rgba(255, 167, 141, 0.16);
+ border-radius: px2rem(32) px2rem(32) 0px 0px;
+ border: px2rem(2) solid rgba(255, 217, 115, 0.5);
+ backdrop-filter: blur(7px);
+ border-bottom: none;
+ box-sizing: border-box;
+ padding: px2rem(16) 0 px2rem(140);
+ overflow-y: scroll;
+ &::-webkit-scrollbar{
+ display: none;
+ }
+
+ li {
+ width: 100%;
+ height: px2rem(144);
+ box-sizing: border-box;
+ padding: 0 px2rem(25);
+ overflow: hidden;
+
+ .num {
+ width: px2rem(40);
+ height: 100%;
+ line-height: px2rem(144);
+ text-align: center;
+ color: #E6ECF5;
+ font-size: px2rem(32);
+ font-weight: 500;
+ float: left;
+ margin-right: px2rem(12);
+ }
+
+ .tx {
+ display: block;
+ float: left;
+ width: px2rem(96);
+ height: px2rem(96);
+ border-radius: px2rem(96);
+ margin-top: px2rem(24);
+ margin-right: px2rem(16);
+ }
+
+ .userInfo {
+ width: px2rem(210);
+ float: left;
+
+ p {
+ width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ margin-top: px2rem(30);
+ margin-bottom: px2rem(8);
+ color: #E6ECF5;
+ font-size: px2rem(28);
+ font-weight: 500;
+ }
+
+ img {
+ display: inline-block;
+ width: px2rem(72);
+ height: px2rem(36);
+ margin-right: px2rem(8);
+ }
+ }
+
+ .score {
+ float: right;
+ text-align: right;
+
+ p {
+ color: #E6ECF5;
+ font-size: px2rem(28);
+ font-weight: 600;
+ margin-top: px2rem(36);
+ margin-bottom: px2rem(5);
+ }
+
+ span {
+ color: #B1B5BD;
+ font-size: px2rem(22);
+ font-weight: 400;
+ display: block;
+ }
+ }
+ }
+ }
+}
+
+.layui-m-layershade {
+ background-color: rgba(0, 0, 0, .0) !important;
+}
+
+.layui-m-layer2 .layui-m-layerchild {
+ width: 3rem !important;
+ height: 3rem !important;
+ border: none !important;
+ box-shadow: none !important;
+ color: #fff !important;
+ background: rgba(0, 0, 0, .6) !important;
+}
+
+.layui-m-layer2 .layui-m-layercont {
+ text-align: center !important;
+ padding: 0 !important;
+ line-height: 0 !important;
+ margin-top: 0.8rem !important;
+}
\ No newline at end of file
diff --git a/view/yinmeng/modules/roomRank/images/bg.png b/view/yinmeng/modules/roomRank/images/bg.png
new file mode 100644
index 0000000..956bac8
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/bg.png differ
diff --git a/view/yinmeng/modules/roomRank/images/boy.png b/view/yinmeng/modules/roomRank/images/boy.png
new file mode 100644
index 0000000..290a144
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/boy.png differ
diff --git a/view/yinmeng/modules/roomRank/images/icon1.png b/view/yinmeng/modules/roomRank/images/icon1.png
new file mode 100644
index 0000000..b02ae52
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/icon1.png differ
diff --git a/view/yinmeng/modules/roomRank/images/icon2.png b/view/yinmeng/modules/roomRank/images/icon2.png
new file mode 100644
index 0000000..79f2ac8
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/icon2.png differ
diff --git a/view/yinmeng/modules/roomRank/images/logo.png b/view/yinmeng/modules/roomRank/images/logo.png
new file mode 100644
index 0000000..4c661e5
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/logo.png differ
diff --git a/view/yinmeng/modules/roomRank/images/no1.png b/view/yinmeng/modules/roomRank/images/no1.png
new file mode 100644
index 0000000..c537076
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/no1.png differ
diff --git a/view/yinmeng/modules/roomRank/images/no2.png b/view/yinmeng/modules/roomRank/images/no2.png
new file mode 100644
index 0000000..03173ba
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/no2.png differ
diff --git a/view/yinmeng/modules/roomRank/images/no3.png b/view/yinmeng/modules/roomRank/images/no3.png
new file mode 100644
index 0000000..550c860
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/no3.png differ
diff --git a/view/yinmeng/modules/roomRank/images/title.png b/view/yinmeng/modules/roomRank/images/title.png
new file mode 100644
index 0000000..d4c308c
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/title.png differ
diff --git a/view/yinmeng/modules/roomRank/images/woman.png b/view/yinmeng/modules/roomRank/images/woman.png
new file mode 100644
index 0000000..a913018
Binary files /dev/null and b/view/yinmeng/modules/roomRank/images/woman.png differ
diff --git a/view/yinmeng/modules/roomRank/index.html b/view/yinmeng/modules/roomRank/index.html
new file mode 100644
index 0000000..e821520
--- /dev/null
+++ b/view/yinmeng/modules/roomRank/index.html
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+ 房间榜
+
+
+
+
+
+
+
+
+
+

+
+
+
+ 财富榜
+
+
+
+ 魅力榜
+
+
+
+
+
+
+
+
+
+

+

+
+ 我是很长的...
+
+
+
+

+

+
+
10000
+
+
+
+
+
+
+
+ -
+
4
+
+
+
我是名字名字名字名字名字
+

+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/yinmeng/modules/roomRank/js/index.js b/view/yinmeng/modules/roomRank/js/index.js
new file mode 100644
index 0000000..2ed0421
--- /dev/null
+++ b/view/yinmeng/modules/roomRank/js/index.js
@@ -0,0 +1,73 @@
+let urlPrefix = getUrlPrefix()
+let browser = checkVersion()
+let env = EnvCheck();
+var urlData = getQueryString();
+if (env == 'test') {
+ new VConsole();
+}
+// 封装layer消息提醒框
+let layerIndex
+const showLoading = (content = '加载中...') => {
+ layer.open({
+ type: 2,
+ shadeClose: false,
+ content,
+ success (e) {
+ layerIndex = $(e).attr('index')
+ }
+ })
+}
+const hideLoading = (index) => {
+ layer.close(index)
+}
+const toastMsg = (content = '操作完成', time = 2) => {
+ layer.open({
+ content,
+ time,
+ skin: 'msg'
+ })
+}
+// 初始化函数
+$(function () {
+ getInfoFromClient()
+ setTimeout(function () {
+ // 页面全屏
+ if (browser.app) {
+ if (browser.android) {
+ window.androidJsObj.initShowNav(false)
+ } else {
+ window.webkit.messageHandlers.initShowNav.postMessage(0)
+ }
+ };
+ // 顶部返回事件
+ $('.back').click(() => {
+ if (browser.android) {
+ window.androidJsObj.closeWebView()
+ } else {
+ window.webkit.messageHandlers.closeWebView.postMessage(null)
+ }
+ })
+
+ }, 100)
+})
+// 接口
+function get () {
+ showLoading()
+ networkRequest({
+ type: 'GEt',
+ url: urlPrefix + '',
+ data: { roomUid: urlData.roomUid },
+ success (res) {
+ if (res.code === 200) {
+
+ } else {
+ toastMsg(res.message)
+ }
+ hideLoading(layerIndex)
+ },
+ error (err) {
+ hideLoading(layerIndex)
+ toastMsg('网络错误,请退出重进')
+ }
+ })
+}
\ No newline at end of file